Házi feladat: a 7. feladatot be kell fejezni.
NMSZC Szent-Györgyi Albert Technikum (Balassagyarmat) - 2020-21/11B2 csoport 'programozás' órai munkái
2020. november 30., hétfő
2020. november 26., csütörtök
2020.11.26. 6/ 5. feladatsor: Monitor vásár
Megnéztük az autós feladatsor megoldását, videó készült róla. A házi feladat a monitoros feladatsor első 3 feladatának megoldása hétfőre.
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.
Ricsi megoldása:
2020. november 25., szerda
2020. november 23., hétfő
2020.11.23. 6/4. feladatsor: Önvezető autók
Szerdára a 3. feladatig kell megírni.
Metódusokban oldd meg a feladatokat. Figyelj arra, hogy amit lehet, lokális változóként definiálj. A megoldás előtt, ha szükséges, nézd át a fájlkezelős, metódusos alapokat, és lehetőleg közben ne használj segítséget.
Önvezető autók
Napjainkban az önvezető autók egyre gyorsabban
fejlődnek, több neves cég is fejleszt ilyeneket. Ebben a feladatban a rájuk
vonatkozó adatokat kell feldolgoznia.
- teljesítmény (lóerő)
- tömeg (tonna)
- gyorsulás (hány másodperc alatt gyorsul 100 km/h-ra)
- a vezetőnek hányszor kellett beavatkozni a vezetésbe
10.000 km-en
Tesla
Model S P90D;760;2,20;3;3 Volvo
XC90;889;2,90;4;14 Volkswagen
GO989;1378;3,66;5;6 Audi
Q525;772;2,40;2;3 Mercedes
Benz898;739;2,20;3;9 Google
Drive 18;752;2,55;4;11 Delphi
Magic 428B;1194;3,00;3;4 Bosch
Doom300;700;2,09;4;6 Nissan Cherry 100;725;3,1;3;7 |
Például a Tesla Model S P90D autó 760 lóerős
teljesítményű, 2,2 tonna tömegű, 3 másodperc alatt gyorsul 100 km/órára és a
10.000 km-es tesztvezetésen 3-szor volt szükség humán beavatkozásra.
A képernyőre írást igénylő
részfeladatok megjelenítése előtt írja a képernyőre a feladat sorszámát!
2. Az adatokat olvassa be fájlból és tárolja el 5 tömbben.
3. Írja ki a képernyőre a leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt gyorsul 100‑ra.)
4. Írja ki a képernyőre a legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet kellett beavatkozni a vezetésbe.)
6. Írja ki a képernyőre az autók átlag tömegét.
7. Írja ki a képernyőre, és
egy új fájlba autónként a következő adatokat szóközzel elválasztva: sorszám (a
feldolgozás sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).
Varsó megoldása:
using System;
using System.IO;
namespace _20201122Hazi
{
class Program
{
static int feldolgozandoAdatMennyiseg = 9;
static string[] azonosito = new string[feldolgozandoAdatMennyiseg];
static int[] loero = new int[feldolgozandoAdatMennyiseg];
static double[] tomeg = new double[feldolgozandoAdatMennyiseg];
static int[] gyorsulas = new int[feldolgozandoAdatMennyiseg];
static int[] beavatkozas = new int[feldolgozandoAdatMennyiseg];
static int kiIndex = 0;
static void AdatokBeolvasasa()
{
StreamReader sr = new StreamReader("adatok.txt");
string[] atmeneti;
int k = 0;
while (!sr.EndOfStream)
{
atmeneti = sr.ReadLine().Split(";");
azonosito[k] = atmeneti[0];
loero[k] =
Convert.ToInt32(atmeneti[1]);
tomeg[k] =
Convert.ToDouble(atmeneti[2].Replace(".", ","));
//ITT NEM KELL A REPLACE - T HASZNÁLNI,
HA A FÁJLBAN ÁTÍRTAD A PONTOT VESSZŐRE.
gyorsulas[k] =
Convert.ToInt32(atmeneti[3]);
beavatkozas[k] =
Convert.ToInt32(atmeneti[4]);
k++;
}
sr.Close();
}
static void LeggyorsabbAutoKereses()
{
int l = 0;
kiIndex = 0;
int min = gyorsulas[0];
while (l < gyorsulas[l])
{
if (min < gyorsulas[l])
{
min = gyorsulas[l];
kiIndex = l;
}
l++;
}
Console.WriteLine("A leggyorsabb
autó adatai\n---------------------------");
AutoTipusKiiratasa();
//ITT NEM KELL METÓDUST HÍVNI, HA KIÍROD A TÖMBELEMET,
ÉS A kiIndexET.
}
static void AutoTipusKiiratasa()
{
Console.WriteLine("Típus: " +
azonosito[kiIndex]);
Console.WriteLine("Lóerő: " + loero[kiIndex]);
Console.WriteLine("Tömeg (t):
" +
tomeg[kiIndex]);
Console.WriteLine("Gyorsulás
(sec): " + gyorsulas[kiIndex]);
Console.WriteLine("Emberi
beavatkozás (10 000 km-en): " + beavatkozas[kiIndex]);
Console.WriteLine();
}
static void LegkevesbeOnalloKereses()
{
int f = 0;
kiIndex = 0;
int max = beavatkozas[0];
while (f < beavatkozas[f])
{
if (max > beavatkozas[f])
{
max = beavatkozas[f];
kiIndex = f;
}
f++;
}
Console.WriteLine("A legkevésbé önálló
autó adatai\n---------------------------");
AutoTipusKiiratasa();
//ITT NEM KELL METÓDUST HÍVNI, HA KIÍROD A TÖMBELEMET,
ÉS A kiIndexET.
}
static void AutokAtlagTomege()
{
double osszTomeg = 0;
for (int i = 0; i < tomeg.Length; i++)
{
osszTomeg += tomeg[i];
}
osszTomeg = osszTomeg / tomeg.Length;
Console.WriteLine("Az autók átlag
tömege (t): " + osszTomeg);
}
static void TomegKiiratasFajlba()
{
StreamWriter sw = new StreamWriter("tomeg.txt");
for (int i = 0; i < tomeg.Length; i++)
{
sw.WriteLine((i + 1) + " " + tomeg[i] * 1000);
Console.WriteLine((i + 1) + " " + tomeg[i] * 1000);
}
sw.Close();
}
static void Main(string[] args)
{
//2.Az adatokat olvassa be fájlból és tárolja
el 5 tömbben.
AdatokBeolvasasa();
//3.Írja ki a képernyőre a minta szerint a
leggyorsabb autó adatait. (Az a leggyorsabb, ami a legkevesebb idő alatt
gyorsul 100 ra.)
LeggyorsabbAutoKereses();
//4.Írja ki a képernyőre a minta szerint a
legkevésbé önálló autó azonosítóját. (Az a legkevésbé önálló, amelynél a legtöbbet
kellett beavatkozni a vezetésbe.)
LegkevesbeOnalloKereses();
//6.Írja ki a képernyőre a minta szerint az
autók átlag tömegét.
AutokAtlagTomege();
//7.Írja ki a képernyőre, és egy új fájlba
autónként a következő adatokat szóközzel elválasztva: sorszám(a feldolgozás
sorrendjében automatikusan generált), tömeg kg-ban. (1 tonna = 1000 kg).
TomegKiiratasFajlba();
Console.Write("\nA program
bezárásahoz nyomjon meg egy billentyűt...");
Console.ReadKey();
}
}
}