Advertisement
Alex_Fomin

Марь Яна

Nov 4th, 2015
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.41 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. Mid:=0; // Обнуляем
  38. Count:=0; // Обнуляем
  39. Flag:=False; // Чисел в заданном диапазоне нет :(
  40.  
  41. // Заполним матрицу псевдослучайными числами и выведем на экран
  42. Writeln('Исходная матрица A(',N,'x',M,'):');
  43. for i:=1 to n do
  44.     Begin
  45.     for j:=1 to m do
  46.         Begin
  47.         // Получим псевдослучайные числа в интервале от -25 до 25
  48.         Matrix[i,j]:=Random(51)-25;
  49.         // Выводим элемент матрицы на экран
  50.         Write(Matrix[i,j]:5);
  51.        
  52.         // Найдем среднее арифметическое чисел побочной диагонали и ниже неё...
  53.         if (j >= (n-i+1)) and ((x_Left <= Matrix[i,j]) and (Matrix[i,j] <= x_Right)) then
  54.                                                                                          Begin
  55.                                                                                          Flag:=True;
  56.                                                                                          Inc(Count); // Считаем кол-во элементов
  57.                                                                                          Mid:=Mid+Matrix[i,j]; // Считаем сумму
  58.                                                                                          end;          
  59.         end;
  60.     Writeln;
  61.     end;
  62. Writeln;
  63.                                          
  64. if Flag then
  65.             Begin
  66.             Mid:=Mid/Count;
  67.             Writeln('Среднее арифметическое: ',Mid:8:5);
  68.             end
  69.         else Writeln('Чисел в диапазоне [',x_Left,';',x_Right,'] лежащих на побочной диаголи и ниже неё - нет :(');
  70. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement