Програма на мові Turbo Pascal, лінійні програми Команди галуження, вибору та мітки переходу
Вид материала | Конспект |
- Компоновать программы из отдельных частей отлаживать программы выполнять программы., 197.76kb.
- Програма Turbo Pascal хід урок, 100.3kb.
- Б. В. Ващук Turbo Pascal, 715.52kb.
- Розділ лінійні програми вступ поняття програми. Мова програмування середовище програмування., 1210.78kb.
- Программирование на языке высокого уровня, 59.92kb.
- Конспект урока по информатике для десятого класса по теме «Условный оператор в Turbo, 32.44kb.
- Доманская Юлия Георгиевна г. Вилейка 2006г пояснительная записка, 74.95kb.
- Опис програми та даних 8 Тестування 9 Список літератури 10 Додаток (роздрук програми), 90.22kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
- Задачи работы Научиться создавать программы на языке Turbo Pascal с использованием, 598.05kb.
Тема: Команди галуження, вибору та мітки переходу
Н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;