Сформировать двумерный массив!!! - 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.

Объяснение кода листинга программы

  1. Создается переменная mas типа array[1..m] of integer, которая представляет собой массив целых чисел размером m.
  2. Создается переменная matr типа array[1..n] of mas, которая представляет собой матрицу строк, где каждая строка представлена в виде массива целых чисел размером m.
  3. Определяется процедура Summ, которая принимает в качестве аргумента массив ms и переменную sm, и выполняет следующие действия:
    • Инициализирует переменную sm значением 0.
    • Использует цикл for для прохода по каждому элементу массива ms.
    • Если значение элемента ms[i] больше 0, то увеличивает значение переменной sm на сумму этого элемента и всех предыдущих положительных элементов.
  4. Создается переменная b типа array[1..n] of mas, которая представляет собой массив строк, где каждая строка представлена в виде массива целых чисел размером m.
  5. Создается переменная f типа text, которая представляет собой текстовый файл.
  6. Определяются три переменные i, j и s типа integer, которые будут использоваться для прохода по массиву b.
  7. Выполняется инициализация массива b с помощью цикла for, где каждый элемент массива устанавливается равным случайному числу от -10 до 9.
  8. Создается файл f с именем file1.txt с помощью функции assign.
  9. Открывается файл f для записи с помощью функции rewrite.
  10. Выводится заголовок Matrica B: на экран и в файл f с помощью функции writeln.
  11. Для каждой строки массива b выполняется следующий блок кода:
    • Выводится содержимое строки массива b[i,j] на экран и в файл f с помощью функций write и write(f,b[i,j]:4).
    • Выводится символ новой строки writeln для перехода на следующую строку.
  12. Закрывается файл f с помощью функции close.
  13. Выполняется цикл for, где каждая строка массива b проходит по каждой строке массива matr.
  14. Вызывается процедура Summ для каждой строки массива b[i], передавая в качестве аргумента переменную sm.
  15. Выводится сумма элементов строки на экран с помощью функции writeln.
  16. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.714 из 5
Похожие ответы