1 00:00:07,830 --> 00:00:12,200 [Powered by Google Translate] DAVID Малан: Це CS50, і це є початком Тижня 1. 2 00:00:12,200 --> 00:00:15,520 Те, що ми думали, що ми робимо сьогодні, це подивитися назад на 3 00:00:15,520 --> 00:00:18,290 те, що багато хто з вас вже, напевно, пройшов повз деяких 4 00:00:18,290 --> 00:00:20,570 час і може виглядати трохи знайомі. 5 00:00:20,570 --> 00:00:23,720 Ця річ тут, це, звичайно, в - 6 00:00:23,720 --> 00:00:24,155 АУДИТОРІЯ: Наука. 7 00:00:24,155 --> 00:00:26,030 DAVID Малан: Наука центру. 8 00:00:26,030 --> 00:00:28,940 Так що це насправді одна з перших комп'ютерів 9 00:00:28,940 --> 00:00:30,220 Назад з 1940-х. 10 00:00:30,220 --> 00:00:33,790 Це був один з перших електромеханічних комп'ютерів 11 00:00:33,790 --> 00:00:35,730 , Яка була здатна особливо довго, 12 00:00:35,730 --> 00:00:38,450 самостійного обчислення, і те, що ми насправді бачимо в 13 00:00:38,450 --> 00:00:41,580 науковий центр тільки маленький шматочок цієї речі. 14 00:00:41,580 --> 00:00:44,170 Те, що ми думали, що ми робимо, то це поглянути назад на відео 15 00:00:44,170 --> 00:00:46,670 , Що було зроблено якийсь час назад, представляючи цю 16 00:00:46,670 --> 00:00:47,520 річ у світі. 17 00:00:47,520 --> 00:00:50,200 І ви побачите, від музики і голосу, який дійсно ті, 18 00:00:50,200 --> 00:00:52,070 були дуже щасливі часи. 19 00:00:54,885 --> 00:00:59,700 >> [ВІДТВОРЕННЯ ВІДЕО] 20 00:00:59,700 --> 00:01:02,490 -Тріумф математичних і механічних навичок це 21 00:01:02,490 --> 00:01:06,340 великий новий автоматичний калькулятор в Гарвардському університеті. 22 00:01:06,340 --> 00:01:08,620 Складні проблеми математики, пропустити через 23 00:01:08,620 --> 00:01:12,420 Машина в закодованому вигляді на стрічці, точно вирішена в 24 00:01:12,420 --> 00:01:15,200 хвилина частку часу, необхідного для людини 25 00:01:15,200 --> 00:01:16,450 розрахунок. 26 00:01:27,050 --> 00:01:30,600 Призначений для прискорення всіх форм математичних і наукових 27 00:01:30,600 --> 00:01:34,610 дослідження, гігантський механічний мозок буде працювати для Організації Об'єднаних 28 00:01:34,610 --> 00:01:36,570 Держави флоту до кінця війни. 29 00:01:50,280 --> 00:01:52,980 >> DAVID Малан: Так що ви можете не знати, що це було в 30 00:01:52,980 --> 00:01:56,310 це ж пристрій, що термін ми всі тепер взяти в значній мірі 31 00:01:56,310 --> 00:01:59,300 само собою зрозумілим було придумано, що і помилка. 32 00:01:59,300 --> 00:02:01,140 Таким чином, один з інженерів, що працюють в цьому комп'ютері 33 00:02:01,140 --> 00:02:05,280 буквально знайшов маленький метелик в машині, яка привела 34 00:02:05,280 --> 00:02:07,580 У деяких неправильних розрахунків. 35 00:02:07,580 --> 00:02:10,410 А так як історія свідчить, що метелик був записаний в цей журнал 36 00:02:10,410 --> 00:02:14,180 Журнал сюди, назад з 9 вересня 1940 року-то, 37 00:02:14,180 --> 00:02:16,550 і таким чином народився для світу термін "помилка". 38 00:02:16,550 --> 00:02:19,880 Таким чином, надалі ми розглянемо помилки бути ніякої помилки в 39 00:02:19,880 --> 00:02:23,290 програм, будь то людини чи, в даному випадку, комах. 40 00:02:23,290 --> 00:02:25,030 >> Так кілька оголошень, як ми далі. 41 00:02:25,030 --> 00:02:29,160 Так CS50 має традицію пропонувати обіди роду на 42 00:02:29,160 --> 00:02:31,600 Найбільш п'ятницях протягом семестру, де ми беремо від 30 до 43 00:02:31,600 --> 00:02:34,650 40 студентів у вогонь і лід на площі для випадкових 44 00:02:34,650 --> 00:02:36,390 балаканина, розмова про комп'ютерних наук, 45 00:02:36,390 --> 00:02:37,420 говорити про майбутнє. 46 00:02:37,420 --> 00:02:40,000 Ми запрошуємо випускників та друзів від промисловості базікати 47 00:02:40,000 --> 00:02:40,690 студентів. 48 00:02:40,690 --> 00:02:44,020 Дійсно до кінця роблячи те, що це досить великий клас 49 00:02:44,020 --> 00:02:46,740 Тим більше інтимним, принаймні, один раз в той час як для 50 00:02:46,740 --> 00:02:47,710 підмножини студентів. 51 00:02:47,710 --> 00:02:50,940 Так що, якщо ви хочете приєднатися до нас в цю п'ятницю, 1:15 PM, перейдіть до 52 00:02:50,940 --> 00:02:53,340 CS50.net/lunch для RSVP. 53 00:02:53,340 --> 00:02:55,840 І ми зробимо це recurringly, так що не хвилюйтеся, якщо ви не 54 00:02:55,840 --> 00:02:57,930 Серед перших 30 або близько того на цьому тижні. 55 00:02:57,930 --> 00:02:59,070 >> Так писар нот. 56 00:02:59,070 --> 00:03:01,500 Слово на ресурси, які зараз починають бути доступні 57 00:03:01,500 --> 00:03:03,040 для студентів у класі. 58 00:03:03,040 --> 00:03:05,540 Так що ваші голови не повинні бути вниз під час лекції 59 00:03:05,540 --> 00:03:08,560 строчити вниз все, що я кажу, і так далі, то, що ми робимо 60 00:03:08,560 --> 00:03:10,765 замість цього забезпечити від професорсько-викладацького складу 61 00:03:10,765 --> 00:03:11,920 канонічний набір нот. 62 00:03:11,920 --> 00:03:14,850 Таким чином, ми маємо один з наших товаришів навчання, Ендрю Sellergren, 63 00:03:14,850 --> 00:03:17,830 хто сідає щотижня, огляд відео, а потім 64 00:03:17,830 --> 00:03:19,730 записує те, що ми думаємо, що є досить 65 00:03:19,730 --> 00:03:21,840 авторитетного набір заміток. 66 00:03:21,840 --> 00:03:24,180 А Ендрю любив, крім того, поставити елегантного виноски в 67 00:03:24,180 --> 00:03:24,820 внизу. 68 00:03:24,820 --> 00:03:27,300 Таким чином, ви будете насолоджуватися цим, ми сподіваємося, в якості довідника для 69 00:03:27,300 --> 00:03:30,230 весело, а також, приходять вікторини час, як можливість переглянути 70 00:03:30,230 --> 00:03:31,830 те, що відбулося в окремих лекцій. 71 00:03:31,830 --> 00:03:33,580 Так що ті, які пов'язані з лекціями сторінку. 72 00:03:33,580 --> 00:03:35,300 >> Проблема безліч 0, тим часом, виходить. 73 00:03:35,300 --> 00:03:37,470 І з точки зору ресурсів, доступних для вас - 74 00:03:37,470 --> 00:03:38,020 проходження гри. 75 00:03:38,020 --> 00:03:39,730 Мило провів перше в п'ятницю. 76 00:03:39,730 --> 00:03:41,470 Він був знятий, покласти сайті в суботу. 77 00:03:41,470 --> 00:03:44,030 І так розумію, якщо ви не зовсім впевнені, з чого почати, 78 00:03:44,030 --> 00:03:47,280 для цієї або майбутньої р-множин, завжди виявляються першими 79 00:03:47,280 --> 00:03:49,300 Проходження чи відео їх. 80 00:03:49,300 --> 00:03:52,950 Секціонування в даний час; на cs50.net/section, де ви 81 00:03:52,950 --> 00:03:54,540 повинні представити свої переваги, якщо у вас немає 82 00:03:54,540 --> 00:03:55,880 вже на сьогоднішній день. 83 00:03:55,880 --> 00:03:58,140 Тому що розділах розпочнеться найближчим неділю, понеділок 84 00:03:58,140 --> 00:03:58,760 і у вівторок. 85 00:03:58,760 --> 00:04:02,470 Ми робимо розділах ці три дні, щотижня 86 00:04:02,470 --> 00:04:03,870 семестру по більшій частині. 87 00:04:03,870 --> 00:04:06,600 І ми також представляємо, знову ж таки, різні треки. 88 00:04:06,600 --> 00:04:08,270 Так вам буде запропоновано на цій формою секціонування, якщо Ви 89 00:04:08,270 --> 00:04:10,350 не бачив його вже, якщо ви серед тих, хто менш 90 00:04:10,350 --> 00:04:12,800 зручний, більш комфортною, або десь посередині. 91 00:04:12,800 --> 00:04:14,960 І якщо ти ніби на паркані, як правило, десь в 92 00:04:14,960 --> 00:04:18,160 між те, що більшість студентів в кінцевому підсумку перевірки. 93 00:04:18,160 --> 00:04:19,579 Години роботи починаються сьогодні. 94 00:04:19,579 --> 00:04:23,020 >> Так подряпин досить низький ключ, хоча це цілком природно 95 00:04:23,020 --> 00:04:25,300 для запуску в різних помилок, або бути впевнені в тому, як 96 00:04:25,300 --> 00:04:26,550 реалізувати щось. 97 00:04:26,550 --> 00:04:28,880 Так розумію, що ми почнемо робочого дня на цьому тижні. 98 00:04:28,880 --> 00:04:30,500 Вони будуть в Annenberg понеділок, вівторок, середу, 99 00:04:30,500 --> 00:04:34,300 Четвер, з 8:00 вечора до 11:00 вечора в мозок перерви. 100 00:04:34,300 --> 00:04:38,160 Верхня classmen можете увійти, і якщо ви коли-небудь проблеми з отриманням 101 00:04:38,160 --> 00:04:40,720 у двері, тому що вони будуть пальцем, просто поговорити свій шлях 102 00:04:40,720 --> 00:04:42,560 У пояснюють і ви з CS50. 103 00:04:42,560 --> 00:04:45,230 Зазвичай від 20 до 30 з нас на персонал буде там, щоб допомогти 104 00:04:45,230 --> 00:04:46,190 Ви один на один. 105 00:04:46,190 --> 00:04:48,980 >> Після прибуття ідея полягає в наступному: ви приносите свій ноутбук, 106 00:04:48,980 --> 00:04:51,300 ви будете мати зарядний пристрій, ми будемо мати додаткові шнури харчування, 107 00:04:51,300 --> 00:04:53,320 особливо вздовж південної стіни, де Annenberg 108 00:04:53,320 --> 00:04:55,080 є багато електричних розеток. 109 00:04:55,080 --> 00:04:59,290 І основною точкою входу в офіс годинник Q & А йти на 110 00:04:59,290 --> 00:05:01,690 cs50.net/discuss і розмістити 111 00:05:01,690 --> 00:05:02,580 Ваше питання. 112 00:05:02,580 --> 00:05:05,600 І назвати це з PSET 0 або PSET 1, незалежно від тижня 113 00:05:05,600 --> 00:05:06,810 може статися, щоб бути. 114 00:05:06,810 --> 00:05:09,240 І те, що ми зробимо, це є таблиця навчання стипендіатів 115 00:05:09,240 --> 00:05:12,040 і асистентів, як правило, 8 чи 10 або близько того з нас, 116 00:05:12,040 --> 00:05:14,430 переживає, уважно стежать на дошці, і 117 00:05:14,430 --> 00:05:16,810 вищипування від питань дійсно так швидко, як ми можемо, 118 00:05:16,810 --> 00:05:19,600 посилаючись вам відповідні посади, якщо ви не знайшли тих, 119 00:05:19,600 --> 00:05:22,220 себе, онлайн посилання, по мірі необхідності. 120 00:05:22,220 --> 00:05:24,280 І потім, якщо є проблеми, так як неминуче 121 00:05:24,280 --> 00:05:27,190 буде, або вона просто має більше сенсу, щоб сісти один на один, 122 00:05:27,190 --> 00:05:28,660 працювати через проблеми з кимось. 123 00:05:28,660 --> 00:05:30,810 >> Або ви просто прийти в офіс годин дійсно 124 00:05:30,810 --> 00:05:31,640 нужденні, що мислення. 125 00:05:31,640 --> 00:05:33,400 Ви ж не хочете, щоб пройти через електронну форму, 126 00:05:33,400 --> 00:05:34,410 дуже хочу зустрітися з кимось. 127 00:05:34,410 --> 00:05:37,240 Спілкуйтеся, що для нас, і що буде відбуватися, коли ваш 128 00:05:37,240 --> 00:05:40,620 Питання був помічений одним із співробітників, і ми 129 00:05:40,620 --> 00:05:43,660 визначити, так, це має бути відправлений в одну з 20 або 130 00:05:43,660 --> 00:05:47,800 30 членів команди тут, на місці, ви побачите в лівому верхньому кутку цієї 131 00:05:47,800 --> 00:05:51,590 мало Введіть черзі кнопки почне блимати cs50.net / 132 00:05:51,590 --> 00:05:52,165 обговорити. 133 00:05:52,165 --> 00:05:55,260 І це говорить вам, що ви зараз були запрошені, так 134 00:05:55,260 --> 00:05:56,880 сказати, щоб увійти в черзі. 135 00:05:56,880 --> 00:05:59,090 І клікнувши на цю кнопку, ваше ім'я з'явиться на 136 00:05:59,090 --> 00:06:02,660 Ipad, що вітання CS50, один з керівників звичайно, буде 137 00:06:02,660 --> 00:06:05,250 проведе біля входу в Annenberg, який потім 138 00:06:05,250 --> 00:06:08,630 бачимо, як показано тут, студенти, які є питання з 139 00:06:08,630 --> 00:06:11,630 зліва, співробітники, які знаходяться праворуч. 140 00:06:11,630 --> 00:06:14,830 І за допомогою клацання лівою і правою, ваш веб-браузер 141 00:06:14,830 --> 00:06:18,610 починає мигати, як тільки, наприклад, професор McGonnagal 142 00:06:18,610 --> 00:06:21,460 готовий бачити вас на столі зокрема Annenberg. 143 00:06:21,460 --> 00:06:23,340 >> Так ми і зробили деякі з цих минулого року. 144 00:06:23,340 --> 00:06:25,430 Ми rebooted робочий час і 145 00:06:25,430 --> 00:06:26,980 повторно реалізована велика частина програмного забезпечення. 146 00:06:26,980 --> 00:06:29,940 Так розумію, що це буде теплим на цьому тижні. 147 00:06:29,940 --> 00:06:32,970 Але також розумію, теж в минулі роки, як ви, напевно, чули 148 00:06:32,970 --> 00:06:35,710 від друзів, годинник, дійсно, від 50 до 149 00:06:35,710 --> 00:06:37,040 150 студентів одночасно. 150 00:06:37,040 --> 00:06:39,300 І це просто не можливо для нас, щоб впоратися з цим 151 00:06:39,300 --> 00:06:42,060 ефективно, один на один, протягом вечора. 152 00:06:42,060 --> 00:06:44,570 І так, що ми дійсно збираємося спробувати зробити в цьому році 153 00:06:44,570 --> 00:06:46,590 заробити на той факт, що багато питань 154 00:06:46,590 --> 00:06:49,050 Часті і часто можна краще відповісти 155 00:06:49,050 --> 00:06:50,030 асинхронно. 156 00:06:50,030 --> 00:06:52,140 Таким чином, ви можете сортувати продумати відповідь персоналу, 157 00:06:52,140 --> 00:06:54,360 і ми можемо продумати свій код, без підігрівом 158 00:06:54,360 --> 00:06:57,050 Тиск обов'язково бореться 159 00:06:57,050 --> 00:06:58,210 через нього пліч-о-пліч. 160 00:06:58,210 --> 00:07:00,980 Таким чином, ми вважаємо, що приблизно третину або половину питань 161 00:07:00,980 --> 00:07:03,500 буде направлений в обличчя, і ми постараємося, щоб обривати як 162 00:07:03,500 --> 00:07:05,530 більше, ніж половина або більше в електронному вигляді, 163 00:07:05,530 --> 00:07:06,710 у робочий час. 164 00:07:06,710 --> 00:07:08,070 І ми будемо продовжувати використовувати Обговорити 165 00:07:08,070 --> 00:07:09,990 Протягом тижня, а також. 166 00:07:09,990 --> 00:07:12,680 >> І, нарешті, зрозуміти, що цей курс може бути прийнято придатний / не придатний. 167 00:07:12,680 --> 00:07:16,230 Так що, якщо ви перебуваєте на паркані або просто думаю, що ви дійсно 168 00:07:16,230 --> 00:07:18,650 Не впевнений, що це світ для вас, або це дійсно 169 00:07:18,650 --> 00:07:21,310 зовсім далекий тобі, розумієш, що це прекрасний спосіб 170 00:07:21,310 --> 00:07:24,840 отримання до деякої впевненості, з якою ступнути в 171 00:07:24,840 --> 00:07:26,780 класу, як це зробив я, чесно кажучи, років тому. 172 00:07:26,780 --> 00:07:28,630 І тоді є п'ять тижнів, щоб розібратися фігури за 173 00:07:28,630 --> 00:07:30,850 себе, якщо ви хочете залишитися придатний / не придатний, переключитися на лист 174 00:07:30,850 --> 00:07:31,800 класу, або тому подібне. 175 00:07:31,800 --> 00:07:34,050 І, як правило, що придатний / не придатний, я думаю, для студентів 176 00:07:34,050 --> 00:07:36,700 що, якщо ви покладете в тому, що 10 годин, 20 годин, якою б вона 177 00:07:36,700 --> 00:07:38,830 може бути на деяких проблемах, і ти б'єшся головою 178 00:07:38,830 --> 00:07:39,690 до стіни, 179 00:07:39,690 --> 00:07:41,750 і ви дійсно просто не може переслідувати щось вниз, і ви 180 00:07:41,750 --> 00:07:44,230 є багато інших речей, які ви повинні зробити, якщо чесно, те, що я 181 00:07:44,230 --> 00:07:46,070 думаю, придатний / не придатний, вона знімає гостроту в 182 00:07:46,070 --> 00:07:47,250 таких ситуаціях. 183 00:07:47,250 --> 00:07:49,350 Де ви взяли речі 90% шляху. 184 00:07:49,350 --> 00:07:50,830 Ви знаєте, це не зовсім досконалий. 185 00:07:50,830 --> 00:07:52,950 Але ви отримали багато з нього, тим не менш. 186 00:07:52,950 --> 00:07:55,440 Так вважають придатний / не придатний, як надання вам, що 187 00:07:55,440 --> 00:07:57,590 ментальна модель, можливо. 188 00:07:57,590 --> 00:08:00,680 >> Гаразд, минулого тижня ми пірнули в Scratch, і ми 189 00:08:00,680 --> 00:08:03,610 говорили про програмування на досить високому графічному рівні. 190 00:08:03,610 --> 00:08:05,340 І сьогодні ми зробити перехід до мови 191 00:08:05,340 --> 00:08:08,300 називається C, нижній рівень мови програмування на вершині 192 00:08:08,300 --> 00:08:11,260 яке багато сучасних мов в даний час побудовано, в тому числі 193 00:08:11,260 --> 00:08:13,010 з тих, які ми будемо використовувати ближче до кінця терміну. 194 00:08:13,010 --> 00:08:15,530 І синтаксично, як вони виглядають 195 00:08:15,530 --> 00:08:17,330 це все дуже схоже. 196 00:08:17,330 --> 00:08:19,080 Отже, давайте почнемо, щоб зробити цей перехід тут. 197 00:08:19,080 --> 00:08:21,730 Таким чином, це була програма, що минулого тижня був найпростіший з 198 00:08:21,730 --> 00:08:22,910 привіт світ програм. 199 00:08:22,910 --> 00:08:25,560 Це просто виводяться на екран світ привіт, з 200 00:08:25,560 --> 00:08:27,650 маленький пухирець мови виходить з кіт. 201 00:08:27,650 --> 00:08:30,590 Ну, якщо ми почнемо зараз, щоб перевести це на інший 202 00:08:30,590 --> 00:08:33,419 мову, розуміємо, що ідеї сьогодні і в середу 203 00:08:33,419 --> 00:08:36,450 ідентичні, але синтаксис починає змінюватися. 204 00:08:36,450 --> 00:08:39,370 Таким чином, у той час як минулого тижня у нас було, коли зелений прапор натискання, скажімо, 205 00:08:39,370 --> 00:08:40,340 привіт світ. 206 00:08:40,340 --> 00:08:43,870 Сьогодні ми збираємося, щоб мати Int, головне, порожнеча, Printf, 207 00:08:43,870 --> 00:08:46,350 повернення, з іншого синтаксис там же. 208 00:08:46,350 --> 00:08:49,200 Фігурні дужки, і дужки, і лапки, і ще багато чого. 209 00:08:49,200 --> 00:08:54,520 Але розумію, що ядро ​​Ідея тут полягає в друк, 210 00:08:54,520 --> 00:08:58,470 і, нарешті, той факт, що в даний час основним буде 211 00:08:58,470 --> 00:09:00,770 асоціюється із запуском програми. 212 00:09:00,770 --> 00:09:04,250 Головне збирається бути там, де зелений прапор ногами залишити речі. 213 00:09:04,250 --> 00:09:06,390 >> А тепер давайте дражнять один від одного деякими з будівельних блоків тут 214 00:09:06,390 --> 00:09:08,650 Перш ніж ми заглибимося в деякі конкретні приклади. 215 00:09:08,650 --> 00:09:11,620 Таким чином, ми назвали цю заяву минулого тижня, в якому він просто 216 00:09:11,620 --> 00:09:12,470 інструкція. 217 00:09:12,470 --> 00:09:15,660 Зробіть це, - в даному випадку, скажімо привіт світ. 218 00:09:15,660 --> 00:09:18,400 Ну в C, якщо ми подивимося на тільки що лінія, це, як ми 219 00:09:18,400 --> 00:09:20,920 збирається почати вираженні, що певна частина головоломки: 220 00:09:20,920 --> 00:09:24,780 Е ("привіт світ");. 221 00:09:24,780 --> 00:09:27,330 І тепер ми будемо дражнити один від одного ці все більше і більше з плином часу, 222 00:09:27,330 --> 00:09:29,330 але розумію, що є закономірність. 223 00:09:29,330 --> 00:09:31,870 Так що, у нас є те, що називається Printf, яка є 224 00:09:31,870 --> 00:09:34,310 по суті аналогічний слово сказати. 225 00:09:34,310 --> 00:09:35,800 Ось що він збирається робити. 226 00:09:35,800 --> 00:09:37,870 Printf і F в даному випадку означає "відформатувати". 227 00:09:37,870 --> 00:09:39,270 Так що це просто означає, що ви можете вставити 228 00:09:39,270 --> 00:09:41,600 різні естетичні деталі. 229 00:09:41,600 --> 00:09:43,770 Таким чином, кінець цитати цитати це початок того, що ми збираємося 230 00:09:43,770 --> 00:09:45,340 почати називати рядок. 231 00:09:45,340 --> 00:09:47,110 Слова, фрази, пропозиції. 232 00:09:47,110 --> 00:09:50,220 Рядок у мові програмування, являє собою послідовність з нуля 233 00:09:50,220 --> 00:09:51,330 або більше символів. 234 00:09:51,330 --> 00:09:54,390 Таким чином, ч-е-л-л-о, кома, і так далі в тому, 235 00:09:54,390 --> 00:09:56,290 кінець цитати цитати, рядки. 236 00:09:56,290 --> 00:09:58,710 А тепер зворотний слеш п, трохи синтаксично дивно, але ми 237 00:09:58,710 --> 00:10:01,780 вже визначено, що минулого тижня в тому сенсі, чи що? 238 00:10:01,780 --> 00:10:02,630 Це просто новий рядок. 239 00:10:02,630 --> 00:10:05,000 Це просто спосіб передачі на комп'ютер ви хочете 240 00:10:05,000 --> 00:10:07,700 еквівалент удару Enter там, але ви не 241 00:10:07,700 --> 00:10:10,460 хочете насправді вдарив Enter і, отже, зіпсувати всі 242 00:10:10,460 --> 00:10:12,130 форматування вашого фактичного програми. 243 00:10:12,130 --> 00:10:15,500 Зараз в дужках вкласти ці рядки, відкритою і хлопець 244 00:10:15,500 --> 00:10:18,130 Закрити хлопець, так і всередині, що наша рядок. 245 00:10:18,130 --> 00:10:22,600 Тому що це тому, що в C, і інших програм 246 00:10:22,600 --> 00:10:27,510 мови, такі речі як Printf приймати аргументи, або взяти 247 00:10:27,510 --> 00:10:28,420 параметрів. 248 00:10:28,420 --> 00:10:31,490 >> Таким чином, почати думати зараз цього фіолетового блоку сказати, як 249 00:10:31,490 --> 00:10:34,890 функції, як метод, як процедуру. 250 00:10:34,890 --> 00:10:36,890 Ви дійсно можете називати це, що ви хочете зараз, але 251 00:10:36,890 --> 00:10:39,260 це свого роду мініатюрна програма, яка робить лише одну 252 00:10:39,260 --> 00:10:41,480 По-перше, в одну лінію, не менше. 253 00:10:41,480 --> 00:10:43,620 Так Printf також те, що ми збираємося почати називати 254 00:10:43,620 --> 00:10:46,680 функції, а функції зробити щось - у цьому випадку 255 00:10:46,680 --> 00:10:49,320 виводить отформатированную рядок на екрані - 256 00:10:49,320 --> 00:10:53,220 а також функції приймають аргументи або параметри. 257 00:10:53,220 --> 00:10:55,880 І аргументи або параметри, спасибі, ми маємо на увазі 258 00:10:55,880 --> 00:11:01,220 що їх поведінка може вплинути те, що ви проходите в 259 00:11:01,220 --> 00:11:03,420 всередині дужок. 260 00:11:03,420 --> 00:11:06,460 Таким чином, в даному випадку, Printf потреби бути сказано, що друкувати, і ми 261 00:11:06,460 --> 00:11:09,520 просто передати в, в подвійні лапки тут, рядок, що ми 262 00:11:09,520 --> 00:11:11,270 насправді хочете надрукувати. 263 00:11:11,270 --> 00:11:14,060 І крапка з комою в самому кінці цієї лінії знаходиться всього в 264 00:11:14,060 --> 00:11:18,020 історична неприємність якого в кінці Найбільш рядків коду, 265 00:11:18,020 --> 00:11:21,170 Ви поставити крапку з комою, щоб зробити Super Clear до комп'ютера 266 00:11:21,170 --> 00:11:23,020 що цей рядок коду закінчується тут. 267 00:11:23,020 --> 00:11:25,600 Тепер це добре, тому що, як ми побачимо, як програми отримати більше 268 00:11:25,600 --> 00:11:29,030 Комплекс, крапка з комою буде зробити супер ясно, нас, людей, 269 00:11:29,030 --> 00:11:32,280 а також комп'ютер, де лінії стартового коду і кінець. 270 00:11:32,280 --> 00:11:34,360 Зрозумійте, що деякі мови не мають деякий 271 00:11:34,360 --> 00:11:35,045 ці ж деталі. 272 00:11:35,045 --> 00:11:37,870 І справді, в JavaScript, ви не завжди треба щось 273 00:11:37,870 --> 00:11:38,670 як крапка з комою. 274 00:11:38,670 --> 00:11:40,210 Але про це попереду. 275 00:11:40,210 --> 00:11:41,170 >> Так петлі. 276 00:11:41,170 --> 00:11:43,520 У нас було щось подібне до цього, дуже інтуїтивно, очевидно, зробити 277 00:11:43,520 --> 00:11:44,860 щось знову і знову, і знову. 278 00:11:44,860 --> 00:11:47,720 Як надіти шкарпетки, або привітатися, і в цьому випадку. 279 00:11:47,720 --> 00:11:51,090 Ну, починаючи з сьогоднішнього дня в C, ми могли б висловити цю подряпин 280 00:11:51,090 --> 00:11:54,970 блокувати, як час (істина), Е ("привіт світ"). 281 00:11:54,970 --> 00:11:57,630 Так зауважити, що ми починаємо будувати буквально на загадку 282 00:11:57,630 --> 00:11:58,480 шматок, ніж раніше. 283 00:11:58,480 --> 00:12:01,310 У нас же фіолетовий блок, але це всередині цього 284 00:12:01,310 --> 00:12:04,880 дужки назавжди блок, і кращий спосіб для перекладу, що 285 00:12:04,880 --> 00:12:06,480 З полягає в наступному. 286 00:12:06,480 --> 00:12:08,130 Там немає Назавжди ключове слово. 287 00:12:08,130 --> 00:12:10,940 Ви не можете просто ввести е-о-т-е-в-е-р в C. 288 00:12:10,940 --> 00:12:13,440 Таким чином, найближчим аналогом є час. 289 00:12:13,440 --> 00:12:17,050 >> Тепер, коли (істинна) здається трохи дурним, бо робить вартість 290 00:12:17,050 --> 00:12:18,700 істинно ніколи не зміниться? 291 00:12:18,700 --> 00:12:19,810 Імовірно немає. 292 00:12:19,810 --> 00:12:22,770 Це як сказати поки один, а з, у той час як правда. 293 00:12:22,770 --> 00:12:25,430 Це все те ж саме, правда це завжди буває. 294 00:12:25,430 --> 00:12:29,860 Таким чином, ця петля насправді викликаючи який цикл? 295 00:12:29,860 --> 00:12:31,210 Тільки нескінченний цикл, мають рацію. 296 00:12:31,210 --> 00:12:32,930 Нескінченний цикл або, як ми називали його минулого тижня, 297 00:12:32,930 --> 00:12:33,870 просто нескінченний цикл. 298 00:12:33,870 --> 00:12:35,250 Так що іноді це погано. 299 00:12:35,250 --> 00:12:37,060 Іноді це помилка, іноді ось чому ви отримаєте 300 00:12:37,060 --> 00:12:39,340 обертовий куля пляжі або пісочного годинника або тому подібне. 301 00:12:39,340 --> 00:12:41,260 Але в даному випадку ми свідомо, за якою 302 00:12:41,260 --> 00:12:43,040 Причина, хотіли надрукувати одне і те ж знову 303 00:12:43,040 --> 00:12:43,970 і знову і знову. 304 00:12:43,970 --> 00:12:45,900 Або в разі, як годинник, ви хочете зробити 305 00:12:45,900 --> 00:12:47,470 щось знову і знову, і знову. 306 00:12:47,470 --> 00:12:49,070 Так нескінченний цикл може мати сенс. 307 00:12:49,070 --> 00:12:53,560 І це, як в C ми могли б перевести Назавжди код. 308 00:12:53,560 --> 00:12:55,570 >> Так що тепер ця трохи більш конкретними. 309 00:12:55,570 --> 00:12:58,880 Ми повторюємо 10 раз наступне твердження. 310 00:12:58,880 --> 00:13:02,490 Таким чином, у той час як (істина) не зовсім там працювати, тому що правда, то 311 00:13:02,490 --> 00:13:03,590 завжди вірно. 312 00:13:03,590 --> 00:13:07,060 Таким чином, якщо ми замість цього подивитися на версію C, тепер синтаксис отримує 313 00:13:07,060 --> 00:13:08,180 ще трохи загадкове. 314 00:13:08,180 --> 00:13:11,380 Але, чесно кажучи, як тільки ви починаєте бачити це, все стає 315 00:13:11,380 --> 00:13:12,600 досить добре знайомі швидко. 316 00:13:12,600 --> 00:13:14,370 Отже, це те, що називається цикл. 317 00:13:14,370 --> 00:13:17,210 Цикл розповість комп'ютер щось робити 318 00:13:17,210 --> 00:13:20,710 знову і знову, і знову, поки 319 00:13:20,710 --> 00:13:21,850 ці речі є правдою. 320 00:13:21,850 --> 00:13:23,370 Тепер, що ми маємо на увазі під цим? 321 00:13:23,370 --> 00:13:25,470 Ну, є три частини циклу, і ми збираємося 322 00:13:25,470 --> 00:13:28,240 повернутися до цього питання в контексті актуальних 323 00:13:28,240 --> 00:13:29,100 Приклади в даний момент. 324 00:13:29,100 --> 00:13:31,650 Так що не хвилюйтеся, якщо він не зовсім потонути у всіх відразу. 325 00:13:31,650 --> 00:13:35,400 Але Int я = 0, коротше, кажучи, дати мені 326 00:13:35,400 --> 00:13:38,290 Змінна от цілого типу, так що дайте мені номер 327 00:13:38,290 --> 00:13:40,890 називається я, і ініціалізувати його в 0. 328 00:13:40,890 --> 00:13:43,460 Тобто мені, як алгебраїчна змінна х і 329 00:13:43,460 --> 00:13:44,580 ініціалізувати його в 0. 330 00:13:44,580 --> 00:13:46,250 Але в даному випадку ми називаємо це я. 331 00:13:46,250 --> 00:13:49,120 Тоді в середині, він говорить, що я менше 10. 332 00:13:49,120 --> 00:13:52,150 Це говорить комп'ютеру виконати наступні речі до тих пір, 333 00:13:52,150 --> 00:13:53,770 як я менше 10. 334 00:13:53,770 --> 00:13:55,370 І, очевидно, він починає менше, ніж 10, тому що 335 00:13:55,370 --> 00:13:56,550 вона починається з 0. 336 00:13:56,550 --> 00:13:59,150 Тоді, нарешті, ви, можливо, може здогадатися, що я + + засобами. 337 00:13:59,150 --> 00:14:02,140 Це трохи синтаксис, який просто означає, що збільшує я. 338 00:14:02,140 --> 00:14:05,270 Так що додайте 1 до я, знову і знову і знову. 339 00:14:05,270 --> 00:14:09,260 >> І так, як ми побачимо цю петлю, цей синтаксис, швидше, реалізує 340 00:14:09,260 --> 00:14:12,160 точно те ж саме, що, чесно кажучи, в подряпин було саме так 341 00:14:12,160 --> 00:14:13,250 Набагато простіше висловити. 342 00:14:13,250 --> 00:14:15,170 Повторіть 10, і ви зробили. 343 00:14:15,170 --> 00:14:17,690 У C, і в більшості мов програмування, ми повинні бути 344 00:14:17,690 --> 00:14:20,190 трохи більш повчальним для комп'ютера і насправді 345 00:14:20,190 --> 00:14:21,630 вказати щось начебто цього. 346 00:14:21,630 --> 00:14:23,730 Але ми повернемося до цього і іншим синтаксисом. 347 00:14:23,730 --> 00:14:24,780 >> Як щодо змінних? 348 00:14:24,780 --> 00:14:26,940 У подряпин у нас було щось подібне цих помаранчевих блоків, 349 00:14:26,940 --> 00:14:28,180 де я міг би оголосити змінну. 350 00:14:28,180 --> 00:14:30,000 Давайте умовно називаємо це лічильник. 351 00:14:30,000 --> 00:14:31,880 Давайте ініціалізувати його до 0, а потім 352 00:14:31,880 --> 00:14:33,240 Давайте вічно щось робити. 353 00:14:33,240 --> 00:14:35,760 У цьому випадку в подряпинам Я кажу лічильника, так 354 00:14:35,760 --> 00:14:38,230 кішка буде мати маленький пухирець мови, що це говорить 355 00:14:38,230 --> 00:14:40,010 число, яке в цій змінній. 356 00:14:40,010 --> 00:14:42,460 А то у нас зміна лічильника на 1. 357 00:14:42,460 --> 00:14:45,760 Так що все це загортається всередину замку назавжди. 358 00:14:45,760 --> 00:14:48,960 Таким чином, ми вже зараз є будівельні блоки в С 359 00:14:48,960 --> 00:14:50,040 яка перевести це. 360 00:14:50,040 --> 00:14:51,650 >> Один спосіб, яким ми могли б зробити це полягає в наступному. 361 00:14:51,650 --> 00:14:53,890 Дайте мені ціле число, назвемо його лічильник. 362 00:14:53,890 --> 00:14:55,190 Ініціалізувати його в 0 363 00:14:55,190 --> 00:14:56,490 У першому рядку. 364 00:14:56,490 --> 00:14:59,390 У той час (правда), так що я крадіжку цієї ідеї тільки від моменту 365 00:14:59,390 --> 00:15:01,300 назад, йти вперед і робити наступне. 366 00:15:01,300 --> 00:15:04,880 Друк лічильника, а потім збільшувати лічильник, 367 00:15:04,880 --> 00:15:06,930 знову, і знову, і знову. 368 00:15:06,930 --> 00:15:09,380 Або, знову ж таки, + + просто означає, додати 1 до чогось. 369 00:15:09,380 --> 00:15:11,030 Але є нова частина синтаксису тут. 370 00:15:11,030 --> 00:15:15,730 Що стрибати, як не серед наших попередніх прикладах? 371 00:15:15,730 --> 00:15:17,190 Так, це% D. 372 00:15:17,190 --> 00:15:19,810 Таким чином, ви можете зробити висновок, що, може бути, цього робити, чесно кажучи, заснованих 373 00:15:19,810 --> 00:15:21,410 про те, що до подряпин блок робить. 374 00:15:21,410 --> 00:15:24,510 Але знову ж в C, ми просто повинні бути трохи більш конкретно 375 00:15:24,510 --> 00:15:25,990 коли справа доходить до вираження себе. 376 00:15:25,990 --> 00:15:30,560 >> Таким чином, Е ("% г \ п"). 377 00:15:30,560 --> 00:15:32,320 Ну більшість, що ми можемо викинути, як знайомі. 378 00:15:32,320 --> 00:15:34,910 Лапки просто означає, що це рядок, зворотний слеш п 379 00:15:34,910 --> 00:15:35,970 це просто новий рядок. 380 00:15:35,970 --> 00:15:38,860 Таким чином, єдиним новим тут є% р. 381 00:15:38,860 --> 00:15:40,390 І все, що є прототипом. 382 00:15:40,390 --> 00:15:43,510 % D буде позначати десяткове число. 383 00:15:43,510 --> 00:15:47,820 А% г комп'ютерних засобів, покласти десяткове число тут. 384 00:15:47,820 --> 00:15:49,450 Ну, який номер ви хочете, щоб покласти туди? 385 00:15:49,450 --> 00:15:52,400 Ну, як ви, можливо, може зробити висновок, після коми ми говоримо, 386 00:15:52,400 --> 00:15:55,480 Лічильник, це ім'я змінної, що ми оголосили або 387 00:15:55,480 --> 00:15:57,260 створив пару рядків вище. 388 00:15:57,260 --> 00:16:02,420 Так що це тільки шлях C про підключення змінної в 389 00:16:02,420 --> 00:16:04,480 Рядок динамічно. 390 00:16:04,480 --> 00:16:07,350 Тому що на відміну, якби я замість цього зробив щось подібне 391 00:16:07,350 --> 00:16:12,470 це, Е ("Лічильник"), що б це 392 00:16:12,470 --> 00:16:15,220 Програма замість цього, мабуть? 393 00:16:15,220 --> 00:16:17,260 Це буде буквально друкувати "лічильник". 394 00:16:17,260 --> 00:16:18,750 Який не про те, що я хочу. 395 00:16:18,750 --> 00:16:20,920 Мені потрібно замінити в деяких числове значення. 396 00:16:20,920 --> 00:16:24,340 Отже, ми бачимо, що функції, то, як Printf, може зайняти не 397 00:16:24,340 --> 00:16:26,930 тільки одного аргументу, як 398 00:16:26,930 --> 00:16:28,150 "Привіт світ". 399 00:16:28,150 --> 00:16:32,050 Вони можуть прийняти коми цитатою кінець цитати, а потім деякі змінні 400 00:16:32,050 --> 00:16:35,830 , Яка допоможе підключити до, як ми побачимо попередній рядок 401 00:16:35,830 --> 00:16:38,280 Через ці заповнювачі% знак. 402 00:16:38,280 --> 00:16:39,660 >> Ну що ж логічні вирази? 403 00:16:39,660 --> 00:16:42,200 Логічні вирази були ці цінності, істинне або помилкове. 404 00:16:42,200 --> 00:16:42,830 Так чи ні. 405 00:16:42,830 --> 00:16:44,020 1 або 0. 406 00:16:44,020 --> 00:16:45,190 Включений або виключений. 407 00:16:45,190 --> 00:16:47,570 Таким чином, в Подряпини вони виглядають так, і зауважив, що 408 00:16:47,570 --> 00:16:50,170 нижній блок тут насправді разом 409 00:16:50,170 --> 00:16:51,500 меншого з двох блоків. 410 00:16:51,500 --> 00:16:53,610 Таким чином, я як би перетягнути три частини головоломки 411 00:16:53,610 --> 00:16:56,450 разом, щоб зробити, що більше паззл там, так що я 412 00:16:56,450 --> 00:17:00,420 може передати ідею, що я хочу х бути менше, ніж у і 413 00:17:00,420 --> 00:17:02,540 У бути менше, ніж р. 414 00:17:02,540 --> 00:17:05,790 І таким чином я можу перевести ці дві окремих лінії наступним чином. 415 00:17:05,790 --> 00:17:08,650 Верхній може бути дуже тривіально переведені на C, 416 00:17:08,650 --> 00:17:10,069 тільки з х <у. 417 00:17:10,069 --> 00:17:11,990 Може бути, з деяким дужки для хорошої заходом. 418 00:17:11,990 --> 00:17:15,520 І тоді в C, ви не пишете і для позначення 419 00:17:15,520 --> 00:17:16,819 З'єднання щось. 420 00:17:16,819 --> 00:17:19,585 Ви замість цього написати &&. 421 00:17:19,585 --> 00:17:22,849 І, як ми бачимо в кінці кінців, один амперсанд відбувається з 422 00:17:22,849 --> 00:17:23,880 означає щось інше. 423 00:17:23,880 --> 00:17:27,530 Так && просто позначає ідею і. 424 00:17:27,530 --> 00:17:30,040 >> Отже, ще раз, навіть якщо це починає виглядати досить складна, 425 00:17:30,040 --> 00:17:32,560 однією з цілей введення Scratch, крім 426 00:17:32,560 --> 00:17:34,810 просто маючи свого роду забава на рампі, де ви можете зробити 427 00:17:34,810 --> 00:17:36,590 щось дуже графічних і анімаційних, і 428 00:17:36,590 --> 00:17:39,000 Спільне і т.п., також, щоб передати ідею, що 429 00:17:39,000 --> 00:17:42,010 всі ідеї ми починаємо занурення в сьогодні і далі 430 00:17:42,010 --> 00:17:44,300 були втілені в навіть, що просте 431 00:17:44,300 --> 00:17:46,850 Інтерфейс з першого дня. 432 00:17:46,850 --> 00:17:47,790 Що про це один тут? 433 00:17:47,790 --> 00:17:48,860 >> Так умовах. 434 00:17:48,860 --> 00:17:50,590 Так подряпин блок зліва там виглядає 435 00:17:50,590 --> 00:17:51,610 трохи складніше. 436 00:17:51,610 --> 00:17:52,650 Але це лише деякі захоплення і 437 00:17:52,650 --> 00:17:54,140 пониження знайомі речі. 438 00:17:54,140 --> 00:17:56,690 Якщо х менше, ніж у, скажімо так. 439 00:17:56,690 --> 00:17:59,900 Інакше, якщо х більше у, так би мовити. 440 00:17:59,900 --> 00:18:02,460 В іншому випадку, ми можемо логічно припустити, що це зробив висновок, що 441 00:18:02,460 --> 00:18:03,580 вони повинні бути рівні. 442 00:18:03,580 --> 00:18:05,220 Так що сказати, що вони рівні. 443 00:18:05,220 --> 00:18:07,690 Зараз в C праворуч, точно такий же річчю. 444 00:18:07,690 --> 00:18:09,730 І зауважив, що фігурні дужки буде 445 00:18:09,730 --> 00:18:12,190 Особливістю C та інших мовах, що робити такого роду 446 00:18:12,190 --> 00:18:13,210 інкапсуляції. 447 00:18:13,210 --> 00:18:15,470 Так само, як якщо блок це жовта річ, яка начебто 448 00:18:15,470 --> 00:18:17,770 захоплення фіолетовий блок всередині нього. 449 00:18:17,770 --> 00:18:19,480 Точно так само ці дужки - 450 00:18:19,480 --> 00:18:20,870 ці фігурні дужки - 451 00:18:20,870 --> 00:18:24,710 повинна викликати в уяві, що само ідея охоплює один або декілька 452 00:18:24,710 --> 00:18:27,680 рядків коду, з відступом усередині них. 453 00:18:27,680 --> 00:18:31,270 Отже, на правій стороні тут, якщо х менше, ніж у, Printf 454 00:18:31,270 --> 00:18:32,270 ("X менше, ніж у"). 455 00:18:32,270 --> 00:18:34,980 Інакше, якщо х більше у, роздрукувати те ж саме. 456 00:18:34,980 --> 00:18:38,360 Решта друку, що вони рівні. 457 00:18:38,360 --> 00:18:41,750 >> Коротше кажучи, є досить пряме відображення або переклад 458 00:18:41,750 --> 00:18:44,720 мови, який ми бачили дотепер, у тому числі для деяких 459 00:18:44,720 --> 00:18:45,940 з більш складних функцій. 460 00:18:45,940 --> 00:18:48,680 Таким чином, ви не могли б використовувати це для вашого проекту, чи, можливо, не 461 00:18:48,680 --> 00:18:51,150 використовувати це для свого проекту на цьому тижні. 462 00:18:51,150 --> 00:18:54,650 Але ми ці речі називаються масиви C. У Scratch, 463 00:18:54,650 --> 00:18:55,680 вони називаються списками. 464 00:18:55,680 --> 00:18:59,370 І ми побачили їх з Fruitcraft RPG минулого тижня. 465 00:18:59,370 --> 00:19:01,320 Маленький синій хлопець, який ходив, піднімаючи 466 00:19:01,320 --> 00:19:03,010 вишні та апельсина і тому подібне. 467 00:19:03,010 --> 00:19:05,110 Ну в Scratch, який був реалізований з цим помаранчевим 468 00:19:05,110 --> 00:19:09,000 блок, який містить слова, в даному випадку, ми буквально 469 00:19:09,000 --> 00:19:10,800 додавши, що «помаранчеві», щоб 470 00:19:10,800 --> 00:19:12,460 змінна інвентарю. 471 00:19:12,460 --> 00:19:14,910 Таким чином, в C, цей синтаксис буде отримати трохи більше загадковими. 472 00:19:14,910 --> 00:19:17,250 І ми повернемося до цього на наступному тижні і більше 473 00:19:17,250 --> 00:19:21,060 цікаве в світі криптографії з ним. 474 00:19:21,060 --> 00:19:23,990 Але на дні тут, ці дві лінії, в основному 475 00:19:23,990 --> 00:19:27,550 переводити на те, що ми робимо в одній подряпини блокувати там. 476 00:19:27,550 --> 00:19:30,120 Але про це попереду. 477 00:19:30,120 --> 00:19:34,120 >> Таким чином, поставивши його разом, ось це програма, в С. Так що давайте 478 00:19:34,120 --> 00:19:36,590 швидко дражнять один від одного деякими з частин синтаксису тут, але 479 00:19:36,590 --> 00:19:40,300 тоді давайте насправді почати писати код, ознайомитися 480 00:19:40,300 --> 00:19:42,440 Ви з деякими з інструментів, які ми будемо використовувати, і подивитися, якщо ми 481 00:19:42,440 --> 00:19:45,400 може спиратися на даний час деякі з цих основних будівельних блоків з 482 00:19:45,400 --> 00:19:49,150 Минулого тижня, тепер синтаксично в С. Так, у верхній тут, це 483 00:19:49,150 --> 00:19:51,380 є, мабуть, одним із самих нудних програм, які ви могли б 484 00:19:51,380 --> 00:19:53,130 написати в більшості будь-якій мові програмування. 485 00:19:53,130 --> 00:19:55,010 Але це свого роду має особливе значення, тому що це 486 00:19:55,010 --> 00:19:58,120 канонічних програми, що будь-який науковець пише, коли 487 00:19:58,120 --> 00:19:59,620 навчання когось мову програмування - 488 00:19:59,620 --> 00:20:01,230 Привіт програмі світі. 489 00:20:01,230 --> 00:20:05,120 >> Таким чином, на самому верху, ми бачимо, це поняття включає # 490 00:20:05,120 --> 00:20:08,180 , А потім в кутові дужки, stdio.h. 491 00:20:08,180 --> 00:20:10,580 Ми збираємося повернутися до цього, але насправді, що це 492 00:20:10,580 --> 00:20:13,770 означає, що є файл в цьому світі називається стандартним 493 00:20:13,770 --> 00:20:17,670 I / O, STDIO точка год, і це просто текстовий файл, 494 00:20:17,670 --> 00:20:19,240 хтось написав років тому. 495 00:20:19,240 --> 00:20:22,550 І всередині цього текстового файлу цілий букет 496 00:20:22,550 --> 00:20:25,840 функцій або методів або процедур, що хтось інший 497 00:20:25,840 --> 00:20:28,970 писав, що ми є бенефіціарами, тому що ми 498 00:20:28,970 --> 00:20:31,420 Тепер можна використовувати код цієї людини. 499 00:20:31,420 --> 00:20:33,070 Функції він або вона писала. 500 00:20:33,070 --> 00:20:36,320 У цьому випадку, Printf не те, що я написав, це 501 00:20:36,320 --> 00:20:37,500 не те, що CS50 написав. 502 00:20:37,500 --> 00:20:40,290 Це те, що хтось написав років тому і поставити в 503 00:20:40,290 --> 00:20:43,450 файл stdio.h, а потім, як в сторону, поклав 504 00:20:43,450 --> 00:20:45,830 інша частина функції в іншому файлі. 505 00:20:45,830 --> 00:20:46,940 Але ми туди дістатися. 506 00:20:46,940 --> 00:20:50,070 >> Таким чином, # включити тільки наш спосіб сказати, в 507 00:20:50,070 --> 00:20:53,110 C, дати мені доступ до функцій, що хтось написав. 508 00:20:53,110 --> 00:20:55,490 І в цьому випадку мене хвилює, тому що я хочу Printf. 509 00:20:55,490 --> 00:20:57,530 Тепер ми отримуємо Int основних (недійсними). 510 00:20:57,530 --> 00:21:00,160 Так що це одна з цих речей, чесно кажучи, що в день 0, 511 00:21:00,160 --> 00:21:02,400 дуже багато в мене у вигляді зону тому, що це просто 512 00:21:02,400 --> 00:21:03,260 не цікаво 513 00:21:03,260 --> 00:21:04,780 інтелектуально, деякі з синтаксису. 514 00:21:04,780 --> 00:21:07,940 Але тепер знаю, що функції, інакше відомий як 515 00:21:07,940 --> 00:21:11,660 процедур або методів, як правило, виробляють деяку цінність. 516 00:21:11,660 --> 00:21:12,520 Вони щось робити. 517 00:21:12,520 --> 00:21:13,810 Вони приходять з відповіддю. 518 00:21:13,810 --> 00:21:15,020 Вони виробляють продукції. 519 00:21:15,020 --> 00:21:18,780 Так Int поруч із головним є тільки наша скорочений спосіб говорити 520 00:21:18,780 --> 00:21:21,380 що ця функція ця процедура, в кінцевому рахунку, відбувається 521 00:21:21,380 --> 00:21:22,650 повернути вам номер. 522 00:21:22,650 --> 00:21:24,370 І чому це так, ми будемо повертатися. 523 00:21:24,370 --> 00:21:27,810 Головне тільки стандартні за замовчуванням світу за замовчуванням 524 00:21:27,810 --> 00:21:30,990 функція, яка збирається отримати виконаний в програмі C, коли 525 00:21:30,990 --> 00:21:31,860 ви запустите його. 526 00:21:31,860 --> 00:21:34,160 Порожнеча просто означає, що ця річ, головне, не приймає 527 00:21:34,160 --> 00:21:35,270 Аргументи в цьому випадку. 528 00:21:35,270 --> 00:21:36,400 Так що я веду себе супер явним. 529 00:21:36,400 --> 00:21:38,160 Там немає рядків там, немає запитах. 530 00:21:38,160 --> 00:21:40,690 Порожнеча означає відсутність аргументів до основного. 531 00:21:40,690 --> 00:21:44,350 >> Тепер, нарешті, на щастя, останні два рядки знайомі. 532 00:21:44,350 --> 00:21:46,160 Усередині фігурних дужках у нас є Printf 533 00:21:46,160 --> 00:21:47,620 і у нас є відповідь. 534 00:21:47,620 --> 00:21:50,450 І повернення це свого роду шкода, що ми повинні 535 00:21:50,450 --> 00:21:53,510 поклав його туди, тому що в даному випадку це не робить все, що 536 00:21:53,510 --> 00:21:54,600 багато цікавого. 537 00:21:54,600 --> 00:21:58,790 Але в комп'ютерній програмі, коли функція повертає 0, 538 00:21:58,790 --> 00:22:00,610 це означає, що все добре. 539 00:22:00,610 --> 00:22:01,820 Нічого пішло не так. 540 00:22:01,820 --> 00:22:06,170 З іншого боку, якщо функція повертає 1, або негативний 1, або 541 00:22:06,170 --> 00:22:11,670 негативні 1337, або деяких випадкових чисел таке, що 542 00:22:11,670 --> 00:22:14,020 як правило, означає, що помилка насправді відбулося. 543 00:22:14,020 --> 00:22:16,150 Так що якщо ви знаходитесь на своєму Mac або ПК, якщо ви коли-небудь бачили 544 00:22:16,150 --> 00:22:18,590 деякі дратівливі повідомлення, так як комп'ютер вийшов з ладу або 545 00:22:18,590 --> 00:22:20,660 заморожені, і є загадкове повідомлення про помилку, 546 00:22:20,660 --> 00:22:23,320 , А потім код, як код системи 547 00:22:23,320 --> 00:22:25,110 1,2,3,4, деяке число, 548 00:22:25,110 --> 00:22:29,270 , Що в цілому є непотрібним докладно розповісти 549 00:22:29,270 --> 00:22:32,110 Більшість з нас людей, але це те, що деякі функції або деякі 550 00:22:32,110 --> 00:22:34,890 Програма насправді повернувся, відмінне від нуля значення. 551 00:22:34,890 --> 00:22:38,540 І на користь цього є те, що 0 означає, що всі так і 552 00:22:38,540 --> 00:22:40,470 то ви, по суті є нескінченна кількість речей, які 553 00:22:40,470 --> 00:22:41,130 може піти не так. 554 00:22:41,130 --> 00:22:44,700 Саме тому вони обрали 0 для хорошої і ненульове значення для 555 00:22:44,700 --> 00:22:46,450 погано, як ми скоро побачимо. 556 00:22:46,450 --> 00:22:47,870 >> Так що давайте йти вперед і написати це. 557 00:22:47,870 --> 00:22:51,610 Так Нагадаємо, що днями я використовував свій Mac, щоб відкрити 558 00:22:51,610 --> 00:22:53,970 вікно терміналу, а потім я відкрив тексті програми, як 559 00:22:53,970 --> 00:22:55,900 TextEdit, і я почав писати код. 560 00:22:55,900 --> 00:22:56,580 Ну це нормально. 561 00:22:56,580 --> 00:22:58,636 Але ваш досвід буде по-іншому на Mac, або 562 00:22:58,636 --> 00:23:01,220 на комп'ютері Solaris, Linux комп'ютер, незалежно від операційної 563 00:23:01,220 --> 00:23:02,810 Система вам трапиться бути використання. 564 00:23:02,810 --> 00:23:04,970 І так в курсі, що ми замість того, щоб використовувати те, 565 00:23:04,970 --> 00:23:07,010 називається CS50 Appliance. 566 00:23:07,010 --> 00:23:10,420 Так CS50 Appliance являє собою завантажуване частина програмного забезпечення 567 00:23:10,420 --> 00:23:13,640 , Що дозволяє запускати операційну систему під назвою Linux, 568 00:23:13,640 --> 00:23:16,810 зокрема Fedora Linux, на свій власний Mac або PC. 569 00:23:16,810 --> 00:23:20,810 І ви зробити це, завантаживши те, що називається гіпервізор. 570 00:23:20,810 --> 00:23:23,100 Так що все це буде описано в проблемі набір 1. 571 00:23:23,100 --> 00:23:25,240 І ви будете керуватися до того, що вам необхідно скачати. 572 00:23:25,240 --> 00:23:27,510 Але кінцевий результат, чи є у вас Mac або PC, це ви 573 00:23:27,510 --> 00:23:29,080 завантаження безкоштовного програмного забезпечення. 574 00:23:29,080 --> 00:23:32,340 Потім скачати CS50 Appliance, і ви кажете, що 575 00:23:32,340 --> 00:23:33,960 безкоштовна програма - гіпервізор - 576 00:23:33,960 --> 00:23:38,080 Для запуску CS50 Appliance в вікно на вашому комп'ютері. 577 00:23:38,080 --> 00:23:39,490 І те, що це відбувається. 578 00:23:39,490 --> 00:23:43,660 >> Я зараз, зауважте, тут, здається, що буде робочий стіл 579 00:23:43,660 --> 00:23:44,130 навколишнього середовища. 580 00:23:44,130 --> 00:23:46,150 І дозвольте мені насправді зменшити цю одному вікні. 581 00:23:46,150 --> 00:23:49,640 Так що це тепер мій Mac, з невеликим вікном тут, так і всередині 582 00:23:49,640 --> 00:23:51,300 цього вікна, трапляється, абсолютно 583 00:23:51,300 --> 00:23:52,380 іншої операційної системи. 584 00:23:52,380 --> 00:23:55,250 Дійсно є це стартове меню тут, внизу, нагадує 585 00:23:55,250 --> 00:23:57,990 Windows, яка має цілу купу підменю, в тому числі 586 00:23:57,990 --> 00:24:00,720 Посилання на CS50 керівництва, Dropbox, і тому подібне. 587 00:24:00,720 --> 00:24:03,480 І те, що ця середу в даний час є стандартною середовищем 588 00:24:03,480 --> 00:24:06,280 що всі ми тепер можуть використовувати, так що незалежно від того, що ваш 589 00:24:06,280 --> 00:24:08,960 комп'ютер, то, що ви встановили на ній, яка версія 590 00:24:08,960 --> 00:24:11,430 з Mac OS або Windows, ви працюєте, всі ми тепер маємо 591 00:24:11,430 --> 00:24:12,800 тому ж середовищі. 592 00:24:12,800 --> 00:24:15,850 І ось тепер в цю середу ми можемо почати писати код. 593 00:24:15,850 --> 00:24:18,480 >> Так що я збираюся йти вперед і відкрити програму під назвою Gedit. 594 00:24:18,480 --> 00:24:21,500 Це зіставно з notepad.exe, або 595 00:24:21,500 --> 00:24:22,790 TextEdit на Mac. 596 00:24:22,790 --> 00:24:25,390 І це просто супер проста програма редагування тексту 597 00:24:25,390 --> 00:24:27,500 , Який виглядає наступним на перший погляд. 598 00:24:27,500 --> 00:24:30,640 Зараз на самому верху, у мене є біла палітра, внизу я 599 00:24:30,640 --> 00:24:33,860 Тобто це чорне вікно, яке говорить jharvard @ прилад. 600 00:24:33,860 --> 00:24:36,440 І це тому, що обліковий запис користувача, що ми попередньо створили 601 00:24:36,440 --> 00:24:38,430 для всіх називають Джона Гарварда. 602 00:24:38,430 --> 00:24:41,490 У нього є папка, в якій всі його файли збираються піти, і 603 00:24:41,490 --> 00:24:43,500 Ось, де ми можемо почати писати код. 604 00:24:43,500 --> 00:24:45,810 Отже, дозвольте мені йти вперед тут і збільшення небагато, і я 605 00:24:45,810 --> 00:24:51,550 збираюся робити # включити , Int основних (недійсними), а 606 00:24:51,550 --> 00:24:57,470 Потім я збираюся зробити Е ("привіт світ") 607 00:24:57,470 --> 00:24:59,490 , Повертається 0. 608 00:24:59,490 --> 00:25:01,400 Тепер це все дуже чорний і білий. 609 00:25:01,400 --> 00:25:03,830 >> Дозвольте мені йти вперед і робити одну справу вчити Gedit, що я 610 00:25:03,830 --> 00:25:04,510 насправді робить. 611 00:25:04,510 --> 00:25:06,140 Дозвольте мені перейти до Save As. 612 00:25:06,140 --> 00:25:08,560 Я збираюся вибрати в лівій частині тут jharvard. 613 00:25:08,560 --> 00:25:11,010 Отже, ще раз, навіть якщо ви ніколи не використовували Linux, перш ніж, чесно кажучи 614 00:25:11,010 --> 00:25:13,680 в ці дні, всі вони покладаються в основному 615 00:25:13,680 --> 00:25:14,590 же тип інтерфейсу - 616 00:25:14,590 --> 00:25:16,030 Mac OS, Windows і Linux. 617 00:25:16,030 --> 00:25:18,680 Тому я вибрав домашню папку jharvard тут. 618 00:25:18,680 --> 00:25:21,120 І я хочу зберегти цей файл як hello.c. 619 00:25:21,120 --> 00:25:24,260 Таким чином, на самому верху, я набрав hello.c, назвавши C 620 00:25:24,260 --> 00:25:26,520 програми з розширенням. с- 621 00:25:26,520 --> 00:25:27,570 що звичайна практика. 622 00:25:27,570 --> 00:25:28,650 І я вдарив Зберегти. 623 00:25:28,650 --> 00:25:32,510 І що тепер приємно, що я ефективно навчати Gedit, 624 00:25:32,510 --> 00:25:33,690 що це програма C. 625 00:25:33,690 --> 00:25:36,470 Зверніть увагу, що мій чорно-білий текст тепер колірне кодування, або 626 00:25:36,470 --> 00:25:39,330 підсвічування синтаксису, який тільки привертає мою увагу до 627 00:25:39,330 --> 00:25:41,540 різних смислових частин програми. 628 00:25:41,540 --> 00:25:44,260 У лівому верхньому куті там, як мої програми стають все більш складними, я 629 00:25:44,260 --> 00:25:47,060 буде мати список всіх речей, які я написав. 630 00:25:47,060 --> 00:25:48,050 Так ось воно що там. 631 00:25:48,050 --> 00:25:52,350 Отже, дозвольте мені тепер масштаб і спуститися до цього вікні терміналу. 632 00:25:52,350 --> 00:25:54,570 >> Так що це, можливо, нових для багатьох людей. 633 00:25:54,570 --> 00:25:57,260 Якщо ви ніколи не використовували середовище командного рядка, ви ніколи не 634 00:25:57,260 --> 00:26:00,020 використовувати DOS, або ви ніколи не використовували Linux, або ви ніколи не відкрили 635 00:26:00,020 --> 00:26:02,550 вашого Mac OS вікно терміналу, є багато речей, які ви 636 00:26:02,550 --> 00:26:04,820 міг зробити з GUI, наприклад, вказуючи, а натиснувши та 637 00:26:04,820 --> 00:26:07,080 перетягування і падіння, і тому подібне, але в цілому - 638 00:26:07,080 --> 00:26:09,360 звичайно, в світі комп'ютерних наук - 639 00:26:09,360 --> 00:26:11,580 за допомогою командного рядка, де у вас немає миші 640 00:26:11,580 --> 00:26:14,220 Як правило, у вас є тільки клавіатуру, насправді багато 641 00:26:14,220 --> 00:26:17,260 більш потужний, ніж інтерфейс, як тільки ви пристосувалися до 642 00:26:17,260 --> 00:26:18,580 різні команди. 643 00:26:18,580 --> 00:26:20,940 А ви як би звільнити себе від необхідності точку та натисніть 644 00:26:20,940 --> 00:26:21,690 на все. 645 00:26:21,690 --> 00:26:23,890 Таким чином, в Gedit ми будемо сортувати мати краще з обох світів. 646 00:26:23,890 --> 00:26:25,600 Ми можемо перетягувати текст, ми бачимо, що 647 00:26:25,600 --> 00:26:26,840 хороший і кольором. 648 00:26:26,840 --> 00:26:29,630 Але коли приходить час, щоб запустити нашу програму, ми будемо іноді 649 00:26:29,630 --> 00:26:31,750 просто використовувати це невелике вікно тут. 650 00:26:31,750 --> 00:26:33,460 >> Так що я збираюся йти вперед і зробити це. 651 00:26:33,460 --> 00:26:36,420 У нижній чорно-білі вікна, я піду вперед 652 00:26:36,420 --> 00:26:37,890 і писати брязкіт. 653 00:26:37,890 --> 00:26:40,130 І брязкіт це ім'я компілятора. 654 00:26:40,130 --> 00:26:43,310 Це програма, яка перетворює мій вихідний код 655 00:26:43,310 --> 00:26:48,770 в, таким чином, об'єктний код. 656 00:26:48,770 --> 00:26:51,270 0 і 1, які ми бачили коротко минулого тижня. 657 00:26:51,270 --> 00:26:53,700 Нагадаємо, з минулого тижня, ми обіцяли, що ми збираємося 658 00:26:53,700 --> 00:26:55,920 перейти від щось подібне до цього - ми повинні були бути 659 00:26:55,920 --> 00:26:57,010 щось на зразок цього - 660 00:26:57,010 --> 00:26:58,700 і це, звичайно, не те, що людина збирається 661 00:26:58,700 --> 00:26:59,690 робити вручну. 662 00:26:59,690 --> 00:27:01,980 Так замість цього ми збираємося використовувати програму, і програма в 663 00:27:01,980 --> 00:27:03,430 цьому випадку називається Clang. 664 00:27:03,430 --> 00:27:06,020 І ім'я моє програму hello.c. 665 00:27:06,020 --> 00:27:09,670 Таким чином, з метою складання hello.c з вихідного коду в 666 00:27:09,670 --> 00:27:12,930 об'єктний код, або 0 і 1, цього має вистачити, щоб просто робити 667 00:27:12,930 --> 00:27:14,820 це та натисніть Enter. 668 00:27:14,820 --> 00:27:16,850 >> Гаразд, нічого, здається, не відбулося. 669 00:27:16,850 --> 00:27:20,450 Але тепер я знаю, чи з минулого тижня, що його ім'я за замовчуванням 670 00:27:20,450 --> 00:27:24,920 Програма, коли написана на C, це нерозумно називати a.out. 671 00:27:24,920 --> 00:27:26,610 Саме нецікаве назву можна придумати. 672 00:27:26,610 --> 00:27:28,790 Перша буква алфавіту, з те, що було 673 00:27:28,790 --> 00:27:29,960 виводиться, але нехай буде так. 674 00:27:29,960 --> 00:27:33,570 Це моя програма, і тепер точка слеш, як ми побачимо, є 675 00:27:33,570 --> 00:27:36,170 насправді просто свого роду функція безпеки, тому що 676 00:27:36,170 --> 00:27:38,250 a.out це програма, яку я написав. 677 00:27:38,250 --> 00:27:39,650 Він не прийшов з мого комп'ютера, це 678 00:27:39,650 --> 00:27:40,790 не в Program Files. 679 00:27:40,790 --> 00:27:42,910 Це замість папки Програми Mac ОС. 680 00:27:42,910 --> 00:27:45,740 Мені потрібно бути супер явний з комп'ютером, і говорити 681 00:27:45,740 --> 00:27:49,030 ця програма, a.out, знаходиться в поточній папці, 682 00:27:49,030 --> 00:27:50,260 поточного каталогу. 683 00:27:50,260 --> 00:27:53,160 І те, як ви уявляєте це в середу, як це 684 00:27:53,160 --> 00:27:57,070 є точка являє іншій папці, ви в даний момент знаходитеся 685 00:27:57,070 --> 00:27:59,420 І так. / Просто означає запустити a.out 686 00:27:59,420 --> 00:28:00,530 в поточній папці. 687 00:28:00,530 --> 00:28:04,830 І я виконати це за допомогою Enter, і ось, моя найперша програма. 688 00:28:04,830 --> 00:28:05,990 >> Тепер дозвольте мені зробити крок назад. 689 00:28:05,990 --> 00:28:08,280 Це вікно трохи малий, і розуміють, що дно 690 00:28:08,280 --> 00:28:10,340 ліворуч від приладу ось ще один значок. 691 00:28:10,340 --> 00:28:12,660 Одним з них є Chrome, які повинні бути добре знайомі, тільки веб- 692 00:28:12,660 --> 00:28:14,350 браузере всередину приладу. 693 00:28:14,350 --> 00:28:16,340 І це чорно-білий значок просто 694 00:28:16,340 --> 00:28:17,720 великі вікна терміналу. 695 00:28:17,720 --> 00:28:19,830 Так що, якщо це стає трохи дратує начебто тільки що 696 00:28:19,830 --> 00:28:22,270 це маленький шматочок вікна, з яким взаємодіє 697 00:28:22,270 --> 00:28:24,370 з програмами, ми можемо замість цього. 698 00:28:24,370 --> 00:28:26,640 А тепер дозвольте мені почати друкувати кілька скоро 699 00:28:26,640 --> 00:28:27,980 бути знайомим командам. 700 00:28:27,980 --> 00:28:28,900 ліва сторона 701 00:28:28,900 --> 00:28:31,410 Так Ls це команда для включення в перелік. 702 00:28:31,410 --> 00:28:33,900 Таким чином, в Mac OS або Windows, ви, як правило, двічі клацніть 703 00:28:33,900 --> 00:28:36,510 папку, а потім, вуаля, ви побачите всі різні файли 704 00:28:36,510 --> 00:28:37,210 і папок. 705 00:28:37,210 --> 00:28:39,650 У середовищі командного рядка, де ви можете ввести тільки 706 00:28:39,650 --> 00:28:42,390 команд або тексту, LS є еквівалентом. 707 00:28:42,390 --> 00:28:44,380 Так покажіть мені, що в цьому каталозі. 708 00:28:44,380 --> 00:28:46,540 >> Тепер є купа речей тут, це й небагато 709 00:28:46,540 --> 00:28:48,190 знайомі і незнайомі небагато. 710 00:28:48,190 --> 00:28:50,740 Але зверніть увагу, що як і Windows, і Mac OS, jharvard 711 00:28:50,740 --> 00:28:52,190 має робочому столі папку. 712 00:28:52,190 --> 00:28:54,520 Таким чином, будь-які значки, які знаходяться на моєму робочому столі трапиться 713 00:28:54,520 --> 00:28:55,650 бути в цій папці. 714 00:28:55,650 --> 00:28:57,250 Там в папці завантаження, речі, які 715 00:28:57,250 --> 00:28:58,890 Chrome може поставити там. 716 00:28:58,890 --> 00:28:59,250 Dropbox. 717 00:28:59,250 --> 00:29:01,820 Таким чином, прилад поставляється з вбудованою підтримкою для Dropbox 718 00:29:01,820 --> 00:29:04,500 так що протягом семестру, ви можете синхронізувати з вашим Dropbox 719 00:29:04,500 --> 00:29:06,420 рахунок, так що всі ваші програми резервного копіювання. 720 00:29:06,420 --> 00:29:08,050 Вони доступні на іншому комп'ютері. 721 00:29:08,050 --> 00:29:09,780 Якщо щось піде не так, завжди з приладом, ви можете 722 00:29:09,780 --> 00:29:11,340 Дуже легко відновити з Dropbox. 723 00:29:11,340 --> 00:29:12,940 Так що папка там для цього. 724 00:29:12,940 --> 00:29:14,660 Там два файли, які я зробив - hello.c 725 00:29:14,660 --> 00:29:16,540 і a.out. 726 00:29:16,540 --> 00:29:18,530 І потім направо є деякі інші папки, які ми будемо 727 00:29:18,530 --> 00:29:20,710 дістатися до в кінці семестру, з веб- 728 00:29:20,710 --> 00:29:21,540 програмування. 729 00:29:21,540 --> 00:29:26,160 Так що, коли я роблю. / A.out, введіть, це говорить йти 730 00:29:26,160 --> 00:29:29,460 В каталозі я перебуваю, поточний каталог, і запустіть 731 00:29:29,460 --> 00:29:32,465 програма під назвою a.out прямо там. 732 00:29:32,465 --> 00:29:35,810 >> Гаразд, так що це приємно і добре, але це не все, що 733 00:29:35,810 --> 00:29:38,550 переконливими, щоб написати програму під назвою допомогти a.out. 734 00:29:38,550 --> 00:29:40,790 Так що ми дійсно можемо зробити це трохи по-іншому. 735 00:29:40,790 --> 00:29:43,980 Таким чином, замість того, щоб просто працює брязкіт, hello.c, давайте додамо 736 00:29:43,980 --> 00:29:46,850 те, що називається аргументом командного рядка. 737 00:29:46,850 --> 00:29:50,730 Таким чином, аргументи командного рядка, або вимикач в даному випадку, це просто 738 00:29:50,730 --> 00:29:54,930 іншого слова або фрази, які ви вводите в рядку після 739 00:29:54,930 --> 00:29:56,290 програми, яку ви хочете запустити. 740 00:29:56,290 --> 00:29:59,970 Таким чином, в даному випадку, брязкіт це програма, я хочу бігти,-O 741 00:29:59,970 --> 00:30:03,480 засоби виходу файлі, який більше не називають a.out. 742 00:30:03,480 --> 00:30:07,510 Вихідний файл з ім'ям привіт, і зробити це шляхом складання 743 00:30:07,510 --> 00:30:10,200 Останнє слово на лінії, hello.c. 744 00:30:10,200 --> 00:30:13,200 Коротше кажучи, це дуже незначне покращення, в результаті чого 745 00:30:13,200 --> 00:30:15,850 замість того, щоб це тупо імені файлу a.out, 746 00:30:15,850 --> 00:30:21,430 Тепер я можу робити брязкіт-O Привіт, то hello.c, і 747 00:30:21,430 --> 00:30:22,530 потім натисніть Enter. 748 00:30:22,530 --> 00:30:25,510 Здається, ніщо не трапиться, але знову ж хотілося з 0 - коли 749 00:30:25,510 --> 00:30:28,510 ніщо, здається, сталося це означає, що нічого поганого сталося - 750 00:30:28,510 --> 00:30:31,460 Так давайте зробимо Ls зараз, введіть, та й зараз я 751 00:30:31,460 --> 00:30:32,780 є привіт програмі. 752 00:30:32,780 --> 00:30:38,510 Так що, якщо я типу привіт зараз, команда не знайдена. 753 00:30:38,510 --> 00:30:39,440 OK,. /. 754 00:30:39,440 --> 00:30:40,220 Так точно. 755 00:30:40,220 --> 00:30:43,170 Так що, тому що це програма, яку я написав, і він не прийшов з 756 00:30:43,170 --> 00:30:45,810 комп'ютер,. / привіт, Enter, значить, 757 00:30:45,810 --> 00:30:47,350 Зараз я займаюся привіт. 758 00:30:47,350 --> 00:30:48,440 >> Так ось воно що там. 759 00:30:48,440 --> 00:30:51,070 Тепер те, що ми в кінцевому підсумку отримати все більше і більше командного рядка 760 00:30:51,070 --> 00:30:54,110 Аргументи, які дозволяють нам зробити більше, але тільки для тих, 761 00:30:54,110 --> 00:30:57,760 яким це може бути стара капелюх, дозвольте мені насправді йдуть в 762 00:30:57,760 --> 00:31:01,910 каталог тут і просто дати вам тізер, як ще ми 763 00:31:01,910 --> 00:31:05,770 може йти про реалізацію привіт світ. 764 00:31:05,770 --> 00:31:10,730 Відпустіть мене в тут, і я збираюся відкрити його. 765 00:31:10,730 --> 00:31:13,090 Таким чином, на самом деле, я збираюся пояснити, що я роблю, так 766 00:31:13,090 --> 00:31:15,610 це корисно. 767 00:31:15,610 --> 00:31:17,410 Дозвольте мені назад. 768 00:31:17,410 --> 00:31:19,620 >> Так що я займаюся цим давно. 769 00:31:19,620 --> 00:31:23,030 Так помітити більш на право є пара 770 00:31:23,030 --> 00:31:26,940 каталоги, які дивним ім'ям source1m і source1w. 771 00:31:26,940 --> 00:31:28,830 Це просто нерозумно конвенції ми використовуємо. 772 00:31:28,830 --> 00:31:31,825 Джерело просто означає, що вихідним кодом, 1 означає, що це тиждень один, і 773 00:31:31,825 --> 00:31:34,000 м означає, що це понеділок, і ш означає, що він у середу. 774 00:31:34,000 --> 00:31:34,900 Так що нічого загадкового немає. 775 00:31:34,900 --> 00:31:37,830 Це просто скорочене позначення. 776 00:31:37,830 --> 00:31:39,860 Ці сині речі папки, інакше відомий як 777 00:31:39,860 --> 00:31:40,630 каталогами. 778 00:31:40,630 --> 00:31:43,870 Я хочу піти в цю папку зараз, а на звичайному комп'ютері 779 00:31:43,870 --> 00:31:45,710 Я міг би просто двічі клацніть на значку папки і 780 00:31:45,710 --> 00:31:46,810 там всі мої файли. 781 00:31:46,810 --> 00:31:49,270 Але в середовищі командного рядка, я зовсім не можу зробити 782 00:31:49,270 --> 00:31:52,640 що, таким чином, замість цього, я повинен змінити каталоги вручну. 783 00:31:52,640 --> 00:31:57,900 Так що якщо я Тип CD, а потім source1m, Enter, помітили, що 784 00:31:57,900 --> 00:32:01,180 мої рядки, справа в білому зліва, просто змінилася. 785 00:32:01,180 --> 00:32:03,690 І дійсно, коли вона тільки що сказала дужках, а потім 786 00:32:03,690 --> 00:32:06,450 маленька карлючка, символ тильди, що просто означало, що я був 787 00:32:06,450 --> 00:32:08,800 У домашній директорії Джон Гарвард, його My Documents, 788 00:32:08,800 --> 00:32:10,390 його особисті файли. 789 00:32:10,390 --> 00:32:14,000 Але тепер в дужках це говорить ~ / source1m. 790 00:32:14,000 --> 00:32:17,090 Це просто означає, що я перебуваю в папку під назвою source1m 791 00:32:17,090 --> 00:32:19,160 , Який в домашньому каталозі Джона Гарварда. 792 00:32:19,160 --> 00:32:22,030 Так що, якщо зараз я хочу перерахувати файли у цю папку, легко 793 00:32:22,030 --> 00:32:25,300 питання, я просто ввести Ls. 794 00:32:25,300 --> 00:32:28,860 І тепер я бачу всі файли, які я попередньо створений для сучасних 795 00:32:28,860 --> 00:32:31,020 лекція, кожен з яких, або більшість з яких, відбудеться 796 00:32:31,020 --> 00:32:32,740 закінчуватися на. с. 797 00:32:32,740 --> 00:32:36,210 >> Отже, дозвольте мені тепер іти вперед і виконати Gedit програми під назвою 798 00:32:36,210 --> 00:32:39,140 holloway.c, який написав кілька випадкових хакерів 799 00:32:39,140 --> 00:32:42,920 в Інтернеті, що виглядає трохи як це. 800 00:32:42,920 --> 00:32:44,880 І ми не збираємося пройти через це один в будь-якому 801 00:32:44,880 --> 00:32:48,530 докладно, але для тих, хто більш зручним, зокрема, якщо 802 00:32:48,530 --> 00:32:50,935 Ви хочете зробити припущення про те, що ця програма робить тут. 803 00:32:57,950 --> 00:32:59,990 Будьте впевнені, чи є ви більш-менш зручні, 804 00:32:59,990 --> 00:33:01,655 ми навіть не потрапити на такого роду речі до кінця 805 00:33:01,655 --> 00:33:02,160 в цьому семестрі. 806 00:33:02,160 --> 00:33:05,390 Це те, що приклад конкурсі затемнений C, який 807 00:33:05,390 --> 00:33:08,390 засоби написати найзагадковіше шукає програму ви, можливо, 808 00:33:08,390 --> 00:33:10,820 може перевершити інші розумні люди, які так само 809 00:33:10,820 --> 00:33:13,010 намагаюся писати речі і показати, що вони можуть написати 810 00:33:13,010 --> 00:33:14,280 більш загадкові речі, ніж ви. 811 00:33:14,280 --> 00:33:17,290 Так що це не приклад добре написані програми з 812 00:33:17,290 --> 00:33:21,260 точки зору стилю, це приклад програми, яка 813 00:33:21,260 --> 00:33:22,860 виграє конкурс, для людей, що намагаються 814 00:33:22,860 --> 00:33:24,090 бути розпливчастим і абстрактним. 815 00:33:24,090 --> 00:33:27,670 >> Таким чином, якщо ми запустимо цю річ, відпусти мене в моєму вікні терміналу, 816 00:33:27,670 --> 00:33:28,110 так сказати. 817 00:33:28,110 --> 00:33:29,650 Так ось цей чорний і білий середовищі називається 818 00:33:29,650 --> 00:33:31,160 вікна терміналу в цілому. 819 00:33:31,160 --> 00:33:32,600 Дозвольте мені йти вперед і скомпілювати його. 820 00:33:32,600 --> 00:33:34,440 Я не збираюся використовувати брязкіт, тому що ця програма є 821 00:33:34,440 --> 00:33:36,340 трохи загадково і потребує різних 822 00:33:36,340 --> 00:33:38,190 компілятора, одна називається GCC. 823 00:33:38,190 --> 00:33:39,200 Але він робить те ж саме. 824 00:33:39,200 --> 00:33:41,130 Він приймає вихідний код об'єктний код. 825 00:33:41,130 --> 00:33:43,940 І тепер, якщо я біжу a.out, що програми, яку ви 826 00:33:43,940 --> 00:33:46,065 тільки що бачив це робить. 827 00:33:49,220 --> 00:33:51,170 Так що хлопець в цьому році виграв конкурс. 828 00:33:51,170 --> 00:33:54,020 У всякому разі, ми не будемо в цьому напрямку, як такої. 829 00:33:54,020 --> 00:33:57,400 >> Так що давайте насправді намагаються тепер дражнять один від одного, що можна зробити 830 00:33:57,400 --> 00:33:59,540 з цими основними будівельними блоками, щоб все більше і більше 831 00:33:59,540 --> 00:34:00,590 цікаві програми. 832 00:34:00,590 --> 00:34:02,800 Отже, ми написали програму, ми запускаємо програму. 833 00:34:02,800 --> 00:34:05,780 Тепер ми дійсно можемо спростити і більше не писати 834 00:34:05,780 --> 00:34:07,210 Слово дзвін у командному рядку. 835 00:34:07,210 --> 00:34:10,710 Виявляється, як наші програми отримують більш загадковим, ми можемо, або 836 00:34:10,710 --> 00:34:14,699 більш складна, швидше, ми дійсно можемо виконати цю команду. 837 00:34:14,699 --> 00:34:17,610 Отже, дозвольте мені повернутися до моєї домашньої директорії, так би мовити, дозвольте мені 838 00:34:17,610 --> 00:34:20,750 видалити - ГТ видалити команду - я збираюся видалити 839 00:34:20,750 --> 00:34:23,060 файл з ім'ям a.out і привіт. 840 00:34:23,060 --> 00:34:25,489 А тепер помічаю в середовищі командного рядка, так само, як в 841 00:34:25,489 --> 00:34:27,800 GUI, ви отримаєте запит. Я не можу натиснути кнопку, хоча, я 842 00:34:27,800 --> 00:34:31,040 повинні ввести в, для Так, у для да. 843 00:34:31,040 --> 00:34:33,460 І тепер, якщо я друкую Ls знову, зверніть увагу, що ці зелені 844 00:34:33,460 --> 00:34:35,469 Програми - a.out і привіт - 845 00:34:35,469 --> 00:34:35,734 пішли в минуле. 846 00:34:35,734 --> 00:34:37,340 Остерігайтеся ГТ. 847 00:34:37,340 --> 00:34:39,739 Він може робити погані речі, як ви можете шляхом перетягування 848 00:34:39,739 --> 00:34:40,810 Заняття на ваше сміття. 849 00:34:40,810 --> 00:34:43,989 >> А тепер давайте йти вперед - і я можу це зробити - дзвін-о 850 00:34:43,989 --> 00:34:45,139 привіт, привіт - 851 00:34:45,139 --> 00:34:46,884 Я вже набридло введення цієї команди. 852 00:34:46,884 --> 00:34:48,080 Хоча я набрав його трохи швидше. 853 00:34:48,080 --> 00:34:51,870 Так що ми можемо замість цього зробити привіт. 854 00:34:51,870 --> 00:34:53,880 Так що не компілятор. 855 00:34:53,880 --> 00:34:57,720 Це просто зручна програма, яка поставляється з Linux, в цій 856 00:34:57,720 --> 00:34:59,070 випадку - операційна система - 857 00:34:59,070 --> 00:35:02,480 , Яка автоматизує процес компіляції програми. 858 00:35:02,480 --> 00:35:05,555 Таким чином, замість запам'ятовування дзвін-O ім'я файлу і 859 00:35:05,555 --> 00:35:08,190 Потім так далі, особливо якщо ці лінії стають довшими і 860 00:35:08,190 --> 00:35:10,110 більше, я можу просто написати зробити. 861 00:35:10,110 --> 00:35:12,030 І це буде виплюнути цілу купу речей, які 862 00:35:12,030 --> 00:35:13,940 ми в кінцевому рахунку бачити в цьому семестрі. 863 00:35:13,940 --> 00:35:17,500 Але зверніть увагу, тепер, якщо я типу LS, привіт повернувся в мій каталог. 864 00:35:17,500 --> 00:35:19,850 І дійсно, я можу запустити його. / Привіт. 865 00:35:19,850 --> 00:35:23,330 Так що просто автоматизує процес роботи, що було, 866 00:35:23,330 --> 00:35:26,910 У цьому випадку, набагато довше, більш складні команди. 867 00:35:26,910 --> 00:35:29,060 Так що ми збираємося почати використовувати марку, тільки тому, що багато 868 00:35:29,060 --> 00:35:30,530 більш зручною для користувачів. 869 00:35:30,530 --> 00:35:32,770 >> А тепер давайте зробимо більш цікаві програми 870 00:35:32,770 --> 00:35:34,650 ніж просто привітатися. 871 00:35:34,650 --> 00:35:38,680 Таким чином, у програмі ми написали досі є основні. 872 00:35:38,680 --> 00:35:40,890 В тому і річ, що за замовчуванням ногами все геть. 873 00:35:40,890 --> 00:35:43,340 Але є й інші функції, як там добре, і 874 00:35:43,340 --> 00:35:45,890 stdio.h це те, що ми бачили у верхній частині нашого 875 00:35:45,890 --> 00:35:48,480 Файл раніше, і це те, що відомо як стандартної бібліотеки. 876 00:35:48,480 --> 00:35:51,300 Усередині стандартній бібліотеці ціла купа функцій 877 00:35:51,300 --> 00:35:53,850 що хтось написав, і ми можемо почати використовувати ці 878 00:35:53,850 --> 00:35:55,050 Функції писати більше 879 00:35:55,050 --> 00:35:56,760 цікаві програми самі. 880 00:35:56,760 --> 00:35:58,370 >> Отже, дозвольте мені повернутися до приладу. 881 00:35:58,370 --> 00:35:59,820 Я збираюся закрити це вікно терміналу. 882 00:35:59,820 --> 00:36:02,630 Я збираюся закрити речей, які ми писали раніше, і просто піти 883 00:36:02,630 --> 00:36:07,350 в hello.c, і зверніть увагу, що тепер я можу зробити наступне. 884 00:36:07,350 --> 00:36:09,730 Привіт світ ще не все, що цікаво, я хотів би 885 00:36:09,730 --> 00:36:11,770 персоналізувати цю програму для себе. 886 00:36:11,770 --> 00:36:13,440 Таким чином, замість того щоб сказати світові, я збираюся 887 00:36:13,440 --> 00:36:14,830 йти вперед і сказати - 888 00:36:14,830 --> 00:36:16,880 Я міг би ввести David - але це дійсно є свого роду 889 00:36:16,880 --> 00:36:18,050 Принципово те ж саме. 890 00:36:18,050 --> 00:36:19,970 Але давайте спробуємо цю ідею заповнювача. 891 00:36:19,970 --> 00:36:24,460 Нагадаємо, що в C, а в Printf, у нас були ці 892 00:36:24,460 --> 00:36:28,110 заповнювачів, і є більше, ніж просто% р. 893 00:36:28,110 --> 00:36:31,150 Таким% D був, швидку перевірку осудності. 894 00:36:31,150 --> 00:36:32,310 Добре, десяткове число, ось і все. 895 00:36:32,310 --> 00:36:33,860 Десяткових цифр, ось і все. 896 00:36:33,860 --> 00:36:37,755 Таким% з, як ми зіткнемося, буде характер. 897 00:36:37,755 --> 00:36:40,530 Покладіть характер букви тут через г, 898 00:36:40,530 --> 00:36:41,600 або знаки пунктуації символ. 899 00:36:41,600 --> 00:36:45,590 Один символ,% F, хто-небудь знає з інших мов? 900 00:36:45,590 --> 00:36:47,020 Таким чином, значення з плаваючою точкою. 901 00:36:47,020 --> 00:36:47,880 Дійсне число. 902 00:36:47,880 --> 00:36:51,550 Так що не десяткове число - це насправді реальне число з 903 00:36:51,550 --> 00:36:54,130 десяткової крапки, і деякої кількості цифр ліворуч 904 00:36:54,130 --> 00:36:55,520 і праворуч від нього. 905 00:36:55,520 --> 00:36:58,060 % З, рядок. 906 00:36:58,060 --> 00:36:59,530 Це той, який ми збираємося бачити досить часто. 907 00:36:59,530 --> 00:37:02,140 Рядок, знову ж таки, це просто слово, фраза, послідовність 908 00:37:02,140 --> 00:37:03,330 окремих символів. 909 00:37:03,330 --> 00:37:06,730 І, нарешті, доктор юридичних наук? 910 00:37:06,730 --> 00:37:08,210 Так що це більше кута випадку. 911 00:37:08,210 --> 00:37:09,850 Довго, довго після коми. 912 00:37:09,850 --> 00:37:12,035 Так що якщо ви хочете не просто число, яке ця велика, ви 913 00:37:12,035 --> 00:37:14,160 хочуть більшого числа, ви будете мати, щоб вказати 914 00:37:14,160 --> 00:37:16,400 комп'ютер, що це певного розміру. 915 00:37:16,400 --> 00:37:17,610 >> Так що давайте змінити цей небагато. 916 00:37:17,610 --> 00:37:20,610 Замість того, щоб просто важко коду Девід, дозвольте мені трохи 917 00:37:20,610 --> 00:37:22,460 динамічно% говорять с. 918 00:37:22,460 --> 00:37:25,790 Так що ставте% з тут, який є прототипом для рядка. 919 00:37:25,790 --> 00:37:30,500 Тоді дозвольте мені зробити коми, а потім "Давид" тут. 920 00:37:30,500 --> 00:37:32,770 Тепер це не все, що інтелектуально цікавим, 921 00:37:32,770 --> 00:37:35,060 тому що все, що я зробив зараз дійсно створює більше роботи для 922 00:37:35,060 --> 00:37:35,790 комп'ютер. 923 00:37:35,790 --> 00:37:39,660 Замість того, щоб сказати комп'ютеру, робити це все відразу, я зараз 924 00:37:39,660 --> 00:37:43,760 кажу це зробити і вставити рядок тут в кінцевому рахунку, кома, 925 00:37:43,760 --> 00:37:44,950 тут є те, що рядок. 926 00:37:44,950 --> 00:37:47,220 Так що це не найкращий поліпшення, але це принаймні 927 00:37:47,220 --> 00:37:49,010 крок до більш цікаву програму. 928 00:37:49,010 --> 00:37:51,240 Тому що тепер, дозвольте мені йти вперед і зробити це вікно трохи 929 00:37:51,240 --> 00:37:56,850 більше, дозвольте мені йти вперед і бігти робити привіт. 930 00:37:56,850 --> 00:38:01,340 І тепер,. / A.out не працює, чому? 931 00:38:03,880 --> 00:38:05,570 Гаразд, зараз це називається привіт. 932 00:38:05,570 --> 00:38:09,400 Отже, ще раз зробити, а також з брязкотом-о, перейменований 933 00:38:09,400 --> 00:38:11,120 Програма буде щось більш цікаве. 934 00:38:11,120 --> 00:38:13,060 І вуаля: тепер він говорить привіт Давиду. 935 00:38:13,060 --> 00:38:14,590 >> Гаразд, ще дурна програма. 936 00:38:14,590 --> 00:38:18,070 А тепер давайте насправді повернутися сюди і ввести поняття 937 00:38:18,070 --> 00:38:18,810 змінної. 938 00:38:18,810 --> 00:38:21,600 Хіба не було б здорово, якби я міг оголосити змінну 939 00:38:21,600 --> 00:38:23,150 , Тип якого є рядок? 940 00:38:23,150 --> 00:38:26,720 І значення змінної насправді походить від користувачів 941 00:38:26,720 --> 00:38:27,810 самого себе. 942 00:38:27,810 --> 00:38:30,240 Таким чином, довільно, я збираюся подзвонити моїй змінної с, що 943 00:38:30,240 --> 00:38:32,410 тільки загальна угода, коли у вас є одна змінна 944 00:38:32,410 --> 00:38:33,250 рядком. 945 00:38:33,250 --> 00:38:35,670 Я збираюся зробити знак рівності, і тоді я буду називати 946 00:38:35,670 --> 00:38:38,030 Функція називається GetString. 947 00:38:38,030 --> 00:38:40,830 Так GetString не те, що вбудований в C. Це 948 00:38:40,830 --> 00:38:43,330 функція, яка CS50 співробітники написали, дійсно тільки для 949 00:38:43,330 --> 00:38:45,670 ці перші пару тижнів, щоб спростити процес 950 00:38:45,670 --> 00:38:49,450 отримання користувальницького введення та отримання користувальницького введення у формі 951 00:38:49,450 --> 00:38:51,960 рядків або чисел, і такі. 952 00:38:51,960 --> 00:38:55,520 Так GetString, як Printf, але, очевидно, замість того, 953 00:38:55,520 --> 00:38:58,700 роздрукувати це буде робити те, що говорить його назва, отримати рядок. 954 00:38:58,700 --> 00:39:00,970 Але використовувати GetString, ми збираємося, щоб внести зміни 955 00:39:00,970 --> 00:39:03,180 Тут, за цим. 956 00:39:03,180 --> 00:39:07,170 Таким чином, інтуїтивно, ця програма, ми сподіваємося, буде так чи інакше 957 00:39:07,170 --> 00:39:09,700 отримати рядок від користувача, а потім те, що він збирається робити 958 00:39:09,700 --> 00:39:11,460 з цього рядка, називається S? 959 00:39:15,060 --> 00:39:16,470 Це просто буде роздрукувати його, вірно? 960 00:39:16,470 --> 00:39:18,870 Ще не стимулюючі програми, тому що все це буде 961 00:39:18,870 --> 00:39:22,160 потрібно зробити, це підключити це значення в%, де з 962 00:39:22,160 --> 00:39:23,750 говорить, що треба йти. 963 00:39:23,750 --> 00:39:25,290 >> Отже, давайте принаймні, побачити це в дії. 964 00:39:25,290 --> 00:39:27,040 Дозвольте мені зберегти і масштабу. 965 00:39:27,040 --> 00:39:30,280 Зараз у моєму вікні терміналу тут, внизу, маленький шматочок одного, 966 00:39:30,280 --> 00:39:32,760 Дозвольте мені ще раз роблять привіт. 967 00:39:32,760 --> 00:39:35,160 Гаразд, і ах, чорт візьми, я отримав цілу купу помилок. 968 00:39:35,160 --> 00:39:38,020 Дозвольте мені прокручування вгору, і ми бачимо наш перший - 969 00:39:38,020 --> 00:39:40,430 так що давайте насправді зробити це в ще більші вікна, щоб ви 970 00:39:40,430 --> 00:39:42,110 можна побачити, як сильно я облажався - 971 00:39:42,110 --> 00:39:44,460 так що привіт. 972 00:39:44,460 --> 00:39:46,540 Добре, що це катастрофа, чи не так? 973 00:39:46,540 --> 00:39:48,740 Я написав три рядки коду, і 974 00:39:48,740 --> 00:39:50,070 це дає мені 12 помилок. 975 00:39:50,070 --> 00:39:51,980 Так чому ж це? 976 00:39:51,980 --> 00:39:55,720 Так що, на щастя, часто, коли ви бачите дуже багато помилок 977 00:39:55,720 --> 00:39:57,730 впливів відразу, це дійсно просто тому, що ви 978 00:39:57,730 --> 00:39:59,760 плутати комп'ютер тут. 979 00:39:59,760 --> 00:40:02,330 І залишається плутають до того часу він отримує тут. 980 00:40:02,330 --> 00:40:04,400 І тому він просто починає відключення, і спотикаючись, і 981 00:40:04,400 --> 00:40:07,310 впливів більш страшні речі, ніж насправді ставиться. 982 00:40:07,310 --> 00:40:10,120 Таким чином, в загальному, завжди починайте з верхньої. 983 00:40:10,120 --> 00:40:13,320 >> Так на самому верху самий екземпляр червоного, 984 00:40:13,320 --> 00:40:14,740 Повідомлення про помилку полягає в наступному. 985 00:40:14,740 --> 00:40:17,750 Використання неоголошених ідентифікатора рядки, я 986 00:40:17,750 --> 00:40:19,160 означає стандарт? 987 00:40:19,160 --> 00:40:19,900 Я цього не зробив. 988 00:40:19,900 --> 00:40:24,180 Я мав на увазі рядки, але це тому, що теж слово рядка 989 00:40:24,180 --> 00:40:26,020 що я продовжувати використовувати усно насправді 990 00:40:26,020 --> 00:40:27,240 не існує в C або. 991 00:40:27,240 --> 00:40:29,470 Це те, що ми будемо використовувати тільки протягом першого тижня або двох 992 00:40:29,470 --> 00:40:34,500 тут, але воно існує у файлі під назвою cs50.h. 993 00:40:34,500 --> 00:40:37,110 Таким чином, на даний момент, знаю, що є ця інша бібліотека, яка 994 00:40:37,110 --> 00:40:39,330 Співробітники писав, так що він був написаний пізніше, ніж 995 00:40:39,330 --> 00:40:40,510 stdio.h. 996 00:40:40,510 --> 00:40:45,020 Але всередині cs50.h є визначення, синонім 997 00:40:45,020 --> 00:40:48,310 роду, який створює це слово рядка. 998 00:40:48,310 --> 00:40:50,890 >> Так що тепер дозвольте мені повернутися до моєї вікні терміналу. 999 00:40:50,890 --> 00:40:53,200 Я збираюся очистити весь цей бардак по Ctrl-L. Ми просто 1000 00:40:53,200 --> 00:40:55,700 стерти все чисте, і я збираюся піти далі і зробити 1001 00:40:55,700 --> 00:40:57,860 Вітаю ще раз, Enter. 1002 00:40:57,860 --> 00:40:59,440 Так що ж сталося зараз? 1003 00:40:59,440 --> 00:41:01,150 Тепер всі ці помилки пішли. 1004 00:41:01,150 --> 00:41:02,230 Так що я дійсно зробив? 1005 00:41:02,230 --> 00:41:05,920 Я тільки що навчив комп'ютер, рядок існує, і це 1006 00:41:05,920 --> 00:41:07,890 в тому, що файл з ім'ям cs50.h. 1007 00:41:07,890 --> 00:41:10,930 Так що перестаньте скаржитися, тому що тепер ви знаєте, де знайти 1008 00:41:10,930 --> 00:41:13,220 заяву, що функції, так би мовити. 1009 00:41:13,220 --> 00:41:15,200 Де вона існує в світі. 1010 00:41:15,200 --> 00:41:18,820 >> Так що тепер я буду йти вперед і працювати привіт. 1011 00:41:18,820 --> 00:41:22,300 Я, здається, нескінченний цикл, нічого не відбувається. 1012 00:41:25,530 --> 00:41:26,870 Так що мені потрібно щось типу тут, прямо. 1013 00:41:26,870 --> 00:41:29,650 Перший рядок коду в моїй програмі було GetString. 1014 00:41:29,650 --> 00:41:31,750 Так що буквально чекає мене, щоб отримати рядок. 1015 00:41:31,750 --> 00:41:33,680 Так що в цьому сенсі так, це нескінченний цикл. 1016 00:41:33,680 --> 00:41:36,520 Мабуть, в GetString за замовчуванням поведінку, яке ми 1017 00:41:36,520 --> 00:41:37,510 написав - персонал - 1018 00:41:37,510 --> 00:41:39,550 просто говорить, що чекати і чекати й чекати і чекати й чекати, 1019 00:41:39,550 --> 00:41:42,550 поки користувач не дає вам рядок, набравши щось дюйма 1020 00:41:42,550 --> 00:41:46,000 Отже, дозвольте мені йти вперед і типу D - V - I-й, Enter. 1021 00:41:46,000 --> 00:41:47,420 І ось він, привіт Давиду. 1022 00:41:47,420 --> 00:41:50,430 >> Тепер ця здається, що це просто акт? 1023 00:41:50,430 --> 00:41:52,810 Дозвольте мені піти далі і ввести Томмі. 1024 00:41:52,810 --> 00:41:54,740 Введіть, ладно, здається, працює. 1025 00:41:54,740 --> 00:41:59,130 Роботи для Роба, роботи по Zamyla, працює - добре. 1026 00:41:59,130 --> 00:42:01,000 Так що це буде працювати, швидше за все. 1027 00:42:01,000 --> 00:42:05,030 Так воно і повинно надрукувати все, що ми насправді дати, 1028 00:42:05,030 --> 00:42:07,830 і ми можемо бути трохи важко тут. 1029 00:42:07,830 --> 00:42:12,130 Давайте подивимося, якщо ми робимо щось подібне привіт. 1030 00:42:12,130 --> 00:42:18,000 Можете йти сюди, давайте подивимося, копіювати, вставляти. 1031 00:42:18,000 --> 00:42:19,950 Я не збираюся бути в змозі вставити, що багато разів тут. 1032 00:42:19,950 --> 00:42:24,410 Вставити в порядку, Shift + Ctrl + V. Так що ж може 1033 00:42:24,410 --> 00:42:26,970 статися, що це погано? 1034 00:42:26,970 --> 00:42:27,770 >> Добре, таким чином, сегментації. 1035 00:42:27,770 --> 00:42:29,710 Таким чином, деякі з вас з попереднього фон буде знати, що 1036 00:42:29,710 --> 00:42:32,710 як правило, даючи комп'ютерів багато входів, коли вони 1037 00:42:32,710 --> 00:42:36,140 ймовірно, не означало, щоб отримати довгі імена, як це - погано 1038 00:42:36,140 --> 00:42:36,740 речі. 1039 00:42:36,740 --> 00:42:39,230 Дійсно, у світі веб-теж, це відбудеться зовсім небагато, 1040 00:42:39,230 --> 00:42:41,000 яким при проектуванні веб-сайту, коли ви 1041 00:42:41,000 --> 00:42:43,850 Проектування Facebook, ви повинні зробити довільні рішення до 1042 00:42:43,850 --> 00:42:45,370 передні, наприклад, як довго буде чийсь 1043 00:42:45,370 --> 00:42:46,360 Facebook ім'я користувача може бути? 1044 00:42:46,360 --> 00:42:48,050 Або, як довго буде спочатку чиєсь ім'я може бути? 1045 00:42:48,050 --> 00:42:50,110 Як довго буде номер телефону когось бути і тому подібне. 1046 00:42:50,110 --> 00:42:53,580 І якщо програмісти роблять невірні припущення, програми зламати 1047 00:42:53,580 --> 00:42:56,640 тому що ви намагаєтеся дати їм більше продукції, більше вхідного 1048 00:42:56,640 --> 00:42:58,330 швидше, ніж вони мають пам'ять. 1049 00:42:58,330 --> 00:43:01,860 Або оперативної пам'яті, виділеної для нього, і тому, якщо зараз я вдарив Enter, 1050 00:43:01,860 --> 00:43:04,640 що програма насправді працює, тому що ми були в бібліотеці 1051 00:43:04,640 --> 00:43:06,790 і ми дійсно очікували даному конкретному випадку. 1052 00:43:06,790 --> 00:43:10,900 Але, безсумнівно, в цьому семестрі, ви будете писати принаймні один 1053 00:43:10,900 --> 00:43:13,280 програма, яка буде говорити ці слова. 1054 00:43:13,280 --> 00:43:16,520 Пам'ятайте про це тижнів з цього моменту, може бути, через два дні. 1055 00:43:16,520 --> 00:43:18,760 Помилка сегментації це погано. 1056 00:43:18,760 --> 00:43:21,920 Він буде ставитися до ваших робите щось, що комп'ютер 1057 00:43:21,920 --> 00:43:23,310 не очікував. 1058 00:43:23,310 --> 00:43:25,810 І в цьому випадку, ви, програміст, не очікував. 1059 00:43:25,810 --> 00:43:27,720 Багато чого сподобалося те, що цю купу шкарпеток, існують різні 1060 00:43:27,720 --> 00:43:29,520 кутом випадках ми могли б зіткнутися. 1061 00:43:29,520 --> 00:43:32,340 Точно так само в програмах, якщо ви не передбачати, як довго 1062 00:43:32,340 --> 00:43:33,310 чиєсь ім'я буде. 1063 00:43:33,310 --> 00:43:35,890 Або що, якщо у мене є зловмисник, і його або її ім'я 1064 00:43:35,890 --> 00:43:37,230 насправді досить короткий, але вони просто намагаються 1065 00:43:37,230 --> 00:43:37,960 зв'язуватися зі мною? 1066 00:43:37,960 --> 00:43:40,490 Що буде в поведінці моєї програми? 1067 00:43:40,490 --> 00:43:43,930 Ну, в такому разі, щось може насправді збій. 1068 00:43:43,930 --> 00:43:44,750 >> Так давайте зробимо це. 1069 00:43:44,750 --> 00:43:46,860 У 90 хвилин, це жахливо довго 1070 00:43:46,860 --> 00:43:47,780 зробити інформатику. 1071 00:43:47,780 --> 00:43:49,550 Чому б нам не стати звичкою п'ять хвилин 1072 00:43:49,550 --> 00:43:51,520 розбити тут, і коли ми повернемося, ми будемо занурюватися в деяких 1073 00:43:51,520 --> 00:43:53,430 більш складні і переконливі програми? 1074 00:43:53,430 --> 00:43:54,680 П'ять хвилин. 1075 00:43:56,910 --> 00:43:58,160 >> Добре. 1076 00:44:01,138 --> 00:44:02,780 Таким чином, один швидкий коментар. 1077 00:44:02,780 --> 00:44:05,590 Мені сказали, що, хоча це було на екрані раніше, що 1078 00:44:05,590 --> 00:44:08,880 вийшло з моїх вуст було cs50.net/rsvp. 1079 00:44:08,880 --> 00:44:11,670 Це правильно. cs50.net/lunch. 1080 00:44:11,670 --> 00:44:16,030 Отже, тепер ви можете спробувати RSVPing для цього в / обід. 1081 00:44:16,030 --> 00:44:16,980 Але давайте зробимо це зараз. 1082 00:44:16,980 --> 00:44:20,150 Так це було супер швидкий, супер новий для великої кількості людей. 1083 00:44:20,150 --> 00:44:21,560 Старі капелюхи для деяких людей. 1084 00:44:21,560 --> 00:44:24,930 Так що давайте перемотати на мить, і подивитися, як ми дісталися до 1085 00:44:24,930 --> 00:44:29,350 це привіт світового виробництва мить назад. 1086 00:44:29,350 --> 00:44:31,780 >> Отже, по-перше, є такий CS50 Appliance. 1087 00:44:31,780 --> 00:44:34,270 Знову ж таки, частина програмного забезпечення, завдання встановити 1 розповість 1088 00:44:34,270 --> 00:44:36,610 Вам, як завантажити його, де його скачати, то натиснути 1089 00:44:36,610 --> 00:44:37,430 і так далі. 1090 00:44:37,430 --> 00:44:39,670 І ось одного разу ви будете слідувати цим інструкціям, ви зможете 1091 00:44:39,670 --> 00:44:42,840 щоб збільшити ваші вікна, і ваш Mac або PC буде виглядати 1092 00:44:42,840 --> 00:44:43,910 мало щось на зразок цього. 1093 00:44:43,910 --> 00:44:47,170 Чорний фон, домашньої теки на вершині, де всі 1094 00:44:47,170 --> 00:44:49,850 Ваші файли йдуть, сміттєвий бак в лівому верхньому кутку, 1095 00:44:49,850 --> 00:44:51,130 меню в нижній частині. 1096 00:44:51,130 --> 00:44:54,010 Отже, ще раз, дуже схожі по духу Mac OS або Windows, 1097 00:44:54,010 --> 00:44:56,040 навіть якщо воно відбудеться, буде Linux. 1098 00:44:56,040 --> 00:44:58,120 Отже, що ж ми наступного разу робити? 1099 00:44:58,120 --> 00:44:59,580 Ну, ми почали писати програми. 1100 00:44:59,580 --> 00:45:02,260 І пам'ятаєте з минулого тижня, що все, що потрібно написати 1101 00:45:02,260 --> 00:45:04,970 Програма являє собою простий текстовий редактор, 1102 00:45:04,970 --> 00:45:06,550 як Блокнот або TextEdit. 1103 00:45:06,550 --> 00:45:08,360 Чесно кажучи, ви навіть можете використовувати Microsoft Word. 1104 00:45:08,360 --> 00:45:11,170 Але погано, врешті-решт відбудеться, тому що це дуже 1105 00:45:11,170 --> 00:45:13,930 жорсткі рішення для написання програми, а також він буде 1106 00:45:13,930 --> 00:45:15,400 зберегти його в неправильному форматі. 1107 00:45:15,400 --> 00:45:18,150 Але це просто текстовий редактор, текстовий процесор, це все, що 1108 00:45:18,150 --> 00:45:19,390 потрібно написати програму. 1109 00:45:19,390 --> 00:45:23,420 >> Таким чином, в CS50 Appliance, ми можемо зробити це в один простий спосіб. 1110 00:45:23,420 --> 00:45:25,580 Ми можемо просто натиснути на цей значок у лівому нижньому куті. 1111 00:45:25,580 --> 00:45:28,790 І знову ж таки, проблема встановити 1 проконсультують Вас про це, і вуаля - 1112 00:45:28,790 --> 00:45:31,210 Ви отримуєте цю чорно-білий інтерфейс, де ми можемо почати 1113 00:45:31,210 --> 00:45:32,160 написання коду. 1114 00:45:32,160 --> 00:45:34,960 Отже, давайте почнемо писати супер просто програму ще раз. 1115 00:45:34,960 --> 00:45:38,890 Я збираюся йти до файлу, зберегти, і я збираюся подзвонити 1116 00:45:38,890 --> 00:45:42,870 це, скажімо так, hello2.c. 1117 00:45:42,870 --> 00:45:45,410 І я просто кажу, натиснувши на jharvard, поклав його 1118 00:45:45,410 --> 00:45:46,750 У своїй домашній директорії, я дійсно не дбаю 1119 00:45:46,750 --> 00:45:47,980 де це не йде. 1120 00:45:47,980 --> 00:45:49,090 А потім Зберегти. 1121 00:45:49,090 --> 00:45:50,880 І тепер я можу почати писати мою програму. 1122 00:45:50,880 --> 00:45:53,560 І я пам'ятаю з раніше, що я повинен написати Int 1123 00:45:53,560 --> 00:45:55,400 основних (недійсними). 1124 00:45:55,400 --> 00:45:57,000 Збільшити на верхньому лівому кутку. 1125 00:45:57,000 --> 00:46:02,670 А потім я хочу сказати, Printf, візьміть два. 1126 00:46:02,670 --> 00:46:05,690 А тепер рядки, близькі цитата, закрийте 1127 00:46:05,690 --> 00:46:07,820 дужки, крапка з комою. 1128 00:46:07,820 --> 00:46:10,560 І тоді я йду сюди, щоб мої вікна терміналу, що це 1129 00:46:10,560 --> 00:46:12,840 вбудований в Gedit, просто для зручності. 1130 00:46:12,840 --> 00:46:15,200 І я збираюся піти далі і написати Привіт зробити, але не 1131 00:46:15,200 --> 00:46:17,500 Привіт одна, hello2. 1132 00:46:17,500 --> 00:46:20,490 >> Так що мій файл називається hello2.c. Мій файл тому 1133 00:46:20,490 --> 00:46:23,510 слід назвати hello2, в даному випадку. 1134 00:46:23,510 --> 00:46:26,490 Чорт візьми, що ж я зробив не так? 1135 00:46:26,490 --> 00:46:29,490 Гаразд, я чітко опущені рядки, якщо згадати, що 1136 00:46:29,490 --> 00:46:31,020 попередніх програм виглядати. 1137 00:46:31,020 --> 00:46:32,480 Але давайте подивимося, якщо ми не можемо дражнити цього один від одного. 1138 00:46:32,480 --> 00:46:35,310 На жаль, більшість людей, які пишуть програми, з якою 1139 00:46:35,310 --> 00:46:38,820 ми пишемо програми не спростити все, що добре. 1140 00:46:38,820 --> 00:46:41,520 Тому ми повинні виду знежиреного за те, що не зовсім зробити 1141 00:46:41,520 --> 00:46:44,050 сенс тут і подивитися, якщо ми можемо з'ясувати, що трапилося. 1142 00:46:44,050 --> 00:46:46,700 Найперша рядок там говориться неявно оголосити C 1143 00:46:46,700 --> 00:46:49,310 бібліотечні функції Printf з типом Int. 1144 00:46:49,310 --> 00:46:51,210 Добре, я зрозумів частиною цього. 1145 00:46:51,210 --> 00:46:54,570 Але це, здається, натякає на те, що я використовував Printf 1146 00:46:54,570 --> 00:46:55,700 так, якось. 1147 00:46:55,700 --> 00:46:56,930 А який сенс це неправильно? 1148 00:46:56,930 --> 00:46:59,970 Я просто не навчить комп'ютер, на якому він знаходиться у файлі 1149 00:46:59,970 --> 00:47:01,420 називається stdio.h. 1150 00:47:01,420 --> 00:47:04,120 Тепер у мене є тільки просто запам'ятати, що тепер це Printf 1151 00:47:04,120 --> 00:47:06,540 У stdio.h, та й там буде інший 1152 00:47:06,540 --> 00:47:08,900 функцій в тому ж файлі, що ми будемо звикати. 1153 00:47:08,900 --> 00:47:12,490 >> Так що тепер дозвольте мені йти вперед і вдарив Ctrl-L просто зрозуміти, що 1154 00:47:12,490 --> 00:47:16,050 далеко, щоб повторні hello2, і вуаля. 1155 00:47:16,050 --> 00:47:19,490 І цю команду ще раз, більш складні, ніж ми будемо пояснювати, для 1156 00:47:19,490 --> 00:47:20,520 сьогоднішні цілі. 1157 00:47:20,520 --> 00:47:23,570 Але це запустити брязкіт і дзвін бере вихідний код і 1158 00:47:23,570 --> 00:47:24,870 випльовує 0 і 1. 1159 00:47:24,870 --> 00:47:28,610 А ті, 0 і 1 в цьому випадку називаються що? 1160 00:47:28,610 --> 00:47:29,470 Добре, об'єктний код. 1161 00:47:29,470 --> 00:47:32,210 І файл, який вони у ще називають, так, 1162 00:47:32,210 --> 00:47:33,820 hello2, в даному випадку. 1163 00:47:33,820 --> 00:47:37,040 Тому що мій текстовий файл був hello2.c, Enter. 1164 00:47:37,040 --> 00:47:39,820 А тепер я взяти два знак оклику, знак 1165 00:47:39,820 --> 00:47:41,880 точка, знак оклику. 1166 00:47:41,880 --> 00:47:45,430 Гаразд, ми зараз маємо можливість отримати рядки, 1167 00:47:45,430 --> 00:47:46,280 по-видимому. 1168 00:47:46,280 --> 00:47:48,190 Ну, що ще ми можемо отримати від користувачів? 1169 00:47:48,190 --> 00:47:51,010 >> Ну, в CS50 бібліотеки, є і інші функції, 1170 00:47:51,010 --> 00:47:53,300 збираються спростити наше життя в ці перші кілька днів. 1171 00:47:53,300 --> 00:47:56,350 GetChar, GetDouble, GetFloat, GetInt, 1172 00:47:56,350 --> 00:47:57,290 GetLongLong, GetString. 1173 00:47:57,290 --> 00:47:59,550 Ну, давайте обривати найпростіший з них в першу чергу. 1174 00:47:59,550 --> 00:48:01,430 GetString буквально робить це. 1175 00:48:01,430 --> 00:48:04,210 Він просто сидить там, чекаючи, коли користувач введе небудь, 1176 00:48:04,210 --> 00:48:07,170 і як тільки я набираю щось в і натисніть Enter, це 1177 00:48:07,170 --> 00:48:08,860 робить щось з цим значенням. 1178 00:48:08,860 --> 00:48:11,700 Так що давайте повернемося до цього прикладу, щоб побачити саме те, що 1179 00:48:11,700 --> 00:48:12,950 GetString робив. 1180 00:48:12,950 --> 00:48:17,445 Дозвольте мені йти вперед і відкривати в Gedit, hello.c, і згадати 1181 00:48:17,445 --> 00:48:20,590 це право до перерви, це те, де ми зупинилися. 1182 00:48:20,590 --> 00:48:23,240 >> Отже, давайте тепер дражнять один від одного в цьому трохи докладніше. 1183 00:48:23,240 --> 00:48:27,190 Таким чином, у рядку 6, є дві речі, 1184 00:48:27,190 --> 00:48:28,450 відбувається в даний момент. 1185 00:48:28,450 --> 00:48:32,630 Знак рівності відділення першої половини і другої половини. 1186 00:48:32,630 --> 00:48:34,670 Таким чином, на лівій стороні знаку рівності, ми 1187 00:48:34,670 --> 00:48:35,580 говорять рядки з. 1188 00:48:35,580 --> 00:48:37,580 А потім, умови просто непрофесіонала, що рядок з 1189 00:48:37,580 --> 00:48:41,040 робити, як ви думаєте? 1190 00:48:41,040 --> 00:48:42,990 Це створює Що? 1191 00:48:42,990 --> 00:48:44,930 Таким чином, це створення рядка називається с. 1192 00:48:44,930 --> 00:48:46,370 Тепер те, що це дійсно означає? 1193 00:48:46,370 --> 00:48:51,540 Ну, це резервування місця для рядка називається с. 1194 00:48:51,540 --> 00:48:52,490 Це не зовсім вірно. 1195 00:48:52,490 --> 00:48:53,120 Що це робиш? 1196 00:48:53,120 --> 00:48:55,400 Ну комп'ютерів, як ви знаєте, у жорстких дисків, що, де 1197 00:48:55,400 --> 00:48:56,300 Ваші файли зберігаються. 1198 00:48:56,300 --> 00:48:59,100 Комп'ютери мають RAM, а от де програми завантажуються 1199 00:48:59,100 --> 00:49:00,240 в той час як вони працюють. 1200 00:49:00,240 --> 00:49:02,470 Отже, коли ви двічі клацніть значок і Microsoft Word відкриває 1201 00:49:02,470 --> 00:49:06,380 вгору, Microsoft Word працює, так би мовити, в оперативній пам'яті, яка є 1202 00:49:06,380 --> 00:49:08,160 Електронна частина вашого комп'ютера. 1203 00:49:08,160 --> 00:49:10,660 Не фізичну, механічну частину, яка обертається, де 1204 00:49:10,660 --> 00:49:12,640 Дані зазвичай зберігаються в довгостроковій перспективі. 1205 00:49:12,640 --> 00:49:15,810 Так рядок з досить багато говорить комп'ютера, дайте мені 1206 00:49:15,810 --> 00:49:18,150 достатньо оперативної пам'яті, щоб відповідати рядку. 1207 00:49:18,150 --> 00:49:20,450 Тепер це трохи спрощено, тому що 1208 00:49:20,450 --> 00:49:22,300 Наскільки велика рядок буде? 1209 00:49:22,300 --> 00:49:24,410 Ну, ми насправді ще не знаю, так що в найближчі тижні 1210 00:49:24,410 --> 00:49:27,290 ми насправді відступити шар, який є рядком і 1211 00:49:27,290 --> 00:49:28,510 Ми вам скажу, що це дійсно так. 1212 00:49:28,510 --> 00:49:31,050 String, на даний момент, це просто хороша спрощення нашого світу. 1213 00:49:31,050 --> 00:49:35,700 Але рядок з заявляє рядок називається с, на даний момент. 1214 00:49:35,700 --> 00:49:36,520 Оголошує рядок. 1215 00:49:36,520 --> 00:49:39,310 Це залишає деякий простір в оперативній пам'яті для рядка користувач 1216 00:49:39,310 --> 00:49:40,150 Про друкувати. 1217 00:49:40,150 --> 00:49:41,840 >> Тепер давайте подивимося на право знак рівності. 1218 00:49:41,840 --> 00:49:44,110 Так він говорить GetString (). 1219 00:49:44,110 --> 00:49:45,070 І трохи розсудливості перевірити. 1220 00:49:45,070 --> 00:49:47,940 Справа в тому, що немає нічого всередині дужок 1221 00:49:47,940 --> 00:49:50,810 випливає, що про GetString? 1222 00:49:50,810 --> 00:49:52,180 Він не приймає аргументів. 1223 00:49:52,180 --> 00:49:55,290 Тобто, ви не можете впливати на його поведінку в будь-якому випадку. 1224 00:49:55,290 --> 00:49:58,940 Кожен раз, коли ви використовуєте його, він буде отримувати рядок, ось і все. 1225 00:49:58,940 --> 00:50:02,210 На відміну від Printf, сподіваюся, його поведінка робить 1226 00:50:02,210 --> 00:50:03,010 змінити в будь-який час. 1227 00:50:03,010 --> 00:50:05,230 В іншому випадку, це досить даремна функція друку, якщо 1228 00:50:05,230 --> 00:50:06,480 він робить те ж саме. 1229 00:50:06,480 --> 00:50:07,970 Якщо вона завжди друкує Девіда або щось 1230 00:50:07,970 --> 00:50:09,500 довільного весь час. 1231 00:50:09,500 --> 00:50:11,540 Так Printf має сенс мати аргумент. 1232 00:50:11,540 --> 00:50:14,240 GetString насправді не потрібні аргументи, тому що я хотів 1233 00:50:14,240 --> 00:50:16,700 , Щоб отримати рядок від користувача, і це користувач, який збирається 1234 00:50:16,700 --> 00:50:19,580 на поставку динамізм, набравши в різних букв 1235 00:50:19,580 --> 00:50:20,850 кожен раз на клавіатурі. 1236 00:50:20,850 --> 00:50:23,140 >> Отже, що ж робити в кінцевому рахунку GetString? 1237 00:50:23,140 --> 00:50:25,080 Думайте про це як ця маленька чорна коробка. 1238 00:50:25,080 --> 00:50:29,340 І це чорний ящик не приймає ввід, але коли ви вибуху на 1239 00:50:29,340 --> 00:50:33,240 , Вона випльовує рядок, користувач ввів дюйма 1240 00:50:33,240 --> 00:50:36,660 А те, що там є знак рівності означає прийняти 1241 00:50:36,660 --> 00:50:39,890 що плювати на права і зберігати його всередині 1242 00:50:39,890 --> 00:50:41,390 Що зліва. 1243 00:50:41,390 --> 00:50:43,470 Таким чином, знак рівності тут, насправді зовсім не означає, 1244 00:50:43,470 --> 00:50:46,490 рівність, а технічно означає призначення. 1245 00:50:46,490 --> 00:50:49,330 Візьмемо значення праворуч, і поклав його в 1246 00:50:49,330 --> 00:50:51,050 змінну зліва. 1247 00:50:51,050 --> 00:50:52,820 Так що все, що там відбувається. 1248 00:50:52,820 --> 00:50:55,640 >> Зараз у рядку 7, ми викликаємо Printf. 1249 00:50:55,640 --> 00:50:58,170 Так Printf сподіваюся, стає трохи нудно в даний час. 1250 00:50:58,170 --> 00:50:59,530 Таким чином, друк отформатированную рядок. 1251 00:50:59,530 --> 00:51:00,440 Що рядок? 1252 00:51:00,440 --> 00:51:05,460 Роздрукуйте, "ч-е-л-л-о, и% 1253 00:51:05,460 --> 00:51:07,840 ! \ П ". 1254 00:51:07,840 --> 00:51:10,470 Гаразд, так що я хочу, щоб плагін для% S? 1255 00:51:10,470 --> 00:51:12,960 Буквально все, що зберігається в с. 1256 00:51:12,960 --> 00:51:15,570 Таким чином, в цьому випадку, мало перевірку осудності, скільки аргументів робить 1257 00:51:15,570 --> 00:51:16,820 Printf взяти? 1258 00:51:19,860 --> 00:51:21,110 Гаразд, я чув, як один. 1259 00:51:23,840 --> 00:51:26,330 Я чув, як один раз. 1260 00:51:26,330 --> 00:51:27,730 Два, я почув два. 1261 00:51:27,730 --> 00:51:29,920 А як щодо трьох? 1262 00:51:29,920 --> 00:51:30,450 Гаразд, три? 1263 00:51:30,450 --> 00:51:30,930 Відмінно. 1264 00:51:30,930 --> 00:51:33,170 Три варіанти відповіді, тільки один з них правильний. 1265 00:51:33,170 --> 00:51:36,390 Таким чином, аргументи знову впливати на поведінку функції. 1266 00:51:36,390 --> 00:51:39,380 У минулому Printf ж приймають тільки один аргумент. 1267 00:51:39,380 --> 00:51:42,260 "Привіт світ" був єдиний аргумент. 1268 00:51:42,260 --> 00:51:45,190 Однак, тепер, зверніть увагу, де ця кома. 1269 00:51:45,190 --> 00:51:49,600 Це коми перебуває за межами цитати / кінець цитати, що означає, 1270 00:51:49,600 --> 00:51:52,170 агов Printf, ось другий аргумент. 1271 00:51:52,170 --> 00:51:54,240 >> Так що коми у більшості мов програмування 1272 00:51:54,240 --> 00:51:57,300 окрема кілька аргументів. 1273 00:51:57,300 --> 00:51:59,600 Таким чином, відповідь тут, безумовно, не один, тому що 1274 00:51:59,600 --> 00:52:00,390 Тобто ця кома. 1275 00:52:00,390 --> 00:52:03,680 Таким чином, мінімально, Printf мабуть приймаючи два 1276 00:52:03,680 --> 00:52:04,940 Аргументи на цей раз. 1277 00:52:04,940 --> 00:52:07,050 Але можливості для каверзне запитання тут є те, що 1278 00:52:07,050 --> 00:52:07,990 про це комою? 1279 00:52:07,990 --> 00:52:11,260 Чи означає це, що там насправді три аргументи? 1280 00:52:11,260 --> 00:52:13,820 Це, це і це. 1281 00:52:13,820 --> 00:52:18,820 Так що ні, тому що кома знаходиться всередині лапок, які 1282 00:52:18,820 --> 00:52:20,890 означає, що це дійсно тільки естетичне англійської мови. 1283 00:52:20,890 --> 00:52:23,180 Це не має нічого спільного з числом 1284 00:52:23,180 --> 00:52:24,890 Аргументи в цій програмі. 1285 00:52:24,890 --> 00:52:27,670 Так що це кома знаходиться за межами подвійні лапки. 1286 00:52:27,670 --> 00:52:28,850 А потім повертати 0. 1287 00:52:28,850 --> 00:52:30,980 А зараз давайте просто як би взяти цей на віру 1288 00:52:30,980 --> 00:52:34,460 сьогодні, і точно знаю, що, коли функції виконуються виконання 1289 00:52:34,460 --> 00:52:37,950 рядків коду, вони повинні зазвичай повертають деяке значення. 1290 00:52:37,950 --> 00:52:42,010 У цьому випадку, просто тому, що основна повинні повернутися INT, 1291 00:52:42,010 --> 00:52:44,320 що просто так на мові C працює. 1292 00:52:44,320 --> 00:52:47,040 >> Таким чином, тому що нічого не пішло не так, як відчуває себе цієї програми 1293 00:52:47,040 --> 00:52:49,960 добре, я просто жорстко у відповідь 0. 1294 00:52:49,960 --> 00:52:52,980 Але, на відміну, і я збираюся написати це в псевдокоді 1295 00:52:52,980 --> 00:52:55,020 Тепер, як і Йосип, коли ми робили носок 1296 00:52:55,020 --> 00:52:56,220 Наприклад минулого тижня. 1297 00:52:56,220 --> 00:53:00,440 Якщо щось пішло не так - це не реальний код - пішов 1298 00:53:00,440 --> 00:53:06,570 неправильно, а потім повернутися, скажімо, 1. 1299 00:53:06,570 --> 00:53:08,770 Решта повертається 0. 1300 00:53:08,770 --> 00:53:10,070 Так ось де ми збираємося з цим. 1301 00:53:10,070 --> 00:53:12,090 Це не реальний код C, просто псевдокод. 1302 00:53:12,090 --> 00:53:14,010 Але це, як ви могли б повернутися 1303 00:53:14,010 --> 00:53:15,580 різні можливі значення. 1304 00:53:15,580 --> 00:53:19,520 Але зараз я просто збираюся йти вперед і повертати 0. 1305 00:53:19,520 --> 00:53:24,410 Гаразд, будь-які питання досі на синтаксис, функціональність, 1306 00:53:24,410 --> 00:53:25,000 і т.п.? 1307 00:53:25,000 --> 00:53:26,280 Так, в спину. 1308 00:53:26,280 --> 00:53:27,530 >> АУДИТОРІЯ: [нерозбірливо] 1309 00:53:30,510 --> 00:53:32,210 DAVID Малан: Чи можете ви говорити голосніше? 1310 00:53:32,210 --> 00:53:34,325 Чому це 0 програми повернення, а? 1311 00:53:34,325 --> 00:53:35,575 АУДИТОРІЯ: [нерозбірливо] 1312 00:53:39,910 --> 00:53:43,450 DAVID Малан: О, це тому, що я лінивий, вибачте. 1313 00:53:43,450 --> 00:53:48,290 Немає хорошої академічної відповідь, повертається 0. 1314 00:53:48,290 --> 00:53:52,690 Я можу врятувати вид цього, кажучи технічно C, якщо основний 1315 00:53:52,690 --> 00:53:55,900 явно не повертає значення, то буде повернуто 0 1316 00:53:55,900 --> 00:53:57,730 автоматично. 1317 00:53:57,730 --> 00:54:00,290 Що правда, я говорю не тільки прикриття. 1318 00:54:00,290 --> 00:54:03,270 Але, я повинен був зробити це таким чином. 1319 00:54:03,270 --> 00:54:05,250 Ні цікавий винос, ніж інші, ніж моя помилка. 1320 00:54:05,250 --> 00:54:06,170 Так? 1321 00:54:06,170 --> 00:54:08,470 >> АУДИТОРІЯ: Зазвичай, коли ви вводите в порожнечу, це означає, що ви 1322 00:54:08,470 --> 00:54:10,770 Не повернути щось. 1323 00:54:10,770 --> 00:54:11,420 DAVID Малан: Правильно. 1324 00:54:11,420 --> 00:54:15,800 Якщо замість цього ви вказати перед ім'ям функції, для 1325 00:54:15,800 --> 00:54:18,590 Наприклад тут, порожнеча, то функція 1326 00:54:18,590 --> 00:54:20,480 нічого не повертає. 1327 00:54:20,480 --> 00:54:25,210 І тому я хотів би просто сказати, повернення або взагалі нічого, 1328 00:54:25,210 --> 00:54:26,730 і що буде відповідати. 1329 00:54:26,730 --> 00:54:27,750 І ми ще повернемося до цього. 1330 00:54:27,750 --> 00:54:31,030 І тільки FYI, одна з уловів з навчанням 1331 00:54:31,030 --> 00:54:33,450 програмування в світі, який має сотні книг і 1332 00:54:33,450 --> 00:54:36,180 сотні сайтів, то там ви неодмінно 1333 00:54:36,180 --> 00:54:38,220 см. інший синтаксис в різних книгах 1334 00:54:38,220 --> 00:54:40,220 різними людьми. 1335 00:54:40,220 --> 00:54:42,100 Зрозумійте, ми зробимо все можливе в розділах і лекції, щоб бути 1336 00:54:42,100 --> 00:54:42,960 послідовна. 1337 00:54:42,960 --> 00:54:46,660 Але іноді ви побачите суперечливі синтаксису. 1338 00:54:46,660 --> 00:54:48,540 Тому, коли ви сумніваєтеся, просто запитайте. 1339 00:54:48,540 --> 00:54:51,100 І взагалі, ми подбаємо в лекціях і розділів 1340 00:54:51,100 --> 00:54:53,710 Майже завжди представити його в правильному напрямку. 1341 00:54:53,710 --> 00:54:56,070 І я кажу майже завжди, тому що випадок. 1342 00:54:56,070 --> 00:54:56,860 Інші питання? 1343 00:54:56,860 --> 00:55:01,590 >> АУДИТОРІЯ: Чи% з існуючих поза приладу? 1344 00:55:01,590 --> 00:55:03,710 DAVID Малан: Чи% S існує поза приладу? 1345 00:55:03,710 --> 00:55:04,180 Так. 1346 00:55:04,180 --> 00:55:07,760 Таким% S має відношення до С. Той факт, що ми використовуємо його в 1347 00:55:07,760 --> 00:55:10,290 Прилад принципово не має нічого спільного з 1348 00:55:10,290 --> 00:55:12,080 особливості мови ми використовуємо. 1349 00:55:12,080 --> 00:55:15,990 Дійсно, минулого тижня, коли ми використовували мій Mac, я написав 1350 00:55:15,990 --> 00:55:17,160 C код на свій Mac. 1351 00:55:17,160 --> 00:55:20,020 Я міг би використовувати% на моїй Mac, і ви можете використовувати його на 1352 00:55:20,020 --> 00:55:22,400 Ваш Windows комп'ютер, якщо ви встановите компілятор, як 1353 00:55:22,400 --> 00:55:24,070 Visual Studio від Microsoft. 1354 00:55:24,070 --> 00:55:24,990 Таким% с. 1355 00:55:24,990 --> 00:55:27,860 Все, що ми робимо всередині цього вікна сьогодні повинен 1356 00:55:27,860 --> 00:55:31,140 робити з С. І принципово нічого спільного з 1357 00:55:31,140 --> 00:55:33,450 операційна система в питанні. 1358 00:55:33,450 --> 00:55:35,900 На відміну від чорно-білого вікна терміналу - при 1359 00:55:35,900 --> 00:55:40,160 Я друкую речі, як Л.С., RM, і CD - 1360 00:55:40,160 --> 00:55:42,020 , Що має справу з операційною системою і 1361 00:55:42,020 --> 00:55:43,562 навігації навколо. 1362 00:55:43,562 --> 00:55:44,546 Так. 1363 00:55:44,546 --> 00:55:46,520 АУДИТОРІЯ: Я мав на увазі бібліотеки, CS50 бібліотеки. 1364 00:55:46,520 --> 00:55:49,960 DAVID Малан: Отже, якщо ви маєте на увазі ключове слово рядка, що 1365 00:55:49,960 --> 00:55:52,460 існує тільки в CS50 бібліотеці, правильно. 1366 00:55:52,460 --> 00:55:55,350 Це не існують в C самого, та й у парі 1367 00:55:55,350 --> 00:55:58,220 тижнів ми будемо викидати CS50 бібліотеку і почати 1368 00:55:58,220 --> 00:56:02,290 робити речі з нуля себе, так би мовити. 1369 00:56:02,290 --> 00:56:02,940 Інші питання? 1370 00:56:02,940 --> 00:56:04,577 Так. 1371 00:56:04,577 --> 00:56:05,827 >> АУДИТОРІЯ: [нерозбірливо] 1372 00:56:09,470 --> 00:56:10,160 DAVID Малан: Хороше питання. 1373 00:56:10,160 --> 00:56:11,720 Є команди чутливі до регістру? 1374 00:56:11,720 --> 00:56:13,710 І дозвольте мені зробити відмінність тут. 1375 00:56:13,710 --> 00:56:15,840 Таким чином, команди, як правило, те, що ми напишемо на 1376 00:56:15,840 --> 00:56:17,940 в нижній частині вікна, у вікні терміналу. 1377 00:56:17,940 --> 00:56:21,770 Все, що тут було б заяви або C код. 1378 00:56:21,770 --> 00:56:24,490 Але в обох випадках, відповідь буде той же, да. 1379 00:56:24,490 --> 00:56:27,800 Обидва цих середовищах, код C у верхній і 1380 00:56:27,800 --> 00:56:29,910 робочої рядку командної системи в 1381 00:56:29,910 --> 00:56:31,440 знизу, з урахуванням регістра. 1382 00:56:31,440 --> 00:56:33,830 Так що ви повинні скористатися GetString з капіталом G, 1383 00:56:33,830 --> 00:56:37,050 капітал С. Ви повинні написати Printf в нижньому регістрі. 1384 00:56:37,050 --> 00:56:39,520 Необхідно ввести Ls в нижньому регістрі. 1385 00:56:39,520 --> 00:56:43,260 Таким чином, майже в кожній ситуації у цьому семестрі, справа буде, в 1386 00:56:43,260 --> 00:56:44,820 Дійсно, питання. 1387 00:56:44,820 --> 00:56:46,148 Так. 1388 00:56:46,148 --> 00:56:47,398 >> АУДИТОРІЯ: [нерозбірливо] 1389 00:56:54,770 --> 00:56:56,480 DAVID Малан: Ах, так добре, що якби ми мали файлів 1390 00:56:56,480 --> 00:56:57,840 називається hello.d. 1391 00:56:57,840 --> 00:57:00,090 Ось і виходить, D є мовою програмування. 1392 00:57:00,090 --> 00:57:02,790 І тому в деяких випадках, ми могли б насправді написати програму, в 1393 00:57:02,790 --> 00:57:06,190 цей файл і він складений саме таким чином. 1394 00:57:06,190 --> 00:57:09,090 Ми, може, і насправді, коротка відповідь, я не знаю. 1395 00:57:09,090 --> 00:57:10,440 Так що ми збираємося зробити це. 1396 00:57:10,440 --> 00:57:13,040 Дозвольте мені піти далі і створити новий файл. 1397 00:57:13,040 --> 00:57:15,580 І спина тут, чесно кажучи загалом, всякий раз, коли будь-який сумнів 1398 00:57:15,580 --> 00:57:18,130 в цьому семестрі, і у вас є пристрій або комп'ютер 1399 00:57:18,130 --> 00:57:20,030 відкрити, йти вперед і спробувати щось. 1400 00:57:20,030 --> 00:57:23,740 Так що я збираюся зберегти файл під назвою hello.d. 1401 00:57:23,740 --> 00:57:25,010 Збережіть це. 1402 00:57:25,010 --> 00:57:29,070 І я збираюся запустити зробити привіт Enter. 1403 00:57:29,070 --> 00:57:31,660 Здавалося зробити висновок, що з більш імовірно, 1404 00:57:31,660 --> 00:57:35,920 ніж г, в даному випадку. 1405 00:57:35,920 --> 00:57:38,046 Інші питання. 1406 00:57:38,046 --> 00:57:40,456 Так. 1407 00:57:40,456 --> 00:57:41,706 >> АУДИТОРІЯ: [нерозбірливо] 1408 00:57:48,170 --> 00:57:49,837 DAVID Малан: Добре, кажуть, що ще раз. 1409 00:57:49,837 --> 00:57:51,087 АУДИТОРІЯ: [нерозбірливо] 1410 00:58:04,250 --> 00:58:05,780 DAVID Малан: Як би ви йдете з приводу діагностики того або 1411 00:58:05,780 --> 00:58:06,380 усунення неполадок це? 1412 00:58:06,380 --> 00:58:08,800 Так що, швидше за все, тому, що вони на різних мовах, 1413 00:58:08,800 --> 00:58:10,280 Швидше за все, ви отримаєте повністю 1414 00:58:10,280 --> 00:58:11,580 різні програми виводиться. 1415 00:58:11,580 --> 00:58:14,140 Ви отримаєте зовсім різні повідомлення про помилки. 1416 00:58:14,140 --> 00:58:16,750 А також тільки з точки зору дизайну, це було б, можливо, бути 1417 00:58:16,750 --> 00:58:19,140 Погано дизайнерське рішення для написання двох різних 1418 00:58:19,140 --> 00:58:21,510 Мови з майже однаковими іменами файлів, в 1419 00:58:21,510 --> 00:58:23,000 точно такий же каталог, використовуючи 1420 00:58:23,000 --> 00:58:24,550 автоматичний інструмент, як зробити. 1421 00:58:24,550 --> 00:58:27,750 Так що я можу натиснути назад і сказати: в 15 років зробити це, 1422 00:58:27,750 --> 00:58:29,190 ніколи не робив цю помилку. 1423 00:58:29,190 --> 00:58:30,030 Може статися. 1424 00:58:30,030 --> 00:58:31,190 Але там просто різні, я думаю, 1425 00:58:31,190 --> 00:58:33,180 матеріально-технічне оборону на місці. 1426 00:58:33,180 --> 00:58:35,440 Плюс повідомлення про помилку, яке настане, що б 1427 00:58:35,440 --> 00:58:37,260 в кінцевому підсумку виявити, в чому проблема. 1428 00:58:37,260 --> 00:58:39,120 Але можливий випадок кутку. 1429 00:58:39,120 --> 00:58:41,730 >> Гаразд, давайте введемо всього пару інших 1430 00:58:41,730 --> 00:58:45,600 особливості тут, так що ми можемо почати будувати на більшу 1431 00:58:45,600 --> 00:58:47,140 і більш складні програми. 1432 00:58:47,140 --> 00:58:49,000 Отже, насамперед, математики. 1433 00:58:49,000 --> 00:58:51,520 Таким чином, математика приклади тільки вид легкої в перший тиждень. 1434 00:58:51,520 --> 00:58:53,560 Це не означає, що всі програми становить близько 1435 00:58:53,560 --> 00:58:54,390 математика. 1436 00:58:54,390 --> 00:58:57,890 Звичайно, розуміння різних функцій 1437 00:58:57,890 --> 00:58:59,610 математика, алгебра, зокрема, 1438 00:58:59,610 --> 00:59:00,330 вельми актуальна тут. 1439 00:59:00,330 --> 00:59:03,010 У більш високому рівні CS класи, лінійна алгебра, 1440 00:59:03,010 --> 00:59:03,920 Обчислення тощо. 1441 00:59:03,920 --> 00:59:06,500 Але зрозумійте, більшість того, що ми будемо робити в цьому семестрі не знижує 1442 00:59:06,500 --> 00:59:09,230 до математики, і, звичайно, не в арифметиці, саме по собі, але насправді 1443 00:59:09,230 --> 00:59:11,570 просто логіки і ретельного мислення. 1444 00:59:11,570 --> 00:59:14,310 І ось цей зв'язок, що комп'ютерна наука вже давно, 1445 00:59:14,310 --> 00:59:16,570 особливо на рівні середньої школи, з математикою, є 1446 00:59:16,570 --> 00:59:17,370 трохи вводить в оману. 1447 00:59:17,370 --> 00:59:20,090 Оскільки більшість програм, які ми напишемо, дійсно, 1448 00:59:20,090 --> 00:59:23,290 роду високому рівні і зосередитися на вирішенні проблем, які, 1449 00:59:23,290 --> 00:59:26,410 Звичайно, можна використовувати деякі додавання, віднімання, а також різні 1450 00:59:26,410 --> 00:59:28,650 математичні формули і т.п., 1451 00:59:28,650 --> 00:59:30,860 але в кінці кінців, це про мислення, а не 1452 00:59:30,860 --> 00:59:33,240 просто реалізувати те, що ви могли б зробити на як TI 1453 00:59:33,240 --> 00:59:35,050 Калькулятор в середній школі. 1454 00:59:35,050 --> 00:59:38,410 >> Таким чином, з урахуванням сказаного, давайте щось робити з цим 1455 00:59:38,410 --> 00:59:40,980 математичні оператори, які дійсно існують, щоб ми могли поїздки 1456 00:59:40,980 --> 00:59:43,950 за деякими з основних аспектів програмування, або в 1457 00:59:43,950 --> 00:59:48,930 цьому випадку C. Таким чином, існує, як CS50 бібліотеки запропонували, 1458 00:59:48,930 --> 00:59:51,520 і сьогодні ми використовуємо тільки GetString - і в одну мить 1459 00:59:51,520 --> 00:59:52,940 мабуть, одна інша функція - 1460 00:59:52,940 --> 00:59:55,380 але є різні типи даних в комп'ютер. 1461 00:59:55,380 --> 00:59:58,550 Зрештою, комп'ютери знаю тільки 0 і 1. 1462 00:59:58,550 --> 01:00:01,880 Але нагадаємо, що минулого тижня ми говорили про двійковій системі 1463 01:00:01,880 --> 01:00:05,000 У поданні чисел, наприклад, числа 0 і 1, і 2, 1464 01:00:05,000 --> 01:00:07,480 на всьому шляху від до 8, як і у відео Нейта. 1465 01:00:07,480 --> 01:00:08,840 І тоді ми можемо розраховувати набагато вище, так як ми 1466 01:00:08,840 --> 01:00:10,000 робив на сцені тут. 1467 01:00:10,000 --> 01:00:15,660 Але якщо ви хочете, щоб представляти не тільки числа, але листи, 1468 01:00:15,660 --> 01:00:18,240 Ми, люди, повинні виступити з деякими довільними 1469 01:00:18,240 --> 01:00:21,180 конвенціям, згідно з яким, якщо в кінці дня всі мій комп'ютер 1470 01:00:21,180 --> 01:00:24,260 була це здатність виражати 0 і 1, а нам краще 1471 01:00:24,260 --> 01:00:27,990 почати стандартизацію форм 0 і 1, які представляють 1472 01:00:27,990 --> 01:00:28,800 різні речі. 1473 01:00:28,800 --> 01:00:32,370 Картини з 0 і 1, яке представляє листі. 1474 01:00:32,370 --> 01:00:34,840 Моделі з 0 і 1, які представляють листі р. 1475 01:00:34,840 --> 01:00:37,600 Моделі з 0 і 1, які представляють колір синій, або 1476 01:00:37,600 --> 01:00:38,600 червоний, або тому подібне. 1477 01:00:38,600 --> 01:00:42,360 Ми повинні використовувати всі ці 0 і 1, щоб виразити себе в 1478 01:00:42,360 --> 01:00:45,140 різних контекстах, у різних способами, які не 1479 01:00:45,140 --> 01:00:46,470 обов'язково числовий. 1480 01:00:46,470 --> 01:00:51,150 >> Так що в плані подання, C має різні типи даних, 1481 01:00:51,150 --> 01:00:52,550 і ми бачили одну з цих досі. 1482 01:00:52,550 --> 01:00:54,940 Ми бачили, INT, і зверніть увагу на те, що на екрані не відображається 1483 01:00:54,940 --> 01:00:56,140 Прямо зараз є рядком. 1484 01:00:56,140 --> 01:00:58,550 Рядок не, насправді, існує в С. Знову ж таки, це 1485 01:00:58,550 --> 01:01:00,610 Спрощення ми представимо в першому 1486 01:01:00,610 --> 01:01:01,570 пару тижнів. 1487 01:01:01,570 --> 01:01:03,770 Символ є індивідуальний характер. 1488 01:01:03,770 --> 01:01:07,050 Поплавок дійсне число, з десятковою комою і цифри 1489 01:01:07,050 --> 01:01:09,066 ліворуч і праворуч від нього. 1490 01:01:09,066 --> 01:01:16,040 Подвійна є те, що, для тих, з задньої до фоном? 1491 01:01:16,040 --> 01:01:19,720 Таким чином, подвійна два рази щось. 1492 01:01:19,720 --> 01:01:21,240 Додає в два рази більше точності. 1493 01:01:21,240 --> 01:01:22,440 Так що ж це значить? 1494 01:01:22,440 --> 01:01:26,090 Таким чином, в кожному з цих випадків, у світі є роду стандартизовані 1495 01:01:26,090 --> 01:01:27,960 скільки бітів використовуються для представлення 1496 01:01:27,960 --> 01:01:29,160 Кожен з цих речей. 1497 01:01:29,160 --> 01:01:31,590 Так що, якщо ви дивилися відео ASCII Нейта вже частина 1498 01:01:31,590 --> 01:01:36,170 з PSET 0, або в кінці цього тижня ви будете, ви, напевно, знаєте 1499 01:01:36,170 --> 01:01:37,450 що ASCII - 1500 01:01:37,450 --> 01:01:38,610 характер уявлень - 1501 01:01:38,610 --> 01:01:40,670 використовувати, скільки біт? 1502 01:01:40,670 --> 01:01:43,410 І ви навіть пам'ятаєте з наших демо минулого тижня про те, як 1503 01:01:43,410 --> 01:01:45,500 багато людей були на сцені. 1504 01:01:45,500 --> 01:01:46,840 Таким чином, 7 або 8, зазвичай. 1505 01:01:46,840 --> 01:01:49,230 Таким чином, в цілому 8, і є те, що називається в якості продовжений 1506 01:01:49,230 --> 01:01:51,240 ASCII, який використовує всі 8 біт, замість 7. 1507 01:01:51,240 --> 01:01:54,710 Але в цілому, ми говоримо за ступенями 2, тому в даному випадку, 8. 1508 01:01:54,710 --> 01:01:58,900 Таким чином, символ в мові програмування, як правило, 8 біт. 1509 01:01:58,900 --> 01:02:02,550 Так Int, як правило, 32 біт. 1510 01:02:02,550 --> 01:02:04,810 Поплавцем, як правило, 32 біт. 1511 01:02:04,810 --> 01:02:08,060 Подвійні, як правило, 64 біт. 1512 01:02:08,060 --> 01:02:08,870 А що це значить? 1513 01:02:08,870 --> 01:02:11,500 Це означає, що ви можете представляти великі числа, або, в разі 1514 01:02:11,500 --> 01:02:15,490 дійсних чисел, ви можете мати набагато більше цифр після 1515 01:02:15,490 --> 01:02:16,240 десяткового знака. 1516 01:02:16,240 --> 01:02:18,980 Набагато більше точності, в такому випадку. 1517 01:02:18,980 --> 01:02:21,780 Тепер довго довго, на жаль, їм. 1518 01:02:21,780 --> 01:02:24,340 Так що Int яких становить 32 біта. 1519 01:02:24,340 --> 01:02:29,800 Існує довгий яка, ні, 32 біт. 1520 01:02:29,800 --> 01:02:32,610 І довго довго якої становить 64 біта. 1521 01:02:32,610 --> 01:02:34,830 Однак деякі з тих, хто залежить від контексту, воно залежить 1522 01:02:34,830 --> 01:02:36,190 який комп'ютер у вас є. 1523 01:02:36,190 --> 01:02:40,510 Так що в цілому, ми будемо вказувати в домашню роботу або у вікторині, коли 1524 01:02:40,510 --> 01:02:41,180 вона насправді має значення. 1525 01:02:41,180 --> 01:02:43,080 Але справа в тому, є всі ці різні 1526 01:02:43,080 --> 01:02:44,250 уявленнях тут. 1527 01:02:44,250 --> 01:02:45,950 >> Так що давайте насправді зануритися в програмі. 1528 01:02:45,950 --> 01:02:48,300 Замість того, щоб написати це з нуля, дозвольте мені йти вперед 1529 01:02:48,300 --> 01:02:50,940 і відкрити з вихідного коду сьогоднішнього дня - все це є 1530 01:02:50,940 --> 01:02:54,980 онлайн - якщо ви хочете возитися навколо в Інтернеті, або повернення на 1531 01:02:54,980 --> 01:02:57,120 Середу з приладом на вашому комп'ютері, інструкції 1532 01:02:57,120 --> 01:02:59,160 , Для якої буде посилання на головну сторінку курсу. 1533 01:02:59,160 --> 01:03:00,830 Ось супер простий програми. 1534 01:03:00,830 --> 01:03:02,520 Але у нього є дещо нове у верхній, що 1535 01:03:02,520 --> 01:03:03,650 у нас не було раніше. 1536 01:03:03,650 --> 01:03:05,800 Багато синіх рядків тексту. 1537 01:03:05,800 --> 01:03:08,410 Таким чином, ці сині лінії являють коментарі. 1538 01:03:08,410 --> 01:03:10,620 Так що це досить корисно в програмі, щоб мати змогу писати 1539 01:03:10,620 --> 01:03:13,160 деякі коментарі до себе, і до колег або друзів, або 1540 01:03:13,160 --> 01:03:15,700 навчання стипендіатів, такого роду описати те, що відбувається в 1541 01:03:15,700 --> 01:03:18,500 Цей файл, але не мають нічого спільного з C самого коду. 1542 01:03:18,500 --> 01:03:20,860 Нічого спільного з програмою функціонально, це всього лише 1543 01:03:20,860 --> 01:03:21,760 естетику. 1544 01:03:21,760 --> 01:03:24,580 Таким чином, ви зробити це в C є ви взагалі почати 1545 01:03:24,580 --> 01:03:29,860 Коментарі з / *, і ви в кінцевому ваші коментарі з 1546 01:03:29,860 --> 01:03:31,270 * /. 1547 01:03:31,270 --> 01:03:34,140 І якщо ви дійсно анальний і хотів би звернути роду картин, 1548 01:03:34,140 --> 01:03:35,870 Потім потрібно покласти купу зірок, потрібно зробити 1549 01:03:35,870 --> 01:03:36,970 коробочці, як це. 1550 01:03:36,970 --> 01:03:37,990 Але жоден з цих питань. 1551 01:03:37,990 --> 01:03:40,230 Єдине, що має значення самого першого 1552 01:03:40,230 --> 01:03:41,620 і саме останнє. 1553 01:03:41,620 --> 01:03:43,820 Це те, що називається багаторядковий коментар. 1554 01:03:43,820 --> 01:03:46,610 І це тільки людські конвенції часто роблять зірки і коробки 1555 01:03:46,610 --> 01:03:48,420 речі, як це, якщо у вас є багато вільного часу. 1556 01:03:48,420 --> 01:03:51,550 >> Таким чином, після того, як написано в деяких коментарях, як правило, приходять 1557 01:03:51,550 --> 01:03:53,160 фактичні кишки програми. 1558 01:03:53,160 --> 01:03:55,630 Ось наш знайомий # включити . 1559 01:03:55,630 --> 01:04:00,410 І так само швидко, це потрібно чи не потрібно? 1560 01:04:00,410 --> 01:04:02,860 АУДИТОРІЯ: необхідно. 1561 01:04:02,860 --> 01:04:04,390 DAVID Малан: Так це насправді не потрібно. 1562 01:04:04,390 --> 01:04:07,070 Так чому ж, тим не менш, це не потрібно? 1563 01:04:07,070 --> 01:04:08,170 Таким чином, немає Printf. 1564 01:04:08,170 --> 01:04:08,510 У самому справі. 1565 01:04:08,510 --> 01:04:10,470 Все, що ми робимо в цій програмі є математика. 1566 01:04:10,470 --> 01:04:11,640 Так що я можу насправді видалити це. 1567 01:04:11,640 --> 01:04:14,330 Таким чином, ви не завжди повинні включати в себе нічого 1568 01:04:14,330 --> 01:04:15,420 у верхній частині програми. 1569 01:04:15,420 --> 01:04:17,020 >> Так давайте спростимо це небагато. 1570 01:04:17,020 --> 01:04:18,650 А тепер зауважте, що ця програма робить. 1571 01:04:18,650 --> 01:04:19,920 Не багато цікавого. 1572 01:04:19,920 --> 01:04:21,410 Int х = 1. 1573 01:04:21,410 --> 01:04:22,550 Ну, що це робиш? 1574 01:04:22,550 --> 01:04:25,130 Ну, думаю, назад в ментальної моделі, ніж раніше. 1575 01:04:25,130 --> 01:04:27,500 У лівій частині цього виразу, що робить? 1576 01:04:31,440 --> 01:04:32,830 Створити простір для цілого числа. 1577 01:04:32,830 --> 01:04:33,930 Так як багато місця? 1578 01:04:33,930 --> 01:04:36,980 Ну, ми, виявляється, знаємо тепер, що це 32 біт. 1579 01:04:36,980 --> 01:04:40,070 Раніше, рядок була технічно 32 біт, але більш 1580 01:04:40,070 --> 01:04:40,950 про це в майбутньому. 1581 01:04:40,950 --> 01:04:42,240 Але Int становить 32 біта. 1582 01:04:42,240 --> 01:04:45,590 Таким чином, цей вираз зліва тут, Int х просто говорить, агов 1583 01:04:45,590 --> 01:04:48,490 операційна система, дай мені 32 біт оперативної пам'яті - 1584 01:04:48,490 --> 01:04:50,450 інакше відомий як 4 байти оперативної пам'яті - 1585 01:04:50,450 --> 01:04:53,930 так що я можу покласти ціле число в цьому просторі. 1586 01:04:53,930 --> 01:04:55,330 Що цілого ти хотів поставити? 1587 01:04:55,330 --> 01:04:56,640 Ну, просто номер 1. 1588 01:04:56,640 --> 01:04:59,530 Int у одержує 2, не одне і те ж, хоча 1589 01:04:59,530 --> 01:05:02,160 Номер великий, з точки зору його величини. 1590 01:05:02,160 --> 01:05:04,790 Число сама ще тільки 32 біта. 1591 01:05:04,790 --> 01:05:06,520 Це просто зразок біт відрізняється від 1592 01:05:06,520 --> 01:05:08,260 складають 1 проти 2. 1593 01:05:08,260 --> 01:05:11,980 Int Z тепер каже, дайте мені ще 32 біта, назвемо його Z, і покласти 1594 01:05:11,980 --> 01:05:14,210 Підсумовування 1 і 2 в там. 1595 01:05:14,210 --> 01:05:18,050 Так що тепер г імовірно зберігання значення 3, 1596 01:05:18,050 --> 01:05:19,360 , А потім повертати 0. 1597 01:05:19,360 --> 01:05:23,020 >> Тепер ця програма, вона робить щось цікаве? 1598 01:05:23,020 --> 01:05:26,170 Так що насправді не роблять нічого цікавого, в будь-якому 1599 01:05:26,170 --> 01:05:28,450 сенсу, бо навіщо? Це робить деякі математики. 1600 01:05:28,450 --> 01:05:30,590 Але це не повертався відповідь, мають рацію. 1601 01:05:30,590 --> 01:05:31,790 Він повертається 0. 1602 01:05:31,790 --> 01:05:33,440 Це не друк відповіді. 1603 01:05:33,440 --> 01:05:35,760 Таким чином, ця програма є принципово марним, оскільки він 1604 01:05:35,760 --> 01:05:36,350 коштує тепер. 1605 01:05:36,350 --> 01:05:37,220 Це робить деяку роботу. 1606 01:05:37,220 --> 01:05:39,530 Це займе деякий кількість секунд, або мікросекунд, щоб 1607 01:05:39,530 --> 01:05:41,510 працювати, але це насправді не роблять нічого 1608 01:05:41,510 --> 01:05:42,770 корисні для людини. 1609 01:05:42,770 --> 01:05:46,810 >> Так що давайте насправді зараз відкрити math2, де тепер я насправді 1610 01:05:46,810 --> 01:05:48,250 друк результат. 1611 01:05:48,250 --> 01:05:51,260 Так що це теж може бути виведено з нашого попереднього прикладу. 1612 01:05:51,260 --> 01:05:54,320 Якщо я хочу зробити кілька простих математики, Int х = 1, у 1613 01:05:54,320 --> 01:05:56,820 = 2. г становить 1 плюс 2 зараз. 1614 01:05:56,820 --> 01:05:59,240 Що це буде роздрукувати очевидно? 1615 01:05:59,240 --> 01:06:00,120 Тільки 3. 1616 01:06:00,120 --> 01:06:01,590 Так швидко санітарної перевірки. 1617 01:06:01,590 --> 01:06:03,830 Дозвольте мені перейти в цей каталог. 1618 01:06:03,830 --> 01:06:06,480 Так кд source1m. 1619 01:06:06,480 --> 01:06:09,370 Дозвольте мені піти далі і ввести зробити math2. 1620 01:06:09,370 --> 01:06:11,510 Немає повідомлень про помилки вийшов, так що дозвольте мені бігти - 1621 01:06:11,510 --> 01:06:14,800 Чи не a.out--дайте мені працювати math2. Enter. 1622 01:06:14,800 --> 01:06:16,750 І дійсно, він розпечатав 3. 1623 01:06:16,750 --> 01:06:18,460 Ну, давайте подивимося на варіант цього. 1624 01:06:18,460 --> 01:06:23,870 У math3.c, зараз у нас це приклад. 1625 01:06:23,870 --> 01:06:26,540 >> Так що це свого роду цікаво. 1626 01:06:26,540 --> 01:06:32,000 Таким чином, в цьому тут, відповідь буде отримати 1 ділиться на 10, 1627 01:06:32,000 --> 01:06:33,910 і зверніть увагу, я сказав, що вона з плаваючою крапкою. 1628 01:06:33,910 --> 01:06:35,200 Чому я хочу бути з плаваючою точкою? 1629 01:06:35,200 --> 01:06:36,110 Ну, це фракції. 1630 01:06:36,110 --> 01:06:37,140 Це збирається бути реальним числом. 1631 01:06:37,140 --> 01:06:40,970 Так що це буде 0,1, сподіваюся - 10%, в цьому випадку. 1632 01:06:40,970 --> 01:06:42,610 І що ж я тоді хочу, щоб роздрукувати? 1633 01:06:42,610 --> 01:06:43,440 Ну, це відповідь. 1634 01:06:43,440 --> 01:06:44,760 Ну, давай дражнити цим, крім першого. 1635 01:06:44,760 --> 01:06:47,020 Таким чином, на лівій стороні заявити, 1636 01:06:47,020 --> 01:06:49,410 плавати, називають це відповісти. 1637 01:06:49,410 --> 01:06:52,280 З правого боку, зробити 1 ділиться на 10 і покласти, що 1638 01:06:52,280 --> 01:06:54,370 відповісти всередині змінної. 1639 01:06:54,370 --> 01:06:56,410 Тепер ця лінія виглядає трохи більш загадковими. 1640 01:06:56,410 --> 01:06:59,440 Але помітити деякі знайомі риси. % Означає, що тут йде 1641 01:06:59,440 --> 01:07:00,490 заповнювача. 1642 01:07:00,490 --> 01:07:03,230 F означає ось значення з плаваючою точкою, тільки реальні 1643 01:07:03,230 --> 01:07:05,490 число, то з комою. 1644 01:07:05,490 --> 01:07:07,330 0,2 це означає? 1645 01:07:07,330 --> 01:07:10,740 Кожен знає, з попереднього досвіду? 1646 01:07:10,740 --> 01:07:12,010 Два знаки після коми. 1647 01:07:12,010 --> 01:07:14,050 Таким чином, ми не бачили цього раніше, але це всього лише спосіб 1648 01:07:14,050 --> 01:07:16,360 здійснення трохи більше контролю над Printf і 1649 01:07:16,360 --> 01:07:20,840 говорю, не дай мені 30 очок після коми, 1650 01:07:20,840 --> 01:07:22,490 замість цього дати мені тільки 2. 1651 01:07:22,490 --> 01:07:23,960 >> І тоді давайте йти вперед і виконати це. 1652 01:07:23,960 --> 01:07:30,160 Так що математика 3, а тепер дозвольте мені виконати математику 3, Enter. 1653 01:07:30,160 --> 01:07:34,630 І це не правильно. 1654 01:07:34,630 --> 01:07:37,390 Ми, здається, зіткнувся наш перший справжній помилка. 1655 01:07:37,390 --> 01:07:39,400 Ну, може, я просто не дивилася досить близько. 1656 01:07:39,400 --> 01:07:41,960 Отже, дозвольте мені йти сюди, і дозвольте мені покласти 20 десяткових 1657 01:07:41,960 --> 01:07:43,300 точка місцями. 1658 01:07:43,300 --> 01:07:47,950 І дозвольте мені скласти цей, зробити math3, біжи. 1659 01:07:47,950 --> 01:07:50,960 Упевнений, 1, поділеній на 10 не дорівнює 0. 1660 01:07:50,960 --> 01:07:54,270 Так що ж відбувається? 1661 01:07:54,270 --> 01:07:56,740 Ну гаразд, так що насправді він не має до цього відношення. 1662 01:07:56,740 --> 01:07:57,600 Це гарна думка. 1663 01:07:57,600 --> 01:07:59,140 Це дійсно просто збіг 1664 01:07:59,140 --> 01:08:00,220 що ми робимо це. 1665 01:08:00,220 --> 01:08:02,010 Але тільки, щоб довести, що це не він, я буду 1666 01:08:02,010 --> 01:08:03,160 повернути щось випадкове. 1667 01:08:03,160 --> 01:08:05,160 Не робіть цього вдома, тому що це просто неправильно. 1668 01:08:05,160 --> 01:08:08,000 Але зробити math3, дозвольте мені запустити його. 1669 01:08:08,000 --> 01:08:10,690 Таким чином, не має нічого спільного з тим, що я повертаюся, тільки робити 1670 01:08:10,690 --> 01:08:11,940 з тим, що я друкую. 1671 01:08:11,940 --> 01:08:14,150 Але я чув, що тут, унизу. 1672 01:08:14,150 --> 01:08:15,270 Що? 1673 01:08:15,270 --> 01:08:17,524 АУДИТОРІЯ: Так що ми повинні писати числа в 1674 01:08:17,524 --> 01:08:19,680 поділ, як - 1675 01:08:19,680 --> 01:08:20,319 >> DAVID Малан: Добре добре. 1676 01:08:20,319 --> 01:08:22,810 Так що ми повинні писати числа що беруть участь в 1677 01:08:22,810 --> 01:08:25,979 поділ тут як значення з плаваючою точкою себе. 1678 01:08:25,979 --> 01:08:29,359 Таким чином, проблема тут у тому, як раніше: C, як і багато 1679 01:08:29,359 --> 01:08:31,819 мовами, має різні типи даних. 1680 01:08:31,819 --> 01:08:34,600 А ті типи даних, наприклад, ці тут. 1681 01:08:34,600 --> 01:08:37,430 І типи даних в питання тут, коли я типу 1, а потім я 1682 01:08:37,430 --> 01:08:40,870 Тип 10, ймовірно, які типи даних? 1683 01:08:40,870 --> 01:08:42,170 Так що це, ймовірно, INT, чи не так? 1684 01:08:42,170 --> 01:08:44,149 Це безумовно не плавати, бо немає десятковій 1685 01:08:44,149 --> 01:08:45,460 точка або що-небудь подібне. 1686 01:08:45,460 --> 01:08:48,270 Так насправді, у мене є ціле число ділиться на внутр. 1687 01:08:48,270 --> 01:08:52,160 >> Так найцікавіше про математику і комп'ютера є те, що 1688 01:08:52,160 --> 01:08:54,840 якщо ви робите поділ використанням цілих чисел - 1689 01:08:54,840 --> 01:08:57,310 1 ділиться на 10, да, становить 0,1. 1690 01:08:57,310 --> 01:09:01,420 Тим не менше, коли ви ділення цілого числа на ціле число, 1691 01:09:01,420 --> 01:09:06,859 Відповідь має бути цілим числом тільки тому, що, на даний момент. 1692 01:09:06,859 --> 01:09:08,630 А що мається на увазі те? 1693 01:09:08,630 --> 01:09:13,640 Ну, якщо відповідь 1 ділиться на 10 рівних 0,1, що 1694 01:09:13,640 --> 01:09:15,680 Комп'ютер збираюся зробити, це я поняття не маю, як 1695 01:09:15,680 --> 01:09:19,270 являють собою 0,1, тому що це значення з плаваючою точкою, а не 1696 01:09:19,270 --> 01:09:21,910 ціле число, він збирається відрубати всі після 1697 01:09:21,910 --> 01:09:27,470 десяткового дробу і просто показати вам, 0 на початку. 1698 01:09:27,470 --> 01:09:29,540 А те, що це друк у вигляді плаваючою точкою 1699 01:09:29,540 --> 01:09:31,200 значення, це просто естетична річ. 1700 01:09:31,200 --> 01:09:34,279 Це тому, що я змусивши комп'ютер для друку цьому 1701 01:09:34,279 --> 01:09:35,229 плаваючою крапкою. 1702 01:09:35,229 --> 01:09:37,720 І дійсно, я сказав, що вона з плаваючою точкою, але математика 1703 01:09:37,720 --> 01:09:39,010 відбувається тут. 1704 01:09:39,010 --> 01:09:41,859 >> Тому дозвольте мені насправді виправити це в один досить простий спосіб. 1705 01:09:41,859 --> 01:09:45,250 Чому я не просто роблю 10,0 і 1,0, хоча 1706 01:09:45,250 --> 01:09:47,609 Технічно я міг би зійти з рук тільки робить один з них. 1707 01:09:47,609 --> 01:09:50,630 Тепер дозвольте мені піти далі і зробити math3. 1708 01:09:50,630 --> 01:09:56,350 Дозвольте мені йти вперед і тепер працюють math3, Enter. 1709 01:09:56,350 --> 01:09:57,500 А тепер, про хлопчик. 1710 01:09:57,500 --> 01:10:00,050 Тепер у нас є нова проблема взагалі. 1711 01:10:00,050 --> 01:10:05,600 Так що краще, право, ми ближче до 0,1, але те, що, безумовно, є 1712 01:10:05,600 --> 01:10:06,240 тут не так? 1713 01:10:06,240 --> 01:10:08,260 Якщо ми брехали вам протягом багатьох років, вірно? 1714 01:10:08,260 --> 01:10:13,660 1, поділеній на 10 насправді не зовсім 0.1, так що 1715 01:10:13,660 --> 01:10:14,700 насправді тут відбувається? 1716 01:10:14,700 --> 01:10:16,420 Ну ви можете почасти причина через це логічно. 1717 01:10:16,420 --> 01:10:19,200 Якщо комп'ютер має тільки кінцеве кількість оперативної пам'яті, щоб почати 1718 01:10:19,200 --> 01:10:23,530 с, та й комп'ютер використовує тільки 32 біта для 1719 01:10:23,530 --> 01:10:26,200 плаваючою точкою, само собою зрозуміло, що з 1720 01:10:26,200 --> 01:10:29,870 кінцеве число біт, 32 в цьому випадку, так, ви можете 1721 01:10:29,870 --> 01:10:31,050 являють собою багато речей. 1722 01:10:31,050 --> 01:10:33,220 Насправді це чотири мільярди різних значень може бути 1723 01:10:33,220 --> 01:10:38,040 представлено 32 біт, від 2 до 32, але це все ще кінцева. 1724 01:10:38,040 --> 01:10:40,730 Так що проблема існує нескінченне число дійсних 1725 01:10:40,730 --> 01:10:41,370 номери, мають рацію. 1726 01:10:41,370 --> 01:10:43,560 Якщо ви дасте мені дійсне число, я завжди можу знайти вам один 1727 01:10:43,560 --> 01:10:46,080 трохи більше, трохи менше, просто настройки 1728 01:10:46,080 --> 01:10:47,970 номери, які після коми. 1729 01:10:47,970 --> 01:10:50,870 Так що, якщо ви не маєте нескінченне число бітів, ви 1730 01:10:50,870 --> 01:10:52,940 не може являти собою нескінченну 1731 01:10:52,940 --> 01:10:54,800 Число дійсних чисел. 1732 01:10:54,800 --> 01:10:58,090 >> Так що ця властива неточність в комп'ютерах, і 1733 01:10:58,090 --> 01:11:00,930 це отримує спіткнувся весь час, навіть в найпростіших 1734 01:11:00,930 --> 01:11:02,260 подібних програмах. 1735 01:11:02,260 --> 01:11:05,640 Але і в дуже реальному світі проблеми. 1736 01:11:05,640 --> 01:11:07,790 У самому справі, давайте момент, щоб просто поглянути на 1737 01:11:07,790 --> 01:11:09,530 те, що насправді відбулося в дійсності. 1738 01:11:09,530 --> 01:11:11,620 Ми будемо дивитися тільки перші кілька хвилин, а потім 1739 01:11:11,620 --> 01:11:13,270 ми розмістимо посилання в Інтернеті. 1740 01:11:13,270 --> 01:11:16,700 Але це свідчить тільки те, що може піти не так, зовсім 1741 01:11:16,700 --> 01:11:19,680 чесно кажучи, в дуже трагічному шляху, коли ці речі не 1742 01:11:19,680 --> 01:11:23,870 оцінені або просто ми, люди роблять помилки, коли справа доходить до 1743 01:11:23,870 --> 01:11:26,792 ці види деталі реалізації сучасних комп'ютерів. 1744 01:11:26,792 --> 01:11:27,284 >> [Відтворення відео] 1745 01:11:27,284 --> 01:11:30,730 -Повернімося тепер до інженерної лих на сучасних чудес. 1746 01:11:30,730 --> 01:11:32,200 Комп'ютери. 1747 01:11:32,200 --> 01:11:34,920 Ми всі прийшли до розуміння часто розчаровує проблеми 1748 01:11:34,920 --> 01:11:36,750 які йдуть з ними. 1749 01:11:36,750 --> 01:11:40,690 Помилки, віруси, збої програмного забезпечення і малих ціни 1750 01:11:40,690 --> 01:11:42,550 платити за зручність. 1751 01:11:42,550 --> 01:11:45,170 Але в області високих технологій і високою швидкістю військової і космічної 1752 01:11:45,170 --> 01:11:48,450 програмних додатків, найменша проблема може бути 1753 01:11:48,450 --> 01:11:52,220 збільшена в катастрофі. 1754 01:11:52,220 --> 01:11:56,780 4 червня 1996, вчені готові почати безпілотного 1755 01:11:56,780 --> 01:11:58,430 Ракета Ariane 5. 1756 01:11:58,430 --> 01:12:00,750 Було проведення наукових супутників для 1757 01:12:00,750 --> 01:12:03,580 встановити, як саме магнітне поле Землі 1758 01:12:03,580 --> 01:12:06,900 взаємодіє із сонячним вітром. 1759 01:12:06,900 --> 01:12:10,330 Ракета була побудована для Європейського космічного агентства і 1760 01:12:10,330 --> 01:12:13,450 відірвався від свого об'єкта на узбережжі Французькій Гвіані. 1761 01:12:13,450 --> 01:12:16,970 >> -Приблизно близько 37 секунд в польоті, вони спочатку 1762 01:12:16,970 --> 01:12:19,700 помітила, що щось іде не так, що сопла були 1763 01:12:19,700 --> 01:12:21,590 поворотні таким чином, вони дійсно не повинні. 1764 01:12:21,590 --> 01:12:25,020 Близько 40 секунд в польоті, чітко автомобіля 1765 01:12:25,020 --> 01:12:27,340 потрапив у біду, і ось, коли вони прийняли рішення 1766 01:12:27,340 --> 01:12:28,136 знищити його. 1767 01:12:28,136 --> 01:12:31,450 Офіцер діапазон безпеки з величезним кишки натискання 1768 01:12:31,450 --> 01:12:34,160 Кнопка, підірвали ракету перш ніж він зможе стати 1769 01:12:34,160 --> 01:12:37,470 небезпека для громадської безпеки. 1770 01:12:37,470 --> 01:12:40,750 >> -Це був перший рейс з Ariane 5, а його 1771 01:12:40,750 --> 01:12:43,990 руйнування сталися через помилки, вбудовані в 1772 01:12:43,990 --> 01:12:45,480 Ракета програмного забезпечення. 1773 01:12:45,480 --> 01:12:47,660 >> -Проблеми на Ariane, що не було поруч, що 1774 01:12:47,660 --> 01:12:51,245 вимагає 64 бітів, щоб висловити, і вони хотіли, щоб перетворити його 1775 01:12:51,245 --> 01:12:53,010 для 16-бітних числа. 1776 01:12:53,010 --> 01:12:54,900 Вони припустили, що кількість ніколи не було 1777 01:12:54,900 --> 01:12:56,280 Буде дуже великий, 1778 01:12:56,280 --> 01:12:59,920 що більшість з цих цифр в 64-розрядні числа були 0s. 1779 01:12:59,920 --> 01:13:01,860 Вони були неправі. 1780 01:13:01,860 --> 01:13:04,550 >> -Нездатність одну програму, щоб прийняти 1781 01:13:04,550 --> 01:13:07,730 вид номер, який генерується інший був в корені 1782 01:13:07,730 --> 01:13:08,930 провал. 1783 01:13:08,930 --> 01:13:11,490 Розробка програмного забезпечення стала дуже дорогою частиною 1784 01:13:11,490 --> 01:13:13,280 нові технології. 1785 01:13:13,280 --> 01:13:16,530 Ariane 4 ракети були дуже успішними. 1786 01:13:16,530 --> 01:13:19,100 Так що більша частина програмного забезпечення, створеного для нього також був використаний 1787 01:13:19,100 --> 01:13:21,050 У Ariane 5. 1788 01:13:21,050 --> 01:13:25,530 >> -Основною проблемою було те, що Ariane 5 був швидше, 1789 01:13:25,530 --> 01:13:27,280 прискорився швидше. 1790 01:13:27,280 --> 01:13:30,590 І програмне забезпечення не доводилося для цього. 1791 01:13:30,590 --> 01:13:33,060 >> -Знищення ракети був величезним фінансовим 1792 01:13:33,060 --> 01:13:37,670 катастрофа, все через хвилині помилка програмного забезпечення. 1793 01:13:37,670 --> 01:13:40,750 Але це був не перший раз, проблеми перетворення даних було 1794 01:13:40,750 --> 01:13:43,680 страждають сучасні технології ракети. 1795 01:13:43,680 --> 01:13:44,390 >> DAVID Малан: Ми залишимо все як є. 1796 01:13:44,390 --> 01:13:46,870 Але це є свідченням того, наскільки застосовні навіть деякі з 1797 01:13:46,870 --> 01:13:48,750 це найнижчий рівень деталі, які ми почали 1798 01:13:48,750 --> 01:13:50,040 досліджувати сьогодні. 1799 01:13:50,040 --> 01:13:52,510 Таким чином, навіть, як ви отримаєте трохи відволіктися, можливо, деякі з 1800 01:13:52,510 --> 01:13:55,240 синтаксис і Арканест тут, розумієш, що за 1801 01:13:55,240 --> 01:13:57,690 Термін ми будемо зосереджені тільки на те, як це можна застосувати до 1802 01:13:57,690 --> 01:13:59,530 світи далеко за межами CS. 1803 01:13:59,530 --> 01:14:00,780 Ми будемо бачити Вас в середу.