Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
(Új oldal, tartalma: „<cim cim3="Egyszerű alprogramok" cim2="Magasszintű Programozási Nyelvek I." cim1="Imperatív, procedurális nyelvek alapjai" prev="mp1/page470" next="mp1/page49...”)
(Egyszerű alprogramok)
16. sor: 16. sor:
= Egyszerű alprogramok =
= Egyszerű alprogramok =
 +
 +
Amikor a programunk mérete már elér egy kritikus határt, akkor célszerűenk látszik a végrehajtást
 +
modulokra bontani. A modulok alatt most a program egy olyan részletét értjük, amely valamilyen részeredményt
 +
képez, számol ki, hajt végre.
 +
 +
A modulok képzése átgondolt tevékenység. A program indulásakor általában be kell kérni valamilyen
 +
bemenő adatokat (ez egyszerű esetben is lehet önálló modul, de ha az adatbekérés bonyolult, akkor
 +
ez a rész is felépülhet több modulból). Az adatbekérés után valamilyen számítási lépéssorozatot
 +
kell végrehajtani, mely jellemzően sok modulból áll. Az eredmények kiírása önálló modul szokott
 +
lenni.
 +
 +
Minden ilyen modul függ az előző modulok által kiszámolt részeredményektől, azok minőségétől.
 +
Egy modul által generált részeredményt gyakran egy ''if'' ellenőrzi, és annak minőségétől
 +
függően újabb modulokat indít vagy tilt le. Ha pl. a bekért adatok darabszáma nulla, akkor nem
 +
indítja el a ''számoljuk meg hány páros szám van benne'' modult, hiszen nincs is szám.
 +
 +
A modulokat a főprogramban is megírhatjuk, egymás mögé helyezve, de gyakoribb eset,hogy a modulokat
 +
alprogramokba - függvények és eljárások - készítjük el. Ennek több előnye is van.
 +
 +
Az eljárások és függvények közötti különbséget később tárgyaljuk, jelen fázisban eljárásokat
 +
fogunk készíteni.
 +
 +
== Alprogramok készítése ==
 +
 +
Az alprogramok névvel (azonosító) rendelkező prorgamrészek. Nem a ''Main()'' alprogramba kerül be
 +
a kódjuk, hanem a ''Main()'' elé, vagy mögé kerülnek, de egyszerű esetben ugyanabba az osztályba (''class'').
 +
 +
<code lang="csharp">
 +
class Program
 +
{
 +
  static void atlagszamitas()
 +
  {
 +
  ...
 +
  }
 +
 +
  static void Main()
 +
  {
 +
    ...
 +
  }
 +
 
 +
  static void adatbekeres()
 +
  {
 +
    ...
 +
  }
 +
}
 +
</code>
 +
 +
Az alprogramok készítésénél vegyük észre, hogy felépítése nagyon hasonlít a ''Main()'' alprogram
 +
felépítéséhez. A '''static void''' szavakkal kezdődnek, egy azonosítóval (névvel) folytatódnak,
 +
majd gömbölyű zárójelpárral. Az alprogram fejrésze ezzel véget is ér, következik a törzse. A
 +
törzsét (utasításblokk) a szokásos módon kapcsos zárójelpár fogja közre. A törzs rész a
 +
fejrésszel szoros kapcsolatban áll, közöttük '''nincs pontosvessző'''!
 +
 +
<note type="warn">Az alprogram fejrésze után nem teszünk pontosvesszőt! Következő félévben
 +
tanulunk majd ilyen esetet, de akkor a pontosvessző a törzs hiányát fogja jelölni (absztrakt
 +
metódus). Ezért ha kitesszük pontosvesszőt, akkor törzset nem írhatnánk, így a C# fordító
 +
hibásnak fogja találni a kapcsos záróljelpárt mint folytatást.</note>
 +
 +
<alairas>Hernyák Zoltán</alairas>
<alairas>Hernyák Zoltán</alairas>
__NOTOC__
__NOTOC__

A lap 2009. november 14., 11:19-kori változata


Egyszerű alprogramok

Amikor a programunk mérete már elér egy kritikus határt, akkor célszerűenk látszik a végrehajtást modulokra bontani. A modulok alatt most a program egy olyan részletét értjük, amely valamilyen részeredményt képez, számol ki, hajt végre.

A modulok képzése átgondolt tevékenység. A program indulásakor általában be kell kérni valamilyen bemenő adatokat (ez egyszerű esetben is lehet önálló modul, de ha az adatbekérés bonyolult, akkor ez a rész is felépülhet több modulból). Az adatbekérés után valamilyen számítási lépéssorozatot kell végrehajtani, mely jellemzően sok modulból áll. Az eredmények kiírása önálló modul szokott lenni.

Minden ilyen modul függ az előző modulok által kiszámolt részeredményektől, azok minőségétől. Egy modul által generált részeredményt gyakran egy if ellenőrzi, és annak minőségétől függően újabb modulokat indít vagy tilt le. Ha pl. a bekért adatok darabszáma nulla, akkor nem indítja el a számoljuk meg hány páros szám van benne modult, hiszen nincs is szám.

A modulokat a főprogramban is megírhatjuk, egymás mögé helyezve, de gyakoribb eset,hogy a modulokat alprogramokba - függvények és eljárások - készítjük el. Ennek több előnye is van.

Az eljárások és függvények közötti különbséget később tárgyaljuk, jelen fázisban eljárásokat fogunk készíteni.

Alprogramok készítése

Az alprogramok névvel (azonosító) rendelkező prorgamrészek. Nem a Main() alprogramba kerül be a kódjuk, hanem a Main() elé, vagy mögé kerülnek, de egyszerű esetben ugyanabba az osztályba (class).

class Program
{
  static void atlagszamitas()
  {
   ...
  }
 
  static void Main()
  {
    ...
  }
 
  static void adatbekeres()
  {
    ...
  }
}

Az alprogramok készítésénél vegyük észre, hogy felépítése nagyon hasonlít a Main() alprogram felépítéséhez. A static void szavakkal kezdődnek, egy azonosítóval (névvel) folytatódnak, majd gömbölyű zárójelpárral. Az alprogram fejrésze ezzel véget is ér, következik a törzse. A törzsét (utasításblokk) a szokásos módon kapcsos zárójelpár fogja közre. A törzs rész a fejrésszel szoros kapcsolatban áll, közöttük nincs pontosvessző!

<note type="warn">Az alprogram fejrésze után nem teszünk pontosvesszőt! Következő félévben tanulunk majd ilyen esetet, de akkor a pontosvessző a törzs hiányát fogja jelölni (absztrakt metódus). Ezért ha kitesszük pontosvesszőt, akkor törzset nem írhatnánk, így a C# fordító hibásnak fogja találni a kapcsos záróljelpárt mint folytatást.</note>



Hernyák Zoltán
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp1/page480
Nézetek
nincs sb_18.218.61.16 cikk