Подпрограммы

End.

Begin

Begin

Begin

ClrScr;

Assign(baza, 'D:\User\baza_student.dat');

ReWrite(baza); открываем файл для записи

Repeat начало цикла ввода

With student Do оператор присоединения

Write('Группа: ');

ReadLn(gruppa);

If (Length(gruppa)=0) если номер группы не введен,

Then Break; то выходим из цикла ввода

Write('Фамилия: ');

ReadLn(fio.fam);

Write('Имя: ');

ReadLn(fio.name);

Write('Отчество: ');

ReadLn(fio.otch);

Write('Год рождения: ');

ReadLn(data.den);

Write('Месяц рождения: ');

ReadLn(data.mes);

Write('День рождения: ');

ReadLn(data.den);

Write('Город: ');

ReadLn(adres.gorod);

Write('Улица: ');

ReadLn(adres.ulica);

Write('Дом: ');

ReadLn(adres.dom);

Write('Корпус: ');

ReadLn(adres.korp);

Write('Квартира: ');

ReadLn(adres.kv);

Write('Телефон: ');

ReadLn(adres.telefon);

End; конец оператора присоединения

Write(baza, student); запись в базу данных

Until (False); конец цикла ввода

ReSet(baza); открываем файл для чтения

While Not(EOF(baza)) Do пока не конец файла

Read(baza, student); читаем данные из файла

With student Do и выводим на экран форматным способом

WriteLn(gruppa:10, fio.fam:10, fio.name:10, fio.otch:15);

End;

Close(baza); закрываем файл

ReadLn;

На практике часто бывает удобно сделать некоторые поля записи изменяемыми (вариантными).

Например, если имеются две записи с одинаковыми полями, различающихся только одним полем, то эти две записи можно представить одной, а различающиеся поля сделать вариантными. Тип и структура вариантного поля изменяются в зависимости в зависимости от значения особого поля записи, называемого селектором (переключателем). В качестве селектора можно использовать поле любого упорядоченного типа: целого, символьного, интервального или перечисляемого. Конкретные значения, принимаемые селектором, называются ключами вариантов.

Записи с вариантными полями называются записями с вариантами. Вариантные поля в них описываются после неизменяемых. Наличие вариантного поля указывается конструкцией:

Case селектор: тип Of

ключ-1: (варимант-1);

ключ-2: (вариант-2);

ключ-3: (вариант-3);

……………………

ключ-n:(вариант-n);

End;

Тип селектора и перечень его возможных значений задаются в разделе определения типов Type.

Например, положении е точки на плоскости можно задавать прямоугольными (x, y) или полярными (r, φ) координатами. Тогда запись с вариантами coord может быть описана так:

Type TDecpol = (decart, polar);

TCoord = Record

Case wid : TDecpol Of

decart : (x, y : Real);

polar : (r : Real; fi : 0..360);

End;

End;

Var coord : TCoord;

Селектором в данном случае является поле перечисляемого типа coord.wid , принимающее только два значения – decart и polar. При значении селектора decart поля переменной coord будут следующими:

coord.x ,coord.y типа Real,

а при значении поля polar – следующими:

coord.r типа Real,

coord.fi типа 0..360.

При использовании записей с вариантами необходимо руководствоваться следующими правилами:

ü все имена полей должны быть различными, даже если они встречаются в разных вариантах,

ü если вариант пустой (для него поля нет), то он записывается так:

ключ : ();

ü любой список полей может иметь только одну вариантную часть, которая должна следовать за фиксированной частью записи,

ü в свою очередь, каждый вариант может содержать в себе вариантную часть, то есть допускаются вложенные варианты.

Современный процесс программирования представляет собой коллективное промышленное изготовление программных продуктов на основе новых технологий программирования.

Одной из таких технологий является метод структурногопрограммирования, предполагающий, что структура программы должна отражать структуру решаемой задачи, а алгоритм решения должен быть ясно виден из текста программы.

Метод структурного программирования предполагает:

· проектирование программ на основе метода пошаговой детализации (нисходящее программирование),

· использование модульного программирования,

· структурное кодирование программы.

Основой метода пошаговой детализации является идея программирования “сверху вниз” с постепенной разбивкой исходной задачи на ряд более мелких подзадач, при этом выполняется последовательное уточнение: сначала задача определяется в общих чертах, затем происходит постепенное уточнение ее структуры. На очередном шаге каждая подзадача, в свою очередь, разбивается на ряд других. Решение отдельного фрагмента сложной задачи может представлять собой самостоятельный программный блок – подпрограмму. Поэтому программу решения сложной задачи при нисходящем программировании можно представить как иерархическую совокупность относительно самостоятельных модулей-подпрограмм. В этом и заключается идея модульного программирования.

Структурное кодирование должно обеспечить максимальное удобство для восприятия и понимания программы человеком. При прочтении программы должна четко прослеживаться логика ее работы. Основная структурная теорема утверждает: алгоритм любой сложности можно реализовать, используя только три конструкции (структуры) - цепочку (следование), ветвление и цикл. Существенной особенностью этих структур является то, что каждая из них имеет только один вход и только один выход, что обеспечивает логическую последовательность структуры программы. Все эти структуры определяются рекурсивно: каждая из входящих в структуру групп операторов может быть одним оператором, группой операторов и может быть любой из допустимых структур – допускается вложение структур.

Длинная программа вообще подобна блюду с макаронами: потянешь за одну макаронину – обязательно что-то поползет в другом месте. Одним из способов разбиения длинных, необозримых программ на обозримые, более короткие, является использование подпрограмм.

В алгоритмах часто встречаются однотипные участки, на которых процесс вычислений носит одинаковый характер, но требует использования различных значений переменных. Для каждого из таких повторяющихся участков может быть составлена отдельная программа, причем в такой форме, что к ней можно было бы обратиться из любого места основной программы, и после ее выполнения вернуться обратно в то место, откуда она была вызвана. Такая отдельная программа, связанная с основной, называется подпрограммой.

Подпрограмма, произведя вычисления при заданных (входных) значениях аргументов, обеспечивает возврат с вычисленными (выходными) значениями в то же место основной программы, откуда подпрограмма вызывалась. Такое построение программы облегчает процесс программирования – большая программа разбивается на отдельные небольшие части, которые легко читаются и понимаются, чем облегчается их отладка и тестирование.

Таким образом, подпрограмма представляет собой относительно самостоятельную программу, которая может быть написана отдельно от других программ, а затем подключена к основной.

Примером подпрограмм являются стандартные функции или библиотечные подпрограммы, имеющиеся в программном обеспечении любого компьютера. В отличие от таких подпрограмм, в дальнейшем мы будем рассматривать подпрограммы, которые создает программист для решения конкретных задач.

В Паскале различают два типа подпрограмм:

1. подпрограммы-функции,

2. подпрограммы-процедуры.