Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методические_указания_Паскаль.doc
Скачиваний:
53
Добавлен:
15.02.2015
Размер:
1.35 Mб
Скачать

Программирование цикла с параметром

Цель работы: Изучение элементов структурного программирования на основе циклических конструкций. Формирование навыков табличного вывода результатов работы программы.

Краткие теоретические сведения

Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).

В данной работе рассматривается первый из них (рисунок 4).

В цикле с известным числом повторений параметр изменяется в заданном диапазоне. Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.

Для организации цикла с известным числом повторений в Pascal используется оператор for.

Структура цикла, организованного с помощью этого оператора, имеет вид:

for i := a to b do begin <операторы> end;

или

for i := a downto b do begin <операторы> end;

Рисунок 4 - Блок-схема алгоритма циклического процесса

Здесь i — параметр, изменяющийся в цикле; a, b — выражения порядкового типа, обозначающие начальное, конечное значение параметра цикла. Шаг изменения номера параметра цикла равен 1, если в заголовке цикла стоит To; и -1 — при DownTo.

Следует помнить, что тип переменной-параметра цикла должен быть выбран одним из целых типов: integer, word, byte и т.д.

Порядок выполнения цикла с шагом 1 следующий:

  1. вычисляются значения начального и конечного значений параметра цикла a и b;

  2. параметр i принимает начальное значение;

  3. если i меньше или равно конечному значению, то исполняется тело цикла; значение параметра цикла увеличивается, т.е. i:= i+1;

  4. проверяется условие i<=b (для отрицательного шага условие i>=b) и при его выполнении цикл повторяется. Выход из цикла осуществляется, если i>b(i<b для шага=-1), и выполняется оператор, следующий за оператором цикла.

  5. Если a>b (или a<b для шага=-1), то цикл не исполняется ни разу.

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

Пример. Программа вывода на экран таблицы степеней числа 2.

program x2;

var i:integer;

begin

for i:=1 to 10 do

writeln('2x',i,'=',exp(i*ln(2)):3:0);

end.

В этой простой задаче для вычисления степени использована следующая математическая закономерность: ab=ea*lnb

В операторе вывода используется формат вывода без знаков после запятой. Это сделано потому что при вычислении любой встроенной математической функции компилятор Паскаля обязательно сделает результат вещественным.

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

Вместе с тем, область применения цикла с параметром в языке Pascal значительно ограничена: ограничения связаны с шагом изменения параметра цикла (1 или -1), с типом параметра цикла, его начального и конечного значения.

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

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

Для формирования таблицы используется оператор вывода writeln, с помощью которого последовательно выводятся заголовок таблицы, заголовки столбцов и линии границ из символов «-», «_», «+» «|». Дополним программу, приведенную выше операторами вывода, формирующими таблицу.

program x2;

var i: integer;

begin

writeln(' Таблица степеней числа 2');

writeln('+-----------+-----------+');

writeln('| Степень | Результат |');

writeln('+-----------+-----------+');

for i:=1 to 10 do

writeln('| ',i:4,' | ',exp(i*ln(2)):4:0,' |');

writeln('+-----------+-----------+');

end.

Результат работы данной программы представлен на рисунке 5.

Таблица степеней числа 2

+-----------+-----------+

| Степень | Результат |

+-----------+-----------+

| 1 | 2 |

| 2 | 4 |

| 3 | 8 |

| 4 | 16 |

| 5 | 32 |

| 6 | 64 |

| 7 | 128 |

| 8 | 256 |

| 9 | 512 |

| 10 | 1024 |

+-----------+-----------+

Рисунок 5 – Листинг работы программы

Задание на работу

  1. Выбрать задание и задачу с номерами, равными последней цифре студенческого билета (таблицы 8, 9).

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

  3. Вывести результаты работы программы в табличной форме.

  4. Составить программу решения задачи из таблицы 9.

Таблица 8 – Варианты заданий

Номер варианта

Константа

Параметр

Аргумент

Функция

0

1

2

3

4

5

6

7

8

9

Таблица 9 – Варианты задач

Номер варианта

Задача

0

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.

1

Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.

2

Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.

3

Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + . . . + 1/N

(вещественное число).

4

Дано целое число N (> 0). Найти сумму N2+ (N + 1)2+ (N + 2)2+ . . . + (2·N)2 (целое число).

5

Дано вещественное число A и целое число N (> 0). Используя один

цикл, найти сумму 1 + A + A2+ A3+ . . . + AN.

6

Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу:

N2= 1 + 3 + 5 + . . . + (2·N −1).

7

Дано целое число N (> 0). Найти значение выражения

    1. − 1.2 + 1.3 − . . . (N слагаемых, знаки чередуются).

Условный оператор не использовать.

8

Дано вещественное число A и целое число N (> 0). Найти A в степени N: AN = A·A· . . . ·A (числа A перемножаются N раз).

9

Дано целое число N (> 0). Найти произведение

1.1 · 1.2 · 1.3 · . . . (N сомножителей).

Лабораторная работа № 5