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

Попрацюйте над об’єктом-шифратором. На вхід подаються числа, які відразу приховуються і з якими
всередині інкапсульованого методу проводиться випадкова
математична операція. Якщо ж вивести об’єкт, на екрані
з’явиться результат
Напищіть будьласка на пчармі ів

👇
Ответ:
malina78911
malina78911
21.03.2020

import random

class Cipher:

def __init__(self, number):

self.__number = number

def __encapsulate(self):

operation = random.choice(['+', '-', '*', '/'])

operand = random.randint(1, 10)

if operation == '+':

self.__number += operand

elif operation == '-':

self.__number -= operand

elif operation == '*':

self.__number *= operand

elif operation == '/':

self.__number /= operand

def get_result(self):

self.__encapsulate()

return self.__number

# Використання об'єкта-шифратора

number = int(input("Введіть число: "))

cipher = Cipher(number)

result = cipher.get_result()

print("Результат: ", result)

Объяснение:

цьому прикладі створюється клас `Cipher`, який має приватне поле `__number` для зберігання числа. Метод `__encapsulate()` випадковим чином обирає математичну операцію (додавання, віднімання, множення або ділення) та випадковий операнд, і застосовує цю операцію до числа. Метод `get_result()` повертає результат шифрування числа.

При запуску програми ви будете звернені до введення числа. Потім об'єкт-шифратор зашифрує це число, виконавши випадкову математичну операцію. Результат буде виведений на екрані. Кожний раз, коли ви викликаєте `get_result()`, ви отримаєте новий результат, оскільки операція випадково обирається кожного разу.

4,5(56 оценок)
Открыть все ответы
Ответ:
kirillBruchov
kirillBruchov
21.03.2020
Const
  n = 20;

type
  V = array[1..n] of real;

var
  x, y: V;
  i, k: integer;
  amax: real;

begin
  writeln('Введите ', n, ' положительных элементов массива Х');
  amax := -1E20;
  k := 0;
  for i := 1 to n do
  begin
    read(x[i]);
    {защита от дурака}
    if x[i] < 0 then x[i] := abs(x[i])
    else if x[i] = 0 then x[i] := 1;
    {сразу же находим значения элементов массива у и заодно нужный максимум}
    y[i] := 0.5 * ln(x[i]);
    if (y[i]>=3) and ((Trunc(y[i]) mod 3) = 0) and (amax<y[i]) then
    begin
      amax := y[i];
      k := i
    end
  end;
  writeln('  i        Xi          Yi');
  writeln('');
  for i := 1 to n do
    writeln(i:3,x[i]:12:4, y[i]:12:4);
  writeln;
  writeln('Искомый индекс:', k)
end.

Тестовое решение:

Введите 20 положительных элементов массива Х
365 7236 1243.4 1823 4.8 273 97.54 17000 42334 13443 323674 6787.23 100000 543433 17422.74732 19534.3 212 5454 7354.8 3153.67
  i        Xi          Yi

  1    365.0000      2.9499
  2   7236.0000      4.4434
  3   1243.4000      3.5628
  4   1823.0000      3.7541
  5      4.8000      0.7843
  6    273.0000      2.8047
  7     97.5400      2.2901
  8  17000.0000      4.8705
  9  42334.0000      5.3267
 10  13443.0000      4.7531
 11 323674.0000      6.3437
 12   6787.2300      4.4114
 13 100000.0000      5.7565
 14 543433.0000      6.6028
 15  17422.7473      4.8828
 16  19534.3000      4.9400
 17    212.0000      2.6783
 18   5454.0000      4.3021
 19   7354.8000      4.4516
 20   3153.6700      4.0282

Искомый индекс:14
4,5(79 оценок)
Ответ:
sergeyyakimov05
sergeyyakimov05
21.03.2020

Основная идея состоит в том, что каждая сумма – это сумма цифр, то есть она не может быть больше 18. Значит, надо разбивать каждое возможно получившееся число на однозначные и двузначные числа и смотреть, может ли такое быть.

1212 – возможно, например, из числа 666 (6+6 = 12, 6+6 = 12, итог: 1212)

129 – возможно, например, из числа 936 (9+3 = 12, 3+6 = 9, итог: 129)

123 – возможно, например, из числа 930

1218 – невозможно. Это число можно разбить только на два двузначных числа, но тогда 12 и 18 записаны в порядке возрастания, а по условию должно быть наоборот

1812 – возможно, например, из числа 993

312 – невозможно. Это число можно разбить либо на 3 и 12, либо на 31 и 2. В первом случае числа расположены в порядке возрастания, а во втором нельзя получить 31, так как сумма цифр не больше 18

912 – невозможно (аналогично с 312)

112 – возможно, например, из 920

Итого 5 чисел могут получиться.

ответ: 5

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