Anonymní profil LEnka V – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil LEnka V – Programujte.comAnonymní profil LEnka V – Programujte.com

 

Příspěvky odeslané z IP adresy 89.176.60.–

LEnka V
Delphi › řazení sloupců matice
17. 12. 2014   #197360

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;

Václav
Delphi › Delphi matice úkol
2. 12. 2014   #196805

posilám funkci na ten ar. průměr 

program mě ale hází blbost

function soucet(i:integer; var a:Tmat):integer; // funkce pro součet sudých čísel v řádku i
var j,vysledek:integer;
vysledek2:real;
begin
vysledek:=0; // jistota, že je v programu na začátku 0
for j:=1 to n do
vysledek:=vysledek+a[i,j];
vysledek2:=vysledek/n;

procedure TForm1.Button5Click(Sender: TObject); // procedura pro vytvoření nové tabulky
var sirka2,vyska2:integer; // nová šířka a vyska tabulky
begin
m:=StrToInt(edm.Text); 
sg2.RowCount:=m; 
sg2.ColCount:=1
sg2.visible:=True;
sirka2:=sg2.DefaultColWidth; 
vyska2:=sg2.DefaultRowHeight; 
sg2.Width:=sirka2; 
sg2.Height:=m*vyska2+m+4;
for i:=1 to n do // 
sg2.Cells[0,i-1]:=IntToStr(soucet(i,a));

Václav
Delphi › Delphi matice úkol
2. 12. 2014   #196791

Zdravím, potřeboval bych prosím pomoct s úkolem v Delphi.

Takhle zní zadání úkolu:

Vstupní údaje: matice o m řádcích a n sloupcích , prvky čísla celá

1)Naplňte matici pomocí generátoru náhodných čísel celými od 10 do 90.
2)Matici vytiskněte po řádcích ve tvaru tabulky
3)Zjistěte aritmetický průměr řádků matice, výsledky vytiskněte vedle řádků. Použijte funkci pro výpočet ar.průměru prvků v řádku.
4 Setřiďte sloupce vzestupně podle hodnot v prvním řádku a vytiskněte novou matici.
5) Použijte proceduru pro výměnu sloupců.

Z toho 1. mám hotovou, 2. není asi až tak důležitá. Nevím si rady s tím průměrem (3) a s tím seřazením (4).

Každá rada dobrá, děkuji.

 

 

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