М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
алисатян2
алисатян2
23.02.2020 20:51 •  Информатика

Напишите на pascalabc дано n целых чисел. требуется выбрать из них два таких числа, произведение которых максимально. вводится сначала число n - количество чисел в последовательности (2 ≤ n ≤ 100). далее записана сама последовательность: n целых чисел, по модулю не превышающих 1000. выведите два искомых числа в любом порядке. если существует несколько различных пар чисел, максимальное произведение, то выведите любую из них.

👇
Ответ:
alexeypimkin
alexeypimkin
23.02.2020

var

  N: 2..100;

  a: array [1..100] of -1000..1000;

  max1, max2, MaxPr, i, j: integer;  {MaxPr - максимальное произведение, max1 и max2 - искомые числа}

function RangeOverfilling(Number: integer; Index: integer): integer; {Функция, возвращающая число в диапазон}
begin
  if Number in [1..Index] then result := Number;
  if Number > Index then result := Number mod Index;
  if Number < 1 then result := Index + Number mod Index;
end;

 

begin

  MaxPr:= -maxint; {Присваиваем максимальному проиведению начальное значение, равное максимальному числу типа integer, взятому со знаком -}

  writeln('Введите N');

  readln(N);

  for i:= 1 to N do

  begin

    writeln('Введите целое число, по модулю не превышающее 1000');

    readln(a[i]);

  end;

  for i:= 1 to N - 1 do

  for j:= 1 to RangeOverfilling(N - i, N) do

    if a[i] * a[i + j] > MaxPr then

    begin

      MaxPr:= a[i] * a[i + j];

      max1:= a[i];

      max2:= a[i + j];

    end;

  writeln('Пара чисел, дающих максимальное произведение: ', max1,' и ', max2);

end.

  

  

4,4(72 оценок)
Открыть все ответы
Ответ:
loooollik
loooollik
23.02.2020

1. 46 бит

2. 256 символов

Объяснение:

I = K * i

I - информационный объём текстового сообщения

K - количество символов в сообщении

i - информационный вес одного символа (число бит, используемых для записи одного символа)

N = 2^i

N - мощность алфавита (количество символов в алфавите)  

i - информационный вес одного символа (число бит, используемых для записи одного символа)

1.

Дано:

N = 512 символов

K = 37 символов

Найти:

I

512 = 2^i

512 = 2⁹

i = 9 бит

I = 37 * 9 = 46 бит = 5,75 байт

2.

Дано:

I = 2 Кбайт = 16 384 бит

K = 2 048 символов

Найти:

N

I = K * i

i  = I / K

i  = 16 384 / 2 048 = 8 бит

N = 2⁸ = 256 символов

1 байт = 8 бит

1 Кбайт = 1 024 байт

4,7(48 оценок)
Ответ:
donczowakateri
donczowakateri
23.02.2020
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

function NOD(a,b:integer):integer;
begin
  while b>0 do (a,b):=(b,a mod b);
  Result:=a
end;

procedure FracAdd(n1,d1,n2,d2:integer; var n,d:integer);
// сложение дробей n1/d1 + n2/d2 = n/d
begin
  (n,d):=(n1*d2+n2*d1,d1*d2);
  var k:=NOD(n,d);
  if k<>1 then (n,d):=(n div k,d div k)
end;

begin
  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1й дроби:');
  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2й дроби:');
  var m,n:integer;
  FracAdd(a,b,c,d,m,n);
  if n=1 then Writeln('Сумма=',m)
  else Writeln('Сумма=',m,'/',n)
end.

Пример
Введите числитель и знаменатель 1й дроби: 6 15
Введите числитель и знаменатель 2й дроби: 12 300
Сумма=11/25

Замечание: вводить только натуральные числа!
4,5(31 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