Програма на мові Turbo Pascal, лінійні програми Команди галуження, вибору та мітки переходу

Вид материалаКонспект
Тема: Команди галуження, вибору та мітки переходу
Вчити учнів складати програм та їх застосування на практиці. Виховн
Х i д у р о к у.
Розгалужений алгоритм - це алгоритм в якому використовується ті або інші дії залежно від результату перевірки умови.
У випадку, коли необхідно використовувати декілька вказівок розгалуження , то краще замінити їх вказівкою варіанту (вибору).
Скласти програму вибору пори року з порядковим номером місяця.
Label), та вказівки Goto.
Т е м а: вказівки повторення (цикли
Виховнa метa
Тип уроків
Форми короткого запису вказівок
Repeat Until KeyPressed
Вказівка повторення з параметром записується у вигляді
Begin .. End
Практична робота
МЕТА: Скл. програму циклічного обчислювального процесу Завдання
Розкласти натуральне число на множники
Задача. Скласти програму для визначення автономних чисел в межах від М
Знайти і вивести всі різні числа одновимірного масиву
Подобный материал:
1   ...   5   6   7   8   9   10   11   12   ...   17

Тема: Команди галуження, вибору та мітки переходу


Нaвчaльнa метa: Ознайомити учнів з командами галуження та їх властивостями в мові Turbo Pascal.

Вчити учнів складати програм та їх застосування на практиці.

Виховнa метa: виховувaти в учнiв увaжнiсть, спостережливість тa вiдповiдaльнiсть при вивчені мови Turbo Pascal.

Розвивaльнa метa: пізнавальний інтерес, цікавість до предмету.

Тип уроків: комбiновaний.

М е т о д: бесiдa, прaктичний.

Нaочнiсть: зaписи нa дошцi, конспекти, плaкaти.

Х I Д У Р О К У.


1. Оргaнiзaцiя роботи.

2. Повторення тa aнaлiз пройденого матеріалу.

3. Мотивaцiя нaвчaльно - пiзнaвaльної дiяльностi:

a) формат запису вказівок галуження;:

б) формат запису вказівки вибору;

в) формат запису мітки переходу;

г) приклади програм з вказівками галуження.

4. Сприняття тa зaсвоєння учнями нового мaтерiaлу.

Розгалужений алгоритм - це алгоритм в якому використовується ті або інші дії залежно від результату перевірки умови.

Вказівка розгалуження в мові Паскаль можна записувати в скороченій або повній

формах.

1. Запис скороченої форми. 2. Запис повної форми.



IF <умова> THEN <вказ.1> IF <умова> THEN

<вказ.1> ELSE <вказ.2 >

Службові слова мають зміст IF - якщо,THEN -то, ELSE -інакше.

Умова може бути простою і складеною.

а). Проста умова а<б, c>-b, y-0, d>a, x<>y.

б). Складена умова (x>5) and (x<2), (b-5) or (a-1).

Зміст логічних операцій and-і, or-чи (або), not-не (ні).

Вказівка розгалуження може записуватись з використанням

Begin - End таким чином:

if < умова > Thten Begin < вказівка 1 >; < вказівка 2 >End Else Begin < вказівка 3 >; < вказівка 4 > End;

( Зверніть увагу на місце знаходження розділових знаків ";" )

НАПРИКЛАД.

Program Summa3;

Uses Crt;

Var A,B,R,S: Integer;

BEGIN Clrscr;

Write ('Введіть через enter значення A,B-');

Read(a,b);

if A>B Then Begin

R:-A-b; Writeln('R-',R) End

Else Begin

S:-A+B; Writeln('S-',S) End; Readkey

END.

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




CASE < селектор > OF

мітка 1 :< вказівка 1 >;

мітка 2 :< вказівка 2 >;

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

мітка N :< вказівка N >

End;


Всі мітки варіантів вибору повинні бути різними.

НАПРИКЛАД. Скласти програму вибору пори року з порядковим номером місяця.


Program Pora; { Заголовок програми }

Uses Crt; { Підключення модуля математичних функцій }

Var MONTH: { Тип величини MONTH }

