Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Важливо

То

Якщо

Для другого варіанта

То

Якщо

Для першого варіанта

початкове_значення £ кінцеве_значення

кінцеве_значення – початкове_значення + 1 раз,

початкове_значення ³ кінцеве_значення

початкове_значення – кінцеве_значення +1 раз,

.

Детермінованість циклу забезпечується тим, що в тілі циклу не можна змінювати значення лічильника.

Якщо це зробити, компілятор звістить про помилку.

Значення змінних, що входять в вираз початкове_значення і кінцеве_значення, змінювати можна, але це не буде впливати на кількість ітерацій, оскільки ці вирази обчислюються лише один раз – при вході в цикл.

 

Тіло циклу може бути простим оператором, вкладеним або пустим. В такому разі за словом do відразу ставиться точка.

 

Приклад:

For i:=1 to 3 do c:=2*i; {використовується простий оператор.}

For i:=3 downto 1 do begin c:=2/i; b:=3+i end; {використовується вкладений оператор}

For i:=1 to 3 do; {використовується пустий оператор}

Інші приклади:

Наступні цикли буде проігноровано:

For i:=5 to 4 do...;

For i:=4 downto 5 do...;,

а цикл For i:=5 to 5 do...; виконається лише один раз.

Скільки разів буде виконуватися тіло наступного циклу?

k:=0;

For i:=1 to k+3 do k:=k+1;


Цикл буде виконуватися три рази, тому що вираз k+3 обчислюється один раз до початку циклу, і змінення значення k у циклі на кількість ітерацій не вплине.

 


Оператор for має наступні обмеження:

1.Крок зміни лічильника циклів може бути лише +1 (якщо використовується ключове слово to), або –1 (якщо використовується ключове слово downto).

2.Змінна-лічильник циклу може бути лише порядкового типу і має бути локальною для блоку, в якому знаходиться оператор for.

3.Цикли For.. to/downto.. do допускають вкладеність за умови, що ніякий із вкладених циклів не модифікує змінні – параметри зовнішніх циклів.

4.Для Object Pascal Delphi 6, після виходу з циклу змінна лічильник буде мати значення на одиницю більше за кінцеве значення свого діапазону. Але не слід використовувати це в програмах. Краще присвоїти нове значення лічильнику після закінчення циклу – так буде конкретніше.

В деяких версіях мови Pascal (Lazarus) після виходу з циклу параметр має значення яке дорівнює кінцевому значенню свого діапазону.

 

Розв’яжемо задачу. Потрібно написати програму для переведення значення температури, заданої в шкалі Цельсія, у значення, що відповідають шкалі Кельвіна

Позначимо початкове значення температури (first temperature) у Цельсіях () – C_F, а кінцеве значення (last temperature) – C_L. Температуру в Кельвінах – K. Параметр циклу позначимо змінної T.

В циклі виконуються два оператори. Їх слід перетворити в один складений оператор за допомогою операторних дужок begin... end.

Отже, задачу поставлено, тепер необхідно скласти алгоритм її розв'язання.

program Ex_8;

var C_f,C_L,t:integer;

K:real;

begin

writeln('Enter first temperature in Celcius ');

readln(C_f);

writeln('Enter last temperature in Celcius ');

readln(C_L);

writeln('Celcius','Kelvin':8);

For T:=C_f to C_L do

begin

K:=T+273.15;

writeln(T:4,K:11:2);

end;

readln

end.

Задача. Обчислити суму скінченного числа доданків, використовуючи цикл із параметром. При обчисленні пропустити співмножники які дорівнюють нулю або нескінченності. Чисельник буде дорівнювати нулю коли k=2 та k=3. Знаменник дорівнює нулю коли k=–4. Ці точки потрібно виключити з обчислення.

program Project1;

var z:real;

k,k1,k2:integer;

begin

write('Enter k1=');

readln(k1);

write('Enter k2=');

readln(k2);

z:=0;

for k:=k1 to k2 do

if (k<>2)and (k<>3)and (k<>-4)

then z:=z+(k-2)*(k-3)/(k+4);

writeln('z=',z:6:2);

readln

end.

<== предыдущая лекция | следующая лекция ==>
Існує два варіанти оператора. | Сущность и функции цены. Важнейшим экономическим рычагом повышения эффективности производства является цена, которая оказывает непосредственное воздействие на производство
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 273; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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