Kidolgozása funkciók és eljárások

Gyakorlatilag az összes algoritmikus nyelvek beprogramozható funkciók és eljárások - az üzemben egységek, díszített formájában szubrutinok. Kidolgozása funkciók és eljárások szükségesek többszöri használatra különböző helyeken a programban vagy több program blokkolja a nyilatkozatok, hogy végezze el ugyanazt a típusú intézkedés például a értékének kiszámítása bonyolult funkciókat különböző értékei az érvelés. A Turbo - Pascal is létre lehet hozni könyvtárakat (modulok), amely a különleges eljárások és funkciók kivételével, amelyek a csomagban (Rendszer modulok, képcsöves Graph).

Eljárások (szubrutinok) és funkciói megegyeznek a programozó, kapnak a leírás szakaszban a fő program. Az eljárások és függvények egy fejlécben és a leíró részben szereplők (lásd. A program felépítése p.).

Cím szerint az eljárás fenntartott szó eljárás. Az eljárás neve és a paraméterek listája, például:

Eljárás Name_P (p1, p2 "típus" ;. Var p3, p4 "típus", ..);

A függvényfejlécben áll szolgáltatási funkció szavak. függvény neve és a paraméterek listája, továbbá jelzi, hogy milyen típusú függvény visszatérési értéke, például:

Funkció Name_F ( „formális paraméter lista”): „típusú eredmény”;

Itt Funkció és eljárási - funkció szó,

Name_F, Name_P - függvény nevét és eljárásait,

p1, p2 - formális paraméter nevek - értékek

P3, P4 - a nevét a formális paraméterek - a változók,

. - pont azt jelenti, akkor át egy nagyobb számú paramétert.

A következőkben, hacsak másként nem jelezzük, mind azt mondta, az eljárás vonatkozik továbbá a funkciót.

Típusa függvény visszatérési értéke lehet egyszerű, vagy string típusú - a mutatót. formális paraméterek bármilyen típusú lehet, de csak jeleznie kell egy azonosítót (típus neve). Így, a nevét, a típusát a formális paraméter - a tömb kell beállítani előzetesen típusú operátor, például: Típus M = array [1..100] valós; Ezután a tömb típusú lehet a címben jelzett eljárások, például: Eljárás Name_P (p: M); Formai típusú paraméterek leírása csak az eljárás fejlécében. Listája formális paraméterek elhagyható, például. Véletlenszerű eljárás; Ez nincs paramétereket.

Ha ennek eredményeként több szolgáltató kap egy értéket a változó, ezek a piaci lehet venni az adott funkció leírása. Például, Sin funkció (x); értéket ad vissza, amelyet az Y változóhoz: = sin (x); (Ez és más szabványos jellemzőket az a rendszer egység, amely össze van kötve a program automatikusan.)

Ha ennek eredményeként több szolgáltató végre bizonyos intézkedéseket vagy számítás különböző változók, ezek a piaci jobb helyzetben vannak az eljárás leírását. Például, ClrScr eljárás; A modul CRT kikapcsolja a képernyőt.

Az eljárás hívása mellett végezzük a fő program vagy egyéb eljárások (beágyazott eljárások). A program (eljárás), amelyen belül felhívja a másik nevezett eljárás a külső a hívott eljárás.

Ha az eljárást hivatkozott helyett a formális paraméterek szubsztituált aktuális paraméterek, amelyek értékét alkalmazunk az eljárásban. Például:

Name_P (p11, p22 p33, p44 ..); - hívja Name_P eljárások

Y: = Name_F ( "aktuális paraméter lista"): - hívó Name_F funkciót.

Itt p11, p22. - A nevek vagy változók értékei,

p33, p44. - változó nevek, amelyek értékét vissza a program.

Y - változó, amely hozzá van rendelve a visszaadott értéket a függvény.

Típusai vonatkozó formai és aktuális paraméterek meg kell egyeznie, és a nevek lehetnek azonos vagy eltérő lehet. Paraméterek helyett - értékek helyettesítheti változó nevek, változók vagy kifejezések helyett a paramétereket - a változók helyettesített változó nevét. A funkció és a paraméterek - változó értékeket adnak vissza egy külső alkalmazás után érkezett a végén a függvény vagy eljárás. paraméterek változnak - az értékeket az eljárás a helyi jellegű, egy külső program, amely megfelel a tényleges paraméterek nem változtak. értékek helyett lehetőségek - - Ha a változókat nem kell átadni az új értékeket a külső program, a paramétereket kell használni.

Az eljárás során, akkor a helyi címkéket, állandók és a változók, ezeket leíró leíró részben az eljárást. Helyi neveket nem esik egybe a nevét a formális paraméterek, és az értékek nem kerülnek a külső program. Címkék, állandók és a változók bejelentett egy külső programot, mielőtt maga az eljárás, az úgynevezett globális, hogy a hívott eljárás. Amennyiben a helyi és a globális nevek azonosak, akkor az eljárás a helyi értékeket, és egy külső programmal - .. Globális értékek, vagyis a helyi és globális azonosítók függetlenek. Ha a globális változó neve egyedi (nem bemutatott eljárás egy változó az azonos nevű) és annak jelentőségét az eljárásban megváltozik, akkor megváltozik a külső program. Így a program programozó használja a nevét és a paraméterek nem elemezte az eljárás, és gyakran anélkül, hogy tudnánk a tartalmát az eljárást. Ezért, annak érdekében, hogy az egyetemesség eljárásokat kell minden érték az átviteli folyamat paramétereinek felsorolását és változókat leírt eljárással, r. E. Ahhoz, hogy úgy a helyi.

Itt egy példa kiadási eljárások képernyő névjegy programozó.

Writeln ( '| Fejlesztő Program:' Fam: 14, '|');

writeln ( '_': 6, sec, 'másodperc'); readln

Kezdje DATE_TIME végén.

A gyakorlati problémák gyakran írt eljárásokat visszatérési értékek a tömbök. Itt látható egy példa a számítási eljárás "N" függvény értékei, például Y = 4 * sin (x) +7 * Cos (x); egy előre meghatározott tartományban x1<=x<=x2, при N<=100 и равномерной разбивке диапазона.

var Z: r_1000; x1, x2: real; N: szó;

Eljárás Mas_Y (var Y: r_1000; x1, x2: valós; n: szó);

Ha (n> 1000), vagy (n<2) then begin

writeln ( 'tömb hosszúsága> 1, és nem haladhatja meg a 1000');

writeln ( 'x2 nagyobbnak kell lennie, mint x1'); readln; Halt végén;

Míg x

kezdenek WriteLn ( 'Enter értékek x 1, x 2, (x2> x1)'); Readln (x1, x2);

Writeln ( „1-es típusú

Itt a típusát a formális paraméter „Y” adják a leíró részben típusú külső programot, és egybeesik az aktuális paraméter típusát „Z”, az értékek elemek visszakerülnek a külső program.

Állítsa meg az üzemben megszakítja a program akkor is, ha belül használt eljárás. Alkalmazás Exit nyilatkozat belül az eljárás, megszakad az eljárás, de nem egy külső program.

Itt egy példa kimeneti eljárást tömb számok fájlba:

var x: M_30 x 30_r; i, j, n, m: byte;

Eljárás Wr_M (a: M_30 x 30_r; name_f: string; n, m: byte);

kezdenek assign (f, name_f); átírni (f);

Az i: = 1-től n-do kezdeni writeln (f);

A J: = 1-től m do write (F, a [i, j]: 6: 2) vége;

i: = 1-N tenni J: = i N do

i: = 1-N tenni J: = i N do

A helyes olvasata a rögzített adatok kimeneti fájl formázatlan hely szükséges külön számok.

Gyakorlat N 1. 28

Írása és programok hibáinak eljárásokat használva:

1. Jelenítse meg a névjegy a programozó, jelezve az aktuális dátumot.

2. Jelenítse meg a névjegy programozó időben.

Megjegyzés 1., 2.: .. Fejlesztő úgy esetekben munkát nevek, mint a globális, a helyi és a formális paraméter.

3. Számítsuk ki egy sor N-értékei Y = ex + cos (x), ha változik az érv állandó pitch tartományban X1. x2, és az írás a tömb egy fájlba. N értékek, x1, x2, és a fájl neve üzemben tartó által meghatározott bemeneti

4. Számítsuk egy sor N függvény értékei Y = ln (x) - x 3, ha változik az érv állandó pitch tartományban x1. x2, és az írás a tömb egy fájlba. N értékek, x1, x2, és a fájl neve üzemben tartó által meghatározott bemenet.

5. létrehozása azonosító mátrix NxN (N<=50). Элементы матрицы на главной диагонали равны единице, остальные - нулю. Вывести на экран массив 20х20.

6. Helyezzük NxN mátrix elemek (N<=30), расположенных в строках на элементы, расположенные в столбцах, т. е. a[i, j] на a[j, i]. Вывести на экран исходный и транспонированный массивы размером 10х10.

Itt egy példa a függvény kiszámítja a magassága a háromszög a megadott értékeket az oldalán.

Ha (a<0) or (b<0) or (c<0) Then begin

Writeln ( „háromszög felek> 0?„); readln; Halt végén;

WriteLn ( 'Enter a háromszög oldalai a, b, c'); Readln (a, b, c);

Writeln ( „A magasban a háromszög:”);

A program a funkciót nevezik háromszor kiszámításához a magassága a háromszög különböző kombinációi, az aktuális paraméterek, amely lehetővé teszi, hogy kiszámítja a magassága minden háromszög.

Gyakorlat N 1. 29

Írása és programok hibáinak függvények segítségével:

1. Számítsuk ki a terület a háromszög-csúcsot ismert koordinátáit a következő képlet segítségével S = 0,5 * abs (y1 * (x3-x2) + y2 * (x1-x3) + y3 * (x2-x1)). valamint, hogy dolgozzon ki egy funkciót kiszámításához háromszög területe Heron-képlet (a számított értékek függvényében a felek). A kijelző az érték a háromszög, által kiszámított mindkét képlet (funkciók).

2. megjeleníteni az üzeneteket a képernyőn egy háromszög típusa: hegyesszögű, téglalap alakú, tompaszög (a koordinátáit a csúcsok). Kiszámításához a szög koszinusz-tétel használható, például: c_a: = (b * b + c * c - a * a) / (2 * b * c);

ahol c_a - koszinusza a szög, a másik oldalán „a”.

3. Határozza meg megtalálni a „A” pont a téglalap, amely magában foglalja a régió „N” pont koordinátáival Xi, Yi, i = 1. N<21. Стороны прямоугольника параллельны осям координат. Координаты точек задаются в основной программе функцией Random(1000). Функция возвращает значение логического типа.

4. A meghatározó mátrix szimmetriáját (NxN). A függvény egy logikai érték. 59

Itt látható egy példa segítségével funkciók kiszámításához az összege szempontjából a hatványsor trigonometrikus függvény Y = sin (x).

Funkció Sin_r (x: valós): valós;

Var egy, k, y: real; i: longint;

Míg az ABS (a)> 0,0000001 do kezdődik i: = i + 1; k: = - x * x / (2 * i * (2 * i + 1));

write ( 'Add meg argumentumérték: x1 ='); Readln (x1);

writeln ( 'argumentum érték: x1 =', x1);

writeln ( 'Becsült érték a függvény: Sin_r (x1) =', y: -11: 8);

writeln ( 'kontroll eredmény: Sin (x1) =', y1: -11: 8);

writeln ( 'Enter'); readln;

A leírásban a funkcióra van szükség az üzemeltető rendelt funkcióját értékét. Változó paraméter - értékeit „x” a szervezetben a függvény nem tükrözi az értékét egy külső program. A függvény egy értéket, amely egy külső programmal van rendelve a változó „y”.