>> [Музыка Воспроизведение]
>> DAVID МАЛАН: Хорошо.
С возвращением.
Это CS50, а это Одна неделя, продолжались.
Так что одна из причин, мы передавали вокруг технологий, таких как
Google стекла является то, что они приходят с что-то известно, как API,
Интерфейс программирования приложений.
А что это означает, что с нужные файлы и с правом
документацию, вы можете написать программное обеспечение для устройств даже, как эти.
>> И так, что мы имеем в виду, к конце семестра есть, если проект
с участием, скажем, Google стекла может апелляции, мы увидим, что мы можем сделать в
Условия подключения вас с некоторыми заемщика оборудования, а также
общедоступный API, так что вы можете фактически начать создание программного обеспечения
, который работает на том же стекло Google.
>> Другим устройством, которое мы играли с поздней, что мы думали, что может быть
весело в конце семестра является эта маленькая вещь здесь.
Она называется Leap движения, и что вы посмотреть технически
Реклама для устройства, но это действительно говорится к тому, что данный
Устройство способно.
И он тоже идет с помощью API которые вы можете написать программное обеспечение для
контролировать свой компьютер таким образом, вполне как этот-минутный фильм здесь.
>> [ВОСПРОИЗВЕДЕНИЕ ВИДЕО]
>> [КОНЕЦ ВИДЕОВОСПРОИЗВЕДЕНИЕ]
>> Поэтому в данный момент, это устройство будет иметь быть реализован в виде маленькой USB
соединитель, который можно подключить к компьютере, но я не удивлюсь,
Если в скором времени у нас есть эти виды технологий в следующей партии ПК
Маки и так, что вы в самом деле может взаимодействовать с ним в
образом, как этот.
На самом деле, то, что я думал, что я делаю, тоже Я подъехала небольшая демонстрация
программа, которая поставляется с этим программным обеспечением.
Так что я поставил маленький датчик перед моим ноутбуком.
>> И, как вы видите, он уже понимает, что моя рука есть
управлять ею.
И все это прикладной программы будет масла небольшие вещи как это.
Но вы можете видеть, что, действительно, У меня есть пять пальцев.
Если мы можем заставить его сделать все 10, вы можете себе представить аккуратный фортепиано
приложением или тому подобное.
Так что если вы хотите, чтобы придумать после занятий сегодня и играть с этим, как
Что ж, добро пожаловать в.
Так об этом ближе к концу семестра.
>> Таким образом, пара административных Объявления.
Один из них, сделать раздел, в эту пятницу в полдень cs60.net/section.
Это гиперссылка на курсы Домашняя страница, а также.
В то же время, однако, supersections дебютирует в это воскресенье.
Supersections являются одноразовая вещь, потому что это занимает некоторое время, чтобы работать
, кто есть в каком разделе и где.
>> Так что в ближайшее воскресенье, там будет одна раздел для тех, меньше знакомы,
один раздел для тех, более удобной.
И те из вас где-то в между могут отправиться к
один или оба или ни одного.
Оба этих будет снят.
Они будут в большей аудитории, чем раздел обычно будет дюйма
Но цель здесь, чтобы вооружить вас с некоторые проблемы с комфортом установить один,
с С, CS50 устройства, это выходные, даже прежде чем вы узнаете вашу
формальное назначение раздела.
Таким образом, вы встретите вашего TF и ​​ваших меньших Группа sectionmates примерно
недели времени.
>> Часы работы, тем временем, Были происходит.
Ли воспользоваться ими или сегодня вечером Завтра вечером, если вы хотели бы.
Проблема набора 0 производится по пятницу.
Это день позже, чем планового четверг.
Но проблема с набором 1, вы увидите что она включает в себя некоторые разминки
упражнения, с которыми вы себя может расширить
Четверг срок по пятницу.
Архив задач 1, между тем, будет дебютировать на веб-сайте курса предстоящий
Пятница, если вы хотите, чтобы свернуться калачиком с он, как и я когда-то поздно
В пятницу вечером в вашей комнате.
>> Так cs50.net/appliance это место, где Вы можете получить CS50 прибора
что мы начали использовать в понедельник.
Мы будем использовать его немного более сегодня.
Но будьте уверены, что проблема набор 1 спецификации, вы пройдете через
Именно действия, которые необходимо чтобы получить это и работает.
Так что не беспокойтесь о выполнении, что до Pset 1, если вы не хотите.
>> Хорошо.
Таким образом, мы смотрели в понедельник на исходный код, но в контексте нового
Язык программирования, а именно С. и С, В отличие от нуля, не графический.
Это не головоломки.
Это больше, английский-подобный синтаксис.
И есть пару шагов В самом деле написания и выполнения
Программа на Си, потому что помимо источника код, подобный этому, нужно что-то
называется компилятором.
И с точки зрения непрофессионала, что делает компилятор сделать для нас?
Да.
>> СТУДЕНТ: Он преобразует код что вы пишите в 0 и 1.
>> DAVID МАЛАН: Хорошо.
Таким образом, он преобразует код, который пишем 0 и 1.
Он преобразует так называемого исходного кода для объектный код, последний из которых выглядит
немного что-то вроде этого.
И это ваш процессор, мозги внутри компьютере, что из-за
Люди, которые создали эти компьютеры, знать, что эти последовательности
0 и 1 средняя.
>> Может быть, это означает, печати.
Может быть, это означает дополнение.
Может быть, это означает вычитание.
Может быть, это означает, показывать картинку.
Есть предопределенные шаблоны битов что мир решил означает
определенные вещи.
Но по большей части в этом курсе, мы будем работать на более высоком уровне, и
мы считаем само собой разумеющимся, что существуют вещи, как компиляторы, которые могут
сделать наш исходный код функции в том, как мы намерены.
>> И программа, которую написал первый прошлой неделе а потом стал портом, так
сказать, в прошлом C Понедельник, было это.
Когда зеленый флаг нажатия поздороваться.
Это, конечно, написана на пустом месте.
И я утверждал, что эквивалентно программу в C выглядел немного
что-то вроде этого.
>> Так что я думаю, что мы сделаем это на первый, давай дразнить друг от друга то, что выглядит, на первый
взгляд, по общему признанию, как справедливо тайной синтаксиса, но вы начнете замечать,
модели довольно быстро.
То, что мы также сделаем сегодня обеспечивают Вы с психическими модели для некоторых
Canonical, некоторые стандартные конструкции в программировании.
И тогда мы действительно получим в свои руки грязные с некоторыми примерами, а также.
>> Так что для тех из вас, более комфортной, понимаю, что на этой неделе, а затем следующий
неделе вполне может быть что-то вроде обзора.
Но особенно, когда хакер издание проблема набора 1 выходит на
Конечно сайте в пятницу, я думаю, Вы найдете, что, даже если вы заполните
некоторые пробелы в течение следующей недели или двух, Вы начнете получать все более
вызов и сталкиваются новые и новые вещи.
>> Так что давайте дразнить эту программу, кроме несколько строк за один раз.
На самом верху, у нас есть то, что технически называется
Директива препроцессора.
Это просто строка кода, которая говорит включить содержимое файла
называется стандартным I / N, стандартный ввод - или, простите, стандартного ввода / вывода, стандартная
ввод / вывод,. ч, внутри моей собственной программе.
>> Итак, другими словами, если я написал это программа с простым текстовым редактором, как
Gedit, тем проще эквивалент что-то вроде Microsoft Word,, что
Инструкция, # включить stdio.h, просто скажу компилятор, захватите
Содержимое этого другого файла, stdio.h, и вставлять их прямо здесь.
>> Теперь, зачем мне это нужно?
Что же мы утверждать, что внутри этого файла названный stdio.h, которая хранится
где-то на моем жестком диске, или в данном случае, где-то в CS50 прибора?
Кто-то положил его туда для меня.
Но что это значит?
>> Да, так что это декларация Функция называется Е.
Так вспоминает Е функция, которая дисплеев слов и символов и
номера на экране в мои распоряжения.
Но я не писал.
CS50 не писал этого.
Кто-то лет назад написал, и они по существу дала нам рецепт для него
в файле stdio.h.
Так что первая строка просто дает мне доступ к функциям, что кто-то другой
пишет лет назад, среди которые Е.
>> Теперь, следующую строку я собираюсь махнуть рукой, по крайней мере до следующей недели.
Но сейчас, знаю, что тап_п (недействительными) является по существу эквивалент этой
желтый кусок головоломки, когда зеленый флаг нажал.
Мира, много лет назад, решил, что если Вы пишете программу в
язык, называемый C, вы начинаете Ваша программа с линией
, который выглядит так.
В почти через неделю, это сделает смысле, что десятичную, что такое пустота.
Но на данный момент, просто думать об этом как этот желтый кусочек паззла.
>> Теперь следующее, у нас есть фигурной скобки последующим на близкое фигурной скобки,
так сказать.
И мы увидим в течение этих программ на С, а также
JavaScript и PHP.
И это только инкапсуляции связанных строк кода.
Открытая фигурная скобка существу говорит, вот идет некоторый код.
А закрытые фигурной скобки, которая является наклонен в противоположном направлении, как раз
средствами, вот именно для соответствующий код.
>> Так сочные линии в этой первой Программа является последним, Е,
котировок конец цитаты, привет мир.
И я назвал вещи между котировки, что в прошлый раз?
Так что это строка.
И строка просто технарь Термин для последовательности
символы, слова, фразы.
Даже одно письмо могло быть в двойных кавычках.
Но это последовательность из нуля или более символов.
>> Обратная косая черта-N, тем не менее, выглядит немного странно.
Но это просто означает что-то простой в компьютер.
Что обратный слэш-н?
Новая линия.
Так что это просто специальная последовательность символов, которые мир решил
средств, вкладываемых строки тут же, потому что компилятор на самом деле получить
путают, как правило, если вы, очень понятно, но неправильно, просто
начать Нажатие Enter поставить новых линий в коде.
Вы должны быть немного больше явные, с косым-н.
>> И мы увидим, есть несколько других подобных шаблоны для специальных символов.
Например, если вы хотите, чтобы ваши ум блуждать в угол случае,
Предположим, что я хотел, чтобы напечатать двойные кавычки на экране
какой причине, что, казалось бы, быть немного проблематично, не так ли?
Потому что, если я положил в двойные кавычки середина "Hello, World", по тем или иным
Причина, почему кажется, что потенциально проблемные?
Это разбивает строку.
>> Компилятор просто программа.
Такая программа, как компилятор просто будет читать ваш код сверху вниз,
слева направо.
И если видит три двойные кавычки вместо из двух, он не будет знать,
Если вы имеете в виду, что вещь в левую должна быть строка, или вещь
право, или все это.
Это неоднозначно, и так, что типичный компилятор будет сделать, это просто урод,
и дать вам некоторое сообщение об ошибке и сделать вас иметь дело с проблемой.
>> Поэтому, учитывая, что обратный слэш-н означает новое линии, что бы ваши инстинкты сейчас
начало быть, если вы хотели включить что-то аномальное, как двойной
кавычки внутри этого иначе кавычках строки?
Обратная косая черта-двойные кавычки.
И так что мы увидим эту вид шаблона тоже.
>> Если вы хотите сделать что-то немного Странно, вы обнаружите, что
Решения часто следуют образцу, и обратную косую черту
обозначает управляющей последовательности.
И это просто означает что-то особенное что мы должны представить в
другому.
А как вы представляете обратную косую черту, хорошо, мы будем
вернемся к этому.
Но ответ, также, фактически немного очевидна.
>> Итак, давайте введем некоторые другие программные конструкции
которые вы видели в хорошем состоянии.
Вы, наверное, само собой разумеющимся уже если вы уже нырнул в
Проблема установлен 0.
Но давайте введем синтаксис в C в противном случае для этих интуитивен
идеи, по крайней мере некоторых из них.
>> Так что это понятие состояния или Филиал, тогда как ранее мы
представлял его с кодом, который выглядел так в левой Scratch -
Если X меньше Y, то так и скажите -
а в настоящее время в C - позвольте мне отточить на в простейшем случае -
мы просто собираемся говорить, если, откройте скобки, что-то верно -
Логическое выражение будет идти где я сказал состоянии -
закрывающую скобку, то делать то, что Внутри эти фигурные скобки.
>> Так и здесь, в фигурных скобках вроде как для Scratch
П-образные части головоломки.
Делайте то, что внутри этих фигурных скобках.
В этом случае, слэш слэш.
И заметьте, это вперед слэш, а не обратной косой чертой.
Косая черта, косая черта, для тех, кто уже запрограммирован
раньше, просто означает -
это просто комментарий.
Комментарий не является прямой кода, как таковой.
Это линия английском, что вы, человека, написали ради себя, чтобы
возможно, напомнить вам, чтобы что-то делать, объяснить себе, чтобы объяснить
кого-то еще, что ваш код делает.
Это просто описательный комментарий.
>> Теперь, конечно, мы можем иметь двустороннюю развилке дорог просто делать это,
трехсторонний развилке дорог, делая это, и если вы будете продолжать эту
шаблон, вы можете иметь четырех направлениях, пятипозиционный, шесть способом развилок, если
вам нужно работать, действительно, что многие условия.
И обратите внимание на то параллелизм здесь -
Если (условие), остальное, если (условие), и единственное, что немного
странным является последней, которая это всего лишь еще.
Но опять же, это идентично, Концептуально, к тому, что мы сделали
уже, хотя синтаксис взять немного привыкнуть.
>> Теперь, в этом примере есть некоторые другие странные синтаксис.
Мы видим, Е снова, открывающая скобка, и закрывающую скобку.
И внутри есть строки в кавычках.
Скобки, в контексте из Е, перейдите на левой
и справа от чего?
Что мы описываем, что цитируемый Строка в более общем?
>> Так что это аргумент.
Каждый раз, когда у вас есть функция, как и Е, а затем открытым и круглых
Закрыть парень и что-то внутри это, будь то строка, или
целое, или что-нибудь еще, дело в между этими скобками называется
аргумент.
>> И аргумент просто влияет функции поведения.
В этом случае, это довольно ясно, как это сделать.
х <у это то, что передается в, так сказать, в качестве аргумента.
И Е собирается распечатать именно это.
Потому что, конечно, человек лет назад которые не реализованы Е имел ни малейшего представления
то, что мы, человеческие преемники были собирается использовать для Е.
Так вот почему аргументы существуют, влиять на поведение после функции
было написано.
>> Теперь, логическое выражение.
Мы видели прежде в этих нуля.
Оказывается, в C вы также можете "или" их вместе, так сказать.
Две вертикальные полоски означает, что этот блок кода, это сделать это, будет
выполняться, если первое условие истинно или второе условие.
И даже если вы не могли бы сделать В этой нуля, вы действительно может
сделать это в нуля, и вы также можете выразить себя по-разному -
если первое условие и второе условия верны, то делать то, что
Внутри фигурных скобок.
>> И так же, как в сторону, причина, это двойной амперсанд и двойной
Вертикальная черта, мы увидим, в конечном счете что одна вертикальная черта и
один амперсанд иметь различные смысл в C. Так что на данный
что дублирование символов не случайно.
>> Итак, давайте представим, кратко, это немного другой синтаксис.
Это не совсем переносятся на Нуля, но я утверждаю, что я могу
реализации понятие, если еще, если иначе, если еще, если еще и убытках с использованием
то, что называется переключатель заявлении.
И единственная причина, это действительно существует , чтобы просто дать вам, программист,
немного другой способ решения некоторых проблема, хотя по логике он
не дает вам никаких новых возможностей.
>> Под этим я имею в виду это.
Когда вы говорите, переключатель, а затем пробел, а затем пара круглых скобок, внутри
которых идет выражение -
и это могло бы быть немного неочевидным на первый, но это не аргумент,
технически, потому что переключатель не является функцией.
Так что сейчас, просто предположим, что мы используем скобках в разных местах
по разным причинам.
>> Так переключатель на выражение значит, я могу положить переменную внутри этих
скобках, где он говорит выражения.
И потом, если эта переменная -
Предположим, что это называется х, и это просто целое число -
Затем я могу перечислить на мой слайд Здесь что-то вроде этого.
Если X мой переменной, и я хотят что-то делать, если X
равна 1, я могу сделать это.
>> Если я вместо этого хотят сделать что-то Если X = 2, я могу сделать это.
В противном случае, если я хочу сделать что-то еще целиком, у меня может быть по умолчанию в случае
этом случае я делаю это другая вещь.
Так что в этом смысле это эквивалентно Если X равна равна 1, иначе, если еще,
но я говорю об этом только потому, что теперь мы увидим его снова.
Но на данный момент, просто знаю, что он существует.
>> Хорошо.
Таким образом, эти последние пару немного более сложные, на первый взгляд, но они делают
что-то довольно просто.
Цикл в С является кусок кода, который просто делает что-то снова и
снова и снова.
И единственная раздражающая вещь о нем, , что в том, что это немного загадочное
, чтобы выразить себя в этом циклическом картина, но мир на стандартизированные
следующим образом.
>> При использовании цикла, у вас есть пару круглых скобок снова.
И обратите внимание на две точки с запятой в там.
Эти две точки с запятой три отдельных различных выражений внутри
скобках.
Одним из них является так называемая инициализации.
Одним из них является так называемое условие.
И это так называемый обновлений.
>> Посмотрел в абстрактной, это совершенно не очевидны, так что давайте посмотрим
на конкретном примере.
В царапинам у нас был повтор блока.
И это Блок сказал повторить 10 раз, скажем "Hello, World". Позвольте мне претендовать на
сейчас, и мы вернемся к этому, и Это тоже будет получать больше знакомы
Вами в ближайшее время, что эквивалентно C код может быть названо это -
для постановки и пробел, пара скобках, обратите внимание на точку с запятой в
там, которые отделяют три различных вещи, инициализации
состоянии, и обновления.
>> И сделать предположение, что первый делает.
INT I = 0.
С точки зрения грубой непрофессионала, что , что делает для нас, наверное?
Так что да.
Это объявление переменной называется I, и это дает его, какое значение?
0.
Так он создает переменную с именем Я, хранение значение 0 в нем.
Это так называемый инициализации.
>> Ладно, теперь я утверждал до что средняя вещь, я
<10, это состояние.
Так что же делать?
Ну, что цикл делает, когда программа с петлей для запуска, является
каждый раз, когда компьютер проходит через эта петля, сверху вниз, сверху
дно, так же, как вы, ребята, сделали, когда считая себя и сидя,
снова и снова и снова, компьютер будет
проверить, что условие.
И если бы я меньше 10, он будет делать это снова.
Если я меньше 10, он будет делать это снова.
Если я меньше десяти, он будет делать это снова.
Так что, кажется, предполагает, что Надеюсь, у меня меняется.
В противном случае мы должны были бы в бесконечный цикл.
И действительно, я меняется, потому что Последнее, что после точки с запятой там
является несколько загадочным синтаксисом я + +.
Но те из вас, кто уже сделал это раньше, это просто означает,
Все очень просто, что?
>> СТУДЕНТЫ: [промежуточное VOICES].
>> DAVID МАЛАН: Добавить 1 до я.
Увеличиваем я.
Таким образом, мы увидели царапинам головоломки Пьеса для, что, на самом деле.
Это не было похоже, я + +, но это просто средства, попросту говоря, увеличиваем
ценность, которую я на 1 каждый раз, когда вы делаете это.
Так буквально, можно начать с Я инициализации в 0.
Затем проверить состояние.
Будет 0 менее 10?
Да.
Мы идем через петлю.
>> Следующее, что я претендовать на компьютере собираемся сделать, это он собирается
Я, чтобы увеличить.
Так что я теперь 1.
Он проверяет состояние.
На 1 меньше чем 10?
Конечно.
Так делает это снова.
Тогда он увеличивает I + + 2.
На 2 меньше 10?
Да.
И снова и снова и снова.
И в конце концов, из-за плюс-plussing, мы добираемся до Я = 10.
Является 10 меньше, чем 10?
Ну, очевидно, нет.
И это точка, в которой цикл просто останавливается.
И если у вас есть больше кода на внизу экрана, компьютер
доходов, что для запуска кода вместо.
>> Итак, еще раз, даже если это будет выглядеть и чувствовать себя немного странно
Во-первых, конечно, для тех из вас, кто никогда не запрограммирован ранее,
буквально уменьшает концептуально к тому, что в противном случае очень
простой головоломки часть в хорошем состоянии.
>> Ладно, я обещал, что бы быть и другие аналоги в хорошем состоянии.
Там в этот раз тоже.
И мы увидели это в двух словах последний раз.
Но помните навсегда блокировать в пустом месте?
Он просто делает что-то вечно?
Я утверждал, что вы могли бы реализовать это таким образом.
И вы можете реализовать это в кучу-разному.
>> Но в то время как контур просто другой путь в C выразить себя.
В конце концов, вы не можете сделать ничего с в то время как цикл, который вы
не можете с цикла.
Таким образом, они в конце день функционально идентичны.
Но он позволяет вам выразить себя немного по-другому в
следующим образом.
>> С то время как цикл, это то, что в скобках, что это еще раз проверено и
снова и снова.
И как только это выражение ложно, то цикл прекращает выполнение,
и компьютер продолжает запускать любые другие коды
есть в вашем файле.
>> Но что интересно здесь что я буквально набраны правда.
И действительно является одним из видов логическое значение, истинное или ложное значение.
Так может когда-нибудь стать истинным ложными, если я буквально
жестко его в моей программе?
Так что нет.
Это немного странно, что я это сделал.
Но верно, то верно.
Там нет плюс plussing.
Там нет использование переменных здесь.
Так, потому что я жестко в то время как это правда, это петли всегда будет оценить
снова и снова и снова.
>> Так сколько раз привет мир собираетесь печатать на экране?
Навсегда.
Бесконечное число раз, пока не аккумулятор умирает или другие внешние
события.
Так что это, вероятно, не лучшая программа писать, потому что, если пользователю
никогда не может бросить свою программу, это вероятно, не то, что вы хотели.
>> Но иногда, программы должны есть бесконечный цикл.
Например, если ваш компьютер имеет Часы на нем, это, конечно, было бы
хороший, если ваши часы она постоянно обновлять Сам навсегда, хоть раз в
Вторая или раз в минуту или что-то вроде этого.
Таким образом, даже бесконечные циклы имеют свое место.
>> Хорошо.
Наконец, это одно.
И на этот раз немного по-другому функционально, и мы вернемся к
Это, вероятно, в Pset 1.
Но есть и другой тип цикла называется делать во время цикла.
И единственная разница между делать во время цикла и, скажем, в то время как петля,
в том, что проверяется состояние не Перед выполнением кода, но после
выполнении кода.
Так в верхней части для в то время как петли, в то время как делать во время
проверяет его на дно.
>> И это просто означает, что в то время как петля , как правило, работают более раз
или меньшее количество раз, чем в то время как цикл?
Потенциально более раз, потому что делать в то время как цикл четко говорить этого
только после чего вы проверить если условие внутри
скобках верно.
>> Таким образом, мы увидим это снова вероятно, в Pset 1.
Если вы всегда хотите сделать что-нибудь в мере один раз, а затем, может быть, еще несколько
раза, это хорошо построить в использовании.
Но в то время как контур, напротив, будет проверять ее состояние в первую очередь.
И вот именно для петель в С, но в то время, в то время, так и для петель.
И опять же, они отображают очень красиво назад поцарапать, кроме этого не
достаточно иметь тот же аналог в хорошем состоянии.
>> Ну, как, в настоящее время, переменные?
Так вот как я объявил переменную синтаксически на днях.
У меня была Интеллект, который я утверждал, является целым числом.
У меня тогда была переменную счетчик, а затем с запятой.
Так что же такое эта строка кода делает?
Это, попросту говоря, объявив переменной -
то есть, задавая компьютеру, дай мне некоторый объем памяти, дать мне несколько битов - в
который я могу хранить что?
Int.
И точкой с запятой просто означает, конце строки кода.
>> Теперь, во второй строке, вероятно, довольно угадываемыми.
Что такое счетчик = 0; делаешь?
Это присвоение 0 до счетчика.
И вот это и есть другая вещь , это немного раздражает
по сравнению, скажем, алгебре.
В то время как в алгебре, знак равенства означает, равных, здесь, в C, равную
знак означает назначение.
Так это значит положить то, что находится на правильном в то, что слева.
И мы увидим еще один символ, равно равных, когда мы хотим на самом деле проверить
по качеству, несколько досадно.
>> Но это немного неэффективно.
Это своего рода раздражает, что у меня есть объявить переменную и
затем дать ему значение.
Так что на самом деле C позволяет нам упростить этот и просто сделать это все сразу.
Вы можете объявить переменную на левой стороне.
Вы все еще можете выполнить задание на право, поставив знак равенства, что в
середине.
Таким образом, в конце концов, эти два эквивалентны, но это, честно говоря,
Вероятно, лучше привычка только потому, что немного меньше
коде, это немного легче читать, и он просто подкручивает
коде, так сказать.
>> Любые вопросы, до сих пор на петлях, на переменные, от условий, в
Логические, либо технически или концептуально?
Хорошо.
Так что теперь это следующий получает немного более интересным.
И это пример, который я положил в прошлом время, когда это отображает царапинам пример
к C.
>> Таким образом, функцию.
С точки зрения непрофессионала, что такое функция?
Надо быть смелее с Вашим ответом.
Что такое функция?
>> СТУДЕНТ: Есть ли что-то.
>> DAVID МАЛАН: Что это?
>> СТУДЕНТ: Есть ли что-то.
>> DAVID МАЛАН: Есть ли что-то.
ОК.
Мы начнем там.
Так функция должна что-нибудь сделать.
Так что это кусок кода, который по существу реализован в другом месте, что
действительно что-то делает.
Теперь, что интересно о функции является то, что он может принять ввод,
и она может произвести выход.
И давайте на самом деле взять Посмотри на это.
>> Так Человек за ширмой было преднамеренным минуту назад.
Здесь у нас есть таблица.
Но предположим, что это на самом деле представляет собой большой ящик.
Таким образом, это так называемый черный ящик.
И вообще, в конструкции, в компьютер науки, черные ящики просто сослаться на
функциональные части, что кто-то реализовал, а вы нет
обязательно знать, или все равно, как это реализован под капотом.
Вы просто все равно, что это черный ящик, который мы сейчас начать называть
функции, делает что-то.
>> Так, например, если это черный ящик на этапе здесь представляет Е,
функции, я знаю из предыдущих примеров Е, что принимает один или несколько
аргументов, причем первый из них Аргументы должны быть строкой, как и
"Hello, World". Ну, если я человек написания программы, и я хочу
использовать Е, Я, например, может взять кусок чистой бумаги здесь и
черный маркер и напиши на нем -
Я неправильно "Мир" -
H-E-L-L-вывода.
>> Так что я возьму мой черный маркер и я буду писать, как большой и разборчиво, как я могу на
эта бумажка, "Hello, World", и Теперь я утверждаю, это мой аргумент.
Это строка представлена лист белой бумаги.
И мой вклад теперь к функции Е будет этого.
Так я называю Е, проходя Аргумент, что в качестве вклада в его.
>> И теперь, я не знаю, как человек, который написал Е сделал это лет назад, но
Я знаю от своего документации, его цель в жизни, чтобы напечатать то, что я
предоставляет его в качестве входных данных.
И поэтому, хотя эта реализация это без моего ведома
под капотом, в настоящее время Я вижу, о, это делается.
Он напечатал что-то на экране.
И в настоящее время контролируют программы, если есть были несколько строк кода, будет
уже вернулись ко мне.
И поэтому тот факт, что Колтон -
благословит его сердце, скрывается здесь под стол перед всеми вами -
является преднамеренным в этом я не знаю, и я не волнует, как Е является
реализованы.
Я просто знаю, опять же, от его документации, что он делает и как я
я должна его использовать.
>> Сейчас, напомним, что Е может получить немного более сложным.
Опять же, мы просто говорим о эквивалент Say Общее для Scratch.
Но я также сделал это в прошлый раз.
Я хотел, чтобы мой привет программе немного более динамичным, а не просто трудно
код что-то вроде "мир", и определенно не трудно что-то код
произвольное, как D--V-I-D в программу.
Я хотел спросить у пользователя его или ее имя, а затем сделать что-то с
этой строки, которые они предоставляют.
>> Таким образом, есть нечто не совсем здесь. Е, минуту назад,
действительно, в самом деле, что-то сделать, но это не вернул мне ничего.
Верно?
Колтон не передать мне ничего назад, не лист бумаги.
Был просто побочный эффект.
Мой предоставления "Hello, World", как Аргумент Колтон привело к
Побочный эффект слово, несколько слов, появляющиеся на экране.
>> GetString, хотя, немного разные. GetString также
функцию, но она возвращает некоторое значение.
Это не просто эстетический эффект стороны.
Это фактически дает мне, человеку вызовом или с помощью функции,
что-то взамен.
Поэтому в данном случае, является GetString вызывается с открытым GetString
Парень, рядом парень.
GetString ли, таким образом, принять любые аргументы или вход?
Нет, кажется, нет.
Его цель в жизни только, чтобы получить строки.
Он не нуждается в более подробно, чем это.
Итак, позвольте мне идти вперед и делать вид, что, Опять же, это черный ящик не Е,
но GetString, и позвольте мне, человеку написания этой программы, позвонить или использовать
GetString, просто написание G-E-T-S-T-R-I-N-G, открытая скобка, рядом
Парень, GetString.
>> Теперь, я понятия не имею, как CS50 персонала реализованы GetString, но я знаю, что
если я достаточно долго ждать, он будет делать свое вещь под капотом, возможно с использованием
некоторые переменные, может быть, с помощью некоторых условиях, может быть, используя некоторые петли,
возможно с использованием некоторых функций, возможно с использованием -
просто пытаясь затормозить - возможно с использованием некоторые другие функции программирования.
Но если я достаточно долго ждать, - на самом деле, в компьютере, это происходит
супер быстро -
если я достаточно долго ждать, эта функция GetString собирается получить строку
от пользователя, который предположительно ввода его на своей клавиатуре, и
Затем, когда вы GetString делается получении эти символы от пользователя
и хранение их в строку, что Функция, GetString, будет иметь
готовы для меня несколько выходных которой я собирается получить путем
оператор присваивания.
>> И если я уйду, действительно, в выходные Здесь Obosi щедро
участие, не зная об этом продвижения, написав свое имя на этой
переменную, которая представляет строки.
Теперь оператор присваивания означает, что даже хотя это может чувствовать себя немного
излишним, я на самом деле нужно сделать мою собственную копию этого.
Поскольку на левой руке стороны - возгласы! -
Я заметил, что по существу есть строка назвать на левой стороне.
Так что я также собираюсь сделать моя собственная копия этого.
И это немного ложь, потому, что мы увидим в течение недели или двух в
Время, что строки, на самом деле не то, что они кажутся.
>> Но на сегодняшний день, вот возвращаемого значения.
Вот моя собственная копия его после с помощью оператора присваивания.
А теперь, что я хочу делать дальше?
Теперь у нас есть второй двух строк кода.
Так что я теперь хочу называть Е.
Давайте представим, что теперь, когда черная коробки снова вернулся к тому,
Е, а не GetString.
>> Printf на этот раз собирается взять, сколько аргументов?
Так что смотрите, это как два.
Там две запятые там, но один из тех, запятые, это
внутри кавычек.
Таким образом, первый аргумент буквально будет этого.
Н-Е-Л-Л-О, запятая, процентов с, обратный слэш-н.
И теперь я, обеспечивающие не один аргумент, но два аргумента Е.
>> И то, что Е должен делать с эти два входа после того, как передать их в
в качестве аргументов?
Это, как предполагается принять второй из них, который я назвал имя, так
Вторая часть статьи я написал Минуту назад называется именем.
Это собирается штекер значение внутри этой переменной в заполнитель,
% S, так что, опять же, всего за мгновение время, мы увидим побочный эффект
позвонив Е, благодаря чему теперь мы видеть не "Hello, World", а "Здравствуй,
Obosi ".
>> Так большие аплодисменты на оба наших волонтеров, из которых только один знал,
это будет происходить.
Хорошо.
Так, может быть, просто, как это было, Конечно, если вы уже знакомы
с такими, мы надеемся, вы никогда не будете забывать, что визуальное частности о том, как
функции работают.
>> Таким образом, есть больше, чем просто GetString.
Внутри CS50 библиотеки, есть целая куча функций, каждая из которых
капитализируются только, чтобы сделать ясным , которую мы написали эти функции.
Как правило, в C, почти каждый второй функции вы будете использовать в нижнем регистре.
Но мы сознательно использовать заглавные буквы просто дать понять, что эти
готовим колеса рода, что мы будем использовать в течение всего нескольких недель, что
упростить процесс получения ввод от пользователя.
>> Библиотека CS50 ничего не делает что вы сами не могли сделать по
только с помощью кода из C Oldschool учебника.
Но, опять же, мы используем их в качестве обучения Колеса рода для всего пару
недель, так что мы можем избавиться от сложности, что вы скоро поймете
себя делать что-то, как относительно просты, как получение
ввод от пользователя.
>> Так что знаю, что вы будете иметь доступ к GetChar, GetDouble -
удвоиться.
Как там - и тогда GetFloat.
Что такое плавает?
Давайте начнем там.
>> СТУДЕНТ: [неразборчиво].
>> DAVID МАЛАН: Да.
Это число с десятичной точкой.
Так что хотя Целочисленное является целым числом, которое просто номер с 0 до 9,
некоторого числа повторений этого, Поплавок что-то
с запятой.
И двойной, тем временем, также число с десятичной точкой, но более
цифры после десятичной точки, потенциально.
>> Таким образом, мы вернемся к этому в ближайшее время.
Но, как правило, каждый из этих типов Данные, каждый из этих типов переменных
что библиотека, как наша может вернуться к Вы, использование различного количества битов
хранения информации.
Как правило, Чаре, которая просто означает, один символ, использует 8 бит.
И что на самом деле в соответствии с нашими Байт добровольцев прошлой неделе кто
подошел и представляет собой одну Символов ASCII одновременно.
Так Char равен 8 битам.
>> Поплавок, случается, 32 бит, обычно.
И двойной, как нетрудно догадаться, является на самом деле 64 бит, что просто больше,
которая означает, что вы можете иметь больше номера или большей точности.
Но опять же, об этом в другой раз.
GetLongLong, тем временем, хотя глупо называется, на самом деле просто
целое число, которое в два раза большие, в два раза долго, возможно, как обычный
целое, 64 бита вместо 32.
И GetString мы использовали.
>> Но, оказывается, в библиотеке CS50, которая реализуется, как мы увидим, в
виде двух файлов, один из которых называется cs50.h, есть два других
Типы данных в нем.
Булевы не существуют в C. Вы можете моделировать их только с помощью 0 и 1
всей вашей программы.
Но мы в CS50 создали библиотеку Символы "истинной" и "ложной"
для представления 1 и 0, поэтому вам не есть что-то на жесткий код
буквально как 1 и 0.
Но мы увидим те снова.
>> String, тоже не существует.
И именно поэтому я упомянул это немного ложь на данный момент.
Но мы будем отогните, что слоя в скором времени.
Но сейчас, строка последовательность символов.
>> Между тем, в C, вы действительно имеют разные типы данных.
Обратите внимание на эти пишутся строчными буквами.
Таким образом, функции, которые вы видели минуту назад -функции, написанные CS50, что
вернется к вам значение, которое падает в одну из этих категорий.
>> Пару листов чит просто посадить семян здесь. Е не просто
принять% S в качестве заполнителей.
Он принимает% D для десятичных чисел, или% Я бы работать также.
% F является плавающей точкой. % С для символ, если вы хотите просто подключить один
символов в строке отформатированы как мы делали, вы можете использовать% С.
>> А потом, немного досадно,% LLD является в течение долгого, длинные целые десятичные,
который просто означает, что если вам нужен действительно большое количество и вы используете что-то
называется очень долго, что мы приедем назад в PSET, вы можете использовать% LLD к
скажите Е, подключить действительно большой целое здесь в качестве своего второго или
некоторые другие аргументы.
>> И, наконец, я обещал, что есть несколько других побег
последовательностей, Е поддерживает.
Мы видели обратный слэш-н.
Обратная косая черта-R вы можете увидеть.
Это вроде старой школы вещь.
Если вы когда-либо использовали реальные лет пишущая машинка назад, и вы вытащили на рукоятке
которые не только вращала колесо переместите линейку, он также переехал
Все это весь путь обратно к левой, ну, обратный слеш-R просто
существенно перемещает курсор назад в начале линии
не двигая его вниз.
Но опять же, об этом, Может быть, в будущем.
>> Обратная косая черта кавычки, обратный слэш-двойные кавычки, обратный слеш-слеш
Решение маленькие загадки Я упоминал ранее.
И обратный слеш-0 на самом деле довольно интересно.
Но мы вернемся к что в скором времени.
>> Итак, позвольте мне войти, сейчас, CS50 устройства, и давай на самом деле
Быстрый подогрев с одним из примеров мы уже и затем перейти к
что-то немного более сложным.
Так что если я открываю мою программу называется Gedit -
это мой графический редактор.
И я могу сделать это -
Позвольте мне закрыть это окно там -
путем этой иконы здесь, внизу, Gedit, в левом нижнем
углу рядом с меню.
>> Я собираюсь идти вперед и вперед, и сохранить в этом примере, скажем, Джона
Гарвард папку.
Папка Джон Гарвард, всего дома его каталог, в котором все его файлы жить
по умолчанию.
И я иду, чтобы спасти это как файл с именем Hello-0.c.
И я выбрал это имя просто так, линии с образцом кода на
Конечно автора и в YouTube видео в Интернете.
>> Так что теперь я собираюсь начать написать свою первую программу.
Позвольте мне для увеличения разборчивости.
И я собираюсь идти вперед и сказать десятичного Основной пустота, которую просто так
желтый кусок головоломки, которые запускает программу.
Я получил в привычку за лет открытия моего фигурной скобки, то
Также его закрытия, а затем возвращаясь к где я хочу поставить мой код, просто
, потому что это помогает мне держать все сбалансированным, тем более, что моя
Программа получает длинное.
>> И теперь, здесь, я собираюсь идти вперед и сказать, Е, в кавычках,
привет мир, обратный слэш-н, недалеко цитаты, закрывающую скобку, точка с запятой.
Так что я просто повторял все, что мы принимают как должное до сих пор.
Теперь я собираюсь, чтобы уменьшить масштаб.
>> И это окно терминала здесь, что могу ли я сделать в этой черной
и белое окно?
Что я могу его использовать?
Так вот где я бегу команды и где я могу скомпилировать некоторые вещи.
И я собираюсь сделать его простым.
Я собираюсь использовать программу называется марка, которая не
Технически компилятора.
Называется компилятора Clang, но мы вернемся к этому через
неделю или две время.
>> На данный момент, я просто хочу, чтобы тип Марка привет-0, но те из вас, кто
сравнения в ваших умах, что я только набрали к тому, что я должен был набран может
уже знаете, что я сделал что-то здесь не так.
Теперь, есть четко некоторые ошибки.
Прежде, чем я даже смотреть на то, что они, в любое мысли о том, что я сделал не так?
>> СТУДЕНТЫ: [промежуточное VOICES].
>> DAVID МАЛАН: Да.
Мне не хватает заголовка файла библиотеки.
Любой из них. Файлов ч называют заголовок файлы, а они все вместе
принадлежат вещи называются библиотеками.
Библиотеки просто куски кода что другие люди написали.
Таким образом, стандартный [? Я?] библиотека коллекцию файлов, содержащих код
что другие люди написали.
>> Так что мне не хватает этого.
Итак, почему я получаю сообщение об ошибке?
Ну, позвольте мне прокрутить назад в мое окно терминала здесь.
И, к сожалению, в C, а в большом количестве Языки программирования, особенно
Если все это для вас в новинку, ошибка сообщения точны, но они также
довольно загадочным.
И ошибки здесь, в красном, является "Неявном объявлении библиотечной функции
Е с типом ", а затем она прокручивается на следующую строку, «INT строительства символ *,
... "Это просто становится действительно Подавляющее быстро.
>> Но то, что вы должны начать делать, если, опять же, новые на все это, это просто
начинают искать по ключевым словам.
Очевидно, что я не мог понять половину слов я вижу только пока.
Вы будете, тем не менее, в недельный срок.
Но я вижу, Е.
И это должно начаться, в скором времени, чтобы бегать памяти, все в порядке, Е.
Что-то не так с Е.
Разве я записать это так?
Нет, это не похоже - о.
Я не могу использовать его, если я не научит компилятору, что он существует.
И так, опять же, идти с вашим инстинктам, даже если вы на самом деле не понимают
фактические сообщения об ошибках.
>> И действительно, решением здесь является просто включить его в верхней части файла
так, Пересохранение мой файл с Control-S или в меню Файл.
И если я сейчас вернусь сюда, Я собираюсь очистить это.
Control-L является просто хороший способ Для очистки экрана.
А потом я собираюсь набрать "сделать привет 0 "Enter, и теперь я все еще вижу
загадочные последовательность символов, но мы вернемся к этому.
Это то, что делает делает для вас.
Это автоматизация процесса принятия довольно раздражающим участием команд
Clang, фактическое компилятора.
Но то, что у меня нет ошибки означает, что эта вещь должна работать.
>> Так что я сейчас собираюсь сделать - Позвольте мне еще раз увеличить -
./hello-0 Enter, да и вообще, я вижу, "Hello, World". Итак, давайте повышения
это очень немного просто повторить шаги, которые мы предназначены.
Я собираюсь переименовать этот с Сохранить как, чтобы hello1.c.
А теперь я собираюсь объявить переменную называется имя, так что имя строки,
и я собираюсь положить в него Значение котировок конец цитаты
D--V-I-D крупным цитатой запятой.
И теперь я собираюсь заменить "Мир" с тем, что заполнитель для строки?
% S.
>> А теперь, сколько аргументы должны Е взять на сей раз?
Так два.
Так что я выхожу на улицу из цитат.
Я типа "имя" после запятой.
Но я сделал что-то еще так на этот раз.
Но давайте предположим, что я не сделал понимаю, что еще.
Отпусти меня здесь.
>> И заметьте, тоже, я получаю немного скучно набрав "0 привет сделать" все
время, "делать" и все это.
Итак, оказывается, в Линус вы можете часто била стрелку вверх на вашем
клавиатура, и вы можете фактически прокрутки через все команды, которые я
выполнены предыдущие сейчас и займемся.
Так что, если я это сделаю, вверх, вверх, есть сделать привет 0.
Я не хочу этого.
Я просто хочу, чтобы изменить это, чтобы привет 1 на этот раз, Enter.
В конце концов, что будет сэкономить ваше время.
>> Хорошо.
К сожалению, есть ошибка.
Итак, позвольте мне прокрутки вверх.
Это выглядит как я действительно вырезали этой программы.
Я имею в виду, мой бог, это две строки кода, и 10 строк ошибок.
Но посмотрите на верхний первый.
Использование необъявленной строки идентификатора.
Я имел в виду стандартные I N?
Нет, я этого не сделал.
Я имел в виду строки.
>> Но где же строковой переменной тип, объявленный, дд мы можем сказать?
Так что это в CS50 библиотеки.
Так что не хватает, в этих первых пару недель просто использовать
C, что дает нам.
Я также собираюсь подняться здесь, и я мог бы поставить его выше или ниже, но я буду
просто держать его алфавитном чтобы держать вещи упорядоченно.
Я собираюсь включить cs50.h, который предварительно установленной для
Вы на CS50 прибора.
И это с открытым исходным кодом, так что даже люди в Интернете, может использовать его на своих
собственных компьютеров.
Но это приходит с CS50 прибора.
>> Так что теперь позвольте мне вернуться и перекомпилировать сделать это с 1 привет.
Черт возьми.
Еще одной ошибкой.
Позвольте мне прокрутку до первого, все же.
Это одно это немного сложным.
Многосимвольные символьная константа.
Это не помогает мне.
Но обратите внимание, Clang, по крайней мере немного немного приличный, причем с небольшим
зеленые вставки символа, он говорит: вот где я облажался.
Почему это указывает, с этой маленькой зеленая стрелка, на следующий одинарные кавычки
на мое имя?
>> Так что это одна из вещей, которые вы просто привыкнуть, особенно если вы были
программирование на Python или JavaScript, или других языках, где эта деталь
не имеет значения.
В C, это имеет значение.
Если вы объявляете строку, которая является последовательностью 0 или более символов
вы на самом деле должны использовать двойные кавычки.
Так что я на самом деле нужно, чтобы изменить это назад , чтобы открыть цитаты, цитаты близко, с
двойные кавычки.
Одиночные кавычки, имеют свое место, но только тогда, когда вы используете отдельные
символы, но об этом в другой раз.
В настоящее время, двойные кавычки необходимы.
>> Так что теперь, позвольте мне вернуться к моей терминала окна, убедитесь, привет 1.
А кто уверен?
Эта программа теперь собираюсь правильной компиляции?
ОК.
Так втроем думаю, что это.
Хорошо.
Enter.
И это на самом деле.
Так что нет никакой ошибки в настоящем времени, даже хотя этой программы получили немного
более сложным.
Если я сейчас точка слэш привет 1, Enter, он собирается сказать "привет, Дэвид".
>> Но давайте сделаем третьей итерации По этой котором
программа по настоящему динамичным.
Позвольте мне пойти дальше и изменить файл имя, только для согласованности с
файлы, которые вы будете иметь в своем распоряжении Вам потом в Интернете.
Enter.
А теперь я пойду, а не в Магазин "David" жестко здесь.
Что я мог сделать, чтобы очень просто улучшить эту программу?
>> Я могу позвонить GetString.
Это может быть немного неочевидный что должно произойти, так что я собираюсь
на самом деле добавить еще одну линию, Е, и сказать название, толстой кишки, близко цитату, просто
дать пользователю подсказку на экране.
И теперь я собираюсь пойти сюда, и я собираюсь использовать мои клавиш.
Я собираюсь пойти вверх, вверх, а также изменить привет привет от 1 до 2, Enter.
И к счастью, я делаю прогресс.
>> А теперь я собираюсь пойти вверх расставить все точки и слэш привет
изменить его на 2, Enter.
И теперь моя программа -
Я Увеличение - становится Немного красивее.
Имя будет, скажем, Роб В этот раз введите, привет, Роб.
Мы можем сделать это снова.
Имя, Лорен, Enter.
Имя, Иосиф, Enter.
Имя, давайте стараться быть трудно, Enter.
Эх.
Это не совсем ошибка.
Так что это просто немного некрасиво.
Поэтому, возможно, мы могли бы решить эту в будущем, не сейчас.
>> Но как бы вы инстинктивно идти о решении
, что особую проблему?
Все это выглядит глупо.
Как избежать вещей выглядеть глупо?
Таким образом, мы могли бы сделать, хорошо, я услышал пару вещей, состояние и петли.
Мы могли бы использовать, один, условием, чтобы проверить какова длина строки
Пользователь дал нам?
И если он равен 0, то это просто в кавычках, они просто нажмите Enter, затем
возможно, я должен кричать на них и предложит их снова.
Но как побудить их снова?
Ну, я также слышал петлю, и я не мог делать это снова и снова и снова
с помощью которого пользователь то же самое.
>> Ну, давайте сделаем один пример с использованием другого
функции в CS50 библиотеки.
Позвольте мне в этот файл.
Позвольте мне создать новый.
И я буду называть его adder.c, только потому, что это легко сделать простую арифметику,
даже если это будет полностью восторг с тем, что вы могли бы сделать
с любым современным компьютером.
>> Но позвольте мне идти вперед и сейчас -
Я усвоил свой урок последнего времени - включает cs50.h, включите stdio.h, внутр
Основной пустоту, которая, на данный момент, я просто взять на слепой вере, но мы предполагаем, что
тот поймет, что это означает, что в скором времени.
И я собираюсь что-то сказать , как "дайте мне Int."
>> А теперь, как я могу получить Целочисленное?
Я хочу, чтобы в конечном счете, объявить переменную называется Х Тип Внутренние и
хранить в нем целое число от пользователя.
Так, чтобы был полный рот.
Но если кто-то хочет предложить, как Я возвещу целое число, называемое X?
Int х.
>> Таким образом, это действительно так просто.
Дайте мне Int.
Назовите это х.
Теперь я использую оператор присваивания.
И как я могу хранить от оставили значение пользователь?
Я не хочу называть GetString, Очевидно, а GetInt.
Любые аргументы?
Нет.
Так что это открытая скобка, рядом парень немедленно, а затем
точка с запятой завершает линию.
>> Теперь позвольте мне сделать это снова.
Дай мне еще один Int.
На этот раз я сделаю Интеллект, давайте называют его у, равна GetInt.
А теперь сделаем что-то супер-простые как некоторые математики.
Таким образом, Е, то сумма% D является Место для Int.
И% D, период, обратный слэш-н.
>> Хорошо.
Так что это не на самом деле математику.
Но если я хочу сказать, что эта сумма стоимости плюс это значение равно это
другое значение, сколько аргументов в Всего я должен давать Е,
в конечном счете?
Так четыре, верно?
Эта строка, а затем три значения.
Так X является первым я хочу быть подключены первыми% D.
Y будет следующий.
>> И теперь я как бы хочу сказать, г, но г не существует.
Но это не имеет большого значения.
Потому что что бы вы делали инстинктивно, Особенно, если у вас
графический калькулятор, что вы вводите?
Как насчет X плюс Y?
Так что это не фактическое переменной.
Это просто сумма двух других переменных.
И это совершенно законно.
C конечно, понимает простые арифметические как это.
>> Точка с запятой, сохраните.
Теперь позвольте мне перейти сюда и тип Марка гадюка, Enter.
Нет ошибки, так что это тоже прогресс.
Введите сумматора.
И еще одно сочетание клавиш, если вы начинаете скучать
с всех команд -
Если вы начинаете набирать команду, как и точка слэш объявления, а вот где ваши
скуки умирает, как правило, можно ударить Счет, чтобы иметь компьютер закончить
отдыха фразы для вас, если это не неоднозначное, что должно идти после объявления.
>> Итак, позвольте мне теперь идти вперед и нажать кнопку Enter.
Дайте мне Интеллект, 1, 2, и К счастью, это 3.
Но, как всегда, тестирование программ не должно сводиться к
просто пытаюсь его один раз.
Позвольте мне попытаться углу случае, как и отрицательные 1, дай мне 1, а одна
проверяет, как хорошо.
И я, вероятно, хотят сделать еще несколько тщательное тестирование, но я уверен,
удобная с тем, где что находится.
>> Ну, а теперь давайте попробуем другой программе что на этот раз использует
немного другой синтаксис.
Позвольте мне создать новый файл.
Я буду называть эту conditions0.c на линию с некоторых интернет-кода.
И позвольте мне идти вперед и делать включают cs50.h, включают
stdio.h, в главном пустоту -
ОК.
Там мы идем.
У нас есть стандартные шаблонные.
>> И на этот раз я собираюсь сказать, Е, "Я хотел бы Интернешнл, пожалуйста", просто чтобы
сделать приглашения немного более доброжелательными.
А теперь я хочу, чтобы получить Int от пользователя.
Я буду называть его N на этот раз, просто потому N звучит как числа.
GetInt, а теперь, что же Я хочу с ним делать?
Ну, если п - и я буду увеличения -
если п больше 0, хочу сделать следующее -
Е "Вы выбрали положительное число." В противном случае, я собираюсь ввести Е "Вы
определена отрицательная
номер ". Ладно.
Так что это программа, хотя я сделал это быстро, выглядит правильно синтаксически.
Позвольте мне попробовать это.
Сделать состояние 0.
, Кажется, работает.
Условие 0, введите.
Давайте дадим ему ИНТ 50.
Я выбрал положительное число.
Давайте попробуем еще раз.
Условие 0.
Отрицательно 50.
Я выбрал отрицательное число.
>> Но теперь, позвольте мне выбрать то, что мы будем держать вызовом угол случай, которая является более
Интересный случай, что вы думаете может дать вам некоторые неприятности, 0.
Теперь, я уверен, что это один из тех случаях, когда угол нуля
ни положительной, ни отрицательной, так что моя Программа, хотя и в синтаксически
Правильно - он собирает, он работает - не является логически правильным.
Так в чем же здесь просто исправить, если я хочу обнаружить, если я хочу обрабатывать N
равна 0 отдельности?
>> Таким образом, если N равно 0, то я хочу сказать, что-то вроде Е "Вы выбрали 0".
Позвольте мне попытаться это сейчас.
Позвольте мне вернуться здесь, снимите мое окно, и перекомпилировать.
Гектометр
Одна ошибка генерировать.
Но я вы хотите проверить Если N равно 0.
>> Итак, еще раз, еще один глупый чтобы привыкнуть к, знак равенства
оператора присваивания.
Так это на самом деле ошибка в том, технически, хотя компилятор
защищал меня от себя, мы бы технически копировании 0 в N, которые
не то, что я хочу.
Я хочу для проверки равенства с равных равных.
И так, что теперь может быть мое лучшее решение.
>> Позвольте мне сохранить это на самом деле, как, скажем, условиях1, быть новыми и улучшенными.
Так что теперь, если я перекомпилировать, это сделает условия -
возгласы - сделать условиях1 точка слэш условиях1, Enter, "Я хотел бы Интеллект,
пожалуйста. "Я собираюсь пойти вперед и типа 50.
Он по-прежнему хорошо.
Отрицательно 50, по-прежнему хорошо.
0, и, действительно, обнаружил что я выбрал 0.
>> Так что еще я могу теперь с этим делать?
Ну, мы можем, конечно, сделать более сложные вещи.
Но то, что я хотел бы предложить это что мы в конце концов на этой ноте здесь.
Если мы тянем это, вы увидите, пожалуй, любимый мультфильм ваш
до сегодняшнего дня вы могли бы никогда не понимал.
А вот о качестве смеха Вы должны получить с шутками CS.
Так вот о праве.
>> Но еще более убедительно, я думал, что дайте нам немного тизер понедельник.
Итак, мы начали использовать целые числа.
Мы называют поплавков.
Мы даже называют двухместных, которые, опять же, дать вам номера
после десятичной точки.
>> Но оказывается, что и поплавки двухместные, и, на самом деле, компьютеры,
По сути, не может выразить некоторые значения точно.
Мы знаем из математики классов, которые можно иметь любое количество чисел после
десятичной точки.
И вы можете даже поставить вертикальную черту сказать, что эти продолжаться вечно.
>> К сожалению, вы не можете действительно сделать это в компьютер.
И таким углом случаи возникают.
Например, предположим, вы делать что-то финансовых.
Вы делаете математику с проценты и
с долларами и центами.
А те, не центов обязательно составе.
Ну, получается, что фракция пенни может начать складываются, когда
моделируется с компьютерной системой таким образом, что умные
люди могут воспользоваться.
>> И те из вас, кто не видел, я бы бы дать вам 30-секундный тизер
замечательный фильм известного как офисные помещения, которые рисуют картину
задачи будем решать Первое, что в понедельник.
Если бы мы могли увеличить громкость немного, я даю вам 30
секунд офисных площадей.
>> [ВОСПРОИЗВЕДЕНИЕ ВИДЕО]
>> -Я имею в виду, ты, ты не показывать и вы получите сохранить вашу работу.
>> -Вообще-то, я продвигается.
>> -Я могу запрограммировать вирус, который бы рип, что место от большого времени.
>> -Ну, как это работает?
>> -Каждый раз, когда есть банк сделки где процентные вычисляется, и есть
тысячи в день, компьютер заканчивается с этими долями процента.
>> -Но я не собираюсь ничего противозаконного.
>> -Незаконным?
Самир, это Америка.
>> -Мы должны клянусь Богом.
>> -Если никто не знает об этом кроме нас, все в порядке?
нет членов семьи, не подруг, никто.
>> -Конечно.
>> -Согласен.
>> -Не волнуйся, парень.
Я никому не скажу, либо.
>> [КОНЕЦ ВИДЕОВОСПРОИЗВЕДЕНИЕ]
>> DAVID МАЛАН: Так это, тогда, CS50, , которая была офисные помещения, и она будет все
смысл в понедельник.
Увидимся.
>> Рассказчик: На следующей CS50, Роб подстраивается быть от
Гарвардский питания.