====== Zajęcia 1 - Powtórka z C ======
===== Najważniejsze sprawy =====
* typy
* wskaźniki, wskaźniki do funkcji
* dynamiczny przydział pamięci
* struktury
* pliki nagłówkowe i źródłowe
* różnice miedzy C a C++
===== Przykładowe zadania =====
=== Wektor ===
Plik nagłówkowy ''wektor.h''
struct wektor
{
int rozmiar;
double *wartosc;
};
struct wektor *alokuj(struct wektor * w, int n);
void zwolnij(struct wektor *w)
struct wektor *kopiuj(struct wektor *w1, struct wektor *w2);
double dlugosc(struct wektor *w);
double iloczyn(struct wektor *w1, struct wektor *w2);
struct wektor *unormuj(struct wektor *w1);
Zdefiniuj odpowiednie funkcje w pliku źródłowym ''wektor.c'' i napisz program demonstrujący ich działanie.
=== Słownik ===
Napisz program generujący słownik w oparciu o drzewo binarne. Dla danego pliku (lub po wczytaniu tekstu ze strumienia wejściowego) program wyświetla posortowaną alfabetycznie listę występujących w tekście wyrazów oraz liczbę wytapiań danego wyrazu w tekście.
Plik nagłówkowy slownik.h:
struct drzewo
{
char *slowo;
int ilosc;
struct drzewo *left, *right;
};
struct drzewo* dodaj(struct drzewo *d,char *slowo);
void wyswietl(struct drzewo *d);
Funkcja **dodaj(struct drzewo *d,char *slowo)** dodaje nowe słowo do słownika (drzewa). Wartością zwracaną jest wskażnik do bierzącego węzła w drzewie.\\
Funkcja **wyswietl(struct drzewo *d);** wypisuje zawartość słownika, czyli posortowaną listę słów wraz z liczbą wystąpień danego słowa w pliku.
\\
Dopisz definicje funkcji w pliku zródłowym **slownik.c**.
Jakiej ważnej funkcji brakuje w programie? Zaimplementuj ją.
Przydatne funkcje:
* **string.h** : **[[http://pl.wikibooks.org/wiki/C/strcpy|strcpy]]**, **[[http://pl.wikibooks.org/wiki/C/strcmp|strcmp]]**, **[[http://pl.wikibooks.org/wiki/C/strlen|strlen]]**
* **ctype.h** : **[[http://pl.wikibooks.org/wiki/C/isalpha|isalpha]]**, **[[http://pl.wikibooks.org/wiki/C/tolower|tolower]]**
** Różnice miedzy C i C++ **
* Zamień wywołania funkcji ''malloc()'' i ''free()'' na wywolania operatora ''new'' i ''delete''
* Spróbuj użyć strumieni ''[[http://en.wikipedia.org/wiki/Iostream|]]'' do wczytywania i wyświetlania słów z terminala lub pliku
* Spróbuj wykożystać klasę ''[[http://pl.wikibooks.org/wiki/C%2B%2B/String|string]]'' zamiast tabic ''char*'' do zapamiętywania słów słownika
* Utwórz klasę "slownik", korzeń drzewa uczyń polem prywatnym zaś funkcje ''dodaj()'' i ''wyswietl()'' przepisz jako metody publiczne tej klasy