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
Stránky: 1
Dobrý den
mám problém s vytvořením algoritmu a vývojového diagramu u příkladu:
"Je dána matice typu n x n. Vyčítejte její stopu (součet čísel na hlavní diagonále)."
Programujeme v Delphi 7 v jazyce pascal. Potřebovala bych pomoct do 25.3. 6:00 - přemyšlela jsem nad tím a tuším přibližně jak by to mělo vypadat ale nemůžu to dát dohromady a nikdo mi zatím neporadil.
Děkuju
Offline
↑ Olin:
Nějak tak by to mohlo vypadat, bohužel s těma množinama typu i:=1....n mám trochu hokej. Zatím jsme ani nebrali načtení matice tak byla vděčná i za to.
Uvedu jednoduchý příklad jak si myslím že by ten program měl asi fungovat:
načtení matice n x n:
1 2 3
4 5 6
7 8 9
výpočet: 1 + 5 + 9
výsledek: 15
u toho výpočtu mě napadlo načítaní čísel po řádcích: 1.řádek 1.pozice (i) - i
2.řádek 2.pozice - i+1
3.řádek 3.pozice - i+2
.
.
.
Dělám tento typ algoritmu poprvé takže nevím jestli jsou moje úvahy zprávné a zadání dostatečně srozumitelné.
Offline
↑ Olin:
Myslím že jo - měli jsme na to úlohu o "tabelaci fce" jestli je to ono ale nemám z toho ještě oficiální správný výsledek podle kterého bych se řídila (dostáváme je s týdenním zpožděním). Akorát zadání je taky fce a já potřebuju nějak načíst celou matici n x n.
Offline
Tak co něco jako
const M = 1000;
(* cislo vetsi nez vsechny pripustne velikosti matice *)
var Matice: array[1..M, 1..M] of Integer;
i, j, n, Stopa: Integer;
begin
Writeln('zadejte velikost matice:');
Readln(n);
Writeln('zadejte matici, sloupce oddelene mezerou, radky enterem:');
for i := 1 to n do begin
for j := 1 to n-1 do Read(Matice[i, j]);
Readln(Matice[i, n]);
end;
(* cela matice je nactena v promenne Matice *)
Stopa := 0;
for i := 1 to n do Stopa := Stopa + Matice[i, i];
Writeln(Stopa);
end.Offline
Stránky: 1