>> [Музички]
>> Даг LLOYD: Здраво, па ајде зборува за оператори во В.
Значи, ние сме веќе видено еден, всушност, еднаква на операторот на задачата.
Тоа ни овозможува да се ставив вредност со променлива.
Тоа е задача операторот, единствен знак за еднаквост.
Со цел да се манипулира и работа со вредности и променливи во C,
ние имаме голем број на оператори на располагање што можеме да го користите.
Ајде да ги разгледаме во некои од вообичаените
почнувајќи со аритметичките оператори.
Како што би очекувале, ние може да го направи прилично основните математички операции во В.
Ние може да собира, одзема, множи и јаз броеви користејќи плус, минус, ѕвезда,
и коса црта, соодветно.
Еве неколку линии на кодот на кои можеме да го направи тоа.
Значи, имаме int x е еднаква y плус 1.
Ајде да се претпостави дека некаде до над оваа линија код
ние го рече int y еднакво на 10.
Која е вредноста на x, откако јас изврши оваа прва линија на кодот?
Рековте 11?
Ти би се случило.
Зошто е тоа?
Па, у беше 10.
Сакам да кажам дека некои int x еднакво на 10 плус 1.
10 плус 1 е 11.
Значи, вредноста добива 11 се чуваат во променливата x.
Не е премногу лошо, нели?
>> Како за ова следната линија на код? x е еднаква на 5 х пати.
Па, пред да се изврши оваа линија код, x беше 11.
Значи, она што е вредноста на x по оваа линија код?
Се земе втора.
Значи, x е еднаква на 5 х пати.
x беше 11.
Значи, x е еднаква на 11 пати во 5.
Или 55.
Значи, ако ви рече 55, ќе бидете во право.
>> Сега, тоа може да биде малку збунувачки, но со начинот на кој таа задача работи во C
е вредноста на десната добива доделени на вредноста на левата страна.
Значи, прво се оцени x 5 пати.
Значи, 11 пати во 5 е 55.
А потоа ние ја запази таа вредност во х.
11, кој беше таму пред сега се препишани.
Па вредноста на Х сега е 55.
Се надевам дека тоа е прилично јасна.
>> Има уште еден оператор дека сте Веројатно не се слуша баш
ова го нарече, но сте сигурно работеле во минатото
ако се сеќавате вашите дена на долг поделба пат назад во основно училиште.
Таа се вика оператор модулите.
Она што го прави тоа е модул ви дава остатокот
кога ќе се подели на два броја заедно.
Значи, ако кажам 13 поделено со 4, што е остатокот?
И таа вредност ќе се пресметува операторот на модулите.
>> Значи, јас се на линија на кодот тука, int m е еднакво на 13 современи 4.
И велам овде во коментар вредност што m е сега 1.
Зошто го велам тоа?
Па, направете го поделеност во вашиот главата, ако го носат со мене за една секунда.
Значи, јас се 4 поделено со 13.
4 оди во 13 три пати со остатокот од 1.
Значи, во основа, сите модул оператор не
е тоа што кога ќе раскажува поделба, ќе го добие остатокот.
Можеби мислите дека е всушност не е страшно корисни работа,
но ќе бидете изненадени, всушност, од тоа колку често тоа модул
Операторот може да дојде во рака.
>> Има неколку проблеми ние ќе направиме CS50 кои се занимаваат со тоа.
Тоа е исто така добар за правење работи како случаен број.
Така, на пример, ако некогаш сте слушнале за генератор на случаен број,
кој ќе ви даде голем број од 0 до некои огромен број.
Но можеби само навистина треба голем број од 0 до 20.
Ако го користите оператор модул на тој гигант број кој
добива генерирани од страна на генератор на случаен број,
ви се случува да се земе она што огромен вредност тоа е, подели го со 20,
и да го добие остатокот.
Остатокот може да се само да биде вредност од 0 до 19.
Значи, можете да користите модулот оператор да се земе овој огромен број
и омаловажавам тоа долу во нешто малку позначајни.
Јас сум прилично сигурен дека ќе биде можат да ги користат и двете од овие
во одреден момент во иднина во CS50.
>> Значи, Ц, исто така ни дава начин да се применуваат аритметичка
операторот на една променлива во малку повеќе стенографија начин.
Значи, во претходниот слајд, видовме x е еднаква на 5 х пати.
Која работела.
x 5 пати потоа добива чуваат назад во х.
Има еден пократок начин да го направи тоа, мисла, и тоа е време на синтаксата x е еднаква на 5.
Тоа е исто точно нешто како велејќи дека x е еднаква на 5 х пати.
Тоа е само малку пократок начин да го направи тоа.
И кога ќе видите некои распределба на код или ви
види некои кодот примерок кој прави вакви работи,
само да биде запознаен со што значи синтаксата.
Сигурно немаат да го користите, но ако не,
тоа би можело да се направи вашиот код изгледа малку измамник.
И знам дека исто така можете да користите било кој од на различни оператори Ние веќе
видел наместо пати.
Може да се каже x е еднаква на 5 плус, минус еднаква на 5 пати, дели, и МО.
Сите тие работи.
>> Исто така има нешто тоа е толку честа појава во C
дека ние одлучивме да насочите дека дури и подалеку.
Ја зголемува променлива од 1 или decrementing променлива од 1
е таков заеднички thing-- особено кога зборуваме за петелки малку подоцна
on-- дека ние одлучивме наместо кажува нешто како х плус еднакво на 1,
или x е еднаква х плус 1, ние сме дури и краток предаден дека до x плус плус.
Значи, x е еднаква х плус 1, x плус еднакво на 1, и x плус плус сите го прават истото.
Тие сите прираст од 1 х.
Но, тоа ја зголемува и decrementing од 1
е толку вообичаен дека имаме плус плус и минус минус
кои ни овозможуваат да стенографија дека дури и подалеку.
>> Значи, ајде да се префрлат брзини за вториот и да разговараат за Булова изрази.
Сите кои се, исто така, спаѓаат во вид на целокупната категорија на операторите.
Но Булова изрази, за разлика од аритметичките оператори,
се користи за споредување на вредности.
Значи, повторно, сите Булова изрази во C оцени во една од двете можни вредности,
потсетиме.
Вистинити или лажни.
Тоа е само две вредности кои Булова променлива може да се преземат.
Може да се користат резултатите на Булова израз
во голем број на начини на програмирање.
Всушност, ќе биде тоа доста.
>> На пример, ние може да одлучи, Па, ако некој услов е вистина,
можеби и јас ќе ја искористам оваа филијала по моите код.
Условна, така да се каже.
Ќе учат за оние наскоро премногу.
Или можеби, се додека ова е точно, јас сакам
да го прави ова одново и одново и одново.
Јамка.
Во двата случаи, се знае дека ние сме со користење Булова израз, точно или неточно,
да одлучи дали или не да се земе одредена патека.
Понекогаш, кога ние работиме со Булова изрази,
ние ќе ги искористиме променливи од типот bool.
Може да се прогласи на bool внесе променлива,
и ќе ги користите во вашите Булова израз.
Но не секогаш мора да се направи.
Како што се испоставува, во C, секој не-0 вредност е иста како вели дека е точно.
Ако беше прогласена за Булова променлива од тип,
и го доделило на вредност е точно, тоа е исто како и прогласување цел број
и доделување на вредност 1, 2, 3, или навистина било која вредност
она што другите од 0.
Бидејќи во C, секој-0 вредност не е точно.
0, а од друга страна, не е точна.
Ова може да дојде во најде подоцна за да се знае,
но само нешто да се задржи во умот.
Ние не секогаш треба да се користи Буловите променливи тип кога ние
се работи со Булова изрази.
>> Постојат два главни типа на Булова изрази, кои ќе работат со.
Логички оператори и релациони оператори.
Јазикот постои не е страшно важно.
Тоа е навистина само како сум групирање нив.
И ќе секако, мислам дека брзо реализира она релациона оператор,
врз основа на она што тие се, кога ние се зборува за нив во една секунда.
Но, не грижете се за нужно меморирање на терминот логички оператор
или релациона оператор.
Јас сум само да го користите да се група нив во логичен начин.
>> Значи, ајде да ги разгледаме во три логички оператори
дека ќе видиме доста малку во програмирање во CS50
и во програмирање поопшто.
Логички и е точно, ако и само ако двата операнди се вистинити.
Инаку лажни.
Каде што тоа всушност значи?
Значи, ајде да се каже дека јас сум во точка во мојот код каде што имам
две променливи, x и y.
И сакам да се одлучи дали да се направи нешто во мојот код
врз основа ако x е вистина, а y е точно.
Јас само сакам да го направи тоа ако и двете од нив се точни,
инаку јас не сакаат да одат надолу патот, бидејќи тоа не се случува да ми помогне.
Она што можам да кажам е дека ако X & & y.
Која ќе биде логичен Булова изразување споредување на x и y
и преземање на одреден пат врз основа на она што нивните вредности се.
Значи, ако x е вистина, а y е вистина врз основа на оваа таблица на вистинитост тука,
само тогаш ќе одиме по тој пат.
Ако x, & & y.
Тоа е само true-- и е само точно ако x е вистина, а y е точно.
Ако било кој од нив е лажна, како што гледаме таблицата на вистинитост,
тогаш x и y не се вистинити.
И така, X & & Y е лажна.
>> Логички или е вистина, ако и само доколку најмалку еден операнд е точно.
Инаку лажни.
Па логично и бара двете x и y да биде вистина.
Логички или бара x за да биде вистина или y за да биде вистина или x и y за да биде вистина.
Значи, повторно, ние вид на се најде себеси во ситуација
каде што ние ќе треба да нашиот код, а ние постигнаа крстопат на патот.
И ние сакаме да одат надолу одредена патека, ако x е вистина
или Y е точно, но не нужно ако двата се вистинити.
Но можеби ако двата се вистинити.
Значи, ако x е вистина, а y е вистина, ќе одиме по тој пат.
x е вистина.
Еден од нив е вистина, нели?
Ако x е вистина, а y е точно.
Ако x е вистина, а y е лажна, еден од нив се уште е вистина.
Значи, X или Y се уште е вистина.
Ако x е лажна, а y е точно, еден од нив се уште е вистина, нели?
y е точно, во овој случај.
Значи, тоа е точно дека X или Y е точно.
Само ако x е лажна и y е лажна не одиме по тој пат,
бидејќи ниту пак x y е точно.
Сега, ако сте во потрага на екранот во моментов
и се прашувам што тој Симболот е за логично ИЛИ,
што се вика на вертикалната лента.
И ако сте во потрага на вашата тастатура за една минута, како што го правам сега,
тоа е обично само над Внесете клучни, на повеќето тастатури,
на истото копче како обратна коса црта.
Тоа е, исто така, обично право до квадратни загради.
Значи, тоа би можело да биде клучно да се Не се внесени многу во минатото.
Но, ако сте некогаш прават логички споредби,
како што ќе се прави многу во текот, тоа е
ќе биде корисно да се најде дека клучот и го користат.
Значи, тоа е обично на истото копче како обратна коса црта само над Enter.
>> Конечниот логички оператор не е.
И не е прилично јасна.
Го превртува на вредноста на нејзините операнд.
Ако x е точно, тогаш не ја користите X е лажна.
Ако x е неточно, тогаш не x е вистина.
Понекогаш ќе се слушне овој симбол изговара како фантастичен бенг или
или не.
Тоа е доста на сите истото.
Во случај да се слушне дека се зборува и вие не сте сигурни што значи тоа,
тоа е само на фантастичен точка, но понекогаш тоа е
повика на неколку различни работи.
Добро, така што е потребно грижа на логичките оператори.
Значи, ајде да зборуваме за релациони оператори.
Повторно, ако сте запознаени со оваа аритметички назад во основно училиште,
сте веројатно запознаени со тоа како овие работи веќе.
Овие се однесуваат токму како што би очекувале.
Толку помалку од тоа е вистина, во овој пример, ако x е помалку од y.
Па, ако е на 4 x и y е 6, x е помалку од y.
Тоа е точно.
Помалку од или еднакво на работи многу сличен начин.
Ако x е 4, а y е 4, а потоа x е помалку од или еднакво на y.
Поголема од. x е поголема од y.
И е поголема или еднаква на, x е поголема од или еднаква на y.
Ако тоа е вистина, тогаш ќе помине тој израз,
и ќе одат надолу тој пат на патот.
Доколку имате ако x е поголемо од Y, и X е, всушност, е поголема од y,
ќе стори се што е предмет на таа состојба.
>> Забележи дека ние немаме Еден знак за помалку од
или еднаква на, како што може да биде запознаени со од математика учебници.
Значи, имаме помалку од симбол, проследено со знак за еднаквост.
Тоа е како ние ги претставуваме помалку од или еднакво на.
И слично, го правиме тоа за е поголема или еднаква на.
>> Во последните две релациона оператори кои се важни
се тестирање за еднаквоста и нееднаквоста.
Значи, ако x е еднаква еднаква y, е точно ако x и y е вредност е иста.
Ако x е 10, а y е 10, тогаш x е еднаква еднаква y е точно.
Ако x е 10 и y е 11, x еднаква еднаква y не е точно.
Исто така можеме да се тестира за нееднаквост користење извичник или тресок или не,
повторно.
Ако x не е еднаква на y, ако тоа е тест ние користиме овде,
ќе ни биде добро да отидевме.
Значи, ако x не е еднаква на y, ќе одиме по тој пат.
>> Биде навистина внимателен тука.
Тоа е навистина заеднички mistake-- и еден јас секако направени доста кога
Јас бев добивање started-- случајно грешка
операторот на задачата, еден еднаквите, оператор за споредба еднаквост,
двојно еднаквите.
Тоа ќе доведе до некои чудни однесување во вашиот код,
и обично компајлерот ќе ве предупреди за тоа кога ќе се обидат
и компајлирате вашиот код, но понекогаш можеби ќе можете да ја искористиш приликата страна.
Тоа не е секогаш добра работа дека ќе ја искористиш приликата страна, иако.
Само така ако се прави тест за нееднаквост,
ако сте проверка дали две различни варијабли имаат иста вредност
внатрешноста на нив, бидете сигурни да се користи еднаква на еднаквите, а не еден еднаквите.
И на тој начин вашата програма ќе имаат однесување имате намера.
Јас сум Даг Лојд и ова е CS50.