Назад | Начало урока | Вперед
Содержание

Глава 4

"Ввод и вывод"

Задачи из главы 4

4.1 Преобразования. Модифицируйте программы из примеров 3.5 и 3.11 таким образом, чтобы считать данные, значения которых находятся в определенных для таблиц пределах.

4.2 Усовершенствование класса Filer. Расширьте класс Filer, добавив к нему другой метод, который тоже называется open, но имеет параметр, показывающий сколько попыток можно сделать.

4.3 Остановка песни. Вернемся к задаче 3.9. Модифицируйте программу так, чтобы она приостанавливалась после каждого куплета песни и ждала ввода команды остановки или продолжения работы. Или наоборот, сделайте так, чтобы она реагировала на комбинацию клавиш (Ctrl-Z) или (Ctrl-D), останавливаясь в конце следующего куплета.

4.4 Расход топлива. Модифицируйте программу 2.6 так, чтобы она осуществляла чтение с дисплея всех значений, которые могут быть изменены.

4.5 Снова средние значения. Измените программу 2.5 так, чтобы она считывала отметки из файла и выводила на печать средний балл для каждого студента, а так же вычисляла общий средний балл. Для определения конца файла используйте исключительную ситуацию.

4.6 Победители марафона. Пользуясь сведениями из задачи 3.2, обеспечьте ввод информации о бегуне в интерактивном режиме. Модифицируйте программу так, чтобы она могла определять победителя пробега (подсказка: используйте для решения данной задачи пример 4.5).

4.7 Контроль веса. Измените задачу 3.2 так, чтобы данные читались с дисплея, а не генерировались как случайные числа.

4.8 Средний возраст. В молодежный клуб ходят 24 ребенка, которые распределены по четырем звеньям. Возраст детей от 7 до 11 лет. Напишите программу, которая считывает возраст детей в каждом звене, определяет средний возраст для каждого звена группы из 24 детей, а так же для группы в целом.

4.9 Разбиение файлов. Предположим, что у нас есть файл с численными данными, часть которых - отрицательные, а часть - положительные. Нужно сначала создать два файла для раздельного хранения положительных и отрицательных чисел, а затем вывести оба файла, причем файл с положительными значениями должен быть выведен первым. Используйте подходящий генератор случайных чисел, чтобы создать файлы, общее количество чисел в которых должно быть равно 100.

4.10 Длина дорожек компакт диска. Компакт-диск имеет 22 дорожки. Используя окно для определения времени звучания каждой из них в часах и минутах, вычислите общее время воспроизведения диска. Используйте поле со значением 1, которое преобразуется в нуль, чтобы сигнализировать программе об окончании ввода данных.

4.11 Длина дорожек компакт диска и обработка иключительных ситуаций. Модифицируйте задачу 4.10, используя обычные средства ввода-вывода языка Java( а так же класс Stream). Чтобы сигнализировать программе о том, что уже введена инф о последней дорожке, используйте комбинации клавиш (Ctrl-D, Ctrl-Z), а так же исключительные ситуации.

4.12 Заказ комнаты. Нам нужна система, которая подбирает наиболее подходящую комнату для размещения определенного количества людей.
- Создайте файл с номерами комнат и количеством людей, которая каждая из них может поместить.
- Выполнение программы должно начинаться с вывода на экран окна, где требуется указать количество людей и имя заказчика.
- Считывайте данные из файла, пока не найдете такую комнату, которая не более чем на 10% больше, чем требуется.
- Выведите отчет о заказе, если он успешно выполнен.
- Если программа не нашла комнату, отвечающую заданным критериям, она должна предложить любую свободную комнату, в которой может разместиться необходимое количество людей, даже если она слишком большая.

4.13 Резервирование комнаты. Мы модифицируем задачу 4.12 следующим образом:
- Сейчас мы можем оформить заказ, занося во второй файл данные с пометкой рядом с заказанной комнатой и именем заказчика. Этот файл затем станет файлом ввода, а данную комнату уже нельзя будет заказать.
- Программа может сообщать, что данная комната идеально подходит, но в данный момент заказана другим лицом.

4.14 Эксперименты. Сотрудники лаборатории снимают показания, а требуемый результат - это частное от деления первого показания на второе. Все показания хранятся в файле. Напишите программу, которая обрабатывает файл и отслеживает исключительные ситуации, возникающие от деления на ноль. В этом случае программа должна запросить замену обоих значений для получения точных данных и продолжить обработку результатов, пока не будет достигнут конец файла.

4.15 Экзамены. Экзаменационный билет содержит 4 вопроса в разделе А и четыре в разделе В. Ответ на кждый вопрос оценивается по 20-балльной шкале. Студенты должны ответить на пять вопросов, причем из них два должны быть из раздела А и два из раздела В. Если даны ответы на большее количество вопросов, первые засчитываются, а последующие отбрасываются. Количество баллов при отсутствии ответа на вопрос равно 0.

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

Пример исходных данных и результат выглядит так:

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

Напишите программу, которая будет читать в несколько приемов 28 показателей из файла и выводить в другой файл три фрагмента требуемой инф вместе с входными данными. Ниже представлены возможные данные и полученные на их основе результаты:

4.17 Счет партий в гольф. Площадка для гольфа города Саванна имеет девять лунок. Предположим, чтобы загнать мяч в лунку, игроку требуется от одного до пяти ударов. Количество очков, набранных игроком в гольф, равно количеству ударов, выполненных им у каждой лунки. В зависимости от результата предыдущей партии для получения фактического результата у игроков из счета вычитается определенное количество очков. Игрокам тоже интересно знать, кто из них набрал необходимую сумму очков. Победителем считается тот, кто набрал наименьшее количество очков.

Если бы подсчет очков при игре в гольф был компьютеризирован, то пример входных и выходных данных имел бы следующий вид:

Напишите программу, которая :

- Считывает из файла инф о количестве ударов, выполненных у каждой лунки для нескольких игроков, учитывая исключительную ситуацию, когда данные заканчиваются.
- Вычисляет общий счет каждого, а так же счет после вычитания очков и сравнивает полученное количество очков с номинальным.
- Определяет победителя и его счет.
- Выводит результаты вместе с входными данными.

4.18 Счетчики на автостоянках. Департамент транспорта города Саванна хочет принять решение относительно того, стоит ли начинать компанию по борьбе с нелегальной парковкой. Определенное число инспекторов этого департамента были посланы в различные районы города, где ограничено время парковки. В каждом районе установлены свои ограничения. Каждый офицер департамента транспорта должен следить за любыми десятью машинами в своем районе и записывать, в течение какого времени транстпортное средство было припарковано в зоне с ограниченным временем парковки.

Если время парковки более 50% машин будет превышать допустимую норму, департамент транспорта примет решение развернуть массированную компанию. Напишите программу, которая:

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


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz