Скачиваний:
70
Добавлен:
10.02.2014
Размер:
355.84 Кб
Скачать

Центральный институт

непрерывного образования

(Общество «Знание» России)

БАЛАКОВСКИЙ ИНСТИТУТ

БИЗНЕСА И УПРАВЛЕНИЯ

Программирование алгоритмов циклических структур на языке turbo pascal

Методические указания к лабораторным работам

для студентов специальностей:

220201. 65 - Управление и информатика в технических системах;

080507. 65 – Менеджмент организации;

080801. 65 – Прикладная информатика (в автомобилях и

автомобильном хозяйстве).

Одобрено

Редакционно-издательским советом

Балаковского Института

Бизнеса и Управления

Балаково 2007

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

Основные понятия

Цикл – это выполнение определенного набора команд некоторое количество раз. В языке Pascal различают три вида операторов цикла: while, repeat, for.

Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.

Оператор while.

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

Формат:

while <условие продолжения повторений> do

<тело цикла>;

Условие – булевское выражение. Тело цикла – простой или составной оператор. Составной оператор используется в тех случаях, когда тело цикла состоит из 2-х и более операторов. На рис.1 представлен алгоритм циклической структуры с предусловием.

Рис.1. Алгоритм циклической структуры с предусловием

Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и пере­ход к первому после while оператору.

Оператор повтора repeat.

Оператор repeat реализует цикл с постусловием. Он аналогичен оператору while, но отличается от него тем, что условие проверяется после очередного выполнения операторов тела цикла, поэтому цикл с постусловием всегда будет выполнен хотя бы один раз.

Формат:

repeat

<оператор1>;

<оператор2>;

<операторN>;

until <условие окончания цикла>;

На рис.2 представлен алгоритм циклической структуры с постусловием.

Рис.2. Алгоритм циклической структуры с постусловием

Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикли. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит выход из цикла.

Оператор повтора for.

В случаях, когда число повторений может быть заранее известно, для организации циклической обработки информации применяется оператор повтора for. Часто этот оператор повтора называют оператором цикла с параметром, так как число повторений задается переменной, называемой параметром цикла, или управляющей переменной.

Оператор повтора for может быть представлен в двух форматах:

for <параметр цикла> := <S1> to <S2> do <тело цикла>;

for <параметр цикла> := <S1> downto <S2> do <тело цикла>;

где SI и S2 — выражения, определяющие соответственно начальное и конечное значения параметра цикла;

Параметр цикла может принимать значение любого скалярного типа, кроме вещественного и должен быть дискретной величиной.

for ... do — заголовок цикла;

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все зна­чения параметра цикла от начального до конечного.

На рис.3 представлен алгоритм циклической структуры с параметром.

Рис.3. Алгоритм циклической структуры с параметром

При первом обращении к оператору for вначале вычисляются выражения SI, S2 и осуществляется присваивание <параметр цикла>:=S1.

После этого циклически повторяются следующие действия.

  1. Проверяется условие <параметр цикла> <= S2.

  2. Если условие выполнено, то оператор for продолжает работу (выполняется оператор в теле цикла), если условие <параметр цикла> <= S2 не выполнено, то оператор for завершает работу, и управление в программе передается на оператор, следующий за циклом.

  3. Значение управляющей переменной изменяется на +1 (если to) или -1 (если downto) и далее с п. 1. Шаг изменения управляющей переменной — единица.

После завершения оператора значение параметра цикла становится неопределенным, если только выполнение оператора не было прервано оператором перехода goto.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Порядковый номер студента по списку группы соответствует номеру варианта. По заданию требуется:

        1. Определить порядок реализации вычислений.

        2. Составить графическую схему алгоритма.

        3. Записать программу на языке Turbo Pascal.

        4. Выполнить расчеты на ЭВМ.

        5. Написать отчет по лабораторной работе.

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

Задание: Вычислить и вывести на экран значение заданной функции

x[-20; 20], h = 4.

Значение функции вычислять многократно при изменении аргумента в указанном диапазоне и с заданным шагом h. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы:

Таблица функции Y(X)

X

Y

Обозначим xo=-20 ; xk=20 ; h=4.

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

Program lab_31;

Const h = 4;

Var x,y,xo,xk,d : real;

n, i : byte;

Begin

Writeln (‘Введите xo , xk’);

Read ( xo , xk );

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

d : = ( xk - xo ) /h;

n : = trunc ( d ) + 1;

x : = xo;

For i : = 1 to n do

begin

if x < -10 then y : = 2*exp(0.01*x)

else if (x >= -10) and (x <= 10) then y : = x

else y : = 7*exp(-0.2*x) ;

Writeln ( x :6 : 3 , ’ ‘, y : 6 : 3 ) ;

x : = x + h ;

end;

End.

Блок-схема алгоритма решения данной задачи при использовании цикла с параметром, представлена на рис.4.

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

Пример использования оператора цикла repeat…until.

Program lab_32;

Const h = 4;

Var x,y,xo,xk,d : real;

Begin

Writeln (‘Введите xo , xk’);

Read ( xo , xk );

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

x : = xo;

Repeat

if x < -10 then y : = 2*exp(0.01*x)

else if (x >= -10) and (x <= 10) then y : = x

else y : = 7*exp(-0.2*x) ;

Writeln ( x :6 : 3 , ’ ‘, y : 6 : 3 ) ;

x : = x + h ;

Until x > xk;

End.

Пример использования оператора цикла While…do.

Program lab_33;

Const a = 0.9; deltax = 0.1;

Var x,y,xo,xk,d :real;

Begin

Writeln (‘Введите xo , xk’);

Read ( xo , xk );

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

x : = xo;

While x<=xk do

begin

