1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Írjunk egy programot, amely felszólítja a felhasználót, a pozitív 2 00:00:02,830 --> 00:00:05,950 egész szám, n, majd kiírja összege az összes számot 3 00:00:05,950 --> 00:00:07,980 1 és n közötti. 4 00:00:07,980 --> 00:00:10,580 Nos, itt van fő, amit már már írt előre. 5 00:00:10,580 --> 00:00:13,520 És észre, itt a tetején fő, kijelentem egy int n. 6 00:00:13,520 --> 00:00:16,079 >> Aztán, belsejében egy do, míg loop, először nyomtassa ki 7 00:00:16,079 --> 00:00:17,530 pozitív egész szám, kérem. 8 00:00:17,530 --> 00:00:21,070 Aztán folytassa, hogy kap egy egész szám A felhasználó a CS50 könyvtár get 9 00:00:21,070 --> 00:00:22,070 int funkciót. 10 00:00:22,070 --> 00:00:26,410 És akkor én, míg állapotban van, azt megbizonyosodjon arról, hogy az n-nél nagyobb vagy 11 00:00:26,410 --> 00:00:30,480 egyenlő 1-gyel, mielőtt ténylegesen folytatja tenni valamit ezzel az értékkel. 12 00:00:30,480 --> 00:00:31,520 >> Mit tegyek most? 13 00:00:31,520 --> 00:00:34,690 Nos, hívja a függvényt, hogy fogok hívni sigma, képviselője 14 00:00:34,690 --> 00:00:37,700 tőke szigma hogy lehet, hogy emlékeztetett a matematikai osztályok 15 00:00:37,700 --> 00:00:40,860 azt jelzi, hogy szeretne összegezni valamit az egyik értéket a másikra. 16 00:00:40,860 --> 00:00:44,540 És bármit is függvény, mint visszatérési értéke, fogom tárolni 17 00:00:44,540 --> 00:00:46,500 A változó nevű választ. 18 00:00:46,500 --> 00:00:50,280 >> Végül, az utolsó sorban a fő vagyok a nyomdába, hogy mi válasz. 19 00:00:50,280 --> 00:00:52,840 Persze, még nem hajtotta végre ezt a funkciót szigma. 20 00:00:52,840 --> 00:00:54,590 Szóval hogyan lehet járni csinálja? 21 00:00:54,590 --> 00:00:58,040 >> Nos, az alján a fájl, én vagyok fog eljárni, hogy állapítsa meg a funkciót 22 00:00:58,040 --> 00:00:59,450 hogy ad vissza int. 23 00:00:59,450 --> 00:01:01,630 És én fogom hívni ezt a funkciót szigma. 24 00:01:01,630 --> 00:01:06,340 És én fogom megadni, hogy az input ez a funkció is elfogadja az int. 25 00:01:06,340 --> 00:01:09,800 És én hívom csak, hogy megkülönböztethető, m helyett n. 26 00:01:09,800 --> 00:01:12,120 De volna nevezte a a legtöbb semmit szeretnénk. 27 00:01:12,120 --> 00:01:14,930 >> Belül a szervezet ezt a funkciót vagyok majd folytassa egy ismerős 28 00:01:14,930 --> 00:01:16,420 építeni, azaz a hurok. 29 00:01:16,420 --> 00:01:19,010 De én is csinálni egy kis józanság Ellenőrizzük, hogy a 30 00:01:19,010 --> 00:01:22,340 felhasználó nem adja meg nekem egy számot hogy én nem számítottam. 31 00:01:22,340 --> 00:01:28,010 Különösen azt fogom csinálni, ha m kevesebb, mint 1, és némileg önkényesen, 32 00:01:28,010 --> 00:01:31,280 Én egyszerűen megy vissza 0, ha a szám nem pozitív 33 00:01:31,280 --> 00:01:32,800 egész, ahogy várnánk. 34 00:01:32,800 --> 00:01:36,920 >> Akkor én megyek, hogy állapítsa meg a változó hívott összeg és inicializálni 0-ra. 35 00:01:36,920 --> 00:01:40,810 Ez végső soron tárolja az összege összes számot 1 és m közötti. 36 00:01:40,810 --> 00:01:43,550 És akkor fogok egy ismerős forward loop konstrukció. 37 00:01:43,550 --> 00:01:50,272 Az int i lesz 1, i kevesebb, mint vagy egyenlő, m, i plusz plusz. 38 00:01:50,272 --> 00:01:54,010 És akkor, a testen belül a jelen loop, én csak csinálni összeg 39 00:01:54,010 --> 00:01:56,350 egyenlő összeget plusz. 40 00:01:56,350 --> 00:02:01,900 Vagy még egyszerűbben, összege és egyenlő i, amely megvalósítja ugyanazt az eredményt. 41 00:02:01,900 --> 00:02:04,810 >> És akkor végül, azt vissza kell Az összeg, amit kiszámítani. 42 00:02:04,810 --> 00:02:07,640 Szóval hozzá cserébe összeget. 43 00:02:07,640 --> 00:02:08,560 >> Most még nincs kész. 44 00:02:08,560 --> 00:02:11,360 Meg kell tanítani a C, hogy ez a funkció valóban létezik. 45 00:02:11,360 --> 00:02:14,400 És így a tetején a fájl fogom bejelenteni mi már nevezett funkció 46 00:02:14,400 --> 00:02:18,270 prototípus, azonos az aláírás hogy használtam meghatározásakor a funkció 47 00:02:18,270 --> 00:02:19,250 egy pillanattal ezelőtt. 48 00:02:19,250 --> 00:02:22,450 >> Pontosabban, csak a fenti fő, Megyek típus int 49 00:02:22,450 --> 00:02:26,080 Sigma, int m, pontosvessző. 50 00:02:26,080 --> 00:02:29,240 Nem hajtják végre a funkciót újra, egyszerűen kijelentette azt. 51 00:02:29,240 --> 00:02:32,800 Ha most menteni, fordítsd, és futtassa ezt programot, lássuk, mit kapok. 52 00:02:32,800 --> 00:02:37,460 Legyen sigma 0 pont perjel szigma 0-ra. 53 00:02:37,460 --> 00:02:41,050 És most nézzük, hogy egy pozitív egész mint a 2, ami nekem 54 00:02:41,050 --> 00:02:45,920 három, mert az értékek közötti 1 és 2 1 3 plusz 2 egyenlő. 55 00:02:45,920 --> 00:02:47,300 És valóban, ez az, amit kapok. 56 00:02:47,300 --> 00:02:49,940 >> Fussunk újra, ez a időt, mondjuk, 3. 57 00:02:49,940 --> 00:02:53,470 Szóval kéne 1 plusz 2 plusz 3. adj 6. 58 00:02:53,470 --> 00:02:54,740 És valóban, én kap 6. 59 00:02:54,740 --> 00:02:57,380 >> És próbáljuk meg egy utolsó érték, mondjuk 50. 60 00:02:57,380 --> 00:03:01,160 És a 1275 is a választ. 61 00:03:01,160 --> 00:03:02,253