Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

6. Даны названия 15 компьютеров. Для каждого компьютера известны процессор, объем памяти, стоимость и быстродействие. Составить программу, которая вводит данные обо всех компьютерах, определяет, какой компьютер имеет минимальное отношение стоимость / быстродействие и печатает название этого компьютера и его характеристики.

§13. Множественные типы данных (множества)

Множественный тип данных S строится на основе некоторого базового типа BS. Базовый тип BS определяет конечное множество значений множественного типа S.

Пример:

а) базовый тип [1. .9] определяет множество цифр;

б) базовый тип [‘Иван’, ‘Марина’, ‘Олег’, ‘Ольга’] определяет множество, состоящее из 4-х имен;

в) базовый тип [‘А’. .‘Я’] определяет множество прописных русских букв.

Любые подмножества базового множества могут являться значениями переменных множественного типа S. Они образуются перечислением через запятую элементов базового множества или выражений базового типа и заключаются в квадратные скобки.

Причем множество ['D'..'A'] является пустым, так как в перечислении объектов базового типа порядковый номер 'D' больше порядкового номера'A'. Множество, не содержащее элементов, также называется пустым и обозначается []. Элементы множества, в отличие от массива, не упорядочены. Максимальное число элементов множества равно 256.

Множество описывается следующим образом:

var <имя>: set of <базовый тип>;

Примеры:

а) var p1,p2: set of 'A'..'F';

б) var p3,p4: set of 0..125;

Арифметические операции над множествами

НЕ нашли? Не то? Что вы ищете?

1. Объединением двух множеств называется множество элементов, принадлежащих обоим множествам. Обозначается: А+В.

Пример:

['b','f']+['b'..'d']=['b','c','d','f']

2. Пересечением двух множеств называется множество тех элементов, которые принадлежат одновременно двум множествам. Обозначается: А*В.

Пример:

а) [0..4]*[5,6]=[]

б) [KIEW, JALTA]*[MOCKWA, KIEW]=[KIEW].

3. Разностью двух множеств называется множество, содержащее те элементы первого множества, которые не являются элементами второго. Обозначается: А – В.

Пример:

[1,5,9]-[2,4,8,9]=[1,5]

С помощью арифметических операций можно строить различные выражения множественного типа.

Операции отношения над множествами

Для сравнения множеств используются операции отношения =,<>,<=,>=.

Выражение А=В (равенство – порядок неважен) истинно только тогда, когда сравниваемые множества содержат одни и те же элементы. Выражение А<>B (неравенство) истинно только тогда, когда одно из сравниваемых множеств содержит хотя бы один элемент, не входящий в другое множество. Выражение А<=B (включение) истинно только когда, когда все элементы множества А одновременно являются и элементами множества В. Выражение А>=B (включение) истинно только когда, когда все элементы множества В одновременно являются и элементами множества А.

Примеры:

а) ['C'..'E']=['D','E','C'];

б) [7,1,3]<>[7,2,3];

в) [KIEW]<=[MOCKWA, KIEW];

г) ['A'..'E']>=['A','B'];

5. Результат логического типа вырабатывает и специальная операция определения принадлежности элемента некоторому множеству. Эта операция обозначается служебным словом in. Слева от in пишется выражение соответствующего базового типа, а справа - выражение множественного типа, т. е. Х in А .

Пример:

1) выражение 5 IN [3..7] имеет значение true, т. к. 5 является элементом множества [3,4,5,6,7];

2) выражение k+2 IN [0..7]*[4,6,8] при k=1 имеет значение false, т. к. 3 не входит в множество [4,6], полученное в результате пересечения исходных множеств.

Порядок выполнения операций, предназначенных для работы с множествами:

1. *

2. +, -

3. in, =, <>, <=, >=.

Операции равного приоритета определяются порядком их появления в выражении. Для изменения порядка выполнения используются круглые скобки.

Средства работы с множествами позволяют в некоторых случаях сократить программы, сделать их более наглядными и эффективными за счет уменьшения числа различных проверок.

Пример 1: Подсчитать количество цифр в исходной символьной строке и напечатать все входящие в нее символы, кроме пробелов, знаков операций и знаков препинания.

Выписывание в явном виде полного набора проверок по всем символам заняло бы гораздо больше места и увеличило бы время выполнения программы, так как вместо одной операции определения принадлежности элемента множеству, реализуемой одной логической операцией, пришлось бы выполнить много операций отношения.

Program mn;

uses crt;

var c:char;

k:integer;

Begin

clrscr;

k:=0;

repeat

read(c); {ввод строки посимвольно}

if not (c in [' ','.',':',',',';','+','-','*','/']) then

begin if c in ['0'..'9'] then k:=k+1;

write(c)

end;

until eoln;

writeln; writeln('число цифр в строке=',k:2)

End.

Примечание: Функция EOLN определяет маркер "конец строки" (нажатие ENTER) для текстового файла.

Результат:

Вводим строку: 12_7*AB_C,/765_4.OR_P:_65;9

127ABC7654ORP659

Число цифр в строке=10

Пример 2: Сформировать множество LB, в которое входят только латинские буквы, встретившиеся во входной строке, и множество знаков препинания PR из входной строки.

