1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ бръмчене ♪] 2 00:00:07,070 --> 00:00:10,380 Така че, за да ви запозная с какво имам на екрана; 3 00:00:10,380 --> 00:00:12,710 това е един от инструментите, които ние разработихме през лятото; 4 00:00:12,710 --> 00:00:15,530 тя се нарича CS50 пространства, 5 00:00:15,530 --> 00:00:18,860 и това е нашата съвместна кодирането на приложението 6 00:00:18,860 --> 00:00:20,180 че отиваме да се използва в секции. 7 00:00:20,180 --> 00:00:22,470 Това е много готино. 8 00:00:22,470 --> 00:00:26,040 Някой от вас CS50 план? 9 00:00:26,040 --> 00:00:29,760 Остави ме да извадя, че в друг раздел. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Така 12 00:00:36,230 --> 00:00:39,700 ако отидете run.cs50.net 13 00:00:39,700 --> 00:00:43,030 можете да видите, това е във вашия браузър начин да 14 00:00:43,030 --> 00:00:45,940 всъщност код - напишете C код, 15 00:00:45,940 --> 00:00:47,460 и след това да го стартирате, 16 00:00:47,460 --> 00:00:50,960 така че и двамата го съставя, той работи, а след това се връща изхода за вас, 17 00:00:50,960 --> 00:00:53,350 така че това е вид на готин начин да експериментирате 18 00:00:53,350 --> 00:00:56,060 с някои от кода, че Дейвид преминава в лекциите 19 00:00:56,060 --> 00:00:58,640 и даваме върху проблемните комплекти 20 00:00:58,640 --> 00:01:01,900 без да се налага да огън на уреда. 21 00:01:01,900 --> 00:01:04,489 >> Така че, каквото и да Spaces прави, че е различно от това 22 00:01:04,489 --> 00:01:07,450 ако се върнете към този раздел, 23 00:01:07,450 --> 00:01:11,580 Пространства е CS50 план, като виждате тук, 24 00:01:11,580 --> 00:01:15,380 но ако превъртите и погледнете от другата страна на прозореца, 25 00:01:15,380 --> 00:01:18,130 виждате, аз съм единственият човек в това пространство, 26 00:01:18,130 --> 00:01:21,030 но това, което аз ще направя, е да попитате вие ​​да се присъедините към тази пространство с мен 27 00:01:21,030 --> 00:01:24,590 и ние ще стигнем до код по същия малък прозорец, 28 00:01:24,590 --> 00:01:26,070 акции код помежду си, 29 00:01:26,070 --> 00:01:28,900 и да говорим за разликите между нашия код. 30 00:01:28,900 --> 00:01:31,530 Така че това е вид готино нещо - 31 00:01:31,530 --> 00:01:35,770 така че да се присъединят, ако желаете да посетите тази връзка тук на върха 32 00:01:35,770 --> 00:01:38,980 че съм освети, 33 00:01:38,980 --> 00:01:53,860 можете просто да напишете в apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Добре, така да започнем, 35 00:01:56,610 --> 00:01:59,720 Отивам да ви дам малко на този тур. 36 00:01:59,720 --> 00:02:01,720 Ще направим някои глупави малки кодиране с него в началото, 37 00:02:01,720 --> 00:02:06,200 просто така, че всички доста получава усещане за това, което е като 38 00:02:06,200 --> 00:02:09,000 но това, което съм направил - 39 00:02:09,000 --> 00:02:11,830 или това, което аз съм на път да направя точно тук е - 40 00:02:11,830 --> 00:02:13,480 Отивам да взема кода, който съм написал тук, 41 00:02:13,480 --> 00:02:15,800 които, както виждате, в момента е празна; 42 00:02:15,800 --> 00:02:17,090 тя не прави нищо. 43 00:02:17,090 --> 00:02:21,080 Котел табела код, ние ще го наречем. 44 00:02:21,080 --> 00:02:23,820 С малко да направя коментар. 45 00:02:23,820 --> 00:02:27,850 Отивам да го спаси чрез натискането на този бутон Save. 46 00:02:27,850 --> 00:02:30,190 И какво прави 47 00:02:30,190 --> 00:02:34,400 подчерта тук накратко, че преразглеждането освен зеленото поле, 48 00:02:34,400 --> 00:02:37,570 и сега, ако търсите за мен в пространството, 49 00:02:37,570 --> 00:02:40,340 щракнете върху моето име, 50 00:02:40,340 --> 00:02:43,370 можете да видите, че аз имам тази ревизия точно тук, 51 00:02:43,370 --> 00:02:45,490 а ако кликнете на това преразглеждане, 52 00:02:45,490 --> 00:02:48,240 тя ще се зареди този код във вашия Space. 53 00:02:50,510 --> 00:02:54,160 >> Така е всеки зареден този код в тяхното пространство? 54 00:02:54,160 --> 00:02:57,810 Добре, ако все още не сте, отидете напред и да го направя, 55 00:02:57,810 --> 00:03:01,120 и после какво искам вие да се направи в този малък, за да направя раздел 56 00:03:01,120 --> 00:03:05,940 е да напишете малко ФОРМАТ за себе си, 57 00:03:05,940 --> 00:03:08,310 Така например, бих изписал 58 00:03:08,310 --> 00:03:12,270 ФОРМАТ ("Моето име е Нейт"); 59 00:03:15,140 --> 00:03:17,700 и след това щях да напиша 60 00:03:17,700 --> 00:03:21,660 "Аз завърших през 2009 г. 61 00:03:21,660 --> 00:03:24,440 от Станфордския " 62 00:03:26,050 --> 00:03:28,390 и аз бих се радвал да чуе за 63 00:03:28,390 --> 00:03:30,270 коя година сте в училище, 64 00:03:30,270 --> 00:03:33,910 независимо дали сте в колежа или бизнес училище 65 00:03:33,910 --> 00:03:36,130 или друго училище на Харвард, 66 00:03:36,130 --> 00:03:39,200 това, което учи, ако е известен още; 67 00:03:39,200 --> 00:03:41,290 ако това не е известно, това е много готино. 68 00:03:41,290 --> 00:03:45,170 Не се решават, докато бях в края на ми второкурсник година. 69 00:03:46,910 --> 00:03:49,210 и след това бих искал да знам 70 00:03:49,210 --> 00:03:51,610 нещо лудо, което искаш да ми кажеш или 71 00:03:51,610 --> 00:03:54,790 нещо за класа или просто нещо друго. 72 00:03:56,930 --> 00:04:00,370 Когато приключите с писмено, че с малко ФОРМАТ 73 00:04:00,370 --> 00:04:03,480 ако ще спестите преразглеждане или по-скоро 74 00:04:03,480 --> 00:04:06,080 първо се уверете, че можете да я изпълните 75 00:04:06,080 --> 00:04:10,640 и че тя се отпечатва точно това, което искате да отпечатате, 76 00:04:14,050 --> 00:04:16,399 и тогава, ако отидете напред и спести, че преразглеждането 77 00:04:16,399 --> 00:04:21,600 Преглед на бутона Запиши, това първо малко момче тук, 78 00:04:24,080 --> 00:04:27,340 и ние ще доста премине и да направя малко въвеждането по този начин. 79 00:04:27,340 --> 00:04:30,150 Така че просто трябва да натисне бутона за възпроизвеждане, 80 00:04:30,150 --> 00:04:32,550 който е тук в горния ляв ъгъл, 81 00:04:32,550 --> 00:04:35,340 , така че тази пиеса бутон в горния ляв 82 00:04:35,340 --> 00:04:39,050 изпратите код на нашия сървър, където тя получава съставя и след това да изпълните. 83 00:04:40,600 --> 00:04:43,300 Така че това, което е доста луд за това е 84 00:04:43,300 --> 00:04:46,550 този код всъщност не е на вашия компютър; 85 00:04:46,550 --> 00:04:49,290 всъщност се изпращат по Интернет. 86 00:04:49,290 --> 00:04:51,240 >> Как върви, Шарлот? 87 00:04:51,240 --> 00:04:54,810 >> I - добре. Съм - Мисля, че съм 88 00:04:54,810 --> 00:04:57,330 изпитват трудности да го запазите 89 00:04:57,330 --> 00:05:00,530 на сървъра такава, че да може - мога да стартирате програмата. 90 00:05:02,090 --> 00:05:05,780 И тогава, когато се опитам да го стартирате, тя казва, че има грешка. 91 00:05:05,780 --> 00:05:08,850 Обявена като вирус, който вече не е там. 92 00:05:08,850 --> 00:05:11,860 О, нека да видим, може да ви удари Запиши отново? 93 00:05:11,860 --> 00:05:13,770 Аз го виждам на екрана. 94 00:05:13,770 --> 00:05:15,120 >> Точно така, добре, така че това е, което имам. 95 00:05:15,120 --> 00:05:19,430 И аз не знам защо не ми позволява да го стартирате. 96 00:05:22,990 --> 00:05:24,990 О, добре, съжалявам. 97 00:05:27,930 --> 00:05:31,220 Можеш ли да обясниш защо - какво не е наред - това, което не е работил с него? 98 00:05:31,220 --> 00:05:34,760 >> Да, защото аз не виждам, че е имало последния ред, където има все още променлива 99 00:05:34,760 --> 00:05:37,700 , че не е декларирал, което не е имал намерение да е там. 100 00:05:37,700 --> 00:05:38,730 Да, перфектно! 101 00:05:38,730 --> 00:05:40,390 >> Сега, ако аз го спаси, мисля, че тя трябва да работи. 102 00:05:40,390 --> 00:05:42,970 Сега, след като сте го запазили, тя работи; страхотно. 103 00:05:42,970 --> 00:05:44,570 >> Така че да, тъй като ние преминаваме през 104 00:05:44,570 --> 00:05:46,690 така че това, което се случва, 105 00:05:46,690 --> 00:05:49,130 Аз съм просто ще повторя това за камерата. 106 00:05:49,130 --> 00:05:51,760 Това, което се случва, е, че тази променлива е 107 00:05:51,760 --> 00:05:54,310 остана след - Предполагам, че сте изтрили някои други неща 108 00:05:54,310 --> 00:05:56,670 , където са обявени за 109 00:05:56,670 --> 00:05:59,560 и така това е хвърляне неща и не ви позволява да го стартирате. 110 00:05:59,560 --> 00:06:02,540 Така че това е точно това, което искаме да направим в раздел 111 00:06:02,540 --> 00:06:05,690 е да има хора се опитват писане на различни части от код, 112 00:06:05,690 --> 00:06:08,490 съставянето на този списък, да видим какво работи, какво не, 113 00:06:08,490 --> 00:06:10,730 и след това доста се говори за тези неща, защото те са спъване точки 114 00:06:10,730 --> 00:06:12,850 Аз все още срещат, 115 00:06:12,850 --> 00:06:15,470 Аз все още правя много глупави неща през цялото време, 116 00:06:15,470 --> 00:06:17,820 и аз не знам защо тя не работи, 117 00:06:17,820 --> 00:06:22,960 така че нека издърпайте нагоре преразглеждане на Шарлот 3, 118 00:06:23,980 --> 00:06:25,380 и ние ще го изпълним. 119 00:06:25,380 --> 00:06:28,950 >> Така че, когато аз тичам, че сега имам си код тук 120 00:06:28,950 --> 00:06:31,450 Мога да я увеличите, натиснете бутона Run, 121 00:06:31,450 --> 00:06:33,680 качени, то се натрупва, той работи, 122 00:06:33,680 --> 00:06:36,980 казва, че се проведе успешно, и ако превъртете надолу 123 00:06:36,980 --> 00:06:39,440 виж Шарлот е младши Адамс Къща 124 00:06:39,440 --> 00:06:42,720 психология, средно по икономика; страхотно. 125 00:06:42,720 --> 00:06:44,310 Радвам се да се запозная с вас! 126 00:06:44,310 --> 00:06:46,550 Страхотно. 127 00:06:46,550 --> 00:06:49,670 Добре, да преминат, да вървим към Даниел, 128 00:06:49,670 --> 00:06:52,710 отидете на ревизия 3, 129 00:06:52,710 --> 00:06:54,180 съставят, стартирайте; 130 00:06:54,180 --> 00:06:56,680 защо не ни кажете малко за себе си, Даниел? 131 00:06:56,680 --> 00:06:59,380 >> Обадете ми Дан. 132 00:06:59,380 --> 00:07:01,920 Отивам да бизнес училище срещу вас, момчета, 133 00:07:01,920 --> 00:07:05,020 и аз бях в морската пехота преди тук 134 00:07:05,020 --> 00:07:08,020 и всичко това е ново за мен, така че да. 135 00:07:08,020 --> 00:07:11,060 Не се чувствам зле, аз съм на 30 и не знам някое от тези неща. 136 00:07:11,060 --> 00:07:13,800 Страхотно, благодаря, Дан! 137 00:07:13,800 --> 00:07:17,300 Добре, имаме друга Даниел. 138 00:07:17,300 --> 00:07:20,930 Отиваш на Даниел ще си представим, Даниел? 139 00:07:20,930 --> 00:07:22,260 >> >> Разбира се, аз съм Даниел. 140 00:07:22,260 --> 00:07:24,330 Аз съм второкурсник в Mather точно сега. 141 00:07:24,330 --> 00:07:25,840 Аз съм се концентрира върху правителството, 142 00:07:25,840 --> 00:07:28,760 но аз исках да взема CS50, защото съм чувал страхотни отзиви за клас 143 00:07:28,760 --> 00:07:30,750 и аз никога не сте опитвали CS преди. 144 00:07:30,750 --> 00:07:34,680 Превъртете надолу тук и да се покаже - прохладно. 145 00:07:36,330 --> 00:07:39,090 Преместване, Джаред. 146 00:07:39,090 --> 00:07:41,990 Как върви? 147 00:07:41,990 --> 00:07:43,430 >> Добър, как сте? 148 00:07:43,430 --> 00:07:47,520 Както можете да видите, аз съм младши концентратор философия в Елиът, 149 00:07:47,520 --> 00:07:50,260 родом от Южна Калифорния, 150 00:07:50,260 --> 00:07:53,100 и аз съм като CS50, защото ми харесва логиката от него, 151 00:07:53,100 --> 00:07:57,420 и изглежда наистина страхотно да правят неща на компютъра, така че. 152 00:07:57,420 --> 00:07:59,570 Страхотно, където в южната част на Калифорния? 153 00:07:59,570 --> 00:08:02,340 >> За един час от [чува, малък град се чува. 154 00:08:02,340 --> 00:08:04,850 О, да, баща ми е от Redlands. 155 00:08:04,850 --> 00:08:07,060 Готини неща. 156 00:08:07,060 --> 00:08:12,130 >> Добре, Джими, как върви, Джими? 157 00:08:12,130 --> 00:08:15,130 >> Добър, как сте? 158 00:08:15,130 --> 00:08:16,040 Справя доста добре! 159 00:08:16,040 --> 00:08:17,710 Разкажете ни за себе си. 160 00:08:17,710 --> 00:08:20,840 >> Аз съм първокурсник, и аз не съм съвсем сигурен какво съм специалност 161 00:08:20,840 --> 00:08:22,820 но аз съм доста склонност към икономиката. 162 00:08:22,820 --> 00:08:25,680 , Като Даниел преди мен, аз никога не съм правил всеки CS, но това звучи доста хладно. 163 00:08:25,680 --> 00:08:28,120 Аз съм родом от Чикаго. 164 00:08:28,120 --> 00:08:31,640 Страхотно. Така че проверете си разпечатка тук. 165 00:08:31,640 --> 00:08:34,630 Исках да попитам, този печат, както сте очаквали? 166 00:08:34,630 --> 00:08:37,650 >> Не, забравих да отпечатате нов ред. 167 00:08:37,650 --> 00:08:41,270 Аз всъщност забравих, че когато се пише нещо 168 00:08:41,270 --> 00:08:43,090 за първи път. 169 00:08:43,090 --> 00:08:46,330 Това е вид болка, за да се помни, да се сложи ръчно. 170 00:08:46,330 --> 00:08:50,560 Щеше да е хубаво, ако просто знам, че това, което исках. 171 00:08:50,560 --> 00:08:53,630 >> Добре, Кели. 172 00:08:53,630 --> 00:08:56,050 Уау, имаме две Kellys; 2 Даниелс, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Така Kelly - да отида от Кели Рен? 174 00:09:00,490 --> 00:09:03,870 Добре, страхотно. 175 00:09:03,870 --> 00:09:07,270 Или Кели, искам да кажа. 176 00:09:07,270 --> 00:09:10,260 >> Така че, да, така че аз съм Кели. 177 00:09:10,260 --> 00:09:12,930 Аз съм второкурсник в Pfoho. 178 00:09:12,930 --> 00:09:17,000 Имам електронна поща днес, че все още имам 7 седмици, за да обяви концентрацията си, 179 00:09:17,000 --> 00:09:20,940 така че аз се опитвам да не мисля за това, 180 00:09:20,940 --> 00:09:24,090 и аз като печене, и Craisins. 181 00:09:24,090 --> 00:09:29,110 Аз нямам опит с повечето от CS; 182 00:09:29,110 --> 00:09:32,700 Сама се научих как да се изгради уеб сайтове, когато бях много млад, 183 00:09:32,700 --> 00:09:35,750 но мисля, че най-вероятно научи себе си погрешно много пъти. 184 00:09:35,750 --> 00:09:39,260 Надявам се, че ще научите малко повече 185 00:09:39,260 --> 00:09:41,450 и - да. 186 00:09:41,450 --> 00:09:44,100 >> Страхотно, добре, благодаря ви. 187 00:09:44,100 --> 00:09:47,190 Нека отидем в другата Кели; 188 00:09:47,190 --> 00:09:48,880 Аз нямам нищо - каза ли нещо тук? 189 00:09:48,880 --> 00:09:51,880 >> Чува] 190 00:09:51,880 --> 00:09:56,180 Ето това е! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Добре, така че аз съм Кели. 193 00:10:01,400 --> 00:10:03,980 Аз съм първа година студент. 194 00:10:03,980 --> 00:10:05,560 Аз съм специалност "Mind, мозъка и образованието. 195 00:10:05,560 --> 00:10:07,940 Завършил съм в Franklin & Marshall College през 2008 г. 196 00:10:07,940 --> 00:10:10,840 със специалности по психология и социология 197 00:10:10,840 --> 00:10:13,120 и незначително на френски език. 198 00:10:13,120 --> 00:10:15,330 Взимам CS50 199 00:10:15,330 --> 00:10:18,080 защото аз съм се интересуват от получаване на докторска степен в областта на неврологията 200 00:10:18,080 --> 00:10:21,220 и аз се чувствам като това ще ми помогне да разбера технологии, които се използват. 201 00:10:21,220 --> 00:10:23,150 Страхотно. 202 00:10:26,980 --> 00:10:29,390 Преместване, Микаела. 203 00:10:29,390 --> 00:10:31,640 Е, че правилното произношение? 204 00:10:31,640 --> 00:10:32,990 Добре, страхотно. 205 00:10:32,990 --> 00:10:34,640 >> >> Аз съм Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Съм второкурсник в Kirkland House, 207 00:10:36,870 --> 00:10:39,950 и аз съм се концентрира в машиностроенето. 208 00:10:39,950 --> 00:10:43,180 Аз наистина харесвам колоездене, построен наем това лято. 209 00:10:43,180 --> 00:10:46,140 Аз съм като CS, всъщност, 210 00:10:46,140 --> 00:10:48,350 като изискване за концентрация, 211 00:10:48,350 --> 00:10:52,550 но знаеш ли, мисля, че все още е готино нещо на инженерната клас. 212 00:10:52,550 --> 00:10:55,150 Страхотно сте построили под наем това лято? 213 00:10:55,150 --> 00:10:56,730 >> Да. 214 00:10:56,730 --> 00:10:58,900 Уау, като рамката и всичко това? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (положителен). 216 00:11:00,120 --> 00:11:01,530 Уау, това е наистина страхотно. 217 00:11:01,530 --> 00:11:06,370 >> Чува извън камерата чат] 218 00:11:06,370 --> 00:11:10,000 [Смях] 219 00:11:12,640 --> 00:11:14,200 Да, това е било толкова дълго време. 220 00:11:14,200 --> 00:11:16,730 Човек никога не знае, нали? 221 00:11:16,730 --> 00:11:19,420 Е, хладно и благодарение, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Добре, Миси. 223 00:11:21,390 --> 00:11:23,280 >> Моето име Миси, аз съм първокурсник, 224 00:11:23,280 --> 00:11:25,500 така че това означава, че аз не знам нищо! 225 00:11:25,500 --> 00:11:29,180 Искам да се концентрира по астрофизика. 226 00:11:29,180 --> 00:11:31,220 В CS50, 227 00:11:31,220 --> 00:11:33,350 Имам чувството, че определено ще помогне с това. 228 00:11:33,350 --> 00:11:37,750 Странен факт за мен е, че съм национално заверен пожарникар. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Как се случи това? 231 00:11:42,440 --> 00:11:45,570 >> Присъствах академия 232 00:11:45,570 --> 00:11:49,000 и премина през ада за много седмици 233 00:11:49,000 --> 00:11:51,200 и имам сертифициране. 234 00:11:51,200 --> 00:11:54,090 Уау, поздравления! 235 00:11:54,090 --> 00:11:57,280 Това не е малко постижение, със сигурност. 236 00:11:57,280 --> 00:11:59,070 Добре, сега ще ми направиш. 237 00:11:59,070 --> 00:12:01,290 Аз съм следващата в редицата. 238 00:12:01,290 --> 00:12:04,510 Съм го стартирате. 239 00:12:04,510 --> 00:12:07,580 >> Така че моето име е Нейт. 240 00:12:07,580 --> 00:12:11,160 Бях випуск 2009 в Станфорд. 241 00:12:11,160 --> 00:12:13,840 Бях основните символни системи 242 00:12:13,840 --> 00:12:17,370 , който е подобен Mind, Brain, Behavior концентрация тук, 243 00:12:17,370 --> 00:12:19,300 но това е вид на комбинация от 244 00:12:19,300 --> 00:12:22,350 компютърни науки, лингвистика, психология и философия. 245 00:12:22,350 --> 00:12:26,600 Вид - Да, много странни неща, но беше страхотно, 246 00:12:26,600 --> 00:12:29,880 и след това, което направих на господаря ми по компютърни науки, както добре. 247 00:12:29,880 --> 00:12:33,250 Така че аз съм нов в Харвард през тази година. 248 00:12:33,250 --> 00:12:35,750 Аз наистина исках да се получи в процеса на преподаване. 249 00:12:35,750 --> 00:12:39,860 Прекарах последните 4 години в Станфорд TA-Наука компютърни класове 250 00:12:39,860 --> 00:12:43,370 и така Дейвид позволи ми да дойда на 251 00:12:43,370 --> 00:12:45,550 и аз ще се помага с CS50, 252 00:12:45,550 --> 00:12:47,890 така правя с това през цялото време, аз не съм в училище град. 253 00:12:47,890 --> 00:12:50,330 Това е било забавно. 254 00:12:50,330 --> 00:12:53,130 Надяваме се, че ще продължи да бъде забавно, аз съм сигурен, че ще. 255 00:12:53,130 --> 00:12:56,040 >> Добре, Сам. 256 00:13:01,910 --> 00:13:05,470 >> Моето име е Сам, аз съм второкурсник в колежа, законът изрично. 257 00:13:05,470 --> 00:13:10,110 Моята специалност ще бъде историята на науката, вероятно и Ves средно, 258 00:13:10,110 --> 00:13:13,240 и любимият ми цвят е жълт. 259 00:13:18,790 --> 00:13:21,100 Не е необходимо да се произнася или нещо, но това е един добър цвят! 260 00:13:21,100 --> 00:13:24,780 И Стела. 261 00:13:24,780 --> 00:13:26,980 >> Здравейте, аз съм Стела, аз съм първокурсник в Grays. 262 00:13:26,980 --> 00:13:30,070 Аз нямам представа какво съм съсредоточена в още 263 00:13:30,070 --> 00:13:32,500 така CS50 е просто вид на случаен принцип, 264 00:13:32,500 --> 00:13:34,220 което е интересно. 265 00:13:34,220 --> 00:13:36,080 Fun Всъщност, Джими беше пръв приятел на Харвард мой, 266 00:13:36,080 --> 00:13:38,360 защото и двамата сме от Чикаго. 267 00:13:38,360 --> 00:13:42,450 Охлажда се и Грейс - това е трябвало да бъде наистина хубаво, нали? 268 00:13:42,450 --> 00:13:45,220 >> Мислех, че се чува]. 269 00:13:45,220 --> 00:13:46,690 О, да. 270 00:13:46,690 --> 00:13:51,210 [Не се чува / извън камерата чат] 271 00:13:51,210 --> 00:13:54,420 Добре, аз съм все още се учат, все още се уча. 272 00:13:54,420 --> 00:13:57,800 >> Така че ние имаме нещо друго, което е нещо интересно тук. 273 00:13:59,600 --> 00:14:02,870 Да, аз просто се питам, имате ли идея, която става тук? 274 00:14:02,870 --> 00:14:05,890 Знаеш ли как да се тълкува това? 275 00:14:05,890 --> 00:14:13,340 >> I е трябвало да се постави точка и запетая след всеки един ред. 276 00:14:13,340 --> 00:14:16,370 Това е вид болка. 277 00:14:16,370 --> 00:14:19,100 Понякога тези точка и запетая може да бъде истинска болка, за да се проследят. 278 00:14:19,100 --> 00:14:21,420 Така се оказва, че 279 00:14:21,420 --> 00:14:22,820 специална програма, ние използваме тази година, за да 280 00:14:22,820 --> 00:14:26,670 съставят нашия C код се нарича звъня, 281 00:14:26,670 --> 00:14:29,460 и причината да са започнали да използват звъня тази година - 282 00:14:29,460 --> 00:14:32,030 защото не сме използвали тази програма в миналото; 283 00:14:32,030 --> 00:14:35,710 ние сме използвали още един наречен GCC, който е много популярен - 284 00:14:35,710 --> 00:14:38,420 Звъня всъщност ви дава съобщения за грешки, които имат смисъл. 285 00:14:38,420 --> 00:14:41,420 Това казва: "очаква", "след изразяване", 286 00:14:41,420 --> 00:14:45,260 и дори ви разказва израз, след което се нуждаеше от точка и запетая. 287 00:14:45,260 --> 00:14:47,830 Така са го поправя? 288 00:14:47,830 --> 00:14:48,930 >> Да, точно сега. 289 00:14:48,930 --> 00:14:52,040 Awesome, да ме уведомите и ние ще го издърпайте нагоре, и ние ще го изпълним. 290 00:14:52,040 --> 00:14:55,830 Но да, въвеждането на тези точка и запетая е вид болка. 291 00:14:55,830 --> 00:14:59,580 >> Аз го поправя, така че аз мисля, че тя трябва да работи. 292 00:14:59,580 --> 00:15:02,760 Страхотно - ревизия 3. 293 00:15:02,760 --> 00:15:05,250 Това прилича на него. 294 00:15:05,250 --> 00:15:08,580 Добре, сега, ако го изпълним, 295 00:15:08,580 --> 00:15:11,020 там тя отива. 296 00:15:11,020 --> 00:15:13,830 Готини неща. 297 00:15:13,830 --> 00:15:15,340 >> Добре. 298 00:15:15,340 --> 00:15:18,230 Така че благодаря за това. 299 00:15:18,230 --> 00:15:20,210 Това е страхотно да се срещнем момчета. 300 00:15:20,210 --> 00:15:22,880 Какво ще правим сега, е да прекара малко 301 00:15:22,880 --> 00:15:24,740 доста гмуркане в секцията проблеми 302 00:15:24,740 --> 00:15:27,550 които идват от проблема, от тази седмица 303 00:15:27,550 --> 00:15:29,920 и ние ще направим това за по-голямата част от секциите 304 00:15:29,920 --> 00:15:32,110 за остатъка от срока, 305 00:15:32,110 --> 00:15:35,580 и след това ще спести последните 15, 20 минути, или така 306 00:15:35,580 --> 00:15:38,490 да се говори за проблема си постави 307 00:15:38,490 --> 00:15:41,420 и всякакви други въпроси, които имате като цяло за класа. 308 00:15:43,380 --> 00:15:45,670 Това каза, това, което наистина искам да направя 309 00:15:45,670 --> 00:15:49,390 са всички участващи 310 00:15:49,390 --> 00:15:51,500 използване на пространства неща, 311 00:15:51,500 --> 00:15:53,500 хвърляне в кода, хвърлят в предложения, 312 00:15:53,500 --> 00:15:56,500 и говорим за това, когато нещата като тази почивка 313 00:15:56,500 --> 00:15:58,360 или не работят, просто защото това са неща, които 314 00:15:58,360 --> 00:16:00,870 Знам, че се натъкнах 315 00:16:00,870 --> 00:16:03,180 , когато започнах кодиране, 316 00:16:03,180 --> 00:16:05,490 и бяха наистина доста разочароващо на моменти 317 00:16:05,490 --> 00:16:08,690 защото ако това е като 2 часа преди вашия проблем се дължи 318 00:16:08,690 --> 00:16:11,330 - само за разкриване, 319 00:16:11,330 --> 00:16:14,590 Аз не започнете програмирането, докато бях второкурсник в колежа. 320 00:16:14,590 --> 00:16:17,360 Това е вид на това странно, непознато нещо 321 00:16:17,360 --> 00:16:20,360 , която чух, беше доста хладно 322 00:16:20,360 --> 00:16:23,590 и аз също чух, че може да бъде истинска болка в задника 323 00:16:23,590 --> 00:16:27,610 ако сте пропуснали една точка и запетая и това е единствената грешка запазване на програма от работа 324 00:16:27,610 --> 00:16:30,890 и Ви помага да заспя, 325 00:16:30,890 --> 00:16:32,650 така категорично, 326 00:16:32,650 --> 00:16:34,020 ако имате подобни въпроси, 327 00:16:34,020 --> 00:16:37,060 ако имате притеснения като това, нека да знаят, 328 00:16:37,060 --> 00:16:40,050 защото искам да направя това е добър опит за вас, момчета. 329 00:16:40,050 --> 00:16:44,620 >> Така че бяхте всички изтеглени проблема, все още? 330 00:16:44,620 --> 00:16:47,160 Малко знам къде е тя? Добре. 331 00:16:47,160 --> 00:16:51,490 Така че ние ще отидем да cs50.net, защото аз не разполагат с него по тази сметка, 332 00:16:51,490 --> 00:16:54,110 издърпайте нагоре проблемните комплекти, 333 00:16:54,110 --> 00:16:57,940 издърпайте нагоре проблем набор две, и ние ще разгледаме днес в стандартното издание. 334 00:16:57,940 --> 00:17:01,190 Ще спра спецификацията тук. 335 00:17:02,640 --> 00:17:04,420 Превъртете надолу. 336 00:17:06,790 --> 00:17:11,109 Така че ние ще започнат да търсят в този раздел на въпроси. 337 00:17:14,069 --> 00:17:16,710 Вие гледания тези шорти? 338 00:17:16,710 --> 00:17:18,329 Добре. 339 00:17:18,329 --> 00:17:21,329 Така че има шорти на вериги, 340 00:17:21,329 --> 00:17:24,700 която се извършва от Томи, един от стипендиантите на главата на преподаване. 341 00:17:24,700 --> 00:17:27,230 Има един на обхвата, 342 00:17:27,230 --> 00:17:30,530 Вярвам, че от друго учение човек на име Дейвид 343 00:17:30,530 --> 00:17:33,400 и след това на Цезар Cipher направено от Дейвид. 344 00:17:33,400 --> 00:17:35,550 Те са много готино. 345 00:17:35,550 --> 00:17:37,770 Бяхте гледат техните шорти досега? 346 00:17:37,770 --> 00:17:39,270 How've те? 347 00:17:39,270 --> 00:17:41,490 Бяха полезни? Добре, добре да се знае. 348 00:17:41,490 --> 00:17:44,210 Ако не сте, може да се каже така. 349 00:17:46,290 --> 00:17:49,870 Но преди да го направите, 350 00:17:49,870 --> 00:17:52,600 вие погледнете на тези въпроси 351 00:17:52,600 --> 00:17:55,430 изобщо? 352 00:17:55,430 --> 00:17:57,480 >> Нека поговорим за това малко. 353 00:17:57,480 --> 00:18:00,600 Така че ние въведохме през последните няколко седмици 354 00:18:00,600 --> 00:18:02,480 в лекцията 355 00:18:02,480 --> 00:18:04,910 брой на различни вериги. 356 00:18:04,910 --> 00:18:06,140 Има линия 357 00:18:06,140 --> 00:18:09,570 по време на цикъла и след това направи линия, докато 358 00:18:09,570 --> 00:18:13,100 и в лекцията, ние говорим много за 359 00:18:13,100 --> 00:18:16,010 как тези вериги са 360 00:18:16,010 --> 00:18:18,320 доста сходни в много отношения, 361 00:18:18,320 --> 00:18:21,210 и можете да направите много от същите неща с линия, докато 362 00:18:21,210 --> 00:18:23,260 че можете с цел цикъл. 363 00:18:23,260 --> 00:18:26,300 Просто трябва да използвате правилните комбинации от променливи и такива. 364 00:18:26,300 --> 00:18:28,680 и така наистина 365 00:18:28,680 --> 00:18:31,200 реална разлика между всички на примките е, че 366 00:18:31,200 --> 00:18:33,620 понякога те са по-полезни 367 00:18:33,620 --> 00:18:36,930 да ги използват по едно време, отколкото по друго време. 368 00:18:36,930 --> 00:18:39,340 >> Така например, 369 00:18:39,340 --> 00:18:42,260 линия, докато се различава от направи линия, докато. 370 00:18:42,260 --> 00:18:45,680 Ли всички да се чувстват като те имат добра дръжка, когато 371 00:18:45,680 --> 00:18:48,650 направи линия, докато е по- 372 00:18:48,650 --> 00:18:50,990 полезно или каква е разликата? 373 00:18:50,990 --> 00:18:53,410 >> Мисля, че разликата е направи линия, докато 374 00:18:53,410 --> 00:18:56,960 писти - Не знам точно това, което е терминологията, 375 00:18:56,960 --> 00:18:59,750 но серия от функциите в рамките на цикъла. 376 00:18:59,750 --> 00:19:02,020 Те автоматично го прави на пистата най-малко 377 00:19:02,020 --> 00:19:05,390 преди да го проверява състоянието или цикъл, докато само ще го стартирате, когато 378 00:19:05,390 --> 00:19:08,290 непрекъснато работи - без значение дали са изпълнени условието е. 379 00:19:08,290 --> 00:19:11,010 Да, не, че има смисъл? 380 00:19:11,010 --> 00:19:14,200 >> Нека да разгледаме най-малко код. 381 00:19:14,200 --> 00:19:16,930 Така че просто да повтори въпроса, 382 00:19:16,930 --> 00:19:19,230 или отговор, а 383 00:19:19,230 --> 00:19:22,050 Отговорът беше, че 384 00:19:22,050 --> 00:19:25,850 цикъл, докато ще провери, ако условието 385 00:19:25,850 --> 00:19:27,440 , които сте задали е изпълнено 386 00:19:27,440 --> 00:19:31,320 , преди да проникват в тялото на цикъла за първи път, 387 00:19:31,320 --> 00:19:35,000 като има предвид, че не се прави, докато цикълът ще се стартира автоматично на тялото на цикъла, 388 00:19:35,000 --> 00:19:38,450 е това, което ние го наричаме - това е странно терминология, 389 00:19:38,450 --> 00:19:41,460 но ако някога съм казвал нещо, което няма смисъл, нека да знаят - 390 00:19:41,460 --> 00:19:45,360 контур тялото е, че неща, които ще ви постави в между фигурни скоби. 391 00:19:45,360 --> 00:19:47,840 Направи линия, докато, 392 00:19:47,840 --> 00:19:50,220 тялото си да се изпълнява поне веднъж, 393 00:19:50,220 --> 00:19:54,460 и след това условие, получава проверени преди тя работи всеки следващ път. 394 00:19:54,460 --> 00:19:56,580 >> Така че всъщност, Сам, 395 00:19:56,580 --> 00:20:00,820 Имаш ли нещо против написването на прост линия, докато 396 00:20:00,820 --> 00:20:02,840 в пространства? 397 00:20:02,840 --> 00:20:05,600 >> Как ли нещо като 398 00:20:05,600 --> 00:20:07,060 направи нов ...? 399 00:20:07,060 --> 00:20:09,220 Просто да изтриете каквото имате там. 400 00:20:09,220 --> 00:20:11,300 Да, ясно. 401 00:20:11,300 --> 00:20:14,510 >> Е, аз вярвам, че съм с този - 402 00:20:14,510 --> 00:20:16,640 кой искате, а, или искаш ...? 403 00:20:16,640 --> 00:20:19,350 Да, просто се малко вярно, отпечатайте нещо. 404 00:20:21,050 --> 00:20:23,140 И нека видим. 405 00:20:23,140 --> 00:20:25,850 Александър, аз осъзнах, че никога няма да въведе. 406 00:20:25,850 --> 00:20:27,510 >> О, това е добре. 407 00:20:27,510 --> 00:20:30,760 Ли - може да кодира направи линия, докато за нас? 408 00:20:30,760 --> 00:20:32,520 >> Да, ще опитам. 409 00:20:32,520 --> 00:20:34,370 Добре, ние просто ще дръпнете тези на екрана, 410 00:20:34,370 --> 00:20:38,240 така че някак си да контролираме какви са разликите. 411 00:20:38,240 --> 00:20:41,280 >> Така че тук е това, което Сам е направил. 412 00:20:41,280 --> 00:20:44,460 Той има цяло число, наречено аз 413 00:20:44,460 --> 00:20:47,480 че той е инициализиран до 17. 414 00:20:47,480 --> 00:20:51,570 Тогава той казва, докато (INT I = 17) 415 00:20:51,570 --> 00:20:54,230 ФОРМАТ ("Моето име е Сам."); 416 00:20:54,230 --> 00:20:57,300 Така че това, което се случва, когато стартирате този код? 417 00:20:57,300 --> 00:21:00,340 Има грешка; какво прави грешката? 418 00:21:00,340 --> 00:21:02,890 Нека си го издърпайте нагоре и да говоря за това. 419 00:21:02,890 --> 00:21:05,040 Възникна грешка, тя казва. 420 00:21:05,040 --> 00:21:07,400 Нека превъртете надолу. 421 00:21:07,400 --> 00:21:09,460 Така че ни даде тази грешка, и тя каза, 422 00:21:09,460 --> 00:21:12,690 "Хей, аз се очакваше израз". 423 00:21:12,690 --> 00:21:16,180 Това е доста загадъчно. 424 00:21:19,160 --> 00:21:23,140 Да, точно - и отново, 425 00:21:23,140 --> 00:21:27,140 ще има още една малка грешка, която ние ще хване само една секунда. 426 00:21:27,140 --> 00:21:31,800 Но това е още една от такива странни терминология неща, 427 00:21:31,800 --> 00:21:36,150 така че това Int I = 17 428 00:21:36,150 --> 00:21:39,290 не е израз. 429 00:21:39,290 --> 00:21:41,220 Как изглежда тя прави е, че е 430 00:21:41,220 --> 00:21:43,410 обявяване цяло число Обадих 431 00:21:43,410 --> 00:21:45,540 и то, за да е равна на 17 432 00:21:45,540 --> 00:21:48,780 или по-скоро, поставяйки 17 в тази вътр съм се обаждал. 433 00:21:50,560 --> 00:21:53,350 И това няма смисъл 434 00:21:53,350 --> 00:21:55,790 в контекста на това, докато контур. 435 00:21:55,790 --> 00:21:58,190 Това няма смисъл, както ще видим, 436 00:21:58,190 --> 00:22:01,250 в контекста на цикъл, защото за контур декларации се започне 437 00:22:01,250 --> 00:22:05,800 с това, за вътр аз се равнява на нещо 438 00:22:05,800 --> 00:22:07,830 и по-нататък. 439 00:22:07,830 --> 00:22:09,500 >> Така че - 440 00:22:09,500 --> 00:22:12,630 поправите нещо, нали. 441 00:22:12,630 --> 00:22:15,270 Here It Goes; страхотно. 442 00:22:15,270 --> 00:22:17,920 Така че сега нещата изглеждат малко по-различно. 443 00:22:17,920 --> 00:22:19,030 Няколко неща са се променили. 444 00:22:19,030 --> 00:22:21,300 Може ли да ни кажете какви неща са се променили? 445 00:22:21,300 --> 00:22:24,950 >> Извадих вътр, така че няма декларация чува вместо задача. 446 00:22:24,950 --> 00:22:28,770 Един знак за равенство, сложих две еднакви знаци, което означава, че се равнява. 447 00:22:28,770 --> 00:22:30,560 Страхотно. 448 00:22:30,560 --> 00:22:33,320 Да, и какво от това Сам пък бе той извади на вътр 449 00:22:33,320 --> 00:22:35,770 това беше тук по-рано, 450 00:22:35,770 --> 00:22:39,340 така че, ако просто погледнете това - това е това, което беше по-рано, се казва в ПНА, 451 00:22:39,340 --> 00:22:41,970 която го обявява - така че ние извади тип. 452 00:22:41,970 --> 00:22:44,710 Има ПНА, Чар, низ, кратко, 453 00:22:44,710 --> 00:22:47,380 тези, които се наричат ​​видове. 454 00:22:47,380 --> 00:22:49,510 Така че извади тип 455 00:22:49,510 --> 00:22:51,580 и след това по-рано, 456 00:22:51,580 --> 00:22:54,190 Той току-що сингъл знак за равенство 457 00:22:54,190 --> 00:22:57,300 и това, което той казва, е проблематично за това е 458 00:22:57,300 --> 00:22:59,580 , когато имате един знак за равенство, 459 00:22:59,580 --> 00:23:01,780 това е оператор за присвояване. 460 00:23:01,780 --> 00:23:04,930 Това не е тестване дали или не две неща са равни. 461 00:23:04,930 --> 00:23:07,920 Това е всъщност създаването нещо равно на нещо. 462 00:23:07,920 --> 00:23:11,110 Спретваш номер 17 в променливата I. 463 00:23:11,110 --> 00:23:13,850 Така че, за да се направи този вид сравнение, 464 00:23:13,850 --> 00:23:16,430 трябва да се използва два пъти равен, 465 00:23:16,430 --> 00:23:19,640 , което е един вид на странно нещо 466 00:23:19,640 --> 00:23:22,760 но е доста често срещана грешка. 467 00:23:23,980 --> 00:23:27,830 Така че едно друго нещо, аз ще посоча, ако нямате нищо против, 468 00:23:27,830 --> 00:23:30,610 е, че в 469 00:23:30,610 --> 00:23:33,210 нашата функция в INT главната 470 00:23:33,210 --> 00:23:36,740 ще видите, че тялото на нашата функция 471 00:23:36,740 --> 00:23:39,810 се компенсира от лявата страна 472 00:23:39,810 --> 00:23:42,400 от четири пространства или табулация. 473 00:23:42,400 --> 00:23:44,730 Причината правим това 474 00:23:44,730 --> 00:23:47,000 е само за четивността. 475 00:23:47,000 --> 00:23:51,620 Както можете да видите тук, в линия, докато Сам 476 00:23:51,620 --> 00:23:53,120 той не е тире изобщо, 477 00:23:53,120 --> 00:23:55,390 и това не се отразява на функционалността на кода. 478 00:23:55,390 --> 00:23:57,860 Тя ще продължи точно същото. 479 00:23:57,860 --> 00:24:00,950 >> Така например, ако отидем до върха тук 480 00:24:00,950 --> 00:24:02,680 и натиснете бутона за възпроизвеждане, ще го строят, 481 00:24:02,680 --> 00:24:04,470 че ще го изпълним, 482 00:24:04,470 --> 00:24:06,700 и какво ще се случи? 483 00:24:06,700 --> 00:24:08,360 Защо все още твърдят, че работи? 484 00:24:08,360 --> 00:24:10,560 >> Защото това ще продължаваме да повтаря здрасти. 485 00:24:10,560 --> 00:24:12,900 Точно така, и защо го повтаряха здрасти? 486 00:24:12,900 --> 00:24:15,850 >> Защото целочислени никога не се променя, така че винаги е 17. 487 00:24:15,850 --> 00:24:18,030 Да, точно така 488 00:24:18,030 --> 00:24:20,970 нека да видим, след като ми напомня на името си отново? 489 00:24:20,970 --> 00:24:24,020 Джими. Така че Джими каза, че 490 00:24:24,020 --> 00:24:27,340 Причината за това продължава да се повтаря Здравейте отново и отново 491 00:24:27,340 --> 00:24:30,510 е така, защото това състояние винаги е вярно. 492 00:24:30,510 --> 00:24:33,270 Ние никога не се променят стойността на I. 493 00:24:33,270 --> 00:24:36,170 Ние никога не се променят съдържанието на това, което се съхранява в тази променлива. 494 00:24:36,170 --> 00:24:39,180 Така че в този момент е появила тази грешка, че 495 00:24:39,180 --> 00:24:42,170 вашата програма генерира прекалено много продукция, 496 00:24:42,170 --> 00:24:45,100 и ако ние превъртете надолу и вид погледнете какво става тук, 497 00:24:45,100 --> 00:24:49,160 можете да видите, че е здравей, здравей, здравей, здравей, здравей, здравей, здравей през целия път. 498 00:24:49,160 --> 00:24:51,200 Страхотно. 499 00:24:51,200 --> 00:24:53,750 >> Така вид обратно към отправната точка 500 00:24:53,750 --> 00:24:57,020 че има вдлъбнатина тук 501 00:24:57,020 --> 00:25:00,110 в тялото на линия, докато не засегне нищо. 502 00:25:00,110 --> 00:25:03,050 Програмата все още се завтече добре. 503 00:25:03,050 --> 00:25:06,790 Типично за добър стил - 504 00:25:06,790 --> 00:25:10,210 и това е нещо, което търсим в проблемните комплекти - 505 00:25:10,210 --> 00:25:13,930 Ви молим да тире от четири помещения, които можете да направите 506 00:25:13,930 --> 00:25:16,440 само с натискане на клавиша за табулатор 507 00:25:16,440 --> 00:25:18,860 или чрез ръчно пускане в четири пространства себе си. 508 00:25:21,880 --> 00:25:25,050 Охлажда се, добре така че нека се върнем и да погледнем 509 00:25:25,050 --> 00:25:30,460 Александър направи, докато. 510 00:25:30,460 --> 00:25:32,980 >> Просто доста малко неприятности. 511 00:25:32,980 --> 00:25:34,390 Добре, нека да работим през него. 512 00:25:34,390 --> 00:25:36,400 Е ли страхотно? 513 00:25:36,400 --> 00:25:37,430 >> Да. 514 00:25:37,430 --> 00:25:39,200 >> Добре, така че тук ние тръгваме. 515 00:25:39,200 --> 00:25:41,010 Това е кодът, че Александър е написал. 516 00:25:41,010 --> 00:25:43,410 Ходите ли на Алекс - добре. 517 00:25:43,410 --> 00:25:46,380 Така че тук е, че Алекс е написал код. 518 00:25:46,380 --> 00:25:50,500 Така че, ние имаме нашата декларация на основните точно тук, 519 00:25:50,500 --> 00:25:54,410 и тогава ще имам тази целочислена променлива Обадих 520 00:25:54,410 --> 00:25:57,320 да бъде обявен точно тук. 521 00:25:57,320 --> 00:26:01,060 Имаме направи изявление 522 00:26:01,060 --> 00:26:04,600 и след това тялото отново с тези скоби, 523 00:26:04,600 --> 00:26:06,520 така че това е тялото на направи, докато - 524 00:26:06,520 --> 00:26:09,210 нека ми я увеличите по този въпрос, така че е по-разбираеми - 525 00:26:09,210 --> 00:26:12,730 и в тялото, ние се опитвате да отпечатате "това е тялото", 526 00:26:12,730 --> 00:26:14,300 + +, 527 00:26:14,300 --> 00:26:17,710 да увеличите съдържанието на I и ще направим това 528 00:26:17,710 --> 00:26:19,470 докато не стане да бъде 3, 529 00:26:19,470 --> 00:26:22,440 и след това нашата програма свършва. 530 00:26:22,440 --> 00:26:24,680 >> Така че това, което се случва, когато стартирате тази програма? 531 00:26:24,680 --> 00:26:27,580 >> Очаквах идентификатор. 532 00:26:27,580 --> 00:26:32,070 Добре, изграждане, експлоатация, възниква грешка. 533 00:26:32,070 --> 00:26:34,820 Какво се случва? 534 00:26:34,820 --> 00:26:37,060 Превъртете надолу, 535 00:26:37,060 --> 00:26:40,260 получаваме това до известна степен загадъчен търсите нещо, 536 00:26:40,260 --> 00:26:43,930 точка и запетая след най-високо ниво декларация. 537 00:26:43,930 --> 00:26:46,620 Това е доста странно. 538 00:26:46,620 --> 00:26:50,990 Някой има ли представа на какво може да се случва? 539 00:26:53,080 --> 00:26:54,640 Малко е странно, да. 540 00:26:54,640 --> 00:26:57,640 >> Чува да бъде обявена извън скобите? 541 00:26:57,640 --> 00:27:03,480 Така че не се прилага тогава, когато използвате скоби? 542 00:27:03,480 --> 00:27:07,390 Така той обявява този човек извън от които скоби? 543 00:27:09,670 --> 00:27:12,240 О, тези момчета - фигурни скоби? 544 00:27:12,240 --> 00:27:13,850 >> Да. 545 00:27:13,850 --> 00:27:15,310 Да, точно така. 546 00:27:15,310 --> 00:27:17,120 Така се оказва, че 547 00:27:17,120 --> 00:27:21,550 не можете да декларирате променлива тук по този начин. 548 00:27:23,750 --> 00:27:26,690 Какво може да се опитвам да направя е - 549 00:27:26,690 --> 00:27:30,110 го отрежете от там - 550 00:27:30,110 --> 00:27:34,330 можете да го поставите в рамките на фигурните скоби тук 551 00:27:34,330 --> 00:27:37,400 или друга алтернатива 552 00:27:37,400 --> 00:27:40,350 е да го поставите напълно извън. 553 00:27:42,480 --> 00:27:46,610 И така, те - в зависимост от това къде действително пуснати декларация 554 00:27:46,610 --> 00:27:48,550 на тази целочислена променлива, 555 00:27:48,550 --> 00:27:53,540 можете да получите две много различни видове променливи; 556 00:27:53,540 --> 00:27:55,100 , когато е извън основната, 557 00:27:55,100 --> 00:27:58,240 това е, което ние наричаме глобална променлива. 558 00:27:58,240 --> 00:28:00,070 Това е извън обхвата на някоя от функциите - 559 00:28:00,070 --> 00:28:03,420 това не е в рамките на функция - 560 00:28:03,420 --> 00:28:07,050 като има предвид, че ако го сложат на основната, 561 00:28:07,050 --> 00:28:10,000 искал точно тук, а след това тя се нарича локална променлива, 562 00:28:10,000 --> 00:28:13,830 защото това е местно, така и обхвата на основния. 563 00:28:13,830 --> 00:28:16,720 И ние ще говорим малко повече за това, какви са разликите 564 00:28:16,720 --> 00:28:20,970 между два вида и защо да използвате различни видове променливи, 565 00:28:20,970 --> 00:28:23,040 но за сега, 566 00:28:23,040 --> 00:28:25,070 може просто да запази местната всички променливи, 567 00:28:25,070 --> 00:28:28,320 защото ние нямаме никаква нужда от глобални променливи. 568 00:28:28,320 --> 00:28:31,390 >> Добре, така че това е едно нещо точно там. 569 00:28:31,390 --> 00:28:34,680 Да пуснете отново, да видим какво ще стане. 570 00:28:37,420 --> 00:28:40,270 Run, получават още една грешка. 571 00:28:40,270 --> 00:28:43,320 Увеличи малко, какво ще получа? 572 00:28:45,110 --> 00:28:50,000 Ние се очаква скоби след / а. 573 00:28:53,660 --> 00:28:55,260 Някакви идеи какво става? Дан? 574 00:28:55,260 --> 00:28:58,880 >> А след това скоба и след това - 575 00:28:58,880 --> 00:29:01,990 Аз не знам, ако трябва да redeclare вътр, 576 00:29:01,990 --> 00:29:04,980 но време (I <3). 577 00:29:04,980 --> 00:29:06,930 Точно така, да. 578 00:29:06,930 --> 00:29:08,830 Така се оказва, че Дан е точно така. 579 00:29:08,830 --> 00:29:11,230 Ние не трябва да се сложи този тип тук отново. 580 00:29:11,230 --> 00:29:14,440 Ние може вместо това да убие тип 581 00:29:14,440 --> 00:29:17,220 и просто правя това. 582 00:29:19,270 --> 00:29:21,640 Добре. 583 00:29:21,640 --> 00:29:24,950 Ще я увеличите обратно, опитайте още веднъж. 584 00:29:26,360 --> 00:29:29,580 Виж това, тя работи успешно. 585 00:29:29,580 --> 00:29:33,260 Ако ние превъртете надолу, това е тялото ", отпечатан от три пъти. 586 00:29:33,260 --> 00:29:35,820 Това е доста сладък. 587 00:29:35,820 --> 00:29:38,670 Браво, браво, момчета. 588 00:29:38,670 --> 00:29:41,080 Браво. 589 00:29:41,080 --> 00:29:43,250 Как ще досега? 590 00:29:43,250 --> 00:29:46,200 Достоен крачка? 591 00:29:46,200 --> 00:29:49,200 Добре, готин. 592 00:29:49,200 --> 00:29:52,590 >> Така, както ние вид на гърба на първоначалния въпрос, 593 00:29:52,590 --> 00:29:55,430 ние - и сега, ако ние виждаме разликата, 594 00:29:55,430 --> 00:29:58,240 ще видите, че в това направи линия, докато, 595 00:29:58,240 --> 00:30:00,030 състоянието идва последно. 596 00:30:00,030 --> 00:30:02,530 Така, докато компютърът чете програмата 597 00:30:02,530 --> 00:30:06,050 тъй като на програми се изпълняват вид в този последователен ред, 598 00:30:06,050 --> 00:30:09,450 , когато те буквално започват с първа линия на главния 599 00:30:09,450 --> 00:30:13,450 и след това изпълни линия 6, ред 7, ред 8, 9, 600 00:30:13,450 --> 00:30:16,150 ред 10, ред 11, 601 00:30:16,150 --> 00:30:18,440 всички тези неща в горния десен ъгъл 602 00:30:18,440 --> 00:30:20,020 ще се изпълнява веднъж 603 00:30:20,020 --> 00:30:23,350 преди да можем някога да тествате това условие, за да се види 604 00:30:23,350 --> 00:30:26,240 дали или не - или съдържанието на АЗ, а - 605 00:30:26,240 --> 00:30:29,750 са по-малко от 3 броя. 606 00:30:29,750 --> 00:30:33,300 И само ако някога стигнем до линия 12, 607 00:30:33,300 --> 00:30:36,260 съдържанието на АЗ са по-малко от 3 608 00:30:36,260 --> 00:30:39,150 ние всъщност скочи обратно до линия 7 609 00:30:39,150 --> 00:30:41,140 и след това повторете процеса, 610 00:30:41,140 --> 00:30:44,620 и след това ние тестваме състояние отново и отново и отново. 611 00:30:44,620 --> 00:30:47,440 >> Така че ние можем да контрастира това 612 00:30:47,440 --> 00:30:50,240 с - мащабиране, 613 00:30:50,240 --> 00:30:56,500 превъртете надолу до версия на Сам, 614 00:30:56,500 --> 00:31:00,760 ние ще разгледаме това, леко променени, така че тя вече не е безкраен цикъл - 615 00:31:00,760 --> 00:31:03,570 където, ако ние я увеличите 616 00:31:03,570 --> 00:31:06,300 ние виждаме, че тъй като тази програма се изпълнява, 617 00:31:06,300 --> 00:31:09,120 е първо ще обяви вътр аз, 618 00:31:09,120 --> 00:31:12,030 определят съдържанието на I да бъде 0, 619 00:31:12,030 --> 00:31:15,820 и след това го удари състоянието на линия, докато първият, 620 00:31:15,820 --> 00:31:19,210 така че в този случай, това тяло, това ФОРМАТ ("здрасти") и аз + + 621 00:31:19,210 --> 00:31:21,630 дори няма да се изпълни 622 00:31:21,630 --> 00:31:24,310 освен ако не съм всъщност е по-малка или равна на 2. 623 00:31:24,310 --> 00:31:26,750 Така че, ако е 3, например, 624 00:31:26,750 --> 00:31:28,840 ако това право тук 625 00:31:28,840 --> 00:31:32,160 равна на 4 - или аз ще направя три, защото казах, 3 - 626 00:31:32,160 --> 00:31:34,890 и след това да го стартирате, 627 00:31:34,890 --> 00:31:38,320 ще изгради, ще работи напълно добре, 628 00:31:38,320 --> 00:31:40,530 но това не действително ще отпечата нищо, 629 00:31:40,530 --> 00:31:43,030 тъй като не е, че тест за първия случай. 630 00:31:44,780 --> 00:31:47,530 Така че в клас, ние говорихме за това защо тези направи, докато вериги 631 00:31:47,530 --> 00:31:49,800 са полезни понякога 632 00:31:49,800 --> 00:31:53,140 и защо да го използвате, за разлика от линия, докато. 633 00:31:53,140 --> 00:31:56,450 >> Там - вие имате някакви предложения 634 00:31:56,450 --> 00:31:59,090 защо направи линия, докато може да бъде по-полезно? 635 00:31:59,090 --> 00:32:02,560 >> Е, мисля, направи докато вериги е, ако искате, въведена от потребителя, 636 00:32:02,560 --> 00:32:05,020 защото по този начин можете да ги пусна 637 00:32:05,020 --> 00:32:07,780 сложите нещо веднъж, ако това е вярно, 638 00:32:07,780 --> 00:32:09,300 ние можем да преминат към останалата част от програмата, 639 00:32:09,300 --> 00:32:11,250 но ако тя не е вярна, то ви държат на подканване на потребителя 640 00:32:11,250 --> 00:32:13,250 докато не сложи на правилния вход. 641 00:32:13,250 --> 00:32:14,260 Да, точно така - точно, 642 00:32:14,260 --> 00:32:16,840 така направи линия, докато е полезен 643 00:32:16,840 --> 00:32:18,930 защото, когато се пита за въвеждане на потребителя 644 00:32:18,930 --> 00:32:23,000 защото трябва да се вход на потребителя, преди да можете да го проверите. 645 00:32:23,000 --> 00:32:27,330 Така че в един pset, в pset 2, 646 00:32:27,330 --> 00:32:29,650 къде сте пита за приноса на потребителите много, 647 00:32:29,650 --> 00:32:31,200 това е удобно нещо, което трябва да се използва 648 00:32:31,200 --> 00:32:33,740 за разлика от само един прост цикъл, докато. 649 00:32:33,740 --> 00:32:36,780 Ако използвате линия, докато, можете да направите същото нещо - 650 00:32:36,780 --> 00:32:38,750 можете да направите същото с линия, докато 651 00:32:38,750 --> 00:32:40,580 направи линия, докато. 652 00:32:40,580 --> 00:32:43,380 Ти просто трябва някак да получите този дубликат процес 653 00:32:43,380 --> 00:32:47,010 , където можете да получите на входа първо и след това започнете вашия цикъл, докато. 654 00:32:47,010 --> 00:32:49,800 Като има предвид, че не се прави докато контур, просто трябва да го пиша веднъж 655 00:32:49,800 --> 00:32:52,430 и тя е много по-чист. 656 00:32:52,430 --> 00:32:54,650 >> Добре. 657 00:32:55,970 --> 00:32:57,330 Някакви въпроси? 658 00:32:59,350 --> 00:33:01,380 Направи ли смисъл? 659 00:33:01,380 --> 00:33:06,200 >> Връщането на 0 - това е просто вид на обора или е? 660 00:33:06,200 --> 00:33:08,960 Да, за да можем да 661 00:33:08,960 --> 00:33:11,960 добре, ние ще разгледаме това малко по-късно 662 00:33:11,960 --> 00:33:13,290 но се оказва, че 663 00:33:13,290 --> 00:33:15,720 0 това връщане, че ние поставяме 664 00:33:15,720 --> 00:33:19,090 в края на основната цялото време - 665 00:33:19,090 --> 00:33:21,980 доста просто можете да го приема като нещо, което правим 666 00:33:21,980 --> 00:33:24,930 за момента. 667 00:33:24,930 --> 00:33:28,860 Онова, което сме започнали да говорим за с функции 668 00:33:28,860 --> 00:33:31,600 вид в края на миналата седмица и след това отново тази седмица 669 00:33:31,600 --> 00:33:33,550 е, че една функция 670 00:33:33,550 --> 00:33:37,680 взема суровини, които са тези неща в скобите; 671 00:33:37,680 --> 00:33:41,690 това са два входа, нашите аргументи и параметри, 672 00:33:41,690 --> 00:33:44,540 това, което се нарича основната ни функция, 673 00:33:44,540 --> 00:33:48,510 и след това функция произвежда продукция 674 00:33:48,510 --> 00:33:51,290 което ние наричаме връщане на стойност. 675 00:33:51,290 --> 00:33:56,260 И на върнатата стойност по отношение на главната е тази Int 676 00:33:56,260 --> 00:33:58,320 това число, 677 00:33:58,320 --> 00:34:01,160 и начина, по който ви разкажа една функция, "Хей, това е вашата продукция 678 00:34:01,160 --> 00:34:05,840 ще бъде ", е с тази дума" завръщане ", 679 00:34:05,840 --> 00:34:07,960 тази ключова дума, по-скоро, 680 00:34:07,960 --> 00:34:11,000 и т.н. Основната връщане 0 681 00:34:11,000 --> 00:34:13,389 или основен извежда 0 682 00:34:13,389 --> 00:34:15,139 е стандарт в програмите на C 683 00:34:15,139 --> 00:34:18,110 защото връщането на 0 от основните означава, че 684 00:34:18,110 --> 00:34:21,600 "Хей, всичко, изпълнен с моята програма само глоба." 685 00:34:21,600 --> 00:34:24,639 Ако бяхме да се сложи нещо различно от 0, 686 00:34:24,639 --> 00:34:27,440 като 1, например, 687 00:34:27,440 --> 00:34:31,080 , който се използва да кажа на всеки, който избяга тази програма 688 00:34:31,080 --> 00:34:33,540 , че нещо се е объркало. 689 00:34:35,739 --> 00:34:39,989 Така, както ние се ангажира повече с неща през семестъра, 690 00:34:39,989 --> 00:34:42,670 Ако някога се налага да кажа, 691 00:34:42,670 --> 00:34:46,650 "Ами, знаете ли, нещо се е объркало с тази програма", 692 00:34:46,650 --> 00:34:49,409 , отколкото като моята програма катастрофата, искам да уведоми 693 00:34:49,409 --> 00:34:52,310 бегач на програмата си, че нещо се е объркало, 694 00:34:52,310 --> 00:34:54,530 можете да използвате връщаната стойност, 695 00:34:54,530 --> 00:34:57,230 , както ние го наричаме, това не е 0. 696 00:35:00,180 --> 00:35:02,240 >> Така че ние ще разгледаме малко по- 697 00:35:02,240 --> 00:35:05,480 веднъж влезем в функции. 698 00:35:05,480 --> 00:35:09,030 Този вид има смисъл? 699 00:35:09,030 --> 00:35:11,240 Добре. 700 00:35:11,240 --> 00:35:13,530 Функциите са вид странно - 701 00:35:13,530 --> 00:35:17,270 Мисля, че за хора, които имат много математика фон, 702 00:35:17,270 --> 00:35:20,100 става дума малко по-лесно, 703 00:35:20,100 --> 00:35:22,540 особено ако имате малко по-абстрактна математика фон 704 00:35:22,540 --> 00:35:24,240 и сте свикнали да говорим за функции 705 00:35:24,240 --> 00:35:27,370 и всички тези неща. 706 00:35:28,590 --> 00:35:30,610 Но ние ще се опитаме и да ги покрият 707 00:35:30,610 --> 00:35:33,280 и си отиват хубаво и бавно, тъй като те идват. 708 00:35:34,730 --> 00:35:37,870 По същия начин, цялата тази вътр argc, 709 00:35:37,870 --> 00:35:41,090 знак * argv [], 710 00:35:41,090 --> 00:35:44,960 за сега, можете също да приема това като плоча на котела. 711 00:35:46,650 --> 00:35:49,050 Ние започнахме да покрие тези малко в лекция 712 00:35:49,050 --> 00:35:53,060 когато говорим за аргументи, които се предават в програми на командния ред, 713 00:35:53,060 --> 00:35:55,700 но в проблемните комплекти и програми, 714 00:35:55,700 --> 00:35:58,760 това е напълно добре просто да напишете невалидни и да го прости. 715 00:35:58,760 --> 00:36:01,490 И тази празнота означава, че 716 00:36:01,490 --> 00:36:04,630 - Хей, основно не ще да приема каквито и входове; 717 00:36:04,630 --> 00:36:07,440 това е просто програма, ние ще просто стартирате. 718 00:36:07,440 --> 00:36:09,320 Ние не ще го дава допълнителна информация 719 00:36:09,320 --> 00:36:12,420 всеки път, когато я стартирате работи. " 720 00:36:14,730 --> 00:36:16,600 Така че за сега, можете да направите това; 721 00:36:16,600 --> 00:36:19,710 дори можете да пропуснете 0 за връщане 722 00:36:19,710 --> 00:36:22,650 в края на вашите програми и те ще тече само глоба, 723 00:36:22,650 --> 00:36:26,150 но аз препоръчвам просто да поддържаш, че инча 724 00:36:26,150 --> 00:36:28,320 В няколко седмици, ние ще започнем да се вид на 725 00:36:28,320 --> 00:36:31,340 издърпайте капака малко и разберете повече за 726 00:36:31,340 --> 00:36:34,380 всички тези различни малки движещи се части. 727 00:36:34,380 --> 00:36:38,160 >> Добре, сега нека поговорим за втория въпрос тук. 728 00:36:38,160 --> 00:36:43,190 И така, какво означава "недекларирания идентификатор" обикновено означава 729 00:36:43,190 --> 00:36:46,040 ако е изведен от звъня? 730 00:36:46,040 --> 00:36:49,290 Мисля, че може да са видели, че днес вече. 731 00:36:51,170 --> 00:36:54,370 Може ли някой да даде една рекапитулация на това какво означава? 732 00:36:54,370 --> 00:36:57,680 Да видим, Кели - един от Kellys. 733 00:37:02,580 --> 00:37:05,300 >> Така че - 734 00:37:05,300 --> 00:37:07,080 Да, това, което прави - 735 00:37:07,080 --> 00:37:10,140 >> Мисля, че когато ти, като не декларират променливи и се опитате да го използвате. 736 00:37:10,140 --> 00:37:13,310 Да, точно така, точно така. 737 00:37:13,310 --> 00:37:15,250 Така че, ако някога видя този изход 738 00:37:15,250 --> 00:37:17,690 , когато се опитате и да компилирате програмата, 739 00:37:17,690 --> 00:37:19,470 точно както каза Кели, 740 00:37:19,470 --> 00:37:24,210 това означава, че сте използвали променлива, която не е декларирал, 741 00:37:24,210 --> 00:37:28,460 така че, ако се върнем към нашето пространство, 742 00:37:28,460 --> 00:37:31,150 и аз правя нещо подобно 743 00:37:31,150 --> 00:37:34,800 ФОРМАТ ( 744 00:37:34,800 --> 00:37:38,260 "Здравей% S") 745 00:37:40,070 --> 00:37:42,440 и се опитайте да попълните, че% 746 00:37:42,440 --> 00:37:45,640 с променлива, че не са декларирали никъде 747 00:37:45,640 --> 00:37:48,330 и аз се опитвам да го изпълним, 748 00:37:48,330 --> 00:37:51,330 Ще видим какво ще сляза на това дъно тук: 749 00:37:51,330 --> 00:37:54,010 "Използване на недекларирания идентификатор" ""; 750 00:37:54,010 --> 00:37:57,710 това просто означава, че не е декларирал променливата. 751 00:37:57,710 --> 00:38:00,750 Същото нещо се случи, ако 752 00:38:00,750 --> 00:38:05,240 имате х и се опитате и да се съхранява 7 в него 753 00:38:05,240 --> 00:38:08,720 и аз не декларират X. 754 00:38:08,720 --> 00:38:10,200 Аз се, че една и съща грешка: 755 00:38:10,200 --> 00:38:13,480 "Използване на недекларирания идентификатор" х ". 756 00:38:16,390 --> 00:38:18,250 >> Добре, 757 00:38:18,250 --> 00:38:21,720 така Cipher Цезар, не е много сигурно, 758 00:38:21,720 --> 00:38:24,590 Ще ви оставя вие гледайте този кратък вид да разбера защо, 759 00:38:24,590 --> 00:38:27,590 и се надявам след това проблем тази седмица, 760 00:38:27,590 --> 00:38:29,270 където всъщност пиша Cipher Цезар, ще разберете малко повече 761 00:38:29,270 --> 00:38:32,600 за това какво означава да бъдеш сигурна и несигурна 762 00:38:36,180 --> 00:38:38,960 или не е сигурен, предполагам - несигурен е малко по-различен. 763 00:38:40,560 --> 00:38:43,140 Другото нещо е, имаме тези и други въпроси тук 764 00:38:43,140 --> 00:38:45,470 за функциите 765 00:38:45,470 --> 00:38:47,330 и каква функция е 766 00:38:47,330 --> 00:38:52,820 и ние говорихме за това кратко, когато говорихме за връщане стойности; 767 00:38:52,820 --> 00:38:54,560 за някой, който е бил на лекция, 768 00:38:54,560 --> 00:38:57,790 може да ви рекапитулация, който е бил на днешната лекция? 769 00:38:57,790 --> 00:38:59,670 Добре. 770 00:39:01,210 --> 00:39:04,320 Нека да видим, нека да има - Може ли някой да ни каже какво е функция? 771 00:39:04,320 --> 00:39:06,060 Кели? 772 00:39:07,800 --> 00:39:11,260 >> >> Основно нещо, което разчита нещо, което е писано в библиотеката, която е 773 00:39:11,260 --> 00:39:14,460 по-сложен там, и след това просто напишете кратка форма на 774 00:39:14,460 --> 00:39:17,360 така като говориш обратно към тази библиотека, като се използва 775 00:39:17,360 --> 00:39:19,650 всичко, което дълго код и чува. 776 00:39:19,650 --> 00:39:22,680 Да, точно така, и след това искаш да добави нещо към това? 777 00:39:22,680 --> 00:39:27,050 >> Да, мисля за него като подобна на концепцията на формула в математиката 778 00:39:27,050 --> 00:39:30,130 , където можете просто напишете формула и след това можете да включите променливи в 779 00:39:30,130 --> 00:39:32,660 и това е, което функция е недоловим. 780 00:39:32,660 --> 00:39:35,390 >> Да, така че ние имаме няколко от отговорите тук 781 00:39:35,390 --> 00:39:38,080 , които са наистина добри и точно на. 782 00:39:38,080 --> 00:39:43,040 Отнасящи се до код, който е бил написан някъде в библиотеката 783 00:39:43,040 --> 00:39:45,390 че е по-сложно 784 00:39:45,390 --> 00:39:47,130 и след това можете да рисувате върху този код 785 00:39:47,130 --> 00:39:50,480 и действително го използвате само с писмено кратка форма на 786 00:39:50,480 --> 00:39:54,060 или по-скоро, неговото име - 787 00:39:54,060 --> 00:39:57,590 и тогава там е тази сравнение с формула по математика 788 00:39:57,590 --> 00:40:00,400 или физика, такива неща 789 00:40:00,400 --> 00:40:02,980 , когато имате формула 790 00:40:02,980 --> 00:40:05,690 и след това можете да включите 791 00:40:05,690 --> 00:40:08,100 променливите тази формула 792 00:40:08,100 --> 00:40:11,130 за да получите резултата от формулата, 793 00:40:11,130 --> 00:40:14,580 така че мисля за него като квадратно уравнение. 794 00:40:14,580 --> 00:40:17,690 Представете си, ако вместо да се налага да научат повече за 795 00:40:17,690 --> 00:40:21,310 квадратното формула е в клас по математика, 796 00:40:21,310 --> 00:40:24,610 просто имаше малка програма калкулатор, който го е направил за вас. 797 00:40:24,610 --> 00:40:28,930 Дали някой калкулатор програми по математика класове в гимназията? 798 00:40:28,930 --> 00:40:31,020 Да, часовете по физика? 799 00:40:31,020 --> 00:40:34,670 Където може просто да се каже: "Хей, квадратични формула. 800 00:40:34,670 --> 00:40:37,740 Това са променливи, които искам да въведа. 801 00:40:37,740 --> 00:40:40,250 Сега ми даде отговор. " 802 00:40:40,250 --> 00:40:42,170 Това е вид каква функция. 803 00:40:42,170 --> 00:40:44,850 Това е начин за нас да 804 00:40:44,850 --> 00:40:47,720 вид на запис като малка под програма 805 00:40:47,720 --> 00:40:51,700 в рамките на нашата голяма програма 806 00:40:51,700 --> 00:40:55,090 и да го използвате отново и отново 807 00:40:55,090 --> 00:40:58,380 , така че ние не трябва да копирате и поставяте код, 808 00:40:58,380 --> 00:41:04,220 можем да го дават различни входове и да получите различни изходи, 809 00:41:04,220 --> 00:41:07,090 това е супер удобен 810 00:41:07,090 --> 00:41:11,420 , когато се опитвате да напишете различни програми в различни времена. 811 00:41:11,420 --> 00:41:14,580 >> Така например, функция, която сме използвали отново и отново и отново 812 00:41:14,580 --> 00:41:17,310 по време на курса е ФОРМАТ. 813 00:41:17,310 --> 00:41:19,680 ФОРМАТ само по себе си е функция 814 00:41:19,680 --> 00:41:23,360 и се оказва, че това всъщност е доста дълъг и сложен, 815 00:41:23,360 --> 00:41:26,420 гаден гледам, функционират да пиша. 816 00:41:26,420 --> 00:41:29,590 Така че, просто, колкото изглежда за нас 817 00:41:29,590 --> 00:41:31,810 да отпечатате неща на екрана, 818 00:41:31,810 --> 00:41:34,820 защото всички ние що го направих, че в началото на раздел днес, 819 00:41:34,820 --> 00:41:36,870 се оказва, че това е всъщност, вие знаете, 820 00:41:36,870 --> 00:41:39,900 няколко стотин реда код. 821 00:41:42,030 --> 00:41:45,620 Това не е нещо, което аз никога няма да искам да пиша, със сигурност, 822 00:41:45,620 --> 00:41:47,480 но ние се да я използвате всеки ден, това е нещо готино, 823 00:41:47,480 --> 00:41:49,020 така че ние да го споделят помежду си, 824 00:41:49,020 --> 00:41:51,790 с различни програми, 825 00:41:51,790 --> 00:41:54,520 така че ние ще бъдем гмуркане в по-голяма степен функции; 826 00:41:54,520 --> 00:41:56,090 за момента, ние не сме - 827 00:41:56,090 --> 00:41:59,150 единствената функция, ние ще се пише е основният. 828 00:41:59,150 --> 00:42:01,570 Основна себе си също е функция, 829 00:42:01,570 --> 00:42:04,270 и можете да видите, че има своята продукция, 830 00:42:04,270 --> 00:42:06,610 нейните входове като ние говорихме, 831 00:42:06,610 --> 00:42:08,930 и след това му наименование, което е основният. 832 00:42:08,930 --> 00:42:11,800 Майн е един вид - там е специална функция. 833 00:42:11,800 --> 00:42:14,800 С вашата програма, трябва да има основна функция, 834 00:42:14,800 --> 00:42:17,900 и така за сега, ние сме вид на пропуснати писане 835 00:42:17,900 --> 00:42:21,400 прототип, или на декларация на Майн. 836 00:42:21,400 --> 00:42:23,050 Ние сме като се има предвид, че за вас, 837 00:42:23,050 --> 00:42:25,650 и ние току-що е да попълните в натура на бланки. 838 00:42:25,650 --> 00:42:29,120 >> >> Така че за втория сет проблем, ние не трябва да 839 00:42:29,120 --> 00:42:31,350 го напиша във втората функция? 840 00:42:31,350 --> 00:42:34,200 Аз не вярвам така. 841 00:42:34,200 --> 00:42:37,600 Вярвам, че това е всичко тук. 842 00:42:37,600 --> 00:42:41,710 Да, така Цезар Cipher 843 00:42:41,710 --> 00:42:45,000 не е нужно, тя не изглежда като 844 00:42:48,740 --> 00:42:53,150 и Vigenere, не искаш или, 845 00:42:53,150 --> 00:42:56,400 така - и се оказва, не някога действително трябва да напишете 846 00:42:56,400 --> 00:42:58,250 функция, нали? 847 00:42:58,250 --> 00:43:01,950 Ти наричаш винаги се поставя на кода си в основния, 848 00:43:01,950 --> 00:43:04,500 и много програмисти. 849 00:43:04,500 --> 00:43:07,130 Като се движим, 850 00:43:07,130 --> 00:43:09,480 да започнем въвеждане на функции като начин 851 00:43:09,480 --> 00:43:11,530 да почистите вашия код, 852 00:43:11,530 --> 00:43:13,380 да стане по-елегантен, 853 00:43:13,380 --> 00:43:16,890 в случай, че имате задачи - нещо като, когато говорихме за вериги, 854 00:43:16,890 --> 00:43:20,400 как понякога има неща, които искате да направите отново и отново, и отново, 855 00:43:20,400 --> 00:43:23,510 и имате вид на наивен начин - 856 00:43:23,510 --> 00:43:26,360 или това, което ние често наричаме "слама човек" решение, 857 00:43:26,360 --> 00:43:29,390 е просто да копирате и поставите отново и отново - 858 00:43:29,390 --> 00:43:31,000 можете да направите същото и с функции, където можете просто да копирате и поставите 859 00:43:31,000 --> 00:43:33,360 същия код отново и отново, 860 00:43:33,360 --> 00:43:35,750 но това bloats кода си - 861 00:43:35,750 --> 00:43:38,550 завършва кода си наистина дълго - 862 00:43:38,550 --> 00:43:41,550 и то получава малко объркващо, 863 00:43:41,550 --> 00:43:43,470 и това означава, че не сте в състояние да ти харесва - 864 00:43:43,470 --> 00:43:45,250 ако някога искате да използвате този код отново в друга програма, 865 00:43:45,250 --> 00:43:48,610 вие сте също остана го копирате и поставите отново, 866 00:43:48,610 --> 00:43:51,170 така че едно от нещата, ние ще говорим за е 867 00:43:51,170 --> 00:43:54,960 вид на дизайн и стил на вашите програми, 868 00:43:54,960 --> 00:43:57,010 и така, когато има смисъл да се вид 869 00:43:57,010 --> 00:43:59,800 пакет нещо и го слагам като отделна функция, 870 00:43:59,800 --> 00:44:02,080 ние ви съветваме да направите това, 871 00:44:02,080 --> 00:44:04,700 и това е нещо, което, отново, 872 00:44:04,700 --> 00:44:07,790 не е трудно и бързо правило. 873 00:44:07,790 --> 00:44:11,540 Ние рядко казват, че трябва да напиша функция, наречена това, 874 00:44:12,870 --> 00:44:16,320 но това е повече от едно от тези неща просто се развиват с течение на времето 875 00:44:16,320 --> 00:44:19,470 като пишете повече и повече програми. 876 00:44:21,940 --> 00:44:24,790 >> Има ли още въпроси? 877 00:44:26,340 --> 00:44:30,610 Добре, така че нека сега 878 00:44:30,610 --> 00:44:34,750 Върни се обратно до този човек точно тук, 879 00:44:34,750 --> 00:44:37,800 така че аз все още съм в този раздел от въпроси. 880 00:44:37,800 --> 00:44:39,900 Говорили сме за всички тези различни, 881 00:44:39,900 --> 00:44:42,050 какво е функция, защо да пиша функции, 882 00:44:42,050 --> 00:44:44,700 , когато можете просто да копирате и поставяте? 883 00:44:44,700 --> 00:44:47,700 Надяваме се сме убедени, че писането на функции е нещо добро. 884 00:44:47,700 --> 00:44:50,870 Така че нека сега да преминем към този MySpace програма, 885 00:44:50,870 --> 00:44:53,080 и ние ще прекарат малко време по този начин. 886 00:44:54,600 --> 00:44:56,480 >> Така че, нека да видим, 887 00:44:56,480 --> 00:45:00,230 мога да имам някой прочете това за мен? 888 00:45:02,640 --> 00:45:04,660 Нека да Mikhaila - ще ви прочета това за нас? 889 00:45:07,660 --> 00:45:08,890 >> Искаш да кажеш, обратно, когато MySpace 890 00:45:08,890 --> 00:45:10,920 Обратно, когато MySpace е готино. 891 00:45:10,920 --> 00:45:12,070 >> "Обратно, когато MySpace е готино, 892 00:45:12,070 --> 00:45:14,900 това е цялата ярост подобен тип. 893 00:45:14,900 --> 00:45:17,320 Може би все още е? Аз не съм много сигурен. 894 00:45:17,320 --> 00:45:19,990 Във всеки случай, като се използва CS50 техника, 895 00:45:19,990 --> 00:45:22,600 CS50 Run, или CS50 пространства, 896 00:45:22,600 --> 00:45:25,370 напишете програма, която подсказва на потребителя за съобщение 897 00:45:25,370 --> 00:45:29,350 и след това извежда съобщение с първата буква е главна, 898 00:45:29,350 --> 00:45:31,800 с всички останали букви в променлив случай, 899 00:45:31,800 --> 00:45:34,010 по примерен резултат по-долу, 900 00:45:34,010 --> 00:45:37,060 в който boldfaced текст представлява въвеждане на някой друг потребител. 901 00:45:37,060 --> 00:45:39,800 За простота, може да приемем, че потребителят 902 00:45:39,800 --> 00:45:42,810 само ще входни малки букви и интервали. 903 00:45:42,810 --> 00:45:45,900 Помислете за този проблем възможност да практикуват; 904 00:45:45,900 --> 00:45:48,640 няма да бъдат поканени да представят тази програма. " 905 00:45:48,640 --> 00:45:51,640 >> Страхотно, благодаря ви. 906 00:45:51,640 --> 00:45:54,750 Така че, както каза Mikhaila, 907 00:45:54,750 --> 00:45:58,850 ние ще напишем програма, която MySpaces кода си. 908 00:45:58,850 --> 00:46:02,230 Така че е някой от вас, момчета използват MySpace? 909 00:46:02,230 --> 00:46:04,100 Някой от вас има MySpace сметки? 910 00:46:04,100 --> 00:46:05,920 О, да, да! 911 00:46:05,920 --> 00:46:08,300 Това е много готино. 912 00:46:08,300 --> 00:46:09,950 [Смях] 913 00:46:09,950 --> 00:46:12,060 Аз знам. 914 00:46:12,060 --> 00:46:14,500 Запознанства себе си. 915 00:46:15,490 --> 00:46:18,300 Така че това, което ние се опитваме да направим, е да се напише програма 916 00:46:18,300 --> 00:46:21,110 , който преминава през 917 00:46:21,110 --> 00:46:24,490 и капитализира първата буква 918 00:46:24,490 --> 00:46:27,140 и след всяко писмо, след това - 919 00:46:27,140 --> 00:46:29,350 или всеки друг писмо след това, съжалявам. 920 00:46:29,350 --> 00:46:32,910 >> Така че - и можете да видите в този пример, 921 00:46:32,910 --> 00:46:35,260 това е начина, по който стартирате програмата, 922 00:46:35,260 --> 00:46:38,780 и така това е просто казвам: "Ние сме една програма, наречена a.out. 923 00:46:41,490 --> 00:46:44,630 Принос, който започваш да го даде 924 00:46:44,630 --> 00:46:47,090 ще бъдете подканени. 925 00:46:47,090 --> 00:46:51,150 Няма да предоставят на входа на командния ред. " 926 00:46:51,150 --> 00:46:54,100 Ако сте били след всички лекции 927 00:46:54,100 --> 00:46:56,710 и слуха за аргументите на командния ред, 928 00:46:57,810 --> 00:47:00,080 това е нещо, където тези - че фънки синтаксис 929 00:47:00,080 --> 00:47:04,530 в основния идва с INT argc, всички тези неща, 930 00:47:04,530 --> 00:47:07,630 така че тук ние не използвате, че ние не се занимават с нищо от това. 931 00:47:09,400 --> 00:47:12,650 Ние сме просто ще получите тази пишеща машина от потребителя, 932 00:47:12,650 --> 00:47:15,700 и след това втора линия с фънки капитализация 933 00:47:15,700 --> 00:47:18,550 е това, което ние искаме нашата програма за изход. 934 00:47:19,790 --> 00:47:22,860 >> Така че, вместо да използвате уреда или Run, ние ще използваме пространства, 935 00:47:22,860 --> 00:47:25,360 защото ние имаме пространства, 936 00:47:25,360 --> 00:47:28,640 и така, ако вие 937 00:47:28,640 --> 00:47:32,380 получите код, за да изглежда нещо като това, 938 00:47:32,380 --> 00:47:35,930 така че аз отивам да спаси тази ревизия 939 00:47:35,930 --> 00:47:38,390 просто така имаш котел табела тук 940 00:47:38,390 --> 00:47:42,840 че прилича на това, Int основни (Void), нищо в него. 941 00:47:44,480 --> 00:47:48,460 Всъщност, това, което ние ще направим, е, че ние просто ще изтриете всичко заедно. 942 00:47:48,460 --> 00:47:50,330 Искаме празен лист, 943 00:47:50,330 --> 00:47:52,470 защото ние не сме ще почнат да пишат код; 944 00:47:52,470 --> 00:47:55,380 , ние по-скоро ще се опитате да пишете някои pseudocode 945 00:47:55,380 --> 00:47:58,580 , които наистина просто означава, че ние отиваме да напиша нещо, което не е код 946 00:47:58,580 --> 00:48:01,010 този вид описва това, което искаме да направим, 947 00:48:01,010 --> 00:48:05,180 доста като Давид на първия ден на лекцията, 948 00:48:05,180 --> 00:48:08,310 или аз предполагам, че е вторият ден на лекцията, когато той е цялото демо чорапи. 949 00:48:08,310 --> 00:48:10,990 Вие, момчета, не забравяйте, че виждат чорапите? 950 00:48:10,990 --> 00:48:13,300 Йосиф беше там вид пишете на английски? 951 00:48:13,300 --> 00:48:16,300 Така че ние ще направим същото. 952 00:48:16,300 --> 00:48:18,380 >> Така че, когато започнете да пишете pseudocode, 953 00:48:18,380 --> 00:48:22,640 Бих искал да започна, като се търси в това, което входът ще бъде. 954 00:48:22,640 --> 00:48:24,950 И аз се даде проба случай, 955 00:48:24,950 --> 00:48:28,780 така като "благодаря за добавката!" 956 00:48:35,030 --> 00:48:38,010 И тогава аз пиша това, което искам продукцията да бъде, 957 00:48:38,010 --> 00:48:42,210 който в този случай е нещо подобно. 958 00:48:53,790 --> 00:48:56,050 И този вид ми дава добро, като се започне да се мисли за 959 00:48:56,050 --> 00:48:59,730 - Добре, искам да взема линия 1 960 00:48:59,730 --> 00:49:03,560 и аз искам да я превърне в линия 2 " 961 00:49:03,560 --> 00:49:06,570 и този вид помага да се ръководят мисленето ми. 962 00:49:06,570 --> 00:49:09,990 Това е едно добро място да започнете. 963 00:49:09,990 --> 00:49:12,190 Друг начин да се мисли за това, прекалено, тъй като ние доста се движат 964 00:49:12,190 --> 00:49:15,020 и като направите това в собствените си програми, е да 965 00:49:15,020 --> 00:49:18,530 мисля за вид като това, което са крайни случаи на това? 966 00:49:18,530 --> 00:49:20,740 Какви са вид на странни сценарии? 967 00:49:20,740 --> 00:49:23,660 Какви са странни входове, които бихме могли да получите? 968 00:49:23,660 --> 00:49:26,550 И какво тези изходи трябва да изглежда? 969 00:49:26,550 --> 00:49:29,670 Например, един странен вход 970 00:49:29,670 --> 00:49:33,200 ще бъде този, 971 00:49:33,200 --> 00:49:35,630 създаване на абсолютно нищо, 972 00:49:35,630 --> 00:49:37,840 като това, което трябва да изведе в този случай? 973 00:49:37,840 --> 00:49:40,530 Нещо, което искаме да мислим за това, твърде. 974 00:49:40,530 --> 00:49:44,450 >> Така че просто като въпрос, 975 00:49:44,450 --> 00:49:46,870 какво може да искаме да изход? 976 00:49:46,870 --> 00:49:50,740 Ако ние не се въвеждане на всички, какво трябва нашата програма се извежда? 977 00:49:53,740 --> 00:49:54,860 >> Нищо. 978 00:49:54,860 --> 00:49:57,340 Нищо? Звучи страхотно. 979 00:49:57,340 --> 00:49:59,280 Така че ние искаме да се уверите, че не пишеш нищо 980 00:49:59,280 --> 00:50:01,500 ако не се получи нищо инча 981 00:50:01,500 --> 00:50:04,320 Cool. Добре. 982 00:50:04,320 --> 00:50:07,370 Така 983 00:50:07,370 --> 00:50:09,380 Отивам да се обадя на няколко души, тъй като ние преминаваме през 984 00:50:09,380 --> 00:50:12,790 и просто да разбера нещо като общ алгоритъм 985 00:50:12,790 --> 00:50:15,250 вид и ще започне да работи през това заедно. 986 00:50:16,240 --> 00:50:19,710 >> Така че, нека да видим. Миси. 987 00:50:19,710 --> 00:50:21,220 Как мислите, че ще започне? 988 00:50:21,220 --> 00:50:24,830 Какво ще бъде едно добро място да започнете тук 989 00:50:24,830 --> 00:50:27,900 ако искаме да се трансформира, да речем, линия 1 990 00:50:27,900 --> 00:50:29,440 в съответствие два? 991 00:50:29,440 --> 00:50:32,650 Мога ли просто да ми обясни на английски, какво си мислиш? 992 00:50:32,650 --> 00:50:34,770 Не се притеснявайте за код. 993 00:50:34,770 --> 00:50:38,250 >> Първото нещо, което ще направя, ще бъде да се 994 00:50:38,250 --> 00:50:41,170 вид директно на потребителя, за да им кажа това, което искате. 995 00:50:41,170 --> 00:50:44,730 Добре, така че, да речем, 996 00:50:44,730 --> 00:50:47,450 "Хей, потребител. Искам 997 00:50:47,450 --> 00:50:50,560 низ "- страхотно. 998 00:50:50,560 --> 00:50:52,990 Така че нека да напиша тази надолу. 999 00:50:52,990 --> 00:50:56,140 Подкани потребителя за низ. 1000 00:50:56,140 --> 00:50:59,270 Това звучи като едно добро начало. 1001 00:51:03,920 --> 00:51:06,460 Добре. 1002 00:51:06,460 --> 00:51:09,750 Нека попитаме Кели Рен това време. 1003 00:51:09,750 --> 00:51:11,580 Какво бихме след това искате да правите по-нататък? 1004 00:51:11,580 --> 00:51:14,220 Какво е вид на следващата ни? 1005 00:51:14,220 --> 00:51:18,080 >> Съберете своя принос и да го съхранява като променлива. 1006 00:51:18,080 --> 00:51:20,470 Велики. 1007 00:51:20,470 --> 00:51:24,280 Така събира низ, 1008 00:51:25,450 --> 00:51:27,880 да го съхранява в променлива. 1009 00:51:34,840 --> 00:51:36,460 Така че има ли нещо специално, искаме да направим тук? 1010 00:51:36,460 --> 00:51:39,700 Ли искате да проверите своя принос 1011 00:51:39,700 --> 00:51:42,260 преди? 1012 00:51:42,260 --> 00:51:43,790 >> Да. 1013 00:51:43,790 --> 00:51:46,330 Какво бихме могли да искате да проверите? 1014 00:51:46,330 --> 00:51:48,980 >> Е, ти каза, че не е нужно да се провери дали това е номер, нали? 1015 00:51:48,980 --> 00:51:52,400 Защото това ще приемем, че това е само с малки букви? 1016 00:51:52,400 --> 00:51:55,650 Да. 1017 00:51:56,380 --> 00:51:58,920 >> Така се оказва, че - да. 1018 00:51:58,920 --> 00:52:01,850 Така getString е гарантирано да ни върне низ. 1019 00:52:01,850 --> 00:52:05,050 Това няма да се върне на номер към нас или нещо подобно. 1020 00:52:05,050 --> 00:52:09,140 Там могат да бъдат цифрени знаци в рамките на този низ, все пак. 1021 00:52:09,140 --> 00:52:13,460 А това, което можем да игнорираме като направихме капитализация. 1022 00:52:13,460 --> 00:52:16,620 Но е напълно празен низ глоба, 1023 00:52:16,620 --> 00:52:19,900 така че тук на линия 4 и 5, 1024 00:52:19,900 --> 00:52:22,020 надясно, където няма вход, 1025 00:52:22,020 --> 00:52:25,190 и ние сме поставени нищо, тъй като нашата продукция. 1026 00:52:25,190 --> 00:52:28,730 Ние не трябва да се притеснявате за като се уверите, че има нещо в низ 1027 00:52:28,730 --> 00:52:31,840 или че низът е по-малко от 4 символа; 1028 00:52:31,840 --> 00:52:34,190 всичко е наред. 1029 00:52:34,190 --> 00:52:38,270 Така че това е в контраст, например, като стотинките програми, които сте написали 1030 00:52:38,270 --> 00:52:42,340 , където трябваше да се уверете, че сте били отрицателни числа; 1031 00:52:42,340 --> 00:52:46,430 вие трябва да се уверите, че сте били получаване на правилната броя на дните в месеца. 1032 00:52:46,430 --> 00:52:49,630 И как правите, момчета? 1033 00:52:49,630 --> 00:52:51,470 Как бихте направили този тест? 1034 00:52:51,470 --> 00:52:54,090 Какво, които изискват от вас да използвате? 1035 00:52:54,090 --> 00:52:55,650 >> Направи докато вериги. 1036 00:52:55,650 --> 00:53:00,840 Направи докато линии; други видове вериги, също, да. 1037 00:53:02,190 --> 00:53:04,520 Така се оказва, че не трябва да се използва една линия в този случай, 1038 00:53:04,520 --> 00:53:07,360 когато сме инициатива за поредица, която е нещо хубаво. 1039 00:53:08,280 --> 00:53:10,620 >> Добре, да преминат. 1040 00:53:12,410 --> 00:53:14,270 Така че, Стела. 1041 00:53:14,270 --> 00:53:17,530 Можеш ли да ни разкажеш малко за това какво трябва да направим следващата? 1042 00:53:17,530 --> 00:53:20,270 Така че сега ние имаме низ, имаме го съхранява в променлива; 1043 00:53:20,270 --> 00:53:23,360 какво трябва да направим с низ? 1044 00:53:26,790 --> 00:53:33,530 >> Ние трябва да 1045 00:53:33,530 --> 00:53:36,550 идентифициране на 2 - 1046 00:53:36,550 --> 00:53:39,290 Да, просто да го кажа на английски, това е страхотно. 1047 00:53:39,290 --> 00:53:42,670 >> Идентифицирайте [недоловимите] столици - или главни букви. 1048 00:53:44,420 --> 00:53:48,130 Да, така че ще се определи кои от тях са главни и малки букви. 1049 00:53:50,020 --> 00:53:54,180 Ние не можем да главни или малки букви, докато сме идентифицирали кои от тях. 1050 00:54:03,790 --> 00:54:06,350 Така че ние ще поставим тук. 1051 00:54:06,350 --> 00:54:10,210 >> Така че, само при мисълта за този процес, 1052 00:54:10,210 --> 00:54:13,200 как да го направим тази идентификация? 1053 00:54:13,200 --> 00:54:15,050 Знаете ли, Дан? 1054 00:54:15,050 --> 00:54:18,120 Вид на това, което ние - какъв инструмент ние ще трябва да се използва от нашия инструментариум? 1055 00:54:18,120 --> 00:54:22,500 >> Бих го постави в по някакъв начин като масив или всяка линия 1056 00:54:22,500 --> 00:54:24,240 е неговата собствена малка кутия, 1057 00:54:24,240 --> 00:54:27,240 и след това главни букви от там или не. 1058 00:54:27,240 --> 00:54:30,440 Добре, така че един инструмент, който можем да използваме масив. 1059 00:54:30,440 --> 00:54:33,760 Какво трябва да погледнете в низа, 1060 00:54:33,760 --> 00:54:36,680 все пак, за да разбера - ние трябваше да погледнете героите. 1061 00:54:36,680 --> 00:54:40,890 >> Така че имаш да изглежда по дължината на низа? 1062 00:54:40,890 --> 00:54:43,880 Да, част от които се дължината на низа. 1063 00:54:50,450 --> 00:54:54,150 Просто от любопитство, какво да използвате, за да получите дължината на низ? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Да, strlen, ние наричаме това "strlen" 1066 00:55:04,180 --> 00:55:08,620 Всички тези низови функции, така че strlen е функция, 1067 00:55:08,620 --> 00:55:10,670 и е супер удобен, защото можем да го използваме да кажем, 1068 00:55:10,670 --> 00:55:13,430 Хей, strlen: Ето низ, кажи ми колко е дълго. 1069 00:55:13,430 --> 00:55:17,350 В лекцията днес, Дейвид говорихме много за това как strlen се изпълнява, 1070 00:55:17,350 --> 00:55:20,370 какво всъщност се случва зад кулисите. 1071 00:55:20,370 --> 00:55:25,450 Но това е един от много супер удобен. 1072 00:55:25,450 --> 00:55:29,170 Има и други, които също са в низ библиотека, 1073 00:55:29,170 --> 00:55:34,690 като strcmp, който е написан "strcmp", 1074 00:55:34,690 --> 00:55:38,010 който се използва за сравнение на низове един към друг. 1075 00:55:41,220 --> 00:55:45,020 Други тези, които ще използват като strstr 1076 00:55:45,020 --> 00:55:48,770 , което е добро за намиране под струните и така нататък. 1077 00:55:48,770 --> 00:55:53,380 За по-голямата си част, те всички се започне с ул. и след това, за да бъде нещо друго. 1078 00:55:53,380 --> 00:55:57,080 Причина те не всъщност ги пише като низ и т.н. 1079 00:55:57,080 --> 00:56:00,260 е така, защото отново като първите дни на C, 1080 00:56:00,260 --> 00:56:04,100 когато хората са първо писмено и всичко това, 1081 00:56:04,100 --> 00:56:07,580 са имали ограничения за броя на символите, които можете да използвате 1082 00:56:07,580 --> 00:56:09,950 за имена на функции и променливи имена, 1083 00:56:09,950 --> 00:56:12,620 така че всичко е като супер кондензирано. 1084 00:56:12,620 --> 00:56:15,750 Но по всяко време виждате нещо, което започва с ул. 1085 00:56:15,750 --> 00:56:18,600 , които обикновено означава, че това има нещо общо с низ. 1086 00:56:20,990 --> 00:56:23,350 >> Добре, така че сте се погрижили да получите дължината на низа, 1087 00:56:23,350 --> 00:56:27,110 и след това, какво правим с героите? 1088 00:56:27,110 --> 00:56:29,020 Знаеш ли, Сам? 1089 00:56:29,020 --> 00:56:32,410 >> Нямам представа, аз се опитвах да го разбера. 1090 00:56:32,410 --> 00:56:35,410 Аз наистина не знам - Иска ми се, имаше някакъв начин да 1091 00:56:35,410 --> 00:56:38,990 Искам да кажа, би си помислил, може би бихме могли да направим нещо с коефициент и изравнява тена, 1092 00:56:38,990 --> 00:56:40,860 но аз не знам на всяка функция така. 1093 00:56:40,860 --> 00:56:42,240 Да. 1094 00:56:43,160 --> 00:56:45,200 >> Но това - не е задължително да работи 1095 00:56:45,200 --> 00:56:48,690 защото тогава вие ще получите празни места, за да бъдат 1096 00:56:48,690 --> 00:56:51,130 ще трябва да имат пространство, за да получите съвети за това как - 1097 00:56:51,130 --> 00:56:54,310 Добре. 1098 00:56:54,310 --> 00:56:56,490 >> Аз не знам - аз съм загубена в този момент. 1099 00:56:56,490 --> 00:56:58,120 Да - не, не, не, това са добри точки. 1100 00:56:58,120 --> 00:57:00,420 Така че това, което ние трябва да направим, е, както каза Сам, 1101 00:57:00,420 --> 00:57:02,970 ние трябва да се проследи кои писма са странни писма, 1102 00:57:02,970 --> 00:57:05,540 и кои от тях са дори писма. 1103 00:57:06,650 --> 00:57:09,090 Но ние искаме да направим сме сигурни, че не сте просто търсите 1104 00:57:09,090 --> 00:57:12,110 в странно и дори 1105 00:57:12,110 --> 00:57:14,030 индекси в низ 1106 00:57:14,030 --> 00:57:17,660 а в четните и нечетните букви в низа, 1107 00:57:17,660 --> 00:57:20,190 така че ние трябва да имат доста това разграничение между 1108 00:57:20,190 --> 00:57:25,190 писма - подобно на това, което всъщност е A, B, C, D, или така нататък, 1109 00:57:25,190 --> 00:57:29,090 и какви неща не са писма, но все още в нашата низ. 1110 00:57:29,090 --> 00:57:32,390 За пример тук, като този удивителен знак не е писмо, 1111 00:57:32,390 --> 00:57:36,060 но тя все още е част от нашия низ, тя все още е Чар. 1112 00:57:36,060 --> 00:57:38,820 Също така, всички тези пространства - 1113 00:57:38,820 --> 00:57:41,710 тя не прави смисъл да се възползва пространство, нали? 1114 00:57:41,710 --> 00:57:46,160 Затова искаме да сме сигурни, че ние по някакъв начин да пропуснете тези 1115 00:57:46,160 --> 00:57:49,410 докато все още проследяване на коефициенти и изравнява тена. 1116 00:57:50,900 --> 00:57:54,990 >> Така вид в нашия програмен инструментариум 1117 00:57:54,990 --> 00:57:57,270 досега, ако щете, 1118 00:57:57,270 --> 00:58:01,310 имаме няколко различни инструменти, които сме говорили за. 1119 00:58:01,310 --> 00:58:04,640 Така, например, са променливи, 1120 00:58:04,640 --> 00:58:07,120 като си говорихме тук. 1121 00:58:07,120 --> 00:58:10,730 Друг инструмент, сме говорили за функции. 1122 00:58:10,730 --> 00:58:15,800 Така че ние сме говорили за променливи в нашата pseudocode тук 1123 00:58:15,800 --> 00:58:19,760 като това, което отива да се използват за съхраняване на нашата низ. 1124 00:58:19,760 --> 00:58:24,630 Говорили сме за функции, за да получите дължината на низ, като strlen. 1125 00:58:28,510 --> 00:58:31,170 Ние говорим за нещо друго, и сме говорили за него 1126 00:58:31,170 --> 00:58:34,850 за много по-рано днес в раздел: обръчи. 1127 00:58:39,390 --> 00:58:42,030 >> Какво вие мислите за използване на една линия в тази програма? 1128 00:58:42,030 --> 00:58:44,110 Джаред, какво мислиш? 1129 00:58:47,150 --> 00:58:50,030 Ще използваме една линия в тази програма? 1130 00:58:50,030 --> 00:58:52,500 >> Вероятно не, не, защото вие не трябва да мине през него повече от веднъж. 1131 00:58:52,500 --> 00:58:55,260 Добре, вие не трябва да мине през това, което повече от веднъж? 1132 00:58:55,260 --> 00:58:57,190 >> Целия низ. 1133 00:58:57,190 --> 00:59:00,660 Добре, така че не е нужно да се мине през целия низ. 1134 00:59:00,660 --> 00:59:03,330 Съжалявам, че абсолютно никакъв смисъл! 1135 00:59:03,330 --> 00:59:06,360 Вие не трябва да мине през целия низ повече от веднъж. 1136 00:59:06,360 --> 00:59:08,660 Добре. 1137 00:59:09,790 --> 00:59:11,920 Какво мислите? 1138 00:59:11,920 --> 00:59:14,110 >> Мисля, че е по-добре да ги използвате 1139 00:59:14,110 --> 00:59:16,640 така че можем да направим като се възползва, докато 1140 00:59:16,640 --> 00:59:19,750 местоположението на [недоловим] брой. 1141 00:59:19,750 --> 00:59:22,940 Велики, и така се възползва какво? 1142 00:59:22,940 --> 00:59:25,200 Добре, поне така ни се казва, че 1143 00:59:25,200 --> 00:59:28,130 ние трябва да използваме една линия, защото ние искаме да 1144 00:59:28,130 --> 00:59:32,550 главна буква, макар и да не е номер. 1145 00:59:35,130 --> 00:59:37,140 Така че - съжалявам, не искате да добавите? 1146 00:59:37,140 --> 00:59:39,340 >> Щях да кажа, че начинът, по който се отнасяте низ 1147 00:59:39,340 --> 00:59:42,290 и да го чува] отделна чува] върху героите? 1148 00:59:42,290 --> 00:59:43,710 Да. 1149 00:59:43,710 --> 00:59:45,850 >> И тогава ние можем да предоставят номерата на 1150 00:59:45,850 --> 00:59:47,780 или въз основа на мястото на буквите в низа? 1151 00:59:47,780 --> 00:59:49,720 Да. 1152 00:59:49,720 --> 00:59:53,640 >> И да установи дали е странно или дори и да се възползва самото писмо 1153 00:59:53,640 --> 00:59:57,750 , докато местоположението на писмото е недоловим] - съжалявам. 1154 00:59:57,750 --> 01:00:00,150 Велики. 1155 01:00:00,150 --> 01:00:03,430 >> Така че просто една рекапитулация. 1156 01:00:03,430 --> 01:00:05,840 Можеш ли да ми напомнят отново на името си - Съжалявам. 1157 01:00:05,840 --> 01:00:06,900 >> Шарлот. 1158 01:00:06,900 --> 01:00:08,490 Шарлот, добре. 1159 01:00:08,490 --> 01:00:11,130 Така че това, което Шарлот казва, 1160 01:00:11,130 --> 01:00:14,950 , което е напълно прав - Боже, това обича да автоматично тире от мен - 1161 01:00:14,950 --> 01:00:17,770 е, че ако се вгледаме в низ 1162 01:00:17,770 --> 01:00:19,160 като този в горната част - 1163 01:00:19,160 --> 01:00:21,590 "Благодаря за добавката" - 1164 01:00:21,590 --> 01:00:24,790 като поредица от символи 1165 01:00:24,790 --> 01:00:29,010 , когато е на позиция 0, 1166 01:00:29,010 --> 01:00:32,260 з е на позиция 1. 1167 01:00:32,260 --> 01:00:36,880 А е на 2, а след това имаме 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 пространството е на позиция 6. 1169 01:00:42,380 --> 01:00:45,300 Като се има предвид, че - каква е позицията на е? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 О? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 И тогава ние имаме 10, а тогава не мога наистина да го пиша, без да го 1174 01:00:54,340 --> 01:00:57,430 доста да се разхвърлян на екрана. 1175 01:00:57,430 --> 01:01:02,340 Но това всъщност е как можем да говорим за низове в паметта. 1176 01:01:02,340 --> 01:01:04,660 Низ 1177 01:01:04,660 --> 01:01:07,920 е поредица от символи, 1178 01:01:07,920 --> 01:01:12,430 и когато говорим за отделен знак в низ 1179 01:01:12,430 --> 01:01:15,280 ние често го правят, като се позовава на позицията, че героя 1180 01:01:15,280 --> 01:01:17,620 в низа, 1181 01:01:17,620 --> 01:01:19,910 вероятно по същия начин, че ние говорим за септември 1182 01:01:19,910 --> 01:01:22,870 е деветият месец на годината 1183 01:01:22,870 --> 01:01:27,730 или понеделник е първия ден от седмицата. 1184 01:01:29,280 --> 01:01:33,070 Така че това ни дава начин да 1185 01:01:33,070 --> 01:01:37,030 разбера кои от тях са странно в сравнение дори 1186 01:01:37,030 --> 01:01:39,540 защото можете да видите тук, 1187 01:01:39,540 --> 01:01:43,640 ако го съпоставим с този T, 1188 01:01:46,310 --> 01:01:49,360 можете да видите, че всички капитализираната 1189 01:01:49,360 --> 01:01:53,040 са на равни позиции, 1190 01:01:53,040 --> 01:01:55,880 най-малко за първата дума, 1191 01:01:55,880 --> 01:01:59,080 и след това нещата се изхвърлен веднъж удари, че пространството, 1192 01:01:59,080 --> 01:02:02,460 тъй като не броим това пространство под формата на писмо, 1193 01:02:02,460 --> 01:02:05,150 така че ако ние започнахме 1194 01:02:05,150 --> 01:02:08,930 и отиде 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 пространство, 6, 7, 8, пространство, 1196 01:02:12,600 --> 01:02:16,440 9 и 10, 11, 12, и така нататък. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, така че ние определено ще искате да използвате някаква линия 1198 01:02:22,910 --> 01:02:27,760 да премине всеки един от героите на свой ред. 1199 01:02:31,330 --> 01:02:34,580 Така че в този момент, 1200 01:02:36,490 --> 01:02:38,360 ние ще се върнем към нашия стар pseudocode тук. 1201 01:02:40,970 --> 01:02:42,650 Като част от тази идентификация на кои от тях 1202 01:02:42,650 --> 01:02:45,350 са главни и кои от тях са малки, 1203 01:02:45,350 --> 01:02:48,340 ние ще искате да направите това в някаква линия. 1204 01:02:51,080 --> 01:02:53,390 Loop, дебелото черво. 1205 01:02:55,070 --> 01:03:01,220 Какъв вид на верига, от вида на повторения, които имаме, 1206 01:03:01,220 --> 01:03:03,670 изглежда да бъде добър да се използва в този случай? 1207 01:03:03,670 --> 01:03:05,610 >> И аз си мислех за контур. 1208 01:03:05,610 --> 01:03:07,500 И защо си мислиш за линия? 1209 01:03:07,500 --> 01:03:10,000 >> Тъй като тя започва от нула, а след това 1210 01:03:10,000 --> 01:03:13,000 , когато стигнем до дължината на низа, 1211 01:03:13,000 --> 01:03:16,170 и след това всяка итерация можете чува],? 1212 01:03:16,170 --> 01:03:18,260 Да, точно така. 1213 01:03:18,260 --> 01:03:21,490 Така че, от различните възможности за избор на вериги, 1214 01:03:21,490 --> 01:03:25,350 имаме за контури, докато вериги, и не се прави, докато вериги. 1215 01:03:25,350 --> 01:03:28,550 Когато за цикъла е особено полезно 1216 01:03:28,550 --> 01:03:32,120 е, когато искате да знаете 1217 01:03:32,120 --> 01:03:34,940 вид на мястото, където сте в течение, 1218 01:03:34,940 --> 01:03:38,520 колко пъти контур е изпълнен досега. 1219 01:03:38,520 --> 01:03:42,490 Което е точно това, което искаме да знаем в тази ситуация, 1220 01:03:42,490 --> 01:03:44,640 като Кели каза, 1221 01:03:44,640 --> 01:03:47,400 въз основа на по-рано коментар на Шарлот, че ние искаме да знаем позицията 1222 01:03:47,400 --> 01:03:49,900 на героя в низа, 1223 01:03:49,900 --> 01:03:51,750 и за контур ще ни даде точно това, 1224 01:03:51,750 --> 01:03:54,680 защото ако започнем да гледаш назад в нашия низ, 1225 01:03:54,680 --> 01:03:57,140 ако започнем за нашата линия на 0, 1226 01:03:57,140 --> 01:04:00,350 и нагоре по дължината на целия низ, 1227 01:04:00,350 --> 01:04:04,740 тогава можем да свържем буквата Т 1228 01:04:04,740 --> 01:04:08,110 с 0 в нашата линия, 1229 01:04:09,950 --> 01:04:13,080 писмо H с една в нашата верига, и така нататък, 1230 01:04:13,080 --> 01:04:16,600 става по целия път до края на низа. 1231 01:04:18,810 --> 01:04:21,890 >> Така че нека започнем кодиране това е просто малко 1232 01:04:21,890 --> 01:04:24,930 просто така че вие ​​да получите усещане за това как изглежда това. 1233 01:04:24,930 --> 01:04:27,980 Отивам да запазите този, 1234 01:04:27,980 --> 01:04:31,230 така че ние имаме нашата псевдо код тук 1235 01:04:33,490 --> 01:04:38,120 и аз отивам да изтриете всичко. 1236 01:04:38,120 --> 01:04:42,210 Така че аз имам един празен лист. 1237 01:04:42,210 --> 01:04:45,910 Аз ще започна с писмено INT главната (недействителни) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Аз ще поставя 0 за връщане в 1240 01:04:51,380 --> 01:04:53,320 и тогава}. 1241 01:04:53,320 --> 01:04:56,130 Така че, обикновено, когато започнете да програмирате, това е, което аз започвам с. 1242 01:04:56,130 --> 01:04:59,370 Аз ще го спаси, така че вие ​​го. 1243 01:05:06,290 --> 01:05:08,440 Така че едно от първите неща, за които говорихме 1244 01:05:08,440 --> 01:05:10,920 да получава данни от потребителя 1245 01:05:10,920 --> 01:05:13,740 и да го приберете в низ. 1246 01:05:13,740 --> 01:05:16,420 Как да стигнем до въвеждане от потребител? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, всичко е наред. 1249 01:05:23,150 --> 01:05:26,820 Така че, ако въведете GetString () 1250 01:05:26,820 --> 01:05:32,150 и точка и запетая. 1251 01:05:32,150 --> 01:05:36,630 Да пуснете този план, на първо място? 1252 01:05:36,630 --> 01:05:38,430 А защо не и това ще бягаш? 1253 01:05:38,430 --> 01:05:40,090 >> Трябва да декларирате променлива. 1254 01:05:40,090 --> 01:05:43,040 Аз трябва да декларирате променлива. Добре. 1255 01:05:43,040 --> 01:05:45,700 >> И така, как да го направя? 1256 01:05:45,700 --> 01:05:48,400 Имате ли нещо против пишете нещо, го споделят? 1257 01:05:48,400 --> 01:05:51,270 И тогава можем да го издърпайте нагоре. 1258 01:05:51,270 --> 01:05:54,630 Да видим, Дан, нали, нали. 1259 01:05:54,630 --> 01:05:59,100 Или Даниел. Разбрано, въвеждане на низ = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Страхотно. 1261 01:06:01,340 --> 01:06:02,890 Това ще бягаш? 1262 01:06:02,890 --> 01:06:05,210 Нека да опитаме. 1263 01:06:05,210 --> 01:06:08,890 Хит план, код качване източник, сграда, но е станала грешка. 1264 01:06:08,890 --> 01:06:11,040 Добре. 1265 01:06:11,040 --> 01:06:14,950 Така че какво става тук? 1266 01:06:14,950 --> 01:06:18,700 Използване на недекларирания идентификатор "низ". 1267 01:06:18,700 --> 01:06:22,840 >> Ние трябва да включват библиотеките? 1268 01:06:22,840 --> 01:06:25,130 Да, така Дан казваме, че трябва да се включи библиотеките. 1269 01:06:25,130 --> 01:06:28,270 Че това, което ще кажа, Стела? Страхотно. 1270 01:06:29,450 --> 01:06:31,430 Това е страхотно, така че Стела, можете да 1271 01:06:31,430 --> 01:06:34,800 копирайте този код от Space Даниел? 1272 01:06:34,800 --> 01:06:37,580 Ако кликнете върху Даниел Roland Ки, копирате, 1273 01:06:37,580 --> 01:06:41,360 и тогава ще ви постави включват ред, и след това го запишете? 1274 01:06:46,580 --> 01:06:49,360 Нека да знаят, когато сте готови. 1275 01:06:57,160 --> 01:06:59,490 Така че този синтаксис включват също е вид фънки; 1276 01:06:59,490 --> 01:07:02,210 е като че хеш таг, 1277 01:07:02,210 --> 01:07:05,760 и е там да включват, и след това са тези ъглови скоби. 1278 01:07:12,490 --> 01:07:15,360 Спомняте ли си как това работи, или трябва да ги качим на този код точно тук? 1279 01:07:15,360 --> 01:07:17,850 >> Аз съм добре. 1280 01:07:17,850 --> 01:07:19,810 Добре. 1281 01:07:19,810 --> 01:07:23,260 >> Отпечатани - Не бях сигурен, които библиотеката, макар и. 1282 01:07:23,260 --> 01:07:25,570 О, добре - да, така че е CS50 библиотека. 1283 01:07:25,570 --> 01:07:27,660 >> О, аз слагам stdio библиотека. 1284 01:07:27,660 --> 01:07:30,950 >> О, я - да, не, това е - 1285 01:07:30,950 --> 01:07:34,380 Така се оказва, че низ е всъщност нещо, което е специално за CS50. 1286 01:07:36,590 --> 01:07:41,240 Всъщност не е вярно тип низ 1287 01:07:41,240 --> 01:07:45,000 защото точно тук, стринг е в позиция вида - 1288 01:07:45,000 --> 01:07:49,140 ние сме за обявяване на променлива наречена вход от тип низ - 1289 01:07:49,140 --> 01:07:53,320 и ние сме вътре на входа 1290 01:07:53,320 --> 01:07:58,440 стойност, която получава върнат при нас: на изхода на тази GetString извикване на функция. 1291 01:07:58,440 --> 01:08:02,910 Можете да кажете, това е извикване на функция, защото има скоби, точно както ФОРМАТ прави, 1292 01:08:02,910 --> 01:08:05,920 точно като strlen. 1293 01:08:05,920 --> 01:08:09,860 Но низ всъщност не е реален вид 1294 01:08:09,860 --> 01:08:11,760 на езика C. 1295 01:08:11,760 --> 01:08:15,710 Сме го направили във вид, а ние ще се повече, това, което всъщност е 1296 01:08:15,710 --> 01:08:19,000 C, защото има начин да работят с низове; 1297 01:08:19,000 --> 01:08:22,479 ние току-що направихте нещо, за да го правят да изглежда по-малко хубав. 1298 01:08:22,479 --> 01:08:25,240 >> Така че тук ние тръгваме. 1299 01:08:25,240 --> 01:08:28,439 Ето код Стела. 1300 01:08:28,439 --> 01:08:32,470 Трябва # включват . 1301 01:08:32,470 --> 01:08:36,390 Други хора ще наричаме това като хеш включват понякога или рязко включват. 1302 01:08:36,390 --> 01:08:39,580 Сега можем да я стартирате, да го стартирате, 1303 01:08:39,580 --> 01:08:43,649 и ние все още се грешка. 1304 01:08:43,649 --> 01:08:46,290 Нека видим какво се случва. 1305 01:08:48,069 --> 01:08:50,569 "Неизползван променлива" вход ". 1306 01:08:50,569 --> 01:08:53,350 Добре, така че е готино, това е супер. 1307 01:08:53,350 --> 01:08:55,859 Искам да кажа, че не е наистина страхотно, 1308 01:08:55,859 --> 01:08:57,930 защото ние сме грешка и тя не работи, 1309 01:08:57,930 --> 01:09:00,410 но това, което казва, е, че 1310 01:09:00,410 --> 01:09:03,130 не сме използвали нашата променлива, която има смисъл. 1311 01:09:03,130 --> 01:09:06,090 Ние не се опитах да направя нещо с него. 1312 01:09:07,819 --> 01:09:10,490 Това е начинът, по който 1313 01:09:10,490 --> 01:09:14,170 Звъня се опитва да ни помогнат да сме сигурни, че не сте само с помощта на променливи 1314 01:09:14,170 --> 01:09:18,819 и след това по невнимание ги нарича нещо друго, по-късно в нашия код, 1315 01:09:18,819 --> 01:09:21,649 ни помага да се избегнат грешки по този начин. 1316 01:09:23,130 --> 01:09:28,810 >> Добре, така че ние имаме вход от потребителя, 1317 01:09:28,810 --> 01:09:31,910 ние го съхранява в променлива. 1318 01:09:31,910 --> 01:09:34,569 Следващата стъпка е да се тогава 1319 01:09:34,569 --> 01:09:37,609 започнете да търсите всички символи в низа 1320 01:09:37,609 --> 01:09:41,830 и идентифициране на тези, които трябва да бъдат главни букви 1321 01:09:41,830 --> 01:09:44,600 и кои от тях трябва да бъдат малки. 1322 01:09:44,600 --> 01:09:49,439 И като Кели и Шарлот възпитан, 1323 01:09:49,439 --> 01:09:52,340 Ние правим това с помощта на примка. 1324 01:09:52,340 --> 01:09:55,520 Така че някой си спомня синтаксиса на линия 1325 01:09:55,520 --> 01:09:58,670 и би искал да забие нож в писмена форма 1326 01:09:58,670 --> 01:10:03,170 на първа линия на линия, само за малко? 1327 01:10:05,740 --> 01:10:07,330 Кели, искам да го пробвам? 1328 01:10:07,330 --> 01:10:10,300 >> Да, така трябва да се инициализира първо, 1329 01:10:10,300 --> 01:10:13,170 така че аз сложих = 0, 1330 01:10:13,170 --> 01:10:15,390 и след това аз съм 01:10:18,570 Във вашето пространство - мога ли да го спра? 1332 01:10:18,570 --> 01:10:21,330 >> Да, прецаках малко, но да. 1333 01:10:21,330 --> 01:10:24,180 >> Добре, нека го издърпайте нагоре. 1334 01:10:24,180 --> 01:10:26,490 Страхотно. 1335 01:10:26,490 --> 01:10:29,510 >> Но тогава аз не знаех, че ако сте имали - 1336 01:10:29,510 --> 01:10:32,180 Да, добре. 1337 01:10:33,020 --> 01:10:36,030 Значи ето какво Кели: нека погледнем бързо. 1338 01:10:36,030 --> 01:10:40,290 Значи тя е включена cs50 библиотека на върха. 1339 01:10:40,290 --> 01:10:44,790 Тя е включена в стандартната библиотека IO в горната част, 1340 01:10:45,550 --> 01:10:48,990 , а стандартната IO има функции като ФОРМАТ 1341 01:10:48,990 --> 01:10:51,690 Така че, ако някога искате да използвате ФОРМАТ, имате нужда от тази линия. 1342 01:10:53,060 --> 01:10:56,140 И тогава тя включва низ библиотека, 1343 01:10:56,140 --> 01:10:58,200 , които ще имаме нужда, 1344 01:10:58,200 --> 01:11:01,010 ,, защото низ библиотека има strlen функция, 1345 01:11:01,010 --> 01:11:04,320 които ние ще стигнем до само малко. 1346 01:11:04,320 --> 01:11:07,560 Така че, ако погледнем какво е направил Кели, 1347 01:11:07,560 --> 01:11:10,260 можете ли да ни преведе през какво си направил? 1348 01:11:10,260 --> 01:11:13,600 >> Да, така искам да кажа, аз имам грешки, така 1349 01:11:13,600 --> 01:11:15,380 Да, не, it's - 1350 01:11:15,380 --> 01:11:18,580 >> Исках да се обадя на низ, че аз имам само "низ". 1351 01:11:18,580 --> 01:11:22,230 Исках да отпечатате низа 1352 01:11:22,230 --> 01:11:25,640 и след това - 1353 01:11:27,450 --> 01:11:30,930 Исках да ти харесва да зададете низ като масив на всеки знак 1354 01:11:30,930 --> 01:11:33,170 е различен [чува, нали? 1355 01:11:33,170 --> 01:11:38,080 И тогава аз исках да започне на позиция 0 1356 01:11:38,080 --> 01:11:40,630 и след това на всеки две пространства, 1357 01:11:40,630 --> 01:11:42,580 Щях да се възползва, 1358 01:11:42,580 --> 01:11:45,680 така че аз просто го описва като 23, защото бях в ASCII таблица. 1359 01:11:45,680 --> 01:11:48,730 Така че това е, което аз си мислех - Знам, че не е правилно. 1360 01:11:48,730 --> 01:11:50,920 >> Получих го, така че това е едно чудесно начало. 1361 01:11:50,920 --> 01:11:54,120 Мисля, че много на рамката е на мястото си тук. 1362 01:11:54,120 --> 01:11:57,500 Нека минем през вид ред по ред и да видим какво се случва. 1363 01:11:57,500 --> 01:12:01,040 Така че начина, по който обичам да правя това е просто започнете от съставянето на код 1364 01:12:01,040 --> 01:12:04,300 и отдаване под наем на компилатора да ми каже, какво не е наред с моя код, 1365 01:12:04,300 --> 01:12:07,450 тъй като съставител е наистина добър в ви казвам какво не е наред с вашия код. 1366 01:12:09,790 --> 01:12:12,780 Така че, ако ние го играят, изграждане, и тя не се гради. 1367 01:12:12,780 --> 01:12:14,860 Той казва, че има грешка, 1368 01:12:14,860 --> 01:12:17,320 така че ако ние превъртете надолу и потърсете в първата грешка, 1369 01:12:17,320 --> 01:12:20,960 се казва - 1370 01:12:20,960 --> 01:12:22,040 превъртете нагоре към върха, 1371 01:12:22,040 --> 01:12:26,070 можем да видим, има 5 грешки, генерирани тук в долната част. 1372 01:12:26,070 --> 01:12:30,180 Опа, това е наистина отрязани. 1373 01:12:31,810 --> 01:12:35,790 Предполагам, че това просто няма да се получи по-добре. 1374 01:12:36,970 --> 01:12:38,500 >> Ето ни. 1375 01:12:39,790 --> 01:12:42,530 Така че има пет общите генерирани грешки. 1376 01:12:42,530 --> 01:12:45,140 Тук мога само да видите първата 2, 1377 01:12:45,140 --> 01:12:49,100 така че може да се движи нагоре малко и след това на превъртане нагоре. 1378 01:12:49,100 --> 01:12:53,220 Това е командата, което се проведе за съставяне на код, 1379 01:12:53,220 --> 01:12:59,030 и след това първата грешка е в file.c тук: 1380 01:12:59,030 --> 01:13:03,300 "Очаква се идентифицират или" ("", и това е по тази линия 1381 01:13:03,300 --> 01:13:06,680 където казахме низ = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Можете да видите тук, че е на ред 8 от file.c 1383 01:13:12,920 --> 01:13:17,230 и след това аз вярвам, че това е знак 12 - това е грешка. 1384 01:13:17,230 --> 01:13:20,390 И така, какво не е наред по линия 8 - Кели? 1385 01:13:20,390 --> 01:13:22,810 >> Ти просто трябва да го нарека, като писмо или нещо, 1386 01:13:22,810 --> 01:13:24,400 като низ или нещо? 1387 01:13:24,400 --> 01:13:28,250 Да, така се оказва, че тези специални имена тип 1388 01:13:28,250 --> 01:13:31,770 низ, ПНА, Чар, кратко, 1389 01:13:31,770 --> 01:13:35,740 всички те са специални ключови думи, 1390 01:13:35,740 --> 01:13:38,940 и не може действително да ги използват като имената на променливите, 1391 01:13:38,940 --> 01:13:41,430 защото компилаторът гледа и казва: 1392 01:13:41,430 --> 01:13:43,680 "О, аз знам, че е един вид" 1393 01:13:43,680 --> 01:13:46,530 така че всъщност не може да има низ променлива наречена низ, 1394 01:13:46,530 --> 01:13:50,800 както аз се опитвам да направя тук, това няма да работи. 1395 01:13:52,610 --> 01:13:58,250 Но вместо това, ние можем да го наречем нещо като S ST или ул.. 1396 01:13:58,250 --> 01:14:01,540 Ние също така не може да се нарече Int. 1397 01:14:01,540 --> 01:14:03,740 Не можем да имаме низ, наречен Int. 1398 01:14:03,740 --> 01:14:06,740 Ние не може да има низ, наречен Чар, нито един от тези, които ще работят. 1399 01:14:06,740 --> 01:14:09,420 >> Така че ние просто ще го наречем за момента. 1400 01:14:10,630 --> 01:14:13,170 Страхотно. 1401 01:14:13,170 --> 01:14:17,500 И така, какво следва се случва в тази насока? 1402 01:14:21,390 --> 01:14:24,350 String - тази линия изглежда доста добре? 1403 01:14:24,350 --> 01:14:27,830 Да му се даде още един шанс, за да го стартирате. 1404 01:14:27,830 --> 01:14:30,360 Добре, така че ние все още се грешки. 1405 01:14:30,360 --> 01:14:32,080 Този път, ние сме до четири грешки. 1406 01:14:32,080 --> 01:14:34,350 Така че имаме един от тях. 1407 01:14:34,350 --> 01:14:36,130 Нека да се движи нагоре. 1408 01:14:36,130 --> 01:14:38,890 "Неочакван тип на име" низ ": очаквани израз," нали? 1409 01:14:38,890 --> 01:14:41,780 >> Да, това е, защото аз се опитах да назове низ. 1410 01:14:41,780 --> 01:14:44,270 Да, така изглежда сега ние също трябва да се определят 1411 01:14:44,270 --> 01:14:46,560 всички тези препратки към низ. 1412 01:14:46,560 --> 01:14:50,070 Можете да видите, че има препратка към низ тук, тук, тук, 1413 01:14:50,070 --> 01:14:53,440 така че ние може да се движи всичко това да е. 1414 01:14:56,040 --> 01:15:00,930 Велики. Добре, че се кандидатира отново. 1415 01:15:00,930 --> 01:15:03,260 Сграда - друга грешка. 1416 01:15:03,260 --> 01:15:06,900 >> Добре, сега сме на една грешка, 1417 01:15:06,900 --> 01:15:11,090 така Int I = и след това квадратните скоби. 1418 01:15:11,090 --> 01:15:14,880 Можете ли да ни кажете малко повече за това, което правим тук, Кели? 1419 01:15:14,880 --> 01:15:17,120 >> Да. 1420 01:15:17,120 --> 01:15:19,410 Това е по линия 10. 1421 01:15:19,410 --> 01:15:22,760 >> Не знам дали имаме нужда от всичко това, 1422 01:15:22,760 --> 01:15:25,560 но мисля, че се опитва да 1423 01:15:25,560 --> 01:15:27,580 Аз ще го спаси, така че да следват заедно. 1424 01:15:27,580 --> 01:15:30,470 >> Мисля, че бях 1425 01:15:30,470 --> 01:15:33,150 опитвайки се да го кажа, за да започне в позиция "0" 1426 01:15:33,150 --> 01:15:35,030 в началото на моята линия, 1427 01:15:35,030 --> 01:15:38,370 така че аз мисля, че може би това, казвайки е излишно. 1428 01:15:39,690 --> 01:15:41,350 Така че просто трябва да набележи 1429 01:15:41,350 --> 01:15:44,850 казваха, че това сте се опитвали да започне тази позиция 0 1430 01:15:44,850 --> 01:15:47,030 и се получи това - Да, 1431 01:15:47,030 --> 01:15:50,460 така че аз мисля, че по-рано, твърде, когато вървяха чрез кода, 1432 01:15:50,460 --> 01:15:54,070 си говорим за начина, по който исках за лечение на низ като масив 1433 01:15:54,070 --> 01:15:57,440 така че ние може да има достъп до всеки символ поотделно. 1434 01:15:57,440 --> 01:16:00,660 Мисля, че Дан масиви, също се опитва да конвертирате струни в масиви. 1435 01:16:01,400 --> 01:16:03,300 >> Оказва се, че под предния капак, 1436 01:16:03,300 --> 01:16:06,060 низ всъщност се съхранява като масив, 1437 01:16:06,060 --> 01:16:08,060 и можете да я ползвате като масив; 1438 01:16:08,060 --> 01:16:12,390 че няма реализация, която трябва да направим. 1439 01:16:12,390 --> 01:16:15,770 Низ не е ли така - 1440 01:16:15,770 --> 01:16:18,200 низ не е наистина масив, 1441 01:16:18,200 --> 01:16:21,940 но можете да получите достъп до него като такъв, защото всички герои се съхраняват 1442 01:16:21,940 --> 01:16:25,160 в непосредствена близост една до друга в паметта, 1443 01:16:25,160 --> 01:16:28,310 така че, ако искате да получите първия символ на низа, 1444 01:16:28,310 --> 01:16:31,910 това е същото като получаване на първото число в цяло число масив. 1445 01:16:31,910 --> 01:16:35,010 Така че ние често - Ще 1446 01:16:35,010 --> 01:16:36,360 2 като 1447 01:16:36,360 --> 01:16:38,590 о, като низ като масив, 1448 01:16:38,590 --> 01:16:40,830 въпреки че наистина - ñ това са много различни неща, 1449 01:16:40,830 --> 01:16:43,410 но можете да се отнасяме към тях много същото. 1450 01:16:44,700 --> 01:16:47,400 Така се оказва, че тази линия всъщност - 1451 01:16:47,400 --> 01:16:51,270 ние не трябва да се направи някаква реализация, 1452 01:16:51,270 --> 01:16:53,500 и в действителност, 1453 01:16:53,500 --> 01:16:56,790 това всъщност не е валиден израз, 1454 01:16:56,790 --> 01:16:59,040 което е това, което ни компилатор ни казва. 1455 01:16:59,040 --> 01:17:01,290 Той казва: "Хей, че очаква израз, 1456 01:17:01,290 --> 01:17:04,610 и това, което имам тук е нещо, което не е израз. " 1457 01:17:04,610 --> 01:17:07,310 Да се ​​обяви масив, 1458 01:17:07,310 --> 01:17:11,780 всичко, което трябва да направите, е нещо като това с точка и запетая, 1459 01:17:11,780 --> 01:17:15,080 и след това да ви кажа масива колко дълго искате да бъде, 1460 01:17:15,080 --> 01:17:18,370 като пет, така че тази линия 10 1461 01:17:18,370 --> 01:17:23,880 ще обяви масив наречен с пет числа в него. 1462 01:17:23,880 --> 01:17:26,540 >> Това е настрана, това не е необходимо за кода, 1463 01:17:26,540 --> 01:17:30,970 но това е - това е един вид на какво прилича декларацията. 1464 01:17:30,970 --> 01:17:35,310 >> Как да не използвате Чар [strlen (а)? 1465 01:17:35,310 --> 01:17:38,500 Чар [strlen (а)? 1466 01:17:38,500 --> 01:17:41,500 >> Чар I, а след това вътре в скоби, strlen (а). 1467 01:17:43,900 --> 01:17:47,710 Да, така бихме могли да 1468 01:17:47,710 --> 01:17:49,460 бихме могли да направим това, 1469 01:17:49,460 --> 01:17:52,160 и това ще обявят какво ще направите? 1470 01:17:52,160 --> 01:17:55,900 >> Мисля, че ще обяви масив 1471 01:17:55,900 --> 01:18:01,780 , като на 1472 01:18:01,780 --> 01:18:04,540 О, не е нужно и - о, 1473 01:18:04,540 --> 01:18:06,420 Да, определено не е нужно аз. 1474 01:18:06,420 --> 01:18:10,250 Вие декларирате масив от знаци 1475 01:18:10,250 --> 01:18:13,150 на дължина и. 1476 01:18:14,680 --> 01:18:16,770 И така, това, което Сам казва, е, че 1477 01:18:16,770 --> 01:18:20,660 тази линия 10 - нека ме остави малко пространство между него и останалите, за да можем да го изолира - 1478 01:18:20,660 --> 01:18:23,440 тази линия 10 ще обявят масив 1479 01:18:23,440 --> 01:18:28,520 от символи, strlen (а) на стойност от тях, 1480 01:18:28,520 --> 01:18:32,270 но ние всъщност се нуждаем от I, 1481 01:18:32,270 --> 01:18:35,710 и причината ние се нуждаем от е така, защото трябва да дадем на масива име; 1482 01:18:35,710 --> 01:18:38,900 В противен случай, ние не ще има възможност да се позове на масива по-късно в кода. 1483 01:18:38,900 --> 01:18:41,180 >> Така че това тук е името на масива 1484 01:18:41,180 --> 01:18:43,420 и вътре е дължината. 1485 01:18:43,420 --> 01:18:45,010 Това ще ни даде масив, 1486 01:18:45,010 --> 01:18:47,430 но това е - отново, това е декларация. 1487 01:18:47,430 --> 01:18:50,380 Това не е задача, това не е инициализация. 1488 01:18:50,380 --> 01:18:52,330 Ако ние заявяваме този масив по този начин, 1489 01:18:52,330 --> 01:18:54,490 всъщност има нищо в съдържанието на масива. 1490 01:18:54,490 --> 01:18:57,490 Това е просто боклуци - каквото има в него. 1491 01:18:57,490 --> 01:18:59,780 И както казахме, 1492 01:18:59,780 --> 01:19:01,340 ние всъщност дори не е необходимо да се направи това преобразуване, 1493 01:19:01,340 --> 01:19:04,810 защото ние вече можем да лечение на низ като масив. 1494 01:19:06,750 --> 01:19:09,170 Знам, че малко дълго време, 1495 01:19:09,170 --> 01:19:12,330 но аз искам просто наистина бързо да стигнете до това за цикъл 1496 01:19:12,330 --> 01:19:14,850 и ще ви покаже как за достъп до отделните символи в масива, 1497 01:19:14,850 --> 01:19:17,170 защото това е от ключово значение за нашата задача. 1498 01:19:17,170 --> 01:19:20,790 И тогава ние ще ви позволи да се премине от там. 1499 01:19:20,790 --> 01:19:24,610 >> Така че тук имаме за цикъл 1500 01:19:24,610 --> 01:19:28,310 , който изглежда почти добре. 1501 01:19:28,310 --> 01:19:30,960 Това, което не е съвсем почти там? 1502 01:19:30,960 --> 01:19:33,240 What's - това, което не е съвсем прав за това линия? 1503 01:19:33,240 --> 01:19:36,010 >> Не фигурни скоби? 1504 01:19:36,010 --> 01:19:38,420 Не фигурни скоби, например. 1505 01:19:38,420 --> 01:19:42,580 Искаш ли да сме сигурни, че тялото на цикъла с фигурни скоби. 1506 01:19:42,580 --> 01:19:45,240 Опа, не на площада презрамки! 1507 01:19:45,240 --> 01:19:48,660 А какво е следващото нещо, което ние трябва да направим с този цикъл? 1508 01:19:48,660 --> 01:19:52,640 Ако се опитам и да го стартирате, 1509 01:19:52,640 --> 01:19:56,740 какво тази грешка, че съм се? 1510 01:19:56,740 --> 01:20:00,990 Получите всички тези грешки - аз трябва да съм се инициализира. 1511 01:20:00,990 --> 01:20:03,610 Велики. 1512 01:20:03,610 --> 01:20:05,770 Така че това ще бъде една линия - това не е съвсем там, 1513 01:20:05,770 --> 01:20:08,680 но това е наистина близо. 1514 01:20:08,680 --> 01:20:11,260 Този код сега можем да тичам, 1515 01:20:11,260 --> 01:20:14,620 изграждане, грешка все още съществува. 1516 01:20:17,960 --> 01:20:19,800 Защо той все още се оплакват, 1517 01:20:19,800 --> 01:20:22,030 заявявайки, че изразът е неизползвана, 1518 01:20:22,030 --> 01:20:24,600 и това е така, защото този ред не прави нищо. 1519 01:20:24,600 --> 01:20:27,620 Ние не го съхранява навсякъде, ние не запазите резултата. 1520 01:20:27,620 --> 01:20:30,210 Къде трябва да се спестяват този резултат? 1521 01:20:30,210 --> 01:20:32,920 >> Или аз? 1522 01:20:32,920 --> 01:20:35,990 Точно така, и това фънки синтаксис, 1523 01:20:35,990 --> 01:20:38,550 това е с квадратни скоби 1524 01:20:38,550 --> 01:20:41,500 означава достъп до I-тата характер на S. 1525 01:20:41,500 --> 01:20:45,650 Това ще бъде нещо, което е наистина важно за възлагане. 1526 01:20:45,650 --> 01:20:48,070 За съжаление, ние ще трябва да спрем до тук, 1527 01:20:48,070 --> 01:20:50,550 така, че Себастиан раздел може да дойде, 1528 01:20:50,550 --> 01:20:53,980 , но съм щастлив да остане след отвън и ще предприемат някакви въпроси. 1529 01:20:53,980 --> 01:20:56,680 Така че благодаря ви момчета, че дойдохте. 1530 01:20:56,680 --> 01:20:59,730 Това би трябвало да качвате, изграждане, стартирайте. 1531 01:21:01,570 --> 01:21:04,320 Можем да въведете низ като "здравей" 1532 01:21:06,570 --> 01:21:08,730 и го отпечатва "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Смях] 1534 01:21:11,030 --> 01:21:14,640 >> Така че не е съвсем там, но се движат, все към тези вериги! 1535 01:21:14,640 --> 01:21:18,640 Благодаря, че дойдохте, и аз ще бъда отвън.