| Start | Zajęcia 1 | Zajęcia 2 | Zajęcia 3 | Zajęcia 4 | Zajęcia 5 | Zajęcia 6 | Zajęcia 7 | Zajęcia 8 | Zajęcia 9 | Zajęcia 10 | Pliki z zajęć |
|---|
Pliki nagłówkowe i źródłowe z zajęć JPR 2007/2008 semestr letni
Poniżej znajduje się lista plików nagłówkowych i źródłowych wraz z krótkim opisem zawartych w nich funkcji i zadeklarowanych typów, stałych, struktur, itp.
Dokładniejszy opis działania poszczególnych funkcji można znaleźć w komentarzach poprzedzających każdą funkcję w plikach źródłowych.
Tutaj znajduje się paczka zip zawierająca wszystkie opisane pliki.
Pliki te można też skopiować z katalogu /home/grochu/jpr po zalogowaniu się na serwerze kont studenckich ferm wydając polecenie:
cp -r /home/grochu/jpr/ jakas_nazwa_katalogu
Funkcje matematyczne
| deklaracje | krótki opis |
|---|---|
float potega(float p, int w) float rpotega(float p, int w) | oblicza wartość liczby p podniesionej do potęgi w,wersja iteracyjna i rekurencyjna |
long silnia(int i) long rsilnia(int i); | obliczanie silni wersja iteracyjna i rekurencyjna |
int czy_pierwsza(int liczba) | sprawdza czy dana liczba jest liczbą pierwszą |
Tablice liczb rzeczywistych
| deklaracje | działanie |
|---|---|
float *wczytaj(float *t,int n)void wyswietl(float *tab,int n) | wczytuje (wyświetla) n elementów tablicy t[] |
float *odwroc(float *t,int n) | odwraca kolejność elementów w tablicy |
float srednia(float t[],int n) | oblicza wartość średnią n liczb zawartych w tablicy tab |
int maxind(float *tab,int n) | szuka elementu tablicy zawierającego maksymalną wartość |
float* sortuj(float *t,int n) | sortuje elementy tablicy przez wybór elementu maksymalnego |
Operacje na łańcuchach znakowych (tzw. stringach)
| deklaracje | działanie |
|---|---|
char *czytajlinie(char *linia,int max) | wczytuje linię tekstu do tablicy o rozmiarze max |
int dlugosc(char *napis) | wyznacza długość napisu |
char *kopia(char *s1,char *s2) | kopiuje zawartość napisu s2 do tablicy s1 |
char *sklej(char *s1,char *s2) | łączy dwa łańcuchy znakowe |
int znajdz(char *tekst,char *wzor) | sprawdza czy ciąg wzor jest podciągiem łańcucha tekst |
char *malenaduze(char *napis) | zamienia wszystkie małe litery z tablicy napis na duże |
Operacje na macierzach liczb rzeczywistych
| deklaracje | opis |
|---|---|
float ∗∗utworz_macierz(int w,int k) | tworzy dynamicznie macierz o zadanych wymiarach |
void zwolnij_macierz(float ∗∗m,int w) | zwalnia pamięć zajętą przez macierz |
void wczytaj_macierz(float ∗∗m,int w,int k) void wyswietl_macierz(float ∗∗m,int w,int k) | wczytywanie elementów macierzy z klawiatury i wyświetlanie macierzy na ekranie |
float∗∗ dodaj_macierze(float ∗∗m1,float ∗∗m2,int w,int k) | dodaje dwie macierze |
void zapisz_macierz(FILE *p, float ∗∗m, int w, int k) | zapisuje macierz m w pliku p otworzonym do zapisu w trybie tekstowym |
float ∗∗odczytaj_macierz(FILE *p, int *w, int *k) | wczytuje macierz z pliku tekstowego |
Liczby zespolone
zespolone.c
**zespolone.h **
| struktura | pola |
|---|---|
struct zespolone Z | float re - część rzeczywista float im - część urojona |
| deklaracje | opis |
void wczytaj_zesp(Z *z) void wyswietl_zesp(Z z) | wczytywanie i wyświetlanie liczby zespolonej |
Z dodaj_zesp(Z z1,Z z2) | dodawanie liczb zespolonych |
float modul(Z z) | oblicza modół danej liczby zespolonej |
float argument(Z z) | oblicza argument liczby zespolonej |
Przykładowe programy
| Program | Opis | Program zawiera pliki |
|---|---|---|
| potega | oblicza potęgę liczby rzeczywistej | funkcje.c funkcje.h potega.c |
| silnia | oblicza silnię | funkcje.c funkcje.h silnia.c |
| pierwsze | wypisuje liczby pierwsze | funkcje.c funkcje.h lpierwsze.c |
| srednia | oblicza srednią wartość z N podanych liczb | funkcje.c funkcje.h srednia.c |
| odwroc | wyswietla tablicę liczb w odwrotnej kolejności | funkcje.c funkcje.h odwroc.c |
| sortuj | sortuje N podanych liczb | funkcje.c funkcje.h sortuj.c |
| malenaduze | zamienia małe litery na duże | fstr.c fstr.h malenaduze.c |
| sklej | łączy podane linie tekstu w jeden napis | fstr.c fstr.h sklej.c |
| grep | szuka wzorca w podanym tekście | fstr.c fstr.h grep.c |
| zesp | oblicza moduł i argument podanej liczby zespolonej | zespolone.c zespolone.h zesp.c |
| macierz1 | wczytuje i wyświetla macierz o podanych wymiarach | macierz.c macierz.h mac1.c |
| macierz2 | dodaje dwie macierze i zapisuje wynik do pliku | macierz.c macierz.h mac2.c |
| macierz3 | wczytuje macierze z pliku i wyświetla ja na ekranie | macierz.c macierz.h mac3.c str.c str.h |
Kompilacja i uruchomienie programu (Linux)
W systemie Linux kompilację programu w języku C przeprowadzamy wydając w konsoli polecenie cc i podając jako argumenty listę plików źródłowych niezbędnych do utworzenia pliku wykonywalnego.
Na przykład aby skompilować program potega wydajemy polecenie:
cc potega.c funckje.c -o potega
Program uruchamiamy podając jego nazwę, np:
./potega
Jeżeli program wykorzystuje funkcje z biblioteki matematycznej math.h wówczas podczas kompilacji należy dodać opcję -lm, t tak, w przypadku programu zesp należy wykonać polecenie:
cc -lm zesp.c zespolone.c -o zesp