>> LUCAS FREITAS: OK, myślę, teraz jesteśmy na żywo.
Zapraszamy do CS50 Supersection.
Jesteśmy mniej wygodne.
Nazywam się Lucas Freitas.
Jestem jednym CS50 szef TFS.
To jest Lauren.
>> LAUREN CARVALHO: Cześć, jestem Lauren.
Jestem również szef TF dla CS50.
>> LUCAS FREITAS: Dziś jesteśmy po prostu będzie dać przegląd tego, co wszystko, co
ludzie nauczyli się w ciągu jednego tygodnia, mam nadzieję, dać wam dobry
sens tego, co powinieneś wiedzieć dla problemu ustawione.
>> Ogłoszenia tylko para.
Po pierwsze, godziny pracy.
Godziny urzędowania od poniedziałku dzieją się do czwartku w różnych domach w
Annenberg każdego dnia.
Są to bardzo dobre źródło informacji dla Ciebie faceci przychodzą i zadawać pytania, a
porozmawiać z TFS, a nawet wymiany pomysły z innymi studentami.
Więc należy użyć tego zasobu na Twoją korzyść.
>> Drugą rzeczą jest CS50 Appliance.
Na ostatniej [niesłyszalne]
chłopaki nie mają właściwie mieć urządzenia.
Po prostu zrobił wszystko, co w Twój komputer osobisty.
Ale ten problem, trzeba rzeczywiście mieć maszynę wirtualną, więc być
Pamiętaj, aby pobrać CS50 Urządzenie i jego konfiguracji.
>> I trzecia rzecz to należy rozpocząć podany problem ASAP tylko
dlatego, że jest znacznie łatwiej znaleźć pomóc, gdy jesteś w
początku tygodnia.
Ponieważ ludzie mają tendencję do czekać aż ostatniej sekundy, aby uruchomić zestaw problemów,
a następnie udać się do godzin pracy biura, i tam jest dużo ludzi.
Gdzie jeśli się w poniedziałek, będziesz aby zobaczyć, że można rozmawiać z TF
prawie przez całą noc, i że będziemy mieć więcej niż
chętnie pomożemy.
>> LAUREN CARVALHO: Czy mogę po prostu przestać Ci choć na jedną sekundę?
Czy każdy mógł pobrać CS50 Appliance?
Nie próbowano?
>> LUCAS FREITAS: Aby pobrać, przez sposób można uzyskać instrukcje na
cs50.net/appliance.
>> LAUREN CARVALHO: Prawo.
I zajmuje to trochę czasu dla naszych sys administratorom Ci licencję
klucz, więc zapisać się na darmowy okres próbny pierwszy.
W ten sposób będziesz mieć go przez 30 dni, a następnie czekać na klucz licencyjny
które powinny dać do ciebie przez rok.
>> LUCAS FREITAS: Przede wszystkim, Porozmawiajmy trochę
o CS50 Appliance.
CS50 Urządzenie jest w rzeczywistości wirtualnej Urządzenie, które masz zamiar
uruchomić w swoim własnym komputerze, który jest w zasadzie działa inny komputer
wewnątrz własnego komputera.
Co jest całkiem fajne.
I rzeczywiście jest używany na całym świecie.
Ludzie, którzy się nie dowie, że tech jest on stosowany przez cały czas.
ty?
Może mieć wiele komputerów w jednym urządzeniu.
>> Niech faktycznie spojrzeć w urządzeniu.
Kiedy idziesz do urządzenia po rejestracji, będziesz musiał
umieścić swoje nazwisko i zaloguj się na Harvard więc możemy się wszyscy zarejestrowani.
Zamierzasz zobaczyć w zasadzie tylko tapety, a następnie Dom i śmieci,
a następnie te małe ikony.
Te trzy ikony są rzeczywiście najbardziej ważnych rzeczy, które można mieć w
Twój Appliance.
>> Pierwszym z nich jest gedit, który jest tekstem edytor, jak Notatnik lub jak
wszelkiego rodzaju edytora tekstu.
To jest po prostu coś, czego używać do pisania kodu, a następnie zrobić rzeczy z nim.
>> Druga rzecz, że my tu jest Chrome.
Tak więc, jeśli chcesz korzystać z internetu w urządzeniu, które jest
co można użyć.
>> I trzecia rzecz, to terminal, co jest rzeczywiście bardzo słodkie.
Ludzie zwykle są trochę bać terminal, ponieważ jest to bardzo
starej aplikacji, w których tylko w zasadzie wszystko z typu
klawiatura.
Nie ma dużo interakcji za pomocą myszy.
Ale faktycznie terminal robi bardzo dobre rzeczy.
>> Przede wszystkim, po prostu przejść przez Niektóre polecenia, które
Można stosować w tym terminalu.
>> LAUREN CARVALHO: I tutaj się zatrzymać z nami, jeśli masz jakiekolwiek pytania.
>> LUCAS FREITAS: Tak.
Więc pierwsze polecenie, że mamy na terminalu jest ls.
Czy wszystko w zasadzie oznacza listy, wszystkie pliki i wszyscy dyrektorzy,
że mam w tym miejscu, że jestem na.
Więc jeśli mam ls tutaj, idę zobaczyć że mam kilka katalogów.
Mam pulpit, pobieranie, dzienniki, i vhosts.
To są na niebiesko, ponieważ są wszystkie katalogi.
>> Wtedy masz jakieś inne pliki.
Masz jak cześć i hello.c, które są tylko pliki, a oni w
różne kolory.
Więc to jest bardzo ważne polecenie tylko można zobaczyć, jakie są pliki
i katalogi, które mają w katalogu
jesteś na w terminalu.
Kiedy widzisz jharvard @ urządzenie i potem trochę symbolem tam,
tyldy, które oznacza po prostu, że to jest katalog, że jesteś w tej chwili.
>> LAUREN CARVALHO: Więc wpisując ls jest prawie jak kliknięcie na folderze
, które znajduje się na liście tuż obok, w to pokazuje Wszystko w treści, które są
w tym folderze.
>> PUBLICZNOŚCI: Czy istnieje tekst po hello.c?
>> LAUREN CARVALHO: Och, nie możesz zobaczyć, że ponieważ jest to niebieski.
>> LUCAS FREITAS: To mówi dzienniki i vhosts.
>> LAUREN CARVALHO: To są tylko inne foldery.
Przykro mi, to naprawdę trudno zrozumieć.
Może gdybyśmy wyłączone światła?
Colton, chcesz spróbować znaleźć włącznik światła?
Przepraszam.
Nie myślałem o tym.
>> LUCAS FREITAS: Ale to w zasadzie -
Tak, jeśli można -
>> LAUREN CARVALHO: Powiększenie ekranu.
>> LUCAS FREITAS: nie mam mają tę funkcję.
>> LAUREN CARVALHO: [niesłyszalne].
OK.
Cóż, jest po prostu dużo naturalnego światło w tym pokoju, jak również.
>> LUCAS FREITAS: Po prostu zakładamy, że istnieją dwa inne katalogi istnieją.
>> LAUREN CARVALHO: Tylko o wyrozumiałość.
To jest tylko część, że będziesz patrząc na terminalu.
>> LUCAS FREITAS: następne polecenie jest w zasadzie może chcesz zorganizować
- Twoje pliki
na przykład wszystkie pliki C w jednym katalog, ale nie musisz
katalog dla plików C jeszcze.
Można w zasadzie stworzyć katalog za pomocą terminalu, jak również, co jest
samo, jak kliknięcie prawym przyciskiem myszy i mówiąc: Nowy folder.
Polecenie to zrobić katalog, który jest mkdir, więc w zasadzie "make" i
"Katalog".
>> A następnie można umieścić nazwę katalogu.
Powiedzmy, że chcę być nazywany, Nie wiem, powiedzmy pset1 Doing
ten, po prostu stworzył katalog.
Po prostu sprawdzić, że tam jest.
Więc jeśli ja ls, teraz widzę, dzienniki, i następnie pset1, a następnie vhosts.
Więc mam nowy katalog tam.
>> A następnie po masz nowy katalog, Może chcesz się poruszać
do niego, więc następne polecenie to cd, które po prostu w zasadzie oznacza iść do
specyficzny katalog.
Więc jeśli chcesz iść do pset1, Mogę tylko zrobić cd pset1.
>> LAUREN CARVALHO: cd oznacza zmiany katalog, [niesłyszalne] stanie
pamiętam.
>> LUCAS FREITAS: A teraz widzisz, że zamiast tylko o jharvard
Urządzenie, mam jharvard urządzenia, a następnie pset1, bo to pokazuje
mi, gdzie jestem w tym komputerze.
>> Teraz, jeśli chcę, aby wrócić do Katalog, który był przed tym jednym, że
może zrobić kropkę cd dot, co oznacza po prostu iść do katalogu, który miałem wcześniej,
jak to nadrzędnego katalog, w zasadzie.
A teraz widzę, że jestem Powrót do jharvard.
>> Następną rzeczą, która może to zrobić rm, które jest usunięcie pliku.
Na przykład, niech najpierw zrobić ls aby zobaczyć, co mam tutaj.
Mam cześć i hello.c.
Powiedzmy, że chcę, aby je usunąć.
Mogę zrobić rm cześć.
To się mówi "usunąć zwykły plik komentarzy "A ja mówię" tak ". Teraz, jeśli
zrobić ls, widzę, że jest to tam nie ma.
>> Gdy próbuję użyć rm do katalogu, chociaż, to nie będzie
aby coś zrobić.
To będzie powiedzieć, hej, Nie można usunąć katalogu.
Więc musimy się nazywa ta druga rmdir, które po prostu w zasadzie oznacza
usunąć katalogu.
I może, na przykład, usunąć pset1.
A jeśli ja ls, nie wiem mają go więcej.
>> Wszelkie pytania na ten temat?
Nie?
Tak?
>> PUBLICZNOŚCI: Czy to ważne, aby pozostawić Przestrzeń po - kiedy tylko
zacznij pisać coś w?
>> LUCAS FREITAS: Tak.
Jeśli lubisz cd i katalog, Mam umieścić spację.
Jakie miejsca ty mówisz?
>> LAUREN CARVALHO: przestrzeń pomiędzy cd i [niesłyszalne].
>> LUCAS FREITAS: Tak, będziesz musiał umieścić spacji, ponieważ CD jest
polecenie, a następnie następny ciąg znaków, który wpisać to w zasadzie katalog.
Więc jak to jest argument.
Tak?
>> PUBLICZNOŚCI: Kiedy listy, wszystkich tych, są różne katalogi, prawda?
>> LUCAS FREITAS: Tak, znajdują się w katalogu.
>> PUBLICZNOŚCI: Jakie są różnice wśród katalogów?
>> LUCAS FREITAS: To tylko różnych folderach.
Katalog jest katalogiem w komputerze.
>> PUBLICZNOŚCI: Otwórz folder.
>> LUCAS FREITAS: Tak, to jest wystarczy otworzyć folder.
>> LAUREN Carvalho: Tutaj, te , które są w kolorze niebieskim są rzeczywiste
katalogi, które można dostać się do i następnie zobaczyć kilka rzeczy, które są
w terminie, który, co jest niefortunne ponieważ nie można właściwie odczytać
ci w niebieskim.
I te w białe są tylko pliki , które znajdują się w bieżącym katalogu.
>> LUCAS FREITAS: SO katalogi są foldery.
Pozostałe z nich to pliki.
>> PUBLICZNOŚCI: Co jest polecenie zresetować go lub go usunąć?
LUCAS FREITAS: Aby usunąć?
LAUREN CARVALHO: Aby usunąć?
LUCAS FREITAS: Myślę, że to jest "jasne". Tak.
Więc po prostu wpisać jasne, czy ekran jest zbyt brudny.
Wszelkie inne pytania?
I dowiesz się kilka innych Polecenia po prostu naturalnie podczas
semestr, ponieważ są one bardzo przydatne.
>> Teraz porozmawiajmy o kompilacji.
Rozmawialiśmy o Pseudokod i Kod źródłowy i kod obiektu.
I istnieje wiele kodów, a może chłopaki są zdezorientowani o tym.
Porozmawiajmy trochę o tym, co dzieje się, kiedy piszesz program,
i skompilować go, i staje się plik wykonywalny.
To są wszystkie słowa, że ​​chłopaki Prawdopodobnie słyszałeś, a może nie jesteś
pewien, co się dzieje.
>> Powiedzmy, na przykład, że chcę Napisać program, który mówi "cześć".
Pierwszą rzeczą, która przychodzi w swoim umyśle jest Ci niby staram się myśleć o tym, jak jesteś
zamiar zrobić w swoim umyśle, a pewnie myśli w języku angielskim lub
inny język, tak jak naturalne język, prawdopodobnie.
A potem myślę, dobrze, jeśli chcę, na przykład napisać program
mówi "cześć", chciałbym uruchomić program, Będzie drukować witam, a następnie będę
zamknąć program.
To jest pseudokod.
To jest po prostu w zasadzie próbujesz pochodzić z sekwencji zdarzeń
że masz zamiar zrobić, aby być w stanie napisać program.
>> Wtedy masz kod źródłowy, a Kod źródłowy nie musi
być specjalnie w C. Mówimy o kod źródłowy w C, ponieważ jest to
języka uczymy się, ale oczywiście Kod może być prawie każdym
język programowania, który masz.
Później w semestrze, będziesz nauczyć się innych języków.
To jest również kod źródłowy.
>> Na przykład tutaj, to jest moje źródło Kod, a następnie Jestem w tym
Biblioteka, a następnie rozpocząć Głównym, a następnie wydrukować.
I Laura idzie porozmawiać trochę trochę o tym wszystkim.
Więc to jest kod źródłowy.
>> A co to jest kod obiektu?
Obiekt jest kilka zer i te, w zasadzie.
Co się dzieje, początkowo mają pseudokod, który jest wszystko w języku angielskim.
I mam na myśli, to rozumiem.
Prawdopodobnie znajomych zrozumieć to, i większość ludzi
zrozumieć ideę.
Ale komputery są naprawdę głupi, a oni nie rozumie po angielsku, więc
nie tłumaczyć, że w coś, zwykle tłumaczone na niektóre
język programowania.
>> A może myślisz o programowaniu język jako coś w rodzaju języka
że powiesz komputera Jak mówić i rozumieć.
Jesteś w zasadzie pisanie czegoś w język, że zarówno Ciebie i Twojej
Komputer zrozumieć.
To jest kod źródłowy.
Formularz tak dzieje pseudokod do źródła Kod, to do Ciebie.
Jest to w zasadzie masz swój program.
>> Ale problemem jest to, że komputer nawet nie
zrozumieć język programowania.
Nie rozumiem Kod źródłowy w ogóle.
To właściwie tylko rozumie zer i jedynek.
Więc mamy to bardzo magiczne rzeczy o nazwie kompilator, który w zasadzie jest
będzie się nazywa, że ​​ci źródło napisał w języku zarówno ty
a komputer mówić, a teraz jesteś zamierza przekształcić, że w
zer i jedynek.
Więc w zasadzie to, co robi jest kompilator robi się kod źródłowy, w tym przypadku C,
to będzie przekształcenie go w zer i te, które komputer
rozumie i może plik wykonywalny z niego.
>> Czy to ma sens?
Możesz tylko myśleć jak kompilator jakiś tłumacz, który jest
pomaga wyjaśnić do komputera dokładnie, co to ma do zrobienia.
>> Ale jak mogę skompilować.
Wróćmy do urządzenia, a powiedzmy, że robię ten program.
Najpierw mam zamiar stworzyć katalog tutaj, i mam zamiar to nazwać
"Praktyka". Teraz idę do nawigacji do katalogu, więc praktyka cd.
Teraz jestem w praktyce.
>> Teraz chcę zacząć gedit, więc jak mam to zrobić?
Mogę albo kliknij tutaj, czy mogę po prostu dosłownie wpisz "gedit", a to będzie
otworzyć dla mnie.
>> Teraz mam zamiar wpisz swój program, tak dokładnie to, co napisałem w slajdzie.
Jestem deklarując bibliotekę.
Robię int main, pustkę.
A teraz robię printf, witam.
Teraz mam zamiar zapisać to.
Ujmę to w praktyce, i Mam zamiar zadzwonić to hello.c.
Więc teraz to zapisane.
>> Jeśli chcę go skompilować, tak naprawdę Można zrobić to w dwóch różnych miejscach.
Mogę też zrobić to w oknie terminala, więc ten wielki, lub możesz
użyć gedit, że faktycznie ma okno terminalu tutaj.
Więc może po prostu zrobić bardzo łatwo Twój kod, a następnie możesz po prostu wpisać
co tutaj, i spróbuj go skompilować.
>> Tak jak skompilować kod?
Najprostszym sposobem, że mamy to za pomocą Marka, która jest funkcją
jest w zasadzie będzie skompilować kod.
Musisz tylko powiedzieć, aby przywitać, więc "Make" i nazwa programu.
>> Ups.
To jest niewygodne.
>> LAUREN CARVALHO: Czy [niesłyszalne]?
>> LUCAS FREITAS: Przepraszam.
I nie zapisać go w odpowiedniego katalogu.
Przyjdź do praktyki, a teraz zapisać go jako hello.c.
Przykro mi.
Teraz jest to zapisane.
>> Pozwól mi zrobić ls i być pewien, że to tutaj.
OK, teraz to tutaj.
Więc teraz, jeśli mam zrobić cześć, to pluje wiele rzeczy, ale to po prostu daje
mnie kolejna linia do terminalu, który Oznacza to, że jest to skuteczne.
Więc teraz, jeśli mogę zrobić ls ponownie, faktycznie zobacz ten plik na zielono, co jest
plik wykonywalny.
>> A potem, jeśli chcę, aby go uruchomić, wszystko, Muszę zrobić to kropka ukośnik komentarzy.
To się przywitać tutaj, tak to jest dokładnie to, o co pytam go.
>> Jest jeszcze jeden sposób na kompilacji, który używa szczęk.
Dzyń jest tylko kompilator, że mamy, i jest to trochę bardziej verbose
skompilować.
Ale to działa tak samo dobrze.
Więc jeśli ja szczęk, a następnie-O, a następnie Nazwa, że ​​chcę dać
plik wykonywalny, więc powiedzmy, "Hello". A następnie plik, który chcę
skompilować, hello.c.
To również będzie skompilować.
I masz tu plik, a Mogę tylko jak go wykonać.
Więc oboje pracują.
>> Czy to ma sens?
Masz pytanie?
>> PUBLICZNOŚCI: Można powiększyć w trochę?
>> LUCAS FREITAS: Przepraszam?
>> PUBLICZNOŚCI: Zoom?
>> LAUREN CARVALHO: Myślę, że ci może po prostu Command Plus.
>> LUCAS FREITAS: polecenie co?
>> LAUREN CARVALHO: Command Plus.
>> LUCAS FREITAS: Nie.
>> LAUREN CARVALHO: Och, to nie jest będzie działać, ponieważ -
to dlatego, że ustawienie rozdzielczości dla tej rzeczy.
>> LUCAS FREITAS: nie mam że możemy powiększyć obraz
Tak, nie można powiększyć.
Masz inne pytanie?
Przepraszam.
>> PUBLICZNOŚCI: Czy można powtórzyć szczęk?
>> LUCAS FREITAS: brzęk?
Dzyń to samo, co uczynić, ale Różnica polega na tym, że najpierw będę
napisać szczęk, co jest polecenie, potem mam zamiar zrobić -0, wszystko, co jest
tylko to, co mamy zamiar dowiedzieć się później, jak flagą.
Więc myślę, że zawsze umieścić-o.
>> A następnie pierwszy, masz zamiar umieścić nazwa pliku wykonywalnego,
w zasadzie plik, że jesteś zamierza stworzyć.
Więc mogę powiedzieć, na przykład, hello2 i to plik, który chcę skompilować,
co jest. c plik.
Więc to hello.c.
Czy to ma sens?
>> PUBLICZNOŚCI: Dzień dobry, co?
Co to jest?
>> LUCAS FREITAS: hello.c.
A jeśli go skompilować, a jeśli Mam ls, ja też mam
hello2 że właśnie opracowywane.
I gdy próbuję go uruchomić, to będzie zrobić dokładnie to samo, jak cześć,
po prostu wydrukować komentarzy.
>> PUBLICZNOŚCI: Jak się do marki można umieścić hello.c po?
>> LUCAS FREITAS: W makijażu, można nie trzeba umieścić. c..
W marki, po prostu powiedzieć nazwa programu.
Nie masz do powiedzenia. C..
Ale dla brzękiem, powinieneś.
>> PUBLICZNOŚCI: Z brzękiem czy też trzeba dodać [niesłyszalne]
>> LAUREN CARVALHO: Tak.
Tak masz również do biblioteki.
>> LUCAS FREITAS: Tak, to jest coś będziemy używać później.
To się nazywa łączenie, i myślę, że jesteśmy Porozmawiamy o tym później.
Kolejne pytanie?
>> PUBLICZNOŚCI: Czy można umieścić dzyń kropka kreska?
>> LUCAS FREITAS: Nie.
Kropka kreska jest po prostu otworzyć plik wykonywalny.
Tak, dzyń, wystarczy napisać "szczęk" i Następnie, jeśli chcesz, aby otworzyć
plik wykonywalny, który właśnie kompilowane, to nie dot
slash i nazwisko.
Czy to ma sens?
>> PUBLICZNOŚCI: Jeśli było tylko zmianą [Niesłyszalne] do Hello World, czy
trzeba go ponownie skompilować?
>> LUCAS FREITAS: Tak.
jeśli chcę powiedzieć, na przykład, "hello tam ", mogę tylko zapisać, a ja
tylko skompilować ponownie.
Więc pozwól mi zrobić markę komentarzy.
A jeśli ja witam, to będzie powiedzieć "witam". Ma sens?
Wszelkie inne pytania?
>> PUBLICZNOŚCI: Czy masz do włączenia standard I / O, aby koordynować pracę?
>> LUCAS FREITAS: Tak.
Standard I / O jest w zasadzie biblioteka zawiera
Realizacja dla printf.
Tak, że na dobrą rzeczą Najwięcej zawiera stdio.
, Że jest w tym, że biblioteki w zasadzie ma kilka różnych
narzędzia, które można wykorzystać.
jeden?
Spośród nich printf to funkcja że w zasadzie wydruki
komunikaty na ekranie.
>> Wszelkie inne pytania?
Nie?
OK.
Teraz porozmawiajmy o -
>> LAUREN CARVALHO: Miejmy tylko Do przewodnika stylu.
Czy chcesz po prostu znaleźć go tutaj?
>> LUCAS FREITAS: Więc idziemy mówić o stylu.
>> LAUREN CARVALHO: Och, David nie dokończył.
OK.
Dlaczego nie wrócić do styl na samym końcu?
To faktycznie został zaktualizowany jak mówimy.
>> LUCAS FREITAS: Tak.
Niech drogę David zakończyć to.
>> LAUREN CARVALHO: Can przełączamy rzeczywiście?
>> Więc mam nadzieję, że wszyscy byli korzystających podstaw.
Niestety, nadszedł czas, aby odsuwają się od tego -
niestety nadszedł czas, aby odejść z tych pięknych blokach programowych
na C. Ale na szczęście, wszystkie programowanie konstruuje, że masz
pracuje w Scratch są z bezpośrednio tłumaczony na C, a my
zamiar zacząć uczyć się o niektóre z nich już teraz.
Niech najpierw porozmawiać o warunkach w wyrażeniach logicznych.
>> To działa na rezerwie Bateria.
>> LUCAS FREITAS: Jak jest że nie działa?
OK.
Pójdziesz tam, mam zamiar dostać -
>> LAUREN CARVALHO: Więc warunki są ważne, ponieważ pozwalają nam
wprowadzenie logiki do naszych programów.
Oto przykład z warunku w ramach programu C.
Zauważmy, jak ta -
Więc ten blok stan tutaj, to Instrukcja printf nie wykona
chyba że stan w ciągu nawiasy, n większą od 0,
wartość true.
>> Teraz wszystkie warunki wewnątrz f Oświadczenia są wyrażenia logiczne,
co oznacza, że Są tylko dwie opcje.
Mogli albo ocenia się prawdą, lub mogą oceniać na false.
Więc, więc to ma sens, prawda? n większa niż 0, oznacza to, że jest dodatnia
Liczba, co oznacza, że ​​wydrukowana z "wybrałeś liczbę dodatnią."
>> Istnieje wiele wyrażeń logicznych które mogą stanowić tę chorobę
Oświadczenie startowych.
Mamy mniej niż.
Jest to mniej niż lub równe.
To jest po prostu śmieszne [niesłyszalne].
Jeśli chcesz printf wystąpić, jeśli jest większa niż lub równa 0, to
wybrałbyś tego.
Więc po prostu dołącza prawo równego po znaku większości.
>> Równe równe, który różni się od tylko jeden znak równości, równa równa
w rzeczywistości oznacza, że ​​cokolwiek jest na lewa strona jest taka sama jak
co z prawej strony tego gdzie jeden znak równości jest, co?
Co to jest tylko jeden znak równości?
Zadanie.
>> LUCAS FREITAS: Kto to powiedział?
Czy to cukierek?
O, nie.
Przepraszam.
Oboje dostać cukierka.
Och, dobrze!
Trzy osoby dostać cukierka!
>> LAUREN CARVALHO: Więc ten jeden tutaj jest operatorem huk poprzedzających
znak równości, więc to nie równa.
Więc jeśli to było w moim stanie, Korpus Warunek ten
wykonać tylko, jeśli cokolwiek jest w lewo nie jest taki sam, jak
co jest po prawej stronie.
>> Mogę mieć tylko wykrzyknik.
Faktycznie zobaczymy w funkcji ślizgać jak by to wykorzystać.
>> LUCAS FREITAS: Masz pytania?
Nie?
>> LAUREN CARVALHO: Możemy połączyć je Wyrażeń logicznych do budowy bardziej
skomplikowanych instrukcji warunkowych.
Więc tutaj, jeśli cokolwiek jest po lewej strony podwójnych prętów lub
co jest na prawej stronie podwójne paski wartość true,
wtedy będziemy drukować nieważne.
A następnie na dół, jeśli cokolwiek się z lewej strony dwa
znaki ampersand i wszystko co na prawo strony dwóch Ampersands
wartość true, a następnie będziemy drukować ważne.
Podwójne bary nazywane są logiczne Operator OR są podwójne znaki ampersand
zwany operator logiczny AND.
Tak?
>> PUBLICZNOŚCI: Czy te właśnie małe litery l's?
>> LAUREN CARVALHO: Nie.
Oni rzeczywiście -
wiesz, luz, jak powyżej klucza zamian?
Czy widzisz to?
>> LUCAS FREITAS: To rzeczywiście bar.
>> LAUREN CARVALHO: To rzeczywiście zaledwie dwa bary.
>> PUBLICZNOŚCI: Czy można używać równa równa ciągów?
>> LUCAS FREITAS: Nie.
Idziemy się uczyć później coś o tym.
>> LAUREN CARVALHO: Jest funkcja które można użyć.
Ale nie musisz się obawiają się, że jeszcze.
>> Co jeśli dam ten program numer 5?
Co będzie drukować?
>> PUBLICZNOŚCI: [niesłyszalne]
ważne.
>> LAUREN CARVALHO: Ważne?
Tak.
Nie wiem, kto ma to.
>> [Śmiech]
>> LAUREN CARVALHO: To jest rodzaj przerażające [niesłyszalne].
>> PUBLICZNOŚCI: Tak podwójne i, że po prostu oznacza, i?
>> LAUREN CARVALHO: Tak.
Tak, liczba 5 jest zarówno większa niż 0 i mniejsze niż 100.
>> PUBLICZNOŚCI: Dlaczego to będzie jeden?
>> LAUREN CARVALHO: Jedno jest Ampersand faktycznie coś innego, i to
operatory bitowe, które będziesz poznać później.
Ale to jest coś, co faktycznie działa bitami danej liczby.
>> LUCAS FREITAS: Po prostu myślę, że nie muszą martwić się o to teraz.
>> LAUREN CARVALHO: Myślę, że jest to prawdopodobnie zbliża się w przyszłym tygodniu.
>> LUCAS FREITAS: Jeszcze jakieś pytania?
Nie?
>> LAUREN CARVALHO: Tak widzieliśmy, że blokować może stać samodzielnie, ale może
również być połączony z i innego bloku.
Tak więc w tym przypadku, gdy n jest większe niż 0, będziemy drukować "You
podniósł liczbę dodatnią. "inny, co oznacza, gdy wynosi 0 lub jest mniejsze
od 0, mamy zamiar wydrukować, "Wybrałeś liczbę ujemną."
>> Interesującą rzeczą jest to, że te wykluczają się wzajemnie.
Nigdy nie będzie to przypadek w którym to, co
może zarówno drukować.
>> Jestem pewien, że pracował z if / else box w Scratch, więc powinno to być
całkiem znajomo.
Tak?
>> PUBLICZNOŚCI: Czy potrzebujemy przestrzeni między int n równa GetInt następnie miejsce w
if?
Jak możemy korzystać z linii [niesłyszalne]
>> LAUREN CARVALHO: Oh, tu miejsca?
>> PUBLICZNOŚCI: tak, ale podwoić przestrzeń.
Nie, iść w górę.
W górę.
>> LUCAS FREITAS: Tylko linia?
>> PUBLICZNOŚCI: Tak.
>> LUCAS FREITAS: Wystarczy pusta linia?
>> PUBLICZNOŚCI: Tak.
>> LAUREN CARVALHO: Pusty wiersz?
Nie.
To tylko stylistyczne rzeczą.
>> LUCAS FREITAS: To tak jak czasem po prostu pominąć pewne linie, tak
że kod nie wygląda Ogromny blok tekstu.
>> LAUREN CARVALHO: Myślę, że to, co się stało było to, że mieliśmy komentarz tutaj, ale
wziął go tak, że chłopaki nie mają myśleć raczej o kodzie
niż tylko przeczytać mój komentarz.
Ogólnie rzecz biorąc, naprawdę nie będzie odstęp wpływa na sposób, w jaki program działa.
To bardziej stylistyczne rzeczy.
A kiedy mamy instrukcji stylu uaktualniony i gotowe do końca
supersection, porozmawiamy o tym więcej.
>> Coś jest nie tak z ten program, prawda?
Ponieważ nie jest to 0 liczba ujemna.
Zobaczmy więc, czy możemy to naprawić.
>> Można sobie wyobrazić z tym mówi, prawda?
Jeżeli n jest większe niż 0, drukujemy, "Ty podniósł liczbę dodatnią. "Wtedy jeszcze
jeśli n jest mniejsza niż 0, "Wybrałeś liczba ujemna. "innego," Wybrałeś
0 ".
>> Teraz ciekawe jest to, że może to trwać wiecznie.
Można mieć jeśli jest innego bloku, jeśli blok, blok kolejny if, else if,
else if, else if, else, w zasadzie tak długo, jak chcesz.
I kiedy tak skonstruowane, wszystko to będzie
wykluczają się wzajemnie.
Tak?
>> PUBLICZNOŚCI: Więc dlaczego nie możesz po prostu użyć kolejny, jeśli zamiast [niesłyszalne]?
>> LAUREN CARVALHO: W tym przypadku, tak, może użyć innego, jeśli, i byłoby
absolutnie w porządku, bo same są warunki
wykluczają się wzajemnie.
Ale jeśli warunki nie były wyłącznym od siebie, to byłoby
zmusić ich do nie zarówno oceny, czy to ma sens.
>> PUBLICZNOŚCI: W tym przypadku, możemy zagnieździć drugie, jeśli w pierwszym, czy?
>> LAUREN CARVALHO: Jeśli - Co masz na myśli?
>> PUBLICZNOŚCI: Jeśli oba warunki nie wykluczają się wzajemnie?
>> LAUREN CARVALHO: Jeśli warunki nie wykluczają się wzajemnie?
Ale chcesz tylko jeden z nich do uruchomienia?
>> PUBLICZNOŚCI: Chcesz po prostu Jeśli natomiast w innym miejscu.
>> LAUREN CARVALHO: Tak.
Nie zawsze będą partie sposobów, że można to zrobić.
Można na pewno gniazdo je.
I zobaczysz w przyszłym slajdu można mieć wiele IFS, tylko jeden
po drugim.
Ale to jest sposób logicznie organizowanie przepływu programu.
>> LUCAS FREITAS: I jest jeszcze jedna rzeczą jest to, że jesteś proszony o oddanie
jeśli i wtedy inny, jeśli.
, Który działa idealnie, ale to jest złe projekt, bo w zasadzie, jeśli
sprawdź najpierw, czy, i można zauważyć, że liczba jest większa niż 0, to
można po prostu zakończyć program.
Nie musisz sprawdzić, czy to jest mniej niż 0, prawda?
>> Ale jeśli nie, jeśli, jeśli, to będzie sprawdzić zarówno, a jeśli to zrobię, jeśli jeszcze jest,
to będzie sprawdzić, czy jest większa niż 0.
Jeśli tak jest, to nie będzie się nawet spojrzeć na pozostałych liniach kodu.
Więc w zasadzie to jak sprawdzanie dwa razy niepotrzebnie, więc dlatego
zrobić, jeśli if.
Wszelkie inne pytania?
>> PUBLICZNOŚCI: Tak Funkcje z innymi, jeśli jest taka sama jak
jeśli było to tylko, jeśli?
>> LAUREN CARVALHO: Nie.
Jesteś rzeczywiście zobaczymy w następnym przesunąć przykład, w którym można
różne.
W tym przypadku jest to prawie to samo.
>> Więc tutaj mamy przykład wielokrotności if i
funkcjonalność nie jest sama jak gdybym powiedział, że jeśli tylko
więcej, jeśli więcej, jeśli inaczej.
Powiedzmy, że o tym, co będzie drukować czy mogę wpisać numer 95
do tego programu.
>> PUBLICZNOŚCI: [niesłyszalne]
>> LAUREN CARVALHO: A potem?
>> PUBLICZNOŚCI: [niesłyszalne]
>> LAUREN CARVALHO: Tak.
Tak więc w tym przypadku, te warunki nie wykluczają się wzajemnie o siebie.
A ponieważ nic nie zatrzymując warunek ten od oceny, czy to
jeden już ma, są tylko wszystko się wydrukować.
Więc jak można to naprawić?
>> PUBLICZNOŚCI: IFS jeszcze?
>> LAUREN CARVALHO: Możesz użyć IFS indziej.
Może zmienić kolejność z nich, prawda?
Jeśli zrobiłem ten jeden pierwszy?
Cóż, tak naprawdę, nie.
To nie będzie działać na 95.
>> LUCAS FREITAS: Nie, tylko IFS indziej.
>> IFS innego: LAUREN CARVALHO byłaby ustalona to.
Czy to wyjaśnić zamieszanie pomiędzy IFS i IFS indziej?
>> PUBLICZNOŚCI: Chciałem cię zapytać, czy można użyć innego, jeśli nie, to zatrzymać?
>> LAUREN CARVALHO: Prawo.
Tak tylko ten pierwszy.
Gdybym wszedł do numeru 95, tylko to byłby drukowany i nigdy
by rozwijał się do innego.
>> LUCAS FREITAS: Wystarczy trochę pomyśleć to jak to się dzieje, to zrobić.
Inny jest jak Jeśli nie, sprawdź za to, a następnie zrobić.
Tak jak oni wszyscy są wzajemnie wykluczają.
Nie możesz dostać się do dwóch nad tymi.
>> PUBLICZNOŚCI: Czy można używać logiczne I w tej sytuacji?
>> LAUREN CARVALHO: Tak.
To kolejny sposób, że mogliśmy nie rozwiązała ten problem.
My mogli określono waha się, prawda?
Więc mogę powiedzieć, jeśli n jest większe od 90 do mniej niż -
Cóż, myślę, że to naprawdę nie robi znaczenia, ale tutaj mogę powiedzieć, czy
n jest większa niż 80 i mniejsza niż 90 °.
Większa niż 70, mniej niż 80 lat.
, Który również pracował.
>> [Śmiech]
>> LUCAS FREITAS: Ona jest przerażona.
>> LAUREN CARVALHO: Nie bój się.
>> LUCAS FREITAS: To nie jest , że będzie źle.
To jest po prostu, że jest to niepotrzebne gadatliwy.
Podobnie jak w informatyce, trzeba być tak proste, jak to możliwe tak długo, jak
masz funkcjonalność.
Chcesz cukierka?
>> PUBLICZNOŚCI: Nie potrzebuję go.
>> LAUREN CARVALHO: Przerażasz każdy, Lucas.
>> LUCAS FREITAS: Przepraszam.
>> LAUREN CARVALHO: David wspomniał również te przełączyć oświadczenie w klasie.
W zasadzie to, co się dzieje jest przełącznik Ochrona trwa zmienną.
W tym przypadku bierzemy liczbę całkowitą.
>> Jeśli całkowita wynosi 1, będziemy wydrukować, "Wybrałeś małe
liczba. "Jeśli całkowita wynosi 1:" Ty odebrał szereg średni ". Jeśli
całkowita wynosi 3, "Wybrałeś wysoki liczba. "Miałem też przypadek domyślny
tu, ale to nie pokazuje się, co jest źle.
>> Zasadniczo, jest to tylko inna składnia.
Mogliśmy realizowane dokładnie ten samo z if i else, jeśli
oświadczenia.
Ale kiedy jest wiele inny Warunki i wiele inny
wariacje na temat tego, co chcesz zrobić dla Każde wejście, to jest opcja.
Więc to jest po prostu dobry składnia wiedzieć.
Tak?
>> PUBLICZNOŚCI: Dlaczego nie backslash n, w pierwszej?
>> LAUREN CARVALHO: Na górze?
Nie ma tam lewy ukośnik n bo GetInt -
jeśli spróbujesz to, że będziesz daje ten wiersz.
Podaj mi liczbę całkowitą między 1 a 3.
I jeśli kładę luz n, że będzie zabierz mnie do następnej linii, ale po prostu
chciał, aby wpisać liczbę całkowitą tuż po dwukropku.
Mogłeś umieścić luz n.
To nie jest wielka sprawa.
Tak?
>> PUBLICZNOŚCI: W tym kodzie, to Przypadek jeden, jest to, że ze względu
jest to pierwszy przypadek?
Ponieważ -
>> LAUREN CARVALHO: Nie, nie, nie.
Więc to jest mi liczbę całkowitą między 1 a 3.
Jeśli n jest 1, wydrukować to.
Gdybym poprosił o listach, może mam powiedział mi literę od A
i C. Wtedy to będzie przypadek A.
>> PUBLICZNOŚCI: [niesłyszalne].
Sprawa nie tylko [niesłyszalne]
>> LAUREN CARVALHO: Tak, jasne.
Tak?
>> PUBLICZNOŚCI: Co zrobić, jeśli chcesz mieć więcej relacyjnej wypowiedzi?
Więc zamiast mówić n wynosi 1, [niesłyszalne]
n jest większe niż 1 w pierwszym przypadku?
>> LAUREN CARVALHO: Właściwie, jeśli nie określić niektóre z tych przypadków, to byłoby
należy prowadzić w dół.
Tak naprawdę, być może nie jest to o co prosisz.
>> LUCAS FREITAS: Myślę, że z pytaniem, czy sprawa dotyczy większej niż 0, wypadku
mniej niż 0.
>> LAUREN CARVALHO: Może przełącznik Oświadczenie nie jest to, co chcesz
do zastosowania w danym przypadku.
>> LUCAS FREITAS: Instrukcja switch jest tylko na wartości, więc jesteś sprawdzanie
wartość jest jak to czy tamto.
Nie można więc rzeczywiście stawiać warunki.
>> PUBLICZNOŚCI: Co zrobić, jeśli osoba Typy z [niesłyszalne]?
>> LAUREN CARVALHO: To byłoby mój domyślny przypadek, który niestety
nie można zobaczyć.
>> LUCAS FREITAS: [niesłyszalne] ich zobaczyć.
>> LAUREN CARVALHO: Właściwie, Wiesz co?
Chodźmy na studia 50, i będę tylko powiększyć slajdów na badania
50, ponieważ jest to po prostu irytujące.
Więc pozwól mi faktycznie przejść do stanu.
To jest po prostu będzie trochę potrwać.
>> Dobrze.
Więc, przepraszam.
Przynajmniej teraz będziemy mogli zobaczyć wszystko bez to odcięcie.
Dobrze.
>> Tak więc, jeśli umieścić w 10, to byśmy domyślne tutaj do mojego przypadku domyślnym, a ja
po prostu wydrukować nieważne, bo poprosił ich, aby wprowadzić liczbę całkowitą
między 1 a 3.
Wszelkie inne pytania?
Tak?
>> PUBLICZNOŚCI: Powiedzmy, że na razie jeden, sprawy trzy, że chcesz, że jest wszystko
samo, więc wybrał numer to nie jest liczba średnich.
W tym przypadku byłoby to zbędne?
Czy po prostu zmienić tekst w obu wśród nich, lub może nie być pewne
redundancja?
Czy jest jakiś sposób, aby połączyć [Niesłyszalne]?
>> LAUREN CARVALHO: Istnieją sposoby, aby połączyć je, ale wierzę, że można
tylko łączyć sąsiadujące z nich.
Więc jeśli nic nie definiują w przypadku dwóch, to byłoby
zastosowanie do obu przypadkach.
Och, gdybym nie kłaść na sprawy jeden, to odnosi się to zarówno do
przypadek jeden i dwa.
Jeśli to ma sens.
>> PUBLICZNOŚCI: Czy możesz powtórzyć to?
>> LUCAS FREITAS: OK.
Jeśli tak w zasadzie, jak trzeba to samo, ale nie szuka
coś tutaj, można być albo za Przypadek jeden lub przypadek dwa, to zrobić.
Prawda?
I przerwa ta oznacza, jeśli się w tym przypadku, po prostu zostawić.
Więc to oznacza, hamulce.
Więc gdybym to zrobił, to patrz, to jedna sprawa, a ty po prostu to zrobić.
Jeśli to był przypadek dwóch, to również po prostu tu przyjechać i zrobić.
>> PUBLICZNOŚCI: Ale można to zrobić?
Jeśli coś jest dla Sprawa dwa [niesłyszalne]
>> LAUREN CARVALHO: nie wierzę można to zrobić.
Nie sądzę, że można przejść wokół.
Możesz to zrobić, Rob?
Myślę, że nie.
>> PUBLICZNOŚCI: Więc tylko jeden numer Można go po wypadku, prawda?
Nie może być przypadek jeden, przecinek, dwa?
>> LUCAS FREITAS: Nie, nie możesz.
Na pewno nie.
>> LAUREN CARVALHO: To znaczy, chodzi o to, jest to opcja, a to nie może
zmieścić się na przypadek użycia, więc wtedy będzie używać, jeśli warunki.
>> PUBLICZNOŚCI: Więc dlaczego chcesz to zrobić?
Przełącznik?
>> LAUREN CARVALHO: Chciałbym użyć tego jeśli masz bardzo określone -
faktycznie, Lucas, jest pan blokuje.
>> LUCAS FREITAS: Och, przepraszam.
>> LAUREN CARVALHO: Jeśli masz bardzo określonych zachowań, które mają na
każdego wejścia, może to być trochę bardziej zwięzły niż wypisywanie
if dla każdej z nich.
>> PUBLICZNOŚCI: Co robi znów przerwa na myśli?
>> LAUREN CARVALHO: przerwa oznacza zatrzymać.
Pamiętaj, że jeśli nie mam tej przerwy tutaj, byśmy właśnie spadł
w kolejnym przypadku.
>> LUCAS FREITAS: Przerwa znaczy dostać z instrukcji switch.
Bo jeśli jest to 1, chcę Aby wydrukować i zostawić.
Nie chcę, aby sprawdzić coś jeszcze.
>> PUBLICZNOŚCI: Nie chcesz wydrukować niczego innego.
>> LUCAS FREITAS: Tak.
Bo to wykluczają.
>> PUBLICZNOŚCI: A czy to tylko postępować w kolejnym przypadku, gdy pierwszy przypadek
Nie jest prawdą?
Czy też badać wszystkie przypadki w tym samym czasie?
>> LUCAS FREITAS: Nie, Kontrole sekwencyjnie.
Sekwencyjnie, tak.
Jeszcze jedno pytanie, to mamy do przejść więc możemy obejmować wszystko.
Tak?
>> PUBLICZNOŚCI: Więc na razie, może mieć zrobić coś poza tym tylko z jednego?
Czy możesz dać jej zakres?
>> LUCAS FREITAS: Nie.
>> LAUREN CARVALHO: Nie sądzę, możesz dać mu wybór.
>> LUCAS FREITAS: Nie możesz nie może dać mu wybór.
>> PUBLICZNOŚCI: przypadek jest specyficzny [Niesłyszalne].
>> LUCAS FREITAS: Switch jest swego rodzaju wartości.
Robisz różne rzeczy w zależności na wartości, określonej wartości.
Nie można zrobić wybór, nie można robić nic innego.
To jest po prostu kolejnym narzędziem, aby zobaczyć.
>> LAUREN CARVALHO: Większość ludzi nie używać switch bardzo w CS50,
ale to tam.
>> Dobrze.
Więc następną rzeczą, będziemy rozmawiać o to operatora trójskładnikowych.
To jest po prostu inny typ z warunkowym.
W zasadzie to, co się tutaj dzieje jest jestem z prośbą o liczbę całkowitą, a jeżeli brak jest
większa niż 100, mam zamiar wydrukować "Wysoki". Jeśli tak nie jest, mam zamiar
wydrukować "niski".
>> Więc co robi jest warunek tu w nawiasie, a
może trochę, że w grę tak pytam, czy
jest to prawda, czy nie.
Jeśli to prawda, mam zamiar to zrobić w pierwszej kolejności rzecz, a jeśli to nie jest prawda, jestem
zamiar zrobić ten drugi rzecz.
>> Wszelkie pytania na temat trójskładnikowych operatora?
>> LUCAS FREITAS: Chcę tylko zwrócić uwagę, ze David jest to, że gdy masz
Stan -
>> LAUREN CARVALHO: Myślę, że David jest oglądania przez strumień żywych.
>> LUCAS FREITAS: Robi strumień życia teraz.
Więc gdy masz kondycję, jesteś powinniśmy umieścić nawiasy klamrowe,
tak jak mamy w przełączniku Oświadczenie tutaj.
Mamy tutaj nawiasy klamrowe.
Niezależnie od warunków, jesteś powinien również umieścić to.
>> LAUREN CARVALHO: Zobaczysz to w przewodniku.
Nie rzeczywiście mają Podręcznik stylu teraz.
Myślę, że David nadal pracuje.
>> LUCAS FREITAS: Powiedział, że to jest po prostu działa teraz.
>> LAUREN CARVALHO: Och, to jest pracy teraz?
OK.
Więc najwyraźniej w tym roku w stylu przewodnika, nawet jeśli tylko jeden wiersz,
musisz umieścić te nawiasy klamrowe w.
Nie koniecznie na Funkcje programu.
A może powinniśmy po prostu odpocząć po warunki i prosto
w przewodniku, aby oczyścić niektóre z tych rzeczy?
>> LUCAS FREITAS: Tak.
Czy masz pytanie?
>> PUBLICZNOŚCI: Nie, ja po prostu czekać do przewodnika stylu.
>> PUBLICZNOŚCI: Czy możesz wrócić do operatora potrójnego?
>> LAUREN CARVALHO: Trzyelementowy, tak.
>> LUCAS FREITAS: Operator Trzyelementowy jest w zasadzie, jeśli else, ale
zamiast mieć dwie linie sprawdzenia if a następnie
indziej, wystarczy jeden wiersz.
Więc w zasadzie, jeśli chcę dać ciąg wartość wysokie lub niskie, a ja
chcę zrobić wysokie, jeśli n jest większe niż 100 lub niski, jeśli jest to mniej, co mogę zrobić
jest to [niesłyszalne]
ciąg będzie, a potem zwrócić Program n większej niż 100?
>> To dlatego mam to wyrażenie w nawiasach, a następnie
znak zapytania.
Pytam jest większa niż 100?
Jeśli tak jest, to będzie wysoka.
Jeśli nie jest, to będzie niska.
>> Więc w zasadzie to, co myślisz, że się pytasz pytanie, więc można umieścić w nawiasach
Stan.
Następnie można umieścić znak zapytania bo prosisz go.
A jeśli to prawda, to będzie w pierwszej wartości [niesłyszalne] tutaj.
Jeśli tak nie jest, mam zamiar umieścić wartość, która jest po dwukropku.
Czy to ma sens?
>> Jest to także coś, co jest jak narzędziem w C, ale nie masz do
specjalnie go używać.
Ale CS ludzie zwykle się podoba bo to po prostu zapisuje linie.
>> LAUREN CARVALHO: To jest bardzo elegancki.
To nie dużo w jednym rachunku.
>> PUBLICZNOŚCI: Więc jest znak procent tylko na wyniki, co
poprzednia linia?
>> LAUREN CARVALHO: Och, przepraszam.
To jest rzeczywiście znak procentu zastępczy dla tego s.
W instrukcji printf, masz to Ciąg tutaj, co jest, co będzie
wydrukować, ale nie można po prostu umieścić to y tam.
W przeciwnym razie byłoby to wydrukować się, że ów dosłownie.
Więc umieścić procent tutaj zachować To miejsce przeznaczone do co
przychodzi po przecinku.
>> Tak na sznurku, masz procent s.
W przypadku całkowitej, procent i.
Na float, procent f.
Zobaczysz tych, jak my zobacz więcej przykładów.
Ale może należy mówić o Podręcznik styl na chwilę, teraz
że to się dzieje.
>> LUCAS FREITAS: Jeśli pójdziesz do cs50.net/style, masz zamiar zobaczyć
Podręcznik stylu.
Dla zbiorów problemowych, Twój wynik dla Zestaw składa się z problemem zakresie,
co w skrócie oznacza, jeśli nie wszystkie Części problemu wymienione lub jeśli
próbował coś.
Drugą rzeczą jest to prawidłowość, która środkiem jest twój program robi to, co
miał robić, czy też ma błędy, lub nie jest to, co robisz
to ma zrobić.
>> Trzecią rzeczą jest projekt, co oznacza, ty realizacji to dobrze, czy są
używasz niepotrzebnych sprawozdań?
Tak na przykład, jeśli chcesz, aby powtórzyć Numer 10 razy, piszesz
pętli czy tylko robi 10 razy samo stwierdzenie, po prostu robi
Kopiowanie i wklejanie.
Więc projekt jest za to.
>> I wreszcie, masz styl.
Styl jest jak sądząc Jeśli Twój kod wygląda
czytelny i rodzaj piękna.
Oznacza, to tylko Twój kod jest czytelny?
Czy ktoś, kto szuka to Twój kod będzie w stanie zrozumieć, co
to robi?
Czy ma komentarzy i jak?
>> Porozmawiajmy o stylu, który masz się stosować.
Pierwszą rzeczą jest komentarzy.
Komentarze są bardzo ważne dla Kod ponieważ czasami robisz
Twój program, i wiesz dokładnie, co Aby to zrobić po prostu zacząć
kodowanie, wpisz się kilka C. Ale jeśli ktoś szuka ty jesteś
Kod, że nie będziemy w stanie rozumiem, bo nie wiem
rzeczy, które są w twojej głowie, jak pesudocode, więc może tak będzie
ma trudności, aby zrozumieć co kod robi.
>> Więc komentarze są bardzo przydatne do wyjaśnienia do kogoś, kto patrzy na
Twój kod, co robi, i faktycznie nawet dla ciebie,
są one bardzo przydatne.
Jak przejść do trudniejszych i twardych Psets, masz zamiar zobaczyć, że kod staje się
dłużej, a następnie komentarze są naprawdę ważne, więc pamiętam, co każdy
część programu ma.
>> Aby dodawać komentarze, można po prostu zrobić ukośnik ukośnik, a następnie dodać komentarz.
I cała linia jest częścią komentarza, a co napisać,
nie będzie używane do kodu.
Jest to w zasadzie jak kompilator zamierza zignorować.
Czy to ma sens?
>> PUBLICZNOŚCI: Co ty znowu zrobić aby dodać komentarz?
>> LUCAS FREITAS: Ten?
Ukośnik ukośnik?
Kiedy tylko wpisz ukośnik ukośnik, niezależnie jest w tej linii nie będzie
uważa się za C. Tak?
>> PUBLICZNOŚCI: Więc po tym komentarzu, to Pierwszy krok to wpisanie i rozpocząć nowy wiersz?
>> LUCAS FREITAS: Tak, dokładnie.
>> LAUREN CARVALHO: ukośnik ukośnik Do uwag jednej linii.
>> LUCAS FREITAS: Na przykład, tutaj mamy -
chciałbym powiększyć -
na przykład, tutaj jestem deklarowania float, ale być może, jeśli tylko umieścić to
w kodzie, jak nie masz pojęcia co to robi, jak rzeczywiście
ktoś, kto patrzy na ten kod będzie, jak, co
cholery, dzieje?
>> Jeśli umieścisz komentarz mówiący "konwersji Fahrenheita na stopnie Celsjusza, to sprawia, że ​​wiele
więcej sensu.
Jesteś, jak, dobrze, że jesteś robi konwersję.
Czy to ma sens?
Więc to jest po prostu coś, co pomaga ludziom gotowy kod, a także
mieć możliwość organizowania Twój kod lepiej.
>> Drugą rzeczą jest to, że można zrobić Komentarze kilka linii, więc mają jedną
komentarz dla bandy linii.
Zamiast umieścić ukośnik ukośnik, komentarze pierwszej linii slash slash,
Druga linia, i tak dalej, Można użyć gwiazdki slash.
Sposób, że robisz to, że dla Pierwszy wiersz komentarza, jesteś
zamiar zrobić star star ukośnik, tak, tak po prostu.
Tak jak tutaj mamy początek Program, który zazwyczaj można umieścić
to, co robi ten program, i takie tam.
To trochę jak w nagłówku dla programu.
>> Ponownie, to nie jest coś, co kompilator będzie obchodzi, ale
ważne jest, aby wiedzieć, co to Program robi lub dla innych osób
wiedzieć, co twój program robi.
Więc nie slash star star, a następnie Ostatnia linia masz zamiar zrobić gwiazdę
ciąć, aby móc zamykać że komentarz.
Więc w zasadzie na wszystkich innych liniach, można po prostu napisać cokolwiek, a to
to wszystko będzie ignorowane.
>> A także, podobnie jak styl, widać, że Każdy z przewodów ma gwiazdę i wszystkie
gwiazdy są wyrównane.
To są ważne rzeczy, tak że kod wygląda całkiem.
Brzmi dobrze?
>> Teraz warunki.
Co David mówił, że powinniśmy faktycznie wprowadzone w tych slajdach, jest to, że
jeśli masz jakiekolwiek if lub jakichkolwiek warunkach
należy użyć nawiasów klamrowych, aby pokazać, że to jest to, co się wydarzy
gdy masz kondycję.
Technicznie, jeśli masz kondycję i następna linia jest tylko jeden
linia, nie ma technicznych umieścić nawiasy klamrowe.
>> Zasadniczo kompilator zrozumie to tak jak ukryte.
Ale dla CS50, prosimy was, aby umieścić Nawiasy klamrowe po prostu tak, że
kod jest bardziej zorganizowane i bardziej czytelny.
Dlatego, że kod staje się dłuższy, jeśli nie masz nawiasy klamrowe i takie.
To staje się bardzo brudny.
>> LAUREN CARVALHO: To jest dokładnie to, co zauważył David po prostu
w moich poprzednich slajdach.
To na pewno działa bez kręconych szelki, ale ze względów stylistycznych
będziemy prosić, ty wkładaj te w.
>> I po uruchomieniu działa style50, który jest rodzajem kontroli 50 dla
styl, będzie przypominać to zrobić.
>> LUCAS FREITAS: I jeszcze jedno jest Pamiętaj, aby umieścić nawiasy klamrowe wraz
W każdym wierszu.
Tak zrobić, na przykład, l'y.
Przejdź do następnego wiersza, otwórz kręcone nawiasów, a następnie przejść do następnego wiersza.
Wgłębienie, które jest cztery pomieszczenia.
Następnie napisać cokolwiek, potem drugi linia, i zamknąć nawias klamrowy.
Więc upewnij się, że zarówno ci, kręcone szelki są w różnych liniach.
>> PUBLICZNOŚCI: Więc jeśli ten kod miał jak 10 IFS innego, to powinien
być 10 zestawów nawiasach?
>> LUCAS FREITAS: Tak, dla każdego z nich.
Tak.
Tak więc, jeżeli jeszcze wtedy i tak dalej.
>> PUBLICZNOŚCI: Czy nie Naciśnij TAB, aby wciąć?
>> LUCAS FREITAS: Pytamy cię Chłopaki używać cztery spacje.
Niektóre edytory tekstu w tłumaczeniu kartę jak automatycznie cztery przestrzenie.
gedit nie, więc trzeba zrobić space space space space.
Jest również coś, niektóre programiści nie tylko zakładki, niektóre
Programiści zrobić tylko cztery miejsca, i kilka innych osób, nawet nie
dwa lub trzy miejsca.
Tyle, że tutaj pytamy wy do zrobienia cztery spacje.
>> PUBLICZNOŚCI: Tam prawie na pewno Musi być sposób na gedit do
automatycznie [niesłyszalne].
Jak nie [niesłyszalne] robi.
>> LUCAS FREITAS: Tak.
Myślę, że można przejść do opcji Ustawienia.
>> PUBLICZNOŚCI: To już nie wszystko.
>> LUCAS FREITAS: To już nie?
OK.
Więc po prostu mieć pewność, że cztery spacje.
>> PUBLICZNOŚCI: Czy musimy umieścić kręcone Uchwyty w pętli, jak również?
>> LUCAS FREITAS: Tak.
>> LAUREN CARVALHO: zawsze, gdy enkapsulacji blok kodu, po prostu
proszę używać nawiasów klamrowych.
I zanim myśleć, że jesteśmy po prostu jest sticklers o tym bez żadnego
Powodem, jeśli faceci idą na uzyskać tech staże w dużych firmach,
dają ci przewodnik stylu, a to ci powiedzą, to jest to, co
Kod powinien wyglądać.
A nawet jeśli, jak nauczył się kodu to może w stażu
musisz coś zrobić zupełnie inaczej.
Oni oczekują, by odpowiadać do ich stylu.
>> LUCAS FREITAS: I jeszcze jedno jest , że nie zauważysz, jak mam jak x,
przestrzeni, mniej miejsca, 0?
Gdy masz operatora -
to może być jak plus, minus, razy, mniej, większa, co operator -
musisz umieścić po lewej stronie miejsca i prawej stronie operatora.
>> LAUREN CARVALHO: To są zwane operandy binarne.
Tylko pamiętaj, aby zawsze miejsca z twoich argumentów binarnych.
>> LUCAS FREITAS: Jest nie binarnego argumentu.
>> LAUREN CARVALHO: To jest ponieważ ma dwa.
>> LUCAS FREITAS: O, tak.
>> OK, przełączniki.
Po pierwsze, trzeba zauważyć, że podobnie jak w czy lub innego oświadczenia, masz
umieścić nawias klamrowy z własnej linii i pod nawias klamrowy tutaj.
Zauważ, że nie ma ani jednego miejsca po włączeniu, tak jak w if i else
mieliśmy jedną przestrzeń między że i nawiasy.
Więc musisz umieścić to.
>> I nie ma miejsca w prawo po każdym w nawiasach lub przed końcem
z nawiasami.
Więc widać, że to wszystko razem, i także tutaj.
>> Tak?
>> LAUREN CARVALHO: Myślę, że musimy przejść.
>> LUCAS FREITAS: Więc to jest część Podręcznik stylu, że masz dla CS50.
Pamiętaj, aby przejść do cs50.net/style i spójrz na to.
Są to bardzo ważne dla punktów stylu.
>> Pozwól mi wrócić do rachunku.
>> LAUREN CARVALHO: wolałbym wystarczy użyć style50.
Jesteśmy po prostu pójdzie prosto do pętli.
Dobrze.
>> Więc wróćmy do zawartości, teraz że mamy już na przewodniku.
Pętle, widziałem je w Scratch, oraz będziemy mówić o nich w
C.
>> W pętli, istnieje Trzy porcje do
Deklaracja ta w pętli.
Masz swoją inicjację w które można ustawić zmienne.
Masz swoją kondycję, które są sprawdzając, czy coś jest
prawdziwe lub fałszywe i czy pętla powinna kontynuować.
I masz już aktualizację, która uaktualnia zmienne.
>> Miejmy tylko rzucić okiem na niektóre Kod C to dla pętli w akcji.
Co się dzieje jest tutaj inicjalizacji, mamy ustawienia i na 0.
W stanie sprawdzamy czy i jest mniejsze niż 10.
Oraz w aktualizacji jesteśmy zwiększanie i.
Więc co będzie wynikać z to dla pętli?
>> LUCAS FREITAS: Faktycznie, po pierwsze, Wiecie co mam na + + jest?
>> PUBLICZNOŚCI: zwiększona o 1.
>> LUCAS FREITAS: zwiększona o 1, tak.
Więc to jest to samo, co robi i jest równe ja plus 1.
I zauważyć, że nie ma miejsca między I a + +.
>> Więc nie wiecie, co to zrobi?
Czy ktoś może mi powiedzieć?
A może trochę cukierków z tego powodu?
>> PUBLICZNOŚCI: [niesłyszalne]
>> LUCAS FREITAS: OK.
[Niesłyszalne]
pokazać wszystkim, później [niesłyszalne].
Tak, to się dzieje, aby pokazać "To jest CS50 "10 razy.
>> LAUREN CARVALHO: Myślę, że to był w tytule slajdu.
>> LUCAS FREITAS: O, tak.
>> [Śmiech]
>> LUCAS FREITAS: To pomaga.
>> LAUREN CARVALHO: Więc te są pętle.
Jedziemy zobaczyć kilka przykładów z pętli później.
Ale niech faktycznie przyjrzeć Drugi typ pętli natkniesz
w C, i nazywa się pętla while.
>> W pętli while, masz Właśnie dostałem warunek.
Warunek jest sprawdzany w począwszy, a jeśli warunek
ma wartość true, to kod w ciągu Korpus bloku while
będą wykonane.
Oraz kod kontynuować wykonywać tak długo, jak
Stan pozostaje prawdą.
>> Oto przykład pętli while w C Zamierzamy ustawić licznik do 10 do
początku.
Tak długo, jak liczba jest większa od 0, zamierzamy utrzymać to wydrukowanie
zmienna tutaj.
Zamierzamy zmniejszyć liczbę i następnie ponownie sprawdzić stan.
Drukuj, ubytek, kontrola Stan ponownie.
>> Tutaj mamy przykład, który dotyczy do wcześniej pytanie.
Mieliśmy procent s kiedy byliśmy drukowania ciąg, a teraz,
mamy drukowanie int, mamy procent i jako nasz zastępczy zamiast.
Litery powinny być w dość Intuicyjny, y dla sznurka, i dla int.
>> Więc jeśli tego kodu, należy odliczanie od 10 do 0, drukując
każda liczba całkowita.
>> LUCAS FREITAS: I można myśleć procent, jak to czuje się jak puste
miejsca, a następnie jesteś wprowadzenie tego tu w tej zmiennej pustej przestrzeni.
Tak na przykład, tutaj mam tylko puste, a następnie Kładę
liczyć tam, wartość liczby.
Czy to ma sens?
>> Może po prostu zrobić jak printf a następnie cytuje, liczyć?
Czy to działa?
>> PUBLICZNOŚCI: Nie.
>> LUCAS FREITAS: Nie, bo to będzie faktycznie wydrukować słowo "liczyć"
zamiast drukowania wartości.
W ten sposób można zrobić to wydrukować wartości w kierunku zmiennej zamiast
tylko nazwa zmiennej.
Masz pytanie?
>> PUBLICZNOŚCI: Dlaczego używasz do w przeciwieństwie do czas?
>> LAUREN CARVALHO: chciałbym użyć do pętla, jeśli wiem dokładnie ile
Chcę, aby mój iteracji pętli uruchomić.
W tym przypadku nie ma znaczenia, ponieważ To znaczy, ja tylko próbuje
myśleć o naprawdę proste Przykładem tego slajdu.
Ale powiedzmy, że chcesz coś zachować się, gdy -
>> LUCAS FREITAS: Na przykład, jesteś z prośbą o wejście do osoby
daje odpowiednie wejście.
Tak jak podczas gdy wejście nie jest OK, padają na niego.
Lub jak gdy jesteś rodzice nie dają pieniądze, prosić o nią.
>> [Śmiech]
>> LAUREN CARVALHO: Nie wiem, jak wiele razy będziesz musiał to zrobić.
>> LUCAS FREITAS: Ponieważ nie wiem, ile razy to
będzie dalej.
>> LAUREN CARVALHO: Ale w pętli, musisz wiedzieć, jak wiele razy.
Tak?
>> PUBLICZNOŚCI: Wystarczy, aby wyjaśnić, procent mówi, że to jest coś do
stało, I dla liczby całkowitej, i odwrotny ukośnik n -
>> LAUREN Carvalho: środki?
Kto wie, co lewy ukośnik n oznacza?
Nowa linia, tak.
Dokładnie.
>> LUCAS FREITAS: Możesz myśleć n jako nowej linii.
>> LAUREN CARVALHO: Nicea.
>> PUBLICZNOŚCI: Co to za liczba kreska kreska [niesłyszalne]?
>> LUCAS FREITAS: Ilość minus minus jest samo jak Plus Plus, ale
zamiast zwiększać, to zmniejszenie o 1.
>> LAUREN CARVALHO: Dowolna więcej natomiast pytania pętli?
Nie?
Och, mieliśmy zostały pominięte, które.
>> To zrobić, gdy pętla.
Bardzo podobny do pętli wyjątkiem możemy sprawdzić stan po tym wypadku
kod w ciele Pętla wykonuje raz.
Więc wykonanie kodu pierwsze nie wiem co.
Następnie sprawdzić stan, wykonaj ponownie, jeśli warunek jest spełniony.
>> Znajdziesz się przy użyciu tego prosisz o dane wprowadzone przez użytkownika.
Bo ty zawsze będzie musiał zapytaj raz, a następnie w zależności od tego, co
wprowadzania danych przez użytkownika jest, może trzeba reprompt i zapytać jeszcze raz i jeszcze raz, jeśli
Wejście nie było to, czego Oczekuje się, że jest.
>> PUBLICZNOŚCI: Tak to jest jak postać dla ludzi, aby wypełnić.
>> LAUREN CARVALHO: Tak, dokładnie.
Przekonasz się, jak sądzę, w swoim pierwszym Pset, będziesz musiał
użyć pętli dobrze zbierać Wejście od użytkownika.
>> PUBLICZNOŚCI: W zależności od sytuacji, Twoje pętli while będzie miał tendencję do uruchomienia więcej
częściej niż podczas pętli, jak przez jednego, czy co?
>> LAUREN CARVALHO: Jeśli to jest dokładnie -
>> LUCAS FREITAS: Powinny zawsze uruchamiane Dokładna ilość razy, że ci
chce go uruchomić.
Jak zrobić, gdy używamy, bo naprawdę chciał dostać wejście co najmniej raz.
W pętli, podczas gdy czasami nie chcesz do jego wykonania w ogóle, jeśli nie jest to
Sprawa do wykonania.
Tak więc zależy ona od konstrukcji.
To znaczy, można zrobić jednocześnie lub wykorzystanie podczas gdy tak długo, jak to robi Twój kod
to ma zrobić.
>> LAUREN CARVALHO: Ale ja że odpowiedzi na swoje
pytanie jest prawdopodobnie tak.
Powiedzmy, że warunek był fałszywy.
W jednym przypadku będzie działać raz, a inna sprawa to uruchomić zero razy.
Tak, tak.
>> Jeszcze jakieś pytania?
Tak?
>> PUBLICZNOŚCI: Może być warunek pętli na pętli w kategoriach innych zmiennych
niż [niesłyszalne].
>> LAUREN CARVALHO: Tak, to może być cokolwiek.
Prawdopodobnie na początek Psets, ty nie będzie musiał spotkać tego sprawę, ale
na pewno może to być cokolwiek.
>> LUCAS FREITAS: Myślę, że skończyliśmy.
>> LAUREN CARVALHO: Czy jesteśmy?
Nie?
>> LUCAS FREITAS: Loops?
Tak.
>> LAUREN CARVALHO: Nie powinno być.
Och, są wykonane z pętli.
OK.
>> Właściwie, bo rozmawialiśmy tak dużo, niech rzeczywiście wszystko nawigacja
na do study.cs50.net/conditions.
I masz zamiar poruszać się w dół na problemy widget.
Cóż, faktycznie, podczas gdy ludzie są coraz to ustawić, CS50 Badanie jest
będzie narzędziem, które będzie twoje TF użyć w celu przygotowania do sekcji i
wy może korzystać jeśli pominąć sekcje.
To będzie zawierać kilka slajdów, Niektóre wskazówki i porady dla każdego
temat, a niektóre problemy praktyczne z rozwiązaniami.
>> Dlaczego nie wszyscy po prostu spójrz na ten problem tutaj.
>> Przepraszam, powinienem przypomnieć, ludzie przynoszą laptopy dziś.
Ale jeśli nie masz laptopa, to jest OK.
Możesz po prostu zanotować to w dół kawałek papieru lub przejrzeć
ramię sąsiada.
>> Spróbujmy napisać program, który zachęca użytkownika do Zgadnij,
Średnia liczba dzieci w rodzinie Urządzenie w Stanach Zjednoczonych.
Ta liczba jest 2, przy okazji, jak ty widać z tych przykładów.
>> Chcemy wydrukować średnią liczbę dzieci w rodzinie w USA, potem
chce co?
Chcemy zebrać wejście od użytkownika.
, A następnie w zależności od tego, co użytkownik jest wejście jest, masz zamiar wydrukować
albo jest to poprawne lub jest nieprawidłowy.
>> I pierwszą rzeczą, że będziesz zobaczyć po kliknięciu małej strzałki na
Dno widget problemem jest miejscu, aby zanotować jakąś Pseudokod.
Więc nie jesteś jeszcze programowania.
Jesteś po prostu coraz pomysły w porządku.
>> Czy ktoś chce pomóc Lucas pochodzić z prawem
pseudokod tego problemu?
>> LUCAS FREITAS: Co jest pierwszą rzeczą, że powinniśmy chyba tu zrobić?
Co o tym myślicie?
>> PUBLICZNOŚCI: [niesłyszalne]
>> LUCAS FREITAS: Tak, OK.
Tak, drukuj.
Wystarczy powiedzieć, druk to średnio liczba osób?
OK.
Drukuj pytanie, powiedzmy.
Po wydrukowaniu na to pytanie, Co mam zrobić?
>> PUBLICZNOŚCI: Pobierz wejście.
>> LUCAS FREITAS: Pobierz wejście.
Coś jeszcze?
>> PUBLICZNOŚCI: Stan.
>> LUCAS FREITAS: Stan.
>> LAUREN CARVALHO: Co to jest, że Warunek będzie?
>> PUBLICZNOŚCI: liczba [niesłyszalne].
>> LAUREN CARVALHO: Prawo.
>> LUCAS FREITAS: Więc co ja mam w celu sprawdzenia stanu?
>> PUBLICZNOŚCI: Jeśli jest on równy 2.
>> LAUREN CARVALHO: Jeśli jest on równy 2.
Dokładnie.
>> LUCAS FREITAS: Czy jest coś nie w innego, co mam zrobić?
>> PUBLICZNOŚCI: Hrabia.
>> LUCAS FREITAS: Więc jeśli to jest równe 2, powiedzmy -
pozwól mi tylko napisać, jeśli wejście jest równa do 2, to co mam zamiar
zrobić, to wydrukować prawidłowe.
A potem jeszcze, mam zamiar wydrukować nieprawidłowy.
Coś jeszcze?
Nie?
>> LAUREN CARVALHO: Więc Możesz kliknąć na -
nie wszyscy mają to w dół?
>> LUCAS FREITAS: Czy to ma sens?
Teraz spróbujmy zakodować tego.
>> LAUREN CARVALHO: Jeśli klikniesz mało strzałka, to faktycznie oszczędza
pseudokod, który jest naprawdę ekscytujące.
I można zrobić, jeśli ci w komentarzach chcesz po prostu przypomnieć sobie
co robić.
>> LUCAS FREITAS: Tak na przykład, pierwszy Mam zamiar drukować na pytanie, tak
jak ja mam to zrobić, naprawdę?
printf.
Tak printf, a pytanie jest średnia liczba dzieci w
rodzin w USA.
>> Potem mam zamiar dostać Wejście od użytkownika.
Więc w jaki sposób można to zrobić?
>> PUBLICZNOŚCI: Pobierz Wewn.
>> LAUREN CARVALHO: GetInt.
>> LUCAS FREITAS: OK.
Więc najpierw zadeklarować, prawda?
int, nazwijmy to n równa GetInt.
>> A teraz stan.
Więc pozwól mi powiedzieć, że będę się tu wyboru odpowiedzi.
Więc po pierwsze, jeśli wejście, które jest n, jest równa do - jak mam zamiar napisać, że?
>> PUBLICZNOŚCI: Równe równe.
>> LUCAS FREITAS: Perfect.
Więc n.
I zauważyć, że robię spację, równa, równa, miejsca, prawda.
A teraz co mam zrobić?
Coś bardzo ważnego dla stylu.
Nawiasy klamrowe.
>> A potem mam zamiar wydrukować.
Jak drukować?
printf.
>> PUBLICZNOŚCI: Czy to może być kapitalizowane?
>> LUCAS FREITAS: Nie.
To ma być pisane małymi literami.
Tak, że jest poprawne.
>> Czy to wystarczy do printf stwierdzenie, czy jestem brakuje czegoś?
>> PUBLICZNOŚCI: Nowa linia.
>> LUCAS FREITAS: Nowa linia, tak.
A teraz jeszcze.
>> PUBLICZNOŚCI: Czy jest przestrzeń po printf, czy nie?
>> LAUREN CARVALHO: Powinniśmy sprawdź przewodnik stylu.
>> PUBLICZNOŚCI: To nie powinno być.
>> LUCAS FREITAS: Nie powinno być OK.
Tak inny, printf "To jest błędna."
>> LAUREN CARVALHO: Ups, twoje notowania.
>> LUCAS FREITAS: OK.
Coś jeszcze?
Czy to dobrze wyglądać?
>> LAUREN CARVALHO: Możemy spróbować?
>> LUCAS FREITAS: Tak, niech go uruchomić.
Więc jest to kompilacja, i to Wydaje się, że to działa.
Spróbujmy dwoje dzieci.
Zgadza się.
A teraz uruchomić ponownie, ale teraz zamiast oddania dwoje dzieci, niech
powiedzieć, że mam zamiar umieścić jak pięć.
To jest błędne.
Tak więc wydaje się, że to działa.
>> LAUREN CARVALHO: Dlaczego nie pokazać im co się dzieje, jeśli już coś
dziwne, jak niektórych liter.
>> LUCAS FREITAS: O, tak.
Miejmy również sprawdzić, że.
Co zrobić, jeśli użytkownik próbuje zadzierać z programem, a oni po prostu
pisać, nie wiem, dwa.
To powie powtórzenie.
>> LAUREN CARVALHO: Więc GetInt się z prośbą, aby ponowić próbę.
Nie dbać o tym sami.
>> LUCAS FREITAS: Tak.
Więc chyba faktycznie umieścić numer, to będzie trzymać mnie z prośbą, aby ponowić próbę.
>> PUBLICZNOŚCI: Jak go uruchomić?
>> LUCAS FREITAS: Po prostu kliknij ta gwiazda przycisk.
>> LAUREN CARVALHO: Powinieneś iść w górę.
Proszę bardzo.
>> LUCAS FREITAS: gwiazda Przycisk tam.
Tak?
>> PUBLICZNOŚCI: Czy to poprosi [niesłyszalne] z liczb dziesiętnych też?
>> LAUREN CARVALHO: Wierzę, że tak.
>> LUCAS FREITAS: Jeśli to co robi?
>> LAUREN CARVALHO: Jeśli typ w liczbie dziesiętnej, myślę,
to się zapyta.
>> LUCAS FREITAS: Zobaczymy.
>> LAUREN CARVALHO: Bo to nie jest int.
>> LUCAS FREITAS: Tak.
>> LAUREN CARVALHO: Więc to nie jest int, Get Int. poprosi, aby ponowić próbę.
>> PUBLICZNOŚCI: A gdzie w tym kodzie będzie miejsca po przecinku, która skłania
użytkownika, że ​​muszą wprowadzić całkowitą konkretnie?
>> LAUREN CARVALHO: GetInt jest rzeczywiście robi to za nas.
>> PUBLICZNOŚCI: Nie, mam na myśli, jeśli chcemy wejść [niesłyszalne]
>> LUCAS FREITAS: Możesz powiedzieć, jak średnia liczba dzieci w USA.
Nie wiem.
Możemy powiedzieć, na przykład: "Proszę Wejście całkowitą ".
>> LAUREN CARVALHO: całkowitą równą przeciętnej liczbie.
To znaczy, to jest po prostu jak Chcesz słowo to, prawda?
>> LUCAS FREITAS: Tak.
Nie należy faktycznie kodowania.
To jest bardziej jak cokolwiek będziesz chciał
napisać w swoim programie.
>> PUBLICZNOŚCI: Jak byśmy go uruchomić, jeśli to faktycznie w gedit [niesłyszalne].
Zamiast naciskać grę?
>> LUCAS FREITAS: Będziemy najpierw skompilować.
Możemy to zrobić, wykonując make i nazwa pliku.
A następnie uruchomić go, zrobimy dot ukośnik i nazwa programu.
>> PUBLICZNOŚCI: Myślę, że to, co mam na myśli to, czy chcieliśmy program w odpowiedzi na
ich niewłaściwe, nieprawidłowa pozycja, nie należy umieścić w -
>> LUCAS FREITAS: Nie będzie w stanie zrobić, ponieważ kod ten mówi
ponownie pochodzi z Get Int., która jest Funkcja, która jest już wdrożona
dla nas za pośrednictwem biblioteki CS50, a od to już realizowane tam,
może nie tylko [niesłyszalne].
>> LAUREN CARVALHO: Jeśli nie używasz GetInt, to możesz to zrobić.
>> LUCAS FREITAS: Tak.
Ale jeśli używasz GetInt, nie możesz.
Wszelkie inne pytania?
>> PUBLICZNOŚCI: Czy masz już z niczym GetFloat a następnie być w stanie wprowadzić
że w po przecinku?
>> LUCAS FREITAS: Tak.
>> PUBLICZNOŚCI: OK.
Wtedy właśnie może wejście unosić a równa -
>> LAUREN CARVALHO: Tak.
Dokładnie tak samo, z wyjątkiem unosić zamiast int.
>> LUCAS FREITAS: Wystarczy umieścić go tutaj a następnie GetFloat tam.
>> PUBLICZNOŚCI: Jak chcesz zobacz czy nie widziałem -
>> LAUREN CARVALHO: mamy nie dostał tam jeszcze.
>> PUBLICZNOŚCI: - robi nierówności z pływaki nie [niesłyszalne]
>> PUBLICZNOŚCI: Co oznaczają średniki oznaczają?
>> LAUREN CARVALHO: średnik tylko Oznacza to, że stwierdzenie to jest kompletny,
i zamierzamy iść na następnym slajdzie.
>> PUBLICZNOŚCI: Więc jest to konieczne za każdym razem?
>> LAUREN CARVALHO: Tak.
No, OK, więc nie na tych warunkach, , ponieważ są one
enkapsulacji coś.
Więc w zasadzie, jeśli coś jest przyczyną można następnie utworzyć nawias klamrowy
blok, nie umieścić średnik na końcu.
>> LUCAS FREITAS: Ale wszystko indziej, tak.
Po zakończeniu oświadczenie, umieścić średnik.
A jeśli zapomnisz średników, kompilator będzie się gniewać na ciebie,
i będziesz mieć spróbować go naprawić.
>> LAUREN CARVALHO: Jeśli mogę umieścić średnik tutaj, że powstrzyma to i ja
nigdy nie dostać się do wykonywania co wewnątrz, na drodze.
Więc to jest jedna z tych typowych błędów.
>> PUBLICZNOŚCI: Zawsze wykonywania.
>> LAUREN CARVALHO: Tak.
W tym przypadku zawsze wykonać to, co jest w środku.
>> PUBLICZNOŚCI: Twój styl [niesłyszalne] dołączyć, że dla ciebie, pomyślał.
>> LAUREN CARVALHO: Och, to prawda.
>> PUBLICZNOŚCI: [niesłyszalne] wolny Linia rzeczą [niesłyszalne]
>> PUBLICZNOŚCI: Tak?
>> PUBLICZNOŚCI: można mieć wiele Wejścia w jednej linii?
Więc jak można poprosić użytkowników wydrukować dwie rzeczy?
>> LAUREN CARVALHO: Nie korzystasz -
>> LUCAS FREITAS: Nie.
Powiedzmy, że ja też chcę aby uzyskać ten całkowitą m.
Muszę to zrobić w innej linii.
>> PUBLICZNOŚCI: Jeśli było uruchomić że, jak [niesłyszalne]?
To wydrukować wiersz tam [niesłyszalne]
a następnie chcesz wprowadzić jeden i -
>> LAUREN CARVALHO: Cóż, uruchom go.
To znaczy, nie ma nic nas od zatrzymania tylko uruchomienie go i zobaczyć, co
by się stało.
>> LUCAS FREITAS: Myślę, że to będzie na nas narzeka
dlatego, że nie używasz -
>> LAUREN CARVALHO: Ups.
>> LUCAS FREITAS: To narzekali na nas prawo teraz, ponieważ nie jesteśmy w tym za pomocą
zmienna, ale jeśli nie, na przykład, n równe jest równy, a m jest równe
jest równa, to co będzie stało w tym przypadku?
Co ten program zrobi?
>> PUBLICZNOŚCI: Zastanawiam się jak to będzie -
>> LAUREN CARVALHO: Ona po prostu chce wiedzieć, jak wygląda
jak, myślę, prawda?
Tak więc trwało jeden z nich, a następnie zajęło drugi.
>> Myślę, że powinniśmy iść dalej, ponieważ mamy jeden więcej
pokaz slajdów, aby przejść przed -
chcesz podciągnąć matematyki?
>> LUCAS FREITAS: Tak, matematyka.
>> LAUREN CARVALHO: Daj ja tylko jedną sekundę.
>> Istnieje kilka różnych numeryczne zmienne w danych liczbowych w C C.
mogą być klasyfikowane do różnych typów i są to te, które będziesz
zobaczyć najczęściej.
>> I int jest liczbą całkowitą.
Nie można mieć żadnych dziesiętnych.
W urządzeniu, to ma 32 bitów do przechowywania int.
>> Pływak może mieć po przecinku.
Bierze także 32 bitów do przechowywania pływak w urządzeniu.
>> Podwójny szereg z po przecinku punkt, który zajmuje 64 bitów do zapisania,
co oznacza, że ​​można po prostu większa precyzja, ponieważ
można mieć więcej -
co to się nazywa?
>> LUCAS FREITAS: Tak, to jest więcej.
>> LAUREN Carvalho: Więcej miejsca po przecinku.
I długo, długo jest liczbą całkowitą że zajmuje 64 bitów
ból jest w urządzeniu.
>> LUCAS FREITAS: Więc może to być większa niż wskazówki mogą być.
>> LAUREN CARVALHO: rzecz o danych Typy w C jest to, że ci, co mówią
rodzaj danych można przechowywać w zmiennej.
Mówią ci, jak możesz to wykorzystać zmienna w programie.
To bardzo ważne, aby po prostu śledzić jaki typ danych używasz, a jeśli
trzeba zrobić, aby rzucić od typu danych do innego, upewnij się, że wiesz,
dokładnie to, co się dzieje, kiedy to odlewanie następuje.
I zobaczysz przykład później na w tych slajdów z
błąd, który może wystąpić.
>> Rzućmy okiem na niektóre z matematyki w C i że bardzo starannie, jak sądzę,
o tym, co się dzieje, gdy ta matematyka ma miejsce.
W pierwszej linii, co jest dzieje, gdy oświadczam x?
>> PUBLICZNOŚCI: Jesteś pozwalając x być coś?
>> LAUREN CARVALHO: Tak.
Jestem naprawdę pytaniem działającym System dla 32 bitów pamięci, prawda?
W którym można przechowywać int, i Mam zamiar zadzwonić, że int x.
>> LUCAS FREITAS: W zasadzie dzieje się w pamięci i znalezienie miejsca, które ma 32
bity i powiedzenie, hej, chcę tę przestrzeń, i to będzie się nazywać x.
Więc jesteś po prostu dość dużo stwierdzenie okno w pamięci do
Przechowują wartości dla x.
>> LAUREN CARVALHO: I wtedy zainicjować x, co oznacza, że ​​po prostu zapisać
wartość 2 w tym miejscu, w tym fragmencie z pamięci, że poprosiliśmy operacyjną
system.
I tu to, co robimy jest my faktycznie deklarowania i
inicjowanie y w jednej linii, a nie w dwóch liniach, jak my tutaj,
który jest również idealnie w porządku, jesteśmy dodanie 1 do x, a my przechowywania że
wartość y.
>> LUCAS FREITAS: Więc w zasadzie, co to Linia działa, znajdzie się teraz na polu y,
a następnie jego wartość, tym, co masz zamiar umieścić w skrzynce, jest
będzie wartość X plus 1.
Więc ma to to pole dla Y.
To staje się wartość x, wygląda tu, i widzę, że jest to 2.
Umieścić go tam, a także 1, więc to stawia 3 istnieje.
Czy to ma sens?
Tak więc byłoby 2 w tym przypadku.
>> LAUREN CARVALHO: Dobra, spoko.
Widzieliśmy jakiś dodatek, więc niech teraz myśleć o podział w C. Oto jestem
deklarowania i inicjalizacji pływaka nazywa odpowiedź i podzielenie 1 przez 10,
i wtedy ja drukując odpowiedzi do dwóch miejsc po przecinku.
A pamiętać tutaj, w moim instrukcji printf, gdy chcę wydrukować coś do dwóch
miejsc po przecinku,% .2 f jest co chcę użyć.
Więc punkt 2 jest tylko, że Potrzebuję dwóch miejsc po
dziesiętny wydrukowane.
>> Teraz, co się wydarzy jeśli ten kod?
Czy ktoś ma jakiś pomysł?
Co by wydrukować?
>> LUCAS FREITAS: Jakie są spodziewamy się dostać.
>> LAUREN CARVALHO: Co zrobić chcemy przede wszystkim?
>> LUCAS FREITAS: [niesłyszalne]
>> LAUREN CARVALHO: 0.1, tak.
Ale co będzie drukować?
>> PUBLICZNOŚCI: [niesłyszalne]
>> LAUREN CARVALHO: Cóż, nie, naprawdę.
To jest to, co mówił o tym, dlaczego trzeba zachować bardzo uważnie śledzić
Twoje typy danych.
Więc, co to jest typ danych?
Jest int, prawda?
Nie ma miejsca po przecinku.
10 jest również int.
Nie ma miejsca po przecinku.
>> Jeśli podzielić int przez int, otrzymuję int, który nie jest 0,1, ponieważ ints
nie może mieć miejsca po przecinku, ale tylko 0.
Ponieważ int tylko obcina off miejsc po przecinku.
>> LUCAS FREITAS: Jeśli więc zrobić operacje z wskazówki, będziesz
uzyskać int jako odpowiedź.
Więc w zasadzie, co komputer robi, to dzielenia 1 przez
10, i to dostaje 0,1.
Ale to jest jak, czekaj, to jest powinien być liczbą całkowitą, więc po prostu
zignorować 0,1, więc teraz po prostu 0.
>> LAUREN CARVALHO: Więc kiedy drukuj się, mam 0,00 a nie 0,10.
>> LUCAS FREITAS: Czy to ma sens?
>> LAUREN CARVALHO: To jest rodzaj z niefortunne, prawda?
>> LUCAS FREITAS: Więc jak można to naprawić?
>> LAUREN Carvalho: Chcę spróbować naprawić.
Oto przykład na to, gdzie jestem faktycznie odlewania 1
i 10 do pływaków.
Więc teraz, 1 nie jest już int.
1 jest pływak.
Nawiasem mówiąc, jest to po prostu składnia gdy chcesz rzucić z jednego
Typ danych do drugiego.
Możesz po prostu umieścić w typ danych nawiasy i mają, że po prostu poprzedzić
wartość, że jesteś odlewania.
>> Więc, ja dzieląc przez pływaka pływak, aby uzyskać odpowiedź pływaka.
I tak, by w ten Fakt wydrukować 0,10.
Czy to ma sens?
>> LUCAS FREITAS: Tak jest po prostu typu odlewania przekształcenie z jednego typu do drugiego.
Tak jest faktycznie pływak 1 1.000.
Nie jest to dokładnie to, ale to jest coś z miejscami po przecinku
to jest faktycznie 1.
Czy to ma sens?
Tak?
>> PUBLICZNOŚCI: Co jeśli nie pływak odpowiedź równa 1,0 podzielone przez 10?
>> LAUREN CARVALHO: Jesteś naprawdę dzieje aby zobaczyć, że w następnym slajdzie.
To jest właściwie nasz następnego slajdu.
To jest rzeczywiście ładniejszy niż wpisz odlewanie, myślę.
Więc te dwa są po prostu pływa Charakter fakt, że
mieć miejsca po przecinku.
Tak?
>> PUBLICZNOŚCI: Co jeśli nie [niesłyszalne]
podzielone przez 10?
>> LAUREN CARVALHO: Właściwie pływak podzielona przez int faktycznie daje
unosić się, tak, że będzie działać dobrze.
>> Czekaj, nie wszyscy rozumieją?
Bo to będzie naprawdę wielkiego w Pset1, faktycznie.
Tak?
>> PUBLICZNOŚCI: można po prostu szybko przejdź na czerwonej części?
>> LAUREN CARVALHO: czerwona część, tak.
Lucas, chcesz?
>> LUCAS FREITAS: OK.
Więc pamiętaj, że procent jest symbolem zastępczym.
To jest jak puste miejsce.
Więc spróbujmy zrozumieć wszystko że tu się dzieje.
Procent oznacza, że ​​jest to symbol zastępczy.
Potem masz F, co oznacza, że Jest to symbol zastępczy dla pływaka.
Ostatnią rzeczą, że mamy tu do czynienia 0,2, co oznacza, że ​​chcę mieć dwa
miejsc po przecinku dla pływaka.
>> Gdybym tylko miał% f, że będzie można umieścić kilka miejsc po przecinku.
Więc może po prostu umieścić 0,2 lub 0,1 lub 0,5, lub cokolwiek, i to, że dzieje się umieścić
liczba miejsc po przecinku.
Jedyną rzeczą jest to, że jeśli umieścić jak 0,100 lub .1,000, to nie jest faktycznie
zamiar umieścić wszystkie te miejsca dziesiętne ponieważ nie ma wystarczającej ilości pamięci
mieć, że dokładność.
>> Wszelkie inne pytania?
Tak?
>> PUBLICZNOŚCI: Więc unosić tylko pozwala można wyjść poza liczb?
>> LUCAS FREITAS: Tak.
>> LAUREN CARVALHO: Cóż, po prostu pływak pozwala mieć miejsca po przecinku.
>> LUCAS FREITAS: To po prostu oznacza, że ​​ci teraz może mieć liczb dziesiętnych.
>> PUBLICZNOŚCI: Dlaczego my zawsze używać liczb całkowitych?
>> LUCAS FREITAS: Dlaczego użyć liczb całkowitych?
Może jeśli liczysz od 0 do 10, chcesz używać właściwie liczbę całkowitą.
Nie musisz używać pacy.
W niektórych sytuacjach, nie musisz trzeba rzeczywiście -
>> LAUREN CARVALHO: Może Nie chcę po przecinku.
>> LUCAS FREITAS: Może nie chcesz używać pacy.
>> LAUREN CARVALHO: Inną rzeczą jest, Pamiętam, jak umieścić pływak i int
wziąć 32 bitów do ich przechowywania, a może nie chcesz marnować bity na
miejsc po przecinku.
>> LUCAS FREITAS: Tak.
Więc jak, po prostu o tym myśleć.
Masz 32 bitów dla obu int i float.
Dla int, wszystkie te 32 bity przejdź do części całkowitej.
Jeśli używasz pływaka z 32 bitów, Ciebie mają część pamięci jest używana w tym
w odniesieniu do liczby, do liczby całkowitej a pozostała część jest używany do
miejsc po przecinku.
Więc to oznacza, że ​​nie można dostać się do bardzo duża liczba pływaków, ponieważ z
unosić się już z dużo Pamięć dla miejsc po przecinku.
Tak?
>> PUBLICZNOŚCI: To pierwsza odpowiedź, Co to jest dokładnie to robi?
Jest to ustawienie wartości pływaka równego zastępczy, aby do tego, że można
wycofania go w następnej linii?
Mówi pływak odpowiedź.
>> LUCAS FREITAS: Tak.
Tak, pływak odpowiedź oznacza dostajesz teraz trochę wiadro w pamięci, że
posiada pływak, i że będzie nazywać odpowiedź.
Więc to, co robi pływak odpowiedź.
>> I wtedy można powiedzieć, że wewnątrz tego, masz zamiar umieścić
Skutkiem tego.
Więc masz zamiar zrobić 1,0 podzielone przez 10,0, masz 0,1, a następnie umieścić
że wewnątrz odpowiedzi.
>> LAUREN CARVALHO: Więc w jednej linii, jesteśmy deklarowania i inicjalizacji tego pływaka
nazywa odpowiedź.
>> LUCAS FREITAS: ciekawe, choć To jest tylko jeden wiersz, to robi
wielu operacji.
To jest po prostu sposobem C wynajem użyć mniej kodu.
To samo, co trójoperandowy operatora, jak można po prostu zrobić
[Niesłyszalne] w jednej linii.
To rzeczywiście robi to samo, co robi odpowiedź float, średnik i
Następnie odpowiedź równa, ale zamiast co można zrobić dwie linie za tym,
jak to jest skrót.
Tak?
>> PUBLICZNOŚCI: Więc jeśli dostał to, byłoby 0,10?
>> LUCAS FREITAS: Tak.
Tak?
>> PUBLICZNOŚCI: Czy odpowiedzieć właściwie kod, czy jest to tylko nazwa?
>> LAUREN CARVALHO: Ten jest faktycznie kod.
To jest to, co mamy zamiar nazwać naszą zmienną.
>> PUBLICZNOŚCI: Więc to jest po prostu Nazwa [niesłyszalne].
>> LAUREN CARVALHO: Tak.
Mógłbym powiedzieć pływak x równa się 1,0.
>> LUCAS FREITAS: Chodzi o to, że Nazwa zmiennej jest
coś, co używasz.
Ważne jest dla Ciebie.
Do aktualnego programu, jedyną rzeczą, Ważne jest to, że wartość
mają wewnątrz wiadra.
Powodem, dla którego masz zmienne i Nazwy zmiennych jest więc, że wiesz
co masz do czynienia z, jak jakiego rodzaju dane, że jesteś
dostępu w tym samym czasie.
Ale dla samego kodu, jeśli zadzwonisz to odpowiedź lub pytanie lub cokolwiek,
dość dużo, to nie ma znaczenia.
To nie ma znaczenia.
Tak długo, jak jesteś konsekwentny w każdy Wystąpienie to i tak to nazwać
coś innego.
Tak?
>> PUBLICZNOŚCI: Czy zmienne wykracza poza funkcją?
Jak gdybyś stworzyć wspornik [Niesłyszalne], można po prostu
[Niesłyszalne] ponownie odpowiedzieć?
>> LAUREN CARVALHO: Nie.
>> PUBLICZNOŚCI: [niesłyszalne]
>> LAUREN CARVALHO: Nie.
To byłoby poza zakresem tej konkretnej zmiennej.
I rzeczywiście, to jest rodzaj ciekawe, bo gdy mamy
rzeczy takie jak pętle lub te, jeśli warunki, jeśli zadeklarować zmienną
w innym zestawie klamrach, tak naprawdę istnieje tylko
w tych klamrach.
>> PUBLICZNOŚCI: ostatnia uwaga na temat że [niesłyszalne] pływaków.
Dlaczego miałbym kiedykolwiek chcesz korzystać ints?
To jest bardziej na marginesie, niż nic, ale komputer jest
znacznie lepiej na obsługę ints , niż to jest w pływaki obsługi.
To jak kolejności wielkości szybciej.
Więc jeśli tylko obsługiwane tylko pływa, wszystko byłoby o wiele wolniej.
>> LAUREN CARVALHO: Faktycznie, wydaje się, być problem z pływaków.
>> LUCAS FREITAS: Rodzaj przyczyny , że można myśleć, to jak w binarny
można reprezentować liczby całkowite poprzez umieszczenie 0 i 1-tych.
>> LAUREN CARVALHO: To Następną rzeczą.
>> LUCAS FREITAS: OK.
Niesamowite.
>> LAUREN CARVALHO: Tak trzymać tę myśl.
>> LUCAS FREITAS: OK, będę Powiem Ci później.
>> LAUREN CARVALHO: Zanim przejdziemy do tego, co Lucas był tylko, że operator
pierwszeństwo.
To jest zdrowy rozsądek.
Chłopaki zrobili to na tyle.
Tak, tylko jeśli coś jest w nawiasach, stanie się to wcześniej.
To mnożenie ma pierwszeństwo ponad Ponadto
odejmowanie, takie rzeczy.
Tak naprawdę, tylko nie każdy chce Powiedz mi, co właściwie jeden numer
ocenia się?
>> PUBLICZNOŚCI: 27.
>> LAUREN CARVALHO: 27?
Tak.
>> LUCAS FREITAS: Podam cukierki do ludzi.
>> LAUREN CARVALHO: W porządku.
Co o numer dwa?
>> PUBLICZNOŚCI: 22.
>> LAUREN CARVALHO: 22, tak.
Nie wiem, kto ma to.
Numer trzy?
>> PUBLICZNOŚCI: 10.
>> LAUREN CARVALHO: 10, tak.
Fajne.
Więc modulo.
Lucas, chcesz wyjaśnić modulo?
>> LUCAS FREITAS: Modulo to operator która jest w rzeczywistości bardzo przydatne dla
Pęczek problemów.
Jeśli robię 55 modulo 10, co robi to powiedzmy, że chcę
podzielić 55 przez 10.
Co dostanę?
Czuje się tak jak w rzeczywistości, jeśli tylko jestem ten podział, co jest
pierwszy raz, że mam całkowitą?
>> PUBLICZNOŚCI: 5.
>> LUCAS FREITAS: 5.
A potem reszta jest 5, prawda?
Tak to jest jak 5 razy 10 plus 5.
Zasadniczo, co modulo nie spróbuje podzielić tę liczbę przez ten jeden, i
widzi to, co reszta podziału.
>> LAUREN CARVALHO: Więc to tylko zwraca resztę.
Więc numer jeden jest to, co?
5.
Numer dwa?
>> PUBLICZNOŚCI: 3.
>> LAUREN CARVALHO: 3.
Numer trzy?
0.
A cztery to 1.
Dokładnie.
>> LUCAS FREITAS: Proste, prawda?
>> LAUREN CARVALHO: Dlaczego nie możemy pominąć tylko dlatego, że tak naprawdę nie ma
czas, i ludzie zdają się rozumieć.
Więc oto co Lucas właśnie chodzi.
>> LUCAS FREITAS: Kolejny powód, dla którego użyłby ints zamiast pływaków jest
że pływaki są bardzo nieprecyzyjne.
I dlaczego są one niewystarczająco precyzyjny?
David powiedział, że reprezentuje liczbę całkowitą, na przykład, używamy 0 i
1, tak?
A potem po prostu zrobić mnożenie, czy wszyscy ci,
Operacje wiedzieć, co numer dziesiętny masz zamiast binarnego.
>> Co się teraz stanie, jeśli spróbuję umieścić punkty dziesiętne?
Faktycznie, na przykład, jeśli mam liczba jak 3,33333?
Czuje się jak 10 na 3.
Jak mam się do przechowywania wszystkich 3 jest, że mam po tym?
To naprawdę trudne, prawda?
Nie można po prostu powiedzieć, komputer, hej, mam 3, i
następnie to zrobić zawsze.
Właściwie nie jest komputer wystarczająco inteligentny do tego.
>> Więc w zasadzie wszystko komputer nie jest że stara się umieścić jak najwięcej cyfr jako
to może się w pamięci, że masz.
Więc powiedzmy, że to będzie powiedzieć 3,3333, i to jest to.
Więc to nie jest w stanie właściwie wyrazić właśnie, że pływak jest.
>> LAUREN CARVALHO: Mamy skończoną ilość bitów, co oznacza, że ​​nie
każda liczba po przecinku będzie może być dokładnie reprezentowane.
A więc w tym przykładzie, jeśli mamy drukowania 0,1, jesteśmy teraz drukowanie
obecnie 20 miejsc.
>> LUCAS FREITAS: Tak jak mówiłem wy, można umieścić dowolną liczbę.
Ale jeśli po prostu nie dwa miejsca, można dostać 0,10, ale jeśli umieścić 20
miejsca, to będzie wam pokazać kilka z dlatego, to jest to, co można umieścić
w pamięci, prawda?
>> Ale tu, do 0, i jest po prostu umieścić go w
kilka liczb losowych.
To jest trochę jak niektóre -
>> LAUREN CARVALHO: To dlatego, że jesteśmy nie jest w stanie reprezentować ten przecinek
Właśnie w liczbie bitów mamy.
>> LUCAS FREITAS: A potem Komputer jest w zasadzie
co daje liczbę śmieci.
Nie jest to jednak wartość liczby.
>> PUBLICZNOŚCI: To jest tak blisko, jak może dostać [niesłyszalne]
za pomocą [niesłyszalne].
>> LAUREN CARVALHO: Więc implikacją jest to, że, powiedzmy, że zamiast
będąc 0.100014, co, , co oznacza, że ​​to 0,0999 -
dobrze, dobrze.
Udajmy, że rzeczywista odpowiedź Aby to było 0,9999999.
To jest bardzo zbliżona do 1, ale nie jest to dokładnie 1.
To 0,99999.
>> Oznacza to, że jeśli wezmę, że 0.999, i oddanych do int, mam 0.
Nie rozumiem 1.
>> LUCAS FREITAS: Bo pamiętam, odlewanie float na int, po prostu
zignorować wszystkie miejsca po przecinku.
Po prostu je ignorować.
Nie ma czegoś takiego jak zaokrąglania lub spływały po typecast.
Faktycznie, jest to funkcja ma zaokrąglenie, co jest
ważne, ale po prostu uważam, że kiedy ty rzutowania typów, to jest po prostu
zamierza usunąć wszystko.
Więc nawet jeśli masz 0,99999, to będzie po prostu dać 0, jeśli typecast
[Niesłyszalne] całkowitą.
>> LAUREN CARVALHO: Więc po prostu być bardzo świadomi z zmiennoprzecinkowych w precyzji,
zwłaszcza po uruchomieniu używać pływaków w Pset1.
Ale spacer po powinny ostrzegają o tym również.
>> LUCAS FREITAS: A w rzeczywistości jest to bardzo Trudno, na przykład, jeśli nie
pływak odpowiedź wynosi 1,0 na 1 10, a następnie unoszą odpowiedź 2
wynosi 10,0 ponad 100,0.
Są to te same liczby, prawda?
0.1, tak?
1 w ciągu 10 lub 10 na 100.
Ale teraz, gdy próbuję zobaczyć równości, jak gdyby odpowiedź 1 jest równa odpowiedzieć 2,
Może to nie jest faktycznie dzieje się samo.
Więc pływaki są trochę tak.
Są jak robi równości.