LUCAS ФРЕЙТАШ: Хорошо, я думаю, теперь мы в прямом эфире. Добро пожаловать в CS50 Supersection. Мы менее комфортно. Меня зовут Лукас Фрейтас. Я один CS50 руководитель ТФ. Это Лорен. Лорен CARVALHO: Привет, я Лорен. Я также начальник TF для CS50. LUCAS ФРЕЙТАШ: Сегодня мы только собираемся дать обзор того, что все, что вы ребята узнали в неделю один, мы надеемся, чтобы дать вам ребята хороший чувство того, что вы должны знать, для задачи установить один. Просто пару объявления. Прежде всего, в рабочее время. Часы работы происходят с понедельника в четверг в разных домах в Анненберга каждый день. Они очень хороший ресурс для вас ребята приходят и задают вопросы, и поговорить с ТФ, и даже обмен идеями с другими студентами. Так что не забудьте использовать этот ресурс в вашу пользу. Второе, что является CS50 Appliance. За последний [неразборчиво] вы, ребята, не нужно на самом деле есть прибор. Вы только что сделали все, что в ваш персональный компьютер. Но для этой проблемы, у вас действительно есть иметь виртуальную машину, так тому и быть Обязательно скачать CS50 И бытовой установить его. И третий вещь обязательно начать задачу, поставленную как можно скорее просто , потому что это гораздо легче найти помочь, когда вы находитесь в начале недели. Потому что люди, как правило, не ждать, пока последнюю секунду, чтобы начать набор проблем, а затем вы идете в рабочее время, и есть много людей. Где, если вы идете в понедельник, вы собираетесь видеть, что вы можете поговорить с ТФ в значительной степени в течение целой ночи, и они собираются быть больше рады Вам помочь. Лорен CARVALHO: Могу ли я просто остановиться Вы всего за одну секунду? Неужели все смогли скачать CS50 Appliance? Попробовали люди? LUCAS ФРЕЙТАШ: Чтобы скачать, на образом, вы можете получить инструкции по cs50.net/appliance. Лорен CARVALHO: Верно. И для этого надо некоторое время для нашего системных администраторов, чтобы вы лицензию ключ, поэтому подписаться на Бесплатная пробная версия в первую очередь. Таким образом, вы будете иметь его в течение 30 дней, а затем ждать вашего лицензионного ключа которые должны дать ему Вам в течение года. LUCAS ФРЕЙТАШ: Прежде всего, давайте немного поговорим о CS50 Appliance. CS50 Appliance самом деле является виртуальным машина, что вы собираетесь работать в вашем собственном компьютере, который является в основном работаете в другой компьютер внутри своего компьютера. Что довольно прохладно. А на самом деле это везде используется. Люди, которые в технологии будет знать, что это используется все время. Вы? Может иметь несколько компьютеров в одном устройстве. Давайте на самом деле взглянуть на Appliance. Когда вы идете в прибор после Зарегистрировавшись, вы будете иметь, чтобы поставить свое имя и войти в Гарвард так что мы можем получить вас всех зарегистрированных. Вы увидите в основном только обои, а затем Дом и мусора, а потом эти маленькие иконки. Это три иконки на самом деле наиболее важные вещи, которые вы можете иметь в Ваш прибор. Первый Gedit, который является текстовым редактор, как Блокнот или как любой вид текстового редактора. Это просто то, что мы используем, чтобы написать Код, а затем делать такие вещи с ним. Второе, что мы имеем здесь дело Chrome. Так что, если вам нужно использовать Интернет в Appliance, это то, что вы можете использовать. И третье это терминал, который на самом деле очень милый. Люди обычно являются своего рода боится терминал, потому что это это очень старомодный, в которой вы просто в основном типа все с Ваша клавиатура. Существует не так много взаимодействия с помощью мыши. Но на самом деле терминал делает очень хорошие вещи. Прежде всего, давайте просто пройти некоторые команды, которые вы можно использовать в терминале. Лорен CARVALHO: И не стесняйтесь, чтобы остановить нам, если у вас есть какие-либо вопросы. LUCAS ФРЕЙТАШ: Да. Таким образом, первая команда, что у нас есть для терминала является лс. лс в основном означает, список все, все файлы и все директора, что у меня есть в том месте, что я в. Так что если я делаю Ls здесь, я собираюсь посмотреть что у меня есть некоторые каталоги. У меня есть рабочий стол, загрузку, журналы, а также виртуальных доменов. Таковы в синий, потому что они все каталоги. Тогда у вас есть другие файлы. У вас есть, как привет и hello.c, который только файлы, и они находятся в различных цветов. Так что это очень важная команда просто Вы можете видеть, что это файлы и каталоги, которые вы должны в каталоге, вы на в терминале. Когда вы видите jharvard @ прибор и то маленький символ там, Тильда, это просто означает, что это каталог, который вы в данный момент. Лорен CARVALHO: Так набрав Ls почти как Нажимая на папку , указанный тут же, в это показывает Вы все содержимое, которые в этой папке. АУДИТОРИЯ: Есть текст после hello.c? Лорен CARVALHO: О, вы не можете видеть, что, потому что это синий. LUCAS ФРЕЙТАШ: Он говорит журналы и виртуальных доменов. Лорен CARVALHO: Это просто другие папки. Мне очень жаль, что это действительно трудно увидеть. Может быть, если мы выключили свет? Колтон, вы хотите, чтобы попытаться найти выключатель? К сожалению об этом. Я не думаю об этом. LUCAS ФРЕЙТАШ: Но это в основном - да, если бы вы могли - Лорен CARVALHO: Увеличить экране. LUCAS ФРЕЙТАШ: я не есть эту функцию. Лорен CARVALHO: [неразборчиво]. ОК. Ну, есть просто много природного Свет в этой комнате, а также. LUCAS ФРЕЙТАШ: Давайте просто предположим, что Есть два других каталогов там. Лорен CARVALHO: Просто имейте с нами. Это единственная часть, что вы будете смотреть на терминал. LUCAS ФРЕЙТАШ: Следующий команда в основном, может быть, вы хотите организовать Ваши файлы - например, все ваши файлы Си в одном Каталог-но у вас нет каталог только для C файлы еще. Вы можете в основном создать каталог с помощью терминала, а также, что является то же самое, щелкнув правой кнопкой мыши и говоря Новая папка. Команда создать каталог, который является MkDir, поэтому в основном "сделать" и "Каталог". И тогда вы можете поместить имя каталога. Давайте предположим, что я хотел бы назвать, Я не знаю, скажем pset1 Делая это, я просто создал каталог. Давайте просто проверить, что она есть. Так что если я делаю Ls, теперь я вижу, журналы, и затем pset1, а затем виртуальных доменов. Поэтому у меня есть новый каталог там. А потом, когда у вас есть новый каталог, может быть, вы хотите, чтобы перейти в нее, так что следующая команда этот диск, которые просто в основном средства идут на определенный каталог. Так что если я хочу поехать в pset1, Я могу просто сделать кд pset1. Лорен CARVALHO: кд выступает за изменения Каталог, [неразборчиво] в состоянии помните, что. LUCAS ФРЕЙТАШ: А теперь вы видите, что а не просто имея jharvard Прибор, я jharvard прибор, а затем pset1, потому что это показывает мне, где я нахожусь в этом компьютере. Теперь, если я хочу вернуться к каталог, который был перед этим, я может сделать кд точка точка, которая просто означает идти в каталог, что я был раньше, как родителя это Каталог, в основном. И теперь я вижу, что я к jharvard. Следующее, что я могу сделать это является гт, что удалить файл. Например, давайте сначала сделать Ls чтобы увидеть, что у меня здесь. У меня есть привет и hello.c. Давайте предположим, что я хочу, чтобы удалить их. Я могу сделать гт привет. Это будет сказать "удалить обычный файл Привет? "И я говорю" да ". И теперь, если я сделать Ls, я вижу, что это там больше нет. Если я пытаюсь использовать гт для каталога, хотя, он не собирается чтобы позволить Вам делать ничего. Это будет сказать, эй, вы не может удалить каталог. Поэтому у нас есть этот другой приходят называется удалить каталог, который только в основном означает, удалить каталог. Я могу, например, удалить pset1. А если я Ls, я не его больше. Есть вопросы по этому поводу? Нет? Да? АУДИТОРИЯ: Важно ли, чтобы вы оставите пространство после - когда вы начните вводить что-то в? LUCAS ФРЕЙТАШ: Да. Если я это сделаю, например, компакт и каталог, Я должен поставить пробел. Что пространство ты говоришь? Лорен CARVALHO: Пространство между кд и [неразборчиво]. LUCAS ФРЕЙТАШ: Да, вам придется положить пространства, потому что кд является Команда, а затем на следующий строка, Вы набираете в основном каталоге. Так что это как аргумент. Да? АУДИТОРИЯ: Когда вы перечислить, все те, различные каталоги, не так ли? LUCAS ФРЕЙТАШ: Да, они находитесь в каталоге. АУДИТОРИЯ: Что такое различия среди каталогов? LUCAS ФРЕЙТАШ: Они просто разные папки. Каталог представляет собой папку на вашем компьютере. АУДИТОРИЯ: Открыть папку. LUCAS ФРЕЙТАШ: Да, это просто открыть папку. Лорен Карвалью: здесь, те, которые находятся в синий являются фактическими каталоги, которые можно получить в и то увидите кучу вещей, которые в том, что, что является неудачным потому что вы не можете на самом деле читать те, синим цветом. А те, в белом только файлы что находятся в текущем каталоге. LUCAS Фрейтас: Так каталоги это папки. Другие из них файлы. АУДИТОРИЯ: Что команда , чтобы сбросить его или очистить его? LUCAS ФРЕЙТАШ: Чтобы очистить? Лорен CARVALHO: Чтобы очистить? LUCAS ФРЕЙТАШ: Я думаю, это "ясно". Да. Таким образом, вы просто введите ясно, если ваш экран слишком грязно. Любые другие вопросы? И вы узнаете кучу друга команды просто естественно во время семестр, потому что они очень полезны. Так что теперь давайте поговорим о составлении. Мы говорили о псевдокоде и исходный текст и объектный код. И есть много кодов, и, возможно, вы, ребята, не уверены, что. Давайте немного поговорим о том, что происходит, когда вы пишете программу, и вы скомпилировать его, и он становится исполняемый файл. Это все слова, что вы, ребята наверное, слышали, и, возможно, вы не действительно уверен, что происходит. Скажем, например, что я хочу написать программу, которая говорит "привет". Первое, что приходит в голову это вы вроде стараюсь думать о том, как вы собираюсь этого делать в своем уме, и Вы вероятно думаете на английском или каким-то другим языком, как естественный язык, наверное. И тогда вы думаете, хорошо, если я хочу, например, написать программу, которая говорит "привет", я хотел бы начать программу, Я буду печатать привет, а затем я буду выйти из программы. Это псевдокод. Это просто в основном вы пытаетесь придумать последовательности событий что вы собираетесь делать, чтобы быть состоянии написать программу. Тогда у вас есть исходный код, и исходный код не должен в частности, быть в С. Мы говорим о исходный код на C, потому что это язык мы учимся, но, конечно Код может быть почти любой язык программирования, который у вас есть. Позже в тот же семестра, вы будете чтобы изучать другие языки. Это также исходный код. Например, здесь, это мой источник Код, а затем я в том числе библиотека, и тогда я начинаю Основной, а затем распечатать. И Лора собирается поговорить немного немного обо всем этом. Так что это исходный код. И то, что объектный код? Объект представляет собой куча нулей и те, в основном. Что происходит, вы изначально имеют псевдокод, который все на английском языке. И я имею в виду, вы понимаете это. Возможно ваши друзья понимают это, и большинство людей будет понять идею. Но компьютеры действительно немой, и они не понимают английский язык, так что вы уже перевести это в чем-то, обычно переводится в некоторые язык программирования. И вы можете думать о программировании язык как вроде как языка что вы сообщите своему компьютеру, как говорить и понимать. Вы в основном что-то писал в язык, который вы оба и ваш Компьютер понять. Вот исходный код. Так происходит форма псевдокод к источнику Код, это зависит от вас. Это в основном вы делаете вашу программу. Но проблема в том, что компьютер не даже понять язык программирования. Это не понимает исходный код на всех. Это на самом деле просто понимает нули и единицы. Поэтому у нас есть этот очень волшебный, что называется компилятор, который в основном является собирается получить источник называется, что вам писал на языке, и вы, и ваш компьютер говорить, и теперь вы собирается преобразование, которое в нули и единицы. Поэтому в основном то, что компилятор делает это он получает исходный код, в этом случае C, он собирается превратить его в нулями и те, что компьютер понимает и может сделать исполняемый файл из него. Имеет ли это смысл? Вы можете просто думать о компилятором как какая-то переводчик, является помогая вам объяснить к компьютеру именно то, что он должен делать. Но как мне скомпилировать. Давайте вернемся к Appliance, и скажем, что я делаю эту программу. Впервые я собираюсь создать каталог здесь, и я буду называть его "Практика". Теперь я собираюсь ориентироваться в каталог, так кд практика. Теперь я нахожусь в практике. Теперь я хочу, чтобы начать Gedit, так как я могу это сделать? Я могу либо нажмите здесь, или я могу просто буквально введите "Gedit," и это будет , чтобы открыть для меня. Теперь я собираюсь ввести свою программу, так именно то, что я написал на слайде. Я объявляю библиотека. Я делаю тап_п, пустоту. И теперь я делаю Printf, привет. Теперь я иду, чтобы спасти этого. Позвольте мне применить ее на практике, и Я буду называть эту hello.c. Так что теперь он сохраняется. Если я хочу, чтобы скомпилировать его, я фактически можете сделать это в двух разных местах. Я могу либо сделать это в окне терминала, так что это большой, или вы можете использовать Gedit, что на самом деле имеет окно терминала прямо здесь. Так что вы можете очень удобно просто сделать ваш код, а затем вы можете просто ввести что здесь, и попытаться собрать его. Так как мне скомпилировать код? Самый простой способ, который у нас есть, с помощью сделать, что это функция, которая в основном собирается компиляции кода. Вы просто должны сказать, сделать привет, так "Сделать" и название программы. Ой. Это неудобно. Лорен CARVALHO: Можете ли вы [неразборчиво]? LUCAS ФРЕЙТАШ: Извините. Я не сохранить его в Право каталог. Приходите к практике, и в настоящее время сохранить его как hello.c. Мне очень жаль. Теперь она сохраняется. Позвольте мне сделать Ls и быть уверен, что это здесь. ОК, теперь он здесь. Так что теперь, если я действительно делают привет, он выплевывает много материала, но тогда это просто дает меня другая линия для терминала, который означает, что она была успешной. Так что теперь, если я сделаю Ls снова, я на самом деле см. этот файл в зеленый, который является исполняемый файл. И потом, если я хочу, чтобы запустить его, все, что Я должен сделать, это точка слэш привет. Это будет поздороваться прямо здесь, так это именно то, что я прошу его. Существует еще один способ составления, который с помощью лязг. Clang является только компилятор, что у нас есть, и это немного более многословным, чтобы скомпилировать его. Но это работает так же хорошо. Так что если я делаю лязг, а затем-о, а затем имя, которое я хочу дать исполняемый файл, так скажем "Привет". А потом файл, который я хочу для компиляции, hello.c. Он также собирается составить. И у вас есть файл здесь, и Я могу просто запустить его, а также. Таким образом, оба работают. Имеет ли это смысл? Есть вопросы? АУДИТОРИЯ: Можете ли вы увеличить в немного? LUCAS ФРЕЙТАШ: Извините? АУДИТОРИЯ: Увеличить? Лорен CARVALHO: Я думаю, что вам можно просто командовать плюс. LUCAS ФРЕЙТАШ: Командная что? Лорен CARVALHO: Команда плюс. LUCAS ФРЕЙТАШ: Нет. Лорен CARVALHO: О, это не будет работать, потому что - это потому, что мы установить разрешение за это дело. LUCAS ФРЕЙТАШ: я не думаю, мы можем увеличить дюйма Да, мы не можем увеличить. У вас есть еще один вопрос? Извините. АУДИТОРИЯ: Можете ли вы повторить лязг? LUCAS ФРЕЙТАШ: лязг? Clang это то же самое, как марка, но Разница в том, что сначала я собираюсь написать звон, который является команда, то я собираюсь сделать -0, все, что является только то, что мы собираемся узнать позже в качестве флага. Так просто думаю, что вы всегда должны поставить-о. А потом первый, вы собираетесь поставить имя исполняемого файла, в основном файл, который вы собирается создать. Поэтому я могу сказать, например, Hello2 и то файл, что я хочу, чтобы скомпилировать, который является. с файл. Так вот hello.c. Имеет ли это смысл? АУДИТОРИЯ: Здравствуйте что? Что это? LUCAS ФРЕЙТАШ: hello.c. И если я скомпилировать его, и если Я лс, у меня также есть hello2, что я только что собрали. И если я пытаюсь запустить его, он собирается сделать то же самое, что и привет, просто напечатать привет. АУДИТОРИЯ: Почему для марки Вы можете поместить hello.c после? LUCAS ФРЕЙТАШ: В маркам, вы не должны поставить. гр. В маркам, вы просто говорите Название программы. Вы не должны говорить. Гр. Но для лязгом, вы должны. АУДИТОРИЯ: С лязгом вы также должны добавить [неразборчиво] Лорен CARVALHO: Да. Таким образом, вы также должны библиотеке. LUCAS ФРЕЙТАШ: Да, это то, мы будем использовать позже. Это называется связывание, и я думаю, что мы будем говорить об этом позже. Другой вопрос? АУДИТОРИЯ: У Вас положить точка слэш лязг? LUCAS ФРЕЙТАШ: Нет. Точка слэш это всего лишь открыть исполняемый файл. Так лязг, вы просто написать "лязг", и то если вы хотите, чтобы открыть исполняемый файл, который вы только что компиляции, то вы точка слэш и имя. Имеет ли это смысл? АУДИТОРИЯ: Если бы вы были просто изменения [Неразборчиво], чтобы привет мир, вы необходимо повторно скомпилировать его? LUCAS ФРЕЙТАШ: Да. если я хочу сказать, например, "привет там ", я могу просто сохранить его сейчас, и я просто скомпилировать его снова. Итак, позвольте мне сделать марку привет. А если я привет, это будет сказать "привет там." Имеет смысл? Любые другие вопросы? АУДИТОРИЯ: У вас есть включить стандарт ввода / вывода для координации работы? LUCAS ФРЕЙТАШ: Да. Стандартный ввод / вывод в основном библиотека, которая имеет Реализация для Printf. Так что вещь прямо на Верхняя часть включает STDIO. То есть в том числе библиотеку, которая в основном имеет кучу разные инструменты, которые можно использовать. один? Из них Е, которая является функцией , что в основном печатает сообщения на экране. Любые другие вопросы? Нет? ОК. Так что теперь давайте поговорим о - Лорен CARVALHO: Давайте просто перейти на стиль руководства. Вы хотите, чтобы просто найти его здесь? LUCAS ФРЕЙТАШ: Итак, мы собираемся говорить о стиле. Лорен CARVALHO: О, Дэвид не закончил. ОК. Почему бы нам не вернуться к стиль в самом конце? Это на самом деле был обновлен как мы говорим. LUCAS ФРЕЙТАШ: Да. Давайте путь для Дэвид закончить это. Лорен CARVALHO: Может мы переходим фактически? Так что я надеюсь, что все было наслаждаясь царапина. К сожалению, пришло время отойти от этого - к сожалению, пришло время, чтобы отойти от этих симпатичных блоков программирования на С. Но, к счастью, все конструкции программирования, что у Вас есть работает с в пустом являются непосредственно переводимые на C, и мы собирается начать, чтобы узнать о некоторые из них прямо сейчас. Давайте сначала поговорим о условиях в логических выражениях. Это работает на резерв заряд батареи. LUCAS ФРЕЙТАШ: Как что не работает? ОК. Вы идете туда, я иду, чтобы получить - Лорен CARVALHO: Так условия важны, поскольку они позволяют нам ввести логику в наших программах. Вот пример состояния в рамках программы C. Отметим, как это - Так это условие блок прямо здесь, это Е заявление не будет выполнять если только условие в круглые скобки, п больше 0, оценивается как истина. Теперь все от условий содержания в ф заявления логических выражений, Это означает, что существует только два варианта. Они могут либо оценить, верно, или они могут оценить ложь. Так вот, так что это имеет смысл, не так ли? н больше 0, значит, это положительный число, что означает, что он будет печатать из "вы выбрали положительное число." Есть много логических выражений которая может лечь в состояние с инициализации заявлении. У нас есть меньше. Это меньше, чем или равно. Это просто смешно [неразборчиво]. Если вы хотите Е произойти, если это больше или равно 0, то вы выбрали бы этот. Таким образом, равна просто добавляет право после того, как больше, чем знак. Равные равны, который отличается от только один знак равенства, равных равными на самом деле означает, что все, что находится на Левая часть это то же самое, как что на правой стороне этого где знак равенства есть что? Что является лишь одним знак равенства? Назначение. LUCAS ФРЕЙТАШ: Кто это сказал? Это конфеты? О, нет. Извините. Извините. Вы оба получите конфету. О, хорошо! Три человека получить конфеты! Лорен CARVALHO: Так что это прямо здесь является оператором взрыва предшествующих знак равенства, так что это не равно. Так что, если это было в моем состоянии, Тело условии бы выполнять, только если все находится в левая не то же самое, как что справа. Я также может иметь только Восклицательный знак. На самом деле, мы увидим в функции скользить, как это будет использоваться. LUCAS ФРЕЙТАШ: Есть вопросы? Нет? Лорен CARVALHO: Мы можем объединить их Логические выражения построить еще сложные условные операторы. Так вот, если все, что на левом правая часть двойных баров или все, что находится на правой стороне двойные бары оценивается как истина, тогда мы будем распечатывать недействительным. А потом здесь, если что бы ни на левой стороне два амперсанды и каковы бы ни были на правой стороной из двух амперсандами оценивается как истина, то мы распечатать действует. Двойные бары называются логическим ИЛИ оператор двойные амперсанды являются называется логический оператор. Да? АУДИТОРИЯ: Являются ли тех, кто только нижний регистр единицами? Лорен CARVALHO: Нет. Они на самом деле - вы знаете реакцию, как и выше вашего ключа Вернуться? Видите ли вы, что? LUCAS ФРЕЙТАШ: На самом деле это бар. Лорен CARVALHO: Это на самом деле всего два бара. АУДИТОРИЯ: Можете ли вы использовать равна равна для строк? LUCAS ФРЕЙТАШ: Нет. Мы собираемся, чтобы узнать позже что-то об этом. Лорен CARVALHO: Там функция что вы можете использовать. Но вы не должны обеспокоены тем, что только пока. Что делать, если я даю эту программу число 5? Что будет распечатать? АУДИТОРИЯ: [неразборчиво] действует. Лорен CARVALHO: Действительно? Да. Я не знаю, кто понял. [Смех] Лорен CARVALHO: Это вид страшно [неразборчиво]. АУДИТОРИЯ: Так дважды и, это просто означает, и? Лорен CARVALHO: Да. Так число 5 является одновременно больше чем 0 и меньше 100. Зал: А почему бы это было один? Лорен CARVALHO: Один амперсанд на самом деле что-то другое, и это Оператор побитового, которые вы будете узнать чуть позже. Но это то, что на самом деле работает с битами заданного числа. LUCAS ФРЕЙТАШ: Просто думаю, что они не придется беспокоиться об этом сейчас. Лорен CARVALHO: Я думаю, что это, вероятно, Далее в неделю. LUCAS ФРЕЙТАШ: Любые другие вопросы? Нет? Лорен CARVALHO: Так мы видели, что это блокировать может стоять один, но он может Также в паре с и еще блок. Таким образом, в этом случае, если п больше, чем 0, мы собираемся, чтобы распечатать "You взял положительное число. "еще, это означает, если это 0 или, если это меньше от 0, мы собираемся, чтобы распечатать, "Вы выбрали отрицательное число." Интересно здесь то, что эти являются эксклюзивными друг от друга. Там никогда не будет случай в котором это и это может как распечатать. Я уверен, что вы работали с если / другое боксировать в пустом, так что это должно быть довольно хорошо знакомы. Да? АУДИТОРИЯ: Нужна ли нам пространство между Int N равна GetInt то пространство в если заявление? Как мы используем линию [неразборчиво] Лорен CARVALHO: О, пространство здесь? АУДИТОРИЯ: Как это, но вы дважды пространство. Нет, идти вверх. Поднимитесь. LUCAS ФРЕЙТАШ: Просто линия? АУДИТОРИЯ: Да. LUCAS ФРЕЙТАШ: Просто пустая строка? АУДИТОРИЯ: Да. Лорен CARVALHO: Пустая строка? Нет. Вот только стилистический вещь. LUCAS ФРЕЙТАШ: Это как иногда Вы просто пропустить несколько строк около того что код не похож огромный блок текста. Лорен CARVALHO: Я думаю, что то, что произошло было то, что у нас был комментарий здесь, но я Он взял его, чтобы вы, ребята, придется думать о коде, а чем просто читать мой комментарий. В общем, расстояние не будет действительно влияют на то, ваша программа работает. Это скорее стилистический вещи. И когда у нас есть стиль руководство обновленную и готов к работе к концу supersection, мы поговорим о том, что больше. Там что-то не так с эта программа, не так ли? Потому 0 на самом деле не отрицательное число. Итак, давайте посмотрим, можем ли мы это исправить. Вы, наверное, можете себе представить, с этим говорит, не так ли? Если п больше 0, мы печатаем, "Вы взял положительное число. "Тогда еще если п меньше 0, "Вы выбрали отрицательное число. "еще", Вы выбрали 0 ". Теперь самое интересное заключается в том, что это может продолжаться вечно. Вы можете иметь, если блок, в другом месте, если блок, другой другое, если блок, иначе, если, еще, если, еще, если, еще, в основном до тех пор, как вы хотите. И когда построен, как это, все они будет эксклюзивный друг от друга. Да? АУДИТОРИЯ: Так почему вы не можете просто использовать другой, если вместо [неразборчиво]? Лорен CARVALHO: В этом случае, да, я могли бы использовать другой, если, и было бы абсолютно нормально, потому что условия сами эксклюзивный друг от друга. Но если условия не являются исключительными друг от друга, то это заставить их никогда не как оценить, если это имеет смысл. АУДИТОРИЯ: В таком случае, мы могли бы гнездо второй, если в первом случае? Лорен CARVALHO: Если - что вы имеете в виду? АУДИТОРИЯ: Если два условия не являются взаимоисключающими? Лорен CARVALHO: Если условия не являются взаимоисключающими? Но вы хотите только один из них бежать? АУДИТОРИЯ: Вы хотите просто если вместо другого. Лорен CARVALHO: Да. Там всегда будет много способов, которые вы можете сделать это. Вы можете определенно вкладывать их. И вы увидите, в будущем слайд, который вы можете иметь несколько сослагательного наклонения, только один за другим. Но это способ логически организации поток вашей программы. LUCAS ФРЕЙТАШ: И есть еще один вещь, это то, что вы спросили о помещении если а потом еще, если. Это было бы отлично работать, но это плохо дизайн, потому что в основном, если вы проверить, если, и вы заметите, что число больше 0, то может просто закончить программу. Вы не должны проверить, если это меньше, чем 0, верно? Но если у вас, если, если, он собирается проверить как, в то время как, если я сделаю, если еще есть, он собирается проверить, если это больше 0. Если это так, это не будет даже смотреть на других линий кода. Так вы в основном проверяя его как дважды излишне, так вот почему мы делать, если еще, если. Любые другие вопросы? АУДИТОРИЯ: Так что функциональность в другом месте, если такая же, как если это было просто, если? Лорен CARVALHO: Нет. Вы на самом деле происходит, чтобы увидеть в мой следующий скользить пример, в котором он может отличаться. В этом случае, это почти то же самое. Так вот, у нас есть пример кратного если заявления, а также функциональность не то же самое как будто я только что сказал, что если иначе, если еще, если в другом месте. Давайте просто думать о том, будет печатать , если я вхожу в число 95 в этой программе. АУДИТОРИЯ: [неразборчиво] Лорен CARVALHO: А потом? АУДИТОРИЯ: [неразборчиво] Лорен CARVALHO: Да. Таким образом, в этом случае эти условия не являются взаимоисключающими друг от друга. И потому, что ничто не мешает это условие от оценки, если это один уже есть, они просто все собираемся, чтобы распечатать. Итак, как я мог это исправить? АУДИТОРИЯ: остальное сослагательного наклонения? Лорен CARVALHO: Вы можете использовать другом месте сослагательного наклонения. Я мог изменить порядок из них, не так ли? Если бы я сделал это один в первую очередь? Ну, на самом деле, нет. Это не будет работать на 95. LUCAS ФРЕЙТАШ: Нет, просто в другом месте сослагательного наклонения. Лорен CARVALHO: остальное сослагательного наклонения бы это исправил. Значит ли это, прояснить путаницу между МСФ и еще сослагательного наклонения? АУДИТОРИЯ: Я просто хотел бы спросить вас, если ты использовать еще, если он остановится? Лорен CARVALHO: Верно. Таким образом, только в этом первым. Если бы я вошел в число 95, только на этот никогда бы распечатать, и он никогда бы прогрессировала в другом месте. LUCAS ФРЕЙТАШ: Просто вид думать это как если бы это произошло, это сделать. Остальное, если бы не, проверка для этого, а затем сделать это. Так как они все друг друга Эксклюзивный. Вы не можете получить на два над теми. АУДИТОРИЯ: Можете ли вы использовать логическое И для этой ситуации? Лорен CARVALHO: Да. Это еще один способ, что мы могли бы зафиксировали эту проблему. Мы могли бы определить колеблется, не так ли? Так что я мог бы сказать, если п больше чем 90 и меньше - ну, я думаю, это не делает действительно имеет значения, но здесь я мог бы сказать, если N больше, чем 80 и меньше 90. Более 70, менее 80. Это было бы также работал. [Смех] LUCAS ФРЕЙТАШ: Она боится. Лорен CARVALHO: Не бойтесь. LUCAS ФРЕЙТАШ: Это не что это будет неправильно. Это просто, что это излишне многословен. Как и в информатике, следует быть как можно более простым, пока у вас есть функциональность. Вы хотите, чтобы конфеты? АУДИТОРИЯ: Не нужно. Лорен CARVALHO: Ты пугаешь все, Лукас. LUCAS ФРЕЙТАШ: Извините. Лорен CARVALHO: Дэвид также отметил, эти переключения заявление в классе. В основном то, что происходит это переключатель заявление принимает переменную. В этом случае мы берем целое. Если целое является 1, мы собираемся распечатать, "Ты выбрал небольшой число. "Если целое является 1," Вы взял средний ряд ". Если Целое это 3, "Ты выбрал высокая число. "И я также имел дело по умолчанию здесь, но это не показывает до, который слишком плох. В основном, это просто другой синтаксис. Мы могли бы реализовать это точное то же самое с тем, если и еще, если заявления. Но когда есть много отличается условия и много другое вариации на то, что вы хотите сделать для каждый вход, это вариант. Так что это просто хороший синтаксис знать. Да? АУДИТОРИЯ: Почему не обратный слеш н в первом? Лорен CARVALHO: Для там? Там нет косая черта п там потому что GetInt - Если вы попробуете это, оно будет дать вам эту строку. Дайте мне целое число от 1 до 3. И если я поставил зазора п, это было бы взять меня на следующую строку, но я просто хотел, чтобы они введите целое сразу после двоеточия. Вы могли бы поставить зазора н. Это не имеет большого значения. Да? АУДИТОРИЯ: Для этого кода, это случай, то, что, поскольку это первый случай? Потому что - Лорен CARVALHO: Нет, нет, нет. Так что это дает мне целое от 1 до 3. Если п = 1, я печатаю это. Если бы я попросил писем, я мог бы сказал, дайте мне письмо между А и С. Затем это было бы дело А. АУДИТОРИЯ: [неразборчиво]. Дело просто [неразборчиво] Лорен CARVALHO: Да, верно. Да? АУДИТОРИЯ: Что делать, если вы хотите иметь более реляционной выражения? Таким образом, вместо того, чтобы говорить п равен 1, [неразборчиво] н больше 1 в первом случае? Лорен CARVALHO: На самом деле, если я не определить некоторые из этих случаев это будет быть донести. Так на самом деле, может быть, это не что вы просите. LUCAS ФРЕЙТАШ: Я думаю, что она просит, если дело было п больше, чем 0, случае меньше 0. Лорен CARVALHO: Может быть переключатель заявление действительно не то, что вы хотите использовать в этом случае. LUCAS ФРЕЙТАШ: Заявление переключатель только для стоимости, так что вы проверка значение, как то или это. Таким образом, вы не можете на самом деле положить условий. АУДИТОРИЯ: Что делать, если человек типы с [неразборчиво]? Лорен CARVALHO: Это было бы мой случай умолчанию, который, к сожалению Вы не можете видеть. LUCAS ФРЕЙТАШ: [неразборчиво] заставить их увидеть. Лорен CARVALHO: На самом деле, вы знаете, что? Давайте просто пойти учиться 50, и я буду просто увеличить на слайдах по изучению 50, потому что это просто раздражает. Итак, позвольте мне на самом деле пойти состоянии. Это просто будет занять некоторое время. Хорошо. Так, мне очень жаль. По крайней мере, теперь мы будем иметь возможность видеть все без него отрезав. Хорошо. Так что, если они положили в 10, мы бы по умолчанию здесь, чтобы моем случае по умолчанию, и я просто напечатать недействительным, потому что я попросил их ввести целое число от 1 до 3. Любые другие вопросы? Да? АУДИТОРИЯ: Скажем случае, если один, случае три, говорят, что вы хотели, чтобы он все то же самое, так что вы выбрали ряд это не средний число. В этом случае, было бы излишним? Не могли бы вы просто изменить текст в оба из них, или же есть некоторые избыточность? Есть ли способ, чтобы объединить [Неразборчиво]? Лорен CARVALHO: Есть способы, чтобы объединить их, но я верю, что можно только объединять соседние них. Так что, если я ничего не определяют для случая два, то это обратиться в обоих случаях. О, если бы я ничего не поставить для случая один, это будет относиться к обоим случай один и два. Если это имеет смысл. АУДИТОРИЯ: Можете ли вы повторить этот один? LUCAS ФРЕЙТАШ: ОК. Если вы сделали в принципе, как, у вас есть то же самое, но вы не ставите ничего тут, вы были бы либо для случай один или случай два, сделать это. Не так ли? И этот разрыв означает, что если вы получаете в этом случае, просто уйти. Так вот что значит тормоз. Так что, если я только что сделал это, вы посмотрите, это случай один, и вы бы просто сделать это. Если бы это было дело двух, это было бы также просто прийти сюда и сделать это. Зала: Но вы можете сделать это? Если есть что-то для Случай двух [неразборчиво] Лорен CARVALHO: Я не верю, Вы можете сделать это. Я не думаю, что вы можете пропустить вокруг. Вы можете сделать это, Боб? Не думаю. АУДИТОРИЯ: Так только один номер может пойти после случая, не так ли? Там не может быть случай один, запятая, два? LUCAS ФРЕЙТАШ: Нет, вы не можете. Вы, безусловно, не может. Лорен CARVALHO: Я имею в виду, дело в том, это вариант, и это не могло бы соответствовать вашему прецедент, так, то вы будет использовать, если условия. АУДИТОРИЯ: Так почему бы вам это сделать? Переключатель? Лорен CARVALHO: Я хотел бы использовать это Если у вас очень определено - на самом деле, Лукас, это вы блокируете. LUCAS ФРЕЙТАШ: Ой, простите. Лорен CARVALHO: Если у вас очень определенные модели поведения, которые вы хотите для каждый вход, это может быть немного более кратким, чем выписывая если заявление для каждого из них. АУДИТОРИЯ: При чем тут перерыв означает снова? Лорен CARVALHO: Перерыв означает остановить. Помните, что если у меня не было этого перерыва здесь, мы бы просто упал в следующем случае. LUCAS ФРЕЙТАШ: Перерыв значит получить из переключателя заявлении. Потому что, если это 1, я хочу распечатать это и уйти. Я не хочу, чтобы проверить что-либо еще. АУДИТОРИЯ: Вы не хотите печатать что-либо еще. LUCAS ФРЕЙТАШ: Да. Потому что это взаимоисключающие. АУДИТОРИЯ: И делает это только перейти к следующему случае, если первый случай это не так? Или это проверить все случаи в то же время? LUCAS ФРЕЙТАШ: Нет, это проверяет последовательно. Последовательно, да. Еще один вопрос, то мы должны перейти, чтобы мы могли охватить все. Да? АУДИТОРИЯ: Так для случая, может иметь сделал что-то кроме просто один? Не могли бы вы дать ему выбор? LUCAS ФРЕЙТАШ: Нет. Лорен CARVALHO: Я не думаю, вы можете дать ему ряд. LUCAS ФРЕЙТАШ: Вы не можете вы не могу дать ему ряд. АУДИТОРИЯ: Дело в том, конкретных [Неразборчиво]. LUCAS ФРЕЙТАШ: Переключить является своего рода ценностей. Вы делаете разные вещи в зависимости от значения, конкретное значение. Вы не можете сделать выбор, вы не можете сделать что-нибудь еще. Это просто еще один инструмент, чтобы видеть. Лорен CARVALHO: Большинство людей не использовать переключения заявления очень многое в CS50, но она есть. Хорошо. Так что в следующий, что мы собираемся говорить о том, тройной оператор. Это просто еще один тип из условно. В основном то, что происходит здесь я прося целое и, если п больше 100, я собираюсь распечатать "Высокий". Если это не так, я собираюсь распечатать "низкий". Так, что он делает это условие прямо здесь, в скобках, и вы может как бы думаю вопроса как я прошу ли это правда или нет. Если это правда, я собираюсь сделать это первым вещь, и если это не так, я собирается делать эту вторую вещь. Любые вопросы о тройной оператор? LUCAS ФРЕЙТАШ: Сразу хочу отметить, от Дэвид является то, что всякий раз, когда у вас есть состояние - Лорен CARVALHO: Я думаю Давида смотреть через живой эфир. LUCAS ФРЕЙТАШ: Он делает жизнь поток прямо сейчас. Поэтому, когда у вас есть условие, что ты Предполагается поставить фигурные скобки, точно так же как у нас есть в коммутаторе заявление здесь. У нас есть фигурные скобки здесь. По какой условия, вы Предполагается также положить, что. Лорен CARVALHO: Вы увидите это в руководстве стиле. Мы на самом деле не имеют руководство по стилю прямо сейчас. Я думаю, что Дэвид по-прежнему работает. LUCAS ФРЕЙТАШ: Он сказал, что это просто работает. Лорен CARVALHO: О, это работает сейчас? ОК. Таким образом, очевидно в этом году в стиле направлять, даже если вы просто есть одна линия, Вы должны положить тех, Фигурные скобки дюйма Вам не обязательно нужно для функциональность программы. А может быть, мы должны просто взять перерыв после того, как условия и идти прямо в руководстве стиле, чтобы очистить некоторые из этих вещей? LUCAS ФРЕЙТАШ: Да. У вас есть вопрос? АУДИТОРИЯ: Нет, я просто подожду до стиля руководства. АУДИТОРИЯ: Не могли бы вы вернуться в тройном оператора? Лорен CARVALHO: Тернарная, да. LUCAS ФРЕЙТАШ: Тернарная оператор в основном, если другое заявление, но вместо того, чтобы иметь две линии проверки ПЧ, а затем еще, вы просто должны на одну строку. Так в основном, если я хочу дать строку значение высокой или низкой, и I хочу сделать высокий, если п больше, чем 100 или низкой, если это менее, что я могу сделать это [неразборчиво] строка будет, а потом я задать программа п больше, чем 100? Так вот почему у меня это выражение в скобках, а затем вопросительный знак. Я прошу это больше, чем 100? Если это так, это будет на высоком уровне. Если это не так, что это собирается быть низкой. Поэтому в основном то, что вы думаете, вы спросите вопрос, поэтому вы положили в скобках состояние. Теперь вы можете помещать знак вопроса потому что вы просите его. И если это правда, то это будет в первом значении [неразборчиво] здесь. Если это не так, я собираюсь поставить значение, которое после двоеточия. Есть ли смысл? Это также то, что, как инструментом в C, но вы не должны специально использовать его. Но CS люди обычно нравится, что потому что это просто экономит линии. Лорен CARVALHO: Это очень элегантно. Он делает много всего за один заявлении. АУДИТОРИЯ: Так знак процента является просто все, что результаты на предыдущая строка? Лорен CARVALHO: О, мне очень жаль. Это знак процента на самом деле заполнитель для это с. В Е заявлении, у вас есть это строка здесь, что то, что происходит в распечатать, но вы не можете просто положить это с там. В противном случае он будет печатать вне с буквально. Таким образом, мы положить процентов здесь, чтобы держать это место состоится по каким-либо приходит после запятой. Так что для строки, у вас есть процентов с. Для целого, процентов I. Для поплавочной, процентов ф. Вы увидите тех, как мы Еще больше примеров. Но, возможно, вам следует поговорить о руководство по стилю на некоторое время, теперь что это до. LUCAS ФРЕЙТАШ: Если вы идете в cs50.net/style, вы будете видеть руководство по стилю. Для проблемных наборов, ваш счет для Проблема набор состоит из рамки, , которые в основном означает, что если вы сделали все части задачи, установленные или если вы пытался что-то. Вторая вещь корректность, которая средство ваша программа делает то, что Предполагалось, что делать, или делает это есть ошибки, или это не делать то, что он должен делать. Третье, что является дизайн, а это значит, ты реализации этого хорошо, или Вы используете ненужные заявления? Так, например, если вы хотите повторить ряд 10 раз, вы пишете цикл или вы просто делаете 10 раз то же самое заявление, а просто делаю копирование и вставка. Так дизайн для этого. И, наконец, у вас есть стиль. Стиль так же, как, судя если ваш код выглядит чтения и вид довольно. Это просто в основном означает, ваш код читаемым? Бы кто-то другой, кто искал являются ваш код быть в состоянии понять, что он делает? Есть ли у нее комментарии и т.п.? Давайте поговорим о стиле, что вы должны использовать. Первое, что комментарии. Комментарии очень важны для вашего Код, потому что иногда вы делаете ваша программа, и вы точно знаете, что Вы хотите сделать это, вы просто начать кодирование, просто введите кучу С. Но если кто-то еще искали вы находитесь Код, они не собираются, чтобы иметь возможность понять это, потому что они не знают, вещи, которые у вас в голове, как pesudocode, так что, возможно, они будут иметь трудное время, чтобы понять, что код делает. Так комментарии действительно полезны для объяснения для тех, кто смотрит на ваш код, что он делает, и на самом деле, даже для вас, они очень полезны. Как вы идете к более сложным и жестких Psets, Вы будете видеть, что код получает дольше, а затем комментарии действительно важно, чтобы вы помните, что каждый частью вашей программы делает. Если Вы хотите положить комментарий, вы можете просто сделать слэш слэш, а затем написать комментарий. И вся линия является частью комментария, и все, что вы запишите, это не будет используется для кода. Это в основном как компилятор собирается игнорировать это. Имеет ли это смысл? АУДИТОРИЯ: Что вы делаете, снова Чтобы написать комментарий? LUCAS ФРЕЙТАШ: Это? Косая черта сократить? Всякий раз, когда вы вводите косую черту, независимо находится в этой линии не будет чтобы считаться С. Да? АУДИТОРИЯ: Так после комментария, вы Просто введите и начать новую строку? LUCAS ФРЕЙТАШ: Да, именно так. Лорен CARVALHO: слэш слэш для однострочных комментариев. LUCAS ФРЕЙТАШ: Например, здесь мы имеем - позвольте мне увеличить - например, здесь я объявляю поплавок, но, возможно, если вы просто поставить это в коде, как вы понятия не имею, что это делает, как на самом деле тот, кто смотрит на этот код будет, как и то, что черт возьми, происходит? Если вы поместите комментарий о том, "конвертировать По Фаренгейту в градусы Цельсия, это делает намного больше смысла. Ты, вроде бы, в порядке, вы делает преобразование. Имеет ли это смысл? Так что это просто то, что помогает людям готов ваш код, а также сделать Вы сможете организации ваш код лучше. Вторая вещь, что вы можете сделать многострочные комментарии, так что есть один комментировать для связки линий. Вместо того, чтобы поставить косую черту, комментарии первая линия, косая черта черту, вторая линия, и так далее, вы можете использовать косую звезду. Таким образом, что вы делаете это в том, что для Первая строка комментария, вы собираемся сделать слэш звезда звезда, так же, как, что. Так же, как здесь у нас есть начало программа, обычно для кого вы являются, что эта программа делает, и все в таком духе. Это вроде как заголовок для программы. Опять же, это не то, что компилятор будет заботиться о, но важно, чтобы вы знали, что это Программа делает или для других людей знать, что ваша программа делает. Так что вам сократить звезда звезда, а затем Последняя строка вы собираетесь сделать звезду сократить, чтобы иметь возможность закрыть что комментарий. Так в основном для всех других линий, вы можете просто написать что угодно, и это это все будет игнорироваться. А также, как и стиль, вы видите, что каждая из линий имеет звезду, и все звезды выравниваются. Это важные вещи, так что ваш код выглядит довольно. Звучит хорошо? Теперь условия. Что Дэвид говорил, что мы должны фактически положил в тех слайдов, в том, что когда у вас есть какие-либо если заявления или любой вид условий, Вы должны использовать фигурные скобки, чтобы показать, что это то, что должно было случиться когда у вас есть условие. Технически, когда у вас есть условие а затем следующая строка является лишь одним линия, вы не технически есть поставить фигурные скобки. В основном компилятор поймет это в любом случае, как неявное. Но для CS50, мы просим вас, ребята, чтобы положить фигурные скобки, чтобы убедиться, что ваш код более организованным и более удобным для чтения. Потому что код получает больше, если вам не имеют фигурные скобки и такие. Это становится действительно грязно. Лорен CARVALHO: Это именно то, то, что Дэвид просто указал в моих предыдущих слайдах. Это определенно работает без фигурных скобки, но по стилистическим причинам мы собираемся попросить, чтобы вы положите их дюйма И когда вы начинаете работать style50, которая является своеобразной проверки 50 для стиль, он будет напоминать вам, чтобы сделать это. LUCAS ФРЕЙТАШ: И другое дело, не забудьте положить фигурные скобки вместе в каждой строке. Таким образом, вы делаете, например, единицами. Перейти на следующую строку, откройте вьющиеся скобки, то вы идете в следующей строке. Отступы, что в четыре пространства. Тогда вы пишите, что, потом еще линия, и закрыть фигурную скобку. Так что будьте уверены, что и те, вьющиеся брекеты в разных линий. АУДИТОРИЯ: Так что, если этот код был как 10 остальное сослагательного наклонения, это должно быть 10 комплектов скобках? LUCAS ФРЕЙТАШ: Да, для каждого из них. Да. Таким образом, если, в противном случае, и так далее. АУДИТОРИЯ: Можете ли вы не Нажмите клавишу Tab для отступа? LUCAS ФРЕЙТАШ: Мы просим вас ребята использовать четыре пробела. Вкладку Некоторые текстовые редакторы перевести как четыре пробела автоматически. Gedit не делает, так что вы должны сделать пространство пространство пространство пространство. Это также то, что некоторые программисты делать только вкладки, некоторые программисты делать только четыре пробела, и некоторые другие люди даже сделать два или три места. Это просто, что здесь мы просим вы, ребята, чтобы сделать четыре пробела. АУДИТОРИЯ: Там почти определенно Должен быть способ для Gedit к автоматически [неразборчиво]. Как никто [неразборчиво] делает это. LUCAS ФРЕЙТАШ: Да. Я думаю, что вы можете пойти в настройки. АУДИТОРИЯ: Он делает уже все это. LUCAS ФРЕЙТАШ: Он делает уже? ОК. Так что просто убедитесь, что вы есть четыре пробела. АУДИТОРИЯ: Есть ли у нас поставить вьющиеся скобки в циклы, а? LUCAS ФРЕЙТАШ: Да. Лорен CARVALHO: Всякий раз, когда ваш инкапсуляции блок кода, просто пожалуйста, используйте фигурные скобки. И прежде, чем вы думаете, что мы просто будучи блюстителей об этом ни к чему хорошему Причина, если вы, ребята действительно идут дальше, чтобы получить технические стажировки в крупных компаниях, они дадут вам руководство по стилю, и они скажут вам, это то, что ваш код должен выглядеть. И даже если вы научились кода как это, может быть, в вашей стажировки Вы должны будете сделать что-то совсем другое. Они ожидают, что вы соответствовать к их стилю. LUCAS ФРЕЙТАШ: И еще одна вещь что вы заметите, как у меня есть, как х, пространство, меньше, пространство, 0? Всякий раз, когда у вас есть оператор - это может быть как плюсом, минус, раз, меньше, больше, что оператор - Вы должны поставить пробел слева и право оператора. Лорен CARVALHO: Это называется бинарные операнды. Просто убедитесь, что вы всегда пространство из ваших бинарных операндов. LUCAS ФРЕЙТАШ: Это не двоичный операнд. Лорен CARVALHO: То есть потому что это занимает два. LUCAS ФРЕЙТАШ: О, да. ОК, переключатели. Во-первых, вы должны видеть, что так же, как в случае или еще заявлении, у вас есть поставить фигурную скобку на отдельной строке и под фигурной скобки здесь. Обратите внимание, что существует единое пространство после включения, так же, как в том и в другом месте у нас был один пробел между что и круглые скобки. Таким образом, вы должны положить, что. И нет никакого места сразу после каждого из скобках или до конца из круглых скобках. Итак, вы видите, что все это вместе, и также хотел здесь. Да? Лорен CARVALHO: Я думаю, мы должны двигаться дальше. LUCAS ФРЕЙТАШ: Так что это часть руководство по стилю, что у вас есть для CS50. Обязательно пойдите в cs50.net/style и взгляните на это. Все это очень важно для вашего счета стиле. Позвольте мне вернуться в заявлении. Лорен CARVALHO: Я бы скорее просто использовать style50. Мы просто собираемся идти прямо в петли. Хорошо. Так что давайте вернемся к содержанию, теперь что мы пошли на стиль руководства. Петли, вы видели их в пустом, и мы собираемся говорить о них в С. В цикле, есть три части в Декларация этот цикл. У тебя инициализации в которые вы установите ваши переменные. У вас есть ваше состояние, которые являются проверять, является ли что-то истинным или ложным, и является ли цикл должен продолжаться. И у вас есть ваши обновления, которые обновляет переменные. Давайте просто взглянем на некоторые С код этого цикл в действии. Что происходит здесь, в инициализации, мы устанавливаем I 0. В состоянии мы проверяем ли я меньше 10. И в обновлении мы увеличивая I. Так что же в результате это для цикла? LUCAS ФРЕЙТАШ: На самом деле, в первую очередь, вы, ребята, знаете, что я + + является? АУДИТОРИЯ: Увеличение на 1. LUCAS ФРЕЙТАШ: Увеличение на 1, да. Так что это то же самое, делаю, я равна I Plus 1. И заметьте, что мы не имеем пространство между Я и + +. Так что вы, ребята, знаете, что это будет делать? Может кто подскажет? И, возможно, получить некоторые конфеты из-за этого? АУДИТОРИЯ: [неразборчиво] LUCAS ФРЕЙТАШ: ОК. [Неразборчиво] показать всем, позже [неразборчиво]. Да, он собирается показать «Это является CS50 "10 раз. Лорен CARVALHO: Я думаю, это было в названии слайда. LUCAS ФРЕЙТАШ: О, да. [Смех] LUCAS ФРЕЙТАШ: Это помогает. Лорен CARVALHO: Так что те, предназначены для петель. Мы собираемся, чтобы увидеть еще несколько примеров Из циклы позже. Но давайте на самом деле взглянуть на Второй тип цикла вы будете сталкиваться в С, и это называется то время как цикл. В какое-то время цикла, вы, только что получил состояние. Условие проверяется в начинается, и если это условие оценивается как истинное, то код внутри Корпус блока во время будет выполнять. И код будет продолжать выполнить, пока что состояние остается верным. Вот пример из какое-то время цикла в С. Мы собираемся установить счетчик от 10 до с самого начала. Пока счетчик больше 0, мы собираемся продолжать печатать из этого Переменная здесь. Мы собираемся уменьшить количество и Затем проверьте состояние снова. Печать, уменьшение, проверка условие снова. Здесь мы имеем пример, относящуюся на ваш вопрос ранее. У нас был процент годов, когда мы были распечатав строку, и теперь, когда мы распечатав письмо Int, у нас есть процентов я как наш заполнитель вместо этого. Письма все должно быть довольно интуитивно, с для строки, я для внутр. Так что, если этот код выполняется, вы должны обратный отсчет от 10 до 0, распечатав каждое целое. LUCAS ФРЕЙТАШ: И вы можете думать о процентов, как он чувствует, как пустой пространство, а затем вы кладете это Переменная здесь в том, что пустое пространство. Так, например, здесь у меня будет просто пустой, а затем я ставлю рассчитывать тут же, значение счетчика. Имеет ли это смысл? Могу ли я просто люблю Е а затем цитирует, в счет? Будет ли это работать? АУДИТОРИЯ: Нет. LUCAS ФРЕЙТАШ: Нет, потому что это будет на самом деле печать слово "счета" вместо того, чтобы печатать значение. Это, как вы сделаете это вывести значения к переменной вместо просто название переменной. Есть вопросы? АУДИТОРИЯ: Почему вы используете для как противоположны в то время? Лорен CARVALHO: Я хотел бы использовать для цикл, если я знаю точно, сколько итераций Я хочу, чтобы мои петли для запуска. В этом случае это не имеет значения, потому что, Я имею в виду, я просто пытался думать о очень простой Примером для этого слайда. Но, допустим, что вы хотите что-то чтобы продолжать идти, пока - LUCAS ФРЕЙТАШ: Например, вы не задаете вопрос, пока человек дает правильный вход. Так как в то время как ввод не Хорошо, продолжайте спрашивать за это. Или как, пока вы родители не дают ваши деньги, продолжать просить его. [Смех] Лорен CARVALHO: Вы не знаете, как много раз вам придется это сделать. LUCAS ФРЕЙТАШ: потому что вы не знаю, сколько раз это собирается продолжать идти. Лорен CARVALHO: Но в цикле, Вы должны знать, как много раз. Да? АУДИТОРИЯ: Просто чтобы прояснить, процент говорит, что это что-то такое, чтобы произошло, я 'для целого, и обратный слеш н - Лорен Карвалью: Средства? Кто знает, что означает, что обратный слеш н? Новая линия, да. Именно так. LUCAS ФРЕЙТАШ: Вы можете думать п как новой линии. Лорен CARVALHO: Ницца. АУДИТОРИЯ: Что это количество тире тире [неразборчиво]? LUCAS ФРЕЙТАШ: Граф минус минус то же самое, плюс плюс, но вместо увеличения, это меньше на 1. Лорен CARVALHO: Любой более в то время как вопросы цикл? Нет? О, мы должны были , пропустил это. Это делать в то время как петля. Очень похоже на какое-то время цикла за исключением В этом случае мы проверяем состояние после код в теле Цикл выполняется один раз. Таким образом, мы выполнить код Первый несмотря ни на что. Затем мы проверяем состояние, выполнить это снова, если условие истинно. Вы найдете себя, используя это, когда вы просите пользовательского ввода. Потому что ты всегда будете иметь, чтобы спросите один раз, а затем в зависимости от того, что пользовательский ввод, вы, возможно, придется Запросить повторно и спросить снова и снова, если вход не то, что вы Ожидается, что он будет. АУДИТОРИЯ: Так что это как форма для людей, чтобы заполнить. Лорен CARVALHO: Да, именно так. Вы найдете, я думаю, в ваш первый Pset, вы будете иметь, чтобы использовать цикл сделать так, чтобы собрать ввод от пользователя. АУДИТОРИЯ: В зависимости от ситуации, Ваши рамки, будучи будет стремиться работать более чаще, чем в то время как петли, как одним или что-то? Лорен CARVALHO: Если это точная - LUCAS ФРЕЙТАШ: Они всегда должны работать точное количество раз, что вам хотите, чтобы работать. Как мы используем сделать в то время, потому что мы действительно хотел получить мощность, по крайней мере один раз. В то время как петли, иногда вы не хотите чтобы исполнить его вовсе, если это не случай для выполнения. Таким образом, это зависит от конструкции. Я имею в виду, вы можете использовать либо делать, пока или в то время как тех пор, пока ваш код делает это он должен делать. Лорен CARVALHO: Но я думаю ответ на свой Вопрос, вероятно, да. Скажем условие было ложным. В одном случае она будет работать один раз, и другой случай она будет работать ноль раз. Так что, да. Есть еще вопросы? Да? Зала: Можно условие цикла быть цикл с точки зрения переменная друга чем [неразборчиво]. Лорен CARVALHO: Да, это может быть что угодно. Наверное для начала Psets, вы не придется столкнуться в этом случае, но определенно это может быть что угодно. LUCAS ФРЕЙТАШ: Я думаю, мы закончили. Лорен CARVALHO: Мы? Нет? LUCAS ФРЕЙТАШ: Петли? Да. Лорен CARVALHO: Мы не должны быть. О, как мы сделали с петель. ОК. На самом деле, потому что мы говорили так много, давайте на самом деле все навигации к study.cs50.net/conditions. И вы собираетесь перемещаться вниз чтобы проблемы виджет. Ну, на самом деле, в то время как люди становятся это настроить, CS50 исследование представляет будет инструментом, который ваши ТФ будет использовать для подготовки к секции и что вы, ребята, можете использовать, если вы пропустите разделы. Это собирается содержать кучу слайдов, некоторые советы и приемы для каждого тема, и некоторые проблемы практики с решениями. Почему не все просто посмотрите на эту проблему прямо здесь. Мне очень жаль, я должен напомнили люди приносят ноутбуки сегодня. Но если у вас нет ноутбук, это нормально. Вы можете просто записывать это вниз на бумажка или просмотреть плечо соседа. Давайте попробуем и написать программу, которая предлагает пользователю сделать предположение, Среднее число детей на одну семью Блок в Соединенных Штатах. Это число равно 2, кстати, как вы Как видно из этих примеров. Мы хотим, чтобы распечатать среднее число детей на семью в США, то мы хотите что? Мы хотим, чтобы собрать вход от пользователя. А потом в зависимости от того, что пользователя вход, вы собираетесь распечатать либо это правильно или это неправильно. И самое первое, что вы будете Видите ли, если вы нажмете на маленькую стрелку на нижняя часть проблемы виджета определить, чтобы записать некоторые псевдокод. Так вы еще не программирования. Ты просто получать ваши идеи в порядке. Кто-нибудь хочет помочь Лукаса придумать права псевдокод для этой проблемы? LUCAS ФРЕЙТАШ: Что такое первое, что что мы, вероятно, следует сделать здесь? Что вы думаете, ребята? АУДИТОРИЯ: [неразборчиво] LUCAS ФРЕЙТАШ: Да, хорошо. Так, печать. Просто скажите на печать это среднее число людей? ОК. Распечатать вопрос, скажем так. После того как я печатать на этот вопрос, что я должен делать? АУДИТОРИЯ: Получить вход. LUCAS ФРЕЙТАШ: Получить вход. Что-нибудь еще? АУДИТОРИЯ: Состояние. LUCAS ФРЕЙТАШ: Состояние. Лорен CARVALHO: Что такое, что состояние будет? АУДИТОРИЯ: Количество [неразборчиво]. Лорен CARVALHO: Верно. LUCAS ФРЕЙТАШ: Так что я собираюсь проверить в состоянии? АУДИТОРИЯ: Если он равен 2. Лорен CARVALHO: Если он равен 2. Именно так. LUCAS ФРЕЙТАШ: Есть ли что-нибудь еще, что я должен делать? АУДИТОРИЯ: Count. LUCAS ФРЕЙТАШ: Так что, если это равен 2, скажем - позвольте мне писать, если вход равна до 2, то, что я собираюсь сделать, это печать правильно. А потом еще, я собираюсь печатать неправильно. Что-нибудь еще? Нет? Лорен CARVALHO: Таким образом, вы можете нажать на - все ли есть это вниз? LUCAS ФРЕЙТАШ: Есть ли смысл? Так что теперь давайте попробуем код этого. Лорен CARVALHO: Если вы нажмете немного стрелка, он на самом деле экономит ваши псевдокод, который является действительно захватывающим. И вы можете сделать те, в комментариях, если вы хотите просто чтобы напомнить себе о что делать. LUCAS ФРЕЙТАШ: Так, например, первая Я собираюсь печатать на вопрос, так как я буду делать, что, на самом деле? Е. Так Е, и вопрос в том среднем число детей на одну семья в США. Тогда я иду, чтобы получить ввод от пользователя. Итак, как я могу это сделать? АУДИТОРИЯ: Получить Int. Лорен CARVALHO: GetInt. LUCAS ФРЕЙТАШ: ОК. Итак, сначала объявить, верно? внутр, назовем его N равна GetInt. И теперь состояние. Итак, позвольте мне сказать, что я собираюсь чтобы здесь Проверить ответ. Итак, сначала, если входной сигнал, который является п, равна к - как я буду писать, что? АУДИТОРИЯ: Равный равны. LUCAS ФРЕЙТАШ: Прекрасно. Так н. И заметьте, что я могу сделать пространство, равно, равно, пространство, правда. А теперь что мне делать? Что-то очень важное значение для стиля. Фигурные скобки. А потом я собираюсь распечатать. Как напечатать? Е. АУДИТОРИЯ: Может быть капитализированы? LUCAS ФРЕЙТАШ: Нет. Это, как предполагается, в нижнем регистре. Так что это правильно. Будет ли это достаточно для Printf заявление, или мне не хватает что-нибудь? АУДИТОРИЯ: Новая линия. LUCAS ФРЕЙТАШ: Новая линия, да. А теперь еще. АУДИТОРИЯ: Есть ли пространство после Printf, или нет? Лорен CARVALHO: Мы должны проверить руководство по стилю. АУДИТОРИЯ: Это не должно быть. LUCAS ФРЕЙТАШ: Не должно быть, хорошо. Так еще, Е, "Это неверно." Лорен CARVALHO: К сожалению, ваши котировки. LUCAS ФРЕЙТАШ: ОК. Что-нибудь еще? Значит ли это хорошо выглядеть? Лорен CARVALHO: Должны ли мы попробовать? LUCAS ФРЕЙТАШ: Да, давайте запустим его. Так что это компиляция, и это Кажется, что это работает. Давайте попробуем двоих детей. Это верно. А теперь давайте запустим еще раз, но теперь вместо положить двоих детей, давайте сказать, что я собираюсь поставить, как пять. Это неверно. Так что, похоже, что он работает. Лорен CARVALHO: Почему бы вам не показать им, что произойдет, если вы положили что-то странно, как и некоторые буквы. LUCAS ФРЕЙТАШ: О, да. Давайте также проверить, что. Что делать, если пользователь пытается замарать с вашей программой, и они просто писать, я не знаю, два. Это скажет повторить попытку. Лорен CARVALHO: Так GetInt просит их повторить. Мы не должны заботиться того, что мы сами. LUCAS ФРЕЙТАШ: Да. Так что, если я на самом деле не поставили ряд, это собирается продолжать спрашивать меня, чтобы повторить попытку. АУДИТОРИЯ: Как вы его запустить? LUCAS ФРЕЙТАШ: Просто нажмите эта звезда кнопку. Лорен CARVALHO: Вы должны пойти вверх. Там вы идете. LUCAS ФРЕЙТАШ: Звезда Кнопка прямо там. Да? АУДИТОРИЯ: Есть ли подсказывать [неразборчиво] с десятичных чисел тоже? Лорен CARVALHO: Я считаю, что это будет. LUCAS ФРЕЙТАШ: Если это делает? Лорен CARVALHO: Если они введут в виде десятичного числа, я думаю, он собирается подскажут. LUCAS ФРЕЙТАШ: Давайте посмотрим. Лорен CARVALHO: Потому что это не внутр. LUCAS ФРЕЙТАШ: Да. Лорен CARVALHO: Так что это не внутр, Получить Int попросит вас повторить. АУДИТОРИЯ: Так где в этом коде будет после запятой, что побуждает Пользователь, который у них есть, чтобы войти целое специально? Лорен CARVALHO: GetInt на самом деле делает это за нас. АУДИТОРИЯ: Нет, я имею в виду, если мы хотели чтобы ввести [неразборчиво] LUCAS ФРЕЙТАШ: Вы можете сказать, как средняя количество детей в США. Я не знаю. Можно сказать, например, "Пожалуйста вход целое ". Лорен CARVALHO: целое число, равное к среднему числу. Я имею в виду, это просто, как вам ответ, верно? LUCAS ФРЕЙТАШ: Да. Это не является частью собственно кодирования. Это скорее как все вы собираетесь хотите написать в вашей программе. АУДИТОРИЯ: Как бы мы запустили его, если он был фактически в Gedit [неразборчиво]. Вместо нажатия игру? LUCAS ФРЕЙТАШ: Мы будем Первый скомпилировать его. Мы можем сделать это, делая макияж и имя файла. А потом, чтобы запустить его, мы сделаем точка слэш и название программы. Зала: Я думаю, что я имел в виду, если мы хотели, чтобы программа реагировать на их неправильно, неправильные данные, вы не должны положить в - LUCAS ФРЕЙТАШ: Мы не сможем сделать это, потому что код этот говорит повторить происходит от Get Int который является функция, которая уже реализована для нас через библиотеку CS50, а с это уже реализованы там, мы не могу просто [неразборчиво]. Лорен CARVALHO: Если вы не используете GetInt, то вы можете сделать это. LUCAS ФРЕЙТАШ: Да. Но если вы используете GetInt, вы не можете. Любые другие вопросы? АУДИТОРИЯ: Не могли бы вы пошли с подобным GetFloat а затем иметь возможность поставить это в десятичном? LUCAS ФРЕЙТАШ: Да. АУДИТОРИЯ: ОК. Тогда вы просто могли вход плавать А равно - Лорен CARVALHO: Да. Точно так же, за исключением плавать вместо Int. LUCAS ФРЕЙТАШ: Просто положите его здесь а затем GetFloat там. АУДИТОРИЯ: Как вы будете см. или видели - Лорен CARVALHO: у нас есть не получили там еще. АУДИТОРИЯ: - делает неравенство поплавки не [неразборчиво] АУДИТОРИЯ: Что означают точки с запятой? Лорен CARVALHO: Точка с запятой просто означает, что это утверждение является полным, и мы собираемся пойти на следующем слайде. АУДИТОРИЯ: Так что это необходимо каждый раз? Лорен CARVALHO: Да. Ну, хорошо, так не для этих условиях, потому что они инкапсуляции что-то. Так в основном, если что-то вызывает Вам затем создать фигурную скобку блок, не ставьте точку с запятой в конце. LUCAS ФРЕЙТАШ: Но все еще, да. Когда вы закончите с заявлением, поставить точку с запятой. И если вы забыли запятой, компилятор собирается сердиться на вас, и вы будете иметь, чтобы попытаться исправить это. Лорен CARVALHO: Если я ставлю точку с запятой здесь, что бы остановить это, и я никогда бы не выполнить то, что внутри, кстати. Так что это один из тех общих ошибок. АУДИТОРИЯ: Всегда выполнения. Лорен CARVALHO: Да. В этом случае, мы бы всегда выполнить то, что внутри. АУДИТОРИЯ: Ваш стиль [неразборчиво] приложить, что для вас, думал. Лорен CARVALHO: О, это правда. АУДИТОРИЯ: [неразборчиво] один линия вещь [неразборчиво] АУДИТОРИЯ: Да? АУДИТОРИЯ: Может у вас есть несколько входы в одной строке? Так как вы можете попросить пользователей печатать две вещи? Лорен CARVALHO: Не используя - LUCAS ФРЕЙТАШ: Нет. Давайте предположим, что я тоже хочу чтобы получить это целое т. Я должен сделать это в другой линии. АУДИТОРИЯ: Если вы запустите что, как [неразборчиво]? Было бы напечатать строку там [неразборчиво] и тогда вы бы войти в один и - Лорен CARVALHO: Ну, запустите его. Я имею в виду, есть ничто не мешает нам просто запустить его и посмотреть, что произойдет. LUCAS ФРЕЙТАШ: Я думаю, что это собирается жалуется на нас потому что мы не используем - Лорен CARVALHO: Ой. LUCAS ФРЕЙТАШ: Это жаловались на нас прямо сейчас, потому что мы не это, используя переменная, но если бы я сделал, например, п равна равна, и м равна равна, то, что будет произойдет в этом случае? Что бы это программа? АУДИТОРИЯ: Мне просто интересно, как это было бы - Лорен CARVALHO: Она просто хочет знать, как он выглядит как, я думаю, не так ли? Так он взял одну из них, а затем он взял вторую. Я думаю, что мы должны двигаться дальше, потому что у нас еще один слайд-шоу, прежде чем - Вы хотите, чтобы подтянуть математику? LUCAS ФРЕЙТАШ: Да, математика. Лорен CARVALHO: Дайте мне всего за одну секунду. Есть несколько различных численное переменные в С. числовых данных в C могут быть разделены на различные типы, и это те, вы будете см. наиболее часто. И внутр является целым числом. Вы не можете иметь любые десятичные. В Appliance, она занимает 32 бита для хранения Int. Поплавок может иметь десятичные. Он также занимает 32 бит для хранения плавать в Appliance. Двойной это число с десятичной пункт, который принимает 64 бита для хранения его, Это означает, что вы можете просто большая точность, потому что вы можете иметь более - что вы это называете? LUCAS ФРЕЙТАШ: Да, это больше. Лорен Карвалью: Больше мест после запятой. И очень долго является целым числом , которая принимает 64 бита, чтобы боль это в Appliance. LUCAS ФРЕЙТАШ: Так, это может быть больше, чем целыми может быть. Лорен CARVALHO: Дело о данных типы в C является то, что они говорят вам, что какие данные можно хранить в переменной. Они говорят вам, как можно использовать этот переменная в вашей программе. Это очень важно, чтобы просто отслеживать из какой тип данных вы используете, и если вам нужно, чтобы бросить от типа данных на другой, убедитесь, что вы знаете, именно то, что происходит, когда, что литье происходит. И вы увидите пример позже на в этих слайдах ошибка, которая может произойти. Давайте взглянем на некоторые математические в С и думаю действительно тщательно, я думаю, о том, что происходит, когда этот математика имеет место. В первой же строке, что происходит, когда я заявляю х? АУДИТОРИЯ: Вы позволяете х должно быть что-то? Лорен CARVALHO: Да. Ну, я действительно прошу операционной Система для 32 бит памяти, не так ли? В который я могу хранить Int, и Я буду называть эту десятичного х. LUCAS ФРЕЙТАШ: В основном происходит в памяти и найти место, которое имеет 32 биты и поговорка, эй, я хочу это пространство, и это будет называться х. Значит, ты просто очень много находка коробка в вашей памяти на магазин значения х. Лорен CARVALHO: И тогда я инициализации х, что означает, что я просто хранить Значение 2 в том месте, то кусок памяти, что мы попросили эксплуатации система. И здесь то, что мы делаем, мы на самом деле декларирования и инициализации г в одной строке вместо в две строки, как мы сделали здесь, который также является прекрасно, Мы прибавления 1 к х, и мы сохраняем, что значение в у. LUCAS ФРЕЙТАШ: Поэтому в основном то, что это линия делает, он находит теперь ящик для у, а затем его значение, то, что вы собираетесь поставить внутри коробки, является будет значение х плюс 1. Так что имеет эту опцию для у. Он получает значение х, выглядит здесь, чтобы увидеть, что это 2. Положите его там, плюс 1, так она ставит 3 есть. Имеет ли это смысл? Так у будет 2 в этом случае. Лорен CARVALHO: Хорошо, здорово. Мы видели некоторые добавления, так что давайте теперь думаю о разделение на C. Здесь я Объявление и инициализация поплавок называется ответ и деления 1 на 10, а затем я печатаю ответ до двух знаков после запятой. И обратите внимание, здесь, на мой Е заявлении, когда я хочу что-то напечатать до двух знаков после запятой,% 0,2 е является то, что я хочу использовать. Так что точка 2 просто говорю Мне нужно два места после десятичной распечатать. Теперь, что произойдет если я запускаю этот код? Кто-нибудь есть идеи? Что бы распечатать? LUCAS ФРЕЙТАШ: Каковы мы ожидали получить. Лорен CARVALHO: Что делать мы хотим, в первую очередь? LUCAS ФРЕЙТАШ: [неразборчиво] Лорен CARVALHO: 0.1, да. Но то, что выведет? АУДИТОРИЯ: [неразборчиво] Лорен CARVALHO: Ну, нет, на самом деле. Это то, что я говорил о том, почему вы нужно держать очень тщательного след Ваши типы данных. Так, какой тип данных это? Является внутр, не так ли? Там нет запятой. 10 также внутр. Там нет запятой. Если бы я разделить ИНТ на качестве междунар, я получаю десятичного который не 0,1, потому Интс не может иметь знаков после запятой, а просто 0. Потому внутр просто обрезает от знаков после запятой. LUCAS ФРЕЙТАШ: Поэтому, когда вы делаете операции с целыми, вы собираетесь получить Int как ответ. Так в основном, то, что компьютер делает, это делит 1 по 10, и это становится 0,1. Но тогда это как, подождите, это должно быть целым числом, так что вы просто игнорировать 0,1, так что это теперь просто 0. Лорен CARVALHO: Так что, когда я печатаю это , я получить 0,00, а не 0,10. LUCAS ФРЕЙТАШ: Есть ли в этом смысл? Лорен CARVALHO: Это вид из печально, не так ли? LUCAS ФРЕЙТАШ: Так как мы можем это исправить? Лорен Карвалью: Давайте попытаться исправить это. Вот пример того, где я фактически литье 1 и от 10 до плавает. не Так что теперь, 1 уже не является внутр. 1 является поплавок. Кстати, это только синтаксис когда вы хотите, чтобы бросить друг от Тип данных в другой. Вы можете просто поставить тип данных в скобки и есть, что просто предшествовать значение, которое вы литья. Так вот, я деления с плавающей точкой на поплавок, чтобы получить поплавка ответ. И да, это бы в Дело в том печатать 0,10. Имеет ли это смысл? LUCAS ФРЕЙТАШ: Так приведение типов просто преобразование от одного типа к другому. Так плавать 1 на самом деле 1.000. Не совсем это, но это то, с знаков после запятой что на самом деле 1. Имеет ли это смысл? Да? АУДИТОРИЯ: Что делать, если вы сделали поплавка ответ равна 1.0 делится на 10? Лорен CARVALHO: Вы на самом деле происходит видеть, что на следующем слайде. Это на самом деле наш следующий слайд. На самом деле это приятнее, чем введите кастинг, я думаю. Так эти два поплавки просто Природа тем, что они есть десятичные разряды. Да? АУДИТОРИЯ: Что делать, если вы сделали [неразборчиво] делится на 10? Лорен CARVALHO: На самом деле поплавок деленное на число в междунар на самом деле дает вам плавать, так что будет работать нормально. Подождите, все ли понимают это? Потому что это будет действительно большое дело в Pset1, на самом деле. Да? АУДИТОРИЯ: Не могли бы вы просто быстро перейти красной части? Лорен CARVALHO: Красная часть, да. Лукас, вы хотите? LUCAS ФРЕЙТАШ: ОК. Так что помните, что процент является заполнителем. Это как пустое пространство. Так давайте попробуем понять все что здесь происходит. Процент означает, что это прототип. Тогда у вас есть F, что означает, что этот заполнитель для поплавка. Последнее, что мы имеем здесь дело 0,2, что означает, я хочу иметь два знаков после запятой для поплавка. Если я просто должен был% F, они это поставит куча знаков после запятой. Так что я могу просто поставить 0,2 или 0,1 или 0,5, или все, и он собирается положить, что количество десятичных знаков. Единственное, что, если вы положили как 0,100 или .1,000, это не на самом деле собираюсь поставить все эти знаков после запятой потому что он не имеет достаточно памяти иметь, что точность. Любые другие вопросы? Да? АУДИТОРИЯ: Так плавать только позволяет Вы выйти за пределы целых чисел? LUCAS ФРЕЙТАШ: Да. Лорен CARVALHO: Ну, поплавок просто позволяет иметь знаков после запятой. LUCAS ФРЕЙТАШ: Это просто означает, что вам теперь могут иметь десятичные числа. Зал: А почему бы нам когда-либо использовать целые? LUCAS ФРЕЙТАШ: Зачем Вы используете целые? Может быть, если вы рассчитываете от 0 до 10, Вы хотите использовать на самом деле целое. Вам не нужно использовать поплавок. В некоторых ситуациях, вы не есть на самом деле - Лорен CARVALHO: Может быть, вы не хочу десятичные. LUCAS ФРЕЙТАШ: Может быть, вы этого не сделаете хотите использовать поплавок. Лорен CARVALHO: Другое дело,, помните, как поставить поплавок и Int занимать 32-бита, чтобы сохранить их, и, возможно, Вы не хотите тратить биты на знаков после запятой. LUCAS ФРЕЙТАШ: Да. Так как, просто думать об этом. У вас есть 32 бита для обоих внутр и поплавок. Для INT, все эти 32 бита пойти в целой части. Если вы используете поплавок с 32 бит, вам есть часть этой памяти используется для числа, для целого числа, а другая часть используется для знаков после запятой. Так это значит, что вы не можете добраться до очень большие номера с поплавками, потому что поплавок уже использует много памяти для знаков после запятой. Да? АУДИТОРИЯ: Это первый ответ, что именно он делает? Разве установки значения поплавка равной к этому заполнителя к тому, что вы можете Напомним, его в следующей строке? В нем говорится, плавать ответ. LUCAS ФРЕЙТАШ: Да. Так, поплавок ответ означает, что вы получаете теперь немного ведро в памяти, что держит поплавок, и что происходит называться ответ. Так вот что поплавок ответ делает. А потом вы говорите, что внутри это, вы собираетесь поставить Результатом этого. Так что вы собираетесь делать 1,0 деленное на число 10.0, вы получаете 0,1, а затем вы кладете что внутри ответа. Лорен CARVALHO: Так в одну линию, мы объявления и инициализации этой поплавок называется ответ. LUCAS ФРЕЙТАШ: Интересно, что хотя это только одна линия, он делает несколько операций. Это просто способ С сдача Вы используете меньше кода. Это то же самое, тройных Оператор, как вы можете просто сделать [Неразборчиво] в одну линию. Это на самом деле делает то же самое, что и делает флоат ответ, точку с запятой и то ответ равен этом, но вместо того, что делает вас сделать две линии для того, это как ярлык. Да? АУДИТОРИЯ: Так что, если вы запускали этот, было бы 0,10? LUCAS ФРЕЙТАШ: Да. Да? Зала: ответить на самом деле код, или это просто название? Лорен CARVALHO: Это на самом деле код. Это то, что мы собираемся назвать нашу переменную. АУДИТОРИЯ: Так что это просто Имя [неразборчиво]. Лорен CARVALHO: Да. Я мог бы сказать поплавок х равен 1,0. LUCAS ФРЕЙТАШ: Дело в том, что имя переменной то, что вы используете. Это важно для вас. Для фактического программы, единственное, что вопросы это значение, которое вы есть внутри ведра. Причина, по которой у вас есть переменные и имена переменных так, вы бы знали, то, что вы имеете дело с, как какие данные вы доступа за один раз. Но для самого кода, если вы звоните это ответить или вопрос или что-нибудь, в значительной степени, это не имеет значения. Это не имеет значения. Пока вы последовательны в каждом появление его и так вы это называете что-то еще. Да? АУДИТОРИЯ: У переменные выйти за пределы функции? Как если бы вы были, чтобы создать кронштейн [Неразборчиво], не могли бы вы просто [Неразборчиво] еще раз ответить? Лорен CARVALHO: Нет. АУДИТОРИЯ: [неразборчиво] Лорен CARVALHO: Нет. Это было бы за рамки из этой конкретной переменной. А на самом деле, это своего рода интересно, потому что, когда у нас есть вещи, как петли или их, если условия, если вы объявляете переменную в другой набор фигурные скобки, это действительно только существует в этих фигурных скобках. АУДИТОРИЯ: И последнее замечание о в [неразборчиво] поплавки. Почему вы хотите использовать целыми? Это больше стороне записки, чем ничего, но ваш компьютер значительно лучше справляются целыми , чем на погрузочно-поплавки. Это как порядок Величина быстрее. Так что, если мы просто обрабатываться только плавает, все было бы намного медленнее. Лорен CARVALHO: На самом деле, как представляется, быть проблемой с поплавками. LUCAS ФРЕЙТАШ: Вид из причин что, вы можете думать, как в двоичном Вы можете представлять целые числа , поставив 0 и 1 в. Лорен CARVALHO: Это следующая вещь. LUCAS ФРЕЙТАШ: ОК. Потрясающе. Лорен CARVALHO: Просто держать эту мысль. LUCAS ФРЕЙТАШ: Хорошо, я буду Расскажу потом. Лорен CARVALHO: Прежде чем мы перейдем к чему Лукас был просто говорю, оператор Приоритет. Это здравый смысл. Вы, ребята, сделали это достаточно. Так, только если что-то не в скобках, это произойдет в первую очередь. Это умножение имеет приоритет более того, вычитание, и тому подобное. Так на самом деле, просто кто-нибудь хочет скажи мне, что номер один на самом деле оценивается как? АУДИТОРИЯ: 27. Лорен CARVALHO: 27? Да. LUCAS ФРЕЙТАШ: Позвольте мне дать конфеты для людей. Лорен CARVALHO: Хорошо. А как насчет номер два? А как насчет номер два? АУДИТОРИЯ: 22. Лорен CARVALHO: 22, да. Я не знаю, кто понял. Номер три? АУДИТОРИЯ: 10. Лорен CARVALHO: 10, да. Круто. Так по модулю. Лукас, ты хочешь, чтобы объяснить модулю? LUCAS ФРЕЙТАШ: Modulo это оператор что на самом деле очень полезны для куча проблем. Если я сделаю 55 по модулю 10, что он делает это скажем, что я хочу разделить 55 на 10. Что я получу? Он чувствует себя так же, как если я на самом деле просто делает разделение, какова первый раз, когда я получил целое? АУДИТОРИЯ: 5. LUCAS ФРЕЙТАШ: 5. И то остаток составляет 5, не так ли? Так что это как 5 раз 10 плюс 5. В общем, что по модулю делает, он пытается разделите это число на этот, и он видит, что это остаток отдела. Лорен CARVALHO: Так это просто возвращает остаток. Так номер один является то, что? 5. Номер два? АУДИТОРИЯ: 3. Лорен CARVALHO: 3. Номер три? 0. И четыре равно 1. Именно так. LUCAS ФРЕЙТАШ: Простой, не так ли? Лорен CARVALHO: Почему бы нам не пропустить это только потому, что мы действительно не имеют Время и люди, кажется, понимают. Итак, вот что Лукас был просто говорю о. LUCAS ФРЕЙТАШ: Еще одна причина, почему я будет использовать целыми вместо поплавков что плавает очень неточным. И почему они неточным? Дэвид сказал, что представлять целое, например, мы используем 0 и 1, правильно? И тогда вы в основном, делают умножение, делать все те, Операции знать, что десятичное число у вас есть вместо двоичного файла. Что происходит сейчас, если я попытаюсь поставить десятичную точку? На самом деле, например, если у меня число как 3,33333? Такое чувство, что 10 над 3. Как я буду хранить все 3 это, что у меня после этого? Это действительно трудно, не так ли? Вы не можете просто сказать компьютеру, эй, у меня есть 3, а то вы сделать это навсегда. На самом деле, что компьютер не достаточно умен для этого. Поэтому в основном все ваш компьютер делает что он пытается поставить столько цифр, сколько он может до памяти, что у вас есть. Так скажем, что он собирается сказать 3,3333, и этим все сказано. Так что это не в состоянии фактически выразить именно то, что, что поплавок. Лорен CARVALHO: У нас есть конечное число битов, что означает, что не каждый десятичное число будет могут быть представлены точно. И поэтому в данном примере, если мы распечатав 0,1, мы теперь печать из 20 мест. LUCAS ФРЕЙТАШ: Так же, как я говорил вы, ребята, вы могли бы поставить любое количество. Но если вы только что сделали два места, вы получите 0,10, но если вы положили 20 места, он собирается показать вам кучу из 'потому, что это то, что вы можете положить в памяти, не так ли? Но именно здесь, до 0, а затем просто положить его в куча случайных чисел. Это вроде как некоторые - Лорен CARVALHO: Это потому, что мы не в состоянии представить эту десятичные именно с числом битов у нас есть. LUCAS ФРЕЙТАШ: И тогда компьютер в основном давая вам ряд мусора. Это на самом деле не значение числа. АУДИТОРИЯ: Это так близко, как он может получить [неразборчиво] с помощью кнопок [неразборчиво]. Лорен CARVALHO: Так прикосновенность в том, что, скажем, что вместо будучи 0.100014, что угодно, что, если это было 0,0999 - ну и ладно. Давайте представим, что фактический ответ чтобы это было 0,9999999. Это очень близко к 1, но это не совсем 1. Это 0,99999. Это означает, что, если я возьму, что 0.999, и я бросил его в междунар, я получаю 0. Я не понимаю 1. LUCAS ФРЕЙТАШ: Потому что помню, литье от поплавка к междунар, вы просто игнорировать все десятичные разряды. Вы просто игнорировать их. Там нет такого понятия, как округление или работает, когда вы приведение. На самом деле, есть эта функция, что делает округления, что очень важно, но вы просто думаю, что когда Вы делаете типажей, это просто собирается удалить все. Таким образом, даже если у вас есть 0,99999, это будет просто дать 0, если вы приведение [Неразборчиво] целое. Лорен CARVALHO: Так просто быть действительно знают плавающей точкой в ​​точности, особенно, когда вы начинаете использовать поплавки в Pset1. Но прогулка через следует предупредить вас о том, что, как хорошо. LUCAS ФРЕЙТАШ: А на самом деле это действительно трудно, например, если бы я сделал поплавок ответ 1 равен 1,0 по 10, а затем плавают ответ 2 равна 10,0 за 100,0. Они такие же число, правда? 0.1, не так ли? 1 по 10 или 10 по 100. Но теперь, если я пытаюсь увидеть равенства, как если ответ 1 равна ответить 2, может быть, это на самом деле не собирается быть то же самое. Так поплавки вроде как, что. Они как делать равенства.