ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ И ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ ПРИ ПОМОЩИ ЦИКЛА FOR




Цель работы

 

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

 

Общие сведения

 

При решении широкого круга задач программирования часто необходимо многократно повторять одну или несколько операций. Реализуется такой алгоритм при помощи циклических вычислительных процессов или циклов.

Язык программирования Си содержит три вида циклов: с предусловием, с постусловием и с параметром.

Во всех циклах обязательно присутствуют следующие элементы:

- подготовка или инициализация цикла;

- тело цикла;

- корректировка параметра или переменной цикла;

- проверка условия окончания цикла;

- завершение цикла.

При подготовке цикла параметру цикла присваивается начальное значение. Параметр цикла - это переменная, которая изменяется при выполнении цикла. По ней определяется: продолжать выполнение цикла или завершить его. Тело цикла - это оператор или группа операторов (блок), выполняемых многократно. После каждого выполнения тела цикла осуществляется проверка истинности условия продолжения цикла. Операторы, реализующие циклы на языке Си продолжают выполнение цикла до тех пор, пока условие продолжение цикла истинно (отлично от нуля).

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

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

Наиболее общей формой реализации цикла в языке Си является цикл for. Конструкция оператора for выглядит следующим образом:

 

for (Выражение 1; Выражение 2; Выражение 3)

оператор; (или {блок операторов};)

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

Пример:

# include < stdio.h >

void main (void)

{ int i;

for (i = 1; i <= 10; i++)

printf (² %c ² ‘*’);

}

 

В данном примере циклического процесса 10 раз выполняется печать символа ‘*’.

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

for (p = 1, i = 0; i <= 10; p+ = 2, i++)

блок операторов;

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

В теле цикла могут быть использованы управляющие операторы if, которые в зависимости от выполнения каких-то условий требуют прервать выполнение циклаили перейти к следующей итерации, пропустив часть операторов тела цикла. Для прерывания цикла используется оператор break, при его выполнении цикл заканчивается, хотя Выражение2 истинно. Для перехода к следующей итерации используется оператор continue. Рассмотрим использование оператора continue на примере программы печати всех четных чисел в диапазоне от 1 до 50.

# include < stdio.h >

void main (void)

{ int i;

for (i = 1; i <= 50; i++)

{ if (i%2! = 0) continue;

printf (² %d \n ², i); }

}

В теле цикла, если остаток от деления числа i на 2 равен 0, печатается число i, в противном случае выполняется оператор continue и осуществляется переход к началу цикла, а функция printf (² %d \n ², i) не выполняется.

 

Вычисление конечных сумм и произведений

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

, где

i - номер слагаемого;

- слагаемое.

Подсчет значения суммы, состоящей в последовательном ее накоплении в переменной S, можно представить в виде следующего фрагмента программы:

S = 0;

for (i = 1; i <= n; i++)

S = S + i;

В этом фрагменте вычисляется сумма всех целых чисел в диапазоне от 1 до n.

Конечное произведение представляет собой выражение вида: , где

i - номер сомножителя;

- сомножитель.

Вычисляется конечное произведение аналогично подсчету суммы, с тем отличием, что начальному значению p до цикла присваивается равным 1, а в теле цикла знак сложения заменяется знаком умножения.

 

Контрольные вопросы

Что такое циклический вычислительный процесс?

Какие элементы включают в себя циклы?

Какова общая форма оператора for?

Для чего используется оператор break? Приведите пример.

Как используется оператор continue?

Как можно упростить пример программы печати четных чисел?

Нарисуйте алгоритм программы для подсчета конечного произведения.

 

 

Варианты заданий

Вычислить сумму .

Вычислить сумму .

Составить программу вычисления таблицы значений функции с шагом 1, для 2 < x <=5 точки разрыва исключить.

Вычислить произведение для x = 2. .

Вычислить сумму .

Вычислить произведение .

Вычислить сумму .

Составить программу табулирования функции Y с шагом 0.5 .

Составить программу табулирования функции Y с шагом 0.5 в интервале Y = sin2(x)/(x2 - 4).

Составить программу табулирования функции Y с шагом 0.5 в диапазоне 0 =< x =< 5. Y = x2(cos(x) + sin(x)).

Вычислить произведение, при x = 2. .

Вычислить произведение, при а = 2, точку a = x исключить: .

Вычислить .

Вычислить сумму, при x = 5. .

Вычислить сумму, при x = 2. .

Вычислить сумму, при x = 0.5. .

Вычислить .

Составить программу табулирования функции Y с шагом 0.5 в диапазоне 1 =<x =< 10. Y = 2x3 + 3x2 + 4x + 10.

Вычислить сумму при x = 0.5. .

Cоставить программу вычисления интеграла по формуле прямоугольников , где - подынтегральная функция, a, b - нижний и верхний пределы интегрирования.

Вычислить значение интеграла по формуле прямоугольников (см. вариант 20). Принять n = 100.

 

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: