- •Обработка текстовых данных. Решение задач с использованием записей.
- •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 Pred: string;
N, Kоl: integer;
Begin
writeln(’введите предложение’);
readln(Pred);
Pred:= Pred +’ ’;
Kоl:=0;
while Pred <>’ ’ do begin
N:=Pos(’ ’, Pred);
if Pred[1]= Pred[N-1] then Kоl:=Kоl+1;
Delete(Pred,1,N);
end;
if m>0 then writeln(’в предложении ’,Kоl,’ таких слов’)
else writeln(’в предложении нет таких слов’);
End.
Пояснения к программе: чтобы распознать последнее слово в предложении, к нему добавляется пробел, при помощи функции Pos определяем место первого слева пробела – это граница первого слова. Если первый и последний символы совпадают – изменяем счетчик. После анализа первого слова его необходимо выбросить из текста и повторить указанные операции.
Цикл While заканчивается, как только из предложения будет выброшено последнее слово.
Запись – это структура данных, которая состоит из фиксированного числа полей разного типа. Описывают запись при помощи ключевых слов Record и End, между которыми размещаются имена отдельных полей и их характеристики.
Сначала нужно записать тип-запись при помощи слова Record.
Type Student=Record;
Fio: string[30];
Rogd: integer;
Rost: real;
Ocenki: array[1..5] of byte;
End;
Запись складывается из отдельных полей, каждое поле имеет свой тип. Порядок прохождения полей любой, количество – неограниченно.
Например:
Type abitur = record
Fio: string;
pol: string[3];
ekz: string[4];
end;
Var st: abitur;
Поле, в свою очередь, может быть записью, для этого предварительно описывают соответствующий тип.
Например:
Type Data= record
God: integer;
Mes: 1..12;
Chislo: 1..31;
End;
Теперь на тип Data можно ссылаться в других записях, например:
Rogd: Data;
Переменные типа запись описываются обычным способом. Например:
Var Stud TK, Stud AKIT: Student; .
Чтобы обратиться к какому-либо полю, используют сложные имена, первая часть которых – имя переменной, а вторая – имя поля, например, st. fio или st. pol. Такое имя можно писать в операторах ввода-вывода данных, присвоения, if и т.д.
Нужно иметь ввиду, что нельзя одним оператором вводить или выводить запись. Нужно выполнять эти операции над отдельными полями. Работа с записями может выполняться двумя способами: обработка одиночных записей (в цикле вводится одна запись, анализируется один или несколько ее элементов, запоминается или сразу выводится результат анализа), и массива записей. Массив записей необходим тогда, когда необходимо сохранять в памяти все записи. Например, при сортировке.
В таких случаях в разделе определение типов записывается одиночная запись, а при описании переменных задается массив с соответствующим количеством записей. Таким образом, если необходимо использовать массив раньше описанных сведений об абитуриентах, достаточно записать:
