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