>> HÖGTALARE 1: Låt oss skriva ett program som ber användaren om ett positivt
heltal, n, och sedan skriver ut summan av alla tal
mellan 1 och n.
Tja, här har vi stora, som jag har redan skrivit i förväg.
Och märker här på toppen av huvud, jag förklarar en int n.
>> Jag då, inne i en gör samtidigt slinga, först skriva ut
positivt heltal, tack.
Fortsätt sedan jag för att få ett heltal användaren med CS50 bibliotekets get
int funktion.
Och sedan i min länge villkor här, jag se till att n är större än eller
lika med 1 innan jag faktiskt gå vidare att göra något med det värdet.
>> Vad gör jag nu?
Tja, jag kallar en funktion som jag ska att ringa sigma, representant för
kapital sigma som du kan ha återkallas från matematik klasser som
anger att du vill summera något från ett värde till ett annat.
Och vad som funktionen returnerar som dess returvärde, jag ska förvara
i en variabel som kallas svar.
>> Slutligen, i min sista raden i huvud, jag är kommer att skriva ut vad svaret är.
Självklart har vi ännu inte genomfört denna funktion sigma.
Så hur ska vi gå om att göra det?
>> Jo, längst ner i min fil, jag är kommer att fortsätta att deklarera en funktion
som returnerar en int.
Och jag ska ringa som funktion sigma.
Och jag kommer att ange att som indata funktionen accepterar också en int.
Och jag ska kalla det bara, för att vara distinkt, m istället för n.
Men vi kunde ha kallade det mest något som vi skulle vilja.
>> Inne i kroppen av denna funktion är jag kommer att fortsätta att använda ett bekant
konstruera, nämligen en slinga.
Men jag kommer också att göra lite förstånd kontroll för att se till att
användaren inte ger mig med ett nummer att jag inte förväntar sig.
Framför allt kommer jag att göra om m är mindre än 1 och, något godtyckligt,
Jag är helt enkelt att returnera 0 om numret är inte ett positivt
heltal som jag förväntar mig.
>> Sen kommer jag att deklarera en variabel kallas summa och initiera den till 0.
Detta kommer i slutändan spara summan av alla nummer mellan 1 och m.
Och då kommer jag att använda en bekant framåt loop-konstruktion.
För int i får 1, är jag mindre än eller lika med m, i plus plus.
Och sedan, i kroppen av detta slinga, jag helt enkelt ska göra summan
är lika med summan plus jag.
Eller, enklare, summa plus lika med i, som uppnår samma resultat.
>> Och så slutligen, jag behöver gå tillbaka det belopp som jag har beräknats.
Så jag lägger i gengäld summa.
>> Nu är jag inte klar än.
Jag måste lära C att detta funktion faktiskt existerar.
Och så ovanpå min fil jag ska förklara vad vi har kallat en funktion
prototyp, identisk med signaturen som jag använde för att definiera funktionen
för en stund sedan.
>> Specifikt, precis ovanför huvud, Jag kommer att skriva int
sigma, int m, semikolon.
Inte genomföra funktionen igen, helt enkelt förklara det.
Om jag nu spara, kompilera och köra program, låt oss se vad jag får.
Gör sigma 0 dot slash sigma 0.
Och nu ska vi ge ett positivt heltal som 2, vilket borde ge mig
tre, eftersom värdena mellan 1 och 2 är 1 plus 2 är lika med 3.
Och faktiskt, det är vad jag får.
>> Låt oss köra den igen, detta tid med, säg, 3.
Så jag borde få 1 plus 2 plus 3 skulle ge mig 6.
Och faktiskt, får jag 6.
>> Och låt oss försöka en sista värde, säger 50.
Och 1275 är vårt svar.