Befejeztük. Az otthon lévők pótoljanak, oldják meg egyedül az egészet.
Ö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.
Az adatokat a lenti keretben
találja. Az állomány soronként tartalmazza az autók következő adatait egymástól
pontosvesszővel elválasztva:
- azonosító (gyártó és
modellszám)
- 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
A fájlban 9 autó adatai vannak.
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.
1. Készítsen programot a
következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.
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 listában.
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).
Máté megoldása:
class Program
{
static List<string> azonosito = new List<string>();
static List<int> loero = new List<int>();
static List<double> tomeg = new List<double>();
static List<double> gyorsulas = new List<double>();
static List<int> vezetoBeavat = new List<int>();
static void beolvas()
{
StreamReader sr = new StreamReader("autok.txt");
string[] ideiglenes;
while (!sr.EndOfStream)
{
ideiglenes = sr.ReadLine().Split(";");
azonosito.Add(ideiglenes[0]);
loero.Add(Convert.ToInt32(ideiglenes[1]));
tomeg.Add(Convert.ToDouble(ideiglenes[2]));
gyorsulas.Add(Convert.ToDouble(ideiglenes[3]));
vezetoBeavat.Add(Convert.ToInt32(ideiglenes[4]));
}
sr.Close();
}
static int leggyorsabb()
{
double ideiglenes = gyorsulas[0];
int i = 1;
int j = 0;
while (i < gyorsulas.Count)
{
if (ideiglenes > gyorsulas[i])
{
ideiglenes = gyorsulas[i];
j = i;
}
i++;
}
return j;
}
static string[] adatKiiras()
{
int i = leggyorsabb();
string[] data = { azonosito[i], loero[i].ToString(), tomeg[i].ToString(), gyorsulas[i].ToString(), vezetoBeavat[i].ToString() };
return data;
}
static string legkevesbe()
{
double ideiglenes = vezetoBeavat[0];
int i = 1;
int j = 0;
while (i < vezetoBeavat.Count)
{
if (ideiglenes < vezetoBeavat[i])
{
ideiglenes = vezetoBeavat[i];
j = i;
}
i++;
}
return azonosito[j];
}
static double atlag()
{
double atlag = 0;
int i = 0;
while (i < tomeg.Count)
{
atlag += tomeg[i];
i++;
}
return Convert.ToDouble(string.Format("{0:0.000}", atlag = (atlag / tomeg.Count)));
}
static void kiiras()
{
StreamWriter sw = new StreamWriter("ujFajl.txt");
int i = 0;
while (i < tomeg.Count)
{
sw.WriteLine($"{i+1}. {tomeg[i] * 1000} kg");
Console.WriteLine($"{i+1}. {tomeg[i] * 1000} kg");
i++;
}
sw.Close();
}
//Szorgalmi: Rendezd sorba az azonosítókat,
//majd ezen a listán végiglépkedve írd ki az eredeti adatokat.
static void sorbarendezes()
{
List<string> azonositoRend = new List<string>(azonosito);
azonositoRend.Sort();
int[] indexModositva = new int[azonositoRend.Count];
int i = 0;
while (i < azonositoRend.Count)
{
indexModositva[i] = azonosito.IndexOf(azonositoRend[i]);
i++;
}
i = 0;
while (i < azonosito.Count)
{
Console.WriteLine(azonositoRend[i] + " " + loero[indexModositva[i]] + "Le " + tomeg[indexModositva[i]] + " Tonna " + gyorsulas[indexModositva[i]] + "s " + vezetoBeavat[indexModositva[i]]+" alkalom");
i++;
}
}
static void sorbarendezes2()
{
List<string> azonositoRend = new List<string>(azonosito);
azonositoRend.Sort();
int i = 0;
int j = 0;
string ideiglenes = String.Empty;
while (i < azonositoRend.Count)
{
ideiglenes = azonositoRend[i];
j = 0;
while (j < azonosito.Count)
{
if (ideiglenes == azonosito[j])
{
Console.WriteLine($"{azonositoRend[i]} {loero[j]}Le {tomeg[j]} Tonna {gyorsulas[j]}s {vezetoBeavat[j]} alkalom");
}
j++;
}
i++;
}
}
static void Main(string[] args)
{
//1.Készítsen programot a következő feladatok megoldására, amelynek a forráskódját onvezeto néven mentse el.
//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!
Console.WriteLine("2. feladat");
beolvas();
Console.WriteLine("Beolvasás...");
Console.WriteLine("\n3. feladat");
foreach (string x in adatKiiras())
{
Console.Write(x+" ");
}
Console.WriteLine("\n4. feladat");
Console.WriteLine(legkevesbe());
Console.WriteLine("\n5. feladat");
Console.WriteLine(atlag()+" tonna az átlagtömeg");
Console.WriteLine("\n6. feladat");
Console.WriteLine("Tömegek sorszámozva \n");
kiiras();
Console.WriteLine();
sorbarendezes();
Console.WriteLine();
sorbarendezes2();
Console.ReadLine();
//2.Az adatokat olvassa be fájlból és tárolja el 5 listában.
//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).
}
}