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).

Podobne dokumenty