if m>0 then writeln(’в предложении ’,Kоl,’ таких слов’)
else writeln(’в предложении нет таких слов’);
Пояснения к программе: чтобы распознать последнее слово в предложении, к нему добавляется пробел, при помощи функции Posопределяем место первого слева пробела – это граница первого слова. Если первый и последний символы совпадают – изменяем счетчик. После анализа первого слова его необходимо выбросить из текста и повторить указанные операции.
Цикл Whileзаканчивается, как только из предложения будет выброшено последнее слово.
Запись – это структура данных, которая состоит из фиксированного числа полей разного типа. Описывают запись при помощи ключевых слов Recordи End, между которыми размещаются имена отдельных полей и их характеристики.
Сначала нужно записать тип-запись при помощи слова Record.
TypeStudent=Record;
Fio: string[30];
Rogd: integer;
Rost: real;
Ocenki: array[1..5] of byte;
Запись складывается из отдельных полей, каждое поле имеет свой тип. Порядок прохождения полей любой, количество – неограниченно.
Например:
Type abitur = record
Fio: string;
pol: string[3];
ekz: string[4];
Var st: abitur;
Поле, в свою очередь, может быть записью, для этого предварительно описывают соответствующий тип.
Например:
Type Data= record
God: integer;
Mes: 1..12;
Chislo: 1..31;
Теперь на тип Data можно ссылаться в других записях, например:
Rogd: Data;
Переменные типа запись описываются обычным способом. Например:
Var Stud TK, Stud AKIT: Student; .
Чтобы обратиться к какому-либо полю, используют сложные имена, первая часть которых – имя переменной, а вторая – имя поля, например, st. fioили st. pol. Такое имя можно писать в операторах ввода-вывода данных, присвоения, ifи т.д.
Нужно иметь ввиду, что нельзя одним оператором вводить или выводить запись. Нужно выполнять эти операции над отдельными полями. Работа с записями может выполняться двумя способами: обработка одиночных записей (в цикле вводится одна запись, анализируется один или несколько ее элементов, запоминается или сразу выводится результат анализа), и массива записей. Массив записей необходим тогда, когда необходимо сохранять в памяти все записи. Например, при сортировке.
В таких случаях в разделе определение типов записывается одиночная запись, а при описании переменных задается массив с соответствующим количеством записей. Таким образом, если необходимо использовать массив раньше описанных сведений об абитуриентах, достаточно записать:
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];
abitur = record
fio: string;
pol: string[3];
ekz: osenki;
var mts: array[1..n] of abitur;
Следует обратить внимание на порядок прохождения записей: каждая очередная запись должна ссылаться на ранее описанный тип данных.
Теперь при описании записи mst[i]элемент matem будет показан в виде mst[i].ekz. matem.При выполнении программы удобно пользоваться оператором With,который дает возможность сократить запись.
Пример:
Записать в память компьютера сведения об абитуриентах: фамилию; пол; оценку, полученную на экзамене. Выбрать и подсчитать среди абитуриентов количество абитуриентов мужского пола, которые сдали вступительный экзамен по математике на «отлично».
Const n= 25;
Type abitur= record
fio: string;
pol: string[3];
ekz: string[9];
Var st: abitur;
kol, i: integer;
kol:=0;
Writeln ('vvedite',n,'nachalnih dannih');
with st do begin{начало with}
for i:=1 to n do begin
if pol= ’муж’ then
if ekz= ’отлично’ then
kol:=kol+1;
end;{конец with}
writeln(’ Количество ’, kol);
В программе фамилии абитуриентов мужского пола, которые получили по математике оценку 5 сразу выводятся на экран, а после окончания анализа всех данных появится общее количество таких мужчин.
Примеры записи в паскале
Ввести в память пк ведомость успеваемости некоторой группы по математике, физике и программированию. Вывести: средний балл каждого студента, отличников по программированию.