Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Program summa2;
const n = 100; var i: Integer; sum: Real; Begin sum: = 0; i: = 1; Repeat sum: = sum + 1 / i; 1: = i + 1 until i > n; WriteLn(‘ сума ', n, ' елементів = ', sum: 10: 5); End. Тут виконання циклу відбувається в такий спосіб: · спочатку і =1 і sum=0+1; · 1 збільшується на 1+1 = 2; · умова 1 > 100 помилкова, тому виконання циклу повторюється; · значення суми змінюється: sum =1+1/2; · 1 збільшується на 1+1 = 2 + 1; · умова i > 100 помилкова, цикл повторюється; · цикл повторюється, поки не виявиться 1 = 100 + 1, а значення суми sum =1+1/2 +...+ 1/100; · умова i > 100 щира, цикл довершений. Слова repeat і until є зарезервованими, як, утім, і слово while. На відміну від циклу while оператори усередині циклу repeat виконуються хоча б один раз, у той час як у циклі whilе вони можуть не виконатися жодного разу. Цикл із лічильником Цикл із лічильником має такий вигляд: for i: = початкове_значення to кінцеве_значення do... оператор; Тут змінна i, названа керуючою зміною циклу for (або його лічильником ), є довільним ідентифікатором, що з'являється як змінна цілого (найчастіше) типу. Вона може бути також логічний або символьної (про символьний тип мова йтиме далі). Допускаються і деякі інші типи, але цей випадок ми розглядати не будемо. При виконанні оператора for спочатку обчислюється значення вираз початкове значення, потім обчислюється значення вираз кінцевому значення, далі керуюча змінна циклу пробігає всі значення від початкове до кінцевого. У тому випадку, коли початкове значення виявляється більше кінцевого значення, тіло циклу не буде виконуватися зовсім. Початкове і кінцеве значення залишаються незмінними в ході виконання всього циклу for. Параметр циклу i, якщо він цілого типу, пробігає всі значення зі збільшенням i, і його поточне значення не повинне змінюватися операторами усередині циклу. Така зміна не заборонена правилами мови, але його наслідки будуть непередбачені. Після завершення циклу параметр i вважається невизначеним. У циклі: for i: = початкове_значення downto кінцеве_значенняdo ... оператор; параметр циклу міняється від початкового значення кінцевого з кроком -1. Програма обчисленнясуми з використаннямциклу з лічильником дана далі в двох варіантах (варіант із to і варіант із downto). Блок-схеми program summa3: const n = 100; var i: Integer; sum: Real; Begin sum: = 9; for 1: = 1 to n do {При першому виконанні циклу i дорівнює 1} sum: = sum + 1/i; {Потім i=3, до sum додається 1/3, і так продовжується до i = n} WriteLn('сума *, п.* елементів = ', sum: 10: 5); End. Другий варіант: Program summa4; const n = 100; var i: Integer; sum: Real; Begin sum: = 0; for i: = n downto 1 do sum: = sum + 1/і; WriteLn(‘сума ' n', елементів = ', sum: 10: 5); end. Самостійно розберіть роботу циклів for обох варіантах програми.
|