A fő különbségek a funkciók és az eljárások között
1. A függvény általában egyetlen értéket ad vissza, például Sin (x).
Az eljárás komplex struktúrákat, például tömböket hozhat vissza.
2. A funkció fejlécét (első vonalát) a visszatérési érték típusa (például valós, egész szám stb.) Jelzi. Az eljárás címében ez az információ nem szükséges.
3. A függvénytest végén megadja azt az értéket, amelyre szánták, például Sum_Mas: = S;
4. Egy függvény lehet matematikai kifejezés operanduma. Az eljárás nem lehet része a kifejezésnek.
A szubrutinok alkalmazásának szabályai
Nem lehet leírni a szubrutin fejlécében található összetett struktúrákat, ezért a főprogramban meg kell említeni ezeknek a struktúráknak a típusát. Például,
Eljárás pr1 (a: tömb [1..n] egész szám); - Nem teheted!
Pr1 eljárás (a: Mas_Type); .
ahol a Mas_Type a fő programban leírt típus neve:
Típus Mas_Type = tömb [1..n] jf egész szám;
2. A formális és a tényleges paraméterek típusainak összhangban kell lenniük.
3. Paraméterértékű szubrutinok nem adják vissza ezt a paramétert a fő programnak, a paraméterértéket átmásolja a veremre; lehet változó, állandó vagy matematikai kifejezés.
6. Kívánatos, hogy a formális és tényleges paraméterek neve eltérő legyen. A szubrutin globális változója akkor válik helyessé, ha azt a szubrutin fejlécében vagy a változó deklaráció szakaszában deklarálják.
7. A szubrutinok kijelölhetik a helyi címkéket, konstansokat, változókat, eljárásokat és funkciókat, de az Uses fordítói irányelv nem nyilvánítható.
Egy példa. Ellenőrizze a fájl jelenlétét és írja le
típus
TFileData = rekord
Név: String [10];
ExtDat: kiterjesztett;
végén;
var
Cals: A TFileData fájl;
kezdődik
Út: = '. Dat';
Dest: = '' + Út;
megpróbál
AssignFile (Cals, Dest);
// Ha a fájl nyitva áll olvasásra, különben létrehozunk egy újat
Ha FileExists (Cals), majd Reset (cals) másként Rewrite (számok);
// állítsa az olvasási pozíciót a fájl végére
CalsData.Name: = 'paraméternév';
Írj (Cals, CalsData);
kivéve
az E: EInOutError do
ShowMessage ('Hiba történt a fájlművelet közben' +
'№' + IntToStr (E ErrorCode.) + ':' + SysErrorMessage (GetLastError));
az E: EAccessViolation do
végén;
CloseFile (cals); // Függetlenül attól, hogy mi történt fent, közel
Az a.dat fájl újraírása a b.dat fájlban, eltávolítva a fájlok végét:
var
f1, f2: byte fájl;
kezdődik
AssignFile (f1, 'a.dat');
Reset (f1);
Újraírása (f2);
az i: = 1-hez a FileSize (f1) -hez
ha a <> 26 majd írás (f2, a);
végén;
CloseFile (f1);
CloseFile (f2);
végén.
Fájlrekordok. Mi írunk és olvasunk:
Név: string [100];
Kor: Byte;
Jövedelem: Valós;
végén;
var f: TR fájl;
r: TR;
kezdődik
// hozzárendelni a fájlt
ha a FileExists ('MyFileName') majd
reset (f)
más
átírni (f);
// olvasd el a 10. tételt
keresni (f, 10);
olvasható (f, r);
írj 20. rekordot
írj (f, r);
closefile (f);
végén;
3.3. Tesztes kérdések
12. Milyen esetekben vannak a paraméterek - állandók?
13. Miért nem kívánatos a funkciókban használni a paramétereket -
A 3. laboratóriumi feladatok elvégzése
1. A háromszöget a csúcsok koordinátái adja. Készíts egy programot a területének kiszámításához.
2. Az adatok két A / B és C / D frakcióból állnak (A, B, C, D természetes számok). Készíts egy programot a kivonásból a második első részéből. Az eredménynek nem redukálható frakciónak kell lennie.
1. Helyezze vissza a lineáris tömb negatív elemeit a moduljaikra anélkül, hogy a standard modulkalkulációs függvényt használná. Számolja ki a cserék számát.
2. Az adatok két A / B és C / D frakcióból állnak (A, B, C, D természetes számok). Hozzon létre egy programot a törtek hozzáadására. Az eredménynek nem redukálható frakciónak kell lennie.
1. Hozzon létre egy X (N) tömböt, amelynek Nth-termését az X (N) = 1 / N! Képlet határozza meg.
2. A síkban az n pontokat a koordináták adja. Hozzon létre egy n (n-1) méretű tömböt, amelynek elemei az egyes pontok távolságai az n-1-esekhez.
1. Az X, Y, Z, T számok adatai a négyszög oldalainak hossza. Számítsa ki a területét, ha az oldalak közötti szög X és Y egyenes.
2. Program összeállítása az összes páros szám tényleges elemeinek összegéből m-ről n-re.
1. Változtasson egy adott természetes számot a számjegyek kezdeti rekordjából kapott szám alapján, fordított sorrendben (például a 156-as számmal kapj 651-et).
2. Elsődleges szám. Hozzon létre egy függvényt, amely után megtalálja a következő prímszámot.
1.Napisat programot kiszámításakor összege p / q = 1-1 / 2 + 1 / 3- ... + ((- 1) ^ (n + 1)) / n az adott számú n. A p / q frakciónak nem lehet redukálható (p, q - természetes).
2. Állítson be egy függvényt, hogy megtalálja az adott természetes szám n legkisebb furcsa természetes osztóját k (k ≠ 1).
1.Nyomja meg az iker számok párját [n, 2n] közül, ahol n egy adott természetes szám nagyobb, mint 2.
2. Adott egy természetes N számot. Írj egy programot egy tömb létrehozásához, amelynek elemei N számjegyei.
1. Keresse meg a baráti számok összes párját, amelyek nem nagyobbak, mint egy adott szám K.
2. Egy program összeállítása, amely meghatározza, hogy e két szám közül melyik nagyobb, mint a számjegyek.
Írja be a programot az 1 + 1/2 + 1/3 + ... + 1 / n összeg kiszámításához az n hozzárendelt számhoz. Az eredményt p / q (p, q természetes) p / q irreducibilis frakció formájában ábrázoljuk.
1. Készíts egy programot számok megtalálásához az [M, N] intervallummal, ahol a legnagyobb számú osztó van.
2. Keresse meg az összes Armstrong számot 1-től K-ig, hogy írjon egy programot, amely megtalálja és kinyomtatja az abcd formanyomtatvány négyjegyű számát. amelyre: 1) a, b, c, d - különböző számok; 2) ab-cd = a + b + c + d.
1. A négyszög oldalainak X, Y, Z, T hosszúsága. Számítsa ki területét, ha az X és az Y-
2. Készítsen egy programot a faktorok összegének kiszámításához, minden szám 3-as többszöröse, A-tól B-ig.
1. Formázzunk egy X (N) tömböt, amelynek N-es kifejezését az X (N) = 1 / N!
1. Elsődleges szám. Hozzon létre egy olyan függvényt, amely megtalálja az alábbi K prime számokat.
2. Helyezze vissza a lineáris tömb negatív elemeit a moduljaikra anélkül, hogy a standard modulkalkulációs függvényt használná. Számolja ki a cserék számát.
1. Keresse meg azokat az összes természetes számot, amelyek nem haladják meg az adott n értéket, és amelyek számukra vannak osztva.
2. Keresse meg azokat az egyszerű természetes számokat, amelyek nem haladják meg az n értékét, amelynek bináris rekordja palindrom.
1.Compiláljon egy alprogramot, amely megtalálja a négyzetes egyenlet gyökereit.
2. Írja be a programot az 1 + 1/2 + 1/3 + ... + 1 / n összeg számításához egy adott n számra. Az eredményt p / q (p, q-natural) nem redukálható frakció formájában ábrázoljuk.
1.adatok természetes számok K és N. Írja be a programot egy tömb A létrehozására, amelynek elemei azok a számok, amelyek számjegyeinek összege K, és amelyek nem nagyobbak mint N.
2. Keresse meg az összes természetes n-jegyű számot, a számokat, amelyek szigorúan növekvő sorrendet alkotnak (például 1234, 5789).
1. Elsődleges szám. Hozzon létre egy függvényt, amely megtalálja az utolsó egyszerű számot.
2. A tekercs egy része buszjegyekkel. A jegyek száma hat számjegyű. Írj programot, amely meghatározza az szerencsés jegyet a tekercs, ha egy kisebb szám a jegy - N, nagyobb - M (a jegy egy boldog, ha az összeg az első három számjegye ravnv összege az elmúlt három).