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

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

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

Помогите с заданием: Дано: с клавиатуры вводятся два целых числа – М и К. 1<M<10, 1<K<10. (М – число строк, К – число столбцов) Требуется: сгенерировать матрицу размерности М х К из случайных вещественных чисел из интервала [-10, 10]. Вывести её на экран в отформатированном табличном виде. Определить и вывести на экран построчно только те строки, все элементы которых положительны Генерацию, обработку и вывод матрицы производить с помощью двух вложенных циклов. Внешний цикл – while, внутренний – for Я сгенерировал матрицу, надо только вывести положительные строки, а вместо них у меня выводит нули(0)и все. Помогите, измените код что бы выводил. Буду благодарен.
Листинг программы
  1. program project1;
  2. uses Math;
  3.  
  4. var i,j,k,M,fl:integer;
  5.  
  6. A:array[1..10,1..10] of integer;
  7. begin
  8. Read(K,M);
  9. randomize;
  10. for i:=1 to K do
  11. begin
  12. for j:=1 to M do
  13. begin
  14. A[i,j]:=random(20)-10;
  15. end;
  16. end;
  17. for i:=1 to K do
  18. begin
  19. for j:=1 to M do
  20. begin
  21. write(A[i,j]:4)
  22. end;
  23. writeln;
  24. end;
  25. i:=1;
  26. while i<=K do
  27. begin
  28. fl:=1;
  29. j:=1;
  30. while j<=M do
  31. begin
  32. If (A[i,j]<0)
  33. Then fl:=0;
  34. j:=j+1;
  35. end;
  36. If (fl=1)
  37. Then write (A[i,j]:4);
  38. i:=i+1;
  39. writeln;
  40. end;
  41. Read(K);
  42. end.

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

textual
Листинг программы
  1. program project1;
  2. var k,m,i,j,fl:integer;
  3.     mn:set of byte;
  4.     a:array[1..9,1..9] of double;//по условию размер(1;10)=[2..9]и она вещественная
  5. begin
  6. repeat
  7. write('Введите количество строк от 2 до 9 k=');
  8. readln(k);
  9. until k in [2..9];
  10. repeat
  11. write('Введите количество столбцов от 2 до 9 m=');
  12. readln(m);
  13. until m in [2..9];
  14. randomize;
  15. writeln('Исходная матрица');
  16. //генерация матрицы
  17. i:=1;
  18. while i<=k do//внешний цикл
  19.  begin
  20.   for j:=1 to m do//внутренний цикл
  21.    begin
  22.     a[i,j]:=-10+20*random;
  23.     write(A[i,j]:6:2)
  24.    end;
  25.   writeln;
  26.   i:=i+1;
  27.  end;
  28. //обработка матрицы
  29. i:=1;
  30. mn:=[];//множество для номеров нужных строк
  31. while i<=k do//внешний цикл
  32.  begin
  33.   fl:=1;
  34.   for j:=1 to m do
  35.   if a[i,j]<=0 then fl:=0;//есть не положительные
  36.   If fl=1 then mn:=mn+[i];
  37.   i:=i+1;
  38.  end;
  39. //вывод результата
  40. if mn=[] then write('Нет строк состоящих только из положительных элементов')
  41. else
  42.  begin
  43.   writeln('Строки состоящие только из положительных элементов');
  44.   i:=1;
  45.   while i<=k do//внешний цикл
  46.    begin
  47.     if i in mn then
  48.      begin
  49.       for j:=1 to m do//внутренний цикл
  50.       write(a[i,j]:6:2);
  51.       writeln;
  52.      end;
  53.      i:=i+1;
  54.    end;
  55.  end;  
  56. end.

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

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

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы