^ [[zajecia:rpism:rpism|Start]] ^ [[zajecia:jpr2008_2:zajęcia1|Zajęcia 1]] ^ [[zajecia:jpr2008_2:zajęcia2|Zajęcia 2]] ^ [[zajecia:jpr2008_2:zajęcia3|Zajęcia 3]] ^ [[zajecia:jpr2008_2:zajęcia4|Zajęcia 4]] ^ [[zajecia:jpr2008_2:zajęcia5|Zajęcia 5]] ^ [[zajecia:jpr2008_2:zajęcia6|Zajęcia 6]] ^ [[zajecia:jpr2008_2:zajęcia7|Zajęcia 7]] ^ [[zajecia:jpr2008_2:zajęcia8|Zajęcia 8]] ^ [[zajecia:jpr2008_2:zajęcia9|Zajęcia 9]] ^ [[zajecia:jpr2008_2:zajęcia10|Zajęcia 10]] ^ [[zajecia:jpr2008_2:pliki|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.\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/jpr.zip|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 ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/fmat.c|fmat.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/fmat.h|fmat.h]]**\\ ^ 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 pierwsza(int liczba)'' | sprawdza czy dana ''liczba'' jest liczbą pierwszą | | ''int pierwiastki (float a, float b, float c, float *x1, float *x2)'' | wyznacza pierwiastki rownania kwadratowego ax2+bx+c=0 | ==== Tablice liczb rzeczywistych ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/tab.c|tab.c]]** \\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/tab.h|tab.h]] **\\ ^ deklaracje ^ działanie ^ | ''float *wczytaj(float *t,int n)'' | wczytuje''n'' liczb rzeczywistych do tablicy ''t[]''| | ''void wyswietl(float *t,int n)'' | wyświetla ''n'' pierwszych 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ą z liczb zawartych w tablicy ''tab'' | | ''float odleglosc(float a[], float b[],int n)'' | oblicza odległość euklidesową dwóch wektorów ''a'' i ''b'' | | ''int maxind(float *t,int n)'' | szuka elementu tablicy zawierającego maksymalną wartość | | ''float* sort(float *t,int n)'' | sortuje elementy tablicy za pomocą algorytmu bąbelkowego | | ''float* insertsort(float *t,int n)'' | sortuje elementy tablicy przez wybór elementu maksymalnego| ==== Operacje na łańcuchach znakowych (tzw. stringach) ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/str.c|str.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/str.h|str.h]] **\\ ^ deklaracje ^ działanie ^ | ''char *czytajlinie(char *linia,int max)'' | wczytuje linię tekstu do tablicy o rozmiarze ''max''| | ''int liczznaki(char *napis)'' | wyznacza długość napisu | | ''char *kopia(char *s1,char *s2)'' | kopiuje zawartość napisu ''s2'' do tablicy ''s1'' | | ''char* znajdz(char *tekst,char *wzor)'' | sprawdza czy ciąg ''wzor'' jest podciągiem łańcucha ''tekst''| ==== Operacje na macierzach liczb rzeczywistych ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/macierz.c|macierz.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/macierz.h|macierz.h]]**\\ ^ 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 | | ''float ∗∗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 | | ''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 | ==== Baza danych ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/baza.c|baza.c]]** \\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/src/baza.h|baza.h]] **\\ ^ struktury ^ pola ^ | ''struct daty'' \\ ''DATA'' | ''int dzien'' \\ ''int miesiac'' \\ ''int rok''| | ''struct osoba'' \\ ''DANE'' | ''char nazwisko[100]'' \\ ''char imie[100]'' \\ ''DATA data_urodzenia'' | ^ deklaracje funkcji ^ opis ^ | ''void wczytaj_osobe(DANE * o) '' | wczytuje zawartość pojedyńczej stryktury | | ''void wyswietl_osobe(DANE * o) '' | wyżwietla zawartość stryktury | ====== Przykładowe programy ====== ^ Program ^ Opis ^ Program zawiera pliki ^ ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/potega.zip|potega]] | oblicza potęgę liczby rzeczywistej | ''fmat.c fmat.h potega.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/silnia.zip|silnia]] | oblicza silnię | ''fmat.c fmat.h silnia.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/pierwsze.zip|pierwsze]] | wypisuje liczby pierwsze | ''fmat.c fmat.h pierwsze.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/pierwiastki.zip|pierwiastki]] | oblicza miejsca zerowe równania kwadratowego | ''fmat.c fmat.h pierwiastki.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/srednia.zip|srednia]] | oblicza srednią wartość z N podanych liczb | ''fmat.c fmat.h srednia.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/odwroc.zip|odwroc]] | wyswietla tablicę liczb w odwrotnej kolejności | ''tab.c tab.h odwroc.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/sortuj.zip|sortuj]] | sortuje N podanych liczb | ''tab.c tab.h sortuj.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/odleglosc.zip|odleglosc]] | wyznacza odległość euklidesową dwóch wektorów | ''tab.c tab.h odleglosc.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/linie.zip|linie]] | oblicza ilość znaków w każdej linii tekstu | ''str.c str.h linie.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/grep.zip|grep]] | szuka wzorca w podanym tekście | ''str.c str.h grep.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/macierz1.zip|macierz1]] | wczytuje i wyświetla macierz o podanych wymiarach | ''macierz.c macierz.h mac1.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/macierz2.zip|macierz2]] | zapisuje macierze do pliku tekstowego | ''macierz.c macierz.h mac2.c str.c str.h'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/macierz3.zip|macierz3]] | tworzy macierz wczytaną z pliku tekstowego | ''macierz.c macierz.h mac3.c str.c str.h'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_2/prog/baza.zip|baza]] | demonstracja prostej bazy danych | ''baza.c baza.h str.c str.h bazadanych.c'' | ====== 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'', np: cc -lm odleglosc.c tab.c -o odleglosc