Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 09.06.2018
Сообщений: 6

Словари

09.06.2018, 18:32. Показов 1309. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу

Приняв способ изображения рационального числа в виде записи с двумя полями [числитель, знаменатель] целого типа написать программу, позволяющую:
а) определить, есть ли среди 10 рациональных чисел равные;
б) вычислить наибольшее из данных рациональных чисел (числа не обязательно имеют несократимую форму).
Для хранения рациональных чисел использовать словарь.

Спасибо!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2018, 18:32
Ответы с готовыми решениями:

Словари
Короче, с сайта получаю вот такой ответ. Как из него сделать словарь?

Словари
Создайте основной словарь, содержащий имена продавцов iphone, и модель. Создайте дополнительный словарь, содержащий названия моделей и...

Словари
Решаю задачи на pythontutor.ru У задачи следующее условие Не понимаю как правильно сформировать эти списки. file =...

4
7 / 7 / 9
Регистрация: 07.02.2016
Сообщений: 207
Записей в блоге: 53
09.06.2018, 23:25
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#для 5 ти элементов
#dictt={10:5,10:5,10:5,20:10,30:6}
dictt={10:5,10:2,10:1,20:1,30:6}
#типа дроби 10/5 20/4 30/6
steck=[]
for chisl,znam in dictt.items():
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:#если стек только пуст или там находится одинаковый элемент
      steck.append(otnosh)
    else:
       if len(steck)>=2:
           print('Est odinakovie drobi')
           break
       else:
         steck=[]
         steck.append(otnosh)
Добавлено через 15 минут
Доработанный:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#dictt={10:5,10:5,10:5,20:10,30:6}
dictt={10:5,10:2,10:1,20:1,30:6}
#типа дроби 10/5,10/2,10/1,20/1,30/6
steck=[]
maxx=10/5
n=0
for chisl,znam in dictt.items():
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:#если стек только пуст или там находится одинаковый элемент
      steck.append(otnosh)
    else:
       if len(steck)>=2:
           print('Est odinakovie drobi')
           break
       else:
         steck=[]
         steck.append(otnosh)
    if otnosh>maxx:
        maxx=otnosh
    n+=1
0
 Аватар для oldnick85
36 / 34 / 10
Регистрация: 15.07.2017
Сообщений: 128
10.06.2018, 10:40
Konst2016, Такой вариант найдёт только равные последовательные элементы. Кстати, если в качестве ключа в словаре использовать числитель, то не получится задать две разные дроби с одинаковыми числителями.
Так можно определить наличие равных в предложенной реализации словаря:
Python
1
2
3
4
5
l=[chisl/znam for chisl,znam in dictt.items()]
if (len(l)==len(set(l))):
    print("Нет одинаковых дробей")
else:
    print("Есть одинаковые дроби")
Добавлено через 13 минут
Да, максимум же ещё нужен:
Python
1
print("Максимум=", max(l))
0
7 / 7 / 9
Регистрация: 07.02.2016
Сообщений: 207
Записей в блоге: 53
10.06.2018, 12:18
Такой вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dictt={1:(10,5),2:(10,5),3:(4,2),4:(20,4),5:(30,6)}
maxx=10/5
steck=[] #люблю стек)
n=0
for drob in dictt.values():
    chisl=drob[0]
    znam=drob[1]
    otnosh=chisl/znam
    if not steck or steck[-1]==otnosh:
        steck.append(True)
    else:
       if len(steck)>= 2 :
            print("Есть одинаковые дроби")
       else:
           steck=[]
           steck.append(otnosh)           
           
    if otnosh>maxx:
        maxx=otnosh
    n+=1 
print('Наибольший элемент под номером:',n)
Добавлено через 1 час 3 минуты
Да сейчас вспомнил со стеком дают равенство последовательных элементов.Такой вариант:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dictt={1:(10,5),2:(10,5),3:(4,2),4:(20,4),5:(30,6)}    
l=[drob[0]/drob[1] for drob in dictt.values()] 
print('Список деления:',l)
if (len(l)==len(set(l))):
    print("Нет одинаковых дробей")
else:
    print("Есть одинаковые дроби")
    
maxx=10/5 
 
for i in l:
    if i>maxx:
        maxx=i
print('max:',maxx) 
 
n=1
for i in l:
    if i==maxx:
        break
    n+=1
print('Наибольший элемент под номером: ',n)
0
 Аватар для oldnick85
36 / 34 / 10
Регистрация: 15.07.2017
Сообщений: 128
10.06.2018, 23:41
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
maxx=10/5 
 
for i in l:
    if i>maxx:
        maxx=i
print('max:',maxx) 
 
n=1
for i in l:
    if i==maxx:
        break
    n+=1
print('Наибольший элемент под номером: ',n)
можно так:
Python
1
2
3
maxx = max(l)
print('max:', maxx) 
print('Наибольший элемент под номером: ', (l.index(maxx)+1))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2018, 23:41
Помогаю со студенческими работами здесь

Словари
Дан словарь, где ключами являются названия литературных произведений, а значениями — фамилии писателей. Создать словарь, где ключами...

Словари
Произошла такая ситуация. Есть словарь, в нем несколько ключей и мне нужно по необходимости помещать несколько описаний для одного ключа....

Словари
Нужно составить словарь из студентов, ФИО, возраст, группа, количество сданных экзаменов. Словарь вот такой: students = * 8 students...

Словари
Имеется словарь следующего вида: {1: , 4: , 5: }, где ключи - цифры от 1 до 9, а значения - списки, состоящие из некоторого количества...

Словари
Подскажите. Никкогда раньше не работал со словарями. Полскажите варимнт решения Даны 2 списка словарей с ключами name и age. Удалить из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru