Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методические указания для лабораторных работ / 2-Программирование алгоритмов разветвляющейся структуры.doc
Скачиваний:
112
Добавлен:
10.02.2014
Размер:
164.86 Кб
Скачать

Министерство общего и профессионального образования

Российской Федерации

Саратовский государственный технический университет

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

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

к выполнению лабораторной работы

по курсу "Информатика"

для студентов специальностей: 2903,2101,1709,1201

Одобрено

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

Саратовского государственного

технического университет

Саратов 2002

ВВЕДЕНИЕ

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

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

ЦЕЛЬ РАБОТЫ: овладение практическими навыками разработки алгоритмов и программ разветвляющейся структурой.

Разветвления в программах используют операторы перехода, условный и выбора варианта.

  1. Оператор безусловного перехода GOTO позволяет изменять последовательность выполнения операторов в программе.

Формат записи оператора:

GOTO <метка>; где

<метка> - имя метки, отличающей ту строку, на которую требуется выполнить переход.

Имя метки должно быть предварительно описано в разделе описания меток Label.

Неправильное использование в программе оператора GOTO усложняет читаемость программы.

Например:

Label 1,3,8,10;

. . . . .

Goto 8

. . . . .

8: x : = A+ B

2) Составной оператор ( beginend ) представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin … end.

Этот оператор записывается следующим образом:

begin

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

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

. . . . . . . . . . . . . . . . . .

<оператор N>

end;

Составной оператор используется в тех случаях, когда в соответствии с правилами записи языка TURBO PASCAL можно записать только один оператор, в то время как требуется выполнить несколько операторов.

Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой. Перед символом end точку с запятой можно не ставить, т. к. это слово не является отдельным оператором. Если же « ; » будут поставлены, то они будут рассматриваться как пустой оператор, т. е. оператор не выполняющий никакого действия. Сам блок операторов программы является ( можно считать ) составным оператором, т. к. он тоже заключен в операторные скобки BEGIN . . . END, внутри которых располагается последовательность операторов, разделенных « ; ».

Например:

Begin

A:=2;

B:=x+y;

End;

3) Условный оператор IF обеспечивает в зависимости от условия выбор одного из возможных действий.

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

  1. Полный вариант:

If S then A else B ;

  1. Укороченный вариант:

If S then A ;

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

A – оператор (только один!), выполняющейся, если выражение S – истинно.

B – оператор (только один!), выполняющейся, если выражение S – ложно.

Если вместо A или B требуется использовать несколько операторов, то применяется составной оператор (BEGIN . . . END).

Примеры использования оператора IF приведены в Приложении 1.

  1. Оператор выбора варианта Case … ofend.

Используется для обработки ситуаций с несколькими вариантами решения (путем выбора одного из нескольких операторов), выбираемых в зависимости от некоторого выражения, называемого селектором.

Существует две форму записи этого оператора:

  1. Case S of

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

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

………………….

cN: < оператор N>

else < оператор>

end;

  1. Case S of

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

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

………………….

cN: < оператор N>

end;

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

сl,c2,...,сN—это константы или метки, с которыми сравниваются значения выражения селектора (S). Они должны быть одного гита с селектором.

Выбор оператора определяется совпадением значения селектора S и константы (метки сl,c2,...,cN), стоящей перед оператором.

< оператор 1 >, < оператор 2 >, < оператор N > — один оператор, либо составной оператор (begin... end),

< оператор > — оператор, который выполнится, если значение выражения S не совпадет ни с одной из меток (констант) сl,c2,...,cN.

Примеры использования оператора выбора варианта при­ведены в Приложении 2.

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

Информация, необходимая для выполнения лабораторной работы, приведена в соответствующих разделах. Порядковый номер студента по списку группы соответствует номеру варианта. По приведенному заданию требуется:

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

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

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

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

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

ЗАДАНИЕ

Вычислить и вывести на экран значение заданной функции (варианты заданий взять из таблицы). Проверить программу на ЭВМ.

Вариант задания

Функция

Условие

Исходные

данные

1

2

3

4

1

1 ≤ t ≤ 2

t < 1

t > 2

a = - 0,5

b = 2

2

x < 1.3

x = 1.3

x > 1.3

a = 1.5

3

x < 1.2

x = 1.2

x > 1.2

a = 2.8

b = -0.3

c = 4

1

2

3

4

4

x < 1.4

x = 1.4

x > 1.4

a = 1.65

5

x < 1

x = 1

1< x< 2

x > 2

a = 2.3

6

x < a

x = a

x > a

a = 2.5

7

x < 1

x = 1

x > 1

b = 1.5

8

x > 3.5

x ≤ 3.5

-

9

x > 1

x ≤ 1

a = 20.3

10

x < 0.5

x = 0.5

x > 0.5

t = 2.2

11

x < 2.8

2.8 ≤x< 6

x > 6

a = 2.6

b = -0.39

12

x > 1

x ≤ 1

a = 0.9

1

2

3

4

13

i < 4

4 ≤i≤ 6

i > 6

a = 2.1

b = 1.8

c = -20.5

14

i > 0

i ≤ 0

a = 0.3

n = 10

15

x < 2

2 <x< 5

x > 5

-

16

t < 0.1

t = 0.1

t > 0.1

a = 2.5

b = 0.4

17

>0

<0

c = 0.5

n = 10

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

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

a = 5; b = 7; c = 8.

Проверить программу на ЭВМ.

Решение

Программа на языке TURBO PASCAL:

Program lab_2;

Uses Crt;

Const a = S; b = 7; c = 8;

Var

t,s:real;

BEGIN

Clrscr ;

Writeln ( 'Введите t ’);

Read(t);

If t < l then s : = a/i+b

else if t = 1 then s : = sin(t)+c

else s : = cos(b*t);

Write( ' s = ’, s:8:3);

END.

Результаты счета:

t1=0,7 s1 =14443

t2=1 s2=8,841

t3=1,3 s3=-0,948

Блок-схема алгоритма

8

рис. 1

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Формат записи оператора безусловного оператора GOTO. В каких случаях он используется?

  2. Какие операторы используются для организации разветвлений?

  3. Две формы записи условного оператора IF.

  4. Когда используется и как работает оператор выбора варианта Case…of?

  5. Две формы записи этого оператора.

  6. Что такое селетор?

  7. Что представляет собой составной оператор Begin…end?

  8. В каких случаях используется составной оператор?

  9. Два вида оператора цикла с известным числом повторений.

  10. В чем отличие этих операторов цикла друг от друга?

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

ЛИТЕРАТУРА

Основная

  1. А.М. Епанешников, В.А. Епанешников «Программирование в среде Turbo Pascal 7.0», М., «Диалог-МИФИ», 1996.

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

  3. В.Е. Алексеев, А.С. Ваулин, Г.Б. Петрова «Вычислительная техника и программирование» (Практикум по программированию), М., «Высшая школа», 1991.

Дополнительная

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

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

Приложение 1

Примеры использования оператора IF.

    1. IF p>0.5 THEM GOTO 15;

    2. IF (x>0) AND (x<=10) THEN T:=x*3 ELSE T:=SQRT(y);

Вложенные IF:

IF X<=A THEN Z:=sin(x) ELSE IF x>0 THEN Z:=sin(x)/cos(x) ELSE Z:=cos(x);

Ключевое слово ELSE всегда относится к ближайшему ему IF.

Определение частного от деления целых чисел

{Вариант № 1 (с применением оператора GOTO)}

Program DELZEL_1(input,output);

Label metka1;