zadania

Transkrypt

zadania
Algorytm!
!
E - Wyzwanie starcie II.
11-04-2012
Miejsce Akcji: Pasadena CA, USA.
Jako, że dr Cooper miał swoją szansę aby wyzwać nas na algorytmiczny pojedynek, teraz
my mamy szanse zrewanżować się mu za to.
Gdyby to ode mnie zależało, to dałbym tobie możliwość wymyślenia algorytmu dla
dr. Coopera, ale nasz starszy agent dr Jacek Lembas przygotował już algorytm dla was.
Zgodnie z widzimisię dr. Sheldona Coopera, i to zadanie jest zadaniem typu “short code
contest”. Tym razem jest to jednak zadanie statystyczne dla kodów programistycznych.
Wraz z dr. Sheldonem Cooperem ustaliliśmy, że ograniczymy się do kodów w języku C++,
skoro już w tym języku piszemy wszystkie zadania.
Dodatkowo ustaliliśmy sztywną listę słów kluczowych jakich statystykę będziemy liczyć.
Zasady gry: A oto i zasady tej rozgrywki.
Wejściem do programu będzie kod w języku C++. Zadanie polega na zliczeniu wystąpień
słów kluczowych, których listę załączam poniżej. Jeśli słowo nie jest słowem kluczowym lub
znakiem specjalnym, to jest ono identyfikatorem.
Jako, że niezupełnie zrozumiałe jest wybieranie od 10 do 50 słów kluczowych w stosunku
do wypisanych słów kluczowych na początku pliku, przyjmujemy co następuje:
Słowa kluczowe, których szukamy: int, for, while, do, retuen, switch, if, else, class, void, true,
false, delete, new, public, bool.
Wynik powinien zawierać nagłówek wejście (nagłówek zaczyna się od pierwszej linii do
pierwszej pustej linii). A następnie wynik zgodny ze strukturą podaną niżej.
Wejście programu:
Linia 0:
A, C, P, L — imię i nazwisko autora, język progr., liczba programów, długość (ilość linii);
Następnie mogą wystąpić linie ze słowami kluczowymi i pusta linia oddzielająca nagłówek
od właściwych kodów programów.
xi — liczba wystąpień i-tego słowa kluczowego (w porządku alfabetycznym);
yi — liczba wystąpień identyfikatorów z i-tyej grupy (w porządku alfabetycznym);
Struktura wyjścia:
Pierwsza linia nagłówka;
L1 — liczba znalezionych różnych słów kluczowych w programie;
L2 — liczba wszystkich odnalezionych identyfikatorów;
L3\tl3% — L3 to liczba wszystkich odnalezionych słów kluczowych, a l3% to ich
procentowy udział w całym programie
16
∑x
i =1
i
;
L4\tl4% — L4 to liczba wszystkich odnalezionych identyfikatorów, a l4% to ich procentowy
udział w całym programie
16
16
∑ x +∑ y
i =1
i
j=0
j
;
yi-1\tyi-1% — ilość wystąpień identyfikatorów z i-1 grupy (w porządku alfabetycznym);
xi\txi%\tsłowoKluczowe — ilość wystąpień i-tego słowa kluczowego;
yi\tyi% — ilość wystąpień identyfikatorów z i-tej grupy;
* \t - to znak tabulacji poziomej
Powodzenia Agencie.
—1—