1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,500 ZAMYLA Chan: Huwa me, Zamyla. 3 00:00:02,500 --> 00:00:06,910 Illum fil Mario, aħna qed tmur biex tkun tpinġija in-nofs piramida Mario 4 00:00:06,910 --> 00:00:08,290 li jitilgħu sa. 5 00:00:08,290 --> 00:00:11,570 >> Mela ejja nitkellmu dwar tagħna għall-do għal din il-problema. 6 00:00:11,570 --> 00:00:13,610 Aħna qed tmur jridu biex tkun inkoraġġuta u jivvalidaw 7 00:00:13,610 --> 00:00:18,290 -utent għal kontribut validu ta 'kif għoli huma jridu piramida Mario li jkun. 8 00:00:18,290 --> 00:00:20,090 U allura, aħna qed tmur biex jibnuha. 9 00:00:20,090 --> 00:00:24,870 Mela ejja tibda bil tinċita u validazzjoni ta 'l-utent għall-kontribut tagħhom. 10 00:00:24,870 --> 00:00:27,640 >> Nistgħu nagħmlu użu mill- CS50 Librerija Funzjoni 11 00:00:27,640 --> 00:00:31,160 nikseb int li se jiżgura li l-utent inputs integer. 12 00:00:31,160 --> 00:00:35,730 Kwalunkwe interi pożittivi, negattivi interi, in-numru 0 huma kollha ġusti logħba. 13 00:00:35,730 --> 00:00:41,670 Inkella, l-utent se tkun imħeġġa biex retry sakemm l-input numru sħiħ valida. 14 00:00:41,670 --> 00:00:44,210 Issa għalkemm int nikseb ma ħafna mix-xogħol għalina 15 00:00:44,210 --> 00:00:46,730 fl-iżgurar li l- utent tagħtina numru sħiħ, 16 00:00:46,730 --> 00:00:50,760 għad għandna bżonn biex japplikaw xi restrizzjonijiet addizzjonali fuq dik. 17 00:00:50,760 --> 00:00:56,420 Wara kollox, ma jistax ikollna mario tixbit nofs piramida ta 'għoli negattiva 12. 18 00:00:56,420 --> 00:00:59,040 >> B'żieda għal dan, l- ispeċifikazzjoni problema 19 00:00:59,040 --> 00:01:02,490 jgħid li nistgħu biss jippermettu Mario li jitilgħu 20 00:01:02,490 --> 00:01:06,940 piramida 'għoli bejn 0 u 23. 21 00:01:06,940 --> 00:01:11,120 OK, sabiex ifisser li għandna bżonn li kontinwament pront lill-utent 22 00:01:11,120 --> 00:01:14,320 biex tagħtina validu numru u biss tkompli 23 00:01:14,320 --> 00:01:17,120 ladarba dawn ħadthom tatna għoli valida. 24 00:01:17,120 --> 00:01:18,720 Kif nistgħu nagħmlu dan? 25 00:01:18,720 --> 00:01:23,760 >> Ukoll, proċessi kontinwi agħtina l-idea ta 'loops--' xi ħaġa li tagħmel 26 00:01:23,760 --> 00:01:24,720 ripetittivi. 27 00:01:24,720 --> 00:01:28,220 Wieħed loop fis-C bħala waqt linja li se kontinwament 28 00:01:28,220 --> 00:01:33,480 tesegwixxi l-korp tal-linja sakemm il-kundizzjoni mogħtija tevalwa lill veru. 29 00:01:33,480 --> 00:01:36,200 Hekk kif dik il-kundizzjoni tevalwa sa falza, 30 00:01:36,200 --> 00:01:39,770 il-programm se tipproċedi biex tkun xi tkun taqa wara dik. 31 00:01:39,770 --> 00:01:43,180 Għalhekk, filwaqt li linji huma mod wieħed kif jiżgura li aħna kontinwament 32 00:01:43,180 --> 00:01:45,320 pront l-utent għal kontribut validu. 33 00:01:45,320 --> 00:01:50,070 U ladarba dawn tagħtina input valida, aħna ser tipproċedi għal dak kollu li jiġi jmiss. 34 00:01:50,070 --> 00:01:54,380 Aħna nafu li aħna qed tmur biex jistaqsu l-utent għall-input mill-inqas darba. 35 00:01:54,380 --> 00:01:59,200 Allura issa aħna jaslu għal sister tal- filwaqt loop, li huwa l-do waqt loop. 36 00:01:59,200 --> 00:02:02,650 >> Tagħmel waqt loops se tesegwixxi l- korp tal-linja mill-inqas darba. 37 00:02:02,650 --> 00:02:06,150 Dan mingħajr kontrol tal-kondizzjoni, se tesegwixxi l-korp tal-linja. 38 00:02:06,150 --> 00:02:09,750 U mbagħad tiċċekkja l-kundizzjoni biex tara jekk ikunx meħtieġ li tirrepeti ruħha. 39 00:02:09,750 --> 00:02:13,080 Dan jaqa 'fil handy meta aħna qed jivvalidaw jintuza mill-utent. 40 00:02:13,080 --> 00:02:15,830 Aħna nafu li aħna qed tmur li jistaqsu lilhom mill-inqas darba. 41 00:02:15,830 --> 00:02:18,780 Allura do waqt loop tista look xi ħaġa bħal din. 42 00:02:18,780 --> 00:02:20,090 Għandna numru sħiħ. 43 00:02:20,090 --> 00:02:22,760 U ġewwa ta 'l-do filwaqt loop, aħna immedjatament 44 00:02:22,760 --> 00:02:24,750 pront l-utent għal integer. 45 00:02:24,750 --> 00:02:29,740 Jekk n hija invalida, allura aħna ser iwassluhom ġdid u għal darb'oħra u għal darb'oħra sakemm 46 00:02:29,740 --> 00:02:31,820 agħtina li numru sħiħ validu. 47 00:02:31,820 --> 00:02:37,440 Fl-aħħarnett, ladarba n huwa kontribut validu, aħna ser jipproċedi għall-bqija tal-programm tagħna. 48 00:02:37,440 --> 00:02:41,830 >> Mela ejja jmorru lura għall-spec u kontroll dak li l-kundizzjonijiet għal kontribut validu 49 00:02:41,830 --> 00:02:43,670 se tkun. 50 00:02:43,670 --> 00:02:48,090 L-għoli validi huma ser jkun bejn 0 u 23, inklużiv. 51 00:02:48,090 --> 00:02:53,350 għoli hekk invalidi ser ikun inqas minn 0 jew aktar minn 23. 52 00:02:53,350 --> 00:02:56,420 Mela ftakar li disinn kundizzjoni tiegħek b'attenzjoni, 53 00:02:56,420 --> 00:02:58,660 jafu li l-kundizzjoni għall-do waqt loop 54 00:02:58,660 --> 00:03:01,470 għandu jkun filwaqt n huwa invalidu. 55 00:03:01,470 --> 00:03:05,080 Issa dan mhux ser ikun sempliċi espressjoni Boolean wieħed. 56 00:03:05,080 --> 00:03:07,630 Aħna ser ikollhom biex jgħaqqdu żewġ espressjonijiet differenti 57 00:03:07,630 --> 00:03:09,900 biex tagħmel kondizzjoni kollu tagħna. 58 00:03:09,900 --> 00:03:13,290 >> Mela ejja biss ħarsa fuq mejda verità stajt diġà tak l-ħjiel li aħna qed 59 00:03:13,290 --> 00:03:15,200 ser ikunu jittrattaw ma 'żewġ Booleans. 60 00:03:15,200 --> 00:03:19,620 Allura hawnhekk tabella verità fejn I għandhom żewġ Booleans-- Boolean 1 u 2. 61 00:03:19,620 --> 00:03:27,050 Allura aħna għandna l-għażla li jevalwa bool1 u bool2 jew bool1 jew bool2. 62 00:03:27,050 --> 00:03:31,980 U se jkun biss minnu jekk iż-żewġ Booleans jevalwa vera, filwaqt li kull 63 00:03:31,980 --> 00:03:37,280 jew ser jkun veru sakemm waħda mill it-tnejn Booleans tevalwa sa veru. 64 00:03:37,280 --> 00:03:41,450 OK, hekk tieħu mument, nieqaf dan il vidjo u ddiġerixxi din it-tabella verità. 65 00:03:41,450 --> 00:03:42,930 I ser tkun dritt hawn stennija. 66 00:03:42,930 --> 00:03:45,760 Meta inti terga 'lura, ara jekk inti tista 'biċċa flimkien 67 00:03:45,760 --> 00:03:51,910 espressjoni Boolean għall tiegħek kondizzjoni ta n hija input invalidu. 68 00:03:51,910 --> 00:03:54,420 >> Allura issa li għandna jintuza mill-utent validu, ejja 69 00:03:54,420 --> 00:03:58,710 imorru quddiem u jitkellmu dwar kif aħna tkun tista 'ddaħħal in-nofs piramida. 70 00:03:58,710 --> 00:04:03,410 Hawn f'dan editur test sempliċi, Stajt ġibed xellug allinjati piramida. 71 00:04:03,410 --> 00:04:07,050 Imma nafu li għandna bżonn tagħna piramida li jiġu allinjati d-dritt. 72 00:04:07,050 --> 00:04:08,650 Allura kif tista 'nagħmel dan? 73 00:04:08,650 --> 00:04:11,440 Well, I tista 'tipprova li timbotta kollox biex il-ġenb 74 00:04:11,440 --> 00:04:14,880 bi ftit tqegħid ftit karattru bejniethom. 75 00:04:14,880 --> 00:04:16,779 U mbagħad, għal dak li jmiss linja, jien ser tpoġġi 76 00:04:16,779 --> 00:04:20,970 xi karattri aktar biex timbotta lilha flimkien, u further-- hekk u hekk forth-- 77 00:04:20,970 --> 00:04:23,360 sakemm għandi d-dritt allinjati piramida. 78 00:04:23,360 --> 00:04:27,780 Allura aħna ma jkollhom piramida jallinjaw id-dritt, imma ma jidhrux daqshekk kbira ma 'l-tikek. 79 00:04:27,780 --> 00:04:30,680 Iżda aħna xorta jridu isostnu li ispazjar sbieħ. 80 00:04:30,680 --> 00:04:35,260 Hekk jien ser litteralment daħħal xi spazji. 81 00:04:35,260 --> 00:04:39,420 >> Minflok tliet tikek, jien ser jitqiegħdu wieħed, tnejn, tlieta spazji. 82 00:04:39,420 --> 00:04:40,370 Fuq it-tieni linja. 83 00:04:40,370 --> 00:04:42,640 I ser jitqiegħdu wieħed, tnejn spazji. 84 00:04:42,640 --> 00:04:45,370 U fuq il-penultima linja, wieħed biss ispazju. 85 00:04:45,370 --> 00:04:48,290 U hawn I jkollhom dritt allinjata piramida. 86 00:04:48,290 --> 00:04:52,170 Milli jagħmlu l-eżempju fit-test editur, għandna idea għal-mudell 87 00:04:52,170 --> 00:04:54,590 li aħna ser tuża biex tiġbed in-nofs piramida. 88 00:04:54,590 --> 00:04:58,080 Għal kull ringiela, dak li għamilna hija aħna tip xi spazji, 89 00:04:58,080 --> 00:05:00,170 u mbagħad ittajpjat xi hashes, u mbagħad ittajpjat 90 00:05:00,170 --> 00:05:03,020 l Enter, li huwa ħolqien ta 'linja ġdida. 91 00:05:03,020 --> 00:05:07,770 Allura issa li għandna dan, ejja go pass ulterjuri u jsibu l-mudell. 92 00:05:07,770 --> 00:05:10,170 >> Hekk jien se ngħid, għall- interess ta 'dan l-eżempju, 93 00:05:10,170 --> 00:05:12,480 aħna qed jittrattaw b'għoli ta '8. 94 00:05:12,480 --> 00:05:17,100 L-ewwel ringiela se jkollhom żewġ hashes li ġej seba spazji. 95 00:05:17,100 --> 00:05:20,020 It-second-- tliet hashes, sitt spazji. 96 00:05:20,020 --> 00:05:24,260 Terzi row-- erba hashes, ħames spaces-- hekk u ibqa 'sejjer hekk 97 00:05:24,260 --> 00:05:26,350 sakemm aħna jiksbu l-ringiela nth. 98 00:05:26,350 --> 00:05:31,540 Mela allura, Nitlobkom għar-ringiela nth, kemm hashes aħna ser ikollhom 99 00:05:31,540 --> 00:05:33,120 u kemm spazji? 100 00:05:33,120 --> 00:05:37,000 Allura huwa sa inti biex insemmu formula li jirrappreżentaw kemm hashes 101 00:05:37,000 --> 00:05:42,020 u kemm l-ispazji huma meħtieġa għall -filliera nth meta jkollok xi għoli. 102 00:05:42,020 --> 00:05:46,060 >> Issa meta inti qed jidhru dan out, ikunu attenti kif inti qed indiċjar. 103 00:05:46,060 --> 00:05:49,170 What I jfisser minn dan hija li fil-ħajja ta 'kuljum lkoll 104 00:05:49,170 --> 00:05:51,540 jibdew jingħaddu, normalment sa l-1. 105 00:05:51,540 --> 00:05:55,950 Iżda fil CS50 u fix-xjenza tal-kompjuter b'mod ġenerali, aħna 0 indiċjati. 106 00:05:55,950 --> 00:06:00,620 Allura l-ewwel ringiela ikun n ta '0 hekk kif oppost għad 1. 107 00:06:00,620 --> 00:06:04,550 Oqgħod attent ta 'dan meta int jippruvaw figura mudell tiegħek. 108 00:06:04,550 --> 00:06:07,570 Allura issa ejja mmorru lura għal kif aħna qed tmur biex tiġbed piramida tagħna. 109 00:06:07,570 --> 00:06:12,300 Għal kull ringiela, aħna qed tmur jridu jistampa l-ispazji, jistampaw il-hashes, 110 00:06:12,300 --> 00:06:14,050 u mbagħad print linja ġdida. 111 00:06:14,050 --> 00:06:19,160 Il ħjiel hawnhekk huwa l- kelma "għal" kull ringiela. 112 00:06:19,160 --> 00:06:21,470 Fl Ċ, għandna tibni imsejħa għal loop, 113 00:06:21,470 --> 00:06:25,250 li hija magħmula minn inizjalizzazzjoni, kundizzjoni, aġġornament, 114 00:06:25,250 --> 00:06:26,790 u l-korp tal-linja. 115 00:06:26,790 --> 00:06:31,360 >> Say ridt ngħid, bonjour dinja, 50 darba, tiegħi għal linja 116 00:06:31,360 --> 00:06:32,880 se tfittex xi ħaġa bħal din. 117 00:06:32,880 --> 00:06:35,480 I initialize numru sħiħ tiegħi għal 0. 118 00:06:35,480 --> 00:06:38,230 Il-kundizzjoni hija li jien huwa inqas minn 50. 119 00:06:38,230 --> 00:06:42,350 U allura aġġornament tiegħi huwa biss inkrementazzjoni I b'wieħed kull darba. 120 00:06:42,350 --> 00:06:45,140 Nistgħu wkoll tuża għal-linji li jtenni fuq affarijiet. 121 00:06:45,140 --> 00:06:47,820 Avviż hawn kif aħna ma iebes kodifikati numru, 122 00:06:47,820 --> 00:06:51,820 iżda pjuttost tefa 'l-varjabbli għoli minflok fil-kundizzjoni. 123 00:06:51,820 --> 00:06:56,420 Allura dak li qed nagħmel hawnhekk huwa li jien iterazzjoni fuq kull ringiela tal-piramida. 124 00:06:56,420 --> 00:07:00,160 I tista 'tagħmel xi ħaġa għal kull ringiela ġewwa l-korp ta 'linja tiegħi. 125 00:07:00,160 --> 00:07:02,350 >> Dak li qed nagħmlu ġewwa il-korp tal-linja? 126 00:07:02,350 --> 00:07:07,120 Ukoll, kif aħna diġà qal, aħna qed istampar ispazji u aħna qed hashes istampar 127 00:07:07,120 --> 00:07:09,480 u aħna qed istampar linja ġdida. 128 00:07:09,480 --> 00:07:11,950 Allura barra tiegħi għal loop se teżamina bħal dan. 129 00:07:11,950 --> 00:07:15,070 I jtenni fuq kull ringiela tal-piramida, bl-użu, 130 00:07:15,070 --> 00:07:18,890 f'dan il-każ, għoli tal-varjabbli li taħżen l-għoli tal-piramida. 131 00:07:18,890 --> 00:07:22,870 Ġewwa l-korp ta 'dak loop, jien morna għall-istampa ispazji ripetutament, jistampa 132 00:07:22,870 --> 00:07:26,730 il hashes ripetutament, u mbagħad print linja ġdida. 133 00:07:26,730 --> 00:07:31,010 >> Allura issa, bl-użu kollha tal-kunċetti li Stajt tkellmu dwar f'dan walk-through, 134 00:07:31,010 --> 00:07:35,210 inti għandek tkun kapaċi jagħti spinta l utent għall-input, jivvalida dan input, 135 00:07:35,210 --> 00:07:37,370 u mbagħad jiġbdu l-nofs piramida. 136 00:07:37,370 --> 00:07:41,510 >> Jisimni Zamyla, u dan huwa CS50. 137 00:07:41,510 --> 00:07:43,167