Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 13.04.2018, 18:25   #1
Lenusya21
Новичок
 
Регистрация: 13.04.2018
Сообщений: 5
Репутация: 10
По умолчанию Нужно перевести код из Turbo Pascal в PascalABC - Структура элемента массива пассажир: фамилия, имя, отчество, номер рейса, количество багажных мест, общий вес

Есть задача:
Структура элемента массива пассажир: фамилия, имя, отчество, номер рейса, количество багажных мест, общий вес. Определить:
─ рейс с максимальным весом багажа;
─ пассажира с наибольшим количеством вещей;
─ вывести список пассажиров, улетающих заданным рейсом, и информацию об их багаже.
Нужно перевести её из Turbo Pascal в PascalABC. Помогите.
Я пробовала перевести, но возникла ошибка :"Program1.pas(7) : Встречено 'type', а ожидался оператор"
Сама задача:
Вложения
Тип файла: rar pasajiri.rar (2.3 Кб, 2 просмотров)
Lenusya21 вне форума   Ответить с цитированием
Старый 13.04.2018, 18:27   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 12,689
Репутация: 2659
По умолчанию

вложение, да ещё и рар, кто будет качать? кому это надо? как думаете?
Alar вне форума   Ответить с цитированием
Старый 13.04.2018, 18:30   #3
Lenusya21
Новичок
 
Регистрация: 13.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

Программа просто огромная. Как мне её сюда залить?
Lenusya21 вне форума   Ответить с цитированием
Старый 13.04.2018, 18:44   #4
Lenusya21
Новичок
 
Регистрация: 13.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
вложение, да ещё и рар, кто будет качать? кому это надо? как думаете?
Залила как txt

вот код на 2 поста.
Код:

program Passajiri;
uses crt;
Begin
 writeln('Сформировать массив, каждый элемент которого имеет следующую структуру:');
 write('пассажир=фамилия:string;');
    type passajir=record
     fam:string[10];
     im:string[8];
     otchestvo:string[10];
     nom_reys:integer;
     kol_bag:integer;
     obshiy_ves:integer;
         KDP:integer;
     end;
      var i,k,n:integer;
    f:file of passajir;
    a:passajir; q:char;
 
procedure vvod;
        Begin
            clrscr;
            assign (f,'d:\passajir.dat');
            rewrite(f);
            repeat
            textcolor(11);
            writeln('|Введите данные пасажира:  ');
        with a do
        begin
        textcolor(12);
        write('|Введите фамилию ............................|'); readln(fam);
        write('|Введите имя .................................|'); readln(im);
        write('|Введите отчество ............................|'); readln(otchestvo);
        write('|Введите номер рейса ........................|'); readln(nom_reys);
        write('|Введите Количество багажных мест ...........|'); readln(kol_bag);
        write('|Введите общий вес багажа*....................|'); readln(obshiy_ves);
        end;
    write(f,a);
    textcolor(14);
                   writeln('  ');
    write('Для продолжения Ввода данных нежмите ENTER, Для завершения нажмите - 0:',' ',q);
                   readln(q);
                until q='0';
            close(f);
        end;
Procedure vyvod;
        Begin
            assign (f,'D:\passajir.dat');
            reset(f);
            clrscr;
            textcolor(10);
            writeln('________________________________________________________________________________');
            textcolor(11);
            writeln('| Фамилия |  Имя  | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
            textcolor(10);
            writeln('________________________________________________________________________________');
            for i:=1 to filesize(f) do
        begin
            textcolor(10);
            read(f,a);
            writeln('|',a.fam:9,'|',a.im:7,'|',a.otchestvo:10,'|',a.nom_reys:13,'|',a.kol_bag:16,'|',a.obshiy_ves:11,'|');
            textcolor(10);
            writeln('________________________________________________________________________________');
        end;
           close(f);
           textcolor(14);
           writeln('Нажмите ENTER для выхода из просмотра файла...*');
           readln;
        end;
Procedure dobavit;
        begin
    clrscr;
    assign (f,'D:\passajir.dat');
    reset(f);
    seek(f,filesize(f));
        repeat 
        textcolor(11);
        writeln('Введите данные багажа*¦*');
with a do
begin
textcolor(12);
write('Введите фамилию ............................|'); readln(fam);
write('Введите имя ................................|'); readln(im);
write('Введите отчество ...........................|'); readln(otchestvo);
write('Введите номер рейса ........................|'); readln(nom_reys);
write('Введите колочество багажных мест ...........|'); readln(kol_bag);
write('Введите общий вес ..........................|'); readln(obshiy_ves);
end;
write(f,a);
textcolor(14);
writeln('  ');
write('Для продолжения Ввода данных нажмите ENTER, Для завершения  - 0:',' ',q);
readln(q);
  until q='0';
        close(f);
        end;
Procedure udalenie;
          var w:byte;
          begin
             begin
             assign (f,'C:\tempest\pasajir.txt');
             reset(f);
             clrscr;
             textcolor(11);
             writeln('________________________________________________________________________________');
             textcolor(10);
             writeln('| Фамилия  |  Имя  | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
             textcolor(11);
             writeln('________________________________________________________________________________');
     for i:=1 to filesize(f) do
            Begin
            textcolor(10);
            read(f,a);
            writeln('|',a.fam:9,'|',a.im:7,'|',a.otchestvo:10,'|',a.nom_reys:13,'|',a.kol_bag:16,'|',a.obshiy_ves:12,'|');
            textcolor(11);
            writeln('________________________________________________________________________________');
            end;
           end;
               assign (f,'d:\passajir.dat');
               reset(f);
               textcolor(14);
               write('Ввести номер записи для удаления - ');
               readln(w);
               seek(f, filesize(f) - 1);
               read(f, a);
               seek(f, w - 1);
               write(f, a);
               seek(f, filesize(f) - 1);
               truncate(f);
               close(f);
          begin
               assign (f,'d:\passajir.dat');
               reset(f);
               clrscr;
            textcolor(11);
    writeln('________________________________________________________________________________');
    textcolor(10);
    writeln('| Фамилия  |  Имя  | Отчество | Номер рейса* | Кол.баг.мест | Общий вес |');
    textcolor(11);
    writeln('________________________________________________________________________________');
    for i:=1 to filesize(f) do
    begin
            textcolor(10);
            read(f,a);
            writeln('|',a.fam:9,'|',a.im:7,'|',a.otchestvo:10,'|',a.nom_reys:13,'|',a.kol_bag:16,'|',a.obshiy_ves:11,'|');
            textcolor(11);
            writeln('________________________________________________________________________________');
        end;
      close(f);
     textcolor(14);
    writeln('                        ');
    writeln('Нажмите  ENTER для выхода...*');
    readkey;
    end;
        end;
Procedure zapros1;
        var bag:string;
            max:word;
        begin
            assign (f,'d:\passajir.dat');
            reset(f);
        clrscr;
        max:=0;
        bag:='';
        textcolor(11);
        writeln('________________________________________________________________________________');
        textcolor(10);
        writeln('| Фамилия | Максимальное кол-во багажа* | Номер рейса* |');
                      textcolor(11);
        writeln('________________________________________________________________________________');
        for i:=1 to filesize(f) do
        begin
            read(f,a);
        if (a.kol_bag>max) then
        begin
        max:=a.kol_bag; bag:=a.fam
        end;
        end;
textcolor(10);
writeln('|',bag:9,'|'    ,max:28,    '|',a.nom_reys:13,'|');
textcolor(11);
writeln('________________________________________________________________________________');
close(f);
textcolor(14);
writeln('                                             ');
writeln('Нажмите ENTER для выхода из содержимого файла...*');
readkey;
end;
procedure zapros2;
         var tax:integer;
        begin
        clrscr;
        assign(f,'d:\passajir.dat');
    reset(f);
    textcolor(11);
    write('Введите количество багажных мест - '); readln(tax);
     textcolor(11);
        writeln('________________________________________________________________________________');
        textcolor(10);
        writeln('|  Имя  | Фамилия | Кол.баг.мест | Общий вес |');
                       textcolor(11);
        writeln('________________________________________________________________________________');
     for i:=1 to filesize(f) do
    begin
        read(f,a);
        if (tax = a.kol_bag) then
    begin
        textcolor(10);
        writeln('|',a.im:7,'|',a.fam:8,'|',a.kol_bag:16,'|',a.obshiy_ves:11,'|');
        textcolor(11);
        writeln('________________________________________________________________________________');
        end;
        end;
        close(f);
        textcolor(14);
        writeln('                                           ');
       writeln('Нажмите ENTER для выхода из просмотра файла...*');
readln;
end;

Вложения
Тип файла: txt pasajiri.txt (12.1 Кб, 4 просмотров)
Lenusya21 вне форума   Ответить с цитированием
Старый 13.04.2018, 18:46   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 12,689
Репутация: 2659
По умолчанию

конец

Код:

Procedure zapros3;
        var ul1:integer;
        begin
        clrscr;
        assign(f,'d:\passajir.dat');
    reset(f);
    textcolor(12);
    write('Введите номер рейса - '); readln(ul1);
 
     textcolor(11);
        writeln('________________________________________________________________________________');
        textcolor(10);
        writeln('| Фамилия | Имя | Кло.баг.мест | Общий вес |');
                       textcolor(11);
        writeln('________________________________________________________________________________');
     for i:=1 to filesize(f) do
    begin
        read(f,a);
        if (ul1 = a.nom_reys) then
    begin
        textcolor(10);
        writeln('|',a.fam:9,'|',a.im:7,'|',a.kol_bag:16,'|',a.obshiy_ves:11,'|');
        textcolor(11);
        writeln('________________________________________________________________________________');
        end;
        end;
        close(f);
        textcolor(14);
        writeln('                                           ');
writeln('Нажмите ENTER для выхода из просмотра файла...*');
readln;
end;
    begin
        repeat 
             clrscr;
             textcolor(10);
             writeln('________________________________________________________________________________');
             textcolor(14);
             writeln('                                 Главное Меню программы             ');
         textcolor(10);
             writeln('________________________________________________________________________________');
         textcolor(11);
             writeln('1 - Создать файл                       ');
             writeln('   ');
         textcolor(11);
             writeln('2 - Ввывод даных на экран            ');
             writeln('   ');
         textcolor(11);
             writeln('3 - Добавить данные                    ');
             writeln('   ');
         textcolor(11);
             writeln('4 - Удалить записи                   ');
             writeln('   ');
         textcolor(11);
             writeln('5 - Рейс с максимальным весом         ');
             writeln('   ');
         textcolor(11);
             writeln('6 - Рейс с наибольшим кол-во багажа ');
             writeln('   ');
         textcolor(11);
             writeln('7 - Пассажиры улетающие заданым рейсом ');
             writeln('   ');
         textcolor(11);
             writeln('8 - Выход ');
         textcolor(10);
             writeln('________________________________________________________________________________');
         textcolor(7);
         write  ('Ваш выбор: '); readln(n);
         case n of
             1: vvod;
             2: vyvod;
             3: Dobavit;
             4: udalenie;
             5: zapros1;
             6: zapros2;
             7: zapros3;
             8: begin
              textcolor(10);
             writeln(' ');
         write  ('Нажмите ENTER для выхода из программы!!!');
             readln;
         exit;
         end;
             else
             begin
             textcolor(12);
             writeln('Нажмите ENTER и продолжите ваш выбор...');
             readln end;
              end
        until n=8;
    end.

Alar вне форума   Ответить с цитированием
Старый 13.04.2018, 18:55   #6
Lenusya21
Новичок
 
Регистрация: 13.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

Program1.pas(4) : Неизвестное имя 'ClrScr'
Program1.pas(16) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
Program1.pas(16) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
Возникла ошибка

Цитата:
Сообщение от Alar Посмотреть сообщение
вложение, да ещё и рар, кто будет качать? кому это надо? как думаете?
e'
Все та же ошибка с 'type'
Program1.pas(6) : Встречено 'type', а ожидался оператор
Lenusya21 вне форума   Ответить с цитированием
Старый 13.04.2018, 19:03   #7
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Адрес: Химки
Сообщений: 12,689
Репутация: 2659
По умолчанию

Может кто-то появится у кого и тот и тот компилятор, я всем чем мог с оформлением темы помог )
Alar вне форума   Ответить с цитированием
Старый 13.04.2018, 19:18   #8
Lenusya21
Новичок
 
Регистрация: 13.04.2018
Сообщений: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Может кто-то появится у кого и тот и тот компилятор, я всем чем мог с оформлением темы помог )
Благодарю)
Lenusya21 вне форума   Ответить с цитированием
Старый 15.04.2018, 16:58   #9
ViktorR
Профессионал
 
Регистрация: 23.10.2010
Сообщений: 1,122
Репутация: 589
По умолчанию

Если ещё актуально.
Pascal ABC у меня нет, но Google говорит, что переменная цикла for для ABC описывается в заголовке:
Код:

for i: integer := 1 to...

К вопросу о ClrScr - это очистка экрана.
Для начала просто комментируйте эти строки и пробуйте удалить другие ошибки. В одном месте встретил вариант ClrScr() - со скобками.
Возможно это так и должно, но проверить нечем.
Модуль crt подключен, но вот есть ли он в наличии? И нет ли там ругани и на этот модуль?

PS: переменная i, которая используется в циклах описана как глобальная, но как её видит Pascal ABC, когда она используется в функции?
Как вариант, попробовать описать её во внутренних переменных функций.
__________________
Как-то так, ...
ViktorR вне форума   Ответить с цитированием
Старый 18.04.2018, 03:35   #10
Chili777
Новичок
 
Регистрация: 18.04.2018
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Lenusya21 Посмотреть сообщение
Сама задача...
Ув. Ленуся, так код на Паскале никто не пишет. Ни на Турбо ни на АБС.
Несколько советов по устранению ошибок:
1. Процедуры и функции в Паскале описываются не в теле основной программы, а сразу после раздела описания необходимых переменных, констант и прочих "описаний".
2. Чтобы с "type" не было проблем - уберите до "тайпа" ваши "Бегин" и "Райтэлены" и перенесите их к основной части программы, там где вы организуете выдачу основного меню.
3. По поводу описания переменной "i" - поставьте "var" между "for" и "i:=" во всех строках, где выходит эта ошибка, чтобы получилось так:
for var i:=1 ...
4. В процедуре "Удаление" у вас написаны подряд два "Бегина" и самое удивительное, что при этом программа компилируется без ошибок. Значит вы где-то в процедуре поставили лишний "Энд". Причем далее в той же процедуре вы просто вставляете "Begin"-ы там где они вообще не нужны и также ставите лишние "End"-ы там же. Внимательно просмотрите эту процедуру(и не только эту) и уберите все ненужные Бегины и Энды.

П.С. У меня печальный вывод: либо вы совсем не знаете Паскаль, либо у вас плохой учитель.
Учите матчасть.
Удачи!

Последний раз редактировалось Chili777; 18.04.2018 в 03:43. Причина: Исправление опечаток
Chili777 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать файл "Багаж", включающий в себя информацию:фамилия пассажира, количество и общий вес вещей, место следования. Регааа Паскаль 0 26.11.2014 17:23
Сформировать текстовый файл, содержащий сведения о сотрудниках предприятия (фамилия, имя, отчество, общий стаж...) (Delphi) Kat9 Помощь студентам 2 03.03.2014 14:51
Структура элемента массива «пассажир»: фамилия, номер рейса, багаж - количество вещей, общий вес. Определить число пассажиров, кол Masha Koks Помощь студентам 3 26.11.2013 19:00


20:07.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru