КАТЕГОРИИ: Архитектура-(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; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |