1 00:00:00,000 --> 00:00:02,830 >> SPEAKER 1: Да се ​​напише програма, която подсказва на потребителя за положителна 2 00:00:02,830 --> 00:00:05,950 число, п, и след това отпечатва сумата на всички числа 3 00:00:05,950 --> 00:00:07,980 между 1 и п. 4 00:00:07,980 --> 00:00:10,580 Е, тук имаме основната, които съм вече написан предварително. 5 00:00:10,580 --> 00:00:13,520 Отбележете тук в горната част на Основната, аз декларирам, едно цяло число п. 6 00:00:13,520 --> 00:00:16,079 >> Аз, вътре на правите, докато контур, първо разпечатате 7 00:00:16,079 --> 00:00:17,530 положително цяло число, моля. 8 00:00:17,530 --> 00:00:21,070 След това се процедира, за да получите число от потребителя с получите CS50 библиотеката 9 00:00:21,070 --> 00:00:22,070 INT функция. 10 00:00:22,070 --> 00:00:26,410 И след това в състоянието ми, докато тук, I уверете се, че н е по-голяма или 11 00:00:26,410 --> 00:00:30,480 равна на 1, преди аз всъщност се процедира да се направи нещо с тази стойност. 12 00:00:30,480 --> 00:00:31,520 >> Какво да правя след това? 13 00:00:31,520 --> 00:00:34,690 Е, аз наричам функция, която ще да се обадя на сигма, представител на 14 00:00:34,690 --> 00:00:37,700 капитал сигма, че може да се наложи Припомня се от математика класове, които 15 00:00:37,700 --> 00:00:40,860 показва, че искате да обобщим нещо от една стойност в друга. 16 00:00:40,860 --> 00:00:44,540 И каквото и тази функция се връща като неговото връщане стойност, аз отивам да се съхранява 17 00:00:44,540 --> 00:00:46,500 в променлива наречена отговор. 18 00:00:46,500 --> 00:00:50,280 >> И накрая, в последния ми линия в главната, аз съм ще разпечатате това, което е отговор. 19 00:00:50,280 --> 00:00:52,840 Разбира се, ние все още не са приложили тази функция сигма. 20 00:00:52,840 --> 00:00:54,590 Е, как ще го направим това? 21 00:00:54,590 --> 00:00:58,040 >> Е, в долната част на досието ми, аз съм ще продължи да се декларира функция 22 00:00:58,040 --> 00:00:59,450 че връща вътр. 23 00:00:59,450 --> 00:01:01,630 И аз отивам да се обадя тази функция сигма. 24 00:01:01,630 --> 00:01:06,340 И аз отивам да се уточни, че като вход тази функция приема също вътр. 25 00:01:06,340 --> 00:01:09,800 И аз ще го наричаме просто, за да бъде важно, т вместо п. 26 00:01:09,800 --> 00:01:12,120 Но бихме могли да го нарича почти всичко бихме искали. 27 00:01:12,120 --> 00:01:14,930 >> Вътре в тялото на тази функция съм ще продължи да се използва познатия 28 00:01:14,930 --> 00:01:16,420 изграждане, а именно една линия. 29 00:01:16,420 --> 00:01:19,010 Но аз също ще направя малко здрав разум проверка, за да се уверите, че 30 00:01:19,010 --> 00:01:22,340 потребител не ми предостави редица че аз не съм очаквал. 31 00:01:22,340 --> 00:01:28,010 По-специално, аз ще направя, ако m е по-малко от 1, и до известна степен произволно 32 00:01:28,010 --> 00:01:31,280 Аз съм просто ще върне 0, ако броят не е положителен 33 00:01:31,280 --> 00:01:32,800 цяло число, както аз очаквам. 34 00:01:32,800 --> 00:01:36,920 >> Тогава аз отивам да се декларира променлива нарича сума и го инициализира с 0. 35 00:01:36,920 --> 00:01:40,810 Това в крайна сметка ще се съхранява на сумата на всички числа между 1 и т. 36 00:01:40,810 --> 00:01:43,550 И тогава аз ще използвам един познат напред контур конструкт. 37 00:01:43,550 --> 00:01:50,272 За Int аз получава едно, аз е по-малко от или равно на m, аз плюс плюс. 38 00:01:50,272 --> 00:01:54,010 И след това, в рамките на тялото на този контур, аз просто ще направя сума 39 00:01:54,010 --> 00:01:56,350 се равнява на сума плюс аз. 40 00:01:56,350 --> 00:02:01,900 Или, по-просто, плюс сума се равнява на I, който постига същия резултат. 41 00:02:01,900 --> 00:02:04,810 >> И тогава най-накрая, трябва да се върнете сумата, която съм изчислява. 42 00:02:04,810 --> 00:02:07,640 Така че мога да добавя в замяна сума. 43 00:02:07,640 --> 00:02:08,560 >> Сега аз все още не съм свършил. 44 00:02:08,560 --> 00:02:11,360 Трябва да науча C, че това функция действително съществува. 45 00:02:11,360 --> 00:02:14,400 И така, на върха на моя файл Отивам да декларират това, което сме се нарича функция 46 00:02:14,400 --> 00:02:18,270 прототип, идентичен с подписа че използва при определяне на функцията 47 00:02:18,270 --> 00:02:19,250 преди малко. 48 00:02:19,250 --> 00:02:22,450 >> По-конкретно, точно над главния, Отивам да напишете Int 49 00:02:22,450 --> 00:02:26,080 сигма, вътр m, точка и запетая. 50 00:02:26,080 --> 00:02:29,240 Не е в изпълнение на функцията отново, трябва само да я декларирате. 51 00:02:29,240 --> 00:02:32,800 Ако аз сега спаси, компилирате и стартирате тази програма, нека да видим какво получавам. 52 00:02:32,800 --> 00:02:37,460 Направете сигма 0 точки наклонена черта сигма 0. 53 00:02:37,460 --> 00:02:41,050 А сега нека да се осигури положително число като две, които трябва да ми дадете 54 00:02:41,050 --> 00:02:45,920 три, защото стойностите между 1 и 2 са един плюс две е равно на 3. 55 00:02:45,920 --> 00:02:47,300 И наистина, това е, което имам. 56 00:02:47,300 --> 00:02:49,940 >> Нека да го стартирате отново, този време с, да речем, три. 57 00:02:49,940 --> 00:02:53,470 Така че аз трябва да получи един плюс две плюс 3, трябва да ми даде 6. 58 00:02:53,470 --> 00:02:54,740 И наистина, аз разбирам 6. 59 00:02:54,740 --> 00:02:57,380 >> И нека се опитаме за последен стойност, да речем 50. 60 00:02:57,380 --> 00:03:01,160 И 1275 е нашият отговор. 61 00:03:01,160 --> 00:03:02,253