Trädvy Permalänk
Medlem
Registrerad
Okt 2014

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 :-)

i7 7700K @5.1Ghz 1.424v - Maximus IX Hero - Thermaltake Water 3.0 Ultimate - 16GB Corsair Vengeance LPX 3200 C16 @3333MHz 16-18-18-36 - Palit GTX 1070 @2050MHz core clock & 9500MHz memory clock -
custom chassi: http://imgur.com/XW51Ify

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Dec 2008

Ok, Mangelol.

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

Trädvy Permalänk
Medlem
Plats
Norrköping
Registrerad
Jul 2006

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

EDIT

!= kan skapa en oändlig loop

R5-1600X, GA-AB-350M-G3, 16GB DDR4 @ 2666, HD7970, Corsair CX650M Rev2

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Maj 2011
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å

Corsair Air 540 | Asus Z87-PRO | INTEL i7-4770K @ 4,2 ghz| 4x4gb 1600mhz RAM | Zotac 980 AMP! XTREME 4GB | SSD 512GB | 2x1tb WD 7200rpm | Cooler Master V1000 1000W | Skärm: ACER XB280HK | OSx + Win 10 pro N 64-bit
---------------------------------------------------------------------------------
Server: Supermicro X7DBP-8 | 2x Intel Xeon E5420 | 16gb ECC | 700w PSU | TS3 | CS:GO | mer i framtiden

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Maj 2011
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

Corsair Air 540 | Asus Z87-PRO | INTEL i7-4770K @ 4,2 ghz| 4x4gb 1600mhz RAM | Zotac 980 AMP! XTREME 4GB | SSD 512GB | 2x1tb WD 7200rpm | Cooler Master V1000 1000W | Skärm: ACER XB280HK | OSx + Win 10 pro N 64-bit
---------------------------------------------------------------------------------
Server: Supermicro X7DBP-8 | 2x Intel Xeon E5420 | 16gb ECC | 700w PSU | TS3 | CS:GO | mer i framtiden

Trädvy Permalänk
Medlem
Plats
Norrköping
Registrerad
Jul 2006
Skrivet av Krullieboy:

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

Fixat!

R5-1600X, GA-AB-350M-G3, 16GB DDR4 @ 2666, HD7970, Corsair CX650M Rev2

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Feb 2007

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

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Maj 2009

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/

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 750 EVO 500GB - Silverstone RV02-E - Asus Xonar Essence STX II 7.1 - Mionix Naos 8200 - Steelseries 9HD - Das Keyboard 4 Ultimate MX Brown - Beyerdynamic DT990 Pro 250 Ohm

Trädvy Permalänk
Medlem
Plats
SweClockers forum
Registrerad
Aug 2012
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?

Guide: Roota din HTC - BB-Kod-knappar på Prisjakt

              Min burk - Kvävekyld till 80%
Phenom II X4 965@3900MHz (Sommarklock)
GTX 760@1111MHz

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

Trädvy Permalänk
Medlem
Registrerad
Okt 2014
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 ^^.

i7 7700K @5.1Ghz 1.424v - Maximus IX Hero - Thermaltake Water 3.0 Ultimate - 16GB Corsair Vengeance LPX 3200 C16 @3333MHz 16-18-18-36 - Palit GTX 1070 @2050MHz core clock & 9500MHz memory clock -
custom chassi: http://imgur.com/XW51Ify