väärtuseks 1. Sisendiolekut näitavad vastava PORT registri bitid. Mis on põhiprogramm ja milleks kasutatakse almprogramme? Põhiprogramm koosneb hulgast funktsioonidest, mis üksteist vajaduse korral väljakutsuvad. Iga programm omab aga üht funktsiooni, mis aktiveeritakse ainult programmi algul ja mida teised funktsioonid välja ei kutsu, ja nimelt: int main(int argc, char argv[]), see on põhiprogrammi algus. Tüüpiliselt on vaja kasutada alamprogramme siis, kui samasisuline tegevus (ehk samasugune käskude jada) esineb programmis kahes või enamas kohas. Sellega me taotleme, et programm tuleks võimalikult lühikene. Kuid see ei ole ainus põhjus. Tihti on otstarbekas jagada programm loogilisteks üksusteks parema loetavuse huvides. Kui kogu programmi pikkuseks on tuhat rida ja see kõik paikneb põhiprogrammis, siis selle programmi tekst on äärmiselt raskesti loetav. Selline
Programmi liigendamise võimalusi on mitmeid. Vaatleme esialgu variante,
kus programm asub endiselt ühes failis, kuid erinevad alamtegevused on
jaotatud erinevate alamprogrammide vahel. Alamprogrammide ja
peaprogrammi vaheliseks andmevahetuseks kasutatakse parameetreid.
Näiteks on ringi pindala arvutava alamprogrammi sisendparameetriks
(algandmeteks) ringi raadius, väljundparameetriks (tulemuseks) aga
pindala.
Pascalis kasutatakse kaht liiki alamprogramme - protseduure ja
funktsioone.
Mõlemad deklareeritakse (sisuliselt kirjutatakse valmis) programmi
alguses peale var- osa. Seega on alamprogramme sisaldava programmi
struktuur järgmine:
program ...
type ...
var ....
Boksi tekstivälja saab sisestada vastuse ning pärast klõpsatust nupule OK võetakse vastus muutuja aasta väärtuseks. Järgnev IF-lause võrdleb muutuja aasta väärtust konstandiga 1976, kui need on võrdsed, siis võetakse muutuja teade väärtuseks tekst Õige!, vastupidisel juhul Vale!. Eelviimane lause kuvab teateboksi, milles on esitatud muutuja teade väärtus. VBA rakendustes võib käsutada kahte liiki protseduure: · funktsioone ehk Function-protseduureja · alamprogramme ehk Sub-protseduure Funktsioon võimaldab määrata eeskirja ühe väärtuse (arv, string jm) leidmiseks ja tagastamiseks. Tema poole pöördutakse avaldistest funktsiooniviite abil. Alamprogramm kirjeldab üldisema iseloomuga tegevusi. Ta võib leida ja tagastada suvalise hulga väärtusi, täita mitmesuguseid tegevusi objektidega . Alamprogramme ei saa käsutada avaldistes, pöördumiseks nende poole käsutatakse spetsiaalseid pöördumislauseid. Programmi ja keele põhielemendid
................................................................................................................... 61 Pinumälu ehk magasinmälu...................................................................................................64 ÜLESANDED........................................................................................................................... 65 ALAMPROGRAMMID. PROTSEDUUR JA FUNKTSIOON................................................66 MILLEKS ON VAJA ALAMPROGRAMME?....................................................................66 PROTSEDUURI JA FUNKTSIOONI ERINEVUSED........................................................ 66 ALAMPROGRAMMIDE KASUTAMINE..........................................................................67 Pascal..................................................................................................................................... 67 C........................................................................
.....................................................................77 Dünaamilised andmestruktuurid................................................................77 Ahel ja järjekord.........................................................................................78 Pinumälu ehk magasinmälu.......................................................................82 ÜHEKSAS TEEMA: alamprogrammid. protseduur ja funktsioon..........................86 Milleks on vaja alamprogramme?...............................................................86 Protseduuri ja funktsiooni erinevused........................................................86 Alamprogrammide kasutamine..................................................................87 Pascal................................................................................................... ......87 C..........................................................................................................
(kuigi see punkti võib olla joone g mis tahes kohas, on siiski soovitatav, et ta asuks „silma järgi” tulevaase puutepunkti ligiduses. NB! Soovitatav on kõik käsu OSNAP alamprogrammid välja lülitadaa sõrmisega [ F3 ], sest alamprogrami TAN tunnusarv on palju suuem kui alamprogrammil END ja "konkureerivate" tunnusarvude puhul kipub arvuti valima ikka kõige pisema tunnusarvuga alamprogramme: Sinna kohta, kuhu kursoriga näidati, et see joon kujuneb puutujaks, ilmub ka vastav puutumise OSNAP-tähis koos kolme punktiga, mis tähendab seda, et on vaja edasi töötada ja leida veel kolmas punkt:. Järelikult kui on vähegi võimalus „kaksipidiseks” punkti täppisasukoha automaatvalimisels, kasutada KOLmetähelisi valikusilpe. to {punkt välisel ringjoonel} ┐
Meetod (alamprogramm) Java rakendus sisaldab põhiprogrammi (main), millest tõenäoliselt pöördutakse ka mingite alamprogrammide poole. Javas nimetatakse alamprogramme meetoditeks (tulenevalt selle keele objektorienteeritusest) ning meetodid on rühmitatud klasside kaupa. Meetodid võivad olla kas programmeerija enda poolt loodud või Javasse sisse ehitatud (nn. API meetodid, mille kirjelduse leiab Java dokumentatsioonist). Sõltumata sellest, kust meetod pärineb, võib see olla kas klassi- või isendimeetod. Klassimeetod (class method) , mida Javas kirjeldab võtmesõna static, on kasutatav n.ö. "igas olukorras", s.t
Clone(); //Andmete koopia
m[1]=20;
Tryki(m3);
Array.Clear(m3, 0, m3.Length); //Tühjendus
Tryki(m3);
Console.WriteLine(Array.IndexOf(m,33));
Console.WriteLine(Array.IndexOf(m,17)); //puuduv element
}
}
/*
C:Projectsomanaited>Massiiv5
40
48
33
40
32
33
40
32
33
0
0
0
2
-1
*/
Massiiv alamprogrammi parameetrina
Massiivimuutuja omistamisel tekib võimalus kahe muutuja kaudu samadele andmetele ligi
pääseda. See võimaldab luua alamprogramme, mis massiivi elementidega midagi peale
hakkavad. Eelnevalt vaadeldud käsklus Sort tõstab massiivis elemendid kasvavasse
järjekorda. Siin on näha omatehtud alamprogramm KorrutaKahega, mis massiivi kõikide
elementide väärtused kahekordseks suurendab.
using System;
class Massiiv6{
static void KorrutaKahega(int[] mas){
for(int i=0; i
Tryki(m3);
Array.Clear(m3, 0, m3.Length); //Tühjendus
Tryki(m3);
Console.WriteLine(Array.IndexOf(m,33));
Console.WriteLine(Array.IndexOf(m,17)); //puuduv element
}
}
/*
C:Projectsomanaited>Massiiv5
40
48
33
40
32
33
40
32
33
0
0
0
2
-1
*/
Massiiv alamprogrammi parameetrina
Massiivimuutuja omistamisel tekib võimalus kahe muutuja kaudu samadele andmetele ligi
pääseda. See võimaldab luua alamprogramme, mis massiivi elementidega midagi peale
hakkavad. Eelnevalt vaadeldud käsklus Sort tõstab massiivis elemendid kasvavasse
järjekorda. Siin on näha omatehtud alamprogramm KorrutaKahega, mis massiivi kõikide
elementide väärtused kahekordseks suurendab.
using System;
class Massiiv6{
static void KorrutaKahega(int[] mas){
for(int i=0; i
Tryki(m3);
Array.Clear(m3, 0, m3.Length); //Tühjendus
Tryki(m3);
Console.WriteLine(Array.IndexOf(m,33));
Console.WriteLine(Array.IndexOf(m,17)); //puuduv element
}
}
/*
C:Projectsomanaited>Massiiv5
40
48
33
40
32
33
40
32
33
0
0
0
2
-1
*/
Massiiv alamprogrammi parameetrina
Massiivimuutuja omistamisel tekib võimalus kahe muutuja kaudu samadele andmetele ligi pääseda.
See võimaldab luua alamprogramme, mis massiivi elementidega midagi peale hakkavad. Eelnevalt
vaadeldud käsklus Sort tõstab massiivis elemendid kasvavasse järjekorda. Siin on näha omatehtud
alamprogramm KorrutaKahega, mis massiivi kõikide elementide väärtused kahekordseks
suurendab.
using System;
class Massiiv6{
static void KorrutaKahega(int[] mas){
for(int i=0; i