110 likes | 234 Views
Motorverseny. A Motorverseny feladat szövege. Ismert a SuperBike világbajnokság 0<n<1<=12 idei futamának beérkezési sorrendje, a BIKE.BE fájlban. Minden sorban 1 név van, futamonként legfeljebb 6. Az egyes futamokat egy üres sor választja el egymástól (mindig maximum hatan érkeznek be).
E N D
A Motorverseny feladat szövege Ismert a SuperBike világbajnokság 0<n<1<=12 idei futamának beérkezési sorrendje, a BIKE.BE fájlban. Minden sorban 1 név van, futamonként legfeljebb 6. Az egyes futamokat egy üres sor választja el egymástól (mindig maximum hatan érkeznek be). • Adjuk meg azok névsorát a FUTAM.TXT fájlban, akik minden futamon célba érkeztek! Minden sorban pontosan egy név szerepeljen! • A LISTA.TXT-be kerüljön be a világbajnokság eredményrangsora (rendezés)! A győztes hat, a többiek rendre eggyel kevesebb pontot kapnak! Minden sorban egy név legyen mellette egy szóköz, utána a pontszám! motorverseny - Várhelyi Ágnes
Változók • 3db textfájl (BIKE.BE; FUTAM.TXT; LISTA.TXT) • Amibe kiolvasunk (v) • Olyan rekordokból álló vektor, ahol • nev versenyző neve (v.n) • pont az olvasásig elért összpontszáma (v.p) • futam az olvasásig teljesített futamok száma (v.f) • A futamok számlálója (fut) • Futamon belül a helyezés számlálója (hely) • A versenyzők számának nyilvántartása (n) • „sor ” a fájlba íráshoz (sor) motorverseny - Várhelyi Ágnes
Adatbeolvasás - kezdőrekord Hozzárendel(f,”BIKE.BE”) Megnyit_olvasásra(f) Fut:=1 n:=0; hely:=0 Olvas(f.sor) Ciklus amíg sor nem üres n:=n+1; hely:=hely+1 V[n].n:=sor; v[n].p:=6+1-hely olvas(f,sor) Ciklus vége (első futam) motorverseny - Várhelyi Ágnes
Adatbeolvasás - folyamatos Olvaseljárás(f:textfájl; sor:string; fv:logikai) fv:=hamis Ha nem fájlvége akkor sor:=olvas(f,sor) Különben fv:=igaz Eljárás vége motorverseny - Várhelyi Ágnes
A teljes beolvasás ciklusa Olvaseljárás(f,sor,fv) Ciklus amíg nem fv fut:= fut+1 Feldolgozva beír v-be olvaseljárás(f,sor,fv) Ciklus vége (fájlvégéig) Bezár(f) motorverseny - Várhelyi Ágnes
A v-be beírás ciklusa Hely:=0 Ciklus amíg nem fv & sor nem üres hely:=hely+1 keresésarra, hogy ez a név szerepelt-e már egy korábbi futamban (l igaz akkor igen) ha nem l akkor n:=n+1; i:=n v[i].n:=sor; v[i].p:=0; v[i].futam:=0 v[i].p:= v[i].p+6+1-hely; v[i].f:= v[i].f+1 Olvaseljárás(f,sor,fv) Ciklus vége(sor nem üres) motorverseny - Várhelyi Ágnes
A keresés i:=0 l:=hamis Ciklus amíg i<n & nem l i:=i+1 l:=v[i].n=sor Ciklus vége (keres) motorverseny - Várhelyi Ágnes
A FUTAM.TXT feltöltése Hozzárendel(h, „FUTAM.TXT”) Megnyit_írásra(h) Ciklus i:= 1, k ha v[i].f=fut akkor ír_soremeléssel(h, v[i].n) Ciklus vége (h-ba írás) motorverseny - Várhelyi Ágnes
A LISTA.TXT készítése rendezés Ciklus i:=1, n-1 ciklus j:=i+1, n ha v[i].p < v[j].p akkor sv:=v[i].n v[i].n:=v[j].n v[j].n:=sv ciklus vége (j) Ciklus vége (i) motorverseny - Várhelyi Ágnes
A LISTA.TXT fájl feltöltése Hozzárendel(g, „LISTA.TXT”) Megnyit_írásra(g) Ciklus i:=1, k sor:=v[i].n+’ ‘+v[i].p ír(g, sor) Ciklus vége (g-be írás) Bezár (g) motorverseny - Várhelyi Ágnes