Jak prosim seradim sloupce v matici podle prvku druheho radku vzestupne? Prosim poradit jen slovne. Radkove to je v pohode. To si udelam pomocnou promenou tRadek = array .... .Pro sloupec mi to nefunguje.
Fórum › Pascal
Serazeni sloupcu v matici
Je potřeba projít to postupně od prvního do posledního řádku a na každém prohodit dva prvky (předpokládám, že princip řazení znáš).
Případně můžeš matici transponovat (zkopírovat do nové, kde Nová[i,j]=Původní[j,i]), seřadit řádkově a pak transponovat zpátky, ale asi to nebude ani jednodušší, ani efektivnější.
Moje stránka.
procedure setrid(var Matice: tMatice; M, N: tIndex);
var i, j, k: integer;
pom: tSloupec;
begin
i:=2;
for j:=2 to n do
bbegin
for k:=n downto j do begin
if Matice[i,k] > Matice[i, k-1] then
begin
pom:=Matice[k];
Matice[i,k]:=Matice[i,k-1];
Matice[k-1]:=pom
end
end;
end;
end;
Tohle jsem udelala ale nefungovalo to (princip bubble sort vim) jen me to plete protoze musim resit radek 2 i=2
Tak na chvíli zapomeň, že to je matice, a seřaď jenom ten samotný druhý řádek. Až to budeš mít, tak jenom upravíš kód pro prohození dvou prvků: místo dvou čísel na řádku s i=2 to uděláš pro všechna i od 1 do výšky matice.
Moje stránka.
Mezi then a begin vlož "for i:=1 to vyska_matice do", v celém zbytku programu nahraď proměnnou "i" buď natvrdo dvojkou, nebo nějakou jinou proměnnou, aby se s tímhle cyklem netloukla. A je to :-).
Moje stránka.
#6 Mircosoft
procedure setrid(var Matice: tMatice; M, N: tIndex);
var i,j,k, pom:integer;
begin
for j:=2 to n do
begin
for k:=n downto j do begin
if Matice[2,k] > Matice[2,k-1] then
for i:=1 to m do
begin
pom:=Matice[2,k];
Matice[2,k]:=Matice[2,k-1];
Matice[2,k-1]:=pom
end
end;
end;
end;
Nefunguje to ...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Porovnání sloupců v matici — založil Sulty
Součet určitých sloupců v matici — založil pigin
Vyhledávání v matici — založil Tonny
Problém s maticí — založil Honzik
Maximum v matici — založil fja
Moderátoři diskuze