Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример решения задачи с использованием записей Паскаля
Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.
Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран. Пример программы c записью Паскаля program primer1; type anketa=record fio: string[45]; dat_r: string[8]; adres: string[50]; curs: 1..5; grupp: string[3] end; var student: anketa; begin writeln (‘введите сведения о студенте’); {обратите внимание, ввод каждого поля осуществляется отдельно} writeln (‘введите фамилию, имя и отчество’); readln (student.fio); writeln (‘введите дату рождения’); readln (student.dat_r); writeln (‘введите адрес’); readln(student.adres); writeln (‘введите курс’); readln(student.curs); writeln (‘введите группу’); readln (student.grupp); writeln (‘ввод закончен’); writeln; {обратите внимание, что вывод записи осуществляется по полям} writeln (‘фамилия студента: ’, student. fio); writeln(‘ дата рождения: ’, student.dat_r); writeln(‘ адрес: ’, student.adres); writeln(‘ курс: ’, student.curs); writeln(‘ группа: ’, student.grupp); end.
Усложним задачу. Пусть нам необходимо иметь сведения о многих студентах, например, нашего факультета. Следовательно, необходимо организовать массив записей Паскаля. А затем из общего списка вывести фамилии студентов 2-го курса. Пример программы c записью Паскаля program primer 2; type anketa=record fio: string[45]; dat_r: string[8]; adres: string[50]; curs: 1..5; grupp: string[3] end; var student: array [1..100] of anketa; I: integer; begin {последовательно вводим каждую запись} for I: =1 to 100 do begin writeln (‘введите сведения о’, I, ‘-м студенте’); writeln (‘введите фамилию, имя и отчество’); readln (student[I].fio); writeln (‘введите дату рождения’); readln (student[I].dat_r); writeln (‘введите адрес’); readln(student[I].adres); writeln (‘введите курс’); readln(student[I].curs); writeln (‘введите группу’); readln (student[I].grupp); end; writeln (‘ввод закончен’); writeln; {просматриваем массив записей и выбираем только студентов 2-го курса } for I: =1 to 100 do if student[I].curs=2 then writeln(‘ фамилия студента: ’, student[I].fio); end.
Оператор присоединения или как избавиться от префикса
Префикс – обязательная предшествующая часть составного идентификатора для имен полей в структуре типа запись Паскаля. Очень часто у программиста возникает желание не указывать префикс в имени полей, например, когда идет постоянное использование одних и тех же записей. В языке Паскаль предусмотрена такая возможность, реализуемая при помощи оператора присоединения, который в общем виде выглядит так:
with < имя_записи> do < действие с полем записи>;
Следует обратить внимание на то, что после служебного слова do может стоять только один оператор, но он может быть составным (любая последовательность операторов, заключенная в операторные скобки begin end).
Например, фрагмент из предыдущей программы с использованием оператора присоединения будет выглядеть так: Пример фрагмента программы c записью и префиксом Паскаля for I: =1 to 100 do with student[I] do begin writeln (‘введите сведения о’, I, ‘-м студенте’); writeln (‘введите фамилию, имя и отчество’); readln (fio); writeln (‘введите дату рождения’); readln (dat_r); writeln (‘введите адрес’); readln(adres); writeln (‘введите курс’); readln(curs); writeln (‘введите группу’); readln (grupp); end;
|