Старшинство множественных операций

1. (высший) * - пересечение;

2. +, - - объединение, разность;

3. (низший) =, <>, >, <, in – равенство, неравенство, подмножество, принадлежность.

Например, определить результат выражения:

M1 := [‘a’, ‘e’, ‘x’];

M2 := [‘x’];

M3 := [‘a’..’z’];

If (M3 – M1 * M2 >= [‘p’]) and (‘a’ in M3) then writeln (‘Да’);

Задача 13.1. В строке определить цифры и количество букв.

Листинг программы

program Task;

uses crt;

var m, m1 : set of char;

s : string; i, n, l : byte;

begin

clrscr;

m := ['0'..'9'];

m1 := ['a'..'z'];

writeln ('Введите в строку символы, содержащие цифры и буквы');

readln (s);

n := 0; {Обнуление счётчика количества цифр}

writeln ('Вывод строки цифр: ');

for i := 1 to length (s) do

if (s[i] in m) and not (s[i] in m1) then

begin

inc (n);

write (s[i]);

end;

writeln;

writeln ('Их количество: ', n:3);

 

l := 0; {Обнуление счётчика количества букв}

writeln ('Вывод строки букв: ');

for i := 1 to length (s) do

if (s[i] in m1) and not (s[i] in m) then

begin

inc (l);

write (s[i]);

end;

writeln;

writeln ('Их количество: ', l:3);

readln;

end.

Задача 13.2. В строке определить количество пробелов.

Листинг программы

program Task;

uses crt;

var m, m1, m2 : set of char;

s : string; i, k : byte;

begin

clrscr;

m := ['0'..'9'];

m1 := ['a'..'z'];

m2 := [' '];

writeln ('Введите в строку символы, содержащие цифры, буквы и пробелы');

readln (s);

k := 0; {Обнуление счётчика количества пробелов}

for i := 1 to length (s) do

if (s[i] in m2) and not

(s[i] in m1) and not

(s[i] in m) then inc (k);

writeln;

writeln ('Их количество: ', k:3);

readln;

end.

Задача 13.3. Написать программу, в которой функция подсчитывает общее количество цифр и знаков арифметических операций, входящих в строку.

Листинг программы

program task;

type st = string[100];

var s1 : st;

 

function chet (s : st) : integer;

var i,k : integer;

begin

k := 0;

for i := 1 to length (s) do

if (s[i] in ['0'..'9', '+', '-', '*', '/']) then inc (k);

chek := k;

end;

 

begin

clrscr;

writeln ('Введите строку символов');

readln (s1);

writeln ('Количество цифр и знаков ариф. операций', chet (s1));

readln;

end.

Задача 13.4. Программа позволяет выполнять операции над множествами и содержит процедуру, которая передаёт множество.

Листинг программы

program task;

uses crt;

type m = set of 'a'..'z';

var b, b1, b2 : m;

 

procedure print (a : m);

var c : char;

begin

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

if c in a then write (c);

end;

 

begin

clrscr;

b1 := ['a'..'f'];

b2 := ['t'..'z'];

writeln ('Первое множество');

print (b1);

writeln ('Второе множество');

print (b2);

writeln ('Первое множество + Второе множество');

b := b1 + b2;

print (b);

readln;

end.

Вопросы для самопроверки

1. Дайте определение множеству?

2. Что означает «пустое множество»?

3. Как определить мощность множества?

4. Каков формат объявления переменной типа множество?

5. Какие существуют операции над множествами?

6. Какие операции отношения применимы для сравнения множеств?

7. Каков формат процедуры include?

8. Каков формат процедуры exclude?

9. Каков порядок выполнения множественных операций?


Лабораторная работа №13