Задание размерности массива с клавиатуры - PascalABC.NET
Формулировка задачи:
есть работающая программа, нужно сделать так, что бы размерность матрицы вводилась с клавиатуры
кто может подсказать?
Решение задачи: «Задание размерности массива с клавиатуры»
textual
Листинг программы
var a:array[,] of integer;
n,rows, cols,i,j:byte;
sr:real;
begin
sr:=0;
writeln('строк:'); readln(rows);
writeln('столбцов:'); readln(cols);
setlength(a,rows,cols);
randomize;
for i:=0 to rows-1 do
begin
for j:=0 to cols-1 do
begin
a[i,j]:=-50+random(101);
write(a[i,j]:4);
if (j mod 2 = 0) then
begin
sr:=sr+a[i,j];
n:=n+1;
end;
end;
writeln;
end;
writeln('sr= ',sr/n);
end.
Объяснение кода листинга программы
- Объявляются переменные:
- a: массив размером [,] (двумерный массив) типа integer (целое число),
- n, rows, cols: целочисленные переменные типа byte (байт),
- sr: переменная типа real (число с плавающей точкой).
- Задаются значения переменным n, rows, cols с помощью функции readln().
- Вызывается функция setlength() для установки длины массива a в соответствии с значениями переменных rows и cols.
- Задается начальное значение переменной sr равное 0.
- В цикле for перебираются все строки массива a.
- Внутри цикла for перебираются все столбцы массива a.
- В каждой ячейке массива a[i,j] случайным образом генерируется число от -50 до 50 с помощью функции random(101).
- Сгенерированное число записывается в ячейку a[i,j].
- Если номер столбца j делится на 2 без остатка, то к переменной sr прибавляется значение ячейки a[i,j], а к переменной n прибавляется единица.
- После завершения внутренних циклов выводится на экран строка, содержащая значения переменных a[i,j] в формате 4-х знаков.
- После завершения внешнего цикла выводится на экран значение переменной sr, разделенное на переменную n.
- Код завершается.