Упражнение 1. Пусть дана строка символов с точкой в конце строки. Необходимо определить число различных букв, входящих в данную строку.
1. Наберите текст программы:
Program Mn1;
Var
M: Set Of Char;
Str: String;
c: Char;
i, n: Integer;
Begin
M:=[]; { M – пустое множество}
n:=0; {переменная, считающая количество различных букв в строке}
WriteLn (′Введите строку′);
ReadLn (Str); {ввод строки}
For i:=1To Length (Str) Do
If not (Str[i] In M) Then
Begin
M:=M+[Str[i]]; {формирование множества, содержащего все буквы, входящие в строку}
n:=n+1;
End;
WriteLn (′Количество различных элементов в строке равно′, n)
End.
2. Запустите программу на выполнение и проверьте её работу:Ctrl-F9
3. Для просмотра результатов выполненной программы необходимо нажать:Alt-F5
4. Сохраните программу на своем диске:<F2> A:\P9PR1
Упражнение 2. Даны две символьные строки, содержащие только строчные латинские буквы. Построить строку S3, в которую войдут только общие символы S1 и S2 в алфавитном порядке и без повторений.
1. Наберите текст программы:
Program P2;
Type Mset=Set of ‘a’..’z’;
Var S1, S2, S3: String;
MS1, MS2, MS3 : Mset;
C: Char;
ProcedureSM (S: String; Var MS: Mset);
{Процедуры формируют множество MS, содержащее все символы строки S }
Var I Byte;
Begin MS:=[];
ForI:=1 To Length (S) Do
MS:=MS+[S[I]]
End;
Begin{Ввод исходных строк}
ReadLn (S1); ReadLn (S2);
{Формирование множеств MS1 и MS2 из символов строк S1 и S2}
SM (S1, MS1); SM (S2, MS2);
{Пересечение множеств – выделение общих элементов в множество MS3}
MS3:=MS1*MS2;
{Формирование результирующей строки S3}
S3:=’’;
For C:=’a’ To ‘z’ Do
If C In MS3 ThenS3:=S3+C;
WriteLn (‘Результат:’S3)
End.
2. Запустите программу на выполнение и проверьте её работу:Ctrl-F9
3. Для просмотра результатов выполненной программы необходимо нажать:Alt-F5
4. Сохраните программу на своем диске:<F2> A:\P9PR2