Projekt
1:
Pierwszy Projekt.
Napisz
aplikację realizującą obliczenia na wielkich liczbach. Liczby
przechowywane są jako łańcuchy znaków o dowolnej długości.
Należy zaimplementować natępujące funkcje:
- char* dodaj(const char* liczba1, const char* liczba2); -
wyznacza sumę dwóch liczb
- char* odejmij(const char*
liczba1, const char* liczba2); -
wyznacza różnicę dwóch liczb
- char* mnoz(const char* liczba1, const char* liczba2); -
wyznacza iloczyn dwóch liczb
- char* dziel(const char* liczba1, const char* liczba2); -
wyznacza iloraz (całkowity) dwóch liczb
- int porównaj(const char* liczba1, const char* liczba2); -
porównuje dwie liczby i jeżeli są równe wtedy zwraca wartość
1, a w przeciwnym przypadku 0;
- char* konwert(long l1); - konwertuje liczbę l1 (typu long) do łańcucha znaków;
Jedynym i ostatecznym terminem oddania projektów,
jest 9 kwietnia (czyli następne zajęcia). Projekt należy oddać
jako plik źródłowy cpp. Powinien być bogato skomentowany, tzn.
musi zawierać, informację o autorze, informację o przeznaczeniu
programu oraz dokładne opisy każdej implementowanej funkcji (nie
tylko co dana funkcja „robi”, ale również w jaki sposób to robi). Oceniany
będzie styl pisania, zgodnie z zasadą: im łatwiej się go
czyta i im więcej się z niego rozumie tym ocena będzie wyższa.
Projekt powinien być napisany samodzielnie. Jeżeli dwa projekty będą
zbyt podobne do siebie, oba zostaną niezaliczone, bez dochodzenia który z
projektów był wersją źródłową.
Przykładowy program:
int main() {
char *l1 = „12345”;
char *l2 = „54321”;
char *l3 = dodaj(l1, l2); // l3 = „12345” + „54321” = „66666”
char *l4 = odejmij(l2, l1); // l4 = „54321” - „12345” = „41976”
char *l5 = odejmij(l1, l2); // l5 = „12345” - „54321” = „-41976”
char *l6= mnoz(l1, l2); // l6 = „12345” * „54321” = „670592745”
char *l7 = NULL, *l8 = NULL;
if( ! porównaj(l2, „0”) )
l7 = dziel(l1, l2); // l7 = „12345” / „54321” = „0”
else
cout << „Nie dzielę przez 0”
if( ! porównaj(l1, „0”) )
l8 = dziel(l2, l1); // l8 = „54321” / „12345” = „4”
else
cout << „Nie dzielę przez 0”
long liczba = 10203;
char *l9 = dodaj(l1, konwert(liczba) ); // l3 = „12345” + „10203” = „22548”
cout << l1 << endl;
cout << l2 << endl;
cout << l3 << endl;
cout << l4 << endl;
cout << l5 << endl;
cout << l6 << endl;
if( l7 )
cout << l7 << endl;
if( l8 != NULL )
cout << l8 << endl;
cout << l9 << endl;
return 0;
}