Trädvy Permalänk
Medlem
Registrerad
Dec 2016

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!

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007

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.

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2009

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.

Trädvy Permalänk
Medlem
Registrerad
Dec 2016

@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?

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jan 2009

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.

Trädvy Permalänk
Medlem
Plats
~
Registrerad
Jul 2001
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.

Fedora, i3wm, Ansible, Vim, git, LaTeX - allt som behövs för att göra mig nöjd.