- •Виды и значения алгоритмических блоков
- •Разновидности структур алгоритмов
- •Функция не определена
- •Варианты заданий Разработать алгоритм решения задачи линейной структуры.
- •Разработать алгоритм решения задачи разветвляющейся структуры.
- •Разработать алгоритм решения задачи циклической структуры.
- •Запись некоторых математических функций на языке Паскаль
- •Примеры записи математических выражений на языке программирования Паскаль
- •Варианты заданий
- •Функциональные клавиши
- •Текстовый редактор среды
- •Последовательность разработки программы в интегрированной среде Турбо Паскаль
- •Справочная система
- •Примеры программ, написанных на языке Паскаль.
- •Контрольные вопросы
- •Варианты заданий
- •Контрольные вопросы
- •Оператор if.
- •Варианты заданий
- •Контрольные вопросы
- •Варианты заданий
- •Варианты заданий
- •Контрольные вопросы
- •Варианты заданий
- •Контрольные вопросы
- •1 Оператор тела цикла;
- •Варианты заданий
- •Контрольные вопросы
- •Решение типового примера
- •Варианты заданий:
- •Дополнительные задания
- •Контрольные вопросы
- •В разделе type
- •Решение типовой задачи
- •Варианты заданий:
- •Дополнительные задания
- •Контрольные вопросы
- •Решение типовой задачи
- •Программа
- •Варианты заданий с подпрограммами - функциями:
- •Варианты заданий с подпрограммами – процедурами:
- •Контрольные вопросы
Варианты заданий
Составить блок-схему и программу вычисления значений функции Y(x),
где a<=x<=b, h - шаг изменения x. Значения с, d задать самостоятельно как константы.
1 |
a=1, b=6, h=0,5 |
9 |
a=-3, b=5, h=0,5 |
2 |
a=1, b=4 , h=0,2 |
10 |
a=1, b=5, h=0,25 |
3 |
a=-2, b=3, h=0,5 |
11 |
a=0,5, b=2, h=0,2 |
4 |
a=3, b=9, h=0,5 |
12 |
a=2, b=10, h=0,5 |
5 |
a=1, b=5, h=0,5 |
13 |
a=1, b=5, h=0,25 |
6 |
|
14 |
a=0, b=6, h=0,5 |
7 |
a=2, b=8, h=0,5 |
15 |
a=1, b=6, h=0,5 |
8 |
a=0,5, b=2, h=0,1. |
16 |
a=1, b=5, h=0,25 |
Контрольные вопросы
Для чего предназначен оператор цикла?
Какие виды циклов есть в Паскале?
Какой формат записи имеет оператор WHILEL? Как он работает? B каких случаях применяется?
Чем отличается оператор WHILE от оператора REPEAT
Что является телом цикла?
Как в теле цикла выполнить несколько операторов?
Почему перед выполнением цикла некоторым переменным нужно задавать начальные значения?
Что такое зацикливание? Как его избегать
Лабораторная работа №9
Тема: Циклическое программирование. Оператор Repeat
Цель: Разработать схему и программу с использованием оператора цикла Repeat
Теоретическая часть.
Алгоритм циклической структуры с постусловием реализуется оператором REPEAT...UNTIL, структура которого имеет вид:
REPEAT
1 Оператор тела цикла;
2-й оператор тела цикла;
N-й оператор тела цикла
UNTIL логическое условие;
Здесь: логическое условие — оператор отношения (логическое выражение), определяющий условие завершения цикла; операторы тела цикла - любой исполнимый оператор или группа операторов.
В операторе REPEAT...UNTIL проверка условия производится после очередного выполнения операторов тела цикла, следовательно, в нем операторы тела цикла выполняются как минимум один раз.
Операторы тела цикла выполняются до тех пор, пока значение логического условия есть FALSE («ложь»). Как только оно принимает значение TRUE («истина»), управление передается оператору, следующему в программе за конструкцией REPEAT UNTIL.
Операторы цикла в REPEAT...UNTIL не заключаются в операторные скобки, а отделяются друг от друга точкой с запятой.
Применение операторов WHILE...DO и REPEAT...UNTIL регламентируется некоторыми правилами.
Перед каждым выполнением цикла (в том числе и первым) операнды, входящие в логическое условие, должны иметь конкретные значения и однозначно определять условие окончания или продолжения цикла.
Тело цикла должно содержать хотя бы один оператор, влияющий на операнды логического условия (изменяющий переменную, которая анализируется в условии), что исключает «зацикливание» при выполнении и бесконечное продолжение цикла.
Изменение значения переменной, влияющей на логическое условие, через некоторое конечное число операций должно привести к удовлетворению условия окончания цикла.
Пример 9.1. Разработать блок-схему и программу вычисления суммы элементов ряда с заданной точностью e = 0,00001. Условием окончания вычислений считать Sn <= e. Значение x задать самостоятельно.
Блок-схема и программа задачи.
Рис.11.
Program zikl3;
{вычисление суммы элементов ряда с заданной точностью}
uses crt;
var {раздел описания переменных}
x,e,a,s,s1,delta:real;
n,c:integer;
f:longint;
begin {начало раздела операторов}
clrscr;
write('введите x=');
readln(x);
write('введите точность вычислений e=');
readln(e);
{начальные значения a, f, c, n, s}
a:=x; c:=1;
f:=1*2*3;
n:=0;
s:=0;
repeat {начало суммирования}
s1:=s; {в s1 хранится значение s для сравнения}
n:=n+1; {счетчик слагаемых}
c:=-c; {значение (-1) для n-го слагаемого}
a:=a*sqr(x); {вычисление х в степени (2n+1) n-го слагаемого}
f:=f*(2*n+2)*(2*n+3); { факториала n-го слагаемого}
s:=s+c*a/f * sin(n*x); {добавление n-го слагаемого к общей сумме }
delta:=abs(s-s1); {проверка условия окончения цикла}
until delta<=e;
{вывод результата на дисплей}
writeln('при x=',x:4:2,' сумма', n:2,' элементов=',s:7:5);
readln;
end.
Особенностью итерационного цикла является то, что заранее невозможно определить число необходимых итераций или приближений. Поэтому при программировании циклов в таких задачах применяется не цикл со счетчиком (или с параметром), а цикл с постусловием.
Программа выполняет расчет каждого элемента ряда по общим формулам. Для уменьшения количества вычислений при расчете х2n+1 и факториала (2n+3)! используются их значения из предыдущих слагаемых (переменные a, f). Для правильного расчета первого элемента ряда задаются начальные условия. Им нужно уделить особое внимание.
Программа снабжена комментариями и дополнительных объяснений не требует.
