Permalänk
Medlem

C++ fråga

Har fått en uppgift i programmering A. Jag vill inte att någon skriver någon kod åt mig hur det ska gå till eller liknande. Jag undrar bara om någon förstår vad läraren menar med uppgiften.

Skriv funktionen void heltalssumma(int n) som beräknar och skriver ut summan av heltalen i intervallet [ 1, n ].
Anropet heltalssumma(4) ska ge utskriften

1 + 2 + 3 + 4 = 10

Ingen kod alltså utan vad är det han vill att jag ska få fram:)

Visa signatur

You cant dodge this bullet cause this aint The Matrix....

Permalänk
Glömsk
Citat:

Anropet heltalssumma(4) ska ge utskriften

1 + 2 + 3 + 4 = 10

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Det han vill få fram är summan av alla talen fram till det talet man anger som parameter i funktionen, från 1.

Permalänk
Medlem

Vi hade en liknande uppgift i vår bok. Det "svåraste" var att se till att det inte skrevs ut något "+" innan "=". Lycka till!

Permalänk
Medlem

Fan blir ju bara mer förvirrar:S

Visa signatur

You cant dodge this bullet cause this aint The Matrix....

Permalänk
Medlem

Det är inte så svårt.
Funktionen "void heltalssumma(int n)" tar in ett heltal.

Det du skall göra är att skriva ut alla tal från 1 till heltalet och sedan summan av dessa tal.

heltalssumma(1) skriver ut följande på skärmen:

1 = 1

heltalssumma(2) skriver ut följande på skärmen:

1 + 2 = 3

heltalssumma(3) skriver ut följande på skärmen:

1 + 2 + 3 = 6

Detta görs ganska enkelt med en for loop

Permalänk
Medlem

Få se om jag fattat det rätt

Min lärare vill alltså att man ska få ange ett nummer ex 4. När man gjor det ska programmet göra 1+2+3+4 Fram till fyra och sedan skriva ut vad det blir..Skriver jag in 10 blir det 1+2+3......+10 =

????

Visa signatur

You cant dodge this bullet cause this aint The Matrix....

Permalänk
Medlem

Stämmer bra det.

Permalänk
Medlem

Tack för alla svar..Jättesnällt...Jag har haft jäkligt enkelt med programmeringen men när vi kom in på funktioner missade jag en lektion och allt sket sig:)

Visa signatur

You cant dodge this bullet cause this aint The Matrix....

Permalänk
Medlem

En loop är dock inte nödvändlig. Kan enkelt räknas ut med formeln:
(n*(1 + n))/2 där n är antal tal.

Visa signatur

Doubleint.com - Webben har aldrig varit enklare.

Timesharing.se - En liten tjänst som löser ett stort problem.

Permalänk
Medlem

PajP, helt rätt... MEN nu ville läraren att dom skulle skriva ut hela serien, då räcker det inte med att bara skriva ut vad summan blir, dom får ändå en for eller while loop att handskas med
Men på min tid i gymnasiet då hade vår lärare samma uppgift, men man skulle bara skriva ut svaret... han tyckte inte om vår lösning då vi inte används programmeringsspråket till fullo ... bs

Visa signatur

weeeee

Permalänk
Medlem

hmm, att använda programmeringsspråket? Menar han då att man ska ha allt som språket kan klara av i sin lösning då eller?

Permalänk
Glömsk
Citat:

Ursprungligen inskrivet av Pajp
En loop är dock inte nödvändlig. Kan enkelt räknas ut med formeln:
(n*(1 + n))/2 där n är antal tal.

Att förstå problemet är A och O vid programmering. Här löser du ett nära besläktat men samtidigt fel problem.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem

Eftersom så många visade intresse för min fråga måste jag ju redovisa lösningen:)

#include <iostream> void heltalssumma(int n); using namespace std; int main() { int n=0,tal=0; cout<<"Skriv in slutet pa intervallet"<<endl; cin>>n; heltalssumma (n); return 0; } void heltalssumma(int n) { int raknare,summa=0; for( raknare=1; raknare <=n; raknare++) { cout<<raknare; if ( raknare <n ) { cout<<" + "; } summa+=raknare; } cout<<" = "<<summa<<endl; }

if ( raknare <n ) { cout<<" + "; }

Anledningen till denna if sats är att jag inte ville ha ett plus utskrivet på det sista talet i intervallet:) Som någon nämnde innan.

Visa signatur

You cant dodge this bullet cause this aint The Matrix....