В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
123443123
123443123
06.01.2021 01:37 •  Информатика

Определите, какое число будет напечатано в результате выполнения следующего алгоритма:

Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=-(x+4)*(x+2);
end;
BEGIN
a:=-20; b:=20;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)>R)then begin
M:=t;
R:=F(t);
end;
end;
write(M);
END.

Показать ответ
Ответ:
natali250374mailru
natali250374mailru
29.09.2021 16:26

Общий расчёт делается через двоичный логарифм (его можно заменить делением двух десятичных или натуральных логарифмов) и потом округление до целого числа с избытком (т.е. округляем всегда вверх) обозначается вот такими палочками с выступами сверху ⌈ ⌉ .

Единственный нюанс в том, что это формула для N значений. А тут спрашивается, сколько разрядов нужно для хранения числа 134.

Я так понимаю, что при этом количество значений N = 134 + 1 = 135 (эта единица- учёт того, что есть ещё и нулевое значение, по крайней мере в такой форме хранения целых числел- в виде двоичного числа).

$ i = \lceil \log_2 N \rceil = \lceil \lg N / \lg 2 \rceil = \lceil \ln N / \ln 2 \rceil = \lceil \ln 135 / \ln 2 \rceil = \lceil 7{,}0768... \rceil = 8

Ну, либо можно использовать таблицу степеней двойки, и подобрать по ней такую степень, значение которой равно или чуть больше вашего числа. Опять же, здесь N- это количество значений, которые можно хранить в  i  двоичных разрядов (т.е. тут тоже надо считать и нулевое значение). Например:

i   $N=2^i

1   2

2   4

3   8

4   16

5   32

6   64

7   128    <-- это значение ещё не достаточное (меньше, чем 135)

8   256   <-- а вот это значение минимально необходимое (8 разрядов)

9   512

10   1024

11   2048

12   4096

13   8192

14   16384

15   32768

16   65536

0,0(0 оценок)
Ответ:
protivnuy
protivnuy
17.01.2021 07:59

#include <stdio.h>

#include <math.h>

#include <locale.h>

main()

{

   setlocale(0, "");

   int x;

   double answer = 0;

   printf("Введите значение X: ");

   scanf("%d", &x);

   if (x >= 0)

   {

     answer = sqrt(pow(x, 3) + 5);

   }

   else if (x > -3 && x < 0)

   {

     answer = 3*pow(x, 4) + 9;

   }

   printf("ответ: %f", answer);

}

Объяснение:

#include <stdio.h>  // Библиотека ввода - вывода

#include <math.h>  // Математическая библиотека

#include <locale.h>  // Библиотека локализации

main()

{

   setlocale(0, "");  // Локализация

   int x;  // Создание целочисленной переменной x

   double answer = 0;  // Создание вещественной переменной answer для хранения ответа

   printf("Введите значение X: ");  // Вывод сообщения в консоль

   scanf("%d", &x);  // Ввод значения x

   if (x >= 0)  // Если значение переменной x ≥ 0

   {

     answer = sqrt(pow(x, 3) + 5);  // Вычисляем верхнее выражение

   }

   else if (x > -3 && x < 0)  // Иначе, если значение переменной x > -3 И < 0

   {

     answer = 3*pow(x, 4) + 9;  // Вычисляем нижнее выражение

   }

   printf("ответ: %f", answer);  // Вывод ответа

}

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