Avetisyan575
?>

Нужна составить программу по данной блок-схеме(правая сторона)

Информатика

Ответы

Викторович Попков

program z1;

var x: real;

begin

readln(x);

x:=x/4;

if x>= 15 then

begin

x:=x+12;

if x>20 then

begin

x:=x*5;

x:=x-25

end

else

begin

x:=x*3;

x:=x+13

end

end

else

begin

x:=x+6;

if x>=10 then

begin

x:=x*11;

x:=x+24

end

else

begin

x:=x*4;

x:=x-8

end

end;

writeln (x)

end.

1. 20 (x = 4)

2. 220 (x = 148)

Объяснение:

Левая сторона - да, правая сторона - нет (относительно человека смотрящего на схему)

zmlavra

ответ (перепроверьте на всякий случай скобки, вроде должно быть всё верно, но там довольно замороченно, лучше ещё раз перепроверить):

from math import atan,log

a = [0.5, -1, -2]

b = [1.5, 0.5, 0]

p = [-4, -4, -4]

while True:

 try:

   x = float(input('Введите x: '))

   break

 except ValueError:

   print('Вводите число!')

if abs(x) < 0.2:

 for i in range(3):

   print(f'Вариант {i+1}: {a[i]**2 * x**3 + (b[i]**4 + 1.7)**0.5}')

elif abs(x) == 0.2:

 for i in range(3):

   print(f'Вариант {i+1}: {atan(2**x - abs(p[i]))}')

else:

 for i in range(3):

   print(f'Вариант {i+1}: {(log(abs(a[i])) + 4.3)**(1/3) + x}')

"Попроще" - без циклов, проверки ввода и массивов:

from math import atan,log

a1 = 0.5

a2 = -1

a3 = -2

b1 = 1.5

b2 = 0.5

b3 = 0

p1 = -4

p2 = -4

p3 = -4

x = float(input('Введите x: '))

if abs(x) < 0.2:

 y = a1**2 * x**3 + (b1**4 + 1.7)**0.5

 print('Вариант 1: ', y)

 y = a2**2 * x**3 + (b2**4 + 1.7)**0.5

 print('Вариант 2: ', y)

 y = a3**2 * x**3 + (b3**4 + 1.7)**0.5

 print('Вариант 3: ', y)

elif abs(x) == 0.2:

 y = atan(2**x - abs(p1))

 print('Вариант 1: ', y)

 y = atan(2**x - abs(p2))

 print('Вариант 2: ', y)

 y = atan(2**x - abs(p3))

 print('Вариант 3: ', y)

else:

 y = (log(abs(a1)) + 4.3)**(1/3) + x

 print('Вариант 1: ', y)

 y = (log(abs(a2)) + 4.3)**(1/3) + x

 print('Вариант 2: ', y)

 y = (log(abs(a3)) + 4.3)**(1/3) + x

 print('Вариант 3: ', y)

Roman913
1. Схематически записываем условие
Есть две команды: (1) ×3 и (2) -5
Тут я ввожу обозначения: в скобках некий "код" команды, а далее обозначение, что именно она делает. Команда с кодом 1 умножает на три, с кодом 2 - вычитает 5.
Теперь, что нам надо получить: 8 ⇒ 36, т.е. из 8 получить 36.

2. Анализируем, какое число может быть перед выполнением последней (т.е. пятой) команды.
Применим к результату команды, обратные к (1) и (2).
Действие, обратное умножению - это деление, вычитанию - сложение.
Для (1) получим 36/3 = 12, т.е. в результате выполнения первых четырех (пока в неизвестном порядке) команд должно получиться 12.
Для (2) получим 36+5 = 41.

3. Теперь анализируем, какой могла бы быть третья команда
Чтобы получить 12 после (1), нужно взять число 12/3 = 4.
Чтобы получить 12 после (2), нужно взять число 4+5=9.
Получить 41 после (1) невозможно, поскольку 41 на 3 не делится нацело.
Чтобы получить 41 после (2), нужно взять число 41+5=46.
Итак, имеем три числа-кандидата.
46 выглядит подозрительно, потому что получить его можно только из 51 при поскольку 46 на 3 не делится и не может быть получено при А получить 8 ⇒ 51 за две возможные операции не получится. Поэтому 46 отбрасываем.

4. Анализируем, какой могла бы быть вторая по порядку команда
Получить 4 после (1) нельзя, потому что 4 не делится на 3.
Чтобы получить 4 после (2), нужно взять число 4+5=9.
Чтобы получить 9 после (1), нужно взять число 9/3 = 3.
Чтобы получить 9 после (2), нужно взять число 9+5=14.

5. Рассматриваем, что можно получить из исходного числа
а) 8 после (1) дает 8×3 = 24 и получить 3, 9 или 14 из 24 при одной из имеющихся команд невозможно.
б) 8 после (2) дает 8-5 = 3 - это и есть решение проблемы.

6. Устанавливаем цепочку преобразований (код команды в скобках).
8-5 = 3 (2)
3х3 = 9 (1)
9-5 = 4 (2)
4х3 = 12 (1)
12х3 = 36 (1)

ответ: 21211 - набор команд

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Нужна составить программу по данной блок-схеме(правая сторона)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

isaev
Щербаков33
rebet61
artem
zerckaln
Sergeevich-Novikov
Svetlana1884
parolmm
borvalmok432
rukodelnizza1
зырянов_Юрьевна378
mariapronina720126
barg562
Джамал1009
ayanrsadykov