Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Программа, вычеркивающая одинаковые буквы (http://www.tehnari.ru/f41/t88583/)

Angeli 27.05.2013 23:27

Программа, вычеркивающая одинаковые буквы
 
Помогите пожалуйста! надо составить программу в паскале, вычеркивающую из слов Х и Y те буквы, которые одновременно используются при написании этих слов! ( через строки)
Я решаю. но программа работает не всегда, и не полностью!

Vladimir_S 28.05.2013 09:44

Цитата:

Сообщение от Angeli (Сообщение 911995)
Помогите пожалуйста! надо составить программу в паскале, вычеркивающую из слов Х и Y те буквы, которые одновременно используются при написании этих слов! ( через строки)
Я решаю. но программа работает не всегда, и не полностью!

Легко. Вот Вам два варианта решения:

Код:

Var
 X,Y:String;
 i:byte;
 Sx,Sy,Sz:Set of Char;
Begin
 Write('Word X: ');
 Readln(X);
 Write('Word Y: ');
 Readln(Y);
 Sx:=[];
 For i:=1 to Length(X) do Sx:=Sx+[X[i]];
 Sy:=[];
 For i:=1 to Length(Y) do Sy:=Sy+[Y[i]];
 Sz:=Sx*Sy;
 Writeln('Result:');
 For i:=1 to Length(X) do
  if Not(X[i] in Sz) then write(X[i]);
 Writeln;
 For i:=1 to Length(Y) do
  if Not(Y[i] in Sz) then write(Y[i]);
 Readln
End.


Код:

Var
 X,Y:String;
 i,j:byte;
 b:boolean;
Begin
 Write('Word X: ');
 Readln(X);
 Write('Word Y: ');
 Readln(Y);
 Writeln('Result:');
 For i:=1 to Length(X) do
  begin
  j:=0;
  b:=true;
  repeat
    Inc(j);
    if X[i]=Y[j] then b:=false;
  until Not(b) or (j=Length(Y));
  If b then write(X[i]);
  end;
 Writeln;
 For i:=1 to Length(Y) do
  begin
  j:=0;
  b:=true;
  repeat
    Inc(j);
    if Y[i]=X[j] then b:=false;
  until Not(b) or (j=Length(X));
  If b then write(Y[i]);
  end;
 Readln
End.



Часовой пояс GMT +4, время: 21:42.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.