Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів.43.15

Матеріал з Фізмат Вікіпедії
Версія від 01:31, 7 червня 2010, створена Mylyanych rs (обговореннявнесок) (Створена сторінка: Тема: Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів. Опис розгалуження …)
(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Тема: Алгоритми з розгалуженнями. Блок-схеми розгалужених алгоритмів. Опис розгалуження мовою програмування. Розв’язання задач з використанням розгалужених алгоритмів. Мета: вивчити синтаксис та семантику вказівки розгалуження, повну та скорочену форми вказівки розгалуження; навчитися записувати умову на мові Pascal, перевіряти істинність умови, виконувати вказівку розгалуження, підбирати значення для перевірки вказівки розгалуження, складати та виконувати алгоритми з розгалуженнями. Хід уроку І. Аналіз тематичної атестації. Звернути увагу учнів на допущені помилки. Розв'язати задачі та тести, які виявилися проблемними для учнів. ІІ. Вивчення нового матеріалу.(Лекція) Розгалуження - це така форма організації дій, при якій в залежності від виконання або невиконання деякої умови здійснюється або одна, або друга послідовність дій. алг об'їзд небезпечної ділянки поч Якщо ремонт закінчено то проїхати 5 км по відремонтованому шосе інакше їхати 10 км в об'їзд Все.

1. Складена команда — це конструкція такого вигляду: begin <команда 1>; ……………..; <команда n>; end; Складена команда трактується як одна команда. 2. Логічний вираз — це засіб записування умов для відшукання потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені. Простий — це два арифметичні вирази, з'єднані символом відношення, а складений — це прості логічні вирази, з'єднані назвами логічних операцій: not, and і or. 3. Команда розгалуження if (умовна команда) має два різновиди. 1. Повна команда розгалуження має вигляд if < логічний вираз > then <команда 1> else < команда 2 >;


Дія команди. Якщо логічний вираз істинний, то виконується команда 1, в протилежному випадку — команда 2. Команди 1 та 2 можуть бути простими або складеними. Приклад. Нехай х=9. У результаті виконання команд if x>7 then y:=x*x else y:=sin(x); if x<5 then z:=exp(x) else z:=sqrt(x); отримаємо y=81,z=3.

2. Коротка команда розгалуження має вигляд if <логічний вираз > then <команда 1>;


Дія команди. Якщо логічний вираз істинний, то виконується команда 1, інакше виконується команда, яка знаходиться за даною конструкцією. Приклад. Нехай х=25. Тоді у результаті виконання команд if x>12 then y:=2*x; z:=10; if x<5 then z:=exp(x); отримаємо y=50,z=10. 4. Команда goto — це команда безумовного переходу, яка змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має позначку (мітку): goto <позначка>; Позначка може стояти перед довільною командою в програмі. Вона відокремлюється від команди двокрапкою (:) <позначка> : <команда>; Позначку треба заздалегідь оголосити на початку програми у розділі label: label <список позначок>; Позначка може починатися з букви або бути числом від 0 до 9999. Зауваження. Не можна передавати керування команді, яка є в середині підпрограми чи в середині складеної команди. 5. Команда вибору (case) має вигляд case <вираз> of <список значень 1> : <команда 1>; ……………………………………; < список значень n> : <команда n> else <команда n+1> end; Тут вираз — це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case. Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case. ІІІ. Закріплення. Розв’язування задач. Задача 1. Обчислити і вивести значення складеної функції у у деякій заданій користувачем точці х, якщо

program Myfunction; uses Crt; var x,y:real; begin writeln ('Bвeдіть x'); readln(x); if x < -1 then y:=ln(abs(x)) else if (x>=-l) and (x<l) then y:=sin(x) else y:=cos(x); writeln('x=',x:5:2,' y=',y:5:2); readln; end.

Задача 2. Ввести декілька наборів коефіцієнтів квадратного рівняння ax2+bx+c=0 і вивести повідомлення чи рівняння матиме дійсні корені, чи ні. program Rivnyannya; label 99,finish; var a,b,c,d,x,y:real; begin 99: writeln('Bвeдiть коефіцієнти квадратного рівняння'); readln(a,b,c); if a=0 then goto finish; d:=b*b-4*a*c; if d>=0 then writeln('Данe рівняння має дійсні розв’язки') else begin writeln(‘Дaнi введені некоректно'); writeln('Рівняння дійсних розв'язків не має'); goto 99; end; finish: readln end.

Задача 3. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:

Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури? program Kvytky; var k,m,cina:integer; begin writeln('Введіть номер пункту та кількість квитків:'); readln(k,m); case k of 1  : cina:=22; 2..4  : cina:=25; 5,6  : cina:=30 else cina:=35 end; write(m, ' квитків до пункту ', k, ' коштують '); writeln(m*cina); readln end.

Якщо під час виконання програми ввести дані так: 3 5, то на ікрині отримаємо: 5 квитків до пунку 3 коштують 125.

ІV. Підсумки уроку. Домашнє завдання: підручник ст.229-231; 237-239; конспект.