1 00:00:00,000 --> 00:00:12,510 2 00:00:12,510 --> 00:00:13,870 >> ROB: Bone. 3 00:00:13,870 --> 00:00:16,770 Bonvenon al la unua sekcio. 4 00:00:16,770 --> 00:00:17,480 Mi Rob. 5 00:00:17,480 --> 00:00:18,806 >> Jozef: Mi estas Jozef. 6 00:00:18,806 --> 00:00:21,540 >> ROB: Do ni plonĝi dekstra in 7 00:00:21,540 --> 00:00:23,420 Unua afero paroli pri Estas la aparaton. 8 00:00:23,420 --> 00:00:27,150 Do espereble plimulto el vi havos elŝutis ĝin jam. 9 00:00:27,150 --> 00:00:37,180 Sed vi povas vidi la instrukciojn ĉe cs50.net/appliance. 10 00:00:37,180 --> 00:00:38,430 Ho dio, nun mi estas mem-konscia. 11 00:00:38,430 --> 00:00:44,590 12 00:00:44,590 --> 00:00:45,430 Mi ankoraŭ aŭdi ĝin. 13 00:00:45,430 --> 00:00:47,232 >> JOSEPH: Wow, ĝi sonas ĝi estas desorientada. 14 00:00:47,232 --> 00:00:52,460 >> ROB: Do iuj homoj estis havanta demandojn per ĝi, do ne atendu 15 00:00:52,460 --> 00:00:54,940 la lasta minuto de la problemo starigis al klopodi solvi la aparaton kaj 16 00:00:54,940 --> 00:00:56,320 ekscii, ke ĝi ne funkcias. 17 00:00:56,320 --> 00:00:59,010 >> JOSEPH: Kaj se io ne funkcias kaj vi bezonas helpon, vi povos iri al 18 00:00:59,010 --> 00:01:03,390 cs50.net/discussion kie ni havi forumon, kie vi 19 00:01:03,390 --> 00:01:04,110 povas sendi viajn demandojn. 20 00:01:04,110 --> 00:01:06,655 Kaj ni ricevos por ili iam. 21 00:01:06,655 --> 00:01:07,490 >> ROB: Bone. 22 00:01:07,490 --> 00:01:12,180 Do tio estas kion la Aparato aspektas. 23 00:01:12,180 --> 00:01:15,480 Denove, tio estas nur tute apartaj mastruma sistemo kuri ene 24 00:01:15,480 --> 00:01:19,440 kion ajn mastruman sistemon vi kuras sur via tekkomputilo. 25 00:01:19,440 --> 00:01:24,450 Kaj la ĉefaj aĵoj vi esti uzanta estas gedit. 26 00:01:24,450 --> 00:01:28,050 Do espereble ĉi havas jam fariĝi konata retejo. 27 00:01:28,050 --> 00:01:29,470 La fina. 28 00:01:29,470 --> 00:01:31,890 >> Kaj vi povas ankaŭ funkcii Chrome ene de la aparaton. 29 00:01:31,890 --> 00:01:33,860 Oni vidis paron da homoj kiuj raportis interreto 30 00:01:33,860 --> 00:01:35,390 ne funkcias en la aparaton. 31 00:01:35,390 --> 00:01:38,090 Kaj iuj el ili jxus alprenita ke tie ne estas supozataj esti 32 00:01:38,090 --> 00:01:39,190 Interreto en la aparaton. 33 00:01:39,190 --> 00:01:40,750 Sed jes, estas supozita esti interreto. 34 00:01:40,750 --> 00:01:44,000 35 00:01:44,000 --> 00:01:46,410 >> Mi tion diri ĝuste nun, sed tio ne vere nenion signifas. 36 00:01:46,410 --> 00:01:50,680 Se la interreto ne funkcias, tio estas, kion vi emas bezoni 37 00:01:50,680 --> 00:01:52,180 kuri ripari ĝin. 38 00:01:52,180 --> 00:01:55,602 Se vi havas interreton aferoj, ne faru memori ĝin, simple sendi ĝin sur 39 00:01:55,602 --> 00:01:57,560 Diskuti, kaj ni diru, kuri tio. 40 00:01:57,560 --> 00:02:00,420 Sed la interreto devus funkcii. 41 00:02:00,420 --> 00:02:06,650 >> Do la sola alia afero - yeah, nenio alia estas vere grava. 42 00:02:06,650 --> 00:02:08,979 Sed mi nur volis atentigi, ke - 43 00:02:08,979 --> 00:02:13,290 vidi en ĉi tiu fundo-dekstra angulo. 44 00:02:13,290 --> 00:02:16,530 Do ĉiu el viaj aparatoj devus havi IP-adreso. 45 00:02:16,530 --> 00:02:22,350 Kaj poste en la semestro, tiu ĉi IP adreso fariĝos pli grava, kiam 46 00:02:22,350 --> 00:02:27,230 vi laboras por la retejo p-aro, ĉar vi povos aliri la 47 00:02:27,230 --> 00:02:32,310 retejo vi laboras en el via lokaj Chrome uzante ĉi IP adreso. 48 00:02:32,310 --> 00:02:35,400 >> Sed kion mi ŝatas uzi la IP-adreso por - kaj vi ne devas fari tion, mi 49 00:02:35,400 --> 00:02:37,460 volas nur atentigi lin ekstere - 50 00:02:37,460 --> 00:02:39,540 Estas ĉi tie. 51 00:02:39,540 --> 00:02:42,910 Do tiu estas fina stacio fenestro mia Mac, tiu ne estas en la 52 00:02:42,910 --> 00:02:44,580 Aparato ajn. 53 00:02:44,580 --> 00:02:47,190 Kaj vi povas rigardi tion, kion ĉi komando faras. 54 00:02:47,190 --> 00:02:51,855 Sed mi tuj SSH rekte al mia aparaton. 55 00:02:51,855 --> 00:02:53,410 Mi ne scias kio estas la IP estas. 56 00:02:53,410 --> 00:02:54,300 >> JOSEPH: 168 - 57 00:02:54,300 --> 00:02:56,080 >> 168.224.1.0. 58 00:02:56,080 --> 00:02:59,950 >> ROB: Do iam mi done kun tiu, ensaluti 59 00:02:59,950 --> 00:03:05,450 Nu, baze, ĉi tio estas identa al fina fenestro ene mian aparaton. 60 00:03:05,450 --> 00:03:10,280 Do mi sufiĉe tre neniam vere funkciis de interne la aparaton mem. 61 00:03:10,280 --> 00:03:12,550 Mi simple ĉiam ĝi kuras en la fono minimumigita 62 00:03:12,550 --> 00:03:15,890 kaj SSHed en gxin. 63 00:03:15,890 --> 00:03:24,270 >> La temo kun ĉi tio vi ne iras por povi uzi gedit facile 64 00:03:24,270 --> 00:03:25,600 rekte de ĉi. 65 00:03:25,600 --> 00:03:31,500 Sed se vi volas esti reala malvarmeta hacker, tiam vi devus alkutimiĝi al 66 00:03:31,500 --> 00:03:34,220 komandlinia tekstoredaktilo ĉiukaze. 67 00:03:34,220 --> 00:03:39,620 Do Vim kaj Emakso kaj Nano, ĉiuj ĉi tiuj estas malsamaj alternativoj. 68 00:03:39,620 --> 00:03:41,560 Nano emas esti la plej facila. 69 00:03:41,560 --> 00:03:45,006 Kaj mi pensas ke ĝi havas neniun sintaksa kolorigo. 70 00:03:45,006 --> 00:03:47,620 Ho, ne, tio tute does. 71 00:03:47,620 --> 00:03:49,870 Do vi povas uzi nano, ĉar ke oni estas sufiĉe facila. 72 00:03:49,870 --> 00:03:52,000 >> Vi vidas ĉiujn tiujn ordonojn ĉe la malsupro. 73 00:03:52,000 --> 00:03:54,750 Tiu iom karoto simbolo. 74 00:03:54,750 --> 00:03:57,620 Se vi ne vidis ĝin antaŭe, vi probable vidos amason nun. 75 00:03:57,620 --> 00:04:02,350 Ĝi ĝenerale signifas la kontrolon karoto, kiel la malsupro-maldekstro de via klavaro 76 00:04:02,350 --> 00:04:04,130 kontrolo karaktero. 77 00:04:04,130 --> 00:04:07,260 Do jen ĝi estas telling me down here - 78 00:04:07,260 --> 00:04:08,710 Ho, estas ne ekstermigxos se mi zomi in 79 00:04:08,710 --> 00:04:11,040 Do Kontrolo, X estas kiom Mi iras al eliri. 80 00:04:11,040 --> 00:04:14,710 Kaj tio diras mi kapablas trafi Y por Jes, por ŝparado, N por No 81 00:04:14,710 --> 00:04:17,190 Do jen Nano. 82 00:04:17,190 --> 00:04:22,860 >> Vim kaj Emakso emas esti iomete pli komplika kaj blindiga. 83 00:04:22,860 --> 00:04:28,840 Sed vi povas kutimiĝi al ĝi, kaj tiam vi amos ĝin. 84 00:04:28,840 --> 00:04:30,590 Do jen tio. 85 00:04:30,590 --> 00:04:31,720 >> JOSEPH: Neniu bezono por fari tion. 86 00:04:31,720 --> 00:04:31,840 >> ROB: Jes. 87 00:04:31,840 --> 00:04:37,510 Vi rajtas uzi gedit por la restaĵon de la semestro. 88 00:04:37,510 --> 00:04:40,630 Do ajna aparato-rilataj demandoj? 89 00:04:40,630 --> 00:04:42,820 Aux cxu vi havas pensojn pri kio alia tio devas esti parolata pri proksimume 90 00:04:42,820 --> 00:04:43,610 la aparato? 91 00:04:43,610 --> 00:04:43,996 Jes. 92 00:04:43,996 --> 00:04:47,720 >> SPEAKER 1: Kiam vi SSHed en viajn aferon, estis la pasvorton Crimson? 93 00:04:47,720 --> 00:04:48,390 >> ROB: Jes. 94 00:04:48,390 --> 00:04:50,170 La pasvorto por preskaux cxio en la Aparato tuj 95 00:04:50,170 --> 00:04:52,473 esti Crimson. 96 00:04:52,473 --> 00:04:56,517 >> SPEAKER 2: Instalu kiel reala IDE sur la aparaton, ĉu ĝi funkcias? 97 00:04:56,517 --> 00:04:59,200 98 00:04:59,200 --> 00:05:07,290 >> ROB: mi imagas Eklipso ja havas Fedora versio, en kiu kazo, jes, 99 00:05:07,290 --> 00:05:08,420 Vi povas fari tion. 100 00:05:08,420 --> 00:05:10,875 Estas probable ne vere valoras. 101 00:05:10,875 --> 00:05:11,742 >> SPEAKER 2: okej. 102 00:05:11,742 --> 00:05:15,924 Do estas verŝajne pli facile, se mi volis uzi eklipson, simple uzu la denaskan kaj 103 00:05:15,924 --> 00:05:17,646 tiam alŝutu al - 104 00:05:17,646 --> 00:05:21,090 >> ROB: Ho, tio estas ankaux probable pli facile. 105 00:05:21,090 --> 00:05:24,046 Sed vi povas akiri ĝin laborante ene de la aparaton. 106 00:05:24,046 --> 00:05:27,740 >> JOSEPH: Kaj por la ĉambro, la demando estis, vi povas instali alian 107 00:05:27,740 --> 00:05:29,490 Ide ene de la aparaton? 108 00:05:29,490 --> 00:05:31,520 >> ROB: Eklipso esti Ekzemplo de IDE. 109 00:05:31,520 --> 00:05:34,800 110 00:05:34,800 --> 00:05:36,050 Ajna alia Aparato demandojn? 111 00:05:36,050 --> 00:05:38,250 112 00:05:38,250 --> 00:05:38,680 Ĉiuj pravas. 113 00:05:38,680 --> 00:05:44,920 >> Do ni nun pluiru al komandlinia Interfaco-rilataj aferoj, do CLI. 114 00:05:44,920 --> 00:05:47,990 Kaj cetere, mi nur iras por labori en ĉi tie, ĉar tio estas identa al 115 00:05:47,990 --> 00:05:52,780 laboras ene terminalo fenestro ene de la aparaton. 116 00:05:52,780 --> 00:05:54,160 Kiel vi, ke tiparo rigardas? 117 00:05:54,160 --> 00:05:55,970 Ĉu tio estas suficxe granda? 118 00:05:55,970 --> 00:05:57,000 Ĉiuj pravas. 119 00:05:57,000 --> 00:06:02,480 >> Do tie estas multe da komandoj kiuj vi devas akiri belan uzata por 120 00:06:02,480 --> 00:06:04,490 tra la semestro. 121 00:06:04,490 --> 00:06:09,480 La granda du por la navigado estas ls, lerta la dosieroj en ĉi dosierujo, kaj 122 00:06:09,480 --> 00:06:11,380 cd, do ŝanĝi dosierujon. 123 00:06:11,380 --> 00:06:18,390 Do mi povas ŝanĝi al labortablo kaj poste tre komuna aranĝo estas cd al 124 00:06:18,390 --> 00:06:22,550 dosierujon kaj tuj ls Kio estas en la dosierujo. 125 00:06:22,550 --> 00:06:25,540 >> Homoj ankaŭ kelkfoje ne rimarkas ke Tab finaĵo estas aĵo. 126 00:06:25,540 --> 00:06:28,370 Do kiel KD, VH, kaj tiam mi batis Tab. 127 00:06:28,370 --> 00:06:30,790 Mi preskaŭ neniam tajpas el la tutan aferon. 128 00:06:30,790 --> 00:06:32,920 Kaj tiam se mi gardas bati Tab denove, gxi timige aŭtomate 129 00:06:32,920 --> 00:06:33,670 komenci listing por mi. 130 00:06:33,670 --> 00:06:37,000 Do mi povos: cd vhosts, loka gastiganto. 131 00:06:37,000 --> 00:06:39,880 Kaj tio estas ĝuste tuj - 132 00:06:39,880 --> 00:06:43,380 en la okazo vi ne auxdis la terminon antaŭe, dosierujo estas nur alia vorto 133 00:06:43,380 --> 00:06:45,170 por dosierujo. 134 00:06:45,170 --> 00:06:49,930 Do nun, se vi vidas - 135 00:06:49,930 --> 00:06:51,810 ni alportos ke al la supro. 136 00:06:51,810 --> 00:06:55,380 >> Do nun, se vi vidas en krampoj, vi vidi la malgrandan supersigno, oblikvo, vhost, 137 00:06:55,380 --> 00:06:56,810 oblikvo, loka gastiganto. 138 00:06:56,810 --> 00:07:00,040 Do la supersigno, kiuj referencas al mia hejmo dosierujo. 139 00:07:00,040 --> 00:07:03,090 Estas dosierujo vi estas en kiam vi ssh in 140 00:07:03,090 --> 00:07:05,660 Ĝi estas la dosierujo vi estas en Kiam vi malfermas terminalo. 141 00:07:05,660 --> 00:07:08,650 Ĝi estas kie vi komencas. 142 00:07:08,650 --> 00:07:13,110 Kaj do mi estas interne de mia hejma dosierujo, kaj mi estas ene de la vhost 143 00:07:13,110 --> 00:07:14,475 dosierujon interne de mia hejma dosierujo. 144 00:07:14,475 --> 00:07:19,670 Kaj tiam mi estas ene de la loka gastigi dosierujon interne de tiu. 145 00:07:19,670 --> 00:07:23,740 >> Do kelkaj aliaj utilaj aferoj kun cd - 146 00:07:23,740 --> 00:07:29,220 aŭ bone, en ĝenerala, do dot ĉiam referencas al la aktuala dosierujo. 147 00:07:29,220 --> 00:07:31,130 Cd: dot estas bela senvaloraj komando. 148 00:07:31,130 --> 00:07:35,150 Sed tio ŝanĝas la kuranta dosierujo. 149 00:07:35,150 --> 00:07:38,230 Pli utila en terminoj de cd estas streketo dot, kiu estas 150 00:07:38,230 --> 00:07:40,220 nur iru supren unu dosierujo. 151 00:07:40,220 --> 00:07:43,360 >> Kaj notu, ke tiuj - 152 00:07:43,360 --> 00:07:48,610 Mi volas diri alias, sed tiuj simboloj, streketo kaj punkto, streketo tiuj laboro 153 00:07:48,610 --> 00:07:51,740 cxar preskaux neniu komando vi estas tuj estos pensas kurante. 154 00:07:51,740 --> 00:07:55,370 Do kiel KD estas probable, kie vi estos uzante la plej, sed cxi tiuj ne estas 155 00:07:55,370 --> 00:07:56,780 aferojn ĝuste cd komprenas. 156 00:07:56,780 --> 00:07:59,980 Estas sufiĉe da io vian tutan komandlinia komprenas. 157 00:07:59,980 --> 00:08:01,932 Multaj programoj komprenu dot kaj streketo dot. 158 00:08:01,932 --> 00:08:04,830 159 00:08:04,830 --> 00:08:09,090 >> Do la aliaj utilaj - cd, haltostreko. 160 00:08:09,090 --> 00:08:13,460 Do kiu tuj kondukos min al la lasta dosierujo kiujn mi trovis in 161 00:08:13,460 --> 00:08:15,980 Do iam mi faros ion kiel, ho, mi laboras en ĉi tie. 162 00:08:15,980 --> 00:08:21,110 Kaj mi vidas iun eraron kun io, kaj Mi iros enketi ĝin tuj 163 00:08:21,110 --> 00:08:24,020 iu hazarda dosierujo ie. 164 00:08:24,020 --> 00:08:25,260 Kaj mi ne scias se ĝi malebligos lasu min en tie. 165 00:08:25,260 --> 00:08:25,720 Ĝi volas. 166 00:08:25,720 --> 00:08:27,615 Tial do mi faras kion mi volas en tiu ĉi dosierujo. 167 00:08:27,615 --> 00:08:28,950 Bla, bla, bla, bla, bla. 168 00:08:28,950 --> 00:08:31,770 Kaj mi, kiel, bone, mi volas reiru al kie mi estis. 169 00:08:31,770 --> 00:08:34,490 KD, haltostreko, kaj tio alportas al mi rajtas dorso. 170 00:08:34,490 --> 00:08:39,970 >> Do mi volus ĵeti amason de tiuj ĉe vi hodiaŭ. 171 00:08:39,970 --> 00:08:43,730 Mi ne atendas ke vi enmemorigas ĉiuj ili. 172 00:08:43,730 --> 00:08:46,170 Ĝi estas speco de simple scias ke ili ekzistas. 173 00:08:46,170 --> 00:08:48,690 Kaj tiam poste, kiam vi estas kiel, hmm Mi volas reiri al la 174 00:08:48,690 --> 00:08:51,870 dosierujo, ke mi estis nur je, ho, atendu, io simila ekzistas. 175 00:08:51,870 --> 00:08:53,980 Vi ne devas simple entajpu en la tuta katalogo denove. 176 00:08:53,980 --> 00:08:56,090 >> Jozef; kaj eventuale vi volas nur uzi ilin denove kaj denove, kaj 177 00:08:56,090 --> 00:08:57,830 gxi devos fariĝi muskolan memoron. 178 00:08:57,830 --> 00:09:00,090 >> ROB: Jes. 179 00:09:00,090 --> 00:09:02,930 Do kiel mi diris antaŭe, ke supersigno estas via hejma dosierujo. 180 00:09:02,930 --> 00:09:04,820 Do mi povos: cd: supersigno. 181 00:09:04,820 --> 00:09:07,280 Sed mi eĉ ne devos faru, ke se mi ĝuste - 182 00:09:07,280 --> 00:09:09,760 Mi reiros al la dosierujo por ĝi ne estas sencela ekzemplo. 183 00:09:09,760 --> 00:09:14,560 Sed se mi ĝuste fari kd, tio estas ankaŭ la sama kiel, iru al mia hejmo dosierujo. 184 00:09:14,560 --> 00:09:18,380 185 00:09:18,380 --> 00:09:19,880 Mi faros Ordonu, K. 186 00:09:19,880 --> 00:09:24,015 >> JOSEPH: Vi ankaux povas entajpi klara, la vorton, kaj ĝi devus demeti ĝin. 187 00:09:24,015 --> 00:09:28,650 >> ROB: Kaj mi pensas ankaŭ Kontrolo, L ankaŭ ĝin faras. 188 00:09:28,650 --> 00:09:29,690 Do multaj malsamaj manieroj. 189 00:09:29,690 --> 00:09:34,070 Mi pensas ke estas iuj diferencoj kie klara kaj Kontrolo, L volas nur 190 00:09:34,070 --> 00:09:37,280 vere puŝi ĝin al la supro kaj Mi povas ankoraŭ rulumu dorso. 191 00:09:37,280 --> 00:09:40,580 Ordonu, K laŭvorte detruas ĉio, kaj vin 192 00:09:40,580 --> 00:09:42,960 ne povas rulumi reen supren. 193 00:09:42,960 --> 00:09:45,530 Almenaŭ, tio estas kiel ĝi funkcias en iTerm2. 194 00:09:45,530 --> 00:09:48,690 Mi ne scias kiel aliaj aĵoj - 195 00:09:48,690 --> 00:09:49,360 io. 196 00:09:49,360 --> 00:09:55,450 >> Kun SSHing, do se vi estas en Windows, vi tuj devas elŝuti PuTTY 197 00:09:55,450 --> 00:10:02,360 por SSH ekde Vindozo ne havi kiel enkonstruita SSH ilo. 198 00:10:02,360 --> 00:10:06,150 El la Mac, vi povas simple SSH rekte el terminalo fenestro. 199 00:10:06,150 --> 00:10:08,755 200 00:10:08,755 --> 00:10:09,690 OK. 201 00:10:09,690 --> 00:10:11,840 Demandojn? 202 00:10:11,840 --> 00:10:19,260 >> Kun ls, do io kutimi plejmulto el tiuj komandoj estas - 203 00:10:19,260 --> 00:10:20,060 bone, mi nur faras unu. 204 00:10:20,060 --> 00:10:21,310 Ls, haltostreko, l. 205 00:10:21,310 --> 00:10:26,330 Do haltostreko, l estas kion ni iras voki flagon al LS. 206 00:10:26,330 --> 00:10:30,770 Kaj multajn el tiuj komandoj havas flagojn ke vi povas pasi al ili. 207 00:10:30,770 --> 00:10:35,020 Do, en tiu kazo, haltostreko, l estas flago kiuj diras al ĝi doni al mi kompletan 208 00:10:35,020 --> 00:10:37,850 liston de ĉiuj informoj de tiuj dosieroj. 209 00:10:37,850 --> 00:10:44,790 >> Kaj ni vidas tie ke labortablo estis redaktita je julio 30, je 12:54. 210 00:10:44,790 --> 00:10:47,160 Elŝutoj estis modifita ĉe Septembro 6. 211 00:10:47,160 --> 00:10:52,350 Tio estas la aktuala grandeco kaj bajtoj el tiuj dosierujoj. 212 00:10:52,350 --> 00:10:54,412 Vi ne devas kompreni ĉion ĉi. 213 00:10:54,412 --> 00:11:00,380 >> Ĉi necesajxojn sur la maldekstra, tiuj drwx'S, kiu igos multe pli gravaj 214 00:11:00,380 --> 00:11:02,290 poste, kiam vi devos pritrakti - 215 00:11:02,290 --> 00:11:05,900 kiu devas vidi kun kiuj havas permesojn rigardi tiujn dosierojn. 216 00:11:05,900 --> 00:11:09,880 Kaj do, se vi ne estis la nura uzanto de tiu komputilo, vi povos 217 00:11:09,880 --> 00:11:13,345 diru, okej, mi estus la sola permesis rigardi al ĉi tiu dosiero aŭ mi estas 218 00:11:13,345 --> 00:11:14,870 tuj permesos ke ĉiuj rigardi ĉi tiun dosieron. 219 00:11:14,870 --> 00:11:17,710 Do iu alia en mia komputilo povas rigardi ĉi tiun dosieron. 220 00:11:17,710 --> 00:11:22,190 221 00:11:22,190 --> 00:11:25,600 Mi eĉ ne scias kio estas tiu - kion signifas tion faru? 222 00:11:25,600 --> 00:11:26,840 >> Jozef: Mi ne estas tute certa, fakte. 223 00:11:26,840 --> 00:11:27,705 >> ROB: Neniu ideo. 224 00:11:27,705 --> 00:11:30,530 >> JOSEPH: Sed se vi ne scias, ekzistas helpema komandon kiun vi povas uzi 225 00:11:30,530 --> 00:11:31,680 por diri al vi kio estas la eligo signifas. 226 00:11:31,680 --> 00:11:33,780 Kaj se vi tajpas en iu antaŭ la komando - 227 00:11:33,780 --> 00:11:35,000 tiel M-A-N. ROB: Viro. 228 00:11:35,000 --> 00:11:37,690 Tiel homo estas alia kiu estas tre utila. 229 00:11:37,690 --> 00:11:39,540 Kaj viro, LS. 230 00:11:39,540 --> 00:11:47,320 Do la viro paĝoj, oni havas ambaŭ ordonas, ke vi tuj povas uzi 231 00:11:47,320 --> 00:11:50,330 ĉe la komandlinio, kaj ili ankaŭ havas funkcioj kiu estos grava 232 00:11:50,330 --> 00:11:52,530 kun C. Do vi povas homo - 233 00:11:52,530 --> 00:11:53,720 kaj mi ignoris 3. 234 00:11:53,720 --> 00:11:57,410 Sed homo 3 printf tuj venigu ĝis la C versio de printf. 235 00:11:57,410 --> 00:12:01,030 Sed se mi ĝuste fari viro printf, tio estas tuj elvoku la ordonon printf 236 00:12:01,030 --> 00:12:03,540 kiu okazas ĉe la komandlinio. 237 00:12:03,540 --> 00:12:05,730 >> Do homo, LS. 238 00:12:05,730 --> 00:12:09,030 La viro paĝoj povas esti bela blindiga. 239 00:12:09,030 --> 00:12:12,770 Cxi tie, vi vidos ĉi liston de ĉiu el tiuj flagoj kiujn LS 240 00:12:12,770 --> 00:12:14,300 komprenas. 241 00:12:14,300 --> 00:12:17,876 Do, se ni iros al interfrapigos, l, kaj - 242 00:12:17,876 --> 00:12:19,300 Mi simple volus ĵeti ĉi ĉe vi. 243 00:12:19,300 --> 00:12:23,050 Sed nur por esplori, vi volas unue trafis la demando 244 00:12:23,050 --> 00:12:24,780 markon aŭ oblikvo butonon. 245 00:12:24,780 --> 00:12:26,040 Do slash. 246 00:12:26,040 --> 00:12:29,000 >> Kaj tiam mi povas serĉi cxar kion ajn mi volas. 247 00:12:29,000 --> 00:12:33,780 Do mi tuj oblikvo por haltostreko, l. 248 00:12:33,780 --> 00:12:35,110 Kaj tie estis. 249 00:12:35,110 --> 00:12:37,450 Do uzu longan liston formato. 250 00:12:37,450 --> 00:12:40,060 Tio ne helpas min kompreni pri kio ke aparta kolumno signifis, sed mi 251 00:12:40,060 --> 00:12:44,480 supozi ie en ĉi tien tio klarigus tion. 252 00:12:44,480 --> 00:12:48,740 Do uzu la viro paĝoj por iu komando ke vi ne tuj komprenis. 253 00:12:48,740 --> 00:12:51,080 >> Mi sufiĉe certas ke vi povas eĉ homo, viro. 254 00:12:51,080 --> 00:12:53,070 Interfacon al la reta aludo manlibroj. 255 00:12:53,070 --> 00:12:57,700 256 00:12:57,700 --> 00:13:03,570 Ho, tiu lasta kiu estas eble iomete adekvataj estas ls, haltostreko, al. 257 00:13:03,570 --> 00:13:08,490 Do rimarkos se mi simple fari ls, Mi ricevas tiujn kvin dosierojn. 258 00:13:08,490 --> 00:13:11,480 Se mi faras ls, interfrapigos, a, mi akiri multe pli da dosieroj. 259 00:13:11,480 --> 00:13:15,350 Do la afero en komuna inter cxiuj tiuj novaj dosieroj estas la skalara antauxe. 260 00:13:15,350 --> 00:13:21,220 >> Do la konvencio estas ke dosieron kiu komencas per punkto estas kaŝita. 261 00:13:21,220 --> 00:13:25,300 Do vi ne volas vidi, ke la dosiero, vi ne volas havi ĝin salaton kun 262 00:13:25,300 --> 00:13:26,750 via dosierujo liston. 263 00:13:26,750 --> 00:13:30,020 Ĝi estas nur kiam vi eksplicite demandas, Enorde, ls, haltostreko, a, montri al mi. 264 00:13:30,020 --> 00:13:32,830 La a staras por ĉiuj dosieroj, inkludante gardatoj. 265 00:13:32,830 --> 00:13:37,260 266 00:13:37,260 --> 00:13:39,270 Do iuj aliaj komandoj. 267 00:13:39,270 --> 00:13:41,323 Ho, demandoj, je tiu punkto? 268 00:13:41,323 --> 00:13:41,746 Jes. 269 00:13:41,746 --> 00:13:45,914 >> SPEAKER 3: Kiam vi faras ls, a, kio estas la punkto, skalara? 270 00:13:45,914 --> 00:13:46,870 >> ROB: Ho. 271 00:13:46,870 --> 00:13:48,780 Do ĉi tiu estas kion mi parolas. 272 00:13:48,780 --> 00:13:50,890 Ĝi estas la sama afero, kie Mi povas ŝati cd: dot, punkto. 273 00:13:50,890 --> 00:13:56,790 Do teknike, punkto kaj punkto, punkto estas dosierojn kiuj ekzistas en ĉiu unuopa 274 00:13:56,790 --> 00:14:03,620 dosierujo, kie la skalara dosieron referencas al la aktuala dosierujo. 275 00:14:03,620 --> 00:14:06,930 Do se mi cd: dot, mi simple irante resti en la adresaro. 276 00:14:06,930 --> 00:14:10,870 Kaj streketo dot ĉiam rilatas al la antaŭa dosierujo unu nivelo supren. 277 00:14:10,870 --> 00:14:18,200 Do, se mi iros en la protokolojn kaj ls, haltostreko, Al, Mi vidos streketo punkto. cd al dot, punkto 278 00:14:18,200 --> 00:14:20,390 mi alportas al la antaŭa dosierujo. 279 00:14:20,390 --> 00:14:24,530 280 00:14:24,530 --> 00:14:25,780 Jes. 281 00:14:25,780 --> 00:14:27,160 282 00:14:27,160 --> 00:14:28,110 OK. 283 00:14:28,110 --> 00:14:33,070 >> Do alia bela grava komando estas rm. 284 00:14:33,070 --> 00:14:35,650 Do, tio estas kion ni iras uzi forigi. 285 00:14:35,650 --> 00:14:38,100 Kaj lasu min reale faras alian komando unue. 286 00:14:38,100 --> 00:14:39,610 Do mkdir. 287 00:14:39,610 --> 00:14:42,770 Mkdir estas kiel vi povas krei dosierujojn. 288 00:14:42,770 --> 00:14:47,530 Kaj mi kreos provizoran dosierujon kaj iru en tiun provizora adresaro. 289 00:14:47,530 --> 00:14:49,590 Kaj kiel atendita, ĝi estas malplena. 290 00:14:49,590 --> 00:14:53,680 Sed se mi ls, haltostreko, a, mi ankoraŭ havas dot kaj punkto, streketo ĉar dot rilatas al 291 00:14:53,680 --> 00:14:54,480 la aktuala dosierujo. 292 00:14:54,480 --> 00:14:56,170 Kaj streketo dot referencas al la antaŭa dosierujo. 293 00:14:56,170 --> 00:14:58,700 Kaj tiuj, ĉiam ekzistos negrave la dosierujo estas in 294 00:14:58,700 --> 00:15:01,910 295 00:15:01,910 --> 00:15:09,010 >> Kaj tio estas tute nenecesa komando, sed tuŝo. 296 00:15:09,010 --> 00:15:11,880 Mi simple uzante ĝin, ĉar ĝi estas facila maniero por krei dosierojn. 297 00:15:11,880 --> 00:15:16,180 Do tusxi, tuŝi b, tuŝi c estas simple tuj kreos tri dosierojn nomata, 298 00:15:16,180 --> 00:15:17,845 b, kaj c kiu estas tute malplena. 299 00:15:17,845 --> 00:15:20,450 300 00:15:20,450 --> 00:15:24,980 Do la punkto de mi krei tiujn en la unua loko estas ĝuste tiom ke rm estas 301 00:15:24,980 --> 00:15:26,250 kiel ni povas forigi ilin. 302 00:15:26,250 --> 00:15:27,850 Do rm, al. 303 00:15:27,850 --> 00:15:30,960 Oni tuj demandas min, forigi regula malplena dosiero estas? 304 00:15:30,960 --> 00:15:33,170 Kaj poste mi diros Jes. 305 00:15:33,170 --> 00:15:39,090 >> Do, se mi scias kun certeco, ke mi volas viŝi tiu dosiero sen devi esti 306 00:15:39,090 --> 00:15:44,500 instigis, forpreni regula malplena dosiero?, do rm, haltostreko, f tuj estos la 307 00:15:44,500 --> 00:15:48,230 flago kiu diras, devigi la Elpreni sen eĉ instigante min, ho, estas vi 308 00:15:48,230 --> 00:15:49,710 certas ke vi volas forviŝi la dosieron? 309 00:15:49,710 --> 00:15:50,810 Jes, mi certas. 310 00:15:50,810 --> 00:15:56,050 Do rm, haltostreko, fb volas nur fari tion sen demandi. 311 00:15:56,050 --> 00:15:57,950 >> Do ni faru kelkajn pli dosierujoj. 312 00:15:57,950 --> 00:16:03,670 mkdir, tmp2, cd, tmp2, tusxi, takto b. 313 00:16:03,670 --> 00:16:04,300 OK. 314 00:16:04,300 --> 00:16:08,180 Do nun mi volas forigi tmp2 kiel dosierujo. 315 00:16:08,180 --> 00:16:10,316 Do rm tmp2. 316 00:16:10,316 --> 00:16:12,920 Vi ne povas forigi tmp2, ĝi estas dosierujo. 317 00:16:12,920 --> 00:16:21,370 Do la demando estas, ke rm ne tuj funkcii en dosierujoj. 318 00:16:21,370 --> 00:16:26,530 Ĝi estas nur signifis por dosierojn kiel ne-katalogo dosierojn. 319 00:16:26,530 --> 00:16:30,800 >> Kaj do, kion ni povas fari ĉi tie estas rm, haltostreko, r. 320 00:16:30,800 --> 00:16:35,160 Tio signifas rekursie, kiu povus ne signifas ion ajn al vi ankoraŭ. 321 00:16:35,160 --> 00:16:38,280 Sed kiam vi atingos rekursio, ĝi malebligos signifas pli. 322 00:16:38,280 --> 00:16:43,540 Do rm, haltostreko, r, tmp2 tuj rekursie iru en tiun dosierujon. 323 00:16:43,540 --> 00:16:45,540 Do malsuprenirus en dosierujo tmp2? 324 00:16:45,540 --> 00:16:47,330 Jes, ni iros al tiu. 325 00:16:47,330 --> 00:16:49,360 Ĉu ni volas forigi tmp2 / a? 326 00:16:49,360 --> 00:16:49,745 Jes. 327 00:16:49,745 --> 00:16:51,830 Ĉu ni volas forigi tmp2 / b? 328 00:16:51,830 --> 00:16:52,840 Jes. 329 00:16:52,840 --> 00:16:55,170 Nun ni volas forigi la dosierujo tmp2? 330 00:16:55,170 --> 00:16:56,040 Jes. 331 00:16:56,040 --> 00:16:58,410 Kaj tial nun la katalogo kaj ĉion interne 332 00:16:58,410 --> 00:16:59,660 de ĝi estis forigita. 333 00:16:59,660 --> 00:17:02,850 334 00:17:02,850 --> 00:17:07,250 >> Tie estas teĥnike komando RMDIR ke vi povas uzi por forigi 335 00:17:07,250 --> 00:17:11,670 dosierujojn, sed ĝi nur verkoj sur malplenan dosierujon ĉiukaze. 336 00:17:11,670 --> 00:17:14,109 Kaj vidi, ke ni nur fari mkdir, tmp2 denove. 337 00:17:14,109 --> 00:17:15,940 Tmp2, tusxi. 338 00:17:15,940 --> 00:17:16,800 OK. 339 00:17:16,800 --> 00:17:22,770 Do, se mi provas forigi dirtmp2, ĝi malebligos diri, dosierujo ne malplenas. 340 00:17:22,770 --> 00:17:29,540 Do mi sufiĉe tre neniam uzu la Elpreni dir komando ĉiuokaze, ĉar rm, haltostreko, 341 00:17:29,540 --> 00:17:35,140 r laboros sur malplenan dosierujon kaj ne-malplenan dosierujon. 342 00:17:35,140 --> 00:17:37,760 >> Kaj ankaŭ, se mi ne volas devi iri tra tiu tuta procezo de 343 00:17:37,760 --> 00:17:40,720 malsuprenirantaj sur la katalogo kaj al forigo de ĉiu individua dosiero, rm, 344 00:17:40,720 --> 00:17:44,190 haltostreko, RF, tmp2. 345 00:17:44,190 --> 00:17:45,670 Kaj nun ŝi estas for. 346 00:17:45,670 --> 00:17:51,220 >> Io esti zorgema pri estas rm, haltostreko, rf. 347 00:17:51,220 --> 00:17:53,660 Kaj tio timigas min al eĉ tajpi ĝin, ĉar se mi hazarde 348 00:17:53,660 --> 00:17:55,090 batis Enigu aux io. 349 00:17:55,090 --> 00:18:02,735 Do rm, haltostreko, RF, supersigno volis, sen instigante min, la f ne suflori 350 00:18:02,735 --> 00:18:05,670 mi, ĝi estos aŭtomate forigi Mian tutan hejman dosierujon kaj 351 00:18:05,670 --> 00:18:06,780 ĉio en ĝi. 352 00:18:06,780 --> 00:18:11,460 Do vi eble opinias, ke estas stulta afero por fari. 353 00:18:11,460 --> 00:18:12,830 Kaj nu, tio estas. 354 00:18:12,830 --> 00:18:18,600 >> Sed tio povas okazi tre facile per akcidento, se, ekzemple, mi volis forigi 355 00:18:18,600 --> 00:18:21,640 mia oblikvo, vhost dosierujo. 356 00:18:21,640 --> 00:18:26,610 Kaj ĝuste en rapidan tajpadon, Mi hazarde fari ĉi tion. 357 00:18:26,610 --> 00:18:31,880 Tio forigos rekursie ambaŭ miaj hejmen katalogo kaj al la vhost dosierujon 358 00:18:31,880 --> 00:18:35,450 en tiu aparta dosierujo ke ĝuste okazas ne ekzistas aktuale. 359 00:18:35,450 --> 00:18:39,520 Sed tio estus ankoraŭ forigi Mian tutan hejman dosierujon. 360 00:18:39,520 --> 00:18:43,090 Almenaŭ por ne havi f, ĝi instigas min unue. 361 00:18:43,090 --> 00:18:45,670 Kaj mi estus kiel, oh, ne, mi ne volas fari tion. 362 00:18:45,670 --> 00:18:50,570 Sed homoj, oblikvo, inkludante mi kutime ricevas en la 363 00:18:50,570 --> 00:18:53,090 kutimon ĉiam rf-Ing. 364 00:18:53,090 --> 00:18:58,713 Eĉ regula dosierojn kiujn mi povas simple RM, c, mi emas simple rm, haltostreko, RF, c. 365 00:18:58,713 --> 00:19:01,330 Nur estu zorgema kiam vi estas rf-Ing. 366 00:19:01,330 --> 00:19:03,160 >> SPEAKER 4: Kion signifas C fari? 367 00:19:03,160 --> 00:19:11,570 >> ROB: C estas mi parolas pri tiu C dosieron en tiu ĉi dosierujo, ke rm, c. 368 00:19:11,570 --> 00:19:15,730 >> Jozef; kaj pli danĝere, se vi uzas stelo, ĝi rilatas al ĉio en 369 00:19:15,730 --> 00:19:16,450 la adresaro. 370 00:19:16,450 --> 00:19:20,040 Do kion mi kutime emas fari estas, mi ja iru en dosierujo kaj mi volas 371 00:19:20,040 --> 00:19:21,510 forigi ĉiujn dosierojn en tie. 372 00:19:21,510 --> 00:19:23,640 Do rm, haltostreko, RF, stelo. 373 00:19:23,640 --> 00:19:25,700 >> ROB: Jes. 374 00:19:25,700 --> 00:19:26,780 Rm, haltostreko, RF, stelo. 375 00:19:26,780 --> 00:19:29,530 >> JOSEPH: Sed se vi ne estas zorgema kio dosierujo vi estas en - 376 00:19:29,530 --> 00:19:33,340 Mi ne estis en temp, sed mi estis hazarde en mia hejma dosierujo, 377 00:19:33,340 --> 00:19:35,450 tiam mi devos forigi ĉiun en mia hejma dosierujo. 378 00:19:35,450 --> 00:19:39,095 Kaj mi vere faris tion antaŭe, kaj Mi kredas ke vi jam faris tion antaŭ aŭ 379 00:19:39,095 --> 00:19:40,640 Jay faris tion antaŭe. 380 00:19:40,640 --> 00:19:42,480 >> ROB: Mi hazarde forigita - 381 00:19:42,480 --> 00:19:44,480 tiel ignori ke komandon por iom. 382 00:19:44,480 --> 00:19:45,800 >> JOSEPH: Ne amuza. 383 00:19:45,800 --> 00:19:52,650 >> ROB: Do, en la oblikvo bin dosierujon estas beraro de duumaj dosieroj kie timige 384 00:19:52,650 --> 00:19:54,840 esti familiara ones kiel tin. 385 00:19:54,840 --> 00:20:00,740 Nu, tin kaj esence ĉiuj el tiuj aferojn ke mi kuras al la komando 386 00:20:00,740 --> 00:20:02,060 linio estas en ĉi tiu oblikvo bin dosierujon. 387 00:20:02,060 --> 00:20:03,090 >> JOSEPH: Kiel ls estas en ĉi tie. 388 00:20:03,090 --> 00:20:06,285 >> ROB: Do dot, oblikvo, LS estus listo ĉi dosierujo. 389 00:20:06,285 --> 00:20:08,120 >> JOSEPH: Rm estas ankaŭ en tiu ĉi dosierujo. 390 00:20:08,120 --> 00:20:12,770 >> ROB: Mi hazarde RM, rf-ed bin, kiuj forigis neniun ordonon mi povis 391 00:20:12,770 --> 00:20:14,380 eble iam volas. 392 00:20:14,380 --> 00:20:18,085 Kiun do mi simple reinstali a nova Aparato ĉe tiu punkto. 393 00:20:18,085 --> 00:20:20,170 >> JOSEPH: Do estu tre singarda, kiam vi uzas ĉi tiun ordonon. 394 00:20:20,170 --> 00:20:21,120 >> Spektantaro: [inaudibles]? 395 00:20:21,120 --> 00:20:22,640 >> ROB: Jes. 396 00:20:22,640 --> 00:20:24,135 Tio estas same malbona kutimo enir. 397 00:20:24,135 --> 00:20:27,920 398 00:20:27,920 --> 00:20:30,170 Se vi rimarkos, mi estas nun - 399 00:20:30,170 --> 00:20:33,580 bone, vi povas ne rimarki, sed mia zoom-en eble povas. 400 00:20:33,580 --> 00:20:35,360 Do mi nun radikon @ aparato. 401 00:20:35,360 --> 00:20:39,790 Do jharvard estas la uzanto ni volas vin ĉiam esti uzanta. 402 00:20:39,790 --> 00:20:43,820 Radiko estas la uzanto kiu havas permeson fari absolute nenion. 403 00:20:43,820 --> 00:20:50,260 >> Do rimarkas kiam mi jharvard, se mi provas cd - 404 00:20:50,260 --> 00:20:52,461 kio estas dosierujo ke? 405 00:20:52,461 --> 00:20:53,980 Ho, radiko estas bona ekzemplo. 406 00:20:53,980 --> 00:20:54,950 Do cd: radiko. 407 00:20:54,950 --> 00:20:56,030 Permeso rifuzita. 408 00:20:56,030 --> 00:21:00,060 Ĉar se ni rigardas tiun liston - 409 00:21:00,060 --> 00:21:02,410 kaj denove, vi ne devas tute komprenas. 410 00:21:02,410 --> 00:21:09,210 Sed tiuj tri strekoj diradas ke vi ne lasu iun alian 411 00:21:09,210 --> 00:21:11,120 uzanton en tiu ĉi dosierujo. 412 00:21:11,120 --> 00:21:14,540 Kaj la dosierujo okazas al esti posedata de uzanto radiko. 413 00:21:14,540 --> 00:21:20,310 >> Do la fakto, ke mi estas jharvard kaj neniu unu, kiu ne estas radiko estas permesita en 414 00:21:20,310 --> 00:21:23,490 ĉi dosierujon, kiu volas diri ke mi estas tuj ekhavas permeson rifuzata, kiam mi 415 00:21:23,490 --> 00:21:25,160 provu cd en gxin. 416 00:21:25,160 --> 00:21:31,370 Do kiam mi estas radiko, mi havas permeson por fari absolute ion ajn, inkluzive 417 00:21:31,370 --> 00:21:34,660 delete esencaj dosieroj al la aparaton kaj 418 00:21:34,660 --> 00:21:36,640 detrui la tutan aferon. 419 00:21:36,640 --> 00:21:41,240 >> Do estas malbona kutimo enir nur vagadis ĉirkaŭ via 420 00:21:41,240 --> 00:21:43,650 mastruma sistemo kiel radiko. 421 00:21:43,650 --> 00:21:46,520 Mi faros ĉiukaze. 422 00:21:46,520 --> 00:21:48,710 Demandojn? 423 00:21:48,710 --> 00:21:52,230 Kaj mi eliros radikon, restu kiel jharvard. 424 00:21:52,230 --> 00:21:54,510 OK. 425 00:21:54,510 --> 00:21:55,820 >> Pli gravaj komandoj. 426 00:21:55,820 --> 00:22:03,975 Do reiri al niaj temp, la mv komando staras por movado. 427 00:22:03,975 --> 00:22:05,450 Vi povas movi. 428 00:22:05,450 --> 00:22:07,610 Nun ni volas nomi ĝin b, tial nun ĝi nomiĝas b. 429 00:22:07,610 --> 00:22:10,650 Aŭ eble ni volas movi b supren unu dosierujo. 430 00:22:10,650 --> 00:22:12,730 Do nun tiu ĉi dosierujo estas malplena. 431 00:22:12,730 --> 00:22:15,410 Mi reiros al mia hejmo dosierujo, kaj Ni vidas, ke b estas en ĉi tie, ĉar la 432 00:22:15,410 --> 00:22:19,230 hejmen dosierujo estis unu dosierujo el La dosierujo kiu b estis in 433 00:22:19,230 --> 00:22:24,710 434 00:22:24,710 --> 00:22:26,580 >> Ekzistas ankaux cp. 435 00:22:26,580 --> 00:22:33,210 Do cp estas kopii la super sekcio, streketo tekston. 436 00:22:33,210 --> 00:22:35,750 Mi povas voki lin s, streketo tekston. 437 00:22:35,750 --> 00:22:39,780 Nun ni havas ambaŭ la super sekcio, streketo teksto; kaj s, streketo tekston. 438 00:22:39,780 --> 00:22:41,340 Tio funkcias ankaŭ en subdosierujoj. 439 00:22:41,340 --> 00:22:44,040 440 00:22:44,040 --> 00:22:46,560 Mi RF-ed sola dosiero. 441 00:22:46,560 --> 00:22:48,200 Do cp - 442 00:22:48,200 --> 00:22:51,710 Nu, unue ni provu cp, tmp, tmp2. 443 00:22:51,710 --> 00:22:53,220 Do preterlasante dosierujo tmp. 444 00:22:53,220 --> 00:22:57,440 Tiel simila al RM, La defaŭlta konduto estas ne funkcias en dosierujoj. 445 00:22:57,440 --> 00:23:01,570 >> Kaj cetere, simila al RM, la defaŭlta konduto - nu, ricevas ĝin por labori 446 00:23:01,570 --> 00:23:04,230 kun subdosierujoj estas, haltostreko-r for. 447 00:23:04,230 --> 00:23:09,240 Do kopii rekursie la temp dosierujon en tmp2. 448 00:23:09,240 --> 00:23:13,700 Kaj tial nun ni havas ambaŭ tmp kaj tmp2, kaj kiu ne estas tiu helpema ekde tmp 449 00:23:13,700 --> 00:23:16,814 estis malplena en la unua loko. 450 00:23:16,814 --> 00:23:18,660 Tmp2. 451 00:23:18,660 --> 00:23:22,680 >> Nun ni kopii tmp en tmp2. 452 00:23:22,680 --> 00:23:27,900 Kaj ni vidas, ke tmp2 ankaŭ havas la dosiero a, ĉar la katalogo kaj al 453 00:23:27,900 --> 00:23:32,220 ĉio ene de tiu dosierujo estis kopiitaj. 454 00:23:32,220 --> 00:23:36,000 Kaj tio povas esti iomete utila se, diru vi laboras 455 00:23:36,000 --> 00:23:38,860 sur problemo starigis unu - 456 00:23:38,860 --> 00:23:41,320 aŭ reale, poste problemo aroj estas eĉ pli grava, ĉar tie 457 00:23:41,320 --> 00:23:43,660 Estos tuta fasko de dosieroj kaj aĵoj. 458 00:23:43,660 --> 00:23:47,010 >> Sed vi nur volas, por fendi dua, vi estas kiel, bone, mi estas 459 00:23:47,010 --> 00:23:50,210 tuj provos ion malsaman. 460 00:23:50,210 --> 00:23:57,860 Lasu min nur kopii mian tutan pset1 dosierujo en pset1 sekurkopioj tiel ke se 461 00:23:57,860 --> 00:24:01,490 Mi finos screwing aĵojn, mi povas reiru en mian sekurkopioj dosierujo. 462 00:24:01,490 --> 00:24:07,340 Tie estas pli taŭgaj vojoj de de versioj asist via kodo, sed 463 00:24:07,340 --> 00:24:10,610 tio estas ĉiam rapidan vojon al nur fari certa, ke vi havas kopion de io 464 00:24:10,610 --> 00:24:11,860 ke vi estas pri modifi. 465 00:24:11,860 --> 00:24:16,974 466 00:24:16,974 --> 00:24:27,090 >> Do eĥo estas ankaŭ unu-off komando kiu speco de sillily estos ĝuste presi la 467 00:24:27,090 --> 00:24:31,540 komandlinia precize kion vi volis eĥon. 468 00:24:31,540 --> 00:24:32,680 Do echo hi. 469 00:24:32,680 --> 00:24:35,420 Ni simple printi saluton. 470 00:24:35,420 --> 00:24:38,030 Eĥo saluton mondo. 471 00:24:38,030 --> 00:24:39,800 Ni devos printi saluton mondo. 472 00:24:39,800 --> 00:24:44,350 Tio venas al uzo, kiam vi komenci kombinante komandoj. 473 00:24:44,350 --> 00:24:48,300 >> Kaj denove, ne tenu vin tute kompreni tio ankoraux, sed estas 474 00:24:48,300 --> 00:24:49,910 io por vidi. 475 00:24:49,910 --> 00:24:52,470 Kaj tiam se vi Googling por ekzemploj aŭ vi rimarkas ke vi volas fari 476 00:24:52,470 --> 00:24:55,030 io, ĝi povas esti utila. 477 00:24:55,030 --> 00:24:59,020 Do ni, kiel ekzemplo, tiel ls, haltostreko, l. 478 00:24:59,020 --> 00:25:01,160 Do jen mi vidas la eligo de LS, haltostreko, l. 479 00:25:01,160 --> 00:25:06,560 Kaj mi diras, OK, mi deziras stoki ke en dosiero. 480 00:25:06,560 --> 00:25:11,620 Ĉio ĉi eligo tie, mi volas meti en aparta dosiero. 481 00:25:11,620 --> 00:25:16,080 >> Do tio iom pli granda ol simbolo estas kio ni iras, por voki. 482 00:25:16,080 --> 00:25:18,570 Ni redireccionando la eligo en dosiero. 483 00:25:18,570 --> 00:25:21,680 Ni nomas la dosiero bla, ĉar tio kion mi inklinas ĉiam nomas ĝin. 484 00:25:21,680 --> 00:25:26,430 Do nun ni vidas ni havas dosiero bla dekstra tie. 485 00:25:26,430 --> 00:25:30,270 Kaj se mi malfermos gxin, mi vidos estas ĝuste la eligo de la komando 486 00:25:30,270 --> 00:25:31,990 ke mi nur forkuris. 487 00:25:31,990 --> 00:25:36,020 Kaj simile, vi povas - 488 00:25:36,020 --> 00:25:41,260 ĉu tio estas eliro al dosiero, tiu estas akiri enigo de dosiero. 489 00:25:41,260 --> 00:25:45,790 490 00:25:45,790 --> 00:25:47,050 Kio estas komando, ke mi - 491 00:25:47,050 --> 00:25:49,620 >> Jozef: Mi opinias ke vi povas uzi malpli aux pli, verŝajne. 492 00:25:49,620 --> 00:25:53,031 >> ROB: Sed kiel pri nur malpli bla? 493 00:25:53,031 --> 00:25:53,930 Mi ne scias. 494 00:25:53,930 --> 00:25:57,870 Se vi venas en ĉi tiun scenaron, kiel ekzistas psets ke ĝi estas utila por. 495 00:25:57,870 --> 00:25:59,950 >> JOSEPH: You can pipon ĝin en eĥo. 496 00:25:59,950 --> 00:26:02,920 Pipo de la dosiero en eĥo vidi ĝin. 497 00:26:02,920 --> 00:26:04,060 >> ROB: Ĝi estas pipo. 498 00:26:04,060 --> 00:26:04,860 >> JOSEPH: Pardonu. 499 00:26:04,860 --> 00:26:06,190 >> ROB: Bone. 500 00:26:06,190 --> 00:26:12,720 Do tiu estas eliro al dosiero. 501 00:26:12,720 --> 00:26:18,700 Ĉi tio estas ricevi la tekston de la dosiero kaj transdoni ilin al la programo. 502 00:26:18,700 --> 00:26:20,560 Kaj vi ankaux vidos ĉi ulo. 503 00:26:20,560 --> 00:26:24,410 Do tiu estas speco de fari ambaŭ samtempe. 504 00:26:24,410 --> 00:26:28,310 Kaj vere, mi prezentos du novaj komandas nur por fari uzon de ĝi. 505 00:26:28,310 --> 00:26:33,060 >> Historio estas oportuna komando kiu estas nur tuj presi liston de 506 00:26:33,060 --> 00:26:34,940 ion mi iam kuri komandlinio. 507 00:26:34,940 --> 00:26:38,290 Kaj ni vidas tie ĉio, kion mi havas estis kuranta ĉi tiu tuta tempo. 508 00:26:38,290 --> 00:26:39,540 Amasoj de LS-aj jaroj. 509 00:26:39,540 --> 00:26:41,570 510 00:26:41,570 --> 00:26:48,470 >> Kaj alia utila komando estas grep ke lia celo estas esplori super 511 00:26:48,470 --> 00:26:52,060 teksto serĉas ŝablonoj, bone, serĉi kion ajn vi 512 00:26:52,060 --> 00:26:53,310 volas serĉi. 513 00:26:53,310 --> 00:26:59,770 Kaj tiel oportuna uzo ĉi tie estas, diru Ni deziras kapti la historio. 514 00:26:59,770 --> 00:27:03,860 Kaj mi volas serĉi la komandoj kie mi - kio estas 515 00:27:03,860 --> 00:27:05,000 utila por serĉi? 516 00:27:05,000 --> 00:27:06,898 >> JOSEPH: [inaudibles]? 517 00:27:06,898 --> 00:27:09,710 >> ROB: Aŭ ni nur serĉi ĉiujn tuŝu, ial ajn. 518 00:27:09,710 --> 00:27:13,850 Do tiu estas kio aspektos. 519 00:27:13,850 --> 00:27:15,560 Kaj vi ne havas tute komprenas. 520 00:27:15,560 --> 00:27:20,570 Sed la ideo estas tie, historio donas la sama eligo ĝi faris ĉi tie 521 00:27:20,570 --> 00:27:25,030 kie ĝi estas la impreso el la tuta historion de ĉiu kiun mi kuras. 522 00:27:25,030 --> 00:27:27,030 Ni tiam pasante, ke - 523 00:27:27,030 --> 00:27:30,230 tial anstataŭ presi ĝin al la ekrano, ni volas preterpasonta al la 524 00:27:30,230 --> 00:27:34,640 komando grep kiuj serĉas ĉiuj okazoj de la vorto takto. 525 00:27:34,640 --> 00:27:40,280 >> Kaj tiel uzas tiun kombinon de la iloj historio kaj grep, mi povas vidi, OK, 526 00:27:40,280 --> 00:27:44,820 jen ĉiuj el la ordonojn mi iam kuras, kaj tie estas iom komuna. 527 00:27:44,820 --> 00:27:45,510 Ni estas ĉe la malsupro. 528 00:27:45,510 --> 00:27:47,930 Kaj ĝi estas ankaŭ donas al mi la komandon Mi nur kuris kiu havis la 529 00:27:47,930 --> 00:27:51,240 vorto takto en ĝi. 530 00:27:51,240 --> 00:27:58,500 Sed la pipo estas bela utila afero por kombini plurajn programojn. 531 00:27:58,500 --> 00:28:04,670 Kaj efektive, ĝi estas mallongigo por liberigite Min eligo historion al dosiero bla, kaj 532 00:28:04,670 --> 00:28:10,190 lasu min grep uzanta la dosiero bla kiel tio, kion mi volas rigardi super. 533 00:28:10,190 --> 00:28:13,460 Do la pipo estas nur simbola ligilo por tiuj du ordonoj. 534 00:28:13,460 --> 00:28:13,950 Jes. 535 00:28:13,950 --> 00:28:15,306 >> SPEAKER 4: [inaudibles]? 536 00:28:15,306 --> 00:28:16,556 >> ROB: Jes. 537 00:28:16,556 --> 00:28:20,142 538 00:28:20,142 --> 00:28:21,110 Kio estas - 539 00:28:21,110 --> 00:28:21,858 Oh. 540 00:28:21,858 --> 00:28:24,820 Ni testi. 541 00:28:24,820 --> 00:28:29,170 Do kato, hundo, fiŝo. 542 00:28:29,170 --> 00:28:33,770 Do mi volas grep. 543 00:28:33,770 --> 00:28:37,680 Haltostreko, r, denove, tuj estos rekursie, do mi volas malsupren suben 544 00:28:37,680 --> 00:28:38,870 ĉiuj dosierujoj. 545 00:28:38,870 --> 00:28:43,210 Mi volas rekursie grep por ĉiuj - kaj lasu min portempe akiri 546 00:28:43,210 --> 00:28:44,460 tiu de la vojo. 547 00:28:44,460 --> 00:28:48,650 548 00:28:48,650 --> 00:28:50,740 Ignoru min. 549 00:28:50,740 --> 00:28:51,360 OK. 550 00:28:51,360 --> 00:28:56,740 >> Do mi volas provizore grep por ĉiuj okazoj de la vorto fiŝo. 551 00:28:56,740 --> 00:29:00,510 Kaj do jen kion mi faras estas grepping rekursie por la vorto fiŝo. 552 00:29:00,510 --> 00:29:05,410 Kaj stelo signifas super ĉiuj el tiuj dosieroj en ĉi dosierujo. 553 00:29:05,410 --> 00:29:08,930 Kaj kion donis al mi Permeso Denied, ĉar ĝin oni ne rajtas legi ke 554 00:29:08,930 --> 00:29:10,060 aparta dosiero. 555 00:29:10,060 --> 00:29:14,040 Sed gxi trovigxis fiŝoj en la dosiero, testo. 556 00:29:14,040 --> 00:29:18,450 >> Mi povus ankaŭ diri, intence, mi nur deziras rigardi la dosieron bla, en 557 00:29:18,450 --> 00:29:19,580 tiaokaze tio ne trovos ion. 558 00:29:19,580 --> 00:29:20,990 Mi nur volas rigardi en la dosiero, testo. 559 00:29:20,990 --> 00:29:22,240 Ĝi trovos fiŝo. 560 00:29:22,240 --> 00:29:25,980 561 00:29:25,980 --> 00:29:29,260 Tio estas belan utila ordono scii gxenerale. 562 00:29:29,260 --> 00:29:31,640 Tie estas kelkaj alternativoj al grep kiuj estas supozitaj esti pli 563 00:29:31,640 --> 00:29:36,780 programisto amika, sed mi emas ankoraŭ refalis sur grep. 564 00:29:36,780 --> 00:29:38,030 Demandojn? 565 00:29:38,030 --> 00:29:39,965 566 00:29:39,965 --> 00:29:40,919 OK. 567 00:29:40,919 --> 00:29:42,520 >> Ĉu ekzistas aliaj komandoj? 568 00:29:42,520 --> 00:29:45,270 Oh. 569 00:29:45,270 --> 00:29:48,370 Nur unu-off kiu mi ĉiam trovi esti amuza estas Cal. 570 00:29:48,370 --> 00:29:55,610 Do rimarkas kiam mi estas en tiu bela full-screen mode: Mi ne havas kiel supre 571 00:29:55,610 --> 00:29:56,720 ilobreto aŭ nenion. 572 00:29:56,720 --> 00:29:59,530 Do kalko nur donas al mi belan kalendaron kiu pravas 573 00:29:59,530 --> 00:30:02,380 nun ekstermitaj, mi supozas. 574 00:30:02,380 --> 00:30:04,770 Sed agrablaj iom komando. 575 00:30:04,770 --> 00:30:06,540 >> JOSEPH: Estas [inaudibles]. 576 00:30:06,540 --> 00:30:09,170 Aliaj komandojn kiujn vi eble havas vidis inkluzivas tin kaj fari. 577 00:30:09,170 --> 00:30:11,180 Ni transiru ilin en pli detale poste. 578 00:30:11,180 --> 00:30:13,400 Sed se vi laboras en la PSET, vi devas esti 579 00:30:13,400 --> 00:30:15,160 familiara kun tiuj. 580 00:30:15,160 --> 00:30:16,640 >> ROB: Bone. 581 00:30:16,640 --> 00:30:18,520 Demandojn pri komandlinio aferojn? 582 00:30:18,520 --> 00:30:22,450 583 00:30:22,450 --> 00:30:23,260 Ĉiuj pravas. 584 00:30:23,260 --> 00:30:27,416 Do ni pluiru al iu C-rilatajn aĵojn. 585 00:30:27,416 --> 00:30:28,666 Variabloj math. 586 00:30:28,666 --> 00:30:39,078 587 00:30:39,078 --> 00:30:40,060 OK. 588 00:30:40,060 --> 00:30:45,230 Do ĝuste kiel ni havis math en Scratch, vi povas uzi ankaŭ matematikon en C. 589 00:30:45,230 --> 00:30:49,270 >> Antaŭ ni atingos ke tute, tiel variabloj. 590 00:30:49,270 --> 00:30:53,920 Memoru ke kiam ajn vi deklari variablon kiel int x aŭ float y, vi 591 00:30:53,920 --> 00:30:56,710 devas doni ĝin tajpi antaŭe la nomo de la variablo. 592 00:30:56,710 --> 00:31:03,020 Do tipojn kiujn ni vidis ĝis nun estas int, kaleŝego, duobla, longaj, kiun mi 593 00:31:03,020 --> 00:31:06,150 ne vere scias se ni vidis ke ĝis nun. 594 00:31:06,150 --> 00:31:07,700 >> Ekzistas kelkaj aliaj aĵoj. 595 00:31:07,700 --> 00:31:09,990 Ni vidos char. 596 00:31:09,990 --> 00:31:13,920 Tie estas mallonga, tio estas kiel ĝi estas la malo de long long kie ĝi estas 597 00:31:13,920 --> 00:31:16,650 malgranda ol entjera. 598 00:31:16,650 --> 00:31:18,580 Ni vidis ankaŭ kordo. 599 00:31:18,580 --> 00:31:23,070 Do kio estas speciala pri kordo? 600 00:31:23,070 --> 00:31:25,350 Kial mi diras estas ne tute ŝatas int? 601 00:31:25,350 --> 00:31:27,030 >> SPEAKER 4: Ĝi ne vere ekzistas. 602 00:31:27,030 --> 00:31:27,990 >> ROB: Jes. 603 00:31:27,990 --> 00:31:31,820 Do la sola kialo ni havas ĉenon Estas pro tio ke kiam vi faros 604 00:31:31,820 --> 00:31:33,215 Baldaux, inkluzivi cs50.h. 605 00:31:33,215 --> 00:31:36,530 606 00:31:36,530 --> 00:31:42,670 Kaj ni vidos ekzemplojn de tiu poste - ho, tio ne manipuli ke bone - 607 00:31:42,670 --> 00:31:46,160 kie cs50.h faras ion laŭ la linioj de tipo 608 00:31:46,160 --> 00:31:49,230 def, char stelo, kordoj. 609 00:31:49,230 --> 00:31:53,280 >> Kaj tiel tio estas diri ke ni ne eĉ scias kio estas char stelo ankoraux. 610 00:31:53,280 --> 00:31:56,770 Sed tio estas diranta ni volas kordo. 611 00:31:56,770 --> 00:32:00,250 Ie ajn vi estis uzanta kordo, vi oni povus uzi char stelo, 612 00:32:00,250 --> 00:32:04,670 kiu fakte estas tipo ke ekzistas en la lingvo C. 613 00:32:04,670 --> 00:32:06,680 Sed ni ricevos por tio. 614 00:32:06,680 --> 00:32:07,860 Ho, kaj gxi iras dekstre malantaŭe. 615 00:32:07,860 --> 00:32:10,170 Neta. 616 00:32:10,170 --> 00:32:15,370 >> Do samon kun bool kie vera kaj malvera. 617 00:32:15,370 --> 00:32:22,510 Tio vere ne estas enkonstruita en tipo en C. Anstataŭe ĝi estas simple, tio ĉi havas 618 00:32:22,510 --> 00:32:23,740 la valoron nulo? 619 00:32:23,740 --> 00:32:26,200 Tiam ni simple konsideri tio al esti malvera. 620 00:32:26,200 --> 00:32:27,350 Ĉu ĉi tio havas la valoron - 621 00:32:27,350 --> 00:32:30,530 bone, tio ĉi havas iun valoro kiu estas ne nulo? 622 00:32:30,530 --> 00:32:32,200 Tiam ni konsideras ĝin esti vera. 623 00:32:32,200 --> 00:32:35,940 Do oni estas vera, du estas vera, io nenula estas vera. 624 00:32:35,940 --> 00:32:38,710 625 00:32:38,710 --> 00:32:42,790 Do tiuj estas tiuj. 626 00:32:42,790 --> 00:32:47,624 Demandojn pri deklari variablojn kaj variablo tipoj kaj cxion, kio? 627 00:32:47,624 --> 00:32:48,100 Jes. 628 00:32:48,100 --> 00:32:52,384 >> SPEAKER 4: Ĉar longe longa, en la libro, ĝi diris, ke ĝi devis esti longa long int. 629 00:32:52,384 --> 00:32:54,288 Sed simple longa longa laboro? 630 00:32:54,288 --> 00:32:58,210 631 00:32:58,210 --> 00:33:01,470 >> ROB: Do tiuj tipo modificadores. 632 00:33:01,470 --> 00:33:04,170 Do int x. 633 00:33:04,170 --> 00:33:07,710 Do ni povas diri ankaŭ sensigna _int_ x. 634 00:33:07,710 --> 00:33:09,640 Ni povas diri mallongaj int x. 635 00:33:09,640 --> 00:33:12,570 Ni povas diri long long int x. 636 00:33:12,570 --> 00:33:17,250 Sed preskaux neniu el tiuj aferoj mi nur diris, sensigna _int_, mallongaj int, 637 00:33:17,250 --> 00:33:21,480 long long int, vi povas liveri de la int kaj estos nur supozi 638 00:33:21,480 --> 00:33:22,510 ke vi volis diri int. 639 00:33:22,510 --> 00:33:26,045 Do sensigna x, kiu simple signifas - 640 00:33:26,045 --> 00:33:29,400 vi scias, kiel kutime kun int, vi povas diri x egalas negativa 3? 641 00:33:29,400 --> 00:33:31,636 Kun sensigna _int_, vi ne povas. 642 00:33:31,636 --> 00:33:34,480 >> JOSEPH: Kaj denove, por la ĉambro, la demando estis, kio estas la diferenco 643 00:33:34,480 --> 00:33:37,796 inter long long int kaj nur longe da tempo? 644 00:33:37,796 --> 00:33:38,410 >> ROB: Jes. 645 00:33:38,410 --> 00:33:42,850 Do mi volas preskaŭ neniam skribi long long int. 646 00:33:42,850 --> 00:33:44,100 Mi skribos longe longe. 647 00:33:44,100 --> 00:33:47,770 648 00:33:47,770 --> 00:33:50,636 >> JOSEPH: Any questions? 649 00:33:50,636 --> 00:33:51,886 >> ROB: okej. 650 00:33:51,886 --> 00:33:56,180 651 00:33:56,180 --> 00:34:02,390 Do stulta iom rememorigilo de tio kiom ni deklaras variablon kaj pravalorizi 652 00:34:02,390 --> 00:34:04,450 la variablo kaj deklaras la alian ŝanĝiĝema kaj pravalorizi 653 00:34:04,450 --> 00:34:05,870 ĉion en unu paŝo. 654 00:34:05,870 --> 00:34:09,370 Do la deklaro de la variablo kaj la inicialización variablo ne havas 655 00:34:09,370 --> 00:34:11,120 i sed povas esti sur la sama linio. 656 00:34:11,120 --> 00:34:15,409 657 00:34:15,409 --> 00:34:20,060 >> Do ni havas la norma matematiko operatoroj ke vi uzas al - 658 00:34:20,060 --> 00:34:22,199 plus, minus, breĉo, foje. 659 00:34:22,199 --> 00:34:24,389 Ekzistas ankaux module, kion ni vidos. 660 00:34:24,389 --> 00:34:29,060 Tie ne estas, almenaŭ en C, enkonstruita en potenco 661 00:34:29,060 --> 00:34:31,765 potencigo caret operatoro. 662 00:34:31,765 --> 00:34:33,770 Nu, estas caret operatoro, sed ĝi ne estas povo. 663 00:34:33,770 --> 00:34:34,239 >> JOSEPH: Sed ĝi ne estas potencigo, jes. 664 00:34:34,239 --> 00:34:36,210 >> ROB: Ne uzu la caret supozi, ke ĝi signifas 665 00:34:36,210 --> 00:34:39,980 kiel kvadrato aŭ kio ajn. 666 00:34:39,980 --> 00:34:42,289 Do iuj aferoj por gardi en mind pri divido. 667 00:34:42,289 --> 00:34:46,282 668 00:34:46,282 --> 00:34:48,880 Mi staras. 669 00:34:48,880 --> 00:34:51,315 Do deklaris pravalorizi respondo. 670 00:34:51,315 --> 00:34:54,670 Do ni jene float respondon egalas 1 dividita per 10. 671 00:34:54,670 --> 00:34:57,500 Presi respondon al du dekumaj lokoj. 672 00:34:57,500 --> 00:35:02,180 >> Kaj jen estas la speco de afero kiun mi estus homo printf elkompreni ke 673 00:35:02,180 --> 00:35:05,110 kia la heck faras%, streketo 2f signifi? 674 00:35:05,110 --> 00:35:07,930 Kaj tio nur signifas, bone, ignorante la 0.2. 675 00:35:07,930 --> 00:35:10,420 Kaj%, f estas kion ni uzas presi flosi. 676 00:35:10,420 --> 00:35:15,370 La 0.2 estas diranta, presi, ke flosi al du dekumaj lokoj. 677 00:35:15,370 --> 00:35:19,600 Do tiu programo havas cimon, kaj eble vi vidis ĉi tion antaŭe en iun 678 00:35:19,600 --> 00:35:20,870 antaŭaj CS kurso. 679 00:35:20,870 --> 00:35:22,170 Sed kio estas tiu besteto? 680 00:35:22,170 --> 00:35:23,050 >> SPEAKER 5: Nulo. 681 00:35:23,050 --> 00:35:24,130 >> ROB: Jes. 682 00:35:24,130 --> 00:35:29,630 Do kiam ni diras, respondon egalas 1 dividita per 10, oni volas ke la 683 00:35:29,630 --> 00:35:31,610 respondi al esti 0,1. 684 00:35:31,610 --> 00:35:37,450 Sed 1 dividita per 10, 1 estas entjera, 10 estas entjero. 685 00:35:37,450 --> 00:35:41,060 Kaj do, kiam ni faras entjero dividita per entjera, ni tuj reiri 686 00:35:41,060 --> 00:35:42,190 entjero. 687 00:35:42,190 --> 00:35:43,660 Do 1 dividita per 10 estas 0.1. 688 00:35:43,660 --> 00:35:46,760 >> Pro tio necesas doni al ni entjero, Estas nur volus ĵeti for, 689 00:35:46,760 --> 00:35:49,410 dekuma loko kaj diri ke la respondo estas 0. 690 00:35:49,410 --> 00:35:55,314 Kaj do, kiam ni presas respondi ĉi tie, gxi tuj presas 0.00. 691 00:35:55,314 --> 00:35:58,430 >> JOSEPH: Kaj ĝuste kiel noton, gxi reale ĵetas for kio estas post la 692 00:35:58,430 --> 00:35:59,390 dekuma punkto. 693 00:35:59,390 --> 00:36:03,180 Do se vi anstataŭe havis 6 dividita per 10, vi eble opinias, ke tio donos al vi 694 00:36:03,180 --> 00:36:05,200 0.6 kaj tiam vi estus cxirkauxtondu ĝis 1. 695 00:36:05,200 --> 00:36:10,520 Sed reale, kio okazas kiam tajpi taskoj estas ke gxi falas kio estas 696 00:36:10,520 --> 00:36:11,470 post la dekuma punkto. 697 00:36:11,470 --> 00:36:13,020 Do 0.6 tio fariĝis 0. 698 00:36:13,020 --> 00:36:13,370 >> ROB: Jes. 699 00:36:13,370 --> 00:36:15,160 Kaj ni diros senpintigas por tio. 700 00:36:15,160 --> 00:36:21,760 Do kiam ajn vi jxetis al int, la dekuma estas detranĉita. 701 00:36:21,760 --> 00:36:23,980 Do la solvon por tio - estas fakte du. 702 00:36:23,980 --> 00:36:27,890 Kaj mi tuj faros tion duan, ĉar ĉi tiu estas multe pli facile ripari. 703 00:36:27,890 --> 00:36:32,670 >> Do oni riparas estas uzi flosoj en la divido. 704 00:36:32,670 --> 00:36:34,720 Kaj vere, vi nur devus Faru unu el ili float. 705 00:36:34,720 --> 00:36:37,400 Sed estas iom pli klara nur fari ambaux flosas. 706 00:36:37,400 --> 00:36:41,170 Do 1.0 dividita per 10,0 trovas dividanta du flosoj. 707 00:36:41,170 --> 00:36:43,970 Do la respondo finos esti kaleŝego, kaj tiel vi volas, 708 00:36:43,970 --> 00:36:48,050 ĝuste presi 0,10 tie. 709 00:36:48,050 --> 00:36:52,220 >> Iu kiu ne funkcias tiel bone pri ĉi tio estas, nu, certe, estis facile 710 00:36:52,220 --> 00:36:56,240 sufiĉas por konverti 1 ĝis oni flosi per fari lin 1.0. 711 00:36:56,240 --> 00:37:02,180 Sed kion se anstataŭe ni havis du entjeroj kiel int x estas 1 kaj int y 712 00:37:02,180 --> 00:37:05,660 egalas 10, kaj do ni volis por ne x dividita per y? 713 00:37:05,660 --> 00:37:10,420 Do ĝi estas ne facila por ĝuste fari x.0 aŭ io. 714 00:37:10,420 --> 00:37:12,790 >> Do la solvon al kiu enjxetantan. 715 00:37:12,790 --> 00:37:19,780 Do enjxetantan estas vojo en C por konverti de unu variablo tipo al alia. 716 00:37:19,780 --> 00:37:22,320 Do jen, 1 estas entjero. 717 00:37:22,320 --> 00:37:27,050 Kaj metante ĉi flosas antaux tio, ni estas enjxetantan 1 ĝis float. 718 00:37:27,050 --> 00:37:30,350 Kaj tiel tio konverti la 1 al 1.0. 719 00:37:30,350 --> 00:37:33,380 Kaj tio estos konverti la 10 al 10.0. 720 00:37:33,380 --> 00:37:36,790 >> Kaj tiam tion, kondutas simile al la antaŭa versio, ni nur montris 721 00:37:36,790 --> 00:37:42,190 kie, kiel atendis, ni preni 0.10 kaj gxi devos presi tiun. 722 00:37:42,190 --> 00:37:44,120 Kaj ni povas fari tion kun variabloj, tro. 723 00:37:44,120 --> 00:37:47,376 Do ni povas diri, float x dividita per float y. 724 00:37:47,376 --> 00:37:48,626 >> JOSEPH: Any questions? 725 00:37:48,626 --> 00:37:54,182 726 00:37:54,182 --> 00:38:00,090 >> ROB: Do ĝuste kiel en regula matematikon, ni havos operatora prioritato. 727 00:38:00,090 --> 00:38:06,960 Do en math klaso vi estas multe pli verŝajna nomi ĝin ordo de operacioj. 728 00:38:06,960 --> 00:38:09,890 Tie, la oficiala termino estas operatora prioritato. 729 00:38:09,890 --> 00:38:15,230 Sed la operatora prioritato, aŭ plej operatoroj, estas kiel vi devus atendi. 730 00:38:15,230 --> 00:38:22,660 >> Do ĝuste kiel en matematiko, 2 fojojn 10 estas tuj estos kolektitaj pli proksime ol 731 00:38:22,660 --> 00:38:25,410 ĉi 10 dividite per 2 kaj tiam 2. 732 00:38:25,410 --> 00:38:29,745 La ordo de operacioj, ĝi faros la 2 fojojn 10, 10 dividite per 2, kaj poste 733 00:38:29,745 --> 00:38:32,720 ĝi tion faros 20 plus 5 plus 2. 734 00:38:32,720 --> 00:38:37,020 Do ĝi estas tiel atendis, kaj oni povas uzi Parentezoj kolekti esprimoj. 735 00:38:37,020 --> 00:38:41,063 Vi ne povas uzi rektaj krampoj kolekti esprimoj. 736 00:38:41,063 --> 00:38:41,544 Jes? 737 00:38:41,544 --> 00:38:43,468 >> SPEAKER 5: Ĉu vi efektive reiri dua? 738 00:38:43,468 --> 00:38:47,316 Ĉu vi jxetis int al ĉeno? 739 00:38:47,316 --> 00:38:53,330 >> ROB: Do en C, oni povas jxeti ion vi volas ion vi deziras. 740 00:38:53,330 --> 00:38:55,600 Tio ne signifas, ke estas bona afero por fari. 741 00:38:55,600 --> 00:38:59,760 Do kiam vi jxetis int por ĉenon, tio signifas - 742 00:38:59,760 --> 00:39:03,240 kaj ni eniros en ĉi multe pli funde - 743 00:39:03,240 --> 00:39:03,720 >> JOSEPH: Multe poste. 744 00:39:03,720 --> 00:39:06,840 >> ROB: Mi ne volas diri multe poste, do mi provis ŝanĝi mian frazon. 745 00:39:06,840 --> 00:39:13,370 Ni ricevos en ĝin multe pli profunde poste kie vere kiam vi havos 746 00:39:13,370 --> 00:39:14,810 kordo variablo - 747 00:39:14,810 --> 00:39:17,160 tiel kordo povas esti arbitre longa, ĉu ne? 748 00:39:17,160 --> 00:39:21,850 Kaj ni estis dirante ke int estas kvar bajtojn kaj longaj ok 749 00:39:21,850 --> 00:39:23,620 bajtoj kaj float estas kvar bajtojn. 750 00:39:23,620 --> 00:39:29,520 Do ĉenon, ĝuste kiel int, nur havas iu numero de bitokoj al ĝi. 751 00:39:29,520 --> 00:39:31,800 Kaj tio estos kvar bajtojn. 752 00:39:31,800 --> 00:39:34,750 >> Sed kordo povas esti bela arbitre longa, ĉu ne? 753 00:39:34,750 --> 00:39:40,190 Do saluton mondo jam, se tio estas 10 karakteroj aŭ kio ajn, tio estas jam 754 00:39:40,190 --> 00:39:42,670 tuj estos super la 4 bitokoj Mi povas adapti enen kordo. 755 00:39:42,670 --> 00:39:51,140 Kaj do kiel kordoj vere laboros estas ke ili estas kie en memoro ke kordo 756 00:39:51,140 --> 00:39:52,380 estas plenumenda. 757 00:39:52,380 --> 00:39:57,290 >> Kaj do ĉi tie, kiam mi diras kordo x egalas saluton mondo, ene de x estas 758 00:39:57,290 --> 00:40:01,840 nur dirante: Ho, saluton mondo estas stokita pri tiu preciza loko en memoro. 759 00:40:01,840 --> 00:40:07,060 Do, se ni provos jxeti entjero al kordo, tiam ni provas interpreti 760 00:40:07,060 --> 00:40:10,500 iu hazarda parto de memoro kiel linio. 761 00:40:10,500 --> 00:40:14,465 Kaj tio preskaŭ ĉiam rompas aferojn. 762 00:40:14,465 --> 00:40:17,040 >> JOSEPH: Sed se tio konfuzas vi, ni povas kovri ŝin 763 00:40:17,040 --> 00:40:17,550 pli profunde poste. 764 00:40:17,550 --> 00:40:17,850 >> ROB: Jes. 765 00:40:17,850 --> 00:40:20,540 Tie estas kie vi iras enir montriloj. 766 00:40:20,540 --> 00:40:25,485 Kaj tio estas signifa chunk de du semajnoj de ĉi kurso. 767 00:40:25,485 --> 00:40:28,275 >> SPEAKER 6: Ĉu ĝi funkcias kiel objektoj en aliaj lingvoj aux ne vere? 768 00:40:28,275 --> 00:40:34,050 >> ROB: Do en aliaj lingvoj, celoj estus reprezentita per montriloj. 769 00:40:34,050 --> 00:40:37,070 770 00:40:37,070 --> 00:40:38,793 Ĝi ne estas la sama afero, kvankam. 771 00:40:38,793 --> 00:40:42,110 772 00:40:42,110 --> 00:40:42,910 Ajna pensojn? 773 00:40:42,910 --> 00:40:43,760 >> JOSEPH: N-ro 774 00:40:43,760 --> 00:40:44,185 Neniu pensoj. 775 00:40:44,185 --> 00:40:44,980 >> ROB: okej. 776 00:40:44,980 --> 00:40:46,994 >> JOSEPH: Sekva. 777 00:40:46,994 --> 00:40:48,255 >> ROB: Simple iru kun tio. 778 00:40:48,255 --> 00:40:48,670 Ĉiuj pravas. 779 00:40:48,670 --> 00:40:51,120 Do module. 780 00:40:51,120 --> 00:40:53,900 Same kiel ni havas plus, minus, dividi, kaj multigxos. 781 00:40:53,900 --> 00:40:56,720 Do module estas unu vi rajtas ne vidis antaŭe. 782 00:40:56,720 --> 00:40:59,540 Kaj tio nur diras, donu mi la reston de. 783 00:40:59,540 --> 00:41:02,850 Do 55% 10. 784 00:41:02,850 --> 00:41:06,840 La restaĵo de la fari 55 dividita per 10 estus 5. 785 00:41:06,840 --> 00:41:09,630 Do 55% 10 estas 5. 786 00:41:09,630 --> 00:41:12,260 Kaj 3% 5 estus 3. 787 00:41:12,260 --> 00:41:14,180 8% 8 estos 0. 788 00:41:14,180 --> 00:41:15,903 16% 15 estos 1. 789 00:41:15,903 --> 00:41:20,670 >> JOSEPH: Unu afero noti kun ĉi, tro, estas eble ne funkcios kiel atendis 790 00:41:20,670 --> 00:41:22,700 se vi uzas negativa nombro. 791 00:41:22,700 --> 00:41:26,215 Do negativa 5% 4, iuj homoj povus pensi ke estas - 792 00:41:26,215 --> 00:41:28,890 793 00:41:28,890 --> 00:41:33,808 Kion vi opinias negativa 5% 4 estus? 794 00:41:33,808 --> 00:41:34,792 >> SPEAKER 5: Unu. 795 00:41:34,792 --> 00:41:37,920 >> JOSEPH: Do iuj homoj diras unu, iuj homoj diras negativa. 796 00:41:37,920 --> 00:41:38,450 Sed kio - 797 00:41:38,450 --> 00:41:40,820 >> ROB: Mi havas eĉ ne diris unu el tiuj. 798 00:41:40,820 --> 00:41:42,370 >> JOSEPH: Du, pardonon. 799 00:41:42,370 --> 00:41:43,240 Kelkaj diras - 800 00:41:43,240 --> 00:41:43,450 >> ROB: Tri. 801 00:41:43,450 --> 00:41:43,800 >> JOSEPH: Tri? 802 00:41:43,800 --> 00:41:44,890 >> ROB: Negativa - 803 00:41:44,890 --> 00:41:45,950 kio estis la - negativa kvin - 804 00:41:45,950 --> 00:41:47,100 >> JOSEPH: Tri, tri, tri. 805 00:41:47,100 --> 00:41:48,450 Pardonon. 806 00:41:48,450 --> 00:41:51,910 Ĉar module, ĝenerale, kiam vi havas vidis ĝin aliloke, ĝi kutime signifas 807 00:41:51,910 --> 00:41:54,000 redoni pozitiva nombro, ĉu ne? 808 00:41:54,000 --> 00:42:01,160 >> ROB: Do kiam ni diras en matematiko,% 10'S, Ili emas volas doni al vi - 809 00:42:01,160 --> 00:42:05,980 se ni mod per 10, tiam ni atendas ricevi nombron inter 0 kaj 9. 810 00:42:05,980 --> 00:42:09,860 En ĉi tie, ke ne estas la kazo, ke vi ricevos negativaj nombroj revenis. 811 00:42:09,860 --> 00:42:15,898 >> JOSEPH: Do negativa 5% 4 estus negativa 1. 812 00:42:15,898 --> 00:42:19,325 >> ROB: Sed ĝi estas rara, ke vi estas mod-ing negativajn numerojn por komenci. 813 00:42:19,325 --> 00:42:25,490 814 00:42:25,490 --> 00:42:25,970 Rekte ĉi. 815 00:42:25,970 --> 00:42:27,314 >> JOSEPH: Jes. 816 00:42:27,314 --> 00:42:29,420 >> ROB: Meh. 817 00:42:29,420 --> 00:42:29,990 OK. 818 00:42:29,990 --> 00:42:36,400 Do unu lastan aferon atentigi pri flosoj Estas ĝi estas danĝera konduto, 819 00:42:36,400 --> 00:42:39,850 sed flosas estas ne akurata reprezento. 820 00:42:39,850 --> 00:42:46,190 Do reiri al bitokoj denove, memoru ke int estas ĉiam kvar bajtojn kaj 821 00:42:46,190 --> 00:42:47,830 float estas ĉiam kvar bajtojn. 822 00:42:47,830 --> 00:42:51,340 Do Lucas ekzemplo estas sufiĉe bonaj. 823 00:42:51,340 --> 00:42:55,730 >> Do pensu el 1 dividita per 3. 824 00:42:55,730 --> 00:42:57,800 Do 0,3333333. 825 00:42:57,800 --> 00:43:03,540 Se mi nur havas 32 bitojn, kiel vi povas Mi stoki 0,33333 ekzakte? 826 00:43:03,540 --> 00:43:07,250 Kaj eble, ial ajn, vi diras, Tute bone, bone, ni nur diru 827 00:43:07,250 --> 00:43:13,210 ke ĉi tiu aparta 1011001, ni nur diru, ke devus esti 0,333333. 828 00:43:13,210 --> 00:43:16,960 Nu, vi havas nur finian nombron de tiuj bitoj, do estas neeble 829 00:43:16,960 --> 00:43:22,550 reprezenti ĉiun solan glitpunktaj valoro donita nur 32 bitoj. 830 00:43:22,550 --> 00:43:25,580 >> Nu, estas neeble prezenti ajnan glitpunktaj valoro donita senfina - 831 00:43:25,580 --> 00:43:28,480 bone, donita ajna finia nombro de bitoj. 832 00:43:28,480 --> 00:43:38,265 Do la demando cxi tie estas, nu, kiam ni uzas presi du dekumaj lokoj, 833 00:43:38,265 --> 00:43:42,000 ni ne korekte ricevi la respondon 0.10. 834 00:43:42,000 --> 00:43:47,510 Sed sub la kapuĉo, ĝi estas vere esti stokitaj kiel fermi kiel eblas 835 00:43:47,510 --> 00:43:51,790 0.10 kiel tiuj bitoj povas reprezenti. 836 00:43:51,790 --> 00:43:53,200 Ĉu ĉi tiu estas en la sekvanta slide? 837 00:43:53,200 --> 00:43:53,830 Aŭ ĉu ne? 838 00:43:53,830 --> 00:43:54,660 >> JOSEPH: Jes, estas tio. 839 00:43:54,660 --> 00:43:55,750 >> ROB: Blegh, blegh. 840 00:43:55,750 --> 00:43:57,760 >> JOSEPH: Jes, vi povas simple tiri la notoj supre iom. 841 00:43:57,760 --> 00:43:59,700 >> ROB: mi simple tuj zomi en la lasta sur tio. 842 00:43:59,700 --> 00:44:00,950 Ho mia ho, tio estas [inaudibles]. 843 00:44:00,950 --> 00:44:06,089 844 00:44:06,089 --> 00:44:08,300 Do tiu nombro. 845 00:44:08,300 --> 00:44:12,300 Tio estas kio estos presita se ni kuras tiu programo. 846 00:44:12,300 --> 00:44:20,340 Kaj rimarkos ke tio ne vere big deal se ni nur zorgi pri kiel 847 00:44:20,340 --> 00:44:21,920 du al tri dekumaj lokoj. 848 00:44:21,920 --> 00:44:26,700 Kiel ni nur originale presita 0.10, kaj tial ni vidis nenion malbonan. 849 00:44:26,700 --> 00:44:31,380 Sed iam ni komencu akiri en la akurata, preciza nombro kiu estas 850 00:44:31,380 --> 00:44:35,660 reprezentas, oni vidas ke ĝi ne povas ekzakte reprezenti 0.1. 851 00:44:35,660 --> 00:44:40,900 >> Kaj parto de la problemo ĉi tie estas kiel, ĉiuj pravas, ke estas bone, sed, nu, 852 00:44:40,900 --> 00:44:46,120 unue, kio se ni provis fari, respondon egalas egalas 0.1? 853 00:44:46,120 --> 00:44:49,200 Estas ke tuj revenos vera aŭ falsa? 854 00:44:49,200 --> 00:44:51,850 Kaj tial ĝi estas malfacile diri. 855 00:44:51,850 --> 00:44:53,330 Mi kredas ke vere povus redoni vera. 856 00:44:53,330 --> 00:44:55,265 Will ĝin unue - 857 00:44:55,265 --> 00:44:56,180 Mi ne scias. 858 00:44:56,180 --> 00:45:00,090 La respondo estas iam vi komencos kontraktanta per glitpunktaj valoroj, vi bela 859 00:45:00,090 --> 00:45:05,150 multe ne devus esti uzanta egaleco pro ĉi imprecision. 860 00:45:05,150 --> 00:45:09,470 >> Kaj cxar vi cxiuj scias, estas la centa dekuma loko kiun la 861 00:45:09,470 --> 00:45:13,670 flosanta punkto, ne povis ĝuste manipuli. 862 00:45:13,670 --> 00:45:18,180 Kaj do egaleco estos nur malsukcesos eĉ kvankam la nombro - se vi estus 863 00:45:18,180 --> 00:45:24,450 uzanta ĝusta nombroj, la nombro devus estis precize la sama. 864 00:45:24,450 --> 00:45:27,790 Ĝi estas en la kurso de kiel 50 kalkuloj uzante tiujn flosanta 865 00:45:27,790 --> 00:45:30,270 punkto valoroj, la eraro povas konstrui supren kaj supren kaj supren kaj 866 00:45:30,270 --> 00:45:31,125 aferojn simple akiri erara. 867 00:45:31,125 --> 00:45:33,870 >> JOSEPH: Kaj tie estis efektive famaj ekzemploj de tiu okazaĵo. 868 00:45:33,870 --> 00:45:37,190 Kiel NASA inĝenieroj alveninta ĉi erara, kaŭzante raketoj eksplodos en 869 00:45:37,190 --> 00:45:38,665 la aero post ili jam estis ĵetita. 870 00:45:38,665 --> 00:45:41,490 Kaj multajn aferojn tiel. 871 00:45:41,490 --> 00:45:41,956 Do jes. 872 00:45:41,956 --> 00:45:45,218 >> SPEAKER 6: Kiam vi diras 0,3 f, ghi detranĉi la ceteraj? 873 00:45:45,218 --> 00:45:46,468 Aŭ ghi cxirkauxtondu supren aŭ malsupren? 874 00:45:46,468 --> 00:45:48,800 875 00:45:48,800 --> 00:45:50,200 >> ROB: Will printf ronda ĝi? 876 00:45:50,200 --> 00:45:52,180 >> Jozef: Mi pensas printf detranĉas. 877 00:45:52,180 --> 00:45:52,640 >> ROB: okej. 878 00:45:52,640 --> 00:45:59,890 Do ni povas simile iru en la alian direkto de tiu kie, en ĉi tiu kazo, 879 00:45:59,890 --> 00:46:03,320 la plej proksima povus reprezenti 0.1 estis kun ĉi tiu numero. 880 00:46:03,320 --> 00:46:06,820 La plej proksimaj eble povos reprezenti 0.2 estas en la kontraŭa 881 00:46:06,820 --> 00:46:11,420 direkto, 0,199999996356 aŭ io. 882 00:46:11,420 --> 00:46:17,480 Do, se ni iradis en tiu direkto aĵojn, tiam printf 0,3 f revenus 883 00:46:17,480 --> 00:46:20,866 1.99 anstataŭ 2.00. 884 00:46:20,866 --> 00:46:22,960 >> JOSEPH: Kaj mi ne estas tute certa pri tio. 885 00:46:22,960 --> 00:46:25,430 Vi eble volas skribi malgrandan, iom programo por nur kontroli tion. 886 00:46:25,430 --> 00:46:29,370 >> ROB: Kvankam, kio ni certas de estas, ke se vi provis jxeti ke al 887 00:46:29,370 --> 00:46:33,660 int, kaj elpelante al int tuj kaŭzi ĝi detranĉi la dekuma, se 888 00:46:33,660 --> 00:46:38,140 vi provos jxeti 1.9999999 al int, vi ricevos 1. 889 00:46:38,140 --> 00:46:41,440 Kaj do vi devus ĝenerale uzos la ronda funkcio en la matematika biblioteko. 890 00:46:41,440 --> 00:46:44,190 891 00:46:44,190 --> 00:46:45,440 Demandojn? 892 00:46:45,440 --> 00:46:47,660 893 00:46:47,660 --> 00:46:48,982 OK. 894 00:46:48,982 --> 00:46:54,000 >> JOSEPH: Do movanta sur kondiĉoj kaj Buleaj esprimoj. 895 00:46:54,000 --> 00:46:58,120 Do vi jam vidis tiujn antaŭe. 896 00:46:58,120 --> 00:47:07,420 Kaj fakte, lasu min certigi mian komputilo estas en la ĝusta formato ĉi tie. 897 00:47:07,420 --> 00:47:08,670 Spaco. 898 00:47:08,670 --> 00:47:10,630 899 00:47:10,630 --> 00:47:13,870 Pardonu, ni tuj devas trakti kiel iomete kun kortego ĉe la randoj. 900 00:47:13,870 --> 00:47:15,830 >> Sed jes, vi infanoj vidis ĉi antaŭe en Scratch. 901 00:47:15,830 --> 00:47:19,930 Do tiu ĝuste ĉi tie estas esprimo kiu estas uzata en 902 00:47:19,930 --> 00:47:21,250 kondiĉa komunikaĵo. 903 00:47:21,250 --> 00:47:23,930 Do respondu al pli granda ol nulo volo rakontos al vi veran aŭ malveran. 904 00:47:23,930 --> 00:47:26,530 Kaj jen estas vere grava, ĉar Ili permesas al ni enkonduki 905 00:47:26,530 --> 00:47:28,670 logiko en nian kodon. 906 00:47:28,670 --> 00:47:32,820 >> Do, ekzemple, tiu estas programo skribita en Scratch kiu petas la uzanto 907 00:47:32,820 --> 00:47:36,980 por entjero kaj rakontas ilin ĉu la entjeraj kiuj oni donis al vi estis 908 00:47:36,980 --> 00:47:38,690 pozitiva aŭ negativa nombro. 909 00:47:38,690 --> 00:47:42,980 Kaj la konvertiĝo super tie vidi estas vi unue presi la deklaro, 910 00:47:42,980 --> 00:47:43,870 donu al mi entjero. 911 00:47:43,870 --> 00:47:45,980 Kaj tiam vi demandos ilin por entjero. 912 00:47:45,980 --> 00:47:49,870 >> Kaj tiam vi uzu kondiĉa logiko super tien por kontroli ĉu tiu numero 913 00:47:49,870 --> 00:47:52,030 Estis vere granda ol nulo aux ne. 914 00:47:52,030 --> 00:47:58,960 Do ĉi tie ni havas Bulea esprimo interne de kondiĉa Se komunikaĵo. 915 00:47:58,960 --> 00:48:00,660 Ĉu estas ia demandoj? 916 00:48:00,660 --> 00:48:03,030 Ĉu ekzistas ia demandojn pri tio? 917 00:48:03,030 --> 00:48:03,950 OK. 918 00:48:03,950 --> 00:48:06,140 >> Do tie estas pli ol nur pli granda ol, kompreneble. 919 00:48:06,140 --> 00:48:10,385 Vi povas konstrui Buleaj esprimoj uzante la plejparto de la specoj de aferoj kiujn vi 920 00:48:10,385 --> 00:48:11,150 devus pensi en matematiko. 921 00:48:11,150 --> 00:48:12,370 Do granda ol. 922 00:48:12,370 --> 00:48:13,740 Tio devus esti malpli ol. 923 00:48:13,740 --> 00:48:14,990 Pardonon. 924 00:48:14,990 --> 00:48:18,520 925 00:48:18,520 --> 00:48:19,760 Kaj la interspaco. 926 00:48:19,760 --> 00:48:22,971 >> ROB: Dio malpermesu vi lasos ĝin. 927 00:48:22,971 --> 00:48:23,620 >> JOSEPH: Bone. 928 00:48:23,620 --> 00:48:25,950 Do granda ol, malpli ol, plej granda ol, aŭ egalaj al, malpli 929 00:48:25,950 --> 00:48:27,070 ol, aŭ egala al. 930 00:48:27,070 --> 00:48:31,980 Ni uzas duoblan egalaj por kontroli egaleco, ĉar sola egalas rimedoj 931 00:48:31,980 --> 00:48:32,810 asigno, right? 932 00:48:32,810 --> 00:48:33,140 Jes. 933 00:48:33,140 --> 00:48:37,130 Kaj tiam ni povas ankaŭ ne egalas per uzante ekkrion markon, egalaj. 934 00:48:37,130 --> 00:48:41,530 >> Kaj tiu ekkrio markon simbolo povas ankaŭ esti etenditaj por ke, se vi volas 935 00:48:41,530 --> 00:48:44,050 al inversigi omnaspeca Bulea esprimon, kiun vi povas fari tion. 936 00:48:44,050 --> 00:48:48,530 Do tiu taksos al vera nur se la respondo estas malpli 937 00:48:48,530 --> 00:48:51,240 ol aŭ egala al nulo. 938 00:48:51,240 --> 00:48:53,950 Demandojn pri tio? 939 00:48:53,950 --> 00:48:55,180 OK. 940 00:48:55,180 --> 00:48:58,840 >> Do vi povas same kombini tiujn esprimojn uzante logikan Kaj kaj 941 00:48:58,840 --> 00:48:59,790 logika Aŭ. 942 00:48:59,790 --> 00:49:03,530 Do tiu estas nur la Kaj simbolo, kiuj devus esti Shift, 7. 943 00:49:03,530 --> 00:49:07,720 Kaj jen estas la pipon simbolo, kiu estas ne minuskloj L. Tio estas la 944 00:49:07,720 --> 00:49:09,440 tio estas rekte super via Entajpu ŝlosilo. 945 00:49:09,440 --> 00:49:12,870 Do vi uzas du de tiuj por simboli logika kaj la logika Aŭ. 946 00:49:12,870 --> 00:49:18,180 >> Do tio estos nur redoni vera se respondo estas unu, du, tri, aŭ kvar. 947 00:49:18,180 --> 00:49:23,030 Kaj tio nur redoni vera se respondo estas preter kiuj ambaŭflanke. 948 00:49:23,030 --> 00:49:26,190 Do ĝi ne estas unu, du, tri, aŭ kvar. 949 00:49:26,190 --> 00:49:28,385 Kaj la vojon vi uzus ke en esprimo - 950 00:49:28,385 --> 00:49:29,990 >> ROB: Or nula aŭ kvin. 951 00:49:29,990 --> 00:49:32,200 >> JOSEPH: Nulo aux kvin. 952 00:49:32,200 --> 00:49:32,380 Pardonon. 953 00:49:32,380 --> 00:49:33,320 Jes, jes, jes. 954 00:49:33,320 --> 00:49:34,180 OK. 955 00:49:34,180 --> 00:49:38,980 Kaj super tien nun, la sama maniero vi estus uzi tiun esprimon, malgranda 956 00:49:38,980 --> 00:49:42,000 esprimo flanko de Se kondiĉa deklaro, vi devus ankaŭ uzu ĝin la 957 00:49:42,000 --> 00:49:47,800 sama vojo, per nur metante gxin interne de la parentezoj de la Se komunikaĵo. 958 00:49:47,800 --> 00:49:54,020 Do tiu printf nur ekbruliĝis se respondo estas unu, du, tri, aŭ kvar. 959 00:49:54,020 --> 00:49:56,002 Demandojn je kombinante esprimoj? 960 00:49:56,002 --> 00:50:00,450 961 00:50:00,450 --> 00:50:04,240 >> Do tie estas alia kondiĉa konstruu ni nomas Se / Else. 962 00:50:04,240 --> 00:50:08,120 Do esence, tiu nun signifas, OK: Se io, kion mi volis kontroli ne estis 963 00:50:08,120 --> 00:50:11,600 vera, tiam iru al la Else kaj plenumos la aliajn agado. 964 00:50:11,600 --> 00:50:15,570 Do en tiu aparta kazo, mi demandis la uzanto por entjero. 965 00:50:15,570 --> 00:50:17,790 Estas la entjero pli granda ol nulo? 966 00:50:17,790 --> 00:50:18,310 Jes? 967 00:50:18,310 --> 00:50:20,100 Bone, do ili plukis pozitiva nombro. 968 00:50:20,100 --> 00:50:22,320 Se ne, tiam ĝi devas havi estis negativaj aŭ nulo. 969 00:50:22,320 --> 00:50:27,530 Do vi plukis negativa nombro aŭ nulo en ĉi tiu kazo. 970 00:50:27,530 --> 00:50:29,235 Jes. 971 00:50:29,235 --> 00:50:30,485 Aŭ nulo. 972 00:50:30,485 --> 00:50:36,320 973 00:50:36,320 --> 00:50:39,300 >> Kaj tiam ni havas ankaŭ Se / Alie, Se kaj Else. 974 00:50:39,300 --> 00:50:45,640 Do tio ebligas al ni plenumi vico de aferojn nur se la unuaj malsukcesos. 975 00:50:45,640 --> 00:50:49,540 Do, en tiu kazo, nun ni estas farante la lasta vi elektu nulon. 976 00:50:49,540 --> 00:50:53,080 Do se oni nek plukis pozitiva nek negativa nombro, tiam ili devas 977 00:50:53,080 --> 00:50:53,640 reprenis nulo. 978 00:50:53,640 --> 00:50:56,720 Do ĝuste iras malsupren la ĉeno kiel ĉi tio. 979 00:50:56,720 --> 00:50:59,960 >> Do estas ekzemplo de kiel oni Se estas malsama - 980 00:50:59,960 --> 00:51:02,590 an Se / Else estas malsama de nur vico de IFS. 981 00:51:02,590 --> 00:51:07,680 Kaj tio estas komuna demando kiu homoj demandas estas, nu, se vi ricevas kiel 982 00:51:07,680 --> 00:51:11,265 95 en CS50, kion volas ĉi programo diris al vi? 983 00:51:11,265 --> 00:51:12,600 >> SPEAKER 5: You got A. 984 00:51:12,600 --> 00:51:13,490 >> JOSEPH: Jes. 985 00:51:13,490 --> 00:51:14,960 You got ĉiu sola unu el tiuj pravas. 986 00:51:14,960 --> 00:51:17,130 You got an A, you got B, vi akiris C kaj D, ĉu ne? 987 00:51:17,130 --> 00:51:19,770 Do ĉiu el tiuj get taksita en ordo. 988 00:51:19,770 --> 00:51:23,570 Do dum 95 estas pli granda ol 90, estas ankaŭ granda ol 80, estas ankaŭ 989 00:51:23,570 --> 00:51:25,790 pli granda ol 70, kaj ĝi estas ankaŭ granda ol 60. 990 00:51:25,790 --> 00:51:27,620 Do vi havas ĉiujn tiujn kvalifikojn. 991 00:51:27,620 --> 00:51:31,630 Kaj mi supozas, ke vi farus nur deziras ke la A. 992 00:51:31,630 --> 00:51:34,060 >> La maniero por fiksi ke estas anstataŭi tiujn kun Else / Se-ejon. 993 00:51:34,060 --> 00:51:37,540 Do en tiu scenejo, vidas ke 95 estas pli granda ol 90, kaj poste ĝi faras 994 00:51:37,540 --> 00:51:38,885 ne taksi la reston el la deklaroj. 995 00:51:38,885 --> 00:51:41,900 996 00:51:41,900 --> 00:51:43,150 Demandojn pri tio? 997 00:51:43,150 --> 00:51:48,580 998 00:51:48,580 --> 00:51:52,470 >> Do tie estas alia kondiĉa ian strukturo kiu ni havas ĉi tie, kiujn ni 999 00:51:52,470 --> 00:51:53,390 voki ŝaltilo komunikaĵo. 1000 00:51:53,390 --> 00:51:57,390 Do tiu ebligas al vi esence kontrolu kio estas la valoro de nombro vin meti 1001 00:51:57,390 --> 00:51:59,000 en la ŝaltilo aserto estas. 1002 00:51:59,000 --> 00:52:03,200 Do en tiu scenaro, ni switching en n, kaj ni diris: Ho, se n estas 1003 00:52:03,200 --> 00:52:04,710 unu, tiam presi tiun deklaron. 1004 00:52:04,710 --> 00:52:07,910 Kaj tiam krevos, kio signifas eliro el la ŝaltilo komunikaĵo. 1005 00:52:07,910 --> 00:52:12,670 >> Se ĝi ne estis unu, do, bone, nur eventuale kontrolu ĉiuj tiuj kazoj. 1006 00:52:12,670 --> 00:52:16,280 Kaj tial ĝi kontrolas, se ĝi estas unu aŭ du aŭ tri, kaj presas laŭe. 1007 00:52:16,280 --> 00:52:19,780 Kaj kion tio defaŭlta ŝlosilvorto suben ĉi tien rimedoj estas se ili ne eniris ajnan 1008 00:52:19,780 --> 00:52:21,690 de tiuj, tiam diru Nevalida. 1009 00:52:21,690 --> 00:52:25,910 Do diru min peti n kaj La uzanto donas al mi kvar. 1010 00:52:25,910 --> 00:52:29,470 Nu, tio kongruas kun neniu el tiuj kazoj, do ĝi havos presi kio estas en la 1011 00:52:29,470 --> 00:52:30,540 defaŭlta sekcio. 1012 00:52:30,540 --> 00:52:31,180 Jes, pridubas? 1013 00:52:31,180 --> 00:52:32,614 >> SPEAKER 5: Ĉu vi uzas Bulea esprimoj anstataŭ 1014 00:52:32,614 --> 00:52:33,570 unu, du, aŭ tri? 1015 00:52:33,570 --> 00:52:36,940 >> JOSEPH: Do la demando estas ĉu vi povas uzi Bulea esprimoj anstataŭ unu, 1016 00:52:36,940 --> 00:52:37,940 du kaj tri? 1017 00:52:37,940 --> 00:52:40,520 Kaj en C, mi kredas vin ne povas fari tion. 1018 00:52:40,520 --> 00:52:44,320 Sed en aliaj lingvoj, kiujn vi eble renkontas ĉe la fino de la 1019 00:52:44,320 --> 00:52:46,460 semestro kiel JavaScript, vi povas. 1020 00:52:46,460 --> 00:52:50,050 Nu, vi devus kalkuli unue tiun valoron, kaj poste uzi ĝin en la 1021 00:52:50,050 --> 00:52:50,650 ŝanĝi komunikaĵo. 1022 00:52:50,650 --> 00:52:50,930 Jes? 1023 00:52:50,930 --> 00:52:54,760 >> ROB: Tiel parto de la profito de ŝaltilo deklaroj estas pensi se vi faris tion 1024 00:52:54,760 --> 00:52:58,680 kiel Se / Alie, tiel same kiel se n egalas egalas unu aŭ kio ajn. 1025 00:52:58,680 --> 00:53:00,300 Else / Se n egalas egalas du, kio ajn. 1026 00:53:00,300 --> 00:53:01,960 Else / Se n egalas egalas tri. 1027 00:53:01,960 --> 00:53:05,930 Do la formo kiun la programo devus kuri estas ĝi estus sinsekve penetras tiu listo 1028 00:53:05,930 --> 00:53:07,500 kaj kontrolu, estas N unu? 1029 00:53:07,500 --> 00:53:08,040 Nope. 1030 00:53:08,040 --> 00:53:09,070 Estas n du? 1031 00:53:09,070 --> 00:53:09,490 Nope. 1032 00:53:09,490 --> 00:53:10,940 Estas n tri? 1033 00:53:10,940 --> 00:53:11,710 Jes. 1034 00:53:11,710 --> 00:53:12,610 Ĉu ĉi tio. 1035 00:53:12,610 --> 00:53:15,270 >> Dum kun ŝaltilo asertoj, ĝi estas efektive povis kompili ĝin esti 1036 00:53:15,270 --> 00:53:16,360 vere rapide. 1037 00:53:16,360 --> 00:53:19,550 Kaj tuj kiam gxi diras ŝaltilo, ĝi diras, ĉiuj dekstren, n estas du mi estas 1038 00:53:19,550 --> 00:53:23,060 tuj tuj salti al kie Mi supozis, por komenci la ekzekuti. 1039 00:53:23,060 --> 00:53:26,080 Mi ne tuj unue kontrolu, estas n unu, estas N du? 1040 00:53:26,080 --> 00:53:28,860 Ĝi povas tuj komenci fari kio ĝi estas supozis fari. 1041 00:53:28,860 --> 00:53:33,830 >> Kaj pro tio, ĝi ne povas preni Bulea kondiĉoj. 1042 00:53:33,830 --> 00:53:36,480 Alie devus fari la sinsekva, kiel, gravas, estas n 1043 00:53:36,480 --> 00:53:37,820 pli granda ol nulo? 1044 00:53:37,820 --> 00:53:41,140 Alie estas n pli granda ol 10 aŭ kio ajn. 1045 00:53:41,140 --> 00:53:44,780 >> JOSEPH: En ĉi tiu kazo, se vi uzas Se / Alie, se la, tiam la ŝaltilo farus 1046 00:53:44,780 --> 00:53:47,792 kuri proksimume tri fojojn rapida ol la Se / Alie, Se. 1047 00:53:47,792 --> 00:53:53,060 1048 00:53:53,060 --> 00:53:56,040 Ni povas organizi la ŝaltilon en tiaj maniero, ke ni ne rompu 1049 00:53:56,040 --> 00:53:57,520 post ĉiu de la kazoj. 1050 00:53:57,520 --> 00:54:00,960 Do, en tiu kazo, mi dispartiganta la nombroj kiuj ni elektos en unu kaj 1051 00:54:00,960 --> 00:54:04,250 du ne estante alta nombroj kaj tri estante alta nombro. 1052 00:54:04,250 --> 00:54:08,290 >> Do, en tiu kazo, se n estas unu aŭ du, ŝi alvenos la kazo kaj tiam estos 1053 00:54:08,290 --> 00:54:10,640 falas tra, ĉar neniu paŭzo. 1054 00:54:10,640 --> 00:54:11,610 Kaj ĝi finos cxi tie. 1055 00:54:11,610 --> 00:54:15,360 Do, se oni prenas unu, ĝi faros la printf kaj tiam rompu por ke neniu el 1056 00:54:15,360 --> 00:54:17,610 tio estas ekzekutitaj. 1057 00:54:17,610 --> 00:54:21,870 Kaj kompreneble, se ili eniros en tri aŭ io alia, tiam saltos 1058 00:54:21,870 --> 00:54:25,320 tiuj kaj ne iri tien, kaj gxi faros anstataŭ la 1059 00:54:25,320 --> 00:54:27,490 responda linio. 1060 00:54:27,490 --> 00:54:29,390 Ĉu ekzistas ia demandojn pri tio? 1061 00:54:29,390 --> 00:54:29,780 Jes? 1062 00:54:29,780 --> 00:54:32,642 >> SPEAKER 4: Ĉu vi ricevas erarmesagxon, se vi havis ripozon post kazo unu sed 1063 00:54:32,642 --> 00:54:34,550 ne havas iun por gxin fari? 1064 00:54:34,550 --> 00:54:37,820 >> JOSEPH: Do la demando estas ĉu vi akiri eraro se vi havas ripozon post 1065 00:54:37,820 --> 00:54:39,730 kazo unu sed tie estas nenio fari? 1066 00:54:39,730 --> 00:54:41,520 Kaj la respondo estas ne. 1067 00:54:41,520 --> 00:54:43,172 Vi ne reale ricevas erarmesagxon. 1068 00:54:43,172 --> 00:54:44,590 Yeah, mm hmm. 1069 00:54:44,590 --> 00:54:54,540 >> Do kiel speco de iom ŝanĝon tie ĉi, Mi tuj metos printf tie. 1070 00:54:54,540 --> 00:54:55,790 Whoops. 1071 00:54:55,790 --> 00:55:00,994 1072 00:55:00,994 --> 00:55:04,880 Do kion devus ĉi presi se Mi metis unu en kiel eniro? 1073 00:55:04,880 --> 00:55:07,530 1074 00:55:07,530 --> 00:55:07,770 Jes. 1075 00:55:07,770 --> 00:55:10,360 Ĝi dirus al vi ke ĝi ne alta numero dufoje, ĉu ne? 1076 00:55:10,360 --> 00:55:13,500 Ĉar tio trafis tiu unua kazo, ĝi ne rompos, kaj falus 1077 00:55:13,500 --> 00:55:15,730 tra la dua kazo. 1078 00:55:15,730 --> 00:55:16,950 Demandojn pri tio? 1079 00:55:16,950 --> 00:55:18,280 >> ROB: Ĉu vi havas alian demandon? 1080 00:55:18,280 --> 00:55:20,840 >> JOSEPH: OK, malvarmigi. 1081 00:55:20,840 --> 00:55:22,400 Ĉiuj pravas. 1082 00:55:22,400 --> 00:55:25,780 Do estas iom alie ni nomas triargumenta operatoro kiu estas esence 1083 00:55:25,780 --> 00:55:29,010 alterna sintakson por fari Se kaj tiam Else. 1084 00:55:29,010 --> 00:55:30,470 Kaj tio permesas fari ĉion sur unu linio. 1085 00:55:30,470 --> 00:55:34,110 Do en tiu aparta programo, Mi petas al la uzanto por n. 1086 00:55:34,110 --> 00:55:37,190 Kaj se n estas pli granda ol 100, mi diras ili plukis alta nombro. 1087 00:55:37,190 --> 00:55:39,560 Alie, mi diras al ili ke ili plukis malalta nombro. 1088 00:55:39,560 --> 00:55:43,030 >> Do ni povas uzi tiun vere longa sintakso, kordo, S, kaj tiam kontrolu, se n estas 1089 00:55:43,030 --> 00:55:45,260 pli granda ol 100 kaj asigni ĝi laŭe. 1090 00:55:45,260 --> 00:55:49,450 Sed ni povas fari ĉi multe pli konciza uzante ĉi triargumenta operatoro sintakso 1091 00:55:49,450 --> 00:55:52,090 kiu engaĝas demando markon kaj dupunkto. 1092 00:55:52,090 --> 00:55:55,070 Do la demando marko estas esence demandi demandon, ĉu ne? 1093 00:55:55,070 --> 00:55:56,625 >> ROB: Eble zomi sur tio. 1094 00:55:56,625 --> 00:55:57,372 >> JOSEPH: Jes. 1095 00:55:57,372 --> 00:56:00,210 Bona punkto. 1096 00:56:00,210 --> 00:56:02,550 Do tiu estas la triargumenta operatoro. 1097 00:56:02,550 --> 00:56:06,100 Mi unue demandi la demandon, estas n pli granda ol 100? 1098 00:56:06,100 --> 00:56:09,770 Se jes, tiam Mi faros la unuan parto antaŭ la dupunkto. 1099 00:56:09,770 --> 00:56:13,360 Se ĝi ne estas, tiam mi faros al la dua parto post la dupunkto. 1100 00:56:13,360 --> 00:56:16,640 Do se n estas pli granda ol 100, tiam ĝi reprenas alta kaj metu 1101 00:56:16,640 --> 00:56:18,360 ke sur ŝnuro s. 1102 00:56:18,360 --> 00:56:22,170 Se n estas malpli ol 100, li reprenas malalta kaj tiam metas ke en kordo s. 1103 00:56:22,170 --> 00:56:30,186 Por ke estos condensar tiu granda chunk malsupren en nur tiu unu linio. 1104 00:56:30,186 --> 00:56:32,010 >> SPEAKER 5: Ĉu tio estas populara? 1105 00:56:32,010 --> 00:56:36,070 >> JOSEPH: Jes, tio estas sufiĉe populara por aferoj kie esence vi volas 1106 00:56:36,070 --> 00:56:38,700 cxu asigno bazita sur ia kondiĉo. 1107 00:56:38,700 --> 00:56:43,110 Kaj en ĉi tiu kazo, ni provis atribui valoron al kordo s. 1108 00:56:43,110 --> 00:56:44,840 Ĝi ne estas tiel - 1109 00:56:44,840 --> 00:56:47,670 Mi supozas ke mi ne vere preferas en aliaj kazoj. 1110 00:56:47,670 --> 00:56:49,390 Sed estas speciale utila por tiu ĉi tasko. 1111 00:56:49,390 --> 00:56:54,490 >> ROB: Tio estas belan komunan skemon kie vi havas iujn variablo kiu 1112 00:56:54,490 --> 00:56:58,200 vi tuj dirus, se iu, turnu ĉi variablon al unu valoro; alie, turnu 1113 00:56:58,200 --> 00:56:59,810 ĉi variablo al alia valoro. 1114 00:56:59,810 --> 00:57:03,360 Kaj tio estas la scenaro kie uzi triargumenta. 1115 00:57:03,360 --> 00:57:05,220 >> JOSEPH: Kaj vi ŝparas multaj linioj, ĉu ne? 1116 00:57:05,220 --> 00:57:08,090 Kaj tio nur faras via kodo disputeble iomete pli legebla. 1117 00:57:08,090 --> 00:57:08,635 Jes, pridubas? 1118 00:57:08,635 --> 00:57:12,384 >> SPEAKER 6: Por triargumenta, vi povus iri, kordo s egaluloj s, demandosigno? 1119 00:57:12,384 --> 00:57:15,280 Kaj tiam vi povus havi, ekzemple, kvin diversaj ebloj. 1120 00:57:15,280 --> 00:57:18,310 Kaj depende de tio, kion la nombro de n estis, ĉu vi elektu unu el tiuj? 1121 00:57:18,310 --> 00:57:22,210 >> JOSEPH: Do la demando estas, estas tie ia sintakso, kie vi povas fari kordo 1122 00:57:22,210 --> 00:57:25,910 s egalas n, kaj do havi pli ol du ebloj post tiu demandosigno? 1123 00:57:25,910 --> 00:57:29,740 Kaj simpla respondo estas ne, ne vere bonan manieron por fari tion krom se 1124 00:57:29,740 --> 00:57:33,850 vi volas nesto multnombraj triargumenta operatoroj ene de ĉiu alia. 1125 00:57:33,850 --> 00:57:38,050 >> Vi povus fari kiel n pli granda ol 100, demandosigno, kaj poste la alian 1126 00:57:38,050 --> 00:57:41,850 triargumenta operatoro, n pli granda ol 50, demandosigno, kaj nesto de tiu maniero. 1127 00:57:41,850 --> 00:57:45,240 Sed en tiu scenaro, via kodo estas akiri ia nelegebla kaj senorda, 1128 00:57:45,240 --> 00:57:47,920 kaj ĝi povus esti pli bone simple iru al an Se / Else deklaron je tiu punkto. 1129 00:57:47,920 --> 00:57:54,530 >> ROB: Kaj ankaŭ, kiel flanka noto, PHP malĝuste enplantas la triargumenta 1130 00:57:54,530 --> 00:57:58,053 operatoro tia ke ingita ternaries eĉ ne funkcios kiel ili devus. 1131 00:57:58,053 --> 00:57:58,840 >> JOSEPH: Jes. 1132 00:57:58,840 --> 00:58:01,170 Do ĝi akiras iomete malklara, speciale kiam vi iros 1133 00:58:01,170 --> 00:58:02,145 al diversaj lingvoj. 1134 00:58:02,145 --> 00:58:04,810 >> ROB: Ĝi estas konfuzante sufiĉas ke lingvoj estas erara pri tio. 1135 00:58:04,810 --> 00:58:08,030 1136 00:58:08,030 --> 00:58:11,510 >> JOSEPH: Do fakte, nur por klarigi, Ĉu ĉiuj scias kion tio 1137 00:58:11,510 --> 00:58:13,900 % S faras ĉi tie? 1138 00:58:13,900 --> 00:58:15,650 Demandojn pri tio? 1139 00:58:15,650 --> 00:58:19,760 Mi supozas ke nur por la ĉambro, la% s esence ebligas al ni meti lokokupilo 1140 00:58:19,760 --> 00:58:20,790 sinsekvojn. 1141 00:58:20,790 --> 00:58:23,920 Kaj poste, je la fino, ni specifas, ke la variablo ni volas meti en tiun 1142 00:58:23,920 --> 00:58:25,500 loko-posedanto estas s. 1143 00:58:25,500 --> 00:58:27,730 Por ke baze prenas s kaj metas ĝin en ĉi tie. 1144 00:58:27,730 --> 00:58:32,130 Kaj tiam ĝi estos presi, vi plukis alta aŭ vi plukis malalta nombro. 1145 00:58:32,130 --> 00:58:33,770 OK. 1146 00:58:33,770 --> 00:58:36,970 >> Do masxojn permesi al vi plenumi tion, en cirkla moviĝoj, right? 1147 00:58:36,970 --> 00:58:40,300 Vi eble renkontis ĉi en Nulo en la formo de Forever loops 1148 00:58:40,300 --> 00:58:45,650 aŭ Ripeti Ĝis aŭ Ripeti apartan nombro da fojoj. 1149 00:58:45,650 --> 00:58:47,540 Do kial estas tiu bona por ni? 1150 00:58:47,540 --> 00:58:51,500 Nu, en C, ni diras, ke ni havas ĉi kanto implementado en Scratch ke 1151 00:58:51,500 --> 00:58:53,450 kantas, ĉi tiu estas la kanto ke neniam finas. 1152 00:58:53,450 --> 00:58:55,710 Ĝi simple iras pluen kaj pluen kaj sur cxiam kaj eterne. 1153 00:58:55,710 --> 00:58:59,395 Nu, vi ne povas vere fari programon kiu havas senfinan nombron de printf 1154 00:58:59,395 --> 00:59:00,850 asertoj en ĝin, ĉu ne? 1155 00:59:00,850 --> 00:59:04,900 >> Do en tiu aparta scenario, unu vojo ke vi povis fari tiun laboron kaj 1156 00:59:04,900 --> 00:59:09,330 por fari ĝin presi ĉiam estas anstataŭe uzu Dum buklo. 1157 00:59:09,330 --> 00:59:13,640 Do oni Dum buklo faros kio estas en la korpo de la du krampoj ke 1158 00:59:13,640 --> 00:59:17,250 apartenas al ĝi bazitaj sur kio la kondiĉo estas. 1159 00:59:17,250 --> 00:59:21,170 Do, en tiu konkreta ekzemplo antaŭe, se Ni volas presi ĉi por ĉiam, kion 1160 00:59:21,170 --> 00:59:23,590 eble ni faru? 1161 00:59:23,590 --> 00:59:25,190 Nu, certe, ĉu ne? 1162 00:59:25,190 --> 00:59:32,290 >> Do ĉi tiu speco de kombinas la ideon de iu bulea esprimo 1163 00:59:32,290 --> 00:59:33,610 kune kun buklo. 1164 00:59:33,610 --> 00:59:35,780 Kaj ni lernis pri Bulea esprimoj antaŭe. 1165 00:59:35,780 --> 00:59:39,650 Do kiam ajn la kondiĉo ene de ke Dum restas vera, tiu buklo 1166 00:59:39,650 --> 00:59:41,480 Mi faros plu kaj plu kaj plu. 1167 00:59:41,480 --> 00:59:44,640 Kaj en ĉi tiu kazo, se ni nur provizi ĝin kun vera, tio kaŭzas senfinan 1168 00:59:44,640 --> 00:59:49,310 buklo kiun presas la kanto en kaj sur kaj pri kiel ni deziris, antaŭe sen 1169 00:59:49,310 --> 00:59:52,410 havi programon kiu havas senfinan numeron de printf deklaroj, kiuj estas 1170 00:59:52,410 --> 00:59:55,220 Ne eblas. 1171 00:59:55,220 --> 00:59:57,810 >> Do pli compellingly, though, vi povas uzi tiun kun 1172 00:59:57,810 --> 00:59:59,710 ŝanĝiĝema kaj kondiĉo. 1173 00:59:59,710 --> 01:00:04,420 Do ni diras, ke ni deziras ripeti la frazo, tute Loopy, 10-foje. 1174 01:00:04,420 --> 01:00:08,380 Do, kion vi povas fari kun Dum buklo estas vi povas unue pravalorizi nombrilo 1175 01:00:08,380 --> 01:00:10,860 variablo ekster la Dum buklo al 10. 1176 01:00:10,860 --> 01:00:14,360 Kaj tiam esence, ĉiufoje vi iru tra la Dum buklo, vi presi 1177 01:00:14,360 --> 01:00:19,090 la deklaron kaj tiam vi malpliigos la nombrilo variablo ĝis fine, 1178 01:00:19,090 --> 01:00:23,020 en iu punkto, iam ni subtrahi Mi suficxe tempoj, 1 el mi sufiĉas fojoj - 1179 01:00:23,020 --> 01:00:27,290 kaj simple klarigi, mi minus minus signifas ke mi egalas mi minus 1. 1180 01:00:27,290 --> 01:00:31,280 >> Tio estos esence alporti mi malsupren al la punkto kie fojo mi trafis nulo, tiu 1181 01:00:31,280 --> 01:00:35,260 kondiĉo ne plu estas vera kaj do ĝi eliras el la iteracio. 1182 01:00:35,260 --> 01:00:37,045 Do tute Loopy nur presas 10 fojojn. 1183 01:00:37,045 --> 01:00:39,550 1184 01:00:39,550 --> 01:00:41,080 Demandojn pri Dum buklo? 1185 01:00:41,080 --> 01:00:44,580 1186 01:00:44,580 --> 01:00:46,790 OK. 1187 01:00:46,790 --> 01:00:50,550 >> Do tie estas maniero ni povas fari kion ni ĵus faris en pli konciza formo kun 1188 01:00:50,550 --> 01:00:51,715 kion ni nomas Por buklo. 1189 01:00:51,715 --> 01:00:55,750 Do oni Por buklo konsistas el inicialización, kondiĉo, kaj 1190 01:00:55,750 --> 01:00:58,950 ĝisdatigo, ĝuste kiel ni havis antaŭe en ĉi Dum buklo. 1191 01:00:58,950 --> 01:00:59,890 Do ni rigardu. 1192 01:00:59,890 --> 01:01:02,900 En ĉi Dum buklo, ni havis inicialización, tiam ni havis 1193 01:01:02,900 --> 01:01:04,260 kondiĉi, ke ni kontrolis. 1194 01:01:04,260 --> 01:01:06,450 Kaj tiam ni havis ĝisdatigo step ĉe la supro. 1195 01:01:06,450 --> 01:01:10,060 >> Kun Por buklo, tiu esence prenas tiuj tri aĵoj kaj condensa ĝi 1196 01:01:10,060 --> 01:01:11,370 malsupren, en unu linio. 1197 01:01:11,370 --> 01:01:15,130 Do la unua afero, kiun gxi faras en la Por buklo estas la inicialización. 1198 01:01:15,130 --> 01:01:19,090 Kaj tiam vi faros punktokomo, kaj tiam vi faru la kondiĉo, kiu estas mi 1199 01:01:19,090 --> 01:01:22,200 pli granda ol nulo iras tien, kaj tiam la ĝisdatigo paŝo. 1200 01:01:22,200 --> 01:01:26,470 Do tiu gets agis en la tre fino de la iteracio korpo. 1201 01:01:26,470 --> 01:01:28,790 Do tiuj du programoj estas esence ekvivalento. 1202 01:01:28,790 --> 01:01:31,960 1203 01:01:31,960 --> 01:01:33,870 >> Demandojn? 1204 01:01:33,870 --> 01:01:37,000 Do kio estas diferenco inter tiuj du? 1205 01:01:37,000 --> 01:01:38,000 Ĉu iu povas noti ĝin? 1206 01:01:38,000 --> 01:01:40,480 Ĝi povus esti iom subtila. 1207 01:01:40,480 --> 01:01:41,930 Estas nur tre malgrandan diferencon. 1208 01:01:41,930 --> 01:01:42,330 Jes? 1209 01:01:42,330 --> 01:01:49,008 >> SPEAKER 5: Vi ne povos uzi la I variablo ekster la buklo 1210 01:01:49,008 --> 01:01:49,962 [Inaudibles]? 1211 01:01:49,962 --> 01:01:50,900 >> JOSEPH: Ekzakte. 1212 01:01:50,900 --> 01:01:53,550 Do tiu estas io ni atingos poste vokis variablo medion. 1213 01:01:53,550 --> 01:01:56,610 Sed fundamente, tiu int Mi vivoj eksteren de ĉi Dum buklo. 1214 01:01:56,610 --> 01:01:59,800 Do iam tio Dum buklo estas farita ekzekuti, mi povos uzi Mi poste 1215 01:01:59,800 --> 01:02:00,880 sur la programo. 1216 01:02:00,880 --> 01:02:05,430 >> Dum kun ĉi Por buklo, tiu int mi Estas scoped ene de ĉi Por buklo. 1217 01:02:05,430 --> 01:02:10,240 Kaj ĉar ĝi estas ene de cxi tiu kampo de la For loop, kiu komenciĝas 1218 01:02:10,240 --> 01:02:13,200 ĉe la krampoj kaj randoj kun la krispa streĉa tie. 1219 01:02:13,200 --> 01:02:16,120 Io ajn tio estas deklarita interne de tie ne povas esti uzata ekstere. 1220 01:02:16,120 --> 01:02:20,420 Do, se mi provas uzi Mi ekstere, ĝi malebligos diru al mi, nedeklarita simbolo. 1221 01:02:20,420 --> 01:02:22,420 Kaj esence, mi ne volas povos uzi ĝin. 1222 01:02:22,420 --> 01:02:28,460 >> ROB: Kaj bone, la 10 jarojn, en laŭvorte ĉiuj kazoj, krispa krampoj estas 1223 01:02:28,460 --> 01:02:31,140 kion vi uzis por determini la medio de variablo. 1224 01:02:31,140 --> 01:02:37,240 Do en tie, int mi egalas 10 estas deklarita ene de ĉi 1225 01:02:37,240 --> 01:02:38,520 aro de krispa krampoj. 1226 01:02:38,520 --> 01:02:42,530 Kaj tiel do tiel longe kiel oni provas uzi I antaŭ ĉi tiu krispa streĉa, tio estas bone. 1227 01:02:42,530 --> 01:02:47,090 1228 01:02:47,090 --> 01:02:51,460 Vi eble vidos, kiam vi tajpas faros, vi vidi haltostreko, haltostreko, std, egalaj, C99. 1229 01:02:51,460 --> 01:02:57,100 >> Do tio estas posta versio de C kiu GCC estas implementado kiu ankaŭ donas 1230 01:02:57,100 --> 01:02:58,740 tiu fulmoklavo. 1231 01:02:58,740 --> 01:03:03,505 Do tiu uzata por ne permesi en C. Kaj vi povas vidi kial, ĉar ĉi int 1232 01:03:03,505 --> 01:03:07,600 Mi estas ekster tiu krispa streĉa sed ĝi estas ankoraŭ konsiderata en la 1233 01:03:07,600 --> 01:03:09,750 atingo de tiuj buklaj krampoj. 1234 01:03:09,750 --> 01:03:14,120 Sed tio estas tre oportuna afero, kaj do ĝi estas bona kromprogramo. 1235 01:03:14,120 --> 01:03:15,370 >> JOSEPH: Any questions? 1236 01:03:15,370 --> 01:03:17,550 1237 01:03:17,550 --> 01:03:19,260 OK. 1238 01:03:19,260 --> 01:03:22,820 Do kio estas pli utila estas ke kelkfoje vi volas ian dinamismon en 1239 01:03:22,820 --> 01:03:23,410 via buklo, ĉu ne? 1240 01:03:23,410 --> 01:03:26,350 Vi ne volas simple nepre printi tute Loopy tuta tempo, vi 1241 01:03:26,350 --> 01:03:28,650 deziras kalkuli suben el 10 aŭ io. 1242 01:03:28,650 --> 01:03:32,010 Kaj tiel vi povas uzi la vendotablo variablo ene de tiu buklo tiel. 1243 01:03:32,010 --> 01:03:35,530 Kaj en ĉi tiu kazo, ĉi programo apenaŭ Havas malsupren de 10 la tutan vojon malsupren. 1244 01:03:35,530 --> 01:03:39,260 Kaj kion ĝi ne presi? 1245 01:03:39,260 --> 01:03:42,790 Ĝi ne presi nulo, rajton, ĉar kiam - 1246 01:03:42,790 --> 01:03:45,460 Jes, ĝi ankaŭ ne presi 11. 1247 01:03:45,460 --> 01:03:49,200 >> Do ĝi ne presi nulo, ĉar kiam Mi estas nulo, memoru, taksas 1248 01:03:49,200 --> 01:03:52,170 kondiĉe antaux gxi iras sur ekzekuti la buklo korpo. 1249 01:03:52,170 --> 01:03:56,820 Kaj kiam mi estas nulo, ĉi tiu estas falsa, do ĝi ne presi rakonti malsupren 1250 01:03:56,820 --> 01:04:00,200 nulo, gxi simple presas el kalkula malsupren 10 la tutan vojon malsupren al 1. 1251 01:04:00,200 --> 01:04:03,420 Se ni efektive volis ĝin presi nulo, tiam ni devus meti egalsigno 1252 01:04:03,420 --> 01:04:04,750 post tiu granda ol signo. 1253 01:04:04,750 --> 01:04:09,400 1254 01:04:09,400 --> 01:04:10,130 OK. 1255 01:04:10,130 --> 01:04:16,410 >> Do unu maniero fari enigo validigon, kiuj Estas kiam vi demandos la uzanton fari 1256 01:04:16,410 --> 01:04:18,620 io, vi volas certigi ke sekvu viajn instrukciojn, estas uzi 1257 01:04:18,620 --> 01:04:19,400 la Dum buklo, right? 1258 01:04:19,400 --> 01:04:22,990 Do en tiu aparta kazo, mi petas por pozitiva nombro kaj tiam mi estas 1259 01:04:22,990 --> 01:04:23,810 atendante enigo. 1260 01:04:23,810 --> 01:04:28,210 >> Kaj poste mi kontrolis Dum la enigo estas malpli ol nulo, gardu petante ilin. 1261 01:04:28,210 --> 01:04:32,100 Do tiel longe kiel ili donas al mi nombro kiuj estas ne pozitiva, Petu, 1262 01:04:32,100 --> 01:04:33,600 Petu, gardu petas. 1263 01:04:33,600 --> 01:04:35,860 Sed kio estas speco de stranga pri tio? 1264 01:04:35,860 --> 01:04:38,570 Aŭ kio ne ŝajnas optimuma pri ĉi tiu strukturo ĝuste ĉi tie? 1265 01:04:38,570 --> 01:04:44,282 1266 01:04:44,282 --> 01:04:44,758 Iu? 1267 01:04:44,758 --> 01:04:45,234 Jes? 1268 01:04:45,234 --> 01:04:47,614 >> SPEAKER 6: Vi ripetante la instrukcio dufoje. 1269 01:04:47,614 --> 01:04:48,100 >> JOSEPH: Ĝuste. 1270 01:04:48,100 --> 01:04:50,090 Do ni havas du printf deklaroj ĉi tie, ĉu ne? 1271 01:04:50,090 --> 01:04:53,440 Do tie estas maniero ni povus atingi ĉi ĝuste malsupren al unu kiu farus nia 1272 01:04:53,440 --> 01:04:57,170 kodo facile legi kaj iom pli pura. 1273 01:04:57,170 --> 01:05:00,180 Kaj tiam ni ne devus esti Get in duoble bone. 1274 01:05:00,180 --> 01:05:03,740 Kaj unu vojo vi povas fari ĉi tion estas uzante Do-Dum-cirklon. 1275 01:05:03,740 --> 01:05:07,670 >> Kaj Do-Dum buklo estas esence malsaman formon de Dum buklo kie 1276 01:05:07,670 --> 01:05:11,460 kio estas ene de la krispa krampoj gets ekzekutis almenaŭ unufoje. 1277 01:05:11,460 --> 01:05:14,840 Do ĉi tie, mi deklaras, int enigo, ekstere unue. 1278 01:05:14,840 --> 01:05:18,100 Kaj tiam mi simple diru, faru tion instrukcion dum eniro 1279 01:05:18,100 --> 01:05:19,140 estas malpli ol nulo. 1280 01:05:19,140 --> 01:05:20,530 Do ĝi batas la Do unue. 1281 01:05:20,530 --> 01:05:24,190 Ĝi ĉiam ekzekuti ĉi almenaŭ fojon, do ĝi estos ĉiam petas la uzanto 1282 01:05:24,190 --> 01:05:25,960 por enigo almenaŭ unufoje. 1283 01:05:25,960 --> 01:05:29,390 Kaj tiam ĝi taksas ke enigo, kaj gxi iras en cirklo. 1284 01:05:29,390 --> 01:05:30,135 Jes, pridubas? 1285 01:05:30,135 --> 01:05:32,602 >> SPEAKER 6: Ĉu ekzistas maniero fari ĝin [Inaudibles] tipoj, kiel se oni diras, 1286 01:05:32,602 --> 01:05:34,268 GetString, kaj iu [inaudibles] 1287 01:05:34,268 --> 01:05:35,220 Estas tie manieron [inaudibles] 1288 01:05:35,220 --> 01:05:40,060 >> JOSEPH: Do la demando estas, estas tie maniero fari enigo validigon se la uzanto 1289 01:05:40,060 --> 01:05:41,850 ne metas en la dekstra tipo de variablo? 1290 01:05:41,850 --> 01:05:44,460 Do, se ni peti int kaj ili donu al ni kordo anstataŭe. 1291 01:05:44,460 --> 01:05:49,110 Kaj en la funkcioj ke ni apliki por vi, GetInt, GetString en ĉiuj 1292 01:05:49,110 --> 01:05:52,680 tiuj funkcioj, ili efektive jam faru, ke ia baza tipo enigo 1293 01:05:52,680 --> 01:05:54,120 validigo sub la kapuĉo. 1294 01:05:54,120 --> 01:05:57,390 Do, se vi uzas la funkciojn kiujn ni Mi donis al vi, vi ne devas vere. 1295 01:05:57,390 --> 01:06:01,380 >> Sed se vi volas rigardi pli pri kiel vi povas efektive fari tion, vi povas rigardi 1296 01:06:01,380 --> 01:06:03,360 sub la kapuĉo en la dosiero I/O-- 1297 01:06:03,360 --> 01:06:07,990 Ne dosieron, la norma I / O funkcioj kiel legi el norma enigo kaj 1298 01:06:07,990 --> 01:06:08,580 norma eligo. 1299 01:06:08,580 --> 01:06:10,630 Kaj vi povas atingi pli bonan senson de kiel vi povus fari tion. 1300 01:06:10,630 --> 01:06:13,670 >> ROB: Unu afero, tamen, estas specife kun la ekzemplon vi 1301 01:06:13,670 --> 01:06:17,070 diris, vi atendas ŝnureto kaj mi eniru an int. 1302 01:06:17,070 --> 01:06:20,110 Kiel vi diros al la diferenco inter intenca voli la 1303 01:06:20,110 --> 01:06:23,130 kordo 123 kontre voli la int 123? 1304 01:06:23,130 --> 01:06:29,230 Do kordoj, ĝi estas bela multe mankas validigon, estas nur kion ili 1305 01:06:29,230 --> 01:06:31,600 eniris vi interpretos kiel linio. 1306 01:06:31,600 --> 01:06:35,790 >> Int estas pli facila, ĉar negrave la enigo vi prenos de la uzanto, vi estas 1307 01:06:35,790 --> 01:06:37,470 ĉiam portante ĉenon. 1308 01:06:37,470 --> 01:06:40,650 Kaj tial ke kordo vi povas tiam kontrolu, estas ĉiuj el ĉi tiuj 1309 01:06:40,650 --> 01:06:44,218 reale nombraj ciferoj? 1310 01:06:44,218 --> 01:06:45,170 >> JOSEPH: okej. 1311 01:06:45,170 --> 01:06:46,420 Demandojn pri Do-Dum buklo? 1312 01:06:46,420 --> 01:06:49,170 >> ROB: Ho, kaj tiu estas ankaŭ - 1313 01:06:49,170 --> 01:06:55,130 reironta al atingo, iom komuna eraron provas uzi iun lokan 1314 01:06:55,130 --> 01:06:59,540 variablo de interne ĉi Do-Dum buklo ene de ĉi kondiĉon. 1315 01:06:59,540 --> 01:07:02,850 Kaj efektive, se ni simple malfaris de tion kaj diris, int enigo egalas 1316 01:07:02,850 --> 01:07:06,990 GetInt, tiam la tradukilo krias al ni, ĉar enigo ne ekzistas 1317 01:07:06,990 --> 01:07:08,900 eksteren de la medio de tiuj buklaj krampoj. 1318 01:07:08,900 --> 01:07:10,792 >> JOSEPH: Kaj tio estas kial ni bezonas tiun formado tie. 1319 01:07:10,792 --> 01:07:13,620 1320 01:07:13,620 --> 01:07:14,630 OK. 1321 01:07:14,630 --> 01:07:17,530 Do vi povas same rompi el buklo frua, se vi volas. 1322 01:07:17,530 --> 01:07:21,240 Do ĉi tiu estas malsama maniero de efektivigo, kion ni ĵus implementado. 1323 01:07:21,240 --> 01:07:24,340 Kaj anstataŭ uzi la kondiĉo ene de la krampoj, ni uzas la 1324 01:07:24,340 --> 01:07:26,920 Se aserto ene de la korpo de la Do-Dum-cirklon. 1325 01:07:26,920 --> 01:07:30,000 >> Kaj esence, kiam la enigaĵo finfine pli granda ol nulo, ni volas 1326 01:07:30,000 --> 01:07:31,000 rompi la buklo. 1327 01:07:31,000 --> 01:07:33,420 Kaj tiel ni iros ĉiuj la vojo suben ĉi tien. 1328 01:07:33,420 --> 01:07:37,920 Kaj vi povas vidi, ke tiu volis Probable, oni preferas en tiu 1329 01:07:37,920 --> 01:07:39,870 scenaro, ĉar ĝi estas iom iom pli pura kaj iom 1330 01:07:39,870 --> 01:07:41,380 mordis pli facile legi. 1331 01:07:41,380 --> 01:07:45,210 Dum tio, vi ian havi ekstran linioj en ĝi. 1332 01:07:45,210 --> 01:07:47,890 Estas nur iom pli malbelaj, Mi supozas, iusence. 1333 01:07:47,890 --> 01:07:48,530 Jes, pridubas? 1334 01:07:48,530 --> 01:07:52,178 >> SPEAKER 4: rompos nur akiri vin el unu aro de krampoj? 1335 01:07:52,178 --> 01:07:53,080 >> JOSEPH: Ĝuste. 1336 01:07:53,080 --> 01:07:58,100 Do la demando estas rompos nur eliru el unu buklo? 1337 01:07:58,100 --> 01:07:59,280 Kaj la respondo estas jes. 1338 01:07:59,280 --> 01:08:04,290 Do se vi nestitaj Por masxojn, por Ekzemple, se mi havas Por int mi egalas 0 1339 01:08:04,290 --> 01:08:09,040 ĝis 10 kaj tiam Por int J egalas 0 ĝis 10, se mi rompi el la interna 1340 01:08:09,040 --> 01:08:12,310 buklo, mi ankoraŭ iri al la ekstera iteracio. 1341 01:08:12,310 --> 01:08:15,760 Do ĝi malebligos ke plenumante la operaciojn sur la ekstera. 1342 01:08:15,760 --> 01:08:17,640 Demandojn pri tio? 1343 01:08:17,640 --> 01:08:18,000 Jes? 1344 01:08:18,000 --> 01:08:21,760 >> SPEAKER 5: Sed rompi nur funkciojn por krispa krampoj, ne por aliaj 1345 01:08:21,760 --> 01:08:22,230 deklarojn? 1346 01:08:22,230 --> 01:08:22,700 [Inaudibles] 1347 01:08:22,700 --> 01:08:27,620 >> JOSEPH: Do la demando estas rompos nur funkcio por masxojn kontraste al 1348 01:08:27,620 --> 01:08:29,014 aliaj deklaroj kiel Se? 1349 01:08:29,014 --> 01:08:32,950 Kaj jes, tio estas la kazo, ĉar vi rompi el banto, dekstra, 1350 01:08:32,950 --> 01:08:33,630 en senso. 1351 01:08:33,630 --> 01:08:37,215 >> ROB: En la vasta plimulto de kazoj, estas tio estas la speco de Se io, 1352 01:08:37,215 --> 01:08:37,660 tiam rompu. 1353 01:08:37,660 --> 01:08:41,580 Do vi ne devos rompi apliki al la Se tio estas fluigi ĉirkaŭ ĝi. 1354 01:08:41,580 --> 01:08:45,250 Kaj ankaŭ, ĉi tio ne estas multe de banto, sed memoru ke ŝaltiloj estas ankaŭ 1355 01:08:45,250 --> 01:08:46,340 ekfloris per paŭzoj. 1356 01:08:46,340 --> 01:08:48,390 Ni vidis paŭzoj uzita kun ŝaltiloj antaŭe. 1357 01:08:48,390 --> 01:08:52,189 >> JOSEPH: Kaj vi povas ankaux uzi ilin en Dum maŝojn kaj Por maŝojn. 1358 01:08:52,189 --> 01:08:54,560 Demandojn? 1359 01:08:54,560 --> 01:08:55,830 OK. 1360 01:08:55,830 --> 01:08:57,779 Do sekvanta supren estas funkcioj. 1361 01:08:57,779 --> 01:09:01,500 Do eble vi jam uzis unu el tiuj BYOB blokoj en via Scratch projekto. 1362 01:09:01,500 --> 01:09:04,569 Kaj ĉi esence permesas vin difini aron de 1363 01:09:04,569 --> 01:09:05,680 instrukciojn por esti sekvata. 1364 01:09:05,680 --> 01:09:09,569 >> Kaj kion mi celas per tio estas pensu reen al matematiko, dekstra, algebro. 1365 01:09:09,569 --> 01:09:13,370 Vi havas, kion ni nomas funkcio de x, iu variablo, kaj diru ĉi 1366 01:09:13,370 --> 01:09:16,080 funkcio estas f de x egalas x plus 5. 1367 01:09:16,080 --> 01:09:20,410 Do vi povas pensi pri f de x kiel tiu nigra skatolo kiu prenas 15 en kaj tiam 1368 01:09:20,410 --> 01:09:22,590 Produktas 20. 1369 01:09:22,590 --> 01:09:26,630 >> Do pli ĝenerale, funkcio estas iu kiu prenas iujn enigoj kaj 1370 01:09:26,630 --> 01:09:27,880 tiam produktas kelkajn elirojn. 1371 01:09:27,880 --> 01:09:31,920 1372 01:09:31,920 --> 01:09:32,960 Kaj kial estas funkcioj bona? 1373 01:09:32,960 --> 01:09:35,189 Ili estas bona pro kelkaj kialoj. 1374 01:09:35,189 --> 01:09:40,470 Do tio iu volas preni ponardopiko je kio organizo signifas? 1375 01:09:40,470 --> 01:09:42,630 En terminoj de kial funkcioj estas utila? 1376 01:09:42,630 --> 01:09:43,090 Jes? 1377 01:09:43,090 --> 01:09:44,735 >> SPEAKER 4: ĝi faras vian kodon pli legebla. 1378 01:09:44,735 --> 01:09:45,399 >> JOSEPH: Ĝuste. 1379 01:09:45,399 --> 01:09:47,670 Do unu el la aferoj estas tio faras vian kodon pli legebla, ĉu ne? 1380 01:09:47,670 --> 01:09:53,710 Anstataŭ havi kiel int x egalas x fojoj x fojoj x, mi povas havi kubo de x, 1381 01:09:53,710 --> 01:09:57,190 kio estas pli legebla kaj pli komprenebla por leganto. 1382 01:09:57,190 --> 01:10:01,150 >> Organizo estas ankaŭ en terminoj de dividi vian kodon en regeblaj 1383 01:10:01,150 --> 01:10:05,610 porciojn, tiel ke anstataŭ klopodi apliki ĉi ĉiujn en unu longa sekcio 1384 01:10:05,610 --> 01:10:09,070 en ĉefa, vi povos ia fendi ĝin en kiel, OK, ni skribos funkcio 1385 01:10:09,070 --> 01:10:11,910 al Cube ion, ni skribi funkcii akordi ion. 1386 01:10:11,910 --> 01:10:15,950 Tiel vi povas fendi ĝin en tre etajn, iom partoj kiujn vi povas pritrakti 1387 01:10:15,950 --> 01:10:18,944 kontraste al klopodi pritrakti granda problemo cxiujn samtempe. 1388 01:10:18,944 --> 01:10:21,806 >> ROB: Aŭ eĉ eta, iom partoj kiuj vi kaj partnero povas pritrakti. 1389 01:10:21,806 --> 01:10:22,283 >> JOSEPH: Jes. 1390 01:10:22,283 --> 01:10:23,855 >> ROB: Do anstataŭ ambaŭ vi provas enplanti unu 1391 01:10:23,855 --> 01:10:27,170 funkcii samtempe. 1392 01:10:27,170 --> 01:10:28,800 >> JOSEPH: simpligo. 1393 01:10:28,800 --> 01:10:30,050 Iu volas preni diveno? 1394 01:10:30,050 --> 01:10:33,080 1395 01:10:33,080 --> 01:10:33,410 Jes? 1396 01:10:33,410 --> 01:10:34,675 >> SPEAKER 5: Pli ripetadon. 1397 01:10:34,675 --> 01:10:35,260 >> JOSEPH: Ĝuste. 1398 01:10:35,260 --> 01:10:39,210 Do unu afero, kiun vi povas fari kun plisimpligo estas ke ĝi estas speco de sur 1399 01:10:39,210 --> 01:10:42,520 la samaj linioj kiel re-uzebleco estas ke fojon mi skribos kubon funkcio, mi povas 1400 01:10:42,520 --> 01:10:45,410 nur uzos ke super kaj super kaj super denove en mia programo anstataux tajpadon 1401 01:10:45,410 --> 01:10:49,610 x fojoj x fojoj x superfluaj denove kaj denove. 1402 01:10:49,610 --> 01:10:52,980 Kaj simpligo tie ankaŭ nur signifas ke ĝi faras vian kodo ian 1403 01:10:52,980 --> 01:10:55,900 facile elpurigi unufoje vi fendi ĉi supren en funkcioj. 1404 01:10:55,900 --> 01:10:58,250 Ĉar tiam vi povas localize kie viaj problemoj ia estas. 1405 01:10:58,250 --> 01:11:00,910 1406 01:11:00,910 --> 01:11:02,160 Demandojn? 1407 01:11:02,160 --> 01:11:04,200 1408 01:11:04,200 --> 01:11:06,540 >> Do alia ideo estas abstraktaĵo, ĉu ne? 1409 01:11:06,540 --> 01:11:07,390 Tiu nigra skatolo. 1410 01:11:07,390 --> 01:11:11,360 Kiel vi scias kion GetInt faras ricevi enigo de la uzanto? 1411 01:11:11,360 --> 01:11:12,510 Ni ne vere parolis al vi, ĉu ne? 1412 01:11:12,510 --> 01:11:15,670 Ĉiuj ni rakontis al vi GetInt faras precize kion diras gxin faras. 1413 01:11:15,670 --> 01:11:18,440 Do eĉ se ni ne diras al vi kiom ĝi funkcias, vi ankoraŭ scias. 1414 01:11:18,440 --> 01:11:21,670 >> Do en tiu aparta kazo, tio estas kvarobla funkcio kiu faras 1415 01:11:21,670 --> 01:11:24,520 malsamajn aferojn por enigo produkti eligo. 1416 01:11:24,520 --> 01:11:28,050 Kaj vi povas kvarobligas nombro per multiplikante ĝi per kvar. 1417 01:11:28,050 --> 01:11:30,790 Aŭ vi povas kion ni nomas iom ŝanĝi ĝin por du. 1418 01:11:30,790 --> 01:11:32,960 Kaj ni vidos kovri ĉi iom poste. 1419 01:11:32,960 --> 01:11:36,570 Kaj ne necesas scii kiel tiu funkcio efektive funkcias tiel longe kiel 1420 01:11:36,570 --> 01:11:37,640 laboras kiel komencita. 1421 01:11:37,640 --> 01:11:40,740 >> Do sub la kapuĉo, mi povus esti kiel, revenu enigo fojoj 1422 01:11:40,740 --> 01:11:41,690 ok dividite per du. 1423 01:11:41,690 --> 01:11:42,510 Kaj vi ne scias, ĉu ne? 1424 01:11:42,510 --> 01:11:44,970 Vi bezonas scii estas ĝi faras kion ĝi diras. 1425 01:11:44,970 --> 01:11:48,070 Do jen la utilan aĵon pri abstraktaĵo. 1426 01:11:48,070 --> 01:11:52,910 >> Kaj alia afero estas speco de tiu ideo de localizing vian kodon por unu 1427 01:11:52,910 --> 01:11:54,280 aparta sekcio. 1428 01:11:54,280 --> 01:11:57,450 Do se vi ja havas problemon, vi ne devos iri tra via kodo klopodi 1429 01:11:57,450 --> 01:11:58,730 ripari kie la problemo estis. 1430 01:11:58,730 --> 01:12:00,990 Do, en tiu kazo, mi implementado kubo erara. 1431 01:12:00,990 --> 01:12:02,820 Mi pensis kubon multigxis per tri. 1432 01:12:02,820 --> 01:12:05,760 >> Do, en tiu kazo, tio estas unu programo ke ĝuste tio multiplikante per tri 1433 01:12:05,760 --> 01:12:06,750 ĉie. 1434 01:12:06,750 --> 01:12:10,910 Kaj tie estas alia programo kiu havas faktorita kubon elaperas funkcio. 1435 01:12:10,910 --> 01:12:14,040 Kaj tial nun, se mi volas ripari mian eraron ĉi tie, mi devas korekti ĉiun solan linion 1436 01:12:14,040 --> 01:12:15,620 de kodo en tiu programo. 1437 01:12:15,620 --> 01:12:19,190 Dum aliflanke, se mi uzas la funkcio, mi nur bezonas ŝanĝi 1438 01:12:19,190 --> 01:12:20,650 kio estas malĝusta en unu loko. 1439 01:12:20,650 --> 01:12:25,330 1440 01:12:25,330 --> 01:12:28,730 >> Do, en komputiko, ni voki enigoj kaj eligoj. 1441 01:12:28,730 --> 01:12:31,640 Enigoj estas nomataj parametroj aŭ argumentoj, kaj eliroj nomiĝas 1442 01:12:31,640 --> 01:12:32,950 revenu valoroj. 1443 01:12:32,950 --> 01:12:39,000 Kaj ni vidos kiel ĉi helpas nin speco de difini funkcio en sekundo. 1444 01:12:39,000 --> 01:12:41,430 Do tiu estas funkcio difino por cubing. 1445 01:12:41,430 --> 01:12:45,110 Do necesas enigo, kaj poste li revenas al tiu numero fojoj 1446 01:12:45,110 --> 01:12:47,020 sin trifoje. 1447 01:12:47,020 --> 01:12:48,020 Do ni rompi ĉi malsupren. 1448 01:12:48,020 --> 01:12:53,090 >> Do ni havas funkcion kaplinio, kiuj esence konsistas el tri aferoj. 1449 01:12:53,090 --> 01:12:56,050 Do ni havas la parametrojn, kiujn estas, kiel mi diris antaŭe, la 1450 01:12:56,050 --> 01:12:57,680 enigas en tiun funkcion. 1451 01:12:57,680 --> 01:12:59,300 Kaj tiam ni donos al la funkcio nomon. 1452 01:12:59,300 --> 01:13:00,740 En ĉi tiu kazo, ĝi nomiĝas kubo. 1453 01:13:00,740 --> 01:13:03,860 Kaj tiam ni difini, kion la tipo de la reveno valoro estas. 1454 01:13:03,860 --> 01:13:06,760 >> Do, en tiu kazo, mia kubon funkcio preno en entjera kaj ĝi ankaŭ 1455 01:13:06,760 --> 01:13:07,890 redonas entjeron. 1456 01:13:07,890 --> 01:13:11,510 Do, se mi iam en du, du estas entjero, li revenas ok al mi, kiu 1457 01:13:11,510 --> 01:13:13,250 estas entjero. 1458 01:13:13,250 --> 01:13:15,420 Do revenu tipo nomo parametroj. 1459 01:13:15,420 --> 01:13:16,670 Demandojn pri tio? 1460 01:13:16,670 --> 01:13:19,440 1461 01:13:19,440 --> 01:13:24,230 >> Kaj tiam la reveno valoro estas reale specifita fine dirante reveno 1462 01:13:24,230 --> 01:13:27,540 kaj poste reveni ajn Enhavas la reveno valoro. 1463 01:13:27,540 --> 01:13:30,940 Do, en tiu kazo, se ni metas ĉion kune, funkcio prenas en 1464 01:13:30,940 --> 01:13:35,100 parametroj, ĝi nomiĝas io, kaj li revenas iun kiu estas la tipo 1465 01:13:35,100 --> 01:13:36,350 ke ni diru tuj estos. 1466 01:13:36,350 --> 01:13:39,830 1467 01:13:39,830 --> 01:13:41,080 Demandojn? 1468 01:13:41,080 --> 01:13:43,710 1469 01:13:43,710 --> 01:13:45,080 >> Do kiel ni uzas funkcio? 1470 01:13:45,080 --> 01:13:49,230 Nu, ni skribos funkcio kaj tiam Ni uzas ĝin en nia programo, ĉu ne? 1471 01:13:49,230 --> 01:13:51,565 Do mi nomis ĝin kubo, kaj tiam mi povos uzi kubo. 1472 01:13:51,565 --> 01:13:54,200 >> Sed kio gravas noti, Estas tiu ordo aferoj. 1473 01:13:54,200 --> 01:13:58,100 Se mi havas kubon sube ĉefa, estas tuj kuru en kubo. 1474 01:13:58,100 --> 01:14:00,360 Kaj je tiu punkto, estas nenio vokis kubo en la programo, kaj ĝi estas 1475 01:14:00,360 --> 01:14:02,550 nur tuj estos kiel, mi ne havas nenian ideon kion kubo estas. 1476 01:14:02,550 --> 01:14:05,060 >> Do ĝi rakontos al vi, implica deklaro de funkcio. 1477 01:14:05,060 --> 01:14:06,690 Tio estas la eraro, kiu montras supren. 1478 01:14:06,690 --> 01:14:10,230 Kaj tiel en tiu kazo, kubo estas sube ĉefa, do ĝi ne tuj 1479 01:14:10,230 --> 01:14:12,006 scii pri tio. 1480 01:14:12,006 --> 01:14:14,724 >> SPEAKER 5: Do ĉefa estas kutime la lasta funkcio difinita? 1481 01:14:14,724 --> 01:14:17,290 >> JOSEPH: Do la demando estas, Estas ĉefa kutime la lastan 1482 01:14:17,290 --> 01:14:18,170 afero, kiun vi ŝatus difini? 1483 01:14:18,170 --> 01:14:19,730 Kaj ne. 1484 01:14:19,730 --> 01:14:22,280 Estas ĉar ni kutime ŝatas ĉefa esti ĉe la supro, ĉu ne? 1485 01:14:22,280 --> 01:14:24,640 Ĉar tio estas la unua aĵo kiun vi ĉu la programisto malfermante la 1486 01:14:24,640 --> 01:14:25,640 programon por vidi. 1487 01:14:25,640 --> 01:14:29,950 Kaj tiel kiel ni solvos tiun temon el ni ĉu ĉefa esti ĉe la supro, sed la 1488 01:14:29,950 --> 01:14:33,750 funkcioj, ke ni volas, ni volas ilin esti sub la ĉefa ankoraŭ povos uzi 1489 01:14:33,750 --> 01:14:34,930 ilin ene de ĉefaj? 1490 01:14:34,930 --> 01:14:36,870 >> Nu, ni uzas, kion ni nomas funkcio prototipo. 1491 01:14:36,870 --> 01:14:40,830 Do kio funkcio prototipo esence Estas Estas ĝi unue prenas kion 1492 01:14:40,830 --> 01:14:45,060 la subskribon aŭ la funkcio kaplinio kion ni volas apliki malsupren 1493 01:14:45,060 --> 01:14:47,420 ĉi tie, kaj ni metu ĝin en la supro de programo. 1494 01:14:47,420 --> 01:14:51,400 >> Do, en tiu kazo, ni diru ke, bone, poste en nia programo, ni iras 1495 01:14:51,400 --> 01:14:55,010 fari promeson apliki ĉi funkcio nomita int kubo, kiu prenas 1496 01:14:55,010 --> 01:14:56,260 entjero enigo. 1497 01:14:56,260 --> 01:15:00,870 Do nun, ĉar tio estas super la ĉefa, ĉefa, ĝi tuj diri, oh, bone, 1498 01:15:00,870 --> 01:15:03,910 poste en la programo, kiu tuj estos tie do mi povas referi al ĝi, do mi 1499 01:15:03,910 --> 01:15:05,230 nur lasu ĝin iri tra ĝis nun. 1500 01:15:05,230 --> 01:15:07,660 >> Kaj poste ĉe la malsupro, Ni apliki kubo. 1501 01:15:07,660 --> 01:15:11,180 Kaj tiam ĉefa simple diru, bone, tio estos ia ligilo 1502 01:15:11,180 --> 01:15:12,250 tiuj du simboloj kune. 1503 01:15:12,250 --> 01:15:14,320 Kaj ni vidos kovri kion tio signifas poste. 1504 01:15:14,320 --> 01:15:17,090 Kaj tial ĝi scios, ke tiu estas la kubo funkcion, kiun ĝi devus uzi. 1505 01:15:17,090 --> 01:15:19,630 1506 01:15:19,630 --> 01:15:23,383 >> ROB: La [inaudibles] pri voli ĉefa malsupre aŭ 1507 01:15:23,383 --> 01:15:24,880 supro, mi vidis ambaŭ. 1508 01:15:24,880 --> 01:15:28,630 Estas aĵoj kiuj nur ŝatis meti ĉefa ĉe la malsupro. 1509 01:15:28,630 --> 01:15:32,520 Sed unufoje projekto akiras aparte granda, kutime ĉefa estas en 1510 01:15:32,520 --> 01:15:34,290 dosiero ĉiuj liaj propraj. 1511 01:15:34,290 --> 01:15:38,170 Kaj je tiu punkto, kiel la int kubon linio - 1512 01:15:38,170 --> 01:15:42,460 interne de stdio.h estas faskon de linioj ĝuste kiel ke int 1513 01:15:42,460 --> 01:15:44,010 kubo int enmeta linio. 1514 01:15:44,010 --> 01:15:50,170 >> Kaj tial tiujn prototipojn estas aferoj kiujn vi emas meti enen kaplinio dosierojn, je 1515 01:15:50,170 --> 01:15:52,140 kiu punkto, tio ne gravas. 1516 01:15:52,140 --> 01:15:54,700 Nu, ne gravas. 1517 01:15:54,700 --> 01:15:56,070 Tiuj ĉiam iru ĉe la supro. 1518 01:15:56,070 --> 01:15:59,490 Kaj se ĉefa ne estas dosiero cxiujn liajn proprajn, vi ne devas zorgi pri metante 1519 01:15:59,490 --> 01:16:02,360 individuaj funkcio prototipoj en la dosiero. 1520 01:16:02,360 --> 01:16:05,370 >> JOSEPH: Kaj ni ricevos por ke iom iom poste, kiam Rob komencas paroli 1521 01:16:05,370 --> 01:16:06,380 pri kompili. 1522 01:16:06,380 --> 01:16:09,480 Kaj do tie estas ankaŭ la diferencon inter parametro kaj argumento. 1523 01:16:09,480 --> 01:16:12,500 Kaj parametro estas precize kion ni nomas tiujn enigoj kiam 1524 01:16:12,500 --> 01:16:13,820 ni difini la funkcio. 1525 01:16:13,820 --> 01:16:16,950 Kaj ni nomas gxin argumento, kiam ni efektive pasas ĝin en la funkcio. 1526 01:16:16,950 --> 01:16:19,600 >> Do, en tiu kazo, ĉi tiu estas parametro, kiel ni diris antaŭe. 1527 01:16:19,600 --> 01:16:24,130 Kaj kiam ni efektive uzi gxin tie, kubo de x, tiam x sin trovas 1528 01:16:24,130 --> 01:16:25,910 kion ni nomas argumento al la funkcio kubo. 1529 01:16:25,910 --> 01:16:28,150 >> ROB: Do parametro argumentoj estas - 1530 01:16:28,150 --> 01:16:33,270 ekzistas tiu distingo, tre konfuzita interŝanĝeble. 1531 01:16:33,270 --> 01:16:37,090 Je tiu punkto, por mi, estas kiel unu el tiujn vortojn, ke kiam mi vidas ĝin en 1532 01:16:37,090 --> 01:16:41,190 la sovaĝaj, mi ne povas helpi sed tuj demando ĉu ili uzas ĝin en 1533 01:16:41,190 --> 01:16:44,120 la ĝusta kunteksto, ĉar la diferenco estas subtila sufiĉas ke nur 1534 01:16:44,120 --> 01:16:45,500 ĉiuj inklinas - 1535 01:16:45,500 --> 01:16:48,530 Mi preskaŭ ĉiam diras argumento sendepende de tio, kion mi volas diri. 1536 01:16:48,530 --> 01:16:51,230 1537 01:16:51,230 --> 01:16:54,630 >> Jozef; kaj funkcioj estas ankaŭ utila por kio ni nomas kromefikoj. 1538 01:16:54,630 --> 01:16:59,230 Do funkcio povas preni neniun enigoj, kaj Ĝi povas ankaŭ produkti ne eligoj. 1539 01:16:59,230 --> 01:17:03,280 Do en tiu aparta kazo, mi estas difinanta subrutina kiu havas nenian 1540 01:17:03,280 --> 01:17:03,970 redoni valoro. 1541 01:17:03,970 --> 01:17:07,730 Kaj por specifi ke oni uzas kion ni nomas malplenon trans cxi tie. 1542 01:17:07,730 --> 01:17:10,890 Kaj tial la kromefikon de ĉi tiu funkcio estas ke ĝi simple presas stuff 1543 01:17:10,890 --> 01:17:11,920 eliru al la paĝo. 1544 01:17:11,920 --> 01:17:13,840 Ĝi ne reale preni ajnan enigoj, kaj ĝi ne 1545 01:17:13,840 --> 01:17:15,360 efektive produkti ajnan eligoj. 1546 01:17:15,360 --> 01:17:18,230 >> Sed ĉi tiu povus esti utila en la senco se vi volas, ekzemple, erarserĉilo 1547 01:17:18,230 --> 01:17:21,530 ion en via programo, se vi volas skribi iom subrutina ke 1548 01:17:21,530 --> 01:17:25,160 presas ekstere, ni diru, la enhavo de memoro aux io. 1549 01:17:25,160 --> 01:17:29,800 Kaj tial tiuj flankaj efektoj estas kelkfoje utila ekster la kunteksto 1550 01:17:29,800 --> 01:17:33,010 de ĵus like enigoj kaj eligoj. 1551 01:17:33,010 --> 01:17:34,260 Demandojn? 1552 01:17:34,260 --> 01:17:37,270 1553 01:17:37,270 --> 01:17:44,240 >> Kaj por fini tiun apartan segmento, kion signifas tiu programo faras? 1554 01:17:44,240 --> 01:17:47,420 Mi donos al vi uloj kelkaj sekundoj por tralegi ĝin. 1555 01:17:47,420 --> 01:17:52,720 1556 01:17:52,720 --> 01:17:56,880 Je tre baza nivelo, kion ni volas diras estas ke ĝi interŝanĝas x kaj y, ĉu ne? 1557 01:17:56,880 --> 01:18:00,090 >> Do kiel multaj el vi efektive opinias tio estos interŝanĝu x kaj y? 1558 01:18:00,090 --> 01:18:02,160 Levi vian manon. 1559 01:18:02,160 --> 01:18:02,760 Neniu. 1560 01:18:02,760 --> 01:18:03,070 OK. 1561 01:18:03,070 --> 01:18:06,720 Kiu pensas ke ĝi volas ne interŝanĝas x kaj y? 1562 01:18:06,720 --> 01:18:09,120 Kaj la sumo de kiu estis Ne la tuta ĉambro. 1563 01:18:09,120 --> 01:18:10,440 Do iuj homoj ne estas certa. 1564 01:18:10,440 --> 01:18:10,920 OK. 1565 01:18:10,920 --> 01:18:11,630 Tio estas racia. 1566 01:18:11,630 --> 01:18:16,450 >> Do ni iru tra kio okazas kiam vi fakte voki funkciojn unua en 1567 01:18:16,450 --> 01:18:18,320 Por respondi tiun demandon. 1568 01:18:18,320 --> 01:18:21,430 Do tio estas kion la memoro ia aspektas. 1569 01:18:21,430 --> 01:18:23,860 Tio estas speco de kiel oni simpligita modelo de kia memoro aspektas kiel kiam 1570 01:18:23,860 --> 01:18:24,800 vi kuros programon. 1571 01:18:24,800 --> 01:18:27,270 Do estas io nomata la stako malsupren tie kaj 1572 01:18:27,270 --> 01:18:28,330 io nomata la havaĵo. 1573 01:18:28,330 --> 01:18:30,950 Kaj tiuj kreski al meze de la memoro. 1574 01:18:30,950 --> 01:18:33,860 >> Do en tiu aparta kazo, kiam vi nomas funkcio, ĝi 1575 01:18:33,860 --> 01:18:35,680 gets surmetis la stako. 1576 01:18:35,680 --> 01:18:38,900 Kaj tiam tiu, kiu estas enhavata en tiu funkcio restas en tio, kion ni nomas tion 1577 01:18:38,900 --> 01:18:40,550 funkcia stack frame. 1578 01:18:40,550 --> 01:18:44,500 Kaj tiel akiri belan videbligo de tiu, let's - ekzemple, ni havis la 1579 01:18:44,500 --> 01:18:45,960 programo ĉefa antaŭe. 1580 01:18:45,960 --> 01:18:47,820 Kaj ene de ĉefa, ni nomas kubo. 1581 01:18:47,820 --> 01:18:50,650 Do ĉefa devus unue iri sur la stako kadro, ĉar ĝi estas la unua funkcio 1582 01:18:50,650 --> 01:18:51,640 kiuj nomiĝas. 1583 01:18:51,640 --> 01:18:55,740 >> Kaj poste, kiam kubon nomiĝas interne de ĉefa, ĝi gets meti supre sur ĉefa 1584 01:18:55,740 --> 01:18:57,790 ene de la memoro. 1585 01:18:57,790 --> 01:19:02,090 Do, kion vi rimarkos ĉi tie estas ke kubo havas sian propran parametroj kaj lia 1586 01:19:02,090 --> 01:19:02,950 propraj lokanoj. 1587 01:19:02,950 --> 01:19:06,720 Do kiam vi vere okazis io al funkcio, la parametroj ke 1588 01:19:06,720 --> 01:19:09,910 gets estas kopioj de kio pasis en el ĉefaj. 1589 01:19:09,910 --> 01:19:14,140 >> Kaj al ia klarigi ĉi tion, ni marŝi tra programo. 1590 01:19:14,140 --> 01:19:16,960 Do ni havas la pilo; ĉi estas nur la stakon porcion. 1591 01:19:16,960 --> 01:19:21,240 Kaj kion ni faros estas ni unue pravalorizi x kaj y al unu kaj du. 1592 01:19:21,240 --> 01:19:22,400 Do ni havas tiujn iom skatoloj. 1593 01:19:22,400 --> 01:19:25,310 Ili sidas en ĉefaj la stako kadro sur la stako. 1594 01:19:25,310 --> 01:19:26,580 Ili enhavas unu kaj du. 1595 01:19:26,580 --> 01:19:28,820 >> Nun ni nomas swap. 1596 01:19:28,820 --> 01:19:33,940 Kio okazas estas ni pasas x kaj y en interŝanĝa kaj interŝanĝan kreas sian proprajn kopiojn 1597 01:19:33,940 --> 01:19:36,520 el tiuj variabloj uzi interne el lia stack frame. 1598 01:19:36,520 --> 01:19:39,920 Do nun tie, ni havas, kion Enhavas la valoro kiu x havis; kaj b, 1599 01:19:39,920 --> 01:19:41,620 kiu enhavas la valoron ke y havis. 1600 01:19:41,620 --> 01:19:42,670 Do unu, du. 1601 01:19:42,670 --> 01:19:47,130 >> Kaj vi rimarkos ke tio estas separata de x kaj y ene de main. 1602 01:19:47,130 --> 01:19:51,390 Do ni nun krei portempan variablo enhavi. 1603 01:19:51,390 --> 01:19:56,100 Ni aperigos egala al b, do ŝanĝoj de unu al du. 1604 01:19:56,100 --> 01:19:59,340 Kaj tiam ni aro b egalas al temp, kiu estas unu. 1605 01:19:59,340 --> 01:20:01,640 >> Kaj tiam nun ni eliras el de ĉi tiu funkcio. 1606 01:20:01,640 --> 01:20:04,310 1607 01:20:04,310 --> 01:20:07,410 Kiam vi eliras el la funkcio, la stack frame gets elsaltis super la stako. 1608 01:20:07,410 --> 01:20:08,270 Ni nomas ĝin puŝi. 1609 01:20:08,270 --> 01:20:12,750 Vi pelas stako kadro sur la stako kaj vi pop se ekstere de la stako. 1610 01:20:12,750 --> 01:20:16,080 Kaj do kio okazas estas ĉio, kio Estis en tiu stako framo speco de simple 1611 01:20:16,080 --> 01:20:17,280 levigxas en flamoj. 1612 01:20:17,280 --> 01:20:19,180 Kaj tial ke ne plu ekzistas. 1613 01:20:19,180 --> 01:20:20,470 >> Sed kion fari ni rimarkas? 1614 01:20:20,470 --> 01:20:23,690 Ni neniam vere ŝanĝiĝis la valoroj de x kaj y, right? 1615 01:20:23,690 --> 01:20:26,530 Do tiuj restis lokaj al ĉefa. 1616 01:20:26,530 --> 01:20:29,900 Kaj per pasante aferoj en swap, ni fakte neniam ŝanĝis tiujn valorojn. 1617 01:20:29,900 --> 01:20:31,260 Kaj kion ni nomas tio? 1618 01:20:31,260 --> 01:20:33,040 Ni nomas tiun forpaso de valoro. 1619 01:20:33,040 --> 01:20:36,860 >> Do en C, kiam vi transiros aferoj en funkcioj, ĝi pasas ilin per valoro kaj 1620 01:20:36,860 --> 01:20:40,160 faras kopion de ili por la funkcio por uzi. 1621 01:20:40,160 --> 01:20:43,980 Kaj ni lernos pri io nomata preterpasanton referenco poste, sed tio estas 1622 01:20:43,980 --> 01:20:45,390 maniero vi povas solvi ĉi tiun problemon. 1623 01:20:45,390 --> 01:20:47,080 Sed ni ne zorgu pri ke ĝis poste. 1624 01:20:47,080 --> 01:20:52,200 >> ROB: Kaj vere, ke termino, forpaso per aludo, do C ne eĉ havas 1625 01:20:52,200 --> 01:20:54,270 preterpasanton referenco. 1626 01:20:54,270 --> 01:20:56,760 C ekskluzive estas preterpasanton valoro. 1627 01:20:56,760 --> 01:20:59,630 Ne gravas kion vi faras, vi estas ĉiam pasante kopion de io. 1628 01:20:59,630 --> 01:21:03,395 Estas nur ke, kiel mi ia menciita ke antaŭ kun montriloj 1629 01:21:03,395 --> 01:21:07,690 kaj ke kordoj estas vere nur kvar bajtoj indikante someplace en memoro. 1630 01:21:07,690 --> 01:21:11,890 >> Nu, se mi havas tiun ĉenon kaj ĝi estas dirante al mi ke estas tie kie la kordo - 1631 01:21:11,890 --> 01:21:15,470 bone, se mi havas tiun montrilon al tiu meti en memoron, tiam mi povos pasi 1632 01:21:15,470 --> 01:21:19,160 Kopio de tiu montrilon al funkcio, kaj tiu funkcio ankoraŭ scias kie en 1633 01:21:19,160 --> 01:21:19,780 memoro estas. 1634 01:21:19,780 --> 01:21:22,950 Do ambaŭ el ĉi tiuj indikoj notas al la sama loko en la memoro, kaj 1635 01:21:22,950 --> 01:21:26,460 jen kiel ni tuj povos modifi aferojn preter la 1636 01:21:26,460 --> 01:21:29,852 Nuna stack frame. 1637 01:21:29,852 --> 01:21:31,040 >> JOSEPH: Cxu vi deziras fari la kompili? 1638 01:21:31,040 --> 01:21:31,820 >> ROB: Ne, estas 5:30. 1639 01:21:31,820 --> 01:21:32,910 >> JOSEPH: okej. 1640 01:21:32,910 --> 01:21:35,040 Ĝi estas 5:30. 1641 01:21:35,040 --> 01:21:35,360 OK. 1642 01:21:35,360 --> 01:21:39,280 Do ni kovros kompilante mi divenu en la sekva sekcio, aŭ via sekcio 1643 01:21:39,280 --> 01:21:42,795 ĉefo volas, je tiu punkto. 1644 01:21:42,795 --> 01:21:43,272 Kaj - 1645 01:21:43,272 --> 01:21:44,630 >> ROB: Any questions? 1646 01:21:44,630 --> 01:21:46,760 >> JOSEPH: Any questions? 1647 01:21:46,760 --> 01:21:47,150 Jes? 1648 01:21:47,150 --> 01:21:52,469 >> SPEAKER 5: Uzante kordojn el CS50, ia funkcioj, ke ni volas uzi por 1649 01:21:52,469 --> 01:21:53,880 tiuj, kiuj estos kiel C funkcioj. 1650 01:21:53,880 --> 01:21:59,050 CS50 ne envenis kaj faris neniun plian. 1651 01:21:59,050 --> 01:22:01,850 >> ROB: Korekte. 1652 01:22:01,850 --> 01:22:08,155 Ĉiuj el la C kiel [inaudibles], vi devus uzi tiujn en nia kordoj. 1653 01:22:08,155 --> 01:22:12,400 >> JOSEPH: Kaj unu lasta afero, kiun mi volas mencio estas ke ni havas stilo gvidas 1654 01:22:12,400 --> 01:22:13,130 por ĉi tiu klaso. 1655 01:22:13,130 --> 01:22:13,360 >> ROB: Ho, jes. 1656 01:22:13,360 --> 01:22:15,270 >> JOSEPH: Do se vi venas el programado fono antaŭe, vi 1657 01:22:15,270 --> 01:22:17,750 havu certaj konvencioj kiam vi skribas kodo kiel meti 1658 01:22:17,750 --> 01:22:20,950 krampoj sur la sama linio aŭ aparta manieroj de deŝovante 1659 01:22:20,950 --> 01:22:22,240 aŭ enoficigante via variabloj. 1660 01:22:22,240 --> 01:22:26,870 En ĉi tiu kategorio, ni volas sekvi specifa stilo gvidas nur ĉar, 1661 01:22:26,870 --> 01:22:31,100 bone, se vi eliros kaj laboras en industrio, vi tuj atendus 1662 01:22:31,100 --> 01:22:34,780 sekvi la stilon, gvidinto de la kompanio en kiu vi iras. 1663 01:22:34,780 --> 01:22:38,040 >> Kiel ekzemple, Facebook Mi opinias havas apartan specon de nomado 1664 01:22:38,040 --> 01:22:38,760 konvencion. 1665 01:22:38,760 --> 01:22:42,570 Kaj tie estas la diferencoj inter kamelo envolvaĵo variabloj kaj ĝuste kiel 1666 01:22:42,570 --> 01:22:44,610 apartigante ilin per substrekoj. 1667 01:22:44,610 --> 01:22:52,170 Kaj ankaŭ, mi pensas estas pli grava, kiel ekzemple, deŝovon, right? 1668 01:22:52,170 --> 01:22:56,440 >> Ni krispa krampoj komenci kie la kondiĉo estas, kaj ili 1669 01:22:56,440 --> 01:22:57,730 troviĝas en la sekva linio. 1670 01:22:57,730 --> 01:23:01,230 Kaj ni ankaŭ metis krispa krampoj en eĉ se estas nur unu linion. 1671 01:23:01,230 --> 01:23:06,100 Kaj multe da fojoj, estas manieroj fari ĝin kie vi povas lasi tiujn krampoj 1672 01:23:06,100 --> 01:23:08,380 ekstere se estas nur unu linio sub la Se komunikaĵo. 1673 01:23:08,380 --> 01:23:12,070 Sed en ĉi tiu kategorio, ni volas sekvi specifa stilo gvidas ĝuste tiel vi ricevas 1674 01:23:12,070 --> 01:23:13,550 uzata por tiaj aferoj. 1675 01:23:13,550 --> 01:23:16,410 >> ROB: Jes, kaj Stilo 50 tuj efikigi ĉi stilo gvidas, kaj ni estas 1676 01:23:16,410 --> 01:23:18,080 tuj uzi Stilo 50 al grado vian kodon. 1677 01:23:18,080 --> 01:23:25,150 Do ĝi faras tion pli facile por ni kaj espereble ne devus fari tion, kion 1678 01:23:25,150 --> 01:23:30,120 multe pli malbone por vi donis la normigita stilo ne devus esti tiu 1679 01:23:30,120 --> 01:23:31,460 nerealisma. 1680 01:23:31,460 --> 01:23:36,000 >> JOSEPH: Kaj fine, por trovi la stilon Gvidilo, iru al manual.cs50.net/style. 1681 01:23:36,000 --> 01:23:37,725 Kaj jes. 1682 01:23:37,725 --> 01:23:40,575 >> SPEAKER 4: Cxu vi intencas plenumi ajn karakterojn por linio? 1683 01:23:40,575 --> 01:23:42,480 >> ROB: Jes. 1684 01:23:42,480 --> 01:23:45,405 >> JOSEPH: Pardonu, knaboj. 1685 01:23:45,405 --> 01:23:47,680 >> ROB: Tio estas kiel unu el la solaj. 1686 01:23:47,680 --> 01:23:50,420 Je tiu punkto, mi estas OK kun 120. 1687 01:23:50,420 --> 01:23:52,460 Mi fartas sufiĉe bone kun dirante 120 signoj por linio. 1688 01:23:52,460 --> 01:23:53,830 Mi komprenas, ke estas iu limo. 1689 01:23:53,830 --> 01:23:57,130 Mi pensas 80 estas tiel malgranda, sed ni plenumi gxin. 1690 01:23:57,130 --> 01:24:00,260 >> JOSEPH: Persone, mi pensas kun C, 80 karakteroj estas pli bone. 1691 01:24:00,260 --> 01:24:04,160 Iam vi komencas alveni al aliaj lingvoj kiel JavaScript kaj PHP, ne 1692 01:24:04,160 --> 01:24:08,860 tiom racie nur limigi tio al 80 signojn. 1693 01:24:08,860 --> 01:24:09,260 OK. 1694 01:24:09,260 --> 01:24:12,780 Nu, tiu estis la super sekcio. 1695 01:24:12,780 --> 01:24:14,750 Ĉu iu volas dolĉaĵoj? 1696 01:24:14,750 --> 01:24:16,000 >> SPEAKER 4: Jes. 1697 01:24:16,000 --> 01:24:18,667