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
1. Pierwszy program Wyświetlanie liczb za pomocą printf()	printf.c	04.03.2013
2. Wyliczanka Wyświetlanie sekwencji liczb	wyliczanka.c	18.03.2013
3. ASCII Program wyświetlający kod ASCII	ascii.c	18.03.2013
3. Funkcje Silnia, potęga, liczby pierwsze.	silnia.c potega.c pierwsze.c	21.03.2013
4. Tablice Operacje na tablicach (średnia, sortowanie, ...).	tablice.c	03.04.2013
5. Pliki nagłówkowe Przykład na tablicach. Wczytywanie wartości, sortowanie, suma i średnia wartość liczb z tablicy.	tab.c tab.h program.c	tablice1.zip	13.04.2013
6. Wskaźniki Funkcja odwracająca kolejność.	tab.c tab.h program.c	tablice2.zip	22.04.2013
7. Wskaźniki c.d. Funkcja wyznaczająca miejsca zerowe paraboli.	pierwiastki.c	12.05.2013
8. Łańcuchy znakowe Funkcja wczytująca linię tekstu.	str.c str.h program.c	str1.zip	12.05.2013
9. Łańcuchy znakowe c.d. Funkcja: sklej, malenaduze, porownaj.	str.c str.h program.c	str2.zip	17.05.2013
10. Dynamiczny przydział pamieci Macierze	macierz.c macierz.h program.c	macierz1.zip	26.05.2013
11. Operacje na plikach Odczyt macierzy z pliku.	macierz.c macierz.h program1.c	macierz2.zip	28.05.2013
12. Operacje na plikach c.d. Zapis macierzy.	macierz.c macierz.h program2.c	macierz3.zip	28.05.2013

Pliki źródłowe i nagłówkowe do wykorzystania na kolokwium

Wszystkie pliki: kolokwium.zip

Paczka zawiera:

Funkcje matematyczne
fmat.h fmat.c

Tablice liczb rzeczywistych
tab.h tab.c

Łańcuchy znakowe (stringi)
str.h str.c

Macierze liczb rzeczywistych
macierz.h macierz.c

Pliki danych wejściowych
liczby.txt liczby-pl.txt 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