BlackRabbit
Янв. 15, 2014 12:44:24
Нужно написать программу, которая будет гадать по по номеру страницы, строки и слова в тексте. Должна производить следущие действия:
1. Открыть для чтения в текстовом режиме файл, находящийся в директории (уже готов).
2. Вывести на экран количество страниц в тексте и запросить у пользователя номер страницы, строки и слова при помощи input().
3. Вывести на экран получившееся слово и спросить, хочет ли пользователь повторить гадание.
При этом в условии сказано, что на странице помещается 40 строк по 50 символов в каждой. Предположим, что пользователь ввел x, y, z. Тогда нужная страница будет представлять собой подинтервал в тексте вида . Соответственно, строка будет подинтерваом внутри страницы вида. Разделите строку на слова и выдайте слово с z.
Заранее спасибо!
4kpt_II
Янв. 15, 2014 13:04:39
Отлично. Что Вы уже наваяли?
BlackRabbit
Янв. 15, 2014 13:46:33
Вот только самое начало, что мне удалось
BlackRabbit
Янв. 15, 2014 14:43:53
Прошу прощения, в условии обнаружилась ошибка. Следует читать вот так:
“Нужно написать программу, которая будет гадать по по номеру страницы, строки и слова в тексте. Должна производить следущие действия:
1. Открыть для чтения в текстовом режиме файл, находящийся в директории (уже готов).
2. Вывести на экран количество страниц в тексте и запросить у пользователя номер страницы, строки и слова при помощи input().
3. Вывести на экран получившееся слово и спросить, хочет ли пользователь повторить гадание.
При этом в условии сказано, что на странице помещается 40 строк по 50 символов в каждой. Предположим, что пользователь ввел x, y, z. Тогда нужная страница будет представлять собой подинтервал в тексте вида . Соответственно, строка будет подинтерваом внутри страницы вида. Разделите строку на слова и выдайте слово с z.
При этом в условии сказано, что на странице помещается 40 строк по 50 символов в каждой. Предположим, что пользователь ввел x, y, z. Тогда нужная страница будет представлять собой подинтервал в тексте вида (40*50*(х-1):40*50*х). Соответственно, строка будет подинтерваом внутри страницы вида (50*(х-1):50*х.) Разделите строку на слова и выдайте слово с z”.
BlackRabbit
Янв. 15, 2014 17:01:37
Наваял вот такой скрипт, прошу, проверьте… есть ошибки
TroSer
Янв. 15, 2014 23:37:40
я тут быстренько набросал на питоне 2.7
#!/usr/bin/env python
row = 50
page = row * 40
choice = 'yes'
textfile = open('text.txt', 'r')
text = textfile.read()
textfile.close()
pages = (len(text)-1)/page + 1
print 'Text contains %d pages' %pages
while choice == 'yes':
fortune_telling = raw_input('Enter page number, row number and word number separated by commas: ')
input_list = fortune_telling.split(',')
numbers = [int(x.strip()) for x in input_list]
required_page = text[page*(numbers[0]-1):page*numbers[0]]
required_row = required_page[row*(numbers[1]-1):row*numbers[1]]
required_word = required_row.split()
print required_word[numbers[2]-1]
choice = raw_input('Do you want to repeat? yes or no: ')
конечно вариант кривоват, нужно добавить проверку, что введена страница не больше чем есть в файле или меньше 0, то же самое со строками на странице и словами в строке, ну и диалог с продолжением…
и еще может быть проблема с разорванными словами, особенно в начале строки(страницы)