Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Заменить многоточие одной точкой

Автор: }0pa 1.12.2006 5:16

Помогите доработать: Использовав ТОЛЬКО тип Char, заменить многоточие точкой (в смысле больше одной точки точкой).
Моя идея: Вводим букву, если она и предыдущая не точка, то выводим на экран эту букву ниже в другой строке...
Помогите, запутался совсем! rolleyes.gif


uses crt;
var
n,i,x,y,k: integer;
ch,next: char;
first: boolean;
begin
clrscr;
write('DLuHA CTPOKu: ');
readln(n);
write('CTPOKA: ');
first := true; next := #0;
k:=0;
for i := 1 to n do
begin
ch := readkey;
{write(ch);}
x:=WhereX;y:=WhereY;
if (next='.') and (ch='.') then
begin
gotoXY(10,10);
write(ch);
gotoXy(x+k,y);
end
else
begin
write(ch);
k:=k+1;
end;
next := ch;
end;

writeln;
readkey
end.


М
}0pa, пожалуйста используй правильные теги. Lapp


Автор: lapp 1.12.2006 9:34

Я не понял - почему ты не можешь просто пропускать точки, если предыдущая была точка? Зачем ты пытаешься писать какие-то точки внизу?...
Короче, скажи, что тебя не устраивает тут:
(я взял твою прогу и повыкидывал все, что, по моему мнению, лишнее)

uses
CRT;
var
i: integer;
ch,next: char;
begin
write('Type in a line (Ctrl-Z at the end) : ');
next := #0;
repeat
ch := readkey;
if ch<>#26 then if (ch<>'.')or(next<>'.') then Write(ch);
next := ch;
until ch=#26;
writeln;
readkey
end.