- •Обработка текстовых данных. Решение задач с использованием записей.
- •Var p: array[1..50] of char;
- •Var Str: array[1..60,1..80] of char;
- •Var t: string[50];
- •Var Pred: string;
- •Var st: abitur;
- •Var mst: array[1..N] of abitur;
- •Inform: string[4];
- •Var mts: array[1..N] of abitur;
- •Var st: abitur;
- •Ved: array[1..10]of stud;
- •I,k:byte;
- •Var Hel: array [1..N] of izb;
- •I,j: integer;
Var mst: array[1..N] of abitur;
Элементы такого массива вводятся и обрабатываются в цикле. Переменная mst при этом всегда должна иметь индекс. Например: mst[i]. fio обозначает фамилию i-го абитуриента.
Элементами записи могут быть в свою очередь, другие записи. В случаях, когда необходимо показать более точные сведения о сдаче экзаменов, можно использовать дополнительную запись:
Type osеnki = record
matem: string[4];
fizika: string[4];
Inform: string[4];
end;
abitur = record
fio: string;
pol: string[3];
ekz: osenki;
end;
Var mts: array[1..N] of abitur;
Следует обратить внимание на порядок прохождения записей: каждая очередная запись должна ссылаться на ранее описанный тип данных.
Теперь при описании записи mst[i] элемент matem будет показан в виде mst[i].ekz. matem. При выполнении программы удобно пользоваться оператором With, который дает возможность сократить запись.
Пример:
Записать в память компьютера сведения об абитуриентах: фамилию; пол; оценку, полученную на экзамене. Выбрать и подсчитать среди абитуриентов количество абитуриентов мужского пола, которые сдали вступительный экзамен по математике на «отлично».
Program Zapis;
Const n= 25;
Type abitur= record
fio: string;
pol: string[3];
ekz: string[9];
end;
Var st: abitur;
kol, i: integer;
Begin
kol:=0;
Writeln ('vvedite',n, 'nachalnih dannih');
with st do begin {начало with}
for i:=1 to n do begin
readln(fio);
readln(pol);
readln(ekz);
if pol= ’муж’ then
if ekz= ’отлично’ then
kol:=kol+1;
Writeln(fio);
end;
end; {конец with}
writeln(’ Количество ’, kol);
End.
В программе фамилии абитуриентов мужского пола, которые получили по математике оценку 5 сразу выводятся на экран, а после окончания анализа всех данных появится общее количество таких мужчин.
Примеры записи в паскале
Пример 1
Ввести в память пк ведомость успеваемости некоторой группы по математике, физике и программированию. Вывести: средний балл каждого студента, отличников по программированию.
Type stud = record
fam: string[30];
mat,fiz,prg: 2..5;
sbs:real;
end;
var
ms: array[1..10]of string[30];