Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Формализация и построение алгоритма




Введем обозначения: 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.


3. Вложенные циклы

Циклы, как For Next, так и Dо Loop могут быть вложенными. Вложенным называют цикл, входящий в тело другого цикла. Вложенность может быть многократная. Рассмотрим алгоритм и программу создания таблицы умножения.

Пример 3. Выведение на экран таблицы умножения

Постановка задачи

Вывести на экран таблицу умножения.

Блок-схема алгоритма показана на Рис. 6.

 

 

Рис. 6. Вложенные циклы. Таблица умножения

 

Внешний цикл с параметром i перебирает все номера строк таблицы умножения от 1 до 9. Для каждого номера строки во внутреннем цикле перебираются все номера столбцов j таблицы и печатается произведение номера строки на номер столбца. Код программы приведен в листинге 7.

Рис. 7.

 

 


Пример 4. Табуляция функций

 

Табулировать функцию f (x) = 3 х2 + в диапазоне значений аргумента х от -5 до 10 с шагом 0,5.

Код программы, решающей задачу примера 5, приведен в листинге Рис.8.

 

Рис. 8.

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

Следующая программа табуляции имеет такую проверку функции на отри­цательное подкоренное выражение и деление на ноль.

 

Результат работы программы на Рис.9.

 


Пример 5. Проверка функции на особые точки

Постановка задачи

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

в диапазоне значений аргумента х от -5 до 5 с шагом 1 и проверкой на особые точки.

Блок-схема алгоритма решения задачи.

 

Рис. 10.

Код программы, решающей задачу Примера 5, приведен в листинге Рис.11.

 

.

Рис. 11.

Решение задачи на Рис. 12

Рис. 12.
Пример 6.

Постановка задачи

Разработать алгоритм, записать код программы, ввести и отдалить проект определения суммы 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.
ПРИЛОЖЕНИЕ 2.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...