1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Pojďme napsat program, který vyzve uživatele k pozitivní 2 00:00:02,830 --> 00:00:05,950 celé číslo, n, a poté vytiskne součet všech čísel 3 00:00:05,950 --> 00:00:07,980 mezi 1 a n. 4 00:00:07,980 --> 00:00:10,580 No, tady máme hlavní, které jsem již napsáno předem. 5 00:00:10,580 --> 00:00:13,520 A všimněte si, tady nahoře Hlavní prohlašuji, int n. 6 00:00:13,520 --> 00:00:16,079 >> I poté, uvnitř dělat, když smyčky, nejprve vytisknout 7 00:00:16,079 --> 00:00:17,530 kladné celé číslo, prosím. 8 00:00:17,530 --> 00:00:21,070 Poté jsem se dostat číslo z uživatel s get CS50 knihovny 9 00:00:21,070 --> 00:00:22,070 funkce int. 10 00:00:22,070 --> 00:00:26,410 A pak se v mé, zatímco stavu tady, jsem Ujistěte se, že n je větší než nebo 11 00:00:26,410 --> 00:00:30,480 roven 1, než jsem vlastně postupovat něco udělat s touto hodnotou. 12 00:00:30,480 --> 00:00:31,520 >> Co mám dělat dál? 13 00:00:31,520 --> 00:00:34,690 No, říkám si funkci, která Jdu volat Sigma, zástupce 14 00:00:34,690 --> 00:00:37,700 hlavní město sigma, že byste mohli mít odvolán z matematické třídy, které 15 00:00:37,700 --> 00:00:40,860 znamená, že chcete sečíst něco z jedné hodnoty do druhé. 16 00:00:40,860 --> 00:00:44,540 A co, že se vrátí funkce jako její návratová hodnota, jdu uložit 17 00:00:44,540 --> 00:00:46,500 v proměnné nazvané odpověď. 18 00:00:46,500 --> 00:00:50,280 >> Konečně, v mém posledním řádku v hlavní, jsem bude tisknout, co odpověď. 19 00:00:50,280 --> 00:00:52,840 Samozřejmě, že jsme se dosud realizován Tato funkce sigma. 20 00:00:52,840 --> 00:00:54,590 Tak jak jsme se jít o tom, že? 21 00:00:54,590 --> 00:00:58,040 >> No, v dolní části mého souboru, jsem bude pokračovat deklarovat funkci 22 00:00:58,040 --> 00:00:59,450 že vrací int. 23 00:00:59,450 --> 00:01:01,630 A já jdu volat že funkce sigma. 24 00:01:01,630 --> 00:01:06,340 A budu určit, že jako vstup že funkce přijímá také int. 25 00:01:06,340 --> 00:01:09,800 A já říkám jen, aby se odlišné, m místo n. 26 00:01:09,800 --> 00:01:12,120 Ale mohli jsme říkali, že většina nic, co bychom chtěli. 27 00:01:12,120 --> 00:01:14,930 >> Uvnitř těla této funkce jsem si bude pokračovat používat seznámit 28 00:01:14,930 --> 00:01:16,420 konstrukci, a to smyčku. 29 00:01:16,420 --> 00:01:19,010 Ale já jsem také dělat trochu zdravého rozumu kontroly, aby se ujistil, že 30 00:01:19,010 --> 00:01:22,340 uživatel neposkytuje mi číslo že jsem nečekal. 31 00:01:22,340 --> 00:01:28,010 Zejména budu dělat, když m je méně než 1, a poněkud libovolně, 32 00:01:28,010 --> 00:01:31,280 Já jsem prostě jít vrátit 0, pokud číslo není pozitivní 33 00:01:31,280 --> 00:01:32,800 celé číslo, jak jsem očekávat. 34 00:01:32,800 --> 00:01:36,920 >> Pak budu deklarovat proměnnou tzv. součet a inicializovat na 0. 35 00:01:36,920 --> 00:01:40,810 To v konečném důsledku uložení součet všechna čísla mezi 1 a m. 36 00:01:40,810 --> 00:01:43,550 A pak budu používat seznámit vpřed smyčka konstrukce. 37 00:01:43,550 --> 00:01:50,272 Pro int i dostane 1, i je menší než nebo roven m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 A pak, v těle tohoto smyčky, jsem prostě dělat součet 39 00:01:54,010 --> 00:01:56,350 se rovná součtu Navíc jsem. 40 00:01:56,350 --> 00:02:01,900 Nebo jednodušeji, součet a rovná i, které dosahuje stejného výsledku. 41 00:02:01,900 --> 00:02:04,810 >> A pak konečně, musím se vrátit částka, kterou jsem vypočítána. 42 00:02:04,810 --> 00:02:07,640 Tak jsem se přidat na oplátku součtu. 43 00:02:07,640 --> 00:02:08,560 >> Teď jsem neskončil. 44 00:02:08,560 --> 00:02:11,360 Musím se učit C, že tento funkce skutečně existuje. 45 00:02:11,360 --> 00:02:14,400 A tak na vrcholu mého souboru budu deklarovat to, co jsme tzv. funkce 46 00:02:14,400 --> 00:02:18,270 prototyp, totožný s podpisem které jsem použil při definování funkce 47 00:02:18,270 --> 00:02:19,250 před chvílí. 48 00:02:19,250 --> 00:02:22,450 >> Konkrétně, těsně nad hlavní, Budu typ int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, středník. 50 00:02:26,080 --> 00:02:29,240 Ne, kterým se provádí funkci znovu, stačí deklarovat jej. 51 00:02:29,240 --> 00:02:32,800 Mám-li nyní uložit, zkompilovat a spustit tento programu, pojďme se podívat, co mám. 52 00:02:32,800 --> 00:02:37,460 Ujistěte se sigma 0 bodů lomítko sigma 0. 53 00:02:37,460 --> 00:02:41,050 A teď pojďme poskytnout kladné celé číslo jako 2, který by měl mi dát 54 00:02:41,050 --> 00:02:45,920 tři, protože hodnoty mezi 1 a 2 jsou 1 a 2 se rovná 3. 55 00:02:45,920 --> 00:02:47,300 A vskutku, to je to, co mám. 56 00:02:47,300 --> 00:02:49,940 >> Pojďme jej spustit znovu, to čas, řekněme, tři. 57 00:02:49,940 --> 00:02:53,470 Takže bych měl dostat 1 plus 2 plus 3 by mi 6. 58 00:02:53,470 --> 00:02:54,740 A skutečně, já se 6.. 59 00:02:54,740 --> 00:02:57,380 >> A zkusme poslední hodnotu, řekněme 50. 60 00:02:57,380 --> 00:03:01,160 A 1275 je naše odpověď. 61 00:03:01,160 --> 00:03:02,253