Brøkregning

Tags:    c++

<< < 123 > >>
Opgaven jeg er gået igang med, lyder således:

- create a class called fraction, and the following numbers are to be used in the program: in main() : 3,4,7 og 20

Programmets output har jeg så selv bestemt til følgende:

3/4 // (Det er den første brøk).
7/20 // (Det er den anden brøk).
21/80 // (De to brøker ganget sammen).
88/80 // (De to brøker, hvor der er fundet en fællesnævner).
11/10 // (Tællesnævneren er forkortet mest muligt).

_________________________________

Min kode er indtil videre:
Fold kodeboks ind/udKode 


Mit problem opstår så når outputtet giver 0 når den skal gange de to brøker sammen. Hvorfor gør den det??? Er det fordi jeg også skal have "public" med hvor jeg har en multiply funktion??





26 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Forresten så er jeg ikke helt med på hvad følgende gør, eller hvorfor det skal med i koden:

Fold kodeboks ind/udKode 





En funktion der hedder det samme som class'en med ~ foran (i dit tilfælde ~Dog) er en destructor. Den kaldes når objektet bliver nedlagt.

Du har lavet variablen der husker navnet om til en std::string, fint. Men så skal du ikke bruge disse linier:
name = new std::string[strlen(name) + 1];
strcpy(name, _name);
Du laver blot
name = _name;

Husk at give dyrene navne når du opretter dem:
Dog dog("Fido");
Cat cat("Garfield");

Men jeg synes måske at du roder lidt for meget rundt i helt grundlæggende C++ spørgsmål, måske skulle du læse lidt mere på de første kapitler i bogen...



Ja du har absolut ret, jeg skal også læse mere grundig i detaljer om de mere basale ting i c++. Bliver nemlig let forvirret nogle gange. Men jeg har nu i hvert fald rettet koden, og er nu nået til den del hvor jeg skal lave en for loop i Meow() og Bark() der skriver "woof" eller "meow" de rette antal gange.

Jeg er kommet lidt i tvivl om hvad værdierne skal være i loopen eller rettere sagt de antal gange loopen skal kører. Koden ser indtil videre således ud:

Fold kodeboks ind/udKode 






Hvis du nu sætter katten til kun at sige mjau én gang:
Fold kodeboks ind/udKode 

Så kan du kalde funktioen Meow det antal gange du skal:
Fold kodeboks ind/udKode 




Tusind tak så er det løst.

Fold kodeboks ind/udKode 


Jeg tænkte nu på hvordan jeg kunne få ordene, altså woof og meow til at stå vandret?? Lige nu ser outputtet således ud :
Fold kodeboks ind/udKode 


Jeg tænkte på at bruge"\t" (=tabulation), men synes ikke rigtig det virker.




Du har:
void Meow()
{
cout << "meow"<< endl;
}
Hvis du laver den om til:
void Meow()
{
cout << "meow ";
}

Vil den skrive ordene efter hinanden, og ikke på hver sin linie. Så skal du lave et linieskift i Dog::Do:

void Dog::Do(class Cat& _cat)
{
for(unsigned int n = 0; n < _cat.nameC.size(); n++)
_cat.Meow();
std::cout << std::endl;
};



<< < 123 > >>
t