Kurs ANSI C z elementami C++ Lista zadań 9 7.12.2006
Transkrypt
Kurs ANSI C z elementami C++ Lista zadań 9 7.12.2006
Kurs ANSI C z elementami C++ Lista zadań 9 7.12.2006 (15/0) 1. Napisz trzy funkcje, które przetwarzają plik tekstowy o zadanej przez parametr nazwie: (a) pierwszą, która obliczy sumę kontrolną używając następującej funkcji haszującej (wybierz bardzo dużą liczbę pierwszą): unsigned long hash(char *nazwa) { char *p; unsigned long g,h=0; for (p=nazwa; *p != ’\0’; ++p) { h = (h << 4) + *p; if (g=(h & 0xF0000000)) h = h^(g | (g >> 24)); } return h % PIERWSZA + 1; } (b) drugą, która obliczy liczbę liter (a-z + A-Z) i wierszy w tym pliku; (c) trzecią, która wydrukuje na ekranie pięć pierwszych i pięć ostatnich wierszy z tego pliku. Każdą z tych funkcji umieść w oddzielnym pliku, a w czwartym umieść procedurę main, która dla zadanego (przez argument wywołania programu) pliku wydrukuje ile on zawiera liter, ile wierszy, jaka jest jego suma kontrolna oraz trzy początkowe i trzy końcowe wiersze. (15/10) 2. Napisz program, który porównuje zawartość dwóch plików tekstowych poprzez porównywanie kolejnych wierszy. Program jako parametry wywołania powinien przyjmować nazwy obu plików, a na wyjściu wypisywać: numer_wiersza. wynik gdzie wynik to: == - oba wiersze są równe < - pierwszy wiersz jest krótszy > - pierwszy wiersz jest dłuższy !=n – wiersze są różne, n to pozycja pierwszego znaku różnicy EOF1 - koniec pliku pierwszego EOF2 - koniec pliku drugiego przykład: 1. == 2. !=5 3. < 4. EOF2 (20/20) 3. Napisz program rozdający karty do pokera i szacujący układ kart wg starszeństwa układu kart. Następnie oblicz statystyczne procentowe prawdopodobieństwo wystąpienia każdego układu dla zadanej przez użytkownika próbki (ilości losowań). Stwórz struktury, kolor, karta oraz ręka (przechowująca zbiór kart). Dodaj funkcje wartosc, która oszacuję trzymane karty, oraz przenies, która umożliwi przenoszenie kart pomiędzy zbiorami. Do określania kolorów oraz wartości wykorzystaj typ wyliczeniowy (enum).