[Powered by Google Translate] LEXI Росс: Добре, привіт всім.
Ласкаво просимо в перший CS50 supersection.
Це буде тільки тиждень supersections.
Після цього ви будете йти до регулярних розділ з
призначений TF.
Але на цьому тижні, ми робимо це в трохи іншому
Формат, хоча фактична форматі, як вона збирається піти
на найближчі півтори години або близько того, буде досить
подібно до того, що ви будете бачити на
Інша частина семестру.
>> Так що ми збираємося зробити, це почати з переходом
розділ частини вашою проблемою набору.
Так що якщо ви читали над безліччю р, яке, ми сподіваємося, у вас є,
Ви побачите, що є частина під назвою "Секція
Питання ", і вони призначені для пішла
більше у вашій секції.
Таким чином, у вас є перевага, перебуваючи тут в тому, що ви отримаєте
перейти на ці більш концептуальні питання, засновані.
І після того як ми це зробимо, ми будемо йти протягом останніх двох
розділ питань, які є більш занурень
в кодуванні типів питань.
Таким чином, ми фактично будемо мати вас, хлопці зайняти декілька
хвилин з кожного питання, спробувати вирішити їх за своїм розсудом, і
Потім ми збираємося, щоб об'єднатися з використанням нових CS50
Простору інструмент і перейти на відповіді, ви всі
Правильний код для ознайомлення.
>> Таким чином, пара оголошень.
Не забувайте, що є офіс годин щоночі це
тиждень в Annenberg від 8 до 11, так що взяти
Перевагою з них.
А також, не починайте р встановлений надто пізно на тиждень.
Почати сьогодні ввечері або завтра ввечері в останній.
Ви будете шкодувати про це, якщо ви будете чекати занадто довго, щоб почати
і зіткнутися з проблемами.
Так прийміть наші поради і, безумовно, рано.
Це буде хороший спосіб, щоб почати роботу з
це розділ питань.
Так що я Lexi, до речі.
Я TF.
І це Ден, який також TF.
Ден Бредлі: Гей, хлопці.
LEXI Росс: І він збирається отримати
почав з запитань.
>> Ден Бредлі: Все правильно.
Так що я збираюся просто ввести пару маленьких компіляторів
питання, які ми збираємося поговорити і просто пройти через
свого роду концептуальні ідеї, які ми повинні реально працювати
коді, або в приладі або з нашими роду підроблені
техніка, запустіть CS50 і Spaces.
Так що давайте просто побачити, якщо хтось в аудиторії має жодного уявлення
про що ми говоримо.
>> Так що ж таке бібліотека в контексті коду?
Будь-який, є які-небудь ідеї?
Добре.
Sweet.
АУДИТОРІЯ: Як запас функцій, що хтось інший
вже запрограмований, що ми можемо побудувати?
Ден Бредлі: Абсолютно вірно.
Таким чином, бібліотека є наявність функції, що хтось інший
вже запрограмований, що ми не повинні
повторно реалізувати себе.
Тому у нас є такі речі, як стандартна бібліотека вводу / виводу,
cs50.h бібліотеки, що є речі, які світ,
Інтернет, персонал зробив те, що робить нашу
Живе простіше, так як кодерів.
Отже, як ви друкувати речі на екран?
Я поняття не маю, Printf робить це для мене.
Це те, що хтось інший вже зробив це
дивним і працює досить добре.
>> Добре.
Таким чином, щоб використовувати бібліотеки, з іншого боку, однак, у вас є
насправді робити деякі додаткові речі з вашим кодом.
Так що вам доведеться використовувати щось на зразок цього # включити.
Що ж це зробити?
Яку роль, що гри, коли у вас в програмі?
АУДИТОРІЯ: Він дозволяє використовувати будь-які функції,
[Нерозбірливо]
Бібліотека, просто за допомогою визначень, які вже
[Нерозбірливо]
бібліотеки.
Ден Бредлі: Добре.
Вона дозволяє тягнути бібліотеку функцій в коді, але
він робить це таким чином, що це не зовсім те ж, що, як
-Lcs50, який ми отримаємо в хвилину.
Він просто дозволяє компілятору знати, що агов, є такі
функції, які збираються приїхати в ваш код.
Майте на увазі, що, якщо вони не в повній мірі описані в коді
ось перед вами, є деякі функції бібліотеки
, Яка буде піклуватися про нього.
>> Таким чином, у разі Printf, що ми підемо за пару
Якраз сьогодні, це стандартна бібліотека вводу / виводу.
Тому, хоча я не визначають Printf де завгодно у моєму коді ніколи,
стандартні I / O піклується про це для мене, і я зроблю # включити
stdio.h, і він буде тягнути в ці функції, які я
не все визначено.
Так в чому ж різниця, то між цим # включити
і-lcs50?
Що-lcs50 робити, коли я передати його
компілятора, як Clang?
Будь-який, є які-небудь ідеї?
Добре.
Так?
АУДИТОРІЯ: він дозволяє отримати доступ до CS50 бібліотеку?
Ден Бредлі: Це дозволяє отримати доступ до CS50 бібліотеки в
що він говорить компілятору, Clang, що агов, це де
Ви дійсно піти, щоб отримати ці функції.
Таким чином, # включити каже, що є
ці функції де-небудь.
-Lcs50 говорить, йдіть до цього місця у вашому комп'ютері -
це CS50 бібліотеці -
і потягніть вгору фактичний код для цих функцій.
Чи має це сенс, все?
>> Так що всі ці речі, які, щоб допомогти вашим компілятором
поряд зі створенням коду реально працювати.
Швидкий питання.
Є люди знають, що компілятор?
Гарне почуття?
Це в основному приймаючи написав код, який у вас є,
перетворивши його в двійковому, перетворення в машинний код,
так що ваш комп'ютер дійсно може це зрозуміти.
І, не мудруючи лукаво, ми збираємося піти в більш
фактичне кодування вправи, які ви, хлопці, повеселимося
встромити свої зуби в і Lexi підуть з цього приводу.
>> LEXI Росс: Добре.
Awesome.
Так що ми збираємося перейти на два питання.
Таким чином, перша людина насправді, ви можете бачити, це трохи
невеликі прямо тут, але по суті він просить вас
написати програму, прийняти деякі користувальницького введення.
Я не впевнений, чому там чорний квадрат там.
Це загадкове.
Це повинно бути прекрасно, хоча.
Таким чином, він хоче вас прийняти введення користувача в градусах Цельсія, конвертувати, що
за Фаренгейтом, а потім сказати користувачеві, що температура
буде в градусах за Фаренгейтом.
Таким чином, ви можете побачити приклад вводу / виводу послідовності тут.
Користувач входів - після того, як за Цельсієм, сміливі відноситься до
користувальницького введення.
Таким чином, користувач вводить 100, і програма виходу
Fahrenheit, 212,0.
І важливою відмінністю цієї програми є те, що ми
буде мати тільки одного знака після коми, так що подивимося, як це зробити
, Що добре.
І інша справа, слід зазначити, що ми використовуємо a.out
тому що Clang, компілятор, автоматично іменує його двійковий
файли a.out, якщо не вказати його з певним прапором, щоб дати
це від свого імені, але зараз ми просто будемо використовувати
замовчуванням a.out.
>> Так що давайте насправді займе кілька хвилин і спробуйте записати
код для цього самі.
Так що це 4:15.
Таким чином, в 4:20, ми збираємося повернутися і - о, так.
Простору.
Cool.
Це зразок того, що ми називаємо скелет коду в тому, що
це скелет, але ви повинні заповнити м'ясом
Програма насправді змусити його працювати.
Таким чином, ви можете бачити # включити директиви туди, щоб включити
CS50 і STDIO.
Я зазначив у коментарі фактичної формули для перетворення
Цельсія в градуси Фаренгейта, у випадку, якщо ви не пам'ятаєте, з високою
Школа науки і ще багато чого.
І тоді це всього лише скелет
фактичні основні функції.
Таким чином, все, що ви пишете буде йти тут.
А для того, щоб дійсно дістатися до цього місця -
так CS50 простору можна отримати за допомогою цього URL, який Ден
збирається писати на дошці, і я буду диктувати, а також.
Ден Бредлі: cs50.net/spaces--
LEXI РОСС: / qWLc -
Мені дуже шкода, у.
Ден Бредлі: Y?.
LEXI Росс: Ні, ні, ні, ні.
Це нормально.
qYLcYWfg.
Таким чином, я повинен бачити імена вид кожного з з'являтися тут.
>> Awesome.
Це виглядає здорово.
Це означає, що люди вступають в просторі.
Так що, якщо ви не отримали шанс пограти в
Простору тим не менш, це насправді те, що ви збираєтеся використовувати
з ТФ в розділ весь семестр.
Як це працює, ніби все пишуть свої
код, і ніхто не може бачити це поки ви не натиснете Save
Кнопка, яку я вказую просто зараз.
Так що я збираюся натиснути Save, і якщо ви все йдуть на моє ім'я,
які ви повинні мати можливість побачити його в люди в цій
Простір, який Lexis Beryl Росс.
Так як це буде виглядати в натиснути на моє ім'я, і
Ви побачите Редакція 5, який
є останньої ревізії.
Копіювання тільки Перегляд 5 в ваш простір, клацнувши по ньому.
>> Добре.
Так давайте пройдемо цю проблему разом, і я
насправді відбувається, щоб написати код тут на екрані.
Ви можете збільшити небагато.
І ось одного разу я зробив, ви можете скопіювати мою останню версію
у свій простір, якщо ви хочете, щоб побачити остаточне рішення.
Тепер просторів має можливість для мене, щоб піти і подивитися будь-який з
код, який ви, хлопці, написано, але тільки тому, що
такий великий розділ, і ми насправді не мають ті ж
роду обговорення можливості, менші
розділ, ми тільки збираємося йти до кінця і я тільки збираюся
писати код.
Але, безумовно, зупинить мене з питаннями в будь-який момент.
Ми збираємося пройти через це вид крок за кроком, щоб зробити
впевнений, що ми розуміємо один частина того, що тут відбувається.
Може все бачать цей текст тут?
Хто-небудь хоче його більше?
>> Так що перше, що ми будемо тут робити?
Ну по суті, так як ми хочемо отримати ввід з
користувачів, і ми хочемо, щоб він начебто хороший досвід для
користувачів, ми насправді хочемо сказати їм, що ми шукаємо.
Так що давайте роздрукувати саме те, що ми хочемо сформувати користувач.
Так що не турбуйтеся піднімаючи руку, просто гримлять його.
Яка команда надрукувати що-небудь на екрані?
АУДИТОРІЯ: Є.
LEXI РОСС: Awesome.
Отже, Printf.
>> АУДИТОРІЯ: Гей, Лексі?
[Нерозбірливо]?
LEXI РОСС: Звичайно.
Так Printf, як ми бачили часто в лекції, є
Команда надрукувати що-небудь на стандартний вихідний потік.
Тому ми хочемо, щоб попросити користувача ввести
температура в градусах Цельсія.
І тепер, ми насправді хочемо взяти входу, що вони дають
нам і зберігати його в змінної.
Таким чином, ми дізналися небагато про типи.
Може хтось пам'ятає, який тип ми хотіли б для змінної
з десятковою місце в ньому?
АУДИТОРІЯ: Float.
LEXI РОСС: Float.
Так, дивовижний.
Це поплавок.
Так.
І як ми будемо - великий натяк - отримати
плавати від користувача?
АУДИТОРІЯ: GetFloat.
LEXI Росс: Так.
Cool.
І користувач потенційно може означати і спробувати дати нам
негативне число, але давайте не будемо турбуватися про те, що для цього
Проблема зараз.
Ви будете турбуватися про те, що трохи більше, на ваш
домашнє завдання з проблеми набір.
>> Отже, давайте припустимо, що вони дають нам хороший номер, і тепер ми
насправді потрібно перетворити, які плавають за Цельсієм в
За Фаренгейтом.
Отже, давайте зверніться в наш формула тут, і давайте створимо
Нова змінна і називати його за Фаренгейтом.
Я вивчав правопису.
Це свого роду безумство, я знаю.
І давайте розраховувати на порядку операцій роблять вигляд
свою роботу тут, але ми будемо використовувати дужки просто бути
повністю докладні і ясні.
Так Цельсія раз 9 ділиться на 5.
Я хочу, щоб зменшити масштаб тільки трохи так що це може поміститися на
один рядок, але я знову збільшити для тих, хто не може бачити,
далі в спину.
На жаль про це.
Дивно курсор питань.
Плюс 32.
Гаразд, хто-небудь є які-небудь питання про те, як я поклав в
Формула, або які-небудь проблеми з цим?
Так.
>> АУДИТОРІЯ: Чи потрібна нам поставити Printf до поплавка
Цельсія, плавати за Фаренгейтом ліній сценарію?
Чи має значення, в якому порядку вони в?
LEXI Росс: Так питання було, ми повинні Printf
перш, ніж ми насправді просять поплавок?
Відповідь на це питання є те, що ми робимо.
Таким чином, те, що курсор, що користувач отримує на вхід їх
поплавок буде відбуватися після того, як друковані с, чи не так?
І це має сенс, якщо ви думаєте про логіку, як
Ви питаєте користувачеві питання, і тоді ви
Отримавши відповідь.
Таким чином, він друкує с, а там курсора, а потім
Користувач може ввести значення, як ми побачимо
пізніше, коли ми Demo.
Так?
>> АУДИТОРІЯ: Чому ми використовуємо поплавок, а не двійник?
LEXI Росс: подвійний, по суті, в якості імені
увазі, дає в два рази більше
точності, як поплавок.
Але зазвичай в C, в цьому, звичайно, для ряду
причин, ми збираємося використовувати поплавці.
І це дійсно все, що точність нам потрібна тільки для
основні види перетворення температури.
Як правило, двомісні більше використовується в мові Java,
поплавці є більш поширеними в C. Гаразд, дивовижний.
>> Ден Бредлі: один більше.
LEXI Росс: Ще один.
Так?
АУДИТОРІЯ: де ви поклали Space Bar?
Мовляв, [нерозбірливо] пробіл [нерозбірливо]?
Хіба це важливо?
LEXI Росс: О, ні.
Так що це не має значення.
Я насправді повинні були поставити ще один космічний тут.
Але що справа в тому, що ви послідовно
у всьому коді.
Так що, якщо ви вирішите використовувати один стиль відстань, переконайтеся, що
тримати його протягом усього вашого коду, або ви можете отримати стиль
очки.
Таким чином, послідовність є ключовим чинником.
Ден Бредлі: Я думаю, він говорив про те, що простір.
LEXI Росс: О, ви говорите про те, що простір?
За фактичними C?
АУДИТОРІЯ: Так.
LEXI Росс: О, так це тільки за зовнішність, чи не так?
Так що шлях, коли ми запустимо код, якщо у нас не було цього
Простір тут, якщо це виглядало так, користувач почне
ввести номер, і було б роздавлений прямо
проти товстої кишки після C, і вона буде виглядати трохи
краще, якби було місце.
І ви можете бачити, що трохи краще, як тільки ми насправді
запустити цей код, коли ми його закінчили.
Awesome.
Так, ще одне питання.
>> АУДИТОРІЯ: Чи повинен я поставити десяткову крапку після одного з
[Нерозбірливо]?
LEXI Росс: Так що ви цього не зробите, тому що порядку
операцій.
Таким чином тому, що Фаренгейтом вже з плаваючою точкою, як це
Цельсія, вам не потрібно явно наводити будь-яку з цих
інші номери, як поплавки, хоча в інших
обставинах, коли ви маєте справу з цілими, ви можете
повинні поставити крапку явно привести його в якості поплавка.
Так?
АУДИТОРІЯ: Мені було просто цікаво, якщо капіталізація питань у
ці команди, як GetFloat?
LEXI Росс: Так, гарне питання.
Таким чином, питання було, робить капіталізації речовини в
команди, як GetFloat?
Відповідь: Так, це так.
Так GetFloat, як Ден описував раніше, бібліотека
функції в CS50 бібліотеки, і воно було написано в якості капіталу
G, капітал F. Таким чином, якщо ви не пишете його з тими столиць
там, компілятор не буде розуміти, що
функціонувати ви маєте на увазі.
Добре.
Так?
>> Зали: основний аргумент на користь завжди порожнечу?
LEXI Росс: Так, це ще одне велике питання.
Таким чином, код, який ви скопіювали з мого простору помилково було
ще кілька аргументів.
Таким чином, питання було, є аргумент основні функції
Завжди порожнеча, яка по суті нічого не значить?
Відповідь: ні.
Ви можете помітити, що код, який ви скопіювали з мого попереднього
перегляд мав те, що може виглядати як нічого, що дійсно робить
сенс прямо зараз, деякі символ *, ARGV, агдс.
Не турбуйтеся про те, що на даний момент, але ви дізнаєтеся пізніше
на вони роблять різниці.
Але якщо ви не використовуєте таку додаткову функціональність
про які ви дізнаєтеся трохи пізніше, порожнеча
цілком нормально.
>> Добре.
І у нас є ще один крок, який є те, що ми хочемо
насправді показати користувачеві, що перетворені температури.
Отже, ще раз, ми збираємося використовувати Printf, і скажімо, F, просто
Заради узгодженості в.
І тепер ми збираємося зробити щось трохи складніше.
Так що ми збираємося використовувати прапор, або особливого роду позначення,
сказати Printf для друку тільки одного знака після коми.
А хто-небудь випадково не знаєте, що це буде виглядати
хотів, перш ніж я друкую це?
Так?
АУДИТОРІЯ: 0,2% е?
LEXI Росс: Так, так.
Таким чином, насправді, це дуже близько.
0.01f на 0,01% F, а потім ми повинні пам'ятати, щоб включити
Інший аргумент на Printf, яка є самою змінною,
який с.
>> І останній крок.
Може хтось пам'ятає, що це таке в нашому основна функція?
Так, там.
АУДИТОРІЯ: Повернення?
LEXI РОСС: Абсолютно вірно.
Таким чином, так як це основний повертається в INT, ми хочемо
Також повернутися в Int.
Ден Бредлі: Відсоток повинен бути на іншій стороні.
LEXI Росс: Добре.
Вибачте, хлопці.
Це була помилка.
Таким чином, відсоток доходить до 0,01.
Так це 0,01% ф.
Це свого роду важко запам'ятати.
Багато людей, як я, просто подивіться їх
всякий раз, коли ми їх використовуємо.
Так, там.
АУДИТОРІЯ: Чому це 0,01 і не 0,2 або 0,1?
LEXI Росс: Я не знаю, насправді.
Чи знаєте ви?
Ден Бредлі: причина це 0,01, а не 0,02, або
0,2, або 0,1, є досить довільним чином, що
Програміст спочатку розроблений його.
АУДИТОРІЯ: Це не те, що я мав на увазі.
Я не запитую, чому.
[Нерозбірливо] чому.
У мене написано, як 0,2, і це доставляє два -
Ден Бредлі: Так.
Так що ми були тільки бажаючи один.
АУДИТОРІЯ: Ой, ладно.
Таким чином, можна потім 0,01.
Ден Бредлі: 0,1, ймовірно, також працює.
0,01 працює також.
LEXI Росс: О, 0 може бути, щоб показати нулю, якщо
це менше, ніж одна.
Ден Бредлі: Так, я думаю, що це правильно.
Так що 0,01 буде показувати нуль, якщо вона не має нічого
що б туди природним шляхом.
Так що якщо ви, скажімо, покласти в 100 для Цельсієм, це було б
виходить до 212 зазвичай в градусах за Фаренгейтом, як 212 точно.
Якщо у вас є 0,01, вона покаже 212,0, а
не просто 212.
LEXI Росс: Це вірно.
Таким чином, читаючи в основному говорить Printf, друкувати десяткову крапку,
і надрукувати 0, якщо це необхідно.
Якщо ні, то друк першої десяткової позиції.
Ден Бредлі: І ми будемо досліджувати деякі з цього, коли ми
насправді працює код.
LEXI Росс: Так.
АУДИТОРІЯ: Тому я ставлю 0,1.
Він як і раніше друкує свої нуля.
Ден Бредлі: Він як і раніше друкує свої нуля?
АУДИТОРІЯ: Так.
Ден Бредлі: Хм, ладно.
LEXI РОСС: Cool.
>> Добре.
Більше питань на цей код, перш ніж я скомпілювати і запустити?
Хто-небудь бачить помилки тут, в першу чергу?
Хто-небудь бачив те, що повинно бути тут?
Якби це була ваша проблема набору, що б бути тут, які не
там прямо зараз?
Так, відмінно.
Так що я не включати коментарі, тому що я їх доставки
в усній формі, але якщо б я писав цю задачу в набір, я б
безумовно хочете, щоб покласти коментарі, щоб вказати, що я
робить, по суті, в програмі.
І ви будете виду відчути це, як Ви рухаєтеся через
семестру, потрібну кількість коментарів.
Ви не хочете бути занадто багатослівним і поклав ліній і
рядків коментарів для кожного з ваших рядків коду, але ви
Також не хочу бути не досить докладний і залишити
Читач, щоб спробувати з'ясувати, якого біса
Ваш код робить.
>> Добре, прохолодно.
Давайте спробуємо запустити цей код.
Гаразд, я піду, щоб зменшити масштаб небагато.
Cool.
Таким чином, ви помітите, що є кнопка Play тут.
Давайте натисніть Play.
Таким чином, ви побачите тут, як і в специфікації по проблемі
встановити, є. / a.out.
a.out це ім'я виконуваний файл, який є
довге слово всього за файл, що складається з двійкового коду, який
комп'ютер насправді працює.
Так як ми очікували, ми маємо C тут.
Так називають ряд.
АУДИТОРІЯ: 23.
LEXI РОСС: 23.
Ден Бредлі: Ваша програма займає надто багато часу для запуску.
Просто запустіть його знову.
LEXI Росс: О, мій поганий.
Добре.
Простору є прискіпливим іноді.
Вона хоче, щоб ви думали на ноги.
Ладно, 23.
Awesome.
Чи всі в це повірити?
Круто, тому що вона працює.
>> Добре.
Давайте спробуємо ще парочку.
Давайте спробуємо краю в даному випадку.
У комп'ютерній науці, коли ми говоримо про крайні випадки, ми маємо на увазі
випадків для запуску програми які є свого роду на самому
Краю розумних входах або, що тест певних кутах
Логіка в вашу програму, і це має більше сенсу, коли ми
робити більш складні програми.
Давайте спробуємо 0.
Awesome.
Ми все це знаємо.
Cool.
Є ще питання по цьому перш ніж перейти
до наступної програми?
Гаразд, дивовижний.
Отже, тепер ми збираємося -
Ви хочете просто використовувати мій комп'ютер?
Ден Бредлі: Так, це досить легко.
>> Гаразд, піду і говорити про те, щоб відсотки.
Так що ми по суті, в наступному невелику вправу, збирається
взяти два цілих входи від користувача, сподіваючись на
невід'ємні чисельник і знаменник позитивний, і
в основному розділяючи їх і виводить те, що виступає в якості
відсоток.
Таким чином, ми хочемо, щоб приймати тільки невід'ємні чисельники і
приймати тільки позитивні знаменники, і продовжуйте питати
на нові, якщо вони не отримали те, що він хоче.
Все в порядку?
Так дайте що йдуть.
LEXI Росс: О, так, ти хочеш зробити -
ой, може бути, люди повинні скопіювати мій код.
Ден Бредлі: Так.
LEXI РОСС: [нерозбірливо]
Простору.
>> АУДИТОРІЯ: У мене є питання.
Якщо я використовую просторів і я хочу, щоб зберегти [нерозбірливо]
Фаренгейт перетворення, я можу зберегти його, а потім зробити новий -
LEXI Росс: Ми могли б просто зробити новий простір, або ви можете просто
потрібно скопіювати і вставити в текстовий файл або
щось таке у вас є.
Ден Бредлі: Я просто змінити своє ім'я.
LEXI Росс: Я тільки що врятував останній редакції
tofahrenheit.c, так що якщо ви йдете в AAAA Lexis Beryl
Росс, ви можете піти і скопіювати цей останній код, а потім
почати цей новий, який я думаю, що Ден буде надавати
деякі скелет коду для також.
Добре.
Ден Бредлі: остання версія у мене є на шахті, тому
це на самому верху цей час, Редакція 4, і
він буде мати те, що вам потрібно, щоб почати роботу.
LEXI Росс: Все в порядку, і я буду копіювати, що в шахті, а також.
>> Ден Бредлі: Все правильно.
Я думаю, що ми збираємося просто почати рухатися з цього приводу, якщо
хтось зацікавлений.
LEXI Росс: Ми всі зацікавлені.
Ден Бредлі: Ми збираємося почати просто, оголосивши
деякі змінні. Тому у нас є чисельник, і заради
Тепер, я збираюся просто почати його зі значенням -1,
і тоді я створив DO-циклу. Хоча -
тому, коли я хочу, щоб це цикл?
Коли я хочу, щоб продовжувати запитувати -
да?
АУДИТОРІЯ: Коли вона менше або дорівнює нулю.
Ден Бредлі: чому вона не може дорівнювати нулю?
АУДИТОРІЯ: [нерозбірливо].
Ден Бредлі: Так.
Таким чином, для чисельника, це просто в той час як в чисельнику
менше нуля.
Чи має це сенс для людей?
Ми продовжуємо цикл а чисельник менше нуля,
ми продовжуємо просити новий вхід, і тримати вимагаючи, щоб вони
введення нових речей.
Так що я просто трохи Printf тут, невід'ємні
кількість циліндрів -.
І тоді ми робимо те ж саме, що й раніше, тільки ми робимо
GetInt, тільки тому, що ми хотіли зробити його як
Відсоток цілих чисел.
Таким чином, чисельник = GetInt.
>> Добре, тепер кілька речей.
Чи потрібно мені це -1 тут?
АУДИТОРІЯ: [нерозбірливо].
Ден Бредлі: Ні.
Чому ні?
АУДИТОРІЯ: Тому що ви отримуєте випадкове значення від користувача.
Ден Бредлі: Абсолютно вірно.
Але я хочу, щоб декларація тут?
Так.
Чому?
АУДИТОРІЯ: Ви повинні знайти поза циклом.
В іншому випадку, ви не будете мати змінну для відпочинку
програми.
Ден Бредлі: Абсолютно вірно.
Область.
Sweet.
Чи має це сенс для всіх?
АУДИТОРІЯ: Чи можете ви сказати, що ще раз?
Ден Бредлі: Добре.
Так що, якщо б я був заявити про це чисельник всередині циклу, якщо
У мене було це замість того, чисельник чисельник Int,
і я позбувся від цього повністю,
чисельник зникне.
Вона не могла б існувати поза цього циклу, тому що всі
знаходиться в рамках цих фігурні дужки.
Сенс?
Добре.
>> Таким чином, для знаменника, ми робимо щось досить схожі, внутр
знаменник = -
і мені не потрібно одно -
робити, і в той час як в даному випадку, те, що я хочу?
В якому стані я хочу, щоб це все ще петля на?
АУДИТОРІЯ: менше або дорівнює 0.
Ден Бредлі: менше або дорівнює 0.
Знаменник <= 0.
Не забудьте взяти з комою, діти.
Таким чином, ми робимо те ж саме, як і колись, Printf позитивні
знаменника, і ми отримуємо Int звідси.
Там ми йдемо.
GetInt.
Добре.
А потім, в кінці кінців, ми хочемо, щоб роздрукувати певний відсоток.
Таким чином, щоб зробити це, те, що повинно нашому рядок виглядає?
Printf.
Будь-які інші ідеї про те, що я можу тут робити?
Так?
АУДИТОРІЯ: Може бути,% 0,2 [нерозбірливо].
Ден Бредлі: Так.
Добре.
Я почну з першого біта,% .02%%,
лапки, кома.
І я збираюся кинути нової лінії тут, тільки тому, що
як нові лінії, коли я роблю речі.
Яке математичне вираз, я повинен тут?
АУДИТОРІЯ: Дужки і плавати.
Ден Бредлі: Добре.
Чому я хочу мати його в поплавок?
АУДИТОРІЯ: [нерозбірливо].
Ден Бредлі: Добре, добре.
Float.
АУДИТОРІЯ: чисельник.
Ден Бредлі: Чисельник?
Гаразд, так що я плавати чисельнику.
АУДИТОРІЯ: Розділені по -
Ден Бредлі: Розділені по?
АУДИТОРІЯ: знаменника.
Ден Бредлі: я роблю тільки знаменник, або я роблю поплавком
знаменник?
АУДИТОРІЯ: Просто знаменника.
Ден Бредлі: Добре.
АУДИТОРІЯ: І ви можете помножити це на 100.
Ден Бредлі: А я множимо на 100.
АУДИТОРІЯ: А потім дужки навколо всього виразу.
Ден Бредлі: Так.
>> Добре.
Добре виглядати?
Давайте спробуємо.
-50.
Добре, 50.
0, 100, 50%.
Це спрацювало так, як ми хотіли.
Чи означає це, коду глузд людей?
Я збираюся зберегти його таким чином, ви можете отримати його копію.
Так?
АУДИТОРІЯ: Чому б тобі не потрібно ставити [нерозбірливо]?
Ден Бредлі: Де?
АУДИТОРІЯ: Як і коли ви говорите, знаменник дорівнює
[Нерозбірливо].
Ден Бредлі: Коли в мене тут?
Чому я повинен Int перед ним?
АУДИТОРІЯ: Тому що інший має Int перед ним.
Ден Бредлі: Ну, так, щоб не було в циклі, чи не так?
Таким чином, я заявляю це Int знаменника вище циклу,
і в мене немає його в петлю, тому що я був би
оголосивши його купу разів, і вона не буде фактично виконувати
до де-небудь ще в програмі.
LEXI Росс: Так, важливо пам'ятати, що
Змінні тільки потрібно бути оголошений один раз.
Отже, уявіть, це все одно, ввівши нову змінну
в світі, називаючи його Int або поплавець або етажерка, і
як тільки він заявив, все що вам потрібно зробити, щоб змінити це
просто назвати його по імені: знаменника, або х або у.
Вам тільки потрібно насправді називати це Int тільки один раз.
>> Ден Бредлі: Так.
АУДИТОРІЯ: Чи можете ви пояснити різницю між% D
і% F, і якщо ви коли-небудь оголосити
змінну у вигляді десяткового?
Ден Бредлі: Отже, г% і% F тут?
LEXI Росс: D насправді ставиться тільки цифра, не
десяткової, яка є своєрідною оману.
Там немає фактичний тип даних, який називається десятковою, і коли ви
хочете роздрукувати INT, ви звертаєтесь до нього, як% D, або
%-Все-D. F для поплавок, який можна подумати, що це
був би я, але насправді D для внутр.
>> Ден Бредлі: Так?
АУДИТОРІЯ: Так що в іншій програмі, то чому б нам не зробити
Те ж саме, коли ви говорите за Фаренгейтом?
Чому ми не поклав, як і -?
Ден Бредлі: У нижній тут?
Ви могли б мати.
Це було б абсолютно законними.
Мені подобається робити це таким чином, інші люди хотіли відділення
його в різних рядків коду.
У будь-якому випадку добре працює.
В чому справа?
>> АУДИТОРІЯ: Чи можете ви пояснити, що%%
[Нерозбірливо]?
Ден Бредлі: Отже, відсотків, відсотків.
Так, я збирався піти з цього приводу.
Перший відсотків називають керуючий символ, і він просто
говорить, що річ за цим насправді не код.
Таким чином, це перше відсотка, право,% 0,02 е, всі ці 0,02% F
щось значити для Printf як функції.
%%, Я просто хотів, щоб це насправді просто роздрукувати
Знак відсотка.
Так що я не говорю, що нічого важливого за ним.
Я просто кажу, що є знак відсотка за нею.
Будь ласка, роздрукуйте знак відсотка.
Так відсотків, потім ще відсотків.
АУДИТОРІЯ: Чи можете ви показати, що це буде виглядати, якщо у вас є
плавати на основі іншої лінії?
Ден Бредлі: О, так, звичайно.
Так що я просять, щоб показати, що це буде виглядати, якщо я
був цей поплавок чисельник, все це математика, по іншій лінії.
Таким чином, поплавець відсотків = -
і я хотів би позбутися цього і просто поставити у відсотках.
І він робить ту ж саму річ, я просто
є ще одна змінна.
>> АУДИТОРІЯ: [нерозбірливо].
Ден Бредлі: Перейдіть до чого?
АУДИТОРІЯ: Так що я бачу [нерозбірливо].
Ден Бредлі: Що ти не бачиш?
АУДИТОРІЯ: Вибачте, я був [нерозбірливо].
Ден Бредлі: Так.
АУДИТОРІЯ: Так що, якщо ми замінюємо символ екранування,
припустимо, що ми хотіли мати знак долара замість цього, тільки для
Наприклад, знак долара за відсоток?
Ден Бредлі: Ні.
Це всього лише долар, тільки один знак долара, тому що долар
Знак нічого не значить для Printf.
Питання було, мені потрібно, щоб у екрануючий символ для
символи, такі як знак долара?
АУДИТОРІЯ: Так начебто пов'язані, чи є інші випадки, які
ми повинні знати, коли щось подібне відсотків
знак може означати щось [нерозбірливо]?
LEXI Росс: Так.
Не обов'язково знак відсотка, але зворотну косу риску, см.
як у нас є люфт кінця тут?
Припустимо, ми насправді хотіли надрукувати люфт, ми повинні були б
уникнути цього -
і це буде збивати з пантелику -
з іншого зворотну косу риску.
Тому, якщо ми хочемо вивести \ \, ми б
достатньо ввести це, або додаткові
зворотну косу риску, іншого виходу.
І ще один, якщо ми хочемо, щоб роздрукувати цитата - так
В принципі, нічого такого позначає щось особливе
у рядок, ми хочемо уникнути.
Так що давайте говорити, що ми насправді хочемо мати цитата тут, ми б
хочу зробити \ ".
АУДИТОРІЯ: Так що це, як правило, зворотну косу риску?
Ден Бредлі: Це, як правило, зворотну косу риску.
LEXI Росс: Так.
З якоїсь причини тут, це знак відсотка.
>> АУДИТОРІЯ: [нерозбірливо]?
Ден Бредлі: Цей хлопець?
Це просто сказати, річ, яка ділиться тут
буде розглядатися як поплавок заради поділу.
Таким чином, у разі 50, поділений на 100, якщо у мене не було
плавати там, це було б просто 0.
Це все, що вийде, тому що 50 ділиться на
100, якщо ви не включаючи будь знаків після коми, від 0. -
і все після коми тільки з усіченим.
АУДИТОРІЯ: Гм,
Чому б нам не поставити її перед знаменника, а?
Ден Бредлі: То чому ми не ставимо його перед
знаменника, тому що коли ви щось поділу на
ціле, вона працює просто відмінно.
Наявність більшої кількості на дні
нічого не змінює.
Ви можете розділити на цілих просто відмінно.
Це просто не має значення.
Ви могли б, це нічого не змінило б.
АУДИТОРІЯ: Так що якщо ви хотіли трьох знаків після коми, не так
Ви ставите 0,03 відсотка?
Ден Бредлі: Так.
Ви б поставив 0,03%, якщо ви хочете
трьох знаків після коми.
>> АУДИТОРІЯ: А у команди, в чому різниця між
, Що і просто роблю той час як на вершині?
Ден Бредлі: Так зроби той час як у порівнянні якийсь час циклу два
досить схожі команди.
Єдина відмінність полягає у виконанні коду один раз, ви запустите
код всередині циклу один раз перед
Ви вносите будь-які фактичні перевірки.
Таким чином, це також причина того, що я можу сказати знаменника, не даючи
це число.
Так що, якщо я сказав Int знаменника, а потім, (знаменник <=
0), він може навіть не
виконання коду всередині.
Це зробить перевірку, що і раніше -
так і тут.
Так що, якщо у мене було це під час циклу тут, я повинен був би мати
знаменник дорівнює, скажімо, -2 або деяке число менше
або рівним 0, так було б насправді спробуйте запустити код
усередині першої.
Таким чином, взагалі кажучи, ви хочете використовувати зроби той час як цикл
замість того, щоб у той час як цикл, коли ви просите для користувача введення
тому що працює код один раз, просячи небудь користувачів
дасть вам, як правило, краще рішення, а не
просто вірити, що ви поклали, щоб почати с.
АУДИТОРІЯ: А ви завжди супроводжується деякий час.
Ден Бредлі: У слідують деякі шматок коду, який ви
хочете виконати, а потім, деякий умова.
LEXI РОСС: Думайте про це як одна команда роду розпалася
на дві частини.
Це робити-то час, а не як от зробити, і тоді я
збирається додати деякий час, це просто зроби час.
>> АУДИТОРІЯ: Я розумію причини, чому ви використовуєте
два знаки відсотка, але ви можете пояснити мені, чому ми повинні
є [нерозбірливо]?
Ден Бредлі: Отже, на один процентний знак просто кажу,
Printf, ось команди, що я хочу, щоб ви
заповнити деяке число.
Тому я хочу, щоб ви заповните його з двома знаками після коми та
плавати, і ви побачите, поплавок в кінці
Команда, саме ця відсотка.
Чи має це сенс?
АУДИТОРІЯ: Так.
Ден Бредлі: Добре.
>> АУДИТОРІЯ: Чи є щось, про зроби той час як цикл, який
якщо умова не виконується, якщо ви отримуєте
негативне число для чисельника, це буде просто тримати
питаючи і буде продовжувати запитувати користувача?
Ден Бредлі: Так.
Таким чином, якщо умова а не виконується в кінці
робити-то час, вона буде бігти назад до старту.
Це просто цикл.
Так що це як час циклу, що умова не було
виконані на.
Він просто працює ще один раз.
Так.
АУДИТОРІЯ: Так що, якщо ви робите це, ви можете, в той час як для вашої,
покласти дві умови?
Ден Бредлі: Можна.
Це залежить від того, що ви просите.
Таким чином, ви можете помістити дві умови в циклі якщо у вас є
всі в якийсь логічний оператор, який звучить
потворний, але це в основному цей знаменник менше або
дорівнює нулю, або повертає істинне або помилкове, чи не так?
Це менше або дорівнює нулю чи ні.
Таким чином, ви можете зробити інші логічні оператори, що скажуть в той час як
це також вірно і в той час як це теж брехня.
Так що це такі речі, як і чисельник більше
нулю, чи не так?
Ось і питаю, це буде тільки петля в той час як знаменник менше
нуля і у вас є позитивні чисельнику.
АУДИТОРІЯ: А ви два НСРА, вірно?
Ден Бредлі: Два НСРА.
LEXI Росс: Ми розповімо, що більш пізніше.
>> АУДИТОРІЯ: Що робити, якщо хтось не поклав у позитивному
знаменник?
Якщо вони поклали в негативній чисельник, ви можете спонукати їх
, Скажімо, покласти в ненегативним чисельником і є
Команда для цього?
Ден Бредлі: Ви могли.
АУДИТОРІЯ: зараз він просто говорить невід'ємних чисельнику.
Що б бути використані для цього?
Ден Бредлі: Отже, ви б, якщо умова, оскільки якщо
чисельник менше нуля.
LEXI Росс: Ви, напевно, просто хочу, щоб розбити його на більш
кроки, вірно?
Таким чином, в перший раз вони поставили на вході, ми просто скажемо, дати
нам чисельник і ще багато чого.
І потім, якщо вони роблять неправильні речі, це може бути у випадку
на деякий час циклу, а не зроби той час, тому що у нас є
Вперше ми маємо GetInt, а потім, що вхідний
це погано, ми постійно питати їх для подальшого входу з
різного роду текст, як це не працює або дати нам
невід'ємні чисельнику замість того, що такі речі.
>> Ден Бредлі: Так?
АУДИТОРІЯ: Як ви зніміть речі, які [нерозбірливо]
термінал?
LEXI РОСС: Ясно.
Ден Бредлі: Так, ви не можете ввести в неї.
LEXI Росс: Насправді, це не реальний термінал.
Питання в тому, як ви зрозуміти, що речі там, внизу?
Відповідь на це питання, це не реальний термінал, але припустимо, що ви
в реальному терміналу.
Очистіть.
О, це кішка.
Ден Бредлі: [нерозбірливо]?
Це що, правда?
LEXI Росс: Ні, це всі мої речі.
Ден Бредлі: [нерозбірливо].
LEXI РОСС: Там ми йдемо.
Ден Бредлі: Так?
>> АУДИТОРІЯ: Чи ясно роботу, якщо у вас є -
як, скажімо запуску програми [нерозбірливо], і вона просить
Ви за щось, а ви не хочете.
Як ви -
Ден Бредлі: Ctrl + C?
LEXI Росс: Так.
Так що якщо ви запускаєте програму і щось не збираються
як ви хочете, щоб і ви просто хочете, щоб вийти цілому
Програма, Control + C. Навіть якщо ви знаходитесь на Mac, а не Apple + C,
Control + C.
АУДИТОРІЯ: А у вас є правильна версія у
перегляд у вашому профілі?
Ден Бредлі: Я думаю, що це збережено, чи не так?
Так.
LEXI Росс: Це простір.
Так.
Я думаю, що перегляд 11.
>> Ден Бредлі: Так?
АУДИТОРІЯ: Чи C робити ніяких припущень про те, що
змінну, якщо ви визначаєте змінну, але не призначити
все, щоб вона негайно?
Ден Бредлі: Так що будемо приймати тільки цілі в цьому місці.
Так що якщо ви оголосите його -
АУДИТОРІЯ: Якби я тільки що зробив Int знаменника крапка з комою, робить це
Припустимо, що він дорівнює нулю або будь-який номер -?
Ден Бредлі: Ні.
Так що якщо ви не призначите, скажімо, INT знаменника в будь-яке значення,
це може бути що завгодно.
Це по старій пам'яті, що було в цьому місці.
Таким чином, вона може бути негативною 2 млрд, це може бути позитивним
2 млрд, і це може бути де завгодно.
Так що якщо ви насправді працює речах, переконайтеся, що ви
присвоїти значення змінної.
Це не має значення, тому що ми відразу
присвоєння значення, але в цілому, так.
Будь-які інші питання?
>> LEXI Росс: Ми також можемо просто взяти загальні питання в цій
точки на лекційного матеріалу, з безліччю матеріалу, все, що ви
було цікаво, про, це хороший час, щоб запитати у тих.
АУДИТОРІЯ: Таким чином, у покрокових посібників, Zamyla
згадується круглий функції.
Ви не могли б роз'яснював, як реалізувати це?
LEXI РОСС: Звичайно, як реалізувати це?
АУДИТОРІЯ: Вона сказала, що раунд.
LEXI Росс: О, так.
Так що просто так ми все ж Vocab та інше,
реалізувати як правило, означає фактично писати з нуля.
І тому я не думаю, що вона мала на увазі щось подібне до написання
круглий функції.
Вона, напевно, просто мав на увазі, як його використовувати.
Реалізація значить, ніби як створюють.
Таким чином, в цілому, час, коли ми хочемо використовувати круглі функція Я
маю на увазі, начебто, наприклад,
якщо ви хочете, щоб закруглити.
Чи можете ви дати мені трохи більше контексту, в який
Проблема була?
АУДИТОРІЯ: Щоб уникнути неточностей знаків після коми
роблячи їх число з плаваючою крапкою.
LEXI Росс: Так.
Так що питання з поплавками, що ми начебто посилався на це
що через те, як вони зберігаються в машині,
вони не є 100% точною в тому, як ви могли б подумати
калькулятор буде зберігати їх.
Це важко для мене, щоб показати приклад, не знаючи, що
контекст був.
Я не знаю, чи можете ви думати про щось, Ден?
>> Ден Бредлі: Так що, якщо ви питаєте, скажімо, числа
більше, ніж 10, і ви використовуєте поплавці, і ви додаванням одного
з поплавцем кожен раз, вона буде іноді чекати, поки ви не
отримали до 12, перш ніж воно буде сказати, що це насправді число
більше 10.
Поплавці є серйозні питання як раз між 32-й
і тридцять третій десяткове місце, підемо, так що може 9,9999999, або
це може бути 10.0000001, вірно?
Це дійсно не розрізняють між ними, так що якщо ви
очікування речей більше або дорівнює 10, ви можете
Не добратися на те, що ви думаєте, 10-й ітерації.
Ви можете отримати там, в 11-му.
LEXI РОСС: По суті, так.
Коли ви циклу по багато плаває, що, коли
неточностей трапитися.
Залу: Я думаю, тому в основному, це як на р
встановлена, вона хоче, щоб ви круглий значення з плаваючою точкою, і якщо ви покладете в
4,24 для величини зміни необхідно тому, якщо ви просто робите
раз 100, це буде насправді зміниться в 423 -
Ден Бредлі: Іноді, так.
АУДИТОРІЯ: Так що я думаю, що це так само, як, як ви використовуєте круглий
функції в реальному коді зробити так, щоб він не робить цього?
Ден Бредлі: Так що якщо ви округленням 424 шляхом множення
на 100 і перетворити його в ціле, вона буде іноді
зробити його 423 через те, що неточність.
І так, що ви можете зробити, це просто додати 0,0000003.
Залу: Але я думаю, що, насправді, вони хочуть
нам використовувати раунд.
Ден Бредлі: круглий функції?
Там, напевно, математичні функції, то в
математичну бібліотеку.
АУДИТОРІЯ: # включити математику.
Ден Бредлі: # включити , і є
Ймовірно, круглі функції.
АУДИТОРІЯ: Так само, як круглі () -?
LEXI РОСС: По суті, тому що ви хочете, щоб округлити до
найближчого цента.
Ден Бредлі: Давайте підтягти людина сторінок.
Таким зручний інструмент, якщо ви не знаєте, -
Ви тягнете терміналу -
це якщо ви йдете до людини математиці.
LEXI РОСС: Cool.
>> Таким чином, ви можете бачити, так і людина є скороченням від керівництва, а не людини, а
вона дозволяє шукати додаткову інформацію про будь
функції або бібліотеки, які ви можете мати справу.
Так що я просто набрав в людині математики.
Дозвольте мені змінити масштаб зображення
Ден Бредлі: Ми можемо спробувати круглий людина, теж.
LEXI РОСС: Звичайно.
Ден Бредлі: І це буде перерахувати -
Людина математиці буду перераховувати все, що в математичну бібліотеку,
які ми будемо включати.
Так, у нас також є тур.
LEXI Росс: Так що я тільки що зробив чоловік раунд.
Тут можна побачити в резюме, це говорить # включити
, так що це ніби як cs50.h, stdio.h.
І, схоже, це насправді перевантажені, це означає,
вона приймає різні типи аргументів, тому ви можете навколо
подвоюється або поплавками.
Ден Бредлі: Круглий проти roundf.
LEXI РОСС: Roundf.
А Zamyla кажучи вже про roundf проти турі?
АУДИТОРІЯ: У керівництві, це була просто кругла ().
Ден Бредлі: Отже, вона, ймовірно, використовував подвійні,
Потім, на відміну від поплавка.
Отже, ви б помножити на 100, а потім навколо нього, і
ви отримаєте число найближчих до нього, я думаю.
>> LEXI Росс: круглий функція повертає інтеграл
Значення найближчого до х округлення половини випадків від 0,
незалежно від поточного напряму округлення.
Таким чином, по суті, ви хотіли б тільки навколо, як тільки ви на
ціле число, так що ви помножити на
100, а потім раунд.
Чи означає це, більше сенсу?
АУДИТОРІЯ: Щоб використовувати цю функцію у файлі C, вам потрібно
покласти круглий поплавок, як якщо б ваша змінна називається Q, ви
покласти раунд (поплавок) д, а потім дужки, або може
ви просто поставити круглі, а потім Питання в дужках?
Ден Бредлі: Отже, якщо ви намагаєтеся використовувати цю функцію
насправді, ви б вважати, що Q, Q є поплавець,
або як її оголосили?
АУДИТОРІЯ: Q являє собою поплавок.
Ден Бредлі: Отже, якщо Q оголошений як поплавок, ви б
просто взяти раунд, а потім дати йому ц.
Можливо, вам доведеться оголосити його як подвійну в цьому випадку.
LEXI Росс: Так, якщо ви хочете використовувати roundf.
Залу: Я міг би просто використовувати roundf, а потім д в лапках?
Ден Бредлі: Ні, не в лапках, тільки ц.
АУДИТОРІЯ: На жаль, не в лапках, в дужках.
Ден Бредлі: в дужках, так.
LEXI РОСС: Вибачте, що була трохи заплутаною.
Є ще питання?
>> Ден Бредлі: Так?
АУДИТОРІЯ: Так круглих тільки раундів до цілих чисел?
LEXI Росс: Так.
Ден Бредлі: Так, тільки круглий турів до цілих.
АУДИТОРІЯ: Так що, якщо ви хочете мати те, що точна
повинна бути [нерозбірливо], помножених на 100, а потім
розділений на 100 раз, якщо ви хотіли -
LEXI Росс: Так що, якщо ви хочете отримати його в десятковій формі?
АУДИТОРІЯ: Ну, наприклад, наприклад, [нерозбірливо] ви
є 1,25, а потім [нерозбірливо]
1,24, якщо ви хочете зберегти це як 1,25, ви б
множимо на 100, навколо нього, а потім розділити його на 100
знову, щоб отримати 1,25?
LEXI Росс: Так.
Таким чином, питання, так як округлення, як людина сторінку
говорить, округлюється до найближчого цілого значення, це означає,
що хотіли б помножити на 100, виконайте
округлення, і розділити на 100 ще раз, щоб, скажімо, отримати правильне
доларів і центів значення?
І відповідь -?
Ден Бредлі: Ні.
Я маю на увазі, якщо ви просто отримуєте значення з плаваючою точкою, якщо ви почнете
з поплавцем значення 1,25, що те, як це буде
інтерпретувати.
Так що якщо ви помножте його на 100, а потім розділіть його на 100,
вона як і раніше буде інтерпретовано як 1,25, або
можливо 1,249 ...
.. 999.
LEXI Росс: Я думаю, що питання було б, ви б
множення, а потім використовувати круглий, а потім розділити, так що це як -
Ден Бредлі: Так.
Я все ще не думаю, що це міняє нічого, хоча.
Я думаю, що це досі.
LEXI Росс: Тому що кругла робить - він використовує цілі числа.
Так що, якщо ви спробуєте навколо 1,25, ви просто отримаєте 1.
Тому я думаю, для того, щоб отримати як додаткову точність,
якщо це те, що ви говорите.
>> АУДИТОРІЯ: Отже, у яких випадках ви використовуєте круглі, то?
Ден Бредлі: Так в цьому випадку, якщо ви хочете, скажімо, числа
центів з $ 1,25, ви б помножити на 100, круглий, отримаємо
125, і залишити все як, що, як цента, на відміну від намагаєтеся
перетворити його назад в долари і центи.
LEXI Росс: О, так, так, звичайно.
АУДИТОРІЯ: Навіщо вам потрібно округлити, що [нерозбірливо]?
Ден Бредлі: Так що якщо ви помножте його на 100, а потім
відразу ж перетворити його в ціле число, яке більше
корисній формі, що, коли ви маєте справу з
неточностей, вірно?
Таким чином, це може бути 124.999999, і тому, якщо ви потім перетворити це в
ціле число, він просто падає все геть це нижче
десяткового знака.
АУДИТОРІЯ: Так вона буде давати вам [нерозбірливо].
Ден Бредлі: Точно, замість 125, який є
Чому ви хочете, щоб закруглити.
>> АУДИТОРІЯ: Вибачте, не могли б ви повторити те, що ви сказали,
повинні робити, а не те, що ви не повинні робити?
Ден Бредлі: Добре.
Так що ви повинні зробити, якщо ви починаєте з 1,25, помножимо
це на 100, а потім навколо, що ціле число, що 125 або
124.9999, і отримаємо, що до найближчого цілого числа.
АУДИТОРІЯ: Так що якщо ви навколо, що ставить його
до найближчого цілого числа?
Ден Бредлі: Так.
АУДИТОРІЯ: Чи є спосіб обмежити, якщо ви попросите поплавком
буде вводиться, чи є спосіб обмежити кількість десяткових
місця, які ви можете ввести поплавок?
LEXI Росс: Не використовується реалізації CS50 автора.
Я маю на увазі, ви можете розраховувати, наскільки великий вхід дається
користувачів, але це зажадає впровадження нових
з GetFloat, і тому вам не потрібно турбуватися про це.
Ден Бредлі: Так що, якщо вони, скажімо, вхідний 1,256, ви можете просто
використовувати 1,25, або ви могли б зробити 1,26.
У будь-якому випадку, я думаю, що здійснення говорить, що ви можете -
АУДИТОРІЯ: ви можете просто його навколо, щоб -
Ден Бредлі: все, що хоче, та тих пір, поки ви
свого роду округлення.
Небудь ще?
Не повинно бути близько округлення.
LEXI Росс: Так?
>> АУДИТОРІЯ: Якщо ми хочемо, щоб перевірити, якщо стиль нашої
Код є прийнятним або кращий стиль
що це може бути, в тому, що такі речі ми будемо виховувати в
розділ, або в офісі годин, або в тому, що річ
можна і по пошті приватним на речі, на обговорення, а потім
звернутися за порадою по?
LEXI Росс: ми не знаємо, в робочий час або на CS50
Обговоріть, ми не будемо насправді клас вашого р набором заздалегідь
за стилем, але я думаю, що, ймовірно, найкорисніший
що ви могли б зробити, щоб подивитися на приклади, і ви
повинні бути в змозі виявити, що в розділ коду, який повинен бути
поширюватися в Інтернеті, а також лекції слайди, є
повинні бути прикладами коду.
Але якщо у вас є окремі питання про певне
Стиль питання, безумовно, не соромтеся запитувати про те, що CS50
Обговорити та офісні годинники, чи на своєму власному часі.
Але якщо це більш загальний погляд на мого коду, найкраще
вид використання прикладів і спробувати відповідати вашим кодом до цього.
І я вважаю, що стиль керівництва на -
Ден Бредлі: Там стилю керівництва.
Стиль керівництва є дивним.
Вона вчить вас все, що вам потрібно, і воно охоплює досить
ступеня кожен Приміром, відомих людині, або принаймні мені не відомо.
>> Небудь ще?
Добре.
Круто, хлопці.
LEXI РОСС: Майте великий день.
Ден Бредлі: Спасибі, що прийшли.