Programowanie Pascal
Klodzia:
Program mi kompiluje ale w wyniku wyświetla mi tylko sumę ostatniego zestawu danych. Dlatego
proszę o poprawienie mi tego szczególiku. Ma pokazywać sumy każdego zestawu w pionie.
Zad.Dana jest macierz o m kolumnach i n wierszach. Oblicz sumę wszystkich elementów
znajdujących się w tej macierzy.
Wejście
W pierwszej linii wejścia znajduje się jedna liczba całkowita d (1 <= d <= 100), która oznacza
liczbę zestawów danych.
Każdy zestaw składa się z kilku linii. W pierwszej z nich znajdują się dwie liczby naturalne n
i m (1 <= n,m <= 500), które oznaczają odpowiednio liczbę wierszy i liczbę kolumn macierzy. W
kolejnych n liniach znajduje się po m liczb całkowitych z przedziału od −1000 do 1000, które
oznaczają kolejne elementy macierzy.
Wyjście
Na wyjściu należy dla każdego zestawu danych wypisać w osobnej linii sumę elementów
znajdujących się w macierzy.
begin
read(n,m);
for i:=1 to n do
for j:=1 to m do
s:=s+A[i,j];
writeln(s);
end;
readln(s);
end.
16 kwi 09:13
Klodzia: To mój kod
begin
read(n,m);
for i:=1 to n do
for j:=1 to m do
read (A[i,j];
end;
begin
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+A[i,j]
writeln(s);
end;
readln(s);
end.
16 kwi 09:17
b.: > W pierwszej linii wejścia znajduje się jedna liczba całkowita d (1 <= d <= 100), która
oznacza liczbę zestawów danych.
Tego nie robisz, najpierw powinnaś wczytać d, a potem zrobić jeszcze jedną pętlę (po zestawach
danych).
Jeszcze taki szczegół, że nie potrzebujesz tablicy A[i,j], możesz od razu sumować wczytywane
elementy, czyli z tych dwóch podwójnych pętli zrobić jedną.
16 kwi 09:31
Klodzia: program macierze;
var i,n,m,q,k,j,s:integer;
A:array[1..500,1..500] of integer;
To jest mój początek . Zapomniałam go przepisać
16 kwi 09:41
Klodzia: begin
readln(q);
for k:=1 to q do
Teraz już chyba cały kod
16 kwi 09:43
Klodzia: program macierze;
var i,n,m,q,k,j,s:integer;
A:array[1..500,1..500] of integer;
begin
readln(q);
for k:=1 to q do
begin
read(n,m);
for i:=1 to n do
for j:=1 to m do
read (A[i,j];
end;
begin
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+A[i,j]
writeln(s);
end;
readln(s);
end.
16 kwi 09:43
PW:
begin
readln(q);
for k:=1 to q do
begin
read(n,m);
for i:=1 to n do
for j:=1 to m do
read (A[i,j];
end;
begin
s:=0;
for i:=1 to n do
for j:=1 to m do
s:=s+A[i,j]
writeln(s);
end;
readln(s);
end.
Po co jest czerwona linia?
Zastanów się, jak działa "zielona pętla".
16 kwi 12:12
Klodzia: Czerwona linia żeby przy runie nie wywalalo do kodu tylko pokazało wynik i tam zostało. A
pętle jeszcze tak średnio rozumiem.
16 kwi 13:44
Klodzia: Poprawi mi ktoś i wytłumaczy czemu tak? Bo zależy mi najbardziej na zrozumieniu a nie na samym
rozwiązaniu.
16 kwi 13:45
b.: Tylko zielony blok jest w pętli po k, niebieski już jest poza, stąd problem.
16 kwi 14:51