if x < -10 then y : = 2*exp(0.01*x)

else if (x >= -10) and (x <= 10) then y : = x

else y : = 7*exp(-0.2*x) ;

Writeln ( x :6 : 3 , ’ ‘, y : 6 : 3 ) ;

x : = x + h ;

end;

End.

Блок-схема алгоритма решения данной задачи при использовании цикла с постусловием, представлена на рис.5.

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

Блок-схема алгоритма решения данной задачи при использовании цикла с предусловием, представлена на рис.6.

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

варианты заданий

№ вар.

Функция

Условие

Исходные

данные

Диапазон

и шаг

изменения аргумента

1

2

3

4

5

1

1 ≤ t ≤ 2

t < 1

t > 2

a = - 0,5

b = 2

t[0;3]

Δt = 0.15

2

x < 1.3

x = 1.3

x > 1.3

a = 1.5

x[0.8;2]

Δx = 0.1

3

x < 1.2

x = 1.2

x > 1.2

a = 2.8

b = -0.3

c = 4

x[1;2]

Δx = 0.05

4

x < 1.4

x = 1.4

x > 1.4

a = 1.65

x[0.7;2]

Δx = 0.1

5

x > 3.5

x ≤ 3.5

-

x[2;5]

Δx = 0.25

1

2

3

4

5

6

x < 1

x = 1

1< x< 2

x > 2

a = 2.3

x[0.2;2.8]

Δx = 0.2

7

x < a

x = a

x > a

a = 2.5

x[1;5]

Δx = 0.5

8

bx < 1

bx = 1

bx > 1

b = 1.5

x[0.1;1]

Δx = 0.1

9

x > 1

x ≤ 1

a = 20.3

x[0.5;2]

Δx = 0.2

10

x < 0.5

x = 0.5

x > 0.5

t = 2.2

x[0.2;2]

Δx = 0.2

11

x < 2.8

2.8 ≤x< 6

x ≥ 6

a = 2.6

b = -0.39

x[0;7]

Δx = 0.5

1

2

3

4

5

12

x > 1

x ≤ 1

a = 0.9

x[0.8;2]

Δx = 0.1

13

i < 4

4 ≤i≤ 6

i > 6

a = 2.1

b = 1.8

c = -20.5

i[0;12]

Δi = 1

14

≥0

<0

a = 0.3

n = 10

i[1;10]

Δi = 1

15

x ≤ 2

2 <x< 5

x ≥ 5

-

x[0;10]

Δx = 1

16

x > 0

x < 0

x = 0

-

x[-1;0.6]

Δx = 0.2

17

y ≠ 0

y = 0

y = x - 0.5

x[0;2]

Δx = 0.5

18

x < -1

-1 ≤x≤ 1

x > 1

-

x[-1.5;1.5]

Δx = 0.5

1

2

3

4

5

19

t < 0.1

t = 0.1

t > 0.1

a = 2.5

b = 0.4

t[-1;1]

Δt = 0.2

20

0

<0

c = 0.5

n = 10

i[1;10]

Δi = 1

21

|x| > 2/3

|x|  /4

/4< |x|  2/3

-

x  [-; ]

x = /8

22

x  0

0 < x  1

x > 1

-

x  [-1; 3]

x = 0.2

23

x < 3

x  3

-

x  [2; 4]

x = 0.2

24

x  0

0 < x  1

x > 1

-

x  [-/4; /2]

x = /12

25

x < -2

x  -2

-

x  [-4; 0]

x = 0.4

1

2

3

4

5

26

x  0

0 < x  

x > 

-

x  [-; 2]

x = /4

27

x < 5

x  5

-

x[4.2; 5.85]

x = 0.15

28

x  -

x > -

-

x  [-2; 0]

x = 0.2

29

x  -1

-1 < x  1

x > 1

-

x  [-2.1; 3]

x = 0.3

30

x  /2

x > /2

-

x[/4; 3/4]

x = 0.05

СОДЕРЖАНИЕ И ОФОРМЛЕИНЕ ОТЧЕТА

ПО ЛАБОРАТОРНОЙ РАБОТЕ

Отчет оформляется в текстовом редакторе MS Word в формате А4 и должен содержать:

  1. Название лабораторной работы.

  2. Цель работы.

  3. Задание.

  4. Графическую схему алгоритма с учетом требований ГОСТ 19.701-90.

  5. Программу на алгоритмическом языке Turbo Pascal.

  6. Результаты выполнения работы.

  7. Проверку в математическом процессоре Mathcad.

ВОПРОСЫ для самоконтроля

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

  2. Что такое условие и тело цикла?

  3. Типы циклов. Формат их записи.

  4. В каком случае тело цикла заключается в операторные скобки begin…end?

  5. Каковы начальные и конечные значения параметра цикла у операторов For…to…do и For…downto…do?

ВРЕМЯ, ОТВЕДЕННОЕ НА выполнение

ЛАБОРАТОРНОЙ РАБОТЫ

Подготовка к работе – 1,0 акад. часа.

Выполнение работы – 1,0 акад. часа.

Расчеты на ЭВМ – 0,5 акад. часа.

Оформление работы – 0,5 акад. часа.

ЛИТЕРАТУРА

  1. Алексеев Е.Р. Turbo Pascal 7.0. Численные методы. – М.: АСТ, 2004.

  2. Гусева А.И. Учимся программировать: Pascal 7.0. Задачи и методы их решения. – М.: Диалог-МИФИ, 1997.

  3. Емелина Е.И. Основы программирования на языке Паскаль. – М.: Финансы и статистика, 1997.

  4. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2001.

  5. Попов В.Б. Turbo Pascal для школьников. - М.: Финансы и статистика, 2001.

  6. ГОСТ 19.701-90. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.