====== Pliki nagłówkowe i źródłowe z zajęć JPR ====== /* 2009/2010 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. ===== Pliki z zajęć do pobrania ===== ^ Opis ^ Pliki ^ Paczka ^ Data dodania ^ | [[zajecia:jpr:zajecia1|1. Pierwszy program]] \\ Hello World! | | | | | [[zajecia:jpr:zajecia2|2. Pętle, warunki]] \\ Wyliczanka. | | | | | [[zajecia:jpr:zajecia3|3. Funkcje]] \\ Silnia i potęga. | | | | | [[zajecia:jpr:zajecia4|4. Tablice]] \\ Wczytywanie wartośći, sortowanie, suma i średnia wartość liczb z tablicy. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/tab1/tablice.c|tablice.c}} | | //14.04.2010// | | [[zajecia:jpr:zajecia5|5. Pliki nagłówkowe]]\\ Przykład na tablicach. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/tab2/tablice.h|tablice.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/tab2/tablice.c|tablice.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/tab2/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/tab2.zip|tab2.zip}} | //14.04.2010// | | [[zajecia:jpr:zajecia6|6. Wskaźniki]] \\ Odwracanie elementów tablicy.\\ Funkcja zamien(). | {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk1/tablice.h|tablice.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk1/tablice.c|tablice.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk1/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk1.zip|wsk1.zip}} | //26.04.2010// | | [[zajecia:jpr:zajecia6|6a. Wskaźniki c.d.]] \\ Pierwiastki.. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk2/math.h|math.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk2/math.c|math.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk2/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/wsk2.zip|wsk2.zip}} | //28.04.2010// | | [[zajecia:jpr:zajecia7|7. Łańcuchy znaków]] \\ Wczytywanie linii tekstu. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/str1/str.h|str.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/str1/str.c|str.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/str1/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/str1.zip|str1.zip}} | //11.05.2010// | | [[zajecia:jpr:zajecia7|7. Łańcuchy znaków c.d.]] \\ Kopiowane, sklejanie i porównywanie łańcuchów znakowych. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/str2/str.h|str.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/str2/str.c|str.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/str2/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/str2.zip|str1.zip}} | //18.05.2010// | | [[zajecia:jpr:zajecia8|8. Dynamiczny przydział pamięci]] \\ Macierze (tworzenie, wczytywanie i wyświetlanie) | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix1/macierz.h|macierz.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix1/macierz.c|macierz.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix1/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix1.zip|matrix1.zip}} | //25.05.2010// | | [[zajecia:jpr:zajecia10|9. Operacje na plikach]]\\ Zapis macierzy do pliku. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix2/macierz.h|macierz.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix2/macierz.c|macierz.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix2/program.c|program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix2.zip|matrix2.zip}} | //31.05.2010// | | [[zajecia:jpr:zajecia10|9a. Operacje na plikach]]\\ Odczyt macierzy z pliku. | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix3/macierz.h|}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix3/macierz.c}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix3/program.c}} | {{http://www.fizyka.umk.pl/~grochu/jpr/src/matrix3.zip}} | //31.05.2010// | \\ Dokładniejszy opis działania poszczególnych funkcji można znaleźć w komentarzach poprzedzających każdą funkcję w plikach źródłowych.\\ ===== Pliki źródłowe i nagłówkowe do wykorzystania na kolokwium ===== | {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium.zip}} || | Paczka zawiera: || | Funkcje matematyczne | {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/math.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/math.c}} | | Tablice liczb rzeczywistych | {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/tablice.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/tablice.c}} | | Łańcuchy znakowe (stringi) | {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/str.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/str.c}} | | Macierze liczb rzeczywistych | {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/macierz.h}} \\ {{http://www.fizyka.umk.pl/~grochu/jpr/src/kolokwium/macierz.c}} | ==== 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. | ==== Tablice liczb rzeczywistych ==== ^ Deklaracje ^ Działanie ^ | ''float *wczytaj(float *t,int )'' | Wczytuje nie więcej niż ''max'' 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* sort(float *t,int n)'' | Sortuje elementy tablicy ''t[]'' za pomocą algorytmu bąbelkowego. | | ''float suma(float t[], int n)'' | Oblicza sumę liczb z tablicy ''t[]''. | ==== Operacje na łańcuchach znakowych (tzw. stringach) ==== ^ Deklaracje funkcji ^ Działanie ^ | ''char *czytaj_linie(char *linia,int max)'' | Wczytuje linię tekstu do tablicy ''linia'' o rozmiarze ''max''. | | ''int licz_znaki(char *t)'' | Wyznacza długość łańcucha znakowego ''t''. | | ''char *kopia(char *co,char *gdzie)'' | Kopiuje zawartość napisu ''co'' do tablicy ''gdzie''. | | ''char *sklej(char *co,char *gdzie)'' | Łączy napisy. Dokleja ''co'' na końcu napisu ''gdzie''. | | ''int porownaj(char *t1,char *t2)'' | Porównuje dwa napisy względem ich porządku w alfabetycznego. | ==== Operacje na macierzach liczb rzeczywistych ==== ^ deklaracje ^ opis ^ | ''float ∗∗utworz_macierz(int w,int k)''| Tworzy dynamicznie macierz o liczbie wierszy ''w'' i liczbie kolumn ''k''. | | ''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 **wczytaj_macierz_z_pliku(FILE *f,int *w, int *k)''| Wczytuje macierz z pliku tekstowego. | /* ====== 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 */