ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Лекція №2 Програмування циклічних алгоритмів

ПЛАН

1. Цикл з параметром. Зображення в блок-схемах.

2. Цикл з передумовою. Зображення в блок-схемах.

3. Цикл з після умовою. Зображення в блок-схемах.

4. Комбіновані алгоритми.

 

Цикл з параметром. Зображення в блок-схемах.

Цикл - це процес виконання певного набору команд деяку кількість разів. Якщо обчислювальний процес містить багаторазові обчислення за одними й тими самими математичними залежностями, але для різних значень початкових величин (змінних), його називають циклічним. Величини, які змінюються в циклі називають змінними циклу.

Алгоритм циклічної структури в загальному вигляді має вміщувати:

1) підготовку циклу: задавання початкових значень змінних циклу перед першим його виконанням;

2) тіло циклу: дії, що повторюються в циклі для різних значень змінних циклу;

3) модифікацію: зміна значень змінних циклу перед кожним новим його повторенням;

4) управління циклом: перевірка умов продовження (або закінчення) циклу та перехід до початку тіла циклу, якщо виконується умова продовження циклу (або вихід х циклу після його закінчення).

Цикли поділяють на цикли з заданою кількістю повторень та цикли з заздалегідь невідомою кількістю повторень. Реалізують цикли або за допомогою конструкції if-goto,або що значно ефективніше, за допомогою команд циклу. Є три види команд, за допомогою яких можна запрограмувати повторювані фрагменти програми: з параметром, з передумовою та з післяумовою.

Команда для реалізації арифметичного циклу стисла у записі та зручна у використанні, але має обмежене застосування(тільки у випадках, коли кількість повторень визначена на перед). Команди ітераційних циклів з передумовою та з післяумовою складніші у застосуванні, але їх можна застосовувати для розв’язку будь-яких задач на повторення.

Команда, яка реалізує арифметичний цикл, називається командою повторення з параметром. Цикли з заданою кількістю повторень називають також циклами з лічильником. Число повторень тіла циклу в цьому випадку рахується за допомогою спеціальної змінної (лічильника), для якої відомі початкові та кінцеві (порогові) значення, а також крок зміни. Управління циклом виконується за допомогою порівняння поточних значень лічильника з заданим порогом. Змінну лічильника часто називають параметром циклу, а сам цикл -циклом з параметром.

Є два різновиди команди For

Загальний її вигляд такий:

For <параметр>:=<вираз1> to <вираз2> do <команда1>;

Тут For(для), to(до), do(виконати) - зарезервовані (службові) слова; параметр — це змінна цілого, символьного, логічного або перерахованого типу, а вирази 1 і 2 - це деякі константи такого ж самого типу, що й параметр вказівки які задають початкове та кінцеве значення параметра.

Дія команди.

Параметрові циклу присвоюється значення «виразу 1». Якщо це значення менше-рівне, ніж значення «виразу 2», то виконується «команда 1». Після виконання «команди 1» значення параметра автоматично збільшується на 1 і знову порівнюється зі значенням «виразу 2» і т.д. Коли значення параметра стане більшим, ніж значення «виразу 2», то виконується наступна після циклу команда. Якщо під час першого порівняння виявиться, що значення виразу 1 більше ніж значення виразу 2, то тіло циклу не виконається жодного разу.

Блок-схема циклу з параметром має вигляд:

Примітка.

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

2. Параметр циклу повинен бути описаним у розділі змінних.

3. Значення параметру циклу після закінчення виконання вказівки повторення володіє кінцевим значенням, тому перед повторним його ви користуванням йому необхідно знову присвоїти нове початкове значення.

4. У циклі може виконуватися будь-яка кількість команд (згадати про порожню команду). Якщо команд у циклі більше двох, то для її відзначення потрібно застосовувати службові слова Begin та End.

For <параметр>:=<вираз1> to <вираз2> do

Begin

<команда_1>;

<команда_n>;

End.

Приклад. Нехай s=0. Після виконання команди циклу

For i:=4 to 6 do s:=s+i; z:=2*1 end;

змінна s набуде значення 0+4+5+6=15, а змінна z = 12.

Розглянемо другий різновид команди циклу for:

 

For <параметр>:=<вираз1> downto <вираз2> do <команда1>

 

Ця команда діє як попередня, але крок зміни параметра є -1.

Якщо команд у циклі більше двох, то для її відзначення потрібно застосовувати службові слова Begin та End.

For <параметр>:=<вираз1> downto <вираз2> do

Begin

<команда_1>;

<команда_n>;

End.

 

Приклад. Нехай s=0. Після виконання команди циклу

For i:=6 dowto 4 do begin s:=s+i; z:=2*1 end;

змінна s набуде значення 0+6+5+4=15, а змінна z = 8.

Зауваження. Значення параметра в середині циклу змінювати не можна.

Задача 1. Нескінченну числову послідовність задано формулою загального члену Аі і = 1,2,3... Знайти суму перших N її членів.

programSuma;

uses Crt;

Var i,n:word;

a,s:real;

Begin

writeln(' Ведіть кількість членів прогресії ‘);

readln(n);

s:=0;

For i:=1 to n do

Begin

a:=1/(2+sin(i));

s:=s+a;

End;

writeln(' сума прогресії рівна ', s:7:3);

readln

End.

a:=1/(2+sin(i));

s:=s+a;

Задача 2.Обчислити значення виразу, що містить суму і добуток

programSumaDobutok;

usesCrt;

vari: integer;

suma, dob, y: real;

fact: longint;

begin{Спочатку сума дopiвнює нулю, а добуток одиниці}

clrscr;

suma:=0;

dob:=l;

fact:=l;

fori:=1 to25 do begin

fact:=fact*i; {Обчислюемо i!=l*2*3*...*i}

suma: =suma+5*sqr(i)/fact; {Обчислюемо суму та }

dob:=dob*i*i; {добуток }

end;

y:=suma+dob;

writeln(‘y=’,y:7:2);

readln

End.

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти