Code:
// "velbroj.cpp"
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include "velbroj.hpp"
bignum bignum::operator+(bignum drugi) //definicija
{
//inicijalizuj objekat z i nadji duzine stringova
bignum z;
int i = strlen(broj) - 1, j = strlen(drugi.broj) - 1;
//ako su brojevi numerici uradi sabiranje
if (numerik(broj, i) && numerik(drugi.broj, j)) {
int prenos = 0, br, k = (i > j ? i : j); //u pocetku pamti
prenos = 0 i nadji k = max(i, j) z.broj[k + 1] = '\0'; //postavi velicinu
for (i, j; i >= 0 || j >= 0; i--, j--)
// br=numerik od (br1 + br2) + ono sto se pamti
{
br = (i < 0 ? 0 : broj[i] - 48) + (j <
0 ? 0 : drugi.broj[j] -
48) + prenos;
prenos = br > 9 ? br -= 10, 1 : 0; //ako je rezultat>9 onda pamti 1, a broj smanji za 10
z.broj[k--] = br + 48;
} //kraj for petlje
if (prenos == 1) {
char *temp = "1";
strcat(temp, z.broj);
strcpy(z.broj, temp);
}
} else
cout << "greska pri sabiranju brojeva!" << endl;
/* prenosi kao rezultat objekat z (napomena: ako bi koristili objekt drugi
ili * this, menjala bi se vrednost njihovih argumenta) */
return z;
}
int bignum::numerik(char *num, int duz) //definicja
{
for (int i = duz; i >= 0; i--)
if (num[i] < '0' || num[i] > '9') {
cout << "greska, broj:";
prikaz();
cout << " nije numerik! " << endl;
return 0;
}
return 1;
}
// "velbroj.cpp"
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include "velbroj.hpp"
bignum bignum::operator+(bignum drugi) //definicija
{
//inicijalizuj objekat z i nadji duzine stringova
bignum z;
int i = strlen(broj) - 1, j = strlen(drugi.broj) - 1;
//ako su brojevi numerici uradi sabiranje
if (numerik(broj, i) && numerik(drugi.broj, j)) {
int prenos = 0, br, k = (i > j ? i : j); //u pocetku pamti
prenos = 0 i nadji k = max(i, j) z.broj[k + 1] = '\0'; //postavi velicinu
for (i, j; i >= 0 || j >= 0; i--, j--)
// br=numerik od (br1 + br2) + ono sto se pamti
{
br = (i < 0 ? 0 : broj[i] - 48) + (j <
0 ? 0 : drugi.broj[j] -
48) + prenos;
prenos = br > 9 ? br -= 10, 1 : 0; //ako je rezultat>9 onda pamti 1, a broj smanji za 10
z.broj[k--] = br + 48;
} //kraj for petlje
if (prenos == 1) {
char *temp = "1";
strcat(temp, z.broj);
strcpy(z.broj, temp);
}
} else
cout << "greska pri sabiranju brojeva!" << endl;
/* prenosi kao rezultat objekat z (napomena: ako bi koristili objekt drugi
ili * this, menjala bi se vrednost njihovih argumenta) */
return z;
}
int bignum::numerik(char *num, int duz) //definicja
{
for (int i = duz; i >= 0; i--)
if (num[i] < '0' || num[i] > '9') {
cout << "greska, broj:";
prikaz();
cout << " nije numerik! " << endl;
return 0;
}
return 1;
}
Bilo bi mi od velike pomoci ukoliko neko vec zna ove sablonske skolske zadatke da mi pomogne da napisem isto to samo za oduzimanje!
Trenutno mi je mozak stao, sto ne znaci da vec nece biti bolje!
Unapred se izvinjavam ako postoji pravilo o ne pomoganju oko skolskih zadataka a sa kojim nisam upoznat!