1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: La oss skrive et program som ber brukeren for en positiv 2 00:00:02,830 --> 00:00:05,950 heltall, n, og deretter skrives ut summen av alle tallene 3 00:00:05,950 --> 00:00:07,980 mellom 1 og n.. 4 00:00:07,980 --> 00:00:10,580 Vel, her har vi hoved, som jeg har allerede skrevet på forhånd. 5 00:00:10,580 --> 00:00:13,520 Og legg merke til her på toppen av Hoved, erklærer jeg en int n. 6 00:00:13,520 --> 00:00:16,079 >> Jeg da, innsiden av en gjør mens loop, først skrive ut 7 00:00:16,079 --> 00:00:17,530 positive heltall, takk. 8 00:00:17,530 --> 00:00:21,070 Da videre for å få et helt tall fra brukeren med CS50 bibliotekets get 9 00:00:21,070 --> 00:00:22,070 int funksjon. 10 00:00:22,070 --> 00:00:26,410 Og så i min mens tilstanden her, jeg sørge for at n er større enn eller 11 00:00:26,410 --> 00:00:30,480 lik en før jeg faktisk fortsette for å gjøre noe med denne verdien. 12 00:00:30,480 --> 00:00:31,520 >> Hva gjør jeg nå? 13 00:00:31,520 --> 00:00:34,690 Vel, jeg kaller en funksjon som jeg kommer å ringe sigma, representant for 14 00:00:34,690 --> 00:00:37,700 kapital sigma at du kan ha tilbakekalt fra matematikk klasser som 15 00:00:37,700 --> 00:00:40,860 angir at du vil summere noe fra en verdi til en annen. 16 00:00:40,860 --> 00:00:44,540 Og uansett hva som fungerer avkastning som returverdien, kommer jeg til å lagre 17 00:00:44,540 --> 00:00:46,500 i en variabel kalt svar. 18 00:00:46,500 --> 00:00:50,280 >> Til slutt, i min siste linje i hoved, jeg er kommer til å skrive ut hva svaret er. 19 00:00:50,280 --> 00:00:52,840 Selvfølgelig har vi ikke ennå implementert denne funksjonen sigma. 20 00:00:52,840 --> 00:00:54,590 Så hvordan skal vi gå om du gjør det? 21 00:00:54,590 --> 00:00:58,040 >> Vel, på bunnen av filen min, jeg er kommer til å fortsette å erklære en funksjon 22 00:00:58,040 --> 00:00:59,450 som returnerer en int. 23 00:00:59,450 --> 00:01:01,630 Og jeg kommer til å ringe at funksjon sigma. 24 00:01:01,630 --> 00:01:06,340 Og jeg kommer til å spesifisere at som innspill at funksjonen aksepterer også en int. 25 00:01:06,340 --> 00:01:09,800 Og jeg skal kalle det bare, å være tydelig, m i stedet for n. 26 00:01:09,800 --> 00:01:12,120 Men vi kunne ha kalt det de fleste noe vi ønsker. 27 00:01:12,120 --> 00:01:14,930 >> Innsiden av kroppen av denne funksjonen jeg er kommer til å fortsette å bruke et kjent 28 00:01:14,930 --> 00:01:16,420 konstruere, nemlig en løkke. 29 00:01:16,420 --> 00:01:19,010 Men jeg også kommer til å gjøre litt av tilregnelighet sjekke for å være sikker på at den 30 00:01:19,010 --> 00:01:22,340 Brukeren trenger ikke gi meg med et nummer at jeg ikke er ventet. 31 00:01:22,340 --> 00:01:28,010 Spesielt kommer jeg til å gjøre hvis m er mindre enn 1 og, noe vilkårlig, 32 00:01:28,010 --> 00:01:31,280 Jeg rett og slett kommer til å returnere 0 hvis antallet er ikke en positiv 33 00:01:31,280 --> 00:01:32,800 heltall som jeg forventer. 34 00:01:32,800 --> 00:01:36,920 >> Så jeg kommer til å erklære en variabel kalt sum og initialisere den til 0. 35 00:01:36,920 --> 00:01:40,810 Dette vil til slutt lagrer summen av alle tall mellom 1 og m. 36 00:01:40,810 --> 00:01:43,550 Og så kommer jeg til å bruke et kjent frem sløyfe konstruere. 37 00:01:43,550 --> 00:01:50,272 For int i får en, er jeg mindre enn eller lik m, jeg pluss pluss. 38 00:01:50,272 --> 00:01:54,010 Og så, i hoveddelen av denne loop, er jeg rett og slett kommer til å gjøre summen 39 00:01:54,010 --> 00:01:56,350 tilsvarer summen pluss jeg. 40 00:01:56,350 --> 00:02:01,900 Eller, mer rett og slett, sum pluss lik i, som oppnår det samme resultat. 41 00:02:01,900 --> 00:02:04,810 >> Og så til slutt, jeg trenger å gå tilbake summen som jeg har beregnet. 42 00:02:04,810 --> 00:02:07,640 Så jeg legger i retur sum. 43 00:02:07,640 --> 00:02:08,560 >> Nå er jeg ikke ferdig ennå. 44 00:02:08,560 --> 00:02:11,360 Jeg trenger å lære C at dette funksjon faktisk eksisterer. 45 00:02:11,360 --> 00:02:14,400 Og så på toppen av filen min jeg kommer til å erklære det vi har kalt en funksjon 46 00:02:14,400 --> 00:02:18,270 prototype, identisk med signaturen som jeg brukte da funksjons 47 00:02:18,270 --> 00:02:19,250 et øyeblikk siden. 48 00:02:19,250 --> 00:02:22,450 >> Nærmere bestemt, like over hoved, Jeg kommer til å skrive int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, semikolon. 50 00:02:26,080 --> 00:02:29,240 Ikke implementere funksjonen igjen, er det bare å erklære det. 51 00:02:29,240 --> 00:02:32,800 Hvis jeg nå lagre, kompilere og kjøre denne programmet, la oss se hva jeg får. 52 00:02:32,800 --> 00:02:37,460 Gjør sigma 0 dot slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 Og nå skal vi gi et positivt heltall som to, noe som bør gi meg 54 00:02:41,050 --> 00:02:45,920 tre, fordi verdiene mellom 1 og 2 er 1 pluss 2 lik 3. 55 00:02:45,920 --> 00:02:47,300 Og ja, det er hva jeg får. 56 00:02:47,300 --> 00:02:49,940 >> La oss kjøre det igjen, denne tid med, si, tre. 57 00:02:49,940 --> 00:02:53,470 Så jeg bør få en pluss to pluss 3 bør gi meg seks. 58 00:02:53,470 --> 00:02:54,740 Og ja, jeg får seks. 59 00:02:54,740 --> 00:02:57,380 >> Og la oss prøve en siste verdi, sier 50. 60 00:02:57,380 --> 00:03:01,160 Og 1275 er vårt svar. 61 00:03:01,160 --> 00:03:02,253