Напишите небольшой текстовый квест. пользователю сообщается, что его персонаж находится в комнате, из которой есть несколько ходов (не менее трёх). он должен выбрать, в какой из них пойти. в любом из ходов (хотя бы в одном) может быть ещё развилка. таким образом игрок выбирает ход один или два раза и приходит к какому-то концу — хорошему или нет (для каждого варианта прохождения лабиринта должно быть своё уникальное окончание). пользователь может выбирать вариант, набрав его номер или слово — на ваше усмотрение, но обязательно дайте ему инструкцию, как сделать выбор. если пользователь вводит неверный вариант, программа сообщает об ошибке и завершает работу.
пример работы такой программы:
вы находитесь в пещере на развилке. вы можете пойти "налево", "направо" или "прямо". введите одно из слов в кавычках для выбора.
налево
вы направились налево. через некоторое время вы дошли до двух дверей. вы выберете "левую" или "правую"? правую
вы смело открыли правую дверь. но за ней вас подстерегала гигантская подземная жаба, которая проглотила вас целиком!
примечания
данная дополнительно проверяется преподавателем.
формат ввода
вводятся две строки: предлагаемые пользователем логин и резервный адрес.
формат вывода
выводится одна строка: если все условия выполнены, то выводится «ok» (латиницей); если в логине присутствует «@», то выводится «некорректный логин»; если логин корректный, но в адресе отсутствует «@», то выводится «некорректный адрес».
1. 1,5 Кбайт
2. 8 бит
Объяснение:
1.
N = 2^i
N - мощность алфавита (количество символов в алфавите)
i - информационный вес одного символа алфавита
N = 64 символа
i = 6 бит (64 = 2^6)
I = K * i
I - информационный объём сообщения
K - количество символов в сообщении
i - информационный вес одного символа алфавита
K = 2048 символов
I = 2048 * 6 = 12288 бит
12288 бит = 12288 / 8 = 1536 байт (1 байт = 8 бит)
1536 байт = 1536 / 1024 = 1,5 Кбайт (1 Кбайт = 1024 байт)
2.
I = K * i
I = 32 Кбайт = 32 * 1024 = 32768 байт = 32768 * 8 = 262144 бит
K = 32768 символов
i = I / K
i = 262144 / 32768 = 8 бит
8 бит = 1 байт
C1D24000 - 16-ричная форма внутреннего представления числа -26,28125 в формате с плавающей точкой в 4-х байтовой ячейке.
Объяснение:
Сначала переводим число -26,28125 без знака в двоичное представление:
целая часть:
26 : 2 = 13 ост 0
13 : 2 = 6 ост 1
6 : 2 = 3 ост 0
3 : 2 = 1 ост 1
1 : 2 = 0 ост 1
итого целая часть 26 (10) = 11010 (2)
дробная часть:
умножаем дробную часть числа (и дробные части полученных произведений) на 2 до тех пор, пока результат не станет =1 или будет достигнута требуемая точность. Целые части результатов записываем по-порядку после запятой:
0,28125 * 2 = 0,5625 --> 0,0
0,5625 * 2 = 1,125 --> 0,01
0,125 * 2 = 0,25 --> 0,010
0,25 * 2 = 0,5 --> 0,0100
0,5 * 2 = 1 --> 0,01001
Получается дробная часть 0,28125 (10) = 0,01001 (2)
Собираем все число вместе: 26,28125 (10) = 11010,01001 (2)
Теперь надо представить его в формате с плавающей точкой.
В этом формате 4 байта = 32 бита.
Распределяются биты так:
1 бит отводится под знак числа 0 или 1.
8 бит - степень
23 бит - мантисса
В нашем случае число отрицательное, значит в первый бит запишем 1.
Теперь надо определить степень и мантиссу
Степень равна показателю степени старшего разряда целой части +127
В целой части 5 цифр, значит при нумерации с нуля старший разряд будет 4 степени: 11010 = 1,1010 * 2^4
Степень = 4+127=131 (десятичное число)
переведем его в двоичное: 131 (10) = 10000011 (2)
Степень = 10000011
Определим мантиссу:
для этого представим его как произведение на 2 (основание СС) в какой-то степени:
перенесем запятую так, чтобы перед ней оказалась только одна единица (старший разряд). Показатель степени двойки при этом будет равен номеру старшего разряда (нумерация с нуля):
11010,01001 = 1,101001001 * 2^4
осталось дополнить число до 23 знаков после запятой:
1,10100100100000000000000
Мантисса = 10100100100000000000000
Собираем все вместе:
знак степень мантисса
1 10000011 10100100100000000000000
Итого число -26,28125 в машинном представлении в 4-байтовой ячейке в формате с плавающей запятой = 11000001110100100100000000000000
Осталось перевести его в 16-ричное представление:
разбиваем число на блоки по 4 цифры начиная с конца и подставляем вместо каждого блока соответствующее ему 16-ричное значение:
1100 0001 1101 0010 0100 0000 0000 0000
C 1 D 2 4 0 0 0
11000001110100100100000000000000 (2) = C1D24000 (16)