1 00:00:00,000 --> 00:00:02,670 [Powered by Google Translate] Problem seksion Set 2: Edition Hacker 2 00:00:02,670 --> 00:00:04,910 Rob Bowden, Universiteti i Harvardit 3 00:00:04,910 --> 00:00:07,410 Kjo është CS50. CS50.TV 4 00:00:07,410 --> 00:00:15,770 Pra, unë jam Rob. Unë jam një zyrtar i lartë në Kirkland. Ky është viti im i tretë TFing CS50. 5 00:00:15,770 --> 00:00:22,220 Kjo është hera e parë që ne jemi duke ndryshuar nga seksioni tradicionale-leksion-style, 6 00:00:22,220 --> 00:00:25,610 ku ne vetëm lloj i shqyrtimit të asaj që ndodhi në leksion dhe pastaj ju djema të kërkoni pyetje, 7 00:00:25,610 --> 00:00:32,250 Tani për të qenë shumë më problem-bazë, ku ne i përdorim shesheve, dhe - 8 00:00:32,250 --> 00:00:37,410 Oh, kështu që ideja është që të shkoni në këtë link ju çova dhe pastaj ju do të jetë në hapësirë ​​tim. 9 00:00:37,410 --> 00:00:42,410 Nuk ka njeri të ketë një laptop? Rregull. 10 00:00:42,410 --> 00:00:47,050 Pra, ne jemi duke shkuar për të përdorur këtë, dhe ne jemi duke shkuar për të bërë probleme jetojnë në nenin 11 00:00:47,050 --> 00:00:50,740 dhe diskutimin e tyre dhe duke parafytyruar se çfarë është e gabuar 12 00:00:50,740 --> 00:00:56,390 dhe unë mund të tërheqë deri disa nga kodit tuaj, dhe unë mund të diskutoni idetë tuaja. 13 00:00:56,390 --> 00:01:02,140 Pra ka dikush pasur vështirësi? 14 00:01:02,140 --> 00:01:07,000 Ju mund të bisedoni në anën, unë nuk e di nëse do të kemi arsye për këtë. 15 00:01:07,000 --> 00:01:12,270 Tani, si supersection mëparshme, në qoftë se ju keni qenë në atë klasë, ju e dini se çfarë është rreth. 16 00:01:12,270 --> 00:01:19,200 Mbi të gjitha e përcakton P nuk do të jetë këto seksione. 17 00:01:19,200 --> 00:01:22,550 Pra, P-set 2, specifikimet, I guess ju pashë atë në P-1 grup tashmë. 18 00:01:22,550 --> 00:01:27,400 Por ne mund të shohim në P-2 set për atë që ne jemi duke shkuar për të shkuar mbi sot. 19 00:01:27,400 --> 00:01:29,460 Dhe ju do të shihni një seksion të pyetjeve. 20 00:01:29,460 --> 00:01:37,530 Pra, kjo do të jetë në të gjitha p-grupe, nuk do të jetë një pjesë e pyetjeve. 21 00:01:37,530 --> 00:01:41,340 Deri tani ne kemi thënë, "Konsideroni këtë një mundësi për të ushtruar." 22 00:01:41,340 --> 00:01:44,940 Ju nuk do të kërkohet që të paraqesë këtë program. 23 00:01:44,940 --> 00:01:48,480 Ideja është se këto janë menduar të llojit të ndihmuar ju merrni filluar me grupin e problemit. 24 00:01:48,480 --> 00:01:53,220 I guess në edicionin Hacker, shumë prej tyre janë menduar të jetë vetëm të reja, gjëra interesante për të mësuar. 25 00:01:53,220 --> 00:01:58,590 Ata nuk mund të jenë të zbatueshme drejtpërdrejt për të vendosur problemit. 26 00:01:58,590 --> 00:02:01,810 Dhe tani ne nuk jemi duke ju paraqisni ato, por në teori, 27 00:02:01,810 --> 00:02:07,480 për grupe problem më vonë, ju mund të paraqesë ato, dhe kështu ju mund të vijnë ose të nenit 28 00:02:07,480 --> 00:02:10,380 apo të shikojnë pjesën e për të marrë përgjigje, ose ju mund të merrni vetëm ato në tuaj 29 00:02:10,380 --> 00:02:16,350 në qoftë se ju nuk ndiheni si shijuar praninë time. 30 00:02:16,350 --> 00:02:21,010 Pra, - unë mendoj se kjo është e para. 31 00:02:21,010 --> 00:02:29,280 Oh. Gjithashtu, në këto seksione të pyetjeve ne gjithashtu keni të bëni pyetje në lidhje me pantallona të shkurtra. 32 00:02:29,280 --> 00:02:33,440 Kështu që unë mendoj se, në teori, ju jeni menduar për të shikuar këto para vijnë në seksion, 33 00:02:33,440 --> 00:02:38,550 por kjo është në rregull në qoftë se ju nuk e bëni, ne do të shkojnë mbi to anyway. 34 00:02:38,550 --> 00:02:42,590 Kështu që ne mund të fillojë me këto: "Si ka një lak, ndërsa ndryshojnë nga një lak për ta bërë kohë? 35 00:02:42,590 --> 00:02:46,210 Kur është veçanërisht e dobishme fundit? " 36 00:02:46,210 --> 00:02:49,390 Pra, dikush ka ndonjë -? 37 00:02:49,390 --> 00:02:52,730 [Student] për ta bërë, ndërsa loop gjithmonë do të ekzekutojë së paku një herë. 38 00:02:52,730 --> 00:03:02,950 Po. Kështu që është diferenca. Një lak ndërsa - I'll vetëm bëni atë në këtu - ndërsa loop, ne kemi kusht 39 00:03:02,950 --> 00:03:19,760 të drejtë këtu, ndërsa një njeri që, ndërsa, ju nuk keni një gjendje deri sa të kemi këtu poshtë. 40 00:03:19,760 --> 00:03:24,130 Dhe kështu, kur programi juaj është ekzekutuar, dhe ajo merr në lak, ndërsa, 41 00:03:24,130 --> 00:03:26,380 menjëherë kontrollon nëse ky kusht është i vërtetë. 42 00:03:26,380 --> 00:03:30,710 Në qoftë se gjendja nuk është e vërtetë, ai thjesht do të kaloni mbi lak në tërësi. 43 00:03:30,710 --> 00:03:34,390 A-ndërsa loop, si programi është ekzekutuar, ai merr për të "bërë". 44 00:03:34,390 --> 00:03:37,920 Asgjë nuk ndodh në këtë pikë, vetëm vazhdon ekzekutimin. 45 00:03:37,920 --> 00:03:42,690 Atëherë kur ajo hits ", ndërsa," Nëse gjendja është e vërtetë, ajo do të lak mbështesë dhe të bëjë atë përsëri 46 00:03:42,690 --> 00:03:46,730 dhe përsëri dhe përsëri derisa gjendja nuk është e vërtetë dhe vetëm pastaj bie përmes. 47 00:03:46,730 --> 00:03:50,600 Pra, diferenca është, se kjo mund të kaloni të drejtë që nga fillimi. 48 00:03:50,600 --> 00:03:56,770 Kjo domosdoshmërisht ekzekuton një herë dhe pastaj të mund të ekzekutojë herë më shumë nëse gjendja është ende e vërtetë. 49 00:03:56,770 --> 00:04:03,720 Pra, lak, ndërsa do të bëjë atë një herë, ose - lak, ndërsa - ne nuk mund të kenë nevojë për të bërë atë në të gjitha, 50 00:04:03,720 --> 00:04:07,900 që sa më shpejt që ne të merrni atë, nëse gjendja është e rreme, ne vetëm do të kaloni të drejtë mbi të. 51 00:04:07,900 --> 00:04:11,770 Ndërsa për ta bërë, ndërsa loop, ne do të ekzekutojë atë një herë, domosdoshmërisht. 52 00:04:11,770 --> 00:04:14,560 Pastaj, kur të shkoj në gjendje, ne kontrolloni nëse është e vërtetë apo e rreme. 53 00:04:14,560 --> 00:04:19,790 Nëse kjo është e vërtetë, ne do të bëjmë atë përsëri, e nëse ajo është e rreme, ne vetëm do të vazhdojmë duke shkuar. 54 00:04:19,790 --> 00:04:24,680 Pra, kur është veçanërisht e dobishme fundit? 55 00:04:24,680 --> 00:04:31,190 Kështu që unë mund të them se në tërësinë e 4 vjet, 3 vjet, çfarëdo, 56 00:04:31,190 --> 00:04:38,780 që unë kam qenë programimit, unë kam përdorur këtë, si, nën 10 herë. 57 00:04:38,780 --> 00:04:43,140 Dhe ndoshta 5 prej tyre janë në CS50, kur ne jemi futur për ta bërë, ndërsa sythe. 58 00:04:43,140 --> 00:04:47,510 Pra, kur ju të bëni të përdorura-ndërsa sythe? 59 00:04:47,510 --> 00:04:49,510 Kur është - Po? 60 00:04:49,510 --> 00:04:53,180 [Student] Kur ju jeni duke u përpjekur për të marrë të dhëna përdoruesi, ose diçka që ju doni të shikoni - 61 00:04:53,180 --> 00:04:59,700 Po. Pra, për ta bërë, ndërsa unazore, user input është e madhe. 62 00:04:59,700 --> 00:05:03,160 Kjo është arsyeja pse në grupe e para problematike çift, kur ju dëshironi të kërkojë nga shfrytëzuesi, si, 63 00:05:03,160 --> 00:05:08,520 "Jepni një varg," ju nuk mund të vazhdojë derisa ju të merrni atë varg. 64 00:05:08,520 --> 00:05:12,980 Dhe kështu ju, domosdoshmërisht, duhet të pyesni për vargun e të paktën një herë. 65 00:05:12,980 --> 00:05:16,950 Por pastaj, nëse ata përgjigjen diçka të keqe, atëherë ju duhet të lak përsëri dhe kërkoni përsëri. 66 00:05:16,950 --> 00:05:20,810 Por përveç input të përdoruesit, kjo është shumë e rrallë që unë të hasni një rast 67 00:05:20,810 --> 00:05:27,170 ku unë dua të lak "të paktën një herë", por ndoshta më shumë. 68 00:05:27,170 --> 00:05:33,370 Pyetje apo -? Ka dikush përdorur një për ta bërë, ndërsa loop kudo tjetër? 69 00:05:33,370 --> 00:05:36,780 Rregull. Pra, një tjetër është, "Çfarë do të padeklaruar identifikues 70 00:05:36,780 --> 00:05:43,310 zakonisht tregojnë nëse outputted nga tingëllimë? " 71 00:05:43,310 --> 00:05:47,380 Pra, çfarë lloji të kodit mund të shkruaj për të marrë 'identifikues palajmëruar?' 72 00:05:47,380 --> 00:05:49,550 [Student] Kjo x = 2? 73 00:05:49,550 --> 00:05:52,650 Pra, ne vetëm mund të provoni atë në këtu, x = 2. 74 00:05:52,650 --> 00:06:04,830 Ne do të kandidojë kjo - oh, unë nuk e click it. Pra, këtu kemi marrë - të gjithë të drejtë. 75 00:06:04,830 --> 00:06:07,100 "Përdorimi i x identifikuese padeklaruar." 76 00:06:07,100 --> 00:06:11,610 Pra, kjo është identifikues pashpallur, një variabël. 77 00:06:11,610 --> 00:06:13,910 Kjo shpesh do të thërrasë një ndryshore identifikues nje. 78 00:06:13,910 --> 00:06:17,300 Pra, ajo mund të mos e dinë se është në fakt një variabël, por nuk e di se çfarë është. 79 00:06:17,300 --> 00:06:19,380 Pra, kjo është një identifikues. 80 00:06:19,380 --> 00:06:26,060 Pra, pse është ajo padeklaruar? Po. 81 00:06:26,060 --> 00:06:32,190 Pra, të jetë i qartë në terminologji, shpallja e një ndryshore 82 00:06:32,190 --> 00:06:37,360 është kur ju thoni "X int," ose "string y," çfarëdo. 83 00:06:37,360 --> 00:06:41,910 The initialization e ndryshueshme, ose caktimi i variablit, 84 00:06:41,910 --> 00:06:44,510 është kur ju thonë "x = 2." 85 00:06:44,510 --> 00:06:52,950 Kështu që ne mund të bëjmë këto në hapa të veçantë, int x, x = 2, dhe derisa - ne mund të kemi një bandë e stuff në këtu - 86 00:06:52,950 --> 00:07:00,350 por deri në këtë linjë ndodh, x është uninitialized ende, por ajo ka qenë deklaruar. 87 00:07:00,350 --> 00:07:06,760 Dhe kështu që ne mund të bëjmë të qartë atë në 1 line, dhe tani ne jemi deklaruar dhe fillimit. 88 00:07:06,760 --> 00:07:10,730 Pyetje? 89 00:07:10,730 --> 00:07:18,390 Dhe në fund, "Pse nuk është Shifrës Cezari shumë të sigurt"? 90 00:07:18,390 --> 00:07:23,830 Pra, së pari, nuk dua të them se kushdo se çfarë Shifrës Cezari është? 91 00:07:23,830 --> 00:07:28,100 [Student] Cezari Shifrës vetëm është se ju hartë, ju zhvendoset çdo letër, 92 00:07:28,100 --> 00:07:34,420 një numër i caktuar i letrave të shkojë gjatë, dhe për të shkuar mbrapa mbi, dhe kjo nuk është shumë e sigurt, sepse 93 00:07:34,420 --> 00:07:42,260 ka vetëm 26 opsionet e mundshme dhe ju vetëm duhet të provoni çdo 1 nga ata deri sa ju të merrni atë. 94 00:07:42,260 --> 00:07:45,470 Oh. Pra, unë duhet të përsëris? 95 00:07:45,470 --> 00:07:51,600 Shifër Cezari, it's - Unë do të thotë, ju do të merret me atë në problemet që ju - 96 00:07:51,600 --> 00:07:56,110 ose unë mendoj edicionin standard të caktuar të problemit që nuk është në edicionin e hacker. 97 00:07:56,110 --> 00:08:01,550 Pra, në edicionin e standardit të vendosur problemin, ju merrni një mesazh si, "Hello World," 98 00:08:01,550 --> 00:08:08,410 dhe ju gjithashtu kanë një numër si 6, dhe ju merrni këtë mesazh, dhe çdo karakter individual, 99 00:08:08,410 --> 00:08:11,310 ju rrotullohen atë me 6 pozicione në alfabetin. 100 00:08:11,310 --> 00:08:16,560 Pra, 'h' në përshëndetje do të bëhet h-i-j-k-l-m-n. 101 00:08:16,560 --> 00:08:19,600 Kështu letra e parë do të jetë n. Ne bëjmë të njëjtën gjë me të e. 102 00:08:19,600 --> 00:08:23,530 Në qoftë se ne kemi një, si, z apo diçka, atëherë ne të përfundojë përsëri rreth për të 'A'. 103 00:08:23,530 --> 00:08:29,280 Por çdo karakter merr cycled 6 karaktere vonë në alfabetin, dhe kjo nuk është shumë e sigurt 104 00:08:29,280 --> 00:08:35,440 pasi që nuk janë vetëm 26 mundësitë për sa mënyra që ju mund të përfundojë një letër të vetme. 105 00:08:35,440 --> 00:08:42,919 Kështu që vetëm ju mund të provoni të gjitha 26 prej tyre dhe, me sa duket, për një mesazh të gjatë të mjaftueshme, 106 00:08:42,919 --> 00:08:46,860 vetem 1 nga ato 26 gjërat e mundshme do të jetë i lexueshëm, 107 00:08:46,860 --> 00:08:50,300 dhe një lexueshëm do të jetë mesazhi origjinal. 108 00:08:50,300 --> 00:08:56,240 Pra, kjo nuk është një mënyrë shumë e mirë për encrypting asgjë në të gjitha. 109 00:08:56,240 --> 00:08:59,070 Palidhur me ato pantallona të shkurtra, "Çfarë është një funksion?" 110 00:08:59,070 --> 00:09:03,370 Pra, çfarë është një funksion? Po. 111 00:09:03,370 --> 00:09:11,640 [Student] Është si një pjesë të veçantë të kodit që ju mund të telefononi për të shkuar nëpër dhe pastaj të marrë vlerën e kthimit të çdo gjë. 112 00:09:11,640 --> 00:09:18,160 Po. Kështu që unë do të përgjigjem edhe atë duke iu përgjigjur tjetër - ose edhe vetëm me përsëritje përgjigjur në një tjetër. 113 00:09:18,160 --> 00:09:22,410 Ju mund të përdorni funksionet në vend të vetëm kopjimi dhe pasting kodin pushim. 114 00:09:22,410 --> 00:09:27,200 Vetëm të marrë atë kod, e vënë atë në një fuction, dhe pastaj ju mund të telefononi vetëm funksionin 115 00:09:27,200 --> 00:09:29,870 kudo që ju keni qenë kopjimi dhe pasting. 116 00:09:29,870 --> 00:09:33,350 Pra, funksionet janë të dobishme. 117 00:09:33,350 --> 00:09:35,860 Kështu që tani ne do të bëjmë problemet aktuale. 118 00:09:35,860 --> 00:09:46,490 I pari. Pra, ideja e një të parë, ju të kalojë atë një varg, dhe pavarësisht nga - 119 00:09:46,490 --> 00:09:52,060 ose e bën atë të thonë të gjitha të vogla? Ajo nuk thonë të gjitha të vogla. 120 00:09:52,060 --> 00:09:57,730 Pra, mesazhi mund të jetë çdo gjë, dhe - oh no. Ai e bën. 121 00:09:57,730 --> 00:10:01,610 "Për thjeshtësi, ju mund të supozojmë se përdoruesi do vetëm input letra vogle dhe hapësira." 122 00:10:01,610 --> 00:10:08,180 Pra, ne të kalojë atë një mesazh me vetëm shkronja Fjala dhe pastaj ne alternative 123 00:10:08,180 --> 00:10:15,450 midis kapitalit dhe të vogla - ne ndryshim vargu të jenë kapitale dhe të vogla, me rotacion. 124 00:10:15,450 --> 00:10:22,920 Pra, para se të ju jap një të dytë për të edhe zhyten në problem, 125 00:10:22,920 --> 00:10:32,420 çfarë është gjëja e parë që ne duhet të bëjmë? 126 00:10:32,420 --> 00:10:36,900 Oh, çfarë nuk kam thjesht klikoni mbi? Oh, unë vetëm klikuar në një email në këtu. 127 00:10:36,900 --> 00:10:42,870 Pra, gjëja e parë që ne duhet të bëjmë - jam duke kërkuar në një të gabuar? 128 00:10:42,870 --> 00:10:49,320 A është kjo pjesë e kësaj një? 129 00:10:49,320 --> 00:10:51,320 Jo, ato janë ende në atje, pse. 130 00:10:51,320 --> 00:10:55,160 Mirë, ende këtu. 131 00:10:55,160 --> 00:11:03,160 Tani ne nuk mund të supozojmë -? Po. Këtu ne nuk mund të supozojmë se kjo është vetëm të vogla dhe hapësira. 132 00:11:03,160 --> 00:11:07,770 Deri tani ne duhet të merren me faktin që letra mund të jetë çdo gjë që ne duam që ata të jenë. 133 00:11:07,770 --> 00:11:11,910 Dhe kështu gjëja e parë që ne duam të bëjmë është vetëm të marrë mesazhin. 134 00:11:11,910 --> 00:11:19,790 Ne vetëm duhet për të marrë një varg, varg s = getString, në rregull. 135 00:11:19,790 --> 00:11:24,890 Tani ky problem, ka disa mënyra për të bërë atë. 136 00:11:24,890 --> 00:11:29,840 Por ne do të duan të përdorin operatorët bitwise këtu. 137 00:11:29,840 --> 00:11:35,280 A ka njerëz të cilët ose nuk ishin në supersection, 138 00:11:35,280 --> 00:11:37,480 apo diçka, dhe nuk e di se çfarë janë operatorët bitwise? 139 00:11:37,480 --> 00:11:41,710 Apo si ato lidhen me ASCII në ndonjë mënyrë? 140 00:11:41,710 --> 00:11:45,650 [Student] Unë nuk ishte në supersection, por unë e di se çfarë janë operatorët bitwise. 141 00:11:45,650 --> 00:11:49,560 Rregull. Pra, atëherë unë nuk kam për të shkuar mbi bazat e tyre, por unë do të shpjegojë 142 00:11:49,560 --> 00:11:51,830 ajo që ne jemi duke shkuar për të dëshironi të përdorni këtu. 143 00:11:51,830 --> 00:11:59,680 Pra, 'A': Përfaqësimi Binary e kapitalit A, numri është 65. 144 00:11:59,680 --> 00:12:07,560 Unë jam vetëm duke shkuar për të parë në - 41 do të jetë 01.000.001. 145 00:12:07,560 --> 00:12:14,170 Kështu që duhet të jetë në 65 dhjetor, kështu që kjo është përfaqësimi binar i A. kapitalit karakter 146 00:12:14,170 --> 00:12:19,440 Tani, përfaqësimi binar i karakterit me të vogla 'a' 147 00:12:19,440 --> 00:12:33,350 do të jetë e njëjta gjë, pothuajse. Është se - 6, yeah. Kjo është e drejtë. 148 00:12:33,350 --> 00:12:37,670 Kapitali në mënyrë binare A, Fjala binare 'a'. 149 00:12:37,670 --> 00:12:43,940 Pra, vërejmë se dallimi në mes të A dhe 'a' është kjo pak vetme. 150 00:12:43,940 --> 00:12:49,440 Dhe kjo ndodh të jetë pak 32, bit përfaqësojnë numrin 32. 151 00:12:49,440 --> 00:12:53,910 Dhe kjo ka kuptim që A është 65; 'a' është 97. 152 00:12:53,910 --> 00:12:56,610 Dallimi në mes tyre është 32. 153 00:12:56,610 --> 00:13:03,770 Kështu që tani ne e dimë që ne mund të konvertohet nga A në 'A', duke marrë një 154 00:13:03,770 --> 00:13:09,710 dhe bitwise oring atë, me - që duket si një 1. 155 00:13:09,710 --> 00:13:20,900 Kjo është një bitwise OSE, me 00100000, dhe që do të japë na 'një.' 156 00:13:20,900 --> 00:13:26,850 Dhe ne mund të merrni nga 'një' në një nga bitwise anding 157 00:13:26,850 --> 00:13:33,700 me 11, 0 në atë vend, 11.111. 158 00:13:33,700 --> 00:13:43,840 Pra, kjo do të na japë pikërisht atë 'a' ishte, por anuloni këtë pak individuale, 159 00:13:43,840 --> 00:13:50,070 kështu që ne do të kemi 01000001, unë nuk e di nëse kam të numëruara drejtë. 160 00:13:50,070 --> 00:13:56,750 Por kjo teknikë e bitwise oring për të marrë nga kapitali të vogle, 161 00:13:56,750 --> 00:14:02,080 dhe bitwise anding për të marrë nga Fjala në kryeqytetin nuk është ekskluzive për A. 162 00:14:02,080 --> 00:14:06,510 Të gjitha letrat, K vs K, Z vs z, 163 00:14:06,510 --> 00:14:10,080 të gjithë ata janë vetëm do të ndryshojnë pak nga ky e vetme. 164 00:14:10,080 --> 00:14:16,290 Dhe kështu që ju mund të përdorni këtë për të ndryshuar nga çdo shkronj te vogle me ndonjë shkronjë dhe anasjelltas. 165 00:14:16,290 --> 00:14:26,670 Rregull. Pra, një mënyrë e lehtë për të marrë nga kjo - kështu që në vend që të 166 00:14:26,670 --> 00:14:32,170 shkruar nga çfarëdo 1011111 është - një mënyrë e lehtë për të përfaqësuar këtë numër, dhe kjo nuk është një 167 00:14:32,170 --> 00:14:39,710 që unë shkova gjatë në supersection, por tildë (~) është një tjetër operatori bitwise. 168 00:14:39,710 --> 00:14:42,520 Çfarë ~ nuk është ajo shikon në përfaqësimin bit. 169 00:14:42,520 --> 00:14:45,630 Le të marrin ndonjë numër. 170 00:14:45,630 --> 00:14:53,130 Kjo është vetëm disa numri binar, dhe çfarë ~ nuk është vetëm flips të gjitha bit. 171 00:14:53,130 --> 00:15:00,630 Pra, kjo ishte një 1, tani një 0, kjo është një 0, tani një 1, 010100. 172 00:15:00,630 --> 00:15:08,320 Pra, kjo është e gjitha e bën ~. Pra, 32 do të jetë numri - shpëtoj se - 173 00:15:08,320 --> 00:15:23,320 kështu 32 do të jetë numri 00.100.000, dhe kështu ~ i kësaj do të jetë 174 00:15:23,320 --> 00:15:29,980 ky numër deri këtu që unë anded 'a' me. 175 00:15:29,980 --> 00:15:35,600 A të gjithë të shohin se? Kjo është shumë e zakonshme, si kur ju doni të kuptoj se 176 00:15:35,600 --> 00:15:40,740 për gjëra më vonë që ne mund të shohim, kur ne duam të shohim nëse - 177 00:15:40,740 --> 00:15:44,710 ose ne duam gjithçka, çdo grup të vetëm pak përveç 1 178 00:15:44,710 --> 00:15:47,910 ju kanë tendencë për të bërë ~ nga pak se ne nuk duam të caktuar. 179 00:15:47,910 --> 00:15:53,090 Pra, ne nuk duam të vendosur 32 bit, kështu që ne nuk i ~ 32. 180 00:15:53,090 --> 00:15:57,790 Rregull. Kështu që ne mund të përdorni të gjithë ata këtu. 181 00:15:57,790 --> 00:16:03,000 Të gjithë të drejtë, kështu që është në rregull në qoftë se ju nuk jeni bërë, ne do të ecim ngadalë gjatë së bashku, 182 00:16:03,000 --> 00:16:11,870 apo të ecin mbi këtë, kështu që - përmes këtë. Ecin nëpër këtë. 183 00:16:11,870 --> 00:16:20,790 Pra, ne kemi vargun tonë, dhe ne duam të lak mbi çdo karakter në atë varg dhe të bëjë diçka për të. 184 00:16:20,790 --> 00:16:26,710 Pra, si nuk kemi lak mbi një varg? Çfarë duhet të përdorë? 185 00:16:26,710 --> 00:16:30,980 Unë nuk jam duke shkuar për të bërë atë në këtu. Po. 186 00:16:30,980 --> 00:16:42,940 Pra, unë kam iterator tim, dhe ai tha: atë, por si mund ta di se sa shumë karaktere janë në varg? 187 00:16:42,940 --> 00:16:47,030 Strlen (s), pastaj i + +. 188 00:16:47,030 --> 00:16:49,860 Pra, ajo që unë kam bërë këtu nuk është mënyra më e mirë për të bërë gjërat. 189 00:16:49,860 --> 00:16:51,860 Does anyone know pse? 190 00:16:51,860 --> 00:16:55,290 Sepse ju jeni të kontrolluar gjuhën e vargut çdo herë të vetme. 191 00:16:55,290 --> 00:17:06,859 Pra, ne do të duan të lëvizin strlen, unë mund të them deri këtu, int Gjatësia = strlen (s) 192 00:17:06,859 --> 00:17:11,900 dhe pastaj nuk i 00:17:20,410 Unë mund gjithashtu të bëjë int = 0, gjatësia = strlen (s). 194 00:17:20,410 --> 00:17:25,010 Dhe kështu kjo është disi e preferueshme, sepse tani unë kam kufizuar fushëveprimin 195 00:17:25,010 --> 00:17:29,150 i gjatësi variabile vetëm për këtë 'për' lak, në vend të deklaruar atë para 196 00:17:29,150 --> 00:17:34,990 dhe se ajo gjithmonë ekziston, dhe në rast se ju nuk e keni kapur se pse kjo është e keqe, 197 00:17:34,990 --> 00:17:39,410 ose pse origjinale ishte e keqe, it's - të fillojë në për lak. 198 00:17:39,410 --> 00:17:43,380 I kontrolluar gjendjen. Është I 00:17:46,790 Pra, gjatësia e ve, le të punojnë me "hello" tërë kohës. 200 00:17:46,790 --> 00:17:49,670 Kështu gjatësia e S, h-E-l-l-O. Gjatësia është 5. 201 00:17:49,670 --> 00:17:57,580 Pra, i = 0, gjatësia është 5, kështu që unë nuk është <5, kështu që lak vazhdon. 202 00:17:57,580 --> 00:18:02,750 Pastaj ne do të shkojmë përsëri. Ne kontrolluar gjendjen. Është I 00:18:08,390 Pra, le të shikoni gjatësinë e hello. H-E-l-l-O. Kjo është 5, unë nuk është <5, kështu që ne vazhdojmë përsëri. 204 00:18:08,390 --> 00:18:13,330 Pra, ne jemi të llogaritjes, ne jemi duke numëruar hello, për çdo ripërsëritje e lak, 205 00:18:13,330 --> 00:18:17,380 edhe menduar se kurrë nuk do të ndryshojë, ajo gjithmonë do të jetë 5. 206 00:18:17,380 --> 00:18:22,530 Pra, ne vetëm mos harroni 5 deri para, dhe tani gjithçka është më mirë. 207 00:18:22,530 --> 00:18:24,990 Pra iterating mbi vargut të tërë. 208 00:18:24,990 --> 00:18:31,470 Çfarë ne duam të bëjmë për çdo karakter të vargut? 209 00:18:31,470 --> 00:18:38,510 [Student folur, i pakuptueshëm] 210 00:18:38,510 --> 00:18:47,000 Po. Pra, nëse karakteri është jo-alfabetik, atëherë ne vetëm duam të kaloni mbi të. 211 00:18:47,000 --> 00:18:52,300 Sepse ne vetëm kujdesen për letrat alfabetikë, ne nuk mund të kapitalizojë një numër. 212 00:18:52,300 --> 00:19:10,850 Pra, si mund ta bëni këtë? Pra gjendjen tonë, kështu që nëse ne duam diçka - kontrolloni nëse është e alfabetike. 213 00:19:10,850 --> 00:19:14,060 Pra, si nuk kemi të kontrolloni këtë? 214 00:19:14,060 --> 00:19:18,720 [Student] Ju mund të përdorni vetëm funksionin është alfa. 215 00:19:18,720 --> 00:19:23,160 Është që përfshihen në qoftë prej këtyre, apo çdo përfshijnë si char.h, apo diçka? 216 00:19:23,160 --> 00:19:32,710 Le të mos e përdorni funksion është alfa dhe përdorni eksplicite - kështu që ne kemi s [i], 217 00:19:32,710 --> 00:19:40,460 që është karakteri i tetë i ve, kujtojmë se një vargu është një grup të karaktereve, 218 00:19:40,460 --> 00:19:43,180 kështu që karakteri i tetë i s. 219 00:19:43,180 --> 00:19:49,280 Tani, në qoftë se ajo është një letër kryeqyteti, ne e dimë se duhet të jetë në një gamë të veçantë. 220 00:19:49,280 --> 00:19:54,370 Dhe çfarë është që shkojnë? 221 00:19:54,370 --> 00:20:07,860 Po. Pra, nëse s [i] është ≥ 65, dhe s [i] është ≤ 90, çfarë duhet të bëj në vend? 222 00:20:07,860 --> 00:20:18,470 Po. Kështu që ju kurrë nuk duhet absolutisht edhe duhet të dini vlerat ASCII e asgjë ndonjëherë. 223 00:20:18,470 --> 00:20:25,640 Kurrë nuk mendojnë për numrat 65, 90, 97 dhe 102, apo çfarëdo qoftë ajo është. 224 00:20:25,640 --> 00:20:32,470 Ju nuk keni nevojë - 112 -? Ju nuk keni nevojë të dini ato në të gjitha. Kjo është gabim shumë. 225 00:20:32,470 --> 00:20:41,940 Vetëm të përdorni të vetme quote karaktere, konstanta e vetme kuotë. Kështu "A" dhe më pak se 90 është "Z." 226 00:20:41,940 --> 00:20:47,930 Dhe kjo është dukshëm më e mirë - Unë nuk do të dinë pjesa e sipërme e kokës sime që është 90 Z. 227 00:20:47,930 --> 00:20:52,690 Unë e di se pjesa e sipërme e kokës sime se 'Z' është kryeqyteti Z. 228 00:20:52,690 --> 00:21:02,100 Pra, për aq kohë sa kjo është në rangun e kapitalit A deri Z kapitalit, ose ne mund të kontrolloni për Fjala, 229 00:21:02,100 --> 00:21:17,010 Ose në qoftë se ajo është në varg ≥ 'a' dhe ≤ z. 230 00:21:17,010 --> 00:21:19,010 Pra, kjo është gjendja jonë. 231 00:21:19,010 --> 00:21:22,520 Stil për ku për të vënë këto gjëra ndryshon. 232 00:21:22,520 --> 00:21:29,520 Unë do të bëj atë si kjo. 233 00:21:29,520 --> 00:21:31,520 Tani, çfarë ne duam të bëjmë? 234 00:21:31,520 --> 00:21:39,530 Ne e dimë se kjo letër është një karakter, një karakter alfabetik. 235 00:21:39,530 --> 00:21:46,270 Pra, ne duhet të alternativ midis nëse kjo tani duhet të jetë një letër kapitalit ose me shkronja të vogla. 236 00:21:46,270 --> 00:21:48,820 Si nuk kemi të mbajnë gjurmët e të cilave ne duam njëri që ajo të jetë? 237 00:21:48,820 --> 00:21:55,520 [Zërat Student, pakuptueshëm] 238 00:21:55,520 --> 00:21:59,150 Pra, po, por më lejoni të kontrolloni. 239 00:21:59,150 --> 00:22:04,910 Moduli 0-2 u tha, ishte një sugjerim hedhur jashtë, dhe unë jam dakord me këtë. 240 00:22:04,910 --> 00:22:11,780 Përveç njoftimit se, si - është ky rast? Po. 241 00:22:11,780 --> 00:22:18,270 Është çdo një tjetër, por ne nuk mund Moduli 2 nga unë, ose unë mod 2, pasi 242 00:22:18,270 --> 00:22:22,950 E vëreni se Shkupi është kryeqyteti dhe 'a' është Fjala? Por ka një hapësirë ​​të ndarë ato? 243 00:22:22,950 --> 00:22:27,150 Pra, ata do të jetë i njëjtë mod 2, por ata janë raste të ndryshme. 244 00:22:27,150 --> 00:22:29,150 [Pyetja Student, pakuptueshëm] 245 00:22:29,150 --> 00:22:34,690 Po. Pra, ne jemi vetëm duke shkuar për të mbajtur një akuzë. 246 00:22:34,690 --> 00:22:38,730 Ne gjithashtu mund të bëjë që në qoftë se ketu kemi kërkuar, që mund të marrë një pak i ngathët 247 00:22:38,730 --> 00:22:41,300 në për deklaratat loop, unë do të vënë atë deri këtu. 248 00:22:41,300 --> 00:22:48,840 Pra numërimin int = fillon në 0. 249 00:22:48,840 --> 00:22:54,070 Dhe kështu tani, unë jam duke shkuar për të numëruar sa karaktere alfabetike ne kemi pasur. 250 00:22:54,070 --> 00:22:59,550 Pra, ne jemi në mënyrë të pashmangshme do të numëruar + + pasi kemi gjetur një tjetër karakter alfabetik. 251 00:22:59,550 --> 00:23:09,130 Por, kështu që tani ju jeni duke thënë, nëse mod Pika 2. 252 00:23:09,130 --> 00:23:12,590 Pra, çfarë nëse mod akuzë 2? Oh. Unë do të bëj == 0 tani për tani. 253 00:23:12,590 --> 00:23:21,740 Ne gjithashtu do të shkojnë mbi atë. Kështu që nëse mod akuzë 2 == 0, atëherë çfarë? 254 00:23:21,740 --> 00:23:27,830 [Studentët përgjigje, pakuptueshëm] 255 00:23:27,830 --> 00:23:32,750 Pra, ne duam që ajo të përfundojë uppercase. 256 00:23:32,750 --> 00:23:37,520 Ka 2 raste; uppercase dhe të vogla janë 2 raste. 257 00:23:37,520 --> 00:23:40,990 Pra, nëse ne jemi në Fjala ne kemi nevojë për ta bërë atë uppercase. 258 00:23:40,990 --> 00:23:43,710 Nëse kjo është uppercase ne nuk duhet të bëjmë asgjë. 259 00:23:43,710 --> 00:23:50,760 Por, a ka një mënyrë - shouldn't kanë kthyer - 260 00:23:50,760 --> 00:23:54,800 që ne as nuk duhet të kontrolloni nëse kjo është uppercase ose Fjala? 261 00:23:54,800 --> 00:24:02,240 Çfarë mund të bëjmë që gjithmonë të siguruar që ne gjithmonë të përfundojë deri në uppercase? 262 00:24:02,240 --> 00:24:07,830 Pra, ajo që ne njoftim e bëri për Fjala 'a', çka nëse ne e bëmë këtë të njëjtën gjë e saktë për të uppercase Një? 263 00:24:07,830 --> 00:24:11,900 A uppercase një ndryshim, ose e bën ndryshimin vlerë? 264 00:24:11,900 --> 00:24:23,100 Po. Kështu që çdo letër kryeqyteti bitwise anded me ~ 32 do të jetë që karakteri njëjta uppercase 265 00:24:23,100 --> 00:24:29,220 sepse për çdo karakter uppercase pak 32 nuk është vendosur. 266 00:24:29,220 --> 00:24:40,920 Pra, nëse ne duam të sjellë karakterin s [i], ne duam që ajo të bëhet vogle ose uppercase. 267 00:24:40,920 --> 00:24:46,890 Pra, në qoftë se ajo ishte e vogla, ajo tani është uppercase, në qoftë se ajo ishte uppercase, është ende uppercase, dhe kjo është ajo. 268 00:24:46,890 --> 00:24:54,290 Kam thënë këtë në supersection: Ju mund të përdorni 32 nëse ju dëshironi, por unë priren të preferojnë bërë 'një' - Një, 269 00:24:54,290 --> 00:25:01,150 në vend të vetëm 32 thjeshtë, sepse ajo mund të jetë çdo pak tjetër. 270 00:25:01,150 --> 00:25:03,610 Pas pak 32, ajo mund të jetë ndonjë nga këto, ose ne nuk do të kemi mjaft 271 00:25:03,610 --> 00:25:05,840 numrat për të përfaqësuar të gjithë personazhet. 272 00:25:05,840 --> 00:25:09,110 Pra, nëse ju merrni bit 32, ajo mund të jetë 64 bit, ajo mund të jetë pak 128. 273 00:25:09,110 --> 00:25:13,990 Ndonjë nga këto copa mund të jetë pak e që dallon në mes të mëdha dhe të vogla. 274 00:25:13,990 --> 00:25:18,350 Unë nuk duhet të duhet të dinë se ajo është pak 32. 275 00:25:18,350 --> 00:25:27,130 Unë mund të përdorni këtë 'A' - Një për të marrë pak që ndryshon në mes të dy 276 00:25:27,130 --> 00:25:33,000 pa pasur nevojë të mbështetet në numrin magjik që është 32. 277 00:25:33,000 --> 00:25:38,770 Dhe kështu tani, tjetër numërimin ishte i rastësishëm, dhe kështu çfarë unë dua të bëj? 278 00:25:38,770 --> 00:25:43,920 [Student përgjigjet, pakuptueshëm] 279 00:25:43,920 --> 00:25:45,920 [Student] Çfarë është ajo? 280 00:25:45,920 --> 00:25:49,850 Unë do të bëj atë në 1 sekondë. 281 00:25:49,850 --> 00:25:55,690 Kështu që tani, nëse unë dua të - unë dua të bëni të sigurtë karakteri tani është vogla, 282 00:25:55,690 --> 00:26:04,140 dhe kështu që unë mund ose me 32, dhe 'një' 32 që do të thotë - A. 283 00:26:04,140 --> 00:26:06,510 Por njoftim, me të njëjtin arsyetim si ai i mëparshmi, që nëse 284 00:26:06,510 --> 00:26:11,670 Letra ishte tashmë vogla, pastaj oring me 32 thjesht e mban atë Fjala. 285 00:26:11,670 --> 00:26:16,220 Ajo nuk ka ndryshuar karakterin origjinal. 286 00:26:16,220 --> 00:26:19,910 Por tani unë nuk kam për të shmangur duke thënë: "Në qoftë se kjo është Fjala, vetëm harrojmë për këtë, 287 00:26:19,910 --> 00:26:23,650 në qoftë se është uppercase, pastaj të ndryshojë atë. " 288 00:26:23,650 --> 00:26:26,900 Kjo është shumë më i përshtatshëm për të bërë këtë. 289 00:26:26,900 --> 00:26:33,190 [Student] Ah se strategjia e zbritur MËDHAJA nga puna Fjala qoftë se nuk ishin 32? 290 00:26:33,190 --> 00:26:35,330 Në qoftë se kjo ishte, si, 34 apo diçka? 291 00:26:35,330 --> 00:26:41,840 Pra, ju duhet të dini se dallimi në mes të 2 është -? 1 >> bit. 292 00:26:41,840 --> 00:26:49,840 Kjo mund të jetë pak më shumë se 1, për aq kohë sa të gjitha bit poshtë këtë pozicion janë të njëjta. 293 00:26:49,840 --> 00:26:58,500 Pra, ne kemi nevojë për të paktën 26 karaktere - ose, ka 26 karaktere. 294 00:26:58,500 --> 00:27:04,590 Pra, ne kemi nevojë për të paktën 26 numrat për të përfaqësuar ndryshimin - 295 00:27:04,590 --> 00:27:07,650 Ndryshimi midis A dhe 'një' ka të jenë të paktën 26, 296 00:27:07,650 --> 00:27:10,760 apo tjetër ne nuk do të kemi përfaqësuar të gjithë numrat kapitale. 297 00:27:10,760 --> 00:27:18,630 Kjo do të thotë që A, në qoftë se ne të fillojë në 1, ajo do të përdorë të gjitha këto copa, 298 00:27:18,630 --> 00:27:23,900 të gjitha këto 5 bit e para, për të përfaqësuar gjithçka me anë të Z. 299 00:27:23,900 --> 00:27:32,170 Kjo është arsyeja pse pak më tej, apo kjo pak, pak më tej është ai që është zgjedhur për të dalluar mes A dhe 'një'. 300 00:27:32,170 --> 00:27:40,930 Kjo është edhe arsyeja pse, në tabelën ASCII, ka 5 simbole ndarëse shkronja kapitale nga letrat Fjala. 301 00:27:40,930 --> 00:27:49,050 Që ata janë simbolet, 5 ekstra që sjell deri 32 duke qenë dallimi mes tyre. 302 00:27:49,050 --> 00:27:51,840 [Student] Pra, ne mund të bëjmë atë, sepse ASCII është dizajnuar në atë mënyrë. 303 00:27:51,840 --> 00:27:57,280 Po. Por ASCII - ndryshimi mund të jetë të dyja këto copa. 304 00:27:57,280 --> 00:28:12,040 Si, në qoftë se një ishin 10000001, dhe 'një' ishte 11100001 - harroj, çfarëdo. 305 00:28:12,040 --> 00:28:18,100 Por nëse do të ishte kjo, atëherë ne ende mund të përdorin 'një' - A. 306 00:28:18,100 --> 00:28:22,650 Kjo është vetëm tani diferenca midis A dhe 'a' është ende këto 2 bit. 307 00:28:22,650 --> 00:28:32,240 Unë mendoj se është shkruar 48. A është 32 + 64? Unë mendoj se është? 308 00:28:32,240 --> 00:28:40,160 Ajo do të vazhdojë të jetë 2 copa; çdo karakter të vetëm, si, Z dhe z, K dhe K, 309 00:28:40,160 --> 00:28:45,160 ata ende do të ketë të njëjtat copa saktë të përcaktuara me përjashtim të atyre 2 copa. 310 00:28:45,160 --> 00:28:48,870 Pra, për sa kohë që është gjithmonë e vërtetë, pavarësisht nga nëse jeni duke përdorur ASCII ose ndonjë sistem tjetër, 311 00:28:48,870 --> 00:28:53,050 për aq kohë sa nuk ka vetëm një numër i caktuar i bit që janë të ndryshme për çdo karakter, 312 00:28:53,050 --> 00:28:55,050 atëherë kjo works fine. 313 00:28:55,050 --> 00:29:06,110 Është vetëm se 32 u krijua për shkak se ajo është e para që ne ndoshta mund të përdorni. Best >>. 314 00:29:06,110 --> 00:29:14,520 Unë priren të preferojnë, në rast se ju nuk e keni parë, nëse bllok është vetëm një linjë të vetme, 315 00:29:14,520 --> 00:29:24,280 ju mund të shpëtoj nga formatimin e teksteve kaçurrel, kështu që unë priren të preferojnë bërë këtë. 316 00:29:24,280 --> 00:29:34,010 Gjithashtu, ju e dini se si ne mund të bëjmë gjëra të tilla si s [i] + = 1? 317 00:29:34,010 --> 00:29:41,090 Ju gjithashtu mund të bëjë s [i] bitwise DHE = 32. 318 00:29:41,090 --> 00:29:46,400 Dhe bitwise OR = 32. 319 00:29:46,400 --> 00:29:51,490 Gjithashtu, numërimin e mod 2 == 0. 320 00:29:51,490 --> 00:30:00,900 Pra mos harroni se - unë nuk do të shkruaj atë - çdo jo-zero vlera është e vërtetë, dhe 0 është e rreme. 321 00:30:00,900 --> 00:30:07,880 Pra, "në qoftë se mod akuzë 2 == 0" është njëlloj si të thuash "nëse nuk llogariten mod 2." 322 00:30:07,880 --> 00:30:11,580 Unë ndoshta do të kishte ndryshuar vetëm linjat dhe tha, "nëse numërimi mod 2, 323 00:30:11,580 --> 00:30:15,350 nuk OSE 1, tjetër nuk DHE 1, "kështu që unë nuk kam nevojë për" jo. " 324 00:30:15,350 --> 00:30:18,650 Por kjo punon ashtu si edhe. 325 00:30:18,650 --> 00:30:25,660 Dhe çfarë tjetër mund të bëj këtu? 326 00:30:25,660 --> 00:30:29,060 Ju mund të kombinohen ato me tresh në qoftë se ju të kërkuar, por atëherë kjo do të bëjë vetëm gjëra të çrregullt 327 00:30:29,060 --> 00:30:33,770 dhe ndoshta më e vështirë për të lexuar, kështu që ne nuk do të bëjë këtë. 328 00:30:33,770 --> 00:30:37,330 Çdokush ka ndonjë sugjerime të tjera? 329 00:30:37,330 --> 00:30:41,580 Është që të gjithë problemi kërkuar? Oh yeah. 330 00:30:41,580 --> 00:30:51,070 Kështu shpëtoj nga këto rreshta bosh, tani ne do të shtypura f,% s duke qenë një për strings, 331 00:30:51,070 --> 00:30:56,620 Ne do të shtypura f, s. 332 00:30:56,620 --> 00:30:59,330 Tani le të drejtuar atë. Nuk kam bërë asgjë të gabuar? 333 00:30:59,330 --> 00:31:03,200 Kjo është një \ "; Unë dua një n. 334 00:31:03,200 --> 00:31:07,840 Rregull. Tani ne do të drejtuar atë. Kjo ndoshta do të bërtas në mua. 335 00:31:07,840 --> 00:31:11,250 Strlen është në string. 336 00:31:11,250 --> 00:31:14,290 Pra, kjo është gjë e bukur për tingëllimë është ajo ju tregon se çfarë është në të, 337 00:31:14,290 --> 00:31:19,140 vend të KPK cilat vetëm thotë, "Hej, keni harruar diçka, unë nuk e di se çfarë ishte." 338 00:31:19,140 --> 00:31:29,220 Por kjo do të thoni, "do të thoshte që të përfshijë string." 339 00:31:29,220 --> 00:31:32,130 Kështu që unë nuk kam të menjëhershëm për asgjë, kështu që nuk është thënë asgjë. 340 00:31:32,130 --> 00:31:42,540 Por ne do të bëjmë shembullin e tyre, "Thanks 4 add me". 341 00:31:42,540 --> 00:31:47,880 Që duket e drejtë. Hooray. 342 00:31:47,880 --> 00:31:52,370 Kështu të kthehen në kryesore tuaj, unë kurrë nuk pothuajse të bërë atë. 343 00:31:52,370 --> 00:31:57,110 Kjo është fakultative. Dhe kryesore është funksioni i vetëm për të cilin ajo është fakultative. 344 00:31:57,110 --> 00:32:07,140 Nëse ju nuk kthehen asgjë nga kryesor, është supozuar se keni menduar të ktheheni 0. 345 00:32:07,140 --> 00:32:13,070 Pyetje? 346 00:32:13,070 --> 00:32:20,980 Rregull. Deri tani problemi i dytë. 347 00:32:20,980 --> 00:32:24,810 "Kujtojnë nga leksioni dytë 2 javë që shkëmbejnë vlerat 2 variablave 'duke kaluar 348 00:32:24,810 --> 00:32:30,780 ato 2 ndryshore në një funksion (edhe nëse quhet swap) nuk bën pikërisht të punojnë, së paku jo pa 'pointers. " 349 00:32:30,780 --> 00:32:37,020 Dhe injorojnë pointers deri sa të kemi për ta. 350 00:32:37,020 --> 00:32:40,070 Ne duam që të bie në ujdi 2 variabla, ne nuk jeni duke përdorur një funksion për të bërë atë. 351 00:32:40,070 --> 00:32:43,410 Ne jemi ende duke shkuar për të bërë atë në kryesore si ajo thotë. 352 00:32:43,410 --> 00:32:48,360 Por për të përdorin ato 2 variabla, ne nuk duam që të përdorni një ndryshore të përkohshme. 353 00:32:48,360 --> 00:32:50,770 Ka 2 mënyra për ta bërë këtë. 354 00:32:50,770 --> 00:32:56,310 Ju mund ta bëni atë duke përdorur operatorët tradicionale tuaj binar. 355 00:32:56,310 --> 00:33:00,180 Pra, nuk e di ndokush një mënyrë të shpejtë dhe të pista për të bërë këtë? 356 00:33:00,180 --> 00:33:07,650 Ajo mund të vërtetë të marrë një minutë të të menduarit. Nëse kam - 357 00:33:07,650 --> 00:33:12,130 Unë do të ngritur problemin e deri si ata kërkojnë. Pra, nëse unë kam 2 variablave, A, e cila është vetëm një numër të plotë 358 00:33:12,130 --> 00:33:17,800 që ata japin mua, dhe të ndryshueshme shuma B, i cili është një tjetër numër i plotë që unë jam dhënë. 359 00:33:17,800 --> 00:33:22,700 Pra, nëse unë kam këto 2 variablave, tani unë dua të bie në ujdi tyre. 360 00:33:22,700 --> 00:33:31,550 Tradicionale, duke përdorur operatorët rregullta tuaj binare, dua të them, si +, -, ÷. 361 00:33:31,550 --> 00:33:36,630 Jo operatorët bitwise të cilat veprojnë në binar. 362 00:33:36,630 --> 00:33:39,600 Pra, duke përdorur -, +, ÷, dhe të gjithë ata. 363 00:33:39,600 --> 00:33:52,980 Ne mund të bie në ujdi duke bërë diçka si a = a + b dhe b = a - b, a = a - b. 364 00:33:52,980 --> 00:34:04,260 Pra, shikoni mendje e shëndoshë, dhe pastaj ne do të shohim se pse veprat. 365 00:34:04,260 --> 00:34:13,320 Le të thonë se a = 7, b = 3, atëherë a + b do të jetë 10. 366 00:34:13,320 --> 00:34:18,820 Pra, ne jemi tani duke vendosur një = 10, dhe pastaj ne jemi duke bërë b = a - b. 367 00:34:18,820 --> 00:34:30,250 Kështu ne duke bërë b = një - b, e cila do të jetë 7, dhe b = një - b përsëri, 368 00:34:30,250 --> 00:34:38,650 ose një = një - b. Cila do të jetë 10-7 cili është 3. 369 00:34:38,650 --> 00:34:44,850 Deri tani, të saktë, ishte "një" 7, b ishte 3, dhe tani është 7 b dhe 'a' është 3. 370 00:34:44,850 --> 00:34:48,679 Kështu që ka kuptim lloj, 'a', është kombinimi i 2 numrave. 371 00:34:48,679 --> 00:34:53,000 Në këtë pikë, 'a', është kombinim, dhe pastaj ne jemi zbritur nga b origjinale, 372 00:34:53,000 --> 00:34:56,860 dhe pastaj ne jemi zbritur nga çfarë ishte origjinale 'një'. 373 00:34:56,860 --> 00:35:01,150 Por kjo nuk funksionon për të gjithë numrat. 374 00:35:01,150 --> 00:35:08,880 Për të parë këtë, le të konsiderojmë një sistem, kështu që ne zakonisht mendojmë e integers si 32 bit. 375 00:35:08,880 --> 00:35:13,050 Le të punojmë në diçka që është vetëm si 4 copa. 376 00:35:13,050 --> 00:35:15,450 Shpresojmë që unë të dalë me një shembull të mirë tani. 377 00:35:15,450 --> 00:35:18,680 Pra, unë e di, kjo do të jetë e lehtë. 378 00:35:18,680 --> 00:35:26,720 Le të thonë se numrat tanë janë 2 1111, dhe 1111, kështu që ne jemi në binar të drejtë tani. 379 00:35:26,720 --> 00:35:34,630 Në decimale aktuale, në qoftë se ju doni të mendoni për atë në këtë mënyrë, a = 15 dhe b = 15. 380 00:35:34,630 --> 00:35:37,630 Dhe kështu që ne presim, pasi ne bie në ujdi tyre - ata as nuk duhet të jenë numra të njëjta, 381 00:35:37,630 --> 00:35:41,140 por unë e bëri atë në këtë mënyrë. 382 00:35:41,140 --> 00:35:47,100 Le të mos e bëni ato numrat e njëjta. Le të bëjmë 1111 dhe 0001. 383 00:35:47,100 --> 00:35:51,860 Pra a = 15 dhe b = 1. 384 00:35:51,860 --> 00:35:57,670 Pasi ne bie në ujdi tyre, ne presim 'a' të jetë 1 dhe b të jetë 15. 385 00:35:57,670 --> 00:36:01,780 Pra, hapi ynë i parë është a = a + b. 386 00:36:01,780 --> 00:36:08,770 Numrat tona janë vetëm 4 bit gjerë, kështu 'një,' e cila është 1111, + b, e cila është 0001, 387 00:36:08,770 --> 00:36:16,780 do të përfundojë si 10000, por ne vetëm kemi 4 bit. 388 00:36:16,780 --> 00:36:22,540 Deri tani a = 0. 389 00:36:22,540 --> 00:36:34,080 Dhe tani ne duam të vendosur b = a - b - në fakt, kjo ende punon jashtë të përkryer. 390 00:36:34,080 --> 00:36:39,630 a = a - b - le të shohim nëse kjo punon jashtë të përkryer. 391 00:36:39,630 --> 00:36:53,720 Kështu pastaj b = 0 - 1, e cila do të jetë ende 15, dhe pastaj një = një - b, e cila do të jetë 1. 392 00:36:53,720 --> 00:36:56,210 Ndoshta kjo e bën punën. 393 00:36:56,210 --> 00:36:59,020 Unë ndjehen si ka një arsye se nuk punon duke përdorur të rregullt. 394 00:36:59,020 --> 00:37:06,400 Mirë, kështu që duke punuar mbi supozimin se ai nuk punon me operacione binare të rregullta, 395 00:37:06,400 --> 00:37:15,040 dhe unë do të shikoni për - unë do të Google për të parë në qoftë se është e vërtetë. 396 00:37:15,040 --> 00:37:23,490 Pra, ne duam të bëjmë atë duke përdorur operatorët bitwise, dhe këtu është dhënë XOR. 397 00:37:23,490 --> 00:37:28,780 Pra, duke futur XOR (^) në qoftë se ju nuk e keni parë atë ende. 398 00:37:28,780 --> 00:37:34,610 Kjo është, përsëri, një operator bitwise kështu që vepron pak nga pak, dhe it's - 399 00:37:34,610 --> 00:37:39,910 Nëse keni bit 0 dhe 1, atëherë kjo do të jetë 1. 400 00:37:39,910 --> 00:37:45,230 Nëse ju keni copa 1 dhe 0, ajo do të jetë 1, ju keni copa dhe 0 0 ajo do të jetë 0, 401 00:37:45,230 --> 00:37:47,640 dhe në qoftë se ju keni copa 1 dhe 1 ajo do të jetë 0. 402 00:37:47,640 --> 00:37:56,180 Pra, kjo është si OSE. Nëse njërin prej bit janë të vërteta, kjo është 1, por ndryshe OR, ajo nuk mund të jetë dy copa që janë të vërteta. 403 00:37:56,180 --> 00:37:59,320 OSE do të jetë kjo 1, XOR do të ketë këtë jetë 0. 404 00:37:59,320 --> 00:38:02,250 Pra, ne do të duan të përdorin XOR këtu. 405 00:38:02,250 --> 00:38:09,960 Mendoni se ajo për një minutë, unë jam duke shkuar për Google. 406 00:38:09,960 --> 00:38:16,230 E pra, ju nuk mund të lexoni se, unë jam aktualisht në faqen swap XOR algorithm. 407 00:38:16,230 --> 00:38:21,340 Shpresojmë se kjo do të shpjegojë se pse unë can't - 408 00:38:21,340 --> 00:38:34,190 Kjo është saktësisht algoritmi që ne vetëm e bëri. 409 00:38:34,190 --> 00:38:37,330 Unë ende nuk e shihni se pse - Unë duhet të ketë zgjedhur vetëm një shembull të keq, 410 00:38:37,330 --> 00:38:44,940 por ky rast ku 'a' ka ndodhur të bëhet 0, pas gjetjes në 5 bit, kështu që tani 'a' eshte 0, 411 00:38:44,940 --> 00:38:48,730 kjo është ajo që quhet "overflow numër i plotë." 412 00:38:48,730 --> 00:38:54,370 Sipas Wikipedia, "Ndryshe swap XOR, ky ndryshim kërkon që ai përdor disa metoda 413 00:38:54,370 --> 00:38:59,780 për të garantuar se x + y nuk shkakton një vërshim ujërash numer i plote. " 414 00:38:59,780 --> 00:39:08,350 Pra, kjo nuk kanë probleme, kjo ishte overflow integer, por kam bërë diçka të gabuar. 415 00:39:08,350 --> 00:39:10,520 Nuk jam i sigurt. Unë do të përpiqemi për të dalë me një tjetër. 416 00:39:10,520 --> 00:39:13,640 [Student] E pra, nuk është integer overflow kur ju jeni duke u përpjekur për të vënë një numër në atje 417 00:39:13,640 --> 00:39:16,640 më e madhe se shuma e copa që ju keni caktuar? 418 00:39:16,640 --> 00:39:23,730 Po. Ne kemi 4 bit. That's - kemi pasur 4 bit, ne pastaj të përpiqet për të shtuar 1 të saj, kështu që ne fund me 5 copa. 419 00:39:23,730 --> 00:39:26,690 Por pak i pestë merr vetëm prerë, yeah. 420 00:39:26,690 --> 00:39:28,970 Ajo mund të vërtetë - 421 00:39:28,970 --> 00:39:33,010 [Student] A do të hedhin ju një gabim, ose e bën këtë - se do të hedhin një gabim? 422 00:39:33,010 --> 00:39:40,720 Nr Pra, nuk ka asnjë gabim. Kur ju merrni në nivelin e kuvendit, një pak të veçantë 423 00:39:40,720 --> 00:39:47,020 diku është vendosur që të tha se nuk kishte një mbushje e tepërt, por në C ju lloj i vetëm nuk merren me këtë. 424 00:39:47,020 --> 00:39:55,160 Ju në të vërtetë nuk mund të merren me atë nëse ju përdorni udhëzime të veçanta kuvendit në C. 425 00:39:55,160 --> 00:39:58,110 Le të mendojmë për shkëmbim XOR. 426 00:39:58,110 --> 00:40:02,220 Dhe unë mendoj se artikulli i Wikipedia mund të ketë qenë gjithashtu duke thënë se - 427 00:40:02,220 --> 00:40:07,310 Pra, ajo gjithashtu solli deri aritmetikë modulare, kështu që unë mendoj unë ishte, në teori, duke bërë aritmetikë modulare 428 00:40:07,310 --> 00:40:11,160 kur kam thënë se 0-1 është 15 herë. 429 00:40:11,160 --> 00:40:15,410 Kështu që mund të vërtetë - në një procesor të rregullt që bën 0-1 = 15. 430 00:40:15,410 --> 00:40:20,430 Që ne fund deri në 0, ne zbres 1, kështu që atëherë ajo vetëm përfundon kthyer rreth për 1111. 431 00:40:20,430 --> 00:40:28,930 Pra, ky algoritëm mund të vërtetë punojnë, a + b, a - b, b - një, që mund të jetë në rregull. 432 00:40:28,930 --> 00:40:34,030 Por ka disa procesorë të cilat nuk bëjnë këtë, dhe kështu që nuk do të jetë mirë në ato ato të veçanta. 433 00:40:34,030 --> 00:40:39,880 Swap XOR do të punojë në çdo procesor. Rregull. 434 00:40:39,880 --> 00:40:42,280 Ideja është se ajo është menduar të jetë i njëjtë, edhe pse. 435 00:40:42,280 --> 00:40:50,120 Ku ne jemi duke përdorur XOR në një farë mënyre të marrë informacion të dy në 1 të variablave, 436 00:40:50,120 --> 00:40:54,120 dhe pastaj të largohen nga të dhënat e variablave individuale përsëri. 437 00:40:54,120 --> 00:41:04,330 Pra, ka njeri të ketë ide / përgjigja? 438 00:41:04,330 --> 00:41:14,540 [Student përgjigje, pakuptueshëm] 439 00:41:14,540 --> 00:41:22,220 Pra, kjo duhet të punojnë, dhe gjithashtu, XOR është commutative. 440 00:41:22,220 --> 00:41:27,620 Pavarësisht nga të cilat për këto 2 numra të ndodhë të jetë në deri këtu, 441 00:41:27,620 --> 00:41:30,100 Ky rezultat do të jetë e njëjtë. 442 00:41:30,100 --> 00:41:35,800 Pra, a ^ b ^ b është një. 443 00:41:35,800 --> 00:41:51,860 Ju gjithashtu mund të shihni këtë shkrim si një ^ = b, b = a ^, ^ a = b përsëri. 444 00:41:51,860 --> 00:42:00,200 Pra, kjo është e drejtë, dhe për të parë se pse kjo punon, mendoj se e bit. 445 00:42:00,200 --> 00:42:10,400 Duke përdorur një numër smallish, le të themi, 11.001 dhe 01.100. 446 00:42:10,400 --> 00:42:12,790 Pra, kjo është 'një', kjo është b. 447 00:42:12,790 --> 00:42:15,540 Pra, a ^ = b. 448 00:42:15,540 --> 00:42:22,380 Ne do të jeni të vendosur = 'A' të XOR e këtyre gjërave 2. 449 00:42:22,380 --> 00:42:32,920 Kështu 1 ^ 0 është 1; 1 ^ 1 është 0; 0 ^ 1 është 1, dhe 0 ^ 0 është 0; 1 ^ 0 është 1. 450 00:42:32,920 --> 00:42:37,380 Pra 'a', në qoftë se ju shikoni në numër decimal, ajo do të jetë - 451 00:42:37,380 --> 00:42:41,160 ju nuk do të jeni për të parë shumë nga një marrëdhënie midis origjinale 'a' dhe 'a i ri,' 452 00:42:41,160 --> 00:42:45,600 por duke kërkuar në copa, 'a', tani është si një rrjetë e informacionit 453 00:42:45,600 --> 00:42:49,970 të dy origjinale 'A' dhe b origjinal. 454 00:42:49,970 --> 00:42:57,930 Pra, nëse ne marrim b ^ a, ne shohim se ne do të përfundojë deri në origjinal 'një'. 455 00:42:57,930 --> 00:43:08,910 Dhe në qoftë se ne kemi marrë origjinalin 'a' ^ i ri 'a', ne shohim ne fund deri në b origjinal. 456 00:43:08,910 --> 00:43:18,380 Kështu (a ^ b) ^ b = 'një.' Origjinal 457 00:43:18,380 --> 00:43:27,910 Dhe (a ^ b) ^ një = b origjinal. 458 00:43:27,910 --> 00:43:37,010 Nuk është - një tjetër mënyrë për të parë këtë është XOR asgjë në vetvete është gjithmonë 0. 459 00:43:37,010 --> 00:43:45,020 Pra, 1101 ^ 1101, të gjitha bit do të jetë e njëjtë. 460 00:43:45,020 --> 00:43:47,920 Pra, kurrë nuk do të jetë një rast ku 1 është një 0 dhe tjetri është 1. 461 00:43:47,920 --> 00:43:51,080 Pra, kjo është 0000. 462 00:43:51,080 --> 00:43:57,240 Njëjtë me këtë. (A ^ b) ^ b është si një ^ (b ^ b). 463 00:43:57,240 --> 00:44:03,680 (B ^ b) do të jetë 0, a ^ 0 është vetëm do të jetë "një", pasi që të gjitha bit janë 0. 464 00:44:03,680 --> 00:44:08,050 Pra, të vetmet që do të jenë aty ku 'a' ishte fillimisht një 1 - kishte ato. 465 00:44:08,050 --> 00:44:12,070 Dhe ideja njëjtë këtu, unë jam goxha i sigurt se edhe commutative. 466 00:44:12,070 --> 00:44:17,590 Po. Unë kam thënë para se ajo ishte commutative. 467 00:44:17,590 --> 00:44:24,680 The ^ 'a', dhe kjo është asociativ, kështu që tani (b ^ a) ^ a. 468 00:44:24,680 --> 00:44:28,970 Dhe ne mund të bëjmë b ^ (a ^ a). 469 00:44:28,970 --> 00:44:31,540 Dhe kështu përsëri, ne të merrni b origjinal. 470 00:44:31,540 --> 00:44:37,120 Pra, 'a', tani është kombinimi i 'a', b dhe së bashku. 471 00:44:37,120 --> 00:44:49,660 Përdorimi tonë të ri combo 'a', ne themi b = combo 'a' ^ B origjinal, ne marrim origjinal 'një'. 472 00:44:49,660 --> 00:45:05,170 Dhe tani një combo = 'a' ^ B re, e cila ishte origjinale - ose që tani është se çfarë ishte 'një' ose b. 473 00:45:05,170 --> 00:45:13,620 Kjo është në këtë rast këtu poshtë. Kjo është = b, b vjetër. 474 00:45:13,620 --> 00:45:16,550 Deri tani gjithçka është kthyer në mënyrë swapped. 475 00:45:16,550 --> 00:45:22,960 Në qoftë se ne të vërtetë shikuar në copa, b = a ^ b, do të XOR këto 2, 476 00:45:22,960 --> 00:45:33,920 dhe përgjigja do të jetë ky, dhe pastaj a = a ^ b është XORing këto 2 dhe përgjigja është kjo. 477 00:45:33,920 --> 00:45:41,090 Pyetje? Rregull. Pra fundit është disi në mënyrë të konsiderueshme më e vështirë. 478 00:45:41,090 --> 00:45:43,180 [Student] Unë mendoj se ai ka një pyetje në lidhje me të. Oh >>, sorry. 479 00:45:43,180 --> 00:45:49,380 [Student] Çfarë është në të vërtetë më të shpejtë? Në qoftë se ju përdorni këtë XOR, apo është në qoftë se ju të deklarojë një ndryshore të re? 480 00:45:49,380 --> 00:45:55,190 Pra, çfarë është në të vërtetë më të shpejtë, duke deklaruar një ndryshore të re ose të përdorur XOR të bie në ujdi? 481 00:45:55,190 --> 00:45:59,600 Përgjigja është, në të gjitha gjasat, një ndryshore të përkohshme. 482 00:45:59,600 --> 00:46:05,780 Dhe kjo është për shkak se një herë është hartuar poshtë - kështu në nivelin e kuvendit, 483 00:46:05,780 --> 00:46:12,320 nuk ka gjë të tillë si variabla lokale apo ndonjë variablave të përkohshme ose ndonjë të këtij stuff. 484 00:46:12,320 --> 00:46:16,060 Ata po ashtu si - ka memorie, dhe nuk janë regjistrat. 485 00:46:16,060 --> 00:46:20,920 Regjistrat janë ku gjërat janë aktive ndodh. 486 00:46:20,920 --> 00:46:24,750 Ju nuk mund të shtoni 2 gjëra në kujtesë, ju shtoni 2 gjëra në regjistra. 487 00:46:24,750 --> 00:46:28,160 Dhe ju sjellë gjërat nga kujtesa në regjistrat që pastaj shtoni ato, 488 00:46:28,160 --> 00:46:33,180 dhe pastaj ju mund të vënë ato përsëri në kujtesë, por të gjithë veprimi ndodh në regjistrat. 489 00:46:33,180 --> 00:46:38,750 Pra, kur ju jeni duke përdorur qasje të përkohshme ndryshueshme, zakonisht ajo që ndodh është 490 00:46:38,750 --> 00:46:42,810 këto 2 numra janë tashmë në regjistrat. 491 00:46:42,810 --> 00:46:46,570 Dhe pastaj nga kjo pikë e tutje, pasi të keni swapped ato, 492 00:46:46,570 --> 00:46:51,540 ajo vetëm do të fillojë përdorimin e regjistrit tjetër. 493 00:46:51,540 --> 00:46:56,510 Kudo ju kishte qenë duke përdorur b, ai vetëm do të përdorin regjistrin që ishte tashmë ruajtjen 'a'. 494 00:46:56,510 --> 00:47:02,180 Kështu që nuk ka nevojë të bëjë asgjë për të vërtetë të bërë shkëmbim. Po? 495 00:47:02,180 --> 00:47:05,690 [Student] Por ajo gjithashtu merr më shumë memorie, e drejtë? 496 00:47:05,690 --> 00:47:10,280 Ajo do të marrë vetëm më shumë memorie në qoftë se ajo ka nevojë për të ruajtur atë ndryshore të përkohshme. 497 00:47:10,280 --> 00:47:14,830 Ashtu si në qoftë se ju përdorni më vonë se ndryshore të përkohshme përsëri diku, 498 00:47:14,830 --> 00:47:18,920 pastaj - ose ju të caktojë diçka në atë variable përkohshëm. 499 00:47:18,920 --> 00:47:24,630 Pra, në qoftë se në çdo moment në kohë 'a,' b në temp kanë vlera të dallueshme apo diçka, 500 00:47:24,630 --> 00:47:30,680 atëherë ajo do të ketë vende të dallueshme në kujtesë, por është e vërtetë se 501 00:47:30,680 --> 00:47:34,800 ka shumë variabla të lokale të cilat vetëm do të ekzistojnë në regjistrat. 502 00:47:34,800 --> 00:47:44,370 Në të cilin rast, ajo kurrë nuk është vënë në kujtesë, dhe kështu ju nuk jeni të humbur kujtesën. 503 00:47:44,370 --> 00:47:58,620 Rregull. Pyetja e fundit është pak më shumë. 504 00:47:58,620 --> 00:48:04,850 Kështu që këtu, në këtë aplikim CS50, nuk është një fjalor. 505 00:48:04,850 --> 00:48:12,390 Dhe arsyeja për këtë është për shkak se [? B66] është një spell checker ku ju do të jetë me shkrim 506 00:48:12,390 --> 00:48:15,780 duke përdorur tabelat hash apo përpiqet ose disa struktura të dhënave. 507 00:48:15,780 --> 00:48:22,660 Ju do të jeni të shkruar një spell checker, dhe ju do të jeni duke përdorur këtë fjalor për të bërë këtë. 508 00:48:22,660 --> 00:48:28,280 Por për këtë problem, ne vetëm do të shikoni për të parë nëse një fjalë të vetme është në fjalor. 509 00:48:28,280 --> 00:48:31,250 Pra, në vend të ruajtjen e fjalor të tërë në disa strukturën e të dhënave 510 00:48:31,250 --> 00:48:35,180 dhe pastaj të kërkoni mbi një dokument të tërë për të parë nëse çdo gjë është misspelled, 511 00:48:35,180 --> 00:48:38,490 ne vetëm duan të gjejnë 1 fjalë. Pra, ne vetëm mund të skanoni mbi fjalorin gjithë 512 00:48:38,490 --> 00:48:44,300 dhe në qoftë se nuk kemi gjetur fjalën në fjalor të tërë, atëherë ajo nuk ishte aty. 513 00:48:44,300 --> 00:48:52,150 Nëse ne scan mbi fjalor të tërë dhe nuk shohin fjalën, atëherë ne jemi të mirë, ne kemi gjetur atë. 514 00:48:52,150 --> 00:48:56,580 Ai thotë këtu se ne duam të fillojmë të shikojmë në file-trajtimin e funksionit C-së, 515 00:48:56,580 --> 00:48:59,930 që ne duam për të lexuar fjalorin, 516 00:48:59,930 --> 00:49:07,680 por unë do të jap aluzion këtu si në të cilën funksionet që ju duhet të mendoni. 517 00:49:07,680 --> 00:49:11,510 Unë do të shkruaj ato në hapësira. 518 00:49:11,510 --> 00:49:20,490 Pra, ato kryesore që ju do të dëshironi të shikoni në të f hapur dhe pastaj, në mënyrë të pashmangshme, f mbyllur, 519 00:49:20,490 --> 00:49:26,540 i cili do të shkojë në fund të programit tuaj, dhe f f scan. 520 00:49:26,540 --> 00:49:31,060 Ju mund të përdorë gjithashtu edhe f lexuar, por ju ndoshta nuk dëshironi të 521 00:49:31,060 --> 00:49:34,200 për shkak se - ju nuk do të përfundojnë që kanë nevojë. 522 00:49:34,200 --> 00:49:41,880 F f scan është ajo që ju do të jeni duke përdorur të scan mbi fjalorin. 523 00:49:41,880 --> 00:49:46,370 Dhe kështu ju nuk keni nevojë për kodin lart zgjidhje, vetëm të përpiqet dhe si pseudo-kod rrugën tuaj 524 00:49:46,370 --> 00:50:05,200 për një zgjidhje, dhe pastaj ne do të diskutuar atë. 525 00:50:05,200 --> 00:50:14,110 Dhe në fakt, pasi unë tashmë ju dha këto, në qoftë se ju shkoni në ndonjë terminal apo aplikim shell tuaj, 526 00:50:14,110 --> 00:50:18,250 Unë do të - Unë zakonisht - në qoftë se ju nuk e keni parë ende, unë nuk e di nëse ju e bëri në klasë, 527 00:50:18,250 --> 00:50:23,490 por njeriu, kështu që faqet njeriu, janë mjaft të dobishme për kërkim në shumë e shumë çdo funksion. 528 00:50:23,490 --> 00:50:27,330 Kështu që unë mund të bëjë, si, f njeri, scan f. 529 00:50:27,330 --> 00:50:32,300 Kjo është tani për info familjes f scan e funksioneve. 530 00:50:32,300 --> 00:50:37,070 Unë mund të bëjë f njeri, të hapura, dhe se do të jepni të dhënat e kësaj. 531 00:50:37,070 --> 00:50:40,750 Pra, nëse ju e dini se çfarë ju jeni duke përdorur funksion, ose ju jeni duke lexuar kodin 532 00:50:40,750 --> 00:50:43,000 dhe ju të shihni disa funksion dhe ju jeni si, "Çfarë do të bëni këtë?" 533 00:50:43,000 --> 00:50:45,280 Vetëm se njeriu funksion emrin. 534 00:50:45,280 --> 00:50:47,340 Ka disa shembuj të pazakontë ku ju mund të keni për të thënë 535 00:50:47,340 --> 00:50:51,620 pëlqen. njeri 2 se emri i funksionit, ose njeriu që emri 3 funksion, 536 00:50:51,620 --> 00:50:58,230 por ju vetëm duhet të bëjë që në qoftë funksion njeri emri nuk do të ndodhë për të punuar herë të parë. 537 00:50:58,230 --> 00:51:03,010 [Student] Kështu që unë jam duke lexuar faqen njeri për të hapur, por unë jam ende i hutuar se si të përdorin atë dhe programin. 538 00:51:03,010 --> 00:51:06,170 Rregull. Një shumë e faqeve njeriu janë më pak se të dobishme. 539 00:51:06,170 --> 00:51:08,470 Ata janë më të dobishme në qoftë se ju tashmë e dini se çfarë bëjnë ata 540 00:51:08,470 --> 00:51:12,670 dhe atëherë ju vetëm duhet të mbani mend rendin e argumenteve apo diçka. 541 00:51:12,670 --> 00:51:17,640 Ose ata mund të ju jap një pasqyrë të përgjithshme, por disa prej tyre janë shumë të madhe. 542 00:51:17,640 --> 00:51:22,220 Ashtu si f f scan, gjithashtu. Kjo ju jep informacion për të gjitha këto funksione, 543 00:51:22,220 --> 00:51:28,120 dhe 1 vijë këtu poshtë ndodh për të thënë, "F scan f lexon nga pika string ose lumë." 544 00:51:28,120 --> 00:51:32,360 Por f hapur. Pra, si do ne përdorim f hapur? 545 00:51:32,360 --> 00:51:38,470 Ideja e një programi që ka nevojë për të bërë fotografinë I / O është që 546 00:51:38,470 --> 00:51:45,070 keni nevojë për të hapur dosjen që ju doni të bëni gjëra me të, dhe në mënyrë të pashmangshme, 547 00:51:45,070 --> 00:51:51,220 lexoni gjëra nga ajo dosje dhe të bëjë gjëra me ta. 548 00:51:51,220 --> 00:51:55,350 F hapur është ajo që ne përdorim për të hapur dosjen. 549 00:51:55,350 --> 00:52:04,190 Gjë që ne të kthehemi, kështu që ajo fotografi nuk duam të hapur, kjo na jep e - 550 00:52:04,190 --> 00:52:11,970 këtu ai thotë se "/ user / share / dict / words". 551 00:52:11,970 --> 00:52:16,740 Kjo është skedari që ne duam të hapur, dhe ne duam të hapur - 552 00:52:16,740 --> 00:52:21,440 ne duhet të specifikojë në mënyrë eksplicite nëse ne duam të hapur atë për të lexuar ose në qoftë se ne duam të hapur atë për të shkruar. 553 00:52:21,440 --> 00:52:26,490 Ka një çift i kombinimeve dhe sende, por ne duam të hapur këtë për lexim. 554 00:52:26,490 --> 00:52:29,380 Ne duam për të lexuar nga dosja. 555 00:52:29,380 --> 00:52:34,290 Pra, çfarë e bën këtë kthim? Ajo kthen një yll file (*), 556 00:52:34,290 --> 00:52:37,260 dhe unë vetëm do të tregojë gjithçka në f ndryshueshme, kështu që *, 557 00:52:37,260 --> 00:52:40,840 përsëri, kjo është një tregues, por ne nuk duan të merren me pointers. 558 00:52:40,840 --> 00:52:46,470 Ju mund të mendoni si f, f tani është e ndryshueshme që ju jeni do të përdorin për të përfaqësuar file. 559 00:52:46,470 --> 00:52:49,850 Pra, nëse ju dëshironi të lexoni nga file, ju keni lexuar nga f. 560 00:52:49,850 --> 00:52:54,820 Nëse ju doni për të mbyllur dosjen, ju mbyllni f. 561 00:52:54,820 --> 00:53:00,350 Pra, në fund të programit, kur ne duam të pashmangshme për të mbyllur dosjen, çfarë duhet të bëjmë? 562 00:53:00,350 --> 00:53:06,750 Ne duam për të mbyllur f. 563 00:53:06,750 --> 00:53:12,600 Deri tani funksionin fundit fotografi që ne do të dëshironi të përdorni është scan f, f f scan. 564 00:53:12,600 --> 00:53:20,930 Dhe çfarë është ajo që e bën Scans mbi dosjen e kërkuar për një model të ndeshjes. 565 00:53:20,930 --> 00:53:39,100 Looking në faqen njeri këtu, ne shohim int f f scan, injorojnë vlerën e kthimit për tani. 566 00:53:39,100 --> 00:53:45,230 Argumenti i parë është * fotografi lumë, kështu që argumenti i parë ne do të duan të kalojnë është f. 567 00:53:45,230 --> 00:53:47,900 Ne jemi skanim mbi f. 568 00:53:47,900 --> 00:53:53,680 Argumenti i dytë është një format string. 569 00:53:53,680 --> 00:53:58,310 Unë do t'ju jap një varg format të drejtë tani. 570 00:53:58,310 --> 00:54:05,180 Unë mendoj se ne të ndodhë për të thënë, 127s \ n, një shumë që është e panevojshme. 571 00:54:05,180 --> 00:54:12,490 Ideja e asaj që string format është, është që ju mund të mendoni për f scan si e kundërta e f shtypura. 572 00:54:12,490 --> 00:54:17,160 Pra f shtypura, f shtypura ne gjithashtu e përdorin këtë lloj të parametrit format, 573 00:54:17,160 --> 00:54:25,000 por në f shtypura atë që ne po bëjmë është - le të shohim në një ekuivalente. 574 00:54:25,000 --> 00:54:32,550 Pra shtypura f, dhe nuk ka në fakt edhe f f shtypura, ku Argumenti i parë do të jetë f. 575 00:54:32,550 --> 00:54:40,980 Kur keni shkruar f, ne mund të themi diçka si, "print 127s \ n" dhe pastaj në qoftë se ne të kalojë atë një varg, 576 00:54:40,980 --> 00:54:44,050 ajo do të shtypura këtë varg dhe pastaj një linjë të re. 577 00:54:44,050 --> 00:54:49,690 Çfarë do të thotë 127, unë jam goxha i sigurt, por unë kurrë nuk kam kufizuar veten për atë, 578 00:54:49,690 --> 00:54:52,470 Ju nuk do të duhet edhe të them '127 'në f shtypura, 579 00:54:52,470 --> 00:54:57,090 por çfarë do të thotë është shtypur para 127 karaktere. 580 00:54:57,090 --> 00:54:59,350 Kështu që unë jam goxha i sigurt se është rasti. Ju mund të Google për këtë. 581 00:54:59,350 --> 00:55:03,000 Por në një tjetër unë jam gati pozitive kjo do të thotë se. 582 00:55:03,000 --> 00:55:08,880 Pra, kjo është shtypur para 127 karaktere, pasuar nga një linjë të re. 583 00:55:08,880 --> 00:55:14,680 F f scan tani, në vend të kërkuar në një ndryshore dhe shtypje atë, 584 00:55:14,680 --> 00:55:22,620 ajo do të shikojmë në disa vargun, dhe dyqan në modelin e ndryshueshme. 585 00:55:22,620 --> 00:55:26,360 Le të përdorni të vërtetë f scan në një shembull tjetër. 586 00:55:26,360 --> 00:55:31,670 Pra, le të thonë se kemi pasur disa int, x = 4, 587 00:55:31,670 --> 00:55:41,110 dhe ne të kërkuar për të krijuar një varg bërë nga - të kërkuar për të krijuar varg 588 00:55:41,110 --> 00:55:44,250 që ishte si, kjo do të dalë shumë më vonë, 589 00:55:44,250 --> 00:55:49,020 diçka që është vetëm si 4.jpg. 590 00:55:49,020 --> 00:55:51,870 Pra, kjo mund të jetë një program, ku ju do të keni counter shuma, 591 00:55:51,870 --> 00:55:56,420 përmbledhur kundër i, dhe ju doni për të ruajtur një bandë e imazheve. 592 00:55:56,420 --> 00:56:02,430 Pra, ju doni të ruani i.jpg, ku i është një përsëritje e lak tuaj. 593 00:56:02,430 --> 00:56:05,500 Pra, si nuk kemi bërë këtë varg për atë JPEG? 594 00:56:05,500 --> 00:56:11,720 Në qoftë se ju të kërkuar për të shkruar 4.jpg, ne mund të them vetëm f shtypura, d.jpg%, 595 00:56:11,720 --> 00:56:14,410 dhe pastaj ajo do të shtypura për atë JPEG. 596 00:56:14,410 --> 00:56:20,050 Por në qoftë se ne duam për të shpëtuar 4.jpg string, ne përdorim f scan. 597 00:56:20,050 --> 00:56:30,860 Pra string s - në të vërtetë ne can't - karakteri, char s, le të shkojë 100. 598 00:56:30,860 --> 00:56:35,400 Kështu që unë thjesht shpallur disa koleksion prej 100 karaktereve, 599 00:56:35,400 --> 00:56:39,830 dhe kjo është ajo që ne jemi në mënyrë të pashmangshme do të jetë ruajtjen atë JPEG in 600 00:56:39,830 --> 00:56:47,920 Pra, ne jemi duke shkuar për të përdorur f scan, dhe format, se si ne do të themi d.jpg% 601 00:56:47,920 --> 00:56:54,980 në mënyrë që të shtypur 4.jpg, formati i kësaj do të jetë d.jpg%. 602 00:56:54,980 --> 00:57:04,020 Pra, format është d.jpg%, ajo që ne duam të zëvendësojë d% me të është x, 603 00:57:04,020 --> 00:57:06,590 dhe tani ne kemi nevojë për të ruajtur atë varg diku. 604 00:57:06,590 --> 00:57:12,500 Dhe ku ne jemi duke shkuar për të ruajtur këtë varg është në array s. 605 00:57:12,500 --> 00:57:21,640 Kështu që pas këtë linjë të kodit, s, në qoftë se ne shtyp, f% s e s ndryshueshme, 606 00:57:21,640 --> 00:57:26,280 ajo do të shtypura 4.jpg. 607 00:57:26,280 --> 00:57:38,930 Pra, f f scan është e njëjtë si scan f, përveç tani ajo është duke kërkuar mbi këtë skedë 608 00:57:38,930 --> 00:57:43,600 për atë për të ruajtur në s. 609 00:57:43,600 --> 00:57:46,160 Kjo është ajo që argumenti i fundit do të jetë. 610 00:57:46,160 --> 00:57:54,170 Ne duam për të ruajtur - "Scan familjen e funksioneve f scans në të dyja sipas formatit si u përpoq më poshtë. 611 00:57:54,170 --> 00:58:02,450 Nëse ndonjë janë ruajtur në pikat vend që ju mund të ktheheni - " 612 00:58:02,450 --> 00:58:12,910 Jo, ne mund të jetë e mirë. Më lejoni të mendoj për një të dytë. 613 00:58:12,910 --> 00:58:26,350 Pra scan f nuk - çfarë dreq është funksion i cili bën këtë? 614 00:58:26,350 --> 00:58:31,650 Pra scan f nuk do të marrë një numër të plotë dhe të bëjë dot muri. 615 00:58:31,650 --> 00:58:43,490 Ajo do të [Mumbles]. 616 00:58:43,490 --> 00:58:49,360 Ruaj variabël string int int në C. 617 00:58:49,360 --> 00:58:55,940 Çfarë është kjo variabël, ose çfarë është ky funksion quhet? 618 00:58:55,940 --> 00:59:04,950 Po. That's - po. Pra, ajo që unë u përcaktuar për ju para se të ishte s f shtypura, 619 00:59:04,950 --> 00:59:09,820 cila - që e bën kuptim shumë më tepër, pse unë tha se kjo ishte më shumë si f shtypura. 620 00:59:09,820 --> 00:59:14,700 Scan f është ende lloj si f shtypura, por f s shtypura do të scan atë gjatë 621 00:59:14,700 --> 00:59:17,510 dhe zëvendësuar variablat dhe tani ruajtur atë në një varg. 622 00:59:17,510 --> 00:59:19,620 Në vend të shtypjes, ajo ruan atë në një varg. 623 00:59:19,620 --> 00:59:25,070 Kështu që injorojnë tërësisht. Ju mund ende mendoj se e specifier format si si ajo e f shtypura. 624 00:59:25,070 --> 00:59:34,510 Deri tani, në qoftë se ne të kërkuar për të bërë gjënë e 4.jpg, ne do të bëjmë f s print, x për këtë. 625 00:59:34,510 --> 00:59:38,520 Pra, çfarë po bën scan f - çfarë është pyetja juaj do të jetë? 626 00:59:38,520 --> 00:59:40,820 [Student] Unë jam i hutuar vetëm në atë që ne jemi duke u përpjekur për të bërë të drejtë këtu 627 00:59:40,820 --> 00:59:43,450 me atë JPEG. Mund ta shpjegoni atë kohë 1 më shumë? 628 00:59:43,450 --> 00:59:52,710 Pra, kjo ishte - kjo është relevent pak për f f scan tani, me shpresë, ajo do ta lidhë përsëri në një lloj mënyre. 629 00:59:52,710 --> 01:00:02,240 Por ajo që unë fillimisht kishte për qëllim për të treguar ishte - kjo është në të vërtetë drejtpërdrejt relevante për këto [? F5] 630 01:00:02,240 --> 01:00:08,520 Ju jeni do të jetë duke përdorur f s shtypura, ku thonë se ne kemi 100 imazhe, 631 01:00:08,520 --> 01:00:13,630 dhe ju dëshironi të lexoni imazhin 1.jpg 2.jpg,, 3.jpg. 632 01:00:13,630 --> 01:00:21,520 Pra, në mënyrë që të bëni këtë, ju duhet të f hapur, dhe pastaj ju duhet të kalojë në vargun që ju doni të hapur. 633 01:00:21,520 --> 01:00:30,020 Pra, ne do të duan për të hapur 1.jpg, në mënyrë që të krijojë vargun që është 1.jpg, 634 01:00:30,020 --> 01:00:37,660 f bëjmë s shtypura nga% d.jpg--ne nuk e bëjmë për int i = 0. 635 01:00:37,660 --> 01:00:46,580 i <40, i + +. 636 01:00:46,580 --> 01:00:51,130 Pra, f% s print d.jpg e i. 637 01:00:51,130 --> 01:00:56,320 Kështu që pas këtë linjë, tani ndryshueshme ose array s do të 1.jpg. 638 01:00:56,320 --> 01:01:10,610 Ose, 0.jpg, 1.jpg, 2.jpg. Dhe kështu që ne mund të hapur, nga ana tjetër, çdo imazh për lexim. 639 01:01:10,610 --> 01:01:19,550 Pra, kjo është ajo që është shkruar f bën. A keni parë se çfarë është shkruar f tani është duke bërë? 640 01:01:19,550 --> 01:01:25,720 [Student] Mirë, kështu që është e marrë - kjo krijon një varg, something.jpg, dhe pastaj ruan atë. 641 01:01:25,720 --> 01:01:30,360 Po. Ajo krijon - kjo është një tjetër string format, ashtu si f scan dhe f shtypura, 642 01:01:30,360 --> 01:01:37,530 ku ajo fut të gjithë e variablave në argumentin e dytë, mund të jetë s në krahasim me i. 643 01:01:37,530 --> 01:01:42,280 Ndoshta - Unë do të thotë, se është rasti. Por çfarëdo që është e argumenteve. 644 01:01:42,280 --> 01:01:45,440 Ajo do të futur të gjitha variablave në varg format 645 01:01:45,440 --> 01:01:52,250 dhe pastaj dyqan në tampon tonë, që ne e quajmë se një tampon, kjo është ajo ku ne jemi ruajtjen string. 646 01:01:52,250 --> 01:02:00,750 Pra, ne jemi ruajtjen brenda s string saktë-formatuar, d% duke qenë zëvendësuar me 4. 647 01:02:00,750 --> 01:02:08,080 [Student] Pra, nëse ne e bëmë këtë, është f ndryshueshme vetëm do të ricaktuar? 648 01:02:08,080 --> 01:02:18,110 Po. Pra, ne duhet të mbyllë f origjinal para se të bëjnë këtë. 649 01:02:18,110 --> 01:02:22,810 Por - dhe pastaj edhe në qoftë se nuk ka pasur një f hapur deri këtu, atëherë ne do të duhet të them - 650 01:02:22,810 --> 01:02:29,280 Po. Por kjo do të hapë një njëqind fotografi të ndryshme. 651 01:02:29,280 --> 01:02:37,360 [Student] Por ne nuk do të jetë në gjendje për të hyrë ose - në rregull. 652 01:02:37,360 --> 01:02:44,230 Rregull. Pra scan f, f f scan, është lloj i të njëjtën ide, 653 01:02:44,230 --> 01:02:53,610 por në vend të, në vend të ruajtjen atë në një varg, kjo është më shumë si ju jeni tani 654 01:02:53,610 --> 01:03:02,420 shkuar më shumë se një pickim dhe model përputhen kundër atij vargut dhe ruajtjen e rezultateve në variablave. 655 01:03:02,420 --> 01:03:11,290 Ju mund të përdorni f scan për të kuptoj se diçka si 4.jpg, dhe dyqan në integer 4 x int shuma. 656 01:03:11,290 --> 01:03:13,430 Kjo është ajo që ne mund të përdorim për të scan f. 657 01:03:13,430 --> 01:03:16,300 F f scan do të bëjë që në rreshtin e komandave. 658 01:03:16,300 --> 01:03:19,200 Unë jam në të vërtetë goxha i sigurt se kjo është ajo që biblioteka CS50 bën. 659 01:03:19,200 --> 01:03:29,050 Pra, kur ju thoni: "merrni int," kjo është scan f-ing mbi - f scan është mënyra që ju të merrni të dhëna të përdoruesit. 660 01:03:29,050 --> 01:03:34,670 F f scan do të bëjë të njëjtën gjë, por duke përdorur një skedar të scan gjatë. 661 01:03:34,670 --> 01:03:41,090 Kështu që këtu, ne jemi skanim mbi këtë file. 662 01:03:41,090 --> 01:03:45,460 Modeli që ne jemi duke u përpjekur që të shkojë me disa string që është 127 karaktere të gjatë 663 01:03:45,460 --> 01:03:48,100 ndjekur nga një linjë të re 664 01:03:48,100 --> 01:03:54,770 Kështu që unë jam goxha i sigurt se ne mund edhe të them vetëm "ndeshjen s," pasi në fjalor 665 01:03:54,770 --> 01:03:57,770 ne të ndodhë të kemi, ne jemi duke garantuar asnjë fjalë është se gjatë, 666 01:03:57,770 --> 01:04:03,310 dhe gjithashtu f f scan, mendoj unë, do të ndalet në vijën e ri pa marrë parasysh se çfarë. 667 01:04:03,310 --> 01:04:06,970 Por ne do të përfshijnë linjë të re në ndeshje, dhe - 668 01:04:06,970 --> 01:04:13,960 [Student] Nëse ne nuk përfshijnë linjë e re, nuk do të gjeni një pjesë të fjalës? 669 01:04:13,960 --> 01:04:22,900 Ajo - çdo - duke kërkuar në fjalor - 670 01:04:22,900 --> 01:04:26,200 Pra, në fjalor, këto janë të gjitha fjalët tona. 671 01:04:26,200 --> 01:04:30,500 Secili prej tyre është në një linjë të re. 672 01:04:30,500 --> 01:04:32,510 F scan do të marr këtë fjalë. 673 01:04:32,510 --> 01:04:38,750 Nëse ne nuk përfshijnë linjë të re, atëherë është e mundur që f ardhshëm scan thjesht do të lexoni linjë të re. 674 01:04:38,750 --> 01:04:44,180 Por duke përfshirë linjë të re, atëherë thjesht do të injorojë linjë të re. 675 01:04:44,180 --> 01:04:49,440 Por ne kurrë nuk do të merrni një pjesë të fjalës, pasi ne jemi gjithmonë të lexuar deri në një linjë të re, pa marrë parasysh se çfarë. 676 01:04:49,440 --> 01:04:54,530 [Student] Por, çfarë nëse ju kërkoni për fjalën "cissa", si cissa. 677 01:04:54,530 --> 01:04:57,380 Do të gjeni se, dhe thonë se kjo është një ndeshje? 678 01:04:57,380 --> 01:05:05,110 Pra, këtu ne - kjo do të lexoni në - kjo është në fakt një pikë e mirë. 679 01:05:05,110 --> 01:05:10,660 Ne kurrë nuk jeni duke përdorur aktuale - fjala ne jemi duke kërkuar për të është i pari command line argument. 680 01:05:10,660 --> 01:05:16,460 Pra, fjala string = argv 1. 681 01:05:16,460 --> 01:05:20,020 Pra string ne jemi duke kërkuar për të është argv 1. 682 01:05:20,020 --> 01:05:23,290 Ne nuk jemi duke kërkuar për një fjalë në të gjitha në f tonë scan. 683 01:05:23,290 --> 01:05:28,030 Ajo që ne po bëjmë me scan f po bëhet çdo fjalë në fjalor, 684 01:05:28,030 --> 01:05:34,320 dhe pastaj një herë ne kemi atë fjalë që ne jemi duke shkuar për të përdorur strcmp për të krahasuar ato. 685 01:05:34,320 --> 01:05:39,210 Ne jemi duke shkuar për të krahasuar fjalën tonë dhe atë që ne vetëm të lexojnë in 686 01:05:39,210 --> 01:05:45,110 Pra në mënyrë të pashmangshme, ne do të përfundojë duke bërë një bandë e scan fs 687 01:05:45,110 --> 01:05:52,130 derisa ajo ndodh pikërisht kështu që f scan do të kthehet - 688 01:05:52,130 --> 01:05:54,800 ajo do të kthehet një, për aq kohë sa ajo ka krahasohen një fjalë të re, 689 01:05:54,800 --> 01:06:01,360 dhe ajo do të kthehet diçka tjetër sa më shpejt që ajo ka dështuar në ndeshjen fjalën. 690 01:06:01,360 --> 01:06:08,440 Ne jemi duke lexuar mbi fjalor të tërë, ruajtjen rresht pas rreshti çdo fjalë në s ndryshueshme. 691 01:06:08,440 --> 01:06:17,240 Atëherë ne jemi krahasuar me fjalën s, dhe në qoftë se krahasimi == 0, 692 01:06:17,240 --> 01:06:21,650 strcmp ndodh për të sjellë 0 nëse një ndeshje është bërë. 693 01:06:21,650 --> 01:06:31,510 Pra, në qoftë se ajo ishte 0, atëherë ne mund të shtypura f, përputhet, 694 01:06:31,510 --> 01:06:35,370 apo fjala është në fjalor, ose çdo gjë që ju doni të shtypura f. 695 01:06:35,370 --> 01:06:41,450 Dhe pastaj - ne nuk duam të f mbyllur pa pushim. 696 01:06:41,450 --> 01:06:50,410 Kjo është lloj gjë që ne duam të bëjmë, dhe ne nuk jemi vetëm në kërkim të fjalës në fjalor. 697 01:06:50,410 --> 01:06:56,660 Pra, ne mund të bëjë që, nëse ne të kërkuar për të shikoni për modelin e tyre, cissa, si ju tha më parë, 698 01:06:56,660 --> 01:07:00,260 në qoftë se kemi dashur të shohim për atë model, atëherë ajo do të dështojë në rast 699 01:07:00,260 --> 01:07:08,010 për shkak se nuk është në fakt një fjalë, por një nga fjalët në fjalor ndodh që të ketë që në të. 700 01:07:08,010 --> 01:07:13,560 Pra, kjo do të përputhen me këtë fjalë, por kjo mesin e fjalës nuk është një fjalë në vetvete. 701 01:07:13,560 --> 01:07:17,250 Por kjo nuk është se si ne jemi duke e përdorur atë, ne jemi duke lexuar në çdo fjalë 702 01:07:17,250 --> 01:07:19,740 dhe pastaj krahasuar fjalën e kemi me atë fjalë. 703 01:07:19,740 --> 01:07:25,780 Pra, ne jemi gjithmonë në krahasojmë fjalët të plota. 704 01:07:25,780 --> 01:07:29,620 Unë mund të dërgoni nga zgjidhjet finalizuar më vonë. 705 01:07:29,620 --> 01:07:32,050 Kjo është lloj i gati përgjigjen e duhur, unë mendoj. 706 01:07:32,050 --> 01:07:34,720 [Komenti Student, pakuptueshëm] 707 01:07:34,720 --> 01:07:40,870 Oh, nuk kam marrë shpëtoj se para? Char s, unë mendoj se kemi thënë 127 - harroj atë që është më e madhe. 708 01:07:40,870 --> 01:07:44,100 Ne do të bëjmë vetëm 128, kështu që tani s është kohë e mjaftueshme. 709 01:07:44,100 --> 01:07:46,570 Ne nuk kemi nevojë për të shtypur çdo gjë. 710 01:07:46,570 --> 01:07:56,440 Ne jemi gjithashtu do të duan që të ketë për të mbyllur dosjen tonë, dhe që duhet të jetë në lidhje me përgjigjen e duhur. 711 01:07:56,440 --> 01:07:59,440 CS50.TV