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

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

Форум «Всё о Паскале» _ Задачи _ Одномерный массив

Автор: TS* 21.01.2006 16:27

Не понимаю как без использования двумерных массивов получить на экране вертикальные "сугробы" в зависимости от количества упавших снежинок в програмке:

uses
crt;
const
n=79;
var
n:array[1..n] of byte;
i,k:byte;
begin
clrscr;
for i:=1 to n do
x[i]:=0;
repeat
k:=random(80);
if x[k]=0 then x[k]:=1;
for i:=1 to n do
begin
if x[i]>0 then
begin
gotoxy(i,x[i]);
write(' ');
x[i]:=x[i]+1;
gotoxy(i,x[i]);
write('*');
if x[i]>23 then x[i]:=0;
end;
end;
delay(2000);
until keypressed;
end.

Автор: volvo 21.01.2006 16:56

Используй два одномерных - один для указания текущей позиции "снежинки", другой - для высоты "сугроба":

uses
crt;
const
n=79;
var
x:array[1..n] of byte;
stop: array[1 .. n] of byte;

i,k:byte;
begin
clrscr;
for i:=1 to n do begin
x[i]:=0; stop[i] := 25;
end;

repeat
k:=random(80);
if x[k]=0 then x[k]:=1;
for i:=1 to n do
begin
if x[i]>0 then
begin
if x[i] < stop[i] then begin
gotoxy(i,x[i]); write(' ');
x[i]:=x[i]+1;
gotoxy(i,x[i]); write('*');
end
else begin
x[i] := 0;
stop[i] := stop[i] - 1;
end;
end;
end;
delay(2000);
until keypressed;
end.

Автор: TS* 21.01.2006 17:00

Спасибо за помощь!
smile.gif