1. Egymásba ágyazott ciklusok ismétlése
a múlt órai munka alapján
2. Új anyag: hátul tesztelő ciklus
namespace hatulTeszteloCiklus
{
class Program
{
static void Main(string[] args)
{
int[] szamok = new int[10];
Random rnd = new Random();
for (int k = 0; k
< szamok.Length; k++)
{
szamok[k] = rnd.Next(100);
}
//Ismétlés:
//Összegzés tétele while ciklussal:
int osszeg =
0;
int i = 0;
while (i < szamok.Length)
{
osszeg = osszeg + szamok[i];
i++;
}
Console.WriteLine("Összeg
while ciklussal: {0}", osszeg);
//Hátultesztelő ciklus:
//A feltétel kiértékelése nem a ciklus elején,
//hanem a végén történik.
//A fenti ciklus hátultesztelő módon:
osszeg = 0;
i
= 0;
do
{
osszeg = osszeg + szamok[i];
i++;
}
while (i < szamok.Length);
Console.WriteLine("Összeg
hátultesztelő (do while) ciklussal: {0}", osszeg);
//Az lényeges különbség, hogy a ciklusmag egyszer
//mindenképp végrehajtódik.
//1.feladat:
//Hozzunk létre egy 5 elemű double tömböt,
//billentyűzetről töltsük fel,
//majd adjuk össze az elemeit!
double[] tortSzamok = new
double[5];
for (int j = 0; j
< tortSzamok.Length; j++)
{
Console.Write("Kérek egy tört számot: ");
tortSzamok[j] = Convert.ToDouble(Console.ReadLine());
}
double tortOsszeg = 0;
i
= 0;
do
{
tortOsszeg = tortOsszeg + tortSzamok[i];
i++;
}
while (i < tortSzamok.Length);
Console.WriteLine("Tört
számok összege hátultesztelő (do while) ciklussal: {0}",
tortOsszeg);
//2. feladat:
//Adjuk meg azon elemek összegét,
//amelyek kisebbek 5-nél!
//Használjunk hátultesztelő ciklust!
tortOsszeg = 0;
i
= 0;
do
{
if (tortSzamok[i] < 5)
{
tortOsszeg = tortOsszeg + tortSzamok[i];
}
i++;
}
while (i < tortSzamok.Length);
Console.WriteLine("Az
5-nél kisebb tört számok összege hátultesztelő (do while) ciklussal: {0}",
tortOsszeg);
//3. feladat:
//Addig írjunk ki 5-től indulva 5-tel osztható
//egész számokat, amíg az adott számot 4-gyel szorozva
//el nem éri az 1.000.000-t. (Vagyis ez 250000.)
//Alkalmazzunk hátul tesztelő ciklust!
Console.WriteLine("5-tel
osztható számok kiírása következik:");
Console.ReadLine();
int szam = 5;
do
{
Console.WriteLine(szam);
szam = szam + 5;
}
while (szam * 4 <= 1000000);
Console.ReadLine();
//4. feladat:
//Kezdőértékünk legyen a 10 millió.
//Addig osszuk 10-zel, amíg el nem érjük az 1-gyet!
//Alkalmazzunk hátul tesztelő ciklust!
Console.WriteLine("Osztások
eredményének kiírása következik:");
Console.ReadLine();
szam = 10000000;
do
{
Console.WriteLine(szam);
szam = szam / 10;
}
while (szam >= 1);
Console.ReadLine();
//5. feladat:
//Írjunk végtelen, hátul tesztelő ciklust!
Console.WriteLine("Vigyázat!
Végtelen ciklus jön!");
Console.ReadLine();
i
= 0;
do
{
i++;
Console.WriteLine("A ciklusváltozó értéke: {0} ... nem állok meg úgy
sem...", i);
}
while (true);
//Console.ReadLine(); ez már nem is kell...
}
}
}
3. Metódusok bevezetése
Mintafeladat:
namespace metodusokBevezeteseI
{
class
Program
{
//Metódusok
bevezetése
//Feladat:
Töltsünk fel egy 10 elemű
//int
tömböt véletlen számokkal.
static
int[] szamok = new
int[10];
//ezt
a tömböt az egész programban akarjuk használni
static
Random rnd = new
Random();
//ezt
a változót az egész programban akarjuk használni
static
void tombFeltoltes() //ez
egy metódus kezdete
{ //static:
kötelező kitenni, azt jelzi, hogy ezt a metódust
//a Main()-ben is akarjuk használni
int i = 0;
while (i < szamok.Length)
{
szamok[i] =
rnd.Next(100);
i++;
}
}//a
metódus idáig tart
//Írjuk
ki a tömb tartalmát a képernyőre.
static
void kiiras()
{
foreach (int x in szamok)
{
Console.WriteLine(x);
}
}
//Adjuk össze a
tömbelemeket.
static
void osszegzesTetele() //ez
is egy újabb metódus
{
int osszeg = 0;
int i = 0;
while (i < szamok.Length)
{
osszeg = osszeg +
szamok[i];
i++;
}
Console.WriteLine("Összeg:
{0}", osszeg);
}
static
void Main(string[]
args) //itt kezdődik a program futása
{//itt
már készen van a tömb, és használható az rnd változó is
tombFeltoltes(); //ezzel meghívjuk a metódust
//ilyenkor a program végrehajtása a fenti metódus első
//soránál folytatódik (int i = 0;)
//majd amikor lefut benne a ciklus, folytatódik a program
//végrehajtása itt, a következő metódushívásnál:
kiiras();
osszegzesTetele();
Console.ReadLine();
}
}
}Az előző feladatsor átalakítása metódusok használatával:
namespace metodusokBevezetese
{
class Program
{
static int[] szamok =
new int[10];
static Random rnd
= new Random();
static int osszeg =
0;
static int i = 0;
static double[]
tortSzamok = new double[5];
static double
tortOsszeg = 0;
static int szam = 0;
static void
feltoltes()
{
for (int k = 0; k < szamok.Length; k++)
{
szamok[k] = rnd.Next(100);
}
}
static void
osszegzesTeteleWhileCiklussal()
{
i
= 0;
osszeg = 0;
while (i < szamok.Length)
{
osszeg = osszeg + szamok[i];
i++;
}
Console.WriteLine("Összeg
while ciklussal: {0}", osszeg);
}
static void
osszegzesHatulTesztelo()
{
osszeg = 0;
i
= 0;
do
{
osszeg = osszeg + szamok[i];
i++;
}
while (i < szamok.Length);
Console.WriteLine("Összeg
hátultesztelő (do while) ciklussal: {0}", osszeg);
}
static void
doubleFeltoltes()
{
for (int j = 0; j
< tortSzamok.Length; j++)
{
Console.Write("Kérek egy tört számot: ");
tortSzamok[j] = Convert.ToDouble(Console.ReadLine());
}
}
static void
tortOsszegHatulTesztelo()
{
i
= 0;
do
{
tortOsszeg = tortOsszeg + tortSzamok[i];
i++;
}
while (i < tortSzamok.Length);
Console.WriteLine("Tört
számok összege hátultesztelő (do while) ciklussal: {0}",
tortOsszeg);
}
static void
kisebbOtnel()
{
tortOsszeg = 0;
i
= 0;
do
{
if (tortSzamok[i] < 5)
{
tortOsszeg = tortOsszeg + tortSzamok[i];
}
i++;
}
while (i < tortSzamok.Length);
Console.WriteLine("Az
5-nél kisebb tört számok összege hátultesztelő (do while) ciklussal: {0}",
tortOsszeg);
}
static void
ottelOszthatoKiiras()
{
do
{
szam = szam + 5;
Console.WriteLine(szam);
}
while (!(szam * 4 >= 1000000));
}
static void
osztasok()
{
szam = 10000000;
do
{
szam = szam / 10;
Console.WriteLine(szam);
}
while (!(szam <= 1));
}
static void Main(string[] args)
{
feltoltes();
osszegzesTeteleWhileCiklussal();
osszegzesHatulTesztelo();
doubleFeltoltes();
tortOsszegHatulTesztelo();
kisebbOtnel();
Console.WriteLine("5-tel
osztható számok kiírása következik:");
Console.ReadLine();
ottelOszthatoKiiras();
Console.ReadLine();
Console.WriteLine("Osztások
eredményének kiírása következik:");
Console.ReadLine();
osztasok();
Console.ReadLine();
}
}
}