русс | укр

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

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

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

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


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

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


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


Оператор FOR …DO

Циклические вычисления в Паскале реализуются с помощью операторов FOR...TO(DOWNTO)...DO, WHILE...DOили REPEAT...UNTIL.

Особенностью операторов FOR...TO(DOWNTO)...DOявляется встроенный внутренний счетчик цикла, фиксирующий количество повторений. Форматы записи оператора:

FOR переменная цикла := выражение 1 TO выражение 2 DO

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

или

FOR переменная цикла :=выражение 1DOWNTO выражение 2 DO

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

В формате: переменная цикла(управляющая переменная, счетчик цикла) – имя переменной целочисленного типа; выражения1 и 2 — выражения, тип результата которых совпадает с типом переменной цикла; операторы тела циклалюбой исполнимый оператор или блок операторов, заключенных в операторные скобки; FOR, TO, DOWNTOи DO– ключевые слова.

Использование оператора FOR регламентируется следующими правилами.

· Переменная цикла, её начальное и конечное значения должны быть одного типа.

· При выполнении оператора очередное значение параметра цикла вычисляется автоматически. В частности, для целого типа шаг изменения значения переменной цикла равен 1 при конструкции с TO и -1 при конструкции с DOWNTO.

· После служебного слова DO может стоять только один оператор. Если в цикле необходимо выполнить группу операторов, то их заключают в операторные скобки BEGIN...END, образуя составной оператор.

· Цикл не выполняется вообще, если начальное значение переменной цикла больше (при DOWNTO меньше), чем конечное. В этом случае управление передается оператору, следующему непосредственно за конструкцией FOR..TO(DOWNTO)...DO.

· В конструкции FOR..TO(DOWNTO)...DO используется только одна переменная цикла. При наличии вложенных циклов у каждой конструкции FOR..TO(DOWNTO)...DO должна быть своя, отличающаяся от других переменная.

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



FOR N := 1 TO5 DO

BEGIN WRITELN (N:2,'.');

FOR J := 1 TO 5 DO WRITELN (N:2,'.', J:2,'.') END;

 

Пример работы циклов

Пример 6.1. Найти сумму конечного ряда. Значение x вводится с клавиатуры.

 

program Project1;

var x,s:real; i:integer;

begin

Write('x='); Readln(x);

s:=0;

for i:=1 to 10 do //начало цикла For

s:=s+x*i; //конец цикла For

Writeln('s=',s:5:3); //вывод результата

Readln;

end.

 

 


Варианты заданий в табл. 7, 8.

Вычислить значение суммы или произведения членов ряда. Значение x задать с клавиатуры.

Таблица 7 – Задание 1

 

Пример 6.2. Дано действительное число х. Вычислить сумму элементов ряда. Число суммируемых элементов ряда (N) задается во время работы программы с клавиатуры.

 

.

Program Project2; //вычисление суммы заданного числа элементов ряда

var

x,s,a:real;

f:longint;

i,n,k:integer;

begin //начало раздела операторов

write('введите значение x=');

readln(x);

write('введите значение n=');

readln(n);

//значение первого слагаемого ряда вычисляется до цикла

a:=x; //значение x в степени (2*1-1)

f:=1; //значение f=(2*1-1)!=1

s:=a; //а - значение 1-го слагаемого, s=a

//к - переменная для изменения знака очередного слагаемого с + на -

k:=1;

for i:=2 to n do //начало цикла

begin

k:=- k; //значение (-1) для i-го слагаемого

a:=a * sqr(x); //вычисление х в степени (2i+1) i-го слагаемого

f:=f * (2*i-2)*(2*i-1); //вычисление факториала i-го слагаемого

s:=s+k*a/f; //добавление i-го слагаемого к общей сумме

end; //конец цикла

//вывод результата на экран

writeln('при x=',x:4:2,' сумма', n,' элементов =',s:7:5);

readln;

end.

 
 

 

 


Пример 6.3. Задано число х и натуральное число N. Вычислить произведение N элементов ряда

.

 

Для вычисления произведения целесообразно использовать рекуррентные соотношения, т.е. каждую дробь в скобках, начиная со второй, выражать через предыдущую. Это позволит существенно сократить объем вычислений. Расчет N! в числителе дроби каждого множителя выполняется в программе в теле цикла по формуле f:=f*n. p:=p*(2+f/a) - формула умножения элементов ряда Р=P1*P2*…*Pi-1 на очередной Piэлемент ряда.

 

Схема алгоритма и текст программы

 

Program Project3;

//вычисление произведения заданного числа элементов ряда

 

var x,p,a : real; f : longint; i,n : integer;

begin

write('введите x=');

readln(x);

write('введите n=');

readln(n);

p:=1; //начальное значение произведения

a:=1; f:=1; //начальные значение числителя и знаменателя дроби

for i:=1 to n do //начало цикла

begin

a:= a*x;

f:=f*i

p:=p*(2+f/a);

end; //конец цикла

//вывод результата на экран

writeln('при x=',x:4:2,' произведение', n:2,' элементов=',p:7:5);

readln;

end.

 

 
 

 

 


Таблица 8 – Задание 2

 

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

1. Для чего предназначен оператор цикла?

2. Какие виды циклов есть в Паскале?

3. Какой формат записи имеет оператор FOR? Какие существуют варианты этого цикла?

4. Как работает операторFOR? B каких случаях применяется?

5. Что является телом цикла?

6. Как в теле цикла выполнить несколько операторов?

7. Почему перед выполнением цикла некоторым переменным нужно задавать начальные значения?

8. При каких условиях оператор for не выполнится ни разу?

 



<== предыдущая лекция | следующая лекция ==>
Лабораторная работа № 5 | Теоретическая часть


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


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

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

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


 


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

 
 

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

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