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, може бути, це насправді не збирається бути те ж саме. Так поплавці ніби як, що. Вони як робити рівності.