И на или

bytemyass

Всем Привет, помогите найти ошибку в коде. Суть такова, программа должна заменять союз 'и' на 'или':
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
a:integer;
begin
label1.Caption:='Vvedite predlojenie';
s:=Edit1.Text;
for a:=1 to length(s) do begin
if (s[a]='и') then s[a]:='или'
Edit2.text:=inttostr(s);
end;
 
end.
3 ответа

bytemyass

s[a] суть символ, его тип Char. 'или' есть строка, его тип String. Могу предложить костыльный способ: замените s[a]:='или' на begin delete(s,a,1); insert('или',s,a) end;Кроме этого, непонятна фраза inttostr(s), совсем никак не понятна.


bytemyass

Не понял немного( Покажи в коде прямо в моем пожалуйста. И как вывести мне тогда конечный результат.


bytemyass

http://ideone.com/czdqRr
var k: integer;
var s: string;
begin
readln(s);
repeat
  k:=pos('and',s);
  if k>0
    then begin
      delete(s,k,3);
      insert('or',s,k);
    end;
until k=0;
writeln(s);
end.
В случае Дельфи нужно readln(s) заменить на s:=Edit1.Text, и writeln(s) на Edit2.Text:=s.
procedure TForm1.ButtonClick(Sender: TObject);
var k: integer;
var s: string;
begin
s:=Edit1.Text;
repeat
  k:=pos('и',s);
  if k>0
    then begin
      delete(s,k,1);
      insert('or',s,k);
    end;
until k=0;
Edit2.Text:=s;
end;