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 >> Так що простори робить це відрізняється від 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 Я збираюся зберегти його, натиснувши цю кнопку Зберегти. 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 вона буде завантажити код у ваш простору, теж. 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 це написати трохи використанні Printf про себе, 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 Коли ви закінчите писати, що з вашої маленької Printf, 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 за допомогою кнопки Save Редакція, це перший маленький хлопець тут, 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 так що ця кнопка Play в лівому верхньому кутку буде 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'm - Я думаю, що я 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 Я можу збільшити, натисніть кнопку Виконати, 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 Awesome. 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 Високий, спасибі, Dan! 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 Як Daniel до мене, я ніколи не робив ніяких CS, але звучить круто. 163 00:08:25,680 --> 00:08:28,120 Я родом з Чикаго. 164 00:08:28,120 --> 00:08:31,640 Awesome. Так перевірте його роздруківки тут. 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 Нічого собі, у нас є 2 Kellys, 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Так Kelly - ви йдете Келлі Ren? 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 Я за фахом розуму, мозку і освіти. 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 Awesome. 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 >> >> Я Михаїла. 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 Awesome - Ви побудували велосипед цього літа? 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 >> Е-е-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 Ну, прохолодному, добре, спасибі, Михайла. 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 Ось це так! 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 I'm - запустіть його. 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 який схожий на розум, мозок, поведінка концентрації тут, 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-ING класи інформатики 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 >> Привіт, я Стела, я новачок в сірих. 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 Цікавий факт, Джиммі був першим другом Гарвардського мій, 266 00:13:36,080 --> 00:13:38,360 тому що ми обоє з Чикаго. 267 00:13:38,360 --> 00:13:42,450 Cool, і грація - який повинен бути дійсно гарним, правильно? 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 >> Я повинен був поставити крапку з комою після кожного рядка. 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 називається Clang, 281 00:14:26,670 --> 00:14:29,460 і з цієї причини ми почали використовувати Clang в цьому році - 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 Clang насправді дає вам повідомлення про помилки, які мають сенсу. 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 Високий, дайте мені знати, і ми будемо потягніть його вгору, і ми будемо його запуску. 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 Awesome - перегляд 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 підтягти проблема набору 2, і ми будемо дивитися на стандартне видання Сегодня. 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 , А потім один на Caesar 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 До речі, як вони були? 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 в той час як цикл відрізняється від DO-циклу. 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 я = 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 я = 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 в, що називається Int я. 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 Ось він іде, дивовижний. 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 >> Я дістав INT, так що немає ніякої декларацією [нерозбірливо], а не призначення. 446 00:22:24,950 --> 00:22:28,770 Той знак рівності, я поставив 2 рівні знаки, що означає рівні. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Так, так, що Сем дійсно був він вийняв Int 449 00:22:33,320 --> 00:22:35,770 , Який був тут раніше, 450 00:22:35,770 --> 00:22:39,340 так що якщо я просто дивлюсь на це - це те, що було раніше, він сказав, INT, 451 00:22:39,340 --> 00:22:41,970 який був оголосити його - таким чином, ми вийняли типу. 452 00:22:41,970 --> 00:22:44,710 Там в Int, Char, String, коротше кажучи, 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 коли у вас є 1 знак рівності, 459 00:22:59,580 --> 00:23:01,780 це оператор привласнення. 460 00:23:01,780 --> 00:23:04,930 Це не перевірка чи не 2 речі дорівнюють. 461 00:23:04,930 --> 00:23:07,920 Це насправді установка щось рівне щось. 462 00:23:07,920 --> 00:23:11,110 Ми працюємо № 17 в змінну я. 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 на 4 пробілу або табуляції. 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 Ми ніколи не змінити значення я. 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 Awesome. 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 ми просимо вас відступ цьому на 4 просторів, які ви можете зробити 506 00:25:13,930 --> 00:25:16,440 , Просто натиснувши клавішу табуляції 507 00:25:16,440 --> 00:25:18,860 або вручну покласти в 4 пробілу себе. 508 00:25:21,880 --> 00:25:25,050 Cool, нормально так давайте повернемося і подивимося на 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 так що це тіло DO-а - 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 таким чином збільшити вміст я і зробити це 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 Ви можете отримати 2 дуже різних видів змінних; 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 між 2 типами і чому ви використовуєте різні види змінних, 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 Виконати, отримати іншу помилку. 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 Я не знаю, якщо вам потрібно перевизначити INT, 576 00:29:01,990 --> 00:29:04,980 але зробити в той час (я <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 Якщо ми прокрутити донизу, "це тіло" розпечатав 3 рази. 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 З C програми виконуються вид в цьому послідовному порядку, 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 вона збирається спочатку оголосити Int Я, 618 00:31:09,120 --> 00:31:12,030 встановити зміст я б 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, тому що я сказав 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 1 у 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 як ви робите з DO-циклу. 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 ці 2 входи, наші аргументи або параметри, 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 Крім того, весь цей агдс INT, 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 якщо видаваних Clang? 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 "Використання неоголошений ідентифікатор 'S'"; 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 так шифр Цезаря, не будучи дуже надійною, 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 де ви насправді писати шифр Цезаря, ви зрозумієте, трохи більше 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 протягом усього курсу є Printf. 813 00:41:17,310 --> 00:41:19,680 Printf саме по собі є функцією 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 У програмі C, там повинен бути основною функцією, 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 Так, так Caesar 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 але роздуває код - 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 Давайте Михайла - ви будете читати це для нас? 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 Appliance, 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 де жирними текст являє собою вхід деяких користувачів. 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 >> Awesome, спасибі. 906 00:45:51,640 --> 00:45:54,750 Так як Михайла сказали, 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 на головній приходить з внутр агдс, всі ці речі, 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 основних (недійсними), нічого в ній. 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 Швидше за все, ми будемо намагатися писати деякі псевдокод 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 >> Так що, коли я починаю писати псевдокод, 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 у рядку 2? 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 Давайте запитаємо у Келлі Ren цей час. 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 Отже, ми говорили про змінних в нашому псевдокоді тут 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 O? 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 ми повернемося до нашим старим псевдокод тут. 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 1 в нашому цикл, і так далі, 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 Awesome. 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 Це те, що ви збираєтеся сказати, Стела? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Це приголомшливо, тому Стелла, ти можеш 1271 01:06:31,430 --> 01:06:34,800 скопіюйте код з космічного Данила? 1272 01:06:34,800 --> 01:06:37,580 Якщо ви натиснете на Daniel 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 Ви можете сказати, що це виклик функції, тому що у нього є дужки, як Printf робить, 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 У мові Сі. 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 Clang намагається допомогти нам упевнитися, що ми не тільки за допомогою змінних 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 Чи є у вашій Space - я можу витягнути його? 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 Awesome. 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 Вона включена в стандартну бібліотеку введення-виведення у верхній частині, 1340 01:10:45,550 --> 01:10:48,990 і стандартного вводу-виводу має такі функції, як Printf, 1341 01:10:48,990 --> 01:10:51,690 так що якщо ви хочете використовувати Printf, потрібно цю лінію. 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 Так, Ні, це - 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 , А потім кожні 2 місця, 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 Таким чином, існує всього 5 помилок, що генеруються. 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 де ми сказали String = 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 так що рядок, Int, Char, короткі, 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 Але замість цього, ми можемо назвати це щось подібне з і ї або вул. 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 Awesome. 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 На цей раз, ми до 4 помилки. 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 = S, а потім у квадратних дужках. 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 такі як 5, так що ця лінія 10 1461 01:17:18,370 --> 01:17:23,880 буде оголосити масив називається я з 5 чисел у ньому. 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 >> Як би вам не використовувати символ I [StrLen (и)]? 1465 01:17:35,310 --> 01:17:38,500 Char я [StrLen (и)]? 1466 01:17:38,500 --> 01:17:41,500 >> CHAR 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 але насправді нам потрібна я, 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 Як там - те, що це не зовсім правильно про це циклі? 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 >> S або я? 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-ий символ с. 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 Спасибі, що прийшли, і я буду зовні.