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
Program si vyzada pres konzoli vlozeni prvku ctvercove matice 4x4 celych kladnych cisel. ziskanou matici vypise na konzoli a vytvori z ni jinou matici o stejne velikosti, ktera na kazde pozici bude obsahovat soucet vsech sousednich prvku matice vychozi.takto ziskanou matici program take vypise na konzoli. v nove matici program najde maximalni prvek a vypise na konzoli,cislo sloupce a radku,kde se v matici nachazi.
var
Application: TMyApplication;
i,j,max:integer;
mat1,mat:array[1..M,1..N] of integer;
begin
for i:=1 to M do begin //ctu prvky ktere zadava uzivatel
for j:=1 to N do
readln(mat[i,j]);
end;
for i:=1 to M do begin
for j:=1 to N do
write(mat[i,j]:3);//vypisu matici
writeln;
end;
writeln('matice upravena');
for i:=1 to M do begin
for j:=1 to N do
mat1[i,j]:=(mat[i+1,j]) + (mat[i-1,j]) + (mat[i,j+1]) + (mat[i,j-1]); //mat1 je rovna souctu okolnich prvku
end;
for i:=1 to M do begin //vypisi upravenou matici
for j:=1 to N do
write(mat1[i,j]:3);
writeln;
end;
max:=0;
for i:=1 to M do begin
for j:=1 to N do
if mat1[i,j]>max then
max:=mat1[i,j]; //prirazeni maxima
end;
writeln('max prvek je:',max); //vypisu max prve
write('pozice: radek ',i,' ','pozice:sloupek ',j); //vypisu pozici, tj sloupec a radek maximalniho prvku
readln;
readln;
end.chtel bych poradit, zadavani kladnych cisel jsem chtel pres '' if mat[i,j]>0 then write('cislo neni kladne') else '' ale to mi bohuzel nefnguje.
Dále bych chtel poradit s pozicí maximalniho prvku stale mi to pise radek4 a sloupek4.
posledni rada:jeste bych chtel aby pred kazdym zadanim mi to napsalo "zadej radek1" a "sloupek 1" az slupekn a radekn, kdyz tam dam writeln('zadej radek',i); tak mi to vypise 4
děkuji za rady a pripominky :-)
Offline
↑ hans66:
for i:=1 to M do begin
for j:=1 to N do
mat1[i,j]:=(mat[i+1,j]) + (mat[i-1,j]) + (mat[i,j+1]) + (mat[i,j-1])
ti zahlásí range check error...
Offline
↑ martisek: me to tu druhou matici udela...
co tedy na tom mam spatne?
for i:=1 to M do begin
for j:=1 to N do
mat1[i,j]:=(mat[i+1,j]) + (mat[i-1,j]) + (mat[i,j+1]) + (mat[i,j-1])
jak vypsat pozici toho maxima?sloupec a radek?
Offline
↑ martisek: děkuji za upozorneni
chtel bych poprosit jeste jak vypsat pozici maximalniho prvku?
var
Application: TMyApplication;
i,j,max,pozice:integer;
mat1,mat:array[1..M,1..N] of integer;
begin
for i:=1 to M do begin //ctu prvky ktere zadava uzivatel
for j:=1 to N do
readln(mat[i,j]);
end;
for i:=1 to M do begin
for j:=1 to N do
write(mat[i,j]:3);//vypisu matici
writeln;
end;
writeln('matice upravena');
for i:=1 to M do begin
for j:=1 to N do
mat1[i,j]:=(mat[i,j]) + (mat[i+1,j]) + (mat[i,j+1]); //mat1 je rovna souctu okolnich prvku
end;
for i:=1 to M do begin //vypisi upravenou matici
for j:=1 to N do
write(mat1[i,j]:3);
writeln;
end;
max:=0;
for i:=1 to M do begin
for j:=1 to N do
if mat1[i,j]>max then
max:=mat1[i,j]; //prirazeni maxima
end;
writeln('max prvek je:',max); //vypisu max prve
writeln('pozice: radek ',i,' ','pozice:sloupek ',j); //vypisu pozici, tj sloupec a radek maximalniho prvku
readln;
readln;
end.Offline
V místě, kde pamatuješ maximum:
max:=mat1[i,j]; //prirazeni maxima
si musíš ještě do dvou nějakých proměnných pamatovat i aktuální pozici i,j protože takto se ti na konci vždy vypíše maximální rozměr pole, do kterého ti doběhnou obě smyčky pro i,j
Offline