Ovako potrebana mi je pomoc oko zadatka, zadatka treba izraditi pomoću klasa te izraćunati zajedničku mjeru brojeva...
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Nisi napisao koji je programski jezik u pitanju.
Jel znaš što je "zajednička mjera brojeva"?
Što je zadatak?
ispricavam se sto nisam napisao sto je u zadatku navedeno...
ovako radi se o c++, a zadatak je, pomoću klasa riješi problem izračunavanja najveće zajedničke mjere brojeva, znaci na početku korisnika upitati koliko brojeva zeli unjeti u "program" zatim unjeti tolko brojeva i za sve navedene brojeve izracunati najvecu zajedničku mjeru, te je na kraju ispisati i pitati korisnika da li želi jos jednom izvrsiti program.
nikad nisam radio s klasama pa uopce neznam kako bi to rijesio.
Je li igdje opisano za što se klasa točno koristi? Ovako odokativno mi to izgleda kao da uneseš niz brojeva, staviš ih u neki std::vector i izračunaš pomoću algoritma.
Jesi siguran da nešto ne fali tom tekstu?
tako da molim malo objasnjenje (primjer) kako to rijesiti...
Podijeli zadatak u niz koraka:
1. unesi broj N
2. unesi N brojeva u std::vector (kojih? cijelih? decimalnih?)
3. izračunaj najveću zajedničku mjeru od prva dva, pa zatim od toga i trećeg, pa toga i četvrtog, etc.
4. ispiši konačni rezultat
5. pitaj korisnika želi li ponovo
6. ako ne, izađi
Možeš ponavljanje napraviti ovako:
while (true)
{
// kod
cout << "Zelis li dalje? (d/n): ";
char odg;
cin >> odg;
if (odg == 'n') break;
}
On misli na najveći zajednički djeljitelj?
Evo pogledaj ovaj algoritam koji sam napisao u C#, a koji računa GCD preko Euklid-a, prilagodi ga za C++
Kao što vidiš, u klasi sam napisao dva metoda, odnosno funkcijska člana, od kojih jedan metod poziva drugi.
Povratna vrijednost metoda je vrijednost najvećeg zajedničkog djeljitelja za uneseni niz.
Napravi takav konstruktor klase da kao element prima vektor<int>, napiši ovakvu klasu , stavi jedan getter koji će pokupiti vrijednost GCD-a za instancirani objekt,
i to je to.
public long GCD(long[] nizBrojeva) // argument je niz (ti uzmi vektor)
{
if (nizBrojeva.Length > 1)
{
long rezultat = nizBrojeva[0];
for (int index = 1; index < nizBrojeva.Length; index++)
{
rezultat = GCD(rezultat, nizBrojeva[index]);
}
return rezultat;
}
else
{
return nizBrojeva[0];
}
}
private long GCD(long a, long b)
{
return b == 0 ? a : GDC(b, a % b);
}