>> [MUZYKI]
>> DOUG LLOYD: Cześć, tak, niech mówić o operatorów w C
Tak, widzieliśmy już jeden, w rzeczywistości, równa operatora przypisania.
To pozwala nam po prostu umieścić wartość do zmiennej.
To jest zadanie Operator, pojedynczy znak równości.
W celu manipulowania i pracę z wartościami i zmiennych w C,
mamy pewną liczbę operatorów do naszej dyspozycji, które możemy wykorzystać.
Rzućmy okiem na niektóre z najpowszechniejszych
począwszy od operatorów arytmetycznych.
Jak można się spodziewać, co możemy zrobić, Dość podstawowe operacje matematyczne w C
Możemy dodawać, odejmować, mnożyć i dzielenie liczb za pomocą plusa, minus, gwiazda,
and slash, odpowiednio.
Oto kilka linii Kod, w którym możemy zrobić.
Tak, mamy int x równe y plus 1.
Załóżmy, że gdzieś się powyżej tej linii kodu
mieliśmy powiedział int y jest równa 10.
Jaka jest wartość x po I wykonać ten pierwszy wiersz kodu?
Powiedziałeś 11?
Wy mieliście rację.
Dlaczego?
Cóż, y był 10.
Niektóre mówię int x wynosi 10 plus 1.
10 plus 1 jest 11.
Tak więc, wartość 11 dostaje przechowywany w zmiennej x.
Nie jest tak źle, prawda?
>> Jak o tym następnego wiersza Kod? x równa się x razy 5.
Cóż, zanim wykonywane ta linia kodu, x był 11.
Tak, to jest wartość x po tej linii kodu?
Weź drugi.
Tak, x równa się x razy 5.
x był 11.
Tak, x równa się 11 razy 5.
Lub 55.
Więc jeśli mówi 55, to masz rację.
>> Teraz, to może być trochę mylące, ale z okazji, że przypisanie pracuje w C
Jest to wartość po prawej dostaje przypisana wartości po lewej stronie.
Tak więc, najpierw ocenić x razy 5.
Tak więc, 11 razy 5 jest 55.
A następnie przechowujemy tę wartość w x.
11, że był tam przed jest teraz zastąpiony.
Tak więc wartość X, jest obecnie 55.
Mam nadzieję, że to jest dość proste.
>> Jest jeszcze jeden operator, że masz chyba niekoniecznie słyszałem
nazwał to, ale masz na pewno pracował w przeszłości
jeśli pamiętasz swoje dni na długo Podział z powrotem w szkole.
To się nazywa operator moduł.
Co nie jest to moduł daje resztę
kiedy dzielimy dwie liczby.
Tak więc, jeśli powiem, 13 podzielone przez 4, co jest reszta?
I ta wartość byłaby obliczana przez operatora modułu.
>> Tak, mam wiersza kodu tutaj, int m wynosi 13 mod 4.
I mówię tu w komentarzu wartość, że m jest teraz 1.
Dlaczego mówię, że?
Cóż, nie długo podział w swojej głowa, jeśli pokrywa się ze mną na chwilę.
Tak, mam 4 dzieli się przez 13.
4 idzie do 13 trzech razy z resztą 1.
Tak więc, zasadniczo całe Operator moduł robi
to mówi, kiedy Przepaść, otrzymasz resztę.
Można by pomyśleć, że rzeczywiście Nie strasznie przydatna rzecz,
ale możesz być zaskoczony, w rzeczywistości, przez jak często tego modułu
Operator może się przydać.
>> Istnieje kilka problemów zrobimy CS50, że sobie z tym poradzić.
Jest to również dobre dla prowadzenia takie rzeczy jak losowy numer.
Tak więc, na przykład, jeśli kiedykolwiek słyszałem o generator liczb losowych,
że zamierza dać numer od 0 do pewnego ogromną liczbę.
Ale może tak naprawdę tylko potrzebna jest liczbą od 0 do 20.
Jeśli użyć operatora modulo na tym, że gigant numer
zostanie wygenerowany przez Generator liczb losowych,
masz zamiar podjąć wszelkie ogromna wartość jest, podzielić przez 20,
i dostać resztę.
Reszta może tylko przyjąć wartość od 0 do 19.
Tak więc, należy użyć operatora modulo skorzystać z tej ogromnej liczby
i zredukować go do czegoś trochę bardziej znaczące.
Jestem prawie pewien, że będziesz może wykorzystywać obydwa z tych
w pewnym momencie w przyszłości w CS50.
>> Tak, C daje nam również drogę do zastosowania arytmetyki
operator z jednej zmiennej w trochę bardziej skróconej drodze.
Tak więc, w poprzednim slajdzie, widzieliśmy x równa się x razy 5.
Że pracował.
x razy 5 następnie pobiera przechowywane powrotem w x.
Jest krótszy sposób to zrobić, myśl, i to czasy składni x równa 5.
To samo dokładne jak mówiąc x równa się x razy 5.
To tylko nieznacznie krótszy sposób to zrobić.
A kiedy widzisz niektóre Kod dystrybucji lub
zobacz przykładowy kod, który robi takie rzeczy,
wystarczy znać co oznacza, że ​​składnia.
Na pewno nie ma go używać, ale jeśli nie,
może to uczynić swój kod wygląda trochę płaszcz.
A wiesz, że możesz użyć dowolnego z różne podmioty już mam
widział zamiast razy.
Można powiedzieć, x oraz równa 5, minus wynosi 5, razy, dzielenie i mod.
Wszystkie z tych prac.
>> Jest też coś, to jest tak powszechne w C
że zdecydowaliśmy się udoskonalenia, które jeszcze bardziej.
Inkrementacja zmiennej o 1 lub zmniejszanie zmiennej o 1
jest takie wspólne thing-- szczególnie kiedy mówimy o pętli trochę później
on--, że zdecydowaliśmy zamiast mówiąc coś w stylu X plus jest równa 1,
lub x jest równa x plus 1, mamy nawet Krótko mówiąc podał, że do X plus plus.
Tak, x jest równa x plus 1, X oraz równa 1, i X plus oraz wszystkim zrobić to samo.
Wszyscy przyrost x o 1.
Ale, że zwiększając i zmniejszanie o 1
jest tak powszechne, że mamy Plus minus plus i minus
które pozwalają nam na skrótowym że jeszcze bardziej.
>> Tak, niech przełącz na sekundę i porozmawiać na temat wyrażeń logicznych.
Wszystko to są również rodzaj wpaść ogólna kategoria podmiotów.
Ale wyrażenia logiczne, w przeciwieństwie do operatorów arytmetycznych,
stosuje się do porównywania wartości.
Tak więc raz jeszcze wszystkie logiczne wyrażenia w C ocenia się jeden z dwóch możliwych wartości,
przypomnieć.
Prawda czy fałsz.
To tylko dwie wartości, które Zmienna logiczna może przyjmować.
Możemy wykorzystać wyniki Boolean wypowiedzi
w wielu aspektach w programowaniu.
W rzeczywistości, będziesz robi to całkiem sporo.
>> Na przykład możemy zdecydować, dobrze, jeśli jakiś warunek jest prawdziwy,
Może wezmę tego rozgałęzia się mój kod.
Warunkowe, że tak powiem.
Dowiemy się o tym zbyt szybko.
Albo może być, o ile to prawda, chcę
aby utrzymać ten sposób nad i kółko.
Pętla.
W obu przypadkach, że używamy Wyrażenie Boolean, prawdziwe lub fałszywe,
zdecydować, czy podjąć konkretną ścieżkę.
Czasami, gdy pracujemy z wyrażeń logicznych,
będziemy używać zmiennych typu bool.
Możesz zadeklarowały bool wpisany zmienną,
i będziesz używać w Wyrażenie logiczne.
Ale nie zawsze mają robić.
Jak się okazuje, w C, co nie-0 wartość jest taka sama jak mówiąc prawdziwe.
Gdybyś uznany za zmienna typu Boolean,
i przypisać jej wartość prawda, to tak samo jak deklarowania całkowita
i przypisujemy jej wartość 1, 2, 3, lub naprawdę każda wartość
cokolwiek innego niż 0.
Bo w C, co nie-0 wartość true.
0, z drugiej strony, jest fałszywa.
Opcja ta może być przydać później, aby wiedzieć,
ale po prostu coś, aby pamiętać.
Nie zawsze trzeba używać Zmiennych typu Boolean, kiedy
Pracujemy z wyrażeń logicznych.
>> Istnieją dwa główne typy Boolean Wyrażenia, że ​​będziemy pracować.
Operatory logiczne i operatory relacyjne.
Język nie jest nie strasznie ważne.
To naprawdę tak, jak ja ich grupowania.
I będziesz na pewno, myślę, szybko sobie sprawę, co jest operator relacyjny,
w oparciu o to, co oni, kiedy mówić o nich w drugim.
Ale nie martw się o konieczności zapamiętywania terminu operator logiczny
lub operator relacyjny.
Jestem po prostu używając go do grupy je w logiczny sposób.
>> Tak, rzućmy okiem na trzy operatory logiczne
że zobaczymy dość nieco w programowaniu w CS50
oraz w programowaniu bardziej ogólnie.
Logiczne I to prawda, czy i tylko wtedy, gdy oba argumenty są prawdziwe.
W przeciwnym razie false.
Gdzie to znaczy?
Więc powiedzmy, że jestem ze wskazać w mój kod gdzie mam
dwie zmienne X i Y.
I chcę, aby zdecydować, czy zrobić coś w moim kodu
na podstawie, jeśli x jest prawdą, a y jest prawdą.
Chcę tylko, aby to zrobić, jeśli oba z nich są prawdziwe,
w przeciwnym razie nie chcę iść w dół, że ścieżka, ponieważ nie będzie mi pomóc.
Co mogę powiedzieć, to to, jeśli x & & y.
To będzie logiczne Boolean Wyrażenie porównanie x i y
i biorąc pewną ścieżkę w oparciu o to, co ich wartości.
Tak więc, jeśli x jest prawdą, a y jest prawdą na podstawie tej tabeli prawdy tutaj
Tylko wtedy będziemy iść tą drogą.
Jeżeli x, & & y.
To true-- jest tylko i wyłącznie true, jeśli x jest prawdą, a y jest prawdą.
Jeżeli jeden z nich jest fałszywe, jak widzimy tabelę prawdy,
Następnie oba X i Y nie są prawdziwe.
I tak, x & & y jest fałszywe.
>> Logiczne OR jest prawdziwe wtedy i tylko Jeśli co najmniej jeden operand jest prawdziwe.
W przeciwnym razie false.
Więc logiczne I wymagane zarówno x i y, aby było prawdziwe.
Logiczne OR wymaga x, aby mogło być prawdziwe lub y aby mogło być prawdziwe lub oba X i Y, aby mogło być prawdziwe.
Więc znowu, my niby znaleźć się w sytuacji,
gdzie jedziemy do naszego kodu, i dotarliśmy do rozwidlenia dróg.
I chcemy, aby przejść w dół szczególności ścieżka jeśli x jest prawdziwe
lub y jest prawdą, ale nie zawsze wtedy, gdy oba są prawdziwe.
Ale być może, jeśli oba są prawdziwe.
Więc jeśli x jest prawdą, a y jest prawda, będziemy iść tą drogą.
x jest prawdą.
Jednym z nich jest prawdziwe, prawda?
Jeśli x jest prawdą, a y jest prawdą.
Jeśli x jest prawdą, a y jest fałszywe, jednym z nich jest ciągle prawdziwa.
Więc, x lub y jest nadal prawdziwe.
Jeśli x jest fałszywe, a y jest prawdą, jednym z nich jest nadal prawdziwe, prawda?
y jest prawdą w tym przypadku.
Tak, to prawda, że ​​x lub y jest prawdą.
Tylko wtedy, gdy x jest fałszywe, a y jest fałszywe możemy nie iść tą drogą,
bo ani x, ani y jest prawdą.
Teraz, jeśli szukasz na ekranie teraz
i zastanawiasz się, co to Symbol jest logiczną OR,
to się nazywa pionowy pasek.
A jeśli szukasz na klawiaturze na minutę, co robię teraz,
to zwykle tuż nad Klawisz Enter, w większości klawiatur,
na tym samym klawiszu, co backslash.
Jest to także zwykle rację obok nawiasach kwadratowych.
Tak, to może być klucz, który cię nie wpisał bardzo w przeszłości.
Ale, jeśli kiedykolwiek robić porównania logiczne,
jak będziemy się robi Wiele w toku, to
będzie przydatna znaleźć ten klucz i użyj go.
Tak, to zwykle na tym samym klawiszu jak backslashem tuż nad Enter.
>> Ostateczna operator logiczny nie jest.
I nie jest całkiem proste.
To odwraca wartość swojego argumentu.
Jeśli x jest prawdziwe, to nie x jest fałszywe.
Jeśli x jest fałszywe, to nie x jest prawdą.
Czasami można usłyszeć ten symbol wymawiane jako hukiem lub wykrzyknikiem
albo nie.
To dość dużo wszystko to samo.
W przypadku, gdy słyszę, że w mowie i nie wiesz, co to znaczy,
to tylko wykrzyknik punkt, ale czasami
nazywany kilka różnych rzeczy.
Dobrze, tak, że trwa obchodzi operatorów logicznych.
Więc porozmawiajmy o operatory relacyjne.
Ponownie, jeśli jesteś obeznany z tym arytmetyczna z powrotem w szkole,
Jesteś prawdopodobnie zna w jaki sposób te prace już.
Te zachowują się dokładnie tak, jak można się spodziewać.
Tak mniej niż to prawda, w tym Przykładowo, gdy x jest mniejsze niż y.
Tak więc, jeśli x oznacza 4, a y jest 6, x jest mniejsze niż y.
To prawda.
Mniejsza lub równa działa całkiem podobnie.
Jeśli x oznacza 4, a y jest 4, a następnie x jest mniejsza niż lub równa y.
Lepszy niż. x jest większe niż y.
I większa niż lub równa x jest większa niż lub równa y.
Jeśli to prawda, to będziesz przekazać, że ekspresja,
i pójdziesz w dół że ścieżka na drodze.
Jeśli masz, jeśli x jest większe od y, i X jest w rzeczywistości jest większa od y,
zrobisz to, co jest podlega takim stanie.
>> Zauważ, że nie mają jeden znak za mniej niż
lub równa, jak to może być zna z podręczników matematycznych.
Tak, mamy mniej niż symbol, następnie znak równości.
To jak reprezentujemy mniejsza lub równa.
I podobnie, nie możemy tego zrobić większy lub równy.
>> Ostatnie dwa relacyjna Podmioty, które są ważne
Testujemy dla równości i nierówności.
Tak więc, jeśli x jest równe równe y, jest prawdą Jeżeli X i Y wartość jest taka sama.
Jeśli x oznacza 10, a y wynosi 10, a następnie x równa jest równa y jest prawdą.
Jeśli x oznacza 10, a y oznacza 11, x równa jest równa y nie jest to prawdą.
Możemy również sprawdzić na nierówności za pomocą wykrzyknik lub wybuch, czy nie,
ponownie.
Jeśli x jest równy Y, jeśli to test używamy tutaj,
że będziemy dobrze iść.
Tak więc, jeśli x jest równe y, pójdziemy tą drogą.
>> Bądź bardzo ostrożny.
To bardzo powszechne mistake-- i jeden na pewno się całkiem sporo, gdy
I był już started-- przypadkowo pomylić
operator przypisania, pojedyncze równi, dla operatora porównania równości,
podwójne równi.
Będzie to prowadzić do jakiś dziwny zachowanie w kodzie,
i zwykle kompilator ostrzec o tym podczas próby
i kompilacji kodu, ale czasem może być w stanie przemycić go.
To niekoniecznie jest dobrą rzeczą że przemycić go, choć.
Wystarczy więc, jeśli robisz test nierówności,
jeśli sprawdzeniu, czy dwa inne zmienne mają takie same wartości
wewnątrz nich, należy użyć równa równych sobie, a nie pojedyncze równych.
I w ten sposób program będzie mają zachowania zamierzają.
Jestem Doug Lloyd i jest to CS50.