BEGIN Clrscr; { Початок розділу тіла програми }

Write('Введіть порядковий номер місяця ');

Readln(MONTH);

if (MONTH<1) or (MONTH>12) Then { Розгалуження }

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

Case MONTH of { Вказівки варіантів (вибору) }

12,1,2 : Writeln ('Зима');

3,4,5 : Writeln ('Весна');

6,7,8 : Writeln ('Літо');

9,10,11 : Writeln ('Осінь')

End; Readkey { Кінець вказівки вибору }

END. { Кінець програми }


МІТКИ (Label..), ВКАЗІВКА (Goto...)

Бувають випадки коли в системі розгалуження необхідно перейти на кінець програми або на інший рядок введ. даних.

В даному випадку говориться про інший спосіб зміни порядку виконання вказівок.

Це можливо з допомогою довільних міток (службове слово якої Label), та вказівки Goto.

Мітка - це довільне число в інтервалі від 0 до 9999 або довільний ідентифікатор (тобто ім'я мітки).

Мітки повинні бути описані в розділі опису міток програми.


Формат запису.

Label мітка1, мітка2, мітка3,...міткаN;

НАПРИКЛАД

Program Pr1;

Uses Crt;

Label A1,8,Alfa,b4; { Розділ опису міток в програмі }

Var x: integer;

BEGIN Clrscr:.......

Вказівка безумовного переходу Goto записується у вигляді:

Goto мітка;

НАПРИКЛАД Goto M1; Goto 4; Goto МІТКА2;

Вказівка безумовного переходу Goto може бути написана в любому місці програми. Мітка вказівки М1 записується перед рядком і відділяється від нього двокрапкою.

НАПРИКЛАД

Program Summa7;

Uses Crt;

Label M1;

Var a,b : Real;

BEGIN Clrskr; Write('Введіть через пропуск числа A,B-');

Read(a,b);

if A>B Then Begin V:-a-b; Goto M1 End; V:-a+b;

M1 : Writeln('Відповідь V-',V:1:2'); Readkey END.

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


Т Е М А: ВКАЗІВКИ ПОВТОРЕННЯ (ЦИКЛИ)

Нaвчaльнa метa: ознaйомити учнiв з формaтом зaпису вкaзiвок повторення чотирьох видів. Нaвчити складать програми з вказівками повторення.

Розвивати навички складання прог. та їх застос. На практиці.

Виховнa метa : виховувaти в учнiв увaжнiсть, спостережливість тa вiдповiдaльнiсть при вивчені мови Turbo Pascal.

Розвивaльнa метa: пізнавальний інтерес, цікавість до предмету.

Тип уроків: комбiновaний.

М е т о д: бесiдa, прaктичний.

Нaочнiсть: зaписи нa дошцi, конспекти, плaкaти.

Х I Д У Р О К І В

1. Оргaнiзaцiя роботи.

2. Повторення тa aнaлiз домaшнього зaвдaння.

3. Мотивaцiя нaвчaльно - пiзнaвaльної дiяльностi:

a) вкaзiвки повторення з передумовою;

б) вкaзiвки повторення з післяумовою;

в) вказівки повторення з параметром;

. г) елементи програм з форматом запису вказівок

повторення.

4. Сприйняття тa зaсвоєння учнями нового мaтерiaлу.

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

Ц и к лце алгоритмічна конструкція, за допомогою якої деяка серія операторів повторюється певну кількість разів для різних значень величин, що є в циклі. Кількість повторень в циклі повинна бути скінченною.


Формат запису вказівок в залежнлсті від умов має такі форми:

а) Вказівка повторення з передумовою (цикл-WHILE).

Значення службового слова While- п о к и.

Вказівка повторення з передумовою призначена для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, поки залишається істинною умова виконання циклу.

б) Вказівка повторення з післяумовою (цикл: Repeat - Until <умова> ). Службові слова вказівки: Repeat - повторювати, Until - поки. Вказівка виконується до тих пір, поки умова циклу не стане істиною

Форми короткого запису вказівок

While <умова> do Begin Repeat

<вказівка1> <вказівка1>

........... .........

