1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> SPEAKER 1: Nu labi. 3 00:00:13,650 --> 00:00:14,390 Laipni lūdzam atpakaļ. 4 00:00:14,390 --> 00:00:19,260 Tas ir CS50 Divas nedēļas, un mēs esam līdz šim bijis, izmantojot funkcijas, bet 5 00:00:19,260 --> 00:00:20,830 lielākoties ņem tos par pašsaprotamu. 6 00:00:20,830 --> 00:00:23,430 Mēs esam izmantojuši printf kura blakusparādība drukāšanas 7 00:00:23,430 --> 00:00:24,110 lietas uz ekrāna. 8 00:00:24,110 --> 00:00:25,790 Mēs esam izmantojuši get-int, get peldēt. 9 00:00:25,790 --> 00:00:29,230 >> Bet ko tad, ja jūs tiešām vēlaties, lai izveidotu savas funkcijas, jo daži no 10 00:00:29,230 --> 00:00:31,740 Jūs, iespējams, jau ir sākuši darīt Problēma iestatīt vienu, lai gan 11 00:00:31,740 --> 00:00:33,140 nav obligāti nepieciešama? 12 00:00:33,140 --> 00:00:37,150 Nu, iesim uz priekšu un pārskatīt ka problēma, vienkārši lūdzot lietotājam, 13 00:00:37,150 --> 00:00:40,660 savu vārdu un poligrāfijas kaut ko par ekrāns, bet mēģināt faktors dažus 14 00:00:40,660 --> 00:00:44,000 no vienveidības, ka mēs esam redzams mūsu kodu līdz šim. 15 00:00:44,000 --> 00:00:45,120 Tātad, ar to es domāju sekojošo. 16 00:00:45,120 --> 00:00:47,315 >> Es iešu uz priekšu un izveidot jauna programma, tikai zvanīt 17 00:00:47,315 --> 00:00:49,320 tas hello.c kā parasti. 18 00:00:49,320 --> 00:00:53,730 Es iešu uz priekšu un dot sevi ietver standarta io.h augšpusē. 19 00:00:53,730 --> 00:00:57,040 Es esmu gatavojas arī sniegt sevi preemptively CS50 bibliotēka, lai 20 00:00:57,040 --> 00:00:59,080 Man nav get kliedza uz sastādītājs. 21 00:00:59,080 --> 00:01:02,400 Un tagad es iešu uz priekšu un atzīt int, galvenais, par spēkā neesošu. 22 00:01:02,400 --> 00:01:09,020 >> Un tad šeit, tas ir, ja es gribu sākt izmantot ārpakalpojumus funkcionalitāti 23 00:01:09,020 --> 00:01:12,090 dažas citas funkcijas, ka es pats esmu gatavojas rakstīt, bet tas nav 24 00:01:12,090 --> 00:01:13,820 Pašlaik pastāv. 25 00:01:13,820 --> 00:01:19,210 Piemēram, pieņemsim, ka es gribēju uzrakstīt funkciju, kas ļauj man, lai 26 00:01:19,210 --> 00:01:23,830 izdrukāt Sveiki, komats, un Tad daži lietotāja vārdu. 27 00:01:23,830 --> 00:01:29,010 Nevis turpināt to darīt printf sveiki,% s, vai tas nebūtu jauki, ja 28 00:01:29,010 --> 00:01:33,380 tur bija tikai sauc funkciju nevis printf bet atšifrējums? 29 00:01:33,380 --> 00:01:36,600 >> Tātad, citiem vārdiem sakot, es gribu, lai varētu Uzrakstiet programmu, kas dara nedaudz 30 00:01:36,600 --> 00:01:37,710 kaut kas līdzīgs šim. 31 00:01:37,710 --> 00:01:42,070 Pirmkārt, es esmu gatavojas teikt printf savu nosaukums, tādējādi pamudinot lietotājam 32 00:01:42,070 --> 00:01:46,150 iedodiet man viņa vai viņas vārdu, un tad es esmu gatavojas izmantot pazīstamus String s, lai 33 00:01:46,150 --> 00:01:47,290 atzīt virkni. 34 00:01:47,290 --> 00:01:50,420 Dodiet man mainīgo tipa virknes, to sauc s, un uzglabāt ka 35 00:01:50,420 --> 00:01:52,120 rezultātā izsaucēja saņemt virkni. 36 00:01:52,120 --> 00:01:56,060 Bet tagad nedēļām agrāk, es būtu nedaudz tediously darīts sveiki,% s / n. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> Un citiem vārdiem sakot, mēs esam redzējuši šo piemērs ķekars reizes, un tas ir 39 00:02:02,570 --> 00:02:05,280 triviāls piemērs, jo tur ir tikai viens līnija kodu, lai tas tiešām nav 40 00:02:05,280 --> 00:02:06,860 liels galā, lai saglabātu rakstīt vēlreiz. 41 00:02:06,860 --> 00:02:09,990 Bet pieņemsim, ka šī līnija koda faktiski ir kļuvušas par apgrūtinājumu, un 42 00:02:09,990 --> 00:02:12,900 tas nav viena līnija kods, bet tas ir 10 rindas kods pāris nedēļas no šī brīža, 43 00:02:12,900 --> 00:02:15,190 un jūs vienkārši noguris kopēšanas un ielīmēšanas vai 44 00:02:15,190 --> 00:02:17,180 pārrakstīšana šo pašu kodu. 45 00:02:17,180 --> 00:02:22,100 Vai tas nebūtu jauki, nevis darīt printf sveiki,% s un tā tālāk, 46 00:02:22,100 --> 00:02:26,500 vai tas nebūtu jauki, ja tur bija tikai funkciju sauc atšifrējums, ka 47 00:02:26,500 --> 00:02:27,560 aizņem arguments - 48 00:02:27,560 --> 00:02:29,120 citiem vārdiem sakot, ir nepieciešams ieguldījums - 49 00:02:29,120 --> 00:02:30,620 un pēc tam semikolu. 50 00:02:30,620 --> 00:02:33,240 Tātad, kas darbojas, ne tas ir jauki, ja tas pastāv? 51 00:02:33,240 --> 00:02:36,690 Tad es nebūtu jāuztraucas par kas printf ir, ko% s un visi no 52 00:02:36,690 --> 00:02:39,400 šie sarežģījumi, kas ir nav tik interesanti. 53 00:02:39,400 --> 00:02:40,570 Tie ir noderīgi. 54 00:02:40,570 --> 00:02:44,700 >> Tātad atšifrējums, diemžēl, nebija izgudroja dažas 40 plus gadus atpakaļ. 55 00:02:44,700 --> 00:02:45,980 Neviens doma rakstīt to. 56 00:02:45,980 --> 00:02:48,300 Bet tas ir skaistums, kam programmēšanas valoda, tāpat kā 57 00:02:48,300 --> 00:02:52,930 Scratch jūs varat definēt pielāgotus blokus, lai C, un lielākā daļa jebkuru valodu, jūs varat 58 00:02:52,930 --> 00:02:57,260 definēt savu funkcionalitāti, var Jums noteikt savas funkcijas. 59 00:02:57,260 --> 00:03:01,710 Tātad, pat ja mēs maģistrālo automātiski par brīvu, mēs varam paziņot 60 00:03:01,710 --> 00:03:02,730 mūsu pašu funkciju. 61 00:03:02,730 --> 00:03:05,670 >> Tāpēc es esmu gatavojas veikt dažas vietas uz augšu šeit up top, un es esmu gatavojas pasludināt manu 62 00:03:05,670 --> 00:03:08,210 pašu funkciju, kas ir skatīsies mazliet dīvaini sākumā, bet mēs nāksim 63 00:03:08,210 --> 00:03:09,400 atpakaļ uz šo pirms ilgi. 64 00:03:09,400 --> 00:03:12,310 Es esmu gatavojas teikt par spēkā neesošu, tādējādi norādot šo funkciju nav 65 00:03:12,310 --> 00:03:16,040 kaut ko, ir blakus efekts, bet tas neatgriežas kaut ko ar mani 66 00:03:16,040 --> 00:03:18,810 pašā veidā, ka iegūt int vai saņemt virkni pati. 67 00:03:18,810 --> 00:03:22,450 Un es esmu gatavojas sniegt šo funkciju nosaukt par drukas vārdu, un es esmu gatavojas 68 00:03:22,450 --> 00:03:26,470 norāda, ka šis puisis ir gatavojas veikt stīgu, un es esmu dodas uz zvanu, ka 69 00:03:26,470 --> 00:03:27,600 virkne vārdu. 70 00:03:27,600 --> 00:03:32,100 Es varētu saukt kaut ko es gribu, bet es vēlas mans kods ir self-dokumentēšanai. 71 00:03:32,100 --> 00:03:34,770 Citiem vārdiem sakot, ja viens no jums bija atvērt šo failu, un lasīt to, jūs varētu 72 00:03:34,770 --> 00:03:39,020 veida secināt no nosaukuma, kas ieeja kādu lomu tas ir paredzēts, lai spēlētu. 73 00:03:39,020 --> 00:03:42,270 >> Un tagad tālāk, ka es esmu gatavojas, lai atvērtu cirtaini lencēm un slēgtas cirtaini lencēm, 74 00:03:42,270 --> 00:03:47,140 un tāpēc paziņojums Esmu sekoja pats zīmējums uz līnijām, pa septiņiem, četri 75 00:03:47,140 --> 00:03:51,622 Esmu bijis pēc labu nedēļu plus Tagad starp, teiksim, līnijām deviņiem un 76 00:03:51,622 --> 00:03:53,400 14, kas veido galveno. 77 00:03:53,400 --> 00:03:56,160 Citiem vārdiem sakot, izdrukāt nosaukumu ir cita funkcija. 78 00:03:56,160 --> 00:03:58,990 Tagad, kompilators nav gatavojas zināt , lai izsauktu šo lietu automātiski 79 00:03:58,990 --> 00:04:02,670 jo es burtiski tikko izgudroja to, bet tas zinās vēl zvanīt galvenā 80 00:04:02,670 --> 00:04:08,710 automātiski, un pēc tam, protams, jo līnija 13, es aicinu savu funkciju. 81 00:04:08,710 --> 00:04:12,805 Un tāpēc es esmu paziņojis, ka funkcija līdzi pirms galvenajām četrām līniju, 82 00:04:12,805 --> 00:04:16,579 tas ir gatavojas mācīt kompilators ko citēju, likt pēdiņas beigās, "atšifrējums" 83 00:04:16,579 --> 00:04:18,140 nozīmē un kas tai būtu jādara. 84 00:04:18,140 --> 00:04:22,700 Tāpēc es esmu veida dodot tai jaunu pasūtījuma bloķēt kontekstā, teiksim, Scratch. 85 00:04:22,700 --> 00:04:27,240 >> Tātad šeit, es varu nodot, ka ļoti bieži vai regulāru modeli kodu, es glabāt 86 00:04:27,240 --> 00:04:32,300 rakstiski klasē, printf % S sveiki,% s / n ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 Ko es gribu, lai šeit? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 Tāpēc es gribu, lai vārdu šajā kontekstā. 91 00:04:41,420 --> 00:04:43,440 Tātad paziņojums mazliet auglīgs šeit. 92 00:04:43,440 --> 00:04:47,680 Tā kā es esmu deklarējot savu funkciju un man ir nedaudz patvaļīgi sauc 93 00:04:47,680 --> 00:04:50,880 tā atšifrējums, un tāpēc, ka es esmu norādīts iekavās, ka tas 94 00:04:50,880 --> 00:04:55,035 funkcija aizņem vienu argumentu, tips kas ir virkne - tāpēc tas ir vārds 95 00:04:55,035 --> 00:05:00,010 vai frāze, vai kaut kas tamlīdzīgs - un Es esmu aicinot šis arguments nosaukumu, kas 96 00:05:00,010 --> 00:05:04,770 ir vienīgais mainīgais, kas ir kas jomu, tā sakot, ir vārds. 97 00:05:04,770 --> 00:05:07,780 >> S pastāv tikai starp divām ko cirtaini bikšturi, protams? 98 00:05:07,780 --> 00:05:12,990 Nu tiešām, tāpat kā 10 līnijas cauri 14, tāpēc tāpat kā pirmdien, nevar izmantot 99 00:05:12,990 --> 00:05:17,650 S, bet to, ko es varu darīt, ir nodot S uz drukas nosaukumu. 100 00:05:17,650 --> 00:05:21,030 Drukāt nosaukums tikai tā notiek, lai arī tā alias, sinonīmu, segvārdu, 101 00:05:21,030 --> 00:05:24,400 nosaucot to nosaukumu, un tagad izmantojot to šajā rindā. 102 00:05:24,400 --> 00:05:26,840 Tātad, tagad ļaujiet man saglabāt to, attālinātu. 103 00:05:26,840 --> 00:05:31,250 >> Ļaujiet man iet uz priekšu un veikt sveiki. 104 00:05:31,250 --> 00:05:32,400 Izskatās labi. 105 00:05:32,400 --> 00:05:36,110 Nav izspļaut kļūdas. . / Sveiki Enter. 106 00:05:36,110 --> 00:05:37,020 Kas ir mans vārds? 107 00:05:37,020 --> 00:05:38,060 Deivids. 108 00:05:38,060 --> 00:05:39,270 Un sveiki Dāvids. 109 00:05:39,270 --> 00:05:41,820 Tāpēc ne viss, kas aizraujošs, bet tikai domāju, ka tagad. 110 00:05:41,820 --> 00:05:44,310 Jums tagad ir, ka pati sastāvdaļa kā mēs to darījām nulles līdz 111 00:05:44,310 --> 00:05:45,420 padarīt mūsu pašu funkciju. 112 00:05:45,420 --> 00:05:46,770 >> Bet tur ir no gotcha bit. 113 00:05:46,770 --> 00:05:50,620 Pieņemsim, ka man nav īsti domājis tas cauri, un es tiešām bez 114 00:05:50,620 --> 00:05:54,250 nedomājot par to rakstīja kas darbojas uz leju šeit. 115 00:05:54,250 --> 00:05:55,420 Jūtas pilnīgi pamatota. 116 00:05:55,420 --> 00:05:58,440 Jo nulles nepastāv jēdziens no atrašanās vietas jūsu skriptus. 117 00:05:58,440 --> 00:06:00,670 Jūs varētu likt vienu uz augšu šeit, viena šeit, viens šeit, un tas varētu sākt 118 00:06:00,670 --> 00:06:03,310 izskatīties mazliet netīrs, ja jums nav noteikt to, glīti, bet tas nav 119 00:06:03,310 --> 00:06:05,910 vienalga, kur fiziski skripti bija uz ekrāna. 120 00:06:05,910 --> 00:06:09,660 Diemžēl C - un tas ir pretēji valodas, piemēram, Java un Python 121 00:06:09,660 --> 00:06:13,600 un citiem, ka jūs varētu būt pazīstami ar - diemžēl C, lai dara 122 00:06:13,600 --> 00:06:15,830 nozīmes, jo skatīties, kas ir notiks tagad. 123 00:06:15,830 --> 00:06:19,010 >> Noklusējuma funkcija, kas notiek izpildīt, protams, galvenais. 124 00:06:19,010 --> 00:06:22,290 Galvenais gatavojas aicināt drukas vārdu līnija astoņi, bet diemžēl, 125 00:06:22,290 --> 00:06:26,660 kompilators nav pat zināt, ka drukas nosaukumu pastāv, līdz tas kļūst 11 līnijas, 126 00:06:26,660 --> 00:06:28,520 kas diemžēl ir būs pārāk vēlu. 127 00:06:28,520 --> 00:06:30,660 Tātad, pieņemsim do veikt sveiki. 128 00:06:30,660 --> 00:06:32,950 Un tagad nopelt, divas kļūdas radīts. 129 00:06:32,950 --> 00:06:36,050 Tātad, tagad ļaujiet man ritiniet līdz ļoti pirmkārt, mums vienmēr vajadzētu darīt, un 130 00:06:36,050 --> 00:06:39,560 ievēroju, ka tas kliedza uz mani, "Netieši deklarācija funkcijas 131 00:06:39,560 --> 00:06:40,540 print vārdu. " 132 00:06:40,540 --> 00:06:43,860 >> Tāpēc mēs esam redzējuši šo ziņojumu iepriekš, netieši deklarācija funkcijas. 133 00:06:43,860 --> 00:06:48,080 Kad mēs esam redzējuši šāda veida kļūda? 134 00:06:48,080 --> 00:06:49,180 Kad es neietvēra bibliotēka. 135 00:06:49,180 --> 00:06:53,470 Ja es aizmirsu cs50.h, un es varētu saņemt kliedza, lai iegūtu virkni vai iegūt int. 136 00:06:53,470 --> 00:06:56,880 Bet šajā gadījumā, šī funkcija print vārds nav bibliotēkā, vai ne? 137 00:06:56,880 --> 00:07:00,230 Tas ir burtiski šajā failā, tāpēc kas ir patiešām problēma? 138 00:07:00,230 --> 00:07:04,660 >> Nu diemžēl C, tas jūs aizvedīs tik neticami burtiski, ka, ja jūs 139 00:07:04,660 --> 00:07:08,640 gribu funkciju sauc atšifrējums, lai pastāv, jums ir vai nu jāīsteno 140 00:07:08,640 --> 00:07:11,940 , kas darbojas pie ļoti top jūsu kodu, tāpēc, ka tas ir pieejams, lai samazinātu 141 00:07:11,940 --> 00:07:15,070 funkcijas, bet atklāti sakot, tas kļūst apliets ļoti ātri. 142 00:07:15,070 --> 00:07:18,160 Personīgi, man patīk liekot galveno vispirms jo tad tas ir ļoti skaidrs, ko šis 143 00:07:18,160 --> 00:07:19,890 Programma dara pēc pirmā acu uzmetiena. 144 00:07:19,890 --> 00:07:23,290 Un plus, jūs varat nokļūt dīvaini stūrī gadījumi, kur, ja x vēlas, lai izsauktu 145 00:07:23,290 --> 00:07:27,530 y bet y varētu aicināt x, jūs vienkārši fiziski faktiski nevar likt vienā 146 00:07:27,530 --> 00:07:28,540 virs otra. 147 00:07:28,540 --> 00:07:31,230 >> Bet izrādās C, mēs varam atrisināt ļoti vienkārši. 148 00:07:31,230 --> 00:07:34,010 Es esmu gatavojas nodot mazliet vietas šeit, un es esmu tikai gatavojas 149 00:07:34,010 --> 00:07:38,170 preemptively, kaut arī nedaudz lieki, gatavojas mācīt 150 00:07:38,170 --> 00:07:42,320 kompilators, kas pastāv funkcija sauc par drukas vārdu, tas aizņem virkni, 151 00:07:42,320 --> 00:07:46,330 un es esmu dodas uz zvanu tā nosaukums semikolu. 152 00:07:46,330 --> 00:07:50,220 >> Tātad šis tagad četru līniju, ko mēs neesmu redzējis, ir deklarācija 153 00:07:50,220 --> 00:07:53,940 par funkciju drukas vārdu, bet tas ir tikai sola, ka šī funkcija būs 154 00:07:53,940 --> 00:07:56,620 beidzot definēt, galu galā jāīsteno. 155 00:07:56,620 --> 00:08:00,180 Tas tagad es varu atstāt tikai tāpēc, ka Tagad tas ir definīcija, 156 00:08:00,180 --> 00:08:04,090 īstenošanu, sava veida pēdējo jūdzi par šīs direktīvas īstenošanu 157 00:08:04,090 --> 00:08:05,130 konkrēto funkciju. 158 00:08:05,130 --> 00:08:08,450 Tātad, godīgi sakot, tas ir muļķīgi, tas ir kaitinošas, bet tas ir ceļš C ir, un tas ir 159 00:08:08,450 --> 00:08:12,050 jo tas aizņem jums ļoti burtiski un, kā dators atklāti būtu, 160 00:08:12,050 --> 00:08:16,020 tikai tieši to, ko jums pateikt to darīt, un tā, ka pasūtījumi ir svarīgi. 161 00:08:16,020 --> 00:08:18,940 >> Tātad, paturiet to prātā un atkal sākt paziņojums atkārtošanos modeļiem. 162 00:08:18,940 --> 00:08:21,850 Izredzes ir jums būs, ja jums nav jau sāk saskarties ziņas 163 00:08:21,850 --> 00:08:24,700 piemēram, tas, ka pēc pirmā acu uzmetiena šķiet, pilnīgi mistisks, bet, ja jūs sākat 164 00:08:24,700 --> 00:08:29,000 meklēt šos atslēgas vārdus, piemēram, "Netieši deklarācija," pieminēts 165 00:08:29,000 --> 00:08:32,380 funkcija šajā gadījumā - un godīgi sakot, jūs dažreiz pat saņemt nedaudz zaļa 166 00:08:32,380 --> 00:08:35,010 burkānu simbols, kas stāsta jums, kur jautājums droši vien ir - 167 00:08:35,010 --> 00:08:40,980 Jūs varat sākt strādāt savu ceļu caur vēl neredzētas kļūdu ziņojumi. 168 00:08:40,980 --> 00:08:45,860 Visus jautājumus, rakstot savu funkciju šādā veidā? 169 00:08:45,860 --> 00:08:47,540 >> Darīsim kaut ko, kas ir nedaudz vairāk pārliecinoša. 170 00:08:47,540 --> 00:08:51,760 Nevis vienkārši darīt kaut ko, kas ir blakusparādība drukāšanu, ļaujiet man iet 171 00:08:51,760 --> 00:08:55,340 priekšu un saglabāt jauno failu, un mēs nosaukt šo positive.c, pat ja tas ir 172 00:08:55,340 --> 00:08:57,600 būs nedaudz atšķirīgs pret pēdējā laikā. 173 00:08:57,600 --> 00:09:01,910 Un šoreiz, es vēlos vēlreiz īstenot pēdējā reize ir positive.C piemērs, kas 174 00:09:01,910 --> 00:09:04,430 ir spēkā lietotājiem, lai sniegtu man pozitīvs skaitlis. 175 00:09:04,430 --> 00:09:07,280 Bet man nācās izmantot iegūtu int pēdējo reizi. 176 00:09:07,280 --> 00:09:10,780 Vai nav tā bijis jauki, ja tur bija funkciju sauc saņemt pozitīvu int 177 00:09:10,780 --> 00:09:13,610 ka es varētu uzticēt šo gabals funkcionalitāti? 178 00:09:13,610 --> 00:09:16,480 Tātad atšķirība šeit ir, mēs ņemšu īstenot saņemt pozitīvu int, bet atšķirībā 179 00:09:16,480 --> 00:09:20,330 atšifrējums, kas bija blakus efekts - tas neatgriezās kaut ko, man patīk 180 00:09:20,330 --> 00:09:21,710 numurs vai string - 181 00:09:21,710 --> 00:09:25,510 saņemt pozitīvu int ir, protams, dodas uz atgriešanās, cerams, pozitīvu int. 182 00:09:25,510 --> 00:09:26,170 >> Tātad, pieņemsim to izdarītu. 183 00:09:26,170 --> 00:09:30,840 Iekļaut cs50.h, Iekļaut standarta io.h. 184 00:09:30,840 --> 00:09:33,520 Int main spēkā neesošu. 185 00:09:33,520 --> 00:09:42,160 Un tagad šeit, es esmu gatavojas iet uz priekšu un teiksim int, sauc to n, ir vienāds 186 00:09:42,160 --> 00:09:44,270 saņemt pozitīvu int. 187 00:09:44,270 --> 00:09:49,080 Un tāpat kā iegūt int jau eksistē jo darbinieki uzrakstīju to, es esmu gatavojas 188 00:09:49,080 --> 00:09:53,950 par tādu brīdi, ka iegūt pozitīva int pastāv, un tagad es esmu gatavojas 189 00:09:53,950 --> 00:09:57,730 iet uz priekšu un saka printf, paldies par% i / n ", n. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> Tāpēc tagad, ja es apkopo šo programmu, kas notiks manā terminālī 192 00:10:07,770 --> 00:10:09,075 logs apakšā ekrāna? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 Es esmu gatavojas, lai, iespējams, iegūtu, ka pati kļūda kā iepriekš. 195 00:10:13,900 --> 00:10:14,570 Tātad, pieņemsim mēģināt šo. 196 00:10:14,570 --> 00:10:16,450 Padarīt pozitīvi. 197 00:10:16,450 --> 00:10:19,900 Un atkal, netieši deklarācija par funkciju, saņemt pozitīvu int. 198 00:10:19,900 --> 00:10:21,970 Tātad, mēs varam atrisināt šo pāris veidos. 199 00:10:21,970 --> 00:10:27,310 Es esmu gatavojas saglabāt vienkāršu un vienkārši manu deklarāciju šeit un saņemt 200 00:10:27,310 --> 00:10:28,120 pozitīva int. 201 00:10:28,120 --> 00:10:29,720 Man vajag tā saukto parakstu. 202 00:10:29,720 --> 00:10:32,410 Paraksts vienkārši atsaucas uz estētikas 203 00:10:32,410 --> 00:10:34,090 Pirmajā rindā programmas. 204 00:10:34,090 --> 00:10:37,420 Tātad, ko vajadzētu saņemt pozitīvu int atgriešanās? 205 00:10:37,420 --> 00:10:37,970 >> Tātad int. 206 00:10:37,970 --> 00:10:41,540 Es domāju ideāli, tas atgriezīsies kaut kā pozitīva int, bet 207 00:10:41,540 --> 00:10:42,160 nepastāv. 208 00:10:42,160 --> 00:10:45,280 Mēs esam nav redzējis, ka starp mūsu datiem veidiem, tāpēc mums ir tikt galā ar 209 00:10:45,280 --> 00:10:47,170 Tas, ka mums ir ļoti maz datu tipi strādāt. 210 00:10:47,170 --> 00:10:50,360 Bet mēs varam atgriezties int un tikai ticu, ka tas ir pozitīvs. 211 00:10:50,360 --> 00:10:52,690 Tas būs saukt saņemt pozitīvu int. 212 00:10:52,690 --> 00:10:55,122 >> Un tagad kā par saviem argumentiem? 213 00:10:55,122 --> 00:10:56,440 Vai tas veikt jebkādu ievadi? 214 00:10:56,440 --> 00:10:58,280 Vai tas ir nepieciešams, kādu ieguldījumu? 215 00:10:58,280 --> 00:11:00,900 Tātad tas nav nepieciešams zināt iepriekš neko. 216 00:11:00,900 --> 00:11:03,220 Saņemt virkne nav, iegūt int nav. 217 00:11:03,220 --> 00:11:06,430 Printf nav - tai ir jābūt dažas ievade pagājis tajā - un tā atšifrējums 218 00:11:06,430 --> 00:11:09,020 vajag kādu ieguldījumu, bet saņemt pozitīva int nav. 219 00:11:09,020 --> 00:11:11,530 Tāpēc es esmu gatavojas nepārprotami pateikt kompilatoru spēkā neesošu. 220 00:11:11,530 --> 00:11:13,470 Void ir trūkums kaut kas cits. 221 00:11:13,470 --> 00:11:17,990 Tātad, par spēkā neesošu nozīmē nekas iet iekšā Šo iekavās, semikols. 222 00:11:17,990 --> 00:11:20,840 >> Un tagad apakšā manā failā - un atkal, es esmu vienkārši ir sava veida anālais 223 00:11:20,840 --> 00:11:23,640 Šeit liekot galveno augšpusē, kas ir laba prakse, jo šādā veidā, 224 00:11:23,640 --> 00:11:26,220 jebkurā laikā jūs vai kāds cits atver failu, to 225 00:11:26,220 --> 00:11:27,400 funkcionalitāte ir tiesības tur. 226 00:11:27,400 --> 00:11:29,660 Jūs varat nirt no kvadrātveida vienu. 227 00:11:29,660 --> 00:11:34,190 Tāpēc tagad es esmu gatavojas dublēt šo, saņemt pozitīvu int par spēkā neesošu, bet es neesmu 228 00:11:34,190 --> 00:11:35,430 gatavojas hit semikolu tagad. 229 00:11:35,430 --> 00:11:38,280 Es esmu gatavojas atvērt cirtaini bikšturi, un tagad man ir nepieciešams aizņemties 230 00:11:38,280 --> 00:11:39,700 dažas idejas no pirmdienas. 231 00:11:39,700 --> 00:11:44,450 >> Tātad, kā jūs atceraties, mēs kaut ko patīk darīt šādas darbības, kamēr 232 00:11:44,450 --> 00:11:45,830 kaut kas ir patiess. 233 00:11:45,830 --> 00:11:46,630 Un ko man darīt? 234 00:11:46,630 --> 00:11:51,540 Es tomēr kaut ko līdzīgu dot man pozitīvs vesels skaitlis, 235 00:11:51,540 --> 00:11:52,430 Mazliet ātri. 236 00:11:52,430 --> 00:11:53,540 Es varētu izmantot jebkuru vārdu es gribu. 237 00:11:53,540 --> 00:11:54,960 Un tad es ko? 238 00:11:54,960 --> 00:11:59,530 Int n vienāds nokļūt int, nav argumenti, lai to. 239 00:11:59,530 --> 00:12:00,550 >> Un paziņojums starpību. 240 00:12:00,550 --> 00:12:04,680 Kad jūs zvanu funkciju, ja lietojat funkcija, jums nav likts tukšumā. 241 00:12:04,680 --> 00:12:08,570 Jūs darīt tikai, ka, deklarējot funkcija, mācību kompilators to 242 00:12:08,570 --> 00:12:09,780 tam vajadzētu sagaidīt. 243 00:12:09,780 --> 00:12:11,650 Tātad jums nav nepieciešams, lai anulēta tur sevi. 244 00:12:11,650 --> 00:12:12,940 >> Un tagad kāds bija mans stāvoklis? 245 00:12:12,940 --> 00:12:19,670 Nu, n ir nav vienāds ar pozitīvu, bet tas ir tikai pseido-kodu. 246 00:12:19,670 --> 00:12:22,530 Tātad, kā es varu izteikt tas tīrākā? 247 00:12:22,530 --> 00:12:24,090 Tā mazāks par vai vienāds ar nulli. 248 00:12:24,090 --> 00:12:26,250 Tātad vēlreiz, ievērosiet, jūs varat darīt, mazāks par vai vienāds ar. 249 00:12:26,250 --> 00:12:28,100 Pat ja tas ir divas atsevišķas simbolus, jūs varat darīt to par 250 00:12:28,100 --> 00:12:29,350 klaviatūras kā tādu. 251 00:12:29,350 --> 00:12:33,950 >> Bet tur ir vēl kļūda, kas Es ieskrūvē up pēdējo reizi too. 252 00:12:33,950 --> 00:12:36,950 Man ir atzīt - 253 00:12:36,950 --> 00:12:37,460 tieši tā. 254 00:12:37,460 --> 00:12:39,640 Man ir atzīt n ārpus no cilpas. 255 00:12:39,640 --> 00:12:44,180 Tāpēc man ir nepieciešams, lai n šeit, un es nedomāju, vēlas atkārtoti paziņot to šeit 256 00:12:44,180 --> 00:12:46,480 citādi man jaunu mainīgo. 257 00:12:46,480 --> 00:12:48,860 Es tikai gribu, lai piešķirtu vērtību šeit. 258 00:12:48,860 --> 00:12:54,320 >> Un tagad es neesmu gluži izdarīt šeit. 259 00:12:54,320 --> 00:12:57,290 Ļaujiet man iegūt priekšā sevi un izlikties, es esmu darīts. 260 00:12:57,290 --> 00:13:01,220 Lai pozitīvi, un tagad tur ir jauna kļūda. 261 00:13:01,220 --> 00:13:04,550 Kontrole sasniedz beigu nav spēkā neesošu funkciju. 262 00:13:04,550 --> 00:13:07,760 Tātad jaunā kļūdas ziņojumu, bet, ja jūs veida gada ķircināt izņemot katra vārdiem, tā 263 00:13:07,760 --> 00:13:09,620 iespējams, mājieni par to, kas ir nepareizi. 264 00:13:09,620 --> 00:13:11,240 >> Control. 265 00:13:11,240 --> 00:13:14,250 Kontrole nozīmē tikai ar rīkojumu darbības programmā. 266 00:13:14,250 --> 00:13:16,510 Dators ir kontrolēt situāciju un kaut kas nogāja greizi. 267 00:13:16,510 --> 00:13:18,510 Tātad, tas sasniedz beigām , kas nav anulēts funkcija. 268 00:13:18,510 --> 00:13:21,760 Kāda funkcija ir tas acīmredzot atsaucoties uz? 269 00:13:21,760 --> 00:13:24,790 Kāda funkcija ir ne-par spēkā neesošu? 270 00:13:24,790 --> 00:13:27,400 Lai iegūtu pozitīvu int, un nedaudz neskaidri, ka labi, 271 00:13:27,400 --> 00:13:29,010 tas ir sava veida neesošu. 272 00:13:29,010 --> 00:13:33,070 Tā ir specifikāciju spēkā neesošu attiecībā uz tās argumenti, bet tā produkcija ir gatavojas 273 00:13:33,070 --> 00:13:34,540 būt tipa n. 274 00:13:34,540 --> 00:13:37,260 Tātad pa kreisi vārds ir tā sauktās atgriešanās tips. 275 00:13:37,260 --> 00:13:40,320 Iekšpusē vārds šeit ir ar nulles vai vairāk argumentus 276 00:13:40,320 --> 00:13:41,970 ka funkcija tiek. 277 00:13:41,970 --> 00:13:44,060 >> Tātad, kas man ir jādara? 278 00:13:44,060 --> 00:13:47,650 Šajā brīdī manā kodu, līnija 21, kur mirgo ātri tagad ir, es 279 00:13:47,650 --> 00:13:51,430 ir pozitīva int iekšpusē mainīgā sauc n. 280 00:13:51,430 --> 00:13:55,200 Kā es varu dot to atpakaļ uz main? 281 00:13:55,200 --> 00:13:55,960 Burtiski. 282 00:13:55,960 --> 00:13:59,320 Atgriezties n semikolu. 283 00:13:59,320 --> 00:14:04,090 >> Tik vienkārši, kā Colton atgriezās gabals papīrs ar atbildi uz mani, krītot 284 00:14:04,090 --> 00:14:07,020 ka gabals papīra maz melns kaste uz galda, kas darīt, ka 285 00:14:07,020 --> 00:14:10,100 kods, jūs burtiski vienkārši uzrakstīt, atgriezties n, un tas ir it kā Colton bija 286 00:14:10,100 --> 00:14:12,140 nododot man kaut ko fizisku atpakaļ. 287 00:14:12,140 --> 00:14:15,870 Šajā gadījumā, kas notiek, ir iegūt pozitīva int gatavojas atdot atpakaļ 288 00:14:15,870 --> 00:14:19,220 kas ir iespējams pozitīvs skaitlis kam? 289 00:14:19,220 --> 00:14:21,380 Ja tas, ka cenas galu galā? 290 00:14:21,380 --> 00:14:29,080 Kas nonāk šajā mainīgo, n, un tad mēs turpinātu ar deviņiem līniju. 291 00:14:29,080 --> 00:14:31,920 >> Tātad, citiem vārdiem sakot, lai no operācijas, šī programma sāk 292 00:14:31,920 --> 00:14:34,430 izpildes, un kompilators saprot, ak, jūs vēlaties bibliotēku? 293 00:14:34,430 --> 00:14:36,310 Ļaujiet man iet paķert kāds ir iekšā, ka. 294 00:14:36,310 --> 00:14:37,750 Ak, jūs vēlaties standarta IO bibliotēka? 295 00:14:37,750 --> 00:14:39,660 Ļaujiet man iet paķert kāds ir iekšā, ka. 296 00:14:39,660 --> 00:14:44,510 Ko kompilators pateikt sev kad tas hits līniju četri? 297 00:14:44,510 --> 00:14:47,980 Ak, jūs solīja īstenot funkciju sauc saņemt pozitīvu, bet 298 00:14:47,980 --> 00:14:50,820 mēs saņemam atpakaļ, ka vēlāk, kaut kas pa šo līniju. 299 00:14:50,820 --> 00:14:53,450 >> Int galvenais spēkā neesošu tikai nozīmē, lūk, iekšām manā programmā. 300 00:14:53,450 --> 00:14:54,990 Līnija septiņi ir tikai cirtaini lencēm. 301 00:14:54,990 --> 00:14:59,540 Līnija astoņi saka pa kreisi, sniedz me 32 biti uz skaitlim, to sauc n. 302 00:14:59,540 --> 00:15:02,160 Labajā pusē, tas ir sakot, saņemt pozitīvu int. 303 00:15:02,160 --> 00:15:07,120 Tagad pieņemsim pauzes, ka stāsts, jo tagad Man nav saglabāt pārvietojas manu kursoru uz leju. 304 00:15:07,120 --> 00:15:11,720 Mans kursors tagad iet uz leju šeit, jo tagad saņemt pozitīvu int izpilda. 305 00:15:11,720 --> 00:15:13,100 Int n ir deklarēta. 306 00:15:13,100 --> 00:15:14,040 Veiciet šādas darbības. 307 00:15:14,040 --> 00:15:16,090 Printf dod man vesels pozitīvs skaitlis. 308 00:15:16,090 --> 00:15:19,740 >> Saņemiet int no lietotāja, uzglabāt to n, un varbūt darīt atkal un atkal. 309 00:15:19,740 --> 00:15:23,010 Tas cilpa nozīmē, ka šis kodekss varētu izpildīt uz augšu un uz leju, piemēram, tas atkal 310 00:15:23,010 --> 00:15:25,810 un atkal, bet tad, kad lietotājs beidzot sadarbojas un dod man pozitīvs 311 00:15:25,810 --> 00:15:31,750 int, es hit līnija 21, kurā brīdī numurs tiek nodota atpakaļ, un kura viens 312 00:15:31,750 --> 00:15:34,280 man uzsvērt tagad? 313 00:15:34,280 --> 00:15:35,070 Nine. 314 00:15:35,070 --> 00:15:39,010 Kontroli, tā sakot, atgriežas rindā deviņi. 315 00:15:39,010 --> 00:15:40,650 Tas ir līnija, kas tagad atbild. 316 00:15:40,650 --> 00:15:43,250 >> Tātad tas, kas noticis visu šoreiz zem motora pārsega, bet 317 00:15:43,250 --> 00:15:46,480 kad mēs esam, ko izmanto funkcijas, piemēram, printf vai pat saņemt virkni, ka kāds cits 318 00:15:46,480 --> 00:15:50,600 rakstīja par jums, kontrole tika nodota off, lai kāds cits kods līnija 319 00:15:50,600 --> 00:15:51,290 ar auklu līniju. 320 00:15:51,290 --> 00:15:53,770 Tas ir vienkārši, mēs nevarētu redzēt to, un mēs nevarēju īsti attēlot to šajā 321 00:15:53,770 --> 00:15:57,620 programmu, jo tas ir dažās citās failu uz cietā diska 322 00:15:57,620 --> 00:16:00,000 nezinot mums. 323 00:16:00,000 --> 00:16:02,100 Tātad, pieņemsim patiesībā apkopo un palaist šo tagad. 324 00:16:02,100 --> 00:16:03,890 >> Padarīt pozitīvi. 325 00:16:03,890 --> 00:16:05,260 Aizpildi, tas ir progress. 326 00:16:05,260 --> 00:16:06,650 . / Pozitīva. 327 00:16:06,650 --> 00:16:08,020 Dodiet man vesels pozitīvs skaitlis. 328 00:16:08,020 --> 00:16:08,800 Būsim grūti. 329 00:16:08,800 --> 00:16:10,430 Negatīvs 1. 330 00:16:10,430 --> 00:16:11,360 Nulle. 331 00:16:11,360 --> 00:16:13,370 Pieņemsim arī tā 50. 332 00:16:13,370 --> 00:16:18,100 Paldies par 50, un tā kontrole tagad ir atgriezies. 333 00:16:18,100 --> 00:16:21,750 Kādi jautājumi, tad par to? 334 00:16:21,750 --> 00:16:23,180 Yeah? 335 00:16:23,180 --> 00:16:25,630 >> [Dzirdams]. 336 00:16:25,630 --> 00:16:26,130 >> Vēlreiz saku. 337 00:16:26,130 --> 00:16:27,860 Ak, labs jautājums. 338 00:16:27,860 --> 00:16:31,100 Tātad, jūs ievērosiet, paralēles, kas Es esmu veida griešanas stūrī uz. 339 00:16:31,100 --> 00:16:35,420 12 rindā, es saku, ir iespēja saņemt pozitīvu int atgriež int, bet tajā pašā 340 00:16:35,420 --> 00:16:39,660 loģika, tagad loģiski, ka sešas līnijas, es saku, ka galvenie atgriežas 341 00:16:39,660 --> 00:16:44,040 int, bet to, kas ir, mēs nekad bija kāds no mūsu programmas? 342 00:16:44,040 --> 00:16:46,470 Mums nekad nav bijis pieminēts šī atslēgas vārds atgriešanās. 343 00:16:46,470 --> 00:16:49,970 >> Tātad izrādās, ka uz C, vismaz versija par to, ka mēs izmantojam 344 00:16:49,970 --> 00:16:55,750 veikts 1999.gadā, tehniski, tas ir notiek automātiski. 345 00:16:55,750 --> 00:16:59,300 Anytime jums īstenot programmu, un jūs īstenotu funkciju sauc galvenais, 346 00:16:59,300 --> 00:17:04,230 ka funkcija atgriezīs nulli noklusējuma, ja jums nav teikt savādāk, 347 00:17:04,230 --> 00:17:05,849 un nulle ir tikai konvencija. 348 00:17:05,849 --> 00:17:09,430 Pasaule atgriež nulli tādējādi , kas norāda, ka viss ir labi, 349 00:17:09,430 --> 00:17:13,040 faktiski atstājot mūs ar četrus miljardus iespējamās lietas, kas varētu iet 350 00:17:13,040 --> 00:17:17,530 nepareizi tā, ka tad, ja mēs atgriezties vienu, ka varētu liecināt kodu, kas nozīmē, ka šis 351 00:17:17,530 --> 00:17:18,310 lieta nogāja greizi. 352 00:17:18,310 --> 00:17:20,589 Mēs varētu atgriezties divas, kas nozīmē, šī cita lieta nogāja greizi. 353 00:17:20,589 --> 00:17:23,440 Mēs varētu atgriezties četrus miljardus, kas nozīmē, ka šis Otra lieta, kas nogāja greizi. 354 00:17:23,440 --> 00:17:27,170 >> Un, ja jūs tagad domājat par savu PC vai Mac, jūs varētu atcerēties, ka 355 00:17:27,170 --> 00:17:29,610 reizēm jūs saņemsiet mistisks kļūdu ziņojumus no programmatūras, ka jūs esat 356 00:17:29,610 --> 00:17:32,650 izmantojot, un dažreiz tas ir cilvēka draudzīgs apraksts, bet tur ir 357 00:17:32,650 --> 00:17:35,265 bieži kods vai numurs uz ekrāna? 358 00:17:35,265 --> 00:17:37,800 Ja tas nenāk prātā, tikai saglabātu acu, kas par to. 359 00:17:37,800 --> 00:17:40,790 Tas ir parasti, ko šie kodi ir domāta. 360 00:17:40,790 --> 00:17:44,200 Viņi iekļauts Microsoft Word un citas programmas, tā, ka, ja jūs failu 361 00:17:44,200 --> 00:17:48,850 bug ziņojums ar uzņēmumu, jūs varat pastāstiet viņiem, ak, es saņēmu kļūdas numurs 45. 362 00:17:48,850 --> 00:17:51,750 Un daži programmētājs atpakaļ uzņēmumā var izskatīties, ka līdz ar viņa vai viņas 363 00:17:51,750 --> 00:17:54,940 kodu un teikt, ak, tas ir tāpēc, ka es šī kļūda, un tas ir iemesls, kāpēc lietotāju 364 00:17:54,940 --> 00:17:56,240 dabūju šo ziņu. 365 00:17:56,240 --> 00:17:59,490 >> Bet atklāti sakot, tas ir tikai nedaudz novērš uzmanību un nedaudz garlaicīgs, lai 366 00:17:59,490 --> 00:18:02,130 secina, ka, vismaz mūsu pirmās pāris programmas, tāpēc mēs esam 367 00:18:02,130 --> 00:18:02,970 ir izlaižot to. 368 00:18:02,970 --> 00:18:07,450 Bet visu šo laiku ik vienu no jūsu funkcijas galvenais ir slepeni bija tas 369 00:18:07,450 --> 00:18:11,600 līnija pievienoti automātiski jums, kompilatoru, tikai pēc vienošanās 370 00:18:11,600 --> 00:18:13,172 ietaupīt laiku. 371 00:18:13,172 --> 00:18:14,620 >> [Dzirdams]. 372 00:18:14,620 --> 00:18:16,250 >> Jums nav nepieciešams iekļaut to galvenais. 373 00:18:16,250 --> 00:18:16,700 Tas ir jauki. 374 00:18:16,700 --> 00:18:20,260 Jums nepieciešams iekļaut, ja Jums bija īstenojot funkciju, kā šis. 375 00:18:20,260 --> 00:18:22,850 Pretējā gadījumā funkcija dzīvoklis kas tas nedarbosies. 376 00:18:22,850 --> 00:18:24,480 Bet galvenais, tas nav nepieciešams. 377 00:18:24,480 --> 00:18:28,450 Pēc nedēļas vai divām, mēs sāksim saņemt vērā, ka ieradums, kad mēs vēlamies, lai sāktu 378 00:18:28,450 --> 00:18:29,690 nozīmētu kļūdas. 379 00:18:29,690 --> 00:18:32,550 Tiešām labs jautājums. 380 00:18:32,550 --> 00:18:36,880 >> Tik ātri verbālo pārtraukums pieminēt, ka šo piektdien, mums nebūs, kam pusdienas 381 00:18:36,880 --> 00:18:39,980 per se, bet mēs būsim ņemot vakariņas ar daži no studentiem un darbiniekiem. 382 00:18:39,980 --> 00:18:42,940 Ja vēlaties pievienoties mums, jūtas brīvi iet uz cs50.net/rsvp. 383 00:18:42,940 --> 00:18:45,030 06:00 šo piektdien. 384 00:18:45,030 --> 00:18:47,990 Kosmoss ir, kā vienmēr, ir ierobežoti, bet mēs turpināt darīt šo par gandrīz 385 00:18:47,990 --> 00:18:51,420 katru nedēļu ja telpa iztek šonedēļ. 386 00:18:51,420 --> 00:18:56,160 >> Tātad cliffhanger, ka mēs left off par Pirmdiena bija, ka stīgas faktiski var 387 00:18:56,160 --> 00:19:00,520 jāindeksē uz, kas vienkārši nozīmē, ka jūs var saņemt pie pirmās rakstzīmes, 388 00:19:00,520 --> 00:19:03,770 Otrais burts, trešā zīme un tā tālāk, jo jūs varat 389 00:19:03,770 --> 00:19:07,860 efektīvi domā par virkni, piemēram, sveiki, kā arī šajā gadījumā pieci 390 00:19:07,860 --> 00:19:09,670 burti iekšpusē kastes. 391 00:19:09,670 --> 00:19:13,370 Un jūs varat saņemt pie katra no tiem kastes ar ko sintakses vai mēs 392 00:19:13,370 --> 00:19:15,230 ieviest pirmdien? 393 00:19:15,230 --> 00:19:16,760 Šie kvadrātiekavas uz tastatūras. 394 00:19:16,760 --> 00:19:18,980 Ka tikai nozīmēja iet uz nulles vietu. 395 00:19:18,980 --> 00:19:22,840 >> Mēs sākt skaitīšanu no nulles, tāpēc kronšteins nulle nozīmē h, kronšteins viens 396 00:19:22,840 --> 00:19:25,170 nozīmē e, un tā tālāk. 397 00:19:25,170 --> 00:19:28,490 Un tā visu laiku, kad mēs esam bijuši izmantojot virknes un ierakstot "sveiki" 398 00:19:28,490 --> 00:19:31,250 un "pasaules", un citas lietas par ekrāns, tas ir glabāti 399 00:19:31,250 --> 00:19:32,820 kastēs, kā šis. 400 00:19:32,820 --> 00:19:33,370 Un veikt minējums. 401 00:19:33,370 --> 00:19:37,470 Kāda katra kaste pārstāv fiziski iekšpusē datora? 402 00:19:37,470 --> 00:19:38,250 >> [Dzirdams]. 403 00:19:38,250 --> 00:19:39,150 >> Žēl? 404 00:19:39,150 --> 00:19:39,580 >> Blondīne. 405 00:19:39,580 --> 00:19:44,760 >> Tātad raksturs, protams, gadījumā, ja stīgas, un raksturs ir tikai 406 00:19:44,760 --> 00:19:46,800 astoņi biti vai viens baits. 407 00:19:46,800 --> 00:19:49,550 Tātad, jūs, iespējams, ir vismaz neskaidri iepazinušies ar to, ka jūsu 408 00:19:49,550 --> 00:19:50,500 datoram ir atmiņas. 409 00:19:50,500 --> 00:19:52,110 Tā ir divu veidu atmiņas vismaz. 410 00:19:52,110 --> 00:19:54,810 Viens no tiem ir cietā diska, kur jums saglabāt sīkumi pastāvīgi, un tas ir 411 00:19:54,810 --> 00:19:57,400 parasti ir liels, lai jūs varētu būt filmas un mūziku, un tā tālāk. 412 00:19:57,400 --> 00:20:04,010 >> Tad jums ir cita veida atmiņas sauc RAM, R-A-M, Random Access 413 00:20:04,010 --> 00:20:07,510 Atmiņa, un tas ir veids, atmiņas kas tiek izmantota, kad jūsu dators ir 414 00:20:07,510 --> 00:20:11,520 rādīt bet, ja jūs zaudējat varu vai jūsu baterija nomirst, viss, kas glabājas 415 00:20:11,520 --> 00:20:15,300 RAM pazūd, ja jūs zaudējat jauda vispār, jo tas nav 416 00:20:15,300 --> 00:20:16,060 noturīgas. 417 00:20:16,060 --> 00:20:19,120 Jums parasti ir, šajās dienās, GIG no tā, divi koncerti, varbūt vairāk. 418 00:20:19,120 --> 00:20:23,490 Un RAM otrādi ir, ka tas ir daudz daudz, daudz ātrāk nekā cietais disks 419 00:20:23,490 --> 00:20:27,390 vai pat SSD diskdziņi šajās dienās, bet tas parasti ir dārgāka tāpēc 420 00:20:27,390 --> 00:20:28,480 Jums ir mazāk par to. 421 00:20:28,480 --> 00:20:32,400 >> Tātad šodienas saruna tiešām attiecas RAM, šāda veida atmiņas, kas 422 00:20:32,400 --> 00:20:35,270 eksistē tikai tad, kad tur ir spēks tiek ievadīti datorā. 423 00:20:35,270 --> 00:20:40,530 Tātad, ja jūs tipa in H-E-L-L-O, Enter tastatūra, H notiek vienā 424 00:20:40,530 --> 00:20:44,550 baits RAM, E iet vēl RAM baitu, kā tas ir 425 00:20:44,550 --> 00:20:45,800 pārējā vārda. 426 00:20:45,800 --> 00:20:49,010 Tātad, atcerēties to, ko mēs varējām darīt pēdējo reizi bija šī. 427 00:20:49,010 --> 00:20:53,940 Ļaujiet man iet uz priekšu un atvērt failu ka mēs sauc string.c, un atcerēties 428 00:20:53,940 --> 00:20:56,860 ka tas izskatījās nedaudz kaut kas līdzīgs šim. 429 00:20:56,860 --> 00:20:59,860 Ļaujiet man faktiski roll atpakaļ un mainīt tas ir tieši tas izskatījās, 430 00:20:59,860 --> 00:21:02,654 virknes garums s. 431 00:21:02,654 --> 00:21:04,560 >> Tā izskatās pēc programmas šeit. 432 00:21:04,560 --> 00:21:08,530 Mēs ietver CS50 bibliotēku, lai ka mēs varam izmantot saņemt virkni. 433 00:21:08,530 --> 00:21:11,400 Mēs arī standarta io.h lai mēs varētu izmantot printf. 434 00:21:11,400 --> 00:21:13,580 Kāpēc mēs arī string.h? 435 00:21:13,580 --> 00:21:16,980 Tas bija jauns pirmdien. 436 00:21:16,980 --> 00:21:18,230 Tāpēc mēs vēlējāmies virknes garumu. 437 00:21:18,230 --> 00:21:19,090 Str leng. 438 00:21:19,090 --> 00:21:21,470 Cilvēki nolēma gadus atpakaļ, pieņemsim tikai būt īss. 439 00:21:21,470 --> 00:21:24,290 Tā vietā, nosaucot to par "virknes garums," sauksim to "str leng", un ļaujiet 440 00:21:24,290 --> 00:21:28,540 pasaules skaitlis, ka,, un tā tas ir ko mēs piekļūt ar string.h. 441 00:21:28,540 --> 00:21:29,390 >> Tas ir pazīstams. 442 00:21:29,390 --> 00:21:30,320 Tas ir pazīstams. 443 00:21:30,320 --> 00:21:31,450 Tas ir pazīstams. 444 00:21:31,450 --> 00:21:32,370 Tas ir nedaudz jauns. 445 00:21:32,370 --> 00:21:35,420 22 rindā - un mēs būsim atpakaļ uz šo, bet tagad zinu - 446 00:21:35,420 --> 00:21:37,880 un jūs tikai zināt, tas no tā, lasīt dokumentāciju vai ja 447 00:21:37,880 --> 00:21:39,010 Jūs zināja, C jau - 448 00:21:39,010 --> 00:21:41,510 get virkne dažreiz var screw up. 449 00:21:41,510 --> 00:21:45,130 Ja lietotājs ir patiešām sacīkstes vai nevēlas sadarboties, un viņš vai viņa vienkārši 450 00:21:45,130 --> 00:21:49,450 nav rakstīt kaut ko pie klaviatūras vai veidi tik daudz pie klaviatūras, ka 451 00:21:49,450 --> 00:21:53,760 tas nomāc datora atmiņu, teorētiski, iegūt stīgu varētu atgriezties 452 00:21:53,760 --> 00:21:56,270 kaut kas nav rakstzīmju virkne. 453 00:21:56,270 --> 00:22:01,930 Tas varētu atgriezties īpašu sauc vērtību NULL visos vākiem, N-U-L-l, un tas ir, 454 00:22:01,930 --> 00:22:03,390 tikai tā saukto sargs vērtību. 455 00:22:03,390 --> 00:22:08,010 Tā ir īpaša vērtība, kas nozīmē kaut kas slikts ir noticis šajā gadījumā. 456 00:22:08,010 --> 00:22:10,520 Tas ir, ja nav virknes. 457 00:22:10,520 --> 00:22:16,190 >> Tāpēc null es esmu pārbaudot vienkārši tā, ka, garš stāsts īss, str leng un 458 00:22:16,190 --> 00:22:20,230 citas funkcijas, kas nāk ar C, ja viņi gaida virkne, bet jūs nodot tos 459 00:22:20,230 --> 00:22:23,630 trūkums virknes, ja jums iet viņiem nulle, datoru vai programmu 460 00:22:23,630 --> 00:22:25,000 būs tikai crash tieši. 461 00:22:25,000 --> 00:22:25,610 Tā tiks pakārts. 462 00:22:25,610 --> 00:22:27,250 Tas būs uzmest dažas kļūdas paziņojumu. 463 00:22:27,250 --> 00:22:28,690 Sliktas lietas notiks. 464 00:22:28,690 --> 00:22:31,130 Tātad, pat ja tas vēl nav labi definētas - 465 00:22:31,130 --> 00:22:33,730 tas būs daudz lietderīgāk nedēļā vai divi - 22 līnija, tas ir tikai 466 00:22:33,730 --> 00:22:38,790 piemērs sevis aizsargu kļūdu pārbaudi tikai gadījumā, ja vienu reizi no 467 00:22:38,790 --> 00:22:42,040 miljons kaut kas noiet greizi, pie Vismaz mana programma nav crash. 468 00:22:42,040 --> 00:22:45,960 >> Tātad, ja s nav vienāds ar kaut ko sliktu, Man ir šis cilpas, un tas bija 469 00:22:45,960 --> 00:22:47,710 kur mums bija, ka citi jauns gabals sintaksi. 470 00:22:47,710 --> 00:22:51,580 Man ir cilpa atkārtojot no nulle uz augšu ar garumu s. 471 00:22:51,580 --> 00:22:56,140 Un tad šeit, es biju drukāšanas out s kronšteins i, bet kāpēc es izmantot% c visi no 472 00:22:56,140 --> 00:23:00,770 pēkšņi nevis% s pat lai gan s ir virkne? 473 00:23:00,770 --> 00:23:02,110 Tas ir raksturs, vai ne? 474 00:23:02,110 --> 00:23:06,560 S ir virkne, bet s kronšteins kaut kas, s kronšteins i kur i ir nulle 475 00:23:06,560 --> 00:23:10,380 vai viens vai divi, kas ir individuāls rakstzīmju virknē, un tāpēc 476 00:23:10,380 --> 00:23:14,970 ka printf ir jābūt informētam, ka tas ir patiešām raksturs gaidīt. 477 00:23:14,970 --> 00:23:18,096 >> Un tad atceros, ko darīja Programma patiesībā darīt? 478 00:23:18,096 --> 00:23:19,848 >> Iespiests to, kolonnās. 479 00:23:19,848 --> 00:23:21,120 >> Jā, tieši tā. 480 00:23:21,120 --> 00:23:24,990 Tas tikko iespiests vārdus, ko es rakstīt kolonna, vienu simbolu katrā rindā. 481 00:23:24,990 --> 00:23:26,190 Tātad, pieņemsim redzēt to vēlreiz. 482 00:23:26,190 --> 00:23:27,810 Tātad, lai virkni. 483 00:23:27,810 --> 00:23:30,200 Sast OK. . / String. 484 00:23:30,200 --> 00:23:35,560 Let me tipa H-E-L-L-O, Enter, un tiešām man to, katrā rindiņā vienu. 485 00:23:35,560 --> 00:23:37,280 >> Tātad, ļaujiet man darīt vienu optimizāciju šeit. 486 00:23:37,280 --> 00:23:40,240 Ja jūs domājat par to, it īpaši, ja Jūs esat ieprogrammēts agrāk, tur ir 487 00:23:40,240 --> 00:23:43,340 varbūt neefektivitāte 24 rindā. 488 00:23:43,340 --> 00:23:46,160 Citiem vārdiem sakot, tas ne vienmēr labākais dizains. 489 00:23:46,160 --> 00:23:50,200 Vienkāršs, vismaz reizi tevi atcerēties, kas str leng ir, bet tas ir 490 00:23:50,200 --> 00:23:52,640 darīt kaut ko mēms iespējami. 491 00:23:52,640 --> 00:23:54,863 Kas varētu būt? 492 00:23:54,863 --> 00:23:56,280 >> [Dzirdams]. 493 00:23:56,280 --> 00:23:56,800 >> Tieši tā. 494 00:23:56,800 --> 00:24:00,340 Tas ir arī pārbaudes par garumu s katru reizi, pat ja 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O ir vienmēr notiek ir piecas rakstzīmes. 496 00:24:02,980 --> 00:24:05,490 Katru reizi, izmantojot šīs cilpas, pieci nemainās. 497 00:24:05,490 --> 00:24:08,750 Es varētu būt palielināšanai i, bet ko ir garums no s uz katru 498 00:24:08,750 --> 00:24:09,690 atkārtojuma šīs cilpas? 499 00:24:09,690 --> 00:24:15,810 Tas ir piecas, tas ir pieci, tas ir pieci, un bet es tomēr lūdzot šo 500 00:24:15,810 --> 00:24:18,320 jautājums atkal un atkal un atkal. 501 00:24:18,320 --> 00:24:20,750 Tagad godīgi sakot, dators ir tik nopelt ātrs, neviens gatavojas paziņojums 502 00:24:20,750 --> 00:24:23,780 starpība šajā gadījumā, bet šie veidi Nabadzīgo dizains lēmumus var 503 00:24:23,780 --> 00:24:28,330 sākt pievienot uz augšu, ja kompilators pats nemēģina noteikt šo par jums, kas 504 00:24:28,330 --> 00:24:30,630 tas parasti nebūtu, pie vismaz iekārtā. 505 00:24:30,630 --> 00:24:31,540 >> Tāpēc es esmu gatavojas darīt to. 506 00:24:31,540 --> 00:24:34,580 Es esmu gatavojas pievienot komatu pēc mans pirmais mainīgais, i. 507 00:24:34,580 --> 00:24:37,310 Es esmu gatavojas sniegt sev citu mainīgs, aicinot to n, tikai ar 508 00:24:37,310 --> 00:24:41,330 konvenciju par numuriem, un tad es esmu gatavojas piešķirt n vērtību virknes 509 00:24:41,330 --> 00:24:42,530 garums no s. 510 00:24:42,530 --> 00:24:46,060 Un tad es esmu gatavojas mainīt mans stāvoklis ir tas, ko? 511 00:24:46,060 --> 00:24:51,960 Es esmu gatavojas mainīt savu stāvokli līdz kamēr i ir mazāks nekā n. 512 00:24:51,960 --> 00:24:55,700 >> Tāpēc tagad, cik reizes es esmu pārbaudot garumu s? 513 00:24:55,700 --> 00:25:00,110 Vienu reizi, bet tas ir OK, lai pārbaudītu, i pret n atkal un atkal, jo tagad tiem 514 00:25:00,110 --> 00:25:03,170 vērtības nav reāli mainās. 515 00:25:03,170 --> 00:25:06,020 Tagad, lai tagad, tikai zinu, ka jebkurā laikā jūs zvanu funkciju, tur ir mazliet 516 00:25:06,020 --> 00:25:09,930 pieskaitāmās izmaksas, kas nav pietiekami, lai atturētu jūs tiešām no kādreiz, izmantojot funkcijas, bet 517 00:25:09,930 --> 00:25:12,750 protams, ja tur ir koda līnija patīk, ka - un līnijas saņems 518 00:25:12,750 --> 00:25:15,490 interesantāks pirms ilgi - ja tur ir iespēja domāt, ja es 519 00:25:15,490 --> 00:25:18,320 ierakstiet šo kodu, cik reizes, tas izpilda? 520 00:25:18,320 --> 00:25:20,950 Jūs sākat redzēt laika gaitā ir veiktspēju jūsu programmas var 521 00:25:20,950 --> 00:25:21,660 patiešām mainās. 522 00:25:21,660 --> 00:25:24,110 >> Patiesībā, viens no problēmas nosaka mēs esam darīts gadu iepriekš saistīta 523 00:25:24,110 --> 00:25:27,600 īsteno, kā jūs varētu atsaukt no nedēļa nulle, pareizrakstības pārbaudītājs, bet 524 00:25:27,600 --> 00:25:31,380 pareizrakstības pārbaudītājs, kas ir paredzēti, lai atbalstītu no 150000 vārdnīca plus 525 00:25:31,380 --> 00:25:32,860 vārdi, ka mēs sniedz jums puiši. 526 00:25:32,860 --> 00:25:37,100 Jums būtu rakstīt kodu, kas slodzes šie vārdi uz RAM, tāpēc uz 527 00:25:37,100 --> 00:25:40,700 kastes, piemēram, mēs redzējām uz ekrāna brīdi atpakaļ, un pēc tam tik ātri, kā jūs 528 00:25:40,700 --> 00:25:43,740 iespējams, jums ir nepieciešams, lai varētu atbildēt jautājums par formu, tas ir vārds 529 00:25:43,740 --> 00:25:44,280 kļūdaini? 530 00:25:44,280 --> 00:25:45,420 Vai šis vārds nepareizi? 531 00:25:45,420 --> 00:25:46,770 Vai šis vārds nepareizi? 532 00:25:46,770 --> 00:25:49,525 >> Un kaut ko līdzīgu, ka tas, ko mēs esam darīts gadu iepriekš, ir pārvērtuši to, 533 00:25:49,525 --> 00:25:53,500 kaut arī opt-in brīvprātīgās konkurss par veidu, ar kuru 534 00:25:53,500 --> 00:25:59,470 studentiem, kuri izmanto mazāk RAM un mazāk laiks, mazāk CPU cikli, galu galā 535 00:25:59,470 --> 00:26:02,640 burbuļo uz augšu mazliet vadītājs valdes vai rangu, ka mēs likts uz 536 00:26:02,640 --> 00:26:04,770 Kurss mājaslapa kā mēs esam darīts gadu iepriekš. 537 00:26:04,770 --> 00:26:08,100 Tātad vēlreiz, pilnīgi obligāta, bet tas runā ar dizaina iespējām 538 00:26:08,100 --> 00:26:11,250 kas ir priekšā, kad mēs sākam ēkas atop daži no tiem 539 00:26:11,250 --> 00:26:14,010 pamatelementiem. 540 00:26:14,010 --> 00:26:16,780 >> Tātad, ļaujiet man iet atpakaļ uz šo diagramma tikai mirklis un atklāt maz 541 00:26:16,780 --> 00:26:17,610 kaut ko vairāk. 542 00:26:17,610 --> 00:26:21,400 Tas tiešām ir stīgu, un mēs esam veikuši priekšrocība dažiem bibliotēku, 543 00:26:21,400 --> 00:26:25,150 standarta io.h, kas ir - 544 00:26:25,150 --> 00:26:26,110 >> Printf. 545 00:26:26,110 --> 00:26:27,860 >> Printf, cita starpā. 546 00:26:27,860 --> 00:26:31,540 cs50.h, kas ir iegūt int un saņemt virkni un tā tālāk, string.h, kas 547 00:26:31,540 --> 00:26:32,570 bija str Leng. 548 00:26:32,570 --> 00:26:34,800 Bet izrādās, tur ir vēl viens. 549 00:26:34,800 --> 00:26:38,540 Atklāti sakot, tur ir daudz un daudz galvenē failus, kas atzīt funkcijas 550 00:26:38,540 --> 00:26:43,320 bibliotēkām, bet tas ctype.h ir faktiski būs nedaudz 551 00:26:43,320 --> 00:26:46,900 izdevīgi, jo es esmu gatavojas iet uz priekšu un īstenot vienu 552 00:26:46,900 --> 00:26:48,120 citu programmu šeit. 553 00:26:48,120 --> 00:26:52,420 >> Ļaujiet man iet uz priekšu un atvērt kaut ko Es rakstīja sauc iepriekš 554 00:26:52,420 --> 00:26:55,750 capitalize.c, un pieņemsim Paskaties, kā tas darbojas. 555 00:26:55,750 --> 00:27:00,340 Ievērojiet, ka es esmu, izmantojot šajā versijā par to, trīs pazīstami failus. 556 00:27:00,340 --> 00:27:04,110 Ievērojiet, ka 18 rindā, es esmu iegūt teksta rindiņu. 557 00:27:04,110 --> 00:27:07,660 Paziņojuma 21 rindā, es esmu apgalvojot, ka šādu kodu gatavojas 558 00:27:07,660 --> 00:27:12,170 kapitalizēt s, kāds lietotājs ievadījis in, un kā es daru, ka? 559 00:27:12,170 --> 00:27:13,300 Nu, es esmu ņemot - 560 00:27:13,300 --> 00:27:14,750 mācība, kas gūta pēdējo reizi - 561 00:27:14,750 --> 00:27:18,370 Es esmu paziņojot, i un n un atkārtojot pār virknē rakstzīmes. 562 00:27:18,370 --> 00:27:22,720 Un tad kāds ir šis bloks kods ar 27 24 līnija 563 00:27:22,720 --> 00:27:24,550 darot lajs izteiksmē? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> Mazo burtu atpakaļ. 566 00:27:29,730 --> 00:27:30,430 >> Tieši tā. 567 00:27:30,430 --> 00:27:35,920 Ja s kronšteins i - tā, ja i-th raksturs s, kas ir specifisks 568 00:27:35,920 --> 00:27:40,220 char virknē, ir lielāks nekā vai vienāds ar mazo un - 569 00:27:40,220 --> 00:27:42,670 atgādināt, ka dubultā aizvieto & zīmes neizsaka un - 570 00:27:42,670 --> 00:27:46,810 un tas pats raksturs, s kronšteins i, ir mazāks par vai vienāds ar mazo z, 571 00:27:46,810 --> 00:27:50,600 tas nozīmē, ka tas ir vai b vai c vai dot, dot, dot, vai z, kas nozīmē, 572 00:27:50,600 --> 00:27:51,340 tas ir mazie. 573 00:27:51,340 --> 00:27:52,900 Ko es gribu darīt šādā gadījumā? 574 00:27:52,900 --> 00:27:55,010 Nu, es varu darīt nedaudz cryptically, bet 575 00:27:55,010 --> 00:27:56,160 pieņemsim ķircināt to intervālu. 576 00:27:56,160 --> 00:28:00,210 >> Es esmu dodas uz zvanu printf, drukā% c jo es gribu, lai to izdrukātu šo 577 00:28:00,210 --> 00:28:01,580 rakstura uz ekrāna. 578 00:28:01,580 --> 00:28:06,650 Es esmu tam gatavojas veikt s kronšteins Es, i-th raksturs s, un pēc tam, kāpēc 579 00:28:06,650 --> 00:28:12,330 es daru šo maz triks šeit, mazo mīnus kapitāla A? 580 00:28:12,330 --> 00:28:16,352 Kas ir tas, ka gatavojas sniegt me, vispārīgi runājot? 581 00:28:16,352 --> 00:28:18,600 >> [Dzirdams]. 582 00:28:18,600 --> 00:28:19,390 >> Tieši tā. 583 00:28:19,390 --> 00:28:20,860 Man nav īsti atcerēties - 584 00:28:20,860 --> 00:28:24,390 tas bija 65 kapitāla A. Man nav īsti atceries, ko mazie ir, 585 00:28:24,390 --> 00:28:25,540 bet vienalga. 586 00:28:25,540 --> 00:28:26,580 Datoru zina. 587 00:28:26,580 --> 00:28:30,380 Tātad, sakot, mazajiem mīnuss kapitālu, tas ir dīvaini, lai būtu 588 00:28:30,380 --> 00:28:33,530 atņemot vienu char no cita, bet kādi ir simboli zem motora pārsega? 589 00:28:33,530 --> 00:28:34,520 Viņi vienkārši numuri. 590 00:28:34,520 --> 00:28:36,980 Tātad, neatkarīgi šie skaitļi ir, ļaujiet datoram atcerēties 591 00:28:36,980 --> 00:28:38,240 nevis man cilvēku. 592 00:28:38,240 --> 00:28:41,710 >> Tātad mazajiem mīnusa kapitālu ir gatavojas sniegt man atšķirību. 593 00:28:41,710 --> 00:28:45,370 Tas notiek, ir 32, un kas būtu gadījumā mazo b un kapitāla B 594 00:28:45,370 --> 00:28:45,930 un tā tālāk. 595 00:28:45,930 --> 00:28:47,710 Tas paliek nemainīgs, par laimi. 596 00:28:47,710 --> 00:28:51,930 Tāpēc es esmu būtībā sakot, veikt mazo burtu, atņemt off, ka 597 00:28:51,930 --> 00:28:55,340 standarta atšķirība, un ka Efektīvi izmaiņu s kronšteins i no 598 00:28:55,340 --> 00:28:59,400 mazo līdz, protams, lielie burti, bez mana tiešām, kam jādomā 599 00:28:59,400 --> 00:29:03,040 par to, vai atceries, kādi bija tie, skaitļi, mēs runājām par to, kad astoņu 600 00:29:03,040 --> 00:29:04,800 brīvprātīgie nāca uz skatuves? 601 00:29:04,800 --> 00:29:08,800 Tagad tikmēr, kas cits, ja tas nav mazo burtu, kā noteikts 602 00:29:08,800 --> 00:29:10,400 līdz 24 līnija, vienkārši izdrukāt to ārā. 603 00:29:10,400 --> 00:29:12,590 Es tikai gribu pieskarties rakstzīmes, kas bija 604 00:29:12,590 --> 00:29:14,410 faktiski sākotnēji mazie. 605 00:29:14,410 --> 00:29:15,150 >> Tātad, pieņemsim redzēt. 606 00:29:15,150 --> 00:29:17,400 Padarīt kapitalizēt. 607 00:29:17,400 --> 00:29:18,470 Sastādītāja, OK. 608 00:29:18,470 --> 00:29:19,730 . / Kapitalizēt. 609 00:29:19,730 --> 00:29:23,530 Un man ierakstīt H-E-L-L-O ar mazajiem burtiem, Enter. 610 00:29:23,530 --> 00:29:26,370 Un paziņojums, ka tas tiek pārvērsts uz lielajiem burtiem. 611 00:29:26,370 --> 00:29:27,940 Ļaujiet man darīt to atkal ar citu vārdu. 612 00:29:27,940 --> 00:29:32,720 Kā par D-A-V-I-D ar pirmo D kapitalizētas kā vārds parasti ir? 613 00:29:32,720 --> 00:29:33,560 Enter. 614 00:29:33,560 --> 00:29:34,870 Pamanāt, ka tas joprojām ir pareiza. 615 00:29:34,870 --> 00:29:40,250 Tas tikai izvadīt, ka pirmā D nemainīgs via ka cits būvēt. 616 00:29:40,250 --> 00:29:42,170 >> Tātad, paturiet prātā, tad, Pāris lietas šeit. 617 00:29:42,170 --> 00:29:45,060 Viens, ja jūs kādreiz vēlaties pārbaudīt divus apstākļi vienu reizi, jūs varat, un tos 618 00:29:45,060 --> 00:29:46,500 kopā kā prognozējām. 619 00:29:46,500 --> 00:29:49,900 Jūs varat salīdzināt rakstzīmes šādā veidā un efektīvi ārstēt rakstzīmes kā 620 00:29:49,900 --> 00:29:53,050 numurus, bet atklāti sakot, tas ir tik nopelt mistisks es nekad atcerēties 621 00:29:53,050 --> 00:29:56,510 Kā nākt klajā ar to no nulles bez pamatojuma caur to diezgan 622 00:29:56,510 --> 00:29:57,140 mazliet laika. 623 00:29:57,140 --> 00:30:00,590 >> Vai nav tā bijis jauki, ja kāds tur rakstīja funkciju sauc, ir 624 00:30:00,590 --> 00:30:05,390 samazināt, kas varētu atbildēt man patiess vai viltus, šis raksturs ir mazie? 625 00:30:05,390 --> 00:30:09,350 Nu par laimi, kurš rakstīja ctype.h darīja tieši tā. 626 00:30:09,350 --> 00:30:15,540 Ļaujiet man iet šeit un pievienot ctype par c veidiem, un tagad ļaujiet man iet uz leju šeit un 627 00:30:15,540 --> 00:30:18,820 pārrakstīt šo līniju šādi. 628 00:30:18,820 --> 00:30:27,510 >> Tātad, ja to sauc ir zemāks, es apgalvot, s kronšteins i, tad es esmu gatavojas, lai izdzēstu 629 00:30:27,510 --> 00:30:29,400 šīs divas līnijas kopā. 630 00:30:29,400 --> 00:30:32,570 Tāpēc tagad kāds cits, es esmu cerot, rakstīja sauc funkcija ir zemāks, un tas 631 00:30:32,570 --> 00:30:36,250 Izrādās, viņi darīja, un viņi deklarē tā iekšpusē ctype.h. 632 00:30:36,250 --> 00:30:39,480 Un tagad es esmu gatavojas atstāt līniju 27 viens pats, es esmu gatavojas atstāt līniju 31 633 00:30:39,480 --> 00:30:41,890 vien, bet paziņojums, cik daudz es esmu pastiprināja manu kodu. 634 00:30:41,890 --> 00:30:42,690 Tas tagad ir tīrāks. 635 00:30:42,690 --> 00:30:47,250 Tas ir tik grūti skatīties cauri jo tagad funkciju, turklāt ir 636 00:30:47,250 --> 00:30:50,080 tik brīnišķīgi nosaukts tā vienkārši dara to, ko tā saka. 637 00:30:50,080 --> 00:30:51,520 >> Tāpēc tagad es esmu gatavojas, lai saglabātu to. 638 00:30:51,520 --> 00:30:52,930 Es esmu gatavojas, lai tālinātu. 639 00:30:52,930 --> 00:30:56,650 Un tāpat kā Scratch jūs varētu būt Booleans, Būla vērtības patiess vai 640 00:30:56,650 --> 00:31:01,530 nepatiesa, tas ir tieši tas, kas ir zemākas efektīvi peļņu. 641 00:31:01,530 --> 00:31:02,960 Ļaujiet man recompile. 642 00:31:02,960 --> 00:31:04,500 Ļaujiet man atkārtoti palaist. 643 00:31:04,500 --> 00:31:07,350 Un tagad pamēģināsim vēlreiz, H-E-L-L-O, Enter. 644 00:31:07,350 --> 00:31:07,970 Tas ir diezgan laba. 645 00:31:07,970 --> 00:31:10,150 Un mēģiniet vēlreiz, lai pārliecinātos, es nav screw kaut augšu. 646 00:31:10,150 --> 00:31:11,670 Tas ir kapitalizētas kā labi. 647 00:31:11,670 --> 00:31:14,190 >> Bet tas nav pietiekami labs, jo Otra lieta, ka es esmu nekad gatavojas 648 00:31:14,190 --> 00:31:19,090 atceraties, ja vien es strādāju ar to patiešām Uzmanīgi uz, teiksim, papīrs ir 649 00:31:19,090 --> 00:31:19,920 tas damn līniju. 650 00:31:19,920 --> 00:31:23,450 Vai tas nebūtu jauki, ja tur bija funkcija aicināti augšējo? 651 00:31:23,450 --> 00:31:26,930 Nu izrādās, ka tas ir ctype.h kā labi. 652 00:31:26,930 --> 00:31:30,150 Es iešu uz priekšu un tips - 653 00:31:30,150 --> 00:31:31,340 ļaujiet man sniegt šo līniju atpakaļ. 654 00:31:31,340 --> 00:31:36,430 Tā vietā, lai to šeit, ļaujiet man iet uz priekšu un teikt, aizvietot% c ar 655 00:31:36,430 --> 00:31:42,110 rezultāts aicinot šo funkciju, lai augšējā uz i-raksturu s. 656 00:31:42,110 --> 00:31:45,430 Un tagad pamanāt, ka tas kļūst mazliet balstīts. 657 00:31:45,430 --> 00:31:48,870 Man ir izsekot, cik daudz iekavas es esmu atvērt un aizvērt. 658 00:31:48,870 --> 00:31:50,050 >> Tāpēc tagad tas ir pat tīrāks. 659 00:31:50,050 --> 00:31:53,460 Tagad šī programma kļūst labāk, un labāk izstrādāti varbūt tāpēc, ka tas ir 660 00:31:53,460 --> 00:31:56,450 daudz, daudz vieglāk uztveramu, bet tas nav pieņemsim labot. 661 00:31:56,450 --> 00:31:57,600 Padarīt kapitalizēt. 662 00:31:57,600 --> 00:31:58,930 . / Kapitalizēt. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. Pieņemsim palaist to no jauna, D-A-V-I-D. Labi, tāpēc mēs esam vēl 664 00:32:03,220 --> 00:32:04,250 diezgan laba forma. 665 00:32:04,250 --> 00:32:06,030 >> Bet tagad ar augšējo. 666 00:32:06,030 --> 00:32:09,720 Es ierosinu, ka tur ir vēl viens izsmalcinātība mēs varētu darīt, kas būtu 667 00:32:09,720 --> 00:32:12,820 ļoti jauki, ka patiešām varētu pastiprināt up šo kodu un tiešām dod mums piecas 668 00:32:12,820 --> 00:32:15,150 no pieciem projektēšanas, piemēram. 669 00:32:15,150 --> 00:32:16,510 Kāda būtu jauki, lai atbrīvoties no? 670 00:32:16,510 --> 00:32:20,770 Nu, paskaties, cik sasodīti garu šo bloku kods ir vienkārši darīt kaut ko vienkāršu. 671 00:32:20,770 --> 00:32:23,850 >> Tagad kā malā, kā jūs varētu būt redzams super sadaļā šo pagājušo 672 00:32:23,850 --> 00:32:27,570 nedēļas nogalē, jums nav obligāti nepieciešams cirtaini bikšturi, kad jūs vienkārši ir viens 673 00:32:27,570 --> 00:32:32,180 līnija kods, lai gan mēs ierosinājām turot tos tā, ka tas padara daudz 674 00:32:32,180 --> 00:32:36,190 vairāk skaidrs, tāpat kā nulles, ir U-veida bloki, kas ir iekšpusē filiāles. 675 00:32:36,190 --> 00:32:40,170 Bet tas nebūtu jauki, ja ar augšējo, ievadot savu ieguldījumu, pārvērta to par 676 00:32:40,170 --> 00:32:44,730 lielajiem burtiem, ja tā nav, un kas būtu būt brīnišķīgs pretējā gadījumā, ja 677 00:32:44,730 --> 00:32:47,210 tas jau lielos? 678 00:32:47,210 --> 00:32:49,620 Just iet caur un atstāt to atsevišķi. 679 00:32:49,620 --> 00:32:50,660 >> Tāpēc varbūt tas, ka. 680 00:32:50,660 --> 00:32:52,990 Es varētu izmēģināt un tikai ceru, ka ka tā, bet ļaujiet man 681 00:32:52,990 --> 00:32:54,450 ieviest viena cita lieta. 682 00:32:54,450 --> 00:32:57,440 Tā vietā, izmantojot šo iebūvētu termināli logu uz leju šeit atgādināt, ka 683 00:32:57,440 --> 00:33:01,130 Šis laukums melnā icon ļauj jums lielāks termināļa logu, ka es varu pilns 684 00:33:01,130 --> 00:33:02,260 ekrāns, ja es gribu? 685 00:33:02,260 --> 00:33:05,820 Tātad izrādās, ka viņi veida savādi nosaukts, bet tur ir šie sauc lietas 686 00:33:05,820 --> 00:33:10,970 cilvēks lapas, rokas lapas, īstermiņa Vīrietis, un es varu piekļūt šos ar 687 00:33:10,970 --> 00:33:14,515 rakstīt man - 688 00:33:14,515 --> 00:33:15,570 Ko es gribu tipam? 689 00:33:15,570 --> 00:33:17,830 Cilvēks uz augšējo. 690 00:33:17,830 --> 00:33:21,090 >> Un tagad paziņojums, ja pastāv darboties iekšpusē no datora, kas 691 00:33:21,090 --> 00:33:23,970 Šajā gadījumā ierīce, kas ir tikai operētājsistēmas Linux, tas notiek 692 00:33:23,970 --> 00:33:27,920 lai dotu man nedaudz mistisks kopumu produkciju, bet jūs atradīsiet, ka laika gaitā 693 00:33:27,920 --> 00:33:31,720 tas vienmēr ir formatēts diezgan daudz paši, lai jūs sākat, lai pierastu pie tā. 694 00:33:31,720 --> 00:33:35,130 Paziņojums augšā uz augšējo, un acīmredzot ir tas pats dokumentācija 695 00:33:35,130 --> 00:33:35,680 lai samazināt. 696 00:33:35,680 --> 00:33:38,740 Kurš rakstīja tas bija griešana dažas stūriem un nodot to visu uz vienas lapas. 697 00:33:38,740 --> 00:33:40,720 Šīs lietas "mērķis ir dzīve ir, lai pārvērstu 698 00:33:40,720 --> 00:33:42,780 vēstule augšējā vai mazajiem burtiem. 699 00:33:42,780 --> 00:33:46,290 >> Ievērojiet, ka zem Anotācija, man lapa māca man to failu man ir 700 00:33:46,290 --> 00:33:48,130 , lai iekļautu izmantot šo lietu. 701 00:33:48,130 --> 00:33:51,320 Tas dod man parakstus par šiem funkcijas, gan no tām, pat 702 00:33:51,320 --> 00:33:53,510 ja mēs tagad tikai rūp vienu. 703 00:33:53,510 --> 00:33:54,730 Te tagad aprakstu. 704 00:33:54,730 --> 00:33:58,800 Lai augšējā pārvērš vēstuli c lielajiem burtiem, ja iespējams. 705 00:33:58,800 --> 00:34:02,280 >> Joprojām nav tik pamācošs, bet ļaujiet man tagad izskatās zem atgriešanās vērtību, lieta 706 00:34:02,280 --> 00:34:03,520 kas ir nodotas atpakaļ. 707 00:34:03,520 --> 00:34:08,600 Tā atpakaļ vērtība ir tā, ka no konvertētas burtu vai c, ja 708 00:34:08,600 --> 00:34:09,870 konversija nebija iespējams. 709 00:34:09,870 --> 00:34:11,202 Kas ir c? 710 00:34:11,202 --> 00:34:12,560 >> Oriģināls raksturs. 711 00:34:12,560 --> 00:34:15,370 >> Oriģināls raksturs, un mēs zinām, ka ar, atkal, iet uz augšu līdz 712 00:34:15,370 --> 00:34:19,179 konspekts, un kurš rakstīja šo funkcija, tikko nolēma, ka ieejas 713 00:34:19,179 --> 00:34:22,909 līdz līdz augšējo un apakšējā ir tikai patvaļīgi būs saukt c. 714 00:34:22,909 --> 00:34:24,909 Tie varētu būt to sauca lielākā daļa kaut ko viņi vēlas, bet viņi tur to 715 00:34:24,909 --> 00:34:26,270 vienkārši, kā c. 716 00:34:26,270 --> 00:34:27,880 Tāpēc es esmu apspriešanās ar man lapu. 717 00:34:27,880 --> 00:34:31,870 Šis teikums pārliecina mani, ka tad, ja tas nav mazo burtu, tas ir 718 00:34:31,870 --> 00:34:34,969 gatavojas tikai dod man atpakaļ C, kas ir ideāls, kas nozīmē, es varu atbrīvoties no 719 00:34:34,969 --> 00:34:36,199 mans cits stāvoklis. 720 00:34:36,199 --> 00:34:39,679 >> Tātad, ļaujiet man iet atpakaļ uz gedit, un Tagad ļaujiet man vienkārši darīt to. 721 00:34:39,679 --> 00:34:41,960 Es esmu gatavojas kopēt manu printf paziņojumu. 722 00:34:41,960 --> 00:34:45,969 Es iešu uz priekšu un pa labi iekšā cilpa drukāt, ka ārā, un saņemt 723 00:34:45,969 --> 00:34:48,760 atbrīvoties no, tagad šo visu, ja konstrukcija. 724 00:34:48,760 --> 00:34:51,860 Nebija slikta ideja, un tas bija ļoti ļoti pareizs un atbilst 725 00:34:51,860 --> 00:34:54,100 viss, ko mēs esam sludināja, bet vienkārši nav nepieciešams. 726 00:34:54,100 --> 00:34:57,070 Tiklīdz tu saproti, kādu bibliotēka funkcija pastāv, ka kāds cits 727 00:34:57,070 --> 00:35:01,340 rakstīja, vai varbūt jūs rakstījāt citur failu, jūs varat to izmantot un patiešām 728 00:35:01,340 --> 00:35:02,690 sāk pastiprināt kodu. 729 00:35:02,690 --> 00:35:06,080 >> Un kad es saku lietas, piemēram, labu stilu, Fakts, ka šī persona saukta 730 00:35:06,080 --> 00:35:11,490 darbojas uz augšējo, vai iepriekš ir zemāks ir lieliski noderīgi, jo 731 00:35:11,490 --> 00:35:12,900 viņi ir ļoti aprakstošs. 732 00:35:12,900 --> 00:35:16,120 Jūs negribētu, lai izsauktu funkciju x un y un z, kas ir 733 00:35:16,120 --> 00:35:19,620 daudz, daudz mazāk nozīme. 734 00:35:19,620 --> 00:35:25,160 Visus jautājumus par šo sēriju uzlabojumu? 735 00:35:25,160 --> 00:35:28,010 >> Tātad pietiek pateikt vienu takeaways ir pat kā savu problēmu 736 00:35:28,010 --> 00:35:30,960 komplekts - varbūt problēma komplekts vienu, bet protams P noteikti divi un tālāk, pat 737 00:35:30,960 --> 00:35:34,380 kad viņi pareizi ne vienmēr nozīmē, ka tie ir ideāli vienkārši 738 00:35:34,380 --> 00:35:36,155 bet vai īpaši labi izstrādāta. 739 00:35:36,155 --> 00:35:38,420 Tas ir cits ass sākt domāt par. 740 00:35:38,420 --> 00:35:41,730 Tātad tas bija virkne iekšpusē jūsu datora atmiņā, bet, ja jums ir 741 00:35:41,730 --> 00:35:46,180 viss bars no burtiem, piemēram, H-E-L-L-O iekšpusē RAM, un pieņemsim, 742 00:35:46,180 --> 00:35:51,330 ka jūs savā programmā zvanu saņemt virkni vairākas reizes, piemēram, ka jūs 743 00:35:51,330 --> 00:35:54,200 zvaniet saņemt virkni vienu reizi, tad jūs zvaniet saņemt virkni vēlreiz. 744 00:35:54,200 --> 00:35:55,880 Nu, kas notiek, notiek laika gaitā? 745 00:35:55,880 --> 00:35:59,170 >> Citiem vārdiem sakot, ja jums ir līnija kods, lai gan no konteksta, piemēram, 746 00:35:59,170 --> 00:36:02,120 string s izpaužas - 747 00:36:02,120 --> 00:36:02,960 pieņemsim to izdarītu. 748 00:36:02,960 --> 00:36:05,270 String nosaukums ir vienāds saņemt virkni. 749 00:36:05,270 --> 00:36:08,590 Tātad pieņemsim, ka koda līnija ir domāta pieprasīt no lietotāja par viņa vai viņas vārdu. 750 00:36:08,590 --> 00:36:14,580 Šis nākamais līnija kods ir domāts lūgt lietotāju par viņa vai viņas skolā, un 751 00:36:14,580 --> 00:36:15,920 Šis nākamais līnija, un tā tālāk. 752 00:36:15,920 --> 00:36:18,150 Pieņemsim, ka mēs turpinām jautā citam lietotājam un 753 00:36:18,150 --> 00:36:19,750 vēl un vēl virkne. 754 00:36:19,750 --> 00:36:22,390 Viņi gatavojas palikt atmiņā tajā pašā laikā. 755 00:36:22,390 --> 00:36:24,280 Viens nav gatavojas clobber otru. 756 00:36:24,280 --> 00:36:26,420 Skola nav pārrakstīt otru. 757 00:36:26,420 --> 00:36:28,520 Bet kur viņi visi galu galā atmiņā? 758 00:36:28,520 --> 00:36:32,030 >> Nu, ja mēs sāktu izdarīt uz ekrāna, ko mēs varam izmantot šo lietu 759 00:36:32,030 --> 00:36:35,800 Šeit, piemēram, tāfeles, ja šī melnā taisnstūris ir mana datora 760 00:36:35,800 --> 00:36:39,800 atmiņa, es esmu gatavojas patvaļīgi sāktu sadalot to uz augšu maz kvadrātu, 761 00:36:39,800 --> 00:36:42,120 katrs no kuriem ir vienu baitu atmiņas. 762 00:36:42,120 --> 00:36:46,560 Atklāti sakot, ja jums ir gigabaitu RAM šajās dienās, jums ir miljards baitu 763 00:36:46,560 --> 00:36:49,540 atmiņas jūsu datorā, lai miljards šo kvadrātu. 764 00:36:49,540 --> 00:36:52,110 Tātad pietiek pateikt, tas nav īsti mērogā. 765 00:36:52,110 --> 00:36:58,250 >> Bet mēs varētu saglabāt zīmēšanas visi šie protams, nav mēroga kvadrātu, un tas 766 00:36:58,250 --> 00:37:01,260 kolektīvi pārstāv mana datora atmiņu. 767 00:37:01,260 --> 00:37:03,136 Tagad mēs tikai to dot, dot, dot. 768 00:37:03,136 --> 00:37:06,260 Tātad, citiem vārdiem sakot, ja es tagad liks lietotājs ar get auklu, lai dotu man 769 00:37:06,260 --> 00:37:07,350 string, kas notiek? 770 00:37:07,350 --> 00:37:14,270 Ja lietotājs veidu "sveiki", kas beidzas up in H-E-L-L-O. Bet pieņemsim, 771 00:37:14,270 --> 00:37:15,720 lietotājs, tad veidi - 772 00:37:15,720 --> 00:37:17,250 patiesībā, man nevajadzēja darīt sveiki, jo mēs esam jautā 773 00:37:17,250 --> 00:37:18,330 viņiem par to nosaukumiem. 774 00:37:18,330 --> 00:37:20,580 Tāpēc iesim atpakaļ, ja es varētu darīt. 775 00:37:20,580 --> 00:37:26,130 >> Tātad, ja es tipa D-A-V-I-D uz manu vārdu, bet atgādināt, ka otrajā rindā 776 00:37:26,130 --> 00:37:29,220 kods ir saņemt virkni atkal lai saņemtu savu skolu. 777 00:37:29,220 --> 00:37:32,090 Kur ir šis vārds, ka lietotājs veidi, kas iet tālāk? 778 00:37:32,090 --> 00:37:38,290 Nu, varbūt tas gatavojas iedziļināties H-A-R-V-A-R-D. Tātad, pat ja es esmu 779 00:37:38,290 --> 00:37:41,560 sagatavots kā divām rindām, tas ir tikai viss ķekars baiti jūsu 780 00:37:41,560 --> 00:37:42,710 Datora RAM. 781 00:37:42,710 --> 00:37:46,560 Tur ir problēma tagad, jo tagad, ja es esmu izmantojot RAM tas ir ļoti saprātīgs 782 00:37:46,560 --> 00:37:49,910 bet sava veida naiva veidā, ko jūs varat acīmredzot nav atšķirt? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 Ja viena sākas un kur viens beidzas, labi? 785 00:37:54,680 --> 00:37:55,860 Viņi veida saplūdušas kopā. 786 00:37:55,860 --> 00:37:57,920 >> Tātad izrādās, datoru nedara. 787 00:37:57,920 --> 00:38:04,720 Ļaujiet man patiesībā ritināt atpakaļ laikā ar dažas rakstzīmes, un tā vietā, Harvard 788 00:38:04,720 --> 00:38:09,570 notiek tūlīt pēc lietotāja vārda, lietotājs faktiski izpaužas, aiz 789 00:38:09,570 --> 00:38:12,000 ainas, īpašs raksturs iekļauts ar 790 00:38:12,000 --> 00:38:13,885 Datoru viņam vai viņai. 791 00:38:13,885 --> 00:38:19,470 / 0, citādi pazīstams kā nul rakstura kaitinoši sauc par N-U-L, nav 792 00:38:19,470 --> 00:38:22,190 N-U-L-L, bet jūs rakstīt to kā / 0. 793 00:38:22,190 --> 00:38:27,130 Tas ir tikai visas nulles bitu, ir marķieris starp pirmo vārdu, ka lietotāja 794 00:38:27,130 --> 00:38:28,290 drukāti un otrais. 795 00:38:28,290 --> 00:38:33,020 >> Tātad Harvard faktiski tagad nonāks kā šo rakstzīmju secību 796 00:38:33,020 --> 00:38:36,110 un viens vairāk / 0. 797 00:38:36,110 --> 00:38:41,690 Tātad, citiem vārdiem sakot, ar kuru tie kontrolputni vērtības, astoņi blakus nulle 798 00:38:41,690 --> 00:38:45,220 biti, tagad varat sākt, lai atšķirtu vienu rakstzīmi no cita. 799 00:38:45,220 --> 00:38:49,720 Tātad, visu šo laiku, kas bija "sveiki" ir faktiski "sveiki" ar / 0, un 800 00:38:49,720 --> 00:38:53,580 Tajā pašā laikā, varētu ļoti labi būt diezgan nedaudz vairāk RAM 801 00:38:53,580 --> 00:38:56,400 iekšpusē no datora. 802 00:38:56,400 --> 00:38:57,810 >> Ļaujiet man darīt viena cita lieta tagad. 803 00:38:57,810 --> 00:39:01,800 Izrādās, ka visiem šiem kvadrātiem mēs esam zīmēšanas, tie ir, jā, 804 00:39:01,800 --> 00:39:06,140 stīgas, bet plašākā nozīmē, šīs lietas ir masīvi. 805 00:39:06,140 --> 00:39:10,590 Masīvs ir tikai rieciens atmiņas kas ir atpakaļ atpakaļ atpakaļ uz muguras, 806 00:39:10,590 --> 00:39:15,130 un jūs parasti izmantot masīvu veidā Šīs kvadrātiekavas notācija. 807 00:39:15,130 --> 00:39:18,210 Tātad, mēs ejam, lai redzētu šos diezgan daudz laika gaitā, bet ļaujiet man iet uz priekšu un 808 00:39:18,210 --> 00:39:21,160 atvērt, sauksim to vecumu. 809 00:39:21,160 --> 00:39:23,920 Un paziņojums, ko mēs varam darīt ar šie paši triku, nedaudz 810 00:39:23,920 --> 00:39:25,750 nedaudz vairāk sintakse šeit. 811 00:39:25,750 --> 00:39:29,270 >> Tātad šīs programmas 17 rindā - faktiski, ļaujiet man palaist programmu vispirms 812 00:39:29,270 --> 00:39:30,770 lai mēs varētu redzēt, ko šī lieta nav. 813 00:39:30,770 --> 00:39:33,530 Ļaujiet man zvanu veikt vecumu, lai apkopo šo programmu. 814 00:39:33,530 --> 00:39:34,950 . / Vecumu. 815 00:39:34,950 --> 00:39:36,480 Cik daudzi cilvēki ir telpā? 816 00:39:36,480 --> 00:39:38,020 To sauc par trīs. 817 00:39:38,020 --> 00:39:39,575 Vecums no pirmās personas? 818 00:39:39,575 --> 00:39:42,710 18, 19, 20 un. 819 00:39:42,710 --> 00:39:46,770 Un tagad nedaudz smieklīgi, es tikai ir veikuši programmu, kas AGES tiem 820 00:39:46,770 --> 00:39:47,740 trīs cilvēki. 821 00:39:47,740 --> 00:39:50,390 >> Tātad tur ir skaidri iespēja kādu fun aritmētisko šeit. 822 00:39:50,390 --> 00:39:51,560 Par laimi, matemātika ir pareiza. 823 00:39:51,560 --> 00:39:54,720 18 devās uz 19, 19 gāja līdz 20 un tā tālāk. 824 00:39:54,720 --> 00:39:58,510 Bet kas īsti domāts, lai būtu ilustratīvu šeit ir, kā mēs uzglabāt 825 00:39:58,510 --> 00:40:00,190 šo triju cilvēku vecumu. 826 00:40:00,190 --> 00:40:02,370 Ļaujiet man tuvinātu to, kas ir notiek šeit. 827 00:40:02,370 --> 00:40:06,240 >> Tātad, pirmkārt, šie pirmie dažas rindiņas būtu iegūt diezgan pazīstams. 828 00:40:06,240 --> 00:40:08,770 Es esmu tikai pamudinot lietotājam, lai cilvēku skaits telpā. 829 00:40:08,770 --> 00:40:11,490 Tad es esmu, izmantojot saņemt int un darīt, bet, lai darīt atkal un atkal un atkal. 830 00:40:11,490 --> 00:40:15,780 Mēs esam redzējuši šo rakstu pirms, bet līnija 27 ir jauna un samērā 831 00:40:15,780 --> 00:40:18,160 noderīgi, un kļūs arvien noderīgs. 832 00:40:18,160 --> 00:40:21,620 Ievērojiet, ka to, kas ir atšķirīgs 27 rindā ir tā, ka es, šķiet, deklarējot 833 00:40:21,620 --> 00:40:23,960 int sauc par vecumu, bet jāgaida. 834 00:40:23,960 --> 00:40:27,140 Tas ir ne tikai int vecumu. 835 00:40:27,140 --> 00:40:30,130 Tur ir šīs kvadrātiekavas, iekšpusē no kuriem ir n. 836 00:40:30,130 --> 00:40:35,150 >> Tātad kronšteins n šajā sakarā nav iekšpusē printf paziņojumu šeit, bet 837 00:40:35,150 --> 00:40:44,370 Šajā vienīgā līnijā 27, šī līnija ir sakot, dod man n Ints, no kuriem katrs 838 00:40:44,370 --> 00:40:46,080 ir int tipa. 839 00:40:46,080 --> 00:40:49,870 Tātad tas ir spainis, tā sakot, no, Šajā gadījumā, trīs veseli skaitļi atpakaļ uz 840 00:40:49,870 --> 00:40:52,770 atpakaļ atpakaļ, lai es efektīvi ir trīs mainīgos. 841 00:40:52,770 --> 00:40:54,890 Alternatīva, lai būtu skaidrs, būtu šāds. 842 00:40:54,890 --> 00:40:57,400 >> Ja es gribēju pirmo studenta vecuma, es varētu darīt. 843 00:40:57,400 --> 00:40:59,520 Ja es gribēju otrais students ir vecumā es varētu darīt. 844 00:40:59,520 --> 00:41:01,860 Ja es gribēju trešo studenta vecuma, es varētu darīt. 845 00:41:01,860 --> 00:41:04,320 Un nedod Dievs, mums ir nepieciešama ikviena vecums šajā telpā - 846 00:41:04,320 --> 00:41:07,670 Es domāju, tas ir heck par daudz kopiju, paste atkal un atkal un atkal. 847 00:41:07,670 --> 00:41:10,870 Un plus, kad es apkopo šo programmu, ja cits students staigā pa ārā 848 00:41:10,870 --> 00:41:14,200 no šīm durvīm, tagad mans numurs mainīgo lielumu ir nepareizs. 849 00:41:14,200 --> 00:41:17,450 >> Tātad, kas ir jauka par masīva ir Tiklīdz jūs sākat sajūta sevi 850 00:41:17,450 --> 00:41:20,190 kopējot un ielīmējot, izredzes ir, ka tas nav labākā pieeja. 851 00:41:20,190 --> 00:41:22,240 Masīvs ir dinamisks iespējams. 852 00:41:22,240 --> 00:41:24,610 Es nezinu iepriekš, cik daudz cilvēku būs telpā, 853 00:41:24,610 --> 00:41:28,670 bet es zinu, man ir nepieciešams n no viņiem, un es ņemšu izdomāt n, kad pienāks laiks. 854 00:41:28,670 --> 00:41:35,500 Šī koda līnija tagad nozīmē, dod man rieciens atmiņas, kas izskatās šādi 855 00:41:35,500 --> 00:41:40,380 kur kastīšu skaits uz ekrāna ir pilnībā atkarīga no n, ka 856 00:41:40,380 --> 00:41:42,010 lietotājs drukāti collas 857 00:41:42,010 --> 00:41:44,850 >> Tāpēc tagad šīs programmas pārējais ir faktiski ir diezgan līdzīgs tam, ko mēs 858 00:41:44,850 --> 00:41:46,860 vienkārši darīja ar burtiem. 859 00:41:46,860 --> 00:41:49,970 Paziņojums, man ir cilpa sākot no 30 līnijas. 860 00:41:49,970 --> 00:41:54,920 Tāpēc uzreiz pēc man masīvs, es atkārtot no y ir vienāds ar nulli uz līdz pat n. 861 00:41:54,920 --> 00:41:58,890 Man vienkārši ir šī pamācošs printf ziņa vienkārši sakot, man vecuma 862 00:41:58,890 --> 00:42:03,690 no personas #% i, tā numurs viens, numur divi, skaits ir trīs. 863 00:42:03,690 --> 00:42:04,730 Un kāpēc man darīt? 864 00:42:04,730 --> 00:42:08,870 Atklāti sakot, cilvēki dod priekšroku skaitīt no viena uz augšu tā datorzinātnieku, 865 00:42:08,870 --> 00:42:09,620 nullei uz augšu. 866 00:42:09,620 --> 00:42:11,700 datorzinātnieku nav gatavojas izmantot šāda veida programmas, tāpēc mēs esam 867 00:42:11,700 --> 00:42:13,990 gatavojas tikai sākt skaitīšanu pie viena kā normāliem cilvēkiem. 868 00:42:13,990 --> 00:42:17,630 >> Un tagad 33 rindā, paziņojums nedaudz atšķirīga gabals sintaksi. 869 00:42:17,630 --> 00:42:23,710 I-vecums šajā mainīgo tipa masīvs ir gatavojas iegūt int. 870 00:42:23,710 --> 00:42:25,770 Un tagad visbeidzot, tas ir tikai aritmētika leju šeit. 871 00:42:25,770 --> 00:42:29,200 Es nolēmu atsevišķā cilpu, varētu pieprasīt kādu laiku iet, un tagad tas 872 00:42:29,200 --> 00:42:31,400 atsevišķa cilpa, šīs līnijas izpildīt. 873 00:42:31,400 --> 00:42:35,810 >> Gadā no tagad, cilvēks i būs i gadus vecs, bet paziņojums, tas nav 874 00:42:35,810 --> 00:42:36,500 mainīgo i. 875 00:42:36,500 --> 00:42:38,390 Tas tagad ir% i par int. 876 00:42:38,390 --> 00:42:43,210 Un paziņojums par pirmo viettura, es iespraudiet i plus 1, tāpēc mēs paļaujamies, piemēram, 877 00:42:43,210 --> 00:42:44,250 normāls cilvēks. 878 00:42:44,250 --> 00:42:49,190 Un pēc tam, lai, ko veido to vecumu, par i gadus vecs, es AGES skavu 879 00:42:49,190 --> 00:42:52,980 i - un kāpēc es daru plus vienu šeit? 880 00:42:52,980 --> 00:42:53,760 Viņi vienkārši vecumā. 881 00:42:53,760 --> 00:42:55,030 Tā ir mana stulba izvēle programmu. 882 00:42:55,030 --> 00:42:56,810 Viņi vienkārši vecumā vienu gadu. 883 00:42:56,810 --> 00:42:59,770 Es varētu rakstīt jebkuru numuru, kas Es tiešām gribu tur. 884 00:42:59,770 --> 00:43:02,430 >> Tātad, kas patiesībā visu atbilstība šeit? 885 00:43:02,430 --> 00:43:07,610 Nu, ļaujiet man patiesībā ritināt atpakaļ nekā šeit, un uzzīmēt zīmējumu 886 00:43:07,610 --> 00:43:10,830 par to, kas ir priekšā. 887 00:43:10,830 --> 00:43:15,720 Ko mēs darīt ar mūsu nākamais Problēma Set Divi ir niekošanās 888 00:43:15,720 --> 00:43:17,070 pasaules kriptogrāfiju. 889 00:43:17,070 --> 00:43:22,500 Tātad tas ir rakstzīmju virkne, tā secība vairākiem simboliem, un kādi 890 00:43:22,500 --> 00:43:23,750 tas saka? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 Tas nav tiešsaistes versijā no slaidiem. 893 00:43:30,600 --> 00:43:35,880 >> Tāpēc es apgalvo, ka tas ir vienāds ar to, stulba reklāma no daudziem gadiem 894 00:43:35,880 --> 00:43:39,950 atpakaļ, ka tiešām var atcerēties viens no tā izcelsmes. 895 00:43:39,950 --> 00:43:42,740 Tātad šis ir piemērs šifrēšanas vai kriptogrāfija. 896 00:43:42,740 --> 00:43:46,150 Izrādās, ka, ja jūs vēlaties, lai faktiski sūtīt informāciju vai daļu 897 00:43:46,150 --> 00:43:49,310 Informācija ar kādu stingrāk kā ziņu, piemēram, jūs varat 898 00:43:49,310 --> 00:43:50,500 motokross burtus. 899 00:43:50,500 --> 00:43:53,170 Bet parasti, vārdi ir nav scrambled nejauši. 900 00:43:53,170 --> 00:43:56,365 Viņi permutēts kaut kādā veidā vai mainīti kaut kādā veidā, lai - Hmm. 901 00:43:56,365 --> 00:43:59,040 Tas ir jautri spoileris uz nākamo reizi. 902 00:43:59,040 --> 00:44:04,390 >> Tātad jūs varat kartes, kas ir acīmredzami O B. Paziņojumu, ka līniju līdz 903 00:44:04,390 --> 00:44:05,420 kapitalizācijas gudrs. 904 00:44:05,420 --> 00:44:07,960 Acīmredzot r kļūst e. 905 00:44:07,960 --> 00:44:14,000 Acīmredzot F-H-E-R kļūst S-U-R-E. Tā izrādās, tur ir kartēšanu, un 906 00:44:14,000 --> 00:44:18,720 Šajā gadījumā tur ir diezgan stulba kartēšanas ja kāds ir izpētījuši to ārā? 907 00:44:18,720 --> 00:44:21,440 Tas ir kaut kas ko sauc 13 puve, Pagriezt 13. 908 00:44:21,440 --> 00:44:24,760 Tas ir stulbākais šifrēšanas mehānismus, jo tas burtiski tikko 909 00:44:24,760 --> 00:44:29,160 papildina 13 uz katru no burtiem, stulba tādā nozīmē, ka, ja jūs vienkārši 910 00:44:29,160 --> 00:44:31,890 ir mazliet brīva laika uz rokas un zīmuli, vai arī jūs vienkārši domājat, ka tas 911 00:44:31,890 --> 00:44:35,260 caur jūsu galvas, jūs varētu mēģināt visi iespējamie papildinājumi - viens, divi, 912 00:44:35,260 --> 00:44:38,470 trīs, dot, dot, dot, 25 vienkārši pagriezt visu alfabētu, un 913 00:44:38,470 --> 00:44:40,860 galu galā, jūs izrēķināt ko šis ziņojums. 914 00:44:40,860 --> 00:44:43,700 Tātad, ja jūs kaut kas līdzīgs šim grade skolas iet ziņojumus saviem 915 00:44:43,700 --> 00:44:46,830 labākais draugs, ja jūsu grade skolas Skolotājs vienkārši izlasīt 916 00:44:46,830 --> 00:44:50,320 ziņu un brutālu spiesti risinājumu, Jums varētu būt gotten 917 00:44:50,320 --> 00:44:52,550 atbildi ar to. 918 00:44:52,550 --> 00:44:54,970 >> Tagad, protams, reālajā pasaulē, kriptogrāfija ir sarežģītāka. 919 00:44:54,970 --> 00:45:00,120 Tas ir teksta fragments no datorsistēma, kas ir lietotājvārdus un 920 00:45:00,120 --> 00:45:03,630 paroles, jo gandrīz visi mūsējie dara, un tas ir tas, kas jūsu paroles varētu 921 00:45:03,630 --> 00:45:07,260 izskatās, ja uzglabā uz cietā braukt bet šifrētā veidā. 922 00:45:07,260 --> 00:45:11,050 Tas ir ne tikai rotācija no burtiem, Ir B un B ir C. Tas ir 923 00:45:11,050 --> 00:45:15,620 daudz sarežģītākas, bet tā izmanto to, kas parasti sauc par slepeno atslēgu 924 00:45:15,620 --> 00:45:16,690 kriptogrāfija. 925 00:45:16,690 --> 00:45:20,210 Šis attēls stāsta šādiem stāsts ar dažiem ikonas. 926 00:45:20,210 --> 00:45:22,250 >> Kreisajā pusē, mums ir, ko mēs saucam teksta. 927 00:45:22,250 --> 00:45:25,420 Pasaulē kriptogrāfija, vienkāršā teksts ir tikai sākotnējais ziņojums 928 00:45:25,420 --> 00:45:29,050 uzrakstīts angļu vai franču valodā vai nevienā valodā. 929 00:45:29,050 --> 00:45:32,405 Ja jūs vēlaties, lai šifrētu, mēs caurlaide tā gleznieciski ar piekaramo atslēgu, lai 930 00:45:32,405 --> 00:45:35,580 daži veida algoritmu, dažas funkcijas vai programmu, ka kāds rakstīja 931 00:45:35,580 --> 00:45:39,880 ka scrambles burtiem cerams vairāk complicatedly nekā tikai pievienojot 13 932 00:45:39,880 --> 00:45:40,980 uz katru no tiem. 933 00:45:40,980 --> 00:45:43,780 >> Ko jūs saņemsiet no šī procesa vidū tur sauc cyphertext. 934 00:45:43,780 --> 00:45:44,850 Tātad sava veida sexy vārda. 935 00:45:44,850 --> 00:45:47,630 Tas tikai nozīmē, ka tas ir šifrēts versija teksta. 936 00:45:47,630 --> 00:45:52,570 Un tikai tad, ja jums ir, ka pats noslēpums, 13 vai mīnus 13, jūs varētu 937 00:45:52,570 --> 00:45:54,970 atšifrētu ziņojumu, piemēram, ka. 938 00:45:54,970 --> 00:45:57,770 >> Tātad problēma noteikti divi, starp lietām jūs darīt, ja šajā Hacker 939 00:45:57,770 --> 00:46:01,860 Izdevums, jums būs rakstīt kodu kreka šīs paroles, norādītas 940 00:46:01,860 --> 00:46:05,170 kādi tie bija, un kā viņi šifrēta, lai gan mēs jums mazliet 941 00:46:05,170 --> 00:46:06,460 gada vadlīnijas gar ceļu. 942 00:46:06,460 --> 00:46:09,320 Jo standarta versiju, mēs ieviest pāris cipariem, šifrēšana 943 00:46:09,320 --> 00:46:12,400 mehānismi, viens sauc Cēzara, viena sauc Vigenere, ka joprojām 944 00:46:12,400 --> 00:46:16,100 rotācijas šifrēšana, kad kļūst kaut kas, B kļūst par kaut ko, bet 945 00:46:16,100 --> 00:46:18,820 jums ir darīt to programmiski jo tur patiešām ir noslēpums 946 00:46:18,820 --> 00:46:22,840 iesaistīts atslēga, kas parasti ir skaitlis vai atslēgvārdu, ka tikai 947 00:46:22,840 --> 00:46:26,420 Nosūtītājs un no tiem saņēmējs ziņas vajadzētu saprast. 948 00:46:26,420 --> 00:46:28,660 >> Tagad, tas patiesībā ir inkarnācijām reālajā pasaulē. 949 00:46:28,660 --> 00:46:32,910 Tas, piemēram, ir maz bārenis Annie noslēpums dekodera gredzenu, un jūs 950 00:46:32,910 --> 00:46:35,180 var faktiski īstenot šos rotācijas šifrēšana - 951 00:46:35,180 --> 00:46:37,930 Kļūst par kaut ko, B kļūst kaut kas - ar pāris riteņiem, 952 00:46:37,930 --> 00:46:40,840 viens no ārpuses, viens no iekšpuses tāds, ka, ja jūs pagriezt riteni vai 953 00:46:40,840 --> 00:46:44,170 gredzenu, jūs faktiski var sarindot burti ar dažādiem burtiem, 954 00:46:44,170 --> 00:46:45,430 iegūt slepeno kodu. 955 00:46:45,430 --> 00:46:48,110 Un tā kā cliffhanger uz šodienu, to, ko es domāju, es gribētu darīt, ir mazliet 956 00:46:48,110 --> 00:46:52,170 atavisms, ka, ja jūs ieslēdzat televizoru 24.decembrī, jūs varat skatīties 957 00:46:52,170 --> 00:46:55,390 Filma reklāmu nauseum par 24 stundas pēc kārtas. 958 00:46:55,390 --> 00:47:06,030 Bet šodien, es ņemšu atveriet to šeit! un dod mums tikai divas minūtes 959 00:47:06,030 --> 00:47:13,493 pedagoģiski būtisks Ziemassvētku stāsts ar nelielu puisis nosaukts Ralphie. 960 00:47:13,493 --> 00:47:14,400 >> [VIDEO PLAYBACK] 961 00:47:14,400 --> 00:47:17,420 >> -Vai tas būtu zināms visiem un dažādi, ka Ralfs Parker tiek iecelts 962 00:47:17,420 --> 00:47:20,650 loceklis Little Orphan Annie noslēpums aplis, un ir tiesības uz visiem 963 00:47:20,650 --> 00:47:23,460 apbalvojumus un ieguvumi kas notiek ar to. 964 00:47:23,460 --> 00:47:25,990 >> -Parakstīts, Little Orphan Annija. 965 00:47:25,990 --> 00:47:30,100 Parakstu, Pierre Andre ar tinti. 966 00:47:30,100 --> 00:47:34,270 Apbalvojumus un ieguvumi jau vecumā no deviņiem. 967 00:47:34,270 --> 00:47:39,440 >> [Kliegšana uz radio] 968 00:47:39,440 --> 00:47:40,770 >> Come on, let s get par ar to. 969 00:47:40,770 --> 00:47:44,965 Man nevajag visu, kas jazz par kontrabandistiem un pirāti. 970 00:47:44,965 --> 00:47:48,270 >> -Klausieties rīt nakts noslēdzot piedzīvojumu melna 971 00:47:48,270 --> 00:47:49,650 pirātu kuģis. 972 00:47:49,650 --> 00:47:53,320 Tagad ir pienācis laiks, lai Annie Secret Ziņa par jums biedriem 973 00:47:53,320 --> 00:47:55,720 par slepeno apļa. 974 00:47:55,720 --> 00:47:56,580 Atcerieties, ka bērni. 975 00:47:56,580 --> 00:48:01,720 Tikai biedri Annie Secret Circle var atšifrēt Annie slepeno ziņu. 976 00:48:01,720 --> 00:48:05,872 Atcerieties, Annie ir atkarīgs no jums. 977 00:48:05,872 --> 00:48:08,670 Nosakiet savu pins līdz B2. 978 00:48:08,670 --> 00:48:11,000 Šeit ir ziņa. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> -Es savā pirmajā slepenā sanāksmē. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> -Pierre bija liels balss šovakar. 983 00:48:21,650 --> 00:48:24,830 Es varētu pateikt, ka šovakar vēstījumu bija ļoti svarīga. 984 00:48:24,830 --> 00:48:26,400 >> -3, 25. 985 00:48:26,400 --> 00:48:28,540 Tas ir vēstījums no Annie pati. 986 00:48:28,540 --> 00:48:30,086 Atcerieties, nesaki nevienam. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 Sekundes vēlāk, es esmu tikai telpā mājā, kur zēns no deviņiem 989 00:48:38,710 --> 00:48:42,668 varētu sēdēt privātumu un atšifrēt. 990 00:48:42,668 --> 00:48:47,628 Aha, B. Es devos uz nākamo. 991 00:48:47,628 --> 00:48:53,060 E. Pirmais vārds ir "būt." S. Tas nāk vieglāk tagad. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 Tas ir R. 994 00:48:55,940 --> 00:48:56,900 >> -Nāc, Ralphie. 995 00:48:56,900 --> 00:48:57,860 I gotta iet. 996 00:48:57,860 --> 00:48:59,780 >> -I'll būt tiesības uz leju, Ma. 997 00:48:59,780 --> 00:49:01,030 Gee sīkšana. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. O. Noteikti. 1000 00:49:08,220 --> 00:49:09,500 Noteikti ko? 1001 00:49:09,500 --> 00:49:11,660 Kāds bija Little Bārenis Annie cenšas pateikt? 1002 00:49:11,660 --> 00:49:12,844 Noteikti ko? 1003 00:49:12,844 --> 00:49:14,732 >> -Ralphie, Randy ir ieguvuši iet. 1004 00:49:14,732 --> 00:49:16,148 Vai jūs, lūdzu, nākt ārā? 1005 00:49:16,148 --> 00:49:17,092 >> -Nu labi, Ma. 1006 00:49:17,092 --> 00:49:18,510 Es būšu out. 1007 00:49:18,510 --> 00:49:20,270 >> -Es biju kļūst tuvāk tagad. 1008 00:49:20,270 --> 00:49:21,823 Spriedze bija briesmīga. 1009 00:49:21,823 --> 00:49:23,045 Kas tas bija? 1010 00:49:23,045 --> 00:49:26,510 No planētas liktenis var karājas līdzsvarā. 1011 00:49:26,510 --> 00:49:28,985 >> -Ralphie, Randy s gotta go. 1012 00:49:28,985 --> 00:49:32,680 >> -I'll būt tiesības, kas paredzēti kliedz skaļi. 1013 00:49:32,680 --> 00:49:33,956 >> -Gandrīz tur. 1014 00:49:33,956 --> 00:49:35,140 Mani pirksti lidoja. 1015 00:49:35,140 --> 00:49:36,880 Mans prāts bija tērauda lamatas. 1016 00:49:36,880 --> 00:49:38,010 Katru poru vibrāciju. 1017 00:49:38,010 --> 00:49:39,878 Tas bija gandrīz skaidrs. 1018 00:49:39,878 --> 00:49:43,210 Jā, jā, jā, jā, jā. 1019 00:49:43,210 --> 00:49:49,030 >> -Noteikti dzert Ovaltine. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 Apaļīgs tirdzniecības? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 Dēls kuce. 1025 00:50:00,694 --> 00:50:01,900 >> [END VIDEO PLAYBACK] 1026 00:50:01,900 --> 00:50:04,260 >> SPEAKER 1: Tas ir CS50, un ka Būs Problēma noteikti divi. 1027 00:50:04,260 --> 00:50:06,305 Tiekamies nākamnedēļ. 1028 00:50:06,305 --> 00:50:08,800 >> SPEAKER 2: At nākamo CS50, tas notiek. 1029 00:50:08,800 --> 00:50:11,060 >> SPEAKER 1: Tik viens jautājums mums nav paskatījās līdz šim ir 1030 00:50:11,060 --> 00:50:12,220 ka funkcija norādes. 1031 00:50:12,220 --> 00:50:14,540 Tagad, funkcija rādītājs ir tikai adresi publisko 1032 00:50:14,540 --> 00:50:17,000 funkcija, bet līdzīgi - 1033 00:50:17,000 --> 00:50:18,250 dēls - 1034 00:50:18,250 --> 00:50:19,670