C : = X начало да нет X > Y Задача: составить алгоритм упорядочивания значений двух переменных ввод X, Y алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X : = Y Y : = C X := Y Y := C Этот пример иллюстрирует следующее правило Паскаля: если на какой – то из ветвей оператора ветвления находится несколько последовательных операторов, то их нужно записывать между операторными скобками BEGIN и END. Такая конструкция называется составным оператором. X > Y X < Y конец вывод X, Y PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y
Начало работы программы. Переменные X, Y, C не определены x y c C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало
Ввод исходных данных в память компьютера с клавиатуры. Данные вводятся через пробел, в конце ввода необходимо нажать клавишу ВВОД (ENTER). На экране компьютера появляются соответствующие значения переменных X и Y. Пример: X > Y 8 5 x y c C : = X да нет X > Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 8 5 Ввод ввод X, Y
Проверка истинности условия X > Y в конструкции неполного ветвления. В нашем примере условие выполнено ( 8 > 5 ) x y c 8 5 C : = X да нет ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 8 5 X > Y
Выполнение первого шага в процедуре обмена значениями между переменными X и Y. Дополнительной переменной C временно присваивается значение переменной X. Переменная C после этого действия получает значение, равное x y 5 да нет X > Y ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало c C : = X
x y да нет X > Y ввод X, Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 8 c X : = Y Выполнение второго шага в процедуре обмена значениями между переменными X и Y. Переменной X присваивается значение переменной Y. Переменная X после этого действия получает новое значение, равное 5. Прежнее значение стирается.
x y 5 C : = X да нет X > Y ввод X, Y X : = Y конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало c Y : = C Выполнение третьего шага в процедуре обмена значениями между переменными X и Y. Переменной Y присваивается значение переменной С. Переменная Y после этого действия получает новое значение, равное 8.
Вывод результатов решения задачи. На экране компьютера отображаются новые значения переменных X и Y (X = 5, Y = 8) x y C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 8 c вывод X, Y
Конец работы программы. Выполнены все команды (операторы) программы. В этом варианте трассировки алгоритма произошел обмен значениями между переменными X и Y. Задача решена. x y 5 8 C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 8 c
C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало x y c Начало работы программы. Переменные X, Y, C не определены
Этот п C : = X да нет X > Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 3 7 ввод X, Y x y c 3 7 Ввод Ввод исходных данных в память компьютера с клавиатуры. Данные вводятся через пробел, в конце ввода необходимо нажать клавишу ВВОД (ENTER). На экране компьютера появляются соответствующие значения переменных X и Y. Пример: X < Y
C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец вывод X, Y Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 3 7 x y c 3 7 Проверка истинности условия X > Y в конструкции неполного ветвления. В нашем примере условие не выполнено, (3 < 7)
C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y начало 3 7 вывод X, Y x y c 3 7 Вывод результатов решения задачи. Так как условие ветвления на предыдущем шаге не выполнено, обмен значениями между переменными X и Y не происходит. На экране компьютера отображаются значения переменных X и Y (X = 3, Y = 7)
Задача: составить алгоритм упорядочивания значений двух переменных алг СОРТИРОВКА если X > Y ввод X, Y нач вещ X, Y, C кон вывод X, Y то C := X кв X := Y Y := C PROGRAM VAR READLN WRITELN IF THEN : REALx, y, c () ; SORTING ; x, y ; END x > y BEGIN END. ; :=:= cx :=:= xy :=:= yc ; ; ()x, y 3 7 C : = X да нет X > Y ввод X, Y X : = Y Y : = C конец начало вывод X, Y x y 3 7 c Конец работы программы. Выполнены все команды (операторы) программы. В этом варианте трассировки игнорируется процедура обмена значениями между переменными X и Y. Задача решена.