Matematické Fórum

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

#1 19. 12. 2010 17:32 — Editoval Mr.Pinker (19. 12. 2010 17:47)

Mr.Pinker
Příspěvky: 542
Reputace:   12 
 

matice

zdravím chtěl bych poprosit jestli by ste mi nemohli poradit kde je chyba

Code:

Spočítejte součet dvou celočíselných matic a výslednou matici vypište na standardní výstup. Pokud součet není definován, vypište řetězec 'nelze'. Můžete předpokládat, že žádný rozměr matice nepřesáhne 1000 a prvky vstupních matic i výsledné matice se vejdou do datového typu longint.

Vstup:
Vstupní matice načítejte ze souboru s názvem 'matice.in'. Soubor bude obsahovat obě vstupní matice. Zápis jedné matice je následující:

n m
a11 a12 ... a1m
a21   .     ...
...     .  ... 
an1 an2 ... anm

n (1 ≤ n ≤ 1000) je počet řádků matice, m (1 ≤ m ≤ 1000) je počet sloupců matice. Následuje n řádků po m číslech (aij), které určují jednotlivé prvky matice.
Obě matice jsou ve vstupním souboru uvedeny pod sebou, odděleny prázdným řádkem.

Výstup:
Pokud součet matic není definován, vypište na standardní výstup řetězec 'nelze', jinak vypište výslednou matici ve formátu uvedeném výše (taktéž na standardní výstup).


Příklad 1:
vstup:

2 3
9 0 4
5 8 6

2 3
10 12 33
32 4 15

výstup:

2 3
19 12 37
37 12 21 

Příklad 2:
vstup:

3 3
1 0 0
0 1 0
0 0 1

2 2
9 99
19 91

výstup:

nelze

Code:

¨program soucetmatic;
type    matice=array[1..1000,1..1000]of longint;
var     mat1:matice;
        mat2:matice ;
        matc:matice;
        a,b,c,d,e,f,i,j:integer;
        t:text ;
begin
assign(t,'matice.in') ;
reset(t);
read(t,a);
b:=a;
readln(t,a);
c:=a;
for i:=1 to b do
for j:=1 to a do
read(t,mat1[i,j]);
read(t,a);
d:=a ;
readln(t,a);
e:=a;
if (b<>d) or (c<>e) then
begin
write('nelze');
exit;
end
else
begin
for i:=1 to b do
for j:=1 to a do
begin
read(t,mat2[i,j]);
matc[i,j]:=mat1[i,j]+mat2[i,j];
end;
end;
writeln(b,' ',c);
for j:=1 to b do
begin
for i:=1 to a do
begin
write(matc[i,j],' ');
end;
writeln(' ');
end;
end.

už sem to našel

Offline

  • (téma jako vyřešené označil(a) Mr.Pinker)

#2 19. 12. 2010 17:52

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: matice

Měl jsi tam prohozené
write(matc[j,i],' ');
za
write(matc[i,j],' ');
na 5. řádku odspodu.


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson