Komputery Okna Internet

Procedury w prezentacji Pascala. Procedury i funkcje w Pascalu. Rekurencja. Podprogramy Często zadanie wymaga powtórzenia określonej sekwencji instrukcji w różnych częściach programu. Przekazywanie parametrów. Parametry formalne

Aby skorzystać z podglądu prezentacji, załóż sobie konto Google (konto) i zaloguj się do niego: https://accounts.google.com


Podpisy slajdów:

Procedury i funkcje w Pascalu. Rekurencja Wykonywana przez nauczyciela informatyki w szkole GBOU 1362 Sanina Marina Sergeevna

Podprogram jest autonomiczną częścią programu, która wykonuje określony algorytm i umożliwia dostęp do niego z różnych części programu ogólnego. Korzystanie z podprogramów pozwala na zaimplementowanie jednej z najnowocześniejszych metod programowania - programowania strukturalnego.

Procedury procedura funkcja PROCEDURA FUNKCJA

Procedury i funkcje w Pascalu są deklarowane w sekcji deklaracji po sekcji zmiennych.

Funkcje i procedury mają parametry (zmienne, które przekazują pewną wartość). Są dwojakiego rodzaju: 1) Formalne — te, które znajdują się w opisie podprogramu 2) Rzeczywiste — te, które są przekazywane z programu głównego do funkcji lub procedury. Rzeczywiste parametry muszą odpowiadać formalnym pod względem ilości, kolejności i rodzaju.

Ponadto podprogram ma zmienne. z którym dalej pracuje. Znowu dzielą się na dwa typy: 1) Zmienne globalne, czyli takie, które działają w całym programie 2) Lokalne - te, które działają tylko w procedurze lub funkcji

Procedury Stosowane w przypadkach, gdy w podprogramie wymaganych jest wiele wyników. Istnieją dwa rodzaje procedur: z parametrem; bez parametru.

Struktura procedury jest podobna do struktury programu i składa się z nagłówka i bloku (treści procedury). procedura NazwaProcedury; var… begin… // Koniec treści procedury; początek // główna treść programu koniec.

Procedury bez parametrów procedura pr; zmienna i: liczba całkowita; begin for i: = 1 do 60 do write ('* "); writeln; end. begin pr; end Ten program wypisuje ciąg 60 gwiazdek.

Procedura parametrów. Utwórz program do wymiany dwóch liczb z = 5 i d = 7 program obmenDan; var c, d: liczba całkowita; procedura obmen (a, b: liczba całkowita); var m: liczba całkowita; początek m: = a; a: = b; b: = m; napisane (a, b); kończyć się; zacznij pisać ("Wprowadź 2 liczby:"); readln (c, d); obmen (c, d); napisane (c, "", d); Kończyć się.

Analiza problemu 1) przy wywołaniu procedury obmen z dwoma parametrami 5 i 7 liczby 5 i 7 są również umieszczane odpowiednio w zmiennych a i b: c 5 d 7 a 5 b 7

Aby zmienne c i d, a i b odnosiły się do tych samych komórek pamięci (jeśli zmienią się wartości a i b, to zmienią się wartości c i d), opisując parametry formalne dodaj słowo VAR przed wymaganymi zmiennymi: procedure obmen (var a, b: integer); s 5 d 7 a b

Funkcje Zestaw funkcji wbudowanych w języku Pascal jest dość szeroki (ABS, SQR, TRUNC itp.). Jeżeli w programie znajduje się nowa, niestandardowa funkcja, to musi być ona opisana w tekście programu, po czym można się do niej odwołać z programu. Funkcja jest wywoływana po prawej stronie operatora przypisania, wskazując nazwę funkcji i rzeczywiste parametry. Funkcja może mieć własne stałe lokalne, typy, zmienne, procedury i funkcje. Opis funkcji w Pascalu jest podobny do opisu procedur.

Charakterystyczne cechy funkcji: - wynik wykonania - jedna wartość, która jest przypisywana do nazwy funkcji i przekazywana do programu głównego; - nazwa funkcji może być zawarta w wyrażeniu jako operand.

Opis funkcji: funkcja (): typ; (sekcja opisująca nazwy lokalne) Begin (sekcja instrukcji wykonywalnych): =; (wymagany parametr) Koniec;

Wywołanie funkcji:: = (); 1 . Po prawej stronie operatora przypisania. 2. W wyrażeniu w stanie operatora rozgałęzienia. 3. W procedurze wyjściowej, w wyniku działania funkcji.

Rekurencja Procedury i funkcje w Pascalu mogą wywoływać się same, tj. mają właściwość rekursywności. Funkcja rekurencyjna musi zawierać rekurencyjny warunek zakończenia, aby nie powodować zapętlenia programu. Każde wywołanie rekurencyjne tworzy nowy zestaw zmiennych lokalnych. Oznacza to, że zmienne znajdujące się poza wywoływaną funkcją nie są zmieniane.

Napisz funkcję rekurencyjną, która oblicza silnię liczby n w następujący sposób: n! = 1 jeśli n = 1 n! = (N -1)! N jeśli n> 1

funkcja f (n: liczba całkowita): liczba całkowita; zacznij, jeśli n = 1 to f: = 1 inaczej f: = n * f (n -1); (funkcja f wywołuje samą siebie) end;

Zadania Zmień wartości zmiennych a, b, c tak, aby były ułożone w kolejności niemalejącej (a ≤ b ≤ c). Otrzymasz n liczb całkowitych. Znajdź wśród nich liczbę, której suma cyfr ma wartość maksymalną.



Podprogramy v Turbo Pascal


  • Podprogram jest to nazwana, kompletna logicznie grupa poleceń, które można wywoływać w celu wykonania dowolną liczbę razy z różnych miejsc w programie.

Powody korzystania z podprogramów

  • uprościć tworzenie dużych programów, rozkładając (podzielając) zadanie na kilka podzadań;
  • większa widoczność programu;
  • zapisywanie pamięci.

Rodzaje podprogramów

procedury

Funkcje

  • Procedura To niezależna nazwana część programu przeznaczona do wykonywania określonych czynności.

Procedury bez parametrów

  • Format nagrywania :

procedura ;

kończyć się ;

  • Wszystkie zmienne używane w procedurach bez parametrów są opisane w programie głównym (w module Var).

Przykład . Stwórz program do znajdowania objętości cylindra.

Program cylinder;

War R, H, V: prawdziwe;

Wejście procedury; (procedura wprowadzania danych)

Writeln ('wprowadź wartość promienia');

writeln ('wprowadź wartość wysokości');

Formuła procedury; { procedura obliczenia Tom }

V: = PI * sqr (R) * H;

Wyjście procedury; (procedura wyświetlania wyników)

napisane ('V =', V);


Procedury C parametry

  • W procedurach można opisywać stałe, zmienne i inne procedury.
  • Sekcja opisu w procedurach ma taką samą strukturę jak w programie głównym.
  • Zmienne lokalne- są to zmienne opisane w procedurze.
  • Zmienne lokalne nie są dostępne poza procedurą.
  • Zmiany zmiennych lokalnych w ramach procedury nie wpływają na wartości zmiennych o tych samych nazwach, ale opisanych poza tą procedurą.

Procedury C parametry

  • Zmienne globalne

Przykład .

Program zadacha;

Var a, b: liczba całkowita;

Procedura lokalna;

War a, x: znak; Do procedury lokal:

rozpocząć zmienny x - zmienna lokalna

a: = ’! '; (program nie może zmienić swojej wartości)

b: = b+1; zmienny b - zmienna globalna

kończyć się; (wszystkie zmiany wartości tej zmiennej w procedurze)

BEGIN są zapisywane po wyjściu z procedury)

b: = 100; zmienny a w programie głównym cały typ,

lokalnie; aw procedurze ma charakter znakowy. Zmienna a

napisane ('a =', a); typ liczby całkowitej nie jest dostępny w procedurze lokal.

napisane ('b =', b);

Wynik wykonania programu: a = 0; b = 101.


); rozpocząć; kończyć się; „szerokość = 640”

Przekazywanie parametrów do Turbo Pascal

  • 1. Przekazywanie parametrów według wartości
  • Parametry wartości zmienne opisane po nazwie procedury w nawiasach. Nie ma przed nimi słowa usługowego Var.
  • Format nagrywania :

procedura (:

zmienny);

kończyć się ;


  • parametry formalne .
  • rzeczywiste parametry .

Przykład .

Parametr programu;

Var m, n: liczba całkowita;

Suma procedury (a, b: liczba całkowita);

napisane ('S =', S);

suma (m, n); lub suma (100,10);

Zmienne a oraz b są parametrami formalnymi, a zmienne m oraz n - rzeczywisty. Wartości rzeczywistych parametrów m = 100 i n = 10 są przekazywane do parametrów formalnych a oraz b .

Zmiany parametrów rzeczywistych następują tylko w ramach procedury i nie mają na nie wpływu poza tą procedurą.


; Zmienna Var :); rozpocząć; kończyć się; „szerokość = 640”

Przekazywanie parametrów do Turbo Pascal

  • 2. Przekazywanie parametrów według nazwy
  • Zmienne parametry zmienne opisane po nazwie procedury w nawiasach i poprzedzone słowem serwisowym Var.
  • Format nagrywania :

