- •Кафедра прикладной математики лекция № 16. Тема: «структурированные типы данных»
- •1. Пользовательские типы.
- •1.1. Перечисляемый тип.
- •1.2. Интервальный тип (диапозон).
- •2. Структурированные типы данных.
- •3. Тождественность и совместимость типов.
- •4. Массивы.
- •4.1. Объявление массива.
- •4.2. Действия над массивами.
- •4.3. Действия над элементами массива.
- •4.4. Многомерные массивы.
- •5. Строковый тип данных.
- •5.1. Строковые выражения.
- •5.2. Строковые процедуры и функции.
- •6. Множественный тип данных.
- •6.1. Операции над множествами.
- •Пример 3.
- •7. Запись.
- •7.1. Оператор with.
- •7.2. Записи с вариантами.
- •Контрольные вопросы
- •Задачи для самостоятельной работы
- •Лекция № 16 по курсу «информатика»
Пример 3.
Известен набор продуктов – хлеб, масло, сыр, молоко, имеющиеся в ассортименте магазинов. В три магазина доставлены отдельные виды этих продуктов. Требуется построить множества A, B, C, которые содержат соответственно:
продукты, имеющиеся одновременно во всех магазинах;
продукты, имеющиеся, по крайней мере, в одном из магазинов;
продукты, которых нет ни в одном из магазинов.
Решение:
program amaf;
const n=3;
type prod=(xl,ms,sr,ml);
assort=set of prod;
mag=array[1..n] of assort;
var m1:mag;
x:prod;
a,b,c,xm1:assort;
i,j,iw,m:integer;
begin
for i:=1 to n do
begin
xm1:=[ ];
writeln(‘Ввести номера продуктов’,i:2,’-го магазина=’);
repeat
read(iw);
case iw of
1:x:=xl;
2:x:=ms;
3:x:=sr;
4:x:=ml
end;
xm1:=xm1+[x]
until eoln;
m1[i]:=xm1
end;
a:=m1[1];
b:=[ ];
c:=[xl..ml];
for i:=1 to n do
begin
b:=b+m1[i];
a:=a*m1[i];
c:=c-b
end;
for i:=1 to n do
begin
case i of
1:writeln(‘продукты, имеющиеся одновременно во всех магазинах’);
2:writeln(‘ассортимент продуктов’);
3:writeln(‘продукты, которых нет ни в одном магазине’)
end;
for x:=xl to ml do
if x in a then
case x of
xl:writeln(‘ хлеб ’);
ms:writeln(‘ масло ’);
sr:writeln(‘ сыр ’);
ml:writeln(‘ молоко ‘)
end;
if i=1 then a:=b else a:=c;
writeln
end
end.