2021-03-25 16:32
madakelet
Helló Tom!
Szerintem van egy kis hiba a Te megoldásodban az 5. feladathoz. Ha nem létezik olyan kínai játékos, akinek több a nyereménye, mint az első elemé, akkor hibás a végeredmény. A 6-os feladatnál, szerintem nem kell végigmenni a lista összes elemén, ha megtalálja az elsőt, akkor kiléphet, ezért én while ciklust használnék. A 7-es feladat, pedig Dictionary< >-t használva könnyebben megoldható :)
2023-07-19 12:26
KozmaRóbert
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
namespace snooker
{
class Program
{
struct snook
{
public int rajtszam;
public string nev;
public string orszag;
public int penz;
}
static void p() { Console.ReadKey(); }
static void print(string p) { Console.WriteLine(p); }
static void f(int s) { Console.WriteLine(s + ". Feladat."); }
static void Main(string[] args)
{
List< snook> SL = new List< snook>();
string[] betxt = File.ReadAllLines("snooker.txt", Encoding.UTF7);
for (int i = 1; i < betxt.Count(); i++)
{
if(betxt[i].Length>0)
{
string[] sorok = betxt[i].Split(';');
snook uj = new snook();
uj.rajtszam=Convert.ToInt32((sorok[0]));//helyez
uj.nev= (sorok[1]);//nev
uj.orszag=(sorok[2]);//orszag
uj.penz=Convert.ToInt32(sorok[3]);//díj
SL.Add(uj);
}
}
f(1);
f(2);
print("Adatok beolvasva és tárolva.");
f(3);
print(SL.Count () + " versenyző adatát tartalmazza az állomány.");
f(4);
int össz = 0;
int ln = 0;
bool norveg = false;
int[] db = new int[5];
for (int F = 0; F < SL.Count; F++)
{
össz = SL[F].penz + össz;
if ((SL[F].orszag == "Kína") && (SL[F].penz > SL[ln].penz)) { ln = F; }
if(SL[F].orszag == "Norvégia") { norveg = true; }
if (SL[F].orszag == "Skócia") { db[4]++; }
if (SL[F].orszag == "Wales") { db[3]++; }
if (SL[F].orszag == "Anglia") { db[2]++; }
if (SL[F].orszag == "Kína") { db[1]++; }
}
Console.WriteLine("Az átlag díjérték :"+Convert.ToDouble(össz/SL.Count()));
f(5);
Console.WriteLine("A legjobban kereső Kínai versenyző: ");
Console.WriteLine(" Helyzés: "+SL[ln].rajtszam);
Console.WriteLine(" Név: "+SL[ln].nev);
Console.WriteLine(" Orszag: "+ SL[ln].orszag);
Console.WriteLine(" Nyeremény összeg forintban: "+SL[ln].penz * 380);
f(6);
if (norveg == true){ print("Van Norvég versenyző."); }
f(7);
Console.WriteLine("Statisztika: ");
Console.WriteLine(" Kína - " + db[1] + " fő.");
Console.WriteLine(" Anglia - " + db[2] + " fő.");
Console.WriteLine(" Wales - " + db[3] + " fő.");
Console.WriteLine(" Skócia - " + db[4] + " fő.");
p();
}
}
}
2023-07-19 13:52
KozmaRóbert
#Python
import math
adatok = open("snooker.txt", "r", encoding = 'utf-8')
elemek=adatok.readlines()
adatok.close()
hely=[]
nev=[]
orszag=[]
penz=[]
def f (x):
print(x,". feladat.")
for i in range(1,len(elemek)):
oszlop=elemek[i].split(';')
hely.append(oszlop[0])
nev.append(oszlop[1])
orszag.append(oszlop[2])
penz.append(oszlop[3])
f(1)
f(2)
print("Adatok beolvasva.")
f(3)
print("A listan ",len(nev)," versenyző szerepel.");
össz=0
lt=0
norveg="nincs"
A,K,S,W=0,0,0,0
for i in range(len(hely)):
össz=int(penz[i])+össz
if ((orszag[i]=="Kína") and int(penz[i])>int(penz[lt])):
lt=i
if (orszag[i]=="Norvégia"):
norveg="van"
if (orszag[i]=="Kína"):
K=K+1
if (orszag[i]=="Anglia"):
A=A+1
if (orszag[i]=="Wales"):
W=W+1
if (orszag[i]=="Skócia"):
S=S+1
f(4)
print("Az díj értékek átlaga fontban: ", round((össz/len(penz))*100)*0.01)
f(5)
print("A legjobb Kínai versenyző adatai: ")
print(" Helyezés: ",hely[lt])
print(" Név: ",nev[lt])
print(" Ország: ",orszag[lt])
print(" Díj forintban: ",int(penz[lt])*380)
f(6)
print("A versenyzők között ",norveg," Norvég.")
f(7)
print("Statisztika:")
print(" Kína - ",K)
print(" Anglia - ",A)
print(" Wales - ",W)
print(" Skócia - ",S)