Advertisement
Alex_Fomin

Марь Яна

Nov 4th, 2015
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.40 KB | None | 0 0
  1. // Вычислить среднее арифметическое чисел, принадлежащих заданному
  2. // промежутку (Y;F) и лежащих на побочной диагонали и ниже её.
  3.  
  4. Program CPascal; uses crt;
  5.  
  6. const _max=50; // Максимальный размер матрицы
  7.  
  8. var matrix:array [1.._max,1.._max] of integer;
  9.     i,j,n,m,count:byte;
  10.     x_left,x_right,mid:real;
  11.     flag:boolean;
  12.    
  13. Begin
  14. // Зададим размер матрицы и проверим на допустимы диапазон...
  15. Repeat
  16. Write('Введите кол-во строк (1 <= N <= ',_max,'): '); Readln(N);
  17. if not (1 <= N) and (N <= _max) then Writeln('Ошибка: Неверный диапазон! Повторите ввод...');
  18. Until (1 <= N) and (N <= _max);
  19.  
  20. Repeat
  21. Write('Введите кол-во столбцов (1 <= M <= ',_max,'): '); Readln(M);
  22. if not (1 <= M) and (M <= _max) then Writeln('Ошибка: Неверный диапазон! Повторите ввод...');
  23. Until (1 <= M) and (M <= _max);
  24.  
  25. // Зададим диапазон поиска элементов...
  26. Write('Введите левую границу: '); Readln(x_Left);
  27. Write('Введите правую границу: '); Readln(x_Right);
  28.  
  29. // Проверим границы...
  30. if (x_Left > x_Right) then
  31.                           Begin
  32.                           Mid:=x_Left;
  33.                           x_Left:=x_Right;
  34.                           x_Right:=Mid;
  35.                           end;
  36.  
  37. // Заполним матрицу псевдослучайными числами и выведем на экран
  38. Writeln('Исходная матрица A(',N,'x',M,'):');
  39. for i:=1 to n do
  40.     Begin
  41.     for j:=1 to m do
  42.         Begin
  43.         // Получим псевдослучайные числа в интервале от -25 до 25
  44.         Matrix[i,j]:=Random(51)-25;
  45.         // Выводим элемент матрицы на экран
  46.         Write(Matrix[i,j]:5);
  47.         end;
  48.     Writeln;
  49.     end;
  50. Writeln;
  51.  
  52. // Найдем среднее арифметическое чисел побочной диагонали и ниже неё из заданного диапазона
  53. Mid:=0; // Обнуляем
  54. Count:=0; // Обнуляем
  55. Flag:=False; // Чисел в заданном диапазоне нет :(
  56.  
  57. for i:=1 to n do
  58.     for j:=1 to m do
  59.         if (j >= (n-i+1)) and ((x_Left <= Matrix[i,j]) and (Matrix[i,j] <= x_Right)) then
  60.                                                                                          Begin
  61.                                                                                          Flag:=True;
  62.                                                                                          Inc(Count); // Считаем кол-во элементов
  63.                                                                                          Mid:=Mid+Matrix[i,j]; // Считаем сумму
  64.                                                                                          end;
  65.  
  66. if Flag then
  67.             Begin
  68.             Mid:=Mid/Count;
  69.             Writeln('Среднее арифметическое: ',Mid:8:5);
  70.             end
  71.         else Writeln('Чисел в диапазоне [',x_Left,';',x_Right,'] лежащих на побочной диаголи и ниже неё - нет :(');
  72. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement