
15.10.2009, 13:44
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Сообщение от winlogon.exe
2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.
требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно.
Входные данные:
Три текстовые строки длиной не более 255 символов каждая.
Выходные данные:
Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления.
Код:
program strreceive;
var
str:array[1..3] of string;
Variaz:array[1..3] of byte;
strresult:string;
intI:integer;
begin
str[1]:='root@locaphost';
str[2]:='root.localhost';
str[3]:='root.,ocalhost';
Variaz[1]:=0;
Variaz[2]:=0;
Variaz[3]:=0;
for intI:=1 to length(str[1]) do begin
if (str[1][intI]=str[2][intI]) and (str[1][intI]=str[3][intI]) then strresult:=strresult+str[1][intI]
else begin
if (str[1][intI] = str[2][intI]) and (str[1][intI]<>str[3][intI]) then begin
if Variaz[3] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[1][intI];
variaz[3]:=1;
end;
if (str[2][intI] = str[3][intI]) and (str[2][intI]<>str[1][intI]) then begin
if Variaz[1] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[3][intI];
Variaz[1]:=1;
end;
if (str[1][intI] = str[3][intI]) and (str[2][intI]<>str[3][intI]) then begin
if Variaz[2] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[1][intI];
Variaz[2] :=1;
end;
end;
end;
writeln('Iskoma9 stroka = ',strresult);
readln;
end.
Результат работы:
str[1] := 'root@loca phost';
str[2] := 'r yot@localhost';
str[3] := 'root .locaphost';
Код:
Iskoma9 stroka = root@localhost
str[1] := 'root@loca phost';
str[2] := 'r y1t@localhost';
str[3] := 'root .locaphost';
Код:
He mory vosstanovitb stroky
Мне пора идти (Уже опоздал минут на 15), удачи, если че нитак, не надо желать моей смерти ;D
Последний раз редактировалось Dosia; 15.10.2009 в 13:58..
|
|
|