====== Pliki nagłówkowe i źródłowe z zajęć JPR ====== 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. ===== Pliki z zajęć do pobrania ===== ^ Opis ^ Pliki ^ Paczka ^ Data dodania ^ | [[.:zajecia1|1. Pierwszy program]] \\ Wyświetlanie liczb za pomocą ''printf()'' | {{zajecia:jpr_2012_1:src:printf.c}} | | //03.03.2012// | | [[zajecia:jpr:zajecia2|2. Pętle, warunki]] | {{zajecia:jpr_2012_1:src:warunek.c}} \\ {{zajecia:jpr_2012_1:src:petla.c}} | | //03.03.2012// | | [[zajecia:jpr:zajecia2b_zmienne|2. Typy zmiennych]] | {{zajecia:jpr_2012_1:src:typy.c}} | | //07.03.2012// | | [[zajecia:jpr:zajecia3|3. Funkcje]] \\ Silnia, potęga, liczby pierwsze i pierwiastki. | {{..:jpr_2012_1:src:silnia.c}} \\ {{..:jpr_2012_1:src:potega.c}} \\ {{..:jpr_2012_1:src:pierwsze.c}} \\ {{..:jpr_2012_1:src:pierwiastki.c}}| | //19.03.2012// | | [[zajecia:jpr:zajecia4|4. Tablice]] \\ Wczytywanie wartości, sortowanie, suma i średnia wartość liczb z tablicy. | {{..:jpr_2012_1:src:tablice.c}} | | //19.03.2012// | | [[zajecia:jpr:zajecia5|5. Pliki nagłówkowe]]\\ Przykład na tablicach. \\ Wczytywanie wartości, sortowanie, suma i średnia wartość liczb z tablicy. | {{..:jpr_2012_1:src:tab1:tablice.c}} \\ {{..:jpr_2012_1:src:tab1:tablice.h}} \\ {{..:jpr_2012_1:src:tab1:program.c}} | {{..:jpr_2012_1:src:tab1:tablice.zip}} | //29.03.2012// | | [[zajecia:jpr:zajecia6|6. Wskaźniki]] \\ Odwracanie elementów tablicy. | {{..:jpr_2012_1:src:tab2:tab.c}} \\ {{..:jpr_2012_1:src:tab2:tab.h}} \\ {{..:jpr_2012_1:src:tab2:program2.c}} | {{..:jpr_2012_1:src:tab2:tablice2.zip}} | //12.04.2012// | | [[zajecia:jpr:zajecia6|6a. Wskaźniki]] \\ Funkcja ''zamien()''. \\ Funkcja wyznaczajaca pierwiastki rownania kwadratowego. | {{..:jpr_2012_1:src:tab3:tab.c}} \\ {{..:jpr_2012_1:src:tab3:tab.h}} \\ {{..:jpr_2012_1:src:tab3:program.c}} \\ {{..:jpr_2012_1:src:pierwiastki2.c}} | {{..:jpr_2012_1:src:tab3:tablice3.zip}} | //17.04.2012// | | [[zajecia:jpr:zajecia7|7. Łańcuchy znaków]] \\ Wczytywanie linii tekstu. | {{..:jpr_2012_1:src:str1:str.h}} \\ {{..:jpr_2012_1:src:str1:str.c}} \\ {{..:jpr_2012_1:src:str1:program.c}} | {{..:jpr_2012_1:src:str1:str1.zip}} | //26.04.2012// | | [[zajecia:jpr:zajecia7|7a. Łańcuchy znaków c.d.]] \\ Funkcje: dlugosc, kopia, sklej. | {{..:jpr_2012_1:src:str2:str.h}} \\ {{..:jpr_2012_1:src:str2:str.c}} \\ {{..:jpr_2012_1:src:str2:program.c}} | {{..:jpr_2012_1:src:str2:str2.zip}} | //12.05.2011// | | [[zajecia:jpr:zajecia7|7a. Łańcuchy znaków c.d.]] \\ Funkcje: malenaduze, porownaj. \\ Program obsługujący argumenty wejściowe:\\ tabliczka mnożenia. | {{..:jpr_2012_1:src:str3:str.h}} \\ {{..:jpr_2012_1:src:str3:str.c}} \\ {{..:jpr_2012_1:src:str3:program.c}} \\ {{..:jpr_2012_1:src:str3:tabliczka.c}} | {{..:jpr_2012_1:src:str3:str3.zip}} \\ {{..:jpr_2012_1:src:str3:tabliczka.zip}} | //21.05.2011// | | [[zajecia8|8. Dynamiczny przydział pamięci + struktury]] \\ Macierze (tworzenie, wczytywanie i wyświetlanie) | {{..:jpr_2012_1:src:macierz1:macierz.h}} \\ {{..:jpr_2012_1:src:macierz1:macierz.c}} \\ {{..:jpr_2012_1:src:macierz1:program.c}} | {{..:jpr_2012_1:src:macierz1:macierz1.zip}} | //25.05.2012// | | [[zajecia9|9. Operacje na plikach (odczyt/zapis)]] \\ Macierze (wczytywanie z pliku, zapis do pliku tekstowego) | {{..:jpr_2012_1:src:macierz2:macierz.h}} \\ {{..:jpr_2012_1:src:macierz2:macierz.c}} \\ {{..:jpr_2012_1:src:macierz2:program.c}} | {{..:jpr_2012_1:src:macierz2:macierz2.zip}} | //1.06.2012// | ===== Pliki źródłowe i nagłówkowe do wykorzystania na kolokwium ===== Wszystkie pliki: {{..:jpr_2012_1:src:kolokwium.zip}} Paczka zawiera: * Funkcje matematyczne \\ {{..:jpr_2012_1:src:kolokwium:fmat.h}} {{..:jpr_2012_1:src:kolokwium:fmat.c}} * Tablice liczb rzeczywistych \\ {{..:jpr_2012_1:src:kolokwium:tab.h}} {{..:jpr_2012_1:src:kolokwium:tab.c}} * Łańcuchy znakowe (stringi) \\ {{..:jpr_2012_1:src:kolokwium:str.h}} {{..:jpr_2012_1:src:kolokwium:str.c}} * Macierze liczb rzeczywistych \\ {{..:jpr_2012_1:src:kolokwium:macierz.h}} {{..:jpr_2012_1:src:kolokwium:macierz.c}} Dokładniejszy opis działania poszczególnych funkcji można znaleźć w komentarzach poprzedzających każdą funkcję w plikach źródłowych. ==== Funkcje matematyczne ==== ^ Deklaracje funkcji ^ Krótki opis ^ | ''int pierwiastki (float a, float b, float c, float *x1, float *x2)'' | Wyznacza pierwiastki równania kwadratowego ax2+bx+c=0 | | ''int silnia(int n)'' \\ ''int rsilnia(int n)'' | Oblicza wartość silni ''n!''. \\ Wersja iteracyjna i rekurencyjna | | ''float potega(float p,int w)'' \\ ''float rpotega(float p, int w)''| Oblicza wartość pw (''p'' podniesione do potęgi ''w'').\\ Wersja iteracyjna i rekurencyjna. | | ''int czy_pierwsza(int liczba)'' | Sprawdza czy podana liczba jest liczbą pierwszą. | ==== Tablice liczb rzeczywistych ==== ^ Deklaracje ^ Działanie ^ | ''void wczytaj(float *t,int n)'' | Wczytuje z klawiatury ''n'' liczb rzeczywistych do tablicy ''t[]''. | | ''void wyswietl(float *t,int n)'' | Wyświetla ''n'' pierwszych elementów tablicy ''t[]''. | | ''float srednia(float t[],int n)'' | Oblicza wartość średnią liczb zawartych w tablicy ''t[]''. | | ''int maksind(float *t,int n)'' | Szuka elementu tablicy zawierającego maksymalną wartość. | | ''float* sortuj(float *t,int n)'' | Sortuje elementy tablicy ''t[]''. | | ''float suma(float t[], int n)'' | Oblicza sumę liczb z tablicy ''t[]''. | | ''float maksimum(float t[],int n)'' | Zwraca maksymalną wartość z tablicy ''t[]''. | | ''float *odwroc(float *t,int n)'' | Odwraca elementy tablicy. | ==== Operacje na łańcuchach znakowych (tzw. stringach) ==== ^ Deklaracje funkcji ^ Działanie ^ | ''char *czytajlinie(char *t,int n)'' | Wczytuje jedną linię tekstu (nie dłuższą niż ''n'' znaków) do tablicy ''t'' | | ''int dlugosc(char *t)'' | Wyznacza długość (ilość znaków) łańcucha znakowego ''t'' | | ''char *kopia(char *co,char *gdzie)'' | Kopiuje zawartość napisu ''co'' do tablicy ''gdzie'' | | ''char *malenaduze(char *text)'' | Zamienia w napisie litery duże na małe | | ''char *sklej(char *co,char *gdzie)'' | Łączy napisy. Dokleja ''co'' na końcu napisu ''gdzie'' | | ''int porownaj(char *s1,char *s2)'' | Porównuje dwa napisy ''s1'' i ''s2'' | ==== Operacje na macierzach liczb rzeczywistych ==== ^ deklaracje ^ opis ^ | ''struct macierz utworz_macierz(int w, int k)'' | Tworzy dynamicznie macierz o liczbie wierszy ''w'' i liczbie kolumn ''k'' | | ''void zwolnij_macierz(struct macierz m)'' | Zwalnia pamięć zajętą przez macierz | | ''void wczytaj_macierz(struct macierz m)'' | Wczytywanie elementów macierzy z klawiatury | | ''void wyswietl_macierz(struct macierz m)'' | Wyświetlanie macierzy na ekranie | | ''void zapisz_do_pliku(FILE *plik,struct macierz m)'' | Zapisuje macierz ''m'' do strumienia ''plik'' (pliku tekstowego otworzonego do zapisu) | | ''struct macierz wczytaj_z_pliku(FILE *plik)'' | Wczytuje macierz ze strumienia ''plik'' | /* ====== 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 */