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

Глава 5

"Управление потоком"

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

5.1 Рулон пленки Сотрудники библиотеки обертывают книги пленкой. Они используют рулон шириной 2,2 метра и длиной 100 метров. Размер книг лежит в диапазоне от 20-14 до 21-30 см. Чтобы обернуть книгу, требуется кусок пленки, размер которого составляет два размера книги плюс по 4 см с каждой стороны. Если для поступившей книги не подходит оставшийся кусок, сотрудница отрезает от рулона новую полосу. Выберите произвольные размеры для 20 книг и покажите как можно эффективно использовать рулон указанного размера.

5.2 Транскрипция слов В английском языке есть слова иностранного происхождения, произношение и написание которых было адаптировано. Напишите программу, которая анализирует некоторый текст и корректирует окончания слов, например:
- ize меняет на ise
- or меняет на our

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

- внутри фигурных скобок обнаружена еще одна скобка.
- обнаружена закрывающая скобка без соответствующей ей открывающей скобки.
- в параграфе отсутствует парная закрывающая скобка.

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

Пример вводимых данных:

Этот отрывок текста имеет такую же длину, как и следующий комментарий. (Этот комментарий имеет такую же длину как и предыдущий отрывок текста. Можете проверить.) Можете проверить. ( Для этого

Пример выхода программы:

Этот отрывок текста имеет такую же длину, как и следующий комментарий. Можете проверить. ( Для этого
*** Нет закрывающей скобки

Комментарии составляют 50% текста

5.4 Чувствительные лекарства Есть лекарства, которые восприимчивы к изменению температуры и портятся, если в течение суток она изменяется более чем на 30 градусов цельсия. Температура измеряется и фиксируется каждые два часа. Напишите программу, которую могли бы использовать работники аптеки, чтобы определить нужно ли помещать лекарства в специальные камеры.

5.5 Управляемые аппараты Для управления некоторыми устройствами требуется вводить определенные последовательности чисел. Если последовательность состоит из одинаковых чисел, во время программирования можно облегчить свою работу. Напишите программу, которая считывает применяемые последовательности и выводит их в виде n*m, где m - вводимый элемент, а n - число, указывающее сколько раз должен повторяться элемент m. Эти инструкции выводятся в новой строке и заключаются в скобки. Следует отметить, что последовательность может состоять из одного числа. Вот один из вариантов вводимых и выходных данных программы:

20 20 20 20 20 20 20 20 20 20
(10*20)
50 50 50 50 50
(5*50)
30
(1*30)
0
(1*0)

5.6 Кролики! Одна любительница домашних животных обожает кроликов. Исходя из площади, необходимой для проживания одного кролика, она подсчитала, что в ее новом доме хватит места для 500 любимцев. Но кролики отличаются плодовитостью, и каждая пара взрослых особей, достигших 3-х месяцев, через каждые три месяца производит на свет в среднем по два кролика. Напишите программу, с помощью которой ее бедный муж смог бы ей доказать, что через несколько месяцев, в доме не останется места даже для хозяев. Определите сколько времени потребуется для перенаселения дома, и выведите таблицу, где бы отдельно указывалось количество взрослых особей, количество "несовершеннолетних" кроликов и общее поголовье.

5.7 Вновь Фибоначчи. В задаче 3.16 требовалось вывести последовательность Фибоначчи. Измените программу так, чтобы выводилось только каждое третье значение. Какое свойство характерно для этих значений?

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

(Первые шаги (Компьютер, 5) (Решение проблем (Определение, 10) (Общие черты, 15) (Алгоритмы, 20)) (Программы и процедуры, 25)) (Типы и циклы (Типы (Целые числа, 30) (Символы, 36) (Булевы переменные, 43)) (Циклы (Циклы, управляемые счетчиком, 49) (Циклы, управляемые условием, 52)))

(First steps (Computer, 5) (Solushen of problem (Definishen, 10) (Common feature, 15) (Algorithms, 20)) ( Programms and procedures, 25)) (Types and cycles (Types (Integer numbers, 30) (Characters, 36) (Boolean perem, 43)) (Cycles manadged counter, 49) (Cycles managed condition, 52))

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

Содержание
1. Первые шаги

1.1. Компьютер 5
1.2 Решение проблем
1.2.1 Определение 10
1.2.2 Общие черты 15
1.2.3 Алгоритмы 20
1.3. Программы и процедуры 25
2. Типы и циклы
2.1. Типы
2.1.1 Целые числа 30
2.1.2. Символы 36
2.1.3. Булевы переменные 43
2.2 Циклы
2.2.1 Циклы, управляемые счетчиком
2.2.2 Циклы, управляемые условием 52

5.9 Таможенный сбор. В Саванне специальным налогом облагаются все возимые иномарки. В настоящий момент с каждой машины взымается сумма, зависящая от ее стоимости. По этому критерию машины делятся на три категории:

Цена Сумма налога

< G25 000 ---> 10%
от G26 000 до G100 000 ---> G5000
> G100 000 ---> 15%

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

5.10 Почтовые штампы. Почтовое управление Саванны решило автоматизировать процесс отправки почты и для проставления штампов использовать принтер. Максимальная сумма, которую можно проставить на штампе равна G99,99, а его дизайн очень прост:

Саванна разбита на три почтовые зоны. Отправка письма весом 10 г стоит соответственно:
а) 50с
б) 90с
в) G1.10

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

5.11 Курсы обмена. Усовершенствуйте программу из примера 5.5 так, чтобы курсы можно было обновлять каждый день перед началом торговли.

5.12 Номера (в отеле) с ограничениями. Вернемся к примеру 4.12. Переделайте программу так, чтобы в ней использовались:
а) циклы while
б) определенные пользователем объекты-исключения

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


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

Hosted by uCoz