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. 2015 08:46 — Editoval justinblack (11. 05. 2015 08:52)

justinblack
Zelenáč
Příspěvky: 4
Reputace:   
 

Pascal matice prosím o pomoc

Dobrýn den dostal sem za úkol vytvořit v pascalu :
dvě matice 5x5 naplnit náhodnými čísly od 1-9,určete menší hodnotu z navzájem si odpovídající prvků z těchto matic a uložte ji  do třetí matice,všechny matice zobrazit (pomocí podprogramu)
programováni  mi vůbec nejde tak prosím o pomoc
neco malo jsem stvořil ale  nic mi stejnak nejde

program matka;
var i,j:integer;
    m1,m2,m3: array [0..4] of array [0..4] of  integer;

begin
writeln('matice 5x5 naplnit náhodnými čísly od 1-9... ');
writeln;
randomize;
for i:=0 to 4 do
  for j:=0 to 4 do
begin
m1[i,j]:= random(9)+1;
m2[i,j]:= random(9)+1;

If m1[i,j] < m2[i,j] then begin
    m3[i,j]:= m2[i,j];
end else begin
    m3[i,j]:= m2[i,j];
end;
procedure vypsanimat(i,j:integer; var m1:tmatice);
  var i,j:integer;
  begin
    for i:=0 to 4 do
      begin
        for j:=0 to 4 do write(m1[i,j],'');
        write(m1[i,j]:2'');
        writeln;
readln(m1[i,j]);
      end;
  end;
vypsanimat;
readln;
end.

Offline

 

#2 11. 05. 2015 13:42

jarrro
Příspěvky: 5490
Škola: UMB BB Matematická analýza
Reputace:   303 
Web
 

Re: Pascal matice prosím o pomoc

Code:

m1,m2,m3: array [0..4,0..4] of integer

MATH IS THE BEST!!!

Offline

 

#3 11. 05. 2015 15:23 Příspěvek uživatele justinblack byl skryt uživatelem justinblack.

#4 11. 05. 2015 16:15 Příspěvek uživatele justinblack byl skryt uživatelem justinblack.

#5 12. 05. 2015 19:57

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Pascal matice prosím o pomoc

ahoj ↑ justinblack:,

proberme Tvůj návrh:

var m1,m2,m3: array [0..4] of array [0..4] of  integer;

Toto kompilátor asi vezme, ale určitě lepší je deklarace ↑ jarrro:.

Proceduru nesmíš psát do těla jiné procedury, takže správná struktura je

program matka;
var i,j:integer;
    m1,m2,m3: array [0..4] of array [0..4] of  integer;

procedure vypsanimat(i,j:integer; var m1:tmatice);
  var i,j:integer;
  begin
    {sem vypsat celou proceduru vypsanimat}
  end;

{a až sem tělo procedury nebo programu}
begin
writeln('matice 5x5 naplnit náhodnými čísly od 1-9... ');
writeln;
......
vypsanimat;
readln;
end.

Máš-li matici deklarovanou jako matici celých čísel, pak na

m1[i,j]:= random(9)+1;
m2[i,j]:= random(9)+1;

zařve kompilátor, protože napravo jsou čísla typu real. Musí být

m1[i,j]:= trunc(random(9)+1);
m2[i,j]:= trunc(random(9)+1);

Procedura  vypsanimat má zřejmě matici jen vypsat, nikoliv načítat, takže  řádek

readln(m1[i,j]);

z ní vypusť. Vypusť rovněž

write(m1[i,j]:2'');

No a protože máš asi vypsat matici s nejmenšími čísly, tj. m3, musíš proceduru vypsanimat zavolat s touto proměnnou, tedy vypsanimat(m3) - předposlední řádek.


Budoucnost patří aluminiu.

Offline

 

#6 13. 05. 2015 19:01 — Editoval justinblack (13. 05. 2015 19:03) Příspěvek uživatele justinblack byl skryt uživatelem justinblack.

#7 13. 05. 2015 21:48

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Pascal matice prosím o pomoc

ahoj ↑ justinblack:,

zkusím formou poznámek:

program repete;

type matice= array [0..4,0..4] of integer;
{ deklarace typu, typ bývá zvykem začínat T, tedy TMatice, ať je jasné, že jde o datový typ}

var
  m1, m2, m3 : matice;
  i, j       : integer;
{deklarace proměnných}

procedure vypsanimat( var m:matice);
{ve dvou vnořených cyklech vypisuje matici}
var i,j:integer;
{programové závorky begin, end psát kvůli přehledu zásadně na samostatné řádky a odsazovat}
begin
  for i:=0 to 4 do
     begin
        for j:=0 to 4 do write(m[i,j],' ');
        writeln;
     end;
end;

begin
  writeln('matice 5x5 naplnit náhodnými čísly od 1-9... ');
{vypíše info}
  writeln;
  {odřádkuje}
  randomize;
  {"zamíchá" náhodná čísla}

  for i:=0 to 4 do
     for j:=0 to 4 do
   {postup po prvcích matice znovu ve dvou vnořených cyklech}
    {a znovu strašný chaos v begin - end, je potřeba trochu štábní kultury}
    begin
      m1[i,j]:= random(9)+1;
      m2[i,j]:= random(9)+1;
      {tady se trochu divím, že to funguje - chybí tady zkrácení na celé číslo - trunc}
       {dál už je to snad jasné...}
      If m1[i,j] < m2[i,j]
         then begin
                   m3[i,j]:= m1[i,j];
                end
         else begin
                   m3[i,j]:= m2[i,j];
                end;
    end;
  writeln('Matice1: ');
  vypsanimat(m1);
  writeln('Matice2: ');
  vypsanimat(m2);
  writeln('Matice3: ');
  vypsanimat(m3);
end.


Budoucnost patří aluminiu.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson