1 00:00:00,000 --> 00:00:02,830 >> Spreker 1: Kom ons skryf 'n program wat vra die gebruiker om 'n positiewe 2 00:00:02,830 --> 00:00:05,950 integer, n, en dan druk uit die som van al die getalle 3 00:00:05,950 --> 00:00:07,980 tussen 1 en n. 4 00:00:07,980 --> 00:00:10,580 Wel, hier het ons hoof, wat ek reeds vooruit geskryf. 5 00:00:10,580 --> 00:00:13,520 En kennis van hier aan die bokant van hoof, verklaar ek 'n int n. 6 00:00:13,520 --> 00:00:16,079 >> Ek het toe, binnekant van 'n doen terwyl lus, eerste druk 7 00:00:16,079 --> 00:00:17,530 positiewe heelgetal, asseblief. 8 00:00:17,530 --> 00:00:21,070 Toe het ek gaan 'n heelgetal te kry van die gebruiker met die CS50 biblioteek se get 9 00:00:21,070 --> 00:00:22,070 int funksie. 10 00:00:22,070 --> 00:00:26,410 En dan in my terwyl toestand hier, ek maak seker dat n groter as of 11 00:00:26,410 --> 00:00:30,480 gelyk aan 1 voordat ek eintlik gaan iets te doen met daardie waarde. 12 00:00:30,480 --> 00:00:31,520 >> Wat doen ek nou? 13 00:00:31,520 --> 00:00:34,690 Wel, ek noem 'n funksie wat ek gaan Sigma, verteenwoordiger van die te noem 14 00:00:34,690 --> 00:00:37,700 kapitaal Sigma wat jy mag hê onthou van wiskunde klasse wat 15 00:00:37,700 --> 00:00:40,860 dui daarop dat jy iets op te som van die een waarde aan 'n ander. 16 00:00:40,860 --> 00:00:44,540 En wat daardie funksie opgawes sy terugkeer waarde, ek gaan te stoor 17 00:00:44,540 --> 00:00:46,500 in 'n veranderlike genoem antwoord. 18 00:00:46,500 --> 00:00:50,280 >> Ten slotte, in my laaste lyn in die belangrikste, ek is gaan om uit te druk wat antwoord is. 19 00:00:50,280 --> 00:00:52,840 Natuurlik, ons het nog nie geïmplementeer nie hierdie funksie Sigma. 20 00:00:52,840 --> 00:00:54,590 So, hoe ons te werk gaan om dit te doen? 21 00:00:54,590 --> 00:00:58,040 >> Wel, aan die onderkant van my lêer, ek is gaan om voort te gaan 'n funksie te verklaar 22 00:00:58,040 --> 00:00:59,450 wat gee 'n int. 23 00:00:59,450 --> 00:01:01,630 En ek gaan om te bel daardie funksie Sigma. 24 00:01:01,630 --> 00:01:06,340 En ek gaan om dit te spesifiseer as insette daardie funksie aanvaar ook 'n int. 25 00:01:06,340 --> 00:01:09,800 En ek sal dit noem net te wees, duidelike, m in plaas van N. 26 00:01:09,800 --> 00:01:12,120 Maar ons kon genoem het dit die die meeste enigiets wat ons wil. 27 00:01:12,120 --> 00:01:14,930 >> Binnekant van die liggaam van hierdie funksie Ek is gaan om voort te gaan 'n bekende te gebruik 28 00:01:14,930 --> 00:01:16,420 bou, naamlik 'n lus. 29 00:01:16,420 --> 00:01:19,010 Maar ek gaan ook 'n bietjie van gesonde verstand te doen nagaan om seker te maak dat die 30 00:01:19,010 --> 00:01:22,340 gebruiker nie gee my 'n aantal dat ek nie verwag het nie. 31 00:01:22,340 --> 00:01:28,010 In die besonder, ek gaan om te doen indien m minder as 1 en ietwat arbitrêr, 32 00:01:28,010 --> 00:01:31,280 Ek is net gaan om terug te keer as 0 die nommer is nie 'n positiewe 33 00:01:31,280 --> 00:01:32,800 heelgetal as ek verwag. 34 00:01:32,800 --> 00:01:36,920 >> Dan gaan ek 'n veranderlike te verklaar genoem som en inisialiseer tot 0. 35 00:01:36,920 --> 00:01:40,810 Dit sal uiteindelik slaan die som van al die getalle tussen 1 en m. 36 00:01:40,810 --> 00:01:43,550 En dan gaan ek 'n bekende te gebruik vorentoe lus bou. 37 00:01:43,550 --> 00:01:50,272 Vir int i kry 1, i is minder as of gelyk aan m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 En dan, in die liggaam van hierdie lus, ek eenvoudig gaan som te doen 39 00:01:54,010 --> 00:01:56,350 gelyk som plus i. 40 00:01:56,350 --> 00:02:01,900 Of meer eenvoudig, som plus gelyk i, wat bereik dieselfde resultaat. 41 00:02:01,900 --> 00:02:04,810 >> En dan laastens, ek het om terug te keer Die som wat ek bereken. 42 00:02:04,810 --> 00:02:07,640 So ek voeg in ruil som. 43 00:02:07,640 --> 00:02:08,560 >> Nou is ek nog nie gedoen nie. 44 00:02:08,560 --> 00:02:11,360 Ek moet C om te leer dat hierdie funksie bestaan ​​eintlik. 45 00:02:11,360 --> 00:02:14,400 En so bo-op my lêer ek gaan om te verklaar wat ons 'n funksie het genoem 46 00:02:14,400 --> 00:02:18,270 prototipe, identies aan die handtekening wat ek gebruik wanneer die definisie van die funksie 47 00:02:18,270 --> 00:02:19,250 'n oomblik gelede. 48 00:02:19,250 --> 00:02:22,450 >> Spesifiek, net bokant hoof, Ek gaan int te tik 49 00:02:22,450 --> 00:02:26,080 Sigma, int m, kommapunt. 50 00:02:26,080 --> 00:02:29,240 Implementeer nie die funksie weer, net verklaar dat dit. 51 00:02:29,240 --> 00:02:32,800 As ek nou spaar, saamstel, en die uitvoering van hierdie program, laat ons sien wat ek kry. 52 00:02:32,800 --> 00:02:37,460 Maak Sigma 0 dot streep Sigma 0. 53 00:02:37,460 --> 00:02:41,050 En nou, laat ons 'n positiewe heelgetal soos 2, wat moet ek gee 54 00:02:41,050 --> 00:02:45,920 drie, omdat die waardes tussen 1 en 2 is 1 plus 2 is gelyk aan 3. 55 00:02:45,920 --> 00:02:47,300 En inderdaad, dit is wat ek kry. 56 00:02:47,300 --> 00:02:49,940 >> Kom ons loop dit weer, hierdie tyd saam met, sê, 3. 57 00:02:49,940 --> 00:02:53,470 So ek moet kry 1 plus 2 plus 3 moet gee my 6. 58 00:02:53,470 --> 00:02:54,740 En inderdaad, kry ek 6. 59 00:02:54,740 --> 00:02:57,380 >> En laat ons probeer om 'n laaste waarde, sê 50. 60 00:02:57,380 --> 00:03:01,160 En 1275 is ons antwoord. 61 00:03:01,160 --> 00:03:02,253