1 00:00:00,000 --> 00:00:02,830 >> LUIDSPREKER 1: Laten we een programma schrijven dat vraagt ​​de gebruiker om een ​​positieve 2 00:00:02,830 --> 00:00:05,950 integer, n, en dan drukt de som van alle getallen 3 00:00:05,950 --> 00:00:07,980 tussen 1 en n. 4 00:00:07,980 --> 00:00:10,580 Nou, hier hebben we hoofdgerecht, die ik heb al op voorhand geschreven. 5 00:00:10,580 --> 00:00:13,520 En let hier op de top van belangrijkste, verklaar ik een int n. 6 00:00:13,520 --> 00:00:16,079 >> Vervolgens heb ik, de binnenkant van een doe terwijl lus, eerst uit te printen 7 00:00:16,079 --> 00:00:17,530 positief geheel getal, alstublieft. 8 00:00:17,530 --> 00:00:21,070 Dan ga ik naar een geheel getal te krijgen van de gebruiker met Get The CS50 bibliotheek 9 00:00:21,070 --> 00:00:22,070 int functie. 10 00:00:22,070 --> 00:00:26,410 En dan in mijn terwijl toestand hier, ik Zorg ervoor dat n groter dan of 11 00:00:26,410 --> 00:00:30,480 gelijk aan 1 voordat ik eigenlijk verder om iets te doen met die waarde. 12 00:00:30,480 --> 00:00:31,520 >> Wat moet ik nu doen? 13 00:00:31,520 --> 00:00:34,690 Nou, ik noem een ​​functie die ik ga naar sigma, vertegenwoordiger van de bel 14 00:00:34,690 --> 00:00:37,700 kapitaal sigma die u zou kunnen hebben teruggeroepen uit wiskunde klassen die 15 00:00:37,700 --> 00:00:40,860 geeft aan dat u iets wilt samenvatten ve waarde naar de andere. 16 00:00:40,860 --> 00:00:44,540 En wat die functie terugkeert als de return waarde, ik ga slaan 17 00:00:44,540 --> 00:00:46,500 in een variabele genaamd antwoord. 18 00:00:46,500 --> 00:00:50,280 >> Tot slot, in mijn laatste regel in de belangrijkste, ik ben gaat om uit te drukken wat er antwoord is. 19 00:00:50,280 --> 00:00:52,840 Natuurlijk hebben we nog niet geïmplementeerd deze functie sigma. 20 00:00:52,840 --> 00:00:54,590 Dus hoe kunnen we dat het beste aan? 21 00:00:54,590 --> 00:00:58,040 >> Nou ja, op de bodem van mijn dossier, ik ben zal gaan naar een functie verklaren 22 00:00:58,040 --> 00:00:59,450 dat geeft een int. 23 00:00:59,450 --> 00:01:01,630 En ik ga bellen die functie sigma. 24 00:01:01,630 --> 00:01:06,340 En ik ga om aan te geven dat als input die functie aanvaardt ook een int. 25 00:01:06,340 --> 00:01:09,800 En ik zal het gewoon noemen, te zijn onderscheiden, m plaats van n. 26 00:01:09,800 --> 00:01:12,120 Maar we konden het hebben genoemd de meeste alles wat we zouden willen. 27 00:01:12,120 --> 00:01:14,930 >> Binnenkant van het lichaam van deze functie ben ik zal gaan naar een bekende gebruiken 28 00:01:14,930 --> 00:01:16,420 construeren, namelijk een lus. 29 00:01:16,420 --> 00:01:19,010 Maar ik ga ook een beetje gezond verstand doen controleren om ervoor te zorgen dat de 30 00:01:19,010 --> 00:01:22,340 gebruiker hoeft me niet te voorzien van een aantal dat ik niet verwacht. 31 00:01:22,340 --> 00:01:28,010 In het bijzonder, ga ik doen als m minder dan 1 en enigszins arbitrair 32 00:01:28,010 --> 00:01:31,280 Ik ga gewoon naar 0 terug als het nummer is niet een positief 33 00:01:31,280 --> 00:01:32,800 integer als ik verwacht. 34 00:01:32,800 --> 00:01:36,920 >> Dan ga ik naar een variabele declareren genoemd bedrag en initialiseren op 0. 35 00:01:36,920 --> 00:01:40,810 Dit zal uiteindelijk de som van slaan alle getallen tussen 1 en m. 36 00:01:40,810 --> 00:01:43,550 En dan ga ik naar een vertrouwde gebruiken vooruit lusconstructie. 37 00:01:43,550 --> 00:01:50,272 Voor int i krijgt 1, i minder dan of gelijk aan m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 En dan, in het lichaam van deze loop, ga ik gewoon naar som doen 39 00:01:54,010 --> 00:01:56,350 is gelijk aan som plus i. 40 00:01:56,350 --> 00:02:01,900 Of, eenvoudiger, som plus evenaart i, die bereikt hetzelfde resultaat. 41 00:02:01,900 --> 00:02:04,810 >> En dan tot slot, ik moet terugkeren de som die ik heb berekend. 42 00:02:04,810 --> 00:02:07,640 Dus voeg ik in ruil som. 43 00:02:07,640 --> 00:02:08,560 >> Nu ben ik nog niet klaar. 44 00:02:08,560 --> 00:02:11,360 Ik moet leren C dat deze functie daadwerkelijk bestaat. 45 00:02:11,360 --> 00:02:14,400 En dus boven op mijn dossier ga ik verklaren wat we een functie hebben genoemd 46 00:02:14,400 --> 00:02:18,270 prototype, identiek aan de ondertekening die ik gebruikt bij het definiëren van de functie 47 00:02:18,270 --> 00:02:19,250 een moment geleden. 48 00:02:19,250 --> 00:02:22,450 >> Specifiek, net boven de belangrijkste, Ik ga int typen 49 00:02:22,450 --> 00:02:26,080 sigma, int m, puntkomma. 50 00:02:26,080 --> 00:02:29,240 Niet de uitvoering van de functie nogmaals, gewoon aangifte te doen. 51 00:02:29,240 --> 00:02:32,800 Als ik nu op te slaan, te compileren, en uitvoeren van deze programma, laten we eens kijken wat ik krijg. 52 00:02:32,800 --> 00:02:37,460 Maak sigma 0 dot slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 En laten we nu zorgen voor een positief geheel getal zoals 2, dat moet me 54 00:02:41,050 --> 00:02:45,920 drie, omdat de waarden tussen 1 en 2 1 plus 2 is gelijk aan 3. 55 00:02:45,920 --> 00:02:47,300 En inderdaad, dat is wat ik krijg. 56 00:02:47,300 --> 00:02:49,940 >> Laten we lopen het weer, dit tijd met, zeg, 3. 57 00:02:49,940 --> 00:02:53,470 Dus ik zou moeten krijgen 1 plus 2 plus 3 moet me 6. 58 00:02:53,470 --> 00:02:54,740 En inderdaad, ik krijg 6. 59 00:02:54,740 --> 00:02:57,380 >> En laten we proberen een laatste waarde, zeg 50. 60 00:02:57,380 --> 00:03:01,160 En 1275 is ons antwoord. 61 00:03:01,160 --> 00:03:02,253