Подсчитать сумму всех элементов массива - Free Pascal
Формулировка задачи:
Заполнить двумерный массив случайными числами. Размерность массива и диапазон генерации вводятся с клавиатуры. Составить программу, которая подсчитывает сумму всех элементов массива. Затем организовать формирование нового массива C, в котором элементы лежащие не на главной диагонали равны 1, а остальные элементы равны соответствующим элементам исходного массива C.
Решение задачи: «Подсчитать сумму всех элементов массива»
textual
Листинг программы
uses crt;
const max=10;
var c:array[1..max,1..max] of integer;
n,i,j,a,b,s:integer;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 2 до ',max,' n=');
readln(n);
until n in [2..max];
repeat
writeln('Введите лиапазон чисел a<b');
readln(a,b);
until a<b;
s:=0;
writeln('Исходная матрица');
for i:=1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=a+random(b-a+1);
write(c[i,j]:4);
s:=s+c[i,j];
end;
writeln;
end;
writeln('Cумма=',s);
writeln('Измененная матрица');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j<>i then c[i,j]:=1;
write(c[i,j]:4);
end;
writeln;
end;
readkey
end.
Объяснение кода листинга программы
- Объявлены переменные: c:array[1..max,1..max] of integer; n,i,j,a,b,s:integer;
- Задается размер матрицы от 2 до 10 с помощью цикла repeat-until.
- Задается диапазон чисел для заполнения матрицы с помощью цикла repeat-until.
- Выводится исходная матрица с помощью двух вложенных циклов for. Значения матрицы c[i,j] присваиваются значениям a+random(b-a+1).
- Сумма всех элементов матрицы c[i,j] сохраняется в переменной s.
- Выводится сообщение 'Cумма=' и значение переменной s.
- Выводится измененная матрица с помощью двух вложенных циклов for. Если j<>i, то c[i,j] присваивается значение 1.
- Программа ожидает нажатия клавиши с помощью функции readkey.