1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Lad os skrive et program, beder brugeren om en positiv 2 00:00:02,830 --> 00:00:05,950 heltal, n, og udskriver derefter ud summen af ​​alle de numre 3 00:00:05,950 --> 00:00:07,980 mellem 1 og n. 4 00:00:07,980 --> 00:00:10,580 Nå, her har vi main, som jeg har allerede skrevet på forhånd. 5 00:00:10,580 --> 00:00:13,520 Og bemærker her på toppen af main, jeg erklærer en int n. 6 00:00:13,520 --> 00:00:16,079 >> Jeg så, inde i en gør samtidig loop, først udskrive 7 00:00:16,079 --> 00:00:17,530 positivt heltal, tak. 8 00:00:17,530 --> 00:00:21,070 Så jeg går til at få et heltal fra brugeren med CS50 bibliotekets get 9 00:00:21,070 --> 00:00:22,070 int funktion. 10 00:00:22,070 --> 00:00:26,410 Og så i min mens tilstand her, jeg sørg for, at n er større end eller 11 00:00:26,410 --> 00:00:30,480 lig med 1, før jeg rent faktisk fortsætte at gøre noget med denne værdi. 12 00:00:30,480 --> 00:00:31,520 >> Hvad gør jeg nu? 13 00:00:31,520 --> 00:00:34,690 Nå, jeg kalder en funktion, som jeg har tænkt mig at kalde sigma, repræsentant for 14 00:00:34,690 --> 00:00:37,700 kapital sigma som du måtte have tilbagekaldes fra matematiske klasser, 15 00:00:37,700 --> 00:00:40,860 angiver, at du ønsker at opsummere noget fra en værdi til en anden. 16 00:00:40,860 --> 00:00:44,540 Og hvad det så returnerer funktionen som dens returværdi, jeg har tænkt mig at gemme 17 00:00:44,540 --> 00:00:46,500 i en variabel kaldet svar. 18 00:00:46,500 --> 00:00:50,280 >> Endelig i min sidste linie i hoved, jeg er kommer til at printe ud, hvad svaret er. 19 00:00:50,280 --> 00:00:52,840 Selvfølgelig har vi endnu ikke implementeret denne funktion sigma. 20 00:00:52,840 --> 00:00:54,590 Så hvordan kan vi gå om at gøre det? 21 00:00:54,590 --> 00:00:58,040 >> Nå, i bunden af ​​min fil, jeg er kommer til at fortsætte med at erklære en funktion 22 00:00:58,040 --> 00:00:59,450 der returnerer en int. 23 00:00:59,450 --> 00:01:01,630 Og jeg har tænkt mig at ringe til denne funktion sigma. 24 00:01:01,630 --> 00:01:06,340 Og jeg har tænkt mig at præcisere, at som input denne funktion accepterer også en int. 25 00:01:06,340 --> 00:01:09,800 Og jeg vil kalde det bare at være tydelig, m i stedet for n. 26 00:01:09,800 --> 00:01:12,120 Men vi kunne have kaldt det de fleste noget, vi gerne vil. 27 00:01:12,120 --> 00:01:14,930 >> Inde i kroppen af ​​denne funktion er jeg kommer til at fortsætte at bruge en velkendt 28 00:01:14,930 --> 00:01:16,420 konstruere, nemlig en løkke. 29 00:01:16,420 --> 00:01:19,010 Men jeg vil også gøre en smule fornuft kontrol for at sikre, at den 30 00:01:19,010 --> 00:01:22,340 brugeren ikke give mig med et nummer at jeg ikke forventer. 31 00:01:22,340 --> 00:01:28,010 I særdeleshed vil jeg gøre, hvis m er mindre end 1, og noget vilkårligt, 32 00:01:28,010 --> 00:01:31,280 Jeg simpelthen kommer til at returnere 0, hvis nummeret ikke er positiv 33 00:01:31,280 --> 00:01:32,800 heltal, som jeg forventer. 34 00:01:32,800 --> 00:01:36,920 >> Så jeg har tænkt mig at erklære en variabel kaldet sum og initialisere den til 0. 35 00:01:36,920 --> 00:01:40,810 Dette vil i sidste ende at gemme summen af alle tal mellem 1 og m. 36 00:01:40,810 --> 00:01:43,550 Og så har jeg tænkt mig at bruge et velkendt fremad loop konstruktion. 37 00:01:43,550 --> 00:01:50,272 For int i får 1, i er mindre end eller lig med m, jeg plus plus. 38 00:01:50,272 --> 00:01:54,010 Og så, i kroppen af ​​denne loop, jeg simpelthen vil gøre sum 39 00:01:54,010 --> 00:01:56,350 lig sum plus jeg. 40 00:01:56,350 --> 00:02:01,900 Eller mere enkelt, sum plus lig i, som opnår samme resultat. 41 00:02:01,900 --> 00:02:04,810 >> Og så til sidst, jeg har brug for at vende tilbage det beløb, som jeg har beregnet. 42 00:02:04,810 --> 00:02:07,640 Så jeg tilføje gengæld sum. 43 00:02:07,640 --> 00:02:08,560 >> Nu er jeg ikke færdig endnu. 44 00:02:08,560 --> 00:02:11,360 Jeg har brug for at lære C, at denne funktionen rent faktisk eksisterer. 45 00:02:11,360 --> 00:02:14,400 Og så oven min fil jeg har tænkt mig at erklære hvad vi har kaldt en funktion 46 00:02:14,400 --> 00:02:18,270 prototype identisk med signaturen som jeg brugte når man skal definere funktionen 47 00:02:18,270 --> 00:02:19,250 for et øjeblik siden. 48 00:02:19,250 --> 00:02:22,450 >> Specifikt lige over hoved, Jeg har tænkt mig at skrive int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, semikolon. 50 00:02:26,080 --> 00:02:29,240 Ikke gennemfører funktion igen, blot at erklære den. 51 00:02:29,240 --> 00:02:32,800 Hvis jeg nu gemme, kompilere og køre dette program, lad os se, hvad jeg får. 52 00:02:32,800 --> 00:02:37,460 Gør sigma 0 prik skråstreg sigma 0. 53 00:02:37,460 --> 00:02:41,050 Og lad os nu give et positivt heltal som 2, der skal give mig 54 00:02:41,050 --> 00:02:45,920 tre, fordi værdierne mellem 1 og 2 er 1 plus 2 er lig med 3. 55 00:02:45,920 --> 00:02:47,300 Og ja, det er hvad jeg får. 56 00:02:47,300 --> 00:02:49,940 >> Lad os køre det igen, denne tid med, siger, 3.. 57 00:02:49,940 --> 00:02:53,470 Så jeg skulle få 1 plus 2 plus 3, skal give mig 6. 58 00:02:53,470 --> 00:02:54,740 Og ja, jeg får 6. 59 00:02:54,740 --> 00:02:57,380 >> Og lad os prøve en sidste værdi, siger 50 år. 60 00:02:57,380 --> 00:03:01,160 Og 1.275 er vores svar. 61 00:03:01,160 --> 00:03:02,253