Інший бік справи - програмне забезпечення

Алгоритми і програми з розгалуженнями.

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: = 35 sin x + cos 2x/3.5-4absx;

write ln x:6:2, y:6:2

Goto 10;

End.

2. Умовні оператори.

У повсякденній діяльності часто доводиться аналізувати різноманітні ситуації, умови і залежно від них приймати ті чи інші рішення.

Команди розгалуження або умовні оператори змінюють порядок виконання дій у алгоритмі в залежності від виконання чи невиконання певних умов. Розгалуження бувають декількох видів. Найпростішим видом є "неповне розгалуження".

Неповне розгалуження реалізується за допомогою команди if якщо:

Виконання команди: команда може бути один оператор або група операторів. Якщо виконується умова в блок-схемі – вітка "так", то виконається оператори чи група операторів після слова then. Якщо ж умова не виконується в блок-схемі – вітка "ні", то ця команда не буде виконуватися і буде виконуватися наступний після if оператор команда.

Умова – це логічний вираз, які бувають прості і складені.

Простий логічний вираз – це два арифметичні вирази, з’єднані символом відношення порівняння.

У Паскалі символи відношень записуються такбільше,менше,

= - більше або дорівнює не менше, = - менше або дорівнює не більше,

= - дорівнює, - не дорівнює.

Наприклад: x5; x+y=2x; x y.

Складені логічні вирази – це прості логічні вирази, до яких застосовані логічні операції not не, and і, or або.

Наприклад. Побудувати вираз, який буде використовуватися для визначення студентів, які не отримали оцінки "2" з інформатики тобто отримали інші оцінки. Для позначення оцінки використаємо числову змінну ocinka. Шуканий вираз можна записати так:

А. notocinka=z або ocinka 2.

Приклад.

Записати подвійну нерівність

0x3 для дійсних х можна так: x0 and x3.

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

Приклад.

На мові Паскаль таку складену умову можна записати так:

X 4 or x -5.

Задача. Скласти програму, де у змінні а та b ввести два цілих числа. Третій змінній с присвоїти значення більшого з-поміж уведених. Якщо числа рівні, то змінні с присвоїти значення будь-якого з чисел.

Program twonumbers;

Var a, b, c: integer;

Begin

write ’Введіть два числа’;

read lna, b;

if ab then c:=a;

if ab 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 x0 then y:=x+3 else y:=x-5;

write ln ‘y=’,y;

read ln

End.

Повне розгалуження.

Повне розгалуження реалізують за допомогою повної команди розгалуження if.

Ifумоваthenкоманда 1elseкоманда 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.



Головне меню