1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Ni skribi programon kiu stimulanta la uzanto por pozitiva 2 00:00:02,830 --> 00:00:05,950 entjera, n, kaj poste presas el la sumo de ĉiuj nombroj 3 00:00:05,950 --> 00:00:07,980 inter 1 kaj n. 4 00:00:07,980 --> 00:00:10,580 Nu, jen ni havas ĉefan, kiun mi havas jam skribita anticipe. 5 00:00:10,580 --> 00:00:13,520 Kaj rimarkos ĉi tie ĉe la supro de ĉefa, mi deklaru int n. 6 00:00:13,520 --> 00:00:16,079 >> Mi tiam, ene de la do dum buklo, unue printi 7 00:00:16,079 --> 00:00:17,530 pozitiva entjero, bonvole. 8 00:00:17,530 --> 00:00:21,070 Mi tiam procedas akiri entjero el la uzanto kun la CS50 biblioteko get 9 00:00:21,070 --> 00:00:22,070 int funkcio. 10 00:00:22,070 --> 00:00:26,410 Kaj tiam en miaj dum kondiĉo tie, mi certigi ke n estas pli granda ol aŭ 11 00:00:26,410 --> 00:00:30,480 egala al 1 antaux mi reale procedi fari ion kun tiu valoro. 12 00:00:30,480 --> 00:00:31,520 >> Kion mi faru? 13 00:00:31,520 --> 00:00:34,690 Nu, mi nomas funkcio, kiun mi tuj voki sigma, reprezentanto de la 14 00:00:34,690 --> 00:00:37,700 ĉefurbo sigma, ke vi havu memorigis de math klasoj kiuj 15 00:00:37,700 --> 00:00:40,860 indikas, ke vi volas resumi ion de unu valoro al alia. 16 00:00:40,860 --> 00:00:44,540 Kaj kio ajn tiu funkcio redonas kiel lia reveno valoro, Mi tuj stoki 17 00:00:44,540 --> 00:00:46,500 en variablo nomata respondo. 18 00:00:46,500 --> 00:00:50,280 >> Fine, en mia lasta linio en ĉefa, mi estas tuj presi kia respondo estas. 19 00:00:50,280 --> 00:00:52,840 Kompreneble, ni ankoraux ne implementado tiun funkcion sigmo. 20 00:00:52,840 --> 00:00:54,590 Do kiel fari ni iru sur la fari tion? 21 00:00:54,590 --> 00:00:58,040 >> Nu, ĉe la fundo de mia dosiero, mi estas tuj pluiri al deklari funkcio 22 00:00:58,040 --> 00:00:59,450 ke redonas int. 23 00:00:59,450 --> 00:01:01,630 Kaj mi tuj vokos ke funkcio sigmo. 24 00:01:01,630 --> 00:01:06,340 Kaj mi tuj specifi ke kiel enigo ke funkcio akceptas ankaŭ int. 25 00:01:06,340 --> 00:01:09,800 Kaj mi vokos lin nur, ke ili estu distinga, m anstataŭ n. 26 00:01:09,800 --> 00:01:12,120 Sed ni povus nomi ĝin la plej ion ni ŝatus. 27 00:01:12,120 --> 00:01:14,930 >> Interne de la korpo de ĉi tiu funkcio mi estas tuj pluiri al uzi familiaran 28 00:01:14,930 --> 00:01:16,420 konstrui, nome banton. 29 00:01:16,420 --> 00:01:19,010 Sed mi ankaux faros iom de la prudento kontrolanta por certigi, ke la 30 00:01:19,010 --> 00:01:22,340 uzanto ne havigi min kun nombro ke mi ne atendis. 31 00:01:22,340 --> 00:01:28,010 Specife, mi iras fari se m estas malpli ol 1 kaj, iom arbitre, 32 00:01:28,010 --> 00:01:31,280 Mi simple tuj revenos 0 se La numero ne estas pozitiva 33 00:01:31,280 --> 00:01:32,800 entjero kiel mi atendis. 34 00:01:32,800 --> 00:01:36,920 >> Tiam mi tuj deklari variablon nomata sumo kaj pravalorizi ĝin al 0. 35 00:01:36,920 --> 00:01:40,810 Ĉi tio finfine stoki la sumo de ĉiuj el la numeroj inter 1 kaj m. 36 00:01:40,810 --> 00:01:43,550 Kaj poste mi iros por uzi familiaran antaŭen buklo konstrui. 37 00:01:43,550 --> 00:01:50,272 Por int i gets 1, i estas malpli ol aŭ egala al m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 Kaj poste, ene de la korpo de cxi tiu buklo, mi simple tuj faros sumo 39 00:01:54,010 --> 00:01:56,350 egalas sumon plus i. 40 00:01:56,350 --> 00:02:01,900 Aux, pli simple, sumo plus egalas i, kiuj atingas la saman rezulton. 41 00:02:01,900 --> 00:02:04,810 >> Kaj poste persiste, mi bezonas reveni la sumo, kiun mi komputita. 42 00:02:04,810 --> 00:02:07,640 Do mi aldonas rekompence sumo. 43 00:02:07,640 --> 00:02:08,560 >> Nun mi ne faris tion ankoraŭ. 44 00:02:08,560 --> 00:02:11,360 Mi bezonas instrui C ke tiu funkcio reale ekzistas. 45 00:02:11,360 --> 00:02:14,400 Kaj tiel sur la pinto de mia dosiero Mi tuj rakontos kion ni nomas funkcio 46 00:02:14,400 --> 00:02:18,270 prototipon, identa al la signumo kiun mi uzis kiam difini la funkcio 47 00:02:18,270 --> 00:02:19,250 antaŭ momento. 48 00:02:19,250 --> 00:02:22,450 >> Specife, tuj super la ĉefa, Mi tuj tajpi int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, punktokomo. 50 00:02:26,080 --> 00:02:29,240 Ne realiganta la funkcio denove, simple deklarante ĝin. 51 00:02:29,240 --> 00:02:32,800 Se mi nun savu, kompili, kaj kuri ĉi programo, ni vidu kion mi akiras. 52 00:02:32,800 --> 00:02:37,460 Faru sigma 0 dot oblikvo sigma 0. 53 00:02:37,460 --> 00:02:41,050 Kaj nun ni ofertas pozitiva entjero kiel 2, kiu devus doni al mi 54 00:02:41,050 --> 00:02:45,920 tri, ĉar la valorojn inter 1 kaj 2 estas 1 plus 2 egalas 3. 55 00:02:45,920 --> 00:02:47,300 Kaj efektive, jen kion mi akiras. 56 00:02:47,300 --> 00:02:49,940 >> Ni kuras ĝi denove, ĉi tempo kun, ekzemple, 3. 57 00:02:49,940 --> 00:02:53,470 Do mi devas ricevi 1 plus 2 plus 3 Donu al mi la 6. 58 00:02:53,470 --> 00:02:54,740 Kaj efektive, mi ricevas 6. 59 00:02:54,740 --> 00:02:57,380 >> Kaj ni provu unu lasta valoro, diri 50. 60 00:02:57,380 --> 00:03:01,160 Kaj 1.275 estas nia respondo. 61 00:03:01,160 --> 00:03:02,253