с решением задачи (язык Python): Задача 6. Словарь синонимов
Одна библиотека поручила вам написать программу для оцифровки словарей слов-синонимов. На вход в программу подаётся N пар слов. Каждое слово является синонимом к парному ему слову.
Реализуйте код, который составляет словарь слов-синонимов (все слова в словаре различны), затем запрашивает у пользователя слово и выводит на экран его синоним. Обеспечьте контроль ввода: если такого слова нет, то выведите ошибку и запросите слово ещё раз. При этом проверка не должна зависеть от регистра символов.
Пример:
Введите количество пар слов: 3
1 пара: Привет - Здравствуйте
2 пара: Печально - Грустно
3 пара: Весело - Радостно
Введите слово: интересно
Такого слова в словаре нет.
Введите слово: здравствуйте
Синоним: Привет
Мой код ниже:
dictionary = dict()
for i in range(int(input('Введите количество пар слов: '))):
words = input('{} пара: '.format(i + 1)).lower().split(' - ')
dictionary[words[0]] = words[1]
for key in dictionary:
while True:
word = input('\nВведите слово: ').lower()
if key == word:
print('Синоним:', dictionary[key])
break
elif dictionary[key] == word:
print('Синоним:', key)
break
else:
print('Такого слова в словаре нет.')
В чём проблема:
1. Если пар синонимов больше, чем одна, надо чтобы программа остановилась сразу после первой проверки. Сейчас код этого не предполагает почему-то (очень хочется получить объяснение)
2. Если будет условно 2 пары синонимов, например такие:
1 пара: Привет - Здравствуйте
2 пара: Печально - Грустно
И сначала ввести слово "интересно", программа напишет, что такого слова нет в словаре. А если затем ввести слово "привет", то программа уже не будет проверять в этой паре, а сразу перейдёт к следующей. Тоже хочется исправить и получить объяснения.
!
Ответы на вопрос:
количество элементов в массивах одинаковое и равно n.a - первый массивb - второй массивc - третий массивi - цикловая переменная, индекс элемента массиваvara, b, c : array [1..100] of integer; n, i : integer; beginreadln (n); for i : = 1 to n doreadln (a [ i ]); [ввели первый массив]for i : = 1 to n doreadln (b [ i ]); [ввели второй массив] for i : = 1 to n do beginif i mod 2 = 0 then [проверка индекса элемента на чётность] c [ i ] = b [ i ]; elsec [ i ] = a [ i ]; end; [создали третий] for i : = 1 to n do writeln (c [ i ] : 4); [вывод третьего массива]end.можно всё это сделать одним циклом. vara, b, c : array [1..100] of integer; n, i : integer; beginreadln (n); for i : = 1 to n dobeginreadln (a [ i ]); readln (b [ i ]); if i mod 2 = 0 thenc [ i ] = b [ i ]; elsec [ i ] = a [ i ]; writeln (c [ i ] : 4); end; end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
oksankalahutina521.12.2022 02:40
-
themaximka4105.08.2021 08:53
-
LuiZa8716.02.2023 05:02
-
valeriyakolpas103.07.2022 15:26
-
Natalia1000020.01.2022 10:25
-
LineyNikki01.05.2023 18:36
-
kmay1106.02.2021 02:35
-
Petack10.07.2022 20:50
-
Lumperz25.12.2020 02:10
-
zetexer109.08.2021 08:54
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.