Informatică, întrebare adresată de crmsrfo, 8 ani în urmă

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)


boiustef: de ce nu scrii că îţi trebuie în pascal????

Răspunsuri la întrebare

Răspuns de boiustef
3

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:

Alte întrebări interesante