- •14.04.2012 | Автор: admin
- •Свойства алгоритма.
- •5. Операторы языка в Turbo Pascal 7
- •5.1. Простые операторы
- •5.1.1. Оператор присваивания
- •5.1.2. Оператор безусловного перехода goto. Использование меток
- •5.1.3. Пустой оператор
- •Математические операции
- •Логические операции
- •Операции отношения
- •Приоритет операций
- •Цикл while
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Итерационные циклы с постусловием
- •Циклы в Паскале
- •Цикл for
- •Цикл while
- •Цикл repeat
- •Операции над строками
- •Простые типы данных
Свойства алгоритма.
Дискретность.
Понятность
Детерминированность
Массовость
Результативность
Дискретность - это свойство алгоритма, когда алгоритм разбивается на конечное число элементарных действий (шагов).
Понятность - свойство алгоритма, при котором каждое из этих элементарных действий (шагов) являются законченными и понятными.
Детерминированность - свойство, когда каждое действие (операция.указание.шаг.требование) должно пониматься в строго определённом смысле, чтобы не оставалась места произвольному толкованию. чтобы каждый, прочитавший указание, понимал его однозначно.
Массовость - свойство, когда по данному алгоритму должна решаться не одна, а целый класс подобных задач.
Результативность – свойство, при котором любой алгоритм в процессе выполнения должен приводить к определённому результату. Отрицательный результат также является результатом.
Алгоритм может быть записан различными способами: на естественном языке в виде описания; в виде графических блок-схем; на специальном алгоритмическом языке
Основные блоки алгоритмов.
Все имеющиеся алгоритмы можно разделить на три вида:
линейные алгоритмы;
алгоритмы ветвления;
циклические алгоритмы.
В примере алгоритма “Телефонный разговор” имеются все три вида алгоритмов, хотя пример носит не математический характер. Если задача решается с помощью математического аппарата, то в зависимости от степени сложности задачи, чаще всего используется также три вида алгоритмов: линейные, ветвление и циклы. Для решения любых задач достаточно этих трех видов алгоритмов.
5. Операторы языка в Turbo Pascal 7
Операторы языка описывают некоторые алгоритмические действия, которые необходимо выполнить для решения задачи. Тело программы можно представить как последовательность таких операторов. Идущие друг за другом операторы программы разделяются точкой с запятой.
Все операторы языка Паскаль можно разбить на две группы: простые и структурированные.
5.1. Простые операторы
Простыми являются те операторы, которые не содержат в себе других операторов. К ним относятся:
оператор присваивания;
обращение к процедуре;
оператор безусловного перехода GOTO;
пустой оператор.
Обращение к процедуре будет рассмотрено в п. 10.1, остальные - в данном разделе.
5.1.1. Оператор присваивания
С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа - выражение, значение которого вычисляется перед присваиванием.
Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. Тип выражения и тип переменной (или функции) должны быть совместимы для присваивания (см. п. 9.3). 1
Пример.
X := Y; Z :=А + В; Res := (I>0) and (I < 100); I := Sqr(J) + I * К;
5.1.2. Оператор безусловного перехода goto. Использование меток
Оператор GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана и в операторе GOTO. Метки, используемые в Turbo Pascal, могут быть двух типов:
целым числом в пределах от 0 до 9999;
обычным идентификатором.
Все используемые метки должны быть перечислены в разделе объявления меток, начинающемся зарезервированным словом label, например:
label 1, 2, Metka;
Одной меткой можно пометить только один оператор. Метка от помеченного оператора отделяется двоеточием.
Использовать оператор GOTO следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. Безусловный переход можно осуществлять далеко не из каждого места программы и не в любое место программы. Так, нельзя с помощью этого оператора перейти из основной программы в подпрограмму или выйти из подпрограммы, не рекомендуется осуществлять переход внутрь структурированного оператора, т. к. он может дать неправильный результат, и т. д. Более подробно о таких ограничениях см. [1].
Пример. Найти частное от деления целых чисел.
program EXAMPLE4; |
|
label |
|
Out; |
{описание метки} |
var |
|
X, Y, Res: Integer; |
|
begin |
|
Write('Введите делимое: '); |
{вывод сообщения на экран} |
ReadLn(X); |
{чтение числа} |
Write('Введите делитель: '); |
{вывод сообщения на экран} |
ReadLn(Y); |
{чтение числа} |
if Y = 0 then |
|
begin |
{Составной оператор, см. п. 5.2.1} |
WriteLn('Деление на ноль!'); |
|
goto Out; |
{выход при нулевом делителе} |
end; |
|
Res:=X div Y; |
|
WriteLn('Частное равно: ',Res); |
|
Out: |
{метка "пустого" оператора} |
end. |
|