Program lat;

uses crt;

var c, i,j:char;

lb:set of 'a'..'z';

pr:set of '!'..'?';

Begin

clrscr;

lb:=[]; pr:=[];

repeat

read(c);

if c in ['a'..'z'] then lb:=lb+[c]

else if c in [':',';','.','!','?']

then pr:=pr+[c]

until eoln;

writeln; writeln('латинские буквы: ');

for i:='a' to 'z' do

if i in lb then write(i:2);

writeln; writeln('знаки препинания: ');

for j:='!' to '?' do

if j in pr then write(j:2)

End.

Результат:

Вводим строку: FYWA.*12 PRLLLLO. ORP A:PR?8

Латинские буквы:

F L O P R W Y

Знаки препинания:

. : ; ?

Вопросы

Что такое множество? Приведите примеры множеств. Какие типы данных используются в качестве базовых при построении множественных типов? Как задается множество в Паскаль? Какие арифметические операции определены над множествами? Примеры. Какие операции отношения определены над множествами? Примеры. Каков приоритет операций над множествами?

Задания

1. Дано описание переменной множественного типа:

var pm:set of(venera, saturn, mars);

Выписать все допустимые значения этой переменной.

2. Будут ли равны множества:

а) [¢A¢..¢D¢] и [¢A¢,¢B¢,¢C¢,¢D¢];

б) [leto, zima] и [zima, leto] ?

3. Какие из приведенных ниже выражений являются неправильными с точки зрения языка Паскаль и почему?

а) [¢A¢,¢B¢,¢C¢,¢K¢] / [¢A¢,¢B¢];

б) [5,6,1,3] >= [1,3,5,6];

в) [куб, шар] + [призма];

г) [уравнение, система] * [неравенство, система];

д) [3.5,7.1,2.0] - [1,2] .

4. Вычислить следующие выражения:

а) [5] <= [1..5];

б) [¢A¢..¢D¢,¢K¢..¢M¢] + [¢D¢..¢K¢];

в) [МОСКВА, ЛЕНИНГРАД, СОЧИ] * [СОЧИ];

г) [7,1,3..6] = [1,7];

д) [¢,¢,¢(¢,¢)¢,¢.¢] - [¢,¢,¢.¢];

е) 15 in [1..10] .

5. Дана программа. На входе ее подается следующий текст: 5A7233111BGE2257CDE. Признаком конца текста является точка. Определить, что будет напечатано в результате обработки этого текста программой ZAF:

Program zaf;

var z: set of 0..9;

i, k: integer;

si: char;

Begin

write(¢==>¢);z:=[];

repeat

read(si); k:=ord(si)-ord(¢0¢);

if k in [0..9] then z:=z+[k]

until k=¢.¢;

if z=[] then writeln(¢в тексте нет цифр¢)

else

begin

write(¢в тексте имеются следующие цифры: ¢);

for i:=1 to 9 do

if i in z then write(i:2);

writeln;

end;

End.

6. Вычислить следующие выражения:

а) [¢A¢,¢B¢,¢C¢]=[¢B¢,¢C¢,¢A¢]

б) [3,4,6]<=[2..8]

в) []>=[1,2]

г) trunc(8.3) in [1..9]

д) succ(¢C¢) in [¢b¢..¢D¢]

е) [2]<>[2,2,2]

ж) 16 in [16]

7. Вычислить выражение: [1..14]*[5,12..60]+[4..7]-[2..16]*[6]

8. Дан текст, содержащий N символов. Распечатать, какие из указанных символов (¢L¢, ¢T¢, ¢Z¢, ¢X¢) входят в данный текст. Составить программу, используя множественный тип.

9. Упростить данные выражения множественного типа:

а) [11..17]*[2]+[7,17..40]*[2..17]-[2..8];

б) (A-B)*A+(A-B)*B;

в) (A+B)*(A-B)*(B-A);

г) A+B-(A-B)-(B-A);

д) A-(A-B).

10. Дана непустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности:

а)  цифры от ¢0¢ до ¢9¢;

б)  буквы от¢A¢ до ¢F¢ и от ¢X¢ до ¢Z¢;

в)  буквы от ¢G¢ до ¢N¢ и цифры от ¢0¢ до ¢9¢;

г)  знаки препинания;

д)  буквы от ¢A¢ до ¢Z¢ и цифры от ¢0¢ до ¢5¢;

е)  буквы от ¢T¢ до ¢X¢ и знаки препинания;

ж)  цифры от ¢5¢ до ¢9¢ и знаки арифметических операций;

з)  знаки арифметических операций и знаки препинания;

и)  цифры и знаки арифметических операций;

к)  знаки препинания и буквы от ¢E ¢ до ¢N¢;

л)  знаки операций отношения;

м)  цифры от ¢3¢ до ¢9¢, буквы от ¢A¢ до ¢F¢ и знаки препинания;

н)  знаки арифметических операций и операций отношения;

11. Известен набор продуктов - хлеб, масло, сыр, молоко, имеющихся в ассортименте магазинов. В три магазина доставлены отдельные виды этих продуктов. Требуется построить множества А, В, С, которые содержат соответственно:

·  продукты, имеющиеся одновременно во всех магазинах;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21