^ [[zajecia:rpism:rpism|Start]] ^ [[zajecia:jpr2008_1:zajęcia1|Zajęcia 1]] ^ [[zajecia:jpr2008_1:zajęcia2|Zajęcia 2]] ^ [[zajecia:jpr2008_1:zajęcia3|Zajęcia 3]] ^ [[zajecia:jpr2008_1:zajęcia4|Zajęcia 4]] ^ [[zajecia:jpr2008_1:zajęcia5|Zajęcia 5]] ^ [[zajecia:jpr2008_1:zajęcia6|Zajęcia 6]] ^ [[zajecia:jpr2008_1:zajęcia7|Zajęcia 7]] ^ [[zajecia:jpr2008_1:zajęcia8|Zajęcia 8]] ^ [[zajecia:jpr2008_1:zajęcia9|Zajęcia 9]] ^ [[zajecia:jpr2008_1:zajęcia10|Zajęcia 10]] ^ [[zajecia:jpr2008_1: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_1/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_1/src/funkcje.c|funkcje.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/funkcje.h|funkcje.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 czy_pierwsza(int liczba)'' | sprawdza czy dana ''liczba'' jest liczbą pierwszą | ==== Tablice liczb rzeczywistych ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/tab.c|tab.c]]** \\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/tab.h|tab.h]] **\\ ^ 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) ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/str.c|str.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/str.h|str.h]] **\\ ^ 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 ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/macierz.c|macierz.c]]**\\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/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 | | ''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 ==== **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/zespolone.c|zespolone.c]]** \\ **[[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/src/zespolone.h|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 ^ ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/potega.zip|potega]] | oblicza potęgę liczby rzeczywistej | ''funkcje.c funkcje.h potega.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/silnia.zip|silnia]] | oblicza silnię | ''funkcje.c funkcje.h silnia.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/pierwsze.zip|pierwsze]] | wypisuje liczby pierwsze | ''funkcje.c funkcje.h lpierwsze.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/srednia.zip|srednia]] | oblicza srednią wartość z N podanych liczb | ''funkcje.c funkcje.h srednia.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/odwroc.zip|odwroc]] | wyswietla tablicę liczb w odwrotnej kolejności | ''funkcje.c funkcje.h odwroc.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/sortuj.zip|sortuj]] | sortuje N podanych liczb | ''funkcje.c funkcje.h sortuj.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/malenaduze.zip|malenaduze]] | zamienia małe litery na duże | ''fstr.c fstr.h malenaduze.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/sklej.zip|sklej]] | łączy podane linie tekstu w jeden napis | ''fstr.c fstr.h sklej.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/grep.zip|grep]] | szuka wzorca w podanym tekście | ''fstr.c fstr.h grep.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/zesp.zip|zesp]] | oblicza moduł i argument podanej liczby zespolonej | ''zespolone.c zespolone.h zesp.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/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_1/prog/macierz2.zip|macierz2]] | dodaje dwie macierze i zapisuje wynik do pliku | ''macierz.c macierz.h mac2.c'' | ^ [[http://www.fizyka.umk.pl/~grochu/jpr_2008_1/prog/macierz3.zip|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