Презентація з інформатики на тему Поняття підпрограми(10 клас)


10-А 31.03.2014Сьогодні на уроціТема. Підпрограми. (11 уроків)Урок №1. Тема. Поняття підпрограми. ПідпрограмиЩо це таке?Для чого це?Як з цим працювати?Підпрограми потрібні для того, щоб спростити структуру програми і полегшити її налагодження. Підпрограми оформляються у вигляді логічно закінченої частини програми.Допоміжний алгоритм- Підпрограма - це фрагмент коду, до якого можна звернутися по імені. Вона описується один раз, а викликатися може стільки разів, скільки необхідно. Одна і та ж підпрограма може обробляти різні дані, передані їй як аргументи. S1-?S2-?S3-?S -?abcdenm При розробці програм іноді з’являються повторювані групи дій або виникає необхідність поділити програму на окремі модулі. Для цього існують підпрограми.Підпрограма – це іменована, логічно закінчена група операторів, яку можна викликати для виконання будь-яку кількість разів із різних місць програми.Підпрограми мають структуру, аналогічну до структури головної програми на Паскалі.Кожна підпрограма – це міні-програма в програмі. В ній діють всі закони, що притаманні будь-якій програмі.Це варто знати: uses crt;const n=6; var a:array[1..n,1..n] of integer;i,j,d1,d2:integer;beginfor i:=1 to n dofor j:=1 to n do заповнитиa[i,j]:=random(10);for i:=1 to n do beginfor j:=1 to n do вивестиwrite(a[i,j]:4); writeln;end;d1:=1; d2:=1;for i:=1 to n do beginfor j:=1 to n do begin обчислитиif (i<j) and(i+j<n+1) then d1:=d1*a[i,j];if (i>j) and(i+j>n+1) then d2:=d2*a[i,j]; end;end;if d1>d2 then writeln(' d1>d2 ') else writeln(' d1<d2 ');writeln(' d1= ',d1);writeln(' d2= ',d2)end.Програму на опрацювання елементів масиву можна розбити на блоки: procedure input; begin writeln('r1,r2,r3'); readln(r1,r2,r3); end;procedure plosha(r:integer;var s:real); begin s:=4*pi*r*r; end; procedure output; begin writeln('s1=',s1:6:1,' s2=',s2:6:1,' s3=',s3:6:1); writeln('v1=',v1:5:1,' v2=',v2:6:1,' v3=', v3:6:1); end;Підпрограми у вигляді процедури: ПідпрограмаПроцедураФункція (користувача)З параметрамиБез параметрівПроцедури і функції описуються у відповідних розділах опису, до початку блоку виконуваних операторів.Процедури і функції мають незначні відмінності в синтаксисі і правилах виклику. Структура процедури аналогічна структурі основної програми:procedure ім’я [(список параметрів)]; { заголовок }розділ описуBeginрозділ операторівend;procedure ім’я;розділ описуBeginрозділ операторівend; Процедура без параметрівВиклик процедури без параметрів здійснюєтьсяза назвою процедури:figyra1;figyra2;Створіть свою власну програму, яка складається з процедури без параметрівОсновначастина програми procedure input; begin writeln('r1,r2,r3');readln(r1,r2,r3); end; procedure plosha(r:integer;var s:real); begin s:=4*pi*r*r; end; procedure obiem(r:integer;var v:real); begin v:=4/3*pi*r*r*r; end; procedure output; begin writeln('s1=',s1:6:1,' s2=',s2:6:1,' s3=',s3:6:1); writeln('v1=',v1:5:1,' v2=',v2:6:1,' v3=', v3:6:1); end; begin clrscr; input; plosha(r1,s1); plosha(r2,s2); plosha(r3,s3); obiem(r1,v1); obiem(r2,v2); obiem(r3,v3); output; end.r1r2r3s:=4*pi*r*r;v:=4/3*pi*r*r*r;Процедура з параметрамиПриклад №1 procedure plosha(r:integer; var s:real); begin s:=4*pi*r*r; end;readln(r1, r1,r2,r3,r3);Фактично відомо величини : r1,r2,r3 У процедурі використовують формальні величини: r ploshaІм’я процедури – надає користувач При звернені (виклику процедури) до процедури, формальні величини замінюються фактичними. plosha(r1,s1); Після фактичних величин через кому записують результатVar Вказує на передачу значень S в основну програму uses crt;Const n = 8;type mas = array[1 .. n] of real;var a, b : mas;i : integer;riz, sr_a, sr_b : real;procedure sr_arufm(x : mas; var sr : real); {1}Var i : integer; s:real;begins:= 0;for i := 1 to n dos := s + x[i];sr := s / n;end; {2}Begin { головна програма}writeln('masiv A:');for i := 1 to n doreadln(a[i]);writeln('masiv B:');for i := 1 to n doreadln(b[i]);{звернення до процедури 2 рази}Sr_arufm(a, sr_a); {3} {виклик процедури}Sr_arufm(b, sr_b); {4}riz := sr_a - sr_b;writeln( ‘sr_a =',sr_a);writeln( ‘sr_b =',sr_b);writeln(‘rizno= ', riz:6:2)end.Сам по собі опис не приводить до виконання підпрограми. Для того щоб підпрограма виконалася, її треба викликати. Виклик записується в тому місці програми, де потрібно отримати результати роботи підпрограмиПриклад № 2.Знайти різницю середніх арифметичних значень двох дійсних масивів з 8 елементів.Як видно з умови, для двох масивів потрібно знайти одну і ту ж величину - середнє арифметичне. Отже, логічним буде оформити його знаходження у вигляді підпрограми, яка зможе працювати з різними масивами. Домашнє завдання:Створити власні програми за аналогією1. прикладу №1(процедури без параметрів)2. Прикладу №2 (процедури з параметром)3. Вивчити теоретичний матеріал.