|
Лекція №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. |
|
|