Сформировать двумерный массив!!! - Pascal
Формулировка задачи:
Помогите пожалуйста!!!!!!Нужно срочно решить задачу, а я даже не знаю с чего начать!!!!
Сформировать двумерный массив В размером Nx5 (N- количество строк, равное предпоследней цифре номера студенческого билета +2; 5 - количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить сумму положительных элементов в каждой строке матрицы С (оформить вычисление сумм в виде процедуры). Из полученных сумм составить одномерный массив D. Вывести элементы массива D на экран и в файл!
Решение задачи: «Сформировать двумерный массив!!!»
textual
Листинг программы
uses crt; const n=6;{кол строк} m=5;{кол столбцов} type mas=array[1..m] of integer;{тип массив-строка матрицы} matr=array[1..n] of mas;{тип массив строк-матрица} procedure Summ(ms:mas;var sm:integer);{процедура} var i:integer; begin sm:=0; for i:=1 to m do if ms[i]>0 then sm:=sm+ms[i];{в строке складываем положительные} end; var b:matr; f:text;{текстовый файл} i,j,s:integer; begin clrscr; randomize; for i:=1 to n do for j:=1 to m do b[i,j]:=random(20)-10;{создаем массив из случайных чисел от -10 до 9} assign(f,'file1.txt');{создаем файл} rewrite(f);{открываем для записи} writeln('Matrica B:');{заголовок на экран и в файл} writeln(f,'Matrica B:'); for i:=1 to n do begin for j:=1 to m do begin write(b[i,j]:4);{массив поситрочно на экран и в файл} write(f,b[i,j]:4); end; writeln; writeln(f,'');{на новую строку} end; close(f);{закрываем файл} for i:=1 to n do{идем по строкам} begin Summ(b[i],s);{вычисляем} writeln('Summa v stroke ',i,'=',s);{выводим на экран} end; readln end.
Объяснение кода листинга программы
- Создается переменная
mas
типаarray[1..m] of integer
, которая представляет собой массив целых чисел размеромm
. - Создается переменная
matr
типаarray[1..n] of mas
, которая представляет собой матрицу строк, где каждая строка представлена в виде массива целых чисел размеромm
. - Определяется процедура
Summ
, которая принимает в качестве аргумента массивms
и переменнуюsm
, и выполняет следующие действия:- Инициализирует переменную
sm
значением 0. - Использует цикл
for
для прохода по каждому элементу массиваms
. - Если значение элемента
ms[i]
больше 0, то увеличивает значение переменнойsm
на сумму этого элемента и всех предыдущих положительных элементов.
- Инициализирует переменную
- Создается переменная
b
типаarray[1..n] of mas
, которая представляет собой массив строк, где каждая строка представлена в виде массива целых чисел размеромm
. - Создается переменная
f
типаtext
, которая представляет собой текстовый файл. - Определяются три переменные
i
,j
иs
типаinteger
, которые будут использоваться для прохода по массивуb
. - Выполняется инициализация массива
b
с помощью циклаfor
, где каждый элемент массива устанавливается равным случайному числу от -10 до 9. - Создается файл
f
с именемfile1.txt
с помощью функцииassign
. - Открывается файл
f
для записи с помощью функцииrewrite
. - Выводится заголовок
Matrica B:
на экран и в файлf
с помощью функцииwriteln
. - Для каждой строки массива
b
выполняется следующий блок кода:- Выводится содержимое строки массива
b[i,j]
на экран и в файлf
с помощью функцийwrite
иwrite(f,b[i,j]:4)
. - Выводится символ новой строки
writeln
для перехода на следующую строку.
- Выводится содержимое строки массива
- Закрывается файл
f
с помощью функцииclose
. - Выполняется цикл
for
, где каждая строка массиваb
проходит по каждой строке массиваmatr
. - Вызывается процедура
Summ
для каждой строки массиваb[i]
, передавая в качестве аргумента переменнуюsm
. - Выводится сумма элементов строки на экран с помощью функции
writeln
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д