Опис алгоритмів з розгалуженням на НАМ та мовою програмування.Частина 2 - Інформатика - Уроки, реферати, виховні роботи та багато іншого - Обмін досвідом


Форма входу

Вітаю Вас Гість!

Пошук

чат

200

Наше опитування

Чи потрібне зовнішнє оцінювання
Усього відповідей: 235

Статистика


Усього онлайн: 1
Гостей: 1
Користувачів: 0
Головна » Стаття » Інформатика

Опис алгоритмів з розгалуженням на НАМ та мовою програмування.Частина 2

них помістимо в max. А потім порівняємо число в max із третім числом, що залишилося, і більше з них знову запишемо в max. Наприкінці виведемо значення з max на екран - воно і буде максимальним.

PROGRAM Maximum;

VAR a,b,c : real; три вихідних числа

max : real;  допоміжний осередок

BEGIN

write('Уведіть три числа: ');

readln(a,b,c);       уведення чисел

if a > b       визначаємо більше з двох

then max := a

else max := b;

if max < c   якщо  третє  число  ще більше,

then max := c;     те  поміщаємо  його  в  max; інакше

writeln('Максимум =',max) у max залишається колишній результат

END.

Алгоритм рішення цієї задачі можна побудувати і без допоміжної перемінний max (до речі спробуйте це зробити). Однак програма вийде більш громіздкою і заплутаною, тому  що "мотрійки" з  операторів  IF  не збільшують ясності програми.

А тепер ми перейдемо до оператора вибору.

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

CASE вираження OF

список констант:оператор;

........................;

список констант:оператор

ELSE оператор

END;

Оператор обчислює значення "вираження", вибирає список констант, у якому міститься отримане значення, і виконує "оператор", що відповідає обраному варіанту, після чого виконання оператора CASE завершується. Якщо значення "вираження" не знайдено в жодному зі списків, то виконується "оператор" наступний після ELSE. До речі, перед ELSE крапка з коми також не ставиться. Якщо частина "ELSE оператор" отсутствует, то для останнього випадку нічого не буде виконаються. Значення "вираження" може бути будь-як простого типу, крім REAL. Саме "вираження" часто називають селектором. Як окремий випадок роль селектора може грати одна перемінна. Завершується оператор CASE службовим словом END.

І на закінчення маленький приклад із програми. Якщо в цілої перемінний Month зберігається номер місяця, то відповідний номер кварталу року можна визначити так:


case Month div 3 of

0: writeln('1 квартал');

1: writeln('2 квартал');

2: writeln('3 квартал');

3: writeln('4 квартал')

else writeln('Такого місяця немає')

end;

чи так:

case Month of

1,2,3: writeln('1 квартал');

4,5,6: writeln('2 квартал');

7,8,9: writeln('3 квартал');

10,11,12: writeln('4 квартал')

else writeln('Такого місяця немає')

end;


Оператор вибору використовується не часто, але в придатній ситуації дуже зручний, тому що виглядають більш ясно, чим численні вкладені умовні оператори. Недолік його в тім, що не можна вибір варіантів здійснювати за умовами, як в операторі IF. І останнє зауваження. У кожнім варіанті оператора CASE використовується тільки один оператор, що, природно, може бути замінений складеним оператором.

ІІІ. Закріплення нового матеріалу.

Давайте дещо повторимо. Хто мені дасть відповідь на питання?

1.     Що таке операція розгалуження?

2.     Що таке умовний оператор?

3.     Що таке оператор вибору?

4.     Де можна застосовувати оператор вибору?

5.     Де застосовується умовний оператор?

IV. Домашнє завдання.

Вивчити по зошиту та рішити задачки.

1) Дані позитивні x, y і z. З'ясувати, чи існує трикутник зі сторонами x, y, z. Відповідь видати у формі "Трикутник (не) існує".

2) Нехай перше число місяця - понеділок. Визначити день тижня довільного (уведеним користувачем) числа цього місяця (використовуйте оператор CASE).

IV. Висновки.

Якщо питань у вас немає то на цьому наш урок закінчено. Запишіть домашнє завдання в щоденники: Верлань А.Ф., Апатова Н.В. “Інформатика 10-11” ст. 132-133.

До побачення.

 

 

 

PROGRAM Maximum;

VAR a,b,c : real;     три вихідних числа

max : real;  допоміжний осередок

BEGIN

write('Уведіть три числа: ');

readln(a,b,c);    уведення чисел

if a > b  визначаємо більше з двох

then max := a

else max := b;

if max < c    якщо  третє  число  ще більше,

then max := c;   те  поміщаємо  його  в  max; інакше

writeln('Максимум =',max) у max залишається колишній результат

END.
Категорія: Інформатика | Додав: stdynzosh (18.03.2009) | Автор: Олександр
Переглядів: 458 | Рейтинг: 0.0/0
Усього коментарів: 0
Додавати коментарі можеть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]