Читайте также: |
|
Лабораторная работа № 5
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ. ОПЕРАТОРЫ ЦИКЛА
Время выполнения – 4 часа.
Цель работы
Научиться составлять программы, используя операторы цикла. Научиться оформлять циклические схемы алгоритма.
Задачи лабораторной работы
После выполнения работы студент должен:
– знать правила написания текста программы как на формальном языке (псевдокоде), так и на языке программирования;
– знать, как по схеме алгоритма написать текст программы и, наоборот - по тексту программы составить схему её алгоритма;
– знать правила использования операторов условия и циклов;
– уметь организовывать циклы с помощью операторов условия;
– знать назначение и работу каждого оператора в программе;
– уметь проводить тестирование программы.
Перечень обеспечивающих средств
Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система Windows 2003 и выше, язык программирования С ++ и Pascal.
Общие теоретические сведения
Циклическим является алгоритм, если определенная последовательность шагов выполняется некоторое целое число раз. Рис. 9 иллюстрирует циклические алгоритмы (а – цикл с предусловием, б – с постусловием, в – с параметром).
а) б) в) |
Рис. 9 Циклические алгоритмы |
У каждого из операторов цикла имеются особенности в их использовании (табл. 9): условные циклы выполняются пока условие истинно (в Pascal – цикл с постусловием выполняется пока условие ложно), а цикл с параметромработает, пока управляющая переменная цикла (так называемый параметр) не достигнет своего конечного значения.
Таблица 9
Операторы циклов
Для С | Для Pascal | |
Условные циклы | while (условие) { операторы } | while условие do begin операторы end; |
do { операторы } while (условие) | repeat begin операторы end until условие; | |
С парамет-ром | for ( переменная = нач_знач; переменная <= кон знач; шаг) { операторы } | for переменная = нач_знач to кон_ знач do begin операторы end; |
Пример 6. Вычислить функциональный ряд с известным количеством элементов.
Ряд, как известно, состоит из элементов, каждый из которых вычисляется по единой формуле. Для решения подобных задач удобно использовать оператор цикла с параметром.
Например, вычислить функцию если условие истинно, иначе найти сумму ряда.
В данном примере это знакопеременный ряд, значения элементов ряда которого вычисляются в цикле (где n – порядковый номер элемента ряда).
Схема алгоритма задачи представлена на рис. 10. Ниже даны программы на языках С, Pascal и Псевдокод.
Программа на C # include < iostream.h > # include < math.h > main () { float x, s; int n; cout << ” Введите значение x:”; cin >> x; if (х > 0) s = cos (x) / sin (x); else { s = 0; for (n = 2; n <=10; n ++) s = s +((pow (– 1, n) * n) / ((n * n -1)))* sin (n * x); } cout << ” s =” << s <<endl; } Программа на Pascal Program a _3 a; var x, s: real; n: integer; begin write (‘Введите значение x ’); readln (x); if x > 0 then s:= cos (x) / sin (x) else begin s:= 0; for n:= 2 to 10 do s:= s +((exp (n * ln (abs (-1)))* n /((n * n -)))* sin (n * x); end; writeln (‘ Результат = ’, s); end. | |
Рис. 10. Схема циклического алгоритма |
Псевдокод алгоритма
алг Работа с циклами нач вещ x, s цел n вывод “Введите значение x” ввод x если x > 0 то s = ctg (x) иначе s = 0 нц для n = 2 до 10 кц все вывод “S = ”, s кон |
Пример 7. Вычислить функциональный ряд с неопределенным количеством элементов.
Для решения подобных задач используют условные циклы, в которых вычисляют элемент ряда и его значение сравнивают с некоторой величиной e, называемой точностью (где). Сумма ряда вычисляется до тех пор, пока величина очередного вычисленного члена ряда не станет меньше величины e.
Если же в выражении имеется факториал (n!), то его необходимо вычислять в цикле до основного вычисления элемента.
Например, найти сумму ряда:
На рис. 11 представлена схема алгоритма этого примера, использующий цикл с постусловием. Ниже даны программы на языках Псевдокод, С и Pascal.
Псевдокод алгоритма
Дата добавления: 2015-07-16; просмотров: 53 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание программ с циклической структурой | | | Задание 2. Запись арифметических выражений в математической форме |