Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
720_zaochn_Informatika_Prosteyshie_konstruktsii...doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
493 Кб
Скачать
☆

Контрольные вопросы

  1. Для чего нужны разделы описания переменных и констант?

  2. Что такое тип? Какие типы данных Вы знаете?

  3. Чем отличаются переменные и константы?

  4. Что такое типизированная константа?

  5. Правила записи арифметических выражений.

  6. Приоритет арифметических операций.

  7. Какие существуют способы задания значений переменным и константам?

2. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ

СТРУКТУРЫ

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

9

Оператор перехода имеет общий вид записи: GOTO N ;

где N - метка оператора.

Условный оператор имеет два вида записи:

IF b THEN a; IF b THEN a, ELSE а2;

где b - логическое выражение (имеющее значение "истина" или "ложь"), а,а1,а2- операторы простой или составной. Оператор выбора имеет вид:

CASE <переключатель> OF

константа 1: оператор 1:

константа 2: оператор 2;

………

константа N; оператор N

END;

Пример 2.1

Найти действительные корни квадратного уравнения ах2 + bx + с = O Уравнение имеет решение, если дискриминант D = b2 - 4ac не является отрицательным.. Если D > O, то уравнение имеет корни

Если D = O, то x1 = х2 .

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

PROGRAM KOREN;

VAR A, B, C, D, Xl,X2 : REAL;

LABEL 100,200;

BEGIN

WRITELN (‘ INPUT A, B, C’ );

10

READLN (A, B, C);

D: = B*B-4 *A*C

IF D < 0.0 THEN GOTO 100

ELSE BEGIN

Xl: = (-B + SQRT(D))/(2 * A);

X2: = (-B - SQRT(D))/(2*A);

WRITELN (‘Корни уравнения’); WRITELN (‘X1=’, Xl’, X2=’, X2)

END;

GOTO 200;

100: WRITELN (‘уравнение не имеет решения’)

200: END.

B данной программе условный оператор содержит составной оператор для фразы ELSE.

Для лучшего понимания передачи управления в программе используется режим трассировки (пошаговое выполнение). Для этого выберите команду RUN / Тгасе Into (или нажмите F7). Первый оператор в теле программы begin (строка 4) будет подсвечен (исполняющая полоса).

Теперь нажмите F7 еще раз, чтобы перейти к исполнению программы. Следующая исполняемая строка программы - оператор WRITELN в строке 5.

Снова нажмите F7. Ваш экран мигнет, затем высветит программу с исполняющей полоской на операторе READLN в строке 6. Произошло следующее: ТУРБО-ПАСКАЛЬ переключился на экран исполнения (экран, на котором высвечиваются результаты), выполнил первый оператор WRITELN и возвратился на редактирующий экран.

Снова нажмите F7. Вы опять окажетесь на исполняющем экране. Напечатайте три числа вещественного типа через пробел и нажмите Enter. Вы снова окажетесь на редактируемом экране с исполняющей полоской на строке 7 с оператором присваивания.

11

Нажмите клавишу F7 еще несколько раз. Проследите, куда передается управление и какие операторы выполняются.

Когда исполняющая полоска окажется на последнем операторе End, нажмите F7, и выполнение программы закончится. Заметьте, что исполняемая полоска исчезла.

Пример 2.2

Вычислить значение функции

Из математической формулировки задачи видно, что вычислительный процесс имеет три ветви. Ho есть значение аргумента (в данном случае x = b), при котором функция z не определена. Поэтому добавляется еще одна, четвертая ветвь.

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

Программа имеет вид:

PROGRAM USL;

VAR X, Y, Z: REAL ;

LABEL 11,22;

BEGIN

WRITELN (‘INPUT X, A, B’);

READLN (X, A, B) ;

IF X< = A THEN BEGIN

Z:=LN(x+l);

12

GOTO 11

END;

IF (X > A) AND (X < B) THEN BEGIN

Z:=COS(X)+SQR(SIN (X));

GOTO 11

END;

IF X > B THEN BEGIN

Z:=EXP(X)+6;

GOTO 11

END;

WRITELN (‘Функция не определена’),

GOTO 22;

ll:WRTTELN(‘Z= ‘,Z)

22: END.

Пример 2.3

Определить, попадает ли точка A с координатами Ха и Ya внутрь круга с радиусом R. Центр круга совпадает с началом координат.

Очевидно, что точка A находится внутри круга, если ее расстояние от

начала координат, равное , будет меньше радиуса R, т.е. если

,< R ИЛИ .

Тогда программа этой задачи может быть такой: PROGRAM KRUG;

VAR XA, YA, R, L : REAL;

BEGIN

WRITELN (‘INPUT XA, YA, R’);

READLN (XA,YA,R);

13

L:=SQR (XA)+SQR(YA);

IFL<SQR(R)

THEN WRITELN (‘Точка А внутри круга’) ELSE WRITELN (‘Точка A вне круга’)

END.

Задания к теме № 2

Задачи 11-20

Вычислить функцию. Осуществить вывод значения функции. Провести анализ: при каком значении аргумента функция не определена? Выполнить программу в режиме трассировки.

11)

11)

12)

13) В =

14

14)

15)

16) d =

17)

18) y =

15

19) K =

20) m =

Задачи 21-30

Выяснить, принадлежит ли точка с координатами X, Y замкнутой области, заданной уравнениями. Область показать на графике.

21)

22)

23)

24)

25)

26)

27)

28)

29)

30)

16

Контрольные вопросы

  1. Что такое вычислительный процесс разветвляющейся структуры?

  2. Каковы две формы записи условного оператора?

  3. B чем разница по смыслу между полной и кратной формой записи условного оператора?

  4. Может ли условный оператор содержать в себе другие условные операторы?

  5. Может ли условный оператор содержать оператор перехода?

  6. Как выполняется программа при наличии в ней оператора перехода?

  7. Для чего предназначен оператор выбора?

  8. Можно ли в примере 2.3 вместо условного оператора использовать оператор выбора?