procedura (:

zmienny; Var

zmienny :);

kończyć się ;



b wtedy min: = b; jeśli min c to min: = c; kończyć się; BEGIN writeln ('wprowadź trzy liczby'); readln (a1, b1, c1); writeln ('wpisz trzy liczby'); readln (a2, b2, c2); minimum (a1, b1, c1, min1); minimum (a2, b2, c2, min2); S: = min1 + min 2; napisane ('S =', S); KOŃCZYĆ SIĘ. Przykład. Mając dwie trójki liczb: a 1, b 1, c 1 i a 2, b 2, c 2. Znajdź wartość sumy: S = min (a1, b1, c1) + min (a2, b2, c2) „szerokość = 640”

Var a1, b1, c1, a2, b2, c2, min1, min2, S: rzeczywista;

Minimum procedury (a, b, c: real; Var min: real);

jeśli min b to min: = b;

jeśli min c to min: = c;

writeln ('wpisz trzy liczby');

readln (a1, b1, c1);

writeln ('wpisz trzy liczby');

readln (a2, b2, c2);

minimum (a1, b1, c1, min1);

minimum (a2, b2, c2, min2);

S: = min1 + min 2;

napisane ('S =', S);

Przykład... Mając dwie trójki liczb: a 1, b 1, c 1 i a 2, b 2, c 2. Znajdź wartość sumy: S = min (a1, b1, c1) + min (a2, b2, c2)


Funkcjonować Jest podprogramem, którego wynikiem jest pewna wartość.

  • Format nagrywania :

