Witam jak zrobić żeby wyświetlało liczby w ten sposób
12345678910
2122 11
20 12
20 13
191817161514
jak to zrobić dla boków po 10 i tak samo w wężyku
12345678910
2019181716itp.
bo myślałem ale nic nie wymyśliłem z góry thx za odp.
0
0
Zazwyczj tego nie robię... ale widzę że kolega jutro ma zaliczenie. A niech będzie.
program slimak;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
tablica : array of array of integer;
x, y, spdX, spdY, i, n : integer;
plik : text;
begin
spdX := 1;
spdY := 0;
Write('Podaj rozmiar tablicy : ');
Readln(n);
SetLength(tablica, n, n);
for y := 0 to n-1 do // zerowanie tablicy
for x := 0 to n-1 do
tablica[x,y] := 0;
x := 0;
y := 0;
for i := 1 to n*n do
begin
if (x+spdX>n-1)or(y+spdY>n-1)or(x+spdX<0)or(y+spdY<0)or(tablica[x+spdX,y+spdY] <> 0) then //zderzenie
begin
if (spdX=1)and(spdY=0) then
begin
spdX := 0;
spdY := 1;
end else
if (spdX=0)and(spdY=1) then
begin
spdX := -1;
spdY := 0;
end else
if (spdX=-1)and(spdY=0) then
begin
spdX := 0;
spdY := -1;
end else
if (spdX=0)and(spdY=-1) then
begin
spdX := 1;
spdY := 0;
end;
end;
tablica[x,y] := i; // wpisz wartosc
x := x + spdX;
y := y + spdY;
end;
// zapisz tablicę do pliku
assignFile(plik, 'slimak.txt');
rewrite(plik);
for y := 0 to n-1 do
begin
for x := 0 to n-1 do
write(plik, tablica[x,y],#9);
writeln(plik);
end;
close(plik);
end.
0
ogromnę dzięki
//nie musiales az dwa razy dziekowac ;) Drugi post wylecial - Pedros
0
W jaki sposób przerobić zamieszony wyżej kod, aby pobierał dwa parametry (ilość kolumn i ilość wierszy), natomiast reszta bez zmian?
0
Takie podstawy, gotowy kod i nie potrafić przerobić. Ręce opadają i
trzeba było chodzić na wykłady chociaż czasami, a nie tylko na piwo.
program slimak;
{$APPTYPE CONSOLE}
var
Plik : text;
Tablica : array of array of integer;
x, y, spdX, spdY, i, n1, n2 : integer;
begin
spdX := 1;
spdY := 0;
Write('Podaj ilosc kolumn: ');
Readln(n1);
Write('Podaj ilosc wierszy: ');
Readln(n2);
SetLength(tablica, n1, n2);
for x := 0 to n1 - 1 do
for y := 0 to n2 - 1 do
tablica[x, y] := 0;
x := 0;
y := 0;
for i := 1 to n1 * n2 do
begin
if (x + spdX > n1 - 1) or (y + spdY > n2 - 1) or (x + spdX < 0) or (y + spdY < 0) or (tablica[x + spdX, y + spdY] <> 0) then //zderzenie
begin
if (spdX = 1) and (spdY = 0) then
begin
spdX := 0;
spdY := 1;
end else
if (spdX = 0) and (spdY = 1) then
begin
spdX := -1;
spdY := 0;
end else
if (spdX = -1) and (spdY = 0) then
begin
spdX := 0;
spdY := -1;
end else
if (spdX = 0) and (spdY = -1) then
begin
spdX := 1;
spdY := 0;
end;
end;
tablica[x, y] := i; // wpisz wartosc
x := x + spdX;
y := y + spdY;
end;
// zapisz tablicę do pliku
assignFile(plik, 'slimak.txt');
rewrite(plik);
for y := 0 to n2 - 1 do
begin
for x := 0 to n1 - 1 do
write(plik, tablica[x, y], #9);
writeln(plik);
end;
close(plik);
end.