Склавиатуры вводится две строки. символы в них не повторяются, т.е. стоят в разнобой. вывести на экран только те символы, которые являются общими. используя множества!
"Школьный вариант" (чтобы помучиться): // PascalABC.Net 3.0б сборка 1066 var s1,s2:string; p,q:set of char; i:integer; c:char; begin Write('Введите первую строку: '); Readln(s1); Write('Введите вторую строку: '); Readln(s2); p:=[]; q:=[]; for i:=1 to Length(s1) do Include(p,s1[i]); for i:=1 to Length(s2) do Include(q,s2[i]); p:=p*q; for c:=' ' to Chr(255) do If c in p then Write(c,' '); Writeln end.
Тестовое решение: Введите первую строку: Карл у Клары украл кораллы Введите вторую строку: Клара у Карла украла кларнет К а к л р у
Современный вариант: // PascalABC.Net 3.0б сборка 1066 begin var s1:=ReadlnString('Введите первую строку: '); var s2:=ReadlnString('Введите вторую строку: '); Writeln('Общие символы в строках: ',s1.Intersect(s2).Sorted); end.
Тестовое решение: Введите первую строку: Карл у Клары украл кораллы Введите вторую строку: Клара у Карла украла кларнет Общие символы в строках: [ ,К,а,к,л,р,у]
// PascalABC.Net 3.0б сборка 1066
var
s1,s2:string;
p,q:set of char;
i:integer;
c:char;
begin
Write('Введите первую строку: '); Readln(s1);
Write('Введите вторую строку: '); Readln(s2);
p:=[]; q:=[];
for i:=1 to Length(s1) do Include(p,s1[i]);
for i:=1 to Length(s2) do Include(q,s2[i]);
p:=p*q;
for c:=' ' to Chr(255) do
If c in p then Write(c,' ');
Writeln
end.
Тестовое решение:
Введите первую строку: Карл у Клары украл кораллы
Введите вторую строку: Клара у Карла украла кларнет
К а к л р у
Современный вариант:
// PascalABC.Net 3.0б сборка 1066
begin
var s1:=ReadlnString('Введите первую строку: ');
var s2:=ReadlnString('Введите вторую строку: ');
Writeln('Общие символы в строках: ',s1.Intersect(s2).Sorted);
end.
Тестовое решение:
Введите первую строку: Карл у Клары украл кораллы
Введите вторую строку: Клара у Карла украла кларнет
Общие символы в строках: [ ,К,а,к,л,р,у]