Crosik Posted December 12, 2016 Report Share Posted December 12, 2016 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.