Лабораторная работа №7
Тема: Программная реализация несложного алгоритма
Цель: изучить на основе готовой программы операторы циклической структуры языка QBasic и научиться составлять программы с использованием операторов цикла «ДО» и «ПОКА».
Теоретические сведения к лабораторной работе
Определение циклической программы
Если необходимо выполнить одинаковые действия, в которых изменяется только какая-либо величина, то применяются операторы цикла.
Циклической называется программа, которая является записью циклического алгоритма, то есть получение результата обеспечивается многократным выполнением одних и тех же действий.
Виды операторов цикла
Общий вид оператора:
FOR K=Kнач TO Kкон STEP ∆K | –Заголовок цикла |
P | –Тело цикла (перечень операторов) |
NEXT K | –Окончание цикла |
Где FOR – имя оператора («ДЛЯ»)
K – переменная, называемая параметром цикла
Kнач– начальное значение параметра цикла
Kкон– конечное значение параметра цикла
∆K– шаг изменения параметра цикла
TO– имя оператора («ДО»)
STEP– имя оператора («ШАГ»)
NEXT– имя оператора («СЛЕДУЮЩИЙ»)
Работа оператора: изменение параметра происходит в строке NEXT, там же происходит сравнение с конечным значением. Если условие выполняется, то программа возвращается на строку, стоящую после оператора FOR, если не выполняется, то на строку, следующую за NEXT.
Общий вид оператора:
WHILE условие | –Заголовок цикла |
P | –Тело цикла (перечень операторов) |
WEND | –Окончание цикла |
Где WHILE – имя оператора («ПОКА»)
условие– условие окончания цикла (логическое выражение)
P – группа операторов, включающая рабочий блок циклического алгоритма и блок изменения переменных
WEND – оператор, завершающий цикл
Работа оператора: сначала следует оператор WHILE с условием, при котором цикл выполняется. Оператор WEND является последней строкой цикла. Доходя до оператора WEND, проверяется выполнение условия, указанного после оператора WHILE. Если оно не выполняется, то программа переходит к исполнению операторов, следующих за WEND.
Если ∆K=1, то конструкцию STEP можно опустить.
Тестирование готовой программы
Задача №1: составить программу для вычисления суммы чисел первой сотни, которые делятся на 3.
Решение задачи:
Определяем:
Параметр цикла – переменная x;
Начальное значение параметра цикла – x:=3;
Конечное значение параметра цикла – x:=99;
Начальное значение суммы – y:=0;
Рабочий блок – y:=y+x
Проверка окончания цикла – x
Формула изменения параметра цикла – x:=x+3.
Программа будет выглядеть следующим образом:
цикл типа «ДО»
CLS | Очистка экрана от предыдущих значений |
REM Произведение | Название программы |
y=0 | Начальное значение суммы |
FOR x=3 TO 99 STEP 1 | Начало цикла «ДО», указывается начальное значение параметра цикла x=3, конечное значение параметра цикла 99 и шаг изменения параметра цикла |
IF (x)mod(3)=0 then y=y+x | Проверка условия деления числа на 3 и вычисление суммы чисел |
NEXT x | Завершение цикла «ДО» |
PRINT “сумма y=”; y | Вывод искомой суммы |
END | Завершение программы |
цикл типа «ПОКА»
CLS | Очистка экрана от предыдущих значений |
REM Произведение | Название программы |
y=0: x=3 | Начальное значение суммы и параметра цикла |
WHILE x | Начало цикла «ПОКА» |
IF (x)mod(3)=0 then y=y+x | Проверка условия деления числа на 3 и вычисление суммы чисел |
x=x+1 | Изменение параметра цикла с указанием шага параметра |
WEND | Завершение цикла «ПОКА» |
PRINT “ сумма y=”; y | Вывод искомой суммы |
END | Завершение программы |
Задача №2: составить программу для вычисления значения суммы
.
Решение задачи:
Определяем:
Параметр цикла – переменная k;
Начальное значение параметра цикла – k:=4;
Конечное значение параметра цикла – k:=12;
, где S – промежуточная сумма и
.
Начальное значение промежуточной суммы – S:=0;
Рабочий блок –
.
Проверка окончания цикла –
;
Формула изменения параметра цикла – k:=k+1.
цикл типа «ДО»
CLS | Очистка экрана от предыдущих значений |
REM Сумма | Название программы |
INPUT «Введите x»; x | Ввод исходных данных |
IF x=4 THEN GOTO 1 ELSE GOTO 2 | Проверка знаменателя на 0, если знаменатель равен нулю, то осуществляется переход к завершению программы, если не равен нулю– то к строке начала цикла |
2: S=0 | Начальное значение суммы |
FOR k=4 TO 12 STEP 1 | Начало цикла «ДО», указывается начальное значение параметра цикла k=4, конечное значение параметра цикла 12 и шаг изменения параметра цикла |
S=S+x^2*(k+1)/(x-4) | Вычисление промежуточной суммы |
NEXT k | Завершение цикла «ДО» |
z=31*x^2+5*S | Вычисление итоговой суммы |
PRINT “Сумма z=”; z | Вывод искомой суммы |
1: END | Завершение программы |
цикл типа «ПОКА»
CLS | Очистка экрана от предыдущих значений |
REM Сумма | Название программы |
INPUT «Введите x»; x | Ввод исходных данных |
IF x=4 THEN GOTO 1 ELSE GOTO 2 | Проверка знаменателя на 0, если знаменатель равен нулю, то осуществляется переход к завершению программы, если не равен нулю– то к строке начала цикла |
2: S=0: k=4 | Начальное значение суммы и параметра цикла |
WHILE k | Начало цикла «ПОКА» |
S=S+x^2*(k+1)/(x-4) | Вычисление промежуточной суммы |
k=k+1 | Изменение параметра цикла с указанием шага параметра |
WEND | Завершение цикла «ПОКА» |
z=31*x^2+5*S | Вычисление итоговой суммы |
PRINT “Сумма z=”; z | Вывод искомой суммы |
1: END | Завершение программы |
Содержание работы:
Вариант №__
Задание №1. Составить программу для решения задачи, используя цикл «ДО».
Условие задачи:________________________________________________
_______________________________________________________________
_______________________________________________________________
Программа:
Ответ:_______
Задание №2. Составить программу для вычисления значения суммы, используя цикл «ПОКА»:
Программа:
Записать свои данные в таблицу:
Значения исходных данных | Значения искомых данных |
| |
| |
| |
Задание №3. Ответить на вопросы:
Какая программа называется циклической? | |
Что указывается после оператора FOR в Qbasic? | |
Для чего предназначен оператор WEND в Qbasic? | |
Как переводится оператор WHILE в Qbasic на русский язык? | |
Какие данные являются исходными для задачи №2, а какие искомыми? | |
Задание №4. Сделать вывод о проделанной лабораторной работе: