LUCAS FREITAS: OK, предполагам сега сме на живо. Добре дошли в CS50 Supersection. Ние сме малко удобни. Моето име е Lucas Freitas. Аз съм един CS50 Head TFS. Това е Лорън. LAUREN CARVALHO: Здравейте, аз съм Лорън. Аз също съм началник TF за CS50. LUCAS FREITAS: Днес ние просто ще да направи преглед на това, което всички вие момчета са се научили в една седмица, надявам се да ви дам момчета добър смисъл на това, което трябва да знаете, за проблем зададете една. Само няколко съобщения. На първо място, работно време. Работно време се случват от понеделник до четвъртък в различни къщи в Annenberg всеки ден. Те са един много добър ресурс за вас момчета да дойдат и да задават въпроси, и говори с TFS, и дори размяна идеи с други ученици. Така че не забравяйте да използвате този ресурс във ваша полза. Второто нещо, което е CS50 Appliance. За последен [недоловим] вие не трябва да всъщност имат един уред. Вие току-що е направил всичко в вашия персонален компютър. Но за този проблем, всъщност трябва да има виртуална машина, така че да бъде забравяйте да изтеглите CS50 Appliance и го изправи. И третото нещо е да сте сигурни, за да начало проблема зададете ASAP само защото това е много по-лесно да се намери помогне, когато сте в началото на седмицата. Тъй като хората са склонни да чакат, докато последната секунда, за да започне набор проблем, и след това да отидете на работното време, а има още много хора. Къде, ако отидете в понеделник, че ще , за да видите, че можете да говорите с TFS почти за цялата нощ, и те ще бъдат повече от радваме да ви помогне. LAUREN CARVALHO: Мога ли само да спре ви само за една секунда? Дали всеки е в състояние да изтеглите на CS50 Appliance? Са се опитали хората? LUCAS FREITAS: За да изтеглите чрез начин, можете да получите инструкции при cs50.net/appliance. LAUREN CARVALHO: Точно така. И тя не отнеме малко време за нашия сис админите да ви да получат лиценз ключ, така че се регистрирате за безплатен пробен период първия. По този начин вие ще го има за 30 дни, и след това изчакайте за вашия лицензионен ключ която трябва да му се даде към вас за една година. LUCAS FREITAS: На първо място, нека да поговорим малко за CS50 уреда. The CS50 Appliance всъщност е виртуална машина, която ти започваш да се се движи в собствения си компютър, който е основно работи на друг компютър вътре в собствения си компютър. Което е много готино. И всъщност това е използван навсякъде. Хората, които да тек би знаят, че това се използва през цялото време. вие? Може да има няколко компютъра в едно устройство. Нека наистина да разгледаме в уреда. Когато отидете на уреда след регистриране, ти започваш да се наложи да сложи си име и влезте в Харвард така че можем да получим всичко, което регистрирани. Вие ще видите основно само една тапети, а след това Home и Trash, и след това тези малки икони. Тези три икони са всъщност най-много важни неща, които можете да имате в Вашата техника. Първият от тях е Gedit, което е текст редактор, точно като Notepad или като всякакъв вид на текстов редактор. Това е просто нещо, което използваме, за да напишете код и след това да правя неща с него. Второто нещо, което ние имаме тук е Chrome. Така че, ако ви се наложи да използвате интернет в уреда, това е това, което можете да използвате. И третото нещо е терминал, който всъщност е много сладък. Хората обикновено са вид на уплашени от терминала, защото това е този много старомодна молба, в която Просто въведете основно всичко с клавиатурата. Не е много на взаимодействие с мишката. Но всъщност терминал прави много добри неща. На първо място, нека просто да мине през някои команди, които можете може да се използва в терминала. LAUREN CARVALHO: И не се колебайте да се спре нас, ако имате някакви въпроси. LUCAS FREITAS: Да. Така че първата команда, която имаме за терминала е ли. LS същество означава списък всичко, всичко, файловете и всички директори, че имам на мястото, че съм. Така че, ако го направя ли тук, аз отивам да видя че имам някои директории. Имам плот, файлове за изтегляне, трупите, както и VHOSTs. Тези, които са в синьо, защото те са всички директории. След това имате някои други файлове. Вие имате като здравей и hello.c, които са само на файлове, и те са в различни цветове. Така че това е една много важна команда само можете да видите какви са файловете и директории, които имате в директорията, която сте в в терминала. Когато видите jharvard @ уред и След това малкият символ там, тилда, това означава само, че това е директория, която сте в момента. LAUREN CARVALHO: Така пише ли е почти като кликнете върху папката че е точно там в списъка, в това показва, всички на съдържанието, което сте в рамките на тази папка. ПУБЛИКАТА: Има ли текст след hello.c? LAUREN CARVALHO: О, не можеш се види, че, тъй като това е синьо. LUCAS FREITAS: Той казва, трупи и VHOSTs. LAUREN CARVALHO: Това са само на други папки. Съжалявам, това е наистина трудно да се види. Може би, ако ние изключи светлините? Колтън, искаш ли да се опита да намерите ключа за лампата? Съжалявам за това. Аз не мисля за това. LUCAS FREITAS: Но това е в общи линии - Да, ако можеш - LAUREN CARVALHO: Zoom във вашия екран. LUCAS FREITAS: Аз не правя имат тази функция. LAUREN CARVALHO: [недоловим]. OK. Е, там е просто един много естествен светлина в тази стая, както добре. LUCAS FREITAS: Нека просто да се предположи, че има две други директории там. LAUREN CARVALHO: Просто да се има с нас. Това е единствената част, че ще се търсят в терминала. LUCAS FREITAS: Следващата команда е в общи линии може би искате да организирате вашите файлове - например, всички ваши файлове C в едно указател-но вие не разполагате с указател само за C файлове все още. По принцип можете да създадете директория използване на терминал, както и, което е същото като щракнете с десния бутон и казваше New Folder. Командата се направи директория, която е защитен режим, така че основно "правят" и "Директория." И тогава можете да поставите името на директорията. Да речем, че аз исках да се нарича, Аз не знам, нека да кажем, pset1 Doing това, аз току-що създадената директория. Нека просто да се провери дали е там. Така че, ако го направя ли, сега виждам, трупи, и тогава pset1, и след това VHOSTs. Така че аз имам новата директория там. И тогава, след като имате нова директория, Може би искате да се движите в нея, така че следващата команда този диск, които просто същество означава, отидете на определена директория. Така че, ако искате да отидете на pset1, Мога само да направя CD pset1. LAUREN CARVALHO: CD щандове за промяна директория, [недоловим] в състояние да не забравяйте, че. LUCAS FREITAS: И сега виждате, че вместо просто като jharvard уред, аз jharvard уред, и след това pset1, защото това е, показващ ми къде съм в този компютър. Сега, ако искам да се върнете към директория, която е била преди това, аз може да направи CD точка точка, което просто означава, отидете до директорията, която бях преди, като родител на това директорията, в общи линии. И сега виждам, че съм обратно към jharvard. Следващото нещо, което аз мога да го направя е RM, които е премахване на файл. Например, нека първо направим ли за да видите какво имам тук. Имам здравей и hello.c. Да кажем, че искам да ги премахнете. Мога да го направя RM здравей. Тя ще каже "премахване на обикновен файл 'Здравей'? "И аз казвам" да ". И сега, ако аз направи ли, виждам, че това е вече не е там. Ако се опитате да използвате RM за директорията, все пак, това не се случва да ти позволя да направиш нищо. Той ще каже, ей, вие Не може да изтриете директория. Така че ние имаме този друг дойде нарича RMDIR, които просто същество означава премахнете директория. I може, например, премахване pset1. И ако го направя ли, аз не правя го има вече. Всякакви въпроси за това? Не? Да? ПУБЛИКАТА: Важно ли е, че ви оставя интервал след - всеки път, когато започнете да пишете нещо? LUCAS FREITAS: Да. Ако го направя искал CD и директорията, Аз трябва да сложите интервал. Какво пространство говориш? LAUREN CARVALHO: Пространството между CD и [недоловим]. LUCAS FREITAS: Да, ще трябва да постави пространства, защото CD е команда, а след това на следващия низ че Вид е в основата на указателя. Така че това е като един аргумент. Да? ПУБЛИКАТА: Когато ви списък, всички тези, са различни директории, нали? LUCAS FREITAS: Да, те са в указателя. ПУБЛИКАТА: Какво е разликите сред директории? LUCAS FREITAS: Те са просто различни папки. Directory е папка във вашия компютър. ПУБЛИКАТА: Open папка. LUCAS FREITAS: Да, това е просто една отворена папка. LAUREN Карвальо: Над тук, онези, които са в синьо са действителните директории, които можете да получите в и след това вижте един куп неща, които са в рамките на това, което е жалко защото не може действително да прочетете такива в синьо. И тези в бяло са само файлове , които са в рамките на текущата директория. LUCAS Freitas: Значи директории са папки. Другите такива са файлове. ПУБЛИКАТА: Каква е командата да го възстановите или да го изчистите? LUCAS FREITAS: За да изчистите? LAUREN CARVALHO: За да изчистите? LUCAS FREITAS: Мисля, че това е "ясно." Да. Така че можете просто да напишете ясно дали екрана е твърде разхвърлян. Някакви други въпроси? И вие ще научите куп други команди просто естествено по време на семестър, защото те са много полезни. Така че сега нека поговорим за съставяне. Ние говорихме за pseudocode и изходния код и обектния код. И има много кодове, а може би вие сте объркани за това. Нека поговорим малко за това, което се случва, когато сте написването на програмата, и вие да го компилирате, и то става изпълним файл. Това са всички думи, че вие вероятно сте чували, а може би и вие не сте наистина сигурен какво се случва. Да кажем, например, че искам да Напишете програма, която се казва "здравей". The първото нещо, което идва в ума си е някак си се опита да се мисли за това как сте Ще направим това в ума си, и Вероятно си мислите на английски или някакъв друг език, както и естествено език, вероятно. И тогава си мислиш, добре, ако искам да, например, напишете програма, която казва "здравей", бих стартиране на програма, Аз ще отпечата здравей, и тогава аз ще спиране на програмата. Това е pseudocode. Това е просто същество, което се опитвате да излезе с поредица от събития че ти започваш да се направи, за да бъде може да се напише програма. След това имате изходния код, и изходния код не трябва да специално е в C. Говорим за изходния код в C, защото това е на езика, което научаваме, но разбира се код може да бъде почти всеки език за програмиране, който имате. По-късно през семестъра, ти започваш да учат други езици. Това също е изходен код. Например, ето, това е моят източник код, а след това аз съм включително библиотека, а след това започнете Основната, и след това да печатам. И Лора ще поговорим малко малко за всичко това. Така че това е най-изходния код. И това, което е кодът на обект? Обектът е един куп нули и такива, в общи линии. Какво се случва, е, че първоначално трябва pseudocode, което е всичко на английски. И искам да кажа, вие го разбирате. Вероятно вашите приятели да разберат него, и повечето хора биха разбирам идеята. Но компютрите са наистина тъпи, и те не разбирам английски, така че да превежда, че в нещо, обикновено се превежда в някои език за програмиране. И вие можете да се сетя за по програмиране език като нещо като език да съобщите на Вашия компютър как да се говори и да се разбере. Вие сте в основата писането на нещо в език, който и на двама ви и ви компютър разбирам. Това е сорс кода. Така става форма pseudocode към източник код, той е до вас. Това е основно правиш вашата програма. Но проблемът е, че Компютърът не дори разбиране на езика за програмиране. Тя не разбира изходния код на всички. То всъщност само разбира, нули и единици. Така че ние имаме това много магия нещо, наречено компилатор, който основно е ще се нарича източника, който пише на език, който и вие, и компютърът ви говоря, и сега си ще преобрази, че в нули и единици. Така че основно това, което прави, е съставител той получава изходния код, в този случай C, това ще я превърне в нули и такива, че компютърът разбира и може да направи изпълним файл от него. Това прави ли смисъл? Можете просто да мисля за компилатора като някакъв преводач, който е ви помага да се обясни на компютъра точно това, което е трябвало да се направи. Но как мога да компилирате. Нека да се върнем към уред, и нека да кажа, че аз правя тази програма. Първо аз отивам да се създаде директория тук, и аз отивам да го нарека "Практика". Сега отивам да се движите до директорията, така че CD практика. Сега съм вътре практика. Сега искам да започна Gedit, И така, как мога да направя това? Аз може или да кликнете тук, или мога просто буквално тип "Gedit," и то се случва да се отвори за мен. Сега отивам да напишете програмата си, така че точно това, което съм написал в слайда. Аз съм за обявяване на библиотека. Правя Int основни, невалидна. И сега правя ФОРМАТ, здравей. Сега отивам да спаси това. Нека да го приложат на практика, и Отивам да се обадя на този hello.c. Така че сега, че е спасен. Ако искам да го компилирате, аз всъщност може да го направи на две различни места. Аз нито мога да го направя в терминален прозорец, така че този голям, или можете да използвате Gedit, че всъщност има терминален прозорец, точно тук. Така че можете много удобно просто правя кода си, а след това можете просто да напишете каквото и тук, и се опитайте да го компилирате. И така, как мога да компилирате код? Най-лесният начин, по който ние имаме, е чрез използване на направи, което е функция, която е основно ще компилирате кода си. Ти просто трябва да кажа здравей направи, така че "Марка" и името на програмата. Oops. Това е неловко. LAUREN CARVALHO: Можете ли да [недоловим]? LUCAS FREITAS: Съжалявам. Аз не го запазете в прав директория. Хайде да практикуват, и сега го запишете като hello.c. Съжалявам. Сега е спасен. Позволете ми само да направя ли и да бъде уверете, че тя е тук. ОК, сега тя е тук. Така че сега, ако го направя направи здравей, той плюе на много неща, но след това той просто дава ми още една линия за терминала, който означава, че е била успешна. Така че сега, ако аз направя ли отново, аз всъщност виж този файл в зелено, което е изпълним файл. И тогава, ако искам да го изпълним, всички, които Аз трябва да направите, е точка наклонена черта здравей. Това ще да кажа здрасти точно тук, така че това е точно това, което аз съм го моли да. Има още един начин на съставяне, което е с помощта трясък. Звъня е само компилатор, което имаме, и това е малко по-многословен да го компилирате. Но тя работи също толкова добре. Така че, ако го направя трясък, а след това-о, а след това името, което аз искам да дам на изпълнимия файл, така че нека да кажем, "Здравей". И след това файла, който аз искам да съставят, hello.c. То също ще се съберат. И вие имате файла тук, и Просто не мога да го изпълни, както добре. Така че и двете от тях работят. Това прави ли смисъл? Някакви въпроси? ПУБЛИКАТА: Можете ли да я увеличите след малко? LUCAS FREITAS: Моля? ПУБЛИКАТА: Zoom в? LAUREN CARVALHO: Мисля, че ти може просто да командва плюс. LUCAS FREITAS: Заповядай какво? LAUREN CARVALHO: Command плюс. LUCAS FREITAS: Не. LAUREN CARVALHO: О, това не е няма да работи, защото - това е, защото ние настроите резолюцията за това нещо. LUCAS FREITAS: Аз не правя мисля, че можем да я увеличите инча Да, ние не можем да я увеличите. Имате ли друг въпрос? Извинете. ПУБЛИКАТА: Можете ли да повторите трясък? LUCAS FREITAS: The звън? Звъня е същото нещо като марка, но разликата е, че първо аз ще да пиша трясък, който е командата, тогава аз ще направя -0, всичко, което е точно това, което ние ще се научите по-късно като знаме. Така че, просто мисля, че винаги трябва да сложите-о. И след това на първо място, ти започваш да се постави името на изпълнимия файл, основно на файла, който сте ще създадем. Така че мога да кажа, например, hello2 и след това файла, който аз искам да се съберат, който е. в файла. Така че това е hello.c. Това прави ли смисъл? Публика: Здравейте какво? Какво е това? LUCAS FREITAS: hello.c. И ако мога да го компилирате, и ако Аз ли, аз също имам hello2, че аз просто компилиран. И ако се опитам да го изпълним, това ще правя точно същото нещо като здравей, просто отпечатате здравей. ПУБЛИКАТА: Как така за марката можете да сложите hello.c след това? LUCAS FREITAS: В грим, можете не трябва да се постави. век. В марка, можете просто да кажа на името на програмата. Не е нужно да се каже. Век. Но за трясък, трябва. Аудитория: С трясък правиш също Трябва да добавите [недоловим] LAUREN CARVALHO: Да. Така че, вие също трябва да библиотека. LUCAS FREITAS: Да, това е нещо, ние ще използваме по-късно. Това се нарича свързване, и аз мисля, че ние сме Ще говорим за това по-късно. Друг въпрос? Публика: Да си сложиш точка наклонена черта трясък? LUCAS FREITAS: Не. Черта The точка е просто да отворите изпълнимия файл. Така трясък, просто напишете "трясък", и след това, ако искате да отворите изпълним файл, който току-що съставен, след това можете да Дот наклонена черта и името. Това прави ли смисъл? ПУБЛИКАТА: Ако ви се налага да просто промяна [Недоловим], за да здравей свят, нали трябва да го компилирате? LUCAS FREITAS: Да. ако искам да кажа, например, "здравей там ", мога само да го спаси сега, и аз просто го компилирате отново. Така че нека да ми направиш една марка здравей. И ако го направя, здравей, това ще кажеш "здравей". Има смисъл? Някакви други въпроси? Публика: Трябва ли да се включи стандартна I / O, за да координира работата? LUCAS FREITAS: Да. Стандартният I / O е основно библиотеката, която има изпълнение за ФОРМАТ. Така че това нещо точно на топ включва stdio. Това е включено библиотека, която основно има куп различни инструменти, които можете да използвате. един? От тях е ФОРМАТ че е функция която основно отпечатъци съобщения на екрана. Някакви други въпроси? Не? OK. Така че сега, нека да говорим за - LAUREN CARVALHO: Нека просто отидете на водача на стил. Искате ли да го намерите тук? LUCAS FREITAS: Така че ние ще да се говори за стил. LAUREN CARVALHO: О, David не завърши. OK. Защо да не се върнем към стил в самия край? Това всъщност е актуализиран докато говорим. LUCAS FREITAS: Да. Нека да отстъпи мястото си на Давид, за да завърши това. LAUREN CARVALHO: Can ние превключите всъщност? Така че аз се надявам, всеки е бил наслаждавайки Scratch. За съжаление, това е време, за да се движат далеч от това - за съжаление, че е време да се премине от тези красиви програмни блокове към C. Но за щастие, всичко на програмиране изгражда, че сте работи с по Scratch са директно да превежда C, и ние сме ще започне да се запознаят с някои от тях точно сега. Нека първо поговорим за условията в булеви изрази. Това работи на резервната захранване от батерията. LUCAS FREITAS: Как е че не работи? OK. Отиваш там, аз отивам за да получите най - LAUREN CARVALHO: Така че условията са важно, защото те ни позволяват да въведат логика в нашите програми. Ето един пример на състояние в рамките на една програма C. Нека отбележим, как това - Така че това условие блок точно тук, това изявление ФОРМАТ няма да изпълни освен ако състояние в рамките на скоби, п-голяма от 0, дава за вярно. Сега, всички условия е в рамките твърдения са булеви изрази, което означава, че са само две възможности. Те биха могли да се оцени или да е вярно, или те може да се оцени като невярна. Така че тук, така че това има смисъл, нали? п по-голяма от 0, означава, че е положителен номер, което означава, че тя ще се отпечата навън "ти избра положително число." Има много булеви изрази която може да образува състоянието с изявление първоначален. Ние имаме по-малко, отколкото. Това е по-малко от или равно на. Това е просто смешно [недоловим]. Ако искате ФОРМАТ да се случи, ако това е по-голяма от или равна на 0, тогава бихте избрали това. Така равен просто добавя полето след толкова по-голяма, отколкото знак. Равно равен, която е различна от само един знак за равенство, равен равен всъщност означава, че каквото и да е на лявата страна на това е същото като това, което е от дясната страна на тази където един знак за равенство е това? Какво е само един знак за равенство? Задание. LUCAS FREITAS: Кой каза това? Това бонбони? О, не. Извинете. Извинете. Можете както да получите бонбони. О, OK! Трима души получават бонбони! LAUREN CARVALHO: Така че това едно право тук е операторът на взрив, предхождащ знака за равенство, така че това е не е равно на. Така че, ако това е в рамките на моето състояние, тялото на състоянието ще изпълни само ако каквото и в ляво не е същото като това, което е в дясно. Аз също може да има само удивителен знак. Всъщност ние ще видим в игрален плъзга как ще се използва. LUCAS FREITAS: Имате ли въпроси? Не? LAUREN CARVALHO: Ние можем да комбинираме тези Булеви изрази, за да строят повече сложни условни конструкции. Така че тук, ако каквото и да е в ляво страна на двойни линии или каквото и да е от дясната страна на двойните барове оценява да е вярно, След това ние ще разпечатате невалиден. И след това тук, ако каквито и да е от лявата страна на двете амперсанди и каквито и да било относно правото страна на две амперсанди дава за вярно, тогава ние ще разпечатате валиден. Двойните барове се наричат ​​логическото OR оператор двойните амперсанди са нарича логическо И оператора. Да? ПУБЛИКАТА: Прави ли тези, които просто малки букви l'S? LAUREN CARVALHO: Не. Те са в действителност - Знаете ли, че враждебната реакция, като над ключа Върни? Виждаш ли това? LUCAS FREITAS: Това всъщност е бар. LAUREN CARVALHO: Това е всъщност само на две чертички. ПУБЛИКАТА: Можете ли да използвате равен еднакъв за струни? LUCAS FREITAS: Не. Отиваме, за да научите по-късно нещо за това. LAUREN CARVALHO: Има една функция , които можете да използвате. Но вие не трябва да се се притесняват, че просто все още. Какво става, ако дам тази програма номер 5? Какво ще отпечата? ПУБЛИКАТА: [недоловим] валиден. LAUREN CARVALHO: Валиден? Да. Аз не знам кой има това. [Смях] LAUREN CARVALHO: Това е вид страшно [недоловим]. ПУБЛИКАТА: Така че двойно и, това просто означава, и? LAUREN CARVALHO: Да. Така че номер 5 е едновременно по-голяма от 0 и по-малко от 100. ПУБЛИКАТА: Защо да е един? LAUREN CARVALHO: Един амперсанд е всъщност нещо по-различно, и това е оператор на побитови, които ти ще научете повече за по-късно. Но това е нещо, което наистина работи с битовете на определен брой. LUCAS FREITAS: Просто мисля, че те не трябва да се притеснявате за това за сега. LAUREN CARVALHO: Мисля, че това е може би идва следващата седмица. LUCAS FREITAS: Някакви други въпроси? Не? LAUREN CARVALHO: Значи сме виждали, че тя може да блокира самостоятелно, но може да също така да се свърже с друго и блок. Така в този случай, ако п е по-голямо от 0, отиваме да разпечатате "Вие качват положително число. "друго, което означава, ако е 0, или ако това е по-малко от 0, отиваме да отпечатате, "Избрали сте отрицателно число." Интересното тук е, че тези , са изключение от всеки друг. Там никога няма да бъде един случай в който това и този може едновременно да отпечатате. Сигурен съм, че сте работили с / иначе, ако кутия в Scratch, така че това трябва да бъде доста познато. Да? ПУБЛИКАТА: Имаме ли нужда от пространството между Int н равнява тогава GetInt пространство в ако изявление? Както ние използваме линия [недоловим] LAUREN CARVALHO: О, пространството тук? ПУБЛИКАТА: Като това, но Вие се удвои пространство. Не, отиде. Качете се. LUCAS FREITAS: Just линията? Публика: Да. LUCAS FREITAS: Just празния ред? Публика: Да. LAUREN CARVALHO: Празен ред? Не. Това е просто нещо, стилистично. LUCAS FREITAS: Това е точно като понякога просто пропуснете някои линии, така че кодът не прилича огромен блок от текст. LAUREN CARVALHO: Мисля, че това, което се е случило беше, че имахме коментар тук, но аз я извади, така че вие ​​ще трябва да се мисли за кода по-скоро отколкото просто да прочетете моя коментар. Като цяло, отстояние не наистина ще повлияе на начина, по който вашата програма работи. Това е по-скоро нещо стилистично. И когато имаме ръководство стил осъвременяване и готов да отида до края на supersection, ние ще говорим за това повече. Нещо не е наред с тази програма, нали? Тъй като 0 не е наистина отрицателно число. Така че нека да видим дали можем да поправим това. Вероятно можете да си представите с това се казва, нали? Ако п е по-голямо от 0, се печата, "Ти качват положително число. "Тогава друг ако н е по-малко от 0, "Избрал си отрицателно число. "друго", Избрал 0. " Сега интересното е, че това може да продължи вечно. Вие може да има, ако блок, иначе, ако блок, друг друго, ако блок, в противен случай, иначе, ако, иначе, ако друго, основно толкова дълго, колкото искате. И когато конструиран по този начин, всички те ще бъдат с изключение на всеки друг. Да? ПУБЛИКАТА: Така че, защо просто не използвате друг, ако вместо [недоловим]? LAUREN CARVALHO: В този случай, да, могли да използвате друг, ако, и би било абсолютно добре, защото на условия самите с изключение на всеки друг. Но ако условията не бяха изключителни един от друг, това би да ги принуди да се оцени както никога, ако това има смисъл. ПУБЛИКАТА: В този случай, бихме могли гнездо на второ, ако в първия случай? LAUREN CARVALHO: Ако - Какво искаш да кажеш? ПУБЛИКАТА: Ако двете условия не са взаимно изключващи се? LAUREN CARVALHO: Ако условията не са взаимно изключващи се? Но вие искате само един от тях да тичам? ПУБЛИКАТА: Искате просто ако вместо друго. LAUREN CARVALHO: Да. Там винаги ще бъде много начини, по които можете да направите това. Можете да ги определено гнездо. И вие ще видите в бъдеще слайд, който можете да имате няколко IFS, само един след друг. Но това е начин на логически организиране на потока от вашата програма. LUCAS FREITAS: А има и още един нещо, е, че те помолих за пускането ако и след това, ако друг. Това ще работи перфектно, но това е лошо дизайн защото в общи линии, ако провери първо дали и забележите, че броят им е по-голяма от 0, ви може просто да завърши програмата. Вие не трябва да се провери дали това е по-малко от 0, нали? Но ако го направите, ако, ако, че ще ходи да се провери и двете, а ако го направя, ако друго не е, то се случва да се провери дали е по-голяма от 0. Ако е така, това не се случва дори да потърсите при другите линии на кода. Значи в общи линии го проверява като два пъти ненужно, така че това е защо ние правите, ако друго, ако. Някакви други въпроси? ПУБЛИКАТА: Така функционалността на друго, ако е същото като Ако беше само, ако? LAUREN CARVALHO: Не. Вие всъщност ще видим в следващата ми плъзнете един пример, в който той може да да бъде различен. В този случай, това е почти същото. Така че тук, ние имаме пример за множествена ако отчети, и функционалност не е същото като че ли току-що каза, че ако друго, ако друго, ако друго. Нека просто да мисля за това, което ще отпечата , ако мога, въведете числото 95 в тази програма. ПУБЛИКАТА: [недоловим] LAUREN CARVALHO: А след това? ПУБЛИКАТА: [недоловим] LAUREN CARVALHO: Да. Така в този случай, тези условия са не се изключват взаимно един от друг. И тъй като нищо не пречи на това състояние от оценката, ако това един вече има, те са просто всички ще разпечатате. Е, как бих могъл да поправя това? ПУБЛИКАТА: друг IFS? LAUREN CARVALHO: Можете да използвате друг IFS. Можех да промените реда от тях, нали? Ако първото, което направих тази? Ами, всъщност, не. Това няма да работи за 95. LUCAS FREITAS: Не, само на ИС друго. LAUREN CARVALHO: The друго IFS би фиксиран това. Дали това се изясни объркването между IFS и друго IFS? ПУБЛИКАТА: Аз просто исках да ви попитам, ако ви се е възползвал от друго, ако това ще спре? LAUREN CARVALHO: Точно така. Така че това само първата една. Ако бях влязъл в брой 95, само че този ще са отпечатани, и никога не щеше да прогресира до друго. LUCAS FREITAS: Just вид мисля за него като ако това се случи, да го направя. В друго е като, ако не, проверете за това, и след това да го направя. Така че, като всички те са взаимно изключващи се. Вие не можете да получите в две пред тези. ПУБЛИКАТА: Можете ли да използвате логически И за тази ситуация? LAUREN CARVALHO: Да. Това е друг начин, по който бихме могли да са фиксирани този проблем. Ние може да са дефинирани варира, нали? Така че би могъл да каже, ако N е по-голямо от 90 и по-малко от - Е, предполагам, че това един не прави наистина значение, но тук бих могъл да кажа, ако п е по-голямо от 80 и по-малко от 90. По-голямо от 70, по-малко от 80. Това също би работил. [Смях] LUCAS FREITAS: Тя е уплашена. LAUREN CARVALHO: Не се страхувайте. LUCAS FREITAS: Това не е че ще бъде погрешно. Това е просто, че това е ненужно многословен. Както в областта на компютърните науки, трябва да да бъде толкова просто, колкото е възможно толкова дълго, колкото имате функционалността. Искате ли бонбони? Публика: Да не се нужда от него. LAUREN CARVALHO: Плашиш всички, Лукас. LUCAS FREITAS: Съжалявам. LAUREN CARVALHO: David също се споменава тези превключвате изявление в клас. Основно това, което се случва е ключа декларация отнема променлива. В този случай, ние сме като едно цяло число. Ако числото е едно, ние ще разпечатате, "Избрали сте една малка номер. "Ако числото е 1," Ти качват средно число. "Ако число е 3, "Избрали сте висока номер. "И аз също имаше случай по подразбиране тук, но това не е показване нагоре, което е твърде лошо. По принцип, това е просто друг синтаксис. Бихме могли да са приложили тази точна едно и също нещо, ако и друго, ако отчети. Но когато има много различни условия и много различен вариации на това, което искате да направите, за всеки вход, това е опция. Така че това е просто една добра синтаксис да знам. Да? ПУБЛИКАТА: Защо има не наклонена черта N в първия милион? LAUREN CARVALHO: За там? Няма по наклонена черта н там защото GetInt - ако се опитате това, тя ще ви дам този ред. Дай ми цяло число между 1 и 3. И ако сложа на реакция N, то би вземи ме на следващия ред, но аз просто Исках от тях да въведете цяло число веднага след дебелото черво. Можеше да сложи реакция н. Това не е голяма работа. Да? ПУБЛИКАТА: За този код, е тази При едно, е, че тъй като това е първият случай? Защото - LAUREN CARVALHO: Не, не, не. Така че това е ми даде цяло число между 1 и 3. Ако N е един, аз отпечатате това. Ако бях попитал за писма, мога да имам каза ми даде писмо между A и C. След това ще бъде случай A. ПУБЛИКАТА: [недоловим]. Случаят би просто [недоловим] LAUREN CARVALHO: Да, точно така. Да? ПУБЛИКАТА: Какво става, ако сте искали да имате повече от релационна израз? Така че, вместо да каже н е равно на 1, [недоловим] п е по-голям от 1 в първия случай? LAUREN CARVALHO: Всъщност, ако не го направя се определят някои от тези случаи, това би се извършва надолу. Така че, всъщност, може би това не е за какво ме молиш. LUCAS FREITAS: Мисля, че тя иска, ако делото е п-голяма от 0, дело по-малко от 0. LAUREN CARVALHO: Може би ключът декларация, която не е наистина това, което искате да се използва в този случай. LUCAS FREITAS: Отчетът за превключване е само за цена, така че можете да започнете проверка на стойността е като това или онова. Така че не може действително постави условия. ПУБЛИКАТА: Какво става, ако лицето видове с [недоловим]? LAUREN CARVALHO: Това щеше да е моя случай по подразбиране, което за съжаление не можете да видите. LUCAS FREITAS: [недоловим] да ги види. LAUREN CARVALHO: Всъщност, знаеш ли какво? Нека просто да отида да уча 50, и ще го направя просто се фокусирам върху препаратите върху проучване 50, защото това е просто досадно. Така че позволете ми всъщност отидете състояние. Това е просто ще отнеме малко повече време. Добре. Така че, съжалявам. Сега поне ще можем да видим всичко, без да го отреже. Добре. Така че, ако те поставят в 10, ние ще фалира тук, за да моя случай по подразбиране, и аз просто ще отпечата невалиден, защото аз ги помоли да въведете цяло число между 1 и 3. Някакви други въпроси? Да? Публика: Да кажем, че за един случай, случай три, да кажем, че искаш той да бъде през цялото едно и също нещо, така че да качват редица това не е среден брой. В този случай, би било излишно? Бихте ли просто смяна на текста в двете от тях, или ще има някаква съкращения? Има ли някакъв начин да се съчетаят [Недоловим]? LAUREN CARVALHO: Има начини да се да ги комбинирате, но вярвам, че можете само да комбинират съседни такива. Така че, ако аз не определят нищо за два случая, това би прилага за двата случая. О, ако аз не слагам нищо за случая един, това ще се прилага както При една и две. Ако в това има смисъл. ПУБЛИКАТА: Бихте ли повторили, че едно? LUCAS FREITAS: OK. Ако сте го направили основно, като имате едно и също нещо, но не поставяйте нищо тук, че ще бъде или за случай един или два случая, да направите това. Нали така? И тази почивка означава, че ако можете да получите в този случай, просто си тръгна. Така че това е, което означава, спирачката. Така че, ако аз просто направих това, и да погледнете, това е При едно, а ти просто ще го направя. Ако това беше случай две, тя също така би Просто дойде тук и да го направя. ПУБЛИКАТА: Но можете да го направите? Ако има нещо, за При две [недоловим] LAUREN CARVALHO: Аз не вярвам, можете да направите това. Не мисля, че можете да пропуснете наоколо. Можеш ли да направиш това, Роб? Не мисля. ПУБЛИКАТА: Значи само един номер може да отиде след случай, нали? Не може да има един случай, запетая, две? LUCAS FREITAS: Не, не можеш. Вие определено не мога. LAUREN CARVALHO: Искам да кажа, въпросът е Това е опция, а това не може поберат вашия случай употреба, така че след това можете ще използва, ако условията. ПУБЛИКАТА: Така че, защо би направил това? Ключът? LAUREN CARVALHO: Бих използвате тази Ако имате много определено - всъщност, Lucas, е сте блокиране. LUCAS FREITAS: О, съжалявам. LAUREN CARVALHO: Ако имате много определени поведения, които искате за всеки вход, това може да бъде малко по-стегнато от оформяне ако една справка за всяка една. ПУБЛИКАТА: Какво прави прекъсне кажа отново? LAUREN CARVALHO: Пробивът означава спре. Не забравяйте, че ако аз не са имали тази почивка тук, ние просто би паднал в следващия случай. LUCAS FREITAS: Break означава да се получи от отчета за ключ. Защото, ако е един, аз искам да отпечатате тази и се оставя. Аз не искам да се провери нещо друго. ПУБЛИКАТА: Вие не искате за да отпечатате нещо друго. LUCAS FREITAS: Да. Защото това е взаимно изключващи се. ПУБЛИКАТА: И прави това само процедира на следващия случай ако първия случай не е вярно? Или пък го тестваме всички случаи в същото време? LUCAS FREITAS: Не, проверки последователно. Последователно, да. Още един въпрос, тогава ние трябва да премине, така че ние може да покрие всичко. Да? ПУБЛИКАТА: Така че за случая, би могло да има направи нещо друго, освен само една? Може ли да му се даде обхват? LUCAS FREITAS: Не. LAUREN CARVALHO: Аз не мисля, че можете да му се даде обхват. LUCAS FREITAS: Вие не може да ви Не мога да му се даде обхват. ПУБЛИКАТА: Случаят е специфичен [Недоловим]. LUCAS FREITAS: Switch е вид ценности. Вие правите различни неща, в зависимост на стойност, определена стойност. Вие не може да направи кръг, не можеш правите нищо друго. Това е просто още един инструмент, за да се види. LAUREN CARVALHO: Повечето хора не използват превключите изявления много в CS50, но то е там. Добре. Така че следващото нещо, което ние ще говорим за е третичния оператор. Това е просто още един вид на условно. Основно това, което става тук, е, че съм питам за цяло число, и ако п е по-голяма от 100, аз отивам да разпечатате "Високо". Ако не е, аз отивам да разпечатате "ниско". Така че това, което тя прави е условието е Точно тук в скоби, а вие може да вид мисля за въпроса както Аз ви питам дали това е вярно или не. Ако това е вярно, аз ще направя това първо нещо, и ако това не е вярно, аз съм ще направя това второто нещо. Всякакви въпроси относно третичния оператор? LUCAS FREITAS: Просто искам бележка от David е, че всеки път, когато имате състояние - LAUREN CARVALHO: Предполагам, Давид гледане чрез потока на живо. LUCAS FREITAS: Той прави живот поток точно сега. Така че, когато имате състояние, вие сте Трябваше да сложи фигурни скоби, точно като имаме в превключвател изявление тук. Имаме фигурни скоби тук. За каквото и условия, вие сте Трябваше да се сложи това. LAUREN CARVALHO: Ще видите това в ръководството за стил. В действителност ние не разполагат с стил ръководство точно сега. Мисля, че Давид все още се работи. LUCAS FREITAS: Той каза, че това е просто работа сега. LAUREN CARVALHO: О, тя работи сега? OK. Така че очевидно тази година в стила ръководи, дори ако просто има една линия, ти трябва да ги поставим фигурни скоби инча Не е задължително трябва да за на функционалност на програмата. А може би просто трябва да си вземе почивка след изпълнение на условията и отиват директно ръководството за стил, за да изчистите някои от тези неща? LUCAS FREITAS: Да. Имате ли въпрос? ПУБЛИКАТА: Не, аз просто ще чакаме до ръководство за стил. ПУБЛИКАТА: Може ли да се върна на третичния оператор? LAUREN CARVALHO: трикомпонентни, да. LUCAS FREITAS: третичния оператор е основно, ако друго изявление, но вместо да се налага да има две линии на проверка на един, ако и тогава друго, просто трябва една линия. Така че основно, ако аз искам да дам един низ стойност от високо или ниско, и аз Искам да направя една висока, ако N е по-голямо от 100 или ниска, ако тя е по-малко, това, което мога да направя е това [недоловим] низ ще бъде, и тогава аз поиска програмата е N по-голяма от 100? Така че това е защо имам този израз в скоби и след това въпросителен знак. Питам, че е по-голяма от 100? Ако е така, това ще бъде висока. Ако не е, то ще бъде ниска. Така че основно това, което мисля, е да те питам въпрос, така че ще ви постави в скоби състоянието. След това ще ви постави въпросителен знак защото си го иска. И ако това е вярно, то ще бъде в първата стойност [недоловим] тук. Ако не е, аз отивам да се постави стойност, която е след дебелото черво. Има ли смисъл? Това е също нещо, което е като инструмент в C, но не е нужно да се специално го използвам. Но CS хора обикновено обичат, че защото тя просто спестява линии. LAUREN CARVALHO: Това е много елегантна. Той прави много в само едно изявление. ПУБЛИКАТА: Значи знака за процент е просто независимо от резултатите на предишния ред? LAUREN CARVALHO: О, съжалявам. Този знак за процент е всъщност контейнер за това е. В изявление ФОРМАТ, имаш това низ тук, което е какво ще се разпечатате, но не може просто да сложи това е там. В противен случай той ще отпечата посочват те буквално. Така че ние поставяме на сто тук, за да се запази това място държани за каквото и идва след запетаята. Така че за низ, имаш сто ите. За цяло число, и процента. За плувка, процента е. Ще видите тези, тъй като ние виж повече примери. Но може би трябва да се говори за стил ръководство за известно време, сега че това е до. LUCAS FREITAS: Ако отидете на cs50.net/style, ти започваш да се види ръководство за стил. За проблемните комплекти, резултата си, За проблем комплект е съставен от обхват, което по същество означава, че ако сте направили всичко частите на проблем, определени или ако опит за нещо. Второто нещо е, коректност, която средства е вашата програма прави това, което го е трябвало да се прави, или го прави има грешки, или е не правят това, което това е трябвало да се направи. Третото нещо е дизайн, което означава, са ви изпълнението на настоящата добре, или са Използвате ли излишни изявления? Така например, ако искате да се повтаря номер 10 пъти, не пишеш за линия или просто се прави 10 пъти същото изявление, просто правиш копиране и поставяне. Така дизайн е за това. И най-накрая, имате стил. Style е точно като съдейки ако вашият код изглежда четима и вид на доста. Това просто означава, основно е вашият код се чете? Бихте някой друг, който е търсил са кода си да бъде в състояние да разберат какво го прави? Има ли коментари и други подобни? Нека да говорим за стила, който вие трябва да използвате. Първото нещо е коментари. Коментари са много важни за вашата код, защото понякога правиш вашата програма, а вие знаете точно какво което искате да направите, така че можете просто да започнете кодиране, просто напишете един куп C. Но ако някой друг търси се, че сте код, те няма да бъдат в състояние да го разбирам, защото те не знаят нещата, които са в главата ти, като на pesudocode, така че може би те ще имат трудно време, за да разберат какво кодът се прави. Така коментари са наистина полезно да се обясни на някой, който гледа вашия код какво прави, и Всъщност дори и за теб, те са много полезни. Като отидеш на по-трудни и трудни Psets, ти започваш да се види, че кодът става по-дълго, и тогава коментарите са наистина важно, така че не забравяйте това, което всеки част от програмата прави. За да поставите коментар, може просто да се направи наклонена черта наклонена черта и след това да напишете коментар. И цялата линия е част от коментар, и каквото и да напиша, това няма да бъде използва за вашия код. Това е основно като съставител се случва да се игнорира това. Това прави ли смисъл? ПУБЛИКАТА: Какво искаш да направя отново за да напишете коментар? LUCAS FREITAS: This? Наклонената черта наклонена черта? Всеки път, когато въведете наклонена черта, независимо е в тази линия не се случва да се счита за C. Да? ПУБЛИКАТА: Така след коментара, можете Просто въведете и започнете нов ред? LUCAS FREITAS: Да, точно така. LAUREN CARVALHO: черта на наклонена черта е за единични коментари линия. LUCAS FREITAS: Например, тук имаме - позволете ми да я увеличите - например, тук съм за обявяване на плувка, но може би ако просто сложи този в кода си, като вие нямате представа какво се прави, като всъщност някой, който гледа този код ще бъде, подобно на това, което на дяволите става? Ако сложите един коментар казва "конвертирате Fahrenheit да Целзий, го прави много по- повече смисъл. Ти си, като, ОК, ти си правите конвертиране. Това прави ли смисъл? Така че това е просто нещо, което помага на хората готов си код, а също и да направи бъде в състояние да организира код ви по-добре. Второто нещо е, че можете да направите коментари по няколко реда, така че да има едно коментира за един куп линии. Вместо да се налага да се сложи черта наклонена черта, коментарите на първа линия, наклонена черта наклонена черта, на втория ред, и така нататък, може да се използва наклонена черта звезда. Начинът, по който го направи е, че за първа линия на коментара, ти си ще направя наклонена черта звезда звезда, така че просто ей така. Точно като тук имаме началото на програма, вие обикновено слагам кой си са, какво прави тази програма, и подобни неща. Това е нещо като удар с глава на за програмата. Отново, това не е нещо, което компилатор ще се грижи за това, но това е важно, за да знаят какво е това програма прави или за други хора да знам какво вашата програма се прави. Така че можете да наклонена черта звезда звезда, а след това последния ред ти започваш да се направи звезда наклонена черта, за да може да се затвори този коментар. Така че основно за всички други линии, можете просто да напишете каквото и да, и това всичко това ще бъде игнориран. И също така, просто като стил, ще видите, че всяка от линиите има звезда, и всички звездите са изравнени. Това са важни неща, така че кодът изглежда доста. Звучи добре? Сега, условия. Какво Давид казваше, че ние трябва да действително пуснати в тези слайдове, е, че , когато имате каквито и да било изявления, ако или каквато и да е условия, Вие трябва да използвате фигурни скоби за да покаже, че това е, което ще се случи , когато имате това заболяване. Технически, когато имате състояние и след това на следващия ред е само един линия, не са технически да се сложи фигурните скоби. По принцип компилаторът ще разберат то така или иначе като имплицитно. Но за CS50, молим ви, момчета, за да поставите фигурните скоби, просто така, че вашият код е по-организирана и по-разбираемо. Защото този код става по-дълга, ако не разполагат с фигурни скоби и такива. Става напечено. LAUREN CARVALHO: Това е точно какво David просто посочи, в предишните ми пързалки. Това определено работи без къдравите тиранти, но за стилистични причини отиваме да попитам, че можете да поставите тези инча И когато започнат да текат style50, което е един вид на проверката 50 за стил, тя ще ви напомни да направя това. LUCAS FREITAS: И още нещо е не забравяйте да поставите фигурните скоби, заедно във всяка линия. Така че и да правите, например, l'ите. Отиди до следващия ред, отворете къдрава скоба, след това да отидете до следващия ред. Отстъп, което е четири пространства. Тогава ти пиша каквото и да, после още линия, и затворете фигурна скоба. Така че бъдете сигурни, че и двете тези, къдрава скоби са в различни линии. ПУБЛИКАТА: Така че, ако този код е имал като 10 друго IFS, това трябва да бъде 10 комплекта скоби? LUCAS FREITAS: Да, за всеки от тях. Да. Така че, ако, в противен случай, и така нататък. ПУБЛИКАТА: Можете ли не натиснете Tab да отстъп? LUCAS FREITAS: Ние ви молим момчета да се използват четири пространства. Някои текстови редактори раздела превод като четири пространства автоматично. Gedit не стане, така че трябва да направи пространство пространство пространство пространство. Това е също нещо, че някои програмисти правят само разделите, някои програмисти правят само четири места, и някои други хора, дори и да направят два или три места. Това е просто, че тук ние питате вие момчета да правят четири пространства. ПУБЛИКАТА: Има почти определено Трябва да има начин за Gedit да автоматично [недоловим]. Като не [недоловим] прави това. LUCAS FREITAS: Да. Мисля, че можете да отидете на Settings. ПУБЛИКАТА: Това вече прави всичко това. LUCAS FREITAS: Това вече го прави? OK. Така че просто не забравяйте, че вие има четири места. Публика: Трябва ли да слагам къдрава скоби в група за контури, както и? LUCAS FREITAS: Да. LAUREN CARVALHO: Всеки път, когато си капсулиране на блок от код, просто моля използвайте фигурни скоби. И преди да си мислиш, че ние сме просто е sticklers за това за нищо добро причина, ако вие трябва да излизат, за да получите тек стажове в големи фирми, те ще ви даде указания за оформяне, и те ще ви кажа, това е, което ви код трябва да изглежда така. И въпреки, че сте се научили да код, като това, може би във вашата стаж ще трябва да се направи нещо съвсем различно. Те се очаква да съответстват за техния стил. LUCAS FREITAS: И още едно нещо, което е че забелязвате ли как аз имам като X, пространство, по-малко, пространство, 0? Винаги, когато имате един оператор - тя може да бъде като плюс, минус, пъти, по-малко, по-голяма, каквото и оператор - трябва да сложите интервал в ляво и правото на оператора. LAUREN CARVALHO: Това са наречен двоични операнди. Просто се уверете, че винаги пространство вашите двоични операнди. LUCAS FREITAS: Това е не двоичен операнд. LAUREN CARVALHO: Това е защото отнема две. LUCAS FREITAS: О, да. OK, ключове. Първо, вие трябва да се види, че точно като в случай или друго изявление, че имате да постави фигурна скоба на отделен ред и под фигурна скоба тук. Забележете, че има едно пространство след включване, просто искал, ако и друго имахме един интервал между че и скобите. Така че трябва да се сложи това. И той няма място веднага след всяка на скобите или преди края на скобите. Така че, виждате ли, че това е всички заедно, и също така тук. Да? LAUREN CARVALHO: Мисля, че ние трябва да продължим напред. LUCAS FREITAS: Така че това е част от стил ръководство, което имате за CS50. Бъдете сигурни, за да отидете на cs50.net/style и да разгледаме това. Всички те са много важни за вашия стил на полувремето. Нека се върнем към изложението. LAUREN CARVALHO: Предпочитам просто използвайте style50. Ние просто ще отидем направо на панти. Добре. Така че нека да се върнем към съдържанието, сега че сме преминали през водача на стил. Loops, вие сте ги виждали в Scratch, както и ние ще говорим за тях в C. В за линия, има три проби се декларация за това в продължение на контур. Имаш си инициализация в който задавате вашите променливи. Имаш си състояние, които са проверка, за да се види дали нещо е вярно или невярно и дали контур трябва да продължи. И сте се погрижили си актуализация, която е актуализиране на променливи. Нека просто да хвърлим един бърз поглед към някои C код на това за цикъл в действие. Какво става е тук, в инициализация, ние сме настроена на 0. В състояние сме проверка дали е по-малко от 10. И в актуализацията сме Увеличаването аз. Така че това, което ще последва от това за цикъл? LUCAS FREITAS: Всъщност, на първо място, Мислите ли, знам какво съм + + е? ПУБЛИКАТА: Повишена с 1. LUCAS FREITAS: увеличава с 1, да. Така че това е едно и също нещо като правиш аз се равнява аз плюс един. И забележете, че ние не разполагат с пространство между I и + +. Така че вие ​​знаете какво ще направите? Може ли някой да ми каже? И може би да получа някои бонбони защото от това? ПУБЛИКАТА: [недоловим] LUCAS FREITAS: OK. [Недоловим] покажем на всички по-късно [недоловим]. Да, това ще покаже "Това е CS50 "10 пъти. LAUREN CARVALHO: Аз предполагам, че е в заглавието на слайда. LUCAS FREITAS: О, да. [Смях] LUCAS FREITAS: Това помага. LAUREN CARVALHO: Така че тези, са за бримки. Отиваме, за да видите още няколко примера на вериги за по-късно. Но нека наистина да погледнем на вторият вид цикъл ще се сблъскате в C, и тя се нарича примката време. В една линия, докато, вие сте просто имам състояние. Състоянието се проверяват в начало, а ако това условие дава за вярно, тогава кода в рамките на тялото на блока, докато ще се изпълни. И кода ще продължи да изпълни така, че докато състояние остава вярно. Ето един пример за една линия, докато в C. Отиваме при задаване на броя на 10 до започнем с това. Докато брой е по-голям от 0, ние ще продължим да отпечатате тази променлива тук. Отиваме да декрементира брой и след проверка на състоянието отново. Print, снижаване, проверка състоянието отново. Тук имаме един пример, който се отнася на вашия въпрос по-рано. Имахме процента те години, когато бяхме отпечатване на низ, и сега, че ние сме отпечатване на ПНА, ние имаме процента аз като наш контейнер вместо. Буквите всичко трябва да бъде доста интуитивен, е за струнен, аз за вътр. Така че, ако този код се изпълнява, трябва да броене 10-0, отпечатване всяко цяло число. LUCAS FREITAS: И вие можете да мислите за на сто, тъй като се чувства като празна пространство, и тогава вие поставяте това променлива тук в това празно пространство. Така например, тук ще имам само празно, и тогава аз съм пускането на брои точно там, на стойност на преброяването. Това прави ли смисъл? Може ли да се направи като ФОРМАТ и след това се цитира, брои ли се? Бихте, които работят? Публиката: Не. LUCAS FREITAS: Не, защото това ще всъщност отпечатате думата "брой" вместо отпечатването на стойността. Ето как можете да го отпечатате стойностите към променливата вместо само името на променливата. Някакви въпроси? ПУБЛИКАТА: Защо искате да използвате за като се противопоставя на време? LAUREN CARVALHO: Бих се използва за контур, ако знам точно колко итерации Искам си цикъл да се изпълнява. В този случай, това няма значение, защото, Искам да кажа, аз просто се опитвах да мисля за много проста Например за този слайд. Но да речем, че искате нещо да продължи да функционира, докато - LUCAS FREITAS: Например, вие сте пита за вход, докато лицето ти дава право входа. Така че, както докато входът не е OK, продължават да питат за него. Или като докато сте родители не дават ви пари, продължават да питат за него. [Смях] LAUREN CARVALHO: Ти не знаеш как много пъти, че ще трябва да го направя. LUCAS FREITAS: защото не знам колко пъти, че е Ще продължаваме. LAUREN CARVALHO: Но за линия, вие трябва да знаете как много пъти. Да? ПУБЛИКАТА: Само да уточним, процентът казва, че това е нещо, за да се се случи, най-I е за цяло число, и обратно наклонена N - LAUREN Карвальо: Средства? Кой знае какво означава наклонена черта N? Нова линия, да. Точно така. LUCAS FREITAS: Можете да мислите п като нов ред. LAUREN CARVALHO: Nice. Публика: Какъв е този брой пробив пробив [недоловим]? LUCAS FREITAS: Count минус минус е едно и също нещо като плюс плюс, но вместо да се увеличава, тя намалява с един. LAUREN CARVALHO: Всяко по- докато контур въпроси? Не? О, ние трябваше да сте пропуснали това. Това е задача, докато контур. Много подобен на линия, докато освен в този случай ние се провери състоянието след кода в тялото на контур изпълнява веднъж. Така че ние се изпълни кода първо без значение какво. Тогава ние се провери състоянието, изпълнява пак, ако условието е вярно. Вие ще се окажете с помощта на това, когато питаш за въвеждане от потребителя. Защото ти винаги ще трябва да попитам веднъж, и след това в зависимост от това, което приноса на потребителите е, може да се наложи да reprompt и да поиска отново и отново, ако входът не беше това, което ви очаква да бъде. ПУБЛИКАТА: Значи това е като форма за хората да попълват. LAUREN CARVALHO: Да, точно така. Ще откриете, мисля, че в много първата си PSET, ти започваш да се наложи да използвате контур е добре да се съберат принос от страна на потребителя. ПУБЛИКАТА: В зависимост от ситуацията, си, докато линии ще са склонни да работят повече често, отколкото по време на цикли, като от едно или нещо такова? LAUREN CARVALHO: Ако това е най-точни - LUCAS FREITAS: Те винаги трябва да работи точната сума на време, че искам тя да се изпълнява. Както ние използваме правя, докато, защото ние наистина Исках да се получи на входа най-малко веднъж. В докато цикли, понякога не искате да го изпълни на всички, ако това не е случай да се изпълни. Така че зависи от дизайна. Искам да кажа, че можете да направите, докато използване или а толкова дълго, колкото си код прави това това е трябвало да се направи. LAUREN CARVALHO: Но аз правя Мисля, че отговорът на вашия въпрос е вероятно да. Да кажем, че състоянието е невярна. В един от случаите той тече веднъж, и друг случай то би влязло нула пъти. Така че, да. Има ли още въпроси? Да? ПУБЛИКАТА: Може състоянието на контур бъде за линия по отношение на променлива, различна от [недоловим]. LAUREN CARVALHO: Да, тя може да бъде всичко. Вероятно за началото Psets, вие няма да се налага да се сблъскват с този случай, но Определено тя може да бъде всичко. LUCAS FREITAS: Мисля, че приключим тук. LAUREN CARVALHO: ли сме? Не? LUCAS FREITAS: Loops? Да. LAUREN CARVALHO: Ние не трябва да бъде. О, ние сме готови с вериги. OK. Всъщност, тъй като ние сме били говори така много, нека всъщност всичко се движите към study.cs50.net/conditions. И ти започваш да се движите надолу проблемите джаджа. Ами, всъщност, а хората стават това създаде, изследване CS50 е ще бъде инструмент, който ви TFS ще използвате, за да се подготви за раздели и че вие може да използвате, ако сте пропуснали секции. Тя ще съдържа куп слайдове, някои съвети и трикове за всеки тема, както и някои проблеми практика с решения. Защо не всички просто да разгледаме На този проблем точно тук. Съжалявам, че трябваше да напомни хората да носят лаптопи днес. Но ако не разполагате лаптоп, това е ОК. Можете просто да нахвърлям това надолу върху лист хартия или гледам през рамото на ближния си. Нека се опитаме и да напише програма, която подсказва на потребителя да направи предположение, на Средният брой деца на семейство единица в Съединените щати. Този брой е 2, между другото, като ви може да видите от тези примери. Искаме да разпечатате среден брой деца на семейство в САЩ, тогава ние Какво искате да направим? Искаме да събира вход от потребителя. И след това в зависимост от това, което на потребителя входът е, ти започваш да разпечатате Или това е правилно или това е неправилно. И първото нещо, че ще видите, ако щракнете върху малката стрелка в дъното на проблема приспособлението е място, за да нахвърлям някои pseudocode. Значи вие не сте програмиране все още. Ти просто да си идеи в ред. Някой иска ли да помогне на Lucas излезе с правото pseudocode за този проблем? LUCAS FREITAS: Какво е първото нещо, че ние вероятно ще трябва да направим тук? Какво мислите, че момчета? ПУБЛИКАТА: [недоловим] LUCAS FREITAS: Да, OK. Така че, за печат. Само кажи печат тази средна брой хора? OK. Print въпрос, нека да каже. След като отпечатате този въпрос, какво трябва да направя? ПУБЛИКАТА: Вземете вход. LUCAS FREITAS: Вземете вход. Нещо друго? ПУБЛИКАТА: Condition. LUCAS FREITAS: Condition. LAUREN CARVALHO: Какво е това състояние щеше да бъде? ПУБЛИКАТА: Броят на [недоловим]. LAUREN CARVALHO: Точно така. LUCAS FREITAS: Така че това, което съм аз ще да проверите в състояние? ПУБЛИКАТА: Ако е равно на 2. LAUREN CARVALHO: Ако това е равно на 2. Точно така. LUCAS FREITAS: Има ли нещо друго, което аз трябва да направя? ПУБЛИКАТА: Да броим. LUCAS FREITAS: Така че, ако това е равно на две, да кажем - нека просто да напишете ако входът е равен до 2, а след това какво ще да направите е печат правилно. И след това друг, аз ще да отпечатате неправилно. Нещо друго? Не? LAUREN CARVALHO: Значи да кликнете върху - е всеки да има тази надолу? LUCAS FREITAS: Има ли смисъл? Така че сега нека да се опитаме да се кодира това. LAUREN CARVALHO: Ако кликнете на малкото стрелка, тя всъщност ви спестява pseudocode, което е наистина вълнуващо. И вие можете да направите тези в коментара ако искате просто да си напомняте за какво да правя. LUCAS FREITAS: Така например, първото Отивам да отпечатате на въпроса, така че как съм аз ще направя това, всъщност? ФОРМАТ. Така ФОРМАТ, и въпросът е на средно ниво брой деца на една семейство в САЩ. Тогава аз отивам да получите принос от страна на потребителя. И така, как мога да направя това? ПУБЛИКАТА: Get Int. LAUREN CARVALHO: GetInt. LUCAS FREITAS: OK. Така че първо да декларира, нали? ПНА, нека го наречем н равнява GetInt. И сега състоянието. Така че позволете ми да кажа, че аз отивам до тук Проверете отговор. Така на първо място, ако вход, който е N, се равнява да - как съм аз ще напиша, че? ПУБЛИКАТА: Равно равни. LUCAS FREITAS: Perfect. Така п. И забележи, че аз правя пространство, равни, равни, пространство, е вярно. И сега какво да правя? Нещо много важно за стил. Фигурните скоби. И тогава аз отивам да отпечатате. Как да отпечатам? ФОРМАТ. ПУБЛИКАТА: Възможно ли е да се капитализират? LUCAS FREITAS: Не. Той е трябвало да бъде всичко с малки букви. Така че това е правилно. Бихте това е достатъчно за ФОРМАТ декларация, или аз съм липсва нещо? ПУБЛИКАТА: New линия. LUCAS FREITAS: New линия, да. И сега друг. ПУБЛИКАТА: Има ли място след ФОРМАТ, или не? LAUREN CARVALHO: Ние трябва да Проверете в ръководството за стил. ПУБЛИКАТА: Тя не трябва да бъде. LUCAS FREITAS: не трябва да бъде, OK. Така че друго, ФОРМАТ: "Това не е вярно." LAUREN CARVALHO: Oops, вашите кавички. LUCAS FREITAS: OK. Нещо друго? Има ли изглежда добре? LAUREN CARVALHO: Трябва ли да го пробвам? LUCAS FREITAS: Да, нека да го стартирате. Така че това е съставяне, и я Изглежда, че тя работи. Нека се опитаме две деца. Това е правилно. А сега нека да се кандидатира отново, но сега вместо за поставяне на две деца, нека се каже, че аз отивам да се сложи като пет. Това е неправилно. Така че изглежда, че тя работи. LAUREN CARVALHO: Защо не им покажем, какво ще се случи, ако си сложиш нещо странно, като някои букви. LUCAS FREITAS: О, да. Нека също така да проверите това. Какво, ако потребителят се опитва да се забъркваш с вашата програма, и те просто пиша, аз не знам две. Той ще каже повторен опит. LAUREN CARVALHO: Така GetInt е да ги питам за да опитате отново. Ние не трябва да се грижи на които самите себе си. LUCAS FREITAS: Да. Така че, ако аз действително сложи номер, това е ще продължим да ме пита за да опитате отново. ПУБЛИКАТА: Как го пуснете? LUCAS FREITAS: Просто кликнете тази звезда бутон. LAUREN CARVALHO: Трябва да вървим напред. Ето ти. LUCAS FREITAS: Звездата десния бутон там. Да? ПУБЛИКАТА: Има ли подкани [недоловим] с десетични числа прекалено? LAUREN CARVALHO: Вярвам, че това ще стане. LUCAS FREITAS: Ако той какво прави? LAUREN CARVALHO: Ако въведете в десетичен вид, мисля, че това ще ви подкани. LUCAS FREITAS: Да видим. LAUREN CARVALHO: Защото това не е едно цяло число. LUCAS FREITAS: Да. LAUREN CARVALHO: Така че това не е едно цяло число, Вземи Int ще ви помоля да опитате отново. ПУБЛИКАТА: Е, къде в този код ще бъде десетичната запетая, което подсказва на потребител, който те трябва да въведете цяло число по-специално? LAUREN CARVALHO: GetInt е всъщност правиш това за нас. ПУБЛИКАТА: Не, искам да кажа, ако искахме да въведете [недоловим] LUCAS FREITAS: Може да се каже, като средната Броят на децата в САЩ. Не знам. Можем да кажем, например, "Моля, въвеждане на цяло число. " LAUREN CARVALHO: цяло число, равно на средния брой. Искам да кажа, това е просто начина, го дума, нали? LUCAS FREITAS: Да. Това не е част от действително кодиране. Това е повече от каквото и като вие ще искате да пиша във вашата програма. ПУБЛИКАТА: Как щяхме да го изпълним, ако тя всъщност в Gedit [недоловим]. Вместо натискане на един бутон? LUCAS FREITAS: Ние ще първо да го компилирате. Можем да го направим по този грим и името на файла. И след това да го изпълним, ние ще направим точка наклонена черта и името на програмата. ПУБЛИКАТА: Предполагам, това исках да кажа е, ако искахме програмата да отговори на неправилното им, въвеждането на невалидни, Вие не трябва да поставя в - LUCAS FREITAS: Ние не ще бъде в състояние да направи това, тъй като този код казва повторен опит идва от Get Int което е функция, която вече е изпълнена за нас чрез CS50 библиотеката, и тъй като той вече е приложена там, ние не може просто [недоловим]. LAUREN CARVALHO: Ако не използвате GetInt, след това можете да направите това. LUCAS FREITAS: Да. Но ако сте с помощта GetInt, че не можеш. Някакви други въпроси? ПУБЛИКАТА: Може ли да са отишли ​​с подобно GetFloat и след това да може да се сложи това в десетични? LUCAS FREITAS: Да. ПУБЛИКАТА: OK. Тогава вие просто може вход плаваш А е равно - LAUREN CARVALHO: Да. Точно същото, с изключение на плаваш вместо вътр. LUCAS FREITAS: Просто го сложи тук и след това GetFloat там. ПУБЛИКАТА: Както ще видя или съм виждал - LAUREN CARVALHO: имаме Все още не е намерила там. ПУБЛИКАТА: - правиш неравенство с плувки не [недоловим] ПУБЛИКАТА: Какво запетаите означават? LAUREN CARVALHO: Точката и запетаята просто означава, че това твърдение е пълна, и ние ще отидем към следващия слайд. ПУБЛИКАТА: Така че е необходимо всеки път? LAUREN CARVALHO: Да. Е, добре, така че не за тези условия, защото те са капсулиране нещо. Така че основно, ако нещо се причинява можете да след това да създадете къдрава скоба блок, не се сложи точка и запетая в края. LUCAS FREITAS: Но всичко друго, да. Когато приключите с изявление, сложи точката и запетаята. И ако сте пропуснали точка и запетая, за компилатор няма да се сърдят на вас, и ти започваш да се имат да се опита да го оправи. LAUREN CARVALHO: Ако сложа точка и запетая тук, че ще спре това, и аз никога няма да стигнем до изпълни това, което е в, между другото. Така че това е една от тези общи грешки. ПУБЛИКАТА: Винаги изпълнява. LAUREN CARVALHO: Да. В този случай, ние винаги ще изпълни това, което е вътре. ПУБЛИКАТА: Вашият стил [недоловим] приложете това за вас, помисли си. LAUREN CARVALHO: О, това е вярно. ПУБЛИКАТА: [недоловим] единствен нещо ред [недоловим] Публика: Да? ПУБЛИКАТА: Можете ли да имате няколко входове в една линия? Така че, както може да ви помоля потребители да отпечатате две неща? LAUREN CARVALHO: Не се използва - LUCAS FREITAS: Не. Да речем, че аз също искам да се получи това число m. Аз трябва да го направя по различен ред. ПУБЛИКАТА: Ако ви се налага да стартирате че как [недоловим]? Това ще отпечата подканата има [недоловим] и тогава ще влиза един и - LAUREN CARVALHO: Ами, пуснете го. Искам да кажа, че няма нищо да ни пречи да Просто я пуснете и да видиш какво ще се случи. LUCAS FREITAS: Мисля, че е Ще се оплаква при нас защото ние не сме използвали - LAUREN CARVALHO: Oops. LUCAS FREITAS: Той се оплака, при нас още сега, защото ние не използвате този променлива, но ако го направя, например, п е равно на равнява, и m е равно се равнява на, тогава какво ще се случи в този случай? Какво би направил тази програма? ПУБЛИКАТА: Аз съм просто се чудех как би - LAUREN CARVALHO: Тя просто иска да знаете как изглежда като, според мен, нали? Така тя взе една от тях, а след това той зае второ едно. Мисля, че ние трябва да продължим, защото ние имаме един по- Slide Show да отида преди - искаш да спра по математика? LUCAS FREITAS: Да, математика. LAUREN CARVALHO: Дайте ми само една секунда. Има няколко различни числени променливи в C. Числени данни в C могат да бъдат класифицирани в различни видове, и това са тези, които ще вижте най-често. И Int е цяло число. Вие не може да има каквито и да било знак след десетичната запетая. В уреда, е необходимо 32 бита за съхраняване на Int. A плувка може да има знака след десетичната запетая. Той също така се 32 бита за съхранение с плаваща запетая в уреда. Двойно е число с десетични точка, която заема 64 бита, за да го съхранява, което означава, че можете просто да има по-голяма точност, тъй Можете да имате повече - какво искаш да го наречем? LUCAS FREITAS: Да, това е повече. LAUREN Карвальо: Повече места след десетичната запетая. И дълго, дълго е цяло число че се 64 бита възпалено го в уреда. LUCAS FREITAS: Така че тя може да бъде по-голям от цели числа може да бъде. LAUREN CARVALHO: Това, което за данни типове в C е, че те ви кажа какво вид на данни можете да съхранявате във вашата променлива. Те ще ви кажа как можете да използвате тази променлива във вашата програма. Това е много важно да се просто да следите на какъв тип данни, който използвате, и ако нали трябва да се хвърли от тип данни до друга, се уверете, че знаете точно това, което се случва, когато тази леене се провежда. И вие ще видите пример по-късно на в тези слайдове на грешка, която може да се случи. Нека да разгледаме някои математика в C и мисля, че наистина внимателно, предполагам, за това какво се случва, когато тази математика се провежда. В първата линия, какво е случва, когато се декларират х? Публика: Ти си позволи х да има нещо? LAUREN CARVALHO: Да. Е, аз съм наистина иска от операционната система за 32 бита на паметта, нали? В което аз може да съхранява едно цяло число, и Отивам да се обадя, че Int х. LUCAS FREITAS: По принцип става в паметта и намирането на място, което е 32 бита и поговорка, хей, аз искам това пространство, и то се случва да се нарича х. Значи просто доста много констатация кутия в паметта си, за да съхраняване на стойности за х. LAUREN CARVALHO: И тогава аз се инициализира х, което означава, че аз просто не съхранявайте стойност от 2 на това място, това парче на паметта, че ние поискахме операционна система за. И тук това, което правим, е ние всъщност се обявява и инициализиране г. в един ред, вместо на в две линии, както направихме тук, което също е съвършено глоба, сме добавяне на 1 до х, и ние сме съхраняване че стойност в у. LUCAS FREITAS: Така че основно това, което този Онлайн прави, то намира, сега е кутия за Y, и след това стойността си, нещо, което ти започваш да се постави вътре в кутията, е ще бъде стойността на х плюс един. Така че има тази кутия за у. Той получава стойността на х, изглежда тук, и да видим, че това е 2. Сложете го там, плюс един, така че той поставя три там. Това прави ли смисъл? Така у ще бъде 2 в този случай. LAUREN CARVALHO: Добре, хладно. Видяхме някои допълнение, така че нека сега мисля за разделение в C. Тук съм деклариране и инициализиране на плувка наречено отговор и като се раздели един от 10, и тогава аз съм печат отговора до два знака след десетичната запетая. И имайте предвид, тук, в моята ФОРМАТ изявление, когато искам да пишете нещо два знака след десетичната запетая, 0.2% е е това, което искате да използвате. Така точката 2 е просто казвам Трябват ми две места след десетични разпечатан. Сега, какво ще се случи ако аз тичам този код? Някой има ли идея? Какво ще отпечата? LUCAS FREITAS: Какви са ние очакваме да се получат. LAUREN CARVALHO: Какво правим ние искаме, на първо място? LUCAS FREITAS: [недоловим] LAUREN CARVALHO: 0.1, да. Но какво ще се отпечата? ПУБЛИКАТА: [недоловим] LAUREN CARVALHO: Ами, не, всъщност. Това е, което аз говорех за това, защо Трябва да се запази много внимателни следите Вашите типове данни. Така че, какъв тип данни е това? Е едно цяло число, нали? Не е знак след десетичната запетая. 10 е едно цяло число. Не е знак след десетичната запетая. Ако разделим едно цяло число от едно цяло число, получавам INT, който не е 0,1, защото целочислени не може да има знак след десетичната запетая, но само 0. Тъй като едно цяло число просто отрязва разстояние от знака след десетичната запетая. LUCAS FREITAS: Така че всеки път, когато правите операции с цели числа, ти започваш да се получите вътр като отговор. Така че основно, това, което компютърът се прави, това е един от разделения 10, и става 0,1. Но тогава това е като, чакай, това е трябвало да бъде цяло число, така че просто игнорират 0.1, така че това е вече само 0. LAUREN CARVALHO: Така че, когато отпечатате тази , аз получавам 0.00 вместо 0.10. LUCAS FREITAS: Това прави ли смисъл? LAUREN CARVALHO: Това е вид от жалко, нали? LUCAS FREITAS: Така че как можем да поправя това? LAUREN Карвальо: Нека опита и да определи това. Ето един пример за това къде съм всъщност леене на една и 10, за да плува. Така че сега, едно вече не е инт. 1 е с плаваща запетая. Между другото, това е само синтаксиса за случаите, когато искате да се хвърли от една тип данни към друг. Можете просто да сложи типа на данните в скоби и да има, че просто предхожда стойността, която сте леене. Така че тук, аз се раздели с плаваща запетая с поплавък, за да получите отговор плувка. И да, това би в Всъщност отпечатате 0.10. Това прави ли смисъл? LUCAS FREITAS: Така тип кастинг е просто конвертиране от един вид на друг. Така поплавък 1 е действително 1.000. Не е точно това, но това е нещо, със знак след десетичната запетая че всъщност 1. Това прави ли смисъл? Да? ПУБЛИКАТА: Какво става, ако си направил плувка отговор равно на 1.0, разделена на 10? LAUREN CARVALHO: Ти всъщност се случва , за да видите, че в следващия слайд. Това е действително много следващата ни пързалка. Това всъщност е по-хубав, отколкото въведете леене, мисля. Така че тези две са плувки само чрез природата на факта, че те имат знака след десетичната запетая. Да? ПУБЛИКАТА: Какво става, ако си направил [недоловим] разделена на 10? LAUREN CARVALHO: Всъщност с плаваща запетая разделено на вътр всъщност ви дава плувка, така че ще работи добре. Изчакайте, всички се разбере това? Защото това ще бъде наистина голяма работа в Pset1, всъщност. Да? ПУБЛИКАТА: Бихте ли просто бързо премине червената част? LAUREN CARVALHO: The червената част, да. Lucas, искаш ли да се? LUCAS FREITAS: OK. Така че не забравяйте, че процентът е контейнер. Това е като празно място. Така че нека да се опитаме да разберем всичко , което се случва тук. Процент означава, че това е един контейнер. След това имате F, което означава, че този контейнер е за оборотни средства. Последното нещо, което имаме тук, е 0.2, което означава, че искам да имам две знак след десетичната запетая за поплавъка. Ако аз просто трябваше% е, че тя ще постави куп знака след десетичната запетая. Така че аз може да съм сложил 0.2 или 0.1 или 0.5, или каквото и да, и то се случва да се сложи това номер на знака след десетичната запетая. Единственото нещо е, че ако сложиш като 0,100 или .1,000, това не е реално ще постави всички тези знака след десетичната запетая защото той не разполага с достатъчно памет да има, че точност. Някакви други въпроси? Да? ПУБЛИКАТА: Така плува само позволява можете да отидете отвъд числа? LUCAS FREITAS: Да. LAUREN CARVALHO: Ами, на плувка само ви позволява да имате знака след десетичната запетая. LUCAS FREITAS: Това просто означава, че сте сега може да има десетични числа. ПУБЛИКАТА: Защо бихме всякога използват числа? LUCAS FREITAS: Защо използвате числа? Може би, ако броим от 0 до 10, искате да използвате всъщност цяло число. Вие не трябва да се използва плувка. В някои ситуации, не знаеш всъщност трябва да - LAUREN CARVALHO: Може би не искам знака след десетичната запетая. LUCAS FREITAS: Може би не правя искате да използвате плувка. LAUREN CARVALHO: Другото, което е, Спомням си, както направи с плаваща запетая и вътр вземе 32 бита да ги съхранява, и може би вие не искате да губите бита относно знака след десетичната запетая. LUCAS FREITAS: Да. Така че, като, просто мисля за това. Имате 32 бита за двете едно цяло число и поплавък. За едно цяло число, всички тези 32 бита отидете на цялата част. Ако използвате плувка с 32 бита, можете има част от това да използва тази памет за броя, за цяло число, и от друга страна се използва за знака след десетичната запетая. Така че това означава, че не можете да стигнете до много големи числа с плувки, защото поплавъка вече е с помощта на много памет за знака след десетичната запетая. Да? ПУБЛИКАТА: Това първо отговор, какво по-точно е да го прави? Е то за определяне на стойността на плувка равен да, че в контейнер за които можете да изземването му в следващия ред? Той казва, че плува отговор. LUCAS FREITAS: Да. Така че, флоат отговор означава, че получавате сега е малко кофа в паметта, която притежава плувка, и че ще да се нарича отговор. Така че това е, което прави плувка отговор. И тогава ще кажа, че вътре в това, ти започваш да се постави в резултат на това. Така че ти започваш да се направи 1.0, разделено на 10.0, вие получавате 0.1, и след това да си сложиш че вътре в отговор. LAUREN CARVALHO: Така че в една линия, ние сме деклариране и инициализиране на тази плувка наречено отговор. LUCAS FREITAS: Интересното е, че въпреки че Това е само една линия, тя се справя множество операции. Това е просто начин на C отдаване под наем използвате по-малко код. Това е същото като на трикомпонентни оператор, как можете просто да направите [Недоловим] в една линия. Това е всъщност правиш едно и също нещо, като прави плувка отговор, точка и запетая, и След това се равнява на този отговор, но вместо кара те да се направят две линии за това, това е като пряк път. Да? ПУБЛИКАТА: Така че, ако сте стартирали тази, би било 0.10? LUCAS FREITAS: Да. Да? ПУБЛИКАТА: е отговорът всъщност код, или това е просто името? LAUREN CARVALHO: Това всъщност код. Това е, което ние ще да назовем нашата променлива. ПУБЛИКАТА: Така че това е просто име [недоловим]. LAUREN CARVALHO: Да. Бих могъл да заяви плувка х е равно на 1.0. LUCAS FREITAS: Работата е там, че името на променливата е нещо, което използвате. Това е важно за вас. За реалната програма, единственото нещо, че има значение, е стойността, която има вътре в кофата. Причината, поради която имате променливи и Имената на променливите е така щеше да знаеш какво си имаш работа, като какъв вид данни, че сте достъп по време. Но за самия код, ако ти се обадя тя отговори или въпрос или нещо подобно, доста много, това няма значение. Това няма значение. Докато ти си последователен във всяка поява него и така да го наречете нещо друго. Да? ПУБЛИКАТА: Обичате променливите излиза извън рамките на функцията? Например, ако ви се налага да създавате скоба [Недоловим], може ли просто [Недоловим] отговори отново? LAUREN CARVALHO: Не. ПУБЛИКАТА: [недоловим] LAUREN CARVALHO: Не. Това би било извън обхвата на тази променлива. И всъщност, това е вид Интересното е, че когато имаме неща като примки или тези, ако условия, ако Вие декларирате променлива в рамките на друг набор от фигурни скоби, тя наистина съществува само в рамките на тези фигурни скоби. ПУБЛИКАТА: Един последен бележка за на [недоловим] поплавъци. Защо сте някога искате да използвате цели числа? Това е повече от една страна нота от нищо, но компютърът ви е значително по-добри в боравенето с целочислени отколкото е при плувки за боравене. Това е като със заповед на величина по-бързо. Така че, ако ние просто борави само плува, нещата ще бъдат много по-бавно. LAUREN CARVALHO: Всъщност, изглежда да бъде проблем с поплавъци. LUCAS FREITAS: Kind на причината за че можеш да се сетиш, е как в двоичен можете да представляват цели числа чрез поставяне 0 и 1 на. LAUREN CARVALHO: Това е следващото нещо. LUCAS FREITAS: OK. Awesome. LAUREN CARVALHO: Just задръжте тази мисъл. LUCAS FREITAS: ОК, аз ще да ти кажа по-късно. LAUREN CARVALHO: Преди да стигнем до това, което Лукас бе просто казвам, оператор предимство. Това е здрав разум. Вие, момчета, са направили това е достатъчно. Така че, просто, ако нещо не е в скоби, това ще се случи първо. Това е умножение има предимство над допълнение, изваждане, такива неща. Така че всъщност, просто няма кой да искате да ми кажете какъв номер едно действително оценява на? Аудитория: 27. LAUREN CARVALHO: 27? Да. LUCAS FREITAS: Позволете ми да дам бонбони за човека. LAUREN CARVALHO: Добре. Какво ще кажете за номер две? Какво ще кажете за номер две? Аудитория: 22. LAUREN CARVALHO: 22, да. Аз не знам кой има това. Номер три? Аудитория: 10. LAUREN CARVALHO: 10, да. Cool. Така че по модул. Lucas, искаш ли да обясни по модул? LUCAS FREITAS: Modulo е този оператор че всъщност е много полезен за куп проблеми. Ако направя 55 по модул 10, което го прави това нека да кажем, че искам да разделят 55 на 10. Какво ще получа? Той се чувства точно като ако аз съм всъщност само прави разделението, което е за първи път, че аз имам цяло число? ПУБЛИКАТА: 5. LUCAS FREITAS: 5. И след това останалото е 5, нали? Така че това е като 5 пъти 10 плюс 5. По принцип, това е модул, той се опитва да разделят този номер от това, и той вижда каква е останалата на отдела. LAUREN CARVALHO: Така че просто връща остатъка. Така че номер едно е какво? 5. Номер две? ПУБЛИКАТА: 3. LAUREN CARVALHO: 3. Номер три? 0. И четвърто е 1. Точно така. LUCAS FREITAS: Simple, нали? LAUREN CARVALHO: Защо да не пропуснете тази само защото ние наистина не са време, и хора изглежда да се разбере. Така че тук е това, което беше Lucas що говориш. LUCAS FREITAS: Друга причина, поради която ще използват целочислени вместо плувки е че плувки са много неточни. И защо те са неточни? Давид каза, че да представлява цяло число, например, ние използваме 0 и 1, нали? И тогава вие основно направете умножение, правя всички онези, операции, за да знаят какво десетична бройна имате вместо двоичен. Какво се случва сега, ако аз се опитвам да постави знака след десетичната запетая? Всъщност, например, ако имам броят като 3.33333? Той се чувства като 10 над 3. Как аз ще се съхранява цялата 3 е, че имам след това? Наистина е трудно, нали? Не може просто да каже на компютъра, хей, аз имам 3, и След това, което правите, че завинаги. Всъщност компютърът не е достатъчно умен за това. Така че основно всички компютри прави, е че тя се опитва да постави колкото се може повече цифри, както тя може до паметта, която имате. Така че нека да кажем, че това ще казват 3,3333, и това е всичко. Така че не е в състояние действително да изразят Именно това, че е поплавък. LAUREN CARVALHO: Ние имаме краен брой на бита, което означава, че не всеки десетичен номер ще бъде могат да бъдат представени точно. И така, в този пример, ако искаме отпечатване 0.1, сега ние сме печат извън 20 места. LUCAS FREITAS: Точно като казвах вие, момчета, бихте могли да поставите произволен брой. Но ако ти направи на две места, ще получите 0.10, но ако сложиш 20 места, това ще ви покажа един куп на е така, защото това е, което можете да поставите в паметта, нали? Но точно тук, до 0, и след това просто го сложи китка на случайни числа. Това е нещо като някои - LAUREN CARVALHO: Това е така, защото ние сме не може да представлява този знак след десетичната точно с броя на бита, което имаме. LUCAS FREITAS: И тогава компютър е основно който ви дава редица боклук. Това не е всъщност стойност на броя. ПУБЛИКАТА: Това е най-близо той може да получи [недоловим] използвайки [недоловим]. LAUREN CARVALHO: Така че влиянието на това е, че нека да кажем, че вместо е 0.100014, независимо, Ами ако това е 0.0999 - добре, OK. Нека си представим, че действителният отговор да това е 0,9999999. Това е много близко до 1, но това не е точно един. Това е 0,99999. Това означава, че ако аз взема това 0.999, и аз го хвърлих едно цяло число, да получа 0. Не мога да разбера едно. LUCAS FREITAS: Защото не забравяйте, леене от плаващо в ПНА, просто игнорирате всички знака след десетичната запетая. Можете просто да ги игнорирам. Няма такова нещо като закръгляне нагоре или тичане надолу, когато ви амплоа. Всъщност, има тази функция, която прави закръгляне, което е много важно, но просто мисля, че когато правиш типаж, това е просто ще изтрие всичко. Така че, дори ако имате 0.99999, то се случва просто да даде 0, ако ви амплоа [Недоловим] цяло число. LAUREN CARVALHO: Така че просто е наистина наясно на числа с плаваща запетая в точност, особено, когато започнете да използва плувки в Pset1. Но разходката през следва ви предупреди за това, както добре. LUCAS FREITAS: И всъщност това е наистина трудно, например, ако го направя плувка отговор 1 се равнява на 1.0 през 10, и след това изплува отговор 2 се равнява на 10.0 над 100.0. Те са един и същ номер, нали? 0.1, нали? 1 над 10 или 10 над 100. Но сега, ако се опитам да видя равенството, като, ако отговор 1 е равно на две отговори, Може би не е всъщност ще да бъде едно и също нещо. Така плувки са нещо като това. Те са като правене на половете.