1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA CHAN: Ni mimi, Zamyla. 3 00:00:02,500 --> 00:00:06,910 Leo katika Mario, tunakwenda kuwa kuchora nusu piramidi kwa Mario 4 00:00:06,910 --> 00:00:08,290 kupanda juu. 5 00:00:08,290 --> 00:00:11,570 >> Hivyo hebu majadiliano juu yetu kwa-nini kwa ajili ya tatizo hili. 6 00:00:11,570 --> 00:00:13,610 Sisi ni kwenda kutaka kuchochea na kuhalalisha 7 00:00:13,610 --> 00:00:18,290 user kwa ajili ya pembejeo halali wa jinsi high wanataka Mario ya piramidi kuwa. 8 00:00:18,290 --> 00:00:20,090 Na kisha, tunakwenda kuteka ni. 9 00:00:20,090 --> 00:00:24,870 Hivyo hebu kuanza na hivyo kusababisha na kuthibitisha user kwa mchango wao. 10 00:00:24,870 --> 00:00:27,640 >> Tunaweza kufanya matumizi ya CS50 maktaba Kazi 11 00:00:27,640 --> 00:00:31,160 kupata int kwamba itahakikisha kwamba mtumiaji pembejeo integer. 12 00:00:31,160 --> 00:00:35,730 Yoyote integers chanya, hasi integers, idadi 0 wote ni mchezo wa haki. 13 00:00:35,730 --> 00:00:41,670 Vinginevyo, user utakuwa ilisababisha Jaribu tena mpaka wao pembejeo integer halali. 14 00:00:41,670 --> 00:00:44,210 Sasa ingawa kupata int gani mengi ya kazi kwa ajili yetu 15 00:00:44,210 --> 00:00:46,730 katika kuhakikisha kwamba user inatupa integer, 16 00:00:46,730 --> 00:00:50,760 bado tunahitaji kuomba baadhi vikwazo ziada juu ya hilo. 17 00:00:50,760 --> 00:00:56,420 Baada ya yote, hatuwezi kuwa na Mario kupanda nusu piramidi ya urefu wa hasi 12. 18 00:00:56,420 --> 00:00:59,040 >> Mbali na kwamba, vipimo tatizo 19 00:00:59,040 --> 00:01:02,490 inasema kwamba tunaweza tu kuruhusu Mario kupanda 20 00:01:02,490 --> 00:01:06,940 piramidi ya urefu kati ya 0 na 23. 21 00:01:06,940 --> 00:01:11,120 OK, hivyo kwamba maana kwamba tunahitaji kuendelea kuchochea mtumiaji 22 00:01:11,120 --> 00:01:14,320 kutupa halali idadi na tu kuendelea 23 00:01:14,320 --> 00:01:17,120 mara moja wameweza ametupa urefu halali. 24 00:01:17,120 --> 00:01:18,720 Jinsi gani sisi kufanya hivyo? 25 00:01:18,720 --> 00:01:23,760 >> Naam, michakato ya kuendelea kutupa wazo la loops-- kitu kufanya 26 00:01:23,760 --> 00:01:24,720 repetitively. 27 00:01:24,720 --> 00:01:28,220 kitanzi moja katika C kama wakati kitanzi kwamba mapenzi kuendelea 28 00:01:28,220 --> 00:01:33,480 kutekeleza mwili wa kitanzi kwa muda mrefu kama hali kutokana na kutathmini kwa kweli. 29 00:01:33,480 --> 00:01:36,200 Haraka kama hali hiyo kutathmini kwa uongo, 30 00:01:36,200 --> 00:01:39,770 mpango ataelekea chochote huja baada ya hapo. 31 00:01:39,770 --> 00:01:43,180 Hivyo wakati matanzi ni njia mojawapo ya kuhakikisha kwamba tunaendelea 32 00:01:43,180 --> 00:01:45,320 kuchochea mtumiaji kwa ajili ya pembejeo halali. 33 00:01:45,320 --> 00:01:50,070 Na mara moja wao kutupatia pembejeo halali, tutaweza kuendelea na chochote huja ijayo. 34 00:01:50,070 --> 00:01:54,380 Tunajua kwamba sisi ni kwenda kuuliza user kwa ajili ya pembejeo angalau mara moja. 35 00:01:54,380 --> 00:01:59,200 Hivyo sasa sisi kuja dada wa wakati kitanzi, ambayo ni kufanya wakati kitanzi. 36 00:01:59,200 --> 00:02:02,650 >> Je, wakati tanzi nitafanya mwili wa kitanzi angalau mara moja. 37 00:02:02,650 --> 00:02:06,150 Hivyo bila kuangalia hali, nitafanya mwili wa kitanzi. 38 00:02:06,150 --> 00:02:09,750 Na kisha kuangalia hali ya kuona iwapo inahitaji kurudia yenyewe. 39 00:02:09,750 --> 00:02:13,080 Hii inakuja katika Handy wakati tuko kuthibitisha user pembejeo. 40 00:02:13,080 --> 00:02:15,830 Tunajua kwamba tunakwenda kuwauliza angalau mara moja. 41 00:02:15,830 --> 00:02:18,780 Hivyo kufanya wakati kitanzi nguvu kuangalia kitu kama hii. 42 00:02:18,780 --> 00:02:20,090 Tuna integer n. 43 00:02:20,090 --> 00:02:22,760 Na ndani ya kufanya kitanzi wakati, sisi mara moja 44 00:02:22,760 --> 00:02:24,750 kuchochea mtumiaji kwa integer. 45 00:02:24,750 --> 00:02:29,740 Kama n ni batili, basi tutaweza kuwachochea tena na tena na tena mpaka wao 46 00:02:29,740 --> 00:02:31,820 kutupa kwamba integer halali. 47 00:02:31,820 --> 00:02:37,440 Hatimaye, mara moja n ni pembejeo halali, tutaweza kuendelea na mapumziko ya programu yetu. 48 00:02:37,440 --> 00:02:41,830 >> Basi hebu kwenda nyuma ya spec na kuangalia nini hali kwa ajili ya pembejeo halali 49 00:02:41,830 --> 00:02:43,670 ni kwenda kuwa. 50 00:02:43,670 --> 00:02:48,090 urefu halali ni kwenda kuwa kati ya 0 na 23, umoja. 51 00:02:48,090 --> 00:02:53,350 urefu hivyo batili ni kwenda kuwa chini ya 0 au zaidi ya 23. 52 00:02:53,350 --> 00:02:56,420 Basi kumbuka kubuni hali yako kwa makini, 53 00:02:56,420 --> 00:02:58,660 wakijua kwamba hali kwa kufanya wakati kitanzi 54 00:02:58,660 --> 00:03:01,470 lazima wakati n ni batili. 55 00:03:01,470 --> 00:03:05,080 Sasa hii si kwenda kuwa rahisi single kujieleza Boolean. 56 00:03:05,080 --> 00:03:07,630 Tunakwenda una kuchanganya Maneno mawili tofauti 57 00:03:07,630 --> 00:03:09,900 kufanya hali yetu nzima. 58 00:03:09,900 --> 00:03:13,290 >> Basi hebu tu kuangalia meza ukweli nimekuwa tayari kupewa wewe ladha kwamba tuko 59 00:03:13,290 --> 00:03:15,200 kwenda kushughulika na Booleans mbili. 60 00:03:15,200 --> 00:03:19,620 Hivyo hapa ni meza ukweli ambapo mimi kuwa na mbili Booleans-- Boolean 1 na 2. 61 00:03:19,620 --> 00:03:27,050 Hivyo tuna fursa ya kutathmini bool1 na bool2 au bool1 au bool2. 62 00:03:27,050 --> 00:03:31,980 Na itakuwa tu kuwa ni kweli kama wote wawili Booleans kutathmini kwa kweli, ambapo wote 63 00:03:31,980 --> 00:03:37,280 au itakuwa kweli kwa muda mrefu kama moja ya mbili Booleans kutathmini kwa kweli. 64 00:03:37,280 --> 00:03:41,450 OK, hivyo kuchukua muda, pause hii video na kufungua hii meza ukweli. 65 00:03:41,450 --> 00:03:42,930 Nitakuwa haki hapa kusubiri. 66 00:03:42,930 --> 00:03:45,760 Wakati wewe kuja nyuma, angalia kama unaweza kipande pamoja 67 00:03:45,760 --> 00:03:51,910 kujieleza Boolean kwa yako hali ya n kuwa pembejeo batili. 68 00:03:51,910 --> 00:03:54,420 >> Hivyo sasa kwamba tuna halali user pembejeo, hebu 69 00:03:54,420 --> 00:03:58,710 kwenda mbele na majadiliano kuhusu jinsi sisi ili kuteka nusu piramidi. 70 00:03:58,710 --> 00:04:03,410 Hapa katika kifungu hiki mhariri rahisi, Nimekuwa inayotolewa kushoto na kompyuta piramidi. 71 00:04:03,410 --> 00:04:07,050 Lakini tunajua kwamba tunahitaji yetu piramidi kuwa haki na kompyuta. 72 00:04:07,050 --> 00:04:08,650 Hivyo jinsi gani mimi kufanya hili? 73 00:04:08,650 --> 00:04:11,440 Naam, mimi ili kujaribu kushinikiza kila kitu kwa upande 74 00:04:11,440 --> 00:04:14,880 na tu kuweka kidogo tabia katika kati. 75 00:04:14,880 --> 00:04:16,779 Na kisha, kwa ajili ya pili line, mimi nina kwenda kuweka 76 00:04:16,779 --> 00:04:20,970 baadhi wahusika zaidi ya kuiondoa pamoja, na further-- kadhalika na kadhalika sana aliye mzaa 77 00:04:20,970 --> 00:04:23,360 mpaka nina haki na kompyuta piramidi. 78 00:04:23,360 --> 00:04:27,780 Hivyo sisi kufanya kuwa na haki align piramidi, lakini haina kuangalia kubwa sana na dots. 79 00:04:27,780 --> 00:04:30,680 Lakini sisi bado wanataka kudumisha kwamba nafasi nzuri. 80 00:04:30,680 --> 00:04:35,260 Hivyo nina kwenda kwa literally kuingiza baadhi ya maeneo. 81 00:04:35,260 --> 00:04:39,420 >> Badala ya dots tatu, mimi itabidi kuweka moja, mbili, tatu nafasi. 82 00:04:39,420 --> 00:04:40,370 On line pili. 83 00:04:40,370 --> 00:04:42,640 Mimi itabidi kuweka nafasi moja, mbili. 84 00:04:42,640 --> 00:04:45,370 Na juu ya penultimate line, nafasi moja tu. 85 00:04:45,370 --> 00:04:48,290 Na hapa nina haki na kompyuta piramidi. 86 00:04:48,290 --> 00:04:52,170 Kutokana na kufanya mfano katika maandishi mhariri, tuna wazo kwa mfano 87 00:04:52,170 --> 00:04:54,590 kwamba tutaweza kutumia kuteka nusu piramidi. 88 00:04:54,590 --> 00:04:58,080 Kwa kila mstari, tulichokifanya ni sisi aina baadhi ya maeneo, 89 00:04:58,080 --> 00:05:00,170 na kisha typed baadhi hashes, na kisha typed 90 00:05:00,170 --> 00:05:03,020 Enter muhimu, ambayo ni kujenga line mpya. 91 00:05:03,020 --> 00:05:07,770 Hivyo sasa kwamba tuna kwamba, hebu kwenda hatua moja zaidi na kupata mfano. 92 00:05:07,770 --> 00:05:10,170 >> Hivyo mimi nina kwenda kusema, kwa maslahi ya mfano huu, 93 00:05:10,170 --> 00:05:12,480 sisi ni kushughulika na urefu wa 8. 94 00:05:12,480 --> 00:05:17,100 safu ya kwanza ni kwenda na mbili hashes kwamba ifuatavyo nafasi saba. 95 00:05:17,100 --> 00:05:20,020 second-- hashes tatu, nafasi sita. 96 00:05:20,020 --> 00:05:24,260 Tatu row-- nne hashes, tano spaces-- kadhalika na kadhalika 97 00:05:24,260 --> 00:05:26,350 mpaka sisi kupata mstari NTH. 98 00:05:26,350 --> 00:05:31,540 Hivyo basi, ninawaomba kwa mstari NTH, wangapi hashes ni sisi kwenda na 99 00:05:31,540 --> 00:05:33,120 na jinsi nafasi nyingi? 100 00:05:33,120 --> 00:05:37,000 Hivyo ni juu yako na kufikiri formula kuiwakilisha hashes wangapi 101 00:05:37,000 --> 00:05:42,020 na jinsi nafasi nyingi zinahitajika kwa ajili ya NTH mstari wakati una baadhi urefu. 102 00:05:42,020 --> 00:05:46,060 >> Sasa wakati wewe ni kuhesabia hii nje, kuwa makini jinsi wewe ni Indexing. 103 00:05:46,060 --> 00:05:49,170 Nini maana na hii ni kwamba katika maisha ya kila siku sisi sote 104 00:05:49,170 --> 00:05:51,540 kuanza kuhesabu, kwa kawaida na 1. 105 00:05:51,540 --> 00:05:55,950 Lakini katika CS50 na katika sayansi ya kompyuta kwa ujumla, sisi ni 0 indexed. 106 00:05:55,950 --> 00:06:00,620 Hivyo safu ya kwanza itakuwa n ya 0 kinyume na 1. 107 00:06:00,620 --> 00:06:04,550 Kuwa makini ya hii wakati uko kujaribu kufikiri muundo yako. 108 00:06:04,550 --> 00:06:07,570 Hivyo sasa hebu kwenda nyuma ya jinsi tunakwenda kuteka piramidi yetu. 109 00:06:07,570 --> 00:06:12,300 Kwa kila mstari, tunakwenda wanataka magazeti nafasi, magazeti hashes, 110 00:06:12,300 --> 00:06:14,050 na kisha magazeti mstari mpya. 111 00:06:14,050 --> 00:06:19,160 ladha hapa ni neno "maana" kila mstari. 112 00:06:19,160 --> 00:06:21,470 Katika C, tuna kujenga kuitwa kwa ajili ya kitanzi, 113 00:06:21,470 --> 00:06:25,250 ambayo inakuwa na initialization, hali, update, 114 00:06:25,250 --> 00:06:26,790 na mwili wa kitanzi. 115 00:06:26,790 --> 00:06:31,360 >> Sema nilitaka kusema, hello dunia, mara 50, yangu kwa kitanzi 116 00:06:31,360 --> 00:06:32,880 bila kuangalia kitu kama hiki. 117 00:06:32,880 --> 00:06:35,480 Mimi initialize integer yangu kwa 0. 118 00:06:35,480 --> 00:06:38,230 hali ni kwamba mimi ni chini ya 50. 119 00:06:38,230 --> 00:06:42,350 Na kisha update yangu ni ya haki incrementing mimi kwa moja kila wakati. 120 00:06:42,350 --> 00:06:45,140 Tunaweza pia kutumia kwa ajili ya mizunguko iterate juu ya mambo. 121 00:06:45,140 --> 00:06:47,820 Ona hapa jinsi sisi si ngumu coded posta, 122 00:06:47,820 --> 00:06:51,820 lakini badala ya kuwekwa kutofautiana urefu badala katika hali hiyo. 123 00:06:51,820 --> 00:06:56,420 Hivyo nini mimi kufanya hapa ni mimi nina iterating juu ya kila mstari wa piramidi. 124 00:06:56,420 --> 00:07:00,160 Siwezi kufanya kitu kwa kila mstari ndani ya mwili wa kitanzi yangu. 125 00:07:00,160 --> 00:07:02,350 >> Tunafanya nini ndani ya mwili wa kitanzi? 126 00:07:02,350 --> 00:07:07,120 Naam, kama sisi tayari alisema, sisi ni uchapishaji nafasi na sisi ni uchapishaji hashes 127 00:07:07,120 --> 00:07:09,480 na sisi ni uchapishaji mstari mpya. 128 00:07:09,480 --> 00:07:11,950 Hivyo nje yangu kwa kitanzi utaangalia kama hii. 129 00:07:11,950 --> 00:07:15,070 Mimi iterate juu ya kila mstari ya piramidi, kwa kutumia, 130 00:07:15,070 --> 00:07:18,890 katika kesi hii, urefu kama kutofautiana kwamba maduka urefu wa piramidi. 131 00:07:18,890 --> 00:07:22,870 Ndani ya mwili wa kitanzi kwamba, mimi nina kwenda magazeti nafasi tena na tena, magazeti 132 00:07:22,870 --> 00:07:26,730 hashes tena na tena, na kisha magazeti mstari mpya. 133 00:07:26,730 --> 00:07:31,010 >> Hivyo sasa, kwa kutumia yote ya dhana kwamba Nimekuwa kuongelea katika hii kutembea-kwa njia, 134 00:07:31,010 --> 00:07:35,210 unapaswa kuwa na uwezo wa kuchochea user kwa ajili ya pembejeo, kuhalalisha kwamba pembejeo, 135 00:07:35,210 --> 00:07:37,370 na kisha kuteka nusu piramidi. 136 00:07:37,370 --> 00:07:41,510 >> Jina langu ni Zamyla, na hii ni CS50. 137 00:07:41,510 --> 00:07:43,167