русс | укр

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

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

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

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


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

Вложенные циклы


Дата добавления: 2015-01-08; просмотров: 1260; Нарушение авторских прав


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

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

 

Оператор прерывания цикла

Для досрочного прерывания цикла можно использовать оператор goto или стандартную процедуру break.

Рассмотрим фрагмент:

for i:=1 to n do

begin

p:=p* i;

if p>100 then break ;

writeln(‘p=’, p);

end;

Цикл будет прерван при достижении условия p>100 по процедуре break. Если условие не выполнится, цикл будет пройден n раз.

 

Примеры типовых задач по теме «Циклические вычислительные процессы»

1. Вычислить сумму ряда:

S= 1+1/2+1/3+ … +1/50

Выделим переменную для накапливания суммы - sum. Значение этой переменной необходимо предварительно обнулить. В программе используется оператор цикла с параметром.

Программа Пояснения
program prim_cikl1; var i: integer; sum: real; begin sum: =0; for i: = 1 to 50 do sum: = sum + 1/i; Writeln (' сумма = ', sum); end. Имя программы – prim_ cikl1 {Описательная часть}   {Исполнительная часть}   Начало цикла Вычисление суммы ряда Вывод результата на экран  

 

2. Вычислить значение функции:

y = a sin (x ) ,

при x = , с шагом =0.2, значение переменной a ввести с клавиатуры.

В программе используется оператор цикла с постусловием.

Программа Пояснения
program cikl_2; var y,a,x:real; begin writeln(‘Введите а’); readln(a); x:=0; repeat y:=a*sin (x); writeln(‘y=’,y:8:3, ‘ x=’,x:8:3); x:=x+0.2; until x>1; readln; end. Имя программы – prim_ cikl2 {Описательная часть}   {Исполнительная часть} Вывод сообщения на экран Ввод данных с клавиатуры Определение начального значения Начало цикла Вычисление значения функции Вывод результата на экран Увеличение параметра цикла на шаг Проверка на выход из цикла

 



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

 

3. Вычислить сумму ряда:

где n! = 1*2*…*n

Значение аргумента х и количество итераций n ввести с клавиатуры.

Введем дополнительную переменную для вычисления n! – f.

В программе используется оператор цикла с предусловием.

Программа Пояснения
program cikl_3; uses crt; var x,y : real; i,n,f : integer; begin writeln (' введите x, n '); readln(x, n); y: =0; f: =1; i:=1; while i<=n do begin f:=f*I; y:=y+sin(i*x)/f; i:=i+1; end; writeln (' y = ', y:8:3); readln; end. Имя программы – prim_ cikl3 {Описательная часть}   {Исполнительная часть} Вывод сообщения на экран Ввод данных с клавиатуры Определение начальных значений Начало цикла Подсчет n! Вычисление значения функции Увеличение параметра цикла на шаг   Вывод результата на экран

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

 

4. Составить программу расчета таблицы значений функции f(x) на интервале a<=x<=b в n равностоящих точках. Границы интервала a,b и количество точек n ввести с клавиатуры. Результаты вывести на печать.

Найти сумму положительных значений функции f(x) на заданном интервале. Формула для расчета шага изменения аргумента:

dx = (b-a)/(n-1)

Составим таблицу идентификаторов:

Наименование переменной Обозначения в программе
Функция y
Аргумент x
Количество расчетных точек n
Начальное значение аргумента a
Конечное значение аргумента b
Шаг изменения аргумента dx
Сумма положительных значений функции s

 

Программа Пояснения
program cikl_4; var y,x,a,b,dx,s : real; i,n : integer; begin writeln(‘Введите a,b,n’); readln(a,b,n); dx:=(b-a)/(n-1); s:=0; x:=a; for i:=1 to n do begin y:=(1-exp(-x)) * sin(4*pi*x); writeln(‘y=’,y:8:3); x:=x+dx; if y>0 then s:=s+y; end; writeln(‘Сумма положительных значений s=’,s:8:3); readln; end. Имя программы – prim_ cikl4 {Описательная часть}   {Исполнительная часть} Вывод сообщения на экран Ввод данных с клавиатуры Шаг изменения xаргумента     Начало цикла Вычисление значения функции Вывод значений функции на экран Увеличение параметра цикла на шаг Подсчет сумму Конец цикла Вывод суммы на экран  

Цикл организован с помощью оператора цикла с параметром for to do.

 

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

Программа Пояснения
program cikl_5; var i,j : byte; begin writeln(‘ Таблица умножения ’); for i:=1 to 9 do begin for j:=1 to 9 do writeln( i , ‘ * ‘ , j ,‘ = ’, i*j ); writeln; end;   readln; end. Имя программы – prim_ cikl5 {Описательная часть}   {Исполнительная часть} Вывод сообщения на экран Внешний цикл   Внутренний цикл Вывод значений на экран Вывод на экран пустой строки Конец внутреннего и внешнего циклов

 

Вопросы для самоконтроля

1. Что такое цикл?

2. Какие циклы можно организовать на языке Паскаль?

3. В каких случаях предпочтительней использовать оператор for …to … do для организации циклов?

4. Какой тип должна иметь переменная, которая является параметром цикла в операторе for …to … do ?

5. Сколько циклов будет пройдено, если в операторе while … do условие не выполнилось с первого раза?

6. Сколько циклов будет пройдено, если в операторе repeat … until условие выполнилось с первого раза?

7. Что такое вложенные циклы?

8. Как можно досрочно прервать цикл?

 



<== предыдущая лекция | следующая лекция ==>
Оператор выбора | Двумерные массивы. Матрицы


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


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

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

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


 


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

 
 

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

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