Урок 40 Інформатика (АП)
Мітки. Безумовний оператор Goto.
Мета.
Навчальна. ознайомити учнів з оператором безумовного переходу, поняттям мітки, виробляти навики застосовувати умовний та безумовний оператор при складанні алгоритмів та програм мовою Паскаль.
Розвиваюча. Розвивати логічне мислення, самостійність, вміння застосовувати набуті знання до практичних завдань.
Виховна. Виховувати наполегливість, естетичність у оформленні, грамотно висловлювати свої думки, вміння раціонально використовувати час.
Тип уроку. Засвоєння нових знань і навичок.
Матеріали для роботи з учнями:
План
Пам’ятка для учня!
Хід уроку
1. Перевірка домашнього завдання.
1. Наявність.
2. Питання.
3. Задача.
Три точки на площині задано координатами (х1; у1), (х2; у2), (х3, у3). Визначити, чи лежать вони на одній прямій. (Визначити відстані між точками: S1, S2, S3. Математична модель: Якщо S1+S2= S3 або S2+ S3=S1 або S1+ S3=S2, то точки лежать на одній прямій, інакше точки не лежатьна одній прямій).
2. Актуалізація опорних знань.
Повне розгалуження:
if <умова> then <оператор Р1> else <оператор Р2>;
Неповне розгалуження:
if <умова> then <оператор Р>;
Якщо в умовному операторі використовується серія команд, які виконуються за певних умови.
if <умова> then
begin
<серія команд>
end;
else
begin
<серія команд>
end;
3. Мотивація навчальної діяьності.
Програма – це послідовність вказівок, які виконуються одна за одною. Для зміни порядку виконання команд в програмі Під час розв’язування багатьох задач виникає ситуація коли потрібно змінити порядок виконання команд в програмі.
4. Мітки. Оператор безумовного переходу.
Безумовний спосіб зміни порядку виконання операторів програми здійснюється за допомогою міток і оператора Goto.
Міткою називається описаний в розділі міток Label ідентифікатор або беззнакове число в діапазоні від 0 до 9999.
Приклади:
label 111, m1, stoplebel, my_label, label_1, label_2, 10, 909, M1, M10/
Всі мітки, які використовуються в програмі, повинні бути описані в розділі опису міток Label:
Label <Мітка1>, …, <МіткаN>;
Label M1, 1, 2;
Оператор безумовного переходу Goto має вигляд:
goto <Мітка>;
Результатом виконання оператора Goto є передача управління оператору, який позначено міткою.
Використання безумовного переходу порушує принцип структурованого підходу до написання програм, тому застосовувати оператор Goto необхідно лише у крайньому випадку.
Застосування оператора Goto вважається у програмістів поганим тоном!
Використання оператора безумовного переходу можна продемонструвати на прикладі захисту програми від введення недопустимих даних.
Приклад 1.
Нехай за умовою задачі необхідно задавати лише додатні значення змінних x, y, z.
Приклад 2.
Порожній оператор
Загальний вигляд порожнього оператора:
;
Тобто, якщо ви в програмі випадково поставите підряд «;;», то це компілятором Паскаля не буде вважатися помилкою, оскільки між цими двома символами він розпізнає порожній оператор! Але не лише для цього потрібен порожній оператор.Інколи виникає необхідність передати керування на невиконувану частину програми, якою є, наприклад, службове слово end. А оскільки мітку можна ставити лише на виконуваній частині, то для цього існує порожній оператор:
5. Розв’язування задач.
Задача 1.Чи існує трикутник, якщо його сторонами є відрізки а, в, с. Якщо трикутник не існує, то ввести нові значення а, в, с, якщо існує, то порахувати площу і периметр трикутника.
1. Створимо математичну модель.
2. Створимо блок-схему до цієї задачі
Program Triangle;
uses crt;
var a,b,c,p,s: real;
label 2;
begin
clrscr;
writeln(‘Ввести довжини трьох сторін трикутника a,b,c’);
2: readln(a,b,c);
writeln(‘a=’, a, ‘b=’, b,’c=’,c);
if (a<b+c) and (b<a+c) and (c<(a+b) then {нерівність трикутника}
begin writeln(‘трикутник існує’);
p:= (a+b+c)/2;
s:= sqrt(p*(p-a)*(p-b)*(p-c));
p:=p*2;
writeln(‘s=’, s:6:2, ‘p=’, p:6:2);
end
else
begin writeln (‘трикутника не існує’);
writeln(‘ввести нові сторони а, в, c’);
goto 2;
end;
readln
end.
Задача 2.
Дано натуральне число. Надрукувати біля цього числа слово "гривня" у відповідному відмінку.
Дано: натуральне число
Знайти: умову, коли потрібно говорити „гривня”, коли „гривні”, коли „гривень”. Отже, випадків буде 3.
Приклади чисел | Відповідне слово | Висновок |
1, 21, 131, 5421 | гривня | Остання цифра 1, окрім 11 |
2, 3, 4, 32, 23, 54, 342, 7653 | гривні | Остання цифра 2, 3, 4, окрім випадків, коли передостання=1 |
5, 6, ..11, 12,..19, 20, 511, 87605 | гривень | У інших випадках |
Вхідні:
Проміжні:
Всі вхідні дані цілого типу (integer).
Var x,cp,cpp:word; begin read(x); cp:=x mod 10; cpp:=x div 10 mod 10; if (cp=1)and(cpp<>1)then writeln('гривня’) else if (cp>=2)and(cp<=4)and(cpp<>1) then writeln('гривні’) else writeln('гривень’) end. |
Ввід | Вивід |
671 | рубль |
211 | рублей |
54 | рубля |
6. Підсумки уроку.
7. Домашнє завдання.
1. Вивчити конспект.
2. Дано три цілих додатних числа x, y, z. Визначити, чи можна з відрізків з цими довжинами утворити трикутник. Визначити, який це трикутник: гострокутний, тупокутний чи прямокутний.