69131

Алгоритмічний вибір альтернатив. Вкладеність конструкцій вибору

Лекция

Информатика, кибернетика и программирование

Під час програмування деяких розгалужень виникає потреба у використанні операторних блоків що розглядатимуться у розділі 3. У цьому ж розділі буде пояснено як орієнтуватися в коді великих програм що містять численну кількість конструкцій вибору та операторних блоків.

Украинкский

2014-09-30

48 KB

2 чел.

Лекція 8.Тема:Алгоритмічний вибір альтернатив. Вкладеність конструкцій вибору.

                        Операторний блок.Поліваріантний вибір.

План:

1. Алгоритмічний вибір альтернатив

2. Вибір із двох альтернатив

3. Вкладеність конструкцій вибору

4. Операторний блок

1. Алгоритмічний вибір альтернатив

 Алгоритмічна конструкція, що дозволяє виконавцеві алгоритму вибрати ту чи іншу послідовність дій залежно від певних умов, називається розгалуженням або конструкцією вибору альтернатив. У даному розділі розглянуто механізми використання цієї алгоритмічної конструкції у програмуванні. Є такі різновиди конструкції вибору, як вибір з двох альтернатив і поліваріантний вибір. Вибір із двох альтернатив розглядатиметься у розділах 1 та 2, а поліваріантний вибір -у розділі 3. Під час програмування деяких розгалужень виникає потреба у використанні операторних блоків, що розглядатимуться у розділі 3. У цьому ж розділі буде пояснено, як орієнтуватися в коді великих програм, що містять численну кількість конструкцій вибору та операторних блоків.

2. Вибір із двох альтернатив

Алгоритмічна конструкція альтернативного розгалуження, або конструкція вибору з двох альтернатив, дозволяє виконавцеві алгоритму вибрати один із двох варіантів дій залежно від істинності деякої умови. У мові Pascal альтернативні розгалуження реалізуються умовним оператором (оператором розгалуження). Синтаксис умовного оператора є таким: if <умова> then <оператор1> [else <оператор2>];

Тут if, then, else - зарезервовані слова, що перекладаються як «якщо», «то», «інакше»; <умова> — довільний логічний вираз; <оператор1> і <оператор2> — довільні оператори.

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

Зауважимо, що в синтаксисі умовного оператора фразу el se <оператор2> записано у квадратних дужках, а отже, ця фраза є необов'язковою. Скорочена форма умовного оператора (без фрази else) реалізує одно альтернативне розгалуження. Якщо вираз <умовам в одно альтернативному розгалуженні є істинним, то <опе-ратор1> виконується, якщо хибним — не виконується і на цьому дія умовного оператора вважається завершеною.

Нарешті, розглянемо детальніше умову, що записується після слова і f і являє собою певний логічний вираз. Нагадаємо, що логічний вираз може бути як окремим порівнянням або окремою булевою змінною, так і поєднанням порівнянь або булевих змінних за допомогою логічних операцій and, or та not. Наприклад, умова x<= x>= 5  мовою Pascal записується так: (х>« 0) and (х<= 5), а умова x<=0 або x>= 5 — так: (х <= 0) ог (х >= 5). Умови, записані за допомогою логічних операцій and та or, називаються складеними, а умови, записані без таких операцій, — простими.

Наведемо найпростіший приклад застосування оператора вибору. Припустимо, потрібно визначити, чи належить значення дійсної змінної х проміжку [0;1], і вивести відповідне повідомлення. Ці дії виконує такий фрагмент програми:

1f (х>=0) and (х<=1) then

