Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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 обох варіантах програми.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал