Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АЛГОРИТМИЗАЦИИ.doc
Скачиваний:
14
Добавлен:
16.08.2019
Размер:
1.8 Mб
Скачать

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

  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.