Skocz do zawartości
Zaloguj się, aby obserwować  
Crosik

Przekątne macierzy. Błąd

Polecane posty

Witam,

Mam takie zadanie:

Napisz program, w którym zdefiniowaną tablicę dwuwymiarową o rozmiarach NxN (maksymalnie 10x10) wypełniamy elementami losowymi z zakresu <-10,10>. Program ma wyświetlić tablicę na ekranie (każdy element na 3 polach), a następnie obliczyć sumę przekątnych tej tablicy.

 

Zostało przeze mnie stworzone coś takiego, ale z błędem...

 

program zadanie3;

 

uses

Math;

 

var

i, j, k, x: byte;

tab:array[1..10,1..10] of integer;

suma, suma1, suma2: integer;

 

begin

 

repeat

writeln('Podaj liczbe kolumn i wierszy: ');

readln(k);

until (k<=10);

 

randomize;

for i:= 1 to k do

begin

for j:= 1 to k do

begin

tab[i,j]:= random(21) - 10;

write(tab[i,j]:3);

end;

writeln;

end;

 

suma1:= 0;

suma2:= 0;

 

for i:= 1 to k do

begin

suma1:= suma1 + tab[i,i];

end;

 

x:= k;

 

for i:= 1 to k do

begin

if k mod 2 = 1 then

begin

if (i<>ceil(k/2)) and (x<>ceil(k/2)) then

suma2:= suma2 + tab[i,x];

x:= x - 1;

end

 

else if k mod 2 = 0 then

suma2:= suma2 + tab[i,x];

x:= x - 1;

end;

 

suma:= suma1 + suma2;

 

writeln('Suma elementow przekatnych: ', suma1);

writeln('Suma elementow przekatnych: ', suma2);

writeln('Suma elementow przekatnych: ', suma);

readln;

end.

 

Mianowicie przy podaniu nieparzystego k, sumę drugiej przekątnej liczy tylko z elementów znajdujących się nad elementem środkowym. Co zmienić, aby zostały dodawane również elementy znajdujące się na przekątnej, ale poniżej elementu środkowego?

 

Z góry bardzo dziękuję za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×