Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Информатика 10 класс программа с системой счисления

Степа Миллер Ученик (154), на голосовании 1 неделю назад
правильно ли написал прогу внести изменения в программу перевода чисел из десятичной системы, написанную на уроке: организовать ввод с клавиатуры основания новой системы счисления, обеспечить вывод ответа в формате "(первоначальное число) в десятичной системе = (новое значение) в (основание) системе счисления"
# Ввод числа в десятичной системе
num = int(input('Введи число в десятичной системе счисления\n'))

# Ввод основания новой системы счисления
base = int(input('Введи основание новой системы счисления\n'))

# Проверка валидности основания
if base < 2:
print("Основание системы счисления должно быть больше или равно 2.")
else:
result = ""
original_num = num # Сохраняем оригинальное значение для вывода

while num > 0:
result = str(num % base) + result # Получаем остаток и добавляем к результату
num = num // base # Делим на основание

print(f'{original_num} в десятичной системе = {result} в системе счисления с основанием {base}')
Голосование за лучший ответ
chillya Мастер (1213) 1 месяц назад
Ваш код в целом написан правильно и выполняет поставленную задачу. Однако, есть несколько моментов, которые можно улучшить:

1. Обработка случаев, когда вводимое число равно 0.
2. Обработка случаев, когда основание системы счисления больше 10, чтобы правильно отображать цифры от 10 до 35 (например, "A", "B", "C" и т.д.).
3. Добавление комментариев для улучшения читаемости.

Вот исправленный и улучшенный вариант вашей программы:

# Ввод числа в десятичной системе
num = int(input('Введи число в десятичной системе счисленияn'))

# Ввод основания новой системы счисления
base = int(input('Введи основание новой системы счисленияn'))

# Проверка валидности основания
if base < 2:
print("Основание системы счисления должно быть больше или равно 2.")
else:
result = ""
original_num = num # Сохраняем оригинальное значение для вывода

if num == 0:
result = "0" # Если число равно 0, результатом будет 0
else:
while num > 0:
remainder = num % base # Получаем остаток
if remainder >= 10: # Если остаток >= 10, используем буквы
result = chr(remainder - 10 + ord('A')) + result
else:
result = str(remainder) + result # Добавляем к результату
num = num // base # Делим на основание

print(f'{original_num} в десятичной системе = {result} в системе счисления с основанием {base}')

### Объяснение изменений:
1. **Обработка нуля**: Если введенное число равно 0, программа сразу выводит "0" как результат.
2. **Использование букв для чисел больше 9**: Если остаток больше или равен 10, программа использует `chr()` для преобразования чисел в соответствующие буквы (A, B, C и т.д.).
3. **Комментарии**: Добавлены комментарии для лучшего понимания кода.

Теперь программа должна корректно обрабатывать вводимые значения и выводить результат в нужном формате.
Степа МиллерУченик (154) 1 месяц назад
нейронка в соло хвхзв
chillya Мастер (1213) Степа Миллер, да я и сам мог бы написать,но тут она кратко и подробно расскажет почему и как
Степа МиллерУченик (154) 1 месяц назад
че за нейронка
chillya Мастер (1213) Степа Миллер, ChatGPT
Степа МиллерУченик (154) 1 месяц назад
подписка ?
chillya Мастер (1213) Степа Миллер, чутчут
Похожие вопросы