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
Zdravíčko, mohl by mi někdo poradit prosím jak pokračovat v tomto úkolu?
Zadání: Naplňte dvourozměrné pole A o n řádcích a m sloupcích náhodnými čísly a vytiskněte ve tvaru matice. Sestavte funkci, která spočítá aritmetický průměr prvků všech lichých řádků. Výsledek vytiskněte pod matici.
Prozatím jsme nějak dali dohromady toto:
program matice;
const max = 3;
var A:array [1..10,1..10] of real;
r,s,ra:integer;
pom:real;
begin
randomize;
for r:=1 to max do begin
for s:=1 to max do
A[r,s]:=Random(10)+1;
end;
writeln('MATICE');
for r:=1 to max do begin
for s:=1 to max do
write(A[r,s]:5:0);
writeln;
writeln;
end;
for r:=1 to max do
begin
pom:=0;
for s:=1 to max do
pom:=pom+A[r,s];
A[r,max+1]:=pom/max;
end;
writeln('Vysledna matice s prumerem na konci sloupce');
for r:=1 to max do begin
for s:=1 to max+1 do
write(A[r,s]:5:1);
writeln;
writeln;
end;
readln;
end.
Takže mi tam chybí funkce, matici upravit na M na N a aby se aritmetický počítal pouze z lichých řádků. Věděl by někdo co a kde upravit? :(
Offline
Možná jsem zadání pochopil jinak, ale z věty "Výsledek vytiskněte pod matici." jsem nabyl dojmu, že by se měly vzít prvky ze všech lichých řádků a jejich průměr vypsat jako jedno číslo pod matici...?
Liché řádky se určí snadno pomocí testu indexu řádku na dělitelnost dvěma.
Offline
Zde je můj pokus, a vůbec netvrdím že by nemohl být lecjak lépe vyladěný - ale aspoń mně tady funguje.
program matice;
const n = 4; m=3; {* pocet radku a sloupcu nemusi byt stejny *}
max=10;
var A:array [1..max,1..max] of real; {* lepsi by bylo definovat tvar 1..n, 1..m *}
r,s,ra:integer;
pom,psp,ap:real;
begin
randomize;
writeln('MATICE');
for r:=1 to n do begin
for s:=1 to m do begin
A[r,s]:=Random(10)+1;
write(A[r,s]:5:0);
end;
writeln;writeln;
end;
pom:=0; psp:=0;
for r:=1 to n do
begin
if r/2 <> int(r/2) then
begin
for s:=1 to m do
begin
pom:=pom+A[r,s];psp:=psp+1;
end;
end;
end;
ap:=pom/psp;
writeln('Aritm. prumer lichych radku matice je',ap:6:3);
readln;
end.Offline
Stránky: 1