PollyDraw11
05.02.2022 17:47

Номер 3, сделать модуль числа и сложение 2 чисел.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
irina20042005
14.11.2021 06:13

procedure CalcArray (const Ax: array of Integer; var S: Integer; var M: Real); // var в параметрах означает, что переменная используется для возврата значения

var

i, c: Integer;

begin

S := 0;

c := 0;

for i := 0 to High (Ax) do begin

S := S + Ax [i]; // здесь накапливаем сумму элементов

c := c + 1;

end;

M := S / c; // когда найдена сумму, рассчитываем среднеарифметическое

end;

var

A: array [0..4] of Integer; // размерность массивов можно делать любой, но начинаться с 0

B: array [0..14] of Integer;

C: array [0..9] of Integer;

i, s: Integer;

m: Real;

begin

SetConsoleCP (1251);

SetConsoleOutputCP (1251);

Randomize; // инициализация датчика случайных чисел

WriteLn ('Массив 1:');

for i := Low (A) to High (A) do begin

A [i] := Random (10); // заполняем элементы массива случайными значениями

Write (IntToStr (A [i]) + ' '); // выводим их для просмотра

end;

CalcArray (A, s, m); // вызов процедуры

WriteLn; // показываем возвращаемые из функции переменные

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

WriteLn; // аналогично поступаем с другими массивами

WriteLn ('Массив 2:');

for i := Low (B) to High (B) do begin

B [i] := Random (10);

Write (IntToStr (B [i]) + ' ');

end;

CalcArray (B, s, m);

WriteLn;

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

WriteLn;

WriteLn ('Массив 3:');

for i := Low (C) to High (C) do begin

C [i] := Random (10);

Write (IntToStr (C [i]) + ' ');

end;

CalcArray (C, s, m);

WriteLn;

WriteLn ('Сумма элементов = ' + IntToStr (s));

WriteLn ('Среднеарифметическое = ' + FloatToStr (m));

end.

0,0(0 оценок)
Ответ:
Зорро2017
12.12.2021 08:59
Type
  Frac = record
    P: integer;
    Q: 1..32767
  end;

function gcd(a: integer; b: integer): integer;
{Нахождение НОД}
var
  i: integer;
begin
  while b <> 0 do
  begin
    a := a mod b;
    i := b; b := a; a := i
  end;
  result := a
end;

function RedFrac(a: Frac): Frac;
{Сокращение дроби}
var
  igcd: integer;
  r: Frac;
begin
  igcd := gcd(a.P, a.Q);
  r.P := a.P div igcd;
  r.Q := a.Q div igcd;
  RedFrac := r
end;

function Add(a, b: Frac): Frac;
{Сложение дробей}
var
  r: Frac;
begin
  r.P := a.P * b.Q + b.P * a.Q;
  r.Q := a.Q * b.Q;
  Add := RedFrac(r)
end;

function Mult(a, b: Frac): Frac;
{Умножение дробей}
var
  r: Frac;
begin
  r.P := a.P * b.P;
  r.Q := a.Q * b.Q;
  Mult := RedFrac(r)
end;

var
  m, n, k: Frac;

begin
  m.P := 4; m.Q := 15; {4/15}
  n.P := 9; n.Q := 25; {9/25}
  k := Add(m, n);
  Writeln(k.P, '/', k.Q);
  k := Mult(m, n);
  Writeln(k.P, '/', k.Q);
end.

Результат выполнения программы:
47/75
12/125
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота