Дан двумерный массив Х из вещественных элементов размерностью n 1. В

Дан двумерный массив Х из вещественных элементов размерностью n
1. В одномерный массив переписать отрицательные элементы двумерного массива,расположенные ниже основной диагонали
2. Перенести в начало одномерного массива 1-ый элемент,значение которого больше разности наибольшего и малого частей.
Для отладки программки элементы массива сформировать с поддержкою генератора случайных чисел

Задать свой вопрос
Женек Каверзин
Именно. К образцу, от ГСЧ наполняем массив Х в промежутке [-50;50], тогда в одномерный Y попадут данные из промежутка [-50;0) и разность будет порядка +50. Далее-то что?
Вася Конюшко
Разве что искать элемент, по модулю больший разности...
Таисия Флипкова
почему 0? там ведь только отрицательные элементы -50;-1а если по модулю брать? 2-50=48 и если повезет и будет 49, то задание выполнено :D
Степа
Я указал интервал [..), а не [..], сам 0 туда не заходит, а -0.000001 - пожалуйста
Алексей
Я и говорю, по модулю если брать сами элементы, то выйдет
Анастасия Рипчанская
ааа...сейчас понятно
Максим Пекличев
Делаем?
Ветошко Ксения
да
Виталя Малкин
спасибо громадное)
Артём
Если надобно, подправьте const и и пределы Random
1 ответ
uses Crt;
Для древних сред Паскаль, работающих в DOS-режиме, снять комменты
 в операторах uses, ClrScr, ReadKey
const
  n = 9;
var
  x: array[1..n, 1..n] of real;
  y: array[1..n*(n-1) div 2] of real;
  i, j, k: integer;
  max, min, d: real;

begin
  Randomize;
  ClrScr;
  Writeln('Начальный массив');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      x[i, j] := 100*Random - 50;
      Write(x[i, j]:4:0)
    end;
    Writeln
  end;
  задание 1
  k:=0;
  for i:=2 to n do
    for j:=1 to i-1 do
      if x[i,j]lt;0 then begin Inc(k); y[k]:=x[i,j] end;
  Writeln('Сформированный одномерный массив');
  for i:=1 to k do Write(y[i]:4:0);
  Writeln;
  задание 2
  max:=y[1]; min:=max;
  for i:=2 to k do
    if y[i]gt;max then max:=y[i]
    else
      if y[i]lt;min then min:=y[i];
  d:=max-min;
  i:=1;
  while (абс(y[i])lt;=d) and (ilt;=k) do Inc(i);
  if ilt;=k then
    begin d:=y[1]; y[1]:=y[i]; y[i]:=d end;
  Writeln('Результирующий одномерный массив');
  for i:=1 to k do Write(y[i]:4:0);
  Writeln;
  ReadKey
end.

Тестовое решение:
Начальный массив
  37 -45 -17 -26  -6 -22  -1 -33  -3
 -27  33 -15 -14  33  37  28 -12 -36
   1  14  48  -2 -43  -1  17  34  -7
 -11  45  -5 -16  32  -8  32  -1 -40
  18  43 -13 -28  30  45  44 -38 -28
  38   0  10  48  28 -43 -12 -29 -44
   2 -11  48  33   7  10  35 -40 -28
 -48  39 -49  42   5 -16  26 -40  -5
  27 -21  34 -46   4  45 -22  29 -16
Сформированный одномерный массив
 -27 -11  -5 -13 -28   0 -11 -48 -49 -16 -21 -46 -22
Результирующий одномерный массив
 -49 -11  -5 -13 -28   0 -11 -48 -27 -16 -21 -46 -22

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт