Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример решения задачи с использованием записей Паскаля






 

Рассмотрим для начала простейший пример заполнения записи Паскаля и вывода ее на экран.

 

Пусть нам необходимо заполнить сведения о студенте (Ф.И.О., дата рождения, адрес, курс и группа), а затем вывести эти сведения на экран.

Пример программы 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;

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.