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