Biblioteki
Biblioteki - rola
" Zawierają rozwiązania często
występujących problemów (iostream, string,
conio, ...),
" Zawierają rozwiązania szczegółowych
problemów (math),
" pozwalają lepiej zaplanować tworzenie
kodu programu, co ogranicza ryzyko
popełnienia błędu (przykład)
Biblioteki - przykład bez biblioteki
#include
#include
void wprowadz(int a[10], int &n)
{
cout<<"n="; cin>>n;
for (int i=1; i<=n; i++)
{
cout <<"a["<>a[i];
}
}
//************************************************
void wariancja(int a[10], int &n, float &war)
{
float sr=0;
for (int i=1; i<=n; i++)
sr+=a[i];
sr/=n;
war=0;
for (int i=1; i<=n; i++)
war=war+(a[i]-sr)*(a[i]-sr);
war=sqrt(war/n);
}
//************************************************
main()
{ int n,a[10];
float war;
wprowadz(a,n);
wariancja(a,n,war);
cout <<"wariancja= "<getchar();
}
Biblioteki - własna biblioteka
#include
#include
int a[10], n; float war;
#include "c:\moje-f.h"
main()
{
wprowadz();
wariancja();
cout <<"wariancja= "<getchar();
}
Biblioteki - własna biblioteka
Treść pliku moje-f.h
void wprowadz()
{
cout<<"n="; cin>>n;
for (int i=1; i<=n; i++)
{
cout <<"a["<>a[i];
}
}
//************************************************
void wariancja()
{
float sr=0;
for (int i=1; i<=n; i++)
sr+=a[i];
sr/=n;
war=0;
for (int i=1; i<=n; i++)
war=war+(a[i]-sr)*(a[i]-sr);
war=sqrt(war/n);
}
Biblioteki standardowe
" Znajdują się w katalogu include przy standardowej instalacji,
" Najpopularniejsze to:
iostream.h - operacje wejścia wyjścia,
string.h - definicje funkcji operujących na napisach,
assert.h - zawiera macro assert (asercja),
conio.h - zarządza operacjami we/wy na konsoli MS-DOS,
dirent.h - zarządza katalogami i ścieżkami dostępu w MS-DOS,
dos.h - zawiera struktury danych i funkcje do wspierania MS-DOS dla rodziny
procesorów Intel,
float.h - zarządzanie liczbami rzeczywistymi,
fstream.h - zarządzanie plikami,
time.h - narzędzia do odczytywania, interpretacji i prezentacji czasu
math.h - zawiera definicje popularnych funkcji matematycznych,
limits.h - ograniczenia dla typów danych,
stdio.h - operacje wejścia wyjścia (wersje nieobiektowe).
Biblioteki - wybrane zastosowania
" WE/WY z konsoli (wersje obiektowe)
#include
void main (void)
{ int i; long l; char c; float f; double d; char t[50];
/*int */ cout<<"Podaj int"; cin>>i; cout </*long*/ cout<<"Podaj long"; cin>>l; cout </*char*/ cout<<"Podaj char"; cin>>c; cout </*float*/ cout<<"Podaj float"; cin>>f;cout</*double*/cout<<"Podaj double"; cin>>d;cout</*text*/cout<<"Podaj tekst"; cin>>t;cout<}
Biblioteka assert.h
" Wiele kompilatorów oferuje makro assert(). To makro zwraca
wartość TRUE, jeśli jego parametr ma wartość TRUE i
podejmuje pewną akcję w przypadku, gdy jego parametr ma
wartość FALSE. Wiele kompilatorów przerywa działanie
programu w przypadku, gdy argument tego makra nie jest
spełniony; inne zgłaszają wtedy wyjątek.
#include
#include
int main(int argc, char **argv)
{
int x;
cin>>x;
assert(x);
getch();
return 0;
}
Biblioteka string.h
" Funcja strcat - łączy teksty
" Składnia:
char *strcat(char *dest, const char *src);
" Funcja strcopy - kopiuje tekst do zmiennej,
" Składnia:
char * StrCopy(char * Dest, char * Source);
" Funkcja strchr - podaje znak odpowiadający danemu kodowi,
" składnia:
char *strchr( char *s, int c);
" Funkcja strcmp - porównuje teksty
" Składnia:
int strcmp(const char *s1, const char *s2);
Biblioteka string.h
" Funkcja strlen - podaje ilość znaków w
napisie
" Składnia:
size_t strlen(const char *s);
Przykład dla string.h
" Przykład:
#include
#include
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
return 0;
}
Przykład dla string.h
#include
#include
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
else
printf("buffer 2 is less than buffer 1\n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3\n");
else
printf("buffer 2 is less than buffer 3\n");
return 0;
}
Przykład dla string.h
#include
#include
int main(void)
{
char *string = "Borland International";
printf("%d\n", strlen(string));
return 0;
}
Funkcje z biblioteki math.h
" Ceil - zaokrągla do góry,
" składnia
double ceil(double x);
" cosh - funkcja cosinus hiperboliczny
" Składnia:
double cosh(double x);
" exp - funkcja exponent
" Składnia:
double exp(double x);
" Funkcja fabs- wartość bezwzględna dla liczby double,
" Składnia:
double fabs(double x);
Biblioteka math.h
" Floor - zaokrągla w dół
" Skladnia:
double floor(double x);
" pow - podnosi x do y
" Składnia:
double pow(double x, double y);
" sqrt - pierwiastek kwadratowy z x
" składnia:
double sqrt(double x);
" rand zwraca liczbę losową z <0, RAND_MAX>
" Składnia:
int rand( void );
" srand - inicjalizuje generator
" Składnia:
void srand( unsigned int );
Przykład dla math.h
#include
#include
int main(void)
{
double result;
double x = 4.0;
result = exp(x);
printf("'e' podniesione do potęgi %lf (e ^ %lf) = %lf\n",
x, x, result);
return 0;
}
Przykład dla math.h
#include
#include
int main(void)
{
float number = -1234.0;
printf("number: %f wartosc bezwzględna:
%f\n", number, fabs(number));
return 0;
}
acos (funkcja) oblicza arcus cosinus, czyli odwrotność cosinus
(cos)
acos (funkcja) oblicza area cosinus hiperboliczny, czyli odwrotność
h cosinus hiperboliczny (cosh)
asin (funkcja) oblicza arcus sinus, czyli odwrotność sinus (sin)
asin (funkcja) oblicza area sinus hiperboliczny, czyli odwrotność
h sinusa hiperboliczny (sinh)
atan (funkcja) oblicza arcus tangens, czyli odwrotność tangent
(tan)
atan (funkcja) oblicza area tangens hiperboliczny, czyli odwrotność
h tangent hiperboliczny (tanh)
cbrt (funkcja) oblicza pierwiastek sześcienny
ceil (funkcja) zaokrągla w górę liczbę rzeczywistą
cos (funkcja) oblicza cosinus
cosh (funkcja) oblicza cosinus hiperboliczny
fabs (funkcja) zwraca wartość bezwzględną z liczby
fdim (funkcja) zwraca dodatnią różnicę między argumentami
floor (funkcja) zaokrągla w dół liczbę rzeczywistą
fma (funkcja) porównuje dwie liczby i zwraca większą z nich
x
fmin (funkcja) porównuje dwie liczby i zwraca mniejszą z nich
hyp (funkcja) zwraca pierwiastek z sumy kwadratów
ot argumentów
labs (funkcja) zwraca wartość bezwzględną z liczby
całkowitej typu long
log (funkcja) liczy logarytm naturalny z liczby x
log10 (funkcja) liczy logarytm dziesiętny z liczby x
log2 (funkcja) liczy logarytm o podstawie 2 z liczby x
pow (funkcja) oblicza potęgę
round (funkcja) zaokrągla wartość do najbliższej liczby całkowitej
sin (funkcja) oblicza sinus
sinh (funkcja) oblicza sinus hiperboliczny
sqrt (funkcja) zwraca pierwiastek kwadratowy z liczby n
tan (funkcja) oblicza tangens
tanh (funkcja) oblicza tangens hiperboliczny
Operacje wejścia/wyjścia
Biblioteka stdio
" Ta biblioteka zawiera operacje na plikach, w tym
również na konsoli.
" Typem danej, na którym się tutaj operuje jest
FILE.
" Jest to struktura, która w każdym systemie może
być zdefiniowana inaczej
" Dostęp do struktury (wskaznik) otrzymujemy od
funkcji fopen przy otwieraniu pliku i przekazać go
musimy do fclose chcąc go zamknąć (oczywiście
przez wskaznik).
Operacje wejścia/wyjścia
Biblioteka stdio
" Korzystamy z trzech podstawowych strumieni plikowych,
które są predefiniowane (jako stałe typu FILE*):
stdin - "standardowe wejście"
stdout - "standardowe wyjście"
stderr - "standardowe wyjście diagnostyczne
" Przy uruchamianiu programów na konsoli, stdin to wejście
z klawiatury, a stdout i stderr są kierowane na ekran.
" Przy uruchamianiu programu można dokonać
przekierowania, jeśli wywołujemy program przez
polecenie w linii komend np. w systemie Unix (< dla stdin
i > dla stdout; unixowe powłoki pozwalają też na
przekierowanie stderr).
Funkcje podstawowe
" Najprostszą funkcją wypisującą dane danym
strumieniu jest fputs o następujących
argumentach:
fputs( napis, strumien );
" Dla stdout jest krótsza forma, puts, która wymaga
tylko pierwszego argumentu.
" Można też wysłać tylko jeden znak przy pomocy
funkcji
fputc (napis, strumien);
Funkcje podstawowe
" Pojedyncze znaki wczytuje się funkcją
fgetc (argumentem jest tylko strunień, a znak jest zwracany jako wynik).
" Odpowiednikiem fgetc z argumentem stdin jest getchar() (bez
argumentów).
" Należy jednak pamiętać, że konsola ma zazwyczaj liniowy (czyli
buforowany liniowo), a nie znakowy sposób wczytywania znaków (na
unixie można to zmienić); toteż nawet jeśli oczekuje się wprowadzenia
jednego znaku, to należy po jego wprowadzeniu nacisnąć Enter.
" Wczytywany jest oczywiście znak (a więc dana typu char), natomiast
funkcje te zwracają int.
" Jest to użyteczne, gdyż część typu int nie używana przez char pozostaje w
ten sposób zawsze zerem. Umożliwia to stwierdzenie końca pliku, co jest
sygnalizowane przez zwrócenie jako wyniku specjalnej stałej EOF; nie
odpowiadającej żadnemu znakowi. Oczywiście koniec pliku można też
sprawdzić wywołując funkcję feof() dla danego strumienia.
" Znak po wczytaniu może zostać "cofnięty"; używa się w tym celu funkcji
ungetc( znak, strumien ). Aby nie wprowadzać zamieszania, należy jednak
jako argument podawać ten znak, który ostatnio wprowadzono.
" Można wczytać również całą linię. Służy do tego funkcja `fgets':
fgets( tablica, ile, strumien );
Funkcje podstawowe
" Jednymi z najbardziej przydatnych funkcji obsługujących
"porcje" danych są fread i fwrite. Mają dość podobne
nagłówki:
size_t fread( void* ptr, size_t s, size_t n, FILE* stream );
size_t fwrite( const void* ptr, size_t s, size_t n, FILE* stream );
" Funkcja fread wczytuje ze strumienia `n' elementów
wielkości `s' do tablicy podanej jako `ptr'.
" Funkcja fwrite - zapisuje, wedle tych samych reguł.
Wartością zwracaną jest ilość poprawnie wczytanych lub
zapisanych elementów (nie znaków!), czyli jest <=n. Nie
da się oczywiście odróżnić błędu operacji od końca pliku;
należy to sprawdzić przy pomocy feof() i ferror().
Biblioteki - wybrane zastosowania
W języku C (bez obiektów) wykorzystujemy funkcje printf i scanf do pisania i
czytania na konsoli.
#include
void main (void)
{
int i; long l; char c; float f; double d; char t[50];
/*int */ printf("Podaj int ); scanf( %d ,&i); printf( %d , i);
/*long*/ printf("Podaj long ); scanf( %ld ,&l); printf( %ld , l);
/*char*/ printf("Podaj char ); scanf( %c ,&c); printf( %c , c);
/*float*/ printf("Podaj float ); scanf( %f ,&f); printf( %f , f);
/*float*/ printf("Podaj float ); scanf( %g ,&f); printf( %g , f);
/*double*/ printf("Podaj double ); scanf( %lf ,&d); printf( %lf , d);
/*double*/ printf("Podaj double ); scanf( %lg ,&d); printf( %lg , d);
/*tekst*/ printf("Podaj tekst ); scanf( %s ,t); printf( %s , t);
}
Zadanie 3.1
Napisz program który będzie obliczał potęgę zadanej liczby.
Zadnie 3.2
Napisać program, w który podajemy wartość promienia koła r, a w wyniku
dostajemy wartość pola koła i jego obwód. Proszę zapisać na początku
schemat blokowy tego algorytmu. Pamiętajmy w odpowiednim wymiarze.
Proszę wstawić odpowiednie komentarze
Zadnie 3.3
Napisać program, w który podajemy wartość promienia kuli r, a w wyniku
dostajemy wartość objętość i pole powierzchni kuli o zadanym promieniu.
Proszę zapisać na początku schemat blokowy tego algorytmu. Pamiętajmy
w odpowiednim wymiarze. Proszę wstawić odpowiednie komentarze
Zadanie 3.4
Napisać program, w wyniku którego dwie wczytane z klawiatury liczby
zostaną przeliczone z zastosowanie operatora reszty z dzielenia pierwszej
liczby przez drugą i na odwrót. Komentarz +opis.
Zadanie 3.5
Napisać program, w wyniku którego dwie wczytane z klawiatury liczby
zostaną przetestowane wszystkie operatory relacji dwuargumentowych.
Co zostanie wykonane jak zamiast == zapiszesz = ? Opis + Komentarz
Zadanie 3.6
Napisać program, w wyniku którego dla wczytanej z klawiatury liczby
zostanie wyliczona jej wartość bezwzględna.
Wskazówka - Jedyny operator trójargumentowy w języku C++.
Wyrażenie warunkowe, utworzone przez zastosowanie operatora "?:" ma
postać:
wyrażenie1 ? wyrażenie2 : wyrażenie3
wyrażenie1 ? wyrażenie2 : wyrażenie3
Wyszukiwarka
Podobne podstrony:
Informatyka 13 03 2012
Cennik TelefonĂłw w Ofercie Biznes od 20 03 2012
Cennik TelefonĂłw w Ofercie Firma od 20 03 2012
Informatyka 06 03 2012
Przyklad 03 2012 12 01
Psychologia 20 11 2012
Informatyka 15 05 2012
548 03 2012 NORD 100
07 EDC Revised 1 20 03
Ustawa z dnia 20 03 2009 o bezpieczeństwie imprez masowych
Zaćmienie Słońca 20 03 2015 rok
t informatyk12[01] 03 101
4) 25 03 2012
20 03 10 A
wyt do rozliczania i sprawozdawczosci z 1 03 2012
więcej podobnych podstron