|
Донецкий Национальный Технический Университет
Кафедра геодезии и геоинформатики
Лабораторная работа №10
Тема: «ПРОГРАММИРОВАНИЕ ЦИКЛОВ С НЕИЗВЕСТНЫМ ЧИСЛОМ ПОВТОРЕНИЙ»
Выполнила:
ст.гр.ГКЗ -12а
Зашихина А.В.
Проверил:
Шморгун Е.И.
г.Донецк-2013
Постановка задачи
Вариант 2
В ходе данной лабораторной работы необходимо задав определенные заданием входные данные запрограммировать задачу с циклом, число повторений которого неизвестно.
Дано: q = 3, dq = -0.2. Вычисления производить по формуле до тех пор пока подкоренное выражение больше 0. Определить k – количество вычисленных F. Вывести на экран q, F, k.
Теоретическое введение
Для реализации заданной задачи необходимо использовать цикл число повторений которого неизвестно заранее. Таким циклом может служить цикл Repeat.
Оператор Repeat выполняется до тех пор, пока не станет истинным логическое выражение, записанное после слова Until. При этом тело цикла (операторы между Repeat и Until) выполняется по крайней мере один раз. Выражение после Until должно иметь тип boolean.
В теле цикла Repeat должно изменяться значение выражения, записанного после слова Until, таким образом, чтобы это выражение в конечном счете приняло значение true, в противном случае будет иметь место зацикливание программы.
Схема выполнения:
Описание логической структуры программы:
1. Очистка экрана дисплея
2. Определение начальных значений для вычисления
3. Организация цикла расчета значений. Внутри цикла производится:
- расчет результирующего выражения
- увеличение количества произведенных итераций и проверка на максимальный диапазон значения
- печать значений текущей итерации
- изменение параметра цикла q
- проверка на допустимость выполнения следующей итерации.
Алгоритм выполнения задания:
Описание входных данных:
q – начальное значение переменной для расчета
dq – шаг изменения переменной расчета
Описание выходных данных:
k – счетчик повторений цикла
F – результат расчета текущей итерации цикла
Листинг программы
Program lab5;
Uses crt;
const
dq = -0.2;
Var
k: integer;
q, F: real;
begin
clrscr;
q:= 3;
k:=0;
repeat
F:= sqrt(1+0.5*q) - 1/(q+1);
inc(k);
if k >=200 then
exit
else
writeln;
write('k = ', k:3, '; ');
write('q = ', q:8:2,'; ');
write('F = ', F:8:2,' ');
q:= q+dq;
until ((1 + 0.5*q) <= 0);
readln;
end.
Дата добавления: 2015-09-30; просмотров: 23 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Донецкий Национальный Технический Университет | | | Донецкий Национальный Технический Университет |