русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-11-28; просмотров: 1102; Нарушение авторских прав


 

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

 

Теоретическая часть

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

В языке Turbo Pascal существуют три оператора цикла: for, whileи repeat.

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

В общем виде операторforзаписывается так:

forпараметр_цикла:=нач_значение toкон_значение do

Begin

{последовательность операторов тела цикла}

end;

где

· параметр_цикла — имя переменной-счетчика числа повторений операторов цикла;

· нач_значение — выражение, определяющее начальное значение параметра цикла;

· кон_значение — выражение, определяющее конечное значение параметра цикла.

Если между begin и end находится только одна оператор, то слова begin и end можно не писать. Обычно в качестве выражений, определяющих начальное и конечное значения параметра цикла, используются переменные или константы. В этом случае последовательность операторов тела цикла будет выполнена (кон_значение - нач_значение + 1) раз. В теле цикла допускается использовать значение параметра цикла.

 

П р и м е р 1. Вычислить сумму первых n элементов ряда 1+1/2+1/3+…+1/i…+1/n.

Блок-схема алгоритма решения представлена на рис. 1.

 

Рис. 1

Текст программы:

programsumma;

Var

i, n:integer; {номер элемента ряда и число элементов}



elem:real; {значение элемента ряда}

sum:real; {сумма элементов ряда}

Begin

writeln(‘Введите число элементов ряда’);

readln(n);

sum:=0;

fori:=l to n do

Begin

elem:=l/i;

sum: =sum+elem; {подсчет суммы элементов}

writeln(i:2, ' ',elem: 4:2); {вывод значения текущего элемента ряда}

end;

writeln('Сумма элементов ряда: ',sum: 4:2);

end.

Если в операторе for вместо слова to записать downto, то после очередного цикла значение переменной цикла будет не увеличиваться, а уменьшаться. Например, оператор

forj:=10 downto0do

writeln(j);

выводит на экран числа от 10 до 0.

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

Типичными примерами использования цикла while являются вычисления с заданной точностью, поиск в массиве или в файле.

В общем виде оператор while записывается так:

while <условие> do

Begin

{последовательность операторов тела цикла}

end;

где <условие> — выражение логического типа, определяющее условие выполнения тела цикла — операторов, находящихся между begin и end.

Если между begin и end находится только один оператор, то begin и end можно не писать.

Оператор while выполняется следующим образом: сначала проверяется условие (вычисляется значение выражения <условие>). Если условие не выполняется (значение выражения <условие> равно false), то операторы цикла, расположенные между begin и end, не выполняются, и на этом выполнение операторы while завершается. Если условие выполняется (значение выражения <условие> равно true), то выполняются следующие за do, расположенные между begin и end, операторы тела цикла, и после этого снова проверяется выполнение условия. Если условие выполняется, то операторы цикла выполняются еще раз. И так до тех пор, пока условие не станет ложным.

Важные особенности оператора цикла while:

1. Для того чтобы тело цикла было выполнено хотя бы один раз, необходимо, чтобы перед выполнением оператора while условие выполнения цикла было истинно;

2. Для того чтобы цикл завершился, необходимо, чтобы последовательность операторов между begin и end изменяла значения переменных, входящих в выражение <условие>.

 

П р и м е р 2. Составить программу решения задачи примера 1 с использованием оператора while.

Блок-схема алгоритма решения будет иметь вид, аналогичный рис. 1.

Текст программы:

programsumma;

Var

i, n:integer; {номер элемента ряда и число элементов}



elem:real; {значение элемента ряда}

sum:real; {сумма элементов ряда}

Begin

writeln(‘Введите число элементов ряда n’);

readln(n);

sum:=0; i:=1; {начальное значение суммы и параметра цикла}

whilei<=n do

Begin

elem:=l/i;

sum: =sum+elem; {подсчет суммы элементов}

writeln(i:2, ' ',elem: 4:2); {вывод значения текущего элемента ряда}

i:=i+1 {увеличение параметра цикла}

end;

writeln('Сумма элементов ряда: ',sum: 4:2);

end.

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

В общем виде оператор repeat записывается так:

Repeat

{операторы тела цикла}

until <условие>;

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

Оператор repeat выполняется следующим образом: сначала выполняются операторы тела цикла, следующие за словом repeat. Затем проверяется условие (вычисляется значение выражения <условие>). Если условие ложно (значение выражения условие равно false), то операторы цикла (операторы, находящиеся между repeat и until) выполняются еще раз. Если условие истинно (значение выражения <условие> равно true), то выполнение цикла прекращается.

Таким образом, операторы, находящиеся между repeat и until, выполняются до тех пор, пока условие ложно (значение выражения <условие> равно false).

Важные особенности оператора цикла repeat:

1. Находящиеся между repeat и until, всегда будут выполнены хотя бы один раз;

2. Для того чтобы цикл завершился, необходимо, чтобы операторы цикла, находящиеся между repeat и until, изменяли значения переменных, входящих в выражение <условие>.

 

П р и м е р 3. Составить программу вычисления суммы целых положительных чисел, введенных с клавиатуры.

Текст программы:

programsummrep;

Var

numb: integer; {число, введенное с клавиатуры}

sum: integer; {сумма введенных чисел}

Begin

writeln('Вычисление суммы положительных целых чисел');

sum:=0;

Repeat

write('введите число > ');

readln(numb); {ввод очередного числа}

if numb>0 thensum:=sum+numb; {вычисление суммы}

untilnumb <= 0;

writeln('Сумма введенных чисел = ',sum:6);

End.

Программа завершает работу, как только вводится первое неположительное число.

 



<== предыдущая лекция | следующая лекция ==>
Задания к лабораторной работе | Задания к лабораторной работе.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.371 сек.