Ellenőriztük a feladatsor első részét, közben lépésenkénti futtatással ellenőriztük az átmeneti tömb működését. Ha szükséges, mentsd a videót, ami erről készült.
NMSZC Szent-Györgyi Albert Technikum (Balassagyarmat) - 2020-21/11B1 csoport 'programozás' órai munkái
2020. november 30., hétfő
2020. november 25., szerda
2020. november 24., kedd
2020. november 23., hétfő
2020.11.23. 6/ 5. feladatsor: Monitor vásár
Monitor vásár
Egy hardver cég többféle monitort árul. A monitorokról a következő adatokat tároljuk: a monitor gyártója; típusa; mérete; ára
A méret colban van, az ár nettó és forintban értjük.
Pl.: Samsung;S24D330H;24;33000
A megoldáshoz először fel kell vinned egy fájlba a monitorok adatait. 5 monitorról gyűjts össze adatokat, ehhez használhatod az internetet.
Feladatok:
1. Olvasd be a fájl tartalmát 4 tömbbe. Tudjuk, hogy 5 monitor van. Szorgalmi: oldd meg, hogy bármennyi monitort is tudj kezelni.
2.
Írd ki a monitorok összes adatát, soronként egy monitort a képernyőre. A kiírás
így nézzen ki:
Gyártó: Samsung; Típus: S24D330H; Méret: 24 col; Nettó ár: 33000 Ft
2. Hozz létre egy új tömböt, amelyben a bruttó árakat tárolod. A számításhoz tudnod kell, hogy az ÁFA mértéke 27%.
3. Tételezzük fel, hogy mindegyik monitorból 15 db van készleten. A készlet tárolásához hozz létre egy új tömböt (aminek minden eleme 15 legyen kezdetben). Mekkora a raktárkészlet bruttó (tehát áfával növelt) értéke?
4. Írd ki egy új fájlba, és a képernyőre az 50.000 Ft feletti nettó értékű monitorok összes adatát (a darabszámmal együtt) úgy, hogy a szöveges adatok nagybetűsek legyenek, illetve az árak ezer forintba legyenek átszámítva.
5. Egy vevő keresi a HP EliteDisplay E242 monitort. Írd ki neki a képernyőre, hogy hány darab ilyen van a készleten. (A válasz lehet 0 db is.)
6. Egy újabb vevőt csak az ár érdekli. Írd ki neki a legolcsóbb monitor méretét, és árát.
7. A cég akciót hirdet. A 70.000 Ft fölötti árú Samsung monitorok bruttó árából 5%-ot elenged. Írd ki egy újabb tömbbe ezeknek az akciós monitoroknak az árát úgy, hogy ne legyen „üres” tömbelem (kiválogatás tétele). A feldolgozás közben folyamatosan összesítsd a készleten lévő akciós monitorok értékét, és a feldolgozás végén írd ki, hogy mennyit veszítene a cég az akcióval, ha az összes akciós monitort eladná.
8. Írd ki a képernyőre minden monitor esetén, hogy az adott monitor nettó ára a nettó átlag ár alatt van-e, vagy fölötte, esetleg pontosan egyenlő az átlag árral.
9. Modellezzük, hogy megrohamozták a vevők a boltot. 5 és 15 közötti random számú vásárló 1-1 random módon kiválasztott monitort vásárol, ezzel csökkentve az eredeti készletet. Írd ki, hogy melyik monitorból mennyi maradt a boltban. (Vigyázz, hogy nulla darab alá ne mehessen a készlet.)
10. Írd ki a képernyőre, hogy a vásárlások után van-e olyan monitor, amelyikből mindegyik elfogyott.
11. Az Array.Sort(tömb neve) metódus használatával rakd sorba a monitorok gyártóit, és írd ki őket a képernyőre. (Ehhez először másold át a gyártókat egy új tömbbe, és azt rendezd sorba.)
12.
Csökkentsd a legdrágább monitor bruttó árát 10%-kal, írd ki ezt az értéket a
képernyőre.
2020.11.23. Tömbfüggvények, tömb másolás
int[] tomb = new int[5];
Random rnd = new Random();
for (int i = 0; i < tomb.Length; i++)
{
tomb[i] = rnd.Next(10);
}
Console.Write("Első tömb:
");
for (int i = 0; i < tomb.Length; i++)
{
Console.Write("{0} ",tomb[i]);
}
Console.WriteLine();
Console.Write("Első tömb átlaga:
");
Console.WriteLine(tomb.Average());
Console.Write("Első tömb
tartalmazza-e a 6-ot:");
Console.WriteLine(tomb.Contains(6));
Console.Write("Első tömb
minimuma: ");
Console.WriteLine(tomb.Min());
Console.Write("Első tömb
maximuma: ");
Console.WriteLine(tomb.Max());
Console.Write("Első tömb összege:
");
Console.WriteLine(tomb.Sum());
//Létrehozok egy új tömböt és belemásolom az
elsőt.
//A második tömbön végrehajtott módosítások
az elsőben is megjelennek.
int[] tomb1 = new int[5]; //unnecessary assignment figyelmeztetést
kapunk
tomb1 = tomb; //továbbra is csak egy
tömbünk van, mostmár tomb és tomb1 néven is elérhető
Console.Write("Második tömb:
");
for (int i = 0; i < tomb1.Length; i++)
{
Console.Write("{0} ", tomb1[i]);
}
Console.WriteLine();
tomb1[0] = 15;
Console.Write("Első tömb
");
Console.WriteLine(tomb[0]); //ennek is 15 lesz az értéke
Console.Write("Második tömb
");
Console.WriteLine(tomb1[0]);
//Tehát a fenti módszert ne alkalmazzuk, ha
egy tömbből valódi másolatot szeretnénk csinálni.
//A másolás számunkra alkalmas módja:
int[] tomb2 = new int[5];
for (int i = 0; i < tomb.Length; i++)
{
tomb2[i] = rnd.Next(10);
}
Console.WriteLine();
int[] tomb3 = new int[5];
Array.Copy(tomb2, tomb3,
tomb.Length); //ezek után két független tömbünk van, ugyanazokkal az értékekkel
Console.WriteLine("Harmadik tömb:
");
for (int i = 0; i < tomb2.Length; i++)
{
Console.Write("{0} ", tomb2[i]);
}
Console.WriteLine();
Console.WriteLine("Negyedik tömb:
");
for (int i = 0; i < tomb3.Length; i++)
{
Console.Write("{0} ", tomb3[i]);
}
Console.WriteLine();
tomb2[0] = 20;
tomb3[0] = 30;
tomb2[4] = 40;
tomb3[4] = 50;
Console.WriteLine("Változtatás után:");
Console.WriteLine("Harmadik tömb:
");
for (int i = 0; i < tomb2.Length; i++)
{
Console.Write("{0} ", tomb2[i]);
}
Console.WriteLine();
Console.WriteLine("Negyedik tömb");
for (int i = 0; i < tomb3.Length; i++)
{
Console.Write("{0} ", tomb3[i]);
}
Console.ReadLine();