End; Until <умова>

ПРИКЛАД: {Задача. Знайти суму всіх натуральних чисел

від 1 до N. }




Program SUMA1;

Uses Crt;

Var L,N,S:integer;

BEGIN ClrScr; s:=0; L:=1;

Write('Введіть к-ть натуральних чисел,N='); Read(n);

While L<=N do Begin {Початок цикла}

S:=S+L; L:=L+1;

End; {Кінець цикла}

Writeln('Відповідь,S=',s);

Readln;Readln

END.

Примітка.

- якщо умова у вказівці повторення хибна при першій же перевірці, то тіло циклу невиконується;

- необхідно враховувати умову про збільшення (зменьшення) лічильника циклу;

- входження в тіло вказівки повторення можливе тільки через заголовок цієї вказівки.

. ПРИКЛАД: Задача. Знайти суму всіх натуральних парних

чисел від 0 до N.




Program SUMA2;

Uses Crt;

Var I,N,S:integer;

BEGIN ClrScr; s:=0; I:=0;

Write('Введіть к-ть натуральних чисел,N='); Read(n);

Repeat {Початок цикла}

S:=S+I; I:=I+2;

Until I>N; {Кінець цикла}

Writeln('Відповідь,S=',s); Readln;Readln

END.


Примітка.

- тіло циклу у вказівці повторення з післяумовою повторюється

щонайменьше один раз;

- умова вказівки є умовою виходу з циклу;

- входження в тіло вказівки повторенням можливе тільки через заголовок цієї вказівки.

Зустрічається конструкція запису Repeat Until KeyPressed використовується для організації паузи в процесі виконання програми (до натиснення будь-якої клавіші).


в). ВКАЗІВКА ПОВТОРЕННЯ З ПАРАМЕТРОМ



1. (FOR - TO - DO ) 2. (FOR - DOWNTO - DO)


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

Вказівка повторення з параметром записується у вигляді:

1). Якщо К<=N то фор. зап.: 2). Якщо K>=N то фор. зап:

For i:=K to N do Begin For i:=K downto M do Begin

<вказівка1> <вказівка1>

<вказівка2> <вказівка2>

<вказівкаN> <вказівкаN>

End; End;

де і:=параметр, К:=вираз1, N:=вираз2.

Параметр (і)- це змінна скалярного типу (цілого, символьного, логічного аба перелічувального) типу, крім дійсного;

Вираз (К) - (початковий параметр вказіваки) - це деяка константа того ж самого типу, що й параметр вказівки;

Вираз (N) - (кінцевий параметр вказівки) - це деяка константа того ж самого типу, що й параметр вказівки.

ПРИКЛАД: Задача. Знайти суму всіх натуральних чисел

від 1 до N.




Program SUMA3; . Program SUMA3A;

Uses Crt; Uses Crt;

Var І,N,S : integer; Var І,N,S : integer;

BEGIN ClrScr; S:=0; BEGIN ClrScr; S:=0;

Write('Введіть N=');Read(n); Write('ВведітьN=');Read(n);

For І:=1 to N do For І:=N downto 1 do

S:=S+i; S:=S+i;

Writeln('Відповідь,S=',s); Writeln('Відповідь,S=',s);

Readln;Readln Readln;Readln

END. END.

В даних прикладах виконується в циклі одна лише вказівка (S:=S+i), то вказівки Begin .. End; не використовується (скорочений спосіб застосування циклу For).

Примітка.

- вказівку повторення з параметром зручно використовувати в тих випадках, коли попередньо відомо кількість повторень:

- параметр циклу не повинен змінювати свого значення в середині тіла вказівки повторення;

- параметр циклу повинен бути описаний у розділі змінних;

- значення параметра циклу після закінчення виконання володіє кінцевим значенням (i:=N), тому перед повторенням використання необхідно знову присвоїти нове початкове значення (i:=1).

ПРАКТИЧНА РОБОТА

ТЕМА "Опис і реалізація найпростіших циклічних програм ".

МЕТА: Навчитись складати та реал. циклічні програми.

