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.