1 00:00:00,000 --> 00:00:11,736 2 00:00:11,736 --> 00:00:16,626 >> [ВІДТВОРЕННЯ ВІДЕО] 3 00:00:16,626 --> 00:00:19,410 >> -А Тріумф математичне і механічною вміння 4 00:00:19,410 --> 00:00:23,270 це великий новий автомат калькулятор в Гарвардському університеті. 5 00:00:23,270 --> 00:00:27,140 Складні проблеми математики поклав через машину в закодованому вигляді 6 00:00:27,140 --> 00:00:31,710 на стрічці точно вирішена в мізерно мала частина часу, необхідного 7 00:00:31,710 --> 00:00:32,819 для розрахунку людини. 8 00:00:32,819 --> 00:00:44,280 9 00:00:44,280 --> 00:00:48,220 Призначений для прискорення всіх форм математичне та наукове дослідження, 10 00:00:48,220 --> 00:00:53,840 гігант механічна мозок буде працювати для ВМС США до кінця війни. 11 00:00:53,840 --> 00:01:03,620 12 00:01:03,620 --> 00:01:06,570 >> [КІНЕЦЬ ПЕРЕГЛЯДУ] 13 00:01:06,570 --> 00:01:08,590 >> Девід Дж Малан: Це, це CS50. 14 00:01:08,590 --> 00:01:10,590 Минуле було чарівне місце, але якщо ви коли-небудь 15 00:01:10,590 --> 00:01:13,366 Цікаво, що цей пристрій в Гарвардському наукового центру, 16 00:01:13,366 --> 00:01:16,150 це дійсно частина з Гарвардський Марк I, і це 17 00:01:16,150 --> 00:01:18,710 на дисплеї в даний час за останні багато років. 18 00:01:18,710 --> 00:01:20,590 І те, що ви побачите вбудовані в набір проблем 19 00:01:20,590 --> 00:01:24,416 один погляд за лаштунки на те, що цей пристрій зробили, і робить, 20 00:01:24,416 --> 00:01:27,540 професора Гаррі Льюїс, який в наука відділ тут комп'ютер. 21 00:01:27,540 --> 00:01:29,440 Так про це трохи пізніше. 22 00:01:29,440 --> 00:01:33,990 >> Але сьогодні ми починаємо перехід з минулого тижня на це, 23 00:01:33,990 --> 00:01:37,290 і ми привеземо згадки однієї фотографії тут 24 00:01:37,290 --> 00:01:38,630 що насправді досить відомий. 25 00:01:38,630 --> 00:01:42,270 Хто-небудь знає, що це тут на екрані? 26 00:01:42,270 --> 00:01:43,880 Принаймні, згідно з міфом. 27 00:01:43,880 --> 00:01:44,837 Так. 28 00:01:44,837 --> 00:01:45,920 Аудиторія: перший вірус. 29 00:01:45,920 --> 00:01:49,570 Девід Дж Малан: Так було, мовляв, найперший фактичний помилка в комп'ютері. 30 00:01:49,570 --> 00:01:52,490 Зараз у реальності слово помилка, за помилку в програмі, 31 00:01:52,490 --> 00:01:55,250 був з нами для деяких час у фізичному світі, 32 00:01:55,250 --> 00:01:58,190 і це був один з перших документально часи, коли хтось дійсно 33 00:01:58,190 --> 00:02:02,280 зірвав великий молі з Марка II комп'ютер, покладіть його в сполучному, 34 00:02:02,280 --> 00:02:05,006 а потім записав її в якості першого відома помилка 35 00:02:05,006 --> 00:02:06,630 щоб насправді були знайдені фізично. 36 00:02:06,630 --> 00:02:10,104 Так, таким чином, був введений що в сьогоднішній знання. 37 00:02:10,104 --> 00:02:12,020 Все, починаючи від останньої тиждень доступні в Інтернеті. 38 00:02:12,020 --> 00:02:14,840 Зокрема ресурсів, які ви, можливо, не обов'язково помітите, особливо 39 00:02:14,840 --> 00:02:15,881 якщо сюди особисто. 40 00:02:15,881 --> 00:02:20,230 Таким чином, одна з навчальних побратимів кожен рік робить канонічний набір нот, 41 00:02:20,230 --> 00:02:22,010 так що ви не повинні тримати Ваша голова вниз, намагаючись 42 00:02:22,010 --> 00:02:24,410 транскрибувати більшість нічого що може трапитися тут, у класі. 43 00:02:24,410 --> 00:02:25,940 Так зрозуміти, що ті так званий [? Scribd?] Зауваження 44 00:02:25,940 --> 00:02:29,350 в Інтернеті, звичайно слайди і вихідний код, який ми використовуємо в класі. 45 00:02:29,350 --> 00:02:31,436 Ми повнотекстові стенограми також доступні. 46 00:02:31,436 --> 00:02:34,310 Так що якщо ви смутно пам'ятаю деякі Термін, і ви хочете, щоб подивитися його трохи 47 00:02:34,310 --> 00:02:37,280 більш легко, зрозуміти, що все того, що для пошуку в Інтернеті. 48 00:02:37,280 --> 00:02:38,930 Як покрокові також. 49 00:02:38,930 --> 00:02:42,710 Дійсно, сьогодні ми починаємо дивитися на мова програмування низького рівня, 50 00:02:42,710 --> 00:02:45,290 скоро буде відомо до нас як С, і це дуже легко 51 00:02:45,290 --> 00:02:48,820 у свого роду заблукати після декількох моменти часу, і потім начебто подиву 52 00:02:48,820 --> 00:02:52,370 як ми фактично отримали деякі більш складний приклад з простих. 53 00:02:52,370 --> 00:02:54,975 І так розумію, що ми будемо вишневий вибрати якийсь під час занять 54 00:02:54,975 --> 00:02:57,850 представницьких прикладів, але розуміють, що набагато більше, також 55 00:02:57,850 --> 00:03:01,140 доступні в Інтернеті, так що ви можете працювати через нього в своєму власному темпі, 56 00:03:01,140 --> 00:03:02,950 Однак ви найбільш комфортно. 57 00:03:02,950 --> 00:03:05,200 >> Але ми зупинилися з програми, які були тільки в цьому. 58 00:03:05,200 --> 00:03:09,690 Так я натискаю зелений прапор, і що це програма? 59 00:03:09,690 --> 00:03:10,710 Каже, привіт, світ. 60 00:03:10,710 --> 00:03:13,180 Це робить кішка сказати привіт у своєму маленькому світі 61 00:03:13,180 --> 00:03:15,990 в лівому верхньому боці користувальницького інтерфейсу нуля в. 62 00:03:15,990 --> 00:03:18,810 Але ми почали впроваджувати деякі терміни минулого тижня. 63 00:03:18,810 --> 00:03:23,614 І так, все, як це ми назвали те, що? 64 00:03:23,614 --> 00:03:25,280 Що може бути загальний термін для цього? 65 00:03:25,280 --> 00:03:26,266 Так. 66 00:03:26,266 --> 00:03:28,210 Метод або заяву. 67 00:03:28,210 --> 00:03:29,280 Звичайно, це дію. 68 00:03:29,280 --> 00:03:30,140 Зробити це. 69 00:03:30,140 --> 00:03:32,400 І все ж було інші форми подряпати, 70 00:03:32,400 --> 00:03:35,360 крім того, ці так звані Заява, вони також 71 00:03:35,360 --> 00:03:38,221 такі речі, які ми називали те, що? 72 00:03:38,221 --> 00:03:38,720 Так. 73 00:03:38,720 --> 00:03:39,634 Таким чином, цикл. 74 00:03:39,634 --> 00:03:42,050 І в цьому випадку, ця річ повтори, очевидно, в 10 разів. 75 00:03:42,050 --> 00:03:43,040 Там це назавжди блок. 76 00:03:43,040 --> 00:03:44,164 Там є пара інших. 77 00:03:44,164 --> 00:03:48,309 І сьогодні ми збираємося, щоб побачити, як перевести це в більш сучасному світі, 78 00:03:48,309 --> 00:03:50,850 якщо хочете, навіть якщо це збирається здатися на перший погляд 79 00:03:50,850 --> 00:03:52,024 набагато складніших. 80 00:03:52,024 --> 00:03:53,190 Але це були дійсно петель. 81 00:03:53,190 --> 00:03:56,182 І тоді у нас є такі речі, як це, який мав таку форму, 82 00:03:56,182 --> 00:03:57,515 і, по суті задаються. 83 00:03:57,515 --> 00:03:58,890 І ми говорили на них як що? 84 00:03:58,890 --> 00:03:59,762 >> АУДИТОРІЯ: логічне вираження. 85 00:03:59,762 --> 00:04:00,320 >> Девід Дж Малан: Так. 86 00:04:00,320 --> 00:04:01,340 Логічний вираз. 87 00:04:01,340 --> 00:04:04,502 Щось, що є істинним або брехня, так чи ні, один або нуль, 88 00:04:04,502 --> 00:04:05,960 Однак ви хочете, щоб дивитися на світ. 89 00:04:05,960 --> 00:04:08,335 Але ми назвали тих, Логічний вираження, і ми підключити їх 90 00:04:08,335 --> 00:04:09,900 в умовах, або філій. 91 00:04:09,900 --> 00:04:12,170 І в світі Подряпин, все красиво 92 00:04:12,170 --> 00:04:15,460 блокування з погляду його форми, якщо він робить логічний сенс робити так, 93 00:04:15,460 --> 00:04:18,490 але ви не повинні зупинятися на просто робимо одну справу умовно, 94 00:04:18,490 --> 00:04:20,450 ви можете мати прислів'їв розщедритися на дорозі 95 00:04:20,450 --> 00:04:24,040 і робити ту чи іншу, якщо умова істинна чи ні. 96 00:04:24,040 --> 00:04:26,040 А потім, як ви побачите, якщо ви ще цього не зробили, 97 00:04:26,040 --> 00:04:27,480 Ви навіть можете гнізді ці блоки. 98 00:04:27,480 --> 00:04:32,110 Так подряпин росте, щоб заповнити форми що ви, можливо, захочете, щоб вставити в нього, 99 00:04:32,110 --> 00:04:35,330 так що ви можете висловити найбільш якась логіка, що ви, можливо, захочете зробити. 100 00:04:35,330 --> 00:04:38,220 >> Тепер кілька слів про оголошенням для тут і Нью-Гейвен. 101 00:04:38,220 --> 00:04:39,370 Так секціонування починається сьогодні. 102 00:04:39,370 --> 00:04:42,120 URL-адреса для цього на курс-х сайт, для тих, хто незнайомий. 103 00:04:42,120 --> 00:04:43,970 Розділи буде можливість зібратися разом 104 00:04:43,970 --> 00:04:46,553 в набагато більш інтимній обстановці ніж [? Сандерс?] Дозволяє, 105 00:04:46,553 --> 00:04:50,347 з 10 до 20 з однокласниками викладання стажування в різних напрямках, 106 00:04:50,347 --> 00:04:51,930 і різні кроки, якщо ви того побажаєте. 107 00:04:51,930 --> 00:04:54,080 Дійсно пропозиції курсів різні розділи 108 00:04:54,080 --> 00:04:57,340 для тих, хто менш комфортно, більш комфортно, і десь між ними, 109 00:04:57,340 --> 00:04:59,860 і роль великого пальця тут, немає формальне визначення, 110 00:04:59,860 --> 00:05:04,600 але якщо ви менш комфортно, ви начебто знаєте це. 111 00:05:04,600 --> 00:05:07,470 Ви трохи безстрашний про Ідея активізації ногу, мабуть, назад 112 00:05:07,470 --> 00:05:10,130 в класі, або показувати аж до In Between розділі. 113 00:05:10,130 --> 00:05:12,770 Якщо ви вже програмування, так як вам шість років, більш комфортно, 114 00:05:12,770 --> 00:05:13,400 можливо, для вас. 115 00:05:13,400 --> 00:05:16,150 І якщо це вид жеребкування, це саме те, що між ними 116 00:05:16,150 --> 00:05:17,190 призначається, щоб бути. 117 00:05:17,190 --> 00:05:18,410 >> Тепер, в той же час, для класу такого розміру, 118 00:05:18,410 --> 00:05:21,326 це бере нас деякий час, щоб розділі все, тому ми так звана, 119 00:05:21,326 --> 00:05:24,030 супер розділи, підійшовши це вихідні та на початку наступного тижня, 120 00:05:24,030 --> 00:05:26,570 так що погляньте на сайті Курсу для тих, які, звичайно широкий, 121 00:05:26,570 --> 00:05:28,610 а також для тих, хто знімав хто не може зробити їх. 122 00:05:28,610 --> 00:05:33,470 І самі розділи почне на тиждень три CS50 нульовим індексом. 123 00:05:33,470 --> 00:05:35,880 Проблема встановити 0 вже на веб-сайті курсу. 124 00:05:35,880 --> 00:05:40,010 І розумію, що у вас є дев'ять днів в цьому кінці семестру. 125 00:05:40,010 --> 00:05:43,240 Так що це оновлення від останнього році, коли у нас було п'ять днів пізно. 126 00:05:43,240 --> 00:05:46,210 >> Так що, якщо вам цікаво ,, у нас є дев'ять проблемних набори. 127 00:05:46,210 --> 00:05:53,200 Ви повинні дев'ять днів пізно, кожен з яких Ви можете витратити тільки один в тиждень на. 128 00:05:53,200 --> 00:05:56,089 Це фактично робить все проблема встановлює за п'ятницю, 129 00:05:56,089 --> 00:05:58,630 але мета покласти трохи трохи психологічного тиску 130 00:05:58,630 --> 00:06:01,100 на вас, щоб спробувати отримати речі в четвер 131 00:06:01,100 --> 00:06:03,960 тому що, як ви скоро побачите, на краще чи на гірше, більшість 132 00:06:03,960 --> 00:06:07,820 все в світі програмного забезпечення закінчується зайняв значно більше часу, ніж ви очікуєте. 133 00:06:07,820 --> 00:06:10,620 Так вважають свого роду можливостей, щоб допомогти 134 00:06:10,620 --> 00:06:13,880 собі мету четвер, але розраду в тому, що, так, 135 00:06:13,880 --> 00:06:14,950 все через п'ятницю. 136 00:06:14,950 --> 00:06:17,590 І якщо ви представити їх на Четвер, це чудово. 137 00:06:17,590 --> 00:06:21,020 Там немає бонусних балів або додаткових кредит на ці терміни. 138 00:06:21,020 --> 00:06:23,250 Це означало, що тільки милицю. 139 00:06:23,250 --> 00:06:25,810 >> І робочі години, і тут і в Нью-Хейвені, 140 00:06:25,810 --> 00:06:28,840 в обличчя, якщо ви хотіли б зустрітися з будь-яким з наших курсів 141 00:06:28,840 --> 00:06:31,060 викладання стипендіатів та центрів сертифікації для допомоги. 142 00:06:31,060 --> 00:06:31,640 >> Добре. 143 00:06:31,640 --> 00:06:33,110 Так що тепер, давайте зробимо це більш реальним. 144 00:06:33,110 --> 00:06:35,470 І на мить він збирається почати щоб отримати трохи більше таємницею, але дуже 145 00:06:35,470 --> 00:06:37,310 швидко в п'ятницю і на наступному тижні ми будемо 146 00:06:37,310 --> 00:06:41,230 в змозі зробити набагато більше, ніж ми могли досі в подряпина. 147 00:06:41,230 --> 00:06:44,350 Таким чином, ми ввели код останньої тиждень, хоча Pictoral. 148 00:06:44,350 --> 00:06:45,620 Це було головоломки. 149 00:06:45,620 --> 00:06:48,800 І ми формалізовані, що це те, що називається вихідний код, 150 00:06:48,800 --> 00:06:50,330 але чи буде виглядати? 151 00:06:50,330 --> 00:06:52,550 Ну, це виглядало трохи щось на зразок цього. 152 00:06:52,550 --> 00:06:55,410 І справді, тільки виду дражнити, де ми можемо піти з цим. 153 00:06:55,410 --> 00:06:57,800 Я збираюся йти вперед і відкрити вікно тут, 154 00:06:57,800 --> 00:06:59,810 і я просто хочу, щоб вибрати новий файл. 155 00:06:59,810 --> 00:07:03,200 І я йду, щоб врятувати цей файл а щось на зразок привіт точка в. 156 00:07:03,200 --> 00:07:05,700 Більше на тому виборі слова на хвилину. 157 00:07:05,700 --> 00:07:08,630 І це, як хтось може йти про написання програми. 158 00:07:08,630 --> 00:07:13,990 Включити стандартний I / O точка годину, INT основний порожнеча, а потім відкрити фігурна дужка, недалеко 159 00:07:13,990 --> 00:07:19,430 фігурна дужка, Printf привіт коми світ, Обернена коса риска н, крапка з комою, Зберегти, зроблено. 160 00:07:19,430 --> 00:07:19,930 ДОБРЕ. 161 00:07:19,930 --> 00:07:21,670 Я написав мій перший програма, але вона збирається 162 00:07:21,670 --> 00:07:23,878 щоб бути неймовірно захват тому що, коли я насправді 163 00:07:23,878 --> 00:07:27,352 запустити цю програму, звичайно, перший письмовій формі зробити привіт, 164 00:07:27,352 --> 00:07:30,310 а потім точка слеш привіт, і ми пройти через це в набагато більш докладно 165 00:07:30,310 --> 00:07:31,730 в даний час, це все, що він робить. 166 00:07:31,730 --> 00:07:33,270 Будь-яка поп не відкривати будь-які вікна. 167 00:07:33,270 --> 00:07:35,070 Це нічого не робити особливо фантазії. 168 00:07:35,070 --> 00:07:38,830 Все це робить те, що я сказав його робити, але, як ми доберемося до цього? 169 00:07:38,830 --> 00:07:40,560 І, як ми будуємо на що? 170 00:07:40,560 --> 00:07:43,430 Ну, давайте познайомимося кілька різні поняття тут. 171 00:07:43,430 --> 00:07:47,170 >> Таким чином, одна, ми збираємося почати використовуючи програму під назвою компілятор. 172 00:07:47,170 --> 00:07:51,470 Компілятор існує Mac OS, Windows, Linux, будь-яку кількість операційних систем, 173 00:07:51,470 --> 00:07:54,540 і ми скоро ввести вас в Середа, що ми будемо використовувати, 174 00:07:54,540 --> 00:07:57,410 але компілятор просто загальне термін для частини програмного забезпечення 175 00:07:57,410 --> 00:08:01,940 який приймає вихідний код і виробляє об'єктний код з нього. 176 00:08:01,940 --> 00:08:03,940 Іншими словами, якщо ви є в якості вхідного джерела 177 00:08:03,940 --> 00:08:08,250 Код, щось на зразок того, що я тільки що ввели, це в кінцевому рахунку призводить об'єктний код. 178 00:08:08,250 --> 00:08:11,780 І об'єктний код насправді просто химерний спосіб сказати, що це виводить 179 00:08:11,780 --> 00:08:12,926 нульовий і один років. 180 00:08:12,926 --> 00:08:14,800 Іншими словами, джерело Код, хоча це 181 00:08:14,800 --> 00:08:17,240 буде виглядати трохи Arcane, і трохи менш дружнім 182 00:08:17,240 --> 00:08:19,590 ніж нуля на перший погляд, це принаймні щось 183 00:08:19,590 --> 00:08:21,120 що ми, люди, можемо зрозуміти. 184 00:08:21,120 --> 00:08:24,360 Це свого роду виглядає і звучить як Англійська, хоча це дуже коротким. 185 00:08:24,360 --> 00:08:28,040 У той час як в програмуванні нулями і одним, оскільки наші попередники були зробити, 186 00:08:28,040 --> 00:08:30,920 Кілька років тому, не було Особливо весело виклик. 187 00:08:30,920 --> 00:08:33,710 І все ж, це те, що комп'ютер як і раніше розуміє. 188 00:08:33,710 --> 00:08:37,010 Так компілятор отримує від нас Вихідний код в об'єктний код. 189 00:08:37,010 --> 00:08:39,860 Це як відкриття файлу з компілятор, і, коли ви збережете його, 190 00:08:39,860 --> 00:08:41,419 ви отримаєте ці нулі й одиниці. 191 00:08:41,419 --> 00:08:43,419 Таким чином, ми побачимо, як зробити що в хвилину. 192 00:08:43,419 --> 00:08:47,400 >> Але давайте спробуємо, щоб забезпечити Міст між останній тиждень, і це, 193 00:08:47,400 --> 00:08:50,660 так що навіть, як ми зациклюватися на таких речах, як фігурні дужки, 194 00:08:50,660 --> 00:08:54,100 і крапки з комою, і дужки, і всі ці інтелектуально цікавим 195 00:08:54,100 --> 00:08:57,620 аспекти програмування, що дуже зрозуміло поїздка людей рано на, 196 00:08:57,620 --> 00:09:00,930 розуміти, що всі ідеї Сьогодні, такі ж, як у минулому. 197 00:09:00,930 --> 00:09:03,975 Так, нарешті, ми побачили цей приклад тут, Hello World програма. 198 00:09:03,975 --> 00:09:07,500 Ну, починаючи з сьогоднішнього дня, якщо ми хочемо здійснити той же програму, 199 00:09:07,500 --> 00:09:10,800 це буде виглядати дещо як це. 200 00:09:10,800 --> 00:09:14,040 І ми пояснимо, перш ніж довгий який Int, а головне, сили, і все, що 201 00:09:14,040 --> 00:09:18,770 є, але, принаймні я бачу тут вже знайомі Hello World. 202 00:09:18,770 --> 00:09:20,860 >> Між тим, такі речі, як Функція, скажімо привіт, 203 00:09:20,860 --> 00:09:23,570 дуже просто буде дуже просте твердження, як це. 204 00:09:23,570 --> 00:09:26,930 Printf привіт світ, з деякими цитує, зі зворотного косою риси, 205 00:09:26,930 --> 00:09:29,780 з комою, але докладніше про це в майбутньому. 206 00:09:29,780 --> 00:09:34,066 Петлі, тим часом, це цикл, який, Звісно, ​​каже привіт світ назавжди, 207 00:09:34,066 --> 00:09:36,690 і це одна збирається виглядати трохи дивно, ніж у останньої, 208 00:09:36,690 --> 00:09:39,530 але якщо я щось сказати як, в той час як вірно, я 209 00:09:39,530 --> 00:09:44,050 Потім можна роздрукувати Привіт світ знову і знову і знову і знову. 210 00:09:44,050 --> 00:09:46,660 А потім, як ви можете вид з початку, щоб вивести тут, 211 00:09:46,660 --> 00:09:49,070 Ця Конвенція використання Фігурні дужки це свого роду 212 00:09:49,070 --> 00:09:52,050 походить охоплює відступом рядки коду там. 213 00:09:52,050 --> 00:09:55,840 Printf рядок коду так само, як жовтий шматок головоломки нагорі. 214 00:09:55,840 --> 00:09:58,740 Таким чином, ми не збираємося говорити вічно, ми збираємося сказати, в той час як вірно, 215 00:09:58,740 --> 00:10:01,020 але ми побачимо, чому це трохи пізніше. 216 00:10:01,020 --> 00:10:04,210 >> Між тим, якщо у нас є цикл, як це, де ви повторити щось кінцеве 217 00:10:04,210 --> 00:10:07,730 число раз, цього разу теж це збирається зайняти трохи звикнути 218 00:10:07,730 --> 00:10:12,820 , Але це буде сказати Int я отримує нуль, я менше, ніж 10, я ++, 219 00:10:12,820 --> 00:10:14,056 а потім Printf знову. 220 00:10:14,056 --> 00:10:15,430 Але там буде візерунки. 221 00:10:15,430 --> 00:10:18,434 А для тих з вас, хто знайомий з А. П. інформатики, або Java, 222 00:10:18,434 --> 00:10:21,100 або будь-яку кількість інших мовах, майже всі з цих конструкцій 223 00:10:21,100 --> 00:10:23,820 Таким чином, далеко повинен виглядати в основному знайомі. 224 00:10:23,820 --> 00:10:24,680 >> Так змінна. 225 00:10:24,680 --> 00:10:29,270 Так ось простий подряпин уривок, що встановлює змінну лічильник до нуля, 226 00:10:29,270 --> 00:10:33,150 а потім назавжди говорить лічильник, і Потім він змінює значення лічильника на одиницю. 227 00:10:33,150 --> 00:10:37,030 Так що починається з нуля, а потім один, два, три. 228 00:10:37,030 --> 00:10:42,560 Ну, як ми могли б ввести, що в ця нова мова трохи аналогічно? 229 00:10:42,560 --> 00:10:45,460 Int лічильник дорівнює нулю, у той час як вірно, що 230 00:10:45,460 --> 00:10:48,100 є те, що та ж сама ідея, перш ніж з робити щось назавжди, 231 00:10:48,100 --> 00:10:49,530 і я просто хочу, щоб PRINTF. 232 00:10:49,530 --> 00:10:53,310 І тепер це стає трохи дивним, відсотків я, але про це попереду, 233 00:10:53,310 --> 00:10:55,140 але ці ідеї в точності те ж саме. 234 00:10:55,140 --> 00:10:58,820 Ми тільки зараз повинні дотримуватися синтаксис, що комп'ютер 235 00:10:58,820 --> 00:11:00,010 збирається зажадати від нас. 236 00:11:00,010 --> 00:11:04,620 >> Логічний вираз, щось на зразок SX, ніж у менш, або х менших у, 237 00:11:04,620 --> 00:11:06,354 і в меншого, ніж р 238 00:11:06,354 --> 00:11:09,270 Це буде виглядати дещо як це, з дужки всього 239 00:11:09,270 --> 00:11:13,020 як у математиці для хорошої заходом просто гарантувати, що порядок операцій 240 00:11:13,020 --> 00:11:14,750 як ми маємо намір. 241 00:11:14,750 --> 00:11:15,600 А тепер, умови. 242 00:11:15,600 --> 00:11:21,220 Так що, якщо х менше, ніж у, скажімо, х менше ніж у, то, якщо х більше у, 243 00:11:21,220 --> 00:11:26,020 сказати х більше у, в іншому випадку логічно, х повинна бути дорівнює у. 244 00:11:26,020 --> 00:11:28,710 Таким чином, ви могли б реалізувати щось на зразок цього в порожньому, 245 00:11:28,710 --> 00:11:31,230 або ви могли б реалізувати він у цьому синтаксисі. 246 00:11:31,230 --> 00:11:35,090 І знову, фігурні дужки є свого роду даючи нам ту ж форму, головоломки 247 00:11:35,090 --> 00:11:40,750 штук, але синтаксис, тепер, мабуть починають слідувати деякі закономірності. 248 00:11:40,750 --> 00:11:42,910 >> Отже, що ж це нам дає тут? 249 00:11:42,910 --> 00:11:45,260 Так що ми тоді на нашому основної програми. 250 00:11:45,260 --> 00:11:47,930 Давайте насправді, в даний час, зробити щось з ним. 251 00:11:47,930 --> 00:11:50,660 Таким чином, в цьому найперший рядку ми бачимо різке включають, 252 00:11:50,660 --> 00:11:53,160 Standard I / O, точка год, а то деякі дивні кут 253 00:11:53,160 --> 00:11:57,330 Кронштейни нижче, що. INT основний недійсними, а потім Printf привіт світ. 254 00:11:57,330 --> 00:11:58,200 Так що просто зробити крок. 255 00:11:58,200 --> 00:12:02,440 Хтось, хто ніколи не програмував раніше, принаймні, пояснити одну з цих ліній. 256 00:12:02,440 --> 00:12:04,490 Використання можливо, деякі з жаргон минулого тижня. 257 00:12:04,490 --> 00:12:06,942 Що Printf, наприклад? 258 00:12:06,942 --> 00:12:07,442 Так. 259 00:12:07,442 --> 00:12:08,410 >> АУДИТОРІЯ: [нерозбірливо] 260 00:12:08,410 --> 00:12:08,610 >> Девід Дж Малан: Так. 261 00:12:08,610 --> 00:12:11,380 Це функція, або заяву, від термінології минулого тижня. 262 00:12:11,380 --> 00:12:13,470 І це дію що робить щось. 263 00:12:13,470 --> 00:12:15,855 Тепер ця функція, або це твердження, що не 264 00:12:15,855 --> 00:12:17,550 це, здається, прийняти якісь вхід? 265 00:12:17,550 --> 00:12:20,080 266 00:12:20,080 --> 00:12:24,380 І в чому сенс робить це здається, прийняти вхід, якщо так? 267 00:12:24,380 --> 00:12:26,180 Вхід, що я маю на увазі, що? 268 00:12:26,180 --> 00:12:26,720 Так. 269 00:12:26,720 --> 00:12:27,595 >> АУДИТОРІЯ: [нерозбірливо] 270 00:12:27,595 --> 00:12:30,565 271 00:12:30,565 --> 00:12:31,440 Девід Дж Малан: Так. 272 00:12:31,440 --> 00:12:34,890 Так видряпати кілька штук головоломки де ви можете параметризованим його. 273 00:12:34,890 --> 00:12:37,980 Ви могли б сказати повторення блокувати, скільки разів повторювати, 274 00:12:37,980 --> 00:12:40,320 так, щоб був вхід види, і, як нуля 275 00:12:40,320 --> 00:12:43,060 був маленький білий заповнювач за кількістю ви вводите, 276 00:12:43,060 --> 00:12:45,810 так що ми використовуємо в цьому Текст світу дужки 277 00:12:45,810 --> 00:12:49,910 щоб дати нам, що круглу форму в яких ми можемо підключити свій вклад. 278 00:12:49,910 --> 00:12:53,180 Адже десятки років тому коли цю мову, званий С, 279 00:12:53,180 --> 00:12:55,950 був винайдений не один Передбачається, що це один з нас, 280 00:12:55,950 --> 00:12:59,420 ці кілька років потому, ми б потрібна функція, що говорить привіт. 281 00:12:59,420 --> 00:12:59,920 Вірно? 282 00:12:59,920 --> 00:13:02,880 Було б непогано, якби там було шматок головоломки, або ключові слова, 283 00:13:02,880 --> 00:13:05,502 що називається привіт, що буквально говорить привіт. 284 00:13:05,502 --> 00:13:06,460 Але ми не повинні цього. 285 00:13:06,460 --> 00:13:09,320 Ми можемо щось набагато нижчою Рівень, як загального друк 286 00:13:09,320 --> 00:13:12,760 Команда, яка приймає введення, і друкує все, що ми хотіли. 287 00:13:12,760 --> 00:13:14,960 Так помітити тепер картина що почнуть з'являтися. 288 00:13:14,960 --> 00:13:19,310 Відкриті Хлопець, недалеко знаходиться дужка мабуть, охоплює вхід, 289 00:13:19,310 --> 00:13:21,770 і тоді я бачу двічі цитує на обох кінцях. 290 00:13:21,770 --> 00:13:25,110 Існує ще дивно зворотний слеш п, але, сподіваюся, тепер ви 291 00:13:25,110 --> 00:13:29,900 може почати візуалізувати принаймні, Printf приймає в якій-небудь формі введення. 292 00:13:29,900 --> 00:13:31,850 Не так, як зручний Подряпина, але це просто 293 00:13:31,850 --> 00:13:34,920 як того підключений деякого значення там. 294 00:13:34,920 --> 00:13:38,306 >> Добре, тепер давайте насправді зробити щось з цим. 295 00:13:38,306 --> 00:13:40,930 Таким чином, деякі з вас, можливо, знаєте, від маючи перед покупки клас, 296 00:13:40,930 --> 00:13:42,638 базікали з друзями, що протягом багатьох років 297 00:13:42,638 --> 00:13:44,590 ми використовували те, що називається CS50 прилад. 298 00:13:44,590 --> 00:13:49,160 Це був термін, що описує технологію називається віртуальна машина, яка 299 00:13:49,160 --> 00:13:51,870 це частина програмного забезпечення, ЩО ВАШІ попередники б завантажити з 300 00:13:51,870 --> 00:13:53,360 Сайт Курсу безкоштовно. 301 00:13:53,360 --> 00:13:56,550 Вони також завантажити безкоштовно шматок програмного забезпечення, званого гіпервізором, 302 00:13:56,550 --> 00:14:00,590 те, що називається, як VMware, або VirtualBox, або будь-яку кількість 303 00:14:00,590 --> 00:14:04,450 інші інструменти, і на їх Mac або PC або щось комп'ютер вони мали минулого року 304 00:14:04,450 --> 00:14:06,620 і в минулі роки, вони буде двічі клацніть значок 305 00:14:06,620 --> 00:14:08,860 щоб запустити цю програму називається гіпервізор. 306 00:14:08,860 --> 00:14:12,220 А потім всередині цієї програми вони відкриють CS50 прилад. 307 00:14:12,220 --> 00:14:14,710 І ефект в тому, що Чи ваш попередник 308 00:14:14,710 --> 00:14:17,780 біг Mac OS або Вікна, він чи вона 309 00:14:17,780 --> 00:14:22,910 Згодом було нове вікно на їх Екран працює середовища CS50 в. 310 00:14:22,910 --> 00:14:27,370 Таким чином, віртуальна машина дозволяє запускати одне операційної системи усередині іншої, 311 00:14:27,370 --> 00:14:28,785 і це саме те, що ми зробили. 312 00:14:28,785 --> 00:14:31,410 Протягом майже всього курсу ми використовувати операційну систему під назвою 313 00:14:31,410 --> 00:14:34,070 Linux, зокрема, Ubuntu Linux, і це 314 00:14:34,070 --> 00:14:37,590 це дуже хороший спосіб у минулому років Переконавшись, що все в процесі 315 00:14:37,590 --> 00:14:38,840 тільки що ту ж середу. 316 00:14:38,840 --> 00:14:41,339 І ви можете використовувати будь-який вид комп'ютер, ви дійсно хочете. 317 00:14:41,339 --> 00:14:43,930 Серед недоліків, тим не менш, були, як це було два гігабайти 318 00:14:43,930 --> 00:14:45,480 щоб завантажити цей річ. 319 00:14:45,480 --> 00:14:50,310 Це не обов'язково працювати на супер добре люди, чиї комп'ютери, що, може бути, тільки 320 00:14:50,310 --> 00:14:54,570 був концерт або так ОЗУ, або Не занадто багато гігагерц швидкості процесора, 321 00:14:54,570 --> 00:14:56,750 і тому в цьому році, за це й інші причини, 322 00:14:56,750 --> 00:14:59,140 у нас був перехід до цього середовища. 323 00:14:59,140 --> 00:15:03,730 Так званий CS50 IDE, який на базі програмного забезпечення з відкритим вихідним кодом, 324 00:15:03,730 --> 00:15:07,380 і підтримує платформу що компанія під назвою Cloud9 325 00:15:07,380 --> 00:15:11,110 підтримує в Європі, що дозволяє нам мати по суті 326 00:15:11,110 --> 00:15:15,770 що точно такий же, як у середу останні роки, але в так званій хмарі. 327 00:15:15,770 --> 00:15:17,532 >> Так що хмара? 328 00:15:17,532 --> 00:15:20,480 Ви, напевно, натиснув його значок на вашому Mac або PC. 329 00:15:20,480 --> 00:15:22,210 Що таке хмара? 330 00:15:22,210 --> 00:15:22,709 Так? 331 00:15:22,709 --> 00:15:25,880 332 00:15:25,880 --> 00:15:26,780 Трохи голосніше. 333 00:15:26,780 --> 00:15:30,510 334 00:15:30,510 --> 00:15:31,010 Так. 335 00:15:31,010 --> 00:15:33,770 Це просто купа комп'ютерів в іншому місці, що зберігати дані і запустити 336 00:15:33,770 --> 00:15:34,880 Програмне забезпечення тощо. 337 00:15:34,880 --> 00:15:39,390 Так що це насправді просто до слова де юре опису [? орендованої?] 338 00:15:39,390 --> 00:15:40,930 комп'ютери, які живуть в іншому місці. 339 00:15:40,930 --> 00:15:42,810 Це ви, самі, не обов'язково мати. 340 00:15:42,810 --> 00:15:45,256 Так що, коли ваші дані, або ваш програми, в хмарі, 341 00:15:45,256 --> 00:15:47,630 це просто означає, що це на когось Чужа комп'ютери в іншому місці, 342 00:15:47,630 --> 00:15:50,510 а не, швидше за все, на вашому фізична ноутбук або настільний. 343 00:15:50,510 --> 00:15:52,990 І ось що CS50 IDE зараз. 344 00:15:52,990 --> 00:15:55,670 >> Відтепер ви будете йти до визначеної Посилання, що познайомить Вас 345 00:15:55,670 --> 00:16:00,090 щоб, в задачі набір 1, в цьому тиждень, які потім, при вході в систему 346 00:16:00,090 --> 00:16:01,480 дати вам цю середу. 347 00:16:01,480 --> 00:16:03,896 І так само, як до подряпин був кілька різних панелей, що беруть участь, 348 00:16:03,896 --> 00:16:06,030 так само IDE CS50 мають саме це. 349 00:16:06,030 --> 00:16:09,480 На верхньому лівій стороні тут, ви побачите знайомий файловий браузер. 350 00:16:09,480 --> 00:16:11,930 Таким чином, будь-який з файлів, які помістити в цю середу 351 00:16:11,930 --> 00:16:13,346 тільки збираєтеся перебувати тут. 352 00:16:13,346 --> 00:16:14,350 Файли та папки. 353 00:16:14,350 --> 00:16:16,790 На вершині прямо тут, Ви побачите місце, 354 00:16:16,790 --> 00:16:18,420 де ви можете написати свій код. 355 00:16:18,420 --> 00:16:21,860 Спочатку в C, а потім у член в PHP і JavaScript, 356 00:16:21,860 --> 00:16:24,739 і, можливо, для остаточного проекти, Рубі або Java або Python, 357 00:16:24,739 --> 00:16:27,280 або будь-яку кількість мов підтримується в цьому середовищі. 358 00:16:27,280 --> 00:16:30,130 Це зовсім не пов'язані щоб CS50 спеціально. 359 00:16:30,130 --> 00:16:33,390 >> А потім в нижньому кутку тут, особливо для тих, хто більш комфортно, 360 00:16:33,390 --> 00:16:35,590 у вас є щось називається вікно терміналу. 361 00:16:35,590 --> 00:16:38,770 І це вікно терміналу дозволяє Вам виконати будь-яку команду, що вам 362 00:16:38,770 --> 00:16:40,860 хочу в цьому хмарному середовищі. 363 00:16:40,860 --> 00:16:42,860 Це дозволяє встановлювати будь-яка додаткова програма 364 00:16:42,860 --> 00:16:46,810 що ви хочете, тому що ви так називається корінь, або адміністратора. 365 00:16:46,810 --> 00:16:49,930 Отже, іншими словами, навіть якщо це в кінцевому рахунку, в хмарі, 366 00:16:49,930 --> 00:16:52,400 і хоча у нас є спрощена це до деякої міри 367 00:16:52,400 --> 00:16:57,110 за замовчуванням, в буквальному сенсі введення, завдяки Дену Armendariz, і Діно, 368 00:16:57,110 --> 00:17:01,070 і Ден Бредлі в команді CS50 протягом багатьох повз багатьох місяців, менш комфортно 369 00:17:01,070 --> 00:17:05,140 режим, який приховує багато з Спочатку заплутаною відволікання. 370 00:17:05,140 --> 00:17:10,119 Усі існує в являють собою типовий комп'ютерну систему 371 00:17:10,119 --> 00:17:12,319 що ви могли б використовувати в реальному світі. 372 00:17:12,319 --> 00:17:15,640 >> Отже, що ж все це означає, і що ми можемо реально зробити з ним? 373 00:17:15,640 --> 00:17:19,124 Давайте насправді заглянути в програмі. 374 00:17:19,124 --> 00:17:21,290 Так що я збираюся відкрити поточна середу тут, 375 00:17:21,290 --> 00:17:23,894 що тільки наша Chrome браузера, який може бути Firefox, 376 00:17:23,894 --> 00:17:26,640 може бути Internet Explorer, або який-небудь інший браузер, а також. 377 00:17:26,640 --> 00:17:28,400 Це повний скринінг тут на даний момент. 378 00:17:28,400 --> 00:17:31,580 І я хочу, щоб насправді дражнити крім того, що ця програма була. 379 00:17:31,580 --> 00:17:36,170 Отже, давайте поглянемо, шляхом збільшення в до початку, на те, що я зробив, і як я потрапив сюди. 380 00:17:36,170 --> 00:17:38,315 Так ось ті, точне же рядків коду. 381 00:17:38,315 --> 00:17:40,440 Так що ця заява, як ви згадали раніше. 382 00:17:40,440 --> 00:17:42,580 Функція, що говорить привіт. 383 00:17:42,580 --> 00:17:45,870 Фігурні дужки, на лінія чотири рядки шостій, 384 00:17:45,870 --> 00:17:49,290 імовірно вид конверта що лінія пов'язати його 385 00:17:49,290 --> 00:17:50,890 із суттю моєї програми. 386 00:17:50,890 --> 00:17:54,890 Так насправді, це головне ключове слово, це там, на третій лінії, 387 00:17:54,890 --> 00:17:59,450 Ви можете думати про те, що в якості еквівалента того, що, коли зелений прапор клацанні 388 00:17:59,450 --> 00:18:01,080 блокувати в подряпина. 389 00:18:01,080 --> 00:18:05,280 Так що все, що ми маємо тут, коли зелений прапор клацанні друк, або сказати, 390 00:18:05,280 --> 00:18:06,700 Привіт Світ. 391 00:18:06,700 --> 00:18:11,210 >> Але давайте здогадатися, тепер, на те, що це перше, більш таємницею лінія, є. 392 00:18:11,210 --> 00:18:15,100 Sharp включають, відкритий під кутом кронштейн, стандартний ввід / вивід точка год, 393 00:18:15,100 --> 00:18:17,320 закрити кутом кронштейн. 394 00:18:17,320 --> 00:18:19,850 Що робити, що, можливо, особливо якщо ви програмували 395 00:18:19,850 --> 00:18:21,390 перш в якій-небудь іншу мову. 396 00:18:21,390 --> 00:18:21,890 Так? 397 00:18:21,890 --> 00:18:22,765 >> АУДИТОРІЯ: [нерозбірливо] 398 00:18:22,765 --> 00:18:25,095 399 00:18:25,095 --> 00:18:25,970 Девід Дж Малан: Так. 400 00:18:25,970 --> 00:18:26,470 Точно. 401 00:18:26,470 --> 00:18:29,455 Таким чином, це дає вам доступ до бібліотека, так би мовити, функцій. 402 00:18:29,455 --> 00:18:31,830 І бібліотека функцій Функції, які хтось ще 403 00:18:31,830 --> 00:18:34,406 написав, або недавно або давно, так що ви 404 00:18:34,406 --> 00:18:35,780 не потрібно винаходити колесо. 405 00:18:35,780 --> 00:18:39,020 Наприклад, ми не повинні знати, в 2015 році, 406 00:18:39,020 --> 00:18:42,280 як писати код, який ставить характер на моєму екрані. 407 00:18:42,280 --> 00:18:44,820 Хтось інший вже вирішив, що з функцією PRINTF 408 00:18:44,820 --> 00:18:47,280 так що я можу сортувати абстрактного від цього, або шар 409 00:18:47,280 --> 00:18:49,350 на вершині його або її Код, і тепер просто взяти 410 00:18:49,350 --> 00:18:52,760 зрозумілим, що будь-яка програма я пишу може щось надрукувати на екрані. 411 00:18:52,760 --> 00:18:58,150 Таким чином, це перша лінія є на першому етапі включає в себе так зване заголовний файл 412 00:18:58,150 --> 00:18:59,980 для стандартної бібліотеки. 413 00:18:59,980 --> 00:19:02,630 Так бачите, мова які ми в даний час працює 414 00:19:02,630 --> 00:19:05,010 була стандартної бібліотеки з великою кількістю функцій. 415 00:19:05,010 --> 00:19:07,240 Printf є одним з них, і що перший рядок коду 416 00:19:07,240 --> 00:19:10,040 означає дати мені доступ до ці функції, так що я 417 00:19:10,040 --> 00:19:12,300 не потрібно винаходити колесо, що. 418 00:19:12,300 --> 00:19:15,940 >> Тепер давайте перейдемо до нижньої частини вікна і робити те, що я робив раніше. 419 00:19:15,940 --> 00:19:18,520 Хвилину тому, коли я був свистом через код, 420 00:19:18,520 --> 00:19:24,540 вводити його в перший раз, Я дуже швидко набирається, зробити привіт. 421 00:19:24,540 --> 00:19:28,250 Що було те, що всі про б ви здогадалися? 422 00:19:28,250 --> 00:19:29,150 Що я роблю? 423 00:19:29,150 --> 00:19:29,649 Так? 424 00:19:29,649 --> 00:19:31,810 425 00:19:31,810 --> 00:19:32,310 Не зважай. 426 00:19:32,310 --> 00:19:32,970 Все добре. 427 00:19:32,970 --> 00:19:33,492 Так. 428 00:19:33,492 --> 00:19:34,450 АУДИТОРІЯ: Компіляція його. 429 00:19:34,450 --> 00:19:34,700 Девід Дж Малан: Так. 430 00:19:34,700 --> 00:19:35,770 Це було просто компіляції. 431 00:19:35,770 --> 00:19:36,270 Вірно? 432 00:19:36,270 --> 00:19:39,280 Навіть якщо це абсолютно не знайомий Вам, це досить по-англійськи, як. 433 00:19:39,280 --> 00:19:41,155 Це, звичайно, не нулі і ті ,, так що я досі 434 00:19:41,155 --> 00:19:44,220 потрібно, щоб запустити його через що так звана Програма, компілятор, що відбувається 435 00:19:44,220 --> 00:19:46,060 прийняти його в якості вхідних даних і виробляти продукцію. 436 00:19:46,060 --> 00:19:48,270 І принаймні, в даний час, в ця середу Linux, 437 00:19:48,270 --> 00:19:51,030 але це не обов'язкова умова, це там, де ми почнемо, 438 00:19:51,030 --> 00:19:53,960 Ви взагалі взаємодіяти з комп'ютерні системи, як це 439 00:19:53,960 --> 00:19:55,770 на так званій командного рядка. 440 00:19:55,770 --> 00:19:57,790 Так з миготінням швидке і клавіатура, 441 00:19:57,790 --> 00:20:01,630 і не стільки миша, а не стільки вікон та іконки і меню, 442 00:20:01,630 --> 00:20:02,980 а всі текстові. 443 00:20:02,980 --> 00:20:06,180 І хоча це відчуває, спочатку погляд, може бути, як крок назад, 444 00:20:06,180 --> 00:20:08,437 це насправді набагато більше, потужний і виразний спосіб 445 00:20:08,437 --> 00:20:10,270 контролювати комп'ютер особливо, як ви, 446 00:20:10,270 --> 00:20:12,950 самостійно, стають більш комфортно з менш. 447 00:20:12,950 --> 00:20:16,790 Це відбувається, щоб дозволити вам зробити багато більше речей, ніж просто якийсь Microsoft 448 00:20:16,790 --> 00:20:20,390 або Apple, дозволяє робити з їх графічне операційної системи. 449 00:20:20,390 --> 00:20:23,270 >> Так що, коли я вдарив Enter, зараз, нічого не відбувається на цей раз 450 00:20:23,270 --> 00:20:25,960 тому що очевидно Програма привіт до дати. 451 00:20:25,960 --> 00:20:28,250 І те, що була команда Я побіг за що? 452 00:20:28,250 --> 00:20:32,370 Точка слеш привіт, і привіт світ. 453 00:20:32,370 --> 00:20:34,350 Тепер давайте крок резервне на мить. 454 00:20:34,350 --> 00:20:39,510 Виявляється, що зробити привіт просто Спрощений спосіб компіляції програми. 455 00:20:39,510 --> 00:20:41,670 Давайте просто ввести одна частина жаргон, 456 00:20:41,670 --> 00:20:43,470 але потім відійти від нього, так як це не 457 00:20:43,470 --> 00:20:46,640 все, що цікаво для сьогоднішніх цілей. 458 00:20:46,640 --> 00:20:51,000 Компілятор ми збираємося почати використовувати називається Брязкіт, для мови C. 459 00:20:51,000 --> 00:20:54,280 І це програму, яка просто працювати як ми робили в командному рядку там. 460 00:20:54,280 --> 00:20:56,580 І тому, якщо я хочу компілювати програму, що я 461 00:20:56,580 --> 00:21:00,790 написав у файлі під назвою привіт точка с, я буквально просто введіть брязкіт привіт C 462 00:21:00,790 --> 00:21:02,100 увійти. 463 00:21:02,100 --> 00:21:04,880 >> Найсмішніше в тому, з історичних причин, 464 00:21:04,880 --> 00:21:07,750 якщо я не вказати Назва програми 465 00:21:07,750 --> 00:21:11,690 що я хочу для висновку, якщо я не вказати ім'я файлу для тих нулів 466 00:21:11,690 --> 00:21:14,990 і ті ,, дуже дивний Конвенція була прийнята роки тому 467 00:21:14,990 --> 00:21:17,390 де він відчував себе свого роду хороший відповідь в той час, 468 00:21:17,390 --> 00:21:21,650 а давайте просто довільно називаємо Перша програма ми збираємо точку поза. 469 00:21:21,650 --> 00:21:22,900 Приходить першим в алфавіті. 470 00:21:22,900 --> 00:21:23,920 Від'їзду, це вихід. 471 00:21:23,920 --> 00:21:26,210 Таким чином, ми будемо називати програму за замовчуванням точка з. 472 00:21:26,210 --> 00:21:29,550 І це нормально, тому що, якщо я хочу, щоб запустити програму в цьому тексті, заснованого 473 00:21:29,550 --> 00:21:33,590 навколишнє середовище, я просто введіть точка слеш точку з увійти. 474 00:21:33,590 --> 00:21:35,250 І вона буде працювати саме так, як раніше. 475 00:21:35,250 --> 00:21:36,880 Отже, давайте подивимося, що дуже швидко. 476 00:21:36,880 --> 00:21:40,370 >> Так що, якщо я повернуся в мій вихідний код на CS50 IDE, 477 00:21:40,370 --> 00:21:47,860 і я замість цього брязкіт привіт ліжечко C Введіть повідомлення ніщо, здається, щоб це відбулося, 478 00:21:47,860 --> 00:21:49,790 але майже завжди в ця середу Linux, 479 00:21:49,790 --> 00:21:53,310 коли нічого поганого не здається статися, що означає щось хороше сталося насправді. 480 00:21:53,310 --> 00:21:56,270 Якщо ви не бачите помилку повідомлення, все, ймовірно, добре. 481 00:21:56,270 --> 00:22:01,930 І справді, якщо я зараз точка слеш точку з ввести, я веду свій же програму. 482 00:22:01,930 --> 00:22:04,610 Я досі програму привіт від раніше, тому що насправді, це 483 00:22:04,610 --> 00:22:07,430 буде так набагато приємніше просто введіть зробити замість запам'ятовування 484 00:22:07,430 --> 00:22:10,240 ці заклинання команди, але давайте подивимося, як ми 485 00:22:10,240 --> 00:22:12,890 може поліпшити це, тим не менш. 486 00:22:12,890 --> 00:22:15,340 >> Таким чином, це команда для компіляції коду. 487 00:22:15,340 --> 00:22:19,100 Ця команда для запуску скомпільований код надалі. 488 00:22:19,100 --> 00:22:20,546 Як я можу вказати ім'я файлу? 489 00:22:20,546 --> 00:22:22,670 Ну давайте просто ввести ще один шматок жаргоні. 490 00:22:22,670 --> 00:22:24,461 Коли ви перебуваєте в цьому текстовий навколишнього середовища, 491 00:22:24,461 --> 00:22:27,400 Ви будете хотіти, щоб вказати речі, названі аргументи командного рядка. 492 00:22:27,400 --> 00:22:31,380 Які це просто химерний спосіб сказати, Іншими словами в рядку, що 493 00:22:31,380 --> 00:22:33,860 змінювати поведінку незалежно Програма ви працюєте. 494 00:22:33,860 --> 00:22:37,320 Так зокрема, програма я працює, ввівши ім'я брязкіт, 495 00:22:37,320 --> 00:22:38,504 є програма під назвою Clang. 496 00:22:38,504 --> 00:22:40,920 Так що це або стара школа еквівалент подвійного клацання 497 00:22:40,920 --> 00:22:42,860 на Microsoft Word або Значок деяких програми. 498 00:22:42,860 --> 00:22:46,360 Я замість цього просто ввівши його ім'я, але в цій версії команди, 499 00:22:46,360 --> 00:22:51,334 Я тоді тире ущільнювальне простір привіт привіт простір точка гр. 500 00:22:51,334 --> 00:22:53,500 Таким чином, навіть якщо ви ніколи не грав у цьому світі колись, 501 00:22:53,500 --> 00:22:58,160 просто взяти те, що припущення зовсім тире про робити привіт? 502 00:22:58,160 --> 00:23:00,620 Або те, що це говорить брязкіт робити? 503 00:23:00,620 --> 00:23:01,386 Так. 504 00:23:01,386 --> 00:23:02,455 >> АУДИТОРІЯ: [нерозбірливо] 505 00:23:02,455 --> 00:23:03,330 Девід Дж Малан: Так. 506 00:23:03,330 --> 00:23:08,614 Це просто встановлює вихід файлу, щоб бути привіт замість дурніші точка з. 507 00:23:08,614 --> 00:23:09,780 І, дійсно, давайте спробуємо це. 508 00:23:09,780 --> 00:23:14,250 Так що, якщо я зараз, в першу давайте зробимо це, г м привіт. 509 00:23:14,250 --> 00:23:15,590 Ось видалити. 510 00:23:15,590 --> 00:23:18,450 І це скаже видалити звичайний файл привіт, який 511 00:23:18,450 --> 00:23:22,210 надмірно таємницею, але це тільки кошти ви хочете видалити файл, 512 00:23:22,210 --> 00:23:23,230 і я друкую у для так. 513 00:23:23,230 --> 00:23:27,340 І зверніть увагу, якщо ви глянувши на вершині ліворуч, вона зникне з там. 514 00:23:27,340 --> 00:23:32,180 Дозвольте мені тепер робити брязкіт тире виводу і Я збираюся йти вперед і робити привіт, 515 00:23:32,180 --> 00:23:34,890 у всіх кришок, привіт точка гр. 516 00:23:34,890 --> 00:23:37,775 Тепер, якщо я точка слеш привіт, що б ви хотіли? 517 00:23:37,775 --> 00:23:41,240 518 00:23:41,240 --> 00:23:42,430 >> Може бути, це з урахуванням регістру. 519 00:23:42,430 --> 00:23:43,070 Може бути, це не так. 520 00:23:43,070 --> 00:23:44,030 Давайте подивимося. 521 00:23:44,030 --> 00:23:45,230 Немає такого файлу або каталогу. 522 00:23:45,230 --> 00:23:47,438 І ми можемо роду обдурити, просто дивлячись в лівому верхньому кутку. 523 00:23:47,438 --> 00:23:49,630 Що я, очевидно, зберегти програму як? 524 00:23:49,630 --> 00:23:51,070 Всі шапки привіт. 525 00:23:51,070 --> 00:23:53,020 Так насправді, це відбувається щоб зробити різницю. 526 00:23:53,020 --> 00:23:54,540 Так що тепер привіт світ повернувся. 527 00:23:54,540 --> 00:23:56,969 Тепер це все прекрасно і добре, і все дуже Дурманний, 528 00:23:56,969 --> 00:23:59,760 в той загрузнути в них Деталі, але розуміння їх 529 00:23:59,760 --> 00:24:00,500 це добре. 530 00:24:00,500 --> 00:24:02,675 >> Введення з них більше довгі заклинання 531 00:24:02,675 --> 00:24:05,980 не збирається бути особливо весело, так що люди в світі 532 00:24:05,980 --> 00:24:08,260 винайшов іншу програму, кілька років тому, називається 533 00:24:08,260 --> 00:24:12,190 зробити, щоб зовсім просто дозволяє ввести марку, 534 00:24:12,190 --> 00:24:14,530 назва програми Ви хочете зробити, і зробити 535 00:24:14,530 --> 00:24:18,580 розумний в тому, що це буде виглядати в поточна папка, інакше каталозі, 536 00:24:18,580 --> 00:24:21,440 і якщо у вас є файл називається привіт точка с, 537 00:24:21,440 --> 00:24:25,800 що файл буде компілювати для вас в програмі під назвою привіт. 538 00:24:25,800 --> 00:24:29,950 Так що це набагато простіше спосіб робить більш загадкові команди 539 00:24:29,950 --> 00:24:30,800 що ми робили раніше. 540 00:24:30,800 --> 00:24:34,080 І ми попередньо налаштований CS50 IDE знати 541 00:24:34,080 --> 00:24:38,560 що він повинен робити висновок тире і ряд інші прапори, чи аргументи командного рядка, 542 00:24:38,560 --> 00:24:40,670 що ми побачимо найближчим часом. 543 00:24:40,670 --> 00:24:43,700 >> Але тепер давайте насправді щось більш цікаве. 544 00:24:43,700 --> 00:24:46,950 Просто набравши з привіт світ все час не все, що переконливо. 545 00:24:46,950 --> 00:24:52,280 Отже, дозвольте мені йти вперед і зміна ця програма і сказати, привіт Девід. 546 00:24:52,280 --> 00:24:54,120 Тепер я збираюся піти сюди. 547 00:24:54,120 --> 00:24:57,360 Я збираюся йти вперед і роблять привіт. 548 00:24:57,360 --> 00:25:00,652 І зараз знову ви бачите зробити показує вам більше 549 00:25:00,652 --> 00:25:03,360 Послідовність команд, що це робити, бо ми попередньо налаштований 550 00:25:03,360 --> 00:25:05,200 це те, що шлях, але ми не потрібно турбуватися зараз 551 00:25:05,200 --> 00:25:10,735 що він робить інший, ніж вона є складання точка слеш привіт, привіт світ. 552 00:25:10,735 --> 00:25:14,969 553 00:25:14,969 --> 00:25:15,510 Що не так? 554 00:25:15,510 --> 00:25:16,177 Так. 555 00:25:16,177 --> 00:25:17,370 >> АУДИТОРІЯ: [нерозбірливо] 556 00:25:17,370 --> 00:25:18,203 >> Девід Дж Малан: Так. 557 00:25:18,203 --> 00:25:19,600 Так, Noobie помилка. 558 00:25:19,600 --> 00:25:22,394 Я помітив, що це супер тонкий, але зірочка тут, в закладці 559 00:25:22,394 --> 00:25:25,060 просто означає, що ви не зберегли його, і браузери та інші програми 560 00:25:25,060 --> 00:25:25,930 зробити це іноді. 561 00:25:25,930 --> 00:25:27,939 Так управління або команди з с повинні зберегти його. 562 00:25:27,939 --> 00:25:29,730 Тепер дозвольте мені йти вперед і повторно запустіть програму. 563 00:25:29,730 --> 00:25:33,360 564 00:25:33,360 --> 00:25:34,260 Повторно. 565 00:25:34,260 --> 00:25:36,050 Право, так що це багатоетапний процес. 566 00:25:36,050 --> 00:25:39,400 Жоден з яких не є особливо складним, але в будь-який час ми змінимо файл, 567 00:25:39,400 --> 00:25:43,450 ми повинні змінити в результаті нулі і одиниці, і крапка слеш привіт. 568 00:25:43,450 --> 00:25:43,950 Вау. 569 00:25:43,950 --> 00:25:46,450 Так що це дуже захват що ми просто роздрукувати це. 570 00:25:46,450 --> 00:25:48,360 Давайте робити речі трохи більш динамічним, зараз. 571 00:25:48,360 --> 00:25:52,280 >> Ну, виявляється, що, як і Подряпини, С підтримує змінні. 572 00:25:52,280 --> 00:25:54,790 І виходить, якщо ви хочете мати змінну, яка зберігає 573 00:25:54,790 --> 00:25:57,300 не числиться, як ми як правило, робили з нуля, 574 00:25:57,300 --> 00:26:01,300 але як слово, або фраза або ім'я, ви 575 00:26:01,300 --> 00:26:04,837 можна вказати змінну до типу рядка. 576 00:26:04,837 --> 00:26:06,670 Таким чином, ми побачимо більше це всього мить, 577 00:26:06,670 --> 00:26:09,090 але виявляється, що C, а багато таких мов, як це, 578 00:26:09,090 --> 00:26:11,240 мають вельми специфічні типи змінних. 579 00:26:11,240 --> 00:26:13,810 Це не просто подобається алгебру, де ви отримаєте х, а у, і г 580 00:26:13,810 --> 00:26:16,940 і тих, хто просто завжди номери, в мові програмування 581 00:26:16,940 --> 00:26:20,030 Ви можете зберігати номери, ви можете зберігати окремі символи, 582 00:26:20,030 --> 00:26:24,619 можна зберігати цілі слова, ви могли б зберігати цілі зображення, звукові файли цілі, 583 00:26:24,619 --> 00:26:25,160 тощо. 584 00:26:25,160 --> 00:26:28,362 Таким чином, ми повинні вказати, що тип нашої змінної. 585 00:26:28,362 --> 00:26:31,570 І конвенції я буду називати мого змінна з тільки тому, що це стислий, 586 00:26:31,570 --> 00:26:33,510 і з позначає рядок. 587 00:26:33,510 --> 00:26:36,400 >> А потім я збираюся зберігати Усередині цієї змінної, 588 00:26:36,400 --> 00:26:39,570 просто подобається з нуля коли я використовую набір блок, 589 00:26:39,570 --> 00:26:41,950 Я збираюся використовувати Оператор присвоювання в C, 590 00:26:41,950 --> 00:26:45,290 який досить добре це дорівнює знак, але знак рівності робить це. 591 00:26:45,290 --> 00:26:53,220 Вона рухається щось праворуч в ліва сторона вираження. 592 00:26:53,220 --> 00:26:57,170 Так що я зробив, щоб бути ясно, в Лінія п'ять, як я оголосив змінну. 593 00:26:57,170 --> 00:27:01,284 Я сказав комп'ютер, дайте мені пам'ять для змінної, називають це з, 594 00:27:01,284 --> 00:27:03,950 і заздалегідь знати, що я збираюся щоб поміщати рядок в ньому. 595 00:27:03,950 --> 00:27:05,950 І рядок просто послідовність символів. 596 00:27:05,950 --> 00:27:09,190 Це слово, або фраза, або пункт, але це послідовність символів. 597 00:27:09,190 --> 00:27:10,610 Це не числа. 598 00:27:10,610 --> 00:27:13,800 Що рядок я збираюся бути покласти в цю змінну? 599 00:27:13,800 --> 00:27:16,185 Ну, мабуть, цитую кінець цитати ", Ханна". 600 00:27:16,185 --> 00:27:17,810 Тепер зверніть увагу, що малюнок на розвиваються. 601 00:27:17,810 --> 00:27:19,260 Там цей вираз ліва рука. 602 00:27:19,260 --> 00:27:21,810 Там цей вираз права рука, розділених знаком рівності. 603 00:27:21,810 --> 00:27:24,390 І тільки зробити припущення, якщо знайомі, тим не менш, 604 00:27:24,390 --> 00:27:27,430 з тим, що крапка з комою робить. 605 00:27:27,430 --> 00:27:28,865 Що це, ймовірно, робить для нас? 606 00:27:28,865 --> 00:27:29,365 Так? 607 00:27:29,365 --> 00:27:29,840 >> АУДИТОРІЯ: [нерозбірливо] 608 00:27:29,840 --> 00:27:29,980 >> Девід Дж Малан: Так. 609 00:27:29,980 --> 00:27:31,170 Це просто припинення лінію. 610 00:27:31,170 --> 00:27:31,669 Вірно? 611 00:27:31,669 --> 00:27:34,260 Комп'ютери хочете бути прямо сказав, буквально, що робити. 612 00:27:34,260 --> 00:27:36,343 Як арахісовим маслом і желе приклад сендвіч, 613 00:27:36,343 --> 00:27:39,360 якщо ви не вкажете саме те, що ви збираєтеся, 614 00:27:39,360 --> 00:27:42,190 це може бути залишено на розсуд або помилок. 615 00:27:42,190 --> 00:27:44,890 Крапка з комою означає, ось саме для цієї команди. 616 00:27:44,890 --> 00:27:48,310 Це будучи супер точною, і це дуже легка річ, щоб кинути. 617 00:27:48,310 --> 00:27:52,240 Так що тепер ця програма, здається, не же не бути по-іншому поводиться будь-який, поки я 618 00:27:52,240 --> 00:27:53,500 зробити його більш динамічним. 619 00:27:53,500 --> 00:27:57,107 Таким чином, замість того, щоб жорстко міг моя власна ім'я, дозвольте мені поставити значення заповнювача. 620 00:27:57,107 --> 00:28:00,190 І виходить, що, і я знаю це від прочитавши документацію, 621 00:28:00,190 --> 00:28:04,080 і використовувати функцію років, що Printf був розроблений, щоб бути динамічним. 622 00:28:04,080 --> 00:28:07,510 Ви не повинні знати заздалегідь які слова ви хочете, щоб покласти в нього. 623 00:28:07,510 --> 00:28:11,290 Замість цього, ви можете мати Прототип, як відсоток с, що 624 00:28:11,290 --> 00:28:15,500 збирається розповісти комп'ютер, поставити тут рядок. 625 00:28:15,500 --> 00:28:17,740 >> Які рядки ми хочемо поставити там? 626 00:28:17,740 --> 00:28:22,430 Уїлл виявляється, що між ними дужки, які пам'ятають, розмежувати 627 00:28:22,430 --> 00:28:28,020 вхід для функції, якщо у вас є розділені комою список речей, тут, 628 00:28:28,020 --> 00:28:31,790 ми насправді проходять в декількох Входи в функцію. 629 00:28:31,790 --> 00:28:33,901 Так як і деякі подряпин блоки, ви не могли б 630 00:28:33,901 --> 00:28:36,150 грав з ними Ваші проекти поки або взагалі, 631 00:28:36,150 --> 00:28:38,250 деякі Скретч блоки мають два входи. 632 00:28:38,250 --> 00:28:41,220 Два білих списків, ви можете введіть число, або слова в. 633 00:28:41,220 --> 00:28:45,210 Так само є С функції, такі як Printf, що може зайняти два входи. 634 00:28:45,210 --> 00:28:48,050 І знову ж, це кома відокремлює їх. 635 00:28:48,050 --> 00:28:51,070 Таким чином, в англійській мові, знову, навіть якщо Ви ніколи не програмували, 636 00:28:51,070 --> 00:28:55,320 За цією логікою Printf є функцією, приймає два входи, один з яких 637 00:28:55,320 --> 00:28:58,810 є заповнювачем, що б ви сподіваєтеся Printf збирається робити з цим входом? 638 00:28:58,810 --> 00:29:01,470 639 00:29:01,470 --> 00:29:03,220 Це відбувається, щоб сказати привіт Ханна, сподіваюся. 640 00:29:03,220 --> 00:29:05,274 Таким чином, щоб зробити це, ми повинні зберегти його. 641 00:29:05,274 --> 00:29:06,190 Я збираюся, щоб зменшити. 642 00:29:06,190 --> 00:29:10,701 Я збираюся повернутися сюди і сказати, зробити привіт увійти. 643 00:29:10,701 --> 00:29:11,200 Ох. 644 00:29:11,200 --> 00:29:14,830 Щось не так, і насправді це досить переважною. 645 00:29:14,830 --> 00:29:18,400 У мене є шість рядків коду і, як 12 рядків помилок. 646 00:29:18,400 --> 00:29:22,120 Так, з нетерпінням чекаємо цього. 647 00:29:22,120 --> 00:29:24,260 Так що тут відбувається? 648 00:29:24,260 --> 00:29:27,370 Так що кращий правило тут, особливо, коли ви починаєте, 649 00:29:27,370 --> 00:29:29,370 не відволікатися на матеріал на дні. 650 00:29:29,370 --> 00:29:31,220 Насправді, я дуже свідомо просто прокручується до 651 00:29:31,220 --> 00:29:33,930 бо дуже часто, комп'ютер знаходиться не все так райдужно пристрою. 652 00:29:33,930 --> 00:29:35,054 Це буде заплутатися. 653 00:29:35,054 --> 00:29:37,220 Якщо він бачить, що одне він не розуміє, 654 00:29:37,220 --> 00:29:40,030 це може помилка Інша рядків коду, так як неправильні, 655 00:29:40,030 --> 00:29:41,649 навіть якщо вони прекрасно. 656 00:29:41,649 --> 00:29:43,940 Таким чином, ви завжди хочете працювати зверху вниз через помилки. 657 00:29:43,940 --> 00:29:47,850 І правда, це супер таємницею на даний момент. 658 00:29:47,850 --> 00:29:50,830 >> Помилка, використання неоголошених Ідентифікатор рядка. 659 00:29:50,830 --> 00:29:52,130 Хіба я маю на увазі стандарт? 660 00:29:52,130 --> 00:29:53,720 Ні, я мав на увазі рядка. 661 00:29:53,720 --> 00:29:55,830 І це вказує на, може бути, це помилка. 662 00:29:55,830 --> 00:30:00,570 Ніби як, перевірки орфографії в дуже зухвалим чином, але причина тут, 663 00:30:00,570 --> 00:30:02,840 і ви будете знати, це просто практиці, є 664 00:30:02,840 --> 00:30:06,390 що виходить, що рядок не існує в С. Дійсно, С 665 00:30:06,390 --> 00:30:08,820 є особливо старий мову, і це дуже низький рівень, 666 00:30:08,820 --> 00:30:11,361 і це не багато можливостей що ви, можливо, вже виросли 667 00:30:11,361 --> 00:30:14,620 з якщо у вас є, насправді, запрограмований в Java, як деякі з вас, 668 00:30:14,620 --> 00:30:16,980 але ви можете навчити його нові речі. 669 00:30:16,980 --> 00:30:20,900 І справді, ми зробили це CS50, навіть якщо до кінця семестру, 670 00:30:20,900 --> 00:30:23,512 всі ці навчальні диски буде знята, 671 00:30:23,512 --> 00:30:25,220 що ми робимо в них Перша пара тижнів 672 00:30:25,220 --> 00:30:29,830 спочатку у нас є включити CS50 точка годину. 673 00:30:29,830 --> 00:30:31,230 Який файл заголовка. 674 00:30:31,230 --> 00:30:32,440 Докладніше про це в майбутньому. 675 00:30:32,440 --> 00:30:36,430 >> Це файл, який містить функції, що ми написали для вас. 676 00:30:36,430 --> 00:30:39,180 І серед цих функцій функції для отримання вкладу 677 00:30:39,180 --> 00:30:43,520 від користувача, як струни, і цифри і реальні цифри, і багато іншого. 678 00:30:43,520 --> 00:30:45,550 Але він також має декілька ярликів. 679 00:30:45,550 --> 00:30:48,200 Це визначає логічне як тип даних. 680 00:30:48,200 --> 00:30:50,340 С не мають істинною або помилковою. 681 00:30:50,340 --> 00:30:53,880 Але ми можемо дати йому поняття істинним чи хибним шляхом цієї бібліотеки. 682 00:30:53,880 --> 00:30:57,670 І це також не є рядок побудований в поки ми не включити цей рядок. 683 00:30:57,670 --> 00:31:01,090 Так цей рядок коду повідомляє компілятор, гей, Clang, подивіться 684 00:31:01,090 --> 00:31:03,570 в цьому файлі протягом цілого купа коду, який CS50 685 00:31:03,570 --> 00:31:06,330 була написана так, що хто за допомогою цього файлу 686 00:31:06,330 --> 00:31:09,330 може прийняти як належне Особливості вони додали. 687 00:31:09,330 --> 00:31:11,220 >> Так що тепер дозвольте мені йти вперед і очистити екран, 688 00:31:11,220 --> 00:31:14,178 і якщо цікаво, я просто кажу, що контроль л щораз, щоб очистити екран, 689 00:31:14,178 --> 00:31:15,500 або ви можете ввести ясно. 690 00:31:15,500 --> 00:31:19,220 Я просто збираюся йти вперед і в даний час Тип зробити привіт, і все буде добре. 691 00:31:19,220 --> 00:31:22,550 Проте таємний вихід, але це не помилкове повідомлення. 692 00:31:22,550 --> 00:31:28,300 Тепер, якщо я точка слеш привіт, і як в сторону, точка слеш незнайомі більшості. 693 00:31:28,300 --> 00:31:30,430 Це просто означає ,, точка означає поточний каталог. 694 00:31:30,430 --> 00:31:33,120 Так що якщо ви коли-небудь використовували DOS, Linux, або, або Unix 695 00:31:33,120 --> 00:31:35,410 Ви могли б зробити щось як кд точка точка, де 696 00:31:35,410 --> 00:31:39,220 точка точка означає йти у зворотному напрямку в Час, або йти у зворотному напрямку, або вище 697 00:31:39,220 --> 00:31:40,370 в каталозі. 698 00:31:40,370 --> 00:31:43,090 Дот просто означає шукати в поточний каталог. 699 00:31:43,090 --> 00:31:45,670 Я хочу привіт, який знаходиться прямо тут. 700 00:31:45,670 --> 00:31:47,750 І дійсно, в даний час він говорить, привіт Ханна. 701 00:31:47,750 --> 00:31:51,120 І якщо я можу змінити його знову Марії, перекомпілювати 702 00:31:51,120 --> 00:31:55,650 він робитиме привіт, точка слеш привіт, програма постійно змінюється. 703 00:31:55,650 --> 00:31:58,060 >> Але це ще досить безглуздо програма. 704 00:31:58,060 --> 00:32:00,972 Якщо я хочу, щоб відправити цю програму, або дати його другу, 705 00:32:00,972 --> 00:32:03,430 або дати його Марії чи Анни з цього питання, це нормально. 706 00:32:03,430 --> 00:32:07,300 Я можу налаштувати його для них обох, але це ніколи не буде динамічним. 707 00:32:07,300 --> 00:32:10,870 Вони не можуть змінити її, коли вона компілюється вниз в цих нулів і одиниць. 708 00:32:10,870 --> 00:32:12,350 Отже, що ми зробили щось розумніше? 709 00:32:12,350 --> 00:32:17,100 Що робити, якщо, замість того, щоб жорстко прописаних в програмі ім'я цієї людини, 710 00:32:17,100 --> 00:32:20,890 Що, якщо ми просто отримати рядок на вимогу? 711 00:32:20,890 --> 00:32:22,430 >> Отже, іншими словами, дозвольте мені зробити це. 712 00:32:22,430 --> 00:32:24,030 Я збираюся перекомпілювати цю програму. 713 00:32:24,030 --> 00:32:25,710 І дозвольте мені збільшити на дні справжнє. 714 00:32:25,710 --> 00:32:29,920 Зробити привіт точка слеш привіт. 715 00:32:29,920 --> 00:32:31,710 Тепер ніщо не відбувається. 716 00:32:31,710 --> 00:32:35,860 Чи можемо ми отримати швидкий добровольця зробити щось трапиться? 717 00:32:35,860 --> 00:32:36,360 Давай до. 718 00:32:36,360 --> 00:32:37,020 Як вас звати? 719 00:32:37,020 --> 00:32:37,445 >> Панчо: Панчо. 720 00:32:37,445 --> 00:32:38,361 >> Девід Дж Малан: Пачо? 721 00:32:38,361 --> 00:32:39,609 Давай до. 722 00:32:39,609 --> 00:32:42,150 Як тільки ви отримаєте тут, це буде дуже захват, 723 00:32:42,150 --> 00:32:44,060 але це більш цікаво чим мені його наборі. 724 00:32:44,060 --> 00:32:49,007 Якщо ви хочете, щоб йти вперед і введіть ім'я, я зробив цю програму тільки для вас. 725 00:32:49,007 --> 00:32:49,840 Просто введіть своє ім'я. 726 00:32:49,840 --> 00:32:52,380 727 00:32:52,380 --> 00:32:53,900 Enter. 728 00:32:53,900 --> 00:32:54,489 Чудово. 729 00:32:54,489 --> 00:32:55,780 Гаразд, спасибі дуже багато. 730 00:32:55,780 --> 00:32:56,708 >> Панчо: Спасибі дуже багато. 731 00:32:56,708 --> 00:32:57,636 >> Девід Дж Малан: ОК. 732 00:32:57,636 --> 00:32:59,028 >> [Оплески] 733 00:32:59,028 --> 00:33:00,884 734 00:33:00,884 --> 00:33:01,840 >> Це був дуже добрий. 735 00:33:01,840 --> 00:33:03,145 Тут ви йдете. 736 00:33:03,145 --> 00:33:03,770 Що ми робимо? 737 00:33:03,770 --> 00:33:05,930 Таким чином, ми, нарешті, принаймні, зробив це програма динамічним. 738 00:33:05,930 --> 00:33:08,400 Тепер, звичайно, все ще по конструкції захват, 739 00:33:08,400 --> 00:33:11,480 але ми, нарешті, мати можливість Тепер, щоб написати код заздалегідь, багато 740 00:33:11,480 --> 00:33:13,770 як і автори Printf, і потім динамічно 741 00:33:13,770 --> 00:33:17,550 адаптуватися на основі матеріалів ми передав, або програмістом, 742 00:33:17,550 --> 00:33:20,610 або за допомогою людини, яка насправді взаємодія з програмою. 743 00:33:20,610 --> 00:33:22,990 Так давайте тепер спробуємо насправді зробити дещо інші конструкції 744 00:33:22,990 --> 00:33:26,625 і подивитися, якщо ми не можемо зробити програми Самі складніше. 745 00:33:26,625 --> 00:33:29,250 Так що давайте йти вперед і замість пишу це з нуля, 746 00:33:29,250 --> 00:33:31,540 Я збираюся піти сьогодні до Вихідний код, і все це 747 00:33:31,540 --> 00:33:34,290 є на курс-х сайт, і ви можете перетягнути його 748 00:33:34,290 --> 00:33:36,590 у власному середовищі прийти в п'ятницю відразу проблеми 749 00:33:36,590 --> 00:33:38,506 набір 1 дає вам інструкції, або ви могли б 750 00:33:38,506 --> 00:33:41,200 зробити це в командному рядку, як добре, але ще не в р набір 1. 751 00:33:41,200 --> 00:33:44,940 >> Давайте подивимося, що в цій програмі тут називають, гадюка точка гр. 752 00:33:44,940 --> 00:33:47,970 Тепер я вже прокоментував це, але що нового? 753 00:33:47,970 --> 00:33:51,230 На перший погляд, те, що лінія коду абсолютно нового? 754 00:33:51,230 --> 00:33:53,930 755 00:33:53,930 --> 00:33:56,780 Напевно, не принципово Тепер знайомі. 756 00:33:56,780 --> 00:33:58,417 >> АУДИТОРІЯ: [нерозбірливо] 757 00:33:58,417 --> 00:34:00,250 Девід Дж Малан: Так, так INT х дорівнює отримати п. 758 00:34:00,250 --> 00:34:03,760 Ми ніколи не бачили нічого з цього раніше, але, ймовірно, INT 759 00:34:03,760 --> 00:34:08,179 символ якийсь Мінлива [? від?] ціле. 760 00:34:08,179 --> 00:34:09,040 Так INT для цілого числа. 761 00:34:09,040 --> 00:34:11,420 Це просто бути більш коротким. х просто довільно. 762 00:34:11,420 --> 00:34:13,920 х і в і г і раніше досить розумно для чисел, 763 00:34:13,920 --> 00:34:16,790 але в цілому ми будемо використовувати слова відразу наші програми стають все більш складними. 764 00:34:16,790 --> 00:34:18,940 Отримати Int, звичайно, так само, як отримати рядок, 765 00:34:18,940 --> 00:34:21,629 , Ймовірно, буде отримувати целочисленное від користувача, 766 00:34:21,629 --> 00:34:23,670 а потім ми збираємося зробити те ж саме з у. 767 00:34:23,670 --> 00:34:27,610 І, мабуть, навіть якщо це Останній рядок, 24, виглядає більш складним, 768 00:34:27,610 --> 00:34:32,679 він збирається сказати суму цього і що це інша річ. 769 00:34:32,679 --> 00:34:35,840 >> І зауважте відсотків я ймовірно, означає, що? 770 00:34:35,840 --> 00:34:38,190 Яку роль відсотків я мабуть, служити? 771 00:34:38,190 --> 00:34:40,739 772 00:34:40,739 --> 00:34:41,719 Це просто заповнювачі. 773 00:34:41,719 --> 00:34:42,219 Вірно? 774 00:34:42,219 --> 00:34:45,149 Відсоток з була для рядка, відсотків я для цілого числа. 775 00:34:45,149 --> 00:34:47,690 Там буде відсотків е з плаваючою точкою значення, яке 776 00:34:47,690 --> 00:34:49,273 це просто число з десятковою крапкою. 777 00:34:49,273 --> 00:34:50,590 Іншими словами, дійсне число. 778 00:34:50,590 --> 00:34:55,270 Отже, давайте насправді скомпілювати програмувати дуже швидко і роблять гадюка. 779 00:34:55,270 --> 00:34:57,962 Упс. 780 00:34:57,962 --> 00:34:58,670 Гарна можливість. 781 00:34:58,670 --> 00:35:02,970 Так помітити тут, весь цей час мій користувача Ім'я для цього аккаунт jharvard. 782 00:35:02,970 --> 00:35:06,620 Я в CS50 IDE, інакше IDE50. 783 00:35:06,620 --> 00:35:11,030 А тепер в синьому тут, згадка, але від навколишнього середовища, від того, де я. 784 00:35:11,030 --> 00:35:16,050 І справді, якщо я збільшити до вершини тут, зверніть увагу, що у мене є IDE50 785 00:35:16,050 --> 00:35:19,490 і я бачу це слово, якщо ви вид повернути голову в бік, робочий простір. 786 00:35:19,490 --> 00:35:23,890 У двох словах, то, що Я бачу тильди слеш робочий простір 787 00:35:23,890 --> 00:35:26,910 означає, що в даному тексті Середа, заснована на командній, 788 00:35:26,910 --> 00:35:32,300 Я в текстовому еквіваленті Цей графічний папку тут. 789 00:35:32,300 --> 00:35:35,730 Так що, коли я точка слеш гадюка, вона не говорить про верховенство 790 00:35:35,730 --> 00:35:37,372 щоб цільовий гадюка зупинку. 791 00:35:37,372 --> 00:35:39,830 Я не знаю, що це означає, але це погано для якоїсь причини. 792 00:35:39,830 --> 00:35:43,310 Немає такого файлу або каталогу ще більш ясно. 793 00:35:43,310 --> 00:35:45,670 Де ж тоді? 794 00:35:45,670 --> 00:35:47,820 На підставі того, де я натиснув щоб відкрити файл раніше. 795 00:35:47,820 --> 00:35:49,442 Де він може бути? 796 00:35:49,442 --> 00:35:52,050 >> Це, ймовірно, в джерелі одним Вт, в середу, 797 00:35:52,050 --> 00:35:53,960 і я можу бачити це, дійсно, якщо я відкриваю, що до. 798 00:35:53,960 --> 00:35:57,220 Існує точка гадюка с, але в Цей текст на основі навколишнього середовища, 799 00:35:57,220 --> 00:35:59,380 знову, я повинен бути супер явним. 800 00:35:59,380 --> 00:36:03,950 Якщо я хочу, щоб змінити каталоги в одне джерело середовище, мені потрібно ввести, 801 00:36:03,950 --> 00:36:07,210 CD одне джерело простір Середа введіть і тепер 802 00:36:07,210 --> 00:36:09,810 мої швидкі зміни дати мені візуальний сигнал, що 803 00:36:09,810 --> 00:36:12,330 Я, справді, в іншому місці в моєму оточенні, 804 00:36:12,330 --> 00:36:15,710 але тепер я можу робити зробити гадюка, це, здається, працює, 805 00:36:15,710 --> 00:36:18,190 точка слеш гадюка, дай мені ціле. 806 00:36:18,190 --> 00:36:19,080 Один. 807 00:36:19,080 --> 00:36:20,070 Два. 808 00:36:20,070 --> 00:36:21,630 Сума одного і двох зо три. 809 00:36:21,630 --> 00:36:24,140 Але якщо я не співпрацюють, давайте подивимося, що отримати INT робить. 810 00:36:24,140 --> 00:36:25,200 Дайте мені ціле. 811 00:36:25,200 --> 00:36:26,590 Немає. 812 00:36:26,590 --> 00:36:27,350 Повторіть. 813 00:36:27,350 --> 00:36:29,060 ДОБРЕ. 814 00:36:29,060 --> 00:36:30,520 Прекрасно. 815 00:36:30,520 --> 00:36:32,130 50. 816 00:36:32,130 --> 00:36:32,680 50. 817 00:36:32,680 --> 00:36:33,010 Добре. 818 00:36:33,010 --> 00:36:34,055 Так що, нарешті, співпрацює. 819 00:36:34,055 --> 00:36:36,430 І це одні з функціональність, що ці функції 820 00:36:36,430 --> 00:36:37,760 може бути побудований за вас. 821 00:36:37,760 --> 00:36:43,330 >> Так всередині реалізації з отримаєте INT, який програмування 822 00:36:43,330 --> 00:36:47,990 побудувати з минулого тижня, ймовірно, в там змусити таку поведінку повторити спробу, 823 00:36:47,990 --> 00:36:49,962 спробуйте, повторити? 824 00:36:49,962 --> 00:36:51,670 Так, там, напевно, свого роду цикл. 825 00:36:51,670 --> 00:36:54,160 Це буде виглядати синтаксично відрізняється від блоків нуля, в 826 00:36:54,160 --> 00:36:55,880 але це дійсно що всередині файлу. 827 00:36:55,880 --> 00:36:58,505 І протягом декількох тижнів ми будемо насправді виглядають в бібліотеці CS50 828 00:36:58,505 --> 00:37:02,000 а те, що всередині, але є петля накладення саме це. 829 00:37:02,000 --> 00:37:04,840 >> Давайте грати в дурні Гра тут з цим файлом. 830 00:37:04,840 --> 00:37:06,550 Стан нулю точка гр. 831 00:37:06,550 --> 00:37:08,960 Ми просто збираємося в загальному почати відлік з нуля. 832 00:37:08,960 --> 00:37:11,220 І я продовжую прокрутки минуле деякі речі на вершині. 833 00:37:11,220 --> 00:37:15,390 У синій тут, розмежовані з усіма з цих зірок і косою риси, 834 00:37:15,390 --> 00:37:17,310 ті з вас, хто запрограмувати колись, що це таке? 835 00:37:17,310 --> 00:37:18,690 Чому ми продовжуємо пропускати над ним? 836 00:37:18,690 --> 00:37:19,110 Що? 837 00:37:19,110 --> 00:37:19,490 >> АУДИТОРІЯ: Це коментар. 838 00:37:19,490 --> 00:37:19,800 >> Девід Дж Малан: Так. 839 00:37:19,800 --> 00:37:20,633 Це просто коментар. 840 00:37:20,633 --> 00:37:24,160 Це коментар для людини читати, що в нашому випадку, 841 00:37:24,160 --> 00:37:27,120 говорить нам, що ім'я файлу в тому, хто її написав, і що він робить, 842 00:37:27,120 --> 00:37:28,610 так що вам не доведеться прочитати код 843 00:37:28,610 --> 00:37:30,110 знати, що цей файл це все о. 844 00:37:30,110 --> 00:37:33,110 Це просто опис, але функціонально це не має значення. 845 00:37:33,110 --> 00:37:35,930 І я навіть можу видалити його з мій файл і він не має ніякого впливу. 846 00:37:35,930 --> 00:37:38,740 Соковиті лінії ці Перші два тут і зараз. 847 00:37:38,740 --> 00:37:41,405 INT основний недійсними є еквівалентом нашого, коли зелений прапор клацанні 848 00:37:41,405 --> 00:37:44,030 так що ми збираємося залишити це бути на сьогоднішній день, і ми повернемося, 849 00:37:44,030 --> 00:37:46,940 зрештою, до того, що, як INT сили є, але зараз, 850 00:37:46,940 --> 00:37:49,500 зауважити, що я зробив тут, ви можете також, 851 00:37:49,500 --> 00:37:51,736 якщо у вас є відповідно коментарі, якщо у вас є 852 00:37:51,736 --> 00:37:54,670 думка ви хочете поділитися про конкретну рядки коду, 853 00:37:54,670 --> 00:37:58,910 Конвенція в C це робити слеш слеш, а потім кілька короткі слова, 854 00:37:58,910 --> 00:38:01,500 не повний вирок, як правило, не пункт, 855 00:38:01,500 --> 00:38:05,310 що тільки пояснює вам, або ваш TF, або інші читачі чи колеги, 856 00:38:05,310 --> 00:38:06,990 що ваш код робить. 857 00:38:06,990 --> 00:38:10,150 Таким чином, замість того, щоб мати дивитися на це і вивести з ліній 858 00:38:10,150 --> 00:38:12,550 дев'ять і 10, що це робить, відповідно восьмій 859 00:38:12,550 --> 00:38:14,945 Я просто дати коментар до запитати користувача для цілого, 860 00:38:14,945 --> 00:38:17,820 то я не повинен думати занадто важко про що лінії дев'ять і 10. 861 00:38:17,820 --> 00:38:19,720 Я просто знаю, що це те, що разом вони роблять. 862 00:38:19,720 --> 00:38:20,460 >> Як? 863 00:38:20,460 --> 00:38:22,060 Ну, ось підказка. 864 00:38:22,060 --> 00:38:23,610 Ось добування Int. 865 00:38:23,610 --> 00:38:25,984 І на основі попереднього поведінку, здається, Get INT 866 00:38:25,984 --> 00:38:29,080 досить розумні, щоб переконатися, що людина співпрацює і дає його 867 00:38:29,080 --> 00:38:30,090 ціле число. 868 00:38:30,090 --> 00:38:32,270 Але тепер ми бачимо це. 869 00:38:32,270 --> 00:38:33,740 І це нагадує нуля. 870 00:38:33,740 --> 00:38:36,140 Я стверджуючи, що я Аналізуючи введені користувачем, 871 00:38:36,140 --> 00:38:39,050 але дещо неточно. 872 00:38:39,050 --> 00:38:43,200 І це, мабуть, в тому, як C ми висловлюємо, якщо ще, філія, 873 00:38:43,200 --> 00:38:46,320 вилка в дорозі, але я говорять дещо неточно. 874 00:38:46,320 --> 00:38:50,470 Що помилка в цій програмі? 875 00:38:50,470 --> 00:38:51,610 Про далі назад? 876 00:38:51,610 --> 00:38:52,223 Так. 877 00:38:52,223 --> 00:38:53,150 >> АУДИТОРІЯ: [нерозбірливо] нулю. 878 00:38:53,150 --> 00:38:54,025 >> Девід Дж Малан: Так. 879 00:38:54,025 --> 00:38:57,630 Так що, якщо я друкую в нулі, давайте розглянемо саме в цьому випадку, або в кутку так, 880 00:38:57,630 --> 00:38:58,450 якщо ви будете. 881 00:38:58,450 --> 00:39:02,790 Так що, якщо я друкую в нуль, що з блоки збирається, мабуть, захопити його? 882 00:39:02,790 --> 00:39:04,660 Умовний чи інакше? 883 00:39:04,660 --> 00:39:07,340 Ще, і це скаже, Ви обрали негативне число. 884 00:39:07,340 --> 00:39:10,476 І справді, нуль не допускається щоб бути позитивним чи негативним, 885 00:39:10,476 --> 00:39:11,850 і так, що б помилково. 886 00:39:11,850 --> 00:39:12,930 Це було б помилкою. 887 00:39:12,930 --> 00:39:14,580 Так як ми можемо це виправити? 888 00:39:14,580 --> 00:39:16,360 Хтось, хто ніколи не програмував раніше? 889 00:39:16,360 --> 00:39:16,570 Чи є у вас want-- 890 00:39:16,570 --> 00:39:17,480 >> АУДИТОРІЯ: [нерозбірливо] 891 00:39:17,480 --> 00:39:17,990 >> Девід Дж Малан: Складання? 892 00:39:17,990 --> 00:39:18,570 >> АУДИТОРІЯ: [нерозбірливо] 893 00:39:18,570 --> 00:39:18,930 >> Девід Дж Малан: О, у вас є? 894 00:39:18,930 --> 00:39:20,350 Хтось, хто ніколи не програмував раніше. 895 00:39:20,350 --> 00:39:21,750 Хочете спробувати свої сили в це, в червоній сорочці? 896 00:39:21,750 --> 00:39:22,600 Давай до. 897 00:39:22,600 --> 00:39:25,320 Ах так, давай вгору, якщо ви не заперечуєте. 898 00:39:25,320 --> 00:39:27,586 Так що ніколи не запрограмувавши перш, ніж ваше ім'я? 899 00:39:27,586 --> 00:39:28,210 Лорен: Лорен. 900 00:39:28,210 --> 00:39:29,626 Девід Дж Малан: Лорен, все в порядку. 901 00:39:29,626 --> 00:39:31,150 Так виправити цю помилку для нас. 902 00:39:31,150 --> 00:39:35,070 Ви не бачили C, мабуть, і, ймовірно, ніхто інший мову. 903 00:39:35,070 --> 00:39:38,380 Так виправити цю програму для нас. 904 00:39:38,380 --> 00:39:39,100 Приємно познайомитися я. 905 00:39:39,100 --> 00:39:39,615 Ніякого тиску. 906 00:39:39,615 --> 00:39:40,156 Лорен: Так. 907 00:39:40,156 --> 00:39:43,350 908 00:39:43,350 --> 00:39:46,270 >> Девід Дж Малан: Але знову ж, якщо це азартна гра йде за планом, 909 00:39:46,270 --> 00:39:48,350 винос тут буде бути, просто ще раз, щоб почати 910 00:39:48,350 --> 00:39:51,080 помічати закономірності і вивести з існуючого синтаксису 911 00:39:51,080 --> 00:39:55,420 як ще ви могли б висловити самостійно, не каламбур, в цілях 912 00:39:55,420 --> 00:39:58,410 захопити додаткову сценарій. 913 00:39:58,410 --> 00:39:59,603 Так ми говоримо інакше, якщо. 914 00:39:59,603 --> 00:40:04,040 915 00:40:04,040 --> 00:40:05,230 Printf, добре. 916 00:40:05,230 --> 00:40:09,120 І зверніть увагу, з CS50 IDE і IDE frankly-- 917 00:40:09,120 --> 00:40:11,110 варто для комплексного Середа розробки. 918 00:40:11,110 --> 00:40:14,110 Це просто химерний спосіб сказати програма, яка допоможе вам програму. 919 00:40:14,110 --> 00:40:16,779 Це робить дружній користувальницький речі, як при введенні одного дужки, 920 00:40:16,779 --> 00:40:18,320 це автоматично дає вам інший. 921 00:40:18,320 --> 00:40:20,760 Презумпція того, що ви зрештою захочуть ввести, що, 922 00:40:20,760 --> 00:40:22,400 і це також робить його в лапки. 923 00:40:22,400 --> 00:40:24,190 >> Так що я хотів лінію 23. 924 00:40:24,190 --> 00:40:26,400 99% шляху там. 925 00:40:26,400 --> 00:40:29,920 Хтось хоче, щоб дзвонити в с наконечником? 926 00:40:29,920 --> 00:40:31,420 Я чув коми від аудиторії. 927 00:40:31,420 --> 00:40:32,080 Добре. 928 00:40:32,080 --> 00:40:33,260 Так що завершує це. 929 00:40:33,260 --> 00:40:37,930 А тепер, я просто трохи жах з лінії 21. 930 00:40:37,930 --> 00:40:41,370 Як же ми хочемо висловити це? 931 00:40:41,370 --> 00:40:43,370 Яке питання ми хочемо запитати, як ви думаєте? 932 00:40:43,370 --> 00:40:46,870 933 00:40:46,870 --> 00:40:50,330 Так, раніше ми задавали питання, якщо п більше нуля, зробити це. 934 00:40:50,330 --> 00:40:51,870 В іншому випадку, зробити це. 935 00:40:51,870 --> 00:40:54,317 Таким чином, ми повинні вибрати задати питання тут. 936 00:40:54,317 --> 00:40:55,192 АУДИТОРІЯ: [нерозбірливо] 937 00:40:55,192 --> 00:40:56,530 Девід Дж Малан: Добре. 938 00:40:56,530 --> 00:40:58,290 Так, якщо п дорівнює нулю. 939 00:40:58,290 --> 00:41:01,140 940 00:41:01,140 --> 00:41:02,100 Відмінно. 941 00:41:02,100 --> 00:41:03,080 Так давайте зупинимося тут. 942 00:41:03,080 --> 00:41:04,850 Спасибі так багато для лякаючись цього. 943 00:41:04,850 --> 00:41:10,890 Дозвольте мені дати вам трохи заслуженою стрес м'яч, можливо, є. 944 00:41:10,890 --> 00:41:11,900 Таким чином, ми вже майже там. 945 00:41:11,900 --> 00:41:14,790 Насправді, Лорен, якщо ви не розум, дозвольте мені зробити один налаштувати тут, 946 00:41:14,790 --> 00:41:17,850 тільки, щоб бути стійким, навіть те, що ми бачили в порожньому, те, що 947 00:41:17,850 --> 00:41:21,080 я хочу зробити з лініями 21 і 24, тільки на основі знову 948 00:41:21,080 --> 00:41:23,290 про те, як ми робили це в порожньому, можливо? 949 00:41:23,290 --> 00:41:24,230 >> АУДИТОРІЯ: Переміщення його. 950 00:41:24,230 --> 00:41:25,605 >> Девід Дж Малан: Так, перемістити його вгору. 951 00:41:25,605 --> 00:41:30,260 Таким чином, стан другий, третій, або четвертий або п'ятий, або остаточне відділення, 952 00:41:30,260 --> 00:41:34,100 повинні дійсно прийшов пізніше, і це тільки за угодою, 953 00:41:34,100 --> 00:41:36,047 просто тому, що якщо ви будете. 954 00:41:36,047 --> 00:41:37,380 Так мені потрібно зробити цієї настройки. 955 00:41:37,380 --> 00:41:39,660 І мені потрібно поставити свою фігурна дужка сюди. 956 00:41:39,660 --> 00:41:42,700 І тепер, ця програма компілюватиметься. 957 00:41:42,700 --> 00:41:46,140 Ми так близько, але є дуже, дуже тонкий помилка. 958 00:41:46,140 --> 00:41:47,200 Давайте подивимося, що станеться. 959 00:41:47,200 --> 00:41:49,660 >> По-перше, дозвольте мені йти вперед і зменшення масштабу. 960 00:41:49,660 --> 00:41:53,405 Я збираюся йти вперед і введіть зробити стан нульовий. 961 00:41:53,405 --> 00:41:55,070 О, я брехав. 962 00:41:55,070 --> 00:41:58,760 Тепер компілятор насправді дуже розумний. 963 00:41:58,760 --> 00:42:00,950 І я дійсно не розумію, це повідомлення про помилку. 964 00:42:00,950 --> 00:42:04,310 Використовуючи результат присвоєння в змозі без дужок, 965 00:42:04,310 --> 00:42:05,740 мабуть, погано. 966 00:42:05,740 --> 00:42:07,100 Але що це означає? 967 00:42:07,100 --> 00:42:10,860 >> Ну знову ж, дивлячись на моделі в коді, що ми бачили раніше, 968 00:42:10,860 --> 00:42:16,640 що лінія 17 насправді робить, навіть якщо Лорен призначені трохи 969 00:42:16,640 --> 00:42:18,790 в іншому випадку? 970 00:42:18,790 --> 00:42:19,290 Так. 971 00:42:19,290 --> 00:42:21,565 >> АУДИТОРІЯ: [нерозбірливо] 972 00:42:21,565 --> 00:42:22,440 Девід Дж Малан: Так. 973 00:42:22,440 --> 00:42:26,610 Так що пам'ятайте, знак рівності, мабуть, як ми використовували його раніше, не так на рівних. 974 00:42:26,610 --> 00:42:29,240 Його призначення, справа наліво. 975 00:42:29,240 --> 00:42:33,810 Так рядок 17 нині це стан, і це 976 00:42:33,810 --> 00:42:37,890 виконання коду всередині дужок, але коли код виконується, 977 00:42:37,890 --> 00:42:42,140 що відбувається з нульовим значенням? 978 00:42:42,140 --> 00:42:45,250 Те, що відбувається в значенні п? 979 00:42:45,250 --> 00:42:46,810 Ставши нулю. 980 00:42:46,810 --> 00:42:50,520 Так, якщо п стає рівним нулю, І знову, як в останній тиждень, 981 00:42:50,520 --> 00:42:54,690 ми зазвичай говоримо, що нуль є помилковою і одна правда, 982 00:42:54,690 --> 00:42:57,410 або так ні це одне і не дорівнює нулю. 983 00:42:57,410 --> 00:42:59,590 Так істинним і хибним, одне і 0. 984 00:42:59,590 --> 00:43:06,090 Якщо н від лінії 17 була враховуючи значення 0, дорівнює нулю правда? 985 00:43:06,090 --> 00:43:06,590 Немає. 986 00:43:06,590 --> 00:43:08,280 За визначенням, нуль це брехня. 987 00:43:08,280 --> 00:43:10,860 Ця угода ми збирається чіплятися рухатися вперед. 988 00:43:10,860 --> 00:43:17,320 Так буде лінії 18, 19, і 20 або застосувати зараз, логічно? 989 00:43:17,320 --> 00:43:18,320 Вони не можуть. 990 00:43:18,320 --> 00:43:21,640 Таким чином, ми поставили запитання але не зовсім точно, 991 00:43:21,640 --> 00:43:25,620 і ви не знаєте, не це, якщо Ви бачили це, рішення в С 992 00:43:25,620 --> 00:43:29,610 коли ви хочете, щоб висловити рівність, ви говорите, одно рівних. 993 00:43:29,610 --> 00:43:33,140 Так знак рівності вже використовується до за завданням, справа наліво. 994 00:43:33,140 --> 00:43:35,110 Одно дорівнює кошти рівними. 995 00:43:35,110 --> 00:43:37,950 І якщо ви дійсно хочете свій розум щоб бути зігнуті в JavaScript і PHP, 996 00:43:37,950 --> 00:43:40,490 тобто дорівнює дорівнює рівних, які значить щось ще в цілому, 997 00:43:40,490 --> 00:43:41,990 але ми повернемося до того, що незабаром. 998 00:43:41,990 --> 00:43:45,760 >> Так що це просто виправити, але розумію, супер просто, щоб зробити цю помилку, 999 00:43:45,760 --> 00:43:48,700 а потім дивуються, і боротьба за кілька хвилин, якщо не години, 1000 00:43:48,700 --> 00:43:51,490 чому мій код не виконання, як я маю намір? 1001 00:43:51,490 --> 00:43:54,140 Це тому, що ви не сказали це саме те, що ви мали на увазі. 1002 00:43:54,140 --> 00:43:56,450 Так що майже ідеально, і це було здорово 1003 00:43:56,450 --> 00:44:00,760 що ми наткнулися два маленьких речі, тому що тепер, якщо ми їх виправити, 1004 00:44:00,760 --> 00:44:06,240 і я зробити Condition Zero точка слеш стан нулю, 1005 00:44:06,240 --> 00:44:07,490 Я хотів би ціле ласка. 1006 00:44:07,490 --> 00:44:08,090 Давайте подивимося. 1007 00:44:08,090 --> 00:44:09,160 Немає. 1008 00:44:09,160 --> 00:44:10,740 Це відбувається, щоб змусити мене зробити це. 1009 00:44:10,740 --> 00:44:11,990 Так 42. 1010 00:44:11,990 --> 00:44:13,590 Я вибрав позитивне число. 1011 00:44:13,590 --> 00:44:16,470 Так що тепер, як я можу довести, ця програма правильно? 1012 00:44:16,470 --> 00:44:19,990 Якщо ви математик, ви не можете дійсно довести це методом проб і помилок, 1013 00:44:19,990 --> 00:44:20,490 вірно? 1014 00:44:20,490 --> 00:44:23,180 Ви можете не тільки доказ, приклад, але, принаймні 1015 00:44:23,180 --> 00:44:25,494 в якості програміста ми не намагатиметься довести, зараз 1016 00:44:25,494 --> 00:44:27,660 що це насправді правильно, але я, напевно, слід 1017 00:44:27,660 --> 00:44:29,470 перевірити деякі представництва випадків. 1018 00:44:29,470 --> 00:44:31,070 >> Я перевірив 42. 1019 00:44:31,070 --> 00:44:33,030 Я міг би перевірити 43. 1020 00:44:33,030 --> 00:44:34,910 Я міг би перевірити 44. 1021 00:44:34,910 --> 00:44:35,640 Тест 45. 1022 00:44:35,640 --> 00:44:36,140 Вірно? 1023 00:44:36,140 --> 00:44:37,860 Але що я міг зробити це дуже довго. 1024 00:44:37,860 --> 00:44:39,925 Що б ще трохи цікаві випадки спробувати? 1025 00:44:39,925 --> 00:44:41,050 АУДИТОРІЯ: [нерозбірливо] нулю. 1026 00:44:41,050 --> 00:44:41,740 Девід Дж Малан: Так нулю. 1027 00:44:41,740 --> 00:44:42,297 Звичайно. 1028 00:44:42,297 --> 00:44:44,880 І добре, що у нас є це цього разу, завдяки новим кодом Лорен. 1029 00:44:44,880 --> 00:44:46,213 Що інший хороший випадок спробувати? 1030 00:44:46,213 --> 00:44:47,320 АУДИТОРІЯ: негативний. 1031 00:44:47,320 --> 00:44:50,070 >> Девід Дж Малан: негативний, а може бути, щось трохи більше, 1032 00:44:50,070 --> 00:44:52,617 так що, можливо негативне 42, але в цілому, коли 1033 00:44:52,617 --> 00:44:54,450 тестування програм рухатися вперед, ви 1034 00:44:54,450 --> 00:44:56,325 захоче думати до себе, як те, що 1035 00:44:56,325 --> 00:44:58,050 є основними різні випадки. 1036 00:44:58,050 --> 00:45:01,720 І я насмілюся сказати, негативний справа, позитивний випадок, і випадок нульовий 1037 00:45:01,720 --> 00:45:03,365 в значній мірі округлює ці з. 1038 00:45:03,365 --> 00:45:04,990 Давайте подивимося на варіант цього ж. 1039 00:45:04,990 --> 00:45:06,930 Умови одну. 1040 00:45:06,930 --> 00:45:11,224 Це правильне рішення тут, так що ви побачите два і в Інтернеті, 1041 00:45:11,224 --> 00:45:13,390 якщо ви йдете через проходження, буде, як правило 1042 00:45:13,390 --> 00:45:18,090 не збільшувати ці східчасто, поки ми отримати саме правильний підхід. 1043 00:45:18,090 --> 00:45:20,070 Що робити, якщо ми хотіли запитати два питання відразу? 1044 00:45:20,070 --> 00:45:22,200 >> Дозвольте мені відкрити це замість. 1045 00:45:22,200 --> 00:45:26,740 Номери перемикач, з причин, ми побачимо іншим разом. 1046 00:45:26,740 --> 00:45:29,610 Що нового синтаксично тут? 1047 00:45:29,610 --> 00:45:32,760 Я в даний час грає в гру де комп'ютер говорить 1048 00:45:32,760 --> 00:45:35,550 мені, дай мені ціле від одного до 10, 1049 00:45:35,550 --> 00:45:37,180 і тоді я, судячи вхід користувача. 1050 00:45:37,180 --> 00:45:39,180 В англійській мові, заснована на код ви бачите тут 1051 00:45:39,180 --> 00:45:41,530 синім, що ця програма робить? 1052 00:45:41,530 --> 00:45:44,256 1053 00:45:44,256 --> 00:45:46,380 АУДИТОРІЯ: [нерозбірливо] взяв великий або маленький номер. 1054 00:45:46,380 --> 00:45:46,484 Девід Дж Малан: Так. 1055 00:45:46,484 --> 00:45:49,450 Це просто розгляді чи Я вибрав великий, або середу, 1056 00:45:49,450 --> 00:45:53,900 або невелику кількість на основі дуже довільне визначення малих, середніх, 1057 00:45:53,900 --> 00:45:58,510 і велика тут, але повідомлення синтаксис, який нового це. 1058 00:45:58,510 --> 00:46:02,340 Там ні менше, ніж INT або дорівнює підписати або більше або дорівнює підписати, 1059 00:46:02,340 --> 00:46:05,430 де один над іншим, що ви можна виразити в як Microsoft Word. 1060 00:46:05,430 --> 00:46:08,180 Таким чином, у мові програмування ви як правило, просто зробити два символи, 1061 00:46:08,180 --> 00:46:09,450 одна за одною. 1062 00:46:09,450 --> 00:46:12,695 І те, що робить це, ймовірно, уявляють, амперсанд амперсанд. 1063 00:46:12,695 --> 00:46:13,570 АУДИТОРІЯ: [нерозбірливо] 1064 00:46:13,570 --> 00:46:13,680 Девід Дж Малан: Так. 1065 00:46:13,680 --> 00:46:16,910 Це просто означає, й тому, що він Виходить, що автори З 1066 00:46:16,910 --> 00:46:19,120 використовується один амперсанд, які ви могли б подумати 1067 00:46:19,120 --> 00:46:22,430 був би ідеальним для поняття з і, вже витрачено, 1068 00:46:22,430 --> 00:46:27,300 так амперсанд амперсанд насправді захоплює випадок ми насправді хочете. 1069 00:46:27,300 --> 00:46:30,610 >> Отже, давайте наштовхнутися двох речах. 1070 00:46:30,610 --> 00:46:32,640 Дозвольте мені йти вперед і відкрити один. 1071 00:46:32,640 --> 00:46:36,590 Щось, що це трохи турбує. 1072 00:46:36,590 --> 00:46:37,970 Неточність точка гр. 1073 00:46:37,970 --> 00:46:40,260 Дозвольте мені представити дві речі тут. 1074 00:46:40,260 --> 00:46:44,720 Один з них, зверніть увагу, що ми можемо зробити, математика, а так само, як раніше, коли 1075 00:46:44,720 --> 00:46:47,797 ми зробили плюс двох чисел, хну. 1076 00:46:47,797 --> 00:46:49,380 Що це, мабуть програма робить? 1077 00:46:49,380 --> 00:46:52,140 Я не прокоментував ще, і я представив відсотків п, 1078 00:46:52,140 --> 00:46:55,720 але я швидко сказав раніше відсотків е означає плаваючою точкою 1079 00:46:55,720 --> 00:46:56,970 значення, яке буде дійсне число. 1080 00:46:56,970 --> 00:46:59,520 Щось з десятковою пункт, який не є цілим числом. 1081 00:46:59,520 --> 00:47:02,270 Що ви думаєте, це програма намагається показати мені на екрані? 1082 00:47:02,270 --> 00:47:05,060 1083 00:47:05,060 --> 00:47:06,050 Так? 1084 00:47:06,050 --> 00:47:07,550 Аудиторія: результат один над 10. 1085 00:47:07,550 --> 00:47:07,780 Девід Дж Малан: Так. 1086 00:47:07,780 --> 00:47:09,680 Що в результаті одного ділиться на 10. 1087 00:47:09,680 --> 00:47:12,721 Правильно, тому що всі з вас, напевно, виросли, знаючи, що один над 10 1088 00:47:12,721 --> 00:47:14,502 це те, що? 1089 00:47:14,502 --> 00:47:16,220 Так, це просто 1/10 або 0,1. 1090 00:47:16,220 --> 00:47:16,720 Вірно? 1091 00:47:16,720 --> 00:47:19,010 Отже, давайте подивимося, що це насправді. 1092 00:47:19,010 --> 00:47:21,010 Отже, дозвольте мені йти вперед і зберегти цей. 1093 00:47:21,010 --> 00:47:21,970 Дозвольте мені перейти сюди. 1094 00:47:21,970 --> 00:47:26,360 Зробити неточність точка слеш неточність, і повідомлення, теж 1095 00:47:26,360 --> 00:47:29,380 в середовищі Linux, ви не повинні ввести з неточність і прийняти 1096 00:47:29,380 --> 00:47:30,010 протягом дня. 1097 00:47:30,010 --> 00:47:32,910 Це взагалі, якщо ви натиснете Tab, то буде закінчити свою думку для вас, 1098 00:47:32,910 --> 00:47:36,660 на основі слів, які доступні в поточному каталозі. 1099 00:47:36,660 --> 00:47:37,160 ДОБРЕ. 1100 00:47:37,160 --> 00:47:37,970 Таким чином, ви були праві. 1101 00:47:37,970 --> 00:47:41,239 Один розділений на 10, насправді, 0,1. 1102 00:47:41,239 --> 00:47:42,280 Але я трохи цікаво. 1103 00:47:42,280 --> 00:47:44,196 І виходить, Printf підтримує деякі функції 1104 00:47:44,196 --> 00:47:48,700 в якому ви можете вказати більш Кількість за замовчуванням знаків після коми. 1105 00:47:48,700 --> 00:47:52,140 Так що, якщо я хочу, щоб побачити 10 десяткової точки я можу зробити, відсотків 1106 00:47:52,140 --> 00:47:55,510 для символу-заповнювача, точка 10 для, дають мені 10 десяткових точок, 1107 00:47:55,510 --> 00:47:58,140 а потім ще з плаваючою точкою значення, і, як у бік, 1108 00:47:58,140 --> 00:48:01,550 що це зворотна коса риса н мабуть, ми продовжуємо використовувати? 1109 00:48:01,550 --> 00:48:03,450 Виявляється, що це символ нового рядка. 1110 00:48:03,450 --> 00:48:05,970 Це дуже явним чином говорити з комп'ютером, 1111 00:48:05,970 --> 00:48:08,759 перемістити курсор до наступної Лінія Після того як ви зробили. 1112 00:48:08,759 --> 00:48:10,800 І ми побачимо, що станеться коли ми не робимо цього. 1113 00:48:10,800 --> 00:48:12,430 >> Дозвольте мені зробити перекомпілювати неточність. 1114 00:48:12,430 --> 00:48:15,320 1115 00:48:15,320 --> 00:48:18,356 Тепер точка слеш неточність. 1116 00:48:18,356 --> 00:48:18,930 ДОБРЕ. 1117 00:48:18,930 --> 00:48:19,780 Тим не менш в порядку. 1118 00:48:19,780 --> 00:48:21,512 Один розділений на 10. 1119 00:48:21,512 --> 00:48:23,220 Тепер я отримую трохи цікаво, хоча. 1120 00:48:23,220 --> 00:48:27,599 Що робити, якщо я дивлюся 20 десяткової вказує, перекомпілювати, повторно, 1121 00:48:27,599 --> 00:48:29,390 і, як в сторону для швидкість, ви також можете використовувати 1122 00:48:29,390 --> 00:48:31,800 Ваш стрілки вгору і вниз, щоб прокрутити історії, 1123 00:48:31,800 --> 00:48:35,476 так що вам не доведеться тримати передруку цих команд, введіть. 1124 00:48:35,476 --> 00:48:36,910 Так. 1125 00:48:36,910 --> 00:48:39,220 Я не дізнатися, що в початковій школі. 1126 00:48:39,220 --> 00:48:43,260 Гаразд, так що давайте мені см, як 29 місць поза. 1127 00:48:43,260 --> 00:48:44,300 Може бути, це просто випадковість. 1128 00:48:44,300 --> 00:48:46,907 Може бути, мій комп'ютер діє дивно. 1129 00:48:46,907 --> 00:48:47,990 Це не річ, чи не так? 1130 00:48:47,990 --> 00:48:50,300 Це щось робить детерміноване. 1131 00:48:50,300 --> 00:48:53,410 Так що неточність. 1132 00:48:53,410 --> 00:48:54,890 Добре, що переплуталися. 1133 00:48:54,890 --> 00:48:57,620 Так що ж відбувається? 1134 00:48:57,620 --> 00:49:00,160 >> Таким чином, очевидно СВІЙ вчитель лежав 1135 00:49:00,160 --> 00:49:03,900 Вам все це час для Причини, з яких ми побачимо незабаром. 1136 00:49:03,900 --> 00:49:05,569 Але давайте закінчимо з жодною іншою програмою. 1137 00:49:05,569 --> 00:49:07,860 Це трохи програми хтось написав кілька років тому, 1138 00:49:07,860 --> 00:49:08,990 і це насправді частина конкурсу. 1139 00:49:08,990 --> 00:49:11,198 Ніхто насправді не пише код як це, і якщо ви робите, 1140 00:49:11,198 --> 00:49:12,880 Це стилю проблема. 1141 00:49:12,880 --> 00:49:14,660 Але люди роблять це за хвастощі правами. 1142 00:49:14,660 --> 00:49:17,260 Щоб записати найбільш заплутаною шукаю програму, яка 1143 00:49:17,260 --> 00:49:19,110 тим не менш, робить щось цікаве. 1144 00:49:19,110 --> 00:49:23,930 І записка Я думав, ми б залишити на сьогодні перед Колтон грає з нами тут, 1145 00:49:23,930 --> 00:49:27,840 це запустити цю програму, який, навіть у тільки за допомогою 1146 00:49:27,840 --> 00:49:31,450 З цього текстовий Середа, дає нам це. 1147 00:49:31,450 --> 00:49:32,264 Чорт візьми. 1148 00:49:32,264 --> 00:49:34,930 >> [Сміх] 1149 00:49:34,930 --> 00:49:36,800 >> Стенд с. 1150 00:49:36,800 --> 00:49:39,340 [Нерозбірливо] з тире л м. 1151 00:49:39,340 --> 00:49:42,885 Ви побачите чарівний заклинання, що ми побачимо найближчим часом. 1152 00:49:42,885 --> 00:49:45,780 [Нерозбірливо] Все правильно. 1153 00:49:45,780 --> 00:49:51,592 І тепер ви можете навіть робити речі, як це. 1154 00:49:51,592 --> 00:49:52,340 Це воно. 1155 00:49:52,340 --> 00:49:56,410 Для CS50 ми, побачимося в п'ятницю. 1156 00:49:56,410 --> 00:49:58,910 >> [Грає музика] 1157 00:49:58,910 --> 00:52:38,390 1158 00:52:38,390 --> 00:52:41,440 >> [Оплески] 1159 00:52:41,440 --> 00:52:42,812