>> [За възпроизвеждане на музика]
>> Дъг LLOYD: Hi, така че нека говорим за операторите в C.
Така че, вече сме виждали, в действителност, се равнява на оператора на задача.
Това ни позволява да съм сложил стойност в променлива.
Това е задачата оператор, единен знак за равенство.
С цел да се манипулира и работа с ценности и променливи в C,
имаме редица оператори на наше разположение, които можем да използваме.
Нека да разгледаме най- някои от често срещаните
като се започне с аритметични оператори.
Както може би очаквате, което можем да направим доста основни операции по математика в C.
Ние можем да събира, изважда, множете се, разделение номера, използващи плюс, минус, звезда,
и наклонена черта, съответно.
Ето няколко линии на код, в който ние го направя.
Така че, ние имаме инт х е равно на у плюс 1.
Да предположим, че някъде до над този ред код
бяхме казали инт у равнява на 10.
Каква е стойността на х, след I изпълните тази първа линия на код?
Каза ли 11?
Човек би си прав.
Защо така?
Е, у е 10.
Някои Казвам инт х е равно на 10 плюс 1.
10 плюс 1 е 11.
Така че, на стойност 11 получава съхранява в променливата х.
Не е толкова зле, нали?
>> Какво ще кажете за тази следваща линия на код? х е равно на х пъти 5.
Е, преди да сме изпълнени този ред код, х е 11.
Така че, това, което е стойността на х след този ред на код?
Вземете една секунда.
Така че, х е равно на х пъти 5.
х е 11.
Така че, х е равно на 11 пъти 5.
Или 55.
Така че, ако ти каза 55, ще бъдеш прав.
>> Сега, може да е малко объркващо, но с начина, по който работи в присвояване C
е стойността на правото получава възлага на стойност от ляво.
Така че, на първо място ние оценяваме х пъти 5.
Така че, 11 пъти 5 е 55.
И тогава ние съхраняваме тази стойност в х.
11-, че е бил там преди сега се презаписва.
Така стойност х В този момент от 55 е.
Надяваме се, че това е сравнително лесно.
>> Има и друг оператор, който сте Вероятно не е задължително да изслушва
нарича това, но вие сте със сигурност е работил в миналото
ако си спомняте дните си на дълга разделение връщане в началното училище.
Тя се нарича оператор модул.
Какво прави модул е дава остатъка
когато се разделят на две числа заедно.
Така че, ако кажа, 13, разделено на 4, каква е останалата част?
И когато тази стойност се изчислява, от оператора на модул.
>> Така че, аз имам един ред код Оттук инт m е равно на 13 мод 4.
И аз казвам тук в коментар стойност, която m сега е 1.
Защо казвам това?
Ами, направете дълга разделението във Вашия главата, ако носят с мен за секунда.
Така че, аз съм 4, разделена на 13.
4 преминава в три пъти 13 и остатък 1.
Така че, общо взето, всички модул оператор прави
е то вас, когато ви казва разделение, можете да получите остатъка.
Може би си мислите, че това е всъщност Не е страшно полезно нещо,
но вие ще бъдете изненадани, всъщност, от това, колко често, че модул
Операторът може да дойде по-удобно.
>> Има няколко проблема ние ще направим CS50, че се справят с него.
То също е добра за правене неща като случайни числа.
Така, например, ако някога сте чували за генератор на случайни числа,
това ще ви даде номер от 0 до някои огромен брой.
Но може би само наистина нужда от редица от 0 до 20.
Ако използвате оператора на модул на тази гигантска номер, който
се генерира от генератор на случайни числа,
започваш да се вземе каквото и огромна стойност и да е, разделете го с 20,
и получи остатъка.
Останалата може само е стойност 0-19.
Така че, можете да използвате модул оператор да вземе този огромен брой
и омаловажавам го надолу в нещо, малко по-смислено.
Аз съм сигурен, че ще бъде можете да използвате и двете от тези,
в някакъв момент в бъдеще в CS50.
>> Така че, C също ни дава начин да прилагат аритметични
оператор на една променлива в малко по-стенографски начин.
Така че, в предишния слайд, видяхме х е равно на х пъти 5.
Това е работил.
5 х пъти след това получава съхраняват обратно в х.
Има един по-кратък начин да го направя, мисъл, и това е времето на синтаксиса Х означава 5.
Това е точно същата като нещо казвайки х е равно на х пъти 5.
Това е просто леко по-кратък начин да го направя.
И когато видите някои дистрибуция код или сте
виж примерен код, който прави нещата по този начин,
Просто да е запознат с какво означава синтаксиса.
Вие със сигурност не е нужно да го използвам, но ако го направите,
той може да направи своя код изглежда малко хитрец.
И знам, че можете да използвате всеки от различните оператори, които вече сме
виждали преди, вместо пъти.
Може да се каже х плюс равнява 5, минус се равнява на 5, пъти, разделяй и Министерството на отбраната.
Всички те работят.
>> Освен това има и нещо това е толкова често в C
че ние решихме да прецизира, че дори по-далеч.
Увеличаването на променлива от 1 или намаляващи променлива от 1
е такава обща особено thing-- когато говорим за контури малко по-късно
on-- че решихме вместо казвайки нещо като х плюс е равно на 1,
или х е равно на х плюс 1, ние сме дори Накратко предадена, че да х плюс плюс.
Така че, х е равно на х плюс 1, х плюс е равно на 1, и х плюс плюс всички правим едно и също нещо.
Те всички нарастване с 1 х.
Но това увеличаване и намаляващи от 1
е толкова често, че имаме плюс плюс и минус минус
които ни позволяват да стенограмите че още по-далеч.
>> Така че, нека да сменя предавките за второ и да поговорим за булеви изрази.
Всички, които са също вид попаднат в цялостната категорията оператори.
Но булеви изрази, за разлика от аритметични оператори,
се използват за сравняване на стойностите.
Така че, отново, всички булеви изрази в C оценка на една от две възможни стойности,
отзоваване.
Истина или лъжа.
Това е само две стойности, които Булева променлива може да поеме.
Ние можем да използваме резултатите на Булев израз
в много отношения по програмиране.
Всъщност, вие ще бъдете прави това доста.
>> Например, ние може да реши, добре, ако определени условия са изпълнени,
може би аз ще се възползвам от тази клон надолу моя код.
A условно, така да се каже.
Ще научите повече за тези, които скоро също.
Или може би, най-дълго това е вярно, аз искам
да продължаваш да правиш това отново и отново и отново.
A линия.
И в двата случая, знаете, че ние използваме булев израз, а вярно или невярно,
да реши дали или не да вземе специално път.
Понякога, когато ние работим с булеви изрази,
ние ще използваме променливи от тип булев.
Може да са декларирали а BOOL написали променлива,
и вие ще използвате във вашия Булев израз.
Но не винаги трябва да направите.
Както се оказва, в C, всеки не-0 стойност е същата като казваше вярно.
Ако беше обявен за променлива от тип Boolean,
и го дава стойността вярно, това е същите като обявяване цяло число
и присвояване на стойността 1, 2, 3, или наистина някаква стойност
каквато различна от 0.
Защото в C, всяка-0 без стойност не е вярно.
0, от друга страна, е фалшива.
Това може да дойде по- удобно по-късно, за да знаете,
но просто нещо да се има предвид.
Ние не винаги е нужно да използвате Булеви променливи тип, когато ние
Работим с булеви изрази.
>> Има два основни вида Булева изрази, които ще се работи.
Логическите оператори и релационни оператори.
Езикът има не е ужасно важно.
Това е наистина колко съм групирането им.
И ще със сигурност, мисля, най-бързо осъзнават какво релационна оператор е,
въз основа на това, което те са, когато ние говорим за тях в секунда.
Но не се притеснявайте за задължително запаметяването на термина логично оператора
или релационна оператор.
Аз съм просто да го използвате, за да група тях по логичен начин.
>> Така че, нека да разгледаме най- трите логически оператори
че ще видим доста битов в програмирането в CS50
и в програмирането по-общо.
Логическо И е вярно, ако и само ако и двата операнда са верни.
В противен случай фалшива.
Къде означава това?
Така че, нека да кажа, че съм по- насочи в моя код, където имам
две променливи, х и у.
И аз искам да реши дали да се направи нещо в моя код
въз основа на, ако х е вярно и у е вярно.
Аз само искам да го направя, ако и двете от тях са верни,
иначе аз не искам да сляза, че пътека, защото това няма да ми помогне.
Какво мога да кажа е, ако х & & ш.
Това ще бъде логически булева изразяване сравняване х и у
и приемането на определена пътека въз основа на това, което им стойности са.
Така че, ако х е вярно и у е вярно въз основа на тази истина маса тук,
само тогава ще слезем по този път.
Ако х, & & ш.
Той е само на true-- и е само вярно, ако х е вярно и у е вярно.
Ако единият е невярна, както виждаме таблицата на истината,
тогава х, така и у не са верни.
И така, х & & у е фалшива.
>> Logical OR е вярно, ако и само ако поне един операнд е вярно.
В противен случай фалшива.
Така логично И изисква както х и у за да е истина.
Logical OR изисква х за да е истина, или у за да е истина, или х, така и у да е истина.
Така че, отново, ние вид намерите себе си в ситуация,
къде отиваме в нашия код, и стигнахме до разклонение на пътя.
И ние искаме да слизат специално пътека, ако х е вярно
или у е вярно, но не задължително, ако и двете са верни.
Но вероятно, ако и двете са верни.
Така че, ако х е вярно и у е Вярно, ние ще отидем по този път.
х е вярно.
Един от тях е вярно, нали?
Ако х е вярно и у е вярно.
Ако х е вярно, и у е невярна, един от тях все още е вярно.
Така че, х или у е все още вярно.
Ако х е фалшива, и у е вярно, един от тях все още е вярно, нали?
у е вярно, в този случай.
Така че, това е вярно, че х или у е вярно.
Само ако х е фалшива и у е фалшива не слизаме по този път,
защото нито х нито у е вярно.
Сега, ако търсите в екрана точно сега
и се чудех какво, че символ е за логическо OR,
тя се нарича вертикална лента.
И ако погледнете в клавиатурата за минута, както правя сега,
това е обикновено точно над Въведете ключ, на повечето клавиатури,
на същия клавиш като наклонената черта.
То също е обикновено полето до квадратните скоби.
Така че, може да е ключ, който ви Не сте написали много в миналото.
Но, ако сте някога правим логически сравнения,
тъй като ние ще се прави по- много в течение, че е
ще бъде полезно да се откриете, че ключ и го използват.
Така че, това е обикновено на същия клавиш като наклонена черта точно над Enter.
>> Крайният логично операторът не е така.
И НЕ е доста ясен.
Той обръща стойността на операнда.
Ако х е вярно, тогава не х е фалшива.
Ако х е фалшива, а след това не е вярно, х.
Понякога вие ще чуете този символ произнася като взрив или удивителен
или не.
Това е почти всичко, на едно и също нещо.
В случай, че чувам, че и говоримо не сте сигурни какво означава това,
това е просто възгласа точка, но понякога е по-
наречена няколко различни неща.
Добре, така че отнема грижа на логически оператори.
Така че, нека да поговорим за релационни оператори.
Отново, ако сте запознати с тази аритметична обратно в началното училище,
вие вероятно сте запознат с това как те работят вече.
Те се държи точно така, както бихте очаквали.
Така че по-малко от това е вярно, в това Например, ако х е по-малко от Y.
Така че, ако х е 4, а у е 6, х е по-малко от Y.
Вярно е.
По-малко от или равно на работи доста по подобен начин.
Ако X е 4, и Y е 4, тогава х е по-малка или равна на у.
По-велик от. х е по-голяма от у.
И по-голяма или равна на х е по-голяма или равна на у.
Ако това е вярно, тогава ще мине този израз,
и ще сляза този път на пътя.
Ако имате за въвеждане, ако х е по-голяма, отколкото у, и X е, в действителност, е по-голяма от Y,
ще направя каквото е подчинено на това състояние.
>> Забележете, че ние не разполагаме с единичен знак за по-малко от
или равна на, както може да бъде запознат с математика от учебниците.
Така че, ние имаме по-малко, отколкото символ, последвано от знак за равенство.
Ето как ние представляваме по-малко от или равно на.
И по същия начин, ще правим, че за по-голямо от или равно на.
>> Крайният две релационни оператори, които са важни
тестване за равенство и неравенство.
Така че, ако х е равно равнява у, е вярно ако х и у е стойност е същата.
Ако х е 10, и у е 10, тогава х е равно равнява у е вярно.
Ако X е 10 и у е 11 х равнява се равнява на годишна не е вярно.
Можем също така да се тества за неравенството, използвайки удивителен знак или взрив или не,
отново.
Ако X не е равна на у, ако това е тестът ние използваме тук,
щяхме да сме добре да тръгвам.
Така че, ако X не е равно на у, ние ще отидем по този път.
>> Бъдете внимателни, наистина тук.
Това е наистина обща и mistake-- една аз със сигурност направи доста, когато
Аз получавах started-- случайно да сбърка
оператор за присвояване, с равно, за оператора на сравнение между половете,
двойни равни.
Това ще доведе до някаква странна поведение в кода си,
и обикновено компилаторът ще да ви предупредя за това, когато се опитате
и събират кода си, но понякога може да сте в състояние да го крия от.
Това не е непременно нещо добро че сте го дебна от, все пак.
Точно така, ако сте прави тест за неравенството,
ако сте се провери дали двама различни променливи имат същата стойност
вътре в тях, се уверете, че да се използва се равнява на равни, а не с равно.
И по този начин вашата програма ще имат поведението възнамерявате.
Аз съм Дъг Lloyd и това е CS50.