funkcjonować (:

kończyć się ;

  • W treści funkcji należy przypisać nazwę funkcji wynik jej wykonania.
  • Podczas wywoływania funkcji jej nazwa wraz z listą rzeczywistych parametrów musi być zawarta w wyrażeniu jako operand.

Program vyrazenie;

modul funkcji (a: real): real;

writeln ('wprowadź wartość zmiennej');

y: = moduł (x-3) + moduł (x + 6);

napisane ('y =', y);

Przykład . Oblicz wartość wyrażenia: y = | x -3 | + | x +6 |

8 klasa. Programowanie ABC Pascal

Nauczyciel informatyki NIS Uralsk FMN Zelenov Boris Aleksandrovich


  • Uczniowie wykorzystują procedury i funkcje do rozwiązywania problemów
  • Uczniowie uczą się rozwiązywać duże problemy, dzieląc je na mniejsze

  • Tworzą pojęcie procedur i funkcji w języku programowania.

  • Studenci znają pojęcia „procedury” i „funkcje”, definiuje parametry formalne i faktyczne;

Oczekiwane wyniki — deskryptory:

1. Zna definicję „procedury”

2. Zna definicję „funkcji”

3. Definiuje parametry faktyczne i formalne

4. Rozróżnia parametry wartości i zmiennych

5. Znajduje wywołanie procedury lub funkcji w kodzie programu



Standardowy plan Elviry

1. Usuń papiery

2. Podlewaj kwiaty

3. Umyj biurka

4. Wytrzyj szkło

Koniec algorytmu

Jak możemy usprawnić organizację tego procesu?




Temat lekcji

Podprogramy:


Ішкі baғdarlama

Podprogram

Procedura

Procedura

Parametrator

Przydatne sformułowania:

Do przeniesienia wartości zmiennych do procedury (funkcji) wykorzystywane są parametry rzeczywiste...

Aby opisać procedurę należy najpierw...., potem...


Pojęcie podprogramu

Definicja

Podprogram jest oddzielną funkcjonalnie niezależną częścią programu.

Podprogramy

Procedury


  • wyeliminować potrzebę wielokrotnego powtarzania podobnych fragmentów w tekście programu;
  • poprawić strukturę programu, ułatwiając jego zrozumienie;
  • zwiększają odporność na błędy programistyczne i nieprzewidziane konsekwencje podczas modyfikacji programu.

  • Narysuj ogrodzenie za pomocą języka programowania

W tym zadaniu możesz stworzyć procedurę, która wykona algorytm rysowania jednego fragmentu (płotka), a następnie stale odwoływać się do tej procedury, zmieniając początkową pozycję pisaka


  • Opisz, jak racjonalnie wykonać rysunek choinki w środowisku programistycznym

  • Są to niezależne fragmenty programów, specjalnie zaprojektowane i posiadające własną nazwę.

Interakcja między programem głównym a podprogramem



Schemat blokowy

  • Blok wywołania podprogramu (procedura lub funkcja)

Nazwa podprogramu (procedury lub funkcji)


Schemat blokowy


Opis procedury jest następujący:

procedura nazwa (lista parametrów formalnych); sekcja opisu rozpocząć operatorzy kończyć się ;


Opis funkcji wygląda następująco:

funkcjonować nazwa (lista parametrów formalnych): typ zwracany;

sekcja opisu rozpocząć operatorzy kończyć się ;


Lokalizacja w programie

Program ...;

// Sekcja opisu Uses, Const, Var, ...

procedura A ;

rozpocząć ....... kończyć się ;

procedura b ;

rozpocząć ........ kończyć się ;

Funkcja C ;

rozpocząć ........ kończyć się ;

// Główny program

rozpocząć ........ kończyć się .


  • Różnica między funkcją a procedurą polega na tym, że wynikiem wykonania operatorów tworzących treść funkcji jest zawsze jakaś pojedyncza wartość, więc wywołanie funkcji może być użyte w odpowiednich wyrażeniach wraz ze zmiennymi i stałymi.

Procedury

Funkcje

Może mieć wiele wyników lub wykonać jakąś akcję

Ma tylko jeden wynik, którego typ jest określany osobno podczas deklarowania funkcji.

Wynikiem mogą być wartości dowolnego typu, tablice, ciągi, liczby itp.

Wynikiem może być tylko wartość typu real, integer lub char.

Polecenie wywołania procedury jest oddzielnym poleceniem, które jest używane niezależnie

Wywołanie funkcji może być używane tylko jako składnik wyrażenia odpowiedniego typu.

Treść funkcji musi zawierać co najmniej jeden operator przypisania z nazwą funkcji po lewej stronie.


b wtedy max: = a w przeciwnym razie max: = b; Maksymalna liczba: = maksymalna; koniec; "szerokość = 640"

Procedura czy funkcja?

MaxNumber (a, b: liczba całkowita): liczba całkowita;

var max: liczba całkowita;

Maksymalna liczba: = maksymalna;


b wtedy max: = a w przeciwnym razie max: = b; koniec; "szerokość = 640"

Procedura czy funkcja?

MaxNumber (a, b: liczba całkowita; var max: liczba całkowita);

jeśli ab to max: = a else max: = b;


Procedura czy funkcja?

ZmieńKolor (C1, C2: Słowo);

TekstTło (C2)


Procedura czy funkcja?

Dodaj (X, Y: liczba całkowita): liczba całkowita;


Aktualny

  • Wskazane w głównej sekcji programu

Formalny

  • Wskazany w podprogramie
  • Wskazany w podprogramie

Procedura jest wywoływana przez operatora w następującym formacie:

nazwa procedury (lista aktualnych parametrów);

  • Lista aktualnych parametrów- to ich lista oddzielona przecinkami.

  • W standardzie języka Pascal parametry można przekazywać na dwa sposoby - przez wartość i przez referencję. Parametry przekazywane przez wartość są nazywane parametry wartości przekazany przez link - zmienne parametry... Te ostatnie różnią się tym, że słowo funkcyjne var jest umieszczone przed nimi w nagłówku procedury (funkcji).

Przekazywanie parametrów. Parametry formalne

Zmienne

Wartości

Parametry według wartości

Parametry formalne

Zmienne


Parametry formalne

Parametry według wartości

  • W pierwszej metodzie (przekazywanie przez wartość) wartości rzeczywistych parametrów są kopiowane do odpowiednich parametrów formalnych.

Procedura

Nazwa procedury (a, b: liczba całkowita);

Główny program

Jeśli te wartości zostaną zmienione w trakcie wykonywania procedury (funkcji), dane początkowe (parametry rzeczywiste) nie mogą ulec zmianie.


Var c, d: liczba całkowita;

  • Przy przejściu przez referencję wszystkie zmiany zachodzące w ciele procedury (funkcji) z parametrami formalnymi prowadzą do natychmiastowych podobnych zmian w odpowiadających im parametrach rzeczywistych.

Procedura

Nazwa procedury (a, b: liczba całkowita, Var c: liczba rzeczywista);

Główny program

Zmiany są dokonywane w zmiennych bloku wywołującego, więc parametry wyjściowe są przekazywane przez odniesienie. Po wywołaniu odpowiednie parametry rzeczywiste mogą być tylko zmiennymi.


Ty piszesz:

1. Rzeczywiste parametry ____________

Procedura Kvad (R: rzeczywista; var S: rzeczywista);

2. Parametry formalne ___________

3. Formalne wartości parametrów __________

5. Nazwa procedury ___________

6. Odnosząc się do procedury z programu _____________________


Zadanie interaktywne

http://www.bzfar.net/load/podprogrammy_procedury_i_funkcii_parametry/23-1-0-498


Elvira jest liderem klasy. Będzie musiała nakreślić plan przeprowadzenia generalnego sprzątania w klasie: zdjąć papiery, podlać kwiaty, umyć ławki, wytrzeć szybę. Jak najlepiej zorganizować swoją pracę? Pomóż Elvirze.


Zaawansowany plan Elviry

Podprogramy:

Arsen - usuwa papiery

Mila - podlewanie kwiatów

Witalij - myje biurka

Indira - wyciera szkło

1. Zabij Arsena

2. Uruchom Mila

3. Zabij Witalija

4. Zabij Indirę

Koniec algorytmu


  • Jakie nowe struktury języka programowania poznaliśmy dzisiaj?
  • Nazwij poznane parametry
  • W jaki sposób parametry są przekazywane do procedury?

  • Podsumowanie lekcji
  • Znajdź definicje: „Zmienne lokalne” i „Zmienne globalne”
  • Utwórz dwa zadania, w których możesz korzystać z procedur lub funkcji.

  • Jak określiłbyś temat lekcji? (wymyśl swoje imię)
  • Jak myślisz, czego powinieneś się nauczyć na następnej lekcji?

Spotkać Cię

w następnej lekcji!

Slajd 1

Slajd 3

Podprogramy: zmienne globalne i lokalne Wszystkie podprogramy muszą być opisane w sekcji opisu. Każdy podprogram musi mieć nazwę. Informacje pomiędzy programem głównym a podprogramami są przekazywane przez parametry globalne (zmienne), które działają w dowolnej części programu i mają nazwę opisaną w programie głównym. Parametry lokalne (zmienne) mogą być używane wewnątrz podprogramu - ich nazwy i wartości mają znaczenie tylko w granicach tego podprogramu i nie są dostępne dla programu wywołującego

Slajd 4

Parametry formalne i faktyczne W opisie podprogramów parametry są wskazywane tylko nazwami, dlatego nazywane są formalnymi. Nie mają znaczenia, dopóki podprogram nie zostanie wywołany. Rezerwują tylko miejsce na rzeczywiste parametry, ustalając ich liczbę i typ danych. Aktualne typy parametrów: Parametry wartości wskazują, jaka wartość ma być przypisana do konkretnego parametru podprogramu. Po zakończeniu podprogramu wracają do swoich poprzednich wartości, nawet jeśli zostały zmienione w podprogramie. Parametry zmienne w podprogramie zastępują parametry formalne, mogą zmieniać swoją wartość w trakcie wykonywania podprogramu oraz zapisać zmiany przy wychodzeniu z podprogramu (przed parametrami zmiennych znajduje się słowo kluczowe Var).

Slajd 5

Slajd 6

Opis procedury Programu Pr1; Const ... Typ ... Var ... Procedura (); Część opisowa Początek Treść procedury Koniec; Rozpocząć ... (); ... kończyć się. Gdy procedura jest wywoływana, parametry formalne są zastępowane rzeczywistymi.

Slajd 7

Procedura obliczania sumy dwóch liczb program pr1; Używa crt; Var a, b, s: prawdziwe; summa procedury (x, y: rzeczywista; var z: rzeczywista); początek z: = x + y; kończyć się; rozpocznij clrscr; napisane („wpisz a, b”); readln (a, b); suma (a, b, s); writeln („suma liczb”, a: 3:1, „i”, b: 3:1, „=”, s: 3:1); przeczytajln; kończyć się. x, y, z - parametry formalne, zmienne lokalne a, b, s - zmienne globalne a, b, s - parametry aktualne х y z a b s Parametry wartości Parametr zmienny

Slajd 8

Slajd 9

Slajd 10

Oceń wartość wyrażenia a: = (3n! + 2m!) / (M + n)! Aby znaleźć silnię, jakiego typu zmiennych najlepiej użyć? program pr2; Używa crt; Var m, n, x, y, z: liczba całkowita; a: prawdziwe; fakt procedury (d: liczba całkowita; var q: liczba całkowita); zmienna i: liczba całkowita; początek q: = 1; dla i: = 1 do d do q: = q * i; kończyć się; rozpocznij clrscr; writeln („wprowadź wartości n, m”); readln (n, m); fakt (n, x); fakt (m, r); fakt (m + n, z); a: = (3 * x + 2 * y) / z; writeln („wartość wyrażenia w m=”, m: 4, „i n=”, n: 4, „równa się”, a: 8: 3); przeczytajln; kończyć się. N! = 1 · 2 · 3 ·… · N

Slajd 11

Dane wyjściowe elementów tablicy jednowymiarowej Funkcja Random (X) generuje liczbę losową od 0 do X typu całkowitego lub rzeczywistego (przed wywołaniem funkcji należy ją zainicjować za pomocą procedury Randomize). Jeśli parametr X nie zostanie określony, wynik będzie typu Real, w zakresie od 0,0 do 1,0. Aby uzyskać tablicę liczb całkowitych losowych z zakresu random (BA+1) + A Zadanie: Dokonaj wprowadzenia elementów tablicy jednowymiarowej za pomocą generatora liczb losowych (zakres wartości od -10 do 20) oraz wyprowadzić elementy jako procedurę. Dla A = -10 B = 20 losowo (20 - (- 10) +1) + (- 10)

Slajd 12

Slajd 13

Slajd 14

Opis funkcji Funkcje są przeznaczone do obliczania tylko jednej wartości, 1. dlatego pierwszą różnicą jest to, że procedura może mieć nowe wartości dla kilku parametrów, a funkcja może mieć tylko jedną (taki będzie wynik). 2. Druga różnica dotyczy tytułu funkcji. Składa się ze słowa FUNKCJA, po którym następuje nazwa funkcji, następnie w nawiasach znajduje się lista parametrów formalnych, po których wypisywany jest typ wyniku funkcji oddzielony dwukropkiem. 3. Treść funkcji musi zawierać co najmniej jeden operator przypisania, gdzie po lewej stronie znajduje się nazwa funkcji, a po prawej jej wartość. Funkcja (): część opisowa Rozpocznij Treść funkcji: =; Kończyć się;

Slajd 15

Oceń wartość wyrażenia a: = (3n! + 2m!) / (M + n)! program fn2; Używa crt; Var m, n: liczba całkowita; a: prawdziwe; fakt funkcji (d: liczba całkowita): longint; zmienna i: liczba całkowita; q: długi; początek q: = 1; dla i: = 1 do d do q: = q * i; fakt: = q; kończyć się; rozpocznij clrscr; writeln („wprowadź wartości n, m”); readln (n, m); a: = (3 * fakt (n) + 2 * fakt (m)) / fakt (m + n) ;; writeln („wartość wyrażenia w m=”, m: 4, „i n=”, n: 4, „równa się”, a: 8: 3); przeczytajln; kończyć się.

Slajd 16

Utwórz program, który znajdzie ab, czyli b-tą potęgę liczby A, gdzie A i B są liczbami całkowitymi, a B>0, wpisane z klawiatury. Zbuduj program, zastępując funkcję procedurą programu pr2; Używa crt; Var a, b: liczba całkowita; c: długa; Funkcja stepen (x, y: liczba całkowita): longint; zmienna i: liczba całkowita; s: długie; początek s: = 1; dla i: = 1 do y do s: = s * x; Stepen: = s; kończyć się; rozpocznij clrscr; writeln („wprowadź wartości a, b”); readln (a, b); C: = stepen (a, b); napisane ("s=", s); przeczytajln; kończyć się.

Slajd 17

Slajd 18

Mechanizm przekazywania parametrów do funkcji i procedur Co wypisze procedura, a co program? Zmienne globalne Zmienne lokalne a b 3 3 -3 Adres c a b c 48 Adres c A: = b + 3 B: = 3 * a C: = a + b Stan C 24 5 8 Odpowiedź

Slajd 19

Cel lekcji

edukacyjny

  • stworzyć dla studentów ujednolicony system pojęć związanych z pojęciami postępowania i funkcji;
  • nauczyć, jak używać podprogramów w rozwiązywaniu problemów w Pascalu, a także nauczyć się rozumieć, jaki rodzaj podprogramu jest potrzebny przy rozwiązywaniu konkretnego problemu;
  • pokazać podstawowe techniki posługiwania się podprogramami;

edukacyjny

  • wychować dokładność, uwagę, organizację;
  • kultura umiejętności komputerowych;

rozwój

  • rozwijać logiczne myślenie, kulturę algorytmiczną uczniów;
  • rozwijać wiedzę i umiejętności tworzenia i debugowania podprogramów w języku Pascal.

Uczniowie muszą:

  • znać zasady pisania procedur bez parametrów iz parametrami;
  • znać zasady pisania funkcji;
  • umieć używać procedur i funkcji do rozwiązywania prostych problemów.

Podczas zajęć

I. Org. za chwilę

II. Wstęp. Znaczenie

Wydaj zadanie na kartkach papieru ( Aneks 1 ). Znajdź powtórki.

Czasami w różnych miejscach programu trzeba wykonać praktycznie te same sekwencje akcji z różnymi danymi początkowymi. Takie sekwencje działań można sformalizować w postaci tzw podprogramy (z angielskiego, podprogram) - zgrupuj instrukcje w blok, do którego można odwoływać się po nazwie więcej niż jeden raz.

Podprogramy skracają tekst programu, znacznie skracają czas ich wykonania, ułatwiają życie programistom, którzy potrafią tworzyć programy modułowo, czyli składać złożony program z kompletnych kawałków prostszych komponentów. Pozwala to grupie programistów na tworzenie dużych programów, a grupie uczniów na opracowywanie i wdrażanie dowolnych globalnych projektów.

Podprogramy podzielone są na procedury i funkcje.

Wbudowane (standardowe) procedury i funkcje są część język i można go nazwać po imieniu bez wcześniejszego opisu. Na przykład , abs, sqrt, ln, sin... - funkcje (zwracają wynik), readln, write... - procedury (nie zwracają wyniku). Ich obecność znacznie ułatwia tworzenie programów użytkowych. Jednak w większości przypadków niektóre konkretny akcje dla tego programu nie znajdują bezpośrednich odpowiedników w bibliotekach Turbo Pascal, a następnie programista musi opracować własne niestandardowe procedury i funkcje.

III. Wyjaśnienie nowego materiału

Procedury użytkownika są napisane sami programista zgodnie ze składnią języka w sekcja opisująca podprogram.

Struktura procedury powtarza strukturę programu, jest to „program miniaturowy” – jest on również reprezentowany przez nagłówek i treść.

Nagłówek składa się ze słowa zastrzeżonego procedury, identyfikatora (Nazwa) procedury.

VAR ... // sekcja opisująca zmienne programu głównego

procedura NazwaProcedury;

// główna treść programu

Rejestrowane jest wywołanie procedury do późniejszego wykonania w treści programu głównego.

Przykład 1. Program do obliczania powierzchni i obwodu.

Zalety podprogramów:

  • Programy pisane z podprogramami łatwiejsze do testowania i debugowania, mają jaśniejszy struktura logiczna.
  • Niezależny charakter podprogramów umożliwia powierzenie ich kompilacji różnym programistom. To oddziela pracę programistyczną, a tym samym przyspiesza jej zakończenie;
  • Korzystanie z podprogramów oszczędza pamięć. Pamięć do przechowywania zmiennych wykorzystywanych w podprogramie jest alokowana tylko na czas jego działania i jest zwalniana po zakończeniu jego wykonywania.

Przykład 2. Użytkownik wchodzi na dwa boki trzech prostokątów. Pokaż ich obszar.

Możesz rozwiązać problem w ten sposób:

dla i: = 1 do 3 do

napisane („Wpisz a i b:”);

napisane („Powierzchnia =”, a * b);

Za dobry styl programowania uważa się stosowanie procedur. Potrzebna jest procedura, która obliczy pole prostokąta. Tak schematycznie będzie wyglądał główny program:

obliczenie

obliczenie

obliczenie

Procedura tekstowa już istnieje (patrz przykład 1). Stwórzmy drugą procedurę, która oblicza powierzchnię. Ale aby obliczyć S, musisz znać 2 strony, więc procedura musi pokazać, które strony należy pomnożyć.

procedura pl (c, d: liczba całkowita);

napisane („obszar prostokąta z bokami”, c, „”, d, „=”, S);

Parametr to zmienna, której przypisano pewną wartość. istnieje parametry formalne zdefiniowane w nagłówku podprogramu, oraz rzeczywiste parametry - wyrażenia, które ustalają określone wartości w odniesieniu do podprogramu.

Procedura zostanie wykonana, jeśli nazwiesz ją po nazwie i określisz rzeczywiste parametry , oddzielone przecinkami i ujęte w nawiasy:

Rzeczywiste parametry muszą być takie same pod względem rodzaju i ilości jak parametry formalne.

A więc główny program:

dla i: = 1 do 3 do

Komentarz. Przy rozwiązywaniu tego problemu należy sprawdzić liczby wprowadzone przez użytkownika (nie mogą być ujemne, w przeciwnym razie program zostanie przerwany).

Skomponujmy procedurę weryfikacji:

błąd procedury (f, g: liczba całkowita);

jeśli (f<0) or (g<0) then begin

writeln („boki prostokąta nie mogą być ujemne”);

postój; // przerwanie programu

Program końcowy - Dodatek 4

A więc format procedury:

Procedura<имя>(parametry formalne);

<операторы>;

Przykład 3. Zrób program do zamiany miejsc dwóch liczb z = 5 i d = 7.

program obmenDan;

var c, d: liczba całkowita;

procedura obmen (a, b: liczba całkowita);

m: = a; a: = b; b: = m;

napisane („Wprowadź 2 liczby:”);

napisane (c, "", d);

Po uruchomieniu programu widać, że parametry formalne (w procedurze) zmieniły się miejsca, a rzeczywiste (używane w programie głównym) nie uległy zmianie. Rozważ zdjęcie przedstawiające część pamięci RAM:

1) przy wywołaniu procedury obmen z dwoma parametrami 5 i 7 liczby 5 i 7 umieszcza się również odpowiednio w zmiennych a i b:

