====== 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_2013_1:src:printf.c}} | | //04.03.2013// |
| [[.:zajecia2|2. Wyliczanka]] \\ Wyświetlanie sekwencji liczb | {{zajecia:jpr_2013_1:src:wyliczanka.c}} | | //18.03.2013// |
| [[.:zajecia2|3. ASCII]] \\ Program wyświetlający kod ASCII | {{zajecia:jpr_2013_1:src:ascii.c}} | | //18.03.2013// |
| [[zajecia:jpr_2013_1:zajecia3|3. Funkcje]] \\ Silnia, potęga, liczby pierwsze. | {{..:jpr_2013_1:src:silnia.c}} \\ {{..:jpr_2013_1:src:potega.c}} \\ {{..:jpr_2013_1:src:pierwsze.c}} | | //21.03.2013// |
| [[zajecia:jpr_2013_1:zajecia4|4. Tablice]] \\ Operacje na tablicach (średnia, sortowanie, ...). | {{..:jpr_2013_1:src:tablice.c}} | | //03.04.2013// |
| [[zajecia:jpr:zajecia5|5. Pliki nagłówkowe]]\\ Przykład na tablicach. \\ Wczytywanie wartości, sortowanie, suma i średnia wartość liczb z tablicy. | {{..:jpr_2013_1:src:tab1:tab.c}} \\ {{..:jpr_2013_1:src:tab1:tab.h}} \\ {{..:jpr_2013_1:src:tab1:program.c}} | {{..:jpr_2013_1:src:tab1:tablice1.zip}} | //13.04.2013// |
| [[zajecia:jpr:zajecia6|6. Wskaźniki]]\\ Funkcja odwracająca kolejność. | {{..:jpr_2013_1:src:tab2:tab.c}} \\ {{..:jpr_2013_1:src:tab2:tab.h}} \\ {{..:jpr_2013_1:src:tab2:program.c}} | {{..:jpr_2013_1:src:tab2:tablice2.zip}} | //22.04.2013// |
| [[zajecia:jpr:zajecia6|7. Wskaźniki c.d.]]\\ Funkcja wyznaczająca miejsca zerowe paraboli. | {{..:jpr_2013_1:src:pierwiastki.c}} | | //12.05.2013// |
| [[zajecia:jpr:zajecia7|8. Łańcuchy znakowe]]\\ Funkcja wczytująca linię tekstu. | {{..:jpr_2013_1:src:str1:str.c}} \\ {{..:jpr_2013_1:src:str1:str.h}} \\ {{..:jpr_2013_1:src:str1:program.c}} | {{..:jpr_2013_1:src:str1:str1.zip}} | //12.05.2013// |
| [[zajecia:jpr:zajecia7|9. Łańcuchy znakowe c.d.]]\\ Funkcja: sklej, malenaduze, porownaj. | {{..:jpr_2013_1:src:str2:str.c}} \\ {{..:jpr_2013_1:src:str2:str.h}} \\ {{..:jpr_2013_1:src:str2:program.c}} | {{..:jpr_2013_1:src:str2:str2.zip}} | //17.05.2013// |
| [[zajecia:jpr:zajecia8|10. Dynamiczny przydział pamieci]]\\ Macierze | {{..:jpr_2013_1:src:macierz1:macierz.c}} \\ {{..:jpr_2013_1:src:macierz1:macierz.h}} \\ {{..:jpr_2013_1:src:macierz1:program.c}} | {{..:jpr_2013_1:src:macierz1:macierz1.zip}} | //26.05.2013// |
| [[zajecia:jpr:zajecia10|11. Operacje na plikach]] \\ Odczyt macierzy z pliku. | {{..:jpr_2013_1:src:macierz2:macierz.c}} \\ {{..:jpr_2013_1:src:macierz2:macierz.h}} \\ {{..:jpr_2013_1:src:macierz2:program1.c}} | {{..:jpr_2013_1:src:macierz2:macierz2.zip}} | //28.05.2013// |
| [[zajecia:jpr:zajecia10|12. Operacje na plikach c.d.]] \\ Zapis macierzy. | {{..:jpr_2013_1:src:macierz2:macierz.c}} \\ {{..:jpr_2013_1:src:macierz2:macierz.h}} \\ {{..:jpr_2013_1:src:macierz2:program2.c}} | {{..:jpr_2013_1:src:macierz2:macierz3.zip}} | //28.05.2013// |
===== Pliki źródłowe i nagłówkowe do wykorzystania na kolokwium =====
Wszystkie pliki: {{..:jpr_2013_1:src:kolokwium.zip}}
Paczka zawiera:
* Funkcje matematyczne \\ {{..:jpr_2013_1:src:kolokwium:fmat.h}} {{..:jpr_2013_1:src:kolokwium:fmat.c}}
* Tablice liczb rzeczywistych \\ {{..:jpr_2013_1:src:kolokwium:tab.h}} {{..:jpr_2013_1:src:kolokwium:tab.c}}
* Łańcuchy znakowe (stringi) \\ {{..:jpr_2013_1:src:kolokwium:str.h}} {{..:jpr_2013_1:src:kolokwium:str.c}}
* Macierze liczb rzeczywistych \\ {{..:jpr_2013_1:src:kolokwium:macierz.h}} {{..:jpr_2013_1:src:kolokwium:macierz.c}}
* Pliki danych wejściowych \\ {{..:jpr_2013_1:src:kolokwium:liczby.txt}} {{..:jpr_2013_1:src:kolokwium:liczby-pl.txt}} {{..:jpr_2013_1:src:kolokwium:tekst.txt}}
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 |
| ''double silnia(int n)'' | Oblicza wartość silni ''n!'' |
| ''float potega(float x,int y)'' | Oblicza wartość xy |
| ''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[]''. |
| ''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 *t1,char *t2)'' | Kopiuje zawartość napisu ''t2'' do tablicy ''t1'' |
| ''char *malenaduze(char *t)'' | Zamienia w napisie litery duże na małe |
| ''char *sklej(char *t1,char *t2)'' | Łączy napisy. Dokleja ''t2'' na końcu napisu ''t1'' |
| ''int porownaj(char *t1,char *t2)'' | Porównuje dwa napisy ''t1'' i ''t2'' |
==== 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)'' | Wczytuje wartości elementów macierzy |
| ''void wyswietl_macierz(float %%**%%m, int w, int k)'' | Wyświetla macierz na ekranie |
| ''void zapisz_do_pliku(FILE *plik,float %%**%%m, int w, int k)'' | Zapisuje macierz do pliku tekstoego |
| ''float%%**%% wczytaj_z_pliku(FILE *plik, float %%**%%m, 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 pierwiastki.c -o pierwiastki