A InfoWiki wikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „<cim cim3="Módszerek" cim2="Magasszintű Programozási Nyelvek I." cim1="Imperatív, procedurális nyelvek alapjai" prev="mp1/page490" next="mp1/page500" kep="hz...”) |
|||
15. sor: | 15. sor: | ||
= Módszerek = | = Módszerek = | ||
+ | |||
+ | Tegyük fel, hogy programunk egy tömböt tölt fel véletlen számokkal, majd meghatározza, hány szám esik | ||
+ | a tömb átlagának +/-10% -os környezetébe. | ||
+ | |||
+ | A program jól felbontható modulokra: | ||
+ | * a tömb feltöltése véletlen számokkal | ||
+ | * a tömb elemeinek megjelenítése képernyőn (opcionális) | ||
+ | * a tömb átlagának kiszámítása (összeg osztva darabszámmal) | ||
+ | * a +/- 10% intervallum meghatározása | ||
+ | * a darabszám meghatározása | ||
+ | * az eredmény kiírása | ||
+ | |||
+ | A programban meg kell határozni a közös változókat: | ||
+ | * a tömb maga | ||
+ | * az átlagot reprezentáló double | ||
+ | * az intervallumot leíró két int | ||
+ | * a darabszám | ||
+ | * a véletlenszám generáló (ez utóbbi nem feltétlenül megosztott változó, hiszen csak a feltöltő alprogram használja) | ||
+ | |||
+ | <code lang="csharp"> | ||
+ | class Program | ||
+ | { | ||
+ | static int[] tomb = new int[30]; | ||
+ | static Random rnd = new Random(); | ||
+ | static double atlag; | ||
+ | static int also; | ||
+ | static int felso; | ||
+ | static int db; | ||
+ | |||
+ | //........................................................ | ||
+ | static void feltoles() | ||
+ | { | ||
+ | for(int i=0;i<tomb.Length;i++) | ||
+ | tomb[i] = rnd.Next(10,30); | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void kiiras() | ||
+ | { | ||
+ | Console.Write("A tömb elemei: "); | ||
+ | foreach(int x in tomb) | ||
+ | Console.Write("{0}, ",x); | ||
+ | Console.WriteLine(); | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void atlagszamitas() | ||
+ | { | ||
+ | int sum = 0; | ||
+ | foreach(int x in tomb) | ||
+ | sum = sum+x; | ||
+ | atlag = (double)sum / tomb.Length; | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void intervallum_szamol() | ||
+ | { | ||
+ | also = (int)(atlag*0.9); | ||
+ | felso = (int)(atlag*1.1); | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void darabszam() | ||
+ | { | ||
+ | db=0; | ||
+ | foreach(int x in tomb) | ||
+ | if (also<=x && x<=felso) | ||
+ | db++; | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void eredmeny_kiirasa() | ||
+ | { | ||
+ | Console.WriteLine("A tomb elemeinek atlaga={0}",atlag); | ||
+ | Console.WriteLine("Az intervallum [{0},{1}]",also,felso); | ||
+ | Console.WriteLine("Az intervallumba {0} db elem esett",db; | ||
+ | } | ||
+ | //........................................................ | ||
+ | static void Main() | ||
+ | { | ||
+ | feltoltes(); | ||
+ | kiiras(); | ||
+ | atlagszamitas(); | ||
+ | intervallum_szamol(); | ||
+ | darabszam(); | ||
+ | eredmeny_kiiras(); | ||
+ | } | ||
+ | //........................................................ | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | __NOTOC__ | ||
+ | <alairas>Hernyák Zoltán</alairas> |
A lap 2009. november 14., 18:51-kori változata
Módszerek
Tegyük fel, hogy programunk egy tömböt tölt fel véletlen számokkal, majd meghatározza, hány szám esik a tömb átlagának +/-10% -os környezetébe.
A program jól felbontható modulokra:
- a tömb feltöltése véletlen számokkal
- a tömb elemeinek megjelenítése képernyőn (opcionális)
- a tömb átlagának kiszámítása (összeg osztva darabszámmal)
- a +/- 10% intervallum meghatározása
- a darabszám meghatározása
- az eredmény kiírása
A programban meg kell határozni a közös változókat:
- a tömb maga
- az átlagot reprezentáló double
- az intervallumot leíró két int
- a darabszám
- a véletlenszám generáló (ez utóbbi nem feltétlenül megosztott változó, hiszen csak a feltöltő alprogram használja)
class Program { static int[] tomb = new int[30]; static Random rnd = new Random(); static double atlag; static int also; static int felso; static int db; //........................................................ static void feltoles() { for(int i=0;i<tomb.Length;i++) tomb[i] = rnd.Next(10,30); } //........................................................ static void kiiras() { Console.Write("A tömb elemei: "); foreach(int x in tomb) Console.Write("{0}, ",x); Console.WriteLine(); } //........................................................ static void atlagszamitas() { int sum = 0; foreach(int x in tomb) sum = sum+x; atlag = (double)sum / tomb.Length; } //........................................................ static void intervallum_szamol() { also = (int)(atlag*0.9); felso = (int)(atlag*1.1); } //........................................................ static void darabszam() { db=0; foreach(int x in tomb) if (also<=x && x<=felso) db++; } //........................................................ static void eredmeny_kiirasa() { Console.WriteLine("A tomb elemeinek atlaga={0}",atlag); Console.WriteLine("Az intervallum [{0},{1}]",also,felso); Console.WriteLine("Az intervallumba {0} db elem esett",db; } //........................................................ static void Main() { feltoltes(); kiiras(); atlagszamitas(); intervallum_szamol(); darabszam(); eredmeny_kiiras(); } //........................................................ }
Hernyák Zoltán