3) ale w zmiennych c i d dane nie uległy zmianie, ponieważ znajdują się w innych lokalizacjach pamięci.

Dla zmiennych c i d, a i b odnosił się do tych samych lokalizacji w pamięci (jeżeli zmienią się wartości a i b, to zmienią się wartości obu c, d) opisując parametry formalne należy dodać słowo VAR przed wymaganymi zmiennymi:

procedura obmen (var a, b: liczba całkowita);

Zmodyfikuj program obmenDan:

Błąd z powodu var. Liczby to stałe, których nie można zmienić w procedurze.

Przykład 4. Znajdź obszar koła za pomocą procedury, która tylko oblicza, ale nie wyświetla wyniku na ekranie.

krąg zabiegowy (r: rzeczywisty);

Procedura powinna zwrócić wynik:

okrąg procedury (r: rzeczywista; var S: rzeczywista);

readln (a, e);

Komentarz: Zmienna w procedurze S służy do zwracania wyników procedury do programu głównego. Kiedy się zmienia, zmienia się również rzeczywisty parametr w programie wywołującym, tj. zmienna mi.

Częściej do tego w Pascalu zamiast procedur używa się funkcji (podprogramów, które coś zwracają).

Funkcja jest taka sama jak procedura, ale istnieją dwie różnice.

  • Funkcja przekazuje do programu wynik swojej pracy - jedyną wartością, której nośnikiem jest nazwa funkcji.
  • Nazwa funkcji może być zawarta w wyrażeniu jako operand. Funkcja zwraca wynik w momencie wywołania.

