Permalänk
Medlem

Hjälp med C++

Hej. Jag behöver hjälp med att veta hur jag ska följande program: man ska kunna beräkna hur många år det tar för ett visst startkapital att bli 1 miljon. Inmatning ska vara ingångskapital och ränta.

Just nu ser mitt ofärdiga program ut såhär för jag vet inte riktigt hur jag ska göra:

#include <iostream> #include <cstdlib> #include <clocale> #include <cmath> using namespace std; int main() { setlocale(LC_ALL, "swedish"); double x, y, z, r, a, c; cout << "Skriv in hur mycket pengar du vill ska växa: "; cin >> x; cout << "Skriv in hur mycket ränta: "; cin >> r; z = 1000000; c = r / 100; y = x * c; return 0; }

Tack så mycket på förhand

Redigerar in [code]-taggar för synligare kod. Bjuder på indentering, allmänt vitutrymme och färguppmärkning :-)
Permalänk

Ok, Mangelol.

Hur kan man skriva för att hålla på tills ett visst villkor är uppfyllt?

Permalänk
Medlem

while (x < 1000 000){gör något}

EDIT

!= kan skapa en oändlig loop

Visa signatur

R7-3700X, B450M Mortar MAX, 32GB DDR4 @ 3200, RTX 2080, Corsair CX650M Rev2

Permalänk
Medlem
Skrivet av Mangelol:

Hej. Jag behöver hjälp med att veta hur jag ska följande program: man ska kunna beräkna hur många år det tar för ett visst startkapital att bli 1 miljon. Inmatning ska vara ingångskapital och ränta.

Just nu ser mitt ofärdiga program ut såhär för jag vet inte riktigt hur jag ska göra:

#include <iostream> #include <cstdlib> #include <clocale> #include <cmath> using namespace std; int main() { setlocale(LC_ALL, "swedish"); double x, y, z, r, a, c; cout << "Skriv in hur mycket pengar du vill ska växa: "; cin >> x; cout << "Skriv in hur mycket ränta: "; cin >> r; z = 1000000; c = r / 100; y = x * c; return 0; }

Tack så mycket på förhand

Ett tips till att börja med är att döpa variabler till namn som beskriver vad den innehåller. På så sätt blir din kod enklare.

OnT: Användaren matar in startkapital till en variabel.
Användaren matar in ränta till en variabel.
Vill du ha exakt (på dagen) eller vill du ha hur många år det tar?

Du kan göra en do while och säga att multiplicera startkapitalet med räntan så länge värdet inte blir 1milj eller mer. Sen har du en counter som räknar år
Det finns många sätt att lösa det på

Visa signatur

Corsair Air 540 | Asus strix x470-f gaming | AMD Ryzen 7 3700x| 2x8gb 3200mhz RAM | Asus GTX 2070 |2xSSD 512GB(boot) | 2x1tb WD 7200rpm | Cooler Master V1000 1000W | Skärm: ACER XB280HK, Benq 27" 144hz | Win 11 pro N 64-bit

Permalänk
Medlem
Skrivet av Xeno88:

while (x != 1000 000){gör något}

Inte för att vara den som är den men han lär kolla x < 1 000 000

Visa signatur

Corsair Air 540 | Asus strix x470-f gaming | AMD Ryzen 7 3700x| 2x8gb 3200mhz RAM | Asus GTX 2070 |2xSSD 512GB(boot) | 2x1tb WD 7200rpm | Cooler Master V1000 1000W | Skärm: ACER XB280HK, Benq 27" 144hz | Win 11 pro N 64-bit

Permalänk
Medlem
Skrivet av Nollan:

Inte för att vara den som är den men han lär kolla x < 1 000 000

Fixat!

Visa signatur

R7-3700X, B450M Mortar MAX, 32GB DDR4 @ 3200, RTX 2080, Corsair CX650M Rev2

Permalänk
Medlem

Utan loop

#include <math.h> /* log */ int main() { setlocale(LC_ALL, "swedish"); double x, y, z, r, a, c; cout << "Skriv in hur mycket pengar du vill ska växa: "; cin >> x; cout << "Skriv in hur mycket ränta: "; cin >> r; c = 1+ (r / 100); cout << log(1000000/x) / log (c); return 0; }

Permalänk
Medlem

Det lättaste är att använda någon typ av loop, tex. for, while eller do-while, där du varje runda i loopen stegar fram ett år och räknar ut hur mycket pengar som finns på kontot efter det året. Så det är din y = x * c rad som behöver ligga i en loop, och sen modifieras en aning, så att värdet på kontot från förra året används istället för värdet som matades in, tex. x = x * c. Och sen sätter du ett vilkor på din loop som gör att den bryter när vilkoret uppfyllts, tex. x < 1000000.

Det går att lösa matematiskt också typ så här:
start * ränta^(år) = slut
ränta^(år) = slut / start
år * log(ränta) = log(slut / start)
år = log(slut / start) / log(ränta)

För att kunna göra log i C++ kan du göra så här: http://www.cplusplus.com/reference/cmath/log/

Visa signatur

Intel i7-7700k @ 4.9Ghz - Noctua NH-U12P SE2 - MSI GTX 1070 Armor OC - AsRock Z270 Extreme4 - G.Skill Ripjaws V DDR4 3200MHz CL16 2x8GB - Corsair RM750x 750W - Samsung 970 EVO 500GB - Acer Predator X34 - Silverstone RV02-E - Asus Xonar Essence STX II 7.1 - Mionix Naos 8200 - Corsair Gaming MM400 - Das Keyboard 4 Ultimate MX Brown - Beyerdynamic DT990 Pro 250 Ohm - Antlion ModMic 4.0 Unidirectional

Permalänk
Medlem
Skrivet av gothxx:

Utan loop

#include <math.h> /* log */ int main() { setlocale(LC_ALL, "swedish"); double x, y, z, r, a, c; cout << "Skriv in hur mycket pengar du vill ska växa: "; cin >> x; cout << "Skriv in hur mycket ränta: "; cin >> r; c = 1+ (r / 100); cout << log(1000000/x) / log (c); return 0; }

Tänkte just skriva något liknande. När man vill göra en automatisk miniräknare är det bra att ha koll på matematiken som ska användas.

Vet du (TS) hur du löser ut x ur y=Ca^x?

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem
Skrivet av gothxx:

Utan loop

#include <math.h> /* log */ int main() { setlocale(LC_ALL, "swedish"); double x, y, z, r, a, c; cout << "Skriv in hur mycket pengar du vill ska växa: "; cin >> x; cout << "Skriv in hur mycket ränta: "; cin >> r; c = 1+ (r / 100); cout << log(1000000/x) / log (c); return 0; }

Tack så sjukt mycket! Det fungerade utmärkt!

Skrivet av LemonIllusion:

Tänkte just skriva något liknande. När man vill göra en automatisk miniräknare är det bra att ha koll på matematiken som ska användas.

Vet du (TS) hur du löser ut x ur y=Ca^x?

Har inte läst matte sedan i våras så kommer inte direkt ihåg alla formler som finns och hur man räknar ut dom. Men jag trodde att det skulle vara mer komplicerat än att bara skriva in ekvationen, så jag tänkte inte direkt på detta ^^.