Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика лабораторные.doc
Скачиваний:
16
Добавлен:
11.11.2019
Размер:
1.07 Mб
Скачать

Составление простейших вычислительных программ циклической структуры.

Цель работы: Овладение практическими навыками разработки и программирования алгоритмов циклической структуры; приобретение дальнейших навыков по отладке и тестированию программ.

Задание:1. Составить блок-схему алгоритма циклической структуры.

2. Изучить особенности программирования алгоритмов циклической структуры на алгоритмическом языке Паскаль.

3. Запрограммировать полученный алгоритм.

4. Ввести текст программы в компьютер.

5. Выполнить расчёт по программе.

Методические указания.

С помощью операторов цикла организуется многократное выполнение повторяющихся действий.

Часто при решении задач приходится многократно вычислять значения по одним и тем же математическим зависимостям для различных значений, входящих в них величин. Такие многократные повторяемые участки вычислительного процесса называются циклами. Для их записи на алгоритмическом языке используются специальные операторы цикла.

Использование циклов позволяет существенно сократить объём схемы алгоритма и длину соответствующей ей программы. Различают циклы с заданным и неизвестным числом повторений. К последним относятся итерационные циклы, характеризующиеся последовательным приближением у искомому значению с заданной точностью.

Для организации цикла с неизвестным числом повторений необходимо выполнить следующие действия:

1) задать перед циклом начальное значение переменной, изменяющейся в цикле;

2) изменять переменную перед каждым новым повторением цикла;

3) проверять условие окончания или повторения цикла

4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.

Последние три функции выполняется многократно.

Переменная, изменяющаяся в цикле, называется параметром цикла.

Если заранее известно количество повторов, то используется цикл FOR.

Если же не известно количество повторов, то используются операторы While или Repeat Until.

Оператор цикла Repeat организует выполнение цикла, состоящего из любого числа операторов с неизвестным заранее числом повторений.

Repeat

J1;

J2;

JN;

Until S;

J1, J2, JN -операторы, составляющие тело цикла.

S – логическое выражение, истинность которого проверяется.

Так как слова Repeat и Until являются своеобразными операторными скобками, точку с запятой после Repeat и перед Until можно не ставить.

Последовательность операций, заключенных между Repeat и Until, выполняется до тех пор, пока S не примет значение истины. Далее цикл заканчивается, и выполняются операторы, следующие за Until. Применять этот оператор нужно осторожно, чтобы избежать зацикливание, которое может произойти, если S ложно. Это возникает тогда, когда значение выражения S не зависит от результатов выполнения операторов цикла.

x:=0;

repeat

x:=x+1;

y:=sin(x);

until x>15.

Оператор цикла While организует выполнение одного простого или составного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если логическое выражение оказывается ложным.

Структура оператора имеет вид:

while S do I;

S - логическое выражение, истинность которого проверяется;

J – выполняемый оператор цикла.

Оператор I выполняется до тех пор, пока S имеет значение истина, как только S принимает значение ложно, выполнение цикла прекращается и осуществляется переход на следующий оператор.

x:=0;

while x>15 do

begin

x:=x+1;

y:=sin(x);

end;

Оператор цикла FOR организует выполнение одного простого или составного оператора заранее известное число раз.

Существует 2 способа записи данного оператора:

1)For P:=S to F do I;

2)For P:=S down to F do I;

В этих операторах:

P - параметр цикла, являющийся переменной порядкового типа;

S - выражение, определяющее начальное значение параметра цикла;

F - выражение, определяющее конечное значение параметра цикла;

I - выполняемый оператор.

Цикл действует следующим образом:

1) вычисляются и запоминаются начальное S и конечное F;

2) параметру цикла P присваивается начальное значение S;

3)пока S ≤ F, выполняется очередная итерация цикла, в противном случае - выход из цикла.

4)Выполнение очередной итерации включает в себя сначала выполнение оператора I, а затем изменение P на величину шага, возврат на начало цикла, сравнение нового S и F.Величина шага в первом случае равна 1, во втором случае -1.

for с шагом 1 (инкрементный)

for индекс:=выражение1 to выражение 2 do оператор;

for с шагом -1 (декрементный)

for индекс:=выражение1 downto выражение2 do оператор;

For i:=1 to 10 do

begin

y:=sin(i)

writeln (‘ i, y ‘);

end.

2 вариант:

For i:=10 downto 1 do

y:=Sin(i)

writeln (‘ i, y ‘);

end.

Пример: xє[0;2.5] Δx=0.5

For i:=0 do x do

begin

x:=x+i*0.5

writeln (‘ i, x ‘);

end.

Порядок выполнения работы

Найти с заданной точностью сумму элементов убывающей последовательности, т.е. вычислять сумму до тех пор, пока n-й элемент последовательности не станет меньше заданной точности. Точность вводится с клавиатуры. Вывести на экран сумму элементов, значение n-го элемента и количество элементов, необходимых для подсчёта суммы с заданной точностью.

Таблица 5

Вариант

Задание

Точность

Исходные данные

1

ε=0.0001

-

2

ε=0.0001

-

3

ε=0.0001

-

4

ε=0.0001

-

5

ε=0.0001

-

6

ε=0.0001

-

7

ε=0.0001

-

8

ε=0.0001

-

Найти наименьшее значение m, для которого произведение не будет превышать некоторую заданную величину. Эту величину ввести с клавиатуры. Вывести на экран значение m и полученное произведение.

9

-

m=1

m=5

m=10

10

-

m=6

m=7

m=25

11

-

m=4

m=40

m=100

12

-

m=7

m=10

m=20

13

-

m=15

m=17

14

-

m=4

m=20

m=100

15

-

m=60

m=65

m=120

16

-

m=7

m=10

m=23

Пример программы

Произвести расчет суммы членов ряда с заданной точностью ;

uses crt; { Подключается библиотека ввода-вывода }

var k, eps : Real;

n, i, x : Integer;

begin

ClrScr; { Производится очистка экрана }

WriteLn('Выполнил Поляков Д.Г., КТФ, гр. Р-11');

WriteLn; { Вывод пустой строки }

WriteLn('Введите точность вычисления суммы');

Read(eps); { Ввод точности вычислений }

n:=0; { Присвоение начального значения аргументу члена ряда }

repeat { Цикл с постусловием }

x:=1; { Присвоение начального значения рекуррентной формуле

вычисления факториала }

for i:=1 to n do x:=x*i;

k:=k+(n+1)/(2*x); { Накопление суммы членов ряда }

n:=n+1; { Приращение аргумента }

until (n+1)/(2*x) < eps; { Выход из цикла при достижении заданной точности }

WriteLn('Выводится результат вычисляемого выражения');

WriteLn(k:4:5); { Форматный вывод }

Содержание отчёта по лабораторной работе.

1 Цель лабораторной работы.

2. Задание.

3. Методические указания.

4. Блок-схема алгоритма программы.

5. Текст программы.

6. Результаты расчетов.

Контрольные вопросы к лабораторной работе№3:

1. Что называется циклом?

2. Какие операторы называются начальными и конечными операторами цикла?

3. Что называется областью цикла?

4. Что такое тело цикла?

5. 6. В каком случае используются операторы REPEAT UNTIL, а в каком FOR и WHILE?

7. Каким образом размещаются элементы многомерных массивов в памяти ЭВМ?

9. Какие циклы называют вложенными?

Лабораторная работа №4