ronn [ moralizator ]
Pytanie z Pascala.
Jak zrobic i czy w ogole jest to mozliwe :
Mam dwie 10-elementowe tablice i chce zeby trzecia tablica skladala sie z elementow poprzednich dwoch tablic (bedzie miala 2 razy wiecej elementow).
Szukalem, pytalem sie znajomych, ale nikt nie wie jak to zrobic :(
"thank you from rhe mountain" czyli dziekuje z gory :)
Maliniarz [ Konsul ]
ale jakie ma miec wymiary ta 2 tablica ? 10x20 ?
ronn [ moralizator ]
To jest jednowymiarowa tablica postaci array[x..y]
Maliniarz [ Konsul ]
znaczy sie nawiazujac do powyzszej wypowiedzi .. jest to tablica 1 wymiarowa czy dwuwymiarowa i powiedz dokladnie jak ma wygladac ta 3, nowo utworzona tablica
ronn [ moralizator ]
Ona ma po prostu wyswietlic elementy dwoch innych tablic. A tamte tablice skladaja sie, kazda z 10 cyfr. czyli np 1 tablica to 2,2,3,4,5,6,1,2,3,5. a druga 4,6,7,8,9,3,2,4,5,6. To ta trzecia ma skladac sie z tych wszystkich cyfr (ma je wyswietlic uporzadkowane, ale tym sie pozniej zajme).
Maliniarz [ Konsul ]
pascala nie uzywalem juz chyba rok ale sprobuje :)
fr i :=1 to 10 do
c:=a;
fr i :=11 to 20 do
c:=b;
o to chodzilo :D ? a potem sortowanie babelkowe czy inny shit i wszystko gra :)
_Robo_ [ Generaďż˝ ]
Eee? ale w czym problem? zrob tablice na 20 elementow i najnormalniej w siwecie skopiuj tamte elementy do tej 20-elementowej.
ronn [ moralizator ]
Dzieki, a mozesz mi napisac jak to dokladnie zastowowac, bo ja na razie slaby jestem z Pascala.
Tu masz kod :
Program xcxc;
uses wincrt;
var
i,j,x,a,b : integer;
tablica, tablica2 : array [0..10] of byte;
tablica3 : array [0..20] of byte;
begin
clrscr;
randomize;
for i:=1 to 10 do
tablica:=random(25);
writeln('tablica pierwsza jest nieposortowana');
for i:=1 to 10 do
write (tablica, ' ');
readln;
writeln;
for a:=2 to 10 do
tablica2[a]:=random(25);
writeln('tablica druga jest nieposortowana');
for a:=2 to 10 do
write (tablica2[a], ' ');
readln;
writeln;
poczatek sortowania
for i:=2 to 10 do
begin
x:=tablica;
tablica[0]:=x;
j:=i-1;
while x<tablica[j] do
begin
tablica[j+1]:=tablica[j];
j:=j-1;
end;
tablica[j+1]:=x
end;
for a:=2 to 10 do
begin
x:=tablica2[a];
tablica2[0]:=x;
j:=a-1;
while x<tablica2[j] do
begin
tablica2[j+1]:=tablica2[j];
j:=j-1;
end;
tablica2[j+1]:=x
end;
writeln('pierwsza tablica zostala posortowana:');
for i:=1 to 10 do
write (tablica, ' ');
readln;
writeln;
writeln('druga tablica zostala posortowana:');
for a:=1 to 10 do
write (tablica2[a], ' ');
readln;
writeln;
tablica3 /tu ma byc ta tablica/
end.
_Robo_ [ Generaďż˝ ]
Maliniarz -> wlasnie 10 razy podstawiles do 'c' 'a' a potem w to samo miejsce podstailes 10 razy 'b' :) Ale o ile dobrze rozumiem problem to jestes bardzo blisko rozwiazania :)
ronn [ moralizator ]
_Robo_ --> A mozesz mi napisac jakiej komendy do tego sie uzywa?
Jak juz pisalem, jestem slaby z Pascala.
ronn [ moralizator ]
Normalnie wpisac ich nie moge, bo sa (do tamtych 2 tablic) wybierane losowo.
Maliniarz [ Konsul ]
_Robo_ - to wina watawek z kwadratowymi nawiasami :/ zebym to napisal w notatniuku wygladaloby normalnie :/
Maliniarz [ Konsul ]
ronn -> zlap mnei na gg jesli chcesz to sprobuje Ci co nie co pomoc
ronn [ moralizator ]
Dzieki za pomoc Maliniarz!!
Program juz skonczylem, wiec jesli komus bedzie potrzebny to wklejam kod. Zmiencie tylko wincrt na crt, bo ja uzywam windowsowego kompilatora. (mozna tez usunac te 2 algorytmy sortujace 2 pierwze tabele bo i tak sa niepotrzebne)
Program Hentai;
uses wincrt;
var
i,j,x,a,b : integer;
tablica, tablica2 : array [0..10] of byte;
tablica3 : array [0..20] of byte;
begin
clrscr;
randomize;
for i:=1 to 10 do
tablica:=random(25);
writeln('tablica pierwsza jest nieposortowana');
for i:=1 to 10 do
write (tablica, ' ');
readln;
writeln;
for a:=2 to 10 do
tablica2[a]:=random(25);
writeln('tablica druga jest nieposortowana');
for a:=2 to 10 do
write (tablica2[a], ' ');
readln;
writeln;
poczatek sortowania
for i:=2 to 10 do
begin
x:=tablica;
tablica[0]:=x;
j:=i-1;
while x<tablica[j] do
begin
tablica[j+1]:=tablica[j];
j:=j-1;
end;
tablica[j+1]:=x
end;
for a:=2 to 10 do
begin
x:=tablica2[a];
tablica2[0]:=x;
j:=a-1;
while x<tablica2[j] do
begin
tablica2[j+1]:=tablica2[j];
j:=j-1;
end;
tablica2[j+1]:=x
end;
writeln('pierwsza tablica zostala posortowana:');
for i:=1 to 10 do
write (tablica, ' ');
readln;
writeln;
writeln('druga tablica zostala posortowana:');
for a:=1 to 10 do
write (tablica2[a], ' ');
readln;
writeln;
for i:=1 to 10 do
tablica3:=tablica;
for i:=11 to 20 do
tablica3:=tablica2[i-10];
for i:=1 to 20 do
write(tablica3, ' ');
readln;
writeln('wczytalem dane z 2 tablic do 3');
readln;
for i:=1 to 20 do
begin
x:=tablica3;
tablica3[0]:=x;
j:=i-1;
while x<tablica3[j] do
begin
tablica3[j+1]:=tablica3[j];
j:=j-1;
end;
tablica3[j+1]:=x
end;
for i:=1 to 20 do
write(tablica3, ' ');
readln;
writeln('to 3 tablica zawierajac dane z 2 poprzednich oraz sortujaca je w sposob rosnacy');
readln;
end.