Diskuze: PASCAL - matice
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Zdravím,
co znamená výraz "nefunguje mi to"? Vždy piš, podle čeho soudíš, že ti to nefunguje (že to třeba píše chybyovou hlášku, nebo to špatně zobrazuje data atd.).
Jinak, zápis
array [1..5] of array [1..5] of Integer;
lze zkrátit na
array [1..5, 1..5] of Integer;
V zadání píšou, že máš vytvořit šest programů, takže to celé nemusíš cpát do jednoho (velkého) programu. Fakt, že v každém z nich musí být podprogram, bude splněn celkem triviálně, protože se ti bude hodit si udělat třeba podprogram na výpis matice (ale nejen na to). Ono ty jednotlivé podrpogramy pak půjdou celkem dobře zrecyklovat v dalších programech.
Pascal vůbec neovládám, takže jsem tam ten podprogram určitě vložil špatně. Ten program co jsem vložil výš jsem složil s toho co jsem našel na internetu. Potřebuji poradit s tím jak tam ty podprogramy vložit, a ještě s těmi operacemi mezi maticemi. :/
Hm, sice jsem se nedozvěděl, jakým způsobem ses pokoušel ten podprogram napsat a použít, ale nevadí. Zkusím dát příklad, jak se to obvykle dělává.
Předpokládám, že N, o kterém se zmiňuje zadání, je konstanta definovaná ve zdrojáku, například:
const
N = 10;
Pak si můžeš zadefinovat datové typy TMaticeNxN a TPolePrvkuNxN.
Type
TmaticeNxN = Array [1..N,1..N] Of Integer;
TPolePrvkuNxN = Array [1..N*N] Of Integer;
A pak můžeš mít třeba podprogram pro naplnění zadané matice náhodnými čísly:
Procedure NaplnMatici(Var M:TMaticeNxN; Min:Integer; Max:Integer);
Var
I, J : Integer;
begin
For J := 1 To N Do
For I := 1 To N Do
M[I, J] := Random(Max - Min + 1) + Min;
end;
A podrpogram pro výpis matice:
Procedure VypisMatici(Var M:TMaticeNxN);
Var
I, J : Integer;
begin
For I := 1 To N Do
begin
For J := 1 To N Do
Write(' ', M[I, J]);
Writeln;
end;
end;
A podrpogram pro sečtení matic A a B do matice C:
Procedure SetciMatice(Var A:TMaticeNxN; Var B:TMaticeNxN; Var C:TMaticeNxN);
Var
I, J : Integer;
begin
For I := 1 To N Do
For J := 1 To N Do
C[I, J] := A[I, J] + B[I, J];
end;
Tyhle podprogramy ti přímo dávají stavební kameny, jak vyřešit bod (1) zadání. Konkrétně takto:
...
Const
N = 5;
Type
...
Var
A : TMaticeNxN;
B : TMaticeNxN;
C : MaticeNxN;
begin
NaplnMatici(A, 0, 9);
naplnMatici(B, 0, 9);
SectiMatice(A, B, C);
Writeln('Matice A:');
VypisMatici(A);
Writeln('Matice B:');
VypisMatici(B);
Writeln('Matice C:');
VypisMatici(C);
end.
Netvrdím, že tohle řešení je nějak efektivní, ale vystačí si s celkem základními vlastnostmi jazyka. Pro splnění bodu (2) budeš muset napsat podprogram, který do pole L a S (mohou být typu TPoleprvkuNxN) načte liché a sudé prvky. Ty podrpogramy se budou v zásadě dost podobat těm, co jsem tu uváděl jako příklad.
P.S.
Hádám správně, že se blíží zkouška/zápočet?
Zkouška ne, jen musíme každý odevzdat 1 program,diagram a popis programu, abychom prošli do dalšího ročníku, a já blbec jsem si vzal programy od dalších 5ti lidí, to jen proto že jsem zvládal základy jazyka a myslel jsem si že tohle zvládnu taky A teď tady nad tím sedím a vůbec si nevím rady
Zdravím potreboval bych pomoct s UKOLEM, jsem byl nemocny 2 mesice a nepochytil jsem ukol...muzete mi prosim napsat jeden tenhle program? ZADÁNÍ: Matice MxM naplnit nahodnymi cisly od1 do 99,vypis prvky vedlejsi DIAGONALY, vypocti jejich soucet pomoci podprogramu,zobraz vysledek a matici.
Mno, duplicitně to tady na síti být asi nemusí, že?
Ale k tvému úkolu. Jde o triviální úkol, který by jsi s trochou snahy (když to hooodně přeženu) měl za víkend hotový. A protože za lenost se platí, ptám se. Co za to"?
Dobrý den,
Ve škole jsem dostal úkol: Matici MxM naplnit náhodnými čísly od -10 do
10, pomocí podprogramu určit průměry prvků na hlavní diagonále, prvků
pod hlavní diagonálou a prvků nad hlavní diagonálou, pomocí procedury
vypiš výsledky sestupně. Zobraz matici.
Vůbec nevím jak na to, takže bych rád přivítal nějakou radu či pomoc
Děkuji!
Ahoj, založ na to vlastné vlákno a rád ti pomôžem Neriešme tvoj problém v 3 roky starom príspevku v komentároch aj keď je tu celkom dosť už naznačené A rovno by si mohol poslať hoci aj minimum tvojho pokusu.
Zobrazeno 13 zpráv z 13.