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

СОЗДАЙТЕ ПРОЦЕДУРУ, ПЕЧАТАЮЩУЮ НА ЭКРАНЕ СЛОВО HELLO И ПРОГРАММУ, КОТОРАЯ С ЕЕ НАПЕЧАТАЕТ СЛОВО HELLO 10 РАЗ.\ Delphi

Показать ответ
Ответ:
Сабри1111
Сабри1111
08.05.2020 00:37

1 - 1101101₂  = 155₈ = 109₁₀ = 6D₁₆

2 - 100101₂ = 45₈ = 37₁₀ = 25₁₆

3 -  10010₂  = 022₈ = 18₁₀ = 12₁₆

4 - 10101011₂ = 253₈ = 171₁₀ = AB₁₆

Объяснение:

1) 1101101₂ = 155₈

001 101 101 - разбиваем на разряды по 3 символа, а из двоичной в восьмеричную: 001 = 1, 101 = 5, поэтому 1 5 5.

1101101₂ =  2⁶*1 + 2⁵*1 + 2⁴*0 + 2³*1 + 2²*1 + 2¹*0 + 2⁰*1 = 64 + 32 + 0 + 8 + 4 + 0 + 1 = 109₁₀

1101101₂ = 6D₁₆

0110 1101 - разбиваем на разряды по 4 символа, а из двоичной в восьмеричную: 0110 = 6, 1101 = D, поэтому 6D.

2) 100101₂ = 45₈

4₈ = 100₂; 5₈ = 101₂.

45₈ = 8¹*4 + 8⁰*5 = 32 + 5 = 37₁₀

45₈ = 100101₂ = 25₁₆

Сначала переводим в 2-ю СС, потом в 16-ю СС: 0010 0101

0010₂ = 2₁₆; 0101₂ = 5₁₆.

3) в двоичную СС (mod - остаток от деления, каждый раз делим число на 2):

18 mod 2 = 0

9 mod 2 = 1

4 mod 2 = 0

2 mod 2 = 0

1 mod 2 = 1

Остаток от деления записываем в обратном порядке. Получаем: 10010₂.

В восьмеричную СС (mod - остаток от деления, каждый раз делим число на 8):

18 mod 8 = 2

2 mod 8 = 2

0 mod 8 = 0

Остаток от деления записываем в обратном порядке. Получаем: 022₈.

В шестнадцатеричной (mod - остаток от деления, каждый раз делим число на 16):

18 mod 16 = 2

1 mod 16 = 1

Остаток от деления записываем в обратном порядке. Получаем: 12₁₆

4) AB₁₆ = 10101011₂

A₁₆ = 1010₂; B₁₆ = 1011₂

10101011₂ = 253₈:

берём число в 2-й СС, потом разбиваем на разряды по 3 числа: 010 101 011: 010₂ = 2₈, 101₂ = 5₈, 011₂ = 3₈.

10101011₂ = 16¹*10 + 16⁰*11 = 160 + 11 = 171

0,0(0 оценок)
Ответ:
MarySilverstone
MarySilverstone
10.05.2023 11:44

Решение "в лоб": на логических конструкциях.

isInt(s) - целочисленное ли число в строке

isFloat(s) - вещественное ли число в строке

Стоит внести ясность в конструкции на строках 25,  27 и 28. Начнём  по порядку:

1. (int(a) if isIntA else float(a)) + (int(b) if isIntB else float(b)) - сумма результатов двух тернарных операторов, имеющих вид:

<результат при True> if <условие> else <результат при False>

Если перевести на русский язык: <перевод строки в целочисленное число>, если <в строке a целочисленное число>, иначе <перевод строки в вещественное число>. Аналогично с выражением после +.

2. isIntOrFloatA ^ isIntOrFloatB - логическая операция XOR, которая возвращает True только в двух случаях: когда только один из операторов равен True или False.

3. 1 if isIntOrFloatA == False else 2 - аналогичная первому выражению запись тернарного оператора: если isIntOrFloatA равняется False (если первый аргумент - не число), то выводим 1, иначе - 2.

Код:

def isInt(s):    try:          int(s)        return True    except ValueError:        return False def isFloat(s):    try:          float(s)        return True    except ValueError:        return False def sum(a, b):  isIntA = isInt(a)  isFloatA = isFloat(a)  isIntB = isInt(b)  isFloatB = isFloat(b)  isIntOrFloatA = isIntA or isFloatA  isIntOrFloatB = isIntB or isFloatB  if isIntOrFloatA and isIntOrFloatB:    return (int(a) if isIntA else float(a)) + (int(b) if isIntB else float(b))  else:    if isIntOrFloatA ^ isIntOrFloatB:      return "{}st argument is not a number".format(1 if isIntOrFloatA == False else 2)    else:      return "all arguments are not a numbers" a = input() b = input() print(sum(a, b))
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота