Родились сегодня:
Кожухова Дарья


Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1031

Россия, пос. Теплоозёрск, ЕАО


ID: 226425

Konstantin Shvetski

Модератор

313

Россия, Северодвинск


ID: 401284

Михаил Александров

Советник

277

Россия, Санкт-Петербург


ID: 400669

epimkin

Профессионал

205


ID: 137394

Megaloman

Мастер-Эксперт

156

Беларусь, Гомель


ID: 404002

sglisitsyn

6-й класс

42


ID: 242862

Hunter7007

Мастер-Эксперт

29

Россия, Омск


8.10.3

30.10.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-03 01:16:01-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 201437

Раздел:  Pascal / Delphi / Lazarus
Автор вопроса: rushan (Посетитель)
Дата: 27.09.2021, 15:23 Консультация закрыта
Поступило ответов: 2

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Составить программу вычисления минимального произведения
одноименных компонент векторов x и y размерностью n.
Pascal.

Ответ # 281600 от puporev
Если правильно понял, то так.
Код
var x,y:array[1..50] of real;
    n,i:integer;
    mp:real;
begin
randomize;
repeat
write('Введите размер векторов от 2 до 50 n=');
readln(n)
until n in [2..50];
for i:=1 to n do
 begin
  x[i]:=9*random;
  y[i]:=9*random;
 end;
writeln('Вектор Х');
for i:=1 to n do
write(x[i]:5:2);
writeln;
writeln('Вектор Y');
for i:=1 to n do
write(y[i]:5:2);
writeln;
mp:=x[1]*y[1];
for i:=2 to n do
if x[i]*y[i]<mp then mp:=x[i]*y[i];
write('Минимальное произведение компонент с одинаковыми номерами=',mp:0:2)
end.

Последнее редактирование 27.09.2021, 16:07 puporev (Профессор)


puporev

Профессор
27.09.2021, 16:04
5
Ответ # 281601 от Megaloman
Еще вариант, основное отличие от ответа puporev - использование процедуры.
Код
Const
     Nmax = 10;
     Vmin = -20.0;
     Vmax = 20.0;

Type ReMass = Array[1..Nmax] Of Real;

Procedure RanMass(Var A : ReMass; i1, i2 : Integer; Vmin, Vmax : Real);
     Var i : Integer;
     Begin
          For i := i1 To i2 Do Begin
              A[i] := Random * (Vmax - Vmin) + Vmin;
              Write(A[i]:7:2);
              End;
          WriteLn;
     End;

Var
   i, n, iMin : Integer;
   x, y : ReMass;
   xy, xyMin : Real;

Begin
   WriteLn;
   Write('Input dimension of vector array 1<=n<=', Nmax,':  ');
   Read (n);
   WriteLN;
   If (n < 1) Or (n > Nmax) Then WriteLn('Wrong value n = ', n)
   Else Begin
      Write('    ');
      For i := 1 To n Do Write(i:7);
      WriteLN;

      Randomize;
      Write('x[i]');
      RanMass(x, 1, n, Vmin, Vmax);

      Write('y[i]');
      RanMass(y, 1, n, Vmin, Vmax);

      iMin := 1;
      xyMin := x[iMin] * y[iMin];
      Write('x*y ');

      For i := 1 To n Do Begin
          xy := x[i] * y[i];
          If xy < xyMin Then Begin
              xyMin := xy;
              iMin := i;
              End;
          Write(xy:7:2)
          End;

       WriteLN; WriteLN;
       Write('Min value x[i]*y[i] = ', xyMin:7:2, '  where i = ', iMin)
   End;
End.

Последнее редактирование 28.09.2021, 14:56 Megaloman (Мастер-Эксперт)


Megaloman

Мастер-Эксперт
28.09.2021, 14:52
Мини-форум консультации # 201437
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 244

Gluck

9-й класс

Рейтинг: 61

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 43

Вадим Исаев ака sir Henry

Мастер-Эксперт

Рейтинг: 2

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0