1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Să scrie un program care solicită utilizatorului pentru un rezultat pozitiv 2 00:00:02,830 --> 00:00:05,950 număr întreg, n, iar apoi afiseaza suma tuturor numerelor 3 00:00:05,950 --> 00:00:07,980 între 1 și n. 4 00:00:07,980 --> 00:00:10,580 Ei bine, aici avem principal, pe care am deja scris în avans. 5 00:00:10,580 --> 00:00:13,520 Si observa aici, la partea de sus a principal, declar un int n. 6 00:00:13,520 --> 00:00:16,079 >> I apoi, în interiorul de o vreme do buclă, în primul rând imprima 7 00:00:16,079 --> 00:00:17,530 întreg pozitiv, vă rog. 8 00:00:17,530 --> 00:00:21,070 Apoi am proceda pentru a obține un număr întreg de la utilizatorul cu get bibliotecii CS50 lui 9 00:00:21,070 --> 00:00:22,070 Funcția int. 10 00:00:22,070 --> 00:00:26,410 Și apoi în starea mea în timp ce aici, eu asigurați-vă că n este mai mare sau 11 00:00:26,410 --> 00:00:30,480 egală cu 1, înainte de fapt am continua de a face ceva cu acea valoare. 12 00:00:30,480 --> 00:00:31,520 >> Ce trebuie să fac în continuare? 13 00:00:31,520 --> 00:00:34,690 Ei bine, eu numesc o funcție pe care am de gând pentru a apela sigma, reprezentant al 14 00:00:34,690 --> 00:00:37,700 sigma de capital pe care le-ar putea avea a reamintit de la clase de matematica care 15 00:00:37,700 --> 00:00:40,860 indică faptul că doriți să însumați ceva la o valoare la alta. 16 00:00:40,860 --> 00:00:44,540 Și indiferent de faptul că se întoarce funcție ca valoarea sa de întoarcere, am de gând pentru a stoca 17 00:00:44,540 --> 00:00:46,500 într-o variabilă numită răspuns. 18 00:00:46,500 --> 00:00:50,280 >> În cele din urmă, în ultima mea linie în principal, eu sunt va imprima ceea ce răspuns este. 19 00:00:50,280 --> 00:00:52,840 Desigur, noi nu au fost încă puse în aplicare această funcție sigma. 20 00:00:52,840 --> 00:00:54,590 Deci, cum putem merge despre a face asta? 21 00:00:54,590 --> 00:00:58,040 >> Ei bine, în partea de jos de dosarul meu, am va continua să declare o funcție 22 00:00:58,040 --> 00:00:59,450 care returnează un int. 23 00:00:59,450 --> 00:01:01,630 Și am de gând pentru a apela că funcția de sigma. 24 00:01:01,630 --> 00:01:06,340 Și am de gând să se precizeze că, în calitate de intrare că funcția acceptă, de asemenea, un int. 25 00:01:06,340 --> 00:01:09,800 Și eu voi numi doar, pentru a fi distincte, m în loc de n. 26 00:01:09,800 --> 00:01:12,120 Dar am fi putut numit mai nimic ne-am dori. 27 00:01:12,120 --> 00:01:14,930 >> În interiorul corpului de această funcție sunt va proceda la o folosească familiar 28 00:01:14,930 --> 00:01:16,420 construi, și anume o buclă. 29 00:01:16,420 --> 00:01:19,010 Dar eu sunt, de asemenea, de gând să faci un pic de bun-simț de verificare pentru a vă asigura că 30 00:01:19,010 --> 00:01:22,340 utilizatorul nu-mi oferi un număr că eu nu mă aștept. 31 00:01:22,340 --> 00:01:28,010 În special, am de gând să fac în cazul în care m este mai puțin de 1 și, oarecum arbitrar, 32 00:01:28,010 --> 00:01:31,280 Eu pur și simplu de gând să se întoarcă 0 dacă numărul nu este un rezultat pozitiv 33 00:01:31,280 --> 00:01:32,800 întreg ca ma astept. 34 00:01:32,800 --> 00:01:36,920 >> Apoi, am de gând să declare o variabilă numit sumă și inițializa-l la 0. 35 00:01:36,920 --> 00:01:40,810 Aceasta va stoca în final suma toate numerele între 1 și m. 36 00:01:40,810 --> 00:01:43,550 Și apoi am de gând să utilizeze un familiar construct buclă înainte. 37 00:01:43,550 --> 00:01:50,272 Pentru int i devine 1, i este mai mică decât sau egal cu m, i plus plus. 38 00:01:50,272 --> 00:01:54,010 Și apoi, în corpul acestei buclă, am pur și simplu de gând să faci suma 39 00:01:54,010 --> 00:01:56,350 este egal cu suma plus i. 40 00:01:56,350 --> 00:02:01,900 Sau, mai simplu, suma plus i egal, care realizează același rezultat. 41 00:02:01,900 --> 00:02:04,810 >> Și apoi în cele din urmă, trebuie să se întoarcă suma pe care l-am calculat. 42 00:02:04,810 --> 00:02:07,640 Așa că am adăuga în sumă de retur. 43 00:02:07,640 --> 00:02:08,560 >> Acum, eu nu am terminat încă. 44 00:02:08,560 --> 00:02:11,360 Am nevoie să învețe C că acest Funcția de fapt există. 45 00:02:11,360 --> 00:02:14,400 Și astfel varful dosarul meu am de gând să declare ceea ce am numit-o funcție 46 00:02:14,400 --> 00:02:18,270 prototip, identic cu semnătura pe care am folosit atunci când se definește funcția 47 00:02:18,270 --> 00:02:19,250 în urmă cu o clipă. 48 00:02:19,250 --> 00:02:22,450 >> Mai precis, chiar deasupra principal, Mă duc la tipul int 49 00:02:22,450 --> 00:02:26,080 sigma, int m, punct și virgulă. 50 00:02:26,080 --> 00:02:29,240 Nu de punere în aplicare a funcției din nou, pur și simplu se declara. 51 00:02:29,240 --> 00:02:32,800 Dacă acum am salva, compila, și a alerga acest programul, să vedem ce primesc. 52 00:02:32,800 --> 00:02:37,460 Face sigma 0 puncte slash sigma 0. 53 00:02:37,460 --> 00:02:41,050 Și acum să ofere un număr întreg pozitiv cum ar fi 2, care ar trebui să-mi dea 54 00:02:41,050 --> 00:02:45,920 trei, deoarece valorile între 1 și 2 sunt 1 plus 2 este egal cu 3. 55 00:02:45,920 --> 00:02:47,300 Și într-adevăr, asta e ceea ce primesc. 56 00:02:47,300 --> 00:02:49,940 >> Să-l rulați din nou, acest lucru timp cu, să zicem, 3. 57 00:02:49,940 --> 00:02:53,470 Așa că ar trebui să 1 plus 2 plus 3 ar trebui să-mi dea 6. 58 00:02:53,470 --> 00:02:54,740 Și într-adevăr, eu nu te 6. 59 00:02:54,740 --> 00:02:57,380 >> Și să încercăm o valoare trecut, spun 50. 60 00:02:57,380 --> 00:03:01,160 Și 1275 este răspunsul nostru. 61 00:03:01,160 --> 00:03:02,253