Permalänk
Medlem

Programmeringshjälp

Hej!
Jag har börjat läsa programmering på distans och jag fattar inte så mycket, alls. Jag ska lämna in en uppgift till fredag men har helt och hållet fastnat. Hoppas på att få hjälp här!
Programmet jag använder heter Code blocks.

Uppgiften:
Skriv ett program i C++ som frågar efter ett årligt insättningsbelopp och en räntesats och ett sparmål. Programmet ska sedan med hjälp av en iteration (loop) räkna ut hur många år det tar innan sparmålet uppnåtts.

Ange hur mycket du vill sätta in varje år: 3000
Ange ditt sparmål: 50 000
Ange räntesatsen i procent: 4.2

Ditt sparmål kommer att uppnås efter 13 år
Ditt saldo kommer då att vara 50 513.5 kr

Jag fattar inte hur fan jag ska göra för att jag dels inte ens kan räkna ut detta men också hittills bara lärt mig att plussa ihop två tal. Läroboken heter Programmering 1 C++.

Hoppas någon kan hjälp mig och förklara hur jag ska tänka för att jag vet inte hur jag ska tänka.
Tacksam för hjälp!

Permalänk
Medlem

Jag antar att räntan är per år, det står inte uttryckligt i uppgiften men något annat vore ju konstigt. Det betyder ju i så fall att det insatta beloppet kommer öka med 4.2% i slutet av varje år, och vi kan anta att en ny insättning görs samtidigt. Med värdena i exemplet så blir det i så fall så här:

Första året: insatt belopp = 3000 Andra året: ränta på beloppet: 3000 * 1.042 = 3126 ny insättning: 3126 + 3000 = 6126 Tredje året: ränta på beloppet: 6126 * 1.042 = 6383.292 ny insättning: 6383.292 + 3000 = 9383.292 Osv.

Så hela uppgiften består bara i att fånga in några värden som användaren matar in, och sen ha en loop som lägger på ränta och en ny insättning varje år tills sparmålet är uppnått.

Permalänk
Medlem

Eftersom det är en skoluppgift så vill jag inte säga för mycket. Men en while-loop tror jag skulle göra susen.

while (ny_insättning<sparmål)
{
(ny_insättning=insättning+ny_insättning*ränta)
år=år+1 (starta en counter som ränkar hur många år det tar, dvs hur många iterationer.
]

Mina variabel namn är fucked hehe.

Permalänk
Medlem

@Legacy_wow_jon: Hur gör man en counter? Och sorry om jag ställer massa frågor men jag fattar liksom inte ens hur programmet ska förstå vad jag skriver in i fönstret. Har skrivit cout << "Ange hur mycket du vill spara varje år" men för att man ska skriva någonting där som programmet kommer ihåg måste man ange någonting, antar jag. Hur gör jag det?

Permalänk
Medlem

Står det inget i boken om funktion för att läsa input från användaren? Jag kör mest C och python och i C (som är snarlikt C++) finns en funktion som heter scanf_s för att läsa indata från kommandofönstret. Testa den kanske?

En counter (räknare) är en variabel som räknar hur många gånger en loop körts. Den är en helt vanlig variabel (oftast int) som helt enkelt ökar med 1 varje gång loopen körs. Kan skrivas:

int counter; // deklaration

Loop börjar
{
counter=counter+1;

Eller

counter++;
}
Loop slut.

Permalänk
Medlem
Skrivet av oswin:

Hej!
Jag har börjat läsa programmering på distans och jag fattar inte så mycket, alls. Jag ska lämna in en uppgift till fredag men har helt och hållet fastnat. Hoppas på att få hjälp här!
Programmet jag använder heter Code blocks.

Uppgiften:
Skriv ett program i C++ som frågar efter ett årligt insättningsbelopp och en räntesats och ett sparmål. Programmet ska sedan med hjälp av en iteration (loop) räkna ut hur många år det tar innan sparmålet uppnåtts.

Ange hur mycket du vill sätta in varje år: 3000
Ange ditt sparmål: 50 000
Ange räntesatsen i procent: 4.2

Ditt sparmål kommer att uppnås efter 13 år
Ditt saldo kommer då att vara 50 513.5 kr

Jag fattar inte hur fan jag ska göra för att jag dels inte ens kan räkna ut detta men också hittills bara lärt mig att plussa ihop två tal. Läroboken heter Programmering 1 C++.

Hoppas någon kan hjälp mig och förklara hur jag ska tänka för att jag vet inte hur jag ska tänka.
Tacksam för hjälp!

Börja med att hitta en grov algoritm för vad du ska göra:
1: Ange insättning
2: Öka saldot med insättning
3: Stega årsvis
4: Beräkna nytt saldo efter pålagd ränta
5: Är saldot lika med eller högre än sparmålet?
Om (5) = ja, skriv ut och avsluta, annars: hoppa till 2.

Vad behöver vi ha reda på för att lösa uppgiften?
1: Inmatning av data till variabel, och således vad en variabel är och hur dessa hanteras.
2: Addition med variabler
3: Addition med variabler, och vi kan passa på att lära oss inkrementella variabler (+4: Multiplikation med variabler (samma som addition, men med annat tecken)
5: Olika metoder finns för att lösa det här, men troligtvis vill du ta en titt på de tre vanligaste looparna och se vad de gör. Det finns två vettiga alternativ för just den här uppgiften (do ... while, och while).
(6: utskrift)

http://www.cplusplus.com/doc/tutorial/ kan vara värt att ta en titt på, inte minst "Basics of C++" och "Control Structures" för själva kodandet. Programmeringsspråk och deras grammatik är "bara" verktyg för problemlösning, och innan man ordentligt kan börja använda dem så måste man komma in i "programmeringstänket", och det är det första hinder du bör tackla.

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Windows 11)
Serverdesktop: AMD 5600G, 64 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8