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;
}