fel
le

Alprogramok

Paraméter nélküli void alprogramok, eljárások készítése. Gyakorlandó a static megosztott (közös) változók használata. A függvények írása során ügyeljünk arra, hogy a függvényünk nem tartozhat egy időben két különböző jellegű rétegbe is (application logic, user interface). Ez azt jelenti, hogy egy függvény vagy ''számol'', vagy kommunikál a felhasználóval, mindkettőt nem csinálhatja egyszerre. Vagyis egy függvény megszámolhatja adott típusú elemek darabszámát, de nem írhatja ki a képernyőre. Amelyik függvény ezt kiírja a képernyőre, az meg nem számolhatja meg a darabszámot!

#1   Lottó-számok meghatározása

A program lényegében az alábbi feladatot végzi el: generáljunk 5 db, garantáltan különböző lottó-számot (1..90 közötti egész szám). Ehhez (például) az alábbi függvényeket kell elkészíteni:

  • egy függvény, amely egy konkrét tömb és konkrét szám esetén megadja, hogy a szám a tömbben előfordul-e vagy sem.
  • egy függvény, amely előállít egy adott intervallumbeli értéket
  • egy függvény, amely olyan értéket állít elő, amely még nem szerepelt a tömbben
  • maga a lottószám-feltöltő függvény

#2   Kenó-számok meghatározása

Az előző megoldás felhasználásával módosítsuk azt, hogy ne 5 db hanem 20 db, és ne 1..90 hanem 1..80 számokat generáljunk.

#3   Növekvő vektor

Egy vektort töltsünk fel véletlen számokkal oly módon, hogy a vektor első elemek egy véletlen szám a [10,20] intervallumból, a következő (további) elemek pedig minden esetben az előző vektorelem plusz egy véletlen szám [1,5] intervallumból. Határozzuk meg, hogy a vektor "középső" indexű eleme és a vektor elemek átlaga mennyiben tér el egymástól (a két szám különbsége mennyi).

#4   Pénz szortírozás

Egy 300 elemű vektorba helyezzünk egyenlő eséllyel 5,10,20,50,100,500,1000,2000,5000,10000 értékeket (pénzérmék). Számoljuk meg egy második vektorba, melyik pénzérméből hány darab van (ezen vektor 0. eleme adja meg hány darab 5-ös, 1. eleme hány darab 10-es, stb. pénzérménk van). Ennek megfelelően ezen második vektor hossza a pénzérméink típusának darabszámával egyenlő. Majd:

  • írassuk ki melyik pénzérméből hány darab van,
  • ellenőrízzük, hogy az egyes pénzérmék darabszámának összege valóban 300-e
  • ellenőrízzük, hogy ha összegezzük a pénzérmék darabszámát és a pénzérme értékét, ugyannyit kapunk-e mint a 300 elemű vektor összege

Házi feladat

#5   Karakter statisztika

Egy string-et kérjünk be, majd határozzuk meg melyik karakterből (A..Z, 0..9) hány darab szerepelt a stringben. Írassuk ki a nem megszámolt (ettől különböző karaktereket) a képernyőre. Határozzuk meg a legtöbbet előforduló karaktert, és írassuk ki a képernyőre.

#6   Random lottó

Egy 5 elemű vektort töltsünk fel véletlen [1,90] értékekkel oly módon, hogy ne legyen benne ismétlődés. A vektor elemeit (lottó szelvény) írjuk ki a képernyőre.

<code lang="csharp">
static int[] tomb = new int[5];
static int keresett_elem;
static bool elofordul_e;

static void elofordulas()
{
   foreach(int x in tomb)
   {
    if (x==keresett_elem)
       return true;
   }
   return false;
}

static int also;
static int felso;
static int veletlen_ertek;
static Random rnd = new Random();

static void veletlenszam()
{
   veletlen_ertek = rnd.Next(also,felso+1);
}

static void uj_veletlenszam()
{
   do
   {
     veletlenszam();
     keresett_elem=veletlen_ertek;    
     elofordulas();
   }
   while (elofordul_e==true);
}

static void tomb_feltoltes()
{
  for(int i=0;i<tomb.Length;i++)
  {
    uj_veletlenszam();
    tomb[i] = veletlen_ertek;
  }
}

static void kiiras()
{
  foreach(int x in tomb)
    Console.WriteLine(x);
}

static void Main()
{
  also=1;
  felso=90;
  tomb_feltoltes();
  kiiras();
  Console.ReadLine();
}
 
Hernyák Zoltán
2013-03-16 17:08:03