1 00:00:00,000 --> 00:00:02,830 >> INTERLOCUTEUR 1: Écrivons un programme qui invite l'utilisateur à un positif 2 00:00:02,830 --> 00:00:05,950 entier, n, puis en imprime la somme de tous les nombres 3 00:00:05,950 --> 00:00:07,980 entre 1 et n. 4 00:00:07,980 --> 00:00:10,580 Eh bien, nous avons principale, que je n'ai déjà écrit à l'avance. 5 00:00:10,580 --> 00:00:13,520 Et remarquez ici au sommet de principale, je déclare un int n. 6 00:00:13,520 --> 00:00:16,079 >> Je puis, à l'intérieur d'un tout do boucle, d'abord imprimer 7 00:00:16,079 --> 00:00:17,530 entier positif, s'il vous plaît. 8 00:00:17,530 --> 00:00:21,070 Puis-je procéder pour obtenir un nombre entier de l'utilisateur avec le get de la bibliothèque CS50 9 00:00:21,070 --> 00:00:22,070 int fonction. 10 00:00:22,070 --> 00:00:26,410 Et puis, dans mon état de tout ici, je faire en sorte que n est supérieur ou 11 00:00:26,410 --> 00:00:30,480 égal à 1 avant que je procède de faire quelque chose avec cette valeur. 12 00:00:30,480 --> 00:00:31,520 >> Que dois-je faire? 13 00:00:31,520 --> 00:00:34,690 Eh bien, je l'appelle une fonction que je vais appeler sigma, représentant de la 14 00:00:34,690 --> 00:00:37,700 sigma de capital que vous pourriez avoir rappelé de cours de mathématiques que 15 00:00:37,700 --> 00:00:40,860 indique que vous voulez résumer quelque chose d'une valeur à une autre. 16 00:00:40,860 --> 00:00:44,540 Et tout ce que cette fonction retourne comme sa valeur de retour, je vais stocker 17 00:00:44,540 --> 00:00:46,500 dans une variable appelée réponse. 18 00:00:46,500 --> 00:00:50,280 >> Enfin, dans ma dernière ligne principale, je suis va imprimer ce réponse. 19 00:00:50,280 --> 00:00:52,840 Bien sûr, nous n'avons pas encore mis en œuvre cette fonction sigma. 20 00:00:52,840 --> 00:00:54,590 Alors, comment allons-nous faire cela? 21 00:00:54,590 --> 00:00:58,040 >> Eh bien, au fond de mon dossier, je suis va procéder à déclarer une fonction 22 00:00:58,040 --> 00:00:59,450 qui renvoie un int. 23 00:00:59,450 --> 00:01:01,630 Et je vais appeler que la fonction sigma. 24 00:01:01,630 --> 00:01:06,340 Et je vais préciser que comme entrée cette fonction accepte également un int. 25 00:01:06,340 --> 00:01:09,800 Et je vais l'appeler tout simplement, d'être distincte, m au lieu de n. 26 00:01:09,800 --> 00:01:12,120 Mais nous aurions pu appelé le plus tout ce que nous aimerions. 27 00:01:12,120 --> 00:01:14,930 >> A l'intérieur du corps de cette fonction, je suis allons procéder pour utiliser un familier 28 00:01:14,930 --> 00:01:16,420 construire, à savoir une boucle. 29 00:01:16,420 --> 00:01:19,010 Mais je vais aussi faire un peu de bon sens vérification pour s'assurer que la 30 00:01:19,010 --> 00:01:22,340 utilisateur ne me donne pas un nombre que je ne m'attends pas. 31 00:01:22,340 --> 00:01:28,010 En particulier, je vais faire si m est inférieur à 1 et, un peu arbitrairement, 32 00:01:28,010 --> 00:01:31,280 Je vais simplement retourner 0 si le nombre n'est pas un positif 33 00:01:31,280 --> 00:01:32,800 entier comme je le pense. 34 00:01:32,800 --> 00:01:36,920 >> Ensuite, je vais déclarer une variable appelé somme et l'initialiser à 0. 35 00:01:36,920 --> 00:01:40,810 Ce sera finalement stocker la somme de l'ensemble des nombres compris entre 1 et m. 36 00:01:40,810 --> 00:01:43,550 Et puis, je vais utiliser un familier avant construction de la boucle. 37 00:01:43,550 --> 00:01:50,272 Pour int i obtient 1, i est inférieur à ou égal à m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 Et ensuite, dans le corps de ce boucle, je vais tout simplement faire la somme 39 00:01:54,010 --> 00:01:56,350 est égal à la somme ainsi i. 40 00:01:56,350 --> 00:02:01,900 Ou, plus simplement, somme plus égal à i, qui permet d'obtenir le même résultat. 41 00:02:01,900 --> 00:02:04,810 >> Et puis enfin, je dois retourner la somme que j'ai calculé. 42 00:02:04,810 --> 00:02:07,640 J'ajoute donc en retour somme. 43 00:02:07,640 --> 00:02:08,560 >> Maintenant, je n'ai pas encore fini. 44 00:02:08,560 --> 00:02:11,360 J'ai besoin d'apprendre C que ce fonction existe réellement. 45 00:02:11,360 --> 00:02:14,400 Et au sommet de mon dossier, je vais déclarer ce que nous avons appelé une fonction 46 00:02:14,400 --> 00:02:18,270 prototype, identique à la signature que j'ai utilisé lors de la définition de la fonction 47 00:02:18,270 --> 00:02:19,250 il ya un moment. 48 00:02:19,250 --> 00:02:22,450 >> Plus précisément, juste au-dessus principal, Je vais taper int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, point-virgule. 50 00:02:26,080 --> 00:02:29,240 Non mise en œuvre de la fonction encore une fois, tout simplement déclarer. 51 00:02:29,240 --> 00:02:32,800 Si maintenant je sauve, compiler et exécuter ce programme, nous allons voir ce que je reçois. 52 00:02:32,800 --> 00:02:37,460 Faire sigma 0 point slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 Et maintenant, nous allons fournir un nombre entier positif comme 2, qui devrait me donner 54 00:02:41,050 --> 00:02:45,920 trois, parce que les valeurs entre 1 et 2 représentent une plus 2 est égal à 3. 55 00:02:45,920 --> 00:02:47,300 Et en effet, c'est ce que je reçois. 56 00:02:47,300 --> 00:02:49,940 >> Lançons nouveau, cette temps avec, par exemple, 3. 57 00:02:49,940 --> 00:02:53,470 Donc, je devrais obtenir 1 plus 2 plus 3 devrait me donner 6. 58 00:02:53,470 --> 00:02:54,740 Et en effet, je ne suis 6. 59 00:02:54,740 --> 00:02:57,380 >> Et nous allons essayer une dernière valeur, disons 50. 60 00:02:57,380 --> 00:03:01,160 Et 1275 est notre réponse. 61 00:03:01,160 --> 00:03:02,253