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. 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? 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.