Алгоритми і програми з розгалуженнями - Комп'ютерні науки - Скачать бесплатно
План. Оператор безумовного переходу (goto).
Умовні оператори. Складена команда. Література: Я.М. Глинський.
Інформатика. Алгоритмізація і програмування. Книжка 1. с. 67-85. 1 Оператор
безумовного переходу (goto). Команду переходу використовують щоб
змінити порядок виконання команд у програмі.  Вона має такий вигляд:
goto – перекладається “перейти на”, де “мітка” – це адрес команди (оператора),
на який потрібно перейти. Мітка може бути числом від 0 до 9999 або ідентифікатор,
після якого є символ (:). Приклади міток: 10:, 222:, m1:, alpha:. Усі мітки
можна оголосити у розділі оголошення міток на початку програми так: Наприклад:
label 10:, 222:, m1:, alpha:. Задача Скласти програму обчислення
функції:  для трьох
різних значень x = 3,4,5 з клавіатури з використанням команди переходу goto.
Програма: program FUN_Y; label 10; var x,y: real;
begin 10: write (’введіть значення х:’); read ln (x); y:
= (3*5 sin (x) + cos (2*x)/(3.5-4*abs(x)); write ln (x:6:2, y:6:2)
goto 10; end. 2. Умовні оператори. У повсякденній
діяльності часто доводиться аналізувати різноманітні ситуації, умови і залежно від
них приймати ті чи інші рішення. Команди розгалуження або умовні оператори
змінюють порядок виконання дій у алгоритмі в залежності від виконання чи
невиконання певних умов. Розгалуження бувають декількох видів. Найпростішим видом
є “неповне розгалуження”. Неповне розгалуження реалізується за допомогою
команди if (якщо): 
Виконання команди: <команда> може бути один оператор або група
операторів. Якщо виконується умова (в блок-схемі – вітка “так”), то виконається
оператори чи група операторів після слова then. Якщо ж умова не виконується (в
блок-схемі – вітка “ні”), то ця команда не буде виконуватися і буде виконуватися
наступний після if оператор (команда). Умова – це логічний вираз, які
бувають прості і складені. Простий логічний вираз – це два арифметичні
вирази, з’єднані символом відношення (порівняння). У Паскалі символи
відношень записуються так:>-більше,<менше, >= - більше або
дорівнює (не менше), <= - менше або дорівнює (не більше), = - дорівнює,
< > - не дорівнює. Наприклад: x<5; x+y>=2*x; x< >y.
Складені логічні вирази – це прості логічні вирази, до яких застосовані логічні
операції not (не), and (і), or (або). Наприклад. Побудувати вираз, який
буде використовуватися для визначення студентів, які не отримали оцінки “2” з
інформатики (тобто отримали інші оцінки). Для позначення оцінки використаємо
числову змінну ocinka. Шуканий вираз можна записати так: А). not(ocinka=z)
або ocinka< >2. Приклад. Записати подвійну нерівність
0<x<3 для дійсних х можна так: (x<0) and (x<3). Примітка.
Прості логічні вирази, які входять у складені, записують у круглих дужках.
Приклад.  На мові
Паскаль таку складену умову можна записати так: x< >4 or x<
>-5. Задача. Скласти програму, де у змінні а та b ввести два цілих
числа. Третій змінній с присвоїти значення більшого з-поміж уведених. Якщо числа
рівні, то змінні с присвоїти значення будь-якого з чисел. program
twonumbers; var a,b, c: integer; begin write (’Введіть два
числа’); read ln(a,b); if a>b then c:=a; if a<b then
c:=b; if a=b then c:=a; write ln (‘c=’, c); read ln end.
Задача. Увести будь-яке значення х і обчислити значення функції у, яка задана
формулою  program
F1 var x,y: real; begin write (‘Введіть х:’); read ln
(x); if x>0 then y:=x+3 else y:=x-5; write ln (‘y=’,y);
read ln end. Повне розгалуження. Повне розгалуження
реалізують за допомогою повної команди розгалуження if. |
| | If<умова>then<команда
1>else<команда 2>; | | Виконання команди: Якщо умова виконується (в блок-схемі –
вітка “так”), то виконується команда 1 (або серія команд 1), якщо ні – то команда
2 (серія команд 2). Зауваження. На місці команди 1 та команди 2 може бути
теж команда розгалуження if. Приклад. Визначимо більше число з-поміж двох
чисел: If a>=b then c:=a else c:=b; де a i b – два числа, а с –
проміжна змінна куди заносимо більше з 2-х чисел. Оператор вибору case.
Якщо потрібно здійснити вибір з великої кількості варіантів, зручно
використовувати оператор (команду) вибору case: |
| | case <вираз-селектор>of
<список 1>:<команда 1>; <список 2>:<команда
2>; … <список n>:<команда n>; else
<команда> end; | | Виконання оператора: Якщо значення виразу збігається зі
значенням з найбільшого списку чи діапазону, то виконується відповідна команда, що
записана після двокрапки “:” і на цьому виконання команди case закінчується, якщо
ні, то виконується команда після слова else. Складової частини else
<команди> може бути. Задача. У багатьох університетах поточні знання
студентів протягом семестру оцінюють за стобальною системою. Потім бали переводять
в оцінки:
<<відмінно>>,<<добре>>,<<задовільно>>,<<незадовільно>>.
Оцінки визначають так: Бали Оцінка 88-100
<<відмінно>> 71-87 <<добре>> 50-70
<<задовільно>> 0-49 <<незадовільно>> Скласти
програму, яка для конкретного студента (name) і його кількості балів (bal)
виводить його оцінку (mark). program Marks; var bal: integer; name,
mark: string; begin write (‘Введіть прізвище’); readln
(name); write (‘Введіть бали’); readln (bal); case bal of
88…100: mark:= ‘відмінно’; 71…87: mark:= ‘добре’; 50…70: mark:=
‘задовільно’; 0…49: mark:= ‘незадовільно’; else mark: = ‘0’
end; if mark < > ‘0’ then writeln (name:15, mark:15) else
writeln (‘помилка під час введення кількості балів’): end. або інший
приклад: case k of 1; cina:=22, 2,3: cina:=35; 4:
cina:=50; else cina:=97 end; 3. Складена команда.
Складена команда – це команда, в якій декілька команд об’єднано в одну за
допомогою службових слів begin та end: | begin
<команда 1>; <команда 2>; … <команда
n>; end; | |
Задача. Скласти програму, яка дає довідку про назву столиці (St) та кількість
населення (nas, у мільйонах) деякої країни (kr) з такого переліку: Угорщина,
Італія, Україна. program Countries; var kr, st: string; nas:
integer; begin write (‘Введіть назву країни’); readln
(kr); if kr = ‘Угорщина’ then begin st:= ‘Будапешт’;
nas:=11 end; if kr = ‘Італія’ then begin st:=
‘Рим’; nas:=60 end; if kr = ‘Україна’ then began
st:= ‘Київ’; nas:= 48 end; writeln (‘Столиця - ’, st,
‘населення-’, nas, ‘млн осіб’) end.
|