Zajęcia wyrównawcze z Podstaw programowania

Transkrypt

Zajęcia wyrównawcze z Podstaw programowania
Zajęcia wyrównawcze z Podstaw programowania
(8) Powtórzenie i bezpośrednie przygotowanie do egzaminu
Na zajęciach przeprowadzona zostanie symulacja egzaminu z Podstaw programowania przy
wykorzystaniu systemu egzaminacyjnego. Jako zadania egzaminacyjne wykorzystane zostaną
zadania z ubiegłorocznego egzaminu. Instrukcja korzystania z systemu egzaminacyjnego z Podstaw
programowania jest dostępna pod adresem: http://aragorn.pb.bialystok.pl/~ania/instrukcjaPP.pdf
Plik wejściowy zawiera zestawienie zakupów dokonanych w roku 2007 przez pewną firmę. Każda linia pliku odpowiada
pojedynczemu zakupowi i zawiera następujące dane: (i) miesiąc, w którym dokonano zakupów, (ii) nazwa towaru
(nieprzerwany ciąg znaków zawierający maksymalnie 50 znaków), (iii) dział, z którego pochodził towar (nieprzerwany
ciąg zawierający maksymalnie 50 znaków), (iv) cena za sztukę (liczba rzeczywista), (v) liczba zakupionych sztuk.
Wszystkie pola w pliku oddzielone są pojedynczymi spacjami. Zakładamy, że plik zawiera poprawne dane, to znaczy, że
każda linia pliku zawiera 5 pól, w pliku nie ma linii pustych.
Zadania, w których nie jest wymagane korzystanie z dynamicznych struktur danych:
Zakładając, że plik wejściowy in1.txt zawiera co najmniej jedną linię i nie więcej niż 100 linii, napisz program, który
wczyta dane z pliku wejściowego in1.txt, a następnie:
a) (3 pkt) Do pliku a.txt wypisze ile razy firma dokonała zakupów.
b) (4 pkt) Do pliku b.txt wypisze kwotę wydaną na zakupy w roku 2007.
c) (6 pkt) Do pliku c.txt wypisze ile pieniędzy w sumie wydano na zakupy w każdym miesiącu. Pomijamy te miesiące,
w których nie dokonywano zakupów. Każda linia pliku to informacja o zakupach z innego miesiąca, zapisana w
postaci: miesiąc kwota.
d) (5 pkt) Do pliku d.txt wypisze dział, z którego pochodził towar o najdłuższej nazwie. Jeżeli jest kilka towarów z
maksymalną długością nazwy – należy wypisać wszystkie działy, z których one pochodziły, jeżeli z danego działu
kilka razy kupowano towar o maksymalnej nazwie – należy wypisać dział tyle razy, ile razy następował zakup.
in1.txt
a.txt
b.txt
c.txt
d.txt
1 Aparat_Sony_T2 Foto 1025.00 1
3 Programowanie_w_C Książki 87.00 2
5 Fraktale Książki 65.00 1
6 Papier_Kolorowy Biuro 25.00 5
5 PenDrive_4GB_Ar Elektronika 71.00 4
11 Toner_K54 Biuro 275.99 1
6
1948.99
1 1025.00
3 174.00
5 349.00
6 125.00
11 275.99
Książki
Kurs jest finansowany z Programu Operacyjnego Kapitał Ludzki Poddziałanie 4.1.2
Zwiększenie liczby absolwentów kierunków
o kluczowym znaczeniu dla gospodarki opartej na wiedzy.
Zadanie wymagające umieszczenia danych na liście jednokierunkowej:
Zakładając, że plik wejściowy in2.txt posiada dowolną ilość linii, napisz program, który wczyta dane z pliku wejściowego
in2.txt, a następnie:
e) (12 pkt) Do pliku e.txt wypisze nazwy działów (każda w oddzielnej linii) z których pochodziły dokonywane przez
firmę zakupy. Każda nazwa działu powinna pojawić się w pliku jeden raz.
in2.txt
e.txt
2 Algorytmy_genetyczne Książki 67.50 2
8 Papier_Kolorowy Biuro 25.00 10
11 Aparat_Konica_B23 Foto 3599.00 1
4 Ćwiczenia_z_C Książki 43.99 1
Książki
Biuro
Foto
Uwagi:
1. Wszystkie kwoty podajemy z dokładnością do 2 miejsc po przecinku.
2. Jako długość linii rozumiemy liczbę znaków nie licząc znaków końca wiersza. Maksymalną długością linii jest 126
znaków (nie licząc znaku końca linii).
3. Jedynymi dopuszczalnymi metodami komunikacji ze światem zewnętrznym jest odwoływanie do plików o nazwach
wymienionych w zadaniu, umieszczonych w katalogu bieżącym. Próby dostępu do innych plików czy uruchamiania
innych procesów mogą stanowić podstawę niezaliczenia zadania.
4. Niedopuszczalne jest używanie funkcji o nagłówkach zawartych w <dos.h> czy <conio.h>, takich jak clrscr(), gotoxy(),
printf(), scanf(), gets(), getc(), getchar(), getch(), itp. Program może korzystać jedynie z funkcji zdefiniowanych w
standardzie ANSI.
5. Kod źródłowy programu musi zostać zapisany w pliku o nazwie zadanie.c. Plik ten znajduje się w katalogu
nazwisko_imie (gdzie nazwisko i imię to dane studenta, pisane bez użycia polskich znaków oraz białych znaków). W
tymże katalogu powinien dodatkowo znaleźć się plik dane.txt zawierający w pierwszej linii nazwisko i imię
(oddzielone spacją, z użyciem polskich liter), zaś w drugiej numer indeksu.
6. Programy będą sprawdzane przy użyciu kompilatora GCC 3.3. Program na zakończenie powinien zwrócić do
systemu wartość 0 (EXIT_SUCCESS). Inne wartości będą traktowane jako błędne zakończenie programu.
Kurs jest finansowany z Programu Operacyjnego Kapitał Ludzki Poddziałanie 4.1.2
Zwiększenie liczby absolwentów kierunków
o kluczowym znaczeniu dla gospodarki opartej na wiedzy.