Помогите с маленьким воросом на паскале
uses crt;
var
i, n, x, y, g: integer;
procedure f;
begin
Delay(100);
if i > 9 then i := 0;
TextColor(i+1);
gotoxy(X * 2, y);
write(i);
inc(i);
end;
begin
read(n);
clrscr;
y := 1;
for x := 1 to n do f;
inc(y);
for x := x downto 1 do f;
inc(y);
readln;
readln;
end.
Объясните как вывести до n-нного Y эти строки?
Ответы (2 шт):
Автор решения: rotabor
→ Ссылка
Вложенные циклы
y := 0;
for z := 1 to n/2 do
begin
for x := 1 to n do f;
inc(y);
for x := x downto 1 do f;
inc(y);
end;
Или так
y := 0;
while y <= n do
begin
for x := 1 to n do f;
inc(y);
for x := x downto 1 do f;
inc(y);
end;
Автор решения: Arik
→ Ссылка
Похоже, изначальная путаница с переменными, и код должен быть +/- таким:
uses crt;
procedure f(x: integer; var i: integer);
begin
Delay(100);
if i > 9 then i := 0;
TextColor(i+1);
gotoxy(x * 2, i);
write(i);
inc(i);
end;
var
n, x, y: integer;
begin
read(n);
clrscr;
y := 1;
for x := 1 to n do f(x, y);
WriteLn();
for x := x downto 1 do f(x, y);
readln;
readln;
end.