Формализация и построение алгоритма
Введем обозначения: s - накапливаемая сумма, k - искомое количество чисел. Алгоритм простой. В цикле последовательно формируем четные целые, используя формулу а:= а + 2, что в результате дает числа 2, 4, 6, 8,... и т. д. Сумму получаемых чисел накапливаем по формуле s:= s + а и подсчитываем, сколько чисел прибавлено с помощью счетчика k:= k + 1. Выход из цикла по условию s;::: г. Пока s < г, следует продолжать суммирование. Блок-схема алгоритма решения показана на рис..3.
Рис.3. Блок-схема алгоритма для Примера 2
Количество повторений неизвестно. Оператор цикла For Next использовать сложно. для решения задач с такой постановкой удобно при менять оператор цикла без счетчика DO Loop. Синтаксис основного оператора цикла без счетчика предусматривает возможность проверки условия выхода из цикла как до тела цикла (цикл с предусловием), так и после него (цикл с постусловием). В программе использован первый Запись кода программы решения задачи Код программы показан на Рис. 4.
Рис. 4.
Пример 2 а. Использование операторов D о Loop и End (Дополнительно) При работе с рассмотренными выше проектами, использующими оператор Select Case, для получения ответа на новый запрос требовалось вновь запускать приложение кнопкой Запуск. Исключить лишние затраты времени позволяет оператор Do Loop. Если функцию InputBox и строки оператора Select Case записать в качестве тела цикла оператора Do Loop, то можно непрерывно и бесконечно задавать приложению вопросы и получать ответы. В этом случае необходимо обеспечить команду окончания работы с приложением. Это можно сделать, например, с помощью оператора End, закрывающего приложение. Можно также использовать комбинацию клавиш <Ctrl>+<Break>, которая помогает оказан код про граммы, реализующий непрерывность запросов чтения вводимой при запросе температуры - вся числовая ось (числа положительные, отрицательные, целые и дробные). Для сокращения вводятся две строковых переменных а и b.
В тексте функции InputBox добавлена информация о коде выхода из цикла и завершения работы приложения. Для уменьшения длины логической строки она символом подчеркивания разбита на две физических строки. Беспрерывный процесс ввода вопросов и вывода ответов позволяет накапливать ответы на форме (Рис. 5). Исключить накопление можно записанным в начале тела цикла методом Cls.
Рис.5. Циклы, как For Next, так и Dо Loop могут быть вложенными. Вложенным называют цикл, входящий в тело другого цикла. Вложенность может быть многократная. Рассмотрим алгоритм и программу создания таблицы умножения. Пример 3. Выведение на экран таблицы умножения Постановка задачи Вывести на экран таблицу умножения. Блок-схема алгоритма показана на Рис. 6.
Рис. 6. Вложенные циклы. Таблица умножения
Внешний цикл с параметром i перебирает все номера строк таблицы умножения от 1 до 9. Для каждого номера строки во внутреннем цикле перебираются все номера столбцов j таблицы и печатается произведение номера строки на номер столбца. Код программы приведен в листинге 7. Рис. 7.
Пример 4. Табуляция функций
Табулировать функцию f (x) = 3 х2 + 2х в диапазоне значений аргумента х от -5 до 10 с шагом 0,5. Код программы, решающей задачу примера 5, приведен в листинге Рис.8.
Рис. 8. Для исключения прерываний работы программ табуляции функций, имеющих сложные формулы, необходимо производить их анализ на особые точки: деление на ноль или нулевой результат возводится в отрицательную степень, отрицательное подкоренное выражение - отрицательный аргумент функции Sqr, отрицательное или нулевое значение аргумента функции Log.
Следующая программа табуляции имеет такую проверку функции на отрицательное подкоренное выражение и деление на ноль.
Результат работы программы на Рис.9.
Постановка задачи Разработать алгоритм, записать код программы, ввести и отладить проект табуляции функции в диапазоне значений аргумента х от -5 до 5 с шагом 1 и проверкой на особые точки. Блок-схема алгоритма решения задачи.
Рис. 10. Код программы, решающей задачу Примера 5, приведен в листинге Рис.11.
. Рис. 11. Решение задачи на Рис. 12 Рис. 12. Постановка задачи Разработать алгоритм, записать код программы, ввести и отдалить проект определения суммы K членов арифметической прогрессии. Код программы, решающей задачу 6 приведен в листинге.
Рис. 13. Решение задачи выглядит следующим образом. Рис. 14 Рис. 14. Пример 7. Построить график функции y=sin(x) Код программы приведен в листинге
Рис. 15 Решение задачи выглядит следующим образом (Рис.16).
Рис. 16.
Пример 8. Демонстрация палитры из 16 цветов В листинге Рис.17. приведен код программы, которая рисует в форме 16 кругов, закрашенных разным цветом, задаваемым функцией QBColor (номер цвета).
Рис. 17. Решение задачи представлено на Рис.18.
Рис. 18. Пример 9. Коврик Программа, код которой приведен в листинге Рис. 19., кроме рисунка, демонстрирует принцип событийного управления. Используется событийная процедура, запускаемая щелчками мыши на форме (Forrn_Click). В качестве упражнения можно закрасить форму и окружности орнамента.
Рис. 19. Результат работы программы представлен на Рис.20
Рис. 20.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|