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