Сведения и примеры для желающих писать программы на pascal

Циклы обычно реализуются в программе с помощью инструкций for, while, repeat.

Инструкция for (для)

Инструкция for используется, когда число повторений заранее известно. Формат записи:

for ( = ; ; )

{

тело цикла

}

Здесь — имя переменной, определяющей число повторений инструкций тела цикла; — выражение, определяющие начальное значение переменной счетчика циклов; — выражение, определяющее конечное значение переменной счетчика циклов, — приращение переменной .

В инструкции for после каждого выполнения инструкций тела цикла автоматически увеличивается циклов.

Инструкция while (пока)

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

while

{

последовательность инструкций

}

Здесь — выражение логического типа, определяющее условие выполнения цикла.

Инструкция while выполняется следующим образом.

1. Вычисляется значение выражения .

2. Проверяется истинность условия:

l если условие является ложным (false), то инструкции, расположенные между { и }, не выполняются, и выполнение инструкций while завершается;

l если условие является истинным (true), выполняются инструкции цикла между { и }, и после этого вновь переходим к шагу 1.

Для завершения цикла необходимо, чтобы инструкции между { и } влияли на значение выражения (изменяли значение переменных, входящих в это выражение).

Инструкция repeat (повторять … пока)

Инструкция repeat, как и инструкция while, используется в программе в том случае, когда необходимо организовать цикл, причем число повторений неизвестно и может быть определено во время работы программы, то есть определяется ходом вычислений. В общем виде инструкция repeat записывается следующим образом:

repeat

{

Инструкции

}

until ;

Здесь — выражение логического типа, определяющее условие завершения цикла.

Инструкция repeat выполняется следующим образом.

1. Выполняются инструкции цикла, находящиеся между словами repeat и until.

2. Вычисляется значение выражения :

l если условие ложно (false), выполняется переход к шагу 1;

l если условие истинно (true), выполнение цикла прекращается.

Главное отличие инструкции repeat от инструкции while состоит в том, что находящиеся между словами repeat и until инструкции цикла в любом случае выполняются, по крайней мере, один раз.

В инструкциях while и repeat необходимо обязательно следить за тем, чтобы инструкции цикла изменяли значение переменных, входящих в выражение , иначе произойдет так называемое зацикливание (бесконечное повторение инструкций).

Инструкция goto (перейти)

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

goto ;

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

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

Числовые ряды

В программировании очень часто встречаются задачи на числовые ряды. Именно для решения подобного рода задач обычно используются рассмотренные здесь инструкции цикла. Числовой ряд — это последовательность чисел, зависящих от своих номеров. Определение этой зависимости является одной из целей данного класса задач. Если закономерность найдена, то можно, задав номер ряда, определить его значение.

Например, дан ряд 2, 4, 8, 16, 32, … .

Нетрудно определить, что значение элемента ряда с номером n равняется 2n.

Кроме значения элемента ряда в задачах подобного типа часто требуется определить:

l значение текущего элемента ряда;

l значение предыдущего элемента ряда;

l сумму элементов ряда;

l количество элементов ряда.

В конкретной задаче на числовой ряд обычно задается условие прекращения суммирования элементов ряда, например:

l значение текущего элемента ряда меньше (больше) заданного числа;

l сумма элементов ряда больше заданного числа;

l разность между текущим и предыдущим элементами ряда больше (меньше) заданного числа;

l номер элемента ряда больше заданного числа.

При решении задач на числовые ряды рекомендуется соблюдать следующую последовательность:

1. Назначение нумерации элементов ряда. Для этого на основании анализа зависимости изменения знака и значения элемента ряда от его номера следует определить, с какого элемента начинать нумерацию. Например, в случае ряда нумерацию следует начинать с первого элемента, тогда . Для ряда Сведения и примеры для желающих писать программы на pascal нумерацию удобнее начинать со второго элемента ряда.

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

2. Ряды могут быть также знакопеременными, то есть элемент ряда может быть как положительным, так и отрицательным числом. Например, Сведения и примеры для желающих писать программы на pascal . Очень часто знак элемента ряда удобно задавать через функцию mod (вычисление остатка от деления — %). В приведенном выше примере знакопеременного ряда видна следующая закономерность изменения знака: при n mod 3 = 1 (то есть если номер элемента дает при делении на 3 остаток 1) знак элемента положительный, иначе — отрицательный.

3. В результате анализа элементов ряда определяется формула для нахождения текущего элемента ряда. Этот этап является наиболее сложным.

Можно сформулировать основные принципы нахождения закономерности:

l если элемент ряда представляет собой простую дробь, то сразу можно записать , где a — числитель, z — знаменатель;

l если элемент ряда c, a или z изменяется медленно, то это означает, что в соответствующем выражении нужно применить сложение;

l если элемент ряда c, a или z изменяется быстро, то это означает, что в соответствующем выражении следует применить либо умножение, либо возведение в степень (или то и другое).

Часто помогает разложение на множители.

Иногда в рядах применяется факториал. Например, , то есть . Такой функции в языке Паскаль нет, поэтому формулу для вычисления факториала придется писать самому.

4. В зависимости от условия задачи выбирается структура алгоритма.

5. Составляется алгоритм решения задачи.

6. Полученный алгоритм проверяется на начальных значениях данного ряда.

7. Составляется программа.

Паскаль с нуля [ч1]. Первая программа.


Похожие статьи.

Понравилась статья? Поделиться с друзьями: