1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Poďme napísať program, ktorý vyzve užívateľa k pozitívnej 2 00:00:02,830 --> 00:00:05,950 celé číslo, n, a potom vytlačí súčet všetkých čísel 3 00:00:05,950 --> 00:00:07,980 medzi 1 a n 4 00:00:07,980 --> 00:00:10,580 No, tu máme hlavné, ktoré som už napísané dopredu. 5 00:00:10,580 --> 00:00:13,520 A všimnite si, tu hore Hlavné prehlasujem, int n 6 00:00:13,520 --> 00:00:16,079 >> Aj potom, vnútri robiť, keď slučky, najprv vytlačiť 7 00:00:16,079 --> 00:00:17,530 kladné celé číslo, prosím. 8 00:00:17,530 --> 00:00:21,070 Potom som sa dostať číslo z používateľ s get CS50 knižnice 9 00:00:21,070 --> 00:00:22,070 funkcia int. 10 00:00:22,070 --> 00:00:26,410 A potom sa v mojej, zatiaľ čo stave tu, som Uistite sa, že n je väčšie ako alebo 11 00:00:26,410 --> 00:00:30,480 rovný 1, ako som vlastne postupovať niečo urobiť s touto hodnotou. 12 00:00:30,480 --> 00:00:31,520 >> Čo mám robiť ďalej? 13 00:00:31,520 --> 00:00:34,690 No, hovorím si funkciu, ktorá Idem volať Sigma, zástupca 14 00:00:34,690 --> 00:00:37,700 hlavné mesto sigma, že by ste mohli mať odvolaný z matematickej triedy, ktoré 15 00:00:37,700 --> 00:00:40,860 znamená, že chcete sčítať niečo z jednej hodnoty do druhej. 16 00:00:40,860 --> 00:00:44,540 A čo, že sa vráti funkcie ako jej návratová hodnota, idem uložiť 17 00:00:44,540 --> 00:00:46,500 v premennej nazvanej odpoveď. 18 00:00:46,500 --> 00:00:50,280 >> Napokon, v mojom poslednom riadku v hlavnej, som bude tlačiť, čo odpoveď. 19 00:00:50,280 --> 00:00:52,840 Samozrejme, že sme sa doteraz realizovaný Táto funkcia sigma. 20 00:00:52,840 --> 00:00:54,590 Tak ako sme sa ísť o tom, že? 21 00:00:54,590 --> 00:00:58,040 >> No, v dolnej časti môjho súboru, som bude pokračovať deklarovať funkciu 22 00:00:58,040 --> 00:00:59,450 že vracia int. 23 00:00:59,450 --> 00:01:01,630 A ja idem volať že funkcia sigma. 24 00:01:01,630 --> 00:01:06,340 A budem určiť, že ako vstup že funkcia prijíma tiež int. 25 00:01:06,340 --> 00:01:09,800 A ja hovorím len, aby sa odlišné, m namiesto n 26 00:01:09,800 --> 00:01:12,120 Ale mohli sme hovorili, že väčšina nič, čo by sme chceli. 27 00:01:12,120 --> 00:01:14,930 >> Vnútri tela tejto funkcie som si bude pokračovať používať zoznámiť 28 00:01:14,930 --> 00:01:16,420 konštrukciu, a to slučku. 29 00:01:16,420 --> 00:01:19,010 Ale ja som tiež robiť trochu zdravého rozumu kontroly, aby sa uistil, že 30 00:01:19,010 --> 00:01:22,340 užívateľ neposkytuje mi číslo že som nečakal. 31 00:01:22,340 --> 00:01:28,010 Najmä budem robiť, keď m je menej ako 1, a trochu ľubovoľne, 32 00:01:28,010 --> 00:01:31,280 Ja som jednoducho ísť vrátiť 0, ak číslo nie je pozitívny 33 00:01:31,280 --> 00:01:32,800 celé číslo, ako som očakávať. 34 00:01:32,800 --> 00:01:36,920 >> Potom budem deklarovať premennú tzv súčet a inicializovať na 0. 35 00:01:36,920 --> 00:01:40,810 To v konečnom dôsledku uloženia súčet všetky čísla medzi 1 a m 36 00:01:40,810 --> 00:01:43,550 A potom budem používať zoznámiť vpred slučka konštrukcie. 37 00:01:43,550 --> 00:01:50,272 Pre int i dostane 1, aj je menšia než alebo je m, aj plus plus. 38 00:01:50,272 --> 00:01:54,010 A potom, v tele tohto slučky, som proste robiť súčet 39 00:01:54,010 --> 00:01:56,350 sa rovná súčtu Navyše som. 40 00:01:56,350 --> 00:02:01,900 Alebo jednoduchšie, súčet a rovná i, ktoré dosahuje rovnaký výsledok. 41 00:02:01,900 --> 00:02:04,810 >> A potom konečne, musím sa vrátiť suma, ktorú som vypočítaná. 42 00:02:04,810 --> 00:02:07,640 Tak som sa pridať na oplátku súčtu. 43 00:02:07,640 --> 00:02:08,560 >> Teraz som neskončil. 44 00:02:08,560 --> 00:02:11,360 Musím sa učiť C, že tento funkcie skutočne existuje. 45 00:02:11,360 --> 00:02:14,400 A tak na vrchole môjho súboru budem deklarovať to, čo sme tzv funkcie 46 00:02:14,400 --> 00:02:18,270 prototyp, totožný s podpisom ktoré som použil pri definovaní funkcie 47 00:02:18,270 --> 00:02:19,250 pred chvíľou. 48 00:02:19,250 --> 00:02:22,450 >> Konkrétne, tesne nad hlavnou, Budem typ int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, bodkočiarku. 50 00:02:26,080 --> 00:02:29,240 Nie, ktorým sa vykonáva funkciu znovu, stačí deklarovať ho. 51 00:02:29,240 --> 00:02:32,800 Mám-li teraz uložiť, skompilovať a spustiť tento programu, poďme sa pozrieť, čo mám. 52 00:02:32,800 --> 00:02:37,460 Uistite sa sigma 0 bodov lomítko sigma 0. 53 00:02:37,460 --> 00:02:41,050 A teraz poďme poskytnúť kladné celé číslo ako 2, ktorý by mal mi dať 54 00:02:41,050 --> 00:02:45,920 tri, pretože hodnoty medzi 1 a 2 sú 1 a 2 sa rovná 3. 55 00:02:45,920 --> 00:02:47,300 A vskutku, to je to, čo mám. 56 00:02:47,300 --> 00:02:49,940 >> Poďme ho spustiť znova, to čas, povedzme, tri. 57 00:02:49,940 --> 00:02:53,470 Takže by som mal dostať 1 plus 2 plus 3 by mi 6. 58 00:02:53,470 --> 00:02:54,740 A skutočne, ja sa 6.. 59 00:02:54,740 --> 00:02:57,380 >> A skúsme poslednú hodnotu, povedzme 50. 60 00:02:57,380 --> 00:03:01,160 A 1275 je naša odpoveď. 61 00:03:01,160 --> 00:03:02,253