Форум сайта python.su
Всем привет.
Так случилось, что начал изучать питон, да не просто так, а чтобы на нем еще и ЕГЭ сдать, а в дальнейшем и в Maya работать легче было. С языками программирования знаком на уровне Паскаля и своеобразной модификации Си++.
Начал читать книгу, прочел про основные типы объектов. Решил глянуть глянуть, а что можно из С части сделать, используя это.
На вход программе подаются сведения о пассажирах, желающих сдать свой багаж в камеру хранения на заранее известное время до полуночи. В первой строке сообщается число пассажиров N, которое не меньше 3, но не превосходит 1000; во второй строке – количество ячеек в камере хранения K, которое не меньше 10, но не превосходит 1000.
Каждая из следующих N строк имеет следующий формат:
<Фамилия> <время сдачи багажа> <время освобождения ячейки>,
где <Фамилия> – строка, состоящая не более чем из 20 непробельных символов;
<время сдачи багажа> – через двоеточие два целых числа, соответствующие часам (от 00 до 23 – ровно 2 символа) и минутам (от 00 до 59 – ровно 2 символа);
<время освобождения ячейки> имеет тот же формат.
<Фамилия>, <время сдачи багажа> и <время освобождения ячейки> разделены одним пробелом.
Время освобождения больше времени сдачи.
Сведения отсортированы в порядке времени сдачи багажа. Каждому из пассажиров в камере хранения выделяется свободная ячейка с минимальным номером. Если в момент сдачи багажа свободных ячеек нет, то пассажир уходит, не дожидаясь освобождения одной из них.
Требуется написать программу (укажите используемую версию языка программирования, например Borland Pascal 7.0), которая будет выводить на экран для каждого пассажира номер ему предоставленной ячейки (можно сразу после ввода данных очередного пассажира). Если ячейка пассажиру не предоставлена, то его фамилия не печатается.
Пример входных данных:
3
10
Иванов 09:45 12:00
Петров 10:00 11:00
Сидоров 12:00 13:12
Результат работы программы на этих входных данных:
Иванов 1
Петров 2
Сидоров 1
K, которое не меньше 10, но не превосходит 1000как это можно обозначить для input? int(input()) а дальше?
не более чем из 20 непробельных символов;тоже самое str(input()) - ?
Отредактировано sanya_rnd (Фев. 13, 2013 20:50:57)
Офлайн
Однозначно нужно парсить входные данные, для этого читайте про RE.
Не понял про каждый новый проход. У вас же вроде один ввод, а потом вывод результата для всех входных данных. По крайней мере так в примере. Можно использовать конечно базу для хранения результатов, но это излишне.
Почитайте про основные возможности языка хотя бы здесь. Задание простое, можно сделать в течении дня. А за 4 месяца так и гуй написть и вордовские отчеты прикрутить)
Офлайн
warik
Однозначно нужно парсить входные данные, для этого читайте про RE.Не понял про каждый новый проход. У вас же вроде один ввод, а потом вывод результата для всех входных данных. По крайней мере так в примере. Можно использовать конечно базу для хранения результатов, но это излишне.Почитайте про основные возможности языка хотя бы здесь. Задание простое, можно сделать в течении дня. А за 4 месяца так и гуй написть и вордовские отчеты прикрутить)
warikНачну в обязательном порядке
Однозначно нужно парсить входные данные, для этого читайте про RE.
warikУ меня в голове складывается образец БД: входные данные, каждое значение записывается, типа:
Не понял про каждый новый проход. У вас же вроде один ввод, а потом вывод результата для всех входных данных. По крайней мере так в примере. Можно использовать конечно базу для хранения результатов, но это излишне.
warik
Почитайте про основные возможности языка хотя бы здесь. Задание простое, можно сделать в течении дня. А за 4 месяца так и гуй написть и вордовские отчеты прикрутить)
Офлайн
Не думаю, что Лутц будет лучшим выбором если нужно относительно быстро освоить питон.
Лично я бы на Вашем месте посмотрел скринкасты по питону от Google Python Class, там вся необходимая информация для решения данной задачи есть. Видео в сумме на 2 часа и 4-5 домашних заданий, выходных более чем достаточно.
Можно в базу все писать, а потом сортировать и доставать, но зачем? Если нет смысла долгосрочно (более одного запуска) хранить данные, то в базе смысла нет.
Скажу так, хватит ходить вокруг да около, если синтаксис питона уже не ставит в ступор, то садитесь и начинайте делать наброски. А недостающие моменты ищите или спрашивайте. Это не тот случай, когда нужно планирование, юмл-диаграммы и юзер-стори)
Все что Вам нужно - это парс входных данных и алгоритм, его можно, да и нужно, наверное, сделать без привязки к языку.
Офлайн
чтобы на нем еще и ЕГЭ сдатьbrainFuck учи
Офлайн
Обрабатывайте данные во время чтения. За вариант “сначала все прочитать, а потом обрабатывать” снимут баллы :)
Регулярки использовать конечно можно, но имхо излишне это, и не уверен что их оценят проверяющие ЕГЭ.
sanya_rnd
которое не меньше 10, но не превосходит 1000
sanya_rndОграничения указаны больше для тех, кто будет писать на каком-нибудь С и статически выделять память под переменные. На питоне это не так важно. Проверять выполнение этих ограничений при чтении данных дополнительно не нужно.
не более чем из 20 непробельных символов;
Офлайн
Чтобы не создавать новую тему:
По введенному натуральному числу определите его последнюю цифру.
print(“Введите число: ”)
N = int(input())
result = str(N)
print(“Последняя цифра: ”, result)
Но такого в принципе не должно быть, потому что пример рассматривается в основных арифм. операциях.
Можно использовать %, но как узнать сколько нулей во втором операторе нужно (1…0)? Ведь len() для int не работает.
Офлайн
Ничче не понял. Может так?
num = input() if num.isalnum(): print('последняя цифра', num[-1])
Офлайн
ему вроде без преобразования надо
print('last - {}'.format(int(input())%10))
Офлайн
numsL = list(input().split()) mx = numsL.index(max(numsL)) #print(mx) print(numsL[mx])
100 4353465 3465734 2345236 67858
67858
12 10000 5450неверно
5450
5 5500 7600 100а здесь нормально.
7600
sergeekЯ это вчера и имел ввиду. Видимо поехал совсем немного не так понял. Сам же про это и написал. Утром проснулся и все исправил сам.
ему вроде без преобразования надо
Отредактировано sanya_rnd (Фев. 22, 2013 10:34:13)
Офлайн