1 00:00:00,000 --> 00:00:00,493 2 00:00:00,493 --> 00:00:09,860 >> [Музика свира] 3 00:00:09,860 --> 00:00:13,520 >> ЗАМИЛА цхан: Да ли бисте радије примате 10 милиона долара одмах, или примате 4 00:00:13,520 --> 00:00:17,460 пенија сваки дан у месецу, где сваки следећи дан, добијате 5 00:00:17,460 --> 00:00:21,280 удвостручи количину пенија ти добио дан раније? 6 00:00:21,280 --> 00:00:24,010 У пенија, идемо у доказати зашто би требало да 7 00:00:24,010 --> 00:00:27,000 дефинитивно узети пенија. 8 00:00:27,000 --> 00:00:29,130 Ваш посао је да пишем пенниес.ц-- 9 00:00:29,130 --> 00:00:33,330 Први програм који пита корисника како толико дана има у месецу и 10 00:00:33,330 --> 00:00:38,780 онда пита колико пенија корисник ће добити првог дана. 11 00:00:38,780 --> 00:00:41,780 Програм затим треба израчунати износ који ће корисник имати 12 00:00:41,780 --> 00:00:46,530 акумулиране на крају месец и приказати га. 13 00:00:46,530 --> 00:00:49,670 >> Ми можемо да прекинемо овај програм горе у неколико задатака. 14 00:00:49,670 --> 00:00:52,830 Ми ћемо морати да тражи више корисничких улаза - 15 00:00:52,830 --> 00:00:55,510 дане и месеце, и пеније првог дана. 16 00:00:55,510 --> 00:00:59,390 Морамо да пратите колико новца корисник има и ажурира га сваки 17 00:00:59,390 --> 00:01:03,060 дан, дуплирајући износ паре да добију. 18 00:01:03,060 --> 00:01:06,710 И на крају, ми смо штампају своје Укупна коначна, у доларима. 19 00:01:06,710 --> 00:01:08,570 >> Хајде да прво старт корисник уноси. 20 00:01:08,570 --> 00:01:11,560 Ја ћу да отворим апплес.ц, кратак програм који се бави 21 00:01:11,560 --> 00:01:13,840 са улаза и излаза. 22 00:01:13,840 --> 00:01:17,310 На врху овде, направила сам неке библиотека која ми треба - 23 00:01:17,310 --> 00:01:20,450 ЦС50 је библиотека и стандардни И / О библиотека. 24 00:01:20,450 --> 00:01:24,310 Ја одштампајте промпт помоћу принтф функција из 25 00:01:24,310 --> 00:01:25,660 стандардни И / О библиотека. 26 00:01:25,660 --> 00:01:29,740 Међутим, стварна инсистирање корисника дешава у следећем реду са овим 27 00:01:29,740 --> 00:01:33,650 Затамњена функција у ЦС50 библиотеци. 28 00:01:33,650 --> 00:01:38,300 >> Затамњена добија унос од корисника и осигурава унос је цео број. 29 00:01:38,300 --> 00:01:45,160 Тако да складиште корисников улаз у цео И, одузмите 1 од И, а затим 30 00:01:45,160 --> 00:01:47,610 исписати нову вредност ако ја. 31 00:01:47,610 --> 00:01:53,050 Након састављања апплес.ц коришћења команда "направи јабуке," Имам 32 00:01:53,050 --> 00:01:55,770 извршну датотеку јабуке. 33 00:01:55,770 --> 00:01:58,760 Трчање да, ја ћу улаз 1. 34 00:01:58,760 --> 00:02:02,600 Програм ми је рекао да Имам 0 јабуке остало. 35 00:02:02,600 --> 00:02:05,480 И то је радио како се очекивало. 36 00:02:05,480 --> 00:02:09,740 >> Дакле, хајде да то опет улаз 1 и негативан. 37 00:02:09,740 --> 00:02:13,950 Сада, што негативно количину јабука заиста нема смисла, али 38 00:02:13,950 --> 00:02:18,370 програм то прихвати, јер негативна 1, добро, то је цео број. 39 00:02:18,370 --> 00:02:22,740 И сада програм или чудовиште унутар програма једе негативан 40 00:02:22,740 --> 00:02:26,250 јабука, а сад имам негативан 2 јабуке. 41 00:02:26,250 --> 00:02:28,610 Хм, па то је једна лекција - 42 00:02:28,610 --> 00:02:32,965 иако Затамњена функција и сличне функције, као што су ГетФлов или 43 00:02:32,965 --> 00:02:38,100 ГетСтринг добију праву врсту података, морати да се уверите да је улаз чини 44 00:02:38,100 --> 00:02:41,430 осећај за ваш програм. 45 00:02:41,430 --> 00:02:45,500 >> У пенија, то неће учинити само брз за цео број, мораћете да 46 00:02:45,500 --> 00:02:49,550 да ли корисник унесе цео број да има смисла с обзиром на контекст. 47 00:02:49,550 --> 00:02:55,690 Месец може да има само 28, 29, 30, или 31 дана. 48 00:02:55,690 --> 00:02:59,160 Ми желимо да стално траже важећи цео број. 49 00:02:59,160 --> 00:03:03,240 Ако су улазни целобројну ван наше прихваћени границе, ми ћемо их навести 50 00:03:03,240 --> 00:03:07,190 поново и поново, све док не дајте нам важећи цео број. 51 00:03:07,190 --> 00:03:10,070 >> Подсетимо се "Понавља се до" блокира у Огреби? 52 00:03:10,070 --> 00:03:13,070 Можете направити сличан конструкт у Ц користећи "вхиле" петљу 53 00:03:13,070 --> 00:03:14,830 или "до-вхиле" петљу. 54 00:03:14,830 --> 00:03:18,280 Док петља структура има услов који морају бити испуњени за 55 00:03:18,280 --> 00:03:20,160 тело петље извршава. 56 00:03:20,160 --> 00:03:23,080 >> То би требало да изгледа мало слично, јер је као услов 57 00:03:23,080 --> 00:03:25,970 Греб блокови са угловима и иде у загради 58 00:03:25,970 --> 00:03:27,950 у "вхиле" петљу. 59 00:03:27,950 --> 00:03:30,600 Дакле, тај услов ће проверити да ли је цео број је у 60 00:03:30,600 --> 00:03:32,680 одговарајуће границе. 61 00:03:32,680 --> 00:03:36,620 Можете да подстакне цео помоћу Затамњена а затим изврши своје "време" 62 00:03:36,620 --> 00:03:41,030 петља, понављајући брза и штампање инструкције, а улаз 63 00:03:41,030 --> 00:03:43,470 није важећа. 64 00:03:43,470 --> 00:03:47,610 >> Други начин да се обезбеди одговарајући улаз за употребу је помоћу "до-вхиле" петљу, 65 00:03:47,610 --> 00:03:50,400 који је веома сличан вхиле петље. 66 00:03:50,400 --> 00:03:54,950 "До-вхиле" петља извршава код унутар тела оних а затим проверава 67 00:03:54,950 --> 00:03:57,150 да ли је услов испуњен или не. 68 00:03:57,150 --> 00:04:00,590 Ово је корисно за добијање корисничког уноса, јер знате да вам је потребна 69 00:04:00,590 --> 00:04:02,980 да подстакне их бар једном. 70 00:04:02,980 --> 00:04:07,200 Ако услов није испуњен, програм извршава линију по 71 00:04:07,200 --> 00:04:08,530 Ваша "до-вхиле" петљу. 72 00:04:08,530 --> 00:04:13,230 Ако је услов ипак испуњени, петља ће се поновити 73 00:04:13,230 --> 00:04:17,490 >> "До-вхиле" петљу за проверу корисничких Улаз ће изгледати овако. 74 00:04:17,490 --> 00:04:24,530 Изјављујем променљиве н, Затамњена, и поновите док н важи. 75 00:04:24,530 --> 00:04:28,040 И овај процес, сам објаснио, користио цео-тип података, који 76 00:04:28,040 --> 00:04:29,820 ћете користити за дане у месецу. 77 00:04:29,820 --> 00:04:33,560 Али ми знамо да је број пенија ће се гомилају брзо, тако да би 78 00:04:33,560 --> 00:04:39,160 складиштење веће бројеве, користите тип података Лонглонг, али запамтите исти 79 00:04:39,160 --> 00:04:42,590 принцип примењује валидације. 80 00:04:42,590 --> 00:04:47,070 >> Страшан, па када имамо два важећа доприноси од корисника - 81 00:04:47,070 --> 00:04:49,530 дана у месецу и пеније првог дана - 82 00:04:49,530 --> 00:04:52,870 можемо да пређемо на следећи део програма. 83 00:04:52,870 --> 00:04:56,680 Првог дана, корисник почиње са Међутим, многи су наведени пенија 84 00:04:56,680 --> 00:05:00,370 и износ пенија да добијају сутрадан је удвостручен. 85 00:05:00,370 --> 00:05:03,130 Тако да има смисла да пратите од ова два износа - 86 00:05:03,130 --> 00:05:08,890 колико новца корисник има и како многи паре они ће бити дат. 87 00:05:08,890 --> 00:05:13,760 >> Сада, раде нешто за 28 до 31 дана се понавља, па хајде да користе "за" 88 00:05:13,760 --> 00:05:18,220 петља да бисте прелазили преко дана у месеца, ажурирање и укупан пени 89 00:05:18,220 --> 00:05:21,010 износ сваки пут. 90 00:05:21,010 --> 00:05:23,550 "За" петља Синтакса садржи следеће - 91 00:05:23,550 --> 00:05:27,510 иницијализација, стање, и ажурирање. 92 00:05:27,510 --> 00:05:29,590 Ваша "за" петља ће иницијализовати променљива, када је 93 00:05:29,590 --> 00:05:31,380 Први улази у петљу. 94 00:05:31,380 --> 00:05:34,860 Ако је услов испуњен, тело петље ће се извршити. 95 00:05:34,860 --> 00:05:36,860 Након тога, ажурирање ће се извршити. 96 00:05:36,860 --> 00:05:40,900 Ако је услов и даље испуњен, петља ће се извршити и ажурирати, и 97 00:05:40,900 --> 00:05:45,820 Понављам, све док ваше стање је труе. 98 00:05:45,820 --> 00:05:51,080 >> Ево "за" петља која дели цео број п од 2 укупно 10 пута. 99 00:05:51,080 --> 00:05:55,380 Обратите пажњу како сам прогласио цео п ван моје "за" петље, тако да 100 00:05:55,380 --> 00:05:59,850 цео број може бити доступан ван "фор" петље. 101 00:05:59,850 --> 00:06:03,620 Након месец дана је прошло, време је да каже кориснику колико новца 102 00:06:03,620 --> 00:06:04,790 Сам добио они. 103 00:06:04,790 --> 00:06:08,740 По спецификације, потребно је да каже кориснику колико долара, не колико 104 00:06:08,740 --> 00:06:10,780 пенија, имају. 105 00:06:10,780 --> 00:06:14,620 Али, до сада, ви сте пратила укупно и пенија користе ЛонгЛонгс, 106 00:06:14,620 --> 00:06:16,640 који су цели бројеви. 107 00:06:16,640 --> 00:06:20,560 >> Постоји 100 пенија за $ 1, па уколико број пенија је 108 00:06:20,560 --> 00:06:24,860 више од 100, потребно је да представљају децимална места. 109 00:06:24,860 --> 00:06:28,060 Удвостручила аутотип омогућава да то урадите. 110 00:06:28,060 --> 00:06:32,790 Па како да конвертујете из заступа пенија у доларе? 111 00:06:32,790 --> 00:06:35,330 >> Хајде да погледамо пи.ц. 112 00:06:35,330 --> 00:06:41,690 Овај програм траје Лонглонг биг_пи и дели га од 100.000, а штампа 113 00:06:41,690 --> 00:06:44,270 резултат на пет децималних места. 114 00:06:44,270 --> 00:06:48,560 Ако бисмо желели да прикаже четири децимална места, онда можемо само да замени ово 115 00:06:48,560 --> 00:06:49,760 број овде. 116 00:06:49,760 --> 00:06:58,370 Тако ћемо сачувати, састави пи, и онда видите резултат, који смо 117 00:06:58,370 --> 00:07:02,240 Очекујем да буде 3.1415 - 118 00:07:02,240 --> 00:07:04,540 првих пет цифара броја Пи. 119 00:07:04,540 --> 00:07:06,300 >> То није ипак. 120 00:07:06,300 --> 00:07:07,390 А зашто? 121 00:07:07,390 --> 00:07:11,920 Па, зато што је биг_пи Лонглонг, што је цео број, који неће 122 00:07:11,920 --> 00:07:13,740 пратити децимале. 123 00:07:13,740 --> 00:07:16,850 Модификација треба да чине је у подели. 124 00:07:16,850 --> 00:07:23,300 Морам да се баци у двоструко овде пре поделе, јер дубл не могу да задрже 125 00:07:23,300 --> 00:07:25,260 евиденцију о децимале. 126 00:07:25,260 --> 00:07:28,080 И ја ћу да додам нову линију Овде за боље форматирање. 127 00:07:28,080 --> 00:07:33,090 128 00:07:33,090 --> 00:07:34,230 >> А овде га имамо - 129 00:07:34,230 --> 00:07:37,660 3.1416. 130 00:07:37,660 --> 00:07:43,520 Можда ћете приметити да се штампа 3.1416 уместо 3.1415 као што се очекивало. 131 00:07:43,520 --> 00:07:47,550 То је зато што током рунде подела процес, за разлику од само 132 00:07:47,550 --> 00:07:50,490 скраћивања вредности. 133 00:07:50,490 --> 00:07:53,710 Сада би требало да можете да одштампате Укупна коначна правилно, који завршава 134 00:07:53,710 --> 00:07:54,870 програма. 135 00:07:54,870 --> 00:07:55,930 >> Честитам. 136 00:07:55,930 --> 00:07:57,340 Моје име је Замила. 137 00:07:57,340 --> 00:07:58,720 И то је било пенија. 138 00:07:58,720 --> 00:08:05,589 >> [Музика свира]