Выведите такие латинские буквы из строк, которых нет в остальных - Free Pascal
Формулировка задачи:
Даны 3 строки: S1, S2, S3. Выведите такие латинские буквы из этих строк, которых нет в остальных.
_____________________
Короче: надо вывести уникальные элементы из этих трёх строк. Пробовал удалять похожие, но там возникают проблемы с приваркой в цикле. Помогите. Строки вводятся с клавиатуры. Длина строк НЕодинаковая.
Решение задачи: «Выведите такие латинские буквы из строк, которых нет в остальных»
textual
Листинг программы
uses crt;
const lb=['A'..'Z','a'..'z'];
type mnz=set of char;
procedure vvod(var s:string;i:byte);
begin
writeln('Введите ',i,' строку');
readln(s);
end;
procedure vyvod(s1,s2,s3:string;var m:mnz;i:byte);
var k:byte;
c:char;
begin
m:=[];
for k:=1 to length(s1) do
if(s1[k] in lb)and(pos(s1[k],s2)=0)and(pos(s1[k],s3)=0)
then m:=m+[s1[k]];
if m=[] then writeln('В строке ',i,' нет уникальных латинских букв')
else
begin
writeln('Уникальные латинские буквы в строке ',i);
for c:='A' to 'z' do
if c in m then write(c);
writeln;
end;
end;
var s1,s2,s3:string;
m1,m2,m3:mnz;
begin
clrscr;
vvod(s1,1);
vvod(s2,2);
vvod(s3,3);
vyvod(s1,s2,s3,m1,1);
vyvod(s2,s1,s3,m2,2);
vyvod(s3,s1,s2,m3,3);
readln
end.
Объяснение кода листинга программы
- Программа написана на языке Free Pascal.
- Задача программы - найти и вывести уникальные латинские буквы из введенных пользователем строк.
- В начале программы объявлена константа lb, которая содержит все латинские буквы от 'A' до 'Z' и от 'a' до 'z'.
- Тип mnz определен как множество (set) символов.
- Функция vvod считывает строку от пользователя и сохраняет ее в переменной s.
- Функция vyvod выводит уникальные латинские буквы из строки s1, которые отсутствуют в строках s2 и s3.
- Переменная m инициализируется пустым множеством.
- Цикл проходит по каждому символу строки s1.
- Если символ является латинской буквой и отсутствует в строках s2 и s3, то он добавляется в множество m.
- Если множество m пустое, то выводится сообщение о том, что в строке нет уникальных латинских букв.
- В противном случае выводится сообщение
Уникальные латинские буквы в строкеи все буквы из множества m выводятся построчно. - В основной части программы вызываются функции vvod и vyvod для строк s1, s2 и s3.
- В конце программы ожидается ввод пользователя для завершения работы программы.