Заполнить матрицу заданной размерности из случайных вещественных чисел. Вывести ее по заданным условиям. - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите с заданием: Дано: с клавиатуры вводятся два целых числа – М и К. 1<M<10, 1<K<10. (М – число строк, К – число столбцов) Требуется: сгенерировать матрицу размерности М х К из случайных вещественных чисел из интервала [-10, 10]. Вывести её на экран в отформатированном табличном виде. Определить и вывести на экран построчно только те строки, все элементы которых положительны Генерацию, обработку и вывод матрицы производить с помощью двух вложенных циклов. Внешний цикл – while, внутренний – for Я сгенерировал матрицу, надо только вывести положительные строки, а вместо них у меня выводит нули(0)и все. Помогите, измените код что бы выводил. Буду благодарен.

Решение задачи: «Заполнить матрицу заданной размерности из случайных вещественных чисел. Вывести ее по заданным условиям.»

textual
Листинг программы
program project1;
var k,m,i,j,fl:integer;
    mn:set of byte;
    a:array[1..9,1..9] of double;//по условию размер(1;10)=[2..9]и она вещественная
begin
repeat
write('Введите количество строк от 2 до 9 k=');
readln(k);
until k in [2..9];
repeat
write('Введите количество столбцов от 2 до 9 m=');
readln(m);
until m in [2..9];
randomize;
writeln('Исходная матрица');
//генерация матрицы
i:=1;
while i<=k do//внешний цикл
 begin
  for j:=1 to m do//внутренний цикл
   begin
    a[i,j]:=-10+20*random;
    write(A[i,j]:6:2)
   end;
  writeln;
  i:=i+1;
 end;
//обработка матрицы 
i:=1;
mn:=[];//множество для номеров нужных строк
while i<=k do//внешний цикл
 begin
  fl:=1;
  for j:=1 to m do
  if a[i,j]<=0 then fl:=0;//есть не положительные
  If fl=1 then mn:=mn+[i];
  i:=i+1;
 end;
//вывод результата 
if mn=[] then write('Нет строк состоящих только из положительных элементов')
else
 begin
  writeln('Строки состоящие только из положительных элементов');
  i:=1;
  while i<=k do//внешний цикл
   begin
    if i in mn then
     begin
      for j:=1 to m do//внутренний цикл
      write(a[i,j]:6:2);
      writeln;
     end; 
     i:=i+1;
   end;
 end;  
end.

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

  1. Создаются переменные k, m, i, j, fl (количество строк, количество столбцов, внутренняя переменная для обработки, флаг для определения положительных чисел) и массив a (для хранения чисел).
  2. Пользователю предлагается ввести количество строк и столбцов от 2 до 9.
  3. Генерируется случайная матрица.
  4. Выводится исходная матрица.
  5. Производится обработка матрицы: проверяется наличие только положительных чисел в каждой строке.
  6. Если все числа в строке положительные, то номер строки добавляется в множество mn.
  7. Выводится результат: строки, состоящие только из положительных чисел.

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


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

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

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