НАОЧНІСТЬ:інтерпритатор мови Turbo Pascal(5.5 та 7.0 версій), комп'ютери, зразок виконання самостійної роботи,записи на дошці, конспекти вказівки вчителя.

ЗАВДАННЯ ДЛЯ ПРАКТИЧНОЇ РОБОТИ.


1.Вивчити можливості мови програмування Паскаль з реалізацї вказівки повторення:

а) з передумовою;

б) з післяумовою;

в) з параметром.

2. Відповісти на контрольні питання.

3. Скласти парограму розв'язування задачі згідно із завданням.

4. Виконати дану програму.

5. Підготувати і використати тести для перевірки правильності

функціонування програми.

6. Оформити звіт з практичної роботи.

КОНТРОЛЬНІ ПИТАННЯ.

1. Як записується і виконується вказівка повторення з передумовою?

2. Як записується і виконується вказівка повторення з післяумовою?

3. Яка різниця між вказівками повторення з передумовою і післяумовою?

4. Як запмсується і виконується вказівка повторення з параметром?

5. Як організувати вихід з вказівок повторення?

ЗАВДАННЯ ДЛЯ ВИКОНАННЯ.

1. Знайти суму цілих додатніх чисел кратних 7 і менших 100.

2. Скласти програму знаходження суми чисел:

S=1 +2 +3 +......n , якщо n=10.

3. Скласти програмузнаходження значення функці•:

1 1 1 1

Y= 1 + -- + — + -- +.... .+ -- , якщо n=10.

2 3 4 n


ЗРАЗОК ВИКОНАННЯ ПРАКТИЧНОЇ РОБОТИ

ТЕМА: Опис і реалізація найпростіших циклічних програм .

МЕТА: Скл. програму циклічного обчислювального процесу

Завдання. Cкласти програму знаходження факторіала

числа N N!=1*2*3*4*....N

Програма розв'язування даної задачі мовою програмування Паскаль.

Program Pr_Rob_5;

Uses Crt;

Var N,i:integer; Fact:longint;

BEGIN ClrScr;

Write('Введіть значення натурального числа N='); Read(n);

Fact:1;

For i:=1 to N do Fact:=Fact*I;

Writeln('N!=',Fact); Readln

END .

Результати виконання програми.

При введені натурального числа n=10, відповідь N!=3628800.

Т е с т у в а н н я п р о г р а м и.

1) n=2 2!=2

2) n=3 3!=6

3) n=4 4!=24

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

{Задача. Розкласти натуральне число на множники.}

program mnoj;

uses crt;

var s,i,n:integer;

begin ClrScr;s:=0;

writeln('Разкладання числа на множники'); writeln('---------------------------------------- ');

write('Введіть число N=');read(n); writeln(' '); write('Число ',n,'= ');

while n mod 2=0 do begin s:=s+1; if s=1 then write(2); write('*',2);

n:=n div 2 end; i:=3; while i<=n do if n mod i=0

then begin if s=0 then write(i);s:=s+1;

write('*',i); n:=n div i end else i:=i+2; readln;

end.

{ НАПРИКЛАД число 348=2*2*2*3*29 }


{ Задача. Скласти програму для визначення автономних чисел

в межах від М до N.

Автономне число це число квадрат якого останім дорівнює цьому числу.

НАПРИКЛАД: 52=25, 62=36, 252=625.....}

Program Avtonomni;

Uses Crt;

Var m,n,x,d:Longint;

BEGIN Clrscr;

Writeln('Введіть числа M i N=');Read(m,n);

D:=10;

For x:=m to n do Begin

While d<=x do d:=d*x;

If Sqr(x) mod d=x Then

Writeln(X,' автономне, квадрат якого ',Sqr(x))

End;

Readkey

END.


{Задача. Знайти і вивести всі різні числа одновимірного масиву

випадково заданих комп'ютером.

Program Masiv_rnd;

Uses Crt;

Const N=25;

Label 1;

type t=array[1..n]of integer;

Var a:t;x,i,j,k:integer; x1:array[1..n]of integer;

BEGIN Clrscr; writeln('Випадковi числа одновимiрного масива, к-ть =',n);

writeln;Randomize;