From: Doni Pracner Date: Sat, 9 May 2015 14:21:16 +0000 (+0200) Subject: Skup, primer sa vozacima Formule 1 X-Git-Url: https://svarog.pmf.uns.ac.rs/gitweb/?a=commitdiff_plain;h=a35812d966e877a1f4cf030a3bd3dd38562bcd8f;p=spa1-materijali.git Skup, primer sa vozacima Formule 1 --- diff --git a/kodovi/skup/F1Vozaci.java b/kodovi/skup/F1Vozaci.java new file mode 100644 index 0000000..bf361ba --- /dev/null +++ b/kodovi/skup/F1Vozaci.java @@ -0,0 +1,94 @@ +/** + * Dat je fajl “sampioni-po-godinama.txt” u kome su u svakom redu godina i ime i + * prezime šampiona Formule 1 te godine razdvojeni razmacima. + * + * Ispisati na ekran koliko je bilo različitih šampiona (neki su bili u više + * godina). + * + * U novi fajl “sampioni.txt” ispisati jedinstvena imena, pri čemu redosled nije + * bitan. + * + * Dat je fajl “pobednici.txt” u kome je u svakom redu ime i prezime i broj + * pobeda nekog vozača u Formuli 1. Koristeći ovaj i prethodno dat fajl ispisati + * na ekran sve vozače koji su pobedili neku trku, ali nisu bili svetski + * šampioni. Ispisati ove podatke u novi fajl “pobednici-bez-sampionata.txt”. + * + */ +public class F1Vozaci { + + public static Skup ucitajSampione(String imefajla) { + Skup rez = new Skup<>(); + + while (!Svetovid.in(imefajla).isEmpty()) { + // ignorisemo godinu, posto nam nije bitna (ne cuvamo je, ali je + // moramo procitati) + Svetovid.in(imefajla).readInt(); + String ime = Svetovid.in(imefajla).readString(); + String prezime = Svetovid.in(imefajla).readString(); + + // u skup ubacujemo puno ime i prezime + rez.ubaci(ime + " " + prezime); + } + Svetovid.in(imefajla).close(); + + return rez; + } + + public static Skup ucitajPobednike(String imefajla) { + Skup rez = new Skup<>(); + + while (!Svetovid.in(imefajla).isEmpty()) { + String ime = Svetovid.in(imefajla).readString(); + String prezime = Svetovid.in(imefajla).readString(); + // ignorisemo podataka o broju pobeda (ne cuvamo ga, ali ga moramo + // procitati) + Svetovid.in(imefajla).readInt(); + rez.ubaci(ime + " " + prezime); + } + Svetovid.in(imefajla).close(); + + return rez; + } + + public static void stampajNiz(String[] niz) { + if (niz != null) + for (String s : niz) + System.out.println(s); + } + + public static void ispisiUFajl(Skup imena, String imefajla) { + // proveravamo da li je velicina veca od nula, jer inace napraviNiz + // vraca 'null', sto ne mozemo da obradimo u foru + if (imena.velicina() > 0) { + String[] niz = imena.napraviNiz(); + for (String s : niz) { + Svetovid.out(imefajla).println(s); + } + Svetovid.out(imefajla).close(); + } else { + // nema sta da se pise u fajl + Svetovid.out(imefajla).println(); + Svetovid.out(imefajla).close(); + } + + } + + public static void main(String[] args) { + Skup samp = (ucitajSampione("sampioni-po-godinama.txt")); + // u skupu su sada samo razliciti sampioni, sto je trazeno + System.out.println("Broj razlicitih sampiona:" + samp.velicina()); + ispisiUFajl(samp, "sampioni.txt"); + + Skup pob = ucitajPobednike("pobednici.txt"); + + Skup pBezS = pob.razlika(samp); + + // ispis na ekran + System.out.println("Pobednici bez sampionata, ukupno " + pBezS.velicina()); + stampajNiz(pBezS.napraviNiz()); + + ispisiUFajl(pBezS, "pobednici-bez-sampionata.txt"); + + } + +} diff --git a/kodovi/skup/pobednici.txt b/kodovi/skup/pobednici.txt new file mode 100644 index 0000000..b74e681 --- /dev/null +++ b/kodovi/skup/pobednici.txt @@ -0,0 +1,105 @@ +Michael Schumacher 91 +Alain Prost 51 +Ayrton Senna 41 +Sebastian Vettel 40 +Lewis Hamilton 36 +Fernando Alonso 32 +Nigel Mansell 31 +Jackie Stewart 27 +Niki Lauda 25 +Jim Clark 25 +Juan-Manuel Fangio 24 +Nelson Piquet 23 +Damon Hill 22 +Kimi Räikkönen 20 +Mika Häkkinen 20 +Stirling Moss 16 +Jenson Button 15 +Jack Brabham 14 +Emerson Fittipaldi 14 +Graham Hill 14 +Alberto Ascari 13 +David Coulthard 13 +Carlos Reutemann 12 +Alan Jones 12 +Mario Andretti 12 +Felipe Massa 11 +Rubens Barrichello 11 +Jacques Villeneuve 11 +Gerhard Berger 10 +Jody Scheckter 10 +Ronnie Peterson 10 +James Hunt 10 +Mark Webber 9 +Jacky Ickx 8 +Nico Rosberg 8 +Denny Hulme 8 +Juan-Pablo Montoya 7 +René Arnoux 7 +Jochen Rindt 6 +Gilles Villeneuve 6 +Jacques Laffite 6 +Ralf Schumacher 6 +Riccardo Patrese 6 +John Surtees 6 +Tony Brooks 6 +Keke Rosberg 5 +Michele Alboreto 5 +Giuseppe Farina 5 +Clay Regazzoni 5 +John Watson 5 +Bruce McLaren 4 +Eddie Irvine 4 +Dan Gurney 4 +Daniel Ricciardo 3 +Thierry Boutsen 3 +Didier Pironi 3 +Heinz-Harald Frentzen 3 +Giancarlo Fisichella 3 +Johnny Herbert 3 +Mike Hawthorn 3 +Peter Collins 3 +Phil Hill 3 +José-Froilán González 2 +Jean-Pierre Jabouille 2 +Maurice Trintignant 2 +Patrick Depailler 2 +Patrick Tambay 2 +Wolfgang von-Trips 2 +Elio de-Angelis 2 +Pedro Rodríguez 2 +Jo Siffert 2 +Bill Vukovich 2 +Peter Revson 2 +José-Carlos Pace 1 +Heikki Kovalainen 1 +François Cevert 1 +Jean Alesi 1 +Jean-Pierre Beltoise 1 +Olivier Panis 1 +Jochen Mass 1 +Alessandro Nannini 1 +Giancarlo Baghetti 1 +Jarno Trulli 1 +Lorenzo Bandini 1 +Ludovico Scarfiotti 1 +Luigi Fagioli 1 +Luigi Musso 1 +Piero Taruffi 1 +Vittorio Brambilla 1 +Robert Kubica 1 +Gunnar Nilsson 1 +Joakim Bonnier 1 +Innes Ireland 1 +Peter Gethin 1 +Bob Sweikert 1 +Jimmy Bryan 1 +Jim Rathmann 1 +Johnnie Parsons 1 +Lee Wallard 1 +Pat Flaherty 1 +Richie Ginther 1 +Rodger Ward 1 +Sam Hanks 1 +Troy Ruttman 1 +Pastor Maldonado 1 diff --git a/kodovi/skup/sampioni-po-godinama.txt b/kodovi/skup/sampioni-po-godinama.txt new file mode 100644 index 0000000..91b9776 --- /dev/null +++ b/kodovi/skup/sampioni-po-godinama.txt @@ -0,0 +1,65 @@ +1950 Giuseppe Farina +1951 Juan-Manuel Fangio +1952 Alberto Ascari +1953 Alberto Ascari +1954 Juan-Manuel Fangio +1955 Juan-Manuel Fangio +1956 Juan-Manuel Fangio +1957 Juan-Manuel Fangio +1958 Mike Hawthorn +1959 Jack Brabham +1960 Jack Brabham +1961 Phil Hill +1962 Graham Hill +1963 Jim Clark +1964 John Surtees +1965 Jim Clark +1966 Jack Brabham +1967 Denny Hulme +1968 Graham Hill +1969 Jackie Stewart +1970 Jochen Rindt +1971 Jackie Stewart +1972 Emerson Fittipaldi +1973 Jackie Stewart +1974 Emerson Fittipaldi +1975 Niki Lauda +1976 James Hunt +1977 Niki Lauda +1978 Mario Andretti +1979 Jody Scheckter +1980 Alan Jones +1981 Nelson Piquet +1982 Keke Rosberg +1983 Nelson Piquet +1984 Niki Lauda +1985 Alain Prost +1986 Alain Prost +1987 Nelson Piquet +1988 Ayrton Senna +1989 Alain Prost +1990 Ayrton Senna +1991 Ayrton Senna +1992 Nigel Mansell +1993 Alain Prost +1994 Michael Schumacher +1995 Michael Schumacher +1996 Damon Hill +1997 Jacques Villeneuve +1998 Mika Häkkinen +1999 Mika Häkkinen +2000 Michael Schumacher +2001 Michael Schumacher +2002 Michael Schumacher +2003 Michael Schumacher +2004 Michael Schumacher +2005 Fernando Alonso +2006 Fernando Alonso +2007 Kimi Räikkönen +2008 Lewis Hamilton +2009 Jenson Button +2010 Sebastian Vettel +2011 Sebastian Vettel +2012 Sebastian Vettel +2013 Sebastian Vettel +2014 Lewis Hamilton