Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 05. 2010 20:06

jean08
Zelenáč
Příspěvky: 2
Reputace:   
 

matice a vektor

dobrý den,

Chtěl bych vás poprosit jestli by jste mi pomohli s přikladem v progamu delphi.Sem v tom uplný začátečník a nevím si rady.
Zadání zní:
  Vytvořte pro danou celočíselnou obdelníkovou matici A(m,n) tzv. vektor řádkových maxim B(m).
Vstup:m,n,matice A
Výstup:Vektor B

Děkuju za odpověd.

Offline

  • (téma jako vyřešené označil(a) byk7)

#2 11. 05. 2010 22:11

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: matice a vektor

↑ jean08: a co neni jasne? zadani? jak to provest? a co vlastni napady a navrhy na reseni?

Offline

 

#3 11. 05. 2010 22:59

jean08
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: matice a vektor

↑ plisna: program mam,ale nahrubo,mam tam prebivajici procedury a nevim,ktery mam vymazat a take,jak do toho dopisu ten vektor B,tady je ten program:


program maticeblog;

{I-}
  for i := 1 to N do
     for j := 1 to M do readln (mat [i, j])

                { repeat
                 readln (sloupec [i] );
                 err:= IOResult;
                 if err <> 0 then writeln ('Chyba na vstupu - opakuj zadani');
                 until err = 0;    }
  {$I+}
end;
//+vypis matice
procedure pismat ( mat : MATICE; N, M : integer; text : string);
var i, j : integer;

begin
     writeln (text);
     for i := 1 to N do
     begin
       for j := 1 to M do write (mat[i, j] : 8);
       writeln
     end;
end; //-pismat

//+transpozice
procedure transp (var mat : MATICE; N,M : integer);
var i, j, pom : integer;
begin
  for i := 2 to N do
    for j := 1 to i - 1 do
      begin
        pom := mat[i, j]; mat[i, j] := mat[j, i]; mat[j, i] := pom
      end;
end;

procedure generuj (var A : MATICE; N,M : integer);
var i,j : integer;
begin
  for i := 1 to N do
    for j := 1 to M do  A[i, j]  :=i + j;
end;

procedure diagmat1 (var mat : MATICE; N : integer);
var i, j : integer;
begin
  for i := 1 to N do
    for j := 1 to N do
    if i = j then mat  [i,j] := 1 else mat [i,j] := 0;
end;

procedure naplnmat (var mat :MATICE; N, M, k : integer);
var i, j : integer;
begin
  randomize;
  for i  := 1 to N do
    for j  := 1 to M do  mat [i, j] := random(k);
end;

function maxsl (mat : matice; N, M, K : integer): integer;
var i,max : integer;
begin
  max := - maxint;
  for i  := 1 to N do
    if max<mat [i, k] then max :=  mat [i, k]

end;

//vlastni prikazy programu

var N, M, K : integer;
var mat1, mat2, A, B : MATICE;

begin
  writeln ('zadej N '); readln (N);
  writeln ('zadej M '); readln (M);
  ctimat (mat1, N, M);   //obdelnikova
  pismat (mat1, N, M, 'matice mat1');

transp (mat1, N, M);
pismat (mat1, N, M, 'matice mat1 transponovana');



generuj (A, N, M);
pismat   (A , N, M, 'matice A - i+j');

diagmat1 (mat2,N);
pismat (mat2, N, N,'vypis dig.matice mat2 s 1 na diagonale');

naplnmat (A,N,M,101);
pismat (A,N,M,'Matice A - nahodne hodnoty');
K := 2;
writeln ('Max hodnota v ', K:2,'sloupci matice A je ',maxsl (A,N,M,K));

readln

  //transpozice vyvolani

end.

Offline

 

#4 12. 05. 2010 09:21

some1
Zelenáč
Příspěvky: 1
Reputace:   
 

Re: matice a vektor

Tak předně je to domácí úkol na základě toho, co jste probírali a stačilo jen dávat pozor. Dotazy byly zodpovídány a podklady pro pomalejší a nepozorné máte. Dále je sprosté rozhodit dotaz na několik webů bez vlastní snahy o řešení. Ne, obšlehnutí cizího programu, kterému ani zbla nerozumíš, se nepočítá.

Ale k věci. Co je matice a řádkové maximum víš? Takže - pro reprezentaci matice použiješ (nejlépe) dvojrozměrné a pro ten vektor jednorozměrné pole. Inicializuješ nebo načteš tu matici (to pole). Pak v cyklu projdeš jednotlivé řádky matice a pro každý najdeš nejvyšší hodnotu, kterou uložíš na odpovídající pozici do vektoru (to druhé pole). Nakonec vypíšeš ten vektor.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson