1 00:00:00,000 --> 00:00:02,742 >> [Грає музика] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Пен: Це CS50, і Ласкаво просимо в тиждень два розділи. 4 00:00:09,090 --> 00:00:11,740 Це насправді в той час як тиждень два наші class-- фактично, 5 00:00:11,740 --> 00:00:14,550 перший тиждень у нас була розділ. 6 00:00:14,550 --> 00:00:18,897 Показати рук, як багато хто з вас все прийшли до супер розділу минулого тижня? 7 00:00:18,897 --> 00:00:19,480 ОК, це нормально. 8 00:00:19,480 --> 00:00:20,020 Все добре. 9 00:00:20,020 --> 00:00:23,110 Як багато з вас дивилися супер розділ минулого тижня? 10 00:00:23,110 --> 00:00:23,610 ДОБРЕ. 11 00:00:23,610 --> 00:00:25,702 А ви, хлопці, зробили добре з проблеми встановити один? 12 00:00:25,702 --> 00:00:28,660 Так що я збираюся взяти його, що ми маємо купа дійсно розумних дітей 13 00:00:28,660 --> 00:00:32,310 в цьому класі і все буде в порядку. 14 00:00:32,310 --> 00:00:33,180 ДОБРЕ. 15 00:00:33,180 --> 00:00:33,980 Так first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> По-перше, ми тільки збираємося коротко перейти до порядку денного на сьогодні. 18 00:00:41,090 --> 00:00:42,700 Ми будемо говорити про курсові логістики. 19 00:00:42,700 --> 00:00:45,480 Багато хто з вас, напевно, є питання, що стосуються 20 00:00:45,480 --> 00:00:46,920 як речі працюють в цьому курсі. 21 00:00:46,920 --> 00:00:47,897 Ми на них відповісти. 22 00:00:47,897 --> 00:00:49,730 Ми збираємося коротко перейти петель у разі 23 00:00:49,730 --> 00:00:51,410 будь-який з вас, хлопці пропустили супер розділ. 24 00:00:51,410 --> 00:00:53,240 Ми будемо говорити про відображення ASCII. 25 00:00:53,240 --> 00:00:56,180 Ми будемо говорити про масивах, функції, аргументи командного рядка. 26 00:00:56,180 --> 00:01:00,210 І, нарешті, те, що ви, хлопці, напевно, все дійсно хочете бути тут, щоб дізнатися про, 27 00:01:00,210 --> 00:01:01,270 Ваш pset2. 28 00:01:01,270 --> 00:01:04,209 Ми матимемо деякі цікаві трюки і поради про те, як це зробити. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ДОБРЕ. 31 00:01:08,690 --> 00:01:11,450 Крім того, по-друге, ми маємо багато цукерок тут. 32 00:01:11,450 --> 00:01:13,583 Той, хто любить цукерки, просто прийти сюди. 33 00:01:13,583 --> 00:01:14,430 Візьміть деякі. 34 00:01:14,430 --> 00:01:15,100 У мене є купа. 35 00:01:15,100 --> 00:01:16,390 У нас є тонни в офісі. 36 00:01:16,390 --> 00:01:18,230 Я дійсно не хочу з'їсти цукерку весь день. 37 00:01:18,230 --> 00:01:20,300 Ви, хлопці, повинні з'їсти всі цукерки, бо я приніс його тут для вас, хлопці. 38 00:01:20,300 --> 00:01:20,990 Просто є цукерки. 39 00:01:20,990 --> 00:01:24,080 Там буде цукерки кожна секція. 40 00:01:24,080 --> 00:01:25,330 >> Отже, спочатку, хто я? 41 00:01:25,330 --> 00:01:27,080 Мене звуть Енді Пен. 42 00:01:27,080 --> 00:01:30,270 Я є керівником ТА CS50 тут в Єльському університеті. 43 00:01:30,270 --> 00:01:32,540 І на додаток до що, я також be-- 44 00:01:32,540 --> 00:01:35,600 якщо хтось like-- свій хід приятель, плече, щоб кричати на. 45 00:01:35,600 --> 00:01:39,140 Якщо ніч перш з вашого Pset, в Ви поняття не маєте, що відбувається, 46 00:01:39,140 --> 00:01:40,080 вдарив мене. 47 00:01:40,080 --> 00:01:42,770 Ми поспівчувати разом, і так далі. 48 00:01:42,770 --> 00:01:46,100 Просто знаю, що я тут, як ресурс для вас, як лінії фронту 49 00:01:46,100 --> 00:01:51,830 допомагаючи вам, хлопці, з'ясувати, як для вирішення проблем в CS50 і за її межами. 50 00:01:51,830 --> 00:01:54,590 >> Моя електронна пошта andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Я також відправити індивідуальний по електронній пошті з мій номер телефону в ньому 52 00:01:58,390 --> 00:02:01,860 так що не всі на Інтернет може побачити свій номер телефону. 53 00:02:01,860 --> 00:02:03,640 Не соромтеся дзвонити мені в будь-який час. 54 00:02:03,640 --> 00:02:07,510 Серйозно, мій телефон як правило, додається до моєї руки. 55 00:02:07,510 --> 00:02:10,240 Я не може відповісти протягом декількох хвилин. 56 00:02:10,240 --> 00:02:11,984 Я не може відповісти протягом декількох годин. 57 00:02:11,984 --> 00:02:14,400 Але я можу гарантувати вам, якщо Ви по електронній пошті мені, якщо ви телефонуєте мені, 58 00:02:14,400 --> 00:02:17,404 напиши мені, я відповім протягом 24 годин. 59 00:02:17,404 --> 00:02:19,820 Часто, я відповім, перш ніж що, тому що я розумію 60 00:02:19,820 --> 00:02:23,900 що кожен отримав деякі проблеми, і ви хочете, щоб ваші відповіді 61 00:02:23,900 --> 00:02:26,110 дати відповідь дуже швидко. 62 00:02:26,110 --> 00:02:28,945 >> Тим не менш, якщо ви телефонуєте мені 30 хвилин до 63 00:02:28,945 --> 00:02:31,570 що шматок, який через четвер night-- бути, як Енді, допоможи мені, 64 00:02:31,570 --> 00:02:35,380 Я не started-- я можу дати Ви що плече, щоб кричати на. 65 00:02:35,380 --> 00:02:41,520 Але це може бути час, щоб думати про як не робити, що наступного разу. 66 00:02:41,520 --> 00:02:44,040 ДОБРЕ. 67 00:02:44,040 --> 00:02:44,944 Ой. 68 00:02:44,944 --> 00:02:45,850 Як повернутися? 69 00:02:45,850 --> 00:02:48,140 Там ми йдемо. 70 00:02:48,140 --> 00:02:52,310 >> Таким чином, в цьому, звичайно, у нас є тонна підтримки для всіх. 71 00:02:52,310 --> 00:02:54,640 На додаток до щойно розділи тут, які вам 72 00:02:54,640 --> 00:02:57,000 щотижня отримую витратити 90 прекрасні хвилини зі мною, 73 00:02:57,000 --> 00:02:58,330 у нас також є прийомні години. 74 00:02:58,330 --> 00:03:01,021 Як багато з вас, хлопці, вже був в робочий час за допомогою? 75 00:03:01,021 --> 00:03:01,520 Відмінно. 76 00:03:01,520 --> 00:03:05,700 Це дійсно приємно бачити, тому що ми мати штат більше 45 ТП та сертифікації 77 00:03:05,700 --> 00:03:11,780 підготовку для цього, звичайно, що тут знаходяться за допомогу, ви, хлопці з psets. 78 00:03:11,780 --> 00:03:14,580 >> Щопонеділка вони проводяться в ТЕАл клас в 17 Hill House тут 79 00:03:14,580 --> 00:03:15,350 в Єльському університеті. 80 00:03:15,350 --> 00:03:17,349 По вівторках і четвергах, вони проводяться в звичайні. 81 00:03:17,349 --> 00:03:20,010 З 8:00 до 11:00 в значній мірі кожен будній день. 82 00:03:20,010 --> 00:03:21,620 Заходьте, вийти. 83 00:03:21,620 --> 00:03:24,030 Будь-яка проблема, немає problem-- просто заходьте, 84 00:03:24,030 --> 00:03:26,650 і тоді ми вам допоможемо в цьому. 85 00:03:26,650 --> 00:03:31,640 >> По-друге, на додаток до офісних годин та секції, у нас також є шорти. 86 00:03:31,640 --> 00:03:35,930 Хто-небудь коли-небудь бачив пару з шорти або покрокові відео в 87 00:03:35,930 --> 00:03:36,750 на веб-сайті? 88 00:03:36,750 --> 00:03:37,250 ДОБРЕ. 89 00:03:37,250 --> 00:03:39,510 Таким чином, вони насправді, дуже корисно. 90 00:03:39,510 --> 00:03:42,470 Наш прекрасний виробництво Гарвардського команда там на цій школі 91 00:03:42,470 --> 00:03:47,910 до півночі, вони зняли і виробляється ці неймовірні Проходження відео. 92 00:03:47,910 --> 00:03:52,290 >> Вони візьмуть Вас крок за кроком через як йти про вирішенні проблеми. 93 00:03:52,290 --> 00:03:56,340 Часто, якщо ви плутати про проста концепція, особлива концепція, 94 00:03:56,340 --> 00:03:59,780 поглянути, тому що ми, ймовірно, короткий на нього десь на нашому сайті. 95 00:03:59,780 --> 00:04:03,800 І це, як правило, великий ресурс дивитися, коли ви знаходитесь в першу чергу 96 00:04:03,800 --> 00:04:06,510 втратили про те, як впоратися з проблемою. 97 00:04:06,510 --> 00:04:09,750 >> По-третє, у нас також є study50 і reference50. 98 00:04:09,750 --> 00:04:15,650 Так що вчіться на 50 Сайт це всього лише посилання. 99 00:04:15,650 --> 00:04:21,500 Це, мені здається, study.cs50.net або щось подібне. 100 00:04:21,500 --> 00:04:22,860 Просто Google це. 101 00:04:22,860 --> 00:04:24,229 У нас є багато слайдів, підготовлених. 102 00:04:24,229 --> 00:04:26,770 У нас є багато шорти і walkthroughs-- речі все скомпільовані 103 00:04:26,770 --> 00:04:31,070 дуже красиво і акуратно для вас всіх, хлопці переглядати, які поняття см 104 00:04:31,070 --> 00:04:32,860 що ви збентежені о. 105 00:04:32,860 --> 00:04:35,920 Це, напевно, буде покрита там, в study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- схожі. 107 00:04:37,640 --> 00:04:41,510 У нас є багато різних нот легко доступні для вашому розпорядженні. 108 00:04:41,510 --> 00:04:44,450 І, нарешті, у нас є те, що називається CS50 Обговорити, 109 00:04:44,450 --> 00:04:48,082 форум, в якому, якщо в ніч перед ви робите ваші проблеми, скажімо, 110 00:04:48,082 --> 00:04:49,880 у вас є питання. 111 00:04:49,880 --> 00:04:52,340 Увійти в CS50 Обговорити. 112 00:04:52,340 --> 00:04:53,190 Задайте своє питання. 113 00:04:53,190 --> 00:04:55,820 І тоді один з hundreds-- можливо, thousands-- однолітків 114 00:04:55,820 --> 00:04:57,960 приймаючи цей клас онлайн буде увійти. 115 00:04:57,960 --> 00:05:01,182 І, може бути, хтось може отримати Ваш відповідь перед банкою TA. 116 00:05:01,182 --> 00:05:03,390 По суті, це просто онлайн форум, який ми всі можемо 117 00:05:03,390 --> 00:05:04,556 використовувати, щоб обговорити наші проблеми. 118 00:05:04,556 --> 00:05:06,483 Круто. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ДОБРЕ. 121 00:05:11,550 --> 00:05:13,220 Так проблема встановлює. 122 00:05:13,220 --> 00:05:17,840 Ми збираємося прямо в товщиною проблеми встановіть два. 123 00:05:17,840 --> 00:05:20,570 Багато хто з нас вже боролися з проблемою встановити один. 124 00:05:20,570 --> 00:05:24,460 Ми вже знаємо, що, можливо, чекає протягом минулої ночі, щоб зробити ваше PSET 125 00:05:24,460 --> 00:05:28,170 не найрозумніший, що потрібно зробити в CS50. 126 00:05:28,170 --> 00:05:32,380 >> Поради та підказки по суті для Успіх читаються весь спец. 127 00:05:32,380 --> 00:05:36,270 Як багато з вас вже читати специфікації для PSET 2? 128 00:05:36,270 --> 00:05:36,770 ДОБРЕ. 129 00:05:36,770 --> 00:05:39,840 Це тверде кількість. 130 00:05:39,840 --> 00:05:43,210 Я знаю, ви хлопці, напевно, визнали зараз специфікації дійсно довго. 131 00:05:43,210 --> 00:05:45,700 Вони дійсно, дійсно довго. 132 00:05:45,700 --> 00:05:49,630 >> Це дійсно важко читати кожен рядок цього обережно слово за словом. 133 00:05:49,630 --> 00:05:52,780 Ви хочете, щоб просто побіжно, де він говорить вам щось робити. 134 00:05:52,780 --> 00:05:54,459 Я можу гарантувати вам, не робіть цього. 135 00:05:54,459 --> 00:05:56,750 Якщо ви зробите це, ви, ймовірно, буду сумувати-то 136 00:05:56,750 --> 00:05:58,458 де він говорить вам, як почати проблему 137 00:05:58,458 --> 00:06:01,140 або говорить вам, що ім'я ваша проблема, чи це говорить вам, 138 00:06:01,140 --> 00:06:03,720 це, мабуть, кращий спосіб щоб почати робити вашу проблему. 139 00:06:03,720 --> 00:06:05,050 І тоді ви будете втрачені. 140 00:06:05,050 --> 00:06:08,219 >> При спробі прочитати вашу спекуляція на півдорозі, 141 00:06:08,219 --> 00:06:10,510 багато важливої information--, що ви не 142 00:06:10,510 --> 00:06:12,260 буде в змозі дійсно доступу. 143 00:06:12,260 --> 00:06:13,219 Так що читайте всю специфікацію. 144 00:06:13,219 --> 00:06:15,468 Спробуйте прочитати всю специфікацію на перш ніж прийти до розділу, 145 00:06:15,468 --> 00:06:17,360 бо тоді, коли ми говорити про PSET, 146 00:06:17,360 --> 00:06:21,070 ми всі можемо мати уявлення що відбувається. 147 00:06:21,070 --> 00:06:25,169 >> По-друге, це концепція що я буду посилатися на подобається 148 00:06:25,169 --> 00:06:26,710 багато протягом усього семестру. 149 00:06:26,710 --> 00:06:30,070 Але по суті, нам назустріч, вірно? 150 00:06:30,070 --> 00:06:33,970 Мене, як ваш ТА і Джейсон, звичайно менеджер і Scaz якості професора 151 00:06:33,970 --> 00:06:37,120 і Девід, як ваш професор і всі інші милі ТП в цьому процесі, 152 00:06:37,120 --> 00:06:39,830 помічниками в цьому course-- ми зробимо все можливе, 153 00:06:39,830 --> 00:06:42,965 щоб гарантувати, що ви встановлені до успіху в цьому процесі. 154 00:06:42,965 --> 00:06:43,840 Ми проводитимемо розділ. 155 00:06:43,840 --> 00:06:44,870 Ми проводитимемо робочі години. 156 00:06:44,870 --> 00:06:47,087 Ми відповімо ваш телефон дзвінки, відповідати на електронну пошту, 157 00:06:47,087 --> 00:06:49,670 зробити все від нас залежне, щоб зробити впевнений, що ваші запитання відповідає. 158 00:06:49,670 --> 00:06:51,460 >> Тим не менш, допомогти нам теж. 159 00:06:51,460 --> 00:06:52,450 Нам назустріч. 160 00:06:52,450 --> 00:06:56,040 Якщо ви приїхали в робочий час НЕ пішовши в розділі не 161 00:06:56,040 --> 00:07:02,060 побачивши лекції, маючи ніякого Ідея, що відбувається, бути, як мені допомогти. 162 00:07:02,060 --> 00:07:04,350 Я збираюся бути, як добре, я перепрошую. 163 00:07:04,350 --> 00:07:06,410 Це може бути час, щоб надати що плече, щоб кричати на, 164 00:07:06,410 --> 00:07:08,959 тому що я не впевнений, що я можу зробити, щоб допомогти вам 165 00:07:08,959 --> 00:07:12,000 якщо ви не намагаєтеся принаймні, допомога самі трохи на початку. 166 00:07:12,000 --> 00:07:12,910 Нам назустріч. 167 00:07:12,910 --> 00:07:15,020 Ви знаєте, будь ласка, приходьте готовий відповісти і отримати 168 00:07:15,020 --> 00:07:16,353 готові брати участь в матеріалі. 169 00:07:16,353 --> 00:07:19,342 Це робить речі набагато простіше для всіх учасників. 170 00:07:19,342 --> 00:07:22,970 Так, це досить багато його. 171 00:07:22,970 --> 00:07:23,720 >> Класифікація. 172 00:07:23,720 --> 00:07:29,250 Так на програмі, це досить в глибині відносно, як ми клас. 173 00:07:29,250 --> 00:07:32,440 Але по суті, пробій в це 50% Вашого сорти 174 00:07:32,440 --> 00:07:34,530 будуть psets, які прекрасний, бо це 175 00:07:34,530 --> 00:07:37,400 де ви витрачаєте величезну Більшість свого часу курс на. 176 00:07:37,400 --> 00:07:39,854 Вікторини 40%, і ваш Остаточний проект буде 10%. 177 00:07:39,854 --> 00:07:42,520 Там буде два вікторини по всьому курс семестру. 178 00:07:42,520 --> 00:07:47,050 Я думаю, що раз і дати також перераховані на програмі. 179 00:07:47,050 --> 00:07:49,210 >> Таким чином, що ми будемо бути сортування ваші psets 180 00:07:49,210 --> 00:07:53,930 є те, що у нас є, по суті чотирьох цінності, які ми приписуємо кожного сорту. 181 00:07:53,930 --> 00:07:57,250 У нас є значення обсягу, Правильність, дизайн, і стилю. 182 00:07:57,250 --> 00:08:01,530 Отже, як ви бачите, що це свого роду наш Формула для розрахунку psets. 183 00:08:01,530 --> 00:08:03,640 Три ми даємо найбільш Вага правильності, 184 00:08:03,640 --> 00:08:06,140 тому що очевидно, ваш тренер повинні відчувати за винятком випадків, 185 00:08:06,140 --> 00:08:08,480 що ми хочемо, щоб перевірити. 186 00:08:08,480 --> 00:08:11,000 >> Ви, хлопці, всі мають check50 у вашому розпорядженні. 187 00:08:11,000 --> 00:08:13,730 Це дуже корисна функція що ви, хлопці, все це може 188 00:08:13,730 --> 00:08:17,560 завантажити код до наших серверів, де ми будемо перевіряти її для вас. 189 00:08:17,560 --> 00:08:20,800 І ви бачили тих, frowny особи, усміхнені обличчя. 190 00:08:20,800 --> 00:08:22,119 Вони дійсно, дійсно корисно. 191 00:08:22,119 --> 00:08:23,910 Будь ласка, не будьте студент, який хотів спроб 192 00:08:23,910 --> 00:08:26,230 жорстко у всіх відповідей на них. 193 00:08:26,230 --> 00:08:30,050 Я безумовно бачив PSET де хто-небудь бачив всі значення check50 194 00:08:30,050 --> 00:08:33,429 і вони просто жорстко, якщо in-- це число, роздрукувати цей номер. 195 00:08:33,429 --> 00:08:35,080 Якщо це число, роздрукувати цього числа. 196 00:08:35,080 --> 00:08:36,090 Не роби цього. 197 00:08:36,090 --> 00:08:39,360 >> Навіть якщо технічно check50 правильно, 198 00:08:39,360 --> 00:08:41,809 Ваш спосіб вирішення Проблема не правильно. 199 00:08:41,809 --> 00:08:45,770 Так просто використовувати check50 економно. 200 00:08:45,770 --> 00:08:48,497 Але і переконайтеся, що ви зрозуміти, як це працює, 201 00:08:48,497 --> 00:08:50,580 Програма функціонує на додаток до check50, 202 00:08:50,580 --> 00:08:53,120 тому що ми не можемо перевірити кожен можливий випадок check50. 203 00:08:53,120 --> 00:08:55,440 Ми будемо тестувати деякі з них. 204 00:08:55,440 --> 00:09:00,390 >> Дизайн по суті справи, як добре розроблена ваш код? 205 00:09:00,390 --> 00:09:04,150 Якщо ви копіювання вставки декількох рядків коду багато, багато разів. 206 00:09:04,150 --> 00:09:06,960 Може бути, ви не мають цілком кращий дизайн в коді. 207 00:09:06,960 --> 00:09:09,470 Можливо, настав час додати, що цикл. 208 00:09:09,470 --> 00:09:12,090 По суті, тут це просто все про спробу зробити ваш код, 209 00:09:12,090 --> 00:09:17,010 намагаюся написати код, як ефективно як можна так, що ваша програма працює 210 00:09:17,010 --> 00:09:19,630 якомога швидше. 211 00:09:19,630 --> 00:09:20,996 >> Нарешті, у нас є стиль. 212 00:09:20,996 --> 00:09:24,360 Так стиль свого роду довільним, суб'єктивним. 213 00:09:24,360 --> 00:09:27,470 Я знаю, що ми офіційно є стиль 50 керівництво для CS50, 214 00:09:27,470 --> 00:09:30,050 де він говорить тобі, о, ви, повинен мати місце тут. 215 00:09:30,050 --> 00:09:32,220 Ви повинні роду форматі код таким чином. 216 00:09:32,220 --> 00:09:34,070 Ви повинні назвати це таким чином. 217 00:09:34,070 --> 00:09:38,180 >> Я дійсно не хвилює, як такої, як Ви обираєте для оформлення коду, 218 00:09:38,180 --> 00:09:39,840 як довго, як вам залишатися послідовним. 219 00:09:39,840 --> 00:09:43,732 Наприклад, якщо ви хочете залишити простір після ваших чотирьох 220 00:09:43,732 --> 00:09:45,690 до вашого чотири цикли, просто робити, що кожен раз. 221 00:09:45,690 --> 00:09:46,523 Не вид це зробити. 222 00:09:46,523 --> 00:09:47,730 Не зробити це в інший час. 223 00:09:47,730 --> 00:09:51,046 Якщо ви хочете зберегти кучеряве дужки простір певним чином, 224 00:09:51,046 --> 00:09:52,170 просто завжди зробити це таким чином. 225 00:09:52,170 --> 00:09:54,628 Не вид зробити це десь тут і десь не там. 226 00:09:54,628 --> 00:09:57,010 Коли ми класифікації, це дійсно важко 227 00:09:57,010 --> 00:09:59,420 якщо у мене немає ідеї, як Ви форматування коду, 228 00:09:59,420 --> 00:10:02,064 речі дурні й не до діла. 229 00:10:02,064 --> 00:10:04,980 Якщо ви просто тримати його у відповідність, це набагато легше для мене, як велика 230 00:10:04,980 --> 00:10:06,310 щоб мати можливість читати ваш код. 231 00:10:06,310 --> 00:10:09,393 Це набагато простіше для вас, як студенту щоб мати можливість переглядати код 232 00:10:09,393 --> 00:10:11,720 і подивитися, що трапилося з це скоротити чому є проблеми. 233 00:10:11,720 --> 00:10:15,740 Стиль є одним з найпростіших речей, ви, хлопці, можете зробити, щоб отримати повний оцінки. 234 00:10:15,740 --> 00:10:18,770 По суті, якщо ви просто піклуються, якщо Ви платите п'ять хвилин уваги 235 00:10:18,770 --> 00:10:22,760 щоб ваш код щотижня, ви повинні бути повний стиль очок. 236 00:10:22,760 --> 00:10:26,020 >> Нарешті, у нас є те, що називається множник масштабу. 237 00:10:26,020 --> 00:10:28,890 Scope-- Я знаю, що це великий Слово, особливо в цьому класі. 238 00:10:28,890 --> 00:10:31,030 Але сфера, все, що кошти є те, що ви намагаєтеся 239 00:10:31,030 --> 00:10:33,670 в psets на краще вашої здатності. 240 00:10:33,670 --> 00:10:37,180 Якщо ви включите в трьох з з ваших чотирьох проблем 241 00:10:37,180 --> 00:10:39,460 і навіть не спроба Останній, ви, ймовірно, 242 00:10:39,460 --> 00:10:41,630 збирається втрачати кілька точок на сферу. 243 00:10:41,630 --> 00:10:44,560 >> Навіть якщо ви тільки починаєте проблему, зробити все можливе, щоб пройти через це. 244 00:10:44,560 --> 00:10:47,691 Навіть якщо це не працює, вимкніть його, бо показує і демонструє 245 00:10:47,691 --> 00:10:50,190 нам, що ви намагаєтеся, що Ви спробували встановити проблему 246 00:10:50,190 --> 00:10:51,430 до кращої з Вашої здібності. 247 00:10:51,430 --> 00:10:53,800 І тоді ми можемо дати вам повна очок за рамки. 248 00:10:53,800 --> 00:10:58,715 >> Область є також дуже важливим, коли ми говорити про низьку краплі оцінка PSET. 249 00:10:58,715 --> 00:11:02,010 Так протягом з семестр, ви, хлопці, є дев'ять psets. 250 00:11:02,010 --> 00:11:05,340 І ми насправді буде падати найнижча оцінка з тих дев'яти, 251 00:11:05,340 --> 00:11:07,670 але тільки якщо у вас є повний точки розмах. 252 00:11:07,670 --> 00:11:11,120 >> Так що, якщо ви включите в неповному PSET, На жаль, ми не можемо відмовитися, що один, 253 00:11:11,120 --> 00:11:13,540 бо Вашій області не були завершені очок. 254 00:11:13,540 --> 00:11:16,570 Таким чином, навіть якщо у вас є жахливий тиждень де ви вмираєте і ви хворі 255 00:11:16,570 --> 00:11:20,040 або ваша собака вмирає, ваша кішка вмирає, і ви перевантажені домашніми завданнями, 256 00:11:20,040 --> 00:11:21,074 просто спробувати PSET. 257 00:11:21,074 --> 00:11:22,490 Зробіть це в міру ваших можливостей. 258 00:11:22,490 --> 00:11:23,840 Якщо це не працює, це не має значення. 259 00:11:23,840 --> 00:11:24,506 Просто увімкніть його в. 260 00:11:24,506 --> 00:11:26,590 Принаймні, ми можемо дати Ви очки за зусилля. 261 00:11:26,590 --> 00:11:28,510 >> А при спробі в цьому класі. 262 00:11:28,510 --> 00:11:30,170 Принаймні, низькою краплі оцінка для зусилля. 263 00:11:30,170 --> 00:11:32,354 Так що, так. 264 00:11:32,354 --> 00:11:33,270 Це досить багато його. 265 00:11:33,270 --> 00:11:36,521 Хто-небудь є питання, щоб далеко, як ми сорту в класі? 266 00:11:36,521 --> 00:11:37,187 Або будь-який з них? 267 00:11:37,187 --> 00:11:41,220 Будь-який з них так far-- Розділи, офісна годин? 268 00:11:41,220 --> 00:11:41,720 Прохолодний. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ДОБРЕ. 271 00:11:47,800 --> 00:11:51,260 >> Так що це питання, яке не людина дійсно любить поговорити. 272 00:11:51,260 --> 00:11:53,084 Я справді не хотів, щоб про це говорити. 273 00:11:53,084 --> 00:11:55,250 Ви, хлопці, дійсно не хочу щоб почути мене говорити про це. 274 00:11:55,250 --> 00:11:57,690 Але, на жаль, ми всі повинні говорити про це. 275 00:11:57,690 --> 00:12:00,110 Девід провів 20 хвилин у лекції говорити про це. 276 00:12:00,110 --> 00:12:02,580 І це є предметом академічної чесності. 277 00:12:02,580 --> 00:12:08,110 >> Таким чином, ми всі тут, ймовірно, написана есе-то в нашій Єльського кар'єри. 278 00:12:08,110 --> 00:12:11,800 Ми, ймовірно, отримали розмова, де ми сказали не займатися плагіатом наш нарис, 279 00:12:11,800 --> 00:12:13,940 тому що робота не наша. 280 00:12:13,940 --> 00:12:18,109 У комп'ютерній науці, у нас є такий же концепції. 281 00:12:18,109 --> 00:12:20,150 Всі роботи, які ви надаєте, весь код, який ви пишете 282 00:12:20,150 --> 00:12:21,900 повинно бути код, який ви написали. 283 00:12:21,900 --> 00:12:24,280 Не повинно бути код, який Ви скопійовані з іншого. 284 00:12:24,280 --> 00:12:26,777 Не повинно бути код, який Ви гуглі і гепнувся в 285 00:12:26,777 --> 00:12:28,360 і ви дійсно не знаю, чи працює він. 286 00:12:28,360 --> 00:12:32,440 Ви начебто є почуття що він робить, але не зовсім. 287 00:12:32,440 --> 00:12:36,562 Якщо ви сумніваєтеся, по суті, це просто бути розумним. 288 00:12:36,562 --> 00:12:38,520 На нашому навчальному, у нас є цілий список речей, 289 00:12:38,520 --> 00:12:40,560 ми бачимо, як розумно в порівнянні з не розумно. 290 00:12:40,560 --> 00:12:43,820 >> Наприклад, розумно це ви і ваш друг 291 00:12:43,820 --> 00:12:47,360 обговорювали, що кращий спосіб піти про логіку вирішення проблеми. 292 00:12:47,360 --> 00:12:48,910 Це досить розумно. 293 00:12:48,910 --> 00:12:53,244 Те, що не було б розумно, якщо ви Хлопці зібралися, набрали такий же код, 294 00:12:53,244 --> 00:12:54,410 і виявилося в тому ж коді. 295 00:12:54,410 --> 00:12:56,302 Це не розумно. 296 00:12:56,302 --> 00:12:57,510 Те ж саме, свого роду есе. 297 00:12:57,510 --> 00:12:59,290 Якщо ви хочете, щоб обговорити з вашим другом, гей, 298 00:12:59,290 --> 00:13:00,220 це те, що я хочу написати про. 299 00:13:00,220 --> 00:13:02,500 Ці кроки, які я хочу часу, щоб написати про це, великий. 300 00:13:02,500 --> 00:13:03,208 Це чудово. 301 00:13:03,208 --> 00:13:04,790 Ласка, співпрацювати один з одним. 302 00:13:04,790 --> 00:13:06,540 Якщо ви, хлопці почати написати те ж саме, 303 00:13:06,540 --> 00:13:10,020 включити в тій же статті, що менше ОК. 304 00:13:10,020 --> 00:13:13,200 Тому, коли є сумніви, просто не зробити це. 305 00:13:13,200 --> 00:13:16,940 >> Тут ми в CS50, у нас є сценарії які працюють для автоматизації, щоб перевірити 306 00:13:16,940 --> 00:13:21,740 не тільки правильність коду, але також унікальність вашого коду. 307 00:13:21,740 --> 00:13:25,920 Тому, будь ласка, не ставте нас у становище того, щоб звернутися ваша справа EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Будь ласка, просто для всіх, давайте просто зробити це чудовий досвід. 309 00:13:31,110 --> 00:13:33,600 Кожен вчиться краще, всі ми щасливішими, 310 00:13:33,600 --> 00:13:37,926 і ми всі налаштовані на домогтися успіху в цьому процесі. 311 00:13:37,926 --> 00:13:39,800 Щось, що дуже Унікальність цього класу 312 00:13:39,800 --> 00:13:42,660 Я думаю, що кожен повинен дійсно звернути увагу на те, що у нас є 313 00:13:42,660 --> 00:13:44,930 те, що називається жаль застереження в нашій програмі. 314 00:13:44,930 --> 00:13:50,010 Так по суті, протягом 72 годин, якщо Ви впевнені, що ви зробили щось 315 00:13:50,010 --> 00:13:53,240 Ви не впевнені, був дійсно необхідності, будь ласка, приходьте до нас. 316 00:13:53,240 --> 00:13:57,220 Ми обіцяємо вам, що протягом 72 годин ми буде обробляти самі справи 317 00:13:57,220 --> 00:13:59,820 не звертаючи до вище влада в адміністрації. 318 00:13:59,820 --> 00:14:03,100 >> Так що, якщо ви прийшли до мене і кажуть, Енді, гей, я дійсно жалкую, 319 00:14:03,100 --> 00:14:07,620 але я думаю, що є пара рядків на мою Код вчора ввечері, що я начебто гуглі, 320 00:14:07,620 --> 00:14:10,120 зійшов з стека Переповнення, скопіюйте і вставити, 321 00:14:10,120 --> 00:14:13,680 і я дуже, дуже шкода про те, дайте мені знати. 322 00:14:13,680 --> 00:14:16,900 Будь ласка, не просто дозволити їй тліти і тільки сподіваюся, що я зловити його. 323 00:14:16,900 --> 00:14:17,784 Ми зловити його. 324 00:14:17,784 --> 00:14:18,450 Просто приходьте до мене. 325 00:14:18,450 --> 00:14:20,520 Дозвольте мені знати, протягом 72 годин. 326 00:14:20,520 --> 00:14:22,240 Ми з'ясувати, рішення. 327 00:14:22,240 --> 00:14:26,679 І ми обіцяємо, що ми не будемо посилатися на університетські влади по суті. 328 00:14:26,679 --> 00:14:29,220 Так що це у ваших інтересах просто бути чесним з усіма 329 00:14:29,220 --> 00:14:31,720 участь у процесі. 330 00:14:31,720 --> 00:14:34,630 >> ДОБРЕ. 331 00:14:34,630 --> 00:14:35,240 ДОБРЕ. 332 00:14:35,240 --> 00:14:37,800 Так що тепер, швидко, перш ніж Я рухатися далі, хто-небудь 333 00:14:37,800 --> 00:14:42,670 є питання, що стосуються логістики від того, як курси ми збираємося працювати, 334 00:14:42,670 --> 00:14:45,982 як секції збираються бігти, кожен з? 335 00:14:45,982 --> 00:14:46,711 ДОБРЕ. 336 00:14:46,711 --> 00:14:47,210 Так. 337 00:14:47,210 --> 00:14:48,126 >> АУДИТОРІЯ: [нерозбірливо]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI Пен: Так. 340 00:14:51,080 --> 00:14:54,850 Так як quizzes-- багато з вас в розділі понеділок / середовище? 341 00:14:54,850 --> 00:14:56,700 Як багато з вас в Вівторок / Четвер? 342 00:14:56,700 --> 00:14:58,550 ОК, так що це тверде сплати тут. 343 00:14:58,550 --> 00:15:00,900 Таким чином, шлях, який ми запускаємо це в Єльському університеті, що ми 344 00:15:00,900 --> 00:15:04,040 будуть мати два окремих quizzes-- один для кожного section--, що 345 00:15:04,040 --> 00:15:06,160 будуть прийняті під час занять. 346 00:15:06,160 --> 00:15:09,310 Я думаю, що це жовтень кінець жовтня, щось подібне, а тижні одна 347 00:15:09,310 --> 00:15:10,794 вікторини. 348 00:15:10,794 --> 00:15:11,960 Так, так просто прийти в клас. 349 00:15:11,960 --> 00:15:13,920 На цій понеділок або в середу, ви будете приймати тест. 350 00:15:13,920 --> 00:15:16,336 На цій вівторок або четвер, ви будете приймати різноманітні вікторини. 351 00:15:16,336 --> 00:15:18,570 Але той же матеріал буде покрита. 352 00:15:18,570 --> 00:15:19,160 Так. 353 00:15:19,160 --> 00:15:20,660 Гарне питання. 354 00:15:20,660 --> 00:15:21,160 Так. 355 00:15:21,160 --> 00:15:23,260 >> АУДИТОРІЯ: Де ми піти перевірити наші оцінки? 356 00:15:23,260 --> 00:15:23,926 >> ANDI Пен: Так. 357 00:15:23,926 --> 00:15:28,420 Так що я буду посилати поза адресу електронної пошти все, що щотижня 358 00:15:28,420 --> 00:15:31,460 коли вікторини graded-- або вибачте, коли psets оцінюються. 359 00:15:31,460 --> 00:15:34,120 Psets зазвичай виявилося опівдні або в п'ятницю. 360 00:15:34,120 --> 00:15:37,540 Так що я обіцяю, що я буду спробувати отримати їх назад до вас 361 00:15:37,540 --> 00:15:40,000 до полудня наступного п'ятницю. 362 00:15:40,000 --> 00:15:44,950 >> Всякий раз, коли я Grade A PSET, я пошлю з повідомлення про книгу класу 363 00:15:44,950 --> 00:15:47,070 що говорить вам ваш рахунок можна дивитися онлайн. 364 00:15:47,070 --> 00:15:52,022 Так прямо на цьому тижні, після того як я завершити класифікації psets минулого тижня, 365 00:15:52,022 --> 00:15:54,230 ви, хлопці, отримаєте електронною поштою Повідомлення кажу вам, 366 00:15:54,230 --> 00:15:55,870 Ей, це де ви перейти переглядати оцінки. 367 00:15:55,870 --> 00:15:57,680 І ви можете бачити кожен Аналіз ваших класах. 368 00:15:57,680 --> 00:15:58,555 Ви можете бачити коментарі. 369 00:15:58,555 --> 00:16:00,360 О, швидко, що також. 370 00:16:00,360 --> 00:16:03,060 У розділі коментарів у великий Книга, де я, напевно, 371 00:16:03,060 --> 00:16:05,300 проводять більшу частину свого часу класифікації. 372 00:16:05,300 --> 00:16:07,094 Так одна річ, яка Дуже важливо, коли 373 00:16:07,094 --> 00:16:09,010 Ви, хлопці, перегляду Ваші сорту на ваших psets 374 00:16:09,010 --> 00:16:11,400 не тільки шукає на фізичному рахунок 375 00:16:11,400 --> 00:16:14,630 але також знайшли час, щоб дійсно прочитав мої коментарі. 376 00:16:14,630 --> 00:16:17,820 >> Часто це дає вам зворотний зв'язок про те, як ви вирішуєте проблему. 377 00:16:17,820 --> 00:16:20,480 Якщо вам потрібно зробити, щось трохи краще, 378 00:16:20,480 --> 00:16:24,080 конструктивна критика зазвичай краще призначати в тих розділі коментарів. 379 00:16:24,080 --> 00:16:26,950 Так що будь ласка, будь ласка, я збираюся провести час на написання коментарів. 380 00:16:26,950 --> 00:16:30,440 Будь ласка, я би дуже вдячний якщо ви, хлопці, буде читати ці коментарі. 381 00:16:30,440 --> 00:16:31,170 ДОБРЕ. 382 00:16:31,170 --> 00:16:34,150 Прохолодний. 383 00:16:34,150 --> 00:16:34,680 >> Добре. 384 00:16:34,680 --> 00:16:40,680 Отже, ми збираємося, щоб почати говорити і просто розгляд швидко 385 00:16:40,680 --> 00:16:45,040 деякі з матеріалу з нулю просто так ми тиждень 386 00:16:45,040 --> 00:16:48,760 на правій сторінці для починаючи проблеми на цьому тижні. 387 00:16:48,760 --> 00:16:52,600 Таким чином, у той час як петля є одним з трьох типів петель 388 00:16:52,600 --> 00:16:54,510 ми обговорювали раніше в цьому класі. 389 00:16:54,510 --> 00:16:57,060 >> Деякий час циклу істотно написано в синтаксисі 390 00:16:57,060 --> 00:17:00,666 де, в той час як певний стан, Зробіть це кілька разів, вірно? 391 00:17:00,666 --> 00:17:02,040 Думайте про нього, в цьому графіку тут. 392 00:17:02,040 --> 00:17:04,780 Ви збираєтеся починаються в певна точка в коді. 393 00:17:04,780 --> 00:17:09,030 Ви збираєтеся увійти в умова циклу if-- я не знаю-- х менше, ніж один. 394 00:17:09,030 --> 00:17:11,677 >> Якщо це правда, що ви збираєтеся для виконання тіла циклу. 395 00:17:11,677 --> 00:17:14,010 І ви збираєтеся продовжувати робити що знову, знову, знову, 396 00:17:14,010 --> 00:17:17,900 знову і over-- тому це loop--, поки ваш умова не стане 397 00:17:17,900 --> 00:17:19,079 помилковий. 398 00:17:19,079 --> 00:17:22,140 Так що в цьому шляху, в той час як петлі є одним з найпростіших способів 399 00:17:22,140 --> 00:17:25,619 написати який-небудь умови, що Необхідно повторити знову і більше. 400 00:17:25,619 --> 00:17:28,109 Тільки будьте обережні, коли Ви пишете якийсь петлі 401 00:17:28,109 --> 00:17:32,140 що у вас є вихід в стан а також оновлення для б то не 402 00:17:32,140 --> 00:17:36,714 так що ваш цикл не просто доведеться знову і знову нескінченно. 403 00:17:36,714 --> 00:17:38,630 У будь-якому випадку, ви будете хочуть, щоб переконатися, 404 00:17:38,630 --> 00:17:42,670 що ви змінюєте деякий аспект код або в кінці циклу 405 00:17:42,670 --> 00:17:46,680 просто щоб переконатися, що у вас є спосіб прогресуючої до стані 406 00:17:46,680 --> 00:17:48,400 що ви хочете, щоб задовольнити до кінця. 407 00:17:48,400 --> 00:17:50,239 Чи має це сенс для всіх? 408 00:17:50,239 --> 00:17:52,530 Ми просто не хочемо бути опинилися в цій спіралі де 409 00:17:52,530 --> 00:17:55,710 ми йдемо навколо і навколо і немає ніякого способу, щоб розірвати петлю. 410 00:17:55,710 --> 00:17:58,844 І кожен цикл по суті є спосіб зробити це. 411 00:17:58,844 --> 00:17:59,344 ДОБРЕ. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> По-друге, багато хто з вас у ваших psets Маріо 414 00:18:06,060 --> 00:18:08,910 ймовірно, використовувати Цей тип циклу. 415 00:18:08,910 --> 00:18:11,802 Це називається робити під час циклу. 416 00:18:11,802 --> 00:18:14,510 Перш за все, хто може сказати мені, в чому різниця між справ 417 00:18:14,510 --> 00:18:16,586 в той час як цикл і в той час як цикл? 418 00:18:16,586 --> 00:18:17,086 Так. 419 00:18:17,086 --> 00:18:21,030 >> Аудиторія: зроби той час як цикл працює на перший [нерозбірливо]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI Пен: Так, саме так. 421 00:18:22,120 --> 00:18:27,130 Так зроби той час як цикл завжди робить те, що знаходиться всередині справ, в дужках 422 00:18:27,130 --> 00:18:30,520 там і робить, що умова до перевірки the-- вибачте, 423 00:18:30,520 --> 00:18:32,940 робить що-код перед перевірка стану. 424 00:18:32,940 --> 00:18:37,200 І це особливо актуально для нас Тут в цьому класі, бо більшість часу 425 00:18:37,200 --> 00:18:41,450 ми збираємося хочете, щоб спонукати користувач протягом деякого роду входом. 426 00:18:41,450 --> 00:18:43,520 А потім, залежно від вхід вони дають нам, 427 00:18:43,520 --> 00:18:46,150 то ми можемо оцінити, ох, зробити ми повинні спонукати їх знову? 428 00:18:46,150 --> 00:18:49,930 >> Таким чином, в Маріо, якщо користувач дав вам негативне зростання, наприклад, 429 00:18:49,930 --> 00:18:52,990 Ви збираєтеся першому рядку і робити все, що знаходиться всередині. 430 00:18:52,990 --> 00:18:54,820 Тоді ви йдете, щоб перевірити час. 431 00:18:54,820 --> 00:18:57,570 Ви знаєте, це негативний 1, є те, що позитивне число? 432 00:18:57,570 --> 00:19:00,680 Якщо це не так, я збираюся піти назад і повторити робити і повторення 433 00:19:00,680 --> 00:19:03,950 і повторювати і повторювати, поки вони нарешті, дати вам номер, який вам подобається, 434 00:19:03,950 --> 00:19:07,002 що всі ми можемо використовувати в нашому коді. 435 00:19:07,002 --> 00:19:09,210 Це дуже важливо для по суті, будь-який користувацький ввід. 436 00:19:09,210 --> 00:19:11,760 Я можу гарантувати вам, будь раз в PSET де 437 00:19:11,760 --> 00:19:15,070 ми просимо вас ввести якої-небудь коду, ми 438 00:19:15,070 --> 00:19:17,540 ймовірно, щоб дати вам тест випадок, в якому ми 439 00:19:17,540 --> 00:19:21,200 збираюся дати вам щось погане, що це намагатиметься зламати ваш код. 440 00:19:21,200 --> 00:19:25,044 >> Якщо ми намагаємося запитати вас Для введення число, ми можемо просто дати вам рядок 441 00:19:25,044 --> 00:19:26,460 і подивитися, як ви б впоратися з цим. 442 00:19:26,460 --> 00:19:30,610 Якщо ми просимо вас використовувати вік, ми можемо дати вам негативне число 443 00:19:30,610 --> 00:19:32,340 щоб подивитися, як ви б впоратися з цим. 444 00:19:32,340 --> 00:19:37,260 Просто переконайтеся, що ви, хлопці, тестування на випадки, в яких ви не отримаєте найкращий 445 00:19:37,260 --> 00:19:38,590 вхід, давайте просто сказати. 446 00:19:38,590 --> 00:19:40,510 І зроби той час як цикл це часто кращий 447 00:19:40,510 --> 00:19:45,260 спосіб створити свій код так, що він відповідає, що обсяг. 448 00:19:45,260 --> 00:19:45,760 ДОБРЕ. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ДОБРЕ. 451 00:19:49,470 --> 00:19:53,270 Так що це, ймовірно, найбільш Комплекс цикл з трьох 452 00:19:53,270 --> 00:19:54,990 що ми дивилися на досі. 453 00:19:54,990 --> 00:19:56,689 І, здається, дуже страшно на перший погляд. 454 00:19:56,689 --> 00:19:59,730 Але я гарантую вам, після того, як ви, хлопці, отримати навик, як використовувати цикл, 455 00:19:59,730 --> 00:20:03,320 це один з найбільш корисних речей, найбільш корисних інструментів у вашому арсеналі 456 00:20:03,320 --> 00:20:05,300 для просування вперед у цьому класі. 457 00:20:05,300 --> 00:20:09,920 >> Так, наприклад, в порожньому, у нас була ця дуже простий блок 458 00:20:09,920 --> 00:20:13,180 що тільки що сказав, повторювати це напевно фрази певну кількість разів. 459 00:20:13,180 --> 00:20:16,260 До речі, SAJ-- це Scaz Енді Джейсон. 460 00:20:16,260 --> 00:20:18,740 Ми часто увійдіть наші листи Сай. 461 00:20:18,740 --> 00:20:20,360 Якщо ми говоримо, Сай, не плутати. 462 00:20:20,360 --> 00:20:22,630 Ось тільки ми. 463 00:20:22,630 --> 00:20:28,600 >> Таким чином, в порожньому, ми були в змозі мати блок, який сказав, що я люблю повторювати Сай! 464 00:20:28,600 --> 00:20:29,430 10 разів. 465 00:20:29,430 --> 00:20:30,130 Дуже просто. 466 00:20:30,130 --> 00:20:32,302 Логіка, яка є дуже, дуже просто, вірно? 467 00:20:32,302 --> 00:20:35,260 Я хочу, щоб спочатку пройти через перший час і бачити, що вдруге 468 00:20:35,260 --> 00:20:38,510 і бачити, що втретє, і так далі і так далі, поки ви не натиснете 10. 469 00:20:38,510 --> 00:20:41,960 >> І те, як ми буде уявляти, що в Код просто через простий цикл. 470 00:20:41,960 --> 00:20:45,440 Таким чином, для, ви збираєтеся оголосити змінна тут, у цьому випадку, 471 00:20:45,440 --> 00:20:46,349 з внутр. 472 00:20:46,349 --> 00:20:47,390 Ми збираємося назвати це я. 473 00:20:47,390 --> 00:20:49,500 Ми збираємося, щоб ініціалізувати його в 0. 474 00:20:49,500 --> 00:20:52,490 І зупинка видання буде я менше 10. 475 00:20:52,490 --> 00:20:54,622 І оновлення буде я ++. 476 00:20:54,622 --> 00:20:57,750 >> І в циклі, це відбувається не виконувати поки врешті-решт його 477 00:20:57,750 --> 00:21:01,490 парад кінець condition--, в якому так, він збирається розірвати петлю. 478 00:21:01,490 --> 00:21:04,600 Там повинно бути речі, які ви Хлопці все начебто бачив 479 00:21:04,600 --> 00:21:07,270 і повинен був зробити для вашої проблеми встановіть один. 480 00:21:07,270 --> 00:21:12,310 Хто-небудь є які-небудь питання відносно, петель прямо зараз? 481 00:21:12,310 --> 00:21:12,930 ДОБРЕ. 482 00:21:12,930 --> 00:21:13,430 Відмінно. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ДОБРЕ. 485 00:21:18,620 --> 00:21:22,270 Так що для тих з вас, хто читати Pset специфікації на цьому тижні 486 00:21:22,270 --> 00:21:27,690 знаєте, що ми будемо мати на роботу те, що називається ASCII і таблиці ASCII. 487 00:21:27,690 --> 00:21:32,380 Давид в лекції підійшов стисло як комп'ютери все essentially-- 488 00:21:32,380 --> 00:21:35,410 кодується в комп'ютері в двійковий, в нулів і одиниць. 489 00:21:35,410 --> 00:21:39,740 І те, комп'ютери здатні для зберігання різних цінностей, на додаток 490 00:21:39,740 --> 00:21:44,360 в нулів і одиниць є відображенням через ці цифри являють інші цифри 491 00:21:44,360 --> 00:21:47,220 або суттєво інші характери. 492 00:21:47,220 --> 00:21:49,810 >> Таким чином, в цьому випадку, ASCII-table-- все це робить 493 00:21:49,810 --> 00:21:53,600 це символи карту, або символи, на номери. 494 00:21:53,600 --> 00:21:57,385 Так файлу вихідного коду в Ваш computer-- він бачить, 495 00:21:57,385 --> 00:22:00,010 агов, купа нулів і одиниць, нулів і одиниць, нулів і одиниць. 496 00:22:00,010 --> 00:22:02,350 Це те, що зберігається в фактичний обсяг пам'яті вашого комп'ютера. 497 00:22:02,350 --> 00:22:04,750 >> Але коли ми, люди, хочемо спілкуватися з комп'ютером, 498 00:22:04,750 --> 00:22:08,249 ми want-- сказати, наприклад, якщо я хочу заголовну A, 499 00:22:08,249 --> 00:22:10,540 Я збираюся потрібно якимось чином розповідати комп'ютер, ох, 500 00:22:10,540 --> 00:22:16,300 коли я друкую у верхньому регістрі A, я маю на увазі це подання в двійковій системі. 501 00:22:16,300 --> 00:22:22,260 >> І так, як ми робимо, що кинув довільне, що називається таблицю ASCII, 502 00:22:22,260 --> 00:22:25,020 де, як люди, так як програмісти, деякий час назад, 503 00:22:25,020 --> 00:22:28,660 ми довільно вирішив, що ми збиралися призначити ці номери 504 00:22:28,660 --> 00:22:30,960 Значення цих символів в. 505 00:22:30,960 --> 00:22:32,720 >> Таким чином, ви, хлопці, можете Google це в Інтернеті. 506 00:22:32,720 --> 00:22:37,120 Я думаю, що є посилання на нього у вашій pset-- просто ASCII таблиця карти, ASCII 507 00:22:37,120 --> 00:22:37,720 Таблиця. 508 00:22:37,720 --> 00:22:40,722 Це просто переводить двійковий номера в символів. 509 00:22:40,722 --> 00:22:42,930 І це буде дуже корисно для вашої проблеми набору 510 00:22:42,930 --> 00:22:45,470 всякий раз, коли ви хочете, щоб розрахувати що-небудь або якщо ви 511 00:22:45,470 --> 00:22:47,880 хочу, щоб відобразити певний символи або цілі числа 512 00:22:47,880 --> 00:22:50,327 або маніпулювати певні символи. 513 00:22:50,327 --> 00:22:52,160 Це збирається бути дуже Важливо, що ви все 514 00:22:52,160 --> 00:22:55,140 знаєте, як переміщатися таблицю ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Так, наприклад, у верхньому регістрі A представлена ​​на число 65. 516 00:23:01,260 --> 00:23:04,207 І в нижньому регістрі представлена ​​97. 517 00:23:04,207 --> 00:23:07,040 Тому важливо знати, що Різниця між цими двома значеннями 518 00:23:07,040 --> 00:23:08,320 32. 519 00:23:08,320 --> 00:23:13,210 Часто, якщо вам потрібно конвертувати з один до одного, різниця 32. 520 00:23:13,210 --> 00:23:15,710 І не хвилюйтеся, якщо ви вид збентежений про це спершу. 521 00:23:15,710 --> 00:23:20,230 Ми підемо над тим, як ми б використовувати це в реальному коду. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ДОБРЕ. 524 00:23:26,380 --> 00:23:30,770 Так що для тих з вас з ноутбуками поза, не соромтеся, щоб підтягти таблицю ASCII, 525 00:23:30,770 --> 00:23:36,030 тому що вони, ймовірно, вимагають ви, хлопці, щоб посилатися на 526 00:23:36,030 --> 00:23:38,100 те, що персонажі. 527 00:23:38,100 --> 00:23:38,640 ДОБРЕ. 528 00:23:38,640 --> 00:23:42,840 >> Так, знаючи, що деякі символи відображаються на певні номери, 529 00:23:42,840 --> 00:23:47,240 якби я працювати тільки перший лінія, що code-- в PRINTF а, 530 00:23:47,240 --> 00:23:50,900 нижній регістр в мінус, прописні А. Хто-небудь 531 00:23:50,900 --> 00:23:55,880 є припущення про те, що буде друк з екрану прямо зараз? 532 00:23:55,880 --> 00:23:58,190 >> Отже, насамперед, те, що робить Рядкові представляють? 533 00:23:58,190 --> 00:24:00,990 Яке число є те, що кодується в таблиці ASCII. 534 00:24:00,990 --> 00:24:01,490 На жаль? 535 00:24:01,490 --> 00:24:02,630 >> АУДИТОРІЯ: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI Пен: 97, великий. 537 00:24:03,630 --> 00:24:05,077 І те, що у верхньому регістрі A? 538 00:24:05,077 --> 00:24:06,330 >> АУДИТОРІЯ: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI Пен: Так що 97 мінус 65? 540 00:24:08,255 --> 00:24:09,227 >> АУДИТОРІЯ: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI Пен: ОК. 542 00:24:09,810 --> 00:24:13,530 Так що ви, хлопці, думаєте, що станеться, коли я вхід, рядок коду 543 00:24:13,530 --> 00:24:14,670 в моєму комп'ютері? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> АУДИТОРІЯ: [нерозбірливо]. 546 00:24:19,896 --> 00:24:21,020 ANDI Пен: На ​​жаль, говорити. 547 00:24:21,020 --> 00:24:22,520 Не турбуйтеся. 548 00:24:22,520 --> 00:24:25,750 Це дуже безпечно Середа, мінус камера. 549 00:24:25,750 --> 00:24:27,550 Ми всі, метою яких без турбот. 550 00:24:27,550 --> 00:24:30,940 Просто ми всі збираємося робити вигляд, як це просто нам охолодження в цій кімнаті. 551 00:24:30,940 --> 00:24:31,480 Не турбуйтеся. 552 00:24:31,480 --> 00:24:33,410 Жодне питання не є надто нерозумно. 553 00:24:33,410 --> 00:24:35,300 Відповіді не дурний відповідь. 554 00:24:35,300 --> 00:24:38,260 Я, ймовірно, буде робити помилки в ході мого навчання. 555 00:24:38,260 --> 00:24:40,740 Серйозно, хлопці, просто ляпнути це. 556 00:24:40,740 --> 00:24:43,092 Будьте впевнені в собі, ви знаєте? 557 00:24:43,092 --> 00:24:43,800 Так що це було? 558 00:24:43,800 --> 00:24:47,990 Хто сказав, що остання відповідь? 559 00:24:47,990 --> 00:24:48,540 ДОБРЕ. 560 00:24:48,540 --> 00:24:50,380 Кричіть, що красиво і зрозуміло. 561 00:24:50,380 --> 00:24:51,220 >> АУДИТОРІЯ: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI Пен: 32. 563 00:24:51,850 --> 00:24:54,141 ОК, давайте запустимо цей код і побачити, якщо це те, що відбувається. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ДОБРЕ. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Отже, як ви, хлопці, можете вид см, типовий позначення Я 568 00:25:06,360 --> 00:25:12,250 налаштувати тут, як ми буде використовувати якої-небудь програми в нашому комп'ютері. 569 00:25:12,250 --> 00:25:14,770 У нас є основною функцією в нашій основної функції. 570 00:25:14,770 --> 00:25:17,265 Я просто хочу, щоб скопіювати і вставте цей рядок коду. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Також будьте обережні, коли ви, хлопці, копіюванні і вставці код. 573 00:25:23,540 --> 00:25:28,750 Іноді деякі оператори НЕ обклеювати правильно. 574 00:25:28,750 --> 00:25:31,397 У цьому випадку, мінус Знак був насправді тире. 575 00:25:31,397 --> 00:25:32,980 І тому комп'ютер не забрати його. 576 00:25:32,980 --> 00:25:35,870 Так що мені довелося повернутися і фізично передруковувати, що. 577 00:25:35,870 --> 00:25:37,846 Тільки будьте обережні, коли ви, хлопці, робите це. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ДОБРЕ. 580 00:25:42,660 --> 00:25:43,980 Ми збираємося запустити це тут. 581 00:25:43,980 --> 00:25:45,670 Отже, ми збираємося, щоб компакт-диска в нашій розділ2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Я назвав цю програму asciimath. 584 00:25:52,030 --> 00:25:55,690 Так що пам'ятайте, коли ми біжимо будь Програма, ми хочемо, щоб скомпілювати його 585 00:25:55,690 --> 00:25:57,150 запустивши його через наш марки. 586 00:25:57,150 --> 00:26:00,030 І тоді ми дійсно хочемо працювати Програма роблячи точка-слеш. 587 00:26:00,030 --> 00:26:01,280 Отже, ми збираємося, щоб ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Право, ми йдемо. 590 00:26:06,590 --> 00:26:07,410 І ми бачимо, 32. 591 00:26:07,410 --> 00:26:07,930 Молодці. 592 00:26:07,930 --> 00:26:10,340 Ви заслуговуєте цукерку. 593 00:26:10,340 --> 00:26:11,160 Цукерки для вас. 594 00:26:11,160 --> 00:26:11,900 Вибачте. 595 00:26:11,900 --> 00:26:13,100 Добре. 596 00:26:13,100 --> 00:26:13,670 ДОБРЕ. 597 00:26:13,670 --> 00:26:18,070 Таким чином, ми можемо повернутися до нашого прикладу тут. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Ааа, немає. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Ааа. 602 00:26:31,090 --> 00:26:32,490 ДОБРЕ. 603 00:26:32,490 --> 00:26:34,610 Я просто хочу, щоб тримати його так. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ДОБРЕ. 606 00:26:51,240 --> 00:26:51,740 ДОБРЕ. 607 00:26:51,740 --> 00:26:55,340 Отже, як ви, хлопці, можете побачити, що ми можемо зробити багато дуже цікавих речей, 608 00:26:55,340 --> 00:26:58,880 багато дуже цікавих речей, багато дуже складні речі за участю 609 00:26:58,880 --> 00:27:02,720 Символи ASCII і цифри. 610 00:27:02,720 --> 00:27:05,890 Після того, як ви сідаєте на лінію п'ять, що це багато, щоб слідувати. 611 00:27:05,890 --> 00:27:07,640 Ми не збираємося йти через секцію. 612 00:27:07,640 --> 00:27:10,720 Не соромтеся, якщо ви можете, Причина це на папері 613 00:27:10,720 --> 00:27:14,750 в першу чергу на те, що повинно бути, коли відбувається Ви ввели такого рядка значень. 614 00:27:14,750 --> 00:27:19,720 Наприклад, в останньому лінії, ми маємо z-- який представляє певний number-- 615 00:27:19,720 --> 00:27:24,740 a-- який також являє собою деякі number-- плюс 1 модуль 26 616 00:27:24,740 --> 00:27:26,750 плюс нижній регістр а. 617 00:27:26,750 --> 00:27:29,220 >> Якщо ви, хлопці, продовжуйте читання через них, вам 618 00:27:29,220 --> 00:27:34,009 можна побачити зразок придумати в як ми маніпулювати код. 619 00:27:34,009 --> 00:27:36,050 Я дуже, дуже рекомендую після розділу ви все 620 00:27:36,050 --> 00:27:38,160 хлопці йти вперед і вхід ті, все у вашому комп'ютері 621 00:27:38,160 --> 00:27:40,060 і подивитися, які номери виходять 622 00:27:40,060 --> 00:27:43,090 і розмірковуючи, чому через ті відбувається, тому що для psets 623 00:27:43,090 --> 00:27:45,060 це буде дійсно важливо для вас, щоб зрозуміти, 624 00:27:45,060 --> 00:27:47,132 чому деякі речі трапляються. 625 00:27:47,132 --> 00:27:48,590 Всі ці слайди буде онлайн. 626 00:27:48,590 --> 00:27:51,510 Так що не турбуйтеся про спробу фізично копіювати нотатки. 627 00:27:51,510 --> 00:27:52,510 Онлайн Все в. 628 00:27:52,510 --> 00:27:54,050 Це саме по собі розділ буде онлайн. 629 00:27:54,050 --> 00:27:57,500 Всі мій вихідний код, що Я біжу буде онлайн. 630 00:27:57,500 --> 00:27:58,180 Так. 631 00:27:58,180 --> 00:27:59,430 Ти все ще є питання? 632 00:27:59,430 --> 00:28:00,587 АУДИТОРІЯ: що модуль? 633 00:28:00,587 --> 00:28:01,170 ANDI Пен: ОК. 634 00:28:01,170 --> 00:28:05,620 Так модулю є оператором, який збирається досить важливо PSET ваші хлопці ігрова 635 00:28:05,620 --> 00:28:06,690 тут. 636 00:28:06,690 --> 00:28:12,280 Таким чином, шлях, який оператори в С і в програмуванні роботи 637 00:28:12,280 --> 00:28:16,360 є те, що у вас є те, що називається символ розділення і символом модуль, 638 00:28:16,360 --> 00:28:18,350 який так само, як знак відсотка. 639 00:28:18,350 --> 00:28:24,840 >> Таким чином, в C, коли ви робите ціле розділити на ціле число з косою риси, 640 00:28:24,840 --> 00:28:27,720 З має тенденцію потрібно вирізати від усіх десяткових знаків, 641 00:28:27,720 --> 00:28:30,290 бо ціле хоче перетворити в ціле число. 642 00:28:30,290 --> 00:28:33,550 Це не захоче бути подвійний з купою знаків після коми все після нього. 643 00:28:33,550 --> 00:28:39,322 >> Так що, якщо я 3 розділений на 2, це буде відрізати 0,5 і просто дати вам 1. 644 00:28:39,322 --> 00:28:41,530 Так ось щось, щоб бути дуже обережні, коли ви 645 00:28:41,530 --> 00:28:45,294 робити будь-якої математики в програмуванні, є те, що число ви отримаєте 646 00:28:45,294 --> 00:28:47,210 може бути число що ви думаєте, 647 00:28:47,210 --> 00:28:50,190 тому округлення у вашому Останнє PSET так важливо. 648 00:28:50,190 --> 00:28:51,980 >> Модулю дає залишок. 649 00:28:51,980 --> 00:28:56,200 Так, наприклад, якщо б я зробив 3 модулю 2-- так 3 знак відсотка 2-- 650 00:28:56,200 --> 00:28:58,020 це дасть вам решту цього. 651 00:28:58,020 --> 00:29:00,460 Так 3 ділиться на 2 1,5. 652 00:29:00,460 --> 00:29:01,410 Це 1 залишок 1. 653 00:29:01,410 --> 00:29:04,600 Це дасть вам 1, який є залишком цього. 654 00:29:04,600 --> 00:29:07,361 >> Так що, коли ви, хлопці, рухається по таблиці ASCII, 655 00:29:07,361 --> 00:29:09,735 по модулю буде в кінцевому підсумку те, що дуже важливо, 656 00:29:09,735 --> 00:29:11,240 і ми обговоримо, що пізніше. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ДОБРЕ. 659 00:29:19,040 --> 00:29:27,300 Так щось, що є досить, досить новий і досить унікальний 660 00:29:27,300 --> 00:29:31,920 що ми обговорювали на цьому тижні концепція про те, що масив є. 661 00:29:31,920 --> 00:29:34,370 Так масив перший тип структури даних 662 00:29:34,370 --> 00:29:36,320 що ми збираємося зіткнутися в цьому класі. 663 00:29:36,320 --> 00:29:40,010 Всі структури даних є свого роду довільним, 664 00:29:40,010 --> 00:29:43,370 буквально речі, як структури що ми, як програмісти створили, 665 00:29:43,370 --> 00:29:47,890 що ми вклали в нашому коді, що може містити інші шматки коду. 666 00:29:47,890 --> 00:29:51,090 >> Так що в цьому сенсі, array-- думаю про нього, як картотеці, 667 00:29:51,090 --> 00:29:53,470 де, якщо ви відкрити відрізняється полки вашого картотеці, 668 00:29:53,470 --> 00:29:55,630 Ви можете отримати доступ різні речі. 669 00:29:55,630 --> 00:29:58,630 У пам'яті масив просто робить те ж саме на вашому комп'ютері. 670 00:29:58,630 --> 00:30:01,730 Ви можете мати різне blocks-- ми називати їх indices-- масиву. 671 00:30:01,730 --> 00:30:04,210 Це просто, як блок, полку пам'яті 672 00:30:04,210 --> 00:30:07,580 що ми створили у вашій комп'ютер, ви можете ввести 673 00:30:07,580 --> 00:30:10,270 деякі речі в різних просторах. 674 00:30:10,270 --> 00:30:18,000 >> Так з масивом, ви завжди повинні specify-- 675 00:30:18,000 --> 00:30:22,360 Ви повинні вказати оголошенні Масив в наступному форматі. 676 00:30:22,360 --> 00:30:24,290 Ви збираєтеся спочатку вказати тип даних 677 00:30:24,290 --> 00:30:25,831 що ви хочете створити масиву. 678 00:30:25,831 --> 00:30:28,870 Якщо я хочу масив цілих чисел, Я збираюся поставити Int прямо там. 679 00:30:28,870 --> 00:30:32,079 Якщо я хочу масив рядків, Я збираюся поставити струни там, 680 00:30:32,079 --> 00:30:34,995 ім'я вашого масиву, а потім Ви будете мати квадратні дужки. 681 00:30:34,995 --> 00:30:39,580 А всередині квадратних дужок, ви матиме розмір вашого масиву. 682 00:30:39,580 --> 00:30:42,900 >> Щось, що дійсно важливо для майте на увазі, коли створення масивів 683 00:30:42,900 --> 00:30:46,530 що, як тільки ви створюєте Масив, що розмір не може змінитися. 684 00:30:46,530 --> 00:30:50,180 Так що, якщо ви знаєте, що зараз у вас є масив розміром 10, 685 00:30:50,180 --> 00:30:54,550 Ви знаєте, що я буду мати 10 осередків в межах або 10 показників в межах цього масиву, 686 00:30:54,550 --> 00:30:56,830 і це ніколи не збирається розширити або зменшити 687 00:30:56,830 --> 00:30:59,850 незалежно від того, що, і що є В даний час всього в 10 кварталах простору 688 00:30:59,850 --> 00:31:04,490 виділено у вашій пам'яті, яка може зберігати до 10 речей, того, що ви вклали. 689 00:31:04,490 --> 00:31:08,790 >> Таким чином, в цьому випадку, тип даних масиву, структура даних, яка є масивом 690 00:31:08,790 --> 00:31:13,392 дуже відрізняється від деяких інших ми покривати пізніше в цьому курсі. 691 00:31:13,392 --> 00:31:15,170 Так. 692 00:31:15,170 --> 00:31:20,080 Наприклад, якщо ви хочете, щоб створити масив розміром 3, 693 00:31:20,080 --> 00:31:23,670 містяться змінні integer-- ой, вибачте, з temperature-- 694 00:31:23,670 --> 00:31:25,640 і температура, з Звичайно, це ціле число. 695 00:31:25,640 --> 00:31:28,710 >> Таким чином, ми створили б Int, яка є Тип даних, що ми хочемо зберегти. 696 00:31:28,710 --> 00:31:32,680 Ми збираємося називати це температур заради номенклатури назв 697 00:31:32,680 --> 00:31:34,200 те, що ми все зрозуміли. 698 00:31:34,200 --> 00:31:35,900 І ми збираємося, щоб мати квадратні дужки. 699 00:31:35,900 --> 00:31:37,200 І ми хочемо, три номери. 700 00:31:37,200 --> 00:31:39,000 Отже, ми збираємося поставити трьох всередині нього. 701 00:31:39,000 --> 00:31:41,041 >> Щось, що дійсно Важливо мати на увазі, 702 00:31:41,041 --> 00:31:43,530 є те, що масиви дорівнюють нулю індексуються. 703 00:31:43,530 --> 00:31:46,410 Все це означає, що ви почати з індексом 0, 704 00:31:46,410 --> 00:31:49,800 і ви підбігли через розмір масиву мінус 1. 705 00:31:49,800 --> 00:31:52,730 Так, наприклад, тут, ми є масив розміром 3. 706 00:31:52,730 --> 00:31:54,680 Це збирається бути в змозі провести три значення. 707 00:31:54,680 --> 00:31:57,450 Але цифри, які themselves-- Кількість масив, що індекс, 708 00:31:57,450 --> 00:32:00,271 масив, є від 0 до 2. 709 00:32:00,271 --> 00:32:03,520 Так хлопці, дійсно, насправді обережні при Ви збираєтеся через ваші проблеми, встановленим 710 00:32:03,520 --> 00:32:06,500 і створення будь-яких масиву, бо багато часу це 711 00:32:06,500 --> 00:32:08,490 дійсно, дуже легко забути, що. 712 00:32:08,490 --> 00:32:11,840 Я насправді не мають індекс з 3, що я в даний час тільки 713 00:32:11,840 --> 00:32:13,130 мають індекс 2. 714 00:32:13,130 --> 00:32:16,046 І якщо ви спробуєте доступ до третього індекс, 715 00:32:16,046 --> 00:32:18,170 це буде те, що називається нуль-термінатор. 716 00:32:18,170 --> 00:32:19,990 Це не збирається насправді існує в масиві. 717 00:32:19,990 --> 00:32:21,781 І комп'ютер не сподобається, що. 718 00:32:21,781 --> 00:32:24,570 Так що будьте обережні, коли ви звертаєтеся речі тільки 719 00:32:24,570 --> 00:32:28,070 щоб переконатися, що ви пам'ятаєте що масиви дорівнюють нулю, індексовані. 720 00:32:28,070 --> 00:32:28,880 >> ДОБРЕ. 721 00:32:28,880 --> 00:32:34,030 Таким чином, перший приклад є лише один із способів створення масиву. 722 00:32:34,030 --> 00:32:36,790 Другий приклад у мене є Нижче тільки окремий шлях 723 00:32:36,790 --> 00:32:40,210 створення що те ж саме дані Структура, що ми тільки що введений. 724 00:32:40,210 --> 00:32:44,347 Таким чином, замість фізично працює через і покласти в температурі від 0 725 00:32:44,347 --> 00:32:47,180 дорівнює б то не було, температура 1 дорівнює завгодно, температури 2 рівних 726 00:32:47,180 --> 00:32:50,950 все, я міг насправді просто безпосередньо створювати все це в одному рядку 727 00:32:50,950 --> 00:32:53,010 у квадратних дужках температури дорівнює. 728 00:32:53,010 --> 00:32:56,536 >> І зауважте, в цьому випадку, вам не потрібно щоб вказати, як великий ваш масив, 729 00:32:56,536 --> 00:32:59,160 тому що комп'ютер збирається пройти і подивитися, що там 730 00:32:59,160 --> 00:33:01,570 три елементи в цих фігурних дужках. 731 00:33:01,570 --> 00:33:04,000 І це буде знати, ОК, Мені потрібен масив розміром 3. 732 00:33:04,000 --> 00:33:07,440 Ви не будете потребувати, щоб вхід це таким чином. 733 00:33:07,440 --> 00:33:10,170 >> А також, так, саме так. 734 00:33:10,170 --> 00:33:12,610 Хто-небудь є питання про те, як ми робимо масиви 735 00:33:12,610 --> 00:33:17,391 або як структура з масиву працює? 736 00:33:17,391 --> 00:33:17,890 Так. 737 00:33:17,890 --> 00:33:18,806 >> АУДИТОРІЯ: [нерозбірливо]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI Пен: Так, саме так. 740 00:33:22,690 --> 00:33:26,150 Так що, якщо ви були оголосити і ініціалізувати масив наступний метод, 741 00:33:26,150 --> 00:33:28,477 який є другим способом, Ви можете просто залишити їх. 742 00:33:28,477 --> 00:33:30,310 І комп'ютер автоматично знає, що це 743 00:33:30,310 --> 00:33:33,950 потрібно порахувати, скільки елементів які в ті фігурні дужки, розділені 744 00:33:33,950 --> 00:33:34,930 комами. 745 00:33:34,930 --> 00:33:37,517 >> Так ось вони бачать 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Таким чином, комп'ютер знає, про, є три числа. 747 00:33:39,600 --> 00:33:45,960 Я знаю, щоб створити ім'я масиву Температура з трьома елементами в ньому. 748 00:33:45,960 --> 00:33:46,590 Гарне питання. 749 00:33:46,590 --> 00:33:47,090 Так. 750 00:33:47,090 --> 00:33:51,590 >> АУДИТОРІЯ: Хіба це не можливо, щоб створити масив з різними типами даних 751 00:33:51,590 --> 00:33:53,021 які можуть бути до нього увійшли? 752 00:33:53,021 --> 00:33:56,746 Наприклад, з цілими числами [нерозбірливо]? 753 00:33:56,746 --> 00:33:59,120 ANDI Пен: Для цілей цього класу, ні, просто зараз. 754 00:33:59,120 --> 00:34:03,070 При створенні даних структурувати як масив, 755 00:34:03,070 --> 00:34:04,990 ви говорите комп'ютер, гей, ти мені потрібен 756 00:34:04,990 --> 00:34:08,159 виділити стільки пам'ять в моєму жорсткому диску, 757 00:34:08,159 --> 00:34:10,690 з кожного осередку бути Певна кількість бітів. 758 00:34:10,690 --> 00:34:13,429 >> Пам'ятайте, що ми дізналися в тиждень нулю, що різні дані 759 00:34:13,429 --> 00:34:15,300 типи мають різні розміри? 760 00:34:15,300 --> 00:34:17,630 Так, наприклад, рядки це різна кількість 761 00:34:17,630 --> 00:34:20,719 простору, ніж гольця, який це інший обсяг простору 762 00:34:20,719 --> 00:34:21,830 від цілого числа. 763 00:34:21,830 --> 00:34:25,534 І так, якщо ви не вкажете, і ви змішувати і поєднувати, які види змінних 764 00:34:25,534 --> 00:34:27,659 у вас є комп'ютер-х буде дуже збентежений. 765 00:34:27,659 --> 00:34:29,950 І це не буде знати, скільки пам'яті, щоб дати вам. 766 00:34:29,950 --> 00:34:32,480 Таким чином, для цілей права Тепер, комп'ютери можуть тільки 767 00:34:32,480 --> 00:34:36,120 визнати один тип масиву. 768 00:34:36,120 --> 00:34:37,940 Гарне питання. 769 00:34:37,940 --> 00:34:38,440 ДОБРЕ. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Так природно, Друге питання у нас є 772 00:34:47,120 --> 00:34:50,760 , Ну, тепер, коли ми створили Масив і ми поставити всі ці речі 773 00:34:50,760 --> 00:34:54,190 в масиві, як ми буде в змозі отримати доступ до його? 774 00:34:54,190 --> 00:34:59,710 Таким чином, типова структура, що ми завжди доступ до масиву наш прекрасний цикл. 775 00:34:59,710 --> 00:35:03,830 Я обіцяю вам, хлопці, що ми будемо бачачи багато цієї людини тут. 776 00:35:03,830 --> 00:35:06,470 >> По суті, в будь-який час ви хочете для введення значення в масив 777 00:35:06,470 --> 00:35:09,940 або ви хочете, щоб доступ до них, то Кращий спосіб зробити це для циклу, 778 00:35:09,940 --> 00:35:13,730 бо в циклі, ви знаю, скільки разів ви 779 00:35:13,730 --> 00:35:17,290 збирається хочете запустити через масив, тому що у вас є зупинки видання, чи не так? 780 00:35:17,290 --> 00:35:19,680 І кожен раз, коли ви запустите через, ви можете отримати доступ 781 00:35:19,680 --> 00:35:21,310 другий елемент масиву. 782 00:35:21,310 --> 00:35:26,920 >> А також, це причина, чому, як правило, ми починаємо для петель на значення 0, 783 00:35:26,920 --> 00:35:30,080 тому що, коли ви отримуєте доступ масиви, Ви можете отримати доступ до нульової індекс. 784 00:35:30,080 --> 00:35:32,070 І так паралелі дуже красиво. 785 00:35:32,070 --> 00:35:35,295 Ви, хлопці, можливо, хотіли писати для INT я дорівнює 1. 786 00:35:35,295 --> 00:35:37,330 Я менше або дорівнює 3. 787 00:35:37,330 --> 00:35:39,890 >> Але це не буде працювати зовсім як Ну от, тому що ви тільки 788 00:35:39,890 --> 00:35:42,010 є елементи 0, 1, і 2. 789 00:35:42,010 --> 00:35:45,815 І тому, якщо ви були, щоб почати ваш I в елементі 1, 2 і 3, 790 00:35:45,815 --> 00:35:48,440 Ви збираєтеся в кінцевому підсумку працює з меж вашого масиву, 791 00:35:48,440 --> 00:35:50,440 і погані речі будуть відбуватися. 792 00:35:50,440 --> 00:35:54,480 >> Тому я сподіваюся, що ви, хлопці побачити Segue чому в попередніх класах 793 00:35:54,480 --> 00:35:58,560 ми вчили вас, хлопці, як запустити і відформатувати цикл так, що ми були. 794 00:35:58,560 --> 00:36:01,900 Це тому, що, тепер ми перейшли в масиви, 795 00:36:01,900 --> 00:36:06,760 Ви можете бачити, чому надає 0 Сама дуже красиво доступу. 796 00:36:06,760 --> 00:36:09,880 >> Таким чином, як ми робимо це that-- Я просто друкуючи його тут заради 797 00:36:09,880 --> 00:36:10,830 друкувати його. 798 00:36:10,830 --> 00:36:13,750 Але у мене є заповнювача, кому. 799 00:36:13,750 --> 00:36:15,645 І фактична Доступ частина відбувається. 800 00:36:15,645 --> 00:36:17,520 Назва масиву назвали температура. 801 00:36:17,520 --> 00:36:21,570 Так що це температура і я-й елемент масиву. 802 00:36:21,570 --> 00:36:24,400 >> Так як цикл проходить через, він збирається почати з 0. 803 00:36:24,400 --> 00:36:27,640 Це відбувається, щоб роздрукувати 0-й індекс масиву. 804 00:36:27,640 --> 00:36:29,599 Тоді це буде друкувати з першого елемента. 805 00:36:29,599 --> 00:36:31,431 Тоді це буде друкувати з другого. 806 00:36:31,431 --> 00:36:32,880 А потім ми збираємося зламати. 807 00:36:32,880 --> 00:36:36,718 Це все ясно, на як це відбувається? 808 00:36:36,718 --> 00:36:37,217 Відмінно. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Добре. 811 00:36:44,100 --> 00:36:47,270 Так от у нас є спосіб говорить, що якщо ми не хочемо, 812 00:36:47,270 --> 00:36:50,020 на жорсткий-код in-- мене як програміста. 813 00:36:50,020 --> 00:36:53,320 Я не хочу, щоб насправді фізично покласти в кожну окремий елемент 814 00:36:53,320 --> 00:36:54,020 цього масиву. 815 00:36:54,020 --> 00:36:56,500 Якби я хотів, щоб замість є користувальницький введення значення, 816 00:36:56,500 --> 00:36:58,100 що кращий спосіб зробити це? 817 00:36:58,100 --> 00:37:00,920 >> Ну, от я створив це прекрасний функція, 818 00:37:00,920 --> 00:37:03,560 в якому я можу оголосити масив. 819 00:37:03,560 --> 00:37:06,210 Так INT scores-- давайте просто сказати, що ми хочемо зробити 820 00:37:06,210 --> 00:37:10,660 масив, який провів оцінки всіх 18 звідси в цьому розділі студентів. 821 00:37:10,660 --> 00:37:12,670 Я думаю, що ми отримали трохи більше 18 дітей сьогодні. 822 00:37:12,670 --> 00:37:16,460 Але заради отриманими в Прімері, в давайте припустимо, у нас було 18 років. 823 00:37:16,460 --> 00:37:21,580 Я б створити десятки ім'я масиву з Тип Внутрішні, тому оцінки, звичайно, 824 00:37:21,580 --> 00:37:22,987 є числа. 825 00:37:22,987 --> 00:37:24,820 І я збираюся мати 18 у квадратних дужках, 826 00:37:24,820 --> 00:37:29,900 тому що це, скільки студентів я хочу, щоб мати можливість зберігати безліч. 827 00:37:29,900 --> 00:37:32,206 >> І те, як я заповнити масив, що я 828 00:37:32,206 --> 00:37:35,572 запустити його через цикл, з Звичайно, з 0 мій 0-я індексом. 829 00:37:35,572 --> 00:37:38,030 А потім з 18 Бути моїм зупинки видання, тому що є 830 00:37:38,030 --> 00:37:39,690 18 елементів у масиві. 831 00:37:39,690 --> 00:37:44,620 А потім я збираюся зробити Printf, введіть забив student-- балаканина балачки. 832 00:37:44,620 --> 00:37:51,171 >> Може хто-небудь сказати мені, чому тут я друк I плюс 1 і ні? 833 00:37:51,171 --> 00:37:52,920 Це свого роду хитрість Питання, насправді не. 834 00:37:52,920 --> 00:37:56,020 Це насправді не фізично впливає на хід коду. 835 00:37:56,020 --> 00:37:56,520 Так. 836 00:37:56,520 --> 00:37:57,909 >> АУДИТОРІЯ: [нерозбірливо] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI Пен: Так, саме так. 838 00:37:58,950 --> 00:38:02,620 Це трохи незручно сказати, гей, ти студент 0-я в цьому класі. 839 00:38:02,620 --> 00:38:03,780 Це трохи дивно. 840 00:38:03,780 --> 00:38:08,340 Так нас, як людей, насправді не як думати про те, як комп'ютери думати. 841 00:38:08,340 --> 00:38:10,930 Так що, хоча в комп'ютер, це зберігання значень 842 00:38:10,930 --> 00:38:13,310 в 0-й, коли індекс ми люди, ми дійсно не 843 00:38:13,310 --> 00:38:15,520 хотів би послатися на себе нулю. 844 00:38:15,520 --> 00:38:18,119 Тому, коли я просто роздрукувати, що Я збираюся друкувати і додавати 845 00:38:18,119 --> 00:38:19,410 1 тільки для ясності. 846 00:38:19,410 --> 00:38:22,447 Так що, коли я друкую, я буду можливість друку студентів з 1 по 18. 847 00:38:22,447 --> 00:38:24,530 Це насправді не впливають на біг коду 848 00:38:24,530 --> 00:38:27,110 в будь-якому випадку, то, як я друкую. 849 00:38:27,110 --> 00:38:30,380 >> Але будьте обережні, коли ви фактично доступу масиву. 850 00:38:30,380 --> 00:38:32,780 Коли ви бачите результати я, помітити тут насправді я 851 00:38:32,780 --> 00:38:38,200 доступ до 0-й індекс і Не 1 плюс 0-- або 1 плюс 1, 852 00:38:38,200 --> 00:38:45,530 У цьому випадку, так індекс що це насправді зрозуміло. 853 00:38:45,530 --> 00:38:48,870 Це все начебто ОК як це проходить через 854 00:38:48,870 --> 00:38:51,470 і з кожним індексом Я покласти значення в масив 855 00:38:51,470 --> 00:38:55,340 і створення масиву з 18 чисел що користувач буде вводити? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ДОБРЕ. 858 00:38:59,821 --> 00:39:00,321 Прохолодний. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ДОБРЕ. 861 00:39:07,400 --> 00:39:12,220 Тепер ми переходимо в те, що це досить ставлення до цієї частини встановленої також. 862 00:39:12,220 --> 00:39:15,020 Я знаю, в лекції, David-- вибачте, у вас питання? 863 00:39:15,020 --> 00:39:16,840 >> АУДИТОРІЯ: Чи можете ви збільшити його? 864 00:39:16,840 --> 00:39:18,080 >> ANDI Пен: Так, тому я спробував. 865 00:39:18,080 --> 00:39:18,788 Але я не знаю. 866 00:39:18,788 --> 00:39:21,437 З якоїсь причини, це версія PowerPoint 867 00:39:21,437 --> 00:39:23,270 дійсно не працює а з дисплеєм. 868 00:39:23,270 --> 00:39:25,260 Таким чином, ми просто збираємося тримати його, як це. 869 00:39:25,260 --> 00:39:27,280 Все це буде завантажений в Інтернеті. 870 00:39:27,280 --> 00:39:28,218 Вибачте, хлопці. 871 00:39:28,218 --> 00:39:30,090 Так. 872 00:39:30,090 --> 00:39:30,980 ДОБРЕ. 873 00:39:30,980 --> 00:39:35,530 >> Таким чином, ми можемо також рядки. 874 00:39:35,530 --> 00:39:39,320 Так що, якщо ви, хлопці, насправді notice-- I знаю, Роб підійшов це в тій лекції 875 00:39:39,320 --> 00:39:43,652 що він did-- рядок насправді просто масив символів, 876 00:39:43,652 --> 00:39:44,860 якщо ви думаєте про це, вірно? 877 00:39:44,860 --> 00:39:47,500 Рядок це ім'я або речення чи слово, вірно? 878 00:39:47,500 --> 00:39:52,975 >> Якби я був, щоб створити рядок з ім'ям в Andi-- тільки моє ім'я, А-Н-Д-я. 879 00:39:52,975 --> 00:39:55,460 Ви думаєте, що з просто як однієї змінної. 880 00:39:55,460 --> 00:39:58,630 Але насправді, це розбивається в тільки масив символів. 881 00:39:58,630 --> 00:40:01,910 Так він отримав персонаж збережена у значенні масиву. 882 00:40:01,910 --> 00:40:05,420 Він отримав характер п зберігається в Другий індекс і так далі, і так далі. 883 00:40:05,420 --> 00:40:08,660 >> Так таким чином, ми насправді є такий 884 00:40:08,660 --> 00:40:10,970 структури встановити в місце для наших струн. 885 00:40:10,970 --> 00:40:14,660 Так от, якби я, щоб ввести в Слово "є" - так рядок слово дорівнює 886 00:40:14,660 --> 00:40:15,540 отримати рядок. 887 00:40:15,540 --> 00:40:19,260 Якби я був, щоб ввести слово "є", що фізично так, що мій комп'ютер 888 00:40:19,260 --> 00:40:21,870 зберігає цей рядок в моїй пам'яті. 889 00:40:21,870 --> 00:40:27,140 >> І якби я хотів, щоб пробігти, що і друк, що out-- так і для I в 890 00:40:27,140 --> 00:40:30,890 дорівнює нулю, пам'ятаєте, в лекції, ми те, що покривається називається StrLen, 891 00:40:30,890 --> 00:40:32,990 або довжина рядка. 892 00:40:32,990 --> 00:40:36,520 Тому що я насправді не знаєте, як великий масив 893 00:40:36,520 --> 00:40:38,210 з якої inputting-- користувача 894 00:40:38,210 --> 00:40:40,370 >> Наприклад, я вводяться слово "є", і я знаю, 895 00:40:40,370 --> 00:40:41,870 це довго трьох символів, вірно? 896 00:40:41,870 --> 00:40:44,700 Так що я міг би поставити в три там і все буде в порядку. 897 00:40:44,700 --> 00:40:49,290 Але якщо ваш користувальницький введення чогось що це різна кількість значень, 898 00:40:49,290 --> 00:40:52,760 Ви збираєтеся не зможе по-справжньому знаю, що коли ви програмуєте свій код. 899 00:40:52,760 --> 00:40:56,040 >> Таким чином, шлях, який ми обробляємо тестів так це те, що ми щось 900 00:40:56,040 --> 00:41:00,070 називається StrLen, що це просто функція який говорить вам, як довго рядок. 901 00:41:00,070 --> 00:41:02,080 Так STRLEN слова. 902 00:41:02,080 --> 00:41:03,470 Моє слово, це є. 903 00:41:03,470 --> 00:41:05,990 п дорівнює STRLEN в слова. 904 00:41:05,990 --> 00:41:08,930 Може хто-небудь сказати мені, що це значення насправді тут? 905 00:41:08,930 --> 00:41:12,550 Що н представляє право Тепер, в цьому прикладі, якби мені довелося з'їсти? 906 00:41:12,550 --> 00:41:13,530 >> АУДИТОРІЯ: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI Пен: 3, точно. 908 00:41:14,520 --> 00:41:18,820 Отже, ми маємо для INT я дорівнює нулю, п дорівнює 3, по суті ,. 909 00:41:18,820 --> 00:41:22,355 І я маю намір запустити поки це не менше, ніж 3i ++. 910 00:41:22,355 --> 00:41:24,980 І це відбувається, по суті, перейти через і робити те ж саме. 911 00:41:24,980 --> 00:41:26,979 Це відбувається, щоб роздрукувати кожне значення і дасть вам 912 00:41:26,979 --> 00:41:29,700 ЇСТИ. Це просто, що позначають Інший спосіб написання. 913 00:41:29,700 --> 00:41:31,170 Це буде дуже корисно. 914 00:41:31,170 --> 00:41:31,670 Так. 915 00:41:31,670 --> 00:41:35,174 АУДИТОРІЯ: Що переваги здачі п дорівнює STRLEN слово всередині, що 916 00:41:35,174 --> 00:41:36,894 для контуру [нерозбірливо]? 917 00:41:36,894 --> 00:41:37,560 ANDI Пен: Так. 918 00:41:37,560 --> 00:41:44,880 Так що, якщо б я був, метою яких, наприклад, сказати, якби я був зробити це, а потім 919 00:41:44,880 --> 00:41:51,935 do-- oop--, що в моєму коді, було б насправді робити, як те ж саме. 920 00:41:51,935 --> 00:41:55,060 Однак, спосіб, яким пояснив Девід це під час лекції, якщо які-небудь з вас, хлопці 921 00:41:55,060 --> 00:41:57,854 пам'ятаєте, було те, що, оскільки люди, як програмісти, 922 00:41:57,854 --> 00:42:00,270 Ми дійсно намагаємося, щоб Наша програма Код, щоб наш комп'ютер має 923 00:42:00,270 --> 00:42:04,070 працювати якомога менше, так що наш код не дуже ефективним. 924 00:42:04,070 --> 00:42:06,850 >> Так що, якщо я, що там, що відбуватиметься через мій цикл 925 00:42:06,850 --> 00:42:10,790 є те, що я вперше оголосити Змінна з ім'ям я буде 0. 926 00:42:10,790 --> 00:42:13,350 Я збираюся перевірити, ох, що таке StrLen слова? 927 00:42:13,350 --> 00:42:15,000 О, StrLen 3. 928 00:42:15,000 --> 00:42:16,191 Так я менше, ніж три? 929 00:42:16,191 --> 00:42:16,690 Так. 930 00:42:16,690 --> 00:42:17,870 Я збираюся бігти. 931 00:42:17,870 --> 00:42:21,130 >> А потім другий раз тому навколо цикл, я йду, щоб збільшити I. 932 00:42:21,130 --> 00:42:22,550 я буде один. 933 00:42:22,550 --> 00:42:25,600 І я маю намір перевірити, ох, але те, що StrLen слова? 934 00:42:25,600 --> 00:42:26,839 О, це три. 935 00:42:26,839 --> 00:42:29,880 І робить це, здається, вид марнотратно, кожен раз, коли ви запускаєте через петлю, 936 00:42:29,880 --> 00:42:33,340 щоб перевіряти функцію, навіть незважаючи на те STRLEN слова 937 00:42:33,340 --> 00:42:35,490 ніколи не зраджує? 938 00:42:35,490 --> 00:42:38,590 >> Таким чином, це додаткове харчування для комп'ютера. 939 00:42:38,590 --> 00:42:42,180 Коли ви починаєте говорити про речі, що мільярди і мільярди 940 00:42:42,180 --> 00:42:44,431 і мільярди місць довго, уявіть комп'ютер 941 00:42:44,431 --> 00:42:47,430 того, щоб фізично пережити і перевірити все, що кожен раз. 942 00:42:47,430 --> 00:42:53,170 Саме тому, щоб просто заради ефективності, 943 00:42:53,170 --> 00:42:57,620 ми, як правило, тільки зробити це, тому що таким чином ми тільки 944 00:42:57,620 --> 00:42:59,850 виклику функції один раз на початку, 945 00:42:59,850 --> 00:43:01,766 і що кожен раз, коли він проходить через це відбувається 946 00:43:01,766 --> 00:43:03,789 для зберігання значення 3 там, що ви не 947 00:43:03,789 --> 00:43:05,330 повинні постійно перевіряти кожен раз. 948 00:43:05,330 --> 00:43:05,743 Так. 949 00:43:05,743 --> 00:43:06,409 >> АУДИТОРІЯ: Вибачте. 950 00:43:06,409 --> 00:43:09,070 Просто [нерозбірливо]. 951 00:43:09,070 --> 00:43:13,985 Може ви Int N дорівнює StrLen і покласти що вище зовнішнього боку для контуру 952 00:43:13,985 --> 00:43:15,364 так само? 953 00:43:15,364 --> 00:43:16,030 ANDI Пен: Так. 954 00:43:16,030 --> 00:43:17,100 Ви можете зробити це, абсолютно. 955 00:43:17,100 --> 00:43:19,970 Причина, чому ми повинні його в тут бо шлях для циклу робіт 956 00:43:19,970 --> 00:43:23,500 є те, що це називається локальна змінна в тому сенсі, 957 00:43:23,500 --> 00:43:26,150 що всі ви створення всередині цикл 958 00:43:26,150 --> 00:43:27,890 існує тільки всередині для циклу. 959 00:43:27,890 --> 00:43:31,530 >> Таким чином, змінна я тільки існує в тих дужках. 960 00:43:31,530 --> 00:43:35,260 А ось змінні п також існує тільки в тих дужках. 961 00:43:35,260 --> 00:43:39,350 Так що, якщо ви були у використанні STRLEN з Слово кілька разів внизу, 962 00:43:39,350 --> 00:43:42,230 абсолютно кращий спосіб зробити це буде оголосити його на вершину 963 00:43:42,230 --> 00:43:43,563 так що вам не доведеться зробити це один раз. 964 00:43:43,563 --> 00:43:45,420 Так. 965 00:43:45,420 --> 00:43:47,670 АУДИТОРІЯ: Чому у вас є Нова лінія після відсотка 966 00:43:47,670 --> 00:43:51,300 бачачи, якщо ви хочете, щоб поставити всі літери поруч з ним розділяють? 967 00:43:51,300 --> 00:43:54,140 >> ANDI Пен: О, я хотів друкувати їх все на кожній лінії. 968 00:43:54,140 --> 00:43:54,890 Це не має значення. 969 00:43:54,890 --> 00:43:55,890 Так, це форматування. 970 00:43:55,890 --> 00:43:57,181 Це хороше запитання, хоча. 971 00:43:57,181 --> 00:43:59,360 Так, якби я хотів, щоб надрукувати все тільки на одній лінії, що, 972 00:43:59,360 --> 00:44:02,731 Я б не тире в. 973 00:44:02,731 --> 00:44:03,230 ДОБРЕ. 974 00:44:03,230 --> 00:44:06,880 Все добре? 975 00:44:06,880 --> 00:44:07,500 ДОБРЕ. 976 00:44:07,500 --> 00:44:08,000 Прохолодний. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Так що я думаю, що я говорив достатньо. 979 00:44:14,750 --> 00:44:20,040 Поворот, ви, хлопці, щоб запустити через Код і скажіть, що це не так. 980 00:44:20,040 --> 00:44:21,560 Де помилка? 981 00:44:21,560 --> 00:44:26,920 Отже, як ви бачите, я оголошений Новий масив строкового типу по імені класу. 982 00:44:26,920 --> 00:44:30,220 І я вводяться Сем, Джесс, і Кім в нього. 983 00:44:30,220 --> 00:44:33,400 І я намагаюся роздрукувати всі елементи масиву. 984 00:44:33,400 --> 00:44:36,796 Може хто-небудь сказати мені, чому це збирається дати мені проблеми? 985 00:44:36,796 --> 00:44:39,320 Я дам вам хлопці 10 секунд, щоб думати про це. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ДОБРЕ. 988 00:44:56,619 --> 00:44:57,118 Так? 989 00:44:57,118 --> 00:45:01,972 >> АУДИТОРІЯ: Чи є лівий центральний рівним 3 або [нерозбірливо]? 990 00:45:01,972 --> 00:45:02,680 ANDI Пен: Право. 991 00:45:02,680 --> 00:45:06,784 Так скільки разів це насправді збирається запустити через цю петлю? 992 00:45:06,784 --> 00:45:07,620 >> АУДИТОРІЯ: Чотири. 993 00:45:07,620 --> 00:45:08,070 >> ANDI Пен: Точно. 994 00:45:08,070 --> 00:45:09,445 Це буде через чотири рази. 995 00:45:09,445 --> 00:45:12,250 Це збирається бігти через на 0, 1, 2 і 3, 996 00:45:12,250 --> 00:45:15,200 тому що їх елементом є я менше або дорівнює 3. 997 00:45:15,200 --> 00:45:16,960 Це не збирається зупинятися, коли це 2. 998 00:45:16,960 --> 00:45:18,800 Це буде тримати відбувається, поки не досягне 3. 999 00:45:18,800 --> 00:45:21,720 І як ми знаємо, є тільки три елементи нашого фактичного масиву. 1000 00:45:21,720 --> 00:45:27,260 >> Якщо ми спробуємо відкрити четвертий елемент або індекс 3, 1001 00:45:27,260 --> 00:45:30,357 Ви збираєтеся кудись вдарив в пам'яті, що не існує. 1002 00:45:30,357 --> 00:45:31,690 Це називається нуль-термінатор. 1003 00:45:31,690 --> 00:45:32,856 Ніщо не збирається бути там. 1004 00:45:32,856 --> 00:45:35,324 Ваш комп'ютер не буде бути дуже щасливий з тобою. 1005 00:45:35,324 --> 00:45:36,170 Так. 1006 00:45:36,170 --> 00:45:38,430 Хто-небудь є питання про те, чому, що відбувається? 1007 00:45:38,430 --> 00:45:39,679 Це загальна площа, щоб уникнути. 1008 00:45:39,679 --> 00:45:40,712 Так. 1009 00:45:40,712 --> 00:45:45,777 >> АУДИТОРІЯ: Не перший ковзати також рядок 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Ні 1011 00:45:46,360 --> 00:45:49,610 Так по суті, коли Ви робите масив, 1012 00:45:49,610 --> 00:45:51,540 що кронштейн правої там, що всі number-- 1013 00:45:51,540 --> 00:45:53,480 це кажу вам як багато елементів у мене є. 1014 00:45:53,480 --> 00:45:55,840 Це насправді не говорив мені індекси небудь. 1015 00:45:55,840 --> 00:45:58,760 Таким чином, в цьому випадку, я знаю, що я хочу писати трьох місцях, 1016 00:45:58,760 --> 00:46:02,690 з трьох фізичних місць для провести все, що я хочу, щоб тримати. 1017 00:46:02,690 --> 00:46:04,510 Так от, чому номер три є. 1018 00:46:04,510 --> 00:46:06,560 Проте, якби я хотів насправді отримати до нього доступ, 1019 00:46:06,560 --> 00:46:11,220 якщо я хотів сказати, Printf номер класу кронштейн, потім 1020 00:46:11,220 --> 00:46:14,560 Ви збираєтеся насправді поклав індекс фізичного там. 1021 00:46:14,560 --> 00:46:16,330 Так, гарне питання. 1022 00:46:16,330 --> 00:46:20,065 >> АУДИТОРІЯ: Так це фізичне Індекс повинен бути [нерозбірливо]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Пен: Мені дуже шкода. 1024 00:46:20,940 --> 00:46:21,500 Чи можете ви говорити трохи? 1025 00:46:21,500 --> 00:46:24,208 >> АУДИТОРІЯ: Так індекс фізичного [Нерозбірливо], кожна з коробки? 1026 00:46:24,208 --> 00:46:25,260 [Нерозбірливо]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI Пен: Так. 1028 00:46:26,040 --> 00:46:28,970 Так що я збираюся повернутися до прямо тут. 1029 00:46:28,970 --> 00:46:31,120 Подумайте прямо тут. 1030 00:46:31,120 --> 00:46:32,820 У нас є масив розміром 3. 1031 00:46:32,820 --> 00:46:35,540 Там три місця, як і, фізичні заповнювачі тут. 1032 00:46:35,540 --> 00:46:37,620 Але вони назвали 0, 1, 2 і. 1033 00:46:37,620 --> 00:46:40,700 Так що, якщо я хотів, щоб отримати до них доступ, так, що я до них доступ 1034 00:46:40,700 --> 00:46:43,480 це Printf все, що я хотів тут. 1035 00:46:43,480 --> 00:46:45,485 Ви повинні надрукувати з імені ній, 1036 00:46:45,485 --> 00:46:47,610 Бо тоді комп'ютер знає, про, мені потрібно подивитися 1037 00:46:47,610 --> 00:46:51,391 в цьому масиві на 0-й індекс. 1038 00:46:51,391 --> 00:46:51,890 Так. 1039 00:46:51,890 --> 00:46:53,306 Але розмір цього не змінюється. 1040 00:46:53,306 --> 00:46:55,492 Розмір 3, незалежно як ви їх помітити. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ДОБРЕ. 1043 00:46:58,820 --> 00:47:01,387 Все добре? 1044 00:47:01,387 --> 00:47:02,970 АУДИТОРІЯ: Так що кожен раз я [нерозбірливо]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI Пен: ОК. 1047 00:47:06,940 --> 00:47:13,270 Таким чином, в цьому випадку, ми насправді не потрапити в нього зараз в процесі. 1048 00:47:13,270 --> 00:47:16,760 Але знаю, що string-- як I говорив раніше, рядок по суті 1049 00:47:16,760 --> 00:47:18,440 масив символів. 1050 00:47:18,440 --> 00:47:21,430 Так що, якщо я створюю масив рядків, я начебто 1051 00:47:21,430 --> 00:47:24,430 є масив масив символів, вірно? 1052 00:47:24,430 --> 00:47:27,720 >> Таким чином, в цьому випадку, тому що я є масив рядків, 1053 00:47:27,720 --> 00:47:31,340 якби ви були на вхід дійсно довге слово, які досі займає тільки одне місце, 1054 00:47:31,340 --> 00:47:33,230 тому що це одна струна. 1055 00:47:33,230 --> 00:47:37,492 Але якщо ви були думати про герої цього масиву, 1056 00:47:37,492 --> 00:47:40,450 те, що це займаючи багато більш символів, ніж будь-який з інших слів 1057 00:47:40,450 --> 00:47:41,372 є. 1058 00:47:41,372 --> 00:47:42,830 Не дуже важливо для прямо зараз. 1059 00:47:42,830 --> 00:47:44,921 Але це тільки в цілому як це працює. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ДОБРЕ. 1062 00:47:50,560 --> 00:47:55,840 Так що це те, що я дам вам зробити багато протягом семестру. 1063 00:47:55,840 --> 00:47:57,500 Мені потрібно, щоб відпочити мій голос. 1064 00:47:57,500 --> 00:47:59,530 Ви, хлопці, потрібно, щоб стимулювати себе. 1065 00:47:59,530 --> 00:48:02,300 Багато хто з вас, напевно, доведеться спати прямо зараз. 1066 00:48:02,300 --> 00:48:05,960 Я введення випадкових проблем де ми, як клас, або ви 1067 00:48:05,960 --> 00:48:09,480 з партнером поруч з вами збираємося провести пару хвилин обговорення 1068 00:48:09,480 --> 00:48:14,980 про те, як ми йти про рішення або створення програми, такі, як цей. 1069 00:48:14,980 --> 00:48:17,100 >> Так що зараз, ми хочемо створити program-- 1070 00:48:17,100 --> 00:48:19,560 ми збираємося називати його upper.c--, що новонавернені 1071 00:48:19,560 --> 00:48:24,787 рядкова слово до верхньої класу string-- верхній регістр, вибачте. 1072 00:48:24,787 --> 00:48:26,370 Слово в рядках, вибачте, це синоніми. 1073 00:48:26,370 --> 00:48:28,370 Я збираюся їх міняти означає те ж саме. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Так. 1076 00:48:33,499 --> 00:48:34,540 Візьміть пару хвилин. 1077 00:48:34,540 --> 00:48:37,130 Це не повинні бути написані на будь-якій мові. 1078 00:48:37,130 --> 00:48:39,890 Просто в коді або псевдокоду логічно, як ми б навіть 1079 00:48:39,890 --> 00:48:42,083 ходити робити такою проблемою. 1080 00:48:42,083 --> 00:48:42,583 Так. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [СТОРОНА РОЗМОВА] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Я також помітив, що ви, хлопці can-- Я начебто вже бачимо програму. 1085 00:49:22,130 --> 00:49:24,600 Я думаю, моя відсутність Режим провідний проблема. 1086 00:49:24,600 --> 00:49:27,410 Але це нормально. 1087 00:49:27,410 --> 00:49:30,410 >> [СТОРОНА РОЗМОВА] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Так, будь ласка, хлопці. 1090 00:50:04,380 --> 00:50:05,400 Приходьте отримати цукерку. 1091 00:50:05,400 --> 00:50:06,372 Приходьте отримати цукерку. 1092 00:50:06,372 --> 00:50:07,698 >> АУДИТОРІЯ: Так! 1093 00:50:07,698 --> 00:50:09,958 >> [СТОРОНА РОЗМОВА] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI Пен: Крім того, так, Я почну кидати цукерки 1096 00:50:18,100 --> 00:50:20,280 на людей, які не відповідають на запитання. 1097 00:50:20,280 --> 00:50:22,260 Таким чином, ви повинні відповісти на питання всіх. 1098 00:50:22,260 --> 00:50:24,895 Або я вважаю, люди, які у відповідати на запитання. 1099 00:50:24,895 --> 00:50:26,070 Так, навпаки. 1100 00:50:26,070 --> 00:50:28,570 >> [СТОРОНА РОЗМОВА] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 АУДИТОРІЯ: [нерозбірливо] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI Пен: Так. 1105 00:51:18,340 --> 00:51:19,340 Так. 1106 00:51:19,340 --> 00:51:22,840 >> [СТОРОНА РОЗМОВА] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Гаразд, хлопці. 1109 00:51:41,590 --> 00:51:44,731 Візьміть, наприклад, ще 10 секунд. 1110 00:51:44,731 --> 00:51:48,210 >> [СТОРОНА РОЗМОВА] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> ОК, хлопці. 1113 00:52:11,750 --> 00:52:14,920 Тому, перш ніж ми почнемо, намагаючись насправді фізично написати код, 1114 00:52:14,920 --> 00:52:20,650 гарна звичка розвивати те, що ми хочемо, щоб першого роду причин 1115 00:52:20,650 --> 00:52:22,737 логічно, як ми зробимо це. 1116 00:52:22,737 --> 00:52:24,570 Ви хочете, щоб переконатися, що, перед вами фізично 1117 00:52:24,570 --> 00:52:27,210 почати намагатися кодувати в Маріо, що ви робите 1118 00:52:27,210 --> 00:52:28,870 Переконайтеся, що у вас є псевдокод. 1119 00:52:28,870 --> 00:52:31,235 Тобто приймаючи вас через те, що вам потрібно, щоб створити так 1120 00:52:31,235 --> 00:52:33,360 що, коли ви фізично написати програму пізніше, 1121 00:52:33,360 --> 00:52:36,640 ви краще в змозі зловити помилки в коді тощо. 1122 00:52:36,640 --> 00:52:40,460 >> Отже, ми збираємося, щоб просто почати по-- англійською мовою, в псевдокоді, 1123 00:52:40,460 --> 00:52:43,320 Хто-небудь хоче, щоб дати мені родове пояснення 1124 00:52:43,320 --> 00:52:46,250 про те, як ми б про це? 1125 00:52:46,250 --> 00:52:48,102 Так. 1126 00:52:48,102 --> 00:52:49,664 >> АУДИТОРІЯ: [нерозбірливо]. 1127 00:52:49,664 --> 00:52:50,830 ANDI Пен: Звичайно, не варто турбуватися. 1128 00:52:50,830 --> 00:52:57,233 АУДИТОРІЯ: Чи можете ви попросити його або попросити хтось отримати рядок 1-- Так, рядок, 1129 00:52:57,233 --> 00:52:58,160 і потім-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI Пен: Так, так що це хороший початок. 1131 00:52:59,826 --> 00:53:01,972 Я почну набирати, вибачте, як ви кажете. 1132 00:53:01,972 --> 00:53:02,471 Так-- 1133 00:53:02,471 --> 00:53:05,698 >> АУДИТОРІЯ: --the рядкові цифри вище, вірно? 1134 00:53:05,698 --> 00:53:08,519 Або малі літери мають високі цифри? 1135 00:53:08,519 --> 00:53:09,310 ANDI Пен: Точно. 1136 00:53:09,310 --> 00:53:16,156 АУДИТОРІЯ: Отже, ми віднімаємо 32 від того, що [нерозбірливо]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI Пен: Відмінно. 1139 00:53:29,870 --> 00:53:35,020 Так ми начебто є загальний зміст про те, як працювати з цією проблемою. 1140 00:53:35,020 --> 00:53:40,060 Знаючи, що ми дізналися вид фізичне так, що рядки 1141 00:53:40,060 --> 00:53:43,320 зберігаються в пам'яті, Що ви вже 1142 00:53:43,320 --> 00:53:45,920 знаю, що ви збираєтеся, ймовірно, потрібно написати в коді 1143 00:53:45,920 --> 00:53:48,288 для того, щоб рухатися по рядку? 1144 00:53:48,288 --> 00:53:49,259 >> АУДИТОРІЯ: Для циклу. 1145 00:53:49,259 --> 00:53:50,550 ANDI Пен: для циклу, точно. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Відмінно. 1148 00:53:57,220 --> 00:54:00,539 Так ми начебто є спільний псевдокод записано 1149 00:54:00,539 --> 00:54:02,330 що вид дає Ви відзначає, як ви 1150 00:54:02,330 --> 00:54:03,900 буде рухатися про вирішення проблеми. 1151 00:54:03,900 --> 00:54:06,150 Тепер у вас є це, вам може посилатися на потім 1152 00:54:06,150 --> 00:54:08,233 коли ви намагаєтеся насправді писати код. 1153 00:54:08,233 --> 00:54:10,240 Таким чином, ми можемо насправді йти тут. 1154 00:54:10,240 --> 00:54:25,130 І я отримав функцію під назвою upper.c-- там is-- тільки з пустого шаблону 1155 00:54:25,130 --> 00:54:28,510 Прямо зараз, що ви, хлопці, збираєтеся допомогти мені з'ясувати про те, як написати 1156 00:54:28,510 --> 00:54:30,430 ця лінія code-- не рядки коду. 1157 00:54:30,430 --> 00:54:32,890 Це буде кілька рядків коду. 1158 00:54:32,890 --> 00:54:35,710 >> При запуску будь-якої заготовки PSET, що 1159 00:54:35,710 --> 00:54:37,418 Перше, що мені потрібно пам'ятати, щоб робити? 1160 00:54:37,418 --> 00:54:39,290 >> АУДИТОРІЯ: [нерозбірливо]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI Пен: Великий Да. 1162 00:54:41,000 --> 00:54:41,500 Включати. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Часто це є одним з Найпростіший помилки люди 1166 00:54:49,640 --> 00:54:51,598 зробить, коли вони писати, що вони будуть 1167 00:54:51,598 --> 00:54:54,180 забудьте включати Важливо бібліотека їм потрібно. 1168 00:54:54,180 --> 00:54:57,689 Так що, якщо це офіс годин, і ви, як, Я не знаю, чому мій код не працює. 1169 00:54:57,689 --> 00:54:59,230 Чи можете ви сказати мені, чому це не працює? 1170 00:54:59,230 --> 00:55:00,730 Ми збираємося сказати ти #include? 1171 00:55:00,730 --> 00:55:02,520 Ви повинні #include його. 1172 00:55:02,520 --> 00:55:03,270 ДОБРЕ. 1173 00:55:03,270 --> 00:55:07,230 >> Отже, ми отримали стандарт I / O тут. 1174 00:55:07,230 --> 00:55:10,740 Хіба що тільки бібліотека ми збираємося тут потрібно? 1175 00:55:10,740 --> 00:55:12,681 Що ще ми будемо робити? 1176 00:55:12,681 --> 00:55:13,180 Вибачте. 1177 00:55:13,180 --> 00:55:14,562 Хтось просто кричіть це? 1178 00:55:14,562 --> 00:55:15,666 >> АУДИТОРІЯ: [нерозбірливо]. 1179 00:55:15,666 --> 00:55:16,666 ANDI Пен: Там ви йдете. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ДОБРЕ. 1182 00:55:21,440 --> 00:55:26,070 І як я можу йти про запуск якої-небудь функції, будь-який вид основної функції 1183 00:55:26,070 --> 00:55:28,760 в нашій програмі? 1184 00:55:28,760 --> 00:55:30,020 Int основною. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ДОБРЕ. 1187 00:55:35,030 --> 00:55:35,970 Що я можу покласти всередині тут? 1188 00:55:35,970 --> 00:55:37,640 Що перше, що ви хочете зробити? 1189 00:55:37,640 --> 00:55:39,910 Якщо ми хочемо, щоб отримати рядок від користувача, 1190 00:55:39,910 --> 00:55:43,870 що ми будемо мати щоб зробити на цьому першій лінії? 1191 00:55:43,870 --> 00:55:46,120 На жаль, ви, хлопці, просто відчуваю, вільно говорити і голосно. 1192 00:55:46,120 --> 00:55:47,123 Просто кричати що завгодно. 1193 00:55:47,123 --> 00:55:48,772 >> АУДИТОРІЯ: Попросіть користувача? 1194 00:55:48,772 --> 00:55:49,980 ANDI Пен: Як ми це робимо? 1195 00:55:49,980 --> 00:55:51,873 Ask-- я збираюся ввести "задати користувачеві"? 1196 00:55:51,873 --> 00:55:52,600 >> АУДИТОРІЯ: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI Пен: ОК. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Що я хочу, щоб PRINTF? 1200 00:55:57,372 --> 00:55:58,776 >> АУДИТОРІЯ: Тип в чомусь. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI Пен: Як що? 1203 00:56:03,840 --> 00:56:05,430 Хлопці, робити вигляд, ніби я комп'ютер. 1204 00:56:05,430 --> 00:56:08,475 Фізично скажіть мені кожен крок що мені потрібно ввести тут? 1205 00:56:08,475 --> 00:56:09,600 Я роблю щось неправильно? 1206 00:56:09,600 --> 00:56:10,743 Чи повинен я щось набрали? 1207 00:56:10,743 --> 00:56:11,690 >> АУДИТОРІЯ: Ви повинні лапки. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI Пен: Мені потрібно лапки? 1209 00:56:12,380 --> 00:56:12,880 ДОБРЕ. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ДОБРЕ. 1212 00:56:16,297 --> 00:56:17,698 >> АУДИТОРІЯ: А потім нова лінія. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Крапка з комою. 1215 00:56:22,465 --> 00:56:23,340 ANDI Пен: крапкою з комою? 1216 00:56:23,340 --> 00:56:24,060 ДОБРЕ. 1217 00:56:24,060 --> 00:56:24,560 Добре. 1218 00:56:24,560 --> 00:56:27,060 >> АУДИТОРІЯ: А може бути, вказати що ви хочете, в нижньому регістрі? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI Пен: Відмінно. 1221 00:56:31,415 --> 00:56:33,540 Ви, хлопці, наді мною сміятися забуваючи поставити крапку з комою. 1222 00:56:33,540 --> 00:56:36,350 Я гарантую вам, де У ході цього класу, 1223 00:56:36,350 --> 00:56:38,260 Ви забудете поставити крапка з комою, і це 1224 00:56:38,260 --> 00:56:41,116 Вам буде потрібно 3:00, щоб з'ясувати чому ваш код не працює. 1225 00:56:41,116 --> 00:56:42,240 Це сталося з усіма нами. 1226 00:56:42,240 --> 00:56:43,950 Це, ймовірно, трапиться з вами. 1227 00:56:43,950 --> 00:56:46,352 Отримати в гарну звичку з комою. 1228 00:56:46,352 --> 00:56:46,852 ДОБРЕ. 1229 00:56:46,852 --> 00:56:49,010 >> АУДИТОРІЯ: Ви хочете зробити зворотний слеш в? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI Пен: Звичайно. 1231 00:56:50,398 --> 00:56:51,856 Ви хочете, щоб зробити зворотний слеш? 1232 00:56:51,856 --> 00:56:53,020 >> АУДИТОРІЯ: Так. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI Пен: Відмінно. 1234 00:56:54,330 --> 00:56:54,830 ДОБРЕ. 1235 00:56:54,830 --> 00:56:57,872 Що мені робити далі? 1236 00:56:57,872 --> 00:56:58,964 >> АУДИТОРІЯ: Отримати рядок. 1237 00:56:58,964 --> 00:56:59,880 ANDI Пен: Отримати рядок. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Так що я типу? 1240 00:57:03,830 --> 00:57:04,233 Хто? 1241 00:57:04,233 --> 00:57:05,040 >> АУДИТОРІЯ: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI Пен: Рядок с. 1243 00:57:05,873 --> 00:57:07,251 АУДИТОРІЯ: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI Пен: Хтось, Ви можете сказати мені, де 1245 00:57:09,000 --> 00:57:12,000 ця функція GetString приходять? 1246 00:57:12,000 --> 00:57:13,660 >> АУДИТОРІЯ: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI Пен: string.h? 1248 00:57:15,256 --> 00:57:16,715 Ви думаєте, що це через string.h? 1249 00:57:16,715 --> 00:57:17,830 >> АУДИТОРІЯ: [нерозбірливо]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI Пен: Там ви йдете. 1251 00:57:18,830 --> 00:57:21,280 Це від CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Якщо ви завжди плутають від того, де Файл бібліотеки або файл заголовка, 1253 00:57:24,530 --> 00:57:28,450 Google буквально string.h, і я скажу вам, 1254 00:57:28,450 --> 00:57:30,450 які всі функції які знаходяться в string.h. 1255 00:57:30,450 --> 00:57:31,340 ДОБРЕ. 1256 00:57:31,340 --> 00:57:35,210 >> Так що тепер я створив рядок а у мене запропонує користувачеві для нього, 1257 00:57:35,210 --> 00:57:38,770 Я зберіг його в змінній названі їй, що мені потрібно робити зараз? 1258 00:57:38,770 --> 00:57:40,652 >> АУДИТОРІЯ: Перевірте, якщо він знаходиться в нижньому регістрі. 1259 00:57:40,652 --> 00:57:41,360 ANDI Пен: На ​​жаль? 1260 00:57:41,360 --> 00:57:42,545 АУДИТОРІЯ: Перевірте, якщо він знаходиться в нижньому регістрі. 1261 00:57:42,545 --> 00:57:44,045 ANDI Пен: Гаразд, давайте зробимо це. 1262 00:57:44,045 --> 00:57:45,857 Як мені це зробити? 1263 00:57:45,857 --> 00:57:47,940 Насправді, для цілей класу прямо зараз, 1264 00:57:47,940 --> 00:57:50,330 ми тільки збираємося Припустимо, що всі 1265 00:57:50,330 --> 00:57:52,620 що ми вхід вже в нижньому регістрі. 1266 00:57:52,620 --> 00:57:55,430 Якщо ви хочете, щоб перевірити, ви б просто додайте умовну 1267 00:57:55,430 --> 00:57:59,640 що перевіряється, що побіг через кожен елемент масиву 1268 00:57:59,640 --> 00:58:02,540 і перевіряється, якщо це між певними значеннями. 1269 00:58:02,540 --> 00:58:05,627 Я забув, що число значень малі літери. 1270 00:58:05,627 --> 00:58:07,210 Ви можете подивитися його на стіл ASCII. 1271 00:58:07,210 --> 00:58:08,800 Але так, це дійсно хороша точка. 1272 00:58:08,800 --> 00:58:11,758 Але прямо зараз, ми просто збираємося Припустимо, що всі рядка введення ми 1273 00:58:11,758 --> 00:58:13,130 в нижньому регістрі. 1274 00:58:13,130 --> 00:58:13,870 ДОБРЕ. 1275 00:58:13,870 --> 00:58:18,069 >> Так як я пішов би близько ця проблема в наступному? 1276 00:58:18,069 --> 00:58:18,860 АУДИТОРІЯ: Для циклу. 1277 00:58:18,860 --> 00:58:19,340 ANDI Пен: Для циклу? 1278 00:58:19,340 --> 00:58:19,839 ДОБРЕ. 1279 00:58:19,839 --> 00:58:20,847 Скажи мені, що друкувати. 1280 00:58:20,847 --> 00:58:25,230 >> АУДИТОРІЯ: Для Int я дорівнює 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI Пен: ОК. 1282 00:58:27,230 --> 00:58:36,350 >> АУДИТОРІЯ: Так, насправді, то вам зробити кому і робити н дорівнює STRLEN. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI Пен: Так важливо що я думаю, що вона помітила, тут 1284 00:58:38,940 --> 00:58:42,936 є те, що ми не повинні сказати Int н вдруге ми зробили це. 1285 00:58:42,936 --> 00:58:45,060 Просто знаю, що протягом цикл, коли ви заявивши, 1286 00:58:45,060 --> 00:58:47,934 ви насправді не потрібно Int в другий раз, коли ви змінну. 1287 00:58:47,934 --> 00:58:51,202 Ви можете сказати, н STRLEN. 1288 00:58:51,202 --> 00:58:52,620 >> АУДИТОРІЯ: З с. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI Пен: с. 1290 00:58:53,510 --> 00:58:54,706 ДОБРЕ. 1291 00:58:54,706 --> 00:58:58,370 >> АУДИТОРІЯ: Тоді крапка з комою. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI Пен: Звичайно. 1293 00:59:00,130 --> 00:59:04,050 >> АУДИТОРІЯ: І потім [нерозбірливо] п. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Тоді я ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI Пен: Відмінно. 1297 00:59:11,780 --> 00:59:12,280 Добре. 1298 00:59:12,280 --> 00:59:14,690 Що ми хочемо всередині це цикл тепер? 1299 00:59:14,690 --> 00:59:17,820 Пам'ятайте, що якщо ми збираємося запустити через рядок і запустити через масив, 1300 00:59:17,820 --> 00:59:19,287 ми хочемо, щоб перевірити речі в ньому. 1301 00:59:19,287 --> 00:59:20,370 Що ми збираємося потрібно? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Це свого роду складна частина в даний час. 1304 00:59:26,900 --> 00:59:27,960 Будь, є припущення? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ДОБРЕ. 1307 00:59:34,690 --> 00:59:37,830 Отже, спочатку, як ми навіть отримати доступ? 1308 00:59:37,830 --> 00:59:41,610 Як ми навіть перша перевірка або доступу до елементу в масиві? 1309 00:59:41,610 --> 00:59:42,920 Як ми це робимо? 1310 00:59:42,920 --> 00:59:47,120 Що позначення ми використовуємо, щоб зробити це? 1311 00:59:47,120 --> 00:59:50,920 Що ім'я цього масиву називається? 1312 00:59:50,920 --> 00:59:52,400 Це називається с, правильно? 1313 00:59:52,400 --> 00:59:54,850 >> Пам'ятайте, будь-який рядок завжди є масивом. 1314 00:59:54,850 --> 00:59:58,210 Так їй кронштейн я, вірно? 1315 00:59:58,210 --> 01:00:01,360 Тому що це поточне значення або значення індексу, ми перевірки. 1316 01:00:01,360 --> 01:00:05,156 І ми збираємося встановити, що одно , Метою яких ми хочемо рядкову значення, вірно? 1317 01:00:05,156 --> 01:00:07,530 Ми хочемо, щоб перетворити це lower-- вибачте, ми хочемо великими літерами. 1318 01:00:07,530 --> 01:00:10,014 Ми хочемо, щоб включити нижній регістр значення у верхньому регістрі. 1319 01:00:10,014 --> 01:00:11,805 І так like-- я вибачаюся, як вас звати? 1320 01:00:11,805 --> 01:00:12,580 >> АУДИТОРІЯ: Хайді. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI Пен: На ​​жаль? 1322 01:00:12,940 --> 01:00:13,280 >> АУДИТОРІЯ: Хайді. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI Пен: Хайді. 1324 01:00:13,988 --> 01:00:15,850 Як сказав Хайді Спочатку, ми, ймовірно, 1325 01:00:15,850 --> 01:00:20,330 знадобиться the-- ми ймовірно, доведеться відняти 1326 01:00:20,330 --> 01:00:22,630 32 з будь-якого charc, що, вірно? 1327 01:00:22,630 --> 01:00:24,680 Тому що на ASCII стіл, різниця 1328 01:00:24,680 --> 01:00:27,790 між малої літери і прописна буква 32. 1329 01:00:27,790 --> 01:00:31,290 Тому, коли ми робимо це, ми, ймовірно, захоче, щоб відняти 32, вірно? 1330 01:00:31,290 --> 01:00:33,910 >> Так що ми збираємося робити S I. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Чи всі розуміють, чому я це зробив? 1333 01:00:41,200 --> 01:00:45,760 Тому що зараз, в нашому масиві, ми перевірки 0-й індекс, вірно? 1334 01:00:45,760 --> 01:00:49,190 А в 0-й індекс Рядок, це перший символ. 1335 01:00:49,190 --> 01:00:51,820 І, що персонаж, якого ми збираємося щоб припустити, що це в нижньому регістрі. 1336 01:00:51,820 --> 01:00:55,980 Якщо ми хочемо, щоб зробити його у верхньому регістрі, ми повинні відняти 32 з його вартості, 1337 01:00:55,980 --> 01:00:58,620 тому що в нашій ASCII стіл, ось як ми отримаємо його 1338 01:00:58,620 --> 01:01:01,600 на наступний відповідної Значення, яке робить його у верхньому регістрі. 1339 01:01:01,600 --> 01:01:03,714 Всі розуміють, чи що? 1340 01:01:03,714 --> 01:01:04,213 Так. 1341 01:01:04,213 --> 01:01:06,530 >> АУДИТОРІЯ: Могли б ви також у нижній регістр в minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI Пен: Так, так от насправді дуже добре. 1343 01:01:08,080 --> 01:01:10,455 Я збираюся повернутися до того, що Питання після того як ми це зробити. 1344 01:01:10,455 --> 01:01:11,060 Так. 1345 01:01:11,060 --> 01:01:13,940 І потім, якщо я хочу бачити, що відбувається, 1346 01:01:13,940 --> 01:01:16,180 Я, ймовірно, буде хочете надрукувати, вірно? 1347 01:01:16,180 --> 01:01:19,930 Хтось сказати мені, що Я хочу надрукувати тут. 1348 01:01:19,930 --> 01:01:29,160 >> АУДИТОРІЯ: Printf відсотків Зі зворотного косою [нерозбірливо]. 1349 01:01:29,160 --> 01:01:33,570 Це значення [нерозбірливо] S I. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI Пен: я їй, вибачте? 1351 01:01:34,614 --> 01:01:35,530 АУДИТОРІЯ: [нерозбірливо]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Пен: я не знаю. 1354 01:01:39,550 --> 01:01:40,600 Що ти думаєш? 1355 01:01:40,600 --> 01:01:44,016 >> АУДИТОРІЯ: Ну, я wouldn't-- Я думаю, я б не bring-- 1356 01:01:44,016 --> 01:01:46,944 Я б воно поза всередині, тому що [нерозбірливо]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI Пен: О, ви б зробили це? 1359 01:01:51,392 --> 01:01:53,867 АУДИТОРІЯ: Так. 1360 01:01:53,867 --> 01:01:56,700 ANDI Пен: Давайте залишимо це так, як вона є, і я поясню, чому пізніше. 1361 01:01:56,700 --> 01:01:58,533 Пам'ятайте, навіть якщо ви є утримувач місце, 1362 01:01:58,533 --> 01:02:00,701 Ви хочете, щоб покласти дужки навколо нього. 1363 01:02:00,701 --> 01:02:01,200 Добре. 1364 01:02:01,200 --> 01:02:04,810 Таким чином, це має бути тверде функцію тут. 1365 01:02:04,810 --> 01:02:06,370 Давайте запустити його і подивитися, якщо він компілює. 1366 01:02:06,370 --> 01:02:08,750 Зробіть верхній. 1367 01:02:08,750 --> 01:02:09,250 Ой-ой. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Це не виглядає занадто добре. 1370 01:02:13,340 --> 01:02:14,507 Чому це відбувається? 1371 01:02:14,507 --> 01:02:17,340 Як і в будь-якої помилки, ви хочете піти назад і почати з першого, 1372 01:02:17,340 --> 01:02:20,630 бо зазвичай викликає одну помилку багато інших помилок після нього. 1373 01:02:20,630 --> 01:02:26,700 Тут ми бачимо, upper.c: 18: 25, що говорить мені в цій програмі імені upper.c, 1374 01:02:26,700 --> 01:02:33,800 в рядку 18, помилка неявно оголошення бібліотека функцій STRLEN з типом 1375 01:02:33,800 --> 01:02:36,330 unassigned-- бла, я не знаю, що відбувається після цього. 1376 01:02:36,330 --> 01:02:39,990 >> Все це говорить мені прямо зараз що щось відбувається на STRLEN. 1377 01:02:39,990 --> 01:02:43,520 І це плутати комп'ютер, тому що це як, я не знаю, що це StrLen? 1378 01:02:43,520 --> 01:02:45,520 Що, що, ймовірно сказати, що ви не вистачає? 1379 01:02:45,520 --> 01:02:46,490 >> АУДИТОРІЯ: Ви пропустили [нерозбірливо]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI Пен: Ви праві. 1381 01:02:47,630 --> 01:02:49,510 Точно. 1382 01:02:49,510 --> 01:02:52,140 Так що це, де це Важливо, щоб переконатися, 1383 01:02:52,140 --> 01:02:56,970 що кожна функція ви використовуєте у вашій код, який має правильний заголовок 1384 01:02:56,970 --> 01:02:59,660 файл для бібліотеки, або ж Ви збираєтеся отримати багато помилок 1385 01:02:59,660 --> 01:03:01,150 і ваш код не буде знати, що відбувається. 1386 01:03:01,150 --> 01:03:03,050 Отже, ми збираємося включити string.h тут. 1387 01:03:03,050 --> 01:03:06,270 >> Тепер, коли ми намагаємося скласти верхньої. 1388 01:03:06,270 --> 01:03:08,410 Компіляція правильно. 1389 01:03:08,410 --> 01:03:09,960 Давайте запустити цю програму. 1390 01:03:09,960 --> 01:03:12,000 Так щось типу в нижньому регістрі. 1391 01:03:12,000 --> 01:03:14,920 Що ви, хлопці, хочете, щоб ввести? 1392 01:03:14,920 --> 01:03:16,546 Викрікну щось. 1393 01:03:16,546 --> 01:03:17,920 Гаразд, Чарлі просто увійшов. 1394 01:03:17,920 --> 01:03:18,990 Ми введіть ім'я Чарлі в. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Чарлі в нижньому регістрі. 1397 01:03:22,840 --> 01:03:27,742 І, сподіваюся, ми сподіваємося, це збирається кричати і виплюнув 1398 01:03:27,742 --> 01:03:28,575 Чарлі у верхньому регістрі. 1399 01:03:28,575 --> 01:03:30,830 Ура! 1400 01:03:30,830 --> 01:03:33,430 Чи всі розуміють, як Я пішов про рішення, що? 1401 01:03:33,430 --> 01:03:36,190 Таким чином, що я можу маніпулювати за допомогою цілих чисел 1402 01:03:36,190 --> 01:03:39,410 вирішити те, що Я хочу зробити в рядках, 1403 01:03:39,410 --> 01:03:44,390 тому що персонажі й цілі можете посилатися таким же чином, тому що 1404 01:03:44,390 --> 01:03:45,540 відображення ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Таким чином, щоб повернутися до точки, якщо я хотів поставити тут замість 32 1406 01:03:52,890 --> 01:03:58,959 прописні мінус нижній регістр справедливий, як що, що буде працювати однаково добре, 1407 01:03:58,959 --> 01:04:01,750 тому що це просто тільки Різниця між цими двома значеннями. 1408 01:04:01,750 --> 01:04:09,570 Якщо я хочу, щоб зробити цю again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 О ні. 1410 01:04:10,320 --> 01:04:11,820 Я думаю, що ми пішли не в ту сторону, так? 1411 01:04:11,820 --> 01:04:13,260 >> АУДИТОРІЯ: [нерозбірливо] нижній регістр а. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI Пен: Там ви йдете. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Так. 1415 01:04:22,880 --> 01:04:24,920 І з плює Чарлі. 1416 01:04:24,920 --> 01:04:28,020 Так що будьте обережні, коли Ви віднімання значення 1417 01:04:28,020 --> 01:04:30,400 пам'ятати, який з більше, ніж інша. 1418 01:04:30,400 --> 01:04:35,220 Наприклад, тут я забув що в нижньому регістрі а є насправді 1419 01:04:35,220 --> 01:04:38,540 більше, ніж у верхньому регістрі A. Тому, коли я намагався вичитати їх в іншу сторону 1420 01:04:38,540 --> 01:04:40,600 навколо, я отримав негативну 32. 1421 01:04:40,600 --> 01:04:42,800 І мій комп'ютер, як, Я не знаю, що це таке. 1422 01:04:42,800 --> 01:04:45,810 Це лише деякі ймовірність випадкового Значення, яке не дуже добре. 1423 01:04:45,810 --> 01:04:48,760 І тому переконайтеся, що ви віднімання в правильної довжини 1424 01:04:48,760 --> 01:04:52,831 знайти символ, який ви хочете. 1425 01:04:52,831 --> 01:04:53,330 ДОБРЕ. 1426 01:04:53,330 --> 01:04:58,550 Хто плутати, як ми чи пішов про написання цієї функції? 1427 01:04:58,550 --> 01:04:59,180 ДОБРЕ. 1428 01:04:59,180 --> 01:05:04,830 Так насправді, функція вже існує в бібліотеці називається ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Називається ctype.h бібліотеки. 1430 01:05:06,417 --> 01:05:08,500 Ця функція насправді вже написана для вас. 1431 01:05:08,500 --> 01:05:10,820 Це називається у верхній. 1432 01:05:10,820 --> 01:05:13,027 >> І так для цілей це PSET, ви збираєтеся 1433 01:05:13,027 --> 01:05:15,860 щоб знайти, що ви дійсно хочете використовувати багато функцій, що містяться 1434 01:05:15,860 --> 01:05:17,390 в бібліотеці CTYPE. 1435 01:05:17,390 --> 01:05:21,040 Для верхньої, знизити, зверху, є lower-- ті всі функції 1436 01:05:21,040 --> 01:05:24,914 що ви зможете використовувати дуже, дуже швидко в своєму коді, що 1437 01:05:24,914 --> 01:05:26,080 робить саме, що це робить. 1438 01:05:26,080 --> 01:05:28,941 Ми написали, як перетворити рядок у верхній регістр. 1439 01:05:28,941 --> 01:05:31,440 Але це насправді код що хтось написав 1440 01:05:31,440 --> 01:05:33,800 і що ви можете отримати доступ до за допомогою іншої функції. 1441 01:05:33,800 --> 01:05:34,300 Так? 1442 01:05:34,300 --> 01:05:39,570 >> АУДИТОРІЯ: Таким чином, ви просто скопіювати років там і зробити це для кожного листа? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI Пен: Так, тому що я не піклуватися про значеннях а. 1444 01:05:42,070 --> 01:05:44,540 Я просто все одно, що різниця між ними 32, вірно? 1445 01:05:44,540 --> 01:05:48,210 Різниця між малими б і у верхньому регістрі B також 32. 1446 01:05:48,210 --> 01:05:50,860 І різниця між C а верхній З завжди 32. 1447 01:05:50,860 --> 01:05:53,235 >> Мені просто потрібно піклуватися про Різниця між цими двома, 1448 01:05:53,235 --> 01:05:56,666 бо всі букви за тією ж схемою, вірно? 1449 01:05:56,666 --> 01:05:58,540 Якщо у мене є різниця між одним з них, 1450 01:05:58,540 --> 01:06:01,050 Я знаю, що різниця між усіма з них. 1451 01:06:01,050 --> 01:06:01,740 Гарне питання. 1452 01:06:01,740 --> 01:06:04,090 Так. 1453 01:06:04,090 --> 01:06:06,660 Все добре? 1454 01:06:06,660 --> 01:06:09,080 ДОБРЕ. 1455 01:06:09,080 --> 01:06:09,580 ООП. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ДОБРЕ. 1458 01:06:15,270 --> 01:06:20,310 Так ще одне поняття, що це буде дуже корисно, як ви 1459 01:06:20,310 --> 01:06:22,570 продовжувати розвивати код ця ідея 1460 01:06:22,570 --> 01:06:25,430 створення функції або абстракцію. 1461 01:06:25,430 --> 01:06:28,479 Так що зараз, ми всі прийняли алгебру. 1462 01:06:28,479 --> 01:06:31,770 В алгебрі, вас вчать, що є це чудова річ називається функцією 1463 01:06:31,770 --> 01:06:35,300 машина, де, якщо ви вхід один вид числа, 1464 01:06:35,300 --> 01:06:38,720 вона проходить через цього чудового функції і поза плескає інший вихід, вірно? 1465 01:06:38,720 --> 01:06:42,220 У коді, те ж саме відбувається в якої-небудь функції. 1466 01:06:42,220 --> 01:06:48,230 >> Так що я міг фізично написати в моєму тілі мого коду 1467 01:06:48,230 --> 01:06:52,357 головна твердження, що насправді все тіло коду робить. 1468 01:06:52,357 --> 01:06:54,940 Але за межами цього, я можу також написати безліч різних функцій 1469 01:06:54,940 --> 01:06:56,320 що робити багато різних речей. 1470 01:06:56,320 --> 01:06:58,570 Наприклад, ми вже почали використовувати деякі з них. 1471 01:06:58,570 --> 01:07:00,610 Printf--, що є Функція що хтось 1472 01:07:00,610 --> 01:07:02,870 вже написано, що ми можемо назвати в нашому коді. 1473 01:07:02,870 --> 01:07:05,410 Для upper-- в цьому випадку, upper-- інша функція 1474 01:07:05,410 --> 01:07:07,330 ми написали, що ми можна зателефонувати в наш код. 1475 01:07:07,330 --> 01:07:09,520 І тому я думаю, чому у нас навіть є функції? 1476 01:07:09,520 --> 01:07:12,100 Чому б нам просто не грюкнути його все в тому ж рядку коду? 1477 01:07:12,100 --> 01:07:13,730 Це робить його легким для всіх. 1478 01:07:13,730 --> 01:07:19,200 >> Ну, що обґрунтування це, в першу чергу, організації. 1479 01:07:19,200 --> 01:07:21,880 Це дійсно дратує збирається через чиюсь код 1480 01:07:21,880 --> 01:07:25,110 і одна функція, як Printf. 1481 01:07:25,110 --> 01:07:28,570 Якщо ви, хлопці, насправді знав, що Функція Printf спричинило написати, 1482 01:07:28,570 --> 01:07:30,530 це, начебто, 1000 рядків коду. 1483 01:07:30,530 --> 01:07:32,357 >> Якщо кожного разу, коли я хотів щоб PRINTF те, 1484 01:07:32,357 --> 01:07:35,440 Я повинен був написати 1000 рядків коду, Це було б дійсно дратує, щоб читати, 1485 01:07:35,440 --> 01:07:36,290 вірно? 1486 01:07:36,290 --> 01:07:38,860 Ось чому ми тільки створив цей абстрактна функція 1487 01:07:38,860 --> 01:07:41,670 що у нас є хтось вже ще написав десь ще. 1488 01:07:41,670 --> 01:07:44,920 І кожного разу, коли ми повинні використовувати його в наш код, ми просто повинні сказати Printf. 1489 01:07:44,920 --> 01:07:48,070 І це можливість використовувати функцію хтось написав в коді. 1490 01:07:48,070 --> 01:07:51,020 Це полегшує організаційно читати код. 1491 01:07:51,020 --> 01:07:53,460 >> По-друге, це спрощення. 1492 01:07:53,460 --> 01:07:56,750 Це спрощує кроки, які ми прийняти, щоб вирішити нашу проблему. 1493 01:07:56,750 --> 01:07:59,300 Printf, функції, такі як Printf, функції, такі як у верхній 1494 01:07:59,300 --> 01:08:03,560 всі речі, які дозволяють нам спростити код вниз так легше. 1495 01:08:03,560 --> 01:08:05,830 І останнє, що є можливість багаторазового використання. 1496 01:08:05,830 --> 01:08:08,710 >> Так на те, що у нас є функція називається Printf 1497 01:08:08,710 --> 01:08:11,990 що ми можемо назвати багато різних раз і дозволяє йому бути багаторазового використання. 1498 01:08:11,990 --> 01:08:14,980 Якби мені довелося писати Printf, Я пишу тільки один раз. 1499 01:08:14,980 --> 01:08:16,439 Вона існує тільки в цьому одному місці. 1500 01:08:16,439 --> 01:08:19,890 Якби я хотів, щоб зробити це знову, я б повинні скопіювати і вставити все, що 1501 01:08:19,890 --> 01:08:21,760 в моїй другому рядку коду. 1502 01:08:21,760 --> 01:08:24,880 Ось чому, якщо ми створимо функцію що існує поза нашого головного, 1503 01:08:24,880 --> 01:08:26,880 ми можемо тільки закликати це і використовувати його, коли 1504 01:08:26,880 --> 01:08:29,604 ми повинні так, що це набагато простіше, для нас, як програми для запису. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Таким чином, шлях, який ми б насправді писати функція дуже схожа, так? 1507 01:08:35,549 --> 01:08:37,590 Це свого роду перша випадок, в якому ми будемо 1508 01:08:37,590 --> 01:08:42,830 см функцію беруть на стиль відрізняється, ніж наш основний Int порожнечу. 1509 01:08:42,830 --> 01:08:46,779 У цьому випадку, якби я хотів, щоб написати функцію з ім'ям д, вірно? 1510 01:08:46,779 --> 01:08:49,370 >> І тут значення INT це все розповідав мені, 1511 01:08:49,370 --> 01:08:51,649 що я хочу, щоб це функціонувати, щоб повернутися до мене? 1512 01:08:51,649 --> 01:08:54,484 Якщо я хочу, щоб куб ціле, Я збираюся хочете ввести. 1513 01:08:54,484 --> 01:08:55,525 Ці параметри. 1514 01:08:55,525 --> 01:08:58,490 Я збираюся вводить значення типу Int. 1515 01:08:58,490 --> 01:09:01,300 І я збираюся повернутися інше значення тип Int. 1516 01:09:01,300 --> 01:09:03,050 І тут, як ви бачите, все, що я роблю 1517 01:09:03,050 --> 01:09:07,300 є те, що в куб мій вхід як мій виходу й повернення його. 1518 01:09:07,300 --> 01:09:10,790 >> Так що все це робить функція є займає якесь число. 1519 01:09:10,790 --> 01:09:14,979 Це примножує його на собі два рази так, щоб він кубів в дію. 1520 01:09:14,979 --> 01:09:17,729 А потім він повертається все, що вихід. 1521 01:09:17,729 --> 01:09:20,540 Таким чином, в цьому випадку, це дві лінії код, який ми повинні були написати окремо. 1522 01:09:20,540 --> 01:09:22,880 Але якщо ми хотіли назвати На цій кілька разів, 1523 01:09:22,880 --> 01:09:26,210 це набагато простіше набрати, що один лінія прямо тут, що це в кубі, ніж 1524 01:09:26,210 --> 01:09:28,830 повинні пройти кілька разів. 1525 01:09:28,830 --> 01:09:34,180 >> Таким чином, спосіб, що практично будь форматування для будь-якого виду функції 1526 01:09:34,180 --> 01:09:36,420 буде існувати, як тут. 1527 01:09:36,420 --> 01:09:38,659 Таким чином, ми маємо ім'я функції. 1528 01:09:38,659 --> 01:09:39,950 У цьому випадку, це називається куб. 1529 01:09:39,950 --> 01:09:42,033 І ми називаємо це, тому що куб це легко запам'ятати. 1530 01:09:42,033 --> 01:09:44,220 Ви можете назвати це квадрат і це насправді може бути в кубі. 1531 01:09:44,220 --> 01:09:45,500 Не має значення. 1532 01:09:45,500 --> 01:09:48,020 Просто ім'я, що ти присвоєння вашу функцію. 1533 01:09:48,020 --> 01:09:51,660 >> Це прямо тут, INT, є тип параметра потрібно. 1534 01:09:51,660 --> 01:09:54,149 Отже, що ж цю функцію потрібно для того, щоб працювати? 1535 01:09:54,149 --> 01:09:55,990 Ну, вона повинна вхід. 1536 01:09:55,990 --> 01:09:56,704 Я назвав його введення. 1537 01:09:56,704 --> 01:09:58,120 Ви можете назвати це, що ви хочете. 1538 01:09:58,120 --> 01:10:00,500 Але мені потрібно щось типу Int. 1539 01:10:00,500 --> 01:10:03,730 Це відбувається насправді виконати все, що всередині тут, 1540 01:10:03,730 --> 01:10:04,990 тіло функції. 1541 01:10:04,990 --> 01:10:07,847 І тоді тип повертається прямо тут, у цьому int-- 1542 01:10:07,847 --> 01:10:09,680 Все це говорить мені, це що ця функція 1543 01:10:09,680 --> 01:10:11,250 збирається повернутися до мене в міжнар. 1544 01:10:11,250 --> 01:10:14,460 Таким чином, це займе в INT, і він збирається дати вам назад в Int. 1545 01:10:14,460 --> 01:10:17,750 Всі розуміють чи, як форматування цього роду роботи? 1546 01:10:17,750 --> 01:10:18,250 Прохолодний. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ДОБРЕ. 1549 01:10:25,740 --> 01:10:31,770 Так що не турбуйтеся, якщо це здається трохи абстрактний прямо зараз. 1550 01:10:31,770 --> 01:10:33,450 Це те, що ми будемо говорити про. 1551 01:10:33,450 --> 01:10:36,310 Ми пірнати глибше пізніше в курсі. 1552 01:10:36,310 --> 01:10:41,170 Таким чином, що будь-якої більш високого рівня абстракція ці речі працюють 1553 01:10:41,170 --> 01:10:43,530 є те, що, в пам'яті, в комп'ютер, все 1554 01:10:43,530 --> 01:10:47,660 зберігається в цьому типі стека, я повинен сказати. 1555 01:10:47,660 --> 01:10:49,070 >> Так там на самому верху. 1556 01:10:49,070 --> 01:10:50,861 Я не знаю, якщо ви хлопці, можете побачити, що добре. 1557 01:10:50,861 --> 01:10:52,590 Я постараюся, щоб збільшити. 1558 01:10:52,590 --> 01:10:55,111 Тут на вершині, ми мають фізичний текст 1559 01:10:55,111 --> 01:10:57,860 що комп'ютер interpreting-- всі нулі і одиниці, які 1560 01:10:57,860 --> 01:10:59,540 існують в нашому комп'ютері. 1561 01:10:59,540 --> 01:11:03,390 А потім ми ініціалізувати Дані даних і неініціалізованих, 1562 01:11:03,390 --> 01:11:05,340 що ми називаємо глобальні змінні. 1563 01:11:05,340 --> 01:11:08,200 Так змінних, які існують всіх програм 1564 01:11:08,200 --> 01:11:11,815 і по всій вашій, по суті, код. 1565 01:11:11,815 --> 01:11:13,940 Не турбуйтеся, якщо ви, хлопці, вид неясно про це. 1566 01:11:13,940 --> 01:11:16,060 Це дійсно не має значення прямо зараз. 1567 01:11:16,060 --> 01:11:18,680 >> І тоді у нас є те, що називається купа в стеку. 1568 01:11:18,680 --> 01:11:21,140 Подумайте про стек буквально так само, як стек речей, 1569 01:11:21,140 --> 01:11:23,098 стек відрізняється речі штовхають зверху 1570 01:11:23,098 --> 01:11:27,870 один від одного, що зберігати різні Змінні і синтаксис в коді. 1571 01:11:27,870 --> 01:11:31,460 А потім тут, у самому низу, у нас є змінні середовища 1572 01:11:31,460 --> 01:11:35,480 що ви виконуєте в просто ваш маленький рядки коду. 1573 01:11:35,480 --> 01:11:40,510 >> І ми тільки збираємося, щоб збільшити У від фактичного частини стека. 1574 01:11:40,510 --> 01:11:43,880 Так от тут, якби ми були, щоб збільшити У тільки на цій області стека, 1575 01:11:43,880 --> 01:11:45,140 це те, що він виглядає. 1576 01:11:45,140 --> 01:11:48,590 І це насправді дуже важливо коли ви, хлопці, говорити про функції, 1577 01:11:48,590 --> 01:11:52,330 тому що повідомлення про те, що пам'яті комп'ютера 1578 01:11:52,330 --> 01:11:55,600 зберігає змінні і функції 1579 01:11:55,600 --> 01:11:58,790 і параметри як ваш функції і ваші основні змінні 1580 01:11:58,790 --> 01:12:00,190 в різних місцях. 1581 01:12:00,190 --> 01:12:03,390 >> Так що зараз, головне, фактична функція 1582 01:12:03,390 --> 01:12:04,780 що ви виконання в коді. 1583 01:12:04,780 --> 01:12:08,050 Ви його параметри зберігаються тут і її локальні змінні зберігаються тут. 1584 01:12:08,050 --> 01:12:12,270 Локальна змінна просто означає будь-яку змінну що існують тільки в цій функції. 1585 01:12:12,270 --> 01:12:15,610 І на ньому, у вас є це окрема функція називається куб. 1586 01:12:15,610 --> 01:12:18,240 Ви повинні це параметри а також тих місцевих жителів. 1587 01:12:18,240 --> 01:12:21,540 >> І причина ви можете бачите тут те, що 1588 01:12:21,540 --> 01:12:25,030 відбувається, коли куб займає в Значення з основного функції 1589 01:12:25,030 --> 01:12:27,640 є те, що насправді це копіювання що протягом. 1590 01:12:27,640 --> 01:12:31,470 Так що, якщо я хотів куба 2 і повернутися 8, що 2 1591 01:12:31,470 --> 01:12:33,730 фактично запроваджується як параметр, і це 1592 01:12:33,730 --> 01:12:37,690 скопійовані, так що у вас є це існуюча в двох різних місцях в пам'яті. 1593 01:12:37,690 --> 01:12:40,520 І ви повинні бути дуже обережні, на запам'ятовування, які один з тих, 1594 01:12:40,520 --> 01:12:42,520 ви насправді маніпулювання. 1595 01:12:42,520 --> 01:12:47,170 І приклад того, що сталося це було б дуже, дуже погано 1596 01:12:47,170 --> 01:12:48,050 існує прямо тут. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Так прямо тут, у мене, в теорії, Програма прямо тут, головним функція 1599 01:12:58,650 --> 01:13:02,180 що я оголосивши Int х дорівнює 1. 1600 01:13:02,180 --> 01:13:04,505 Я оголошую ще один INT у дорівнює 2. 1601 01:13:04,505 --> 01:13:06,380 І тоді я біжу його через цю функцію 1602 01:13:06,380 --> 01:13:09,647 називається підкачки, куди я припускаю, що це обмін двох значень. 1603 01:13:09,647 --> 01:13:11,480 А потім я збираюся друкувати їх, вірно? 1604 01:13:11,480 --> 01:13:13,220 Це те, що я хочу, щоб ця програма робити. 1605 01:13:13,220 --> 01:13:15,180 >> Отже, давайте спуститися і подивитися. 1606 01:13:15,180 --> 01:13:18,200 Так що, якщо я насправді написати відрізняється Функція, як ви можете бачити, 1607 01:13:18,200 --> 01:13:19,750 у нас є основні функції тут. 1608 01:13:19,750 --> 01:13:22,860 І тоді у нас є наші Друга функція тут. 1609 01:13:22,860 --> 01:13:24,520 Порожнеча підкачки. 1610 01:13:24,520 --> 01:13:27,090 Порожнеча означає лише те, що це не збирається нічого повертати. 1611 01:13:27,090 --> 01:13:28,930 Назва Функція називається своп, і це 1612 01:13:28,930 --> 01:13:33,730 збирається впускних двох змінних, Int А і INT B, з вашої [нерозбірливо] функції. 1613 01:13:33,730 --> 01:13:39,010 >> Так по суті тут, ми проходячи х і у в цю функцію. 1614 01:13:39,010 --> 01:13:40,760 І якби ми створити this-- тому ми хочемо 1615 01:13:40,760 --> 01:13:42,420 створити тимчасове значення, вірно? 1616 01:13:42,420 --> 01:13:43,930 Ми збираємося призначити, що а. 1617 01:13:43,930 --> 01:13:45,388 А потім буде даний рівний б. 1618 01:13:45,388 --> 01:13:47,660 І б збирається повернутися де значення температури було, 1619 01:13:47,660 --> 01:13:51,070 яка представляє собою, тому що, коли Ви хочете, щоб обміняти речі, 1620 01:13:51,070 --> 01:13:52,320 Ви не можете просто подобається поміняти їх місцями. 1621 01:13:52,320 --> 01:13:54,360 >> Ви повинні тримати одного з них тут, так що він пам'ятає, 1622 01:13:54,360 --> 01:13:56,485 що це таке, тому що, коли Ви поміняти один, ви забули 1623 01:13:56,485 --> 01:13:58,200 що це первісне значення було, вірно? 1624 01:13:58,200 --> 01:14:00,990 Так в теорії, ця програма повинно працювати, чи не так? 1625 01:14:00,990 --> 01:14:03,630 Якби я хотів, щоб поміняти місцями два, вони повинні поміняти. 1626 01:14:03,630 --> 01:14:05,490 Отже, давайте запустити його і подивитися, чи працює він. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Отже, як ви, хлопці, можете побачити, х колись був 1 і у 2 був колись. 1629 01:14:16,940 --> 01:14:21,475 І якщо я роздрукувати його, х ще 1 і Y 2. 1630 01:14:21,475 --> 01:14:25,970 Хм, ця програма не здаються працює так, що я хочу, щоб працювати. 1631 01:14:25,970 --> 01:14:29,950 Хто-небудь хоче, щоб зробити знімок на гадати, чому це відбувається? 1632 01:14:29,950 --> 01:14:34,430 Це має відношення до шляху що різні речі 1633 01:14:34,430 --> 01:14:38,172 зберігаються в різних місцях у пам'яті. 1634 01:14:38,172 --> 01:14:39,377 >> ДОБРЕ. 1635 01:14:39,377 --> 01:14:41,960 Таким чином, ви, хлопці, не треба турбуватися занадто багато про це прямо зараз. 1636 01:14:41,960 --> 01:14:46,610 Але знаю, що куб Часовий змінні були б, 1637 01:14:46,610 --> 01:14:49,230 тому що тут, в нашій функції, ми оголосили А і В 1638 01:14:49,230 --> 01:14:53,570 а змінні, які існують в кубі, що функція. 1639 01:14:53,570 --> 01:14:59,490 Але, як ви бачите, параметри, які він приймає в зберігалися тут. 1640 01:14:59,490 --> 01:15:01,370 Але ми не були насправді повернення нічого. 1641 01:15:01,370 --> 01:15:03,120 Ми не були насправді зміни х та у. 1642 01:15:03,120 --> 01:15:04,440 Ми були тільки в заміні і б. 1643 01:15:04,440 --> 01:15:08,340 >> Ми скопіювали х і у в то називається і б. 1644 01:15:08,340 --> 01:15:11,092 Але ми ніколи фактично маніпулювати х і у самих себе. 1645 01:15:11,092 --> 01:15:12,800 Ви, хлопці, бачачи як це відбувається? 1646 01:15:12,800 --> 01:15:16,140 Це ми просто скопіювали їх закінчилася, але ми насправді не зберігається 1647 01:15:16,140 --> 01:15:18,030 трек, де вони були в пам'яті. 1648 01:15:18,030 --> 01:15:20,127 >> І ось тепер комп'ютер шукає, О, я 1649 01:15:20,127 --> 01:15:21,960 запустити цю річ через це прекрасний функція. 1650 01:15:21,960 --> 01:15:23,690 Але х і у ще х та у. 1651 01:15:23,690 --> 01:15:26,240 Нічого не сталося їм через те 1652 01:15:26,240 --> 01:15:28,340 що цих параметрів і локальні змінні 1653 01:15:28,340 --> 01:15:30,150 зберігаються у іншій місце в пам'яті. 1654 01:15:30,150 --> 01:15:32,030 І це вище рівня Концепція, що ми будемо 1655 01:15:32,030 --> 01:15:34,300 почати бачити пізніше в курсі. 1656 01:15:34,300 --> 01:15:36,950 Але точно знаю, що це проблема, яка може трапитися 1657 01:15:36,950 --> 01:15:41,400 і що ми будемо з'ясувати способи про те, як мати справу з цим пізніше в курсі. 1658 01:15:41,400 --> 01:15:41,900 ДОБРЕ. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Добре. 1661 01:15:48,250 --> 01:15:51,780 Таким чином, останнє поняття ми насправді відбувається, щоб покрити 1662 01:15:51,780 --> 01:15:53,880 що буде корисно для PSET на цьому тижні 1663 01:15:53,880 --> 01:15:56,060 те, що називають Аргументи командного рядка. 1664 01:15:56,060 --> 01:16:00,820 Так Роб у своїй лекції пройшли вид коротко, як ці роботи. 1665 01:16:00,820 --> 01:16:02,770 По суті знаю, що коли ви пишете 1666 01:16:02,770 --> 01:16:06,280 як основної функції, коли ми написав функцій до і в минулому, 1667 01:16:06,280 --> 01:16:07,804 у нас було Int основний порожнечу. 1668 01:16:07,804 --> 01:16:10,470 І причина у нас було недійсним є тому, що наші програми не зробив 1669 01:16:10,470 --> 01:16:12,520 потрібно вхідних значень для запуску, правда? 1670 01:16:12,520 --> 01:16:16,020 Коли я побіг Маріо, мені не потрібно насправді просто введіть те 1671 01:16:16,020 --> 01:16:16,970 коли я втікав Маріо. 1672 01:16:16,970 --> 01:16:20,170 Я міг би підказати користувачу надалі. 1673 01:16:20,170 --> 01:16:22,450 Але не завжди буде так. 1674 01:16:22,450 --> 01:16:24,980 >> Наприклад, цього Проблема тиждень встановлює, 1675 01:16:24,980 --> 01:16:28,365 Ви збираєтеся бути запропоновано, що в Крім запуску вашої програми, 1676 01:16:28,365 --> 01:16:30,990 Ви збираєтеся хочете, щоб ввести деякі речі в прямо, як ви 1677 01:16:30,990 --> 01:16:32,050 запустити програму. 1678 01:16:32,050 --> 01:16:34,720 Таким чином, як ми робимо, що називається аргумент командного рядка, що 1679 01:16:34,720 --> 01:16:37,280 це як аргумент Ви можете ввести безпосередньо 1680 01:16:37,280 --> 01:16:39,260 як ви намагаєтеся запустити вашу програму. 1681 01:16:39,260 --> 01:16:44,680 >> Таким чином, позначення для цього, це досить складний вид, 1682 01:16:44,680 --> 01:16:47,320 але це дійсно не те, що важко. Так INT main-- 1683 01:16:47,320 --> 01:16:48,910 це просто ваш головний функція. 1684 01:16:48,910 --> 01:16:52,110 У ARGC коми рядок ARGV дужках. 1685 01:16:52,110 --> 01:16:56,040 Таким чином, все, що говорить, що це INT argc-- все, що кажу вам, 1686 01:16:56,040 --> 01:17:00,560 є те, що ті число Аргументи комп'ютер повинен очікувати. 1687 01:17:00,560 --> 01:17:03,130 >> Так одна річ, яка дійсно Важливо стежити 1688 01:17:03,130 --> 01:17:07,080 є фізична ім'я вашої програми вважається одним з тих аргументів. 1689 01:17:07,080 --> 01:17:11,080 Так що, якщо я хотів, щоб моя програма запускати один додатковий плюс командного рядка 1690 01:17:11,080 --> 01:17:13,310 Аргумент, насправді я матиме два. 1691 01:17:13,310 --> 01:17:15,080 ARGC насправді буде два. 1692 01:17:15,080 --> 01:17:18,010 І тоді рядок ARGV bracket-- все, що робить, 1693 01:17:18,010 --> 01:17:20,410 це дає мені Масив рядків, це 1694 01:17:20,410 --> 01:17:24,870 збираюся просто показати і зберегти те, що всі ці аргументи командного рядка. 1695 01:17:24,870 --> 01:17:34,090 >> Так, наприклад, якби я хотів, щоб це Програма, ./copy вхідний_файл вихідний_файл, вірно? 1696 01:17:34,090 --> 01:17:37,330 Це просто Типова команда Linux. 1697 01:17:37,330 --> 01:17:38,830 Що насправді ARGC? 1698 01:17:38,830 --> 01:17:41,320 Скільки аргументів командного рядка є насправді в це? 1699 01:17:41,320 --> 01:17:45,130 Все це робить, це зробити копію вхідний_файл імені одного файлу 1700 01:17:45,130 --> 01:17:47,070 і копіює його в інший файл, вірно? 1701 01:17:47,070 --> 01:17:48,700 Ось все це робить. 1702 01:17:48,700 --> 01:17:53,080 Як ви можете бачити, я роблю це по одній лінії фактично не потребуючи програму. 1703 01:17:53,080 --> 01:17:55,380 >> Що наша ARGC в цьому випадку? 1704 01:17:55,380 --> 01:17:58,968 Скільки аргументів у нас? 1705 01:17:58,968 --> 01:17:59,634 АУДИТОРІЯ: Три? 1706 01:17:59,634 --> 01:18:01,200 ANDI Пен: У нас є три, точно. 1707 01:18:01,200 --> 01:18:05,030 Так що це дуже інтуїтивно просто думаю, що це просто 1708 01:18:05,030 --> 01:18:06,290 вхідний_файл і вихідний_файл. 1709 01:18:06,290 --> 01:18:10,190 Але знаю, що фізичне ім'я з Програма ви працюєте розраховує як один. 1710 01:18:10,190 --> 01:18:13,220 Таким чином, в цьому випадку, насправді ARGC зо три. 1711 01:18:13,220 --> 01:18:15,860 Як щодо того, що ARGV 0? 1712 01:18:15,860 --> 01:18:18,180 Пам'ятайте, що всі з Аргументи командного рядка 1713 01:18:18,180 --> 01:18:20,500 були збережені в масиві рядків. 1714 01:18:20,500 --> 01:18:24,140 Так що, якщо я намагаюся отримати до нього доступ, те, що буде ARGV кронштейн 0 дати мені? 1715 01:18:24,140 --> 01:18:25,364 >> АУДИТОРІЯ: [нерозбірливо]. 1716 01:18:25,364 --> 01:18:26,155 ANDI Пен: Точно. 1717 01:18:26,155 --> 01:18:28,550 Це дасть мені точку скоротити копію, тому що це 1718 01:18:28,550 --> 01:18:31,070 0-я стихія, Перший елемент мого масиву. 1719 01:18:31,070 --> 01:18:33,236 Що про ARGV 1? 1720 01:18:33,236 --> 01:18:33,945 >> АУДИТОРІЯ: вхідний_файл. 1721 01:18:33,945 --> 01:18:35,070 ANDI Пен: вхідний_файл, точно. 1722 01:18:35,070 --> 01:18:36,272 Що про ARGV 2? 1723 01:18:36,272 --> 01:18:37,022 АУДИТОРІЯ: OUTFILE. 1724 01:18:37,022 --> 01:18:38,190 ANDI Пен: OUTFILE. 1725 01:18:38,190 --> 01:18:39,290 Це трохи складніше в даний час. 1726 01:18:39,290 --> 01:18:42,630 Що ви, хлопці, думаю, ARGV 3 буде давати мені 1727 01:18:42,630 --> 01:18:45,522 якби я спробував надрукувати, що з? 1728 01:18:45,522 --> 01:18:48,260 >> АУДИТОРІЯ: [нерозбірливо]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI Пен: Чи було у вас руки вгору? 1730 01:18:50,164 --> 01:18:50,663 Так. 1731 01:18:50,663 --> 01:18:51,550 >> АУДИТОРІЯ: альтернатива. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI Пен: Точно. 1733 01:18:52,341 --> 01:18:55,440 Так що пам'ятайте, в лекції, що ми тобто в кінці гоночного то 1734 01:18:55,440 --> 01:18:56,640 називається нуль-термінатор? 1735 01:18:56,640 --> 01:18:58,890 Ми увійдемо до це також далі в класі. 1736 01:18:58,890 --> 01:19:02,472 Але знаю, що в позначеннях, спосіб комп'ютер 1737 01:19:02,472 --> 01:19:04,430 знає, що це кінець масиву є те, що цим 1738 01:19:04,430 --> 01:19:07,310 ставить те, що називається нульовим термінатор або тире дорівнює нулю. 1739 01:19:07,310 --> 01:19:12,047 >> Так що, якщо ви намагаєтеся отримати доступ ARGV 3, Ви збираєтеся вдарити цю рису 0. 1740 01:19:12,047 --> 01:19:13,630 Це навіть більше питання з підступом. 1741 01:19:13,630 --> 01:19:17,020 Що про ARGV 4? 1742 01:19:17,020 --> 01:19:20,920 Так це минуле нуль термінатор, повз межах масиві. 1743 01:19:20,920 --> 01:19:24,380 Що ви думаєте, що станеться, коли ми намагаємося зробити? 1744 01:19:24,380 --> 01:19:25,842 >> АУДИТОРІЯ: [нерозбірливо]? 1745 01:19:25,842 --> 01:19:26,550 ANDI Пен: На ​​жаль? 1746 01:19:26,550 --> 01:19:28,025 Скажіть, що трохи голосніше? 1747 01:19:28,025 --> 01:19:29,086 >> АУДИТОРІЯ: [нерозбірливо]. 1748 01:19:29,086 --> 01:19:29,710 ANDI Пен: Так. 1749 01:19:29,710 --> 01:19:32,420 Це ім'я з площу ви швидше за все, отримаєте. 1750 01:19:32,420 --> 01:19:36,610 Але знаю, що ARGV 4-- що дозволяє отримати доступ до 1751 01:19:36,610 --> 01:19:38,610 місця вашого комп'ютера пам'яті, що ви насправді 1752 01:19:38,610 --> 01:19:41,650 не повинно бути зворушливим, бо Прямо зараз ви знаєте, що це ARGV. 1753 01:19:41,650 --> 01:19:46,220 Ви знаєте, що це масив розміру 3 що має точка копіювання, INFILE і вихідний_файл. 1754 01:19:46,220 --> 01:19:50,200 >> Якщо ви спробуєте піти так далеко за межі, що що ви повз порожнього термінатора, 1755 01:19:50,200 --> 01:19:53,050 Ваш комп'ютер має, ймовірно, зберігати щось у ARGV 4. 1756 01:19:53,050 --> 01:19:55,790 І ви дійсно не повинні бути дозволений доступ в ARGV 4, 1757 01:19:55,790 --> 01:19:58,130 тому що у вас є файл шафа, і ви тільки 1758 01:19:58,130 --> 01:19:59,790 дозволений доступ до цих трьох полиць. 1759 01:19:59,790 --> 01:20:02,870 Але якщо ви намагаєтеся досягти далеко за межі шельф, де ви маєте право, 1760 01:20:02,870 --> 01:20:04,930 Ви збираєтеся почати возитися з інші речі в пам'яті комп'ютера. 1761 01:20:04,930 --> 01:20:06,690 Це буде дуже, дуже погано. 1762 01:20:06,690 --> 01:20:07,440 Так просто знаю, що. 1763 01:20:07,440 --> 01:20:10,370 Будьте дуже обережні, що ви не просто випадково почати 1764 01:20:10,370 --> 01:20:14,772 доступ до елементів масиву, що не в тому, що ви хочете створити. 1765 01:20:14,772 --> 01:20:17,114 Так. 1766 01:20:17,114 --> 01:20:18,430 >> ДОБРЕ. 1767 01:20:18,430 --> 01:20:26,360 Так що ми збираємося зробити ще один Термінал приклад тут. 1768 01:20:26,360 --> 01:20:27,300 ДОБРЕ. 1769 01:20:27,300 --> 01:20:29,900 Так Роб швидко в лекції другий день пішов 1770 01:20:29,900 --> 01:20:35,040 через цей приклад, де була INT INT основний ARGC рядок ARGV 1771 01:20:35,040 --> 01:20:39,090 кронштейни, які говорить мені, що я матиме аргументи командного рядка. 1772 01:20:39,090 --> 01:20:41,860 >> Він, якщо ARGC дорівнює дорівнює 2-- пам'ятайте, 1773 01:20:41,860 --> 01:20:45,070 дорівнює одно означає порівняння. 1774 01:20:45,070 --> 01:20:47,980 Якщо він дорівнює 2, то я в друк привіт, 1775 01:20:47,980 --> 01:20:51,190 що було першою елемент масиву є. 1776 01:20:51,190 --> 01:20:54,100 Інакше друк, привіт світ. 1777 01:20:54,100 --> 01:20:56,300 Що це збирається відбулося в основному? 1778 01:20:56,300 --> 01:21:00,570 Може хтось просто пояснити Англійська що ця програма робить? 1779 01:21:00,570 --> 01:21:01,272 Так. 1780 01:21:01,272 --> 01:21:08,160 >> АУДИТОРІЯ: Якщо хтось набрав в команду і сказав, що їх ім'я та прізвище, 1781 01:21:08,160 --> 01:21:12,096 це буде не просто друкувати Перший і сказати, привіт, 1782 01:21:12,096 --> 01:21:14,090 все ваше ім'я є. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI Пен: Добре, давайте його запуску. 1784 01:21:15,410 --> 01:21:22,470 Так, наприклад, якби я, щоб зробити цей файл зробити привіт привіт, метою яких 1785 01:21:22,470 --> 01:21:24,500 , Метою яких те, що ти хочеш, щоб ввести? 1786 01:21:24,500 --> 01:21:25,900 >> АУДИТОРІЯ: ім'я та прізвище. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI Пен: ім'я та прізвище? 1788 01:21:27,280 --> 01:21:28,180 Простору? 1789 01:21:28,180 --> 01:21:29,690 >> АУДИТОРІЯ: Так. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI Пен: Може хто-небудь сказати мені прямо зараз, що ARGC? 1791 01:21:33,490 --> 01:21:35,630 Просто тут? 1792 01:21:35,630 --> 01:21:36,290 Ой, вибачте. 1793 01:21:36,290 --> 01:21:37,920 Дозвольте мені повернутися. 1794 01:21:37,920 --> 01:21:40,740 Скільки аргументів командного рядка are-- ви, хлопці, не можу бачити. 1795 01:21:40,740 --> 01:21:43,760 Але я постараюся, щоб збільшити. 1796 01:21:43,760 --> 01:21:44,290 Я намагаюсь. 1797 01:21:44,290 --> 01:21:45,414 Так, є три, чи не так? 1798 01:21:45,414 --> 01:21:48,750 Це точка слеш привіт, це Енді, і це Пен. 1799 01:21:48,750 --> 01:21:51,870 >> Так що ви, хлопці, думаю, що це Програма буде роздруківки? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Ох. 1802 01:21:56,060 --> 01:21:57,120 Ой, вибачте. 1803 01:21:57,120 --> 01:21:57,810 Неправильне ім'я. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Це роздруківки, привіт світ. 1806 01:22:06,130 --> 01:22:09,603 Хто-небудь хоче пояснити чому це відбувається? 1807 01:22:09,603 --> 01:22:10,103 Так? 1808 01:22:10,103 --> 01:22:11,019 >> АУДИТОРІЯ: [нерозбірливо]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI Пен: Точно. 1811 01:22:15,230 --> 01:22:19,940 Так от, є умовними Тобто, якщо ARGC дорівнює дорівнює 2. 1812 01:22:19,940 --> 01:22:23,650 Таким чином, тільки в тому випадку, існує два аргументи командного рядка. 1813 01:22:23,650 --> 01:22:25,850 Тоді я йду до друку, привіт, що це таке. 1814 01:22:25,850 --> 01:22:28,210 А ще, я збираюся надрукувати лише, привіт світ. 1815 01:22:28,210 --> 01:22:30,040 Так само хтось хоче щоб дати мені приклад 1816 01:22:30,040 --> 01:22:35,050 про те, як я міг би насправді зробити це, щоб надрукувати значення ARGV 1? 1817 01:22:35,050 --> 01:22:38,600 >> Що б я, щоб вхід тут? 1818 01:22:38,600 --> 01:22:39,840 Тільки одна річ, вірно? 1819 01:22:39,840 --> 01:22:42,900 Оскільки точка привіт до вже вважається як перший аргумент. 1820 01:22:42,900 --> 01:22:43,930 У мене є ще один тільки. 1821 01:22:43,930 --> 01:22:46,470 Так точка привіт, якщо я просто зробити Енді. 1822 01:22:46,470 --> 01:22:47,270 Здрастуйте, Енді. 1823 01:22:47,270 --> 01:22:49,186 Чи розуміє все чому це відбувається? 1824 01:22:49,186 --> 01:22:49,602 Так. 1825 01:22:49,602 --> 01:22:52,500 >> АУДИТОРІЯ: Так простір між Команда line-- це [нерозбірливо]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Ні 1828 01:22:56,830 --> 01:23:03,810 Так просторі в командному рядку Аргумент, х, сказати комп'ютер 1829 01:23:03,810 --> 01:23:06,820 що це початок нового рядка. 1830 01:23:06,820 --> 01:23:11,130 Так рядок ARGV here-- це магазини всі ваші аргументи лінії команд 1831 01:23:11,130 --> 01:23:13,110 в рядках. 1832 01:23:13,110 --> 01:23:17,420 І тому простір в командному рядку argument-- все, що робить вам сказати, 1833 01:23:17,420 --> 01:23:21,030 це врешті одного рядка і цей час, щоб перейти до іншої. 1834 01:23:21,030 --> 01:23:21,990 >> Так. 1835 01:23:21,990 --> 01:23:23,530 Це дуже важливо для Ваш PSET, тому що ви 1836 01:23:23,530 --> 01:23:24,613 буде відчувати їх. 1837 01:23:24,613 --> 01:23:29,300 Так хто-небудь є які-небудь питання з цього приводу? 1838 01:23:29,300 --> 01:23:30,016 ОК здорово. 1839 01:23:30,016 --> 01:23:30,515 Так? 1840 01:23:30,515 --> 01:23:35,008 >> АУДИТОРІЯ: Так що причина вам буде помістити ціле аргумент вапняно замість 1841 01:23:35,008 --> 01:23:40,059 з [нерозбірливо] буде, коли ви хочете ввести додаткову інформацію 1842 01:23:40,059 --> 01:23:41,030 [Нерозбірливо]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI Пен: Так, саме так. 1844 01:23:42,090 --> 01:23:45,370 Деякі програми вимагають для введення аргументу командного рядка 1845 01:23:45,370 --> 01:23:47,732 що вона проходить в і який використовує це. 1846 01:23:47,732 --> 01:23:49,035 Так. 1847 01:23:49,035 --> 01:23:50,410 АУДИТОРІЯ: Так що, якщо [нерозбірливо]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI Пен: Ну, те, що у мене є щоб потім змінити в моїй програмі? 1850 01:23:58,870 --> 01:23:59,870 >> АУДИТОРІЯ: Просто 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI Пен: Чому це відбувається, як ви думаєте? 1853 01:24:15,020 --> 01:24:18,940 >> АУДИТОРІЯ: Тому що [нерозбірливо]. 1854 01:24:18,940 --> 01:24:22,370 >> АУДИТОРІЯ: Ви повинні були б змінити його на 2 [нерозбірливо]. 1855 01:24:22,370 --> 01:24:23,484 >> АУДИТОРІЯ: 1 і 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI Пен: 1 і 2, точно. 1857 01:24:24,650 --> 01:24:29,150 Таким чином, в цьому випадку, ви, ймовірно, хочуть мати двох Printf statements-- 1858 01:24:29,150 --> 01:24:32,601 який друкується ARGV 1 і той, який друкується ARGV 2. 1859 01:24:32,601 --> 01:24:33,100 Ось. 1860 01:24:33,100 --> 01:24:34,516 Я може реально зробити що реальний швидкий. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Ось так. 1863 01:24:47,320 --> 01:24:48,287 Ох. 1864 01:24:48,287 --> 01:24:49,370 Не зовсім те, що ви хотіли. 1865 01:24:49,370 --> 01:24:52,590 Але якщо ви, хлопці, возитися з форматування, він вийде. 1866 01:24:52,590 --> 01:24:54,981 Так. 1867 01:24:54,981 --> 01:24:55,480 Прохолодний. 1868 01:24:55,480 --> 01:24:57,670 Я знаю, ми трохи короткий за часом. 1869 01:24:57,670 --> 01:25:02,469 Але я просто хочу, щоб швидко провести пару хвилин, що проходять через helpful-- 1870 01:25:02,469 --> 01:25:03,760 АУДИТОРІЯ: У вас є дві хвилини. 1871 01:25:03,760 --> 01:25:05,010 ANDI Пен: у мене є дві хвилини? 1872 01:25:05,010 --> 01:25:06,340 Дякую. 1873 01:25:06,340 --> 01:25:09,180 Деякі швидкі підказки Pset. 1874 01:25:09,180 --> 01:25:13,100 Таким чином, для цієї PSET, я настійно рекомендую, як я вже сказав, все читати специфікації. 1875 01:25:13,100 --> 01:25:16,804 Ви будете писатимуть три programs-- одна називається initials.c, одна називається caesar.c, 1876 01:25:16,804 --> 01:25:17,720 одна називається vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Деякі важливі поради, які ви, хлопці, дійсно хочуть 1879 01:25:22,340 --> 01:25:25,040 зберегти mind-- так Тобто ця функція 1880 01:25:25,040 --> 01:25:27,770 називається atoi--, як я люблю говорити, труа. 1881 01:25:27,770 --> 01:25:29,520 Незрозуміло, якщо це насправді, як ви це говорите. 1882 01:25:29,520 --> 01:25:32,510 Але все, що він робить, це введення. 1883 01:25:32,510 --> 01:25:34,320 Він перетворить рядок в Int. 1884 01:25:34,320 --> 01:25:37,490 Таким чином, являє ASCII для цілого я. 1885 01:25:37,490 --> 01:25:40,310 Це просто перетворення ASCII значення в ціле значення. 1886 01:25:40,310 --> 01:25:44,510 Так що пам'ятайте ARGV, масив, який зберігає всі ваші команди шикуються arguments-- 1887 01:25:44,510 --> 01:25:46,300 він зберігає їх усіх, як струни. 1888 01:25:46,300 --> 01:25:50,010 І тому, якщо ви хочете, щоб мати можливість у одного з них стали ціле число, 1889 01:25:50,010 --> 01:25:52,750 Ви будете мати використовувати тут це значення. 1890 01:25:52,750 --> 01:25:56,690 >> Модулю, як ми розглянули раніше в класі сьогодні, 1891 01:25:56,690 --> 01:25:59,550 дозволяє мати Інша частина, що ви є. 1892 01:25:59,550 --> 01:26:03,620 Так що, якщо у нас є дуже, дуже великі номери в Цезар, 1893 01:26:03,620 --> 01:26:06,117 що, якщо у нас є кінець з рядка Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Як ви збираєтеся бути в змозі щоб отримати, що обернути навколо? 1895 01:26:08,450 --> 01:26:11,330 Якщо я вдарив г і я хочу це, щоб повернутися до, 1896 01:26:11,330 --> 01:26:13,650 як я збираюся отримати що, щоб обернути навколо? 1897 01:26:13,650 --> 01:26:15,960 Можливо хочете використовувати модулю десь там. 1898 01:26:15,960 --> 01:26:19,190 >> По-друге, переглядати навколо Ваша бібліотека. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Це нова бібліотека у нас є. 1900 01:26:20,680 --> 01:26:25,270 Ви знайдете багато дуже, дуже корисно functions-- ISUPPER, ISLOWER, 1901 01:26:25,270 --> 01:26:27,681 ToUpper, ToLower, ISALPHA, і так далі. 1902 01:26:27,681 --> 01:26:30,680 Всі функції, які будуть дуже корисні коли ви намагаєтеся з'ясувати ,, 1903 01:26:30,680 --> 01:26:33,780 цей персонаж малої буквою? 1904 01:26:33,780 --> 01:26:35,730 Як перетворити це рядок великої літери? 1905 01:26:35,730 --> 01:26:38,146 Всі ці речі будуть дуже, дуже корисно для вашого PSET. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ДОБРЕ. 1908 01:26:45,500 --> 01:26:49,644 >> Годинники сьогодні ввечері 8:00 до 11:00 в ТЕАЛ класі завтра 1909 01:26:49,644 --> 01:26:51,310 а також у середу і в четвер вночі. 1910 01:26:51,310 --> 01:26:53,280 Години роботи офісу у звичайні. 1911 01:26:53,280 --> 01:26:56,180 Настійно рекомендую вам, хлопці все почати прямо зараз, 1912 01:26:56,180 --> 01:27:00,490 тому що ви не хочете бути, що Дитина, яка в четвер ввечері є проблеми 1913 01:27:00,490 --> 01:27:03,870 представивши свій PSET і як, я не знаю, що робити. 1914 01:27:03,870 --> 01:27:05,870 Я почав, я закінчив, я представив. 1915 01:27:05,870 --> 01:27:09,737 Спробуйте дати собі деякі можливості, бо в завжди відбуваються проблеми коду. 1916 01:27:09,737 --> 01:27:11,570 Ви хочете, щоб переконатися, що ви даєте собі 1917 01:27:11,570 --> 01:27:14,810 багато часу, щоб бути в змозі для завершення psets. 1918 01:27:14,810 --> 01:27:15,310 Прохолодний. 1919 01:27:15,310 --> 01:27:16,720 Я повішу тут. 1920 01:27:16,720 --> 01:27:18,226 >> АУДИТОРІЯ: Це онлайн вже? 1921 01:27:18,226 --> 01:27:20,850 ANDI Пен: Я не знаю, якщо це вже в Інтернеті, але він буде. 1922 01:27:20,850 --> 01:27:23,500 Я повішу тут, якщо хто- вже які-небудь питання. 1923 01:27:23,500 --> 01:27:25,390 Дякую за увагу. 1924 01:27:25,390 --> 01:27:27,105