Na przykład sqr (x) - podniesie do kwadratu wartość x i zwróci obliczoną wartość kwadratu liczby x do punktu wywołania: y: = sqr (x);

Funkcja zdefiniowana przez użytkownika składa się z nagłówka i treści funkcji. Struktura ciała funkcji jest podobna do programu. Opis etykiet, stałych, typów itp. ważne tylko w zakresie tej procedury.

Funkcjonować<имя>(parametry formalne):<тип результата>;

<операторы>;

Sekcja operatora musi zawierać co najmniej jeden operator, który przypisuje wartość do nazwy funkcji. Wynik ostatniego przypisania jest zwracany do punktu wywołania.

Przykład 5. Powtórzmy problem dotyczący obszaru koła.

koło funkcyjne (r: rzeczywista): rzeczywista;

a: = koło (5); (przypisanie OBOWIĄZKOWE)

Przykład 6. Znajdź 1! +2! +… + N!

Korzystamy z funkcji znajdowania silni, ponieważ podajemy ją na wejściu i otrzymujemy wynik.

fakt funkcji (a: integer): liczba całkowita;

dla i: = 1 do do

W wierszu fakt: = fakt * ja;

kompilator znajdzie błąd, ponieważ fakt musi zostać wywołany z parametrami. Dlatego zwykle wprowadzana jest dodatkowa zmienna, w której umieszczany jest wynik. A następnie ten wynik jest przypisywany do zmiennej fakt:

program silnia;

var sum, n, j: liczba całkowita;

fakt funkcji (a: integer): liczba całkowita;

zmienna i, d: liczba całkowita;

dla i: = 1 do do

dla j: = 1 do n do

suma: = suma + fakt (j);

IV. Podsumowanie lekcji

W tym czasie proces programowania zamienia się w produkcja oprogramowania przemysłowego na podstawie technologie programowania... Większość ekspertów jest zdania, że odgórna metoda projektowania programu najwygodniejszy do rozwiązywania złożonych problemów. Najpierw zadanie jest definiowane w sposób ogólny, następnie następuje stopniowe dopracowywanie jego struktury. W kolejnym kroku każde podzadanie jest z kolei dzielone na kilka innych. Rozwiązaniem osobnego fragmentu złożonego problemu jest samodzielny blok programu - podprogram.

V. Praca domowa

Rozwiąż zadania (na piśmie):

  1. Napisz procedurę, która zamienia wszystkie litery a na * we wprowadzonym ciągu.
  2. Podano dwa zdania. Znajdź w nich całkowitą liczbę liter „n”. (Zdefiniuj funkcję do obliczenia liczby „n” liter w zdaniu.)