- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Задание
Ввести текст программы Prg_proc с клавиатуры в системе Turbo Pascal. Сохранить файл в свою папку. Выполнить отладку программы. Дополнить программу процедурой вывода расчетной таблицы на принтер.
Пользуясь программой, рассчитать таблицу значений для следующих функций:
1. |
y = exp( ax2) |
6. |
y = ax; |
2. |
y = x /(sin(5x)+1,5) |
7. |
y = | cos(x)|; |
3. |
y = a x2 + b x + c |
8. |
y = x/(1-x2); |
4. |
y= , где -rxr |
9. |
y = x; |
5. |
E = 1010 / |
10. |
y = 0,1xsin(x/0,5) |
Тема 12 Записи
При организации хранения информации на ЭВМ требуется группировать данные разного типа, логически относящиеся к одному объекту. Например, целесообразно объединить данные об автомобиле и его владельце (номер, марка машины, год выпуска, цвет, фамилия владельца, его адрес) в одной структуре. Для этого в языке Pascal предназначен комбинированный тип, который называется запись. Записи могут использоваться в любых случаях, где желательно группировать логически связанные элементы в один блок.
Запись– это структурированный тип данных, состоящий из фиксированного числа компонентов разного типа. Определение типа начинается идентификаторомRecordи заканчивается ключевым словомend. Между ними заключён список компонентов, называемыхполями, с указанием идентификаторов полей и типа каждого поля.
Формат описания типа запись:
Type
<имятипа> = Record
<идентификатор поля>:<тип компонента>;
.......
<идентификатор поля>:<тип компонента>;
end;
Var
<идентификатор, ...> : <имя типа>;
Пример 1.
Type
avto = record
Nomer:string[6]; { Регистрационный номер }
Marka:string[15]; { марка автомобиля }
God:integer; { год выпуска }
Color: string[20]; { цвет }
Fam:string[20]; { фамилия владельца }
Adress:string[40]; { адрес владельца }
end;
Var
m,v:avto;
В данном примере запись avtoсодержит 6 компонентов: номер, марка машины, год выпуска, цвет, фамилия владельца, его адрес. Доступ к полям записи осуществляется через переменныеmиvтипаrecord.
Имя поля должно быть уникальным в пределах записи. Объём памяти, необходимый для хранения записи, складывается из длин полей.
Значения полей записи могут быть использованы в выражениях. Обращение к значению поля осуществляется с помощью составного имени, включающего идентификатор переменнойиидентификатор поля, разделённые точкой. Например, чтобы получить доступ к полям записиmтипаavto, надо записать:
m.nomer, m.marka, m.god, m.color, m.fam, m.adress.
Для присваивания полям записей значений используются оператор присваивания.
m.nomer:=’ав345х’;
m.marka:=’ВАЗ2110’;
m.god:=1995;
Составные имена можно использовать, в частности, в операторах ввода-вывода
Write(’Введите фамилию владельца автомобиля ’,m.nomer, ’ ’);
Readln(m.fam);
Допускается применение оператора присваивания к записям в целом, если они имеют один и тот же тип, например, m:=v. После этого значения полей записиmстанут равны значениям соответствующих полей записиv.
В ряде задач удобно пользоваться массивами из записей. Их можно описать, например, следующим образом:
Type
Person = record
Fam:string[20]; { фамилия сотрудника }
Pol:char; { Пол сотрудника }
Age:16..60; { возраст сотрудника}
Dolgnost: string[20]; { должность }
end;
Var
otdel:array [1..50] of Person;
Обращение к полям записей имеет несколько громоздкий вид, что особенно заметно при использовании идентификаторов длиной более 5 символов. Для решения этой проблемы применяется оператор with, который имеет следующий формат:
With <переменная типа record> do <оператор>;
Один раз указав имя переменной типа recordв оператореwith, далее в пределах блока<оператор>можно работать с именами полей, как с обычными переменными, то есть без указания перед идентификатором поля имени переменной, определяющей запись:
With Otdel[25] do
begin
fam:=’Васильев’;
Pol:=’М’;
Age:=45;
Dolgnost:=’Директор’;
end;
Pascalдопускает вложение записей друг в друга, т.е. поле в записи может в свою очередь быть записью, соответственно операторwithможет быть вложенным.
Записи используются обычно для организации файлов с данными на магнитных дисках.