Elaborati un program care citește de la tastatura doua șiruri de caractere si afișează pe ecran
a)caracterele care se întâlnesc cel puțin in unul dintre șiruri
b)caracterele care apar in ambele șiruri
c)caracterele care apar in primul si nu apar in șirul al doilea
folosid tipul de date multimi (set)
Răspunsuri la întrebare
Răspuns:
program multimi;
var A,B,R,Int,D: set of char;
S1,S2:string;
i, n, exista:integer;
ch:char;
begin
write('Dati primul sir de caractere: '); read(S1);
write('Dati al doilea sir de caractere: '); read(S2);
A:=[]; n:=length(S1);
for i:=1 to n do
if not (S1[i] in A) then A:=A+[S1[i]];
B:=[]; n:=length(S2);
for i:=1 to n do
if not (S2[i] in B) then B:=B+[S2[i]];
R:=A+B; exista:=0;
write('a) caracterele care se intilnesc cel putin in unul dintre siruri: ');
for i:=0 to 255 do
if chr(i) in R then begin write(chr(i),' '); exista:=1;end;
if exista=0 then write(' nu exista...');
writeln;
Int:=A*B; exista:=0;
write('b) caracterele care apar in ambele siruri: ');
for i:=0 to 255 do
if chr(i) in Int then begin write(chr(i),' '); exista:=1;end;
if exista=0 then write(' nu exista...');
writeln;
D:=A-B; exista:=0;
write('c) caracterele care apar in primul si nu apar in sirul al doilea: ');
for i:=0 to 255 do
if chr(i) in D then begin write(chr(i),' '); exista:=1;end;
if exista=0 then write(' nu exista...');
writeln;
end.
Explicație: