řazení sloupců matice – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

řazení sloupců matice – Delphi – Fórum – Programujte.comřazení sloupců matice – Delphi – Fórum – Programujte.com

 

LEnka V
~ Anonymní uživatel
1 příspěvek
17. 12. 2014   #1
-
0
-

Prosím o radu :) 

mám za úkol : Setřiďte sloupce vzestupně podle hodnot v prvním řádku a vytiskněte novou matici.

Můj výtvor bohužel dokáže řadit místo sloupců řádky, a nevím co pozměnit aby to fungovalo správně 

procedure setridRadky(Sender: TObject); {procedura setrid radky v matici podle nejvetsiho prvku v radku (pouzit algoritmus bubble sort}
var
  max, max2, helper: integer;
  done: boolean;
begin

  repeat    {opakuj dokud done=true}
    done:= true;
    for i:=1 to m-1 do  {prochazeni radku}   // j a n jsou sloupce
    begin
      max:= 0;
      max2:= 0;

      for j:=1 to n do  {projdeme kazdy prvek z radku i a i+ a urcime jejich max hodnotu (max, max1)}
      begin
        if a[i,j] > max then
          max:= a[i,j];

        if a[i+1,j] > max2 then
          max2:= a[i+1,j];
      end;  {na konci cyklu mame pozadovane maximalni hodnoty}

      if max > max2 then  {pokud je max > max2, tak prehodime radky (prehodime a[i,j] za a[i+1,j])}
      begin
        for j:=1 to n do
        begin
          helper:= a[i,j];
          a[i,j]:= a[i+1,j];
          a[i+1,j]:= helper;

          done:= false;
        end;
      end;
    end;
  until done; {konec repeat (pokracujeme dokud nemame setrizeno)}

   end;

.

.

.

procedure TForm1.razeniClick(Sender: TObject);      

begin
  setridRadky(Sender);  {Zavola proceduru setridRadky ktera setridi matici}
  vypisMatici(sg, a);   {Vypiseme setrizenou matici}
end;

Nahlásit jako SPAM
IP: 89.176.60.–
JoDiK
~ Anonymní uživatel
987 příspěvků
18. 12. 2014   #2
-
0
-

Máš pozměnit indexy tak, aby se místo řádků procházely sloupce a místo sloupců řádky. Ale protože na rozdíl od požadovaného programu, kde se má třídit podle hodnot v prvním řádku, v tomto se programu třídí trochu jinak, jestli dobře vidím, tak se netřídí analogicky podle hodnot v prvním sloupci, ale hledá se maximum z celého řádku a třídí se to podle tohoto maxima. To znamená, že ta úprava nebude tak jednoduchá, jak sis asi myslela.

Doporučuju, abys neupravovala program, kterému zřejmě nerozumíš (přestože je docela dobře okomentovaný), ale aby sis to napsala sama..

Nahlásit jako SPAM
IP: 88.103.236.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý