1 00:00:00,000 --> 00:00:02,830 >> ALTAVEU 1: Anem a escriure un programa que sol · licita a l'usuari un positiu 2 00:00:02,830 --> 00:00:05,950 nombre enter, n, i després imprimeix fora la suma de tots els números 3 00:00:05,950 --> 00:00:07,980 entre 1 i n. 4 00:00:07,980 --> 00:00:10,580 Bé, aquí tenim principal, que he ja escrita per endavant. 5 00:00:10,580 --> 00:00:13,520 I notin aquí, a la part superior de principal, declaro 1 int n. 6 00:00:13,520 --> 00:00:16,079 >> Llavors, dins d'un temps do loop, primer imprimeixi 7 00:00:16,079 --> 00:00:17,530 enter positiu, si us plau. 8 00:00:17,530 --> 00:00:21,070 Llavors procedeixo a obtenir un nombre enter d' l'usuari amb get de la biblioteca CS50 9 00:00:21,070 --> 00:00:22,070 funció int. 10 00:00:22,070 --> 00:00:26,410 I després, en la meva condició mentre que aquí, assegurar-se que n és més gran que o 11 00:00:26,410 --> 00:00:30,480 igual a 1 abans que realment procedeixo fer alguna cosa amb aquest valor. 12 00:00:30,480 --> 00:00:31,520 >> Què faig ara? 13 00:00:31,520 --> 00:00:34,690 Bé, que jo anomeno una funció que em vaig cridar sigma, representant de la 14 00:00:34,690 --> 00:00:37,700 sigma majúscula que pugui tenir convocat de les classes de matemàtiques que 15 00:00:37,700 --> 00:00:40,860 indica que vol sumar alguna cosa d'un valor a un altre. 16 00:00:40,860 --> 00:00:44,540 I tot el que retorna la funció com el seu valor de retorn, ho vaig a guardar 17 00:00:44,540 --> 00:00:46,500 en una variable anomenada resposta. 18 00:00:46,500 --> 00:00:50,280 >> Finalment, en la meva última línia principal, estic va a imprimir el que la resposta és. 19 00:00:50,280 --> 00:00:52,840 Per descomptat, encara no hem implementat aquesta funció de Sigma. 20 00:00:52,840 --> 00:00:54,590 Llavors, com farem això? 21 00:00:54,590 --> 00:00:58,040 >> Bé, en el fons del meu arxiu, estic procedirà a declarar una funció 22 00:00:58,040 --> 00:00:59,450 que retorna un int. 23 00:00:59,450 --> 00:01:01,630 I jo vaig a trucar que Sigma funció. 24 00:01:01,630 --> 00:01:06,340 I jo vaig a especificar que com a entrada aquesta funció també accepta un int. 25 00:01:06,340 --> 00:01:09,800 I el trucaré simplement, per ser diferent, m en lloc de n. 26 00:01:09,800 --> 00:01:12,120 Però podríem haver cridat l' gairebé tot el que ens agradaria. 27 00:01:12,120 --> 00:01:14,930 >> A l'interior del cos d'aquesta funció que sóc va a procedir a utilitzar un familiar 28 00:01:14,930 --> 00:01:16,420 construir, és a dir, un bucle. 29 00:01:16,420 --> 00:01:19,010 Però jo també vaig a fer una mica de seny comprovació per assegurar-se que el 30 00:01:19,010 --> 00:01:22,340 usuari no em donarà un nombre que no estic esperant. 31 00:01:22,340 --> 00:01:28,010 En particular, em vaig a fer si m és menys d'1 i, una mica arbitràriament, 32 00:01:28,010 --> 00:01:31,280 Simplement vaig a tornar 0 si el nombre no és positiu 33 00:01:31,280 --> 00:01:32,800 sencer com espero. 34 00:01:32,800 --> 00:01:36,920 >> Llavors em vaig a declarar una variable anomenat suma i inicialitzar a 0. 35 00:01:36,920 --> 00:01:40,810 Al final, emmagatzemar la suma de tots els nombres entre 1 i m. 36 00:01:40,810 --> 00:01:43,550 I llavors vaig a utilitzar un familiar construcció de bucle cap endavant. 37 00:01:43,550 --> 00:01:50,272 Per int i obté 1, i és menor que o igual a m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 I després, dins del cos d'aquest loop, simplement faré suma 39 00:01:54,010 --> 00:01:56,350 és igual a la suma més i. 40 00:01:56,350 --> 00:02:01,900 O, més simplement, la suma és igual a més i, que aconsegueix el mateix resultat. 41 00:02:01,900 --> 00:02:04,810 >> I després, finalment, he de tornar la suma que he calculat. 42 00:02:04,810 --> 00:02:07,640 Així que afegeixo en suma retorn. 43 00:02:07,640 --> 00:02:08,560 >> Ara no he acabat encara. 44 00:02:08,560 --> 00:02:11,360 He de ensenyar a C que aquesta funció realment existeix. 45 00:02:11,360 --> 00:02:14,400 I així part de dalt del arxiu que vaig a declarar el que hem anomenat una funció 46 00:02:14,400 --> 00:02:18,270 prototip, idèntica a la signatura que he fet servir en la definició de la funció 47 00:02:18,270 --> 00:02:19,250 fa un moment. 48 00:02:19,250 --> 00:02:22,450 >> Específicament, just per sobre de principal, Vaig a escriure int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, punt i coma. 50 00:02:26,080 --> 00:02:29,240 No aplicació de la funció de nou, simplement declarar. 51 00:02:29,240 --> 00:02:32,800 Si ara puc guardar, compilar i executar aquest programa, anem a veure el que em passa. 52 00:02:32,800 --> 00:02:37,460 Feu sigma 0 punts slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 I ara anem a proporcionar un nombre enter positiu com 2, que hauria donar-me 54 00:02:41,050 --> 00:02:45,920 tres, perquè els valors entre 1 i 2 són 1 més 2 és igual a 3. 55 00:02:45,920 --> 00:02:47,300 I, de fet, això és el que em passa. 56 00:02:47,300 --> 00:02:49,940 >> Anem a córrer de nou, aquesta temps amb, diguem, 3. 57 00:02:49,940 --> 00:02:53,470 Així que hauria d'obtenir 1 més 2 més 3 m'hauria de donar 6. 58 00:02:53,470 --> 00:02:54,740 I, de fet, em poso 6. 59 00:02:54,740 --> 00:02:57,380 >> I intentarem un últim valor, diuen 50. 60 00:02:57,380 --> 00:03:01,160 I 1275 és la nostra resposta. 61 00:03:01,160 --> 00:03:02,253