Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Stud_1_1 / LecRus / MainPart.doc
Скачиваний:
116
Добавлен:
03.03.2016
Размер:
5.03 Mб
Скачать

7. Последовательность разделов.

Как уже было отмечено, разделы описаний в Турбо Паскале могут следовать в произвольном порядке, при этом любой из них может повторяться несколько раз.

Пример 7.

Const Nmax = 100;

Type Ar = array[1..Nmax] of integer;

Var X : Ar;

Const g = 9.81;

Type Ars = array[0..Nmax+1] of real;

Var i,n : byte;

Y,Z : Ars;

При этом должны выполняться два основополагающих правила:

1) ни одно имя не должно быть описано дважды;

2) любое имя может быть использовано лишь после его описания (например, имя Nmax используется в разделе Type после описания этого имени в разделе Const).

Тем не менее рекомендуется без необходимости не изменять порядок следования описаний, принятый в стандартном языке Паскаль: Label, Const, Type, Var, процедуры и функции.

А Л Г О Р И Т М И С П О С О Б Ы

Е Г О П Р Е Д С Т А В Л Е Н И Я

Обработка информации в ЭВМ производится на основании алгоритма. Под алгоритмом понимают конечное упорядоченное множество правил, четко и однозначно определяющих последовательность операций для решения задачи или класса задач.

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

1. Формульно-словесный способ.

Здесь для записи алгоритма используется естественный язык с привлечением, если это необходимо, математических формул и обозначений.

Пример 1. Найти

Шаг 1. Положить равным .

Шаг 2. Если , то положить равным .

Шаг 3. Если , то положить равным . Конец.

Пример 2. Найти наибольший общий делитель двух целых чисел .

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

Например, для = 420 и = 90 имеем

420 = 2  2  3  5  7; 90 = 2  3  3  5 .

Наибольший общий делитель в этом случае равен 2  3  5 = 30.

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

Более просто поставленная задача решается с помощью так называемого алгоритма Евклида.

Обозначим наибольший общий делитель через . Вполне очевидно, что .

Тогда алгоритм Евклида можно описать следующим образом.

Шаг 1. Если = 0, то принять и закончить вычисления, иначе перейти к

шагу 2.

Шаг 2. Вычислить и .

Шаг 3. Заменить значение на значение , а значение - на значение . Пе-

рейти к шагу 1.

Здесь q - целая часть от деления m на n; r - остаток от деления.

При = 420, = 90 имеем:

Шаг 1. = 90  0;

Шаг 2. = [420/90] = 4; = 420 - 4  90 = 60;

Шаг 3. = 90; = 60;

Шаг 1. = 60  0;

Шаг 2. = [90/60] = 1; = 90 – 1  60 = 30;

Шаг 3. = 60; = 30;

Шаг 1. = 30  0;

Шаг 2. = [60/30] = 2; = 60 – 2  30 = 0;

Шаг 3. = 30; = 0;

Шаг 1. = 0  = 30 .

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

Соседние файлы в папке LecRus