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