20.7. Пример на Бейсике. Разведение кроликов
В данном и последующих разделах рассматриваются три примера, реализованные с помощью разных систем программирования: QBasic корпорации Microsoft (интерпретирующая версия Бейсика для операционной системы MS-DOS), Borland Delphi 4 (система визуального программирования на Паскале) и Borland C++Builder 4 (система визуального программирования на Си++) компании Inprise. Эти примеры включают в себя описание основных приемов работы с данными системами.
Постановка задачи
Итальянский математик Леонардо Фибоначчи придумал оригинальную числовую последовательность, названную в его честь, которая описывает рост численности поколений кроликов. Считается, что каждый год каждая пара животных приносит приплод — новую пару (самца и самку), которые в свою очередь начинают давать приплод через два года (смертность не учитывается). То есть каждый следующий член последовательности равен сумме двух предыдущих, а классическая последовательность Фибоначчи выглядит так:
1, 1, 2, 3, 5, 8, 13, 21, ...
Надо определить, через сколько лет будет достигнута популяция в N особей.
Запуск QBasic
Интерпретатор QBasic входит в стандартную поставку MS-DOS и расположен обычно в каталоге \DOS. Программа-интерпретатор называется qbasic.exe. После ее запуска на экране появится приветствие, которое пропускается нажатием на клавишу ENTER, после чего QBasic вызывает встроенную справочную систему на английском языке. Она закрывается нажатием клавиши ESC.
Рабочая область экрана (рис. 20.1) поделена на две части. В нижней части, в окне Immediate (Немедленное выполнение) можно вводить операторы Бейсика и тут же их выполнять.
Рис. 20.1. Окно программы Qbasic
Вывод на экран
Каждый язык программирования имеет оригинальные средства вывода информации, сильно зависящие от операционной системы. В Бейсике реализован оператор PRINT, который выводит значение следующего за ним выражения на экран, в новую строку.
Для перехода в окно Immediate (Немедленное выполнение) надо нажать клавишу F6. Чтобы сразу получить ответную реакцию от QBasic, достаточно набрать оператор
PRINT 2+2
и нажать клавишу ENTER, чтобы этот оператор выполнился.
На экране вывода появится число 4 (результат вычисления выражения 2+2), а в нижней строке — сообщение Press any key to continue (Нажмите любую клавишу для продолжения). Чтобы вернуться в QBasic, надо это сделать.
В операторе вывода можно указывать несколько значений через запятую, тогда они будут выведены в одной строке. Ранее веденный оператор можно изменить, добавив к нему текстовую подсказку:
PRINT "Сумма =” 2+3
Если теперь нажать клавишу ENTER, то на экране вывода в новой строке (под ранее напечатанной четверкой) появится фраза
Сумма = 5
Редактор программы
Таким образом можно познакомиться с работой разных операторов Бейсика, однако выполнять их удастся только по одному. Чтобы выполнить группу операторов, их надо объединить в программу.
Набор и редактирование исходного текста программы осуществляется в верхнем окне интерпретатора. Для перехода в него используется клавиша F6.
Решать данную задачу удобнее всего с помощью нисходящего метода. В программе будет бесконечный главный цикл, в котором осуществляется ввод очередного значения количества особей, происходит расчет числа лет, необходимых для размножения, полученный результат печатается, и цикл повторяется снова. Если человек вводит ноль, это будет означать, что программу надо завершить.
Ввод информации от пользователя
В Бейсике ввести в переменную значение с экрана можно с помощью оператора INPUT. Сначала указывается необязательная текстовая подсказка, а потом — имя переменной. Например, оператор
INPUT "Введите число: ", х
при выполнении напечатает в новой строке подсказку
Введите число:
и будет ожидать, когда пользователь введет число и нажмет клавишу ENTER. В результате в переменную х запишется новое, введенное с клавиатуры значение.
Главная часть программы
Ввод и редактирование текста программы осуществляется во встроенном редакторе QBasic, правила работы с которым аналогичны правилам работы с большинством известных текстовых редакторов.
Главная часть программы набирается в этом редакторе и должна выглядеть так (комментарии вводить не обязательно):
описание переменной N — числа особей
DIM N AS INTEGER
' начало бесконечного цикла
DO
1 ввод числа особей в переменную N
INPUT "Введите количество особей: ", N
если введен 0, то
IF N = О THEN
' закончить программу
END
END IF
' напечатать результат:
PRINT "Требуемое число лет: ", Years%(N)
' продолжить цикл с начала
LOOP
В тексте используется оператор END, который предназначен для немедленного завершения работы программы. Операторы, вложенные в цикл и в условные операторы, выделяются отступами, чтобы структура текста была более понятной и наглядной.
Основная, глобальная часть алгоритма реализована. Осталось «спуститься вниз» и запрограммировать функцию Years%(), которая в качестве аргумента получает количество особей и возвращает число лет, требуемое для их разведения.
Типы данных в Бейсике
В конце названия функции Years% указан символ %. Таким образом в Бейсике описывается тип возвращаемого функцией значения. Допустимые символы приведены в таблице.
Тип переменной | Символ в конце имени переменной |
INTEGER | % |
STRING | $ |
DOUBLE | # |
Добавление новой функции
В QBasic имеется удобная возможность добавить в программу новую функцию, избежав при этом дополнительного ручного кодирования. Это делает команда Edit > New Function (Правка > Создать функцию). В появившемся диалоговом окне надо ввести название функции Years% и нажать клавишу ENTER. Основной текст программы временно пропадет, и появится автоматически сгенерированное описание новой функции:
FUNCTION Years%
END FUNCTION
Для того чтобы вернуться обратно к главному тексту, а из него — к любой введенной подпрограмме, необходимо использовать клавишу F2. При ее нажатии на экран выводится список всех созданных подпрограмм, а в первой строке — имя главного модуля.
Функции Years% надо указать список аргументов. В данном случае он будет состоять из одного параметра:
FUNCTION Years%(X AS INTEGER)
Расчет популяции
Так как для определения нового члена последовательности Фибоначчи требуется знать значения двух предыдущих членов, прежде всего надо описать три локальных переменных F1, F2 и F3, хранящие три очередных значения последовательности. Исходно первые три значения 1,1 и 2 запишутся в переменные F1, F2 и F3 явно, а в дальнейшем новые значения будут вычисляться программно.
Сам расчет представляет собой условный цикл, который выполняется до тех пор, пока очередное значение не превысит заданное количество особей. Число таких циклов — число лет — будет подсчитываться в локальной переменной-счетчике YearsNum, первоначально имеющей значение 3.
FUNCTION Years%(X AS INTEGER)
' описание переменных
DIM Fl AS INTEGER, F2 AS INTEGER, F3 AS INTEGER
DIM YearsNum AS INTEGER
' задание начальных значений
Fl = 1: F2 = 1: F3 = 2: YearsNum = 3
1 цикл, пока число кроликов меньше заданного
DO WHILE F3 < X
1 определяем новый член последовательности
Fl = F2: F2 = F3
F3 = Fl + F2 ' увеличиваем число лет на 1:
YearsNum = YearsNum + 1 ' повторяем цикл
LOOP
' в качестве возвращаемого значения
' используется значение переменной YearsNum
Years% = YearsNum
END FUNCTION
Сохранение текста программы в файле
После того как текст программы набран, его желательно сохранить в файле, чтобы потом снова обращаться к нему, улучшать, изменять или просто повторно запускать готовую программу.
Сохранение текста программы в файле осуществляется командой File > Save (Файл > Сохранить), в результате чего на экране показывается диалоговое окно выбора каталога и имени файла. В качестве такого имени можно указать kroliki, выбрать нужный каталог и нажать клавишу ENTER. По умолчанию к названию kroliki припишется расширение .BAS. В дальнейшем эту программу можно снова загрузить в QBasic командой File > Open (Файл > Открыть).
Запуск программы
Для запуска программы надо перейти к ее главной части (с помощью клавиши F2) — при этом в самом ее начале автоматически добавится строка с объявлением только что определенной функции:
DECLARE FUNCTION Years% (X AS INTEGER)
Теперь надо нажать клавишу F5 (Запуск). Программа начинает работать. Возможный вариант диалога:
Введите количество особей: 10 Требуемое число лет: 7 Введите количество особей: 100 Требуемое число лет: 12 Введите количество особей: 1000 Требуемое число лет: 17 Введите количество особей: 10000 Требуемое число лет: 21 Введите количество особей: О
Первую сотню кроликов надо разводить довольно долго, зато потом их приплод будет увеличиваться стремительными темпами.
- Введение
- Глава 1 Информация и информатика
- 1.1. Информация в материальном мире
- 1.2. Данные
- 1.3. Файлы и файловая структура
- 1.4. Информатика
- Подведение итогов
- Вопросы для самоконтроля
- Глава 2 Вычислительная техника
- 2.1. История развития средств вычислительной техники
- 2.2. Методы классификации компьютеров
- 2.3. Состав вычислительной системы
- Вопросы для самоконтроля
- Глава 3 Устройство персонального компьютера
- 3.1. Базовая аппаратная конфигурация
- 3.2. Внутренние устройства системного блока
- Системы, расположенные на материнской плате
- Периферийные устройства персонального компьютера
- Практическое занятие
- Глава 4 Функции операционных систем персональных компьютеров
- 4.1. Обеспечение интерфейса пользователя
- 4.2. Обеспечение автоматического запуска
- 4.3. Организация файловой системы
- 4.4. Обслуживание файловой структуры
- Управление установкой, исполнением и удалением приложений
- Обеспечение взаимодействия с аппаратным обеспечением
- 4.7. Обслуживание компьютера
- 4.8. Прочие функции операционных систем
- Вопросы для самоконтроля
- Глава 5 Основы работы операционной системы windows 98
- 5.1. Основные объекты и приемы управления
- 5.2. Файлы и папки Windows
- 5.3. Операции с файловой структурой
- 5.4. Использование Главного меню
- 5.5. Установка и удаление приложений Windows
- 5.6. Установка оборудования
- Практическое занятие
- Исследовательская работа
- Глава 6 Настройка операционной системы Windows 98
- 6.1. Настройка средств ввода-вывода данных
- 6.2. Настройка элементов оформления Windows 98
- 6.3. Настройка элементов управления Windows 98
- 6.4. Настройка средств автоматизации Windows 98
- 6.5. Настройка шрифтов
- 6.6. Прочие настройки Windows 98
- 6.7. Справочная система Windows 98
- Практическое занятие
- Самостоятельная работа
- Глава 7 Стандартные приложения
- 7.1. Стандартные прикладные программы
- 7.2. Принципы внедрения и связывания объектов
- 7.3. Служебные приложения Windows 98
- 7.4. Стандартные средства мультимедиа
- Средства обеспечения совместимости с приложениями ms-dos
- Практическое занятие
- Глава 8 Компьютерные сети, Интернет, компьютерная безопасность
- 8.1. Компьютерные сети
- 8.2. Интернет. Основные понятия
- 8.3. Подключение к Интернету
- 8.4. Вопросы компьютерной безопасности
- Практическое занятие
- Глава 9 Получение информации из Интернета
- 9.1. Основные понятия World Wide Web
- 9.2. Работа с программой Internet Explorer 5.0
- 9.3. Поиск информации в World Wide Web
- 9.4. Отправка и получение сообщений
- Практическое занятие
- Глава 10 Создание простых текстовых документов
- 10.1. Общие сведения о текстовом процессоре
- 10.2. Приемы работы с текстами в процессоре
- 10.3. Приемы и средства автоматизации разработки документов
- Практическое занятие
- Глава 11 Создание комплексных текстовых документов
- 11.1. Ввод формул
- 11.2. Работа с таблицами
- 11.3. Работа с диаграммами
- 11.4. Работа с графическими объектами
- Практическое занятие
- Глава 12 Обработка данных средствами электронных таблиц
- Создание электронных таблиц Microsoft
- 12.2. Применение электронных таблиц для расчетов
- Практическое занятие
- Глава 13 Работа с базами данных
- 13.1. Основные понятия баз данных
- 13.2. Проектирование баз данных
- 13.3. Работа с субд Microsoft Access 2000
- Практическое занятие
- Глава 14 Приемы и методы работы со сжатыми жанными
- 14.1. Теоретические основы сжатия данных
- 14.2. Программные средства сжатия данных
- Практическое занятие
- Исследовательская работа
- 14.3. Программные средства уплотнения носителей
- Практическое занятие
- Исследовательская работа
- Глава 15 Введение в компьютерную графику
- Основы представления графических данных
- 15.2. Представление графических данных
- Практическое занятие
- 15.3. Средства для работы с растровой графикой
- 15.4. Средства для работы с векторной графикой
- Практическое занятие
- Исследовательская работа
- Практическое занятие
- Исследовательская работа
- Глава 16 Векторный редактор
- 16.1. Особенности CorelDraw
- 16.2. Настройка параметров CorelDraw
- Совместное использование панелей инструментов, свойств, интерактивных средств
- Работа с графикой и текстом
- Практическое занятие
- Глава 17 Автоматизация обработки документов
- 17.1. Преобразование документов в электронную форму
- Практическое занятие
- 17.2. Автоматизированный перевод документов
- Практическое занятие
- Глава 18 Средства автоматизации научно-исследовательских работ
- 18.1. Компьютер как инструмент научной работы
- 18.2. Приемы работы с системой MathCad
- Практическое занятие
- Глава 19 Публикация web-документов
- 19.1. Создание Web-документов
- 19.2. Применение языка html
- 19.3. Работа в редакторе FrontPage Express
- 19.4. Публикация Web-документов
- Практическое занятие
- Исследовательская работа
- Глава 20 Основы программирования
- 20.1. Языки программирования
- 20.2. Системы программирования
- Алгоритмическое (модульное) программирование
- 20.4. Структурное программирование
- Объектно-ориентированное программирование
- 20.6. Проектирование программ
- 20.7. Пример на Бейсике. Разведение кроликов
- 20.8. Пример на Паскале. Раскрашивание круга
- Практические задания по программированию
- Рекомендуемая литература
- Глава 5 Основы работы операционной системы windows 98 114
- Глава 6 Настройка операционной 139
- Информатика. Базовый курс
- 196105, Санкт-Петербург, ул. Благодатная, д. 67в.
- 197110, Санкт-Петербург, Чкаловский пр., 15.