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
ahoj, ucim se na zkousku a momentalne delam:Vygenerujte matici o rozmerech 20x20 pomoci vzorce M[i,j]=round(sin(i+j)-cos(i)),matici vytisknete na obrazovku.dále zjistete sirku pasma matice a maximalni vzdalenost nenuloveho prvku od hlavni diagonaly.diagonalni matice ma sirku pasma 1.
muj kod:
var
Application: TMyApplication;
mat:array[1..20,1..20] of real;
i,j:integer;
begin
for i:=1 to 20 do begin
for j:=1 to 20 do
mat[i,j]:=round(sin(i+j)-cos(i));
end;
for i:=1 to 20 do begin
for j:=1 to 20 do
write(mat[i,j]:3:0);
writeln;
end;
readln;
end.poradte mi co je to sirka pasma matice?
Offline
↑ hans66:
Šířka pásme je podle mě maximální vzdálenost dvou nenulových prvků (přes řádky nebo přes sloupce). Kód vypadá zatím dobře:-)
Offline
↑ martisek: děkuji:-) akorat nevim jak tu podminku napsat:-/ nevim jestli to je dobre
var
Application: TMyApplication;
mat:array[1..20,1..20] of real;
i,j,pasmo:integer;
begin
for i:=1 to 20 do begin
for j:=1 to 20 do
mat[i,j]:=round(sin(i+j)-cos(i));
end;
for i:=1 to 20 do begin
for j:=1 to 20 do
write(mat[i,j]:3:0);
writeln;
end;
pasmo:=0;
for i:=1 to 20 do begin
for j:=1 to 20 do
if (mat[i+1,j]>0) and (mat[i-1,j]>0) and (mat[i,j-1]>0) and (mat[i,j+1]>0) then
pasmo:=pasmo+1;
end;
write('sirka pasma je:',pasmo);
readln;
end.Offline
↑ hans66:
To ne, to zjistiš jen počet kladných prvků. Napsal bych to asi tak:
pasmo:=0;
for i:=1 to 20 do
begin
Pocet_Nenulovych:=0;
j:=1;
While (mat[i,j]=0) or (j<20) do inc(j)
if mat[i,j]<>0 then
begin
Pocet_Nenulovych:=1; inc(j);
While (mat[i,j]<>0) or (j<20) do begin inc(j);Inc(Pocet_Nenulovych);end;
end;
if Pocet_Nenulovych>Pasmo then Pasmo:=Pocet_Nenulovch;
end;
// pak ještě totéž s přehozenými cykly
write('sirka pasma je:',pasmo);
readln;
Offline