Пример 2. Пусть требуется определить количество гласных букв в предложении, введенном с клавиатуры.
Program Glasnye;
Const=['а', 'е', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я', 'А', 'Е', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я'];
Var s: string; p,i: integer;
begin
write('Введите строку текста: '); readln(s);
p:=0;
for i:=1 to length(s) do
if s[i] in glasn then p:=p+1;
writeln('В строке ', p, ' гласных букв'); readln;
end.
Пример 3. В столовой имеются отдельные меню на завтрак, обед и ужин. Известно, что в каждом из этих меню не более 10 видов блюд. Требуется определить, какие виды блюд имеются в меню и на завтрак, и на обед, и на ужин, если такие есть. Определить виды блюд, которые имеются только на завтрак, только на обед, только на ужин (виды блюд следует рассматривать как данные перечислимого типа).
program bluda;
uses CRT;
const n=10;
type
blyuda=(chay, kofe, sok, omlet, kasha, yogurt,
sup, kotleta, makarony, buterbrod, myaso);
priem=(zavtrak, obed, uzhin);
menu_priem=set of blyuda;
menu_day=array[priem] of menu_priem;
var menu: menu_day; i: priem; j: blyuda; res_menu: menu_priem;
function name_blyudo(index:blyuda):string;
var s: string;
begin
case index of
chay: s:='чай';
kofe: s:='кофе';
sok: s:='сок';
omlet: s:='омлет';
kasha: s:='каша';
yogurt: s:='йогурт';
sup: s:='суп';
kotleta: s:='котлета';
makarony: s:='макароны';
buterbrod: s:='бутерброд';
myaso: s:='мясо';
end;
name_blyudo:=s;
end;
procedure form_menu(var m:menu_priem; kol, smesh: byte);
var j: blyuda; k,nom: byte;
begin
for j:=chay to myaso do
begin
gotoxy(1,ord(j)+3);
writeln(ord(j)+1, '. ', name_blyudo(j));
end;
gotoxy(5, 15);
gotoxy(5, 15);
write('выберите блюдо; для завершения введите 0 ');
m:=[]; k:=0;
repeat
gotoxy(55,15); write(' ');
gotoxy(55,15); readln(nom);
case nom of
1: j:=chay;
2: j:=kofe;
3: j:=sok;
4: j:=omlet;
5: j:=kasha;
6: j:=yogurt;
7: j:=sup;
8: j:=kotleta;
9: j:=makarony;
10: j:=buterbrod;
11: j:=myaso;
end;
if (nom<>0) and not(j in m) then
begin
m:=m+[j];
k:=k+1;
gotoxy((k-1)*8+1,17+smesh);
write(name_blyudo(j),' ')
end;
until (nom=0) or (k>=kol);
end;
begin
clrscr;
for i:=zavtrak to uzhin do
begin
gotoxy(1, 16+2*ord(i));
write('выбранные блюда ', ord(i)+1,': ');
form_menu(menu[i],n,2*ord(i));
end;
gotoxy(1,23);
{menu[zavtrak]:=[chay, kofe, omlet, kasha, yogurt, buterbrod];
menu[obed]:=[chay, kofe, sok, omlet, sup, kotleta, makarony, myaso];
menu[uzhin]:=[chay, omlet, kasha, yogurt, kotleta, makarony];}
Res_menu:= menu[zavtrak]* menu[obed]* menu[uzhin];
for j:=chay to myaso do
begin
if j in res_menu then
writeln('блюдо ',name_blyudo(j),' везде');
end;
readln;
end.
3.Тип данных – запись: место в классификации, объявление типа, структура записи, доступ к полям записи. Оператор присоединения. Запись как компонента массива.
Определение записи. Вариантная часть.
Запись – это сложный, структурированный тип, который представляет собой совокупность данных различного типа, имеющих прямое и характеризующее отношение к какому-либо объекту. Запись есть единица информации о предмете с точки зрения его существенных свойств.
Количество элементов записи строго фиксировано. Каждый элемент записи называется полем. Чаще всего при задании типа запись поля принадлежат разным типам (в противном случае использование записи теряет смысл, т.к. можно вполне обойтись массивом). Названия полей в одной записи должны быть различны, но имена полей внутри различных записей могут совпадать.
В языке Паскаль для обозначения типа записей служит идентификатор record.
<идентификатор типа> = record <поле 1> : <тип значений поля 1>; . . . <поле k> : <тип значений поля k>; [вариантная часть] end;
Пример.
1. Составить описание книг по следующим характеристикам: код классификации, автор, название, аннотация, год издания, стоимость, количество страниц.
type book = record kod : string[15]; avtor, nazvanie, annot : string; god : word; stoim : real; stranic ; integer; end;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.