Index · Правила · Поиск· Группы · Регистрация · Личные сообщения· Вход

Список разделов Нужна помощь
 
 
 

Раздел: Нужна помощь Turbo Pascal Help 

Создана: 29 Января 2013 Втр 20:20:19.
Раздел: "Нужна помощь"
Сообщений в теме: 37, просмотров: 6364

На страницу: Назад  1, 2, 3  Вперёд
  1. cas siopeja


    Завсегдатай


    Более 10 лет на форумеЖен.
    29 Января 2013 Втр 20:20:19
    есть спецы в этом языке на форуме?
  2. 30 Января 2013 Срд 14:04:25
    размеры массива нужно тоже задать как 1..n (раз цикл использует n, а не 10), а n определить константой, например (const n=10; в начале программы).
    зачем вам массив вещественных чисел? как вы собираетесь отмечать состояние у каждого места? если 0 - свободно, 1 - бронь, 2 - выкуплено, то хватит и типа byte.

    программой, приведённой выше, вы заполните массив нулями (т.е. изначально все места свободны), создав исходный файл.
    в процессе выполнения программы вы будете записывать в нужные ячейки 1 или 2 в зависимости от того, что введёт пользователь (кстати, не увидел в меню режим бронирования, он будет в "покупке билетов"?). если пользователь выберет "выход", просто перезапишите массив в файл с помощью такого же цикла, только убрав "a[i,j]:=0;". да, и нужно ещё добавить считывание данных из файла в массив в начале программы (программа же должна не с пустого зала каждый раз начинаться).
  3. 30 Января 2013 Срд 22:19:38
    аЩКИМа писал : Вряд ли . Лет 10-15 назад последние вымерли.


    Very Happy Very Happy Very Happy
    Ну щас наговорите)))
    По всему нэту полно этих людей и особенно
    в тематических форумах.

    Не что не вымирает!!!
    Просто немного забывается.
    Ещё скажите что Assembler тоже вымер)))
    Только попробуйте на святое святых заикнуться!!!
    Считайте что тогда у вас нет компа))))) сгорит сразу
    до тла за такое грубое враньё!!!
    И не уважения к старшим))))))))))))))))
    Very Happy Very Happy Very Happy
  4. 30 Января 2013 Срд 22:47:53
    Раньше на паскале нормальные вещи делал, а теперь вообще не помню ничего. Но тс в общем ничего сложного не просит)))) у нас помню один гений танчики на паскале написал, вот это было интересно)))
  5. 30 Января 2013 Срд 23:18:42
    Элементарно, Ватсон! Не нужно мудрить, вот моё предложение:
    Код:
    var zal=array[1..20,1..30] of byte; {20 рядов по 30 мест в каждом}

    Этот массив содержит образ всего зала в виде ряда значений, соответствующих состоянию каждого места. Например, 0 - место свободно (при создании массива весь зал будет пустой), 1 - место продано, 2 - место забронировано.

    Для вывода состояния зала (отображение квадратов) на экран нужно, перебирая все ряды и места в зале, выводить на экран квадрат нужного цвета в зависимости от состояния текущего места.
    Код:
    clrscr;
    for i:=1 to 20 do
     begin
      for j:=1 to 30 do
       case zal[i,j] of
        0:begin
            textbackground(green);
            write(' ');
          end
        1:begin
            textbackground(brown);
            write(' ');
          end;
        2:begin
            textbackground(red);
            write(' ');
          end;
       end;
      writeln;
     end;

    Связывать файл, содержащий массив, с экраном нужно таким образом:
    а) Создали массив, отобразили cостояние зала на экране, записали массив в файл.
    б) Продали/забронировали место в зале (присвоив соответствующему элементу массива значение 1 или 2), отобразили на экране состояние зала на основе изменённого массива, записали массив в файл.

    Если что-то непонятно, спрашивайте. Можно прикрутить разных ништяков к этой программе.
  6. 30 Января 2013 Срд 23:19:25
    cas siopeja писала ? ? ? :

    Вот тут [внешняя ссылка] дофига специалистов, подскажут без пространных рассуждений и языкового холивара.
  7. 30 Января 2013 Срд 23:27:03
    evgenyk писал :Вот тут [внешняя ссылка] дофига специалистов, подскажут без пространных рассуждений и языкового холивара.
    О, щас качну паскаль с этой сцылки и тряхну стариной, это же как на велосипеде ездить :)
  8. 30 Января 2013 Срд 23:34:40
    beckman писал :
    evgenyk писал ... :Вот тут [внешняя ссылка] дофига специалистов, подскажут без пространных рассуждений и языкового холивара.
    О, щас качну паскаль с этой сцылки и тряхну стариной, это же как на велосипеде ездить :)
    С dev-pascal трясти удобней
  9. 31 Января 2013 Чтв 0:49:18
    Готово (прошу прощения за мой инглиш, не стал кириллицу применять):
    Код:
    Uses Crt;

    Const
     Rows=10;
     Cols=25;
     Filename='cinema.dat';

    Type
     TypeZal=array[1..Rows,1..Cols] of Byte;

    Var
     z:TypeZal;

    Procedure ShowZal;
     Var
      i,j:Byte;
     Begin
      TextBackground(Black);
      ClrScr;
      Write('   ');
      For j:=1 to Cols do Write(j:2,' '); WriteLn;
      For i:=1 to Rows do
       Begin
        Write(i:2,' ');
        For j:=1 to Cols do
         Begin
          Case z[i,j] of
           0:TextBackground(Green);
           1:TextBackground(Red);
           2:TextBackground(Brown);
          End;
          Write('  ');
          TextBackground(Black);
          Write(' ');
         End;
         WriteLn; WriteLn;
       End;
      Write('(S)ell, (R)eserve of (F)ree seat, (W)rite or (L)oad file, (Q)uit: ');
     End;

    Procedure WriteZal;
     Var
      f:File of TypeZal;
     Begin
      Assign(f,'cinema.dat');
      Rewrite(f);
      Write(f,z);
      Close(f);
     End;

    Procedure LoadZal;
     Var
      f:File of TypeZal;
     Begin
      Assign(f,'cinema.dat');
      Reset(f);
      Read(f,z);
      Close(f);
     End;

    Procedure Menu;
     Var
      C:Char;
      i,j:Byte;
      q:Boolean; {Quit?}

     Procedure GetSeat;
      Begin
       Write('Enter row number (1..',Rows,'):');
       Repeat
        ReadLn(i);
       Until (i>0) and (i<=Rows);
       Write('Enter seat number (1..',Cols,'):');
       Repeat
        ReadLn(j);
       Until (j>0) and (j<=Cols);
      End;

     Begin
      q:=False;
      Repeat
       ShowZal;
       ReadLn(c);
       Case c of
       'S','s': Begin
                 GetSeat;
                 Case z[i,j] of
                  0:Begin
                     z[i,j]:=1;
                     WriteLn('Seat sold.');
                    End;
                  1:WriteLn('Seat already sold!');
                  2:WriteLn('Seat already reserved!');
                 End;
                End;
        'R','r': Begin
                  GetSeat;
                  Case z[i,j] of
                   0:Begin
                      z[i,j]:=2;
                      WriteLn('Seat reserved.');
                     End;
                   1:WriteLn('Seat already sold!');
                   2:WriteLn('Seat already reserved!');
                  End;
                 End;
        'F','f': Begin
                  GetSeat;
                  Case z[i,j] of
                   0:Begin
                      z[i,j]:=1;
                      WriteLn('Seat released.');
                     End;
                   1:WriteLn('Seat already sold!');
                   2:WriteLn('Seat already reserved!');
                  End;
                 End;
        'W','w': Begin
                  WriteZal;
                  WriteLn('File written.');
                 End;
        'L','l': Begin
                  LoadZal;
                  WriteLn('File loaded.');
                 End;
        'Q','q': Begin
                  WriteLn('Good bye!');
                  Q:=True;
                 End;
       End;
       Delay(65000);
      Until Q;
     End;

    Begin
     Menu;
    End.
  10. 31 Января 2013 Чтв 0:51:38
    При желании могу завтра прокомментировать всю эту писанину, т.к. половина хорошей программы - это грамотные комментарии к ней.
  11. 31 Января 2013 Чтв 10:48:54
    ну что ж вы наделали. человек, может, сам хотел программу написать, только совета попросил. а теперь придёт на всё готовое Грустно :-(
  12. 31 Января 2013 Чтв 11:04:26
    Anecamateur писал(а) ? ? ? :ну что ж вы наделали?
    Не думаю, что этот паскаль ей где-то в жизни нужен будет, сдаст и забудет.
  13. cas siopeja


    Завсегдатай


    Более 10 лет на форумеЖен.
    31 Января 2013 Чтв 16:18:18
    beckman писал ? ? ? :


    Спасибо!
    Ответила Вам в ЛС
    Смайлик :-)
  14. 31 Января 2013 Чтв 22:32:15
    beckman писал : Готово (прошу прощения за мой инглиш, не стал кириллицу применять):
    ....


    Молодец.

    \И что он наделал - это лучше чем вы не чего не далали!!!
    Человеку было бы время и нужно не просил бы.\
  15. <ОН>


    Частый гость


    Более 10 лет на форуме
    01 Февраля 2013 Птн 1:05:24
    beckman писал : Готово (прошу прощения за мой инглиш, не стал кириллицу применять):
    [code]
    Uses Crt;
    ................

    [code]

    Я на этом месте застрял. Very Happy Всё - таки 13 лет его в глаза не видел.
  16. 01 Февраля 2013 Птн 2:39:15
    старый добрый clrscr Хлопец

    zal Долбо
На страницу: Назад  1, 2, 3  Вперёд