Программирование на языке Паскаль Записи
Комбинированный тип данных Комбинированный тип данных – это структурированный тип, состоящий из фиксированного числа полей разного типа. Комбинированный тип имеет ещё и другое название – запись. Обычно запись содержит набор разнотипных данных, относящихся к одному объекту. Например, анкетные данные об ученике. Анкета ученика Фамилия Адрес Дата рождения Школа Класс
Определение типов полей Название Имя поля Тип поля Длина Фамилияfamстроковый 25 Адресadrстроковый 50 Дата рождения dat_rogстроковый 10 Школаshcolстроковый 20 Классklassцелый 1..11
Форма описания записи Type anketa = record fam: string[25]; adr: string[50]; dat_rog: string[10]; shcol: string[20]; klass: integer; end; Var uchen: anceta; Type anketa = record fam: string[25]; adr: string[50]; dat_rog: string[10]; shcol: string[20]; klass: integer; end; Var uchen: anceta;
К каждому элементу записи можно обратиться, используя составное имя Имя_переменной.Имя_поля Например: uchen.fam uchen.adr uchen.dat_rog uchen.shcol uchen.klass Присвоить полю значение можно так: uchen.klass:=3; uchen.dat_rog:= ;
В программе могут использоваться массивы записей Var uchen:array[1..30] of anceta; Например, фамилия пятого в списке ученика хранится в переменной: uchen[5].fam Любая обработка записей, в том числе, ввод и вывод, производится поэлементно. for i:=1 to 30 do begin readln(uchen[i].fam); readln(uchen[i].adr); readln(uchen[i].dat_rog); readln(uchen[i].shcol); readln(uchen[i].klass); end;
При частом обращении к полям записи для упрощения этого процесса используется оператор: W ith Имя_переменной do Оператор; Например for i:=1 to 30 do with uchen[i] do begin readln(fam); readln(adr); readln(dat_rog); readln(shcol); readln(klass); end;
Задача Даны координаты вершин выпуклого N-угольника. Построить на экране данный N-угольник. Количество вершин (N<=10) ввести с клавиатуры. Пример Введите N= 6 x1=100 y1=100 x2=150 y2=50 x3=200 y3=100 x4=150 y4=200 x5=150 y5=250 x6=130 y6=230 x1,y1 x2,y2 x3,y3 x4,y4 x5,y5 x6,y6
program n_ugolnik; uses crt, graph; type toch=record x : integer; y : integer; end; var ver : array[1..10] of toch; gr,dr,n : integer; begin gr:=0; dr:=0; write(введите N=); readln(n); for i:=1 to n do with ver[i] do begin write(x,i:2,=); readln(x); write(y,i:2,=); readln(y); end; initgraph(gr,dr,c:\worker\bp\bgi); setcolor(14); moveto(ver[1].x,ver[1].y); for i:=2 to n do with ver[i] do lineto(x,y); lineto(ver[1].x,ver[1].y); readkey; end. program n_ugolnik; uses crt, graph; type toch=record x : integer; y : integer; end; var ver : array[1..10] of toch; gr,dr,n : integer; begin gr:=0; dr:=0; write(введите N=); readln(n); for i:=1 to n do with ver[i] do begin write(x,i:2,=); readln(x); write(y,i:2,=); readln(y); end; initgraph(gr,dr,c:\worker\bp\bgi); setcolor(14); moveto(ver[1].x,ver[1].y); for i:=2 to n do with ver[i] do lineto(x,y); lineto(ver[1].x,ver[1].y); readkey; end.