write(x belongs to [0:1]')

else

write(x does not belong to [0:1]'):

3. Вкладеність конструкцій вибору

Гілки деякого розгалуження можуть містити інші розгалуження. У даному розділі для простоти розглянемо лише той випадок, коли одне розгалуження вкладене до гілки el se іншого. Зобразимо таку алгоритмічну конструкцію у вигляді блок-схе-ми (рис. 3.1) та наведемо синтаксис відповідного фрагменту Pascal-програми.

1f <умова1> then <оператор1>

else 1f <унова2> then <оператор2>

                             else <операторЗ>:

4. Операторний блок

Синтаксис умовного оператора, що його було розглянуто в розділі 3.1.1, дозволяв виконувати лише один оператор у разі істинності певної умови і лише один оператор у разі її хибності. Проте часто виникає потреба у розгалуженнях, гілки шов містять більше ніж одну інструкцію. В такому разі застосовують операторів блоки.

Операторний блок, або складений оператор, — це послідовність операторів, що розпочинається ключовим словом begin та завершується ключовим словом end (слова begin та end інколи називають операторкими дужками). Операторний блок може перебувати в будь-якому місці програми, де синтаксисом мови припускається наявність оператора. Синтаксис операторного блоку має такий вигляд:   

begin

<оператор1>:

<оператор2>:

end;          

Усередині операторного блоку можуть міститися довільні оператори, у тому числі й складені, вони виконуються у порядку запису. Використання операторних блоків у гілках then та else оператора розгалуження продемонструємо на прикладі програми, що обчислює корені квадратного рівняння.

Приклад

Необхідно знайти розв'язки квадратного рівняння ах2 + Ьх + с = 0, коефіцієнти якого є дійсними числами, що їх вводить користувач. Залежно від значень коефіцієнтів а, Ь, с та дискримінанта d=b2 - 4ас можливі такі результати: всі дійсні числа є коренями (а = 0, b = 0, с = 0), коренів немає (а = 0, b = 0, с  0), є один корінь (а = 0, b 0), є два різних дійсних корені (а 0, d > 0), два дійсних корені збігаються (а Ф 0, d = 0) або існує два комплексно-спряжених корені (а  0, d < 0). Отже, для коректного розв'язання даної задачі слід виконати декілька порівнянь із нулем коефіцієнтів рівняння та його дискримінанта. Ці порівняння можна виконувати у різній послідовності, і відповідно до цього можна складати різні алгоритми. Алгоритми розв'язання однієї задачі можуть відрізнятися за своєю ефективністю. Припустимо, що для даної задачі найефективнішим є той алгоритм, який мінімізує середню кількість порівнянь для довільного набору вхідних даних. Спробуємо побудувати такий алгоритм. Зауваживши, що перевірка умови а = 0? відбувається в усіх варіантах розв'язання, робимо висновок, що розгалуження за цією умовою слід виконувати найпершим, а перевірку всіх інших умов здійснювати на його гілках. У тому разі, коли а = 0, перевірка умови с = 0? є доцільною, лише коли b = 0, тому умову b = 0? слід перевіряти раніше, ніж умову с = 0?. Врахувавши ці міркування, запишемо алгоритм і програму розв'язання квадратного рівняння.

Алгоритм обчислення коренів квадратного рівняння

Увести коефіцієнти квадратного рівняння а, b,  с.

Якщо а <> 0, то виконати дії 2.1-2.4.

Обчислити дискримінант за формулою d = b2 - 4ас.

Якщо d > 0, то обчислити корені Х\ та х2 за наведеною нижче формулою
та вивести їх.

        Якщо d < 0, то вивести повідомлення «Корені комплексні».

Якщо d = 0, то вивести повідомлення про рівність двох коренів та обчис
лити їх значення за формулою х^2 = -Ь/2а.

3. Якщо а = 0, то виконати дії 3.1-3.3.

Якщо b  0, то обчислити й вивести значення -с/b.

Якщо b = 0 і с  0, то вивести повідомлення «Коренів немає».

Якщо b = 0 і с = 0, то вивести повідомлення «Усі дійсні числа є коренями».

Наведемо програмне розв’язання задачі обчислення коренів квадратного рівняння.

рrogram ехЗ_2:

var a.b.c.d:real;

xl.x2:real;

begin

writeln('solution of quadratic equation'); writeln('enter koefficients: a.b.c'):

readln(a.b.c); {ввести значення коефіцієнтів}

1fa<>0
then
begin
d:=sqr(b)-4*a*c: {обчислити дискримінант}

1f d>0

then

begin

xl:-(-b+sqrt(d))/(2*a):

x2:-(-b-sqrt(d))/(2*a):

writelnt ('xl=1.xl:6:2.' x2=',x2:6:2):

end

else

if d=0

then

writeln ('roots are equal: x=’, b/(2*a):6:2)

else

writeln ('complex roots') end

else

1f b<>0

then writeln (‘x=’, -c/b:6:2)

else

if c<>0

then writeln (' no roots’)

else writeln (‘all real numbers are the roots’);

end

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

Контрольні питання

1. Алгоритмічний вибір альтернатив

2. Вибір із двох альтернатив

3. Вкладеність конструкцій вибору

4. Операторний блок


 

А также другие работы, которые могут Вас заинтересовать

24784. Региональная экономика и управление 100 KB
  Место региональной экономики и управления в современной системе наук. Главными составляющими предмета региональной экономики и управления являются: экономика отдельного региона как субъекта РФ; экономические связи между регионами; региональные системы национальная экономика как система взаимодействующих регионов; размещение производительных сил как процесса стихийного или целенаправленного распределения по территории средств производства и людей занятых в производстве. региональные аспекты экономической жизни госрегулирование...
24785. ТЕРРИТОРИАЛЬНАЯ ОРГАНИЗАЦИЯ НАСЕЛЕНИЯ 89 KB
  Территориальные факторы и особенности расселения населения Размещение населения показывает распределение жителей по отдельным частям территории страны. Показателями размещения являются численность населения или доля от общей численности и плотность населения количество жителей на единицу площади. Если динамика населения страны в целом зависит в основном от естественного движения населения то изменение размещения населения внутри России связано в основном с миграционными процессами.
24786. ТЕОРИЯ УПРАВЛЕНИЯ 168 KB
  В изучаемом курсе нас будет интересовать общая теория управления. И Кнорринг считает что управление в широком понимании этого термина непрерывный процесс воздействия на объект управления личность коллектив технологический процесс предприятие государство для достижения оптимальных результатов при наименьших затратах времени и ресурсов[19]. Понятие управление используется в следующих значениях: 1 управление как наука система упорядоченных знаний в виде концепций теорий принципов способов и форм управления; 2 управление как...
24787. Направления административных реформ в странах Запада и в России: сравнительный анализ 75 KB
  Суть административной реформы АР в Российской Федерации в комплексной трансформации системы органов государственного управления с целью обеспечения их большей гибкости и эффективности. Концепция нового государственного управления: мировая практика. Стремление осуществить АР в РФ соответствует идеям и мировой практике совершенствования государственного управления. во многих странах Запада был реализован значительный объем широкомасштабных и комплексных программ реформирования системы государственного управления на основе концептуальных...
24788. ТЕОРИЯ ОРГАНИЗАЦИИ. Сущность системного подхода к организациям. Синергетический эффект в организациях 97.5 KB
  Системный подход стал фактически тем инструментом который позволил создать современную теорию организации. Можно сказать что теория организации как наука родилась именно в рамках этого подхода. Цели организации задаются извне или вырабатываются внутри нее с учетом этих целей выбираются форма и устройство организации.
24789. УПРАВЛЕНИЕ ПРСОНАЛОМ 147.5 KB
  Набор персонала заключается в комплектовании необходимого резерва кандидатов на все должности и специальности из которых организация отбирает подходящих для нее работников.; составление базы данных по кандидатам на вакантные должности; отбор персонала выявление различий между кандидатами и соответствующими требованиями будущей деятельности выбор лучших кандидатов; решение о приеме на работу; введение в должность адаптация работника. Это более тонкая по сравнению с отбором процедура идентификации характеристик человека и...
24790. РАЗРАБОТКА УПРАВЛЕНЧЕСКОГО РЕШЕНИЯ 73 KB
  Требования предъявляемые к управленческим решениям Сущность и виды управленческих решений Решение это выбор альтернативы. Решения принимаемые в процессе управления могут быть классифицированы по различным признакам. По уровню управления различают решения принимаемые на разных уровнях: начальника цеха начальника отдела; заместителя директора; директора; министра.
24791. УПРАВЛЕНИЕ ОБЩЕСТВЕННЫМИ ОТНОШЕНИЯМИ 42 KB
  Организация связей с общественностью в системе государственного и муниципального управления: общее и особенное. управления можно отнести: участие в демократизации государственного управления содействие становлению гражданского общества. Существует прямая зависимость между уровнем управления и особенностями служб PR: в региональных и муниципальных органах власти широко реализуется коммуникативная функция и общение с гражданами постоянно и организованно. Возможности PR могут быть использованы в целях повышения открытости государственного...
24792. ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ УПРАВЛЕНИЯ 59.5 KB
  наличие централизованных информационных центров генераторов баз данных 2. Например: Федеральная налоговая служба организовала Банк Данных глобальную базу данных. Локальные и распределенные базы данных системы управления базами данных. Информационные ресурсы представляют собой отдельные документы и отдельные массивы документов в информационных системах библиотеках архивах фондах банках данных других видах информационных систем.