Помощь - Поиск - Пользователи - Календарь
Полная версия: Одномерный массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
TS*
Не понимаю как без использования двумерных массивов получить на экране вертикальные "сугробы" в зависимости от количества упавших снежинок в програмке:
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
Используй два одномерных - один для указания текущей позиции "снежинки", другой - для высоты "сугроба":
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*
Спасибо за помощь!
smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.