Назка2006
09.01.2021 22:03

Дан линейный неупорядоченный массив целых чисел. Написать паскаль-программу двоичного поиска элемента со значением Х. Если такой элемент есть , то надо вывести его индекс в ИСХОДНОМ массиве.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ksenla200xxx
06.06.2023 08:39
Допустим, мы ведем счет дней недели с воскресенья и присваиваем дням такие номера:
0- Вс, 1- Пн, 2- Вт, 3- Ср, 4- Чт, 5- Пт, 6- Сб.
Определим, когда в январе было первое Вс.
Если 31 был Пн, то 4 недели назад, т.е. 31-28=3 числа тоже был Пн.
А Вс было перед Пн, т.е. 2 января.
Числа от 0 до 6 - это остатки целочисленного деления на 7.
Получается, что остаток деления числа 2 на 7, должен привести нас к нулю. А он равен двум.
Идея: вычтем из остатка 2, чтобы получился ноль.
Идея хороша для остатка 2, 3, 4, 5, и 6. Она даст нам значения 0, 1, 2, 3 и 4. А вот для остатков 0 и 1, она даст -2 и -1, что нехорошо.
Внесем корректировку. если получилось отрицательное значение, увеличим его на 7.
Проверим ,будет ли это работать.
1 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно
2 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верно
3 января - Пн (номер дня 1) алгоритм дает 3-2 = 1 - верно
4 января - Вт (номер дня 2) алгоритм дает 4-2 = 2 - верно
5 января - Ср (номер дня 3) алгоритм дает 5-2 - 3 - верно
6 января - Чт (номер дня 4) алгоритм дает 6-2 = 4 - верно
7 января - Пт (номер дня 5) алгоритм дает 0-2 = -2 и +7 = 5 - верно
8 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно
9 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верно

Все работает.

// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var chislo:=ReadInteger('Номер дня в январе 2011 года:');
  chislo:=chislo mod 7-2;
  if chislo<0 then chislo:=chislo+7;
  var y:string;
  case chislo of
  0:y:='Воскресенье';
  1:y:='Понедельник';
  2:y:='Вторник';
  3:y:='Среда';
  4:y:='Четверг';
  5:y:='Пятница';
  6:y:='Суббота'
  end;
  Writeln('Это ',y)
end.

Примеры
Номер дня в январе 2011 года: 31
Это Понедельник

Номер дня в январе 2011 года: 13
Это Четверг

Номер дня в январе 2011 года: 23
Это Воскресенье
0,0(0 оценок)
Ответ:
mrarmen1999mailru
22.11.2021 07:31
Приведенная программа принимает целые числа и выводит два значения: a - количество цифр в числе и b - произведение цифр, составляющих число. При вводе нуля программа завершает работу.  Ввод отрицательных чисел игнорируется.
1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35
Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35.
2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53
Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53.
3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0
Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль.
4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81
Максимальное произведение двух однозначных чисел равно 9х9=81.
5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1
Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота