1 00:00:00,000 --> 00:00:02,742 >> [Музички] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> АНДИ Пенг: Ова е CS50, и добредојдовте во две недела на секција. 4 00:00:09,090 --> 00:00:11,740 Ова е, всушност, додека недела двајца од нашите class-- всушност, 5 00:00:11,740 --> 00:00:14,550 првата недела имавме секција. 6 00:00:14,550 --> 00:00:18,897 Кревање на рака, колку од сите вас дојде до супер секција минатата недела? 7 00:00:18,897 --> 00:00:19,480 Добро, тоа е во ред. 8 00:00:19,480 --> 00:00:20,020 Во ред е. 9 00:00:20,020 --> 00:00:23,110 Колкумина од вас го гледал супер секција минатата недела? 10 00:00:23,110 --> 00:00:23,610 ВО РЕД. 11 00:00:23,610 --> 00:00:25,702 А вие момци не парична казна на еден проблем во собата? 12 00:00:25,702 --> 00:00:28,660 Па јас ќе одам да го земам дека имаме еден куп навистина интелигентни деца 13 00:00:28,660 --> 00:00:32,310 во оваа класа и работите ќе биде добро. 14 00:00:32,310 --> 00:00:33,180 ВО РЕД. 15 00:00:33,180 --> 00:00:33,980 Па first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Прво, ние сме само ќе накратко одиме во текот на дневен ред за денес. 18 00:00:41,090 --> 00:00:42,700 Ние ќе зборуваме за се разбира логистика. 19 00:00:42,700 --> 00:00:45,480 Многу од вас веројатно имаат прашања во врска 20 00:00:45,480 --> 00:00:46,920 како работите се кандидира во овој курс. 21 00:00:46,920 --> 00:00:47,897 Ние ќе им одговори. 22 00:00:47,897 --> 00:00:49,730 Ние ќе треба да накратко поминат јамки во случај 23 00:00:49,730 --> 00:00:51,410 ниту еден од вас момци пропушти супер секција. 24 00:00:51,410 --> 00:00:53,240 Ќе зборуваме за ASCII мапирање. 25 00:00:53,240 --> 00:00:56,180 Ќе зборуваме за низи, функции, аргументи на командната линија. 26 00:00:56,180 --> 00:01:00,210 И, конечно, она што вие момци веројатно сите Навистина сакам да бидам тука за да дознаете за, 27 00:01:00,210 --> 00:01:01,270 е вашата pset2. 28 00:01:01,270 --> 00:01:04,209 Ќе имаме некои убави трикови и совети за тоа како да го направите тоа. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ВО РЕД. 31 00:01:08,690 --> 00:01:11,450 Исто така, второ, имаме многу слатки тука. 32 00:01:11,450 --> 00:01:13,583 Секој кој сака бонбони, само да излезе тука. 33 00:01:13,583 --> 00:01:14,430 Зграби некој. 34 00:01:14,430 --> 00:01:15,100 Имам еден куп. 35 00:01:15,100 --> 00:01:16,390 Имаме еден тон во канцеларијата. 36 00:01:16,390 --> 00:01:18,230 Јас навистина не би сакал да јадат бонбони на целиот ден. 37 00:01:18,230 --> 00:01:20,300 Вие момци треба да јадат сите бонбони, затоа што јас го донесов тука за вас момци. 38 00:01:20,300 --> 00:01:20,990 Само јаде бонбони. 39 00:01:20,990 --> 00:01:24,080 Таму ќе бидат слатки секој дел. 40 00:01:24,080 --> 00:01:25,330 >> Значи прво, кој сум јас? 41 00:01:25,330 --> 00:01:27,080 Моето име е Анди Пенг. 42 00:01:27,080 --> 00:01:30,270 Јас сум на чело на ТА CS50 тука на Јеил. 43 00:01:30,270 --> 00:01:32,540 А во прилог на тоа, јас, исто така, ќе be-- 44 00:01:32,540 --> 00:01:35,600 ако некој би like-- вашиот трчање другар, рамо за плачење. 45 00:01:35,600 --> 00:01:39,140 Ако ноќта пред должи вашата pset е, немате поим што се случува, 46 00:01:39,140 --> 00:01:40,080 удри ме. 47 00:01:40,080 --> 00:01:42,770 Ние ќе сочувствува заедно, и така натаму. 48 00:01:42,770 --> 00:01:46,100 Само знам дека јас сум тука како ресурс за вас, како на линијата на фронтот 49 00:01:46,100 --> 00:01:51,830 во помагање на вас момци дознаам како да ги реши проблемите во CS50 и пошироко. 50 00:01:51,830 --> 00:01:54,590 >> Мојот е-мејл е andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Јас исто така ќе испрати еден поединец e-mail со мојот телефонски број во неа 52 00:01:58,390 --> 00:02:01,860 така што не може секој од интернет може да се види мојот телефонски број. 53 00:02:01,860 --> 00:02:03,640 Чувствуваат слободни да ми се јавите во секое време. 54 00:02:03,640 --> 00:02:07,510 Сериозно, мојот телефон е обично во прилог на мојата рака. 55 00:02:07,510 --> 00:02:10,240 Јас не може да одговори во рок од неколку минути. 56 00:02:10,240 --> 00:02:11,984 Јас не може да се одговори во рок од неколку часа. 57 00:02:11,984 --> 00:02:14,400 Но, можам да ви гарантирам, ако ви e-mail мене, ако ме нарекуваат, 58 00:02:14,400 --> 00:02:17,404 текст мене, јас ќе одговори во рок од 24 часа. 59 00:02:17,404 --> 00:02:19,820 Честопати, јас ќе одговори пред дека, бидејќи јас ги разбирам 60 00:02:19,820 --> 00:02:23,900 дека секој има некои проблеми, и ако сакате вашите одговори 61 00:02:23,900 --> 00:02:26,110 треба да се одговори многу брзо. 62 00:02:26,110 --> 00:02:28,945 >> Меѓутоа, ако се јавите ми 30 минути пред 63 00:02:28,945 --> 00:02:31,570 тоа парче што се должи четврток night-- биде како, Анди, помогни ми, 64 00:02:31,570 --> 00:02:35,380 Не сум started-- јас може да даде вас, кои рамо за плачење. 65 00:02:35,380 --> 00:02:41,520 Но, тоа може да биде време да се размислува за како не треба да го стори тоа следниот пат. 66 00:02:41,520 --> 00:02:44,040 ВО РЕД. 67 00:02:44,040 --> 00:02:44,944 Упс. 68 00:02:44,944 --> 00:02:45,850 Како можам да се врати? 69 00:02:45,850 --> 00:02:48,140 Таму ќе одиме. 70 00:02:48,140 --> 00:02:52,310 >> Така што во овој разбира, имаме тон на поддршка за секого. 71 00:02:52,310 --> 00:02:54,640 Во прилог на само секции, што ќе се 72 00:02:54,640 --> 00:02:57,000 секоја недела да поминуваат 90 прекрасни минути со мене, 73 00:02:57,000 --> 00:02:58,330 ние, исто така, имаат на работното време. 74 00:02:58,330 --> 00:03:01,021 Колкумина од вас момци веќе имаат бил на работното време за помош? 75 00:03:01,021 --> 00:03:01,520 Одлично. 76 00:03:01,520 --> 00:03:05,700 Тоа е навистина добро да се види, затоа што ние има персонал од над 45 TAS и CAS 77 00:03:05,700 --> 00:03:11,780 обучени и се разбира дека се тука за да ви помогнеме со вашата момци psets. 78 00:03:11,780 --> 00:03:14,580 >> Понеделник, тие се одржуваат во ТЕАЛ училница во 17 Хил куќа овде 79 00:03:14,580 --> 00:03:15,350 на Јеил. 80 00:03:15,350 --> 00:03:17,349 Вторник и четврток, тие се одржа во заедничкото. 81 00:03:17,349 --> 00:03:20,010 8:00-11:00 доста секој делничен ден. 82 00:03:20,010 --> 00:03:21,620 Дојдат, излезе. 83 00:03:21,620 --> 00:03:24,030 Било каков проблем, нема problem-- само да дојде во, 84 00:03:24,030 --> 00:03:26,650 а потоа ние ќе ви помогнеме со тоа. 85 00:03:26,650 --> 00:03:31,640 >> Второ, во прилог на работното време и секции, ние исто така имаат шорцеви. 86 00:03:31,640 --> 00:03:35,930 Дали некој некогаш видел неколку од шорцеви или walkthroughs во видеа 87 00:03:35,930 --> 00:03:36,750 на веб страницата? 88 00:03:36,750 --> 00:03:37,250 ВО РЕД. 89 00:03:37,250 --> 00:03:39,510 Па тие се навистина, навистина корисна. 90 00:03:39,510 --> 00:03:42,470 Нашата убава производство Харвард обедините таму на тоа училиште 91 00:03:42,470 --> 00:03:47,910 на север, тие се снимени и произведени овие неверојатни можи видеа. 92 00:03:47,910 --> 00:03:52,290 >> Тие ќе ве однесе чекор по чекор, преку како да одат за решавање на некој проблем. 93 00:03:52,290 --> 00:03:56,340 Честопати, ако сте збунети околу едноставен концепт, од единствен концепт, 94 00:03:56,340 --> 00:03:59,780 ги погледне, бидејќи најверојатно имаат кратко на неа некаде на нашата веб страница. 95 00:03:59,780 --> 00:04:03,800 И тоа е обично голем ресурс да се погледне за кога си прв 96 00:04:03,800 --> 00:04:06,510 изгубени за тоа како да се справи со проблемот. 97 00:04:06,510 --> 00:04:09,750 >> Трето, ние исто така имаат study50 и reference50. 98 00:04:09,750 --> 00:04:15,650 Така студираат 50 на веб-страница е само линк. 99 00:04:15,650 --> 00:04:21,500 Тоа е, според мене, study.cs50.net или нешто слично. 100 00:04:21,500 --> 00:04:22,860 Само да го Google. 101 00:04:22,860 --> 00:04:24,229 Имаме многу слајдови подготвени. 102 00:04:24,229 --> 00:04:26,770 Имаме многу кратки и walkthroughs-- работите сите состави 103 00:04:26,770 --> 00:04:31,070 многу убаво и уредно за вас момци сите да ги пребарувате преку, гледам никаква концепти 104 00:04:31,070 --> 00:04:32,860 дека сте збунети околу тоа. 105 00:04:32,860 --> 00:04:35,920 Тоа веројатно ќе биде покриен таму во study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- слични. 107 00:04:37,640 --> 00:04:41,510 Имаме голем број на различни белешки лесно достапни за ваша употреба. 108 00:04:41,510 --> 00:04:44,450 И на крај, имаме што е наречен CS50 дискутираат, 109 00:04:44,450 --> 00:04:48,082 форум во кој, ако претходната ноќ правиш вашите проблеми, да речеме, 110 00:04:48,082 --> 00:04:49,880 имате некое прашање. 111 00:04:49,880 --> 00:04:52,340 Логирајте се за да CS50 разговараат. 112 00:04:52,340 --> 00:04:53,190 Објави го твоето прашање. 113 00:04:53,190 --> 00:04:55,820 А потоа еден од hundreds-- можеби, thousands-- на врсници 114 00:04:55,820 --> 00:04:57,960 преземање на оваа класа на интернет ќе се најавите. 115 00:04:57,960 --> 00:05:01,182 А можеби и некој може да се добие Вашиот одговор пред ТА може. 116 00:05:01,182 --> 00:05:03,390 Тоа е во суштина само еден онлајн форум за да можеме сите 117 00:05:03,390 --> 00:05:04,556 користи за да разговараат за нашите проблеми. 118 00:05:04,556 --> 00:05:06,483 Тоа е кул. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ВО РЕД. 121 00:05:11,550 --> 00:05:13,220 Значи проблемот поставува. 122 00:05:13,220 --> 00:05:17,840 Ние сме во право во врска со дебелина на проблемот постави два. 123 00:05:17,840 --> 00:05:20,570 А многу од нас веќе имаат бореа проблем во собата еден. 124 00:05:20,570 --> 00:05:24,460 Ние веќе знаеме дека можеби чека за минатата ноќ за да го направите вашиот pset 125 00:05:24,460 --> 00:05:28,170 не е на најпаметните нешто да се направи во CS50. 126 00:05:28,170 --> 00:05:32,380 >> Совети и совети во суштина за Успехот се прочита целиот спец. 127 00:05:32,380 --> 00:05:36,270 Како и многумина од вас веќе имаат читај спецификациите за pset 2? 128 00:05:36,270 --> 00:05:36,770 ВО РЕД. 129 00:05:36,770 --> 00:05:39,840 Тоа е солидна сума. 130 00:05:39,840 --> 00:05:43,210 Знам дека вие момци веројатно имаат признаено до сега спецификациите се навистина долго. 131 00:05:43,210 --> 00:05:45,700 Тие се многу, многу долго. 132 00:05:45,700 --> 00:05:49,630 >> Тоа е навистина тешко да се прочита секоја линија на таа внимателно збор по збор. 133 00:05:49,630 --> 00:05:52,780 Сакате само да видиш до каде тоа ви кажува да се направи нешто. 134 00:05:52,780 --> 00:05:54,459 Можам да ви гарантирам, не го прават тоа. 135 00:05:54,459 --> 00:05:56,750 Ако го направите тоа, ти си веројатно ќе го пропушти некаде 136 00:05:56,750 --> 00:05:58,458 каде тоа ви кажува како да започнете проблемот 137 00:05:58,458 --> 00:06:01,140 или тоа ти кажува што да име вашиот проблем или тоа ви кажува, 138 00:06:01,140 --> 00:06:03,720 ова е можеби најдобриот начин за да почнете да го правите вашиот проблем. 139 00:06:03,720 --> 00:06:05,050 А потоа ќе бидат изгубени. 140 00:06:05,050 --> 00:06:08,219 >> Кога ќе се обидам да ја прочитате вашата спец половина пат, 141 00:06:08,219 --> 00:06:10,510 многу важни information-- во-дека не сте 142 00:06:10,510 --> 00:06:12,260 ќе биде во можност да навистина пристап. 143 00:06:12,260 --> 00:06:13,219 Па прочитајте ја целата спецификации. 144 00:06:13,219 --> 00:06:15,468 Обидете се да го прочитате целиот спец пред да се дојде до делот, 145 00:06:15,468 --> 00:06:17,360 затоа што тогаш, кога ќе зборува за pset, 146 00:06:17,360 --> 00:06:21,070 сите ние може да се има идеја од она што се случува. 147 00:06:21,070 --> 00:06:25,169 >> Како второ, тоа е концепт дека јас ќе се допаѓа на референтни 148 00:06:25,169 --> 00:06:26,710 многу во текот на семестарот се разбира. 149 00:06:26,710 --> 00:06:30,070 Но, во суштина, се сретне со нас на половина пат, нели? 150 00:06:30,070 --> 00:06:33,970 Мене, како на вашите ТП и Џејсон како се разбира менаџер и Scaz како професор 151 00:06:33,970 --> 00:06:37,120 и Давид како професор и сите Од друга прекрасна TAS во овој курс, 152 00:06:37,120 --> 00:06:39,830 асистенти во оваа разбира ние ќе се потрудиме 153 00:06:39,830 --> 00:06:42,965 да се осигура дека вие сте во собата Регистрација за да се успее во овој курс. 154 00:06:42,965 --> 00:06:43,840 Ние ќе се одржи секција. 155 00:06:43,840 --> 00:06:44,870 Ние ќе се одржи на работното време. 156 00:06:44,870 --> 00:06:47,087 Ние ќе одговори на вашиот телефон повици, одговори на вашиот e-mail, 157 00:06:47,087 --> 00:06:49,670 направиме се што можеме да се направи сигурни дека вашите прашања се одговорени. 158 00:06:49,670 --> 00:06:51,460 >> Сепак, да ни помогне премногу. 159 00:06:51,460 --> 00:06:52,450 Ги исполнуваат ни до половина. 160 00:06:52,450 --> 00:06:56,040 Ако дојде до работното време не има качил на секција, а не 161 00:06:56,040 --> 00:07:02,060 ја видел предавања, немајќи идеја што се случува, да биде како, да ми помогне. 162 00:07:02,060 --> 00:07:04,350 Одам да се биде како, добро, жал ми е. 163 00:07:04,350 --> 00:07:06,410 Тоа може да биде време да се дадат кои рамо за плачење, 164 00:07:06,410 --> 00:07:08,959 затоа што јас не сум сигурен она што можам да направам за да ви помогнат 165 00:07:08,959 --> 00:07:12,000 ако не се обидуваат да се барем помош себе малку на почетокот. 166 00:07:12,000 --> 00:07:12,910 Ги исполнуваат ни до половина. 167 00:07:12,910 --> 00:07:15,020 Знаете, ве молиме да дојде подготвени да одговорат и да добијат 168 00:07:15,020 --> 00:07:16,353 подготвени да се вклучат во материјалот. 169 00:07:16,353 --> 00:07:19,342 Тоа го прави работи толку многу полесно за сите кои се вклучени. 170 00:07:19,342 --> 00:07:22,970 Да, тоа е тоа прилично многу. 171 00:07:22,970 --> 00:07:23,720 >> Оценување. 172 00:07:23,720 --> 00:07:29,250 Така, на програмата, тоа е прилично во-длабочината на поглед на тоа како ние одделение. 173 00:07:29,250 --> 00:07:32,440 Но, во суштина, дефект во тоа е 50% од вашата оценка 174 00:07:32,440 --> 00:07:34,530 ќе биде psets, која е прекрасна, затоа што тоа е 175 00:07:34,530 --> 00:07:37,400 каде што сте трошење огромни поголемиот дел од вашето време на курсот. 176 00:07:37,400 --> 00:07:39,854 Квизови од 40%, и вашиот Конечниот проект ќе биде 10%. 177 00:07:39,854 --> 00:07:42,520 Ќе има две квизови текот текот на семестарот. 178 00:07:42,520 --> 00:07:47,050 Мислам дека времето и датумите се исто така се наведени на наставната програма. 179 00:07:47,050 --> 00:07:49,210 >> Начинот на кој ние ќе биде оценување на вашите psets 180 00:07:49,210 --> 00:07:53,930 е тоа што имаме суштински четири вредности кои ги додели на секое одделение. 181 00:07:53,930 --> 00:07:57,250 Имаме вредноста на обемот, коректност, дизајн и стил. 182 00:07:57,250 --> 00:08:01,530 Па како што можете да видите, тоа е вид на нашите формула за пресметување psets. 183 00:08:01,530 --> 00:08:03,640 Три ние даде најмногу тежина на коректност, 184 00:08:03,640 --> 00:08:06,140 бидејќи очигледно вашиот тренер треба да се тестира за случаите 185 00:08:06,140 --> 00:08:08,480 дека сакаме да се тестира. 186 00:08:08,480 --> 00:08:11,000 >> Вие момци имаат check50 на располагање. 187 00:08:11,000 --> 00:08:13,730 Тоа е многу корисна функција дека вие момци можат да сите 188 00:08:13,730 --> 00:08:17,560 испратите вашиот код на нашите сервери, каде што ние ќе го провериме тоа за вас. 189 00:08:17,560 --> 00:08:20,800 И сте виделе оние frowny лица, смешковци лица. 190 00:08:20,800 --> 00:08:22,119 Тие се навистина, навистина од голема помош. 191 00:08:22,119 --> 00:08:23,910 Ве молиме да не биде студент кој сакал обиди 192 00:08:23,910 --> 00:08:26,230 да hardcode во сите одговори на нив. 193 00:08:26,230 --> 00:08:30,050 Јас сум дефинитивно видел pset каде некој виде сите вредности на check50 194 00:08:30,050 --> 00:08:33,429 и тие само хард кодирани in-- ако овој број, печати од овој број. 195 00:08:33,429 --> 00:08:35,080 Ако тој број, печати од тој број. 196 00:08:35,080 --> 00:08:36,090 Не го правам тоа. 197 00:08:36,090 --> 00:08:39,360 >> Иако технички check50 е точен, 198 00:08:39,360 --> 00:08:41,809 вашиот начин на решавање на Проблемот не е точна. 199 00:08:41,809 --> 00:08:45,770 Па само го користите check50 повремено. 200 00:08:45,770 --> 00:08:48,497 Но, исто така бидете сигурни дека ќе се разбере како тоа функционира, 201 00:08:48,497 --> 00:08:50,580 програмата функционира во прилог на check50, 202 00:08:50,580 --> 00:08:53,120 бидејќи не можеме да се тестираат секоја можен случај на check50. 203 00:08:53,120 --> 00:08:55,440 Ние ќе биде тестирање на некои од нив. 204 00:08:55,440 --> 00:09:00,390 >> Дизајн во суштина, како добро дизајниран е вашиот број? 205 00:09:00,390 --> 00:09:04,150 Ако сте копи-вметнување повеќе линии на код многу, многу пати. 206 00:09:04,150 --> 00:09:06,960 Можеби немате доста најдобар дизајн во вашиот код. 207 00:09:06,960 --> 00:09:09,470 Можеби е време да се додаде дека јамка. 208 00:09:09,470 --> 00:09:12,090 Во суштина, тоа е само тука сите за се обидува да го направи вашиот код, 209 00:09:12,090 --> 00:09:17,010 обидувајќи се да го напишете вашиот код како ефикасно што е можно повеќе, така што вашата програма работи 210 00:09:17,010 --> 00:09:19,630 што е можно побрзо. 211 00:09:19,630 --> 00:09:20,996 >> И на крај, ние имаме стил. 212 00:09:20,996 --> 00:09:24,360 Па стил е вид на произволна, субјективен рок. 213 00:09:24,360 --> 00:09:27,470 Знам дека официјално има стил 50 водич за CS50, 214 00:09:27,470 --> 00:09:30,050 каде што тоа ти го кажува, о ти, треба да има простор овде. 215 00:09:30,050 --> 00:09:32,220 Треба вид на формат кодот на овој начин. 216 00:09:32,220 --> 00:09:34,070 Вие треба да ги именува работите на овој начин. 217 00:09:34,070 --> 00:09:38,180 >> Јас навистина не се грижат, само по себе, како ке го одберете да стил вашиот код, 218 00:09:38,180 --> 00:09:39,840 само онолку колку што можете да останат доследни. 219 00:09:39,840 --> 00:09:43,732 На пример, ако сакате да се оставете простор по вашето четири 220 00:09:43,732 --> 00:09:45,690 пред четири вашата телефонска линија, само да го направите тоа во секое време. 221 00:09:45,690 --> 00:09:46,523 Не вид на го направи тоа. 222 00:09:46,523 --> 00:09:47,730 Не правете го тоа други времиња. 223 00:09:47,730 --> 00:09:51,046 Ако сакате да ја задржите кадрава загради просторот на одреден начин, 224 00:09:51,046 --> 00:09:52,170 само секогаш го на тој начин да се направи. 225 00:09:52,170 --> 00:09:54,628 Не вид на го направи тоа некаде тука и таму некаде не. 226 00:09:54,628 --> 00:09:57,010 Кога сме оценување, навистина е тешко 227 00:09:57,010 --> 00:09:59,420 ако јас немам идеја како што го форматирате вашиот код, 228 00:09:59,420 --> 00:10:02,064 работите се чукнат и надвор од местото. 229 00:10:02,064 --> 00:10:04,980 Ако само го задржи во согласност, тоа е многу полесно за мене како поголема 230 00:10:04,980 --> 00:10:06,310 да бидат во можност да го прочитате вашиот код. 231 00:10:06,310 --> 00:10:09,393 Тоа е многу полесно за вас, како студентот да бидат во можност да се погледне преку вашиот код 232 00:10:09,393 --> 00:10:11,720 и да видиме што е проблемот со таа црта зошто има проблеми. 233 00:10:11,720 --> 00:10:15,740 Стил е една од најлесните работи вие момци можат да се направи за да се добие целосна резултати. 234 00:10:15,740 --> 00:10:18,770 Во суштина, ако само се грижи, ако плаќате пет минути на внимание 235 00:10:18,770 --> 00:10:22,760 на вашиот код секоја недела, ќе треба се добива целосна поени стил. 236 00:10:22,760 --> 00:10:26,020 >> И на крај, ние сме она што се нарекува мултипликатор на опсегот. 237 00:10:26,020 --> 00:10:28,890 Scope-- Знам дека тоа е голема збор, особено во оваа класа. 238 00:10:28,890 --> 00:10:31,030 Но, обемот, сето она што значи е во тоа што се обидуваш 239 00:10:31,030 --> 00:10:33,670 на psets на најдоброто од вашата способност. 240 00:10:33,670 --> 00:10:37,180 Ако ја вклучите во три на вашиот четири проблеми 241 00:10:37,180 --> 00:10:39,460 па дури и не обидувајте се на последната, ти си веројатно 242 00:10:39,460 --> 00:10:41,630 случува да се изгуби некои точки на опсегот. 243 00:10:41,630 --> 00:10:44,560 >> Дури и ако само да почне на проблемот, направите вашиот најдобар да преку неа. 244 00:10:44,560 --> 00:10:47,691 Дури и ако тоа не функционира, да се претвори тоа во, затоа што тоа го покажува и докажува 245 00:10:47,691 --> 00:10:50,190 за нас што ти се обидуваш, дека сте се обиделе проблемот поставени 246 00:10:50,190 --> 00:10:51,430 на најдоброто од вашата способност. 247 00:10:51,430 --> 00:10:53,800 А потоа ние може да ви даде целосна поени за опсегот. 248 00:10:53,800 --> 00:10:58,715 >> Опсег е исто така многу важно за кога ќе зборува за најниска капка pset резултат. 249 00:10:58,715 --> 00:11:02,010 Па во текот на семестар, вие момци имаат девет psets. 250 00:11:02,010 --> 00:11:05,340 И ние, всушност, ќе се намалува најниска оценка од тие девет, 251 00:11:05,340 --> 00:11:07,670 но само ако имаат целосен опфат поени. 252 00:11:07,670 --> 00:11:11,120 >> Па ако може да се претвори во нецелосна pset, За жал, ние не може да се откажат од таа една, 253 00:11:11,120 --> 00:11:13,540 бидејќи вашиот обем точки не се завршени. 254 00:11:13,540 --> 00:11:16,570 Па дури и ако имате страшна недела каде умираш и си болен 255 00:11:16,570 --> 00:11:20,040 или вашето куче ќе умре, вашата мачка ќе умре, и сте преоптоварени со домашни задачи, 256 00:11:20,040 --> 00:11:21,074 само да се обиде на pset. 257 00:11:21,074 --> 00:11:22,490 Да го направи тоа на најдоброто од вашата способност. 258 00:11:22,490 --> 00:11:23,840 Ако тоа не функционира, тоа не е важно. 259 00:11:23,840 --> 00:11:24,506 Само да го предаде. 260 00:11:24,506 --> 00:11:26,590 Најмалку што може да даде ви укажува на напори. 261 00:11:26,590 --> 00:11:28,510 >> А за труд во оваа класа. 262 00:11:28,510 --> 00:11:30,170 Најмалку најниска капка резултат за напор. 263 00:11:30,170 --> 00:11:32,354 Па је. 264 00:11:32,354 --> 00:11:33,270 Тоа е доста тоа многу. 265 00:11:33,270 --> 00:11:36,521 Дали некој има прашања, така далеку од тоа колку ние одделение во наставата? 266 00:11:36,521 --> 00:11:37,187 Или било кој од овие? 267 00:11:37,187 --> 00:11:41,220 Било кој од овие па far-- делови, работното време? 268 00:11:41,220 --> 00:11:41,720 Кул. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ВО РЕД. 271 00:11:47,800 --> 00:11:51,260 >> Значи ова е тема која не некој навистина сака да зборува за. 272 00:11:51,260 --> 00:11:53,084 Јас навистина не би сакал да зборувам за тоа. 273 00:11:53,084 --> 00:11:55,250 Вие момци навистина не би сакал да ме слушнат зборуваат за тоа. 274 00:11:55,250 --> 00:11:57,690 Но, за жал, сите ние треба да се зборува за тоа. 275 00:11:57,690 --> 00:12:00,110 Дејвид помина 20 минути предавање зборува за тоа. 276 00:12:00,110 --> 00:12:02,580 И кој е предмет на академски искреност. 277 00:12:02,580 --> 00:12:08,110 >> Значи ние сите тука сме веројатно напишана есеј некаде во нашите Јеил кариера. 278 00:12:08,110 --> 00:12:11,800 Ние веројатно сме добиле еден разговор, каде што имаме беше кажано да не плагиатствувам нашиот есеј, 279 00:12:11,800 --> 00:12:13,940 затоа што тоа не е наша работа. 280 00:12:13,940 --> 00:12:18,109 По компјутерски науки, имаме од ист вид на концепт. 281 00:12:18,109 --> 00:12:20,150 Целата работа што ќе ги достават, сите кодот што ќе пишувам 282 00:12:20,150 --> 00:12:21,900 треба да биде код кој сте го напишале. 283 00:12:21,900 --> 00:12:24,280 Не треба да биде број кои сте копирани од друго место. 284 00:12:24,280 --> 00:12:26,777 Не треба да биде код кој сте googled и plopped во 285 00:12:26,777 --> 00:12:28,360 а вие навистина не знам дали таа работи. 286 00:12:28,360 --> 00:12:32,440 Можете вид на имаат чувство на она што таа го прави, но навистина не. 287 00:12:32,440 --> 00:12:36,562 Кога се двоумите, во суштина, тоа е само да биде разумна. 288 00:12:36,562 --> 00:12:38,520 На нашата програма, имаме цела листа на работите 289 00:12:38,520 --> 00:12:40,560 гледаме како разумно наспроти не е разумно. 290 00:12:40,560 --> 00:12:43,820 >> На пример, разумно е вие ​​и вашиот пријател 291 00:12:43,820 --> 00:12:47,360 дискутираме за она што е најдобар начин да се оди за решавање на логички проблем. 292 00:12:47,360 --> 00:12:48,910 Тоа е прилично разумна. 293 00:12:48,910 --> 00:12:53,244 Што не би било разумно е ако момци се собраа заедно, внесе истиот код, 294 00:12:53,244 --> 00:12:54,410 и се претвори во истата шифра. 295 00:12:54,410 --> 00:12:56,302 Тоа не е разумно. 296 00:12:56,302 --> 00:12:57,510 Истото, вид на есеј. 297 00:12:57,510 --> 00:12:59,290 Ако сакате да се разговара со вашиот пријател, еј, 298 00:12:59,290 --> 00:13:00,220 тоа е она што сакам да пишувам за. 299 00:13:00,220 --> 00:13:02,500 Овие се чекорите што сакам да преземат за да пишувам за тоа, одлично. 300 00:13:02,500 --> 00:13:03,208 Тоа е прекрасно. 301 00:13:03,208 --> 00:13:04,790 Ве молиме да соработуваат едни со други. 302 00:13:04,790 --> 00:13:06,540 Ако вие момци да почне пишување на истото, 303 00:13:06,540 --> 00:13:10,020 претворат во истиот есеј, тоа е помалку ОК. 304 00:13:10,020 --> 00:13:13,200 Значи, кога се двоумите, само не го направи тоа. 305 00:13:13,200 --> 00:13:16,940 >> Тука, ние во CS50, имаме скрипти кои што работат за да се автоматизира да се тестира 306 00:13:16,940 --> 00:13:21,740 не само во исправноста на вашиот код, но исто така и единственоста на вашиот код. 307 00:13:21,740 --> 00:13:25,920 Затоа ве молам не ни се стави во позиција на морале да се однесуваат на вашиот случај да Екском. 308 00:13:25,920 --> 00:13:31,110 Ве молам само за сите, ајде да направи ова прекрасно искуство. 309 00:13:31,110 --> 00:13:33,600 Секој учи подобро, сите ние сме посреќни, 310 00:13:33,600 --> 00:13:37,926 и сите ние се постави за да се се успее во овој курс. 311 00:13:37,926 --> 00:13:39,800 Нешто што е многу единствено во врска со оваа група 312 00:13:39,800 --> 00:13:42,660 што мислам дека секој треба навистина обрне внимание е дека имаме 313 00:13:42,660 --> 00:13:44,930 што се вика на жалење клаузула во нашата програма. 314 00:13:44,930 --> 00:13:50,010 Значи во суштина, во рок од 72 часа, ако мислите дека сте го направиле нешто 315 00:13:50,010 --> 00:13:53,240 вие не сте сосема сигурни беше соодветно, Ве молиме да дојде кај нас. 316 00:13:53,240 --> 00:13:57,220 Ние Ви ветувам дека во рок од 72 часа ние ќе се справи со себе случај 317 00:13:57,220 --> 00:13:59,820 без да се однесуваат на високото орган во администрацијата. 318 00:13:59,820 --> 00:14:03,100 >> Па ако може да стигне до мене и да каже, Анди, еј, јас сум навистина жал, 319 00:14:03,100 --> 00:14:07,620 но мислам дека има неколку линии во мојата код синоќа дека јас вид на googled, 320 00:14:07,620 --> 00:14:10,120 се симна од магацинот Преливник, копирајте го и атипичен, 321 00:14:10,120 --> 00:14:13,680 и јас сум навистина, навистина жал за тоа, да ме известите. 322 00:14:13,680 --> 00:14:16,900 Ве молиме не само нека се гнои и само се надевам дека јас го фатат. 323 00:14:16,900 --> 00:14:17,784 Ние ќе го фатат. 324 00:14:17,784 --> 00:14:18,450 Само да се дојде до мене. 325 00:14:18,450 --> 00:14:20,520 Дозволете ми да знам во рок од 72 часа. 326 00:14:20,520 --> 00:14:22,240 Ќе дознаам решение. 327 00:14:22,240 --> 00:14:26,679 А ние ветуваме дека ние нема да се однесуваат на универзитетските власти суштина. 328 00:14:26,679 --> 00:14:29,220 Така, тоа е во ваш најдобар интерес само да се биде искрен со секого 329 00:14:29,220 --> 00:14:31,720 вклучени во курсот. 330 00:14:31,720 --> 00:14:34,630 >> ВО РЕД. 331 00:14:34,630 --> 00:14:35,240 ВО РЕД. 332 00:14:35,240 --> 00:14:37,800 Па сега, брзо пред Се движат натаму, дали некој 333 00:14:37,800 --> 00:14:42,670 имаат прашања во врска логистика за тоа како курсеви ние се случува да се кандидира, 334 00:14:42,670 --> 00:14:45,982 колку делови се случува да се кандидира, било што од тоа? 335 00:14:45,982 --> 00:14:46,711 ВО РЕД. 336 00:14:46,711 --> 00:14:47,210 Је. 337 00:14:47,210 --> 00:14:48,126 >> ПУБЛИКАТА: [Беззвучен]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 АНДИ Пенг: Да. 340 00:14:51,080 --> 00:14:54,850 Па quizzes-- колку од вас се во делот понеделник / среда? 341 00:14:54,850 --> 00:14:56,700 Колкумина од вас се во вторник / четврток? 342 00:14:56,700 --> 00:14:58,550 Добро, па тоа е солидна Сплит тука. 343 00:14:58,550 --> 00:15:00,900 Па начинот на кој ние се кандидира тоа во Јеил е дека ние 344 00:15:00,900 --> 00:15:04,040 се случува да имаат две одделни quizzes-- еден за секоја section-- дека 345 00:15:04,040 --> 00:15:06,160 ќе бидат преземени за време на часот. 346 00:15:06,160 --> 00:15:09,310 Мислам дека тоа е октомври, крајот на октомври, нешто слично, што е една недела 347 00:15:09,310 --> 00:15:10,794 на квизот. 348 00:15:10,794 --> 00:15:11,960 Да, па само да дојде до класа. 349 00:15:11,960 --> 00:15:13,920 На тој понеделник или среда, ќе ги преземат квиз. 350 00:15:13,920 --> 00:15:16,336 На тој вторник или четврток, ќе донесе поинаква квиз. 351 00:15:16,336 --> 00:15:18,570 Но истиот материјал ќе бидат покриени. 352 00:15:18,570 --> 00:15:19,160 Је. 353 00:15:19,160 --> 00:15:20,660 Добро прашање. 354 00:15:20,660 --> 00:15:21,160 Је. 355 00:15:21,160 --> 00:15:23,260 >> ПУБЛИКАТА: Каде правиме одат за да се провери нашата оценки? 356 00:15:23,260 --> 00:15:23,926 >> АНДИ Пенг: Да. 357 00:15:23,926 --> 00:15:28,420 Па јас ќе се испраќаат на е-пошта што и секоја недела 358 00:15:28,420 --> 00:15:31,460 кога квизови се graded-- или, Жал ми е, кога psets се оценуваат. 359 00:15:31,460 --> 00:15:34,120 Psets обично се вклучен во од страна на пладне или петок. 360 00:15:34,120 --> 00:15:37,540 Па јас ветувам дека ќе обидете се да ги вратам на вас 361 00:15:37,540 --> 00:15:40,000 од страна на пладне од следниве петок. 362 00:15:40,000 --> 00:15:44,950 >> Секогаш кога ќе одделение pset, ќе го испратам надвор известување на книга на одделение 363 00:15:44,950 --> 00:15:47,070 што ви кажува вашиот резултат може да се гледа на интернет. 364 00:15:47,070 --> 00:15:52,022 Па право на оваа недела, откако јас заврши оценување psets минатата недела, 365 00:15:52,022 --> 00:15:54,230 вие момци ќе добиете e-mail известувањето ти го кажувам, 366 00:15:54,230 --> 00:15:55,870 еј ова е местото каде што одат за да ја видите вашата оценки. 367 00:15:55,870 --> 00:15:57,680 И може да се види секој дефект на оценките. 368 00:15:57,680 --> 00:15:58,555 Можете да ја видите коментари. 369 00:15:58,555 --> 00:16:00,360 Ох, брза работа, исто така. 370 00:16:00,360 --> 00:16:03,060 Делот за коментари во големата Книгата е местото каде што ќе веројатно 371 00:16:03,060 --> 00:16:05,300 поминуваат поголемиот дел од моето време оценување. 372 00:16:05,300 --> 00:16:07,094 Па едно нешто што е навистина важно кога 373 00:16:07,094 --> 00:16:09,010 вие момци се гледање оценките на вашиот psets 374 00:16:09,010 --> 00:16:11,400 не само што е во потрага на физичко резултат 375 00:16:11,400 --> 00:16:14,630 туку и преземање на време да навистина чита моите коментари. 376 00:16:14,630 --> 00:16:17,820 >> Често се што ви дава повратни информации за тоа како ви се решавање на проблемот. 377 00:16:17,820 --> 00:16:20,480 Ако ви треба да се направи нешто малку подобро, 378 00:16:20,480 --> 00:16:24,080 конструктивна критика обично е најдобро дадени во овие коментари секција. 379 00:16:24,080 --> 00:16:26,950 Затоа ве молам, ве молам, јас ќе одам да поминат извесно време пишувате коментари. 380 00:16:26,950 --> 00:16:30,440 Ве молиме, Јас навистина би го ценат ако вие момци ќе ги прочитате овие коментари. 381 00:16:30,440 --> 00:16:31,170 ВО РЕД. 382 00:16:31,170 --> 00:16:34,150 Кул. 383 00:16:34,150 --> 00:16:34,680 >> Во ред. 384 00:16:34,680 --> 00:16:40,680 Па ние ќе се обидеме да почнам да зборувам и само разгледување брзо 385 00:16:40,680 --> 00:16:45,040 некои од материјалот од нула само така сме недела 386 00:16:45,040 --> 00:16:48,760 на десната страна за почнуваат проблемите од оваа недела. 387 00:16:48,760 --> 00:16:52,600 Така е еден циклус, додека на три типа на јамки 388 00:16:52,600 --> 00:16:54,510 зборувавме претходно во оваа класа. 389 00:16:54,510 --> 00:16:57,060 >> Додека јамка суштина е напишано во синтакса 390 00:16:57,060 --> 00:17:00,666 каде што, додека некој услов, да го направите ова во неколку наврати, нели? 391 00:17:00,666 --> 00:17:02,040 Сфатете го тоа во овој графички тука. 392 00:17:02,040 --> 00:17:04,780 Ви се случува да започне во одреден момент во вашиот код. 393 00:17:04,780 --> 00:17:09,030 Си оди за да влезат состојба јамка if-- Не know-- x е помалку од еден. 394 00:17:09,030 --> 00:17:11,677 >> Ако тоа е точно, си оди да се изврши на телото јамка. 395 00:17:11,677 --> 00:17:14,010 И ви се случува да го прави дека, повторно, повторно, повторно, 396 00:17:14,010 --> 00:17:17,900 одново и over-- кој е зошто тоа е loop-- додека вашата состојба станува 397 00:17:17,900 --> 00:17:19,079 неточно. 398 00:17:19,079 --> 00:17:22,140 Така на овој начин, додека јамка е еден од поедноставни начини 399 00:17:22,140 --> 00:17:25,619 да се напише било кој вид на услов треба да се повторува одново и одново и одново. 400 00:17:25,619 --> 00:17:28,109 Но, бидете внимателни кога сте пишување било кој вид на јамка 401 00:17:28,109 --> 00:17:32,140 дека имате состојба излез како и надградба на што и да 402 00:17:32,140 --> 00:17:36,714 е така што вашиот јамка не само се кандидира повторно и бескрајно. 403 00:17:36,714 --> 00:17:38,630 Во секој случај, ви се случува да сакате да бидете сигурни 404 00:17:38,630 --> 00:17:42,670 дека сте менување на некои аспекти на Вашиот код или на крајот на циклусот 405 00:17:42,670 --> 00:17:46,680 само за да бидете сигурни дека ќе имаат начин за напредување кон состојба 406 00:17:46,680 --> 00:17:48,400 што сакате да се исполнат до крај. 407 00:17:48,400 --> 00:17:50,239 Дали тоа има смисла за секого? 408 00:17:50,239 --> 00:17:52,530 Ние едноставно не сакаат да бидат во фатени во оваа спирала каде 409 00:17:52,530 --> 00:17:55,710 одиме наоколу и наоколу и не постои начин да се пробие на јамка. 410 00:17:55,710 --> 00:17:58,844 И секоја јамка во суштина има начин да се направи тоа. 411 00:17:58,844 --> 00:17:59,344 ВО РЕД. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Второ, многу од вас во вашиот Марио psets 414 00:18:06,060 --> 00:18:08,910 веројатно да се вработат овој вид на јамка. 415 00:18:08,910 --> 00:18:11,802 Тоа се вика направите додека јамка. 416 00:18:11,802 --> 00:18:14,510 Прво на сите, може ли некој да ми каже она што разликата помеѓу do 417 00:18:14,510 --> 00:18:16,586 додека јамка и додека јамка е? 418 00:18:16,586 --> 00:18:17,086 Је. 419 00:18:17,086 --> 00:18:21,030 >> ПУБЛИКАТА: На направите додека јамка работи на првиот [Беззвучен]. 420 00:18:21,030 --> 00:18:22,120 >> АНДИ Пенг: Да, точно. 421 00:18:22,120 --> 00:18:27,130 Па направите додека јамка секогаш го прави она што е во внатрешноста на задачи, се внатре во заградите 422 00:18:27,130 --> 00:18:30,520 таму и прави таа состојба пред проверка за the-- ми е, 423 00:18:30,520 --> 00:18:32,940 не дека кодот пред проверка на состојбата. 424 00:18:32,940 --> 00:18:37,200 И ова е особено значајно за нас овде, во оваа класа, бидејќи повеќето пати 425 00:18:37,200 --> 00:18:41,450 ние се случува да сакаат да се поттикне корисникот за некој вид на влез. 426 00:18:41,450 --> 00:18:43,520 А потоа, во зависност од влезниот тие ни даваат, 427 00:18:43,520 --> 00:18:46,150 тогаш може да се оцени, ај да се направи ние треба да ги поттикне повторно? 428 00:18:46,150 --> 00:18:49,930 >> Па во Марио, ако корисникот ти дал негативен висина, на пример, 429 00:18:49,930 --> 00:18:52,990 си оди за да првиот брза и го она што е внатре. 430 00:18:52,990 --> 00:18:54,820 Тогаш сте ќе треба да проверите, додека. 431 00:18:54,820 --> 00:18:57,570 Што знаете, е негативен 1, е дека позитивен број? 432 00:18:57,570 --> 00:19:00,680 Ако тоа не е, јас ќе одам да се оди врати и да го повтори do и повторете 433 00:19:00,680 --> 00:19:03,950 и се повторува и се повторува се додека не се конечно ви даде голем број кој ви се допаѓа, 434 00:19:03,950 --> 00:19:07,002 дека сите ние може да се вработат во нашиот код. 435 00:19:07,002 --> 00:19:09,210 Тоа е доста важно за во суштина било корисник влез. 436 00:19:09,210 --> 00:19:11,760 Можам да ви гарантира било време во pset каде 437 00:19:11,760 --> 00:19:15,070 бараме од вас да го внесете било кој вид на код, ние сме 438 00:19:15,070 --> 00:19:17,540 веројатно нема да ви даде случај тест во кој ние сме 439 00:19:17,540 --> 00:19:21,200 одам да ви даде нешто лошо, тоа е ќе се обиде да се пробие твојот код. 440 00:19:21,200 --> 00:19:25,044 >> Ако се обидеме да ви побара да внесување на цел број, ние само може да ви даде низа 441 00:19:25,044 --> 00:19:26,460 и да видиме како ќе се справи со тоа. 442 00:19:26,460 --> 00:19:30,610 Ако бараме од вас да вработи возраст, ние може да ви даде негативен број 443 00:19:30,610 --> 00:19:32,340 да се види како ќе се справи со тоа. 444 00:19:32,340 --> 00:19:37,260 Само бидете сигурни дека вие момци се тестира случаи во кои вие не го добиете најдоброто 445 00:19:37,260 --> 00:19:38,590 влез, да речеме. 446 00:19:38,590 --> 00:19:40,510 И направите додека јамка е многу пати од најдобрите 447 00:19:40,510 --> 00:19:45,260 начин да се дизајнира вашиот код, така дека го исполнува тој опсег. 448 00:19:45,260 --> 00:19:45,760 ВО РЕД. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ВО РЕД. 451 00:19:49,470 --> 00:19:53,270 Така што ова е веројатно најголемиот комплекс јамка надвор од трите 452 00:19:53,270 --> 00:19:54,990 дека ние сме погледна досега. 453 00:19:54,990 --> 00:19:56,689 И се чини дека многу страшно на прв. 454 00:19:56,689 --> 00:19:59,730 Но, јас ви гарантирам, но откако ќе момци добиете висат на, како да се користи за телефонска линија, 455 00:19:59,730 --> 00:20:03,320 тоа е една од најпознатите корисни работи, најкорисните алатки во вашиот арсенал 456 00:20:03,320 --> 00:20:05,300 за придвижување напред во оваа класа. 457 00:20:05,300 --> 00:20:09,920 >> Така на пример, во нула, имавме овој многу едноставен блок 458 00:20:09,920 --> 00:20:13,180 дека само рече повтори овој одредени фрази, одреден број на пати. 459 00:20:13,180 --> 00:20:16,260 Патем, SAJ-- тоа е Scaz Анди Џејсон. 460 00:20:16,260 --> 00:20:18,740 Ние често се регистрирате нашите пораки Saj. 461 00:20:18,740 --> 00:20:20,360 Ако речеме Saj, немојте да бидете збунети. 462 00:20:20,360 --> 00:20:22,630 Тоа е само за нас. 463 00:20:22,630 --> 00:20:28,600 >> Па во нула, бевме во можност да се има блок, што рече, се повторува сакам Saj! 464 00:20:28,600 --> 00:20:29,430 10 пати. 465 00:20:29,430 --> 00:20:30,130 Многу едноставна. 466 00:20:30,130 --> 00:20:32,302 Логиката дека е многу, многу едноставно, нели? 467 00:20:32,302 --> 00:20:35,260 Сакам прво да поминат низ првиот време и да се види дека, по втор пат 468 00:20:35,260 --> 00:20:38,510 и да се види дека, по трет пат, итн и така натаму, се додека не го погоди до 10. 469 00:20:38,510 --> 00:20:41,960 >> И начинот на кој ќе се претставуваат дека во код е само преку едноставен за телефонска линија. 470 00:20:41,960 --> 00:20:45,440 Па за, си оди за да се изјасни променлива овде, во овој случај, 471 00:20:45,440 --> 00:20:46,349 со int. 472 00:20:46,349 --> 00:20:47,390 Ние ќе треба да го именува тоа јас. 473 00:20:47,390 --> 00:20:49,500 Ние ќе треба да се иницијализира на 0. 474 00:20:49,500 --> 00:20:52,490 И едицијата сопирањето е Ќе биде ли е помалку од 10. 475 00:20:52,490 --> 00:20:54,622 И ажурирање се случува да биде з ++. 476 00:20:54,622 --> 00:20:57,750 >> И во рамките на циклусот, тоа се случува да се изврши до крајот тоа 477 00:20:57,750 --> 00:21:01,490 хитови на крајот на condition-- во кои случај, тоа се случува да се пробие на јамка. 478 00:21:01,490 --> 00:21:04,600 Не треба да има работи кои ви се момци имаат сите видови на виделе досега 479 00:21:04,600 --> 00:21:07,270 и мораше да се направи за вашиот проблем постави еден. 480 00:21:07,270 --> 00:21:12,310 Дали некој има било какви прашања врска за петелки во моментов? 481 00:21:12,310 --> 00:21:12,930 ВО РЕД. 482 00:21:12,930 --> 00:21:13,430 Одлично. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ВО РЕД. 485 00:21:18,620 --> 00:21:22,270 Така и за оние од вас кои имаат прочитате pset спецификации за оваа недела 486 00:21:22,270 --> 00:21:27,690 знаат дека ние се случува да мора да се вработат нешто што се нарекува ASCII и ASCII табелата. 487 00:21:27,690 --> 00:21:32,380 Така Давид отиде во текот на предавањето на кратко како што се компјутери essentially-- 488 00:21:32,380 --> 00:21:35,410 е кодиран во компјутер во бинарни, во нули и единици. 489 00:21:35,410 --> 00:21:39,740 И начинот на кој што компјутерите се во можност за складирање на различни вредности во прилог 490 00:21:39,740 --> 00:21:44,360 да нули и единици се преку мапирање тие бројки да претставуваат други бројки 491 00:21:44,360 --> 00:21:47,220 или во суштина други ликови. 492 00:21:47,220 --> 00:21:49,810 >> Значи во овој случај, ASCII table-- сите тоа го прави 493 00:21:49,810 --> 00:21:53,600 е мапа знаци, или карактери, за да броеви. 494 00:21:53,600 --> 00:21:57,385 Па изворниот код датотека во Вашиот computer-- го гледа, 495 00:21:57,385 --> 00:22:00,010 еј, еден куп од нули и единици, нули и единици, нули и единици. 496 00:22:00,010 --> 00:22:02,350 Тоа е она што се чуваат во Крај на меморијата на вашиот компјутер. 497 00:22:02,350 --> 00:22:04,750 >> Но, кога ние, луѓето сакаат да комуницира со компјутерот, 498 00:22:04,750 --> 00:22:08,249 ние want-- каже, на пример, ако сакам големи букви А, 499 00:22:08,249 --> 00:22:10,540 Одам да треба некој начин на раскажување на компјутер, ох, 500 00:22:10,540 --> 00:22:16,300 кога ќе напишете голема буква А, мислам оваа претстава во бинарна. 501 00:22:16,300 --> 00:22:22,260 >> Така и на начинот на кој тоа го правиме се фрли произволна работа наречена табела ASCII, 502 00:22:22,260 --> 00:22:25,020 каде што ние, како луѓе, како програмери, пред некое време, 503 00:22:25,020 --> 00:22:28,660 ние произволно одлучи дека ние требаше да му ја додели на овие број 504 00:22:28,660 --> 00:22:30,960 вредности на овие ликови. 505 00:22:30,960 --> 00:22:32,720 >> Па вие момци можат Google оваа онлајн. 506 00:22:32,720 --> 00:22:37,120 Мислам дека има линк до него во вашата pset-- само маса е ASCII мапа, ASCII 507 00:22:37,120 --> 00:22:37,720 табела. 508 00:22:37,720 --> 00:22:40,722 Тоа само значи бинарни броеви во ликовите. 509 00:22:40,722 --> 00:22:42,930 И тоа се случува да биде многу корисни за вашиот проблем сет 510 00:22:42,930 --> 00:22:45,470 секогаш кога ќе сакате да го пресмета нешто или ако 511 00:22:45,470 --> 00:22:47,880 сакате да се прикаже одредени карактери или броеви 512 00:22:47,880 --> 00:22:50,327 или манипулира со одредени ликови. 513 00:22:50,327 --> 00:22:52,160 Тоа се случува да биде многу важно да сите 514 00:22:52,160 --> 00:22:55,140 знаете како да се движите со ASCII табелата. 515 00:22:55,140 --> 00:23:01,260 >> Така на пример, во големи букви А е претставена со бројот 65. 516 00:23:01,260 --> 00:23:04,207 И мали букви на е претставена со 97. 517 00:23:04,207 --> 00:23:07,040 Па затоа е важно да се знае дека Разликата меѓу двете вредности 518 00:23:07,040 --> 00:23:08,320 е 32. 519 00:23:08,320 --> 00:23:13,210 Честопати, ако треба да се конвертира од една до друга, разликата е 32. 520 00:23:13,210 --> 00:23:15,710 И не грижете се ако сте вид на збунети за ова во прв. 521 00:23:15,710 --> 00:23:20,230 Ќе одиме околу тоа како ние би вработуваат тоа во вистински код. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ВО РЕД. 524 00:23:26,380 --> 00:23:30,770 Така и за оние од вас со лаптопи, се чувствуваат слободни да се повлече до една маса ASCII, 525 00:23:30,770 --> 00:23:36,030 затоа што тие ќе веројатно бара од вас момци да референца 526 00:23:36,030 --> 00:23:38,100 што ликовите се. 527 00:23:38,100 --> 00:23:38,640 ВО РЕД. 528 00:23:38,640 --> 00:23:42,840 >> Па знаејќи дека одредени знаци на сајтот за одредени броеви 529 00:23:42,840 --> 00:23:47,240 ако јас се да се кандидира само првиот линија на кои code-- на printf a, 530 00:23:47,240 --> 00:23:50,900 мали букви на минус големи А. Дали некој 531 00:23:50,900 --> 00:23:55,880 имаат претпоставка за тоа што ќе биде печатење на екран во моментов? 532 00:23:55,880 --> 00:23:58,190 >> Значи прво на сите, она што го прави тоа мали репрезент? 533 00:23:58,190 --> 00:24:00,990 Што е тоа што бројот кодирани во табелата на ASCII. 534 00:24:00,990 --> 00:24:01,490 Жал ми е? 535 00:24:01,490 --> 00:24:02,630 >> ПУБЛИКАТА: 97? 536 00:24:02,630 --> 00:24:03,630 >> АНДИ Пенг: 97, одлично. 537 00:24:03,630 --> 00:24:05,077 И она што е голема буква А? 538 00:24:05,077 --> 00:24:06,330 >> ПУБЛИКАТА: 65. 539 00:24:06,330 --> 00:24:08,255 >> АНДИ Пенг: Значи, што е 97 минус 65? 540 00:24:08,255 --> 00:24:09,227 >> ПУБЛИКАТА: 32. 541 00:24:09,227 --> 00:24:09,810 АНДИ Пенг: Во ред. 542 00:24:09,810 --> 00:24:13,530 Значи она што го делат ова мислење ќе се случи кога јас внесување дека линија на кодот 543 00:24:13,530 --> 00:24:14,670 во мојот компјутер? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> ПУБЛИКАТА: [Беззвучен]. 546 00:24:19,896 --> 00:24:21,020 АНДИ Пенг: Жал ми е, кажете го тоа. 547 00:24:21,020 --> 00:24:22,520 Без грижи. 548 00:24:22,520 --> 00:24:25,750 Ова е многу безбеден животната средина, минус на камерата. 549 00:24:25,750 --> 00:24:27,550 Сите ние сме ќе to-- без грижи. 550 00:24:27,550 --> 00:24:30,940 Само сите ние ќе треба да се преправаме како тоа е само нас застрашувачки во оваа соба. 551 00:24:30,940 --> 00:24:31,480 Без грижи. 552 00:24:31,480 --> 00:24:33,410 Не станува збор е премногу глупаво. 553 00:24:33,410 --> 00:24:35,300 Без одговор е глупав одговор. 554 00:24:35,300 --> 00:24:38,260 Јас сум веројатно нема да се прават грешки во текот на моето предавање. 555 00:24:38,260 --> 00:24:40,740 Сериозно, момци, само да го blurt од. 556 00:24:40,740 --> 00:24:43,092 Бидете сигурни во себе, знаеш? 557 00:24:43,092 --> 00:24:43,800 Така што беше тоа? 558 00:24:43,800 --> 00:24:47,990 Кој рече дека последен одговор? 559 00:24:47,990 --> 00:24:48,540 ВО РЕД. 560 00:24:48,540 --> 00:24:50,380 Викне дека убаво и јасно. 561 00:24:50,380 --> 00:24:51,220 >> ПУБЛИКАТА: 32? 562 00:24:51,220 --> 00:24:51,850 >> АНДИ Пенг: 32. 563 00:24:51,850 --> 00:24:54,141 Добро, ајде да се кандидира овој законик и види дали тоа е она што се случува. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ВО РЕД. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Така што вие момци можат да вид на види, типичниот нотација сум 568 00:25:06,360 --> 00:25:12,250 поставени се тука за тоа како ние би можеле да вработат било кој вид на програма во нашиот компјутер. 569 00:25:12,250 --> 00:25:14,770 Имаме нашата главна функција во рок од нашата главна функција. 570 00:25:14,770 --> 00:25:17,265 Јас сум само ќе копирајте го и ставете оваа линија код. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Исто така, да се биде внимателен кога ќе момци се копирање и вметнување код. 573 00:25:23,540 --> 00:25:28,750 Понекогаш одредени оператори не ставете над правилно. 574 00:25:28,750 --> 00:25:31,397 Во тој случај, минусот знак е всушност цртичка. 575 00:25:31,397 --> 00:25:32,980 И така што компјутер не го собереш. 576 00:25:32,980 --> 00:25:35,870 Па морав да се вратам и физички Повторете тоа. 577 00:25:35,870 --> 00:25:37,846 Но, бидете внимателни кога вие момци го прават. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ВО РЕД. 580 00:25:42,660 --> 00:25:43,980 Ние ќе треба да ја извршите оваа тука. 581 00:25:43,980 --> 00:25:45,670 Па ние ќе го CD-то во нашата section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Сум се нарекува оваа програма asciimath. 584 00:25:52,030 --> 00:25:55,690 Па се сеќавам, кога ќе ја стартувате која било програма, ние сакаме да го компајлирате прв 585 00:25:55,690 --> 00:25:57,150 со трчање преку нашата шминка. 586 00:25:57,150 --> 00:26:00,030 И тогаш ние навистина сакаме да се кандидира програмата со правење точка-црта. 587 00:26:00,030 --> 00:26:01,280 Па ние ќе се ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Право, таму ќе одиме. 590 00:26:06,590 --> 00:26:07,410 И можеме да видиме 32. 591 00:26:07,410 --> 00:26:07,930 Браво. 592 00:26:07,930 --> 00:26:10,340 Заслужуваат едно парче од бонбоната. 593 00:26:10,340 --> 00:26:11,160 Бонбони за вас. 594 00:26:11,160 --> 00:26:11,900 Жал ми е. 595 00:26:11,900 --> 00:26:13,100 Во ред. 596 00:26:13,100 --> 00:26:13,670 ВО РЕД. 597 00:26:13,670 --> 00:26:18,070 За да можеме да се вратиме на нашиот пример овде. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 ААХ, бр. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 ВО РЕД. 603 00:26:32,490 --> 00:26:34,610 Јас сум само ќе го чувам како тоа. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ВО РЕД. 606 00:26:51,240 --> 00:26:51,740 ВО РЕД. 607 00:26:51,740 --> 00:26:55,340 Така што вие момци да видите, ние може да го направи многу многу интересни работи, 608 00:26:55,340 --> 00:26:58,880 многу многу интересни нешта, многу многу комплицирани нешта кои вклучуваат 609 00:26:58,880 --> 00:27:02,720 ASCII карактери и броеви. 610 00:27:02,720 --> 00:27:05,890 Откако ќе се фаќате за редат пет, тоа е многу за да го следат заедно. 611 00:27:05,890 --> 00:27:07,640 Ние нема да се оди преку рез. 612 00:27:07,640 --> 00:27:10,720 Слободно можете да се, ако можеш, таа причина на хартија 613 00:27:10,720 --> 00:27:14,750 прво за тоа што треба да се случува кога го внесуваш таква низа на вредности. 614 00:27:14,750 --> 00:27:19,720 На пример, со тоа што последната линија, имаме z-- што претставува одреден number-- 615 00:27:19,720 --> 00:27:24,740 a-- кој меѓу другото е одредени number-- плус 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 плус мали букви a. 617 00:27:26,750 --> 00:27:29,220 >> Ако вие момци да ги задржи читање во текот на овие, можете 618 00:27:29,220 --> 00:27:34,009 забележите шема излезе во како ние сме манипулирање на кодот. 619 00:27:34,009 --> 00:27:36,050 Силно, многу сугерираат по делот сите вас 620 00:27:36,050 --> 00:27:38,160 момци одат напред и влезни сите оние кои се во вашиот компјутер 621 00:27:38,160 --> 00:27:40,060 и да видиме каков вид на броеви се излегува 622 00:27:40,060 --> 00:27:43,090 и расудување преку зошто тоа се случува, затоа што за вашиот psets 623 00:27:43,090 --> 00:27:45,060 тоа ќе биде навистина важно за да се разбере 624 00:27:45,060 --> 00:27:47,132 зошто некои работи се случуваат. 625 00:27:47,132 --> 00:27:48,590 Сите овие слајдови ќе биде онлајн. 626 00:27:48,590 --> 00:27:51,510 Па не се грижи за се обидува да физички копирајте белешки. 627 00:27:51,510 --> 00:27:52,510 Сè што е онлајн. 628 00:27:52,510 --> 00:27:54,050 Ова се дел ќе биде онлајн. 629 00:27:54,050 --> 00:27:57,500 Сите мои код која Јас се кандидирам ќе биде онлајн. 630 00:27:57,500 --> 00:27:58,180 Је. 631 00:27:58,180 --> 00:27:59,430 Дали сеуште имате прашање? 632 00:27:59,430 --> 00:28:00,587 ПУБЛИКАТА: Што е modulos? 633 00:28:00,587 --> 00:28:01,170 АНДИ Пенг: Во ред. 634 00:28:01,170 --> 00:28:05,620 Па modulo е оператор кој ќе да е многу важно да се pset вашата момци е 635 00:28:05,620 --> 00:28:06,690 овде. 636 00:28:06,690 --> 00:28:12,280 Па начинот на кој операторите во Ц и во програмирање 637 00:28:12,280 --> 00:28:16,360 е дека имате она што се нарекува Симболот поделба и симбол на модул, 638 00:28:16,360 --> 00:28:18,350 што е исто како и знакот за процент. 639 00:28:18,350 --> 00:28:24,840 >> Па во C, кога ќе се направи цел број поделено со цел број со расцеп, 640 00:28:24,840 --> 00:28:27,720 Ц има тенденција да сакаат да ги намалат исклучите сите на децимална поени, 641 00:28:27,720 --> 00:28:30,290 бидејќи цел број сака да се претворат во цел број. 642 00:28:30,290 --> 00:28:33,550 Тоа не се случува да сакаат да бидат двојно со еден куп на децимали сите по него. 643 00:28:33,550 --> 00:28:39,322 >> Значи, ако јас се направи 3 поделено со 2, тоа се случува да им ја исклучи 0.5 и само да ви даде 1. 644 00:28:39,322 --> 00:28:41,530 Па тоа е нешто да се биде многу внимателни за тоа кога сте 645 00:28:41,530 --> 00:28:45,294 прави било кој вид на математика во програмирање, е дека бројките ќе добиете 646 00:28:45,294 --> 00:28:47,210 не може да биде на броеви дека сте биле размислување, 647 00:28:47,210 --> 00:28:50,190 која е причината зошто заокружување во вашата последните pset е толку важно. 648 00:28:50,190 --> 00:28:51,980 >> Modulo ви дава остатокот. 649 00:28:51,980 --> 00:28:56,200 Така на пример, ако сум го правела 3 modulo 2-- така 3 отсто знак 2-- 650 00:28:56,200 --> 00:28:58,020 тоа ќе ви даде до крајот на таа. 651 00:28:58,020 --> 00:29:00,460 Па 3 поделено со 2 е 1,5. 652 00:29:00,460 --> 00:29:01,410 Тоа е 1 остатокот од 1. 653 00:29:01,410 --> 00:29:04,600 Тоа ќе ви даде 1, која е остатокот од тоа. 654 00:29:04,600 --> 00:29:07,361 >> Па кога ќе момци се движат преку масата на ASCII, 655 00:29:07,361 --> 00:29:09,735 modulo ќе завршат да бидат нешто што е многу важно, 656 00:29:09,735 --> 00:29:11,240 и ние ќе разговараат за тоа подоцна. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ВО РЕД. 659 00:29:19,040 --> 00:29:27,300 Така нешто што е убава, прилично нови и прилично уникатен 660 00:29:27,300 --> 00:29:31,920 дека ние сме се дискутира оваа недела концептот на она што е низа. 661 00:29:31,920 --> 00:29:34,370 Па низа е прв тип на податоци структура 662 00:29:34,370 --> 00:29:36,320 дека ние ќе треба да средба во оваа класа. 663 00:29:36,320 --> 00:29:40,010 Сите податоци структура е е некој вид на произволни, 664 00:29:40,010 --> 00:29:43,370 буквално работи како структура дека ние како програмери го создале, 665 00:29:43,370 --> 00:29:47,890 дека ние се стави во нашиот код кој може да содржи и други парчиња на код. 666 00:29:47,890 --> 00:29:51,090 >> Па во таа смисла, на array-- мислам на тоа како датотека кабинет, 667 00:29:51,090 --> 00:29:53,470 каде што ако се отвори различни полиците на вашата датотека кабинет, 668 00:29:53,470 --> 00:29:55,630 можете да пристапите на различни нешта. 669 00:29:55,630 --> 00:29:58,630 Во меморијата, низа прави само иста работа на вашиот компјутер. 670 00:29:58,630 --> 00:30:01,730 Можете да имаат различни blocks-- ние ги нарекуваат indices-- на низа. 671 00:30:01,730 --> 00:30:04,210 Тоа е исто како да го блокира, полица на меморија 672 00:30:04,210 --> 00:30:07,580 дека ние сме создадени во рамките на вашиот компјутер кој што можете да внесете 673 00:30:07,580 --> 00:30:10,270 некои работи во различни простори. 674 00:30:10,270 --> 00:30:18,000 >> Така со ред, ќе Секогаш треба да се specify-- 675 00:30:18,000 --> 00:30:22,360 Треба да ја наведете прогласување низа во следниов формат. 676 00:30:22,360 --> 00:30:24,290 Си оди за да првиот одредите типот податоци 677 00:30:24,290 --> 00:30:25,831 што сакате да се создаде на низата. 678 00:30:25,831 --> 00:30:28,870 Ако сакам низа на цели броеви, Јас ќе се стави int право таму. 679 00:30:28,870 --> 00:30:32,079 Ако сакам низа на стрингови, Одам да се стави жици таму, 680 00:30:32,079 --> 00:30:34,995 името на вашиот низа, а потоа ви се случува да имаат квадратни загради. 681 00:30:34,995 --> 00:30:39,580 И внатре во квадратни загради, ти си ќе мора на големината на вашиот низа. 682 00:30:39,580 --> 00:30:42,900 >> Нешто што е навистина важно да се има предвид при креирање низи е 683 00:30:42,900 --> 00:30:46,530 тоа, откако ќе се создаде низа, дека големината не може да се промени. 684 00:30:46,530 --> 00:30:50,180 Па ако се знае дека во моментов имате низа на големина 10, 685 00:30:50,180 --> 00:30:54,550 ти знаеш дека јас ќе одам да се има 10 ќелии во рок од 10 или индекси во оваа низа, 686 00:30:54,550 --> 00:30:56,830 и тоа никогаш не се случува да се прошири или да го намалите 687 00:30:56,830 --> 00:30:59,850 без оглед на тоа, и дека има Во моментов само 10 блокови на простор 688 00:30:59,850 --> 00:31:04,490 распределени во вашата меморија, која може да собере до 10 нешта на она што сте го стави. 689 00:31:04,490 --> 00:31:08,790 >> Така на овој начин, еден вид низа на податоци, податочна структура која е низа 690 00:31:08,790 --> 00:31:13,392 е многу различен од некои други, ние ќе се покриваат подоцна во овој курс. 691 00:31:13,392 --> 00:31:15,170 Је. 692 00:31:15,170 --> 00:31:20,080 На пример, ако си сакал да создаде низа со големина 3 кој 693 00:31:20,080 --> 00:31:23,670 содржани променливи на integer-- Ох извинете, на temperature-- 694 00:31:23,670 --> 00:31:25,640 и температура, на Се разбира, е цел број. 695 00:31:25,640 --> 00:31:28,710 >> Па ние ќе се создаде int, која е податоци за видот на она што сакаме да ги чувате. 696 00:31:28,710 --> 00:31:32,680 Ние ќе треба да се јавите на оваа температури за доброто на номенклатурата на именување 697 00:31:32,680 --> 00:31:34,200 нешто што сите ние се разбере. 698 00:31:34,200 --> 00:31:35,900 И ние ќе треба да имаат квадратни загради. 699 00:31:35,900 --> 00:31:37,200 И ние сакаме три броја. 700 00:31:37,200 --> 00:31:39,000 Па ние ќе треба да се стави три во него. 701 00:31:39,000 --> 00:31:41,041 >> Нешто што е навистина важно да се задржи во умот 702 00:31:41,041 --> 00:31:43,530 е дека низи се нула индексирани. 703 00:31:43,530 --> 00:31:46,410 Сето она што значи е дека започне со индекс на 0, 704 00:31:46,410 --> 00:31:49,800 и ќе снема до преку големината на низата минус 1. 705 00:31:49,800 --> 00:31:52,730 Така на пример, еве, ние имаат низа на големината 3. 706 00:31:52,730 --> 00:31:54,680 Тоа се случува да биде во можност да се одржи три вредности. 707 00:31:54,680 --> 00:31:57,450 Но бројките themselves-- дека број, низа, тој индекс, 708 00:31:57,450 --> 00:32:00,271 низа, се од 0 до 2. 709 00:32:00,271 --> 00:32:03,520 Значи момци, да, навистина, навистина внимателни кога си минува низ вашите проблеми поставени 710 00:32:03,520 --> 00:32:06,500 и создавање на било кој вид на низа, затоа што многу пати тоа е 711 00:32:06,500 --> 00:32:08,490 навистина, навистина лесно да се заборави тоа. 712 00:32:08,490 --> 00:32:11,840 Јас всушност немаат индекс од 3, што во моментов е нешто 713 00:32:11,840 --> 00:32:13,130 имаат индекс на 2. 714 00:32:13,130 --> 00:32:16,046 И ако се обидете да пристап на трети индекс, 715 00:32:16,046 --> 00:32:18,170 тоа се случува да биде што е наречен null терминатор. 716 00:32:18,170 --> 00:32:19,990 Тоа не се случува да се, всушност, постојат во низа. 717 00:32:19,990 --> 00:32:21,781 И компјутерите нема да се допаѓа тоа. 718 00:32:21,781 --> 00:32:24,570 Па бидете внимателни секогаш кога сте пристапуваат работи едноставно 719 00:32:24,570 --> 00:32:28,070 да се осигура дека ќе се сетите кои низи се нула-индексирани. 720 00:32:28,070 --> 00:32:28,880 >> ВО РЕД. 721 00:32:28,880 --> 00:32:34,030 Така, првиот пример е само еден начин на создавање на низа. 722 00:32:34,030 --> 00:32:36,790 Вториот пример имам подолу е само посебен начин 723 00:32:36,790 --> 00:32:40,210 на создавање на она што е на исти податоци структура која ние само внесуваат. 724 00:32:40,210 --> 00:32:44,347 Така, наместо на физички работи преку и пуштање во температура од 0 725 00:32:44,347 --> 00:32:47,180 еднакво на она што, температурата 1 еднакво на она што, температурата 2 еднаквите 726 00:32:47,180 --> 00:32:50,950 без оглед на тоа, би можел всушност само директно сето тоа се создаде во една линија 727 00:32:50,950 --> 00:32:53,010 Температурата во квадратни загради рамноправни. 728 00:32:53,010 --> 00:32:56,536 >> И известувањето, во овој случај, вие не треба да за да одредите како голем вашиот низа е, 729 00:32:56,536 --> 00:32:59,160 затоа што компјутерот ќе одат преку и да се види дека има 730 00:32:59,160 --> 00:33:01,570 три елементи во оние големите загради. 731 00:33:01,570 --> 00:33:04,000 И тоа се случува да се знае, во ред, Ми треба низа на големината 3. 732 00:33:04,000 --> 00:33:07,440 Вие не се случува да треба да се внесување тоа на следниот начин. 733 00:33:07,440 --> 00:33:10,170 >> И, исто така, да, на тој начин. 734 00:33:10,170 --> 00:33:12,610 Дали некој има прашања за тоа како ќе се направи низи 735 00:33:12,610 --> 00:33:17,391 или како работи на структурата на низа? 736 00:33:17,391 --> 00:33:17,890 Је. 737 00:33:17,890 --> 00:33:18,806 >> ПУБЛИКАТА: [Беззвучен]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 АНДИ Пенг: Да, точно. 740 00:33:22,690 --> 00:33:26,150 Значи, ако сте во ситуација да се изјасни и да се иницијализира низа на следниов начин, 741 00:33:26,150 --> 00:33:28,477 кој е втор пат, можете само да ја напушти оние. 742 00:33:28,477 --> 00:33:30,310 И на компјутерот автоматски се знае дека тоа 743 00:33:30,310 --> 00:33:33,950 треба да се смета како многу елементи се во тие големи загради, одделени 744 00:33:33,950 --> 00:33:34,930 со запирки. 745 00:33:34,930 --> 00:33:37,517 >> Па тука ќе го видат 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Така што компјутер не знае, ох, има три цели броеви. 747 00:33:39,600 --> 00:33:45,960 Знам да се создаде име низа температурата со три елементи во неа. 748 00:33:45,960 --> 00:33:46,590 Добро прашање. 749 00:33:46,590 --> 00:33:47,090 Је. 750 00:33:47,090 --> 00:33:51,590 >> ПУБЛИКАТА: Зарем не е можно да се создаде низа со различни типови на податоци 751 00:33:51,590 --> 00:33:53,021 кои може да се влезе во неа? 752 00:33:53,021 --> 00:33:56,746 На пример, со цели броеви [Беззвучен]? 753 00:33:56,746 --> 00:33:59,120 АНДИ Пенг: За целите на оваа класа, не, токму сега. 754 00:33:59,120 --> 00:34:03,070 Кога ќе се создаде податоци структура како низа, 755 00:34:03,070 --> 00:34:04,990 ти си кажува компјутер, еј, ми требаш 756 00:34:04,990 --> 00:34:08,159 да одвои оваа многу меморија во мојот хард диск, 757 00:34:08,159 --> 00:34:10,690 со секоја клетка да биде одреден број на битови. 758 00:34:10,690 --> 00:34:13,429 >> Сетам што научивме во недела нула дека различни податоци 759 00:34:13,429 --> 00:34:15,300 видови имаат различни големини? 760 00:34:15,300 --> 00:34:17,630 Така на пример, стринг е различен износ 761 00:34:17,630 --> 00:34:20,719 на простор од еден знак, кој е различна количина на простор 762 00:34:20,719 --> 00:34:21,830 од цел број. 763 00:34:21,830 --> 00:34:25,534 И така, ако не се определи и вие се меша и натпревар какви типови на променливи 764 00:34:25,534 --> 00:34:27,659 имате, на компјутерот Ќе биде многу збунет. 765 00:34:27,659 --> 00:34:29,950 И тоа не се случува да се знае колку меморија за да ви даде. 766 00:34:29,950 --> 00:34:32,480 Така и за целите на правото само сега, компјутерите можат 767 00:34:32,480 --> 00:34:36,120 препознае еден вид на низа. 768 00:34:36,120 --> 00:34:37,940 Добро прашање. 769 00:34:37,940 --> 00:34:38,440 ВО РЕД. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Па природно, Второто прашање што имаме 772 00:34:47,120 --> 00:34:50,760 е, добро, сега дека ние сме создале низа и ние се стави сите овие работи 773 00:34:50,760 --> 00:34:54,190 во низа, колку сме ние ќе биде во можност за пристап до неа? 774 00:34:54,190 --> 00:34:59,710 Така типична структура што ние секогаш пристап до низа е нашата прекрасна за телефонска линија. 775 00:34:59,710 --> 00:35:03,830 Јас ветувам дека вие момци дека ние ќе бидеме гледајќи голем број на овој човек овде. 776 00:35:03,830 --> 00:35:06,470 >> Во суштина, во секое време сакате за внесување вредности во низа 777 00:35:06,470 --> 00:35:09,940 или ако сакате да пристапите до нив, Најдобар начин да се стори тоа е за телефонска линија, 778 00:35:09,940 --> 00:35:13,730 бидејќи во за телефонска линија, можете знам колку пати сте 779 00:35:13,730 --> 00:35:17,290 ќе сакате да ја извршите преку низа, затоа што имаат станица издание, нели? 780 00:35:17,290 --> 00:35:19,680 И секој пат кога ќе ја стартувате преку, можете да пристапите 781 00:35:19,680 --> 00:35:21,310 на друг елемент од низата. 782 00:35:21,310 --> 00:35:26,920 >> И, исто така, ова е причината зошто обично да започнеме нашата за петелки на вредноста на 0, 783 00:35:26,920 --> 00:35:30,080 бидејќи кога ќе пристапите низи, можете да пристапите до индексот на нула. 784 00:35:30,080 --> 00:35:32,070 И така тоа е паралелна многу убаво. 785 00:35:32,070 --> 00:35:35,295 Вие момци можат да се сака да се пишуваат за int i е еднакво на 1. 786 00:35:35,295 --> 00:35:37,330 i е помалку од или еднакво на 3. 787 00:35:37,330 --> 00:35:39,890 >> Но, тоа не би сакал да работиш толку и тука, само заради тоа што 788 00:35:39,890 --> 00:35:42,010 имаат елементи на 0, 1, и 2. 789 00:35:42,010 --> 00:35:45,815 И така, ако сте во ситуација да започнете Мислам вашите елемент во 1, 2 и 3, 790 00:35:45,815 --> 00:35:48,440 ви се случува да се заокружи трчање надвор од границите на својата низа, 791 00:35:48,440 --> 00:35:50,440 и лоши работи се случува да се случи. 792 00:35:50,440 --> 00:35:54,480 >> Па се надевам дека вие момци видите segue зошто во раните часови 793 00:35:54,480 --> 00:35:58,560 бевме наставата момци како да работи и форматирам за телефонска линија на начинот на кој што бевме. 794 00:35:58,560 --> 00:36:01,900 Тоа е затоа што, сега ние сме transitioned во низи, 795 00:36:01,900 --> 00:36:06,760 можете да видите зошто 0 позајми многу убаво да се пристапува. 796 00:36:06,760 --> 00:36:09,880 >> Па начинот на кој го правиме е that-- сум само да го отпечатите тука за доброто 797 00:36:09,880 --> 00:36:10,830 од неа печатење. 798 00:36:10,830 --> 00:36:13,750 Но имам моите случаеви, запирка. 799 00:36:13,750 --> 00:36:15,645 И вистинскиот пристапува дел се случува. 800 00:36:15,645 --> 00:36:17,520 Името на низата бил повикан на температурата. 801 00:36:17,520 --> 00:36:21,570 Така, тоа е температурата и i-тиот елемент од низата. 802 00:36:21,570 --> 00:36:24,400 >> Па како за телефонска линија тече низ, тоа се случува да се започне на 0. 803 00:36:24,400 --> 00:36:27,640 Тоа се случува да се печати од 0. индекс на оваа низа. 804 00:36:27,640 --> 00:36:29,599 Тогаш тоа се случува да се печати од првиот елемент. 805 00:36:29,599 --> 00:36:31,431 Тогаш тоа се случува да се печати од втората. 806 00:36:31,431 --> 00:36:32,880 И тогаш ние ќе треба да се скрши. 807 00:36:32,880 --> 00:36:36,718 Е јасно на сите како што се случува? 808 00:36:36,718 --> 00:36:37,217 Одлично. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Во ред. 811 00:36:44,100 --> 00:36:47,270 Значи тука имаме начин на велејќи дека, ако ние не сакавме 812 00:36:47,270 --> 00:36:50,020 до тешко код ме in-- како програмер. 813 00:36:50,020 --> 00:36:53,320 Не сакав да всушност физички стави во секој поединечен елемент 814 00:36:53,320 --> 00:36:54,020 на оваа низа. 815 00:36:54,020 --> 00:36:56,500 Ако сакав да Ве има корисникот влезни вредности, 816 00:36:56,500 --> 00:36:58,100 што е најдобар начин да го направите тоа? 817 00:36:58,100 --> 00:37:00,920 >> Па, еве јас се создаде оваа прекрасна функција, 818 00:37:00,920 --> 00:37:03,560 во кои можам да се изјаснам како низа. 819 00:37:03,560 --> 00:37:06,210 Па int scores-- ајде речеме ние сакаме да се направи 820 00:37:06,210 --> 00:37:10,660 низа што се одржа на оценки од сите 18 на студенти и тука во овој дел. 821 00:37:10,660 --> 00:37:12,670 Мислам дека имаме малку повеќе од 18 деца денес. 822 00:37:12,670 --> 00:37:16,460 Но заради пример е, ајде да претпоставиме имавме 18. 823 00:37:16,460 --> 00:37:21,580 Јас би се создаде име низа резултати со int тип, бидејќи голем број, се разбира, 824 00:37:21,580 --> 00:37:22,987 се бројки. 825 00:37:22,987 --> 00:37:24,820 А јас ќе одам да се има 18 во квадратни загради, 826 00:37:24,820 --> 00:37:29,900 бидејќи тоа е како јас многу студенти сакате да бидете во можност да се сместат голем број. 827 00:37:29,900 --> 00:37:32,206 >> И начинот на кој јас би се доверат низата е дека сум му 828 00:37:32,206 --> 00:37:35,572 го стартувате преку за телефонска линија, на Се разбира, со 0 биде мојот 0. индекс. 829 00:37:35,572 --> 00:37:38,030 А потоа и со 18 да се биде мој запирање издание, затоа што има 830 00:37:38,030 --> 00:37:39,690 18 елементи во низата. 831 00:37:39,690 --> 00:37:44,620 А потоа јас ќе одам да направите printf, Внесете гол за student-- ала ала-чевли. 832 00:37:44,620 --> 00:37:51,171 >> Може ли некој да ми каже зошто јас сум тука печатење i плус 1, а не јас? 833 00:37:51,171 --> 00:37:52,920 Тоа е вид на трик прашање, навистина не. 834 00:37:52,920 --> 00:37:56,020 Тоа всушност не физички влијаат на водењето на кодот. 835 00:37:56,020 --> 00:37:56,520 Је. 836 00:37:56,520 --> 00:37:57,909 >> ПУБЛИКАТА: [Беззвучен] 0? 837 00:37:57,909 --> 00:37:58,950 АНДИ Пенг: Да, точно. 838 00:37:58,950 --> 00:38:02,620 Тоа е малку непријатно да се каже, еј, ти си на 0. студент во оваа класа. 839 00:38:02,620 --> 00:38:03,780 Тоа е малку чудно. 840 00:38:03,780 --> 00:38:08,340 Па нас, како луѓе, не ми се допаѓа да се размислува за тоа како компјутерите мислите. 841 00:38:08,340 --> 00:38:10,930 Значи, иако во компјутер, тоа е зачувување на вредности 842 00:38:10,930 --> 00:38:13,310 во 0-ти индекс, кога ние сме луѓе, ние навистина не 843 00:38:13,310 --> 00:38:15,520 сакал да се однесуваат како да се нула. 844 00:38:15,520 --> 00:38:18,119 Па кога ќе се печати само тоа, Одам да се печати и ги додадете 845 00:38:18,119 --> 00:38:19,410 1 само за доброто на јасност. 846 00:38:19,410 --> 00:38:22,447 Па кога ќе се печати, ќе одам да се биде можност да се печати ученици од 1 до 18. 847 00:38:22,447 --> 00:38:24,530 Тоа всушност не влијаат водењето на кодот 848 00:38:24,530 --> 00:38:27,110 на било кој начин, онака како што се печати. 849 00:38:27,110 --> 00:38:30,380 >> Но, бидете внимателни кога сте всушност пристапуваат на низата. 850 00:38:30,380 --> 00:38:32,780 Кога ќе ја видите резултати I, известување овде сум, всушност, 851 00:38:32,780 --> 00:38:38,200 пристапуваат на 0. индекс и не на плус 0-- 1 или 1 плус 1, 852 00:38:38,200 --> 00:38:45,530 во овој случај, па индексот дека тоа е всушност јасно. 853 00:38:45,530 --> 00:38:48,870 Е секој вид на ОК на како тоа се работи преку 854 00:38:48,870 --> 00:38:51,470 и со секој индекс сум ставање на вредност во низа 855 00:38:51,470 --> 00:38:55,340 и создавање на низа со 18 броеви дека корисникот ќе внесување? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ВО РЕД. 858 00:38:59,821 --> 00:39:00,321 Кул. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ВО РЕД. 861 00:39:07,400 --> 00:39:12,220 Ние сега се пресели во нешто што е прилично релевантни за ова парче собата, како и. 862 00:39:12,220 --> 00:39:15,020 Знам дека во предавањето, David-- Жал ми е, ти мораше прашање? 863 00:39:15,020 --> 00:39:16,840 >> ПУБЛИКАТА: Можете ли да го зголемиш? 864 00:39:16,840 --> 00:39:18,080 >> АНДИ Пенг: Да, па се обидов. 865 00:39:18,080 --> 00:39:18,788 Но, јас не знам. 866 00:39:18,788 --> 00:39:21,437 Поради некоја причина, ова верзија на PowerPoint, 867 00:39:21,437 --> 00:39:23,270 навистина не работи добро со екранот. 868 00:39:23,270 --> 00:39:25,260 Значи ние сме само ќе да го чуваме како оваа. 869 00:39:25,260 --> 00:39:27,280 Сите овие ќе бидат поставени на интернет. 870 00:39:27,280 --> 00:39:28,218 Извинете, момци. 871 00:39:28,218 --> 00:39:30,090 Је. 872 00:39:30,090 --> 00:39:30,980 ВО РЕД. 873 00:39:30,980 --> 00:39:35,530 >> Значи, ние исто така може да имаат стрингови. 874 00:39:35,530 --> 00:39:39,320 Значи, ако вие момци всушност notice-- јас знам Роб отиде над ова во тој час 875 00:39:39,320 --> 00:39:43,652 дека тој did-- стринг е, всушност, само низа од карактери, 876 00:39:43,652 --> 00:39:44,860 ако мислите дека за тоа, нели? 877 00:39:44,860 --> 00:39:47,500 А низа е името или реченица или збор, нели? 878 00:39:47,500 --> 00:39:52,975 >> Ако јас да се создаде низа име Andi-- само моето име, А-Н-Д-јас. 879 00:39:52,975 --> 00:39:55,460 Мислите на тоа како само една променлива. 880 00:39:55,460 --> 00:39:58,630 Но всушност, тоа е паднат во само низа од карактери. 881 00:39:58,630 --> 00:40:01,910 Па тоа е се здобија со карактер на чуваат во вредност низа. 882 00:40:01,910 --> 00:40:05,420 Тоа доби карактер на n чуваат во Вториот индекс и така натаму и така натаму. 883 00:40:05,420 --> 00:40:08,660 >> Па на таков начин, ние всушност имаат овој вид 884 00:40:08,660 --> 00:40:10,970 на структурата наведена во место за нашите жици. 885 00:40:10,970 --> 00:40:14,660 Па еве, да, требаше да го внесете Зборот "јаде" - така стринг збор е еднаква 886 00:40:14,660 --> 00:40:15,540 добијат низа. 887 00:40:15,540 --> 00:40:19,260 Ако јас се да го внесете зборот "јаде", кој физички е начинот на кој мојот компјутер 888 00:40:19,260 --> 00:40:21,870 е зачувување на таа низа во мојата меморија. 889 00:40:21,870 --> 00:40:27,140 >> И ако сакав да ја извршите преку кои и печатење што out-- па за во з 890 00:40:27,140 --> 00:40:30,890 е еднаква на нула, се сеќавам, во предавање, ние опфатени нешто што се вика strlen, 891 00:40:30,890 --> 00:40:32,990 или должината на стрингот. 892 00:40:32,990 --> 00:40:36,520 Бидејќи јас не се всушност знаете како големи низата е 893 00:40:36,520 --> 00:40:38,210 на она што inputting-- на корисникот 894 00:40:38,210 --> 00:40:40,370 >> На пример, се внесуваат зборот "јаде", а знам 895 00:40:40,370 --> 00:40:41,870 тоа е долга три карактери, нели? 896 00:40:41,870 --> 00:40:44,700 Па можев да се стави во три таму и сè ќе биде во ред. 897 00:40:44,700 --> 00:40:49,290 Но, ако вашиот кориснички влез нешто тоа е друга број на вредности, 898 00:40:49,290 --> 00:40:52,760 си оди за да не биде во можност да навистина знам дека кога ќе го програмирате вашиот код. 899 00:40:52,760 --> 00:40:56,040 >> Па начинот на кој ние ги решаваме тест случаи како тоа е дека имаме нешто 900 00:40:56,040 --> 00:41:00,070 наречен strlen, која е само функција што ви кажува колку долго стринг е. 901 00:41:00,070 --> 00:41:02,080 Па strlen на зборот. 902 00:41:02,080 --> 00:41:03,470 Мојот збор е да јадат. 903 00:41:03,470 --> 00:41:05,990 n е еднакво strlen на зборот. 904 00:41:05,990 --> 00:41:08,930 Може некој да ми каже што тој вредност, всушност, е во право таму? 905 00:41:08,930 --> 00:41:12,550 Што значи n што го претставува право сега, во овој пример, ако имав јаде? 906 00:41:12,550 --> 00:41:13,530 >> ПУБЛИКАТА: 3. 907 00:41:13,530 --> 00:41:14,520 >> АНДИ Пенг: 3, точно. 908 00:41:14,520 --> 00:41:18,820 Па ние имаме за int i еднаква нула, n е еднакво на 3, во суштина. 909 00:41:18,820 --> 00:41:22,355 И јас се случува да се кандидира додека не е помалку од 3i ++. 910 00:41:22,355 --> 00:41:24,980 И тоа се случува да одат во суштина преку и да го прават истото. 911 00:41:24,980 --> 00:41:26,979 Тоа се случува да се печати секоја вредност и да ви даде 912 00:41:26,979 --> 00:41:29,700 E-A-T. Тоа е само означувајќи поинаков начин на пишување. 913 00:41:29,700 --> 00:41:31,170 Што се случува да биде многу корисна. 914 00:41:31,170 --> 00:41:31,670 Је. 915 00:41:31,670 --> 00:41:35,174 ПУБЛИКАТА: Која е користа од ставање n е еднакво на strlen збор внатре дека 916 00:41:35,174 --> 00:41:36,894 за телефонска линија [Беззвучен]? 917 00:41:36,894 --> 00:41:37,560 АНДИ Пенг: Да. 918 00:41:37,560 --> 00:41:44,880 Значи, ако јас се to-- каже, на пример, ако јас се да го направи тоа, а потоа 919 00:41:44,880 --> 00:41:51,935 do-- oop-- тоа, во мојот код, тоа ќе всушност се прави како истото. 920 00:41:51,935 --> 00:41:55,060 Сепак, начинот на кој објасни Дејвид тоа за време на предавањето, ако некој од вас момци 921 00:41:55,060 --> 00:41:57,854 се сеќавам, беше дека, како и луѓето, како програмери, 922 00:41:57,854 --> 00:42:00,270 ние навистина се обиде да се програмира нашата код, така што нашите компјутер има 923 00:42:00,270 --> 00:42:04,070 да работат на минимум колку што е можно, па дека нашиот код е многу ефикасен. 924 00:42:04,070 --> 00:42:06,850 >> Па ако ја имав таму, што ќе се случи преку мојата за телефонска линија 925 00:42:06,850 --> 00:42:10,790 е дека сум му прв прогласи променлива со име јас се случува да биде 0. 926 00:42:10,790 --> 00:42:13,350 Одам да се провери, ох, она што е на strlen на зборот? 927 00:42:13,350 --> 00:42:15,000 Ох, strlen е 3. 928 00:42:15,000 --> 00:42:16,191 Така е ли помалку од три? 929 00:42:16,191 --> 00:42:16,690 Да тоа е. 930 00:42:16,690 --> 00:42:17,870 Одам да се кандидира. 931 00:42:17,870 --> 00:42:21,130 >> А потоа по втор пат назад околу јамка, јас ќе одам да прираст i. 932 00:42:21,130 --> 00:42:22,550 јас се случува да биде еден. 933 00:42:22,550 --> 00:42:25,600 И јас се случува да се провери, ох, но она што е strlen на зборот? 934 00:42:25,600 --> 00:42:26,839 Ох, тоа е три. 935 00:42:26,839 --> 00:42:29,880 И тоа го прави да изгледа вид на непотребното, секој пат кога ќе ја извршите преку телефонска линија, 936 00:42:29,880 --> 00:42:33,340 што треба да се проверка на функција, иако strlen на зборот 937 00:42:33,340 --> 00:42:35,490 всушност никогаш не се менува? 938 00:42:35,490 --> 00:42:38,590 >> Така, тоа е дополнителна енергија за компјутер. 939 00:42:38,590 --> 00:42:42,180 Кога ќе почнам да зборувам за работите кои се милијарди и милијарди 940 00:42:42,180 --> 00:42:44,431 и милијарди места долго, замислете вашиот компјутер 941 00:42:44,431 --> 00:42:47,430 да мора да одат преку и физички провери сето тоа секој пат. 942 00:42:47,430 --> 00:42:53,170 Тоа е причината зошто, да се направи само за доброто на ефикасноста, 943 00:42:53,170 --> 00:42:57,620 Ние настојуваме да се само да го направите ова, бидејќи на овој начин ние сме само 944 00:42:57,620 --> 00:42:59,850 повик на функција уште во почетокот, 945 00:42:59,850 --> 00:43:01,766 и дека секој пат кога тоа оди преку тоа се случува 946 00:43:01,766 --> 00:43:03,789 за чување на вредноста 3 таму, што ќе не 947 00:43:03,789 --> 00:43:05,330 мора постојано да се провери во секое време. 948 00:43:05,330 --> 00:43:05,743 Је. 949 00:43:05,743 --> 00:43:06,409 >> ПУБЛИКАТА: Жал ми е. 950 00:43:06,409 --> 00:43:09,070 Само [Беззвучен]. 951 00:43:09,070 --> 00:43:13,985 Може да ви се int n еднаква strlen и го стави дека над надвор од за јамка 952 00:43:13,985 --> 00:43:15,364 исто така? 953 00:43:15,364 --> 00:43:16,030 АНДИ Пенг: Да. 954 00:43:16,030 --> 00:43:17,100 Вие би можеле да го направат тоа, апсолутно. 955 00:43:17,100 --> 00:43:19,970 Причина ние го имаме во овде е бидејќи начинот за телефонска линија дела 956 00:43:19,970 --> 00:43:23,500 е тоа што се вика локална променлива во смисла 957 00:43:23,500 --> 00:43:26,150 дека сè си создавањето внатрешноста на за телефонска линија 958 00:43:26,150 --> 00:43:27,890 постои само во внатрешноста на за телефонска линија. 959 00:43:27,890 --> 00:43:31,530 >> Па променливата i само постои во тие рамки. 960 00:43:31,530 --> 00:43:35,260 И тука на променливи од n, исто така, постои само во оние рамки. 961 00:43:35,260 --> 00:43:39,350 Значи, ако сте во ситуација да го користите на strlen збор повеќе пати долу, 962 00:43:39,350 --> 00:43:42,230 апсолутно најдобар начин да го направите тоа ќе биде да го пријават до врвот 963 00:43:42,230 --> 00:43:43,563 така да не треба да го прават тоа еднаш. 964 00:43:43,563 --> 00:43:45,420 Је. 965 00:43:45,420 --> 00:43:47,670 ПУБЛИКАТА: Зошто имаш нова линија по отсто 966 00:43:47,670 --> 00:43:51,300 гледање, ако сакате да се стави сите писмата до него се разделите? 967 00:43:51,300 --> 00:43:54,140 >> АНДИ Пенг: О, јас сакав да сите нив се печати на секоја линија. 968 00:43:54,140 --> 00:43:54,890 Тоа не е важно. 969 00:43:54,890 --> 00:43:55,890 Да, тоа е форматирање. 970 00:43:55,890 --> 00:43:57,181 Тоа е добро прашање, иако. 971 00:43:57,181 --> 00:43:59,360 Да, ако сакав да се печати сето тоа на само една линија, 972 00:43:59,360 --> 00:44:02,731 Јас и не би цртичка во. 973 00:44:02,731 --> 00:44:03,230 ВО РЕД. 974 00:44:03,230 --> 00:44:06,880 Секој добар? 975 00:44:06,880 --> 00:44:07,500 ВО РЕД. 976 00:44:07,500 --> 00:44:08,000 Кул. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Па мислам дека имам доволно зборуваше. 979 00:44:14,750 --> 00:44:20,040 Пак вие момци да ја извршите преку код и да ми кажете што не е во ред тука. 980 00:44:20,040 --> 00:44:21,560 Каде е грешка? 981 00:44:21,560 --> 00:44:26,920 Па како што можете да видите, јас сум прогласена за нова низа од стринг тип по име класа. 982 00:44:26,920 --> 00:44:30,220 И јас сум се внесуваат Сем, Џес, и Ким во неа. 983 00:44:30,220 --> 00:44:33,400 И јас сум се обидува да се печати сите елементи на низата. 984 00:44:33,400 --> 00:44:36,796 Може некој да ми каже зошто ова се случува да ми даде проблеми? 985 00:44:36,796 --> 00:44:39,320 Јас ќе ти дадам 10 момци секунди да се размислува за тоа. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ВО РЕД. 988 00:44:56,619 --> 00:44:57,118 Да? 989 00:44:57,118 --> 00:45:01,972 >> ПУБЛИКАТА: Дали е лево центар еднакво на 3 или [Беззвучен]? 990 00:45:01,972 --> 00:45:02,680 АНДИ Пенг: Токму така. 991 00:45:02,680 --> 00:45:06,784 Па колку пати е ова всушност ќе помине низ овој циклус? 992 00:45:06,784 --> 00:45:07,620 >> ПУБЛИКАТА: Четири години. 993 00:45:07,620 --> 00:45:08,070 >> АНДИ Пенг: Токму така. 994 00:45:08,070 --> 00:45:09,445 Тоа се случува да преку четири пати. 995 00:45:09,445 --> 00:45:12,250 Тоа се случува да се кандидира преку на 0, 1, 2 и 3, 996 00:45:12,250 --> 00:45:15,200 бидејќи нивните елемент е з е помалку од или еднакво на 3. 997 00:45:15,200 --> 00:45:16,960 Тоа не се случува да се запре кога тоа е 2. 998 00:45:16,960 --> 00:45:18,800 Тоа се случува да се задржи случува додека таа хитови 3. 999 00:45:18,800 --> 00:45:21,720 И како што знаеме, има само три елементи во нашите вистински низа. 1000 00:45:21,720 --> 00:45:27,260 >> Ако се обидеме да пристапите до четвртиот елемент или индексот на 3, 1001 00:45:27,260 --> 00:45:30,357 ви се случува да го погоди некаде во меморија, која не постои. 1002 00:45:30,357 --> 00:45:31,690 Таа се вика null терминатор. 1003 00:45:31,690 --> 00:45:32,856 Ништо не се случува да биде таму. 1004 00:45:32,856 --> 00:45:35,324 Вашиот компјутер не се случува да биде многу среќен со вас. 1005 00:45:35,324 --> 00:45:36,170 Је. 1006 00:45:36,170 --> 00:45:38,430 Дали некој има прашања за тоа зошто тој се случува? 1007 00:45:38,430 --> 00:45:39,679 Тоа е заедничка област за да се избегне. 1008 00:45:39,679 --> 00:45:40,712 Је. 1009 00:45:40,712 --> 00:45:45,777 >> ПУБЛИКАТА: Зарем првиот лизгајте исто така имаат низа на 2? 1010 00:45:45,777 --> 00:45:46,360 АНДИ Пенг: Не 1011 00:45:46,360 --> 00:45:49,610 Значи во суштина, кога си прави низа, 1012 00:45:49,610 --> 00:45:51,540 што заграда право таму, дека number-- сите 1013 00:45:51,540 --> 00:45:53,480 ја кажува ви е како многу елементи што го имам. 1014 00:45:53,480 --> 00:45:55,840 Тоа не е всушност кажува ме индексите на ништо. 1015 00:45:55,840 --> 00:45:58,760 Значи во овој случај, знам што сакам да се напише со три места, 1016 00:45:58,760 --> 00:46:02,690 со три физички места да држете што сакам да се одржи. 1017 00:46:02,690 --> 00:46:04,510 Па тоа е зошто бројот три е таму. 1018 00:46:04,510 --> 00:46:06,560 Меѓутоа, ако сакав всушност да го достигнете, 1019 00:46:06,560 --> 00:46:11,220 ако сакав да кажам, printf број класа заграда, тогаш 1020 00:46:11,220 --> 00:46:14,560 си оди за да всушност се стави физичкиот индекс таму. 1021 00:46:14,560 --> 00:46:16,330 Да, добро прашање. 1022 00:46:16,330 --> 00:46:20,065 >> ПУБЛИКАТА: Така е на физички индекс би требало да биде [Беззвучен]? 1023 00:46:20,065 --> 00:46:20,940 АНДИ Пенг: Жал ми е. 1024 00:46:20,940 --> 00:46:21,500 Може да ви зборувам малку? 1025 00:46:21,500 --> 00:46:24,208 >> ПУБЛИКАТА: Така е физичката индекс [Беззвучен] секоја од кутии? 1026 00:46:24,208 --> 00:46:25,260 [Беззвучен]? 1027 00:46:25,260 --> 00:46:26,040 >> АНДИ Пенг: Да. 1028 00:46:26,040 --> 00:46:28,970 Па јас ќе одам да се врати во право тука. 1029 00:46:28,970 --> 00:46:31,120 Мислам на право тука. 1030 00:46:31,120 --> 00:46:32,820 Имаме низа од големината 3. 1031 00:46:32,820 --> 00:46:35,540 Има три места, како, физички променливи тука. 1032 00:46:35,540 --> 00:46:37,620 Но тие се именувани 0, 1 и 2. 1033 00:46:37,620 --> 00:46:40,700 Значи, ако јас сакав да им пристапите, начинот на кој јас им пристапите 1034 00:46:40,700 --> 00:46:43,480 printf е од она што сакав тука. 1035 00:46:43,480 --> 00:46:45,485 Вие ќе треба да се печати дознаете името на тоа, 1036 00:46:45,485 --> 00:46:47,610 бидејќи тогаш компјутерот знае, ох, јас треба да се погледне 1037 00:46:47,610 --> 00:46:51,391 во оваа низа за 0. индекс. 1038 00:46:51,391 --> 00:46:51,890 Је. 1039 00:46:51,890 --> 00:46:53,306 Но, големината на тоа не се менува. 1040 00:46:53,306 --> 00:46:55,492 Големината е 3, без оглед за тоа како ќе ги етикетираат. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ВО РЕД. 1043 00:46:58,820 --> 00:47:01,387 Секој добар? 1044 00:47:01,387 --> 00:47:02,970 ПУБЛИКАТА: Значи, секој пат кога ќе [Беззвучен]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 АНДИ Пенг: Во ред. 1047 00:47:06,940 --> 00:47:13,270 Значи во овој случај, ние навистина не навлегувам во тоа токму сега во курсот. 1048 00:47:13,270 --> 00:47:16,760 Но, знаете дека string-- како јас реков претходно, стринг е во суштина 1049 00:47:16,760 --> 00:47:18,440 низа на карактери. 1050 00:47:18,440 --> 00:47:21,430 Значи, ако јас се создаде низа на стрингови, јас вид на 1051 00:47:21,430 --> 00:47:24,430 имаат низа на низа на карактери, нели? 1052 00:47:24,430 --> 00:47:27,720 >> Значи во овој случај, бидејќи јас имаат низа на стрингови, 1053 00:47:27,720 --> 00:47:31,340 ако сте во ситуација да го внесете навистина долго збор, кои се уште го зазема само еден простор, 1054 00:47:31,340 --> 00:47:33,230 затоа што тоа е еден стринг. 1055 00:47:33,230 --> 00:47:37,492 Но, ако сте во ситуација да се мисли на ликовите на таа низа, 1056 00:47:37,492 --> 00:47:40,450 тогаш тоа е преземањето многу повеќе ликови од некоја од другите зборови 1057 00:47:40,450 --> 00:47:41,372 се. 1058 00:47:41,372 --> 00:47:42,830 Навистина не е важно за сега. 1059 00:47:42,830 --> 00:47:44,921 Но тоа е само општо колку е тоа е работа. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ВО РЕД. 1062 00:47:50,560 --> 00:47:55,840 Па ова е нешто што ќе те оставам да се направи многу во текот на семестарот. 1063 00:47:55,840 --> 00:47:57,500 Јас треба да се одморат мојот глас. 1064 00:47:57,500 --> 00:47:59,530 Вие момци треба да се стимулира себе. 1065 00:47:59,530 --> 00:48:02,300 Многу од вас веројатно треба да спијат во моментов. 1066 00:48:02,300 --> 00:48:05,960 Јас сум внесување случаен проблеми каде што ние како класа или 1067 00:48:05,960 --> 00:48:09,480 со партнерот до ви се случува да поминат неколку минути разговара 1068 00:48:09,480 --> 00:48:14,980 за тоа како ние ќе одиме за решавање на или креирање на програма како што е оваа. 1069 00:48:14,980 --> 00:48:17,100 >> Значи, токму сега, ние сакаме да се создаде program-- 1070 00:48:17,100 --> 00:48:19,560 ние ќе треба да го наречеме upper.c-- кое конвертира 1071 00:48:19,560 --> 00:48:24,787 со мали букви збор за високата класа string-- големи букви, жалам. 1072 00:48:24,787 --> 00:48:26,370 Збор во низи, жал, е синоним. 1073 00:48:26,370 --> 00:48:28,370 Одам да ги промени да означува истото нешто. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Је. 1076 00:48:33,499 --> 00:48:34,540 Потребни неколку минути. 1077 00:48:34,540 --> 00:48:37,130 Тоа не мора да биде напишани на било кој јазик. 1078 00:48:37,130 --> 00:48:39,890 Само во pseudocode код или логично тоа како ние би дури и 1079 00:48:39,890 --> 00:48:42,083 обратите за тоа таков проблем. 1080 00:48:42,083 --> 00:48:42,583 Је. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [СТРАНА РАЗГОВОР] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Осетив дека вие момци can-- Јас вид на се види веќе во програмата. 1085 00:49:22,130 --> 00:49:24,600 Претпоставувам мојата недостаток на режим презентер е проблем. 1086 00:49:24,600 --> 00:49:27,410 Но, тоа е во ред. 1087 00:49:27,410 --> 00:49:30,410 >> [СТРАНА РАЗГОВОР] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Да, ве молам, момци. 1090 00:50:04,380 --> 00:50:05,400 Дојде добие бонбони. 1091 00:50:05,400 --> 00:50:06,372 Дојде добие бонбони. 1092 00:50:06,372 --> 00:50:07,698 >> ПУБЛИКАТА: Да! 1093 00:50:07,698 --> 00:50:09,958 >> [СТРАНА РАЗГОВОР] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 АНДИ Пенг: Исто така, да, Ќе почнам да фрлаат бонбони 1096 00:50:18,100 --> 00:50:20,280 на луѓе кои не се одговори на прашања. 1097 00:50:20,280 --> 00:50:22,260 Затоа мора да се одговори на сите прашања. 1098 00:50:22,260 --> 00:50:24,895 Или Претпоставувам дека луѓето кои не одговара на прашања. 1099 00:50:24,895 --> 00:50:26,070 Да, обратно. 1100 00:50:26,070 --> 00:50:28,570 >> [СТРАНА РАЗГОВОР] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 ПУБЛИКАТА: [Беззвучен] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> АНДИ Пенг: Да. 1105 00:51:18,340 --> 00:51:19,340 Је. 1106 00:51:19,340 --> 00:51:22,840 >> [СТРАНА РАЗГОВОР] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Добро, момци. 1109 00:51:41,590 --> 00:51:44,731 Преземат, како, повеќе од 10 секунди. 1110 00:51:44,731 --> 00:51:48,210 >> [СТРАНА РАЗГОВОР] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> Добро, момци. 1113 00:52:11,750 --> 00:52:14,920 Па пред да почнете да се обидува да всушност физички се напише код, 1114 00:52:14,920 --> 00:52:20,650 добра навика да се развие е дека сакаме да Првиот вид на разумот 1115 00:52:20,650 --> 00:52:22,737 од логично како ќе го направи тоа. 1116 00:52:22,737 --> 00:52:24,570 Вие сакате да бидете сигурни, пред физички 1117 00:52:24,570 --> 00:52:27,210 почнете да се обидува да го кодот во Марио, што ќе се направи 1118 00:52:27,210 --> 00:52:28,870 Осигурајте се дека имате вашиот pseudocode. 1119 00:52:28,870 --> 00:52:31,235 Која се движи во правец преку она што треба да се создаде толку 1120 00:52:31,235 --> 00:52:33,360 дека, кога ќе се физички напишете ја вашата програма подоцна, 1121 00:52:33,360 --> 00:52:36,640 ви се поспособни да се фати грешки во вашиот код и работи како што. 1122 00:52:36,640 --> 00:52:40,460 >> Значи ние се случува да се само на проектот by-- на англиски јазик, во pseudocode, 1123 00:52:40,460 --> 00:52:43,320 Сака ли некој да даде мене општо објаснување 1124 00:52:43,320 --> 00:52:46,250 за тоа како ние би се обратите за тоа? 1125 00:52:46,250 --> 00:52:48,102 Је. 1126 00:52:48,102 --> 00:52:49,664 >> ПУБЛИКАТА: [Беззвучен]. 1127 00:52:49,664 --> 00:52:50,830 АНДИ Пенг: Секако, не се грижи. 1128 00:52:50,830 --> 00:52:57,233 ПУБЛИКАТА: Можете ли да го прашам да или прашајте некој да добие низа 1-- је, стринг, 1129 00:52:57,233 --> 00:52:58,160 и потоа-- 1130 00:52:58,160 --> 00:52:59,826 >> АНДИ Пенг: Да, така што ова е добар почеток. 1131 00:52:59,826 --> 00:53:01,972 Ќе почнете да пишувате, жал, како што се зборува. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> ПУБЛИКАТА: --the мали букви бројки се повисоки, нели? 1134 00:53:05,698 --> 00:53:08,519 Или мали букви имаат високи бројки? 1135 00:53:08,519 --> 00:53:09,310 АНДИ Пенг: Токму така. 1136 00:53:09,310 --> 00:53:16,156 ПУБЛИКАТА: Па тогаш ние одземе 32 од она што [Беззвучен]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> АНДИ Пенг: Велики. 1139 00:53:29,870 --> 00:53:35,020 Па ние вид на имаат општа смисла за тоа како да се работи околу овој проблем. 1140 00:53:35,020 --> 00:53:40,060 Знаејќи дека ние сме вид на научиле физичкиот начин на кој стрингови 1141 00:53:40,060 --> 00:53:43,320 се чуваат во меморијата, она што го правите веќе 1142 00:53:43,320 --> 00:53:45,920 знаете дека ви се случува да се веројатно мора да пишува во вашиот код 1143 00:53:45,920 --> 00:53:48,288 со цел да се движат низ низа? 1144 00:53:48,288 --> 00:53:49,259 >> ПУБЛИКАТА: за телефонска линија. 1145 00:53:49,259 --> 00:53:50,550 АНДИ Пенг: за телефонска линија, точно. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Одлично. 1148 00:53:57,220 --> 00:54:00,539 Па ние вид на имаат генерички pseudocode запишано 1149 00:54:00,539 --> 00:54:02,330 тој вид на се откажува белешки за тоа како можете 1150 00:54:02,330 --> 00:54:03,900 ќе се движи околу решавање на проблемот. 1151 00:54:03,900 --> 00:54:06,150 Сега дека имате ова, може да го референца за подоцна 1152 00:54:06,150 --> 00:54:08,233 за тоа кога ќе се обидуваш да всушност пишува вашиот код. 1153 00:54:08,233 --> 00:54:10,240 Па ние всушност може да оди тука. 1154 00:54:10,240 --> 00:54:25,130 А имам функција наречена upper.c-- таму is-- од само празен терк 1155 00:54:25,130 --> 00:54:28,510 право сега дека вие момци се случува да го да ми помогне да дознаам за тоа како да се напише 1156 00:54:28,510 --> 00:54:30,430 оваа линија на не code-- линија код. 1157 00:54:30,430 --> 00:54:32,890 Тоа ќе биде повеќе линии на код. 1158 00:54:32,890 --> 00:54:35,710 >> Кога ќе се започне со било кој вид на празно pset, што е 1159 00:54:35,710 --> 00:54:37,418 првото нешто што ми треба да се сеќавам да се направи? 1160 00:54:37,418 --> 00:54:39,290 >> ПУБЛИКАТА: [Беззвучен]. 1161 00:54:39,290 --> 00:54:41,000 >> АНДИ Пенг: Велика Да. 1162 00:54:41,000 --> 00:54:41,500 Вклучат. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Честопати тоа е една од повеќето лесно грешки луѓе 1166 00:54:49,640 --> 00:54:51,598 ќе се направи кога тие се пишување, е дека тие ќе се 1167 00:54:51,598 --> 00:54:54,180 заборавајте да го вклучите важно библиотека им се потребни. 1168 00:54:54,180 --> 00:54:57,689 Па ако е работното време и вие ќе бидете како, Не знам зошто мојот код не работи. 1169 00:54:57,689 --> 00:54:59,230 Можете ли да ми кажете зошто тоа не е работа? 1170 00:54:59,230 --> 00:55:00,730 Ние се случува да се каже си # Include? 1171 00:55:00,730 --> 00:55:02,520 Треба да го # Include. 1172 00:55:02,520 --> 00:55:03,270 ВО РЕД. 1173 00:55:03,270 --> 00:55:07,230 >> Значи имаме стандардот I / O тука. 1174 00:55:07,230 --> 00:55:10,740 Е дека единствениот библиотека ние се случува да треба овде? 1175 00:55:10,740 --> 00:55:12,681 Што друго ќе правиме? 1176 00:55:12,681 --> 00:55:13,180 Жал ми е. 1177 00:55:13,180 --> 00:55:14,562 Некој само што врескаат надвор? 1178 00:55:14,562 --> 00:55:15,666 >> ПУБЛИКАТА: [Беззвучен]. 1179 00:55:15,666 --> 00:55:16,666 АНДИ Пенг: Има да одите. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ВО РЕД. 1182 00:55:21,440 --> 00:55:26,070 И како можам да се обратите за започнување на било кој вид на функција, било кој вид на главната функција 1183 00:55:26,070 --> 00:55:28,760 во рамките на нашата програма? 1184 00:55:28,760 --> 00:55:30,020 Int главната. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ВО РЕД. 1187 00:55:35,030 --> 00:55:35,970 Што мислам кога го стави во внатрешноста тука? 1188 00:55:35,970 --> 00:55:37,640 Што е првото нешто што сакате да направите? 1189 00:55:37,640 --> 00:55:39,910 Ако сакаме да се добие низа од корисникот, 1190 00:55:39,910 --> 00:55:43,870 она што сме ние ќе имаме да се направи на овој првата линија? 1191 00:55:43,870 --> 00:55:46,120 Извинете, вие момци само се чувствуваат слободно да се проговори и гласно. 1192 00:55:46,120 --> 00:55:47,123 Само извикам сеедно. 1193 00:55:47,123 --> 00:55:48,772 >> ПУБЛИКАТА: Прашајте на корисникот? 1194 00:55:48,772 --> 00:55:49,980 АНДИ Пенг: Како го правиме тоа? 1195 00:55:49,980 --> 00:55:51,873 Ask-- сум јас ќе напишете "побара од корисникот"? 1196 00:55:51,873 --> 00:55:52,600 >> ПУБЛИКАТА: printf. 1197 00:55:52,600 --> 00:55:54,341 >> АНДИ Пенг: Во ред. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Што сакам да printf? 1200 00:55:57,372 --> 00:55:58,776 >> ПУБЛИКАТА: Тип во нешто. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> АНДИ Пенг: како тоа? 1203 00:56:03,840 --> 00:56:05,430 Дечки, се преправаат како да сум на компјутер. 1204 00:56:05,430 --> 00:56:08,475 Физички да ми кажете на секој чекор дека јас треба да напишеш во оваа ситуација? 1205 00:56:08,475 --> 00:56:09,600 Правам нешто погрешно? 1206 00:56:09,600 --> 00:56:10,743 Треба ли да се внесе нешто? 1207 00:56:10,743 --> 00:56:11,690 >> ПУБЛИКАТА: Треба цитати. 1208 00:56:11,690 --> 00:56:12,380 >> АНДИ Пенг: Ми треба наводници? 1209 00:56:12,380 --> 00:56:12,880 ВО РЕД. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ВО РЕД. 1212 00:56:16,297 --> 00:56:17,698 >> ПУБЛИКАТА: И тогаш нова линија. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Запирка. 1215 00:56:22,465 --> 00:56:23,340 АНДИ Пенг: запирка? 1216 00:56:23,340 --> 00:56:24,060 ВО РЕД. 1217 00:56:24,060 --> 00:56:24,560 Добро. 1218 00:56:24,560 --> 00:56:27,060 >> ПУБЛИКАТА: А можеби и се определи дека ќе го сакаат во мали букви? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> АНДИ Пенг: Велики. 1221 00:56:31,415 --> 00:56:33,540 Вие момци се смееш на мене заборавајќи да стави точка-запирка. 1222 00:56:33,540 --> 00:56:36,350 Јас ви гарантирам некаде во текот на оваа класа, 1223 00:56:36,350 --> 00:56:38,260 ќе заборавите да се стави точка и запирка, и тоа 1224 00:56:38,260 --> 00:56:41,116 ќе ви бидат потребни три часа за да дознаам зошто вашиот код не е работа. 1225 00:56:41,116 --> 00:56:42,240 Тоа се случи на сите нас. 1226 00:56:42,240 --> 00:56:43,950 Тоа најверојатно ќе се случи со вас. 1227 00:56:43,950 --> 00:56:46,352 Добие во добра навика на користење на точка-запирка. 1228 00:56:46,352 --> 00:56:46,852 ВО РЕД. 1229 00:56:46,852 --> 00:56:49,010 >> ПУБЛИКАТА: Дали сакате да се направи обратна коса црта во? 1230 00:56:49,010 --> 00:56:50,398 >> АНДИ Пенг: Секако. 1231 00:56:50,398 --> 00:56:51,856 Дали сакате да го направите обратна коса црта во? 1232 00:56:51,856 --> 00:56:53,020 >> ПУБЛИКАТА: Да. 1233 00:56:53,020 --> 00:56:54,330 >> АНДИ Пенг: Велики. 1234 00:56:54,330 --> 00:56:54,830 ВО РЕД. 1235 00:56:54,830 --> 00:56:57,872 Што да правам следно? 1236 00:56:57,872 --> 00:56:58,964 >> ПУБЛИКАТА: Земете стринг. 1237 00:56:58,964 --> 00:56:59,880 АНДИ Пенг: Земете стринг. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Па што не сум тип? 1240 00:57:03,830 --> 00:57:04,233 Некого? 1241 00:57:04,233 --> 00:57:05,040 >> ПУБЛИКАТА: Стринг а. 1242 00:57:05,040 --> 00:57:05,873 >> АНДИ Пенг: Стринг а. 1243 00:57:05,873 --> 00:57:07,251 ПУБЛИКАТА: GetString. 1244 00:57:07,251 --> 00:57:09,000 АНДИ Пенг: Некој, може ли да ми кажете каде 1245 00:57:09,000 --> 00:57:12,000 оваа функција GetString е што доаѓаат од? 1246 00:57:12,000 --> 00:57:13,660 >> ПУБЛИКАТА: String.h. 1247 00:57:13,660 --> 00:57:15,256 >> АНДИ Пенг: String.h? 1248 00:57:15,256 --> 00:57:16,715 Мислите дека тоа е од string.h? 1249 00:57:16,715 --> 00:57:17,830 >> ПУБЛИКАТА: [Беззвучен]. 1250 00:57:17,830 --> 00:57:18,830 >> АНДИ Пенг: Има да одите. 1251 00:57:18,830 --> 00:57:21,280 Тоа е од cs50.h. 1252 00:57:21,280 --> 00:57:24,530 Ако сте секогаш збунети каде библиотека датотека е или хедер датотека е, 1253 00:57:24,530 --> 00:57:28,450 Google буквално string.h, и јас ќе ти кажам 1254 00:57:28,450 --> 00:57:30,450 Кои се сите функции кои се во string.h. 1255 00:57:30,450 --> 00:57:31,340 ВО РЕД. 1256 00:57:31,340 --> 00:57:35,210 >> Па сега дека јас се создаде низа и јас сум го извести корисникот за тоа, 1257 00:57:35,210 --> 00:57:38,770 Сум го чуваат во една променлива именувана е, она што ми е потребно да направите сега? 1258 00:57:38,770 --> 00:57:40,652 >> ПУБЛИКАТА: Проверете дали е со мала буква. 1259 00:57:40,652 --> 00:57:41,360 АНДИ Пенг: Жал ми е? 1260 00:57:41,360 --> 00:57:42,545 ПУБЛИКАТА: Проверете дали е со мала буква. 1261 00:57:42,545 --> 00:57:44,045 АНДИ Пенг: Во ред, ајде да го направите тоа. 1262 00:57:44,045 --> 00:57:45,857 Како можам да го направите тоа? 1263 00:57:45,857 --> 00:57:47,940 Всушност, за целите на класата во моментов, 1264 00:57:47,940 --> 00:57:50,330 ние сме само ќе се претпостави дека сè 1265 00:57:50,330 --> 00:57:52,620 дека ние влезот е веќе со мала буква. 1266 00:57:52,620 --> 00:57:55,430 Ако си сакал да се провери, што би само додадете условни изјави 1267 00:57:55,430 --> 00:57:59,640 кои е означено, што се провираше низ секој елемент од низата 1268 00:57:59,640 --> 00:58:02,540 и провери дали е помеѓу одредени вредности. 1269 00:58:02,540 --> 00:58:05,627 Ќе заборавам што бројот на вредностите на мали се. 1270 00:58:05,627 --> 00:58:07,210 Можете да го гледам нагоре на масата во ASCII. 1271 00:58:07,210 --> 00:58:08,800 Но, да, тоа е навистина добра поента. 1272 00:58:08,800 --> 00:58:11,758 Но, во моментов, ние сме само ќе се претпостави дека сите конци ги влезните 1273 00:58:11,758 --> 00:58:13,130 се со мали букви. 1274 00:58:13,130 --> 00:58:13,870 ВО РЕД. 1275 00:58:13,870 --> 00:58:18,069 >> Па, како ќе одам за овој проблем е следно? 1276 00:58:18,069 --> 00:58:18,860 ПУБЛИКАТА: за телефонска линија. 1277 00:58:18,860 --> 00:58:19,340 АНДИ Пенг: За јамка? 1278 00:58:19,340 --> 00:58:19,839 ВО РЕД. 1279 00:58:19,839 --> 00:58:20,847 Кажи ми што да напишеш. 1280 00:58:20,847 --> 00:58:25,230 >> ПУБЛИКАТА: За int i изнесува 0. 1281 00:58:25,230 --> 00:58:27,230 >> АНДИ Пенг: Во ред. 1282 00:58:27,230 --> 00:58:36,350 >> ПУБЛИКАТА: Ах, всушност, тогаш направи запирка и направи n еднаква strlen. 1283 00:58:36,350 --> 00:58:38,940 >> АНДИ Пенг: Значи најважно што мислам дека таа е забележано тука 1284 00:58:38,940 --> 00:58:42,936 е дека ние не треба да се каже int n втор пат, го направи ова. 1285 00:58:42,936 --> 00:58:45,060 Само знам дека во за јамка кога сте прогласување, 1286 00:58:45,060 --> 00:58:47,934 вие всушност не треба на int на по втор пат ќе го направите со променлива. 1287 00:58:47,934 --> 00:58:51,202 Може да се каже n strlen. 1288 00:58:51,202 --> 00:58:52,620 >> ПУБЛИКАТА: Се е. 1289 00:58:52,620 --> 00:58:53,510 >> АНДИ Пенг: s. 1290 00:58:53,510 --> 00:58:54,706 ВО РЕД. 1291 00:58:54,706 --> 00:58:58,370 >> ПУБЛИКАТА: Потоа точка-запирка. 1292 00:58:58,370 --> 00:59:00,130 >> АНДИ Пенг: Секако. 1293 00:59:00,130 --> 00:59:04,050 >> ПУБЛИКАТА: И тогаш [Беззвучен] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Тогаш јас ++. 1296 00:59:09,460 --> 00:59:11,780 >> АНДИ Пенг: Велики. 1297 00:59:11,780 --> 00:59:12,280 Во ред. 1298 00:59:12,280 --> 00:59:14,690 Што сакаме внатре на овој за телефонска линија сега? 1299 00:59:14,690 --> 00:59:17,820 Запомни, ако ние се случува да се кандидира преку стринг и поминува низ низа, 1300 00:59:17,820 --> 00:59:19,287 ние сакаме да се провери работи во неа. 1301 00:59:19,287 --> 00:59:20,370 Што сме ние ќе треба? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Ова е вид на слабо дел сега. 1304 00:59:26,900 --> 00:59:27,960 Секој имате претпоставка? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ВО РЕД. 1307 00:59:34,690 --> 00:59:37,830 Значи прво, како ние дури и да пристапите? 1308 00:59:37,830 --> 00:59:41,610 Како ние дури и првиот чек или пристап елемент во низата? 1309 00:59:41,610 --> 00:59:42,920 Како го правиме тоа? 1310 00:59:42,920 --> 00:59:47,120 Што е нотација ние ги користиме за да го направите тоа? 1311 00:59:47,120 --> 00:59:50,920 Кое е името на оваа низа наречен? 1312 00:59:50,920 --> 00:59:52,400 Таа се вика ОК, нели? 1313 00:59:52,400 --> 00:59:54,850 >> Се сеќавам, која било низа е секогаш низа. 1314 00:59:54,850 --> 00:59:58,210 Па на заградата јас, нели? 1315 00:59:58,210 --> 01:00:01,360 Затоа што тоа е сегашната вредност или индекс на вредност ние сме проверка. 1316 01:00:01,360 --> 01:00:05,156 И ние си оди за да го поставите тој еднакви to-- сакаме мали вредност, нели? 1317 01:00:05,156 --> 01:00:07,530 Ние сакаме да се претвори дека lower-- Жалам, сакаме големи букви. 1318 01:00:07,530 --> 01:00:10,014 Ние сакаме да се сврти на мали вредност во една голема буква. 1319 01:00:10,014 --> 01:00:11,805 И така like-- Жал ми е, како се викаш? 1320 01:00:11,805 --> 01:00:12,580 >> ПУБЛИКАТА: Хајди. 1321 01:00:12,580 --> 01:00:12,940 >> АНДИ Пенг: Жал ми е? 1322 01:00:12,940 --> 01:00:13,280 >> ПУБЛИКАТА: Хајди. 1323 01:00:13,280 --> 01:00:13,988 >> АНДИ Пенг: Хајди. 1324 01:00:13,988 --> 01:00:15,850 Како Хајди рече на почетокот, ние сме веројатно 1325 01:00:15,850 --> 01:00:20,330 случува да треба the-- сме веројатно ќе треба да се одземе 1326 01:00:20,330 --> 01:00:22,630 32 charc од она што е, нели? 1327 01:00:22,630 --> 01:00:24,680 Затоа што на ден е ASCII табелата, разликата 1328 01:00:24,680 --> 01:00:27,790 меѓу мали букви и голема латинична буква е 32. 1329 01:00:27,790 --> 01:00:31,290 Значи, кога ние го правиме ова, ние си веројатно ќе сакаат да одземе 32, нели? 1330 01:00:31,290 --> 01:00:33,910 >> Па ние ќе треба да се направи и јас. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Дали сите се разбере зошто го направив тоа? 1333 01:00:41,200 --> 01:00:45,760 Бидејќи во моментов, во нашата низа, ние сме проверка на 0. индекс, нели? 1334 01:00:45,760 --> 01:00:49,190 И во 0. индексот на низа, што е прв лик. 1335 01:00:49,190 --> 01:00:51,820 И тој лик ние ќе да се претпостави дека е со мали букви. 1336 01:00:51,820 --> 01:00:55,980 Ако сакаме да се направи тоа во големи букви, ние мора да се одземат 32 години од својата вредност, 1337 01:00:55,980 --> 01:00:58,620 затоа што во нашата ASCII маса, тоа е како ние го добие 1338 01:00:58,620 --> 01:01:01,600 на следната соодветните вредност што го прави големи букви. 1339 01:01:01,600 --> 01:01:03,714 Дали сите се разбере тоа? 1340 01:01:03,714 --> 01:01:04,213 Је. 1341 01:01:04,213 --> 01:01:06,530 >> ПУБЛИКАТА: Не можам вас, исто така, се мали букви на minus-- 1342 01:01:06,530 --> 01:01:08,080 >> АНДИ Пенг: Да, така што е навистина добри. 1343 01:01:08,080 --> 01:01:10,455 Одам да се вратам на тоа прашање откако ќе го направите тоа. 1344 01:01:10,455 --> 01:01:11,060 Је. 1345 01:01:11,060 --> 01:01:13,940 А потоа ако сакам да да видиме што се случува, 1346 01:01:13,940 --> 01:01:16,180 Јас сум веројатно нема да сакате да ја испечатите, нели? 1347 01:01:16,180 --> 01:01:19,930 Некој да ми каже што Сакам да се печати тука. 1348 01:01:19,930 --> 01:01:29,160 >> ПУБЛИКАТА: printf проценти в коса црта [Беззвучен]. 1349 01:01:29,160 --> 01:01:33,570 Тоа е вредност на [Беззвучен] S i. 1350 01:01:33,570 --> 01:01:34,614 >> АНДИ Пенг: S i, жалам? 1351 01:01:34,614 --> 01:01:35,530 ПУБЛИКАТА: [Беззвучен]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 АНДИ Пенг: Не знам. 1354 01:01:39,550 --> 01:01:40,600 Што мислиш? 1355 01:01:40,600 --> 01:01:44,016 >> ПУБЛИКАТА: Па, јас wouldn't-- Претпоставувам дека не би bring-- 1356 01:01:44,016 --> 01:01:46,944 Јас би го извадиш внатре, затоа што [Беззвучен]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 АНДИ Пенг: Ох, ти би го направиле тоа? 1359 01:01:51,392 --> 01:01:53,867 ПУБЛИКАТА: Да. 1360 01:01:53,867 --> 01:01:56,700 АНДИ Пенг: Ајде да го оставиме тоа на начин што е, и јас ќе објасни зошто подоцна. 1361 01:01:56,700 --> 01:01:58,533 Запомнете, дури и кога ќе се има држач за место, 1362 01:01:58,533 --> 01:02:00,701 сакате да се стави загради околу неа. 1363 01:02:00,701 --> 01:02:01,200 Во ред. 1364 01:02:01,200 --> 01:02:04,810 Па ова треба да биде солидна функција овде. 1365 01:02:04,810 --> 01:02:06,370 Ајде да се кандидира и да се види дали тоа компајлира. 1366 01:02:06,370 --> 01:02:08,750 Направи горниот. 1367 01:02:08,750 --> 01:02:09,250 Ух-ах. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Што не изгледа премногу добро. 1370 01:02:13,340 --> 01:02:14,507 Зошто се случува ова? 1371 01:02:14,507 --> 01:02:17,340 Како и со било каква грешка, која сакате да одите назад и да се започне со првата, 1372 01:02:17,340 --> 01:02:20,630 бидејќи обично предизвикува една грешка многу други грешки по него. 1373 01:02:20,630 --> 01:02:26,700 Овде можеме да видиме upper.c: 18: 25, кој ја раскажува мене во оваа програма со име upper.c, 1374 01:02:26,700 --> 01:02:33,800 на линија 18, грешка имплицитно прогласување Библиотека на функции strlen со видот 1375 01:02:33,800 --> 01:02:36,330 unassigned-- бла, не знам она што се случува после тоа. 1376 01:02:36,330 --> 01:02:39,990 >> Сето тоа е ми кажуваше токму сега е дека нешто се случува на strlen. 1377 01:02:39,990 --> 01:02:43,520 И на компјутерот се збунети, бидејќи Тоа е како, јас не знам што strlen е? 1378 01:02:43,520 --> 01:02:45,520 Што значи дека, најверојатно, ти кажам ти си пропуштаа? 1379 01:02:45,520 --> 01:02:46,490 >> ПУБЛИКАТА: Ти си пропуштаа [Беззвучен]. 1380 01:02:46,490 --> 01:02:47,630 >> АНДИ Пенг: Во право си. 1381 01:02:47,630 --> 01:02:49,510 Токму така. 1382 01:02:49,510 --> 01:02:52,140 Значи ова е местото каде што тоа е важно да бидете сигурни 1383 01:02:52,140 --> 01:02:56,970 дека секоја функција што ја користите во код е да се има правилна глава 1384 01:02:56,970 --> 01:02:59,660 датотека за библиотека, или на друго место си оди за да се добие многу на грешки 1385 01:02:59,660 --> 01:03:01,150 и кодот не се случува да се знае што се случува. 1386 01:03:01,150 --> 01:03:03,050 Па ние ќе треба да се вклучат string.h тука. 1387 01:03:03,050 --> 01:03:06,270 >> Сега кога ние се обидуваме да ги собере горниот. 1388 01:03:06,270 --> 01:03:08,410 Компајлира правилно. 1389 01:03:08,410 --> 01:03:09,960 Ајде да ја извршите оваа програма. 1390 01:03:09,960 --> 01:03:12,000 Па напишете нешто со мала буква. 1391 01:03:12,000 --> 01:03:14,920 Што ви момци сакате да пишувате? 1392 01:03:14,920 --> 01:03:16,546 Викне нешто. 1393 01:03:16,546 --> 01:03:17,920 Добро, Charly само одеше во. 1394 01:03:17,920 --> 01:03:18,990 Ние ќе се запишете име Charly е. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly со мала буква. 1397 01:03:22,840 --> 01:03:27,742 И се надевам, да се надеваме, ова е ќе извикам и плукаат 1398 01:03:27,742 --> 01:03:28,575 Charly во големи букви. 1399 01:03:28,575 --> 01:03:30,830 Јеее! 1400 01:03:30,830 --> 01:03:33,430 дали сите се разбере како Отидов во врска со решавање на тоа? 1401 01:03:33,430 --> 01:03:36,190 Начинот на кој што можам манипулира со користење на природни броеви 1402 01:03:36,190 --> 01:03:39,410 за да се реши нешто што Сакам да се направи во низи, 1403 01:03:39,410 --> 01:03:44,390 бидејќи ликовите и цели броеви може да се референцира на ист начин, бидејќи 1404 01:03:44,390 --> 01:03:45,540 на ASCII мапирање. 1405 01:03:45,540 --> 01:03:52,890 >> Значи да се вратам на вашата точка, ако можам сакав да се стави тука, наместо на 32 1406 01:03:52,890 --> 01:03:58,959 големи минус мали букви а исто како и дека, дека ќе работат подеднакво како и, 1407 01:03:58,959 --> 01:04:01,750 затоа што тоа е едноставно само на Разликата помеѓу овие две вредности. 1408 01:04:01,750 --> 01:04:09,570 Ако сакам да се направи овој again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 О не. 1410 01:04:10,320 --> 01:04:11,820 Јас мислам дека ние отиде во погрешна насока, да? 1411 01:04:11,820 --> 01:04:13,260 >> ПУБЛИКАТА: [Беззвучен] мали букви а. 1412 01:04:13,260 --> 01:04:14,260 >> АНДИ Пенг: Има да одите. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Да. 1415 01:04:22,880 --> 01:04:24,920 И надвор плука Charly. 1416 01:04:24,920 --> 01:04:28,020 Па бидете внимателни при сте одземање вредности 1417 01:04:28,020 --> 01:04:30,400 да се сетам на кои еден е поголема од другата. 1418 01:04:30,400 --> 01:04:35,220 На пример, тука сум заборавил што е, всушност, една мала буква 1419 01:04:35,220 --> 01:04:38,540 поголема од големи А. Значи, кога го се обиде да ги одземе на друг начин 1420 01:04:38,540 --> 01:04:40,600 наоколу, добив негативен 32. 1421 01:04:40,600 --> 01:04:42,800 И компјутерот ми беше како, Не знам што е тоа. 1422 01:04:42,800 --> 01:04:45,810 Тоа е веројатноста само некои случајни вредност која не е многу добра. 1423 01:04:45,810 --> 01:04:48,760 И така бидете сигурни дека сте одземање во точната должина 1424 01:04:48,760 --> 01:04:52,831 да се најде на ликот што го сакате. 1425 01:04:52,831 --> 01:04:53,330 ВО РЕД. 1426 01:04:53,330 --> 01:04:58,550 Дали некој се збунети за тоа како ние отиде за пишување на оваа функција? 1427 01:04:58,550 --> 01:04:59,180 ВО РЕД. 1428 01:04:59,180 --> 01:05:04,830 Па, всушност, на функција веќе постои во библиотека наречена ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Наречен ctype.h на библиотеката. 1430 01:05:06,417 --> 01:05:08,500 Оваа функција е, всушност, веќе напишано за вас. 1431 01:05:08,500 --> 01:05:10,820 Таа се вика на горниот дел. 1432 01:05:10,820 --> 01:05:13,027 >> И така за потребите на оваа pset, си оди 1433 01:05:13,027 --> 01:05:15,860 да се најде дека навистина сакате да ја користите многу од функциите содржани 1434 01:05:15,860 --> 01:05:17,390 во рамките на ctype библиотека. 1435 01:05:17,390 --> 01:05:21,040 На горниот дел, да ги намали, е горната, е lower-- тоа се сите функции 1436 01:05:21,040 --> 01:05:24,914 дека ќе бидат во можност да се користи многу, многу брзо во свој код, кој 1437 01:05:24,914 --> 01:05:26,080 го прави токму она што овој го прави тоа. 1438 01:05:26,080 --> 01:05:28,941 Пишувавме како да го конвертирате стринг во големи букви. 1439 01:05:28,941 --> 01:05:31,440 Но, ова е, всушност, го кодот дека некој друг има напишано 1440 01:05:31,440 --> 01:05:33,800 и дека можете да пристапите преку различна функција. 1441 01:05:33,800 --> 01:05:34,300 Да? 1442 01:05:34,300 --> 01:05:39,570 >> ПУБЛИКАТА: Така да само копирате во таму и направете го тоа за секоја буква? 1443 01:05:39,570 --> 01:05:42,070 >> АНДИ Пенг: Да, затоа што јас не се грижат за вредностите на една. 1444 01:05:42,070 --> 01:05:44,540 Јас само се грижат дека разликата меѓу нив е 32, нели? 1445 01:05:44,540 --> 01:05:48,210 Разликата меѓу мали букви б и е исто така голема буква Б 32. 1446 01:05:48,210 --> 01:05:50,860 И разликата помеѓу C и големи букви C е секогаш 32. 1447 01:05:50,860 --> 01:05:53,235 >> Јас само треба да се грижат за Разликата меѓу двете, 1448 01:05:53,235 --> 01:05:56,666 бидејќи сите букви следат истиот модел, нели? 1449 01:05:56,666 --> 01:05:58,540 Ако имам разликата меѓу еден од нив, 1450 01:05:58,540 --> 01:06:01,050 Знам дека она што разликата меѓу сите нив е. 1451 01:06:01,050 --> 01:06:01,740 Добро прашање. 1452 01:06:01,740 --> 01:06:04,090 Је. 1453 01:06:04,090 --> 01:06:06,660 Секој добар? 1454 01:06:06,660 --> 01:06:09,080 ВО РЕД. 1455 01:06:09,080 --> 01:06:09,580 OOP. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ВО РЕД. 1458 01:06:15,270 --> 01:06:20,310 Па тоа е уште еден концепт Ќе биде многу корисна како што 1459 01:06:20,310 --> 01:06:22,570 продолжи да се развива вашиот код е оваа идеја 1460 01:06:22,570 --> 01:06:25,430 на создавање на функции или апстракција. 1461 01:06:25,430 --> 01:06:28,479 Значи, токму сега, ние сме сите преземени алгебра. 1462 01:06:28,479 --> 01:06:31,770 Во алгебра, ќе се учат дека не постои ова прекрасно нешто што се нарекува функција 1463 01:06:31,770 --> 01:06:35,300 машина, каде што ако внесување еден вид на број, 1464 01:06:35,300 --> 01:06:38,720 што тече низ овој прекрасен функција и надвор се појавува на различни излезни, нели? 1465 01:06:38,720 --> 01:06:42,220 Во кодот, истото се случува во било кој вид на функција. 1466 01:06:42,220 --> 01:06:48,230 >> Па можев да се физички пишуваат во моето тело на мојот код 1467 01:06:48,230 --> 01:06:52,357 главна изјава дека всушност не без оглед на телото од кодот се прави. 1468 01:06:52,357 --> 01:06:54,940 Но надвор од тоа, јас, исто така, може да пишуваат многу различни функции 1469 01:06:54,940 --> 01:06:56,320 кој направи многу различни нешта. 1470 01:06:56,320 --> 01:06:58,570 На пример, ние сме веќе започнале да го користат некои од нив. 1471 01:06:58,570 --> 01:07:00,610 Printf-- што е функција која некој друг 1472 01:07:00,610 --> 01:07:02,870 веќе пишуваше дека ние може да се јавите во нашиот код. 1473 01:07:02,870 --> 01:07:05,410 Да upper-- во овој случај, upper-- е уште една функција 1474 01:07:05,410 --> 01:07:07,330 Ние ги напишав дека ние може да се јавите во нашиот код. 1475 01:07:07,330 --> 01:07:09,520 И така претпоставувам зошто ние дури имаат функции? 1476 01:07:09,520 --> 01:07:12,100 Зошто не можеме само да го паднала сите во иста линија код? 1477 01:07:12,100 --> 01:07:13,730 Тоа го прави лесен за секого. 1478 01:07:13,730 --> 01:07:19,200 >> Добро, причината што е, пред сè, организација. 1479 01:07:19,200 --> 01:07:21,880 Тоа е навистина досадно случува преку нечиј код 1480 01:07:21,880 --> 01:07:25,110 и една функција како printf. 1481 01:07:25,110 --> 01:07:28,570 Ако вие момци всушност не знаеше што функција printf бараше да се напише, 1482 01:07:28,570 --> 01:07:30,530 Тоа е тоа, како, 1.000 линии на код. 1483 01:07:30,530 --> 01:07:32,357 >> Ако секој пат кога сакав да printf нешто, 1484 01:07:32,357 --> 01:07:35,440 Морав да напишам 1.000 линии на код, тоа би било навистина досадно да се чита, 1485 01:07:35,440 --> 01:07:36,290 нели? 1486 01:07:36,290 --> 01:07:38,860 Тоа е причината зошто ние сме само создаде оваа апстрактна функција 1487 01:07:38,860 --> 01:07:41,670 дека имаме веќе некој друг има напишано некаде на друго место. 1488 01:07:41,670 --> 01:07:44,920 И секој пат кога ние треба да го користат во нашиот код, ние само треба да се каже printf. 1489 01:07:44,920 --> 01:07:48,070 И дека е во состојба да ја користите функцијата некој друг има напишано во нашиот код. 1490 01:07:48,070 --> 01:07:51,020 Тоа го прави полесно организационо да го прочитате кодот. 1491 01:07:51,020 --> 01:07:53,460 >> Второ, тоа е поедноставување. 1492 01:07:53,460 --> 01:07:56,750 Се поедноставува чекорите имаме да ги преземе за решавање на нашиот проблем. 1493 01:07:56,750 --> 01:07:59,300 Printf, функции како printf, функции како на горниот дел 1494 01:07:59,300 --> 01:08:03,560 се сите работи што ни овозможи да се поедноставување на нашиот код надолу така што е полесно. 1495 01:08:03,560 --> 01:08:05,830 И последното нешто што е reusability. 1496 01:08:05,830 --> 01:08:08,710 >> Значи фактот дека имаме функција наречена printf 1497 01:08:08,710 --> 01:08:11,990 дека ние може да се јавите на многу различни пати и му овозможува да биде еднократно. 1498 01:08:11,990 --> 01:08:14,980 Ако јас се да се напише printf, Јас само го пишувам еднаш. 1499 01:08:14,980 --> 01:08:16,439 Таа постои само во кој на едно место. 1500 01:08:16,439 --> 01:08:19,890 Ако јас сакав да го направите тоа, повторно, јас би треба да го копирате и залепите сето тоа 1501 01:08:19,890 --> 01:08:21,760 во мојата втора линија код. 1502 01:08:21,760 --> 01:08:24,880 Затоа, ако ние се создаде функцијата што постои надвор од нашите главни, 1503 01:08:24,880 --> 01:08:26,880 ние само може да се повикаат тоа и тоа кога и повторна употреба 1504 01:08:26,880 --> 01:08:29,604 ние треба, така што тоа е многу полесно за нас како програми за да се напише. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Па начинот на кој ние, всушност, ќе се напише функција е многу сличен, нели? 1507 01:08:35,549 --> 01:08:37,590 Ова е вид на првиот пример во кој ние ќе 1508 01:08:37,590 --> 01:08:42,830 види функција земе на стилот различни од нашите int главната неважечки. 1509 01:08:42,830 --> 01:08:46,779 Во овој случај, ако сакав да напише функција наречена П, нели? 1510 01:08:46,779 --> 01:08:49,370 >> И вредноста на int тука е сите да ми каже, 1511 01:08:49,370 --> 01:08:51,649 што сакам ова функцијата да се врати кај мене? 1512 01:08:51,649 --> 01:08:54,484 Ако сакам да се коцка цел број, Одам да сакате да го внесете. 1513 01:08:54,484 --> 01:08:55,525 Тоа се параметри. 1514 01:08:55,525 --> 01:08:58,490 Одам да се внесува вредност од тип int. 1515 01:08:58,490 --> 01:09:01,300 А јас ќе одам да се врати друг тип вредност на Инт. 1516 01:09:01,300 --> 01:09:03,050 И овде, како што се може да се види, сите што го правам 1517 01:09:03,050 --> 01:09:07,300 е местење Рубикова коцка што и мојот влез е како мојот аутпут и им се врати. 1518 01:09:07,300 --> 01:09:10,790 >> Така што сите на оваа функција не е зема некој вид на цел број. 1519 01:09:10,790 --> 01:09:14,979 Тоа се размножува по себе два пати така што тоа коцки кои имаат ефект. 1520 01:09:14,979 --> 01:09:17,729 А потоа се враќа што и да е излезен. 1521 01:09:17,729 --> 01:09:20,540 Значи во овој случај, тоа е две линии на кодот што моравме да се напише екстра. 1522 01:09:20,540 --> 01:09:22,880 Но, ако сакаме да се нарекуваме по ова неколку пати, 1523 01:09:22,880 --> 01:09:26,210 тоа е многу полесно да напишеш дека еден линија токму тука, тоа е во коцка од 1524 01:09:26,210 --> 01:09:28,830 мора да одат преку повеќе пати. 1525 01:09:28,830 --> 01:09:34,180 >> Па начинот на кој во суштина било форматирање за било кој вид на функција 1526 01:09:34,180 --> 01:09:36,420 ќе постои е како тука. 1527 01:09:36,420 --> 01:09:38,659 Значи ние треба името на функцијата. 1528 01:09:38,659 --> 01:09:39,950 Во овој случај, тоа се вика коцка. 1529 01:09:39,950 --> 01:09:42,033 И ние го именуваме коцка, бидејќи тоа е лесно да се запомни. 1530 01:09:42,033 --> 01:09:44,220 Можете да го името што плоштадот и тоа, всушност, може да се коцки. 1531 01:09:44,220 --> 01:09:45,500 Не е важно. 1532 01:09:45,500 --> 01:09:48,020 Само име што сте доделување на вашата функција. 1533 01:09:48,020 --> 01:09:51,660 >> Ова право тука, цел број, е Вид на параметарот што ви треба. 1534 01:09:51,660 --> 01:09:54,149 Значи она што не на оваа функција се потребни со цел да се работи? 1535 01:09:54,149 --> 01:09:55,990 Па, тоа е потребен внес. 1536 01:09:55,990 --> 01:09:56,704 Јас ја нарекол влез. 1537 01:09:56,704 --> 01:09:58,120 Можете да го името што сакате. 1538 01:09:58,120 --> 01:10:00,500 Но ми треба нешто од типот int. 1539 01:10:00,500 --> 01:10:03,730 Тоа се случува да всушност извршување се што е во внатрешноста на овде, 1540 01:10:03,730 --> 01:10:04,990 телото на функцијата. 1541 01:10:04,990 --> 01:10:07,847 А потоа враќање на видот токму тука, на оваа int-- 1542 01:10:07,847 --> 01:10:09,680 сето тоа е ми кажуваше се дека оваа функција е 1543 01:10:09,680 --> 01:10:11,250 ќе се врати кај мене во Инт. 1544 01:10:11,250 --> 01:10:14,460 Па затоа се случува да се земе во int, и тоа се случува да ви даде вратам int. 1545 01:10:14,460 --> 01:10:17,750 Дали сите се разбере како на форматирање на овој вид дела? 1546 01:10:17,750 --> 01:10:18,250 Кул. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ВО РЕД. 1549 01:10:25,740 --> 01:10:31,770 Затоа, не се загрижени, ако се чини дека ова малку апстрактен во моментов. 1550 01:10:31,770 --> 01:10:33,450 Ова е нешто што ние ќе зборуваме за. 1551 01:10:33,450 --> 01:10:36,310 Ние ќе се нурне во подлабок подоцна во текот на курсот. 1552 01:10:36,310 --> 01:10:41,170 Начинот на кој било вид на повисоко ниво апстракција на овие работи работата 1553 01:10:41,170 --> 01:10:43,530 е во тоа што, во меморијата, во вашиот компјутер, се ' 1554 01:10:43,530 --> 01:10:47,660 се чуваат во овој тип од оџакот, да кажам. 1555 01:10:47,660 --> 01:10:49,070 >> Значи, таму горе на врвот. 1556 01:10:49,070 --> 01:10:50,861 Јас не знам дали сте момци можат да се види дека е добро. 1557 01:10:50,861 --> 01:10:52,590 Ќе се обидам да го зголемите. 1558 01:10:52,590 --> 01:10:55,111 Еве на врвот, ние имаат физички текст 1559 01:10:55,111 --> 01:10:57,860 за тоа што компјутерот е interpreting-- сите нули и единици кои 1560 01:10:57,860 --> 01:10:59,540 постојат во рамките на нашиот компјутер. 1561 01:10:59,540 --> 01:11:03,390 И тогаш имаме иницираните податоци и деиницијализира податоци, 1562 01:11:03,390 --> 01:11:05,340 она што го нарекуваме глобални променливи. 1563 01:11:05,340 --> 01:11:08,200 Така променливи кои постојат во сите програми 1564 01:11:08,200 --> 01:11:11,815 и низ целата своја, во суштина, код. 1565 01:11:11,815 --> 01:11:13,940 Не се грижи, ако вие момци се вид на нејасни за тоа. 1566 01:11:13,940 --> 01:11:16,060 Тоа не е важно во моментов. 1567 01:11:16,060 --> 01:11:18,680 >> И тогаш имаме што е наречен грамада во оџак. 1568 01:11:18,680 --> 01:11:21,140 Мислам на магацинот буквално како исто како и еден куп на работи, 1569 01:11:21,140 --> 01:11:23,098 магацинот на различни работите се турка на врвот 1570 01:11:23,098 --> 01:11:27,870 на едни со други кои се чуваат на различни променливи и синтаксата во вашиот код. 1571 01:11:27,870 --> 01:11:31,460 А потоа тука на самото дно, имаме на животната средина променливи 1572 01:11:31,460 --> 01:11:35,480 на она што се извршува во рок од само малку вашата линија код. 1573 01:11:35,480 --> 01:11:40,510 >> И ние сме само ќе да зумирате во основа на фактичката магацинот дел. 1574 01:11:40,510 --> 01:11:43,880 Па токму тука, ако веќе треба да ја зголемите во само на оваа област на магацинот, 1575 01:11:43,880 --> 01:11:45,140 тоа е она што изгледа. 1576 01:11:45,140 --> 01:11:48,590 И ова е всушност многу важно кога вие момци се зборува за функции, 1577 01:11:48,590 --> 01:11:52,330 поради информации дека меморијата на вашиот компјутер 1578 01:11:52,330 --> 01:11:55,600 е чување на променливи и функциите 1579 01:11:55,600 --> 01:11:58,790 и параметрите на двете вашиот функција и вашата главна променливи 1580 01:11:58,790 --> 01:12:00,190 во различни места. 1581 01:12:00,190 --> 01:12:03,390 >> Значи, токму сега, главната е вистинската функција 1582 01:12:03,390 --> 01:12:04,780 дека сте во извршување на кодот. 1583 01:12:04,780 --> 01:12:08,050 Сте чуваат овде неговите параметри и нејзините локални променливи чуваат овде. 1584 01:12:08,050 --> 01:12:12,270 Локална променлива само значи секоја променлива кои постојат само во рамките на таа функција. 1585 01:12:12,270 --> 01:12:15,610 И згора на тоа, ќе мора ова посебна функција наречена коцка. 1586 01:12:15,610 --> 01:12:18,240 Имаш тоа е параметри како и оние кои локалното население. 1587 01:12:18,240 --> 01:12:21,540 >> А причината што можете да види тука е дека она што 1588 01:12:21,540 --> 01:12:25,030 се случува кога коцка зема во вредност од вашата главна функција 1589 01:12:25,030 --> 01:12:27,640 е дека всушност тоа е дека со текот на копирање. 1590 01:12:27,640 --> 01:12:31,470 Значи, ако јас сакав да се коцка 2 и се врати 8, дека 2 1591 01:12:31,470 --> 01:12:33,730 е, всушност внесуваат како параметар и тоа е 1592 01:12:33,730 --> 01:12:37,690 копирани повеќе, така што можете да го имаат постоечки во две различни места во меморијата. 1593 01:12:37,690 --> 01:12:40,520 И ќе мора да бидат многу внимателни на запомнете во која еден од оние 1594 01:12:40,520 --> 01:12:42,520 ти си, всушност манипулирање. 1595 01:12:42,520 --> 01:12:47,170 И е пример за тоа што се случило дека ќе биде многу, многу лошо 1596 01:12:47,170 --> 01:12:48,050 постои право тука. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Па токму тука, имам, во теорија, програма токму тука, на главната функција 1599 01:12:58,650 --> 01:13:02,180 дека јас сум прогласување на int x е еднаква на 1. 1600 01:13:02,180 --> 01:13:04,505 Јас сум прогласување друг int y е еднакво на 2. 1601 01:13:04,505 --> 01:13:06,380 И тогаш јас сум го работи преку оваа функција 1602 01:13:06,380 --> 01:13:09,647 наречен трампа, каде што јас се претпостави дека тоа е Замена на две вредности. 1603 01:13:09,647 --> 01:13:11,480 А потоа јас ќе одам да ги испечатите и надвор, нели? 1604 01:13:11,480 --> 01:13:13,220 Тоа е она што јас сакам оваа програма да се направи. 1605 01:13:13,220 --> 01:13:15,180 >> Па ајде да дојде и да ги разгледаме. 1606 01:13:15,180 --> 01:13:18,200 Значи, ако јас всушност пишува различна функција, како што можете да видите, 1607 01:13:18,200 --> 01:13:19,750 имаме нашата главна функција овде. 1608 01:13:19,750 --> 01:13:22,860 А потоа ние си имаме Втората функција овде. 1609 01:13:22,860 --> 01:13:24,520 Празнина трампа. 1610 01:13:24,520 --> 01:13:27,090 Празнина само значи дека тоа е нема да се врати ништо. 1611 01:13:27,090 --> 01:13:28,930 Името на функцијата е наречен трампа, а тоа е 1612 01:13:28,930 --> 01:13:33,730 ќе внес две променливи, int a и int b, од вашиот [Беззвучен] функција. 1613 01:13:33,730 --> 01:13:39,010 >> Значи во суштина овде, ние сме кој поминува x и y во оваа функција. 1614 01:13:39,010 --> 01:13:40,760 И ако можеме да ги создаде this-- затоа сакаме 1615 01:13:40,760 --> 01:13:42,420 да се создаде привремена вредност, нели? 1616 01:13:42,420 --> 01:13:43,930 Ние ќе треба да се додели дека до. 1617 01:13:43,930 --> 01:13:45,388 А потоа и се случува да се сега еднакви б. 1618 01:13:45,388 --> 01:13:47,660 И b се случува да се врати каде што вредноста на темп беше, 1619 01:13:47,660 --> 01:13:51,070 која е, бидејќи кога сакате да се разменуваат нешта, 1620 01:13:51,070 --> 01:13:52,320 што не може само сакал да ги трампа. 1621 01:13:52,320 --> 01:13:54,360 >> Мора да се задржи еден тука, така што тоа се сеќава 1622 01:13:54,360 --> 01:13:56,485 она што е, затоа што еднаш се разменуваат една, те заборавам 1623 01:13:56,485 --> 01:13:58,200 она што нејзината оригинална вредност е, нели? 1624 01:13:58,200 --> 01:14:00,990 Така што во теорија, оваа програма треба да се работи, нели? 1625 01:14:00,990 --> 01:14:03,630 Ако сакав да се разменуваат со две, тие треба да се разменуваат. 1626 01:14:03,630 --> 01:14:05,490 Па ајде да го работи и да видат дали тоа функционира. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Така што вие момци можат да се види, x некогаш беше 1 и y некогаш беше 2. 1629 01:14:16,940 --> 01:14:21,475 И ако јас го испечатите, x се уште е 1 и y е 2. 1630 01:14:21,475 --> 01:14:25,970 Хм, оваа програма не чини да се биде работа на начинот на кој јас сакам тоа да работат. 1631 01:14:25,970 --> 01:14:29,950 Сака ли некој да ги сними во Сомневајќи зошто тоа се случува? 1632 01:14:29,950 --> 01:14:34,430 Тоа има врска со начинот на кој кои се различни работи 1633 01:14:34,430 --> 01:14:38,172 складирани во различни места во меморијата. 1634 01:14:38,172 --> 01:14:39,377 >> ВО РЕД. 1635 01:14:39,377 --> 01:14:41,960 Па вие момци не треба да се грижите премногу за ова право сега. 1636 01:14:41,960 --> 01:14:46,610 Но знаеш дека коцката е локалната променливи беа a и b, 1637 01:14:46,610 --> 01:14:49,230 бидејќи тука во нашата функција, ние се изјаснивме a и b 1638 01:14:49,230 --> 01:14:53,570 како варијабли кои постојат во рок од коцка, таа функција. 1639 01:14:53,570 --> 01:14:59,490 Но, како што можете да видите, на параметрите со кои тоа е преземање на биле зачувани овде. 1640 01:14:59,490 --> 01:15:01,370 Но, ние не се всушност враќајќи се ништо. 1641 01:15:01,370 --> 01:15:03,120 Ние не беа всушност менување на x и y. 1642 01:15:03,120 --> 01:15:04,440 Бевме само менување на a и b. 1643 01:15:04,440 --> 01:15:08,340 >> Имавме копирани x и y во нешто што се нарекува и b. 1644 01:15:08,340 --> 01:15:11,092 Но, ние никогаш не манипулирани х и у себе. 1645 01:15:11,092 --> 01:15:12,800 Дали сте момци гледање како што се случува? 1646 01:15:12,800 --> 01:15:16,140 Е во тоа што ние едноставно сте го копирале готово, но ништо не сме, всушност, чуваат 1647 01:15:16,140 --> 01:15:18,030 пратите на местото каде што беа во меморијата. 1648 01:15:18,030 --> 01:15:20,127 >> Па сега на компјутерот е во потрага, О, јас сум 1649 01:15:20,127 --> 01:15:21,960 ја извршите оваа работа преку оваа прекрасна функција. 1650 01:15:21,960 --> 01:15:23,690 Но, x и y се уште x и y. 1651 01:15:23,690 --> 01:15:26,240 Ништо да не се случило на нив поради фактот 1652 01:15:26,240 --> 01:15:28,340 дека оние параметри и локални променливи 1653 01:15:28,340 --> 01:15:30,150 се складирани во различни ставете во меморијата. 1654 01:15:30,150 --> 01:15:32,030 И ова е на повисоко ниво Концептот дека ќе 1655 01:15:32,030 --> 01:15:34,300 започнете да гледате подоцна во текот на курсот. 1656 01:15:34,300 --> 01:15:36,950 Но, само знам дека ова е проблем што може да се случи 1657 01:15:36,950 --> 01:15:41,400 и дека ќе дознаам начини за тоа како да се справи со ова подоцна во текот на курсот. 1658 01:15:41,400 --> 01:15:41,900 ВО РЕД. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Во ред. 1661 01:15:48,250 --> 01:15:51,780 Па во последните концепт ние сме навистина се случува да ги покрие 1662 01:15:51,780 --> 01:15:53,880 што се случува да бидат корисни за pset оваа недела 1663 01:15:53,880 --> 01:15:56,060 се она што се нарекува командната линија аргументи. 1664 01:15:56,060 --> 01:16:00,820 Така Роб во своето предавање изложи вид на кратко за тоа како овие работи. 1665 01:16:00,820 --> 01:16:02,770 Суштина се знае дека кога сте пишување 1666 01:16:02,770 --> 01:16:06,280 како главна функција, кога ќе напиша функции пред и во минатото, 1667 01:16:06,280 --> 01:16:07,804 имавме int главната неважечки. 1668 01:16:07,804 --> 01:16:10,470 А причината моравме празнина таму е затоа што нашите програми не 1669 01:16:10,470 --> 01:16:12,520 треба да го внесете вредности за да работи, нели? 1670 01:16:12,520 --> 01:16:16,020 Кога налетав Марио, јас не треба за да всушност само го пишувате нешто 1671 01:16:16,020 --> 01:16:16,970 кога налетав Марио. 1672 01:16:16,970 --> 01:16:20,170 Можев да го извести корисникот за подоцна. 1673 01:16:20,170 --> 01:16:22,450 Но, тоа не е секогаш случај. 1674 01:16:22,450 --> 01:16:24,980 >> На пример, во овој Проблемот недела поставува, 1675 01:16:24,980 --> 01:16:28,365 си оди за да се побара тоа, во прилог на водење на вашата програма, 1676 01:16:28,365 --> 01:16:30,990 ви се случува да сакаат да го внесете некои работи во право како ќе се 1677 01:16:30,990 --> 01:16:32,050 се кандидира на вашата програма. 1678 01:16:32,050 --> 01:16:34,720 Па начинот на кој го правиме тоа што се нарекува аргументите на командната линија, која 1679 01:16:34,720 --> 01:16:37,280 е како аргумент што можете да внесете директно 1680 01:16:37,280 --> 01:16:39,260 како што се обидуваш да ја стартувате програмата. 1681 01:16:39,260 --> 01:16:44,680 >> Па нотација за ова, тоа е прилично сложен изглед, 1682 01:16:44,680 --> 01:16:47,320 но тоа навистина не е толку тешко. Па int main-- 1683 01:16:47,320 --> 01:16:48,910 тоа е само вашата главна функција. 1684 01:16:48,910 --> 01:16:52,110 Во argc запирка стринг argv загради. 1685 01:16:52,110 --> 01:16:56,040 Така што сите тоа е дека е тоа што овој int argc-- што сите тоа е ти го кажувам 1686 01:16:56,040 --> 01:17:00,560 е во тоа што тие се на бројот на Аргументите на компјутерот треба да се очекува. 1687 01:17:00,560 --> 01:17:03,130 >> Па едно нешто што е навистина важно да ги пратите на 1688 01:17:03,130 --> 01:17:07,080 е физичката името на вашата програма брои како една од тие аргументи. 1689 01:17:07,080 --> 01:17:11,080 Значи, ако сакав да имам мојата програма работи плус еден дополнителен командната линија 1690 01:17:11,080 --> 01:17:13,310 аргумент, јас сум всушност ќе има две. 1691 01:17:13,310 --> 01:17:15,080 Argc што всушност се случува да бидат две. 1692 01:17:15,080 --> 01:17:18,010 А потоа низа argv bracket-- сето она што се прави, 1693 01:17:18,010 --> 01:17:20,410 тоа ме на давање низа на стрингови кои е 1694 01:17:20,410 --> 01:17:24,870 ќе се прикаже и да се сместат само што сите оние аргументи на командната линија се. 1695 01:17:24,870 --> 01:17:34,090 >> Така на пример, ако сакав да ја имаат оваа програма, ./copy infile OUTFILE, нели? 1696 01:17:34,090 --> 01:17:37,330 Тоа е само типичен команда Линукс. 1697 01:17:37,330 --> 01:17:38,830 Што всушност е argc? 1698 01:17:38,830 --> 01:17:41,320 Колку аргументи на командната линија има всушност во тоа? 1699 01:17:41,320 --> 01:17:45,130 Сето ова го прави е да се направи копија од на infile на името на една датотека 1700 01:17:45,130 --> 01:17:47,070 и тоа го копии во друга датотека, нели? 1701 01:17:47,070 --> 01:17:48,700 Тоа е сето ова се прави. 1702 01:17:48,700 --> 01:17:53,080 Како што можете да видите, јас сум тоа го правам на една линија без всушност потреба од програмата. 1703 01:17:53,080 --> 01:17:55,380 >> Која е нашата argc во овој случај? 1704 01:17:55,380 --> 01:17:58,968 Колку аргументи имаме? 1705 01:17:58,968 --> 01:17:59,634 ПУБЛИКАТА: Три? 1706 01:17:59,634 --> 01:18:01,200 АНДИ Пенг: Имаме три, точно. 1707 01:18:01,200 --> 01:18:05,030 Така што е многу интуитивен за само мислам дека тоа е само 1708 01:18:05,030 --> 01:18:06,290 на infile и outfile. 1709 01:18:06,290 --> 01:18:10,190 Но се знае дека физичката името на програма која што работите се брои како едно. 1710 01:18:10,190 --> 01:18:13,220 Значи во овој случај, argc е всушност три. 1711 01:18:13,220 --> 01:18:15,860 Како за, она што е argv 0? 1712 01:18:15,860 --> 01:18:18,180 Запомнете, сите од аргументи на командната линија 1713 01:18:18,180 --> 01:18:20,500 се чуваат во низа на стрингови. 1714 01:18:20,500 --> 01:18:24,140 Значи, ако јас се обидувам да го достигнете, она што би argv заградата 0 ми даде? 1715 01:18:24,140 --> 01:18:25,364 >> ПУБЛИКАТА: [Беззвучен]. 1716 01:18:25,364 --> 01:18:26,155 АНДИ Пенг: Токму така. 1717 01:18:26,155 --> 01:18:28,550 Тоа ќе ми даде дот црта копија, бидејќи тоа е 1718 01:18:28,550 --> 01:18:31,070 на 0. елемент, Првиот елемент на мојот низа. 1719 01:18:31,070 --> 01:18:33,236 Што е со argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> ПУБЛИКАТА: infile. 1721 01:18:33,945 --> 01:18:35,070 АНДИ Пенг: infile, точно. 1722 01:18:35,070 --> 01:18:36,272 Што е со argv 2? 1723 01:18:36,272 --> 01:18:37,022 ПУБЛИКАТА: OUTFILE. 1724 01:18:37,022 --> 01:18:38,190 АНДИ Пенг: OUTFILE. 1725 01:18:38,190 --> 01:18:39,290 Ова е малку незгодно сега. 1726 01:18:39,290 --> 01:18:42,630 Што ви момци мислам argv 3 ќе се ми дава 1727 01:18:42,630 --> 01:18:45,522 ако јас се обидував да се печати ова? 1728 01:18:45,522 --> 01:18:48,260 >> ПУБЛИКАТА: [Беззвучен]? 1729 01:18:48,260 --> 01:18:50,164 >> АНДИ Пенг: Дали имате рака нагоре? 1730 01:18:50,164 --> 01:18:50,663 Је. 1731 01:18:50,663 --> 01:18:51,550 >> ПУБЛИКАТА: алтернатива. 1732 01:18:51,550 --> 01:18:52,341 >> АНДИ Пенг: Токму така. 1733 01:18:52,341 --> 01:18:55,440 Па се сеќавам на предавањето што ние има на крајот на трката нешто 1734 01:18:55,440 --> 01:18:56,640 нарекува нулти Терминатор? 1735 01:18:56,640 --> 01:18:58,890 Ние ќе дојдеме во ова, исто така, понатаму во класата. 1736 01:18:58,890 --> 01:19:02,472 Но знам дека во нотација, начинот на кој вашиот компјутер 1737 01:19:02,472 --> 01:19:04,430 знае дека тоа е крајот на низата е тоа што 1738 01:19:04,430 --> 01:19:07,310 става нешто што се нарекува нулти терминатор или цртичка нула. 1739 01:19:07,310 --> 01:19:12,047 >> Значи, ако се обидете да пристапите argv 3, ви се случува да го погоди ова цртичка 0. 1740 01:19:12,047 --> 01:19:13,630 Ова е уште повеќе на трик прашање. 1741 01:19:13,630 --> 01:19:17,020 Што е со argv 4? 1742 01:19:17,020 --> 01:19:20,920 Значи ова е минато null терминатор, минатото од границите на нашата низа. 1743 01:19:20,920 --> 01:19:24,380 Што мислите дека ќе се се случи кога ќе се обидете да го направите тоа? 1744 01:19:24,380 --> 01:19:25,842 >> ПУБЛИКАТА: [Беззвучен]? 1745 01:19:25,842 --> 01:19:26,550 АНДИ Пенг: Жал ми е? 1746 01:19:26,550 --> 01:19:28,025 Кажам дека малку погласно? 1747 01:19:28,025 --> 01:19:29,086 >> ПУБЛИКАТА: [Беззвучен]. 1748 01:19:29,086 --> 01:19:29,710 АНДИ Пенг: Да. 1749 01:19:29,710 --> 01:19:32,420 Тоа е името на површина на која, најверојатно, ќе се добие. 1750 01:19:32,420 --> 01:19:36,610 Но знаеш дека argv 4-- кој ви овозможува да пристап 1751 01:19:36,610 --> 01:19:38,610 места во вашиот компјутер меморија дека навистина 1752 01:19:38,610 --> 01:19:41,650 не треба да се допираат, бидејќи сега знаеш што argv е. 1753 01:19:41,650 --> 01:19:46,220 Знаете ли дека тоа е низа од големината 3 кој има точка копија, infile и outfile. 1754 01:19:46,220 --> 01:19:50,200 >> Ако се обидете да одат толку далеку повеќе од тоа дека сте минатото нултата терминатор, 1755 01:19:50,200 --> 01:19:53,050 вашиот компјутер има веројатно чуваат нешто во argv 4. 1756 01:19:53,050 --> 01:19:55,790 И навистина не треба да биде дозволен пристап во argv 4, 1757 01:19:55,790 --> 01:19:58,130 бидејќи имате датотека кабинет и вие ќе бидете само 1758 01:19:58,130 --> 01:19:59,790 дозволен пристап до овие три полиците. 1759 01:19:59,790 --> 01:20:02,870 Но, ако се обидете да стигнат далеку полица на местото каде што е дозволено, 1760 01:20:02,870 --> 01:20:04,930 ви се случува да започне Месинг со други работи во меморијата на вашиот компјутер. 1761 01:20:04,930 --> 01:20:06,690 Кој се случува да биде многу, многу лошо. 1762 01:20:06,690 --> 01:20:07,440 Па само да го знае тоа. 1763 01:20:07,440 --> 01:20:10,370 Бидете внимателни што не само случајно да почне 1764 01:20:10,370 --> 01:20:14,772 пристапуваат елементи во низа што не се во она што си сакал да се создаде. 1765 01:20:14,772 --> 01:20:17,114 Да. 1766 01:20:17,114 --> 01:20:18,430 >> ВО РЕД. 1767 01:20:18,430 --> 01:20:26,360 Па ние ќе треба да се направи уште еден терминал пример тука. 1768 01:20:26,360 --> 01:20:27,300 ВО РЕД. 1769 01:20:27,300 --> 01:20:29,900 Роб така брзо во предавање пред некој ден отидов 1770 01:20:29,900 --> 01:20:35,040 преку овој пример, каде што имаше int главната int argc стринг argv 1771 01:20:35,040 --> 01:20:39,090 загради, која ми кажуваше дека јас сум случува да имаат аргументи на командната линија. 1772 01:20:39,090 --> 01:20:41,860 >> Тој ги има, ако argc е еднаква еднаква 2-- сеќавам, 1773 01:20:41,860 --> 01:20:45,070 еднаква на еднаквите значи споредување. 1774 01:20:45,070 --> 01:20:47,980 Ако тоа е еднакво на 2, тогаш јас сум печатењето здраво, 1775 01:20:47,980 --> 01:20:51,190 што и првиот елемент од низата е. 1776 01:20:51,190 --> 01:20:54,100 Друго печати, Здраво светот. 1777 01:20:54,100 --> 01:20:56,300 Што е ова се случува да го суштина се случи? 1778 01:20:56,300 --> 01:21:00,570 Некој може да се објасни само со Англиски она што оваа програма е тоа? 1779 01:21:00,570 --> 01:21:01,272 Је. 1780 01:21:01,272 --> 01:21:08,160 >> ПУБЛИКАТА: Ако некој ја внеле во командната и рече дека прв и последен име, 1781 01:21:08,160 --> 01:21:12,096 тоа не само што ќе се печати на Првиот и да каже, здраво, 1782 01:21:12,096 --> 01:21:14,090 без оглед на вашето име е. 1783 01:21:14,090 --> 01:21:15,410 >> АНДИ Пенг: Добро, ајде да го работи. 1784 01:21:15,410 --> 01:21:22,470 Така на пример, ако јас се да се направи оваа датотека направи здраво to-- здраво 1785 01:21:22,470 --> 01:21:24,500 to-- што ти ме натера да сакате да го внесете? 1786 01:21:24,500 --> 01:21:25,900 >> ПУБЛИКАТА: име и презиме. 1787 01:21:25,900 --> 01:21:27,280 >> АНДИ Пенг: Име и презиме? 1788 01:21:27,280 --> 01:21:28,180 Простори? 1789 01:21:28,180 --> 01:21:29,690 >> ПУБЛИКАТА: Да. 1790 01:21:29,690 --> 01:21:33,490 >> АНДИ Пенг: Може некој каже мене во моментов, што е argc? 1791 01:21:33,490 --> 01:21:35,630 Само право таму? 1792 01:21:35,630 --> 01:21:36,290 Упс, жал. 1793 01:21:36,290 --> 01:21:37,920 Дозволете ми да се вратам. 1794 01:21:37,920 --> 01:21:40,740 Колку аргументи на командната линија ви are-- момци навистина не може да се види. 1795 01:21:40,740 --> 01:21:43,760 Но ќе се обидам да го зголемите. 1796 01:21:43,760 --> 01:21:44,290 Се трудам. 1797 01:21:44,290 --> 01:21:45,414 Да, има три, нели? 1798 01:21:45,414 --> 01:21:48,750 Тоа е точка црта здраво, тоа е Анди, а тоа е Пенг. 1799 01:21:48,750 --> 01:21:51,870 >> Значи она што вие момци мислам дека ова Програмата ќе се испечати? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Ох. 1802 01:21:56,060 --> 01:21:57,120 Извини. 1803 01:21:57,120 --> 01:21:57,810 Погрешно име. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Тоа е печатење, Здраво светот. 1806 01:22:06,130 --> 01:22:09,603 Сака ли некој да објасни зошто тоа се случува? 1807 01:22:09,603 --> 01:22:10,103 Да? 1808 01:22:10,103 --> 01:22:11,019 >> ПУБЛИКАТА: [Беззвучен]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 АНДИ Пенг: Токму така. 1811 01:22:15,230 --> 01:22:19,940 Па еве, се услов е, ако argc еднаква изнесува 2. 1812 01:22:19,940 --> 01:22:23,650 Па само во случај дека има две командната линија аргументи. 1813 01:22:23,650 --> 01:22:25,850 Тогаш јас ќе одам да се печати, Здраво, што и да е. 1814 01:22:25,850 --> 01:22:28,210 Но, што друго, ќе одам да се печати само, Здраво светот. 1815 01:22:28,210 --> 01:22:30,040 Значи не сакате некој да ми даде пример 1816 01:22:30,040 --> 01:22:35,050 за тоа како јас ќе бидам во можност да всушност се добие тоа да се печати вредноста на argv 1? 1817 01:22:35,050 --> 01:22:38,600 >> Она што ќе морам да го внесете тука? 1818 01:22:38,600 --> 01:22:39,840 Само една работа, нели? 1819 01:22:39,840 --> 01:22:42,900 Бидејќи точката здраво на веќе брои како прв аргумент. 1820 01:22:42,900 --> 01:22:43,930 Имам само уште еден. 1821 01:22:43,930 --> 01:22:46,470 Па dot здраво ако јас само го направи Анди. 1822 01:22:46,470 --> 01:22:47,270 Здраво, Анди. 1823 01:22:47,270 --> 01:22:49,186 Дали сите се разбере зошто тоа се случува? 1824 01:22:49,186 --> 01:22:49,602 Је. 1825 01:22:49,602 --> 01:22:52,500 >> ПУБЛИКАТА: Значи, на просторот меѓу команда line-- е тоа [Беззвучен]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 АНДИ Пенг: Не 1828 01:22:56,830 --> 01:23:03,810 Па просторот во командната линија аргумент, x, да му кажете на вашиот компјутер 1829 01:23:03,810 --> 01:23:06,820 дека ова е почеток на нов стринг. 1830 01:23:06,820 --> 01:23:11,130 Па низа argv тоа here-- продавници сите на вашите команди линија аргументи 1831 01:23:11,130 --> 01:23:13,110 во жици. 1832 01:23:13,110 --> 01:23:17,420 Така и на просторот во командната линија argument-- сето тоа го прави е да ви кажам, 1833 01:23:17,420 --> 01:23:21,030 ова е крајот на еден стринг и дека е време да се движи кон друг. 1834 01:23:21,030 --> 01:23:21,990 >> Је. 1835 01:23:21,990 --> 01:23:23,530 Ова е прилично важно за Вашиот pset, затоа што ти си 1836 01:23:23,530 --> 01:23:24,613 случува да биде тестирање на овие. 1837 01:23:24,613 --> 01:23:29,300 Значи Дали некој има било какви прашања во врска со ова? 1838 01:23:29,300 --> 01:23:30,016 Добро, кул. 1839 01:23:30,016 --> 01:23:30,515 Да? 1840 01:23:30,515 --> 01:23:35,008 >> ПУБЛИКАТА: Значи вие причина и би стави целобројни аргументи калк наместо 1841 01:23:35,008 --> 01:23:40,059 на [Беззвучен] би било кога сакате да напишеш дополнителни информации за 1842 01:23:40,059 --> 01:23:41,030 [Беззвучен]? 1843 01:23:41,030 --> 01:23:42,090 >> АНДИ Пенг: Да, точно. 1844 01:23:42,090 --> 01:23:45,370 Некои програми ќе бара од вас за да го внесете аргумент командната линија 1845 01:23:45,370 --> 01:23:47,732 тоа што поминува во и дека го користи тоа. 1846 01:23:47,732 --> 01:23:49,035 Је. 1847 01:23:49,035 --> 01:23:50,410 ПУБЛИКАТА: Па што ако [Беззвучен]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> АНДИ Пенг: Па, што не морам да се промени, тогаш во мојата програма? 1850 01:23:58,870 --> 01:23:59,870 >> ПУБЛИКАТА: Само 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> АНДИ Пенг: Зошто е тоа случува, што мислиш? 1853 01:24:15,020 --> 01:24:18,940 >> ПУБЛИКАТА: Бидејќи [Беззвучен]. 1854 01:24:18,940 --> 01:24:22,370 >> ПУБЛИКАТА: Ќе треба да го ја промените да 2 [Беззвучен]. 1855 01:24:22,370 --> 01:24:23,484 >> ПУБЛИКАТА: 1 и 2. 1856 01:24:23,484 --> 01:24:24,650 АНДИ Пенг: 1 и 2, точно. 1857 01:24:24,650 --> 01:24:29,150 Значи во овој случај, најверојатно ќе сакаат да имаат две printf statements-- 1858 01:24:29,150 --> 01:24:32,601 оној кој печатени argv 1 и оној кој печатени argv 2. 1859 01:24:32,601 --> 01:24:33,100 Овде. 1860 01:24:33,100 --> 01:24:34,516 Јас всушност може да го направи тоа вистински брз. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Ете ти. 1863 01:24:47,320 --> 01:24:48,287 Ох. 1864 01:24:48,287 --> 01:24:49,370 Не е баш она што го сакаше. 1865 01:24:49,370 --> 01:24:52,590 Но, ако вие момци се плеткаме околу со форматирање, тоа ќе излезе. 1866 01:24:52,590 --> 01:24:54,981 Је. 1867 01:24:54,981 --> 01:24:55,480 Кул. 1868 01:24:55,480 --> 01:24:57,670 Знам дека си малку кратки на време. 1869 01:24:57,670 --> 01:25:02,469 Но јас сум само ќе брзо да поминат неколку минути одење преку helpful-- 1870 01:25:02,469 --> 01:25:03,760 ПУБЛИКАТА: Имаш две минути. 1871 01:25:03,760 --> 01:25:05,010 АНДИ Пенг: Имам две минути? 1872 01:25:05,010 --> 01:25:06,340 Ти благодарам. 1873 01:25:06,340 --> 01:25:09,180 Некои брзи совети pset. 1874 01:25:09,180 --> 01:25:13,100 Така и за овој pset, Силно препорачувам, како што реков, сите да ја прочитате на спец. 1875 01:25:13,100 --> 01:25:16,804 Ќе бидат писмено три programs-- еден наречен initials.c, еден вика caesar.c, 1876 01:25:16,804 --> 01:25:17,720 еден вика vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Некои важни совети кои вие момци навистина сакаат 1879 01:25:22,340 --> 01:25:25,040 да се задржи во mind-- така има оваа функција 1880 01:25:25,040 --> 01:25:27,770 наречен atoi-- како што сакам да кажам, а trois. 1881 01:25:27,770 --> 01:25:29,520 Нејасно дали тоа е всушност, како ќе го кажеш. 1882 01:25:29,520 --> 01:25:32,510 Но, сето тоа го прави, тоа е внесување. 1883 01:25:32,510 --> 01:25:34,320 Таа се конвертира стринг да int. 1884 01:25:34,320 --> 01:25:37,490 Па претставува ASCII да з цел број. 1885 01:25:37,490 --> 01:25:40,310 Тоа е само конвертирање на ASCII вредности за целобројни вредности. 1886 01:25:40,310 --> 01:25:44,510 Па се сеќавам argv, низата кој продавници сите на вашите команди редат arguments-- 1887 01:25:44,510 --> 01:25:46,300 таа сите нив ги чува како жици. 1888 01:25:46,300 --> 01:25:50,010 И така, ако сакате да бидете во можност да имаат една од нив стануваат цел број, 1889 01:25:50,010 --> 01:25:52,750 ви се случува да имаат да се користи оваа вредност тука. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, како што се опфатени претходно во класа денес, 1891 01:25:56,690 --> 01:25:59,550 Ви овозможува да имаат остатокот од она што го имате. 1892 01:25:59,550 --> 01:26:03,620 Значи, ако имаме навистина, навистина голем број во Цезар, 1893 01:26:03,620 --> 01:26:06,117 што ако ние сме на крајот на низа Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Како ви се случува да бидат во можност да се добие тоа да се заврши околу? 1895 01:26:08,450 --> 01:26:11,330 Ако јас го погоди z и сакам тоа да се врати во еден, 1896 01:26:11,330 --> 01:26:13,650 колку сум јас ќе се добие дека за да се заврши околу? 1897 01:26:13,650 --> 01:26:15,960 Веројатно ќе сакате да го користите modulo таму некаде. 1898 01:26:15,960 --> 01:26:19,190 >> Второ, да пребарува вашата библиотека. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Тоа е нова библиотека имаме. 1900 01:26:20,680 --> 01:26:25,270 Ќе најдете голем број на навистина, навистина корисно functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, итн. 1902 01:26:27,681 --> 01:26:30,680 Сите функции кои ќе биде многу корисно кога ќе се обидуваш да дознаам, 1903 01:26:30,680 --> 01:26:33,780 е овој лик мали букви? 1904 01:26:33,780 --> 01:26:35,730 Како можам да ја претвори оваа стринг за да се голема латинична? 1905 01:26:35,730 --> 01:26:38,146 Сите овие работи ќе биде многу, многу корисни за вашиот pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ВО РЕД. 1908 01:26:45,500 --> 01:26:49,644 >> На работното време од 8:00 до вечерва се 11:00 часот во ТЕАЛ училница утре 1909 01:26:49,644 --> 01:26:51,310 како и во среда и четврток навечер. 1910 01:26:51,310 --> 01:26:53,280 Работното време, се во заедничкото. 1911 01:26:53,280 --> 01:26:56,180 Силно препорачуваме момци сите да започнете веднаш, 1912 01:26:56,180 --> 01:27:00,490 затоа што не сакаат да бидат во тој дете кое во четвртокот ноќта има проблеми 1913 01:27:00,490 --> 01:27:03,870 поднесување на вашиот pset и е како, јас не знам што да правам. 1914 01:27:03,870 --> 01:27:05,870 Почнав, го завршив, го поднесе. 1915 01:27:05,870 --> 01:27:09,737 Обидете се да се даде некаква помош, затоа што секогаш се јавуваат проблеми во кодот. 1916 01:27:09,737 --> 01:27:11,570 Вие сакате да бидете сигурни дека кои ви се даде 1917 01:27:11,570 --> 01:27:14,810 многу време за да може за завршување на psets. 1918 01:27:14,810 --> 01:27:15,310 Кул. 1919 01:27:15,310 --> 01:27:16,720 Јас ќе се врткаат околу тука. 1920 01:27:16,720 --> 01:27:18,226 >> ПУБЛИКАТА: Дали е ова на интернет веќе? 1921 01:27:18,226 --> 01:27:20,850 АНДИ Пенг: Јас не знам дали тоа е онлајн веќе, но тоа ќе биде. 1922 01:27:20,850 --> 01:27:23,500 Јас ќе се врткаат околу тука, ако некој има било какви прашања веќе. 1923 01:27:23,500 --> 01:27:25,390 Ви благодариме за кои доаѓаат. 1924 01:27:25,390 --> 01:27:27,105