>> JASON Hirschhorna: Dobrodošli CS50 poglavlje, svatko.
Moje ime je Jason Hirschhorn.
Ja sam puno tvoje TFS, ali puno ljudi nadamo se da će nam se pridružiti
online, proširenje studenti ili učenici pokušava gledati kroz odjeljak ako su
propustili svoj dio koji tjedan ili Samo nadoknaditi ako su htjeli
pregledati neke materijale.
>> Dakle, kao i po nastavnom planu, što sve mjesta ste pročitali, ispraviti?
Vidim puno glavu nominacija.
Sekcije Vam pružiti mogućnosti istražiti kolegij-a
Materijal u intimnijem okruženju, kao i zaroniti u
hands-on aktivnosti.
>> Dakle, to je zapravo ono što smo će se raditi svaki tjedan.
Mi ćemo proći kroz ono što imamo određuje da se najvažnije
Teme u predavanju, a oni vjerojatno najkorisniji i
najvjerojatnije da se na problematična setovima te u testovima, te u vaš kodiranje
Život izvan CS50.
Tako ćemo ići na te teme, njima raspravljati, ići preko njih,
odgovoriti na sva pitanja što vi imate, i onda ćemo napraviti puno
problemi u praksi kodiranja.
>> Jesi li donio laptop, što je fantastično.
To je klasa računalnih znanosti.
Međutim, puno vježbe radimo, nećete morati svoj laptop za.
Možete ih napraviti na listu papira.
Tako ćeš ih na kvizovima.
I doista, to je odličan način da se znam da kako to učiniti
nešto ako nemate Provjerite od 50 do oslanjaju na ili napraviti da se oslanjaju na, govoreći
ste napravili pogreške.
>> Tako ste dobrodošli kod na naprave ili run.cs50.net, što je
još jedan alat koji vam omogućuje da kod on-line, ali ja bih preporučio, ako
niste probali, koristite list papira i težak ove prakse
Problemi na listu papira.
Jer opet, to je u konačnici ono što će biti
upitao učiniti na kvizovima.
>> Dakle, krenimo s našim Dnevni red za danas.
Mi ćemo ići preko neke norme za naš dio, onda ćemo roniti
u matrice, funkcije, i komandne linije argumenata, što je ono što vi
pokrili prošlog tjedna u predavanju a onda ponedjeljak, a ono što ćemo pokriti
više sutra.
I onda napokon, idemo govoriti o pset2.
Ako sam mogao dobiti dizanjem ruku ako nisu gledali na problem seta dva
Specifikacija.
Mi ćemo reći svima.
Fantastično.
>> Mi ćemo razgovarati o problemima u setovima malo, ali ako ste pročitali problema set
Specifikacija, to je sve što trebate učiniti.
Ako ste pročitali da je prije nego što dođe do klasa i poglavlje u utorak, hoćete
biti odličan položaj.
Možemo proći kroz set problema, što je ono što ćemo
učiniti na kraju.
Mi ćemo proći kroz Logika, uvjerite
svi su na istoj stranici.
>> Želim biti u mogućnosti da napuste utorak osjećam se vrlo ugodno s onim što
trebate učiniti za ovotjednom skupu problema, a ako ne, ja ću rado
ostati nakon što se i raditi s vama.
Ali to je jedna stvar koju morate napraviti, ali mislim da će biti jako pametni,
samo čitati set problema Specifikacija po klasama u utorak,
koji zvuči kao Puno vas dečki učinio.
>> Ja ću početi s dnevnog reda svaki razred tako da znamo gdje idemo.
Ovo je također korisno za promatranje ljudi online, jer svaki dio
se boji, pa ako želite doći natrag i samo gledati 10 minuta prije
od cijelog 90-minutnog odjeljku može samo ići u boji kodirani sekciji
i pogled na taj dio.
Tako sam pokušao ih razbiti u lijepo modula koji će vam omogućiti da -
Ako želite vratiti i pregledati, ili drugim studentima koji su tek
gledate odjeljak za pregled -
pronaći određenu stvar koju želim da obratite pozornost na
i saznati više o tome.
Sweet.
>> Norme.
Ja sam FOP lider na kampusu.
Ja ne znam je li itko učinio FOP.
Je li netko to FOP?
Jedna osoba je FOP.
Dvoje ljudi je FOP.
Strašan.
Tako je FOP Prva godina vanjski Orijentacija program.
Uzimamo freshmen u šumu i napraviti najmagicnije iskustva
njihov život, točno?
Da.
Zvuči uvjerljivo.
>> Pa sam samo htio da započnemo naš prvi poglavlje raspravljajući neke norme
za klasu i naš odnos jer mislim
oni su vrlo važni.
Prvo i najvažnije, kao i one od vas koji su moje poglavlje primili i
je objašnjeno da je u e, volim ovu.
Ovo je moj najdraži dio godine.
Bila sam jako uzbuđena.
Ja sam ovdje već satima danas.
Nisam napustio ovu zgradu, osim u ići jesti jer volim CS50 odjeljak, sam
volim učenje, volim raditi s vama.
>> Jedan od najviših prioriteta, ako ne i moj prioritet broj jedan, ne samo za
ova klasa, ali uključujući i moje druge Nastava i extracurriculars, jest
podržava ti dečki, i pomoći vam dečki, a obaviti moj najbolji kako bi bili sigurni da vas
dečki imaju divno, zabavno, produktivniji, privlačan, uzbudljiv
doživjeti u ovoj klasi.
To je ono što sam počinio.
Zato volim to učiniti.
To je moj broj jedan stvar, podržava ti dečki.
Ako imate bilo kakvih pitanja u vezi predavanja, Problem set, dio,
život, čak i ako želite razgovarati o život, slobodno doprijeti.
>> Imate moj broj mobitela, imate moj e-mail
adresa, imate moj GChat.
Možete me kontaktirati na bilo koji ili sve od kad oni, ali vjerojatno neće doći
Odgovor god.
Ja pokušavam vratiti u roku od 24 sata.
Često će to biti u roku 20 minuta ili 24 minuta.
Trebao sam rekao da je kako bi se paralelno.
Ali vi ćete dobiti odgovor prilično brzo.
>> Ako pošaljem SMS mi sat vremena prije Problem je skup zbog, sam će vas smiriti
prema dolje i učiniti duboke vježbe disanja s vama, ali ako niste započeli,
ste vjerojatno ne ide do kraja, i Ja stvarno ne mogu vam pomoći vani
iako ću probati moj najbolji.
Dakle, ja ću učiniti sve što je Mogu vam podršku.
Slobodno doprijeti li to je u odjeljku opet, po uredovnog vremena
ako me vide, ili čak i izvan.
Sretan sam postaviti vrijeme za susret i rad kroz probleme
sa ili ići preko materijala.
Dakle, to je broj jedan, podrška.
Učinit ću sve što sam može vam podršku.
>> Broj dva, sastanak u sredini.
Koliko god mi željeli da bude, ja sam nije svemoguć ili svemoćan ili
sveznajući, tako da ja ne znam sve put, ako što radim je dobivanje
preko, ako je način na koji ja predajem Tema vam pomaže naučiti, ili ako
su zbunjeni na temu, ali ne neka digne ruku ili me pitajte
ili pošaljite mi e-mail.
Ili čak i ako, opet, su zbunjeni o nečemu na problem seta.
Ako ne dopru do mene, Ja ne mogu znati da je sigurno.
Ja ću obaviti moj najbolji to provjerimo vi, da je sve
dobro ide, pokušati naučiti stvari na način koji će biti pogodan za većinu
vaši stilovi učenja, ali ako postoji Mogu li nešto učiniti, javite mi.
>> U tom smislu, ako želite neku pomoć s problemom skup, ja sam više
nego sretni da vam pomoći s problemom setu.
Mi ćemo učiniti puno da su pred drugi
polovica tog dijela.
No, ako niste pročitali problem postavlja natrag i nisu gledali hoda
putem, a nisu gledali gaćice i očekujući da ću vas naučiti
sve što je snimao online ili koji možete naći na CS50
Studija, koja zapravo nije pošteno ja ili na drugim vršnjacima.
>> Dakle, molim vas, ja sam više nego sretni da vam pomoći da, ali ti dečki dobio da se nađemo u
srednje.
Imamo tona sredstava za što dostupan na CS50.
Spomenuo sam neke od njih.
Molimo iskoristiti ih.
Ako ste zbunjeni, ja sam više nego sretni će vam pomoći da ih objasniti u
drugi način, ali to nije fer, ako studentima se prikazati na radno vrijeme,
nisu započeli ništa, a to je U četvrtak navečer, a oni očekuju
TF da ih kroz svaki stvar za postavljanje problema zbog
u podne sljedeći dan.
Smisla?
Opet, molimo Vas da nas susret u sredini.
>> I na kraju, visoka očekivanja.
Ja ću biti ocjenjivanja svatko tko je u mom dijelu, odnosno postigao svoj
Problem seta.
Niste vratio problema postavite nula ili jedan još.
Ispričavamo se zbog toga.
Trebalo nam je neko vrijeme da se konačno podmirenje dijela, a sada
možemo početi ocjenjivanja.
>> Ja ću ih dobiti natrag na vas što je prije moguće.
To su neke od mojih advisees vani.
Ja ću ih dobiti natrag na vas što je prije moguće.
A za dva seta problema, mi ćemo biti na raspored i počet ćemo ih dobiti
na vas vrlo brzo nakon što ih pretvoriti u.
>> Kada se vaš problem postaviti natrag, što će dobiti rezultate, kao što znamo iz
čitanje plan i program - točnost, Dizajn, opseg, i stil bodova.
Također ćete dobiti komentare.
Komentari su važnije od rezultata.
Mislim da je sigurno reći da.
>> Rezultati su samo broj od jedan do pet.
Teško je čitati na one.
Teško je poboljšanje od onih.
Ali komentari će istaknuti određene ono što je dobro ili područja
možete poboljšati i dati vam neke ideje za budućnost ili alternative
načina obavljanja stvari.
>> Dakle molim vas, molim vas, pročitajte kroz komentare.
Stavio sam dosta vremena u ti komentari.
Molimo Vas da pročitate kroz njih i to ne samo pomicanje prema dolje do dna
PDF, tražiti svoj rezultat, ili otići online i pronaći svoj rezultat, a zatim ignorirati
komentari.
To nije kako si ide na bolje.
To nije kako ćete povećati Vaši rezultati u konačnici, samo
gledanjem na rezultate.
Molimo pogledajte tih primjedbi.
>> I uz liniju visoka očekivanja, opet, kao što sam rekao, da
može biti postignuto od jedan do pet.
Po dvoje, troje, i četveronoške se Velika većina rezultata
ti si idući u biti uzimajući.
Ones i petero su oboje jako rijetko.
Uvijek ima stvari možemo učiniti bolje.
Kad god sam kodirati program, postoji Ja uvijek nešto
mogao učiniti bolje.
>> Dakle, umjesto da kažete da se pet cijelo vrijeme o svemu i učinio
sve savršeno, ja ne mislim da bilo od nas stvarno vjeruju da smo - ili
nadamo se, ne učinimo sve što je usavršiti sve vrijeme.
Dakle, nemojte se zabrinuti ako nisu dobili pet.
Pet ne karte na, četiri ne preslikati na B, ne tri
Ne karta na jedan C. To nije kako su rezultati rada.
>> Kao i David je rekao mnogo puta, na Semestar je na kraju sve svoje rezultate i
Ulaz od mene, tvoja TF, dolaze zajedno i utvrditi konačnu ocjenu za vas.
Ali opet, to ne pet, , Četiri, B, i tako dalje.
Tako ću imati visoka očekivanja za vas dvoje.
Idem se očekuje velika problema seta, a ja ću dati
li povratne informacije kao takva.
I to neće značiti da ste će dobiti lošiju ocjenu.
Vi se ocjenjuju u smislu vaš napredak iz tjedna
nula do tečaja do kraja.
>> I na kraju, u smislu high Očekivanja u klasi, volim kad
ljudi sudjeluju.
Ja razumijem neki ljudi osjećaju više ili manje ugodno sudjeluju.
Drugi ljudi su sudjelovanjem Ne podizanjem ruku i
govorimo cijelo vrijeme.
No, mi u ovoj klasi će biti radiš puno malih problema, puno
mini pitanja, a zatim neke Veći kodiranja probleme.
Dakle, definitivno rade ove vježbe iz kad smo ih na vašem računalu ili na
list papira.
>> Ali ja ću vam dati malo vremena prije nego što se itko ikada mora odgovoriti na neka
od pitanja koja sam pitati.
Pa zato što će vam dati malo vremena da se razmišljati o tome, jer ćemo
raditi stvari partnerima ponekad, Ja očekujem svima
se bavi ponešto.
A u nedostatku boljeg izraza, postoji vjerojatno će biti hladno zovete, koji
je mjesto gdje će svi imati priliku razmišljati o odgovoru, a zatim
Zvat ću na vas, a zatim reći ćete odgovor.
>> Ne brinite ili se prepala o tome.
Ja sam to učinio u prošlosti, a mi smo pronašli da je puno uspješniji,
Također pročitajte obrazovni istraživanje o tome kako bi utvrdilo da li ili ne to je
dobra taktika.
To je vrlo korisna, pogotovo ako studentima dati vremena za razmišljanje o
odgovore i ne bi ih samo doći ga i reći pravo isključiti šišmiš.
Ali ako se ne osjećate ugodno odgovorim, ja sam također prilično dobar u
osjećajući da je out, a mi se ne ide na ti mu se na licu, osobito na
kamere, iako nitko od vi ste na kameru upravo sada.
>> Dakle, to su norme imam.
Još jedna stvar na tragu susreta u sredini.
Ja ću vam dati dečki Puno poruci.
Molim Vas, dajte mi povratne informacije, kao dobro.
Postoji web stranica, sayat.me/cs50.
Tako da je iskren povratne informacije.
Ako želite ga dati u odjeljku, Ja dobiti e-mail svaki put kad se to dogodi.
Mi ćemo uzeti pauzu u malo, pa ću gledati kroz poruci tada.
Ako ste ikada imati bilo kakve povratne informacije, molim daj mi ga tamo.
>> Ako mi dati povratnu informaciju o Q, koja je divno, ali to je vodič
da ti na kraju.
No, to će biti na kraju semestra je tako Neću biti u mogućnosti da se bilo što od toga
povratne informacije i pretvoriti ga u poučavanju ti dečki bolje.
Zato vas molim, ako imate bilo povratne informacije, daj mi ga.
Volim povratne informacije.
Povratak na FOP, dobivamo povratnu informaciju cijelo vrijeme.
>> Možete mi dati pluses, dobre stvari, deltas, stvari koje mogu poboljšati nakon.
Možete komentirati moje odjeće.
To neće biti od pomoći, ali ti si Dobrodošli komentirati bilo i
sve.
Molimo, molim vas dajte mi povratne informacije.
Cijenim ga puno i to puno znači za mene.
>> Još jedna norma, zabavno.
Mi ćemo imati puno zabave.
Nadam se u ovom Naravno, vi ćete imati puno zabave.
Morat ćemo slatkiše na sekciji.
Mi ćemo imati glazbu.
Mi ćemo nadamo se upoznavanju jedan još nešto dobro, pa želim
da je to zabavno, angažiranja iskustva.
>> Znam da neki od vas su zaspali u predavanja koje ste imali ranije danas,
pa nadam se da neće biti slučaj sada.
A ako je to slučaj sada, samo ne hrče, jer to bi moglo
biti uhvaćen na kameri.
Sweet.
Sva pitanja, komentare, ili nedoumica prije nego što sam premjestiti na oko svega što smo
govorio o?
Sjajno.
>> Tako ćemo ići u prvih polja.
Ovaj je kako možete napraviti niz.
Vidjeli smo to i prije.
Imate vrstu podataka, imate Naziv, a zatim imate veličinu.
Upravo ovdje, sam napraviti dva polja.
Prvi je niz znakova, i to ima 26 mjesta.
Drugi je niz rezultati, a ona ima tri
mjesta za tri cijela broja.
Da?
>> STUDENT: Jesu li sve te slajdove Dostupno negdje za nas?
>> JASON Hirschhorna: Velika pitanje.
Pitanje je bilo, sve su to klizi dostupni?
Da.
Sve ove slajdove će biti dostupan, iu budućnosti, ja ću ih poslati
što prije sekciji.
Ali danas, jer je to prva tjedno, imali smo kasno početi.
Tako obično, da ćete dobiti ove slajdove, ali oni će biti dostupni online i
Ja ću ih e-poštom na vas odmah nakon klasi.
Bilo koja druga pitanja?
>> Pa opet, nizovi su kutije, zbog nedostatka bolja riječ, da imaju više
elementi jedne vrste podataka, a oni su jedna pored druge u memoriju.
I tako opet, to je način kako možete napraviti dvije vrste polja.
>> Dakle, nakon što ste napravili svoj niz s da je prva linija - int rezultati, nosač
tri, u neposrednoj blizini zagrada - što želim ga započeti.
Želite staviti neke vrijednosti u njemu.
A to je, kako se staviti neke vrijednosti u postoji, samo odabirom indeksom i
piše broj.
Idemo crtati ovaj na brodu.
Može li svatko vidjeti?
Svatko može vidjeti.
Sweet.
>> Tako da će to biti moj Niz zove ocjenu.
Kao što možete vidjeti, to je veličine tri.
Postoje tri kutije u postoji.
Svatko može stati ono što vrsta podataka tipa?
>> STUDENT: Integer.
>> JASON Hirschhorna: cijeli broj u ovom jednom.
Napisali smo int rezultate, i prva riječ je tip podataka koji će
idu u kutije u tom polju.
Dakle, ja mogu stati tri.
Zašto imam nula do tamo na brodu?
Zašto to kažem ocjena nula jednak 1?
Podsjeti me na svoje ime.
>> STUDENT: Kurt.
>> JASON Hirschhorna: Kurt.
>> STUDENT: Da.
>> JASON Hirschhorna: Zašto?
>> STUDENT: Zbog prvi indeks je nuli, počinjemo brojati od nule.
>> JASON Hirschhorna: Dakle, počinjemo računajući na nuli.
To je točno.
To je zbunjujuće i dio volja putovanje da se, pogotovo kad si
pokušavajući ponoviti kroz polja, što ćemo napraviti u malo.
Mi početi računajući na nuli.
Dakle, ako želim da se odnosi na prvi box, to nije jedna kutija.
Nažalost, to je kutija nuli.
Drugi je jedan okvir, a to slučaju, treća je okvir dva.
>> Što je s tri kutije?
Gdje je kutija tri?
Ili ako želim napraviti rezultate, nosač tri, u neposrednoj blizini zagrada, što je to?
Dakle, kazao je znak za prazno.
Bilo koji drugi misli?
Što je ocjena nosač tri nosač?
>> UČENIK: On zapravo ne postoji, jer samo definirati kao ocjenama,
Nosač tri.
>> JASON Hirschhorna: Dakle, vi kažete što zapravo ne postoji.
U nekim slučajevima, kada imamo posla žice, uglavnom ćemo staviti null
znak na kraju.
Mi ćemo doći do toga drugo.
No, u ovom slučaju, postoji Nema trećeg box ovdje.
Tako posljednja kutija u svakom polju Veličina je minus 1.
Dakle, ako imamo niz veličine n, prva kutija je na nuli, posljednja je
na n minus jedan.
I u ovom slučaju, to ne postoji.
Ima nešto ovdje u memorije, ali to nije naša.
Mi ne posjedujemo.
Nismo pitati za to.
Dakle, ako ćemo pokušati pristupiti, što ćemo učiniti malo, vjerojatno ćeš
uvaliti u nevolje.
>> U tom slučaju, ja sam inicijalizacije My polje s tri varijable.
Mi smo stavljanjem jedan u okvir nula, dva u polju jedan, i tri u okviru dva.
Da li itko ima bilo kakvih pitanja O inicijalizacije niz?
>> Tako smo o to upravo sada.
Rezultati, tri nosača, u neposrednoj blizini zagrada, da ne postoji.
Mi smo nula indeksirani u računalnoj znanosti, tako da počnemo brojati od nule.
Posljednji box dostupni nama, to je Treća kutija, ali to se zove box
broj dva.
>> Tamo dolje, ovo je alternativa način inicijalizacije polja.
Dakle, umjesto da stvara niz na jednom linija, punjenje prvu kutiju, a zatim
Drugi okvir, zatim treći okvir možete učiniti sve u jednom retku.
Dakle, u toj liniji, oba polja.
To stvara isti kao točan niz ono što smo stvorili ovdje, ali to
Upravo se to u jednoj liniji.
>> Sada smo stvorili našu lepezu.
Obično kada stvorite niz, što Želite učiniti nešto s njim, je li
koji je to ispuniti ili dobiti stvari iz nje te ih ispisati na zaslonu.
U ovom slučaju, idemo kroz naše rezultati polje, koje inicijaliziraju se na
prvi red do ovdje u sivoj boji.
A onda u drugom redu, počinjemo Ponavljanje kroz niz.
Da li itko ima bilo kakvih pitanja u vezi struktura za petlju?
>> Dakle, ovo je za petlju.
Mi imamo početni uvjet, a zatim naš konačni uvjet, a zatim smo
iteraciju, I, svake petlje.
I u vitičastim zagradama u to za petlje, što će se dogoditi ako su za pokretanje
ovaj program?
Može li mi netko reći što bi dobili?
[? Matu? ?]
>> Matu: Ispišite sve bodove na svakoj liniji.
To će ispisati svaku ocjenu na zasebnoj liniji.
>> JASON Hirschhorna: Što je točno će se ispisivati?
>> STUDENT: To će ispisati jedan, zatim dva, zatim tri.
>> JASON Hirschhorna: Točno.
To će ispisati jedan, zatim dva, zatim tri, svaki na odvojenim linijama, jer
idemo kroz polje, a vi ćete vidim da drugi, printf
Izjava, rezultati i.
Dakle, na prvom kolu kroz naše za petlje, i jednaka nuli, što znači da smo
dobivanje vrijednosti na nula bodova -
koja, ako se vratimo u Dijagram naš, jedan je -
i popunjavanje -
Oh, ona kaže c.
To bi trebao biti% d.
Ja ću to popraviti u malo kada I ruka koja se s vama.
No, mi smo predstavljajući cijeli broj tako da trebao biti% d ovdje, ne% c.
Što je% c za?
>> STUDENT: Karakter.
>> JASON Hirschhorna: Karakter, točno.
Što je drugi?
Ako ne želite raditi za% d cijeli broj, što još možete učiniti?
>> STUDENT: ja.
>> JASON Hirschhorna: ja%, točno.
Dakle, bilo kakva pitanja o iterating kroz niz?
Dakle, što se događa ako smo to učinili?
Umjesto da radi i manji od tri, što trebam je manje
od ili jednak tri.
Što se događa kada smo pokrenuti ovaj kod?
Da, Annie?
>> STUDENT: Oni će ispisati čudna stvar na četvrtoj liniji.
>> JASON Hirschhorna: Pa što si rekao, to je će se ispisati čudnih stvari na
Četvrta linija?
Ima li netko odgovor na njezino pitanje?
Dakle, izgledi su da kada možemo doći do -
tako da se na četvrtom kolu kroz naše za petlje, baš kao što ste mislili, Annie,
to će biti rezultati nosač tri, koja su smo već shvatili ne
postoje, a mi ćemo pokušati i pristup da ga ispisati
out, koristite ga na neki način.
Dakle, računalo će vjerojatno ljutiti na nas.
Ti si upravo pravo.
>> To bi moglo zatvoriti program uopce.
To bi moglo ispisati nešto stvarno čudno.
Ne mogu sa sigurnošću reći.
Tečajevi su to ćete vjerojatno dobiti ljut na ti i samo prestati odmah.
>> Ali to je česta pogreška da ćete imati gdje si samo off po jedan u
na kraju, a to je bug koji će ti boljka tijekom svoje kodiranje.
Jedan od načina volim raditi samo na ploču, proći kroz svaku iteraciju
od petlje na ruci ili na papiru vidjeti što se događa, a onda
općenito shvaćaju, oh čekati, nisam trebao otići na manje od ili
jednak tri.
Trebao sam se zaustavio na dva, što je što će se dogoditi ako vaše stanje je manje
od tri.
Sva pitanja dosad?
Sweet.
>> Dakle, svi vi imate svoje računalo otvoreno.
Mi ćemo vam dati dva i pedeset osam minuta za napisati program koji
stvara niz brojeva s jednim kroz pet, a zatim ispisuje svaki
broj u novom retku.
A ako imate bilo kakvih pitanja, neka digne ruku.
Sretan sam doći.
Kao što sam rekao, uzmimo tri minute pisati ovo.
Jesu li svi u redu ako idem na novi prozor i zatvoriti ovo?
>> Žao mi je ako niste imali priliku do kraja, ali mi ćemo to učiniti
zajedno upravo sada.
Tako se na ekranu, ja sam # uključiti cs50.h, # include stdio.h.
Može netko reći mene što one dvije linije učiniti?
Michael?
>> STUDENT: Oni uključuju knjižnice da CS50 je i da Steve ima
spremiti za korištenje u učiniti vaš život lakšim.
>> JASON Hirschhorna: Pa rekao si da uključuju knjižnice, jednu koja CS50
je, cs50.h, i onaj koji je samo standardni, dolazi s
C paket, stdio.h.
Što misliš uključuju knjižnice, iako?
Možete li biti malo precizniji?
>> STUDENT: To čini tako da možete koristiti određene riječi koda imati
funkcionirati dogoditi bez da moraju ići i napraviti funkcije c sebe.
>> JASON Hirschhorna: Može li daj mi jedan primjer?
>> STUDENT: Kao printf jedan je možete koristiti.
>> JASON Hirschhorna: printf.
Dakle, kazao je printf je jedan od onih Funkcije u kojoj umjesto da
printf napisati sami, printf je uključeno zapravo u stdio.h, tako da
Možete jednostavno ga koristiti i pretpostaviti da će raditi.
U stdio.h, ako otvorila tu datoteku, bi se uključuju kako printf
radovi, sve kod za printf?
Zašto se trese glavu?
>> STUDENT: Zbog header file jednostavno uključuje funkcije deklaraciju.
>> JASON Hirschhorna: Savršeno točno.
Header file jednostavno uključuje Funkcija deklaraciju.
Tako je u osnovi, kada se prikupi te, Provjerite pogodio Count, koji ćemo učiniti u
Drugi, prevodilac zna da ako koristite printf, printf postoji.
To će se definirati negdje.
To nije problem za što ga koristite.
A onda kasnije, to će uključivati nule i jedinice koje zapravo sadrže
printf-a provedba i spojite ih s kodom.
Kako bi bili sigurni da uključuje nule i jedinice za, recimo, dobili niz?
>> STUDENT: Dobiti niz u cs50.h.
>> JASON Hirschhorna: Točno.
Tako da se kaže da postoji niz, Funkcija deklaraciju.
Ali onda su nule i jedinice, binarni datoteka koja zapravo uključuje
Provedba dobili string?
Kako bi bili sigurni da ide sa svojim programom?
>> STUDENT: Pass spojnici u argument naredbenog retka.
>> JASON Hirschhorna: Pass spojnici u argument naredbenog retka.
Kako ćete to učiniti?
>> STUDENT: To je l-linije u Dong
>> JASON Hirschhorna: Savršeno točno.
Kažete-l CS50, zar ne?
To uključuje i one i nula.
>> STUDENT: Ali ne bi da je za tebe, zar ne?
>> JASON Hirschhorna: Točno.
Provjerite da li to za vas, ali na kraju, nećete imati napraviti, ili
ćete morati napraviti Napravi na svoju ruku, tako da je
dobra stvar za zapamtiti.
Ako ste bili će se koristiti jedan od njih ostale knjižnice, ne samo da imate
pisati # uključiti i zatim knjižnice.
Također morate ga povezati u.
A te dvije stvari su drugačije. L-CS50 je drugačiji
od # uključiti cs50.h.
>> Onda imamo int main void vitičastim zagradama, a sad idemo u kodu
Glavni unutra.
U prvom redu moram ovdje je komentar kako kaže, stvoriti niz
s Ints od jedan do pet.
Što je dobra riječ za opisati ono što sam upravo sada na ekranu, jednostavno
komentari unutar glavna?
Što smo to nazvali?
>> STUDENT: pseudocode.
>> JASON Hirschhorna: pseudocode.
Hvala vam, Jeffrey.
To je točno.
Pseudocode.
Jeste vi vidjeli pseudocode prije?
Podignite ruku ako ste već koristili pseudocode prije problema postaviti jednu.
Oko polovice vas.
>> Ja bih visoko preporučiti koristeći pseudocode razbiti probleme u
manje, lako odgristi komada.
Isto tako, ako to učinite na pseudocode, što imaju svoje komentare već uvelike
izgrađen, tako da ne morate vratiti i pokušati shvatiti
ono što ste radili.
Dakle, može netko mi dati ovu prvu liniju stvoriti niz s jednim Ints
kroz pet?
Vi?
>> STUDENT: Interesi i tada možete nazvati bez obzira na broj, a zatim trg
Nosač pet.
>> JASON Hirschhorna: Dakle int brojeva, uglata zagrada pet.
>> STUDENT: Jednako, i zatim vitičastim zagradama.
>> JASON Hirschhorna: Jednako, vitičastim zagradama.
>> Student: jedan, dva, tri, četiri.
>> JASON Hirschhorna: Jedan, dva, tri, četiri, pet.
>> STUDENT: I ​​onda vitičastim zagradama , a zatim zarez.
>> JASON Hirschhorna: A kovrčava aparatić i zarezom.
Izvrsno.
Ispiši svaki int na novoj liniji.
Može li netko dati ja da je broj, molim vas?
[? Matu? ?]
Samo naprijed.
>> STUDENT: Za (
>> JASON Hirschhorna: Za (
>> STUDENT: int i = 0
>> JASON Hirschhorna: int i = 0
>> STUDENT: Točka-zarez i manji od pet.
>> JASON Hirschhorna: Točka-zarez, i manje od 5.
>> STUDENT: Točka-zarez, ja + +.
>> JASON Hirschhorna: Točka-zarez, ja + +.
>> STUDENT: Zatvorene zagrade, onda otvoren braće.
>> JASON Hirschhorna: Zatvorena zagrada i dvije aparatić.
Unutar aparatić?
>> STUDENT: I ​​onda printf "% d / n"
>> JASON Hirschhorna: Žao nam je, drži se.
Printf "% d / n, zatvorena citat.
>> STUDENT: I ​​onda zatvorena citat, zarez, računati, nosač ja.
>> JASON Hirschhorna: Zarez, računati, nosač ja.
>> STUDENT: Žao nam je, brojevi nosač ja.
>> JASON Hirschhorna: Brojevi, nosač ja.
>> STUDENT: Žao nam je.
A onda zatvorena zagrada, zarez.
>> JASON Hirschhorna: Zatvorena zagrade, točka i zarez.
Ja ću spasiti da.
Idemo napraviti računati.
A kako ću pokrenuti računati?
>> STUDENT: Kosa crtica prema natrag.
>> STUDENT: Dot kosu crtu -
>> JASON Hirschhorna:. / Brojati, točno.
Hvala Vam. . / Brojati.
Jedan, dva, tri, četiri, pet na novim linijama.
Izgleda kao da je radio.
Da, Noah?
>> STUDENT: Također se može učiniti manje ili jednaka četiri, kao što su i manji od
ili jednako četiri?
Ima li prednost radi manje od pet, ili samo drugačiji način
to piše?
>> JASON Hirschhorna: Dakle, pitanje je što mogao učiniti i manja ili
jednaka četiri umjesto i je manje od pet.
Kamo sreće da su radili isto?
>> STUDENT: To bi trebao.
>> JASON Hirschhorna: Da.
To potpuno bi raditi isto.
Stilski, to je općenito manje od, a vi ćete vidjeti u drugom kada je
radimo žice, možete koristiti nešto zove strlen, koji ste vidjeli
prije, kako bi dobili duljinu od niza.
I ne možete učiniti manje nego ili jednaka strlen.
Ti bi mogao napraviti manje ili jednaka strlen minus jedan.
Dakle, to je samo ljepše to manje od strlen.
Da?
>> STUDENT: I ​​u stvarni kvizove, učinite moramo dati komentare na našim
Kod te?
>> JASON Hirschhorna: Pitanje je u kvizovima, to vam
morati dati komentare?
Dakle, mi ćemo govoriti više o kvizova kada oni dolaze, ali općenito, dobar
Pravilo je kad si pisanja koda, daju komentare.
Ako ste dobili krivu, ali se kod komentirati prava, možda ćete dobiti neke
Kreditna i od mene ako sam bio klasiranje li na problem seta ili na kvizu.
Dakle, komentari su uvijek Dobar pružiti.
Sweet.
Točka.
Odličan posao.
Idemo dalje.
>> Strings.
Strings.
Vidjeli smo to prije u predavanju.
Ovo raznio moj um kad sam Prvi pronašao ovo.
To vjerojatno nije raznijeti itko pamet ovdje, ali to je u redu.
>> Nizovi su nizovi znakova, a završili su sa, kao što je rekao ranije,
null terminator, koji je li to / 0 znakova.
Ako ćemo povući niz na pansion, mi ćemo ga privući više ovdje.
Pa koliko je ovaj niz?
Žao nam je.
Koliko je ovaj niz?
>> STUDENT: [nečujno].
>> JASON Hirschhorna: Četiri?
Zašto je četiri?
>> STUDENT: Zbog Peto je mjesto je za null karakter.
>> JASON Hirschhorna: Dakle Peto je mjesto je za null karakter.
Dakle, ako mi je to trčanje na strlen toga, to će mi dati četiri.
Ispravite.
A niz, iako, ako su za započeti ovaj niz, koliko mjesta
bih ja moram tražiti?
>> STUDENT: Pet.
>> JASON Hirschhorna: Pet.
Ja bi pitati za pet, a ja mogu Samo stavite četiri znaka ovdje
jer trebam staviti taj null terminator na kraju.
Tako ćemo pisati u "ohai" i mu je nula terminatora u na kraju.
Mi ćemo reći da je ovo string a jednako je ovo.
Što je s nosača nula?
Nosač je nula, Annie?
>> STUDENT: O.
>> JASON Hirschhorna: O, točno. Nosač je jedan?
S pet nosač?
>> UČENIK: Ne postoji.
>> JASON Hirschhorna: ne postoji.
Točno u pravu.
Cool.
Sva pitanja o razumijevanju žice su nizovi znakova?
OK, onda.
Još jedan program za vas dečki.
Napišite program koji traži od korisnika za niz zatim ispisuje iz svakog
Lik na novoj liniji.
Dakle, uzmimo tri minute pisati ovaj program, a onda ćemo ga kod
kao skupina.
>> Žao nam je.
Je li vam je potrebno da biste vidjeli ovo?
>> UČENIK: Ne
>> JASON Hirschhorna: OK.
Uzmimo jednu minutu da kod toga, ili barem početak rada na njemu.
>> Dakle, možete nastaviti raditi, ali idem za početak prolazi kroz njega.
Dakle, kao i prije, moram na zaslonu # Uključiti cs50.h, # include stdio.h.
int main prazninu.
U glavnoj je vitičastim zagradama, moram dva komentara, pseudocode.
Jedan je pitati za niz od korisnika.
Drugi je isprintati svaki Lik na novoj liniji.
Dakle, Anna, možete li dati te pitam za niz od korisnika?
>> STUDENT: printf.
>> JASON Hirschhorna: printf?
>> STUDENT: Da.
(
>> JASON Hirschhorna: (
>> UČENIK: "Daj mi string.
>> JASON Hirschhorna: "Daj ja str - pardon -
string.
>> STUDENT: / n ") zarez.
>> JASON Hirschhorna: Prekinite string, zatvorene zagrade, točka i zarez.
>> STUDENT: Da.
A onda sljedeći redak, niz s = dobili niz.
>> JASON Hirschhorna: String s = dobili niz.
>> STUDENT: Da.
A onda ()
>> JASON Hirschhorna: ()
>> STUDENT: Točka-zarez.
>> JASON Hirschhorna: Točka-zarez.
Fantastično.
Tako ću dobiti niz i Ja ću ga spremiti u što?
Što je varijabla zove koju ste stvorili?
>> STUDENT: String s.
>> JASON Hirschhorna: promjenjiva se zove e.
To je tipa string.
Točno.
Sljedeća stvar koju želimo je ispisati svaki lik na novoj liniji.
Tko mi može dati taj kod?
[Nečujno]?
Možete li mi ga dati?
>> STUDENT: Svakako.
>> JASON Hirschhorna: Ajmo.
I žao.
Ja ne bih ponoviti ono što ti kažeš zato što ste uzimajući to pravo, ali ja
moramo to ponoviti, tako da kad se prepisati to, oni mogu dobiti sve
Tekst se na prijepisa.
Tako možete jednostavno držati govori.
Nažalost, moram to reći nad vama.
Žao mi je, ali -
>> STUDENT: To je u redu.
Za int i = 0
>> JASON Hirschhorna: Za int i = 0
>> STUDENT: I ​​manje nego -
>> JASON Hirschhorna: Točka-zarez.
>> STUDENT: Prije toga, možemo staviti mijenjati, pa ste dobili ime int duljinu?
>> JASON Hirschhorna: Oh, vi ne želite staviti zarez?
OK.
Dakle, ono što želite učiniti nakon nule?
>> STUDENT: Želim doći string duljine s, a
postavite kako u varijablu?
>> JASON Hirschhorna: OK, pa kako ću to učiniti?
>> UČENIK: Pa što učiniti int duljina =
>> JASON Hirschhorna: Interesi duljina =
>> Student: S-T-R-L-E-N.
>> JASON Hirschhorna: S-T-R-L-E-N -
>> STUDENT: s.
Zagrade.
>> Jason Hirschhorna: (i).
>> STUDENT: I ​​onda mislim da morate stavio zarez između dviju Ints.
>> JASON Hirschhorna: zarez nakon nule?
>> STUDENT: Da.
Zatim stavite zarez nakon toga, i kažeš, ja manje od duljine.
i manje od duljine, koji je promjenjiva.
>> STUDENT: I ​​onda zarez.
>> JASON Hirschhorna: Točka-zarez.
>> STUDENT: ja + +.
>> JASON Hirschhorna: ja + +.
Tu je naša za petlje.
OK, unutar for petlje.
>> STUDENT: I ​​onda printf.
>> JASON Hirschhorna: printf.
>> STUDENT: zagrade.
>> JASON Hirschhorna: zagrade, navodnike.
>> STUDENT: zagrade, citati,% c / n.
>> JASON Hirschhorna:% c, u redu.
>> STUDENT: / n.
>> JASON Hirschhorna: / n.
>> STUDENT: Zatvoreno citati.
>> JASON Hirschhorna: Zatvoreno citati.
>> STUDENT: Zarez.
>> JASON Hirschhorna: Zarez.
>> STUDENT: S.
>> JASON Hirschhorna: S.
>> STUDENT: Nosač ja.
>> JASON Hirschhorna: Nosač ja.
>> STUDENT: I ​​onda zatvorene zagrade.
>> JASON Hirschhorna: Zatvorena zagrada.
>> STUDENT: I ​​onda zarez.
>> JASON Hirschhorna: Točka-zarez.
Fantastično.
Tako ćemo uštedjeti ovo.
Provjerite pravopis.
Oh boy.
Imam nekoliko pogrešaka.
Prva pogreška na liniji 11, kaže, Očekuje izraz, a to je davanje
me pogreška koja druga int, tu je pogreška.
Postoje neke pogreške oko tamo.
Zna li itko što je pogreška koja je?
Kurt?
>> STUDENT: Mislim da bi to trebalo se zarez, a ne zarez.
>> JASON Hirschhorna: OK, zarez umjesto zarezom.
Tako da je sve što trebamo popraviti?
>> UČENIK: Ne
>> JASON Hirschhorna: Što drugo trebamo popraviti?
>> STUDENT: Moramo uključiti string.h.
>> JASON Hirschhorna: Uključi string.h.
Gdje trebam uključiti da?
>> STUDENT: Sve mjesto ste uključujući druga stvar, zar ne
nakon što su stdio.h.
>> JASON Hirschhorna: Idemo vidjeti ako to radi Prvi jer je općenito, volim
popraviti jednu stvar prvi, a zatim pokrenuti je, a onda vidjeti pogreške smo dobili.
Tako ćemo izbiti terminal s kontrolnom n, neka je ne bi čarolija.
Dakle, još jedna pogreška na liniji 11.
Očekivani zarez.
I ja sam još uvijek uzimajući pogreške na ovoj liniji.
Dakle, to nije dao mene greška ga rekavši ne razumijem što je strlen,
ali to je davanje mene pogreške na to linije, tako da ono drugo nije u redu?
Označite?
Marcus.
>> STUDENT: Imate li ukloniti Drugi int izjava?
>> JASON Hirschhorna: Uklonite Drugi Int.
Pokušajmo ovo.
Sada čišćenje terminala.
Provjerite pravopis.
Pogreška.
Implicitno proglašenja knjižnicu funkciju strlen.
Dakle, sada smo vidim tu pogrešku.
Što mi je potrebno uključiti?
>> STUDENT: String.h.
>> JASON Hirschhorna: Uključi string.h, ćemo # uključena string.h na vrhu
na zaslonu.
Idemo spasiti, bi čarolija.
Sada sastavio.
Pa opet, ono što je potrebno kako bi sjećam liniju 12 u našem za petlje kad
mi smo to postavljanje, int i = 0, duljina = strlen (s).
>> Ovo je fantastičan strategija.
Stil ovo je super, Dizajn je super.
Možemo ići u tih razloga kasnije, ali ovaj put samo trebate zvati
strlen jednom umjesto da svaki put kada pokrenete kroz petlju.
Međutim, morate koristiti zarez postoji a vi ne morate ponovno int.
Ako ste oboje proglasio onima varijable zajedno, što
ne treba ponovo INT.
I onda, ako ste išli koristiti strlen, što je još jedna knjižnica
funkcioniraju nisu uključeni u stdio.h ili cs50.h, provjerite
da li su string.h.
Kurt?
>> UČENIK: Pa onda, ako vam ne trebaju reći što tip duljina je, ne da
znači da mora biti int?
Vi ne može imati dva različita Kategorije tamo?
>> JASON Hirschhorna: tako da bi mogao imaju dvije različite vrste.
Duljina je int ovdje, ipak.
Duljina je int jer je zarezom a onda ista stvar.
>> UČENIK: Pa on pretpostavlja da će da je isti kao i prvi?
>> JASON Hirschhorna: Točno.
Nećemo to učiniti sada, ali može uključivati ​​dvije varijable na
Isto linije koristeći jedan tip podataka.
Dakle int x, y bi stvorili dvije varijable.
Dakle int x, y, ako ćemo napraviti da to daje ja neiskorišteni varijabla xiy, jer
mi ih ne koristite.
Dakle, prije nego što stavite prazninu je samo Trik zavoljeti ako ne koristite
nešto, kako bi ga koristiti.
Ali, kao što vidite, ja stvaram xiy na istoj liniji sa zarezom.
On stvara dva prirodna broja tamo.
Tako da, sasvim moguće stvoriti dvije stvari na istoj liniji
odvojena zarezom.
Da biste dobili osloboditi od onih koji, iako.
>> Tako da je čarolija.
Hvala vam dečki za to kodiranje za nas.
Neka to bude jedan više vremena, pokrenite ga.
Daj mi niz.
[Nečujno], što je najviše od njega.
Što je niz?
>> STUDENT: Pozdrav.
>> JASON Hirschhorna: Pozdrav.
H-E-L-L-O, svaki znak na jednoj liniji.
Izgleda super.
Idemo ga ponovno pokrenuti.
Uvijek ide na check Za kutne slučajevima.
Što je dobra kutak slučaj provjeriti?
>> STUDENT: broj?
>> JASON Hirschhorna: broj.
Dakle, ja ću staviti u jedan, i to ispisuje jedan.
To ne traži slova, tako da čini se kao brojevi rad.
Dobro kutak slučaj provjeriti.
Ono što je još jedan dobar udarac Slučaj provjeriti?
>> STUDENT: prazan string.
>> JASON Hirschhorna: Hm?
>> STUDENT: Kao prazan niz.
>> JASON Hirschhorna: Prazan string.
Dakle nemojmo staviti u bilo što.
A što će se ispisati?
>> STUDENT: Ništa.
>> JASON Hirschhorna: Ništa.
Čini se kao da to radi.
Možete pokušati još više slučajeva kutak, ali općenito brojeva, drugačije podaci
lijepo probati, kao i ništa.
Ništa, nula, negativi su uvijek velike stvari za isprobavanje i stvari koje vas
Ukoliko test, stvari sigurno ćemo testirati Prijava za i 50 će testirati.
Sva pitanja oko spell.c?
>> OK, neka je glavu natrag.
Imam jedan program za vi pisati.
To se zove students.c.
To je program koji traži od korisnika za pet imena, a zatim nasumično odabire
i ispisuje jedno od imena.
Ovaj program je malo više pozornosti nego zadnje dvije smo pisali,
pa zašto ne uzmemo pet minuta ga kod pojedinačno, a zatim ćemo
ga kod kao skupina.
>> Ovaj program također uključuje neke stvari možda niste vidjeli prije, pa ako
imate pitanje o tome, kako je to Ja to učiniti, neka digne ruku.
Ja ću doći, a vas uputiti u pravom smjeru.
No, i mi smo to radili jer to će biti dobar način da se uvedu neke
Teme koje su lukav.
>> Tako se to radi, zar ne?
>> STUDENT: Da.
>> JASON Hirschhorna: Kad god okrenete u Problem set, ima i mnogo načina kako to učiniti
da, ali neki su više elegantna od drugih.
Neka nam zaroniti u.
# Uključiti cs50.h.
# Uključiti stdio.h.
int main void, vitičastim zagradama.
Unutar vitičastih zagrada, Imam dvije primjedbe.
Prvi je, pitajte Korisnik pet imena.
Drugi je, slučajno odabrati i ispisati jedno od imena.
Tako ćemo napraviti prvi jedan, pitajte Korisnik pet imena.
Tko je pitao korisnički za pet imena i može mi reći kako to učiniti?
Samo dvije osobe je prvi dio.
Troje ljudi je prvi dio.
Četiri, pet.
Tom, kako vi to učiniti?
>> STUDENT: Ti bi proglasiti string a zatim ime, nosač pet.
>> JASON Hirschhorna: String ime nosač pet.
Pa što je ovo linija radi, string ime nosač pet?
>> STUDENT: Vi će proglasiti niz žice.
>> JASON Hirschhorna: Ovo je niz žice.
Koliko žice idu se uklopiti ovdje?
>> STUDENT: Pet.
>> JASON Hirschhorna: Pet.
Izvrsno.
Mi ćemo ga zovu imena, jer ćemo dobiti više one.
OK, sljedeće?
>> STUDENT: I ​​onda imaju za petlju -
>> JASON Hirschhorna: Za petlje.
>> STUDENT: - za i = 0.
>> JASON Hirschhorna: for (int i = 0.
>> STUDENT: Točka-zarez.
>> JASON Hirschhorna: Točka-zarez.
>> STUDENT: I ​​manje od pet.
>> JASON Hirschhorna: Ja manji od pet.
>> STUDENT: Točka-zarez.
>> JASON Hirschhorna: Točka-zarez.
>> STUDENT: ja + +.
>> JASON Hirschhorna: ja + +.
>> STUDENT: I ​​onda zatvorene zagrade.
>> JASON Hirschhorna: Zatvorena zagrada, i onda neki vitičastim zagradama.
Unutar vitičastih zagrada?
>> STUDENT: I ​​onda printf.
>> JASON Hirschhorna: printf.
>> STUDENT: Otvorena zagrade, naziv% d.
>> JASON Hirschhorna: Žao mi?
>> STUDENT: Ime.
>> JASON Hirschhorna: Ime.
>> STUDENT: I ​​onda prostor, a potom% d.
>> JASON Hirschhorna: Ime, prostor,% d.
>> Student: A onda / n, a zatim zatvorena.
>> JASON Hirschhorna: Dakle, ime, prostor, % D / n, zatvorene zagrade.
>> STUDENT: Zarez, ja + 1.
Žao mi je.
Zatvorena citat, a zatim zarez, i +1.
>> JASON Hirschhorna: Zatvorena citat, zarez, i +1.
>> STUDENT: Da.
A onda sljedeći redak -
>> JASON Hirschhorna: ja + 1.
>> STUDENT: Da.
A onda sljedeći slajd je imena nosač ja.
>> JASON Hirschhorna: Sljedeća linija je imena nosač ja.
>> STUDENT: = dobili niz.
>> JASON Hirschhorna: = Get -
kapitala G-E-T -
string.
Ups, ispričavam se.
>> STUDENT: Otvorene, zatvorene zagrade a zatim -
>> JASON Hirschhorna: Otvoreno, zatvorena zagrada.
>> STUDENT: Točka-zarez.
>> JASON Hirschhorna: Točka-zarez.
U redu, tako da inicijalizirati niz žice, imena, a potom proći kroz
za petlje, te pet puta ispisati neke zatražiti na korisnika, te pohranjivanje
pet žice.
Da li itko ima bilo prilagodbe na ovo?
Tom, mislim da svatko slaže s vama.
Izgleda prilično dobro.
OK.
Zašto si to učinio i +1, iako?
>> STUDENT: Mislim, nema da se, ali i +1, tako da je
Naziv jedan u ime pet.
Inače, to će biti ime nuli u ime četiri.
>> JASON Hirschhorna: Tako da sam ja jedan jer inače bi
ispisati nule do četiri, jer to je kako su računala mislim, ali ljudi
stvarno ne čitati kao da je.
To je još jedna stvar ćete naići.
Ponekad kada ispisati nešto do korisnika, da ćete želite učiniti
malo ljepše, a radi ja jednom u ovom slučaju je
način kako bi ga ljepše.
>> Vidim i pet dvaput, ime string je pet, i manje od pet.
Znam gdje je dobio pet.
Imaš je meni rekao da pet imena.
Ali, ako smo htjeli napraviti kod malo više robustan, jedna stvar mi
može li se ovdje, izvan int, smo mogli učiniti nešto poput ovoga,
# Define, a mi mogli učiniti imenima pet.
>> Tako je u osnovi, gdje god pišem kapitala N, kapital, kapital M, grad E,
S kapital, koji string, ona će zamijeniti da je s 5 u kodu.
Ili hajdemo ga nazvati - ćemo Samo ga zovu BROJ.
Tako da sam definiranje svih kape BROJ biti 5.
>> Tako sada gdje god imam broj 5, I možete ga zamijeniti sa svim poklopcima broj.
A sada, ako želim promijeniti broj imena, sve što trebate učiniti je
ovaj jedan redak, line četiri, gdje sam # Define broj 5, promijeniti do 10,
ili promijeniti da bi četiri.
Kada se vaš broj dobiva više, niste će se sjetiti svih mjesta koje
stavi koliko imena ste htjeli, a Kako bi za vas da ne propustite jedan, ovo je
dobar način da to učinite, pronaći nešto do vrha, a onda samo koristiti taj izraz
svugdje po kodu.
Marcus?
>> STUDENT: Je li to stilski željena nego na globalnoj razini definiranja
konstanta n?
>> JASON Hirschhorna: Tako je to stilski radije nego na globalnoj razini
definiranje konstanta n?
Dakle, želite reći da bi učinite, int broj = 5?
>> UČENIK: Zar oni imaju suglasnike u C ili ne?
>> JASON Hirschhorna: Ili const - u jednakim.
Dakle, govoriš samo Globalna varijabla?
>> STUDENT: Da.
>> JASON Hirschhorna: Dakle, stilski, nema nužno jedno pravo
odgovoriti, ali i onih koji su bolje nego samo bacanje tih slučajno
Brojevi diljem kodu.
Mi ih zovemo Brojevi.
Kad sam pogled na kodu ili kada tko čita kroz njega, oni
ne želim samo ove slučajnih brojeva koje nemaju smisla.
I broj 26, koji se obično broj slova abecede,
to je bolje definirati abecede do vrha i spremiti broj 26 u tom nizu,
ako to ima smisla.
>> Ili o problemu postaviti jednu, nego - opet, nismo razgovarali o tome, na
vrijeme, ali umjesto samo bacanje u 25 ili 10 svugdje, možete
spremiti broj 25 kao četvrtina ili 10 kao Dime, a to olakšava
tko čita kroz koda razumijem zašto ste izabrali taj broj.
A i za vas, ako ste ikada željeli ažurirati svoj kôd, što ga čini malo
robusniji.
Da?
>> STUDENT: Je li to kod također ide biti na raspolaganju za nas poslije?
>> JASON Hirschhorna: Sve od tih kodova da smo pismeni, zajedno su
će biti poslana na vas Dečki i dostupni.
Da.
Dakle, pitati korisnika za pet imena.
Slučajni odabir i ispis jedno od imena.
Tko je tu liniju?
Ovo je najzahtjevnijim crta.
Žao nam je, Tom.
Ti si jako dobar posao, ali ovo je nešto složenije.
Marcus, ići naprijed.
>> UČENIK: Pa prvo, ti si idući u potrebno uključiti i stdlib.h time.h.
>> JASON Hirschhorna: Želite reći, na vrhu, uključuje još dvije knjižnice.
Želiš da su S-T-D-l-I-B dot H, Standard knjižnica, a što
bio drugi?
>> STUDENT: Time.h.
>> JASON Hirschhorna: # include time.h.
Dakle, to su još dvije knjižnice.
Pretpostavljam da sad idemo se pomoću Funkcije koje su sadržane u tim
dva, što je razlog zašto vam je potreban ih uključiti?
>> STUDENT: Dakle, prvo si će htjeti pisati srand.
>> JASON Hirschhorna: Srand.
>> UČENIK: (time (0)
>> JASON Hirschhorna: Žao nam je.
Srand (vrijeme (
>> STUDENT: 0.
>> JASON Hirschhorna: 0.
>> STUDENT:)), zarez.
>> JASON Hirschhorna: Još jedna zatvorena zagrada?
Točka-zarez.
Ja ću samo zamijenite Vaš nula sa NULL.
To ćete učiniti istu stvar, ali uglavnom, vidjet ćete NULL, koji
ćemo razgovarati o tome linija u sekundi.
>> STUDENT: Stilski bolje?
>> JASON Hirschhorna: Općenito, ljudi pravo NULL, ali ista stvar.
>> STUDENT: I ​​onda int ime.
>> JASON Hirschhorna: Interesi ime.
>> STUDENT: =
>> JASON Hirschhorna: =
>> STUDENT: Rand.
>> JASON Hirschhorna: Rand.
>> UČENIK: ()
>> JASON Hirschhorna: ()
>> STUDENT: modulo broj.
>> JASON Hirschhorna: Što je po modulu?
Lik?
Posto lik?
>> STUDENT: Postotak znakova.
Modulo broj koji definira do vrha.
>> JASON Hirschhorna: modulo BROJ.
>> STUDENT: I ​​onda zarez.
>> JASON Hirschhorna: Točka-zarez.
>> STUDENT: I ​​onda nova linija, printf.
>> JASON Hirschhorna: printf.
>> UČENIK: (
>> JASON Hirschhorna: (
>> UČENIK: "
>> JASON Hirschhorna: "
>> STUDENT:% s / n
>> JASON Hirschhorna:% s / n
>> UČENIK: "
>> JASON Hirschhorna:% s / n "
>> STUDENT: Zarez, prostor imena.
>> JASON Hirschhorna: Space -
>> UČENIK: Ah, valjda, što nije mi to zovemo ovdje?
>> JASON Hirschhorna: Nazvali smo ga imena.
>> STUDENT: Otvorena nosač, ime.
>> JASON Hirschhorna: Otvorena nosač, ime.
>> STUDENT: Zatvorena zagrada.
>> JASON Hirschhorna: Zatvorena zagrada.
>> STUDENT:)
>> JASON Hirschhorna:)
>> STUDENT: Točka-zarez.
>> JASON Hirschhorna: Točka-zarez.
OK, neka je spasi.
Učinimo ovaj kod.
Učenici.
Ajmo pokrenuti ovaj kod.
Učenici.
Ne. / Studentica. . / Studenata.
Ime jednog.
Mi ćemo reći Davidu.
Ime dvije, RJ.
Ime tri, Rob.
Ime četiri, Lucas.
Ime pet, Josip.
I tada ga ispisuje Josip opet.
>> Pa neka mi to opet pokrenuti.
Pusti me da ista imena.
David, RJ, Rob, Lucas, Josip.
I to mi je dao Davidu ovaj put.
Tako sam učinio istu stvar, ali to je dao ja druga stvar, a to je
jer je, naravno, tražimo za slučajnih imena.
Pa mislim, temelji off od mene lutanja po sobi, da većina ljudi
Vjerojatno je dobio prvi dio pravo, postavljanje na taj niz, a zatim uzimajući
sva imena.
Govorim o linijama od 10 do 16 godina.
No linije 18 do 21 su vjerojatno neke stvari koje nismo vidjeli prije,
pa neka je proći kroz njih.
>> Ova linija, srand vrijeme NULL je u suštini -
Nažalost, neka je preskočite linije, rand ().
To vam daje slučajan broj, slučajni cijeli broj.
A ako ubojice randa, što puno vas je -
M-A-N prostor R-A-N-D -
u terminalu kao što je to, M-A-N prostor R-A-N-D, pritisnite.
Vi bi došli do priručnika i će moći pročitati da je randa
naredba izlaza num pseudo slučajnih bajtova nakon prvog sijanja slučajni broj
generator jednom.
>> Dakle, to je opis.
To je ono što radi rand, daje da slučajni broj, kada
zoveš tu funkciju.
Nažalost, to nije stvarno slučajna jer ako ste samo nazvati slučajna
bez uzimajući je poneko zrno, neki Polazna točka, to će uvijek odabrati
ista i to koristi formulu kako bi se utvrdilo sljedeći.
Dakle, ako nazovete randa, što ću samo dati istu stvar.
To će biti vrlo predvidljiv.
To je zapravo neće biti slučajan.
>> Dakle, ono što trebamo napraviti, po Marcus Upute za mene, bili su sjeme rand
s nešto drugo, što je ono srand funkcija radi.
To sjeme Rand s nešto malo više slučajni nego istu stvar, a
on je to s vremenom sjetva NULL, koji je, samo po konvenciji, struje
vrijeme u sekundama.
>> Tako ste pod pretpostavkom da svatko nije ide za pokretanje koda na točno
iste sekunde, tako da je sigurno kladiti da Vrijeme NULL će biti drugačija
svaki put kad to kod pokrenuti.
Siguran kladiti da je tako, srand volja sjeme rand s nešto drugačiji svakog
pojedinog vrijeme.
Dakle, po konvenciji, kad mi želimo slučajni broj, pišemo ovu liniju,
srand vrijeme NULL, kako bi nam mnogo više slučajni sjeme, a zatim smo pokrenuti
rand, što nam daje slučajni broj.
Da?
>> STUDENT: Možete li reći što misliš sjemenom?
>> JASON Hirschhorna: Sjeme kao u -
tako rand će pokupiti neki broj a to će koristiti neki
Formula doći.
Tako da će početi s nečim a zatim ga pretvoriti u nešto na temelju
off toj formuli.
Ako ste uvijek daju istu stvar, uvijek će se to pretvorilo u
ista stvar.
Tako da prva stvar koju dati ga je sjeme.
Dakle, želite dati nešto drugačije započeti s, i tako to
će ga pretvoriti u nešto drugo.
>> I onda napokon, linije 20, to se zove%
modulu, a to je zbunjujuće.
To je nešto što je malo drugačiji ovdje da to nije stvarno
imati u stvarnom životu matematici.
Ali u biti, kada se uzme diva Broj i podijelite u C, što
se događa s ostatkom?
>> STUDENT: To dobiva odrezan.
>> JASON Hirschhorna: Ona dobiva odrezan.
Dakle, 20 podijeljeno s tri je ono?
Što znači da je povratak da, 20 podijeljeno s tri.
Nažalost, 10 podijeljeno s tri.
Što znači da se vrate u vama?
>> STUDENT: [nečujno].
>> JASON Hirschhorna: 10 podijeljeno s 3 samo vrati 3, ne 3 ostatak 1.
Pa što 10 modulo 3 vraća je samo ostatak, 1.
Dakle, ako ste htjeli znati što podijeljeno 10 po 3 zapravo je, što bi
napraviti 10 podijeljenu 3, što bi dobili svoj 3, i onda bih to 10 modulo 3, a
da bi dobili jedan.
Tako da ćeš shvatiti da 10 podijeliti za 3 je 3, ostatak 1.
>> I u toj liniji, rand mogao biti bilo koji cijeli broj, u biti.
Dakle modulu je rekao, razdijelite po broj, koji je u ovom slučaju 5.
A ako ste ikad podijeli po broju, cijeli uvijek mora biti manja od
taj broj.
Dakle, ako ste podijeli s brojem 5, Ostatak je uvijek će biti
nula do četiri.
To je samo kako math radi out.
>> Tako velik broj moduloed by manja Broj uvijek će se vratiti
Ostatak i uvijek će se vratiti neke broj koji je manji od broja vas
podijeljen.
Da li itko ima bilo kakvih pitanja u vezi modulu, jer će doći u vrlo,
vrlo zgodan, pa želim da biste bili sigurni svatko ga razumije?
Cool.
A vidjeli smo da je ovaj program radio.
OK, idemo dalje.
>> Zato sljedeći, idemo ići u funkcije, a mi ćemo ići
kroz ostatak ove stvari prilično brzo, jer želim doći do
argumenata naredbenog retka.
Dakle funkcije su u biti, Kao što ste vidjeli, crne kutije.
Oni se zovu stvari u parametrima, oni učiniti nešto za njih, bilo
ih promijeniti ili stvoriti neke nuspojave, i konačno, pljuje
Nešto je, što je povratna vrijednost.
Može li netko dati mi jedan razlog Zato ćemo se poslužiti funkcije?
Bilo tko?
Jedan od razloga zašto bismo iskoristili funkcije?
Svatko?
Vidio sam dvije ruke.
Što je dobar razlog?
Marcus?
>> STUDENT: Ako imate nazvati isto komad koda više puta.
>> JASON Hirschhorna: OK, ako je potrebno nazvati isti komad
kodirati više puta.
Jeff, jesi li imati drugačiji razlog?
>> STUDENT: Samo da možete kodirati manje.
>> JASON Hirschhorna: Možete kodirati manje.
Točno.
Ako želite učiniti nešto puno -
u prethodnom kodu, mogao sam napisano doći string pet puta, ali
za petlje čini izgledaju ljepše i morate napisati manje kod.
Funkcije su slična ideja.
Ako želim napraviti istu stvar puno, ga premjestiti u funkciji, a tako zvati
funkcionirati svaki put.
To će učiniti da se stvar za vas.
To je veliki razlog koristiti funkcije.
>> Dakle, anatomija funkciji.
Funkcija će uglavnom izgledati ovako.
To ću početi s povratnom tipu, tada ćete dobiti ime.
To će potrajati argumente, inače poznat kao parametara, a unutar
ti vitičastim zagradama, vi ćete napisati svoj kod.
>> Vidjeli smo jednu funkciju puno.
To je glavna.
Ovdje je glavna superponirana da anatomija sam imala ranije.
Što int ovdje znači?
Što int znači?
Kad pišem int main (void).
>> STUDENT: Povratak putovanja?
>> JASON Hirschhorna: Žao mi?
>> STUDENT: povratak putovanja.
>> JASON Hirschhorna: Interesi je vrate tip, upravo pravo.
Glavni vraća int.
Što je glavni?
>> STUDENT: Funkcija ime.
>> JASON Hirschhorna: Glavni je naziv funkcije.
Točno u pravu.
I void?
Što je void unutar zagrada?
>> STUDENT: To ne potrajati bilo vanjsko vrijednost.
>> JASON Hirschhorna: Dakle void -
pravo.
Unutar zagrada, stavimo Parametri i argumenti
Funkcija se, što ide unutar crne kutije.
Kada pišete prazninu, što govoriš to traje ništa u.
Dakle int main void znači Glavne Ne uzimajući ništa u.
>> Unutar vitičastih zagrada, imamo neke broj, a onda ćemo vidjeti na kraju
vrati nulu.
Što znači povratak nulu?
Pa, razgovarali smo o povratku tipa.
Glavni treba vratiti int.
To je ono što ova linija radi.
To vraća int, nula.
>> Naravno, nismo vidjeli da je puno jer u programiranju radimo s
strojevi radimo i prevodiocima mi danas koristimo, te
ne treba tu liniju.
Glavni je posebna dovoljno da zna kad dođete do kraja glavna, samo
vrati nulu, ako sve ide dobro.
U stvari, ako se nešto ne ide dobro, Glavni često će se vratiti drugačije
Broj označava da je nešto je pošlo po zlu sa svojim programom.
>> Dakle, općenito kad vidite kod, nemojte pisati povratak nula, ali to je dobro
znati da se to događa iza scene, jer kad pišete
druga vrsta funkcije, ćete morati
uključuju povratni vod.
Ako ste rekavši da ću vratiti int, morate
napisati nešto vratiti.
Ako kažeš void se ovdje početak, void main void, za
Primjer, onda ne vraćaju ništa - void znači ništa -
tako da ne treba taj povratni vod.
Ali ste ikad napisati nešto što nije poništiti za povratnu tipa, trebate
linija koja kaže da povratak i vi morate staviti nešto postoji
koji odgovara vrsti.
Sva pitanja o tome?
Sweet.
>> Opseg.
To je nešto što smo dotaknuo, kao dobro.
Svaka varijabla, kao što znamo, ima Opseg sigurno, a to je u osnovi
govorimo o tome gdje je varijabla može i ne mora biti naveden.
I ja volim reći što će se dogoditi u vitičastim zagradama ostaje
unutar vitičastih zagrada.
Tako na primjer, ako ćemo gledati na ovom kodu, mi smo definiranje globalne varijable
izvan velikih, int, Ovdje se, na vrhu.
Nazvat ćemo još jedan int unutar glavna.
Mi imamo neke više vitičastim zagradama, a Nazvat ćemo još int.
>> Imamo tri-ih u kodu.
To nisu ista stvar.
Ja sam stvorio tri različite varijable.
Zatim unutar tih unutarnje kovrčavom aparatić, kažem = 4.
Koji je to govoriš, Prva, druga,
ili treći?
>> STUDENT: treći.
>> JASON Hirschhorna: To govori o trećem.
Svi koji to zapravo može biti govorio o ovaj
instanca, jer je njihov opseg sve ide u tim intimnim vitičastim zagradama.
Međutim, kada poziv stvari ista Naziv, postoji nešto što se zove skriva.
Dakle, samo se bave ili popraviti ili koristiti Najnovija varijabla ili jedan
najbliže vama.
Dakle, ovdje unutra, taj treći je najbliži te granice, a = 4, tako da
utječe na treću.
I zadnja linija, a = 2, koji je koji govori o tome, prvo, drugo,
ili treći?
>> STUDENT: Drugo.
>> JASON Hirschhorna: To govori o drugom A.
Naravno, treći je najbliži je u kodu, a treći
ne postoji izvan ti vitičastim zagradama.
Nakon što se u tom zatvorenom kovrčavom braće, to je kao da je otišao,
osnovi.
Dakle, samo dva ste ostavili su one Prva dva, i naravno, sada
to je najbliži drugi.
>> Dakle, to je dobra stvar za sjetiti o opsegu.
Na primjer, siguran sam da ste naišli to učiniti dok petlje.
Ako inicijalizirati varijablu unutar while petljom, a onda pokušati
pristupiti izvana, vjerojatno dobio neke upozorenje kako ovo
varijabla ne postoji.
To je zbog opsega ideje, da stvari postoje samo
unutar tih vitičastim zagradama.
Vitičastim zagradama su kao divovski zagrljaj da dajete svoj kôd, još je jedan
način da misle o tome.
>> Dakle, ovo je još jedna funkcija, nešto za vi u kodu, hellofunction.c.
Idemo preskočiti da je za sada, ali to je nešto što sam vas potaknuti da
vježbati sami.
Napišite program u kojem glavne poziva još jedna funkcija koja ispisuje
pozdrav za korisnika.
To u biti je uzimanje Pozdrav svijetu i apstrahira da u printf
još jedna funkcija.
Ali nećemo učiniti da upravo sada jer mi nemamo toliko vremena
napustio kao što sam želio.
>> Dakle funkciju deklaracija.
Vidjeli smo to prije, kao dobro.
Ako želite pisati još jedan funkciju, vam je potrebno da računalo zna i
Glavni znati da ona postoji.
Dakle, ono što mi radimo je iznad glavna, pišemo povratni tip, ime i
Parametri, a zatim dolje glavna, ovdje, mi zapravo kopirati tu liniju
, a zatim napisati stvarni broj.
Dakle, na ovaj način, ako pozvati funkciju u glavnom, na vrhu, glavna zna da
Pozdrav postoji, na primjer, ako mi je zvati hello, a onda to izgleda
Provedba dolje.
Što se događa ako ne uključuju ove redati vrhu, poništiti Pozdrav (void)?
>> Ako ne dodam ovu liniju , a glavni pozivi Pozdrav, ja sam
Dobit će pogrešku.
Ja ću dobiti greška jer prevodilac ne zna
da je to stvar postoji.
To je razlog zašto smo slični # ne uključuju cs50.h.
Što u biti cs50.h radi stavlja se niz gore.
To je stavljajući dobili int tamo gore.
To je stavljajući sve one funkcije Prototipovi do prije Glavna tako da kada
li ih pozvati na glavni, glavna zna da ove stvari postoje.
To je ono što ti h. Slika učiniti.
I tako, ako ste idući u izraditi sami funkcija, moraš osigurati
spojiš taj prototip tamo gore.
Sva pitanja o tome do sada?
>> Argumenata naredbenog retka.
To je ono što ćemo do kraja na, a onda se nadam da ćemo
ugurati u neki pset.
Ja ne znam da li ćemo moći ugurati da zbog vremena, ali
s vama koji ste ovdje, a ako Dečki žele reći nakon za malo, mi
može ići preko njega izvana.
No, idemo do kraja s argumenata naredbenog retka
za posljednjih 15 minuta.
Mi smo budni, Michael?
Ti si budan?
Dobro.
Ne znam ako spavate s oči zatvorene.
To će biti lukav.
>> Argumenata naredbenog retka.
Oni su jedan od načina da prođe informacije u program.
Na kraju, mi ćemo se susresti drugima.
Ali u biti, idemo zaustaviti piše int main (void), ako želimo
poduzeti neke argumente naredbenog retka.
Idemo pisati ovu stvar zove int main (int argc,
string argv, nosači.
To je zbunjujuće.
To je puno slova koja nisu u Engleski čovjeka, tako da ćemo
ih raspakirati upravo sada.
>> Argc zalaže za argument count -
i opet, sve to će se biti dostupan online -
te da je broj argumenata.
Argv stoji za argument vektor, a To su argumenti sami.
To je niz žice.
Zapravo smo vidjeli niz nizova prije danas.
Stvorili smo jednu u posljednja Program smo kodirane.
>> Dakle, ovdje je primjer.
Pišem. / Ohai CS50 poglavlje na mom naredbenog retka.
Argc u ovom slučaju iznosi tri.
Argv nosač 0 je ohai, argv nosač 1 je CS50, argv nosač 2 je poglavlje.
Opet, argc je broj argumenata, i da vas putovanje do malo
malo smo se računaju ime djeluju kao prvi argument.
Dakle, u ovom slučaju, postoje tri Argumenti, naziv mjesta u funkciji
a zatim one dvije koje sam unese
>> Dalje, idemo spasiti one Sebe argumenti u argv.
A opet, baš kao što smo vidjeli prije, što smo učinili to u posljednjem programu smo kodirane.
Možete se kretati kroz niz argv i dobiti one konce.
To je u biti ono što jesmo, na Kraj našeg zadnjeg programa.
Mi smo odabrali slučajni ime, a zatim je otišao u imena nosač god i tiskani
iz niza nalazi tamo.
>> Na vrhu samo jedan niz, jer žice su sami nizovi, kao
govorio o, možete imati polja matrica, koja je
u biti ono što je argv.
Jedan od načina možete razmišljati o ovo redaka i stupaca.
Ja mogu privući da upravo sada.
Dakle argv -
to nije brisanja.
Idemo privući pod ohai.
>> Dakle, ako sam napisao u, ohai CS50 odjeljku, Ja ću je skratiti
Odsjek za ovaj primjer.
Ali u biti, moj višedimenzionalni Niz, ohai CS50,
idemo napraviti sektu.
Pa evo, ja mogu pristupiti -
ako sam samo dati argv jedan broj -
to je krivo.
Što je pogrešno u ovom dijagramu?
>> STUDENT: Start na nulu.
>> JASON Hirschhorna: Treba početi s nulom.
Vjerojatno sam trebao Također ga rotirati, ali jer već sam ga izvući, ja sam
će ga ostaviti tamo za sada.
No, ona počinje od nule.
To je točno.
Žao mi je ako je to mala.
Možete li kakve vidjeti?
Dakle, ako mi je činiti argv 0, ja ću dobiti sve ohai.
Ako ja to argv 1, ja ću dobiti sve CS50.
Ako ja to argv 2, ja ću dobiti sve sekte.
>> Ali sada, kao što smo rekli, žice su nizovi sami.
Dakle, ono što ja mogu učiniti je da može liječiti ovu kao multi-dimenzionalni niz, i ja
može učiniti nešto uzduž linije od argv 0, 0, što mi daje samo
0 znakova.
Argv 0, 1, što daje mi samo h.
Argv 1, 3, što mi daje samo ovo 0 ovdje u CS50.
>> Dakle, jer žice sami su polja, mi smo stavljajući
da u nekom drugom polju.
Sada imamo niz polja, a mi može indeksirati u naš prvi niz i
zatim indeks u našem drugom polju.
I kao što se i očekuje, možemo to učiniti po samo stavljanjem te dvije -
Mi radimo samo uglate zagrade tik jedni drugima.
Dakle, u ovom primjeru, argv 1 je CS50 i argv 1, 2, kao što smo rekli, je samo 5.
Da li itko ima bilo kakvih pitanja u vezi višedimenzionalne polja?
Dečki rade odlično.
Sweet.
>> Dakle, imamo još jedan program ovdje, i to je konačna stvar da smo
će učiniti upravo sada.
Dakle, želim vam napisati program koji traje korisnikovo ime i prezime, a samo dvije
Dva argumenata naredbenog retka, i na kraju, ispisati pozdrav
Korisnik koji uključuje svoje ime.
Pa zašto ne uzmeš tri ili četiri minute za to, a onda ćemo ići
preko njega kao skupina, a onda ćemo završiti?
>> I opet, ovdje, kada kažemo potrajati korisnikovo ime i prezime i po opisu
ovog problema, to bi trebao biti naredba retka argumente, ne koristi se niz.
Da, Marcus?
>> UČENIK: Pa kad kažu dvije naredbe retka argumente, je da osim
. / pokrenuti, ili -
>> JASON Hirschhorna: Dobro pitanje.
Da, uključujući. / Vožnji, tri argumenata naredbenog retka.
Ili uključujući. / Personalizirane, u ovaj slučaj, jer to je
Naziv ove datoteke.
Dakle argc bi biti tri.
No, želim samo dvije riječi s obzirom na program.
Ja bi to promijenili.
Ja ću napraviti tu promjenu prije sam post njih i poslati ih na vama.
>> STUDENT: Što ako imaju srednje ime?
>> JASON Hirschhorna: Ako imate sredini Naziv, ti si od sreće.
Žao mi je.
Ili ako idu samo po Shakira, ti si također od sreće.
Da?
>> UČENIK: Pa kad ljudi nemaju cs50.h, oni definiraju argv
kao char zvijezda argv?
Ili je to još uvijek zove gudački argv?
>> JASON Hirschhorna: Da.
Dakle string, opet, mi obljepe što točno tamo događa.
To će biti nespreman možda u srijedu, ali je ubrzo.
To je kao trening kotača.
Jer u biti, to je ista stvar.
>> Tako ćemo još minutu na programu to, a onda ćemo ići preko
je kao grupa, a zatim kao što sam rekao, završiti.
I mislim da su još dodatno bombona, pa vi nadamo treba uzeti
da, i molimo se da.
>> Žao nam je ako ste još uvijek piše, ali želim roniti i mi
Možete ga završiti zajedno.
Pa ja sam napisao u, # include cs50.h, # include stdio.h.
int main (void), kovrčava brace, kovrčava Brace, unutar tri linije
pseudocode, uzeti korisnikovo ime i prezime, dva i samo dva naredbenog retka
Argumenti, ispisati pozdrav Korisnik koji uključuje svoje ime.
>> Dakle, prvo jedan, u korisnikovo ime i prezime.
Tko mi može pomoći da se u korisnikovo ime i prezime?
Kako mogu napraviti taj dio?
Jeste li vi to učiniti taj prvi dio?
Uzmi korisnikovo ime i prezime.
Pa, za to je jedan naredbenog retka argument, ono što bih trebao napisati?
Što trebam promijeniti o moja funkcija izjava?
>> STUDENT: Vi ne želite da su nevažeće više.
>> JASON Hirschhorna: Točno.
Ne želim da bude nevažeće.
Što ja želim da bude?
>> STUDENT: Int argc.
>> JASON Hirschhorna: Interesi argc.
>> STUDENT: String argv.
>> JASON Hirschhorna: String argv.
>> STUDENT: nosač, nosač.
>> JASON Hirschhorna: nosač, nosač.
To je točno, i to je zapravo sam kako ću dobiti
u korisnikovo ime i prezime.
Oni će ga tamo staviti.
Tako da je jedan je učinio.
Dakle, sada želim dvije i samo dvije argumenata naredbenog retka.
Tako Noa, što je jedan od načina da mogu provjeriti broj zapovijedanja
retka argumente imam?
>> UČENIK: Doista, ako priopćenju.
>> JASON Hirschhorna: Ako Izjava, točno.
Što želim kao uvjet?
>> STUDENT: Ako argc veći od tri.
>> JASON Hirschhorna: Ako argc veći od 3.
Ako argc veći od 3, što da radim?
>> STUDENT: Povratak 1.
>> JASON Hirschhorna: Povratak jednog.
Hoće kako bi se osiguralo Imam dvije i samo dvije?
>> UČENIK: Ne
Ako argc je veća od 3 i manje od 2.
>> JASON Hirschhorna: Ako argc veća od 3 i argc je manje od 2.
Što je jedan od načina Mogu napisati to na samo jedan redak, odnosno da je bez korištenja
i Boolean operator?
>> STUDENT: To nije jednaka 2.
>> JASON Hirschhorna: Ako argc nije jednako 2.
Točno.
Tako da ako argc nije jednako 2, da dat će mi ovaj program,
personalizirane, kad sam ga pokrenuti, a da će mi dati koliko
argumenata naredbenog retka?
Koliko će sam provjeriti?
>> Žao nam je.
Dopustite mi ponoviti to.
Ako argc = 2, koliko stvari učinio Korisnik pisati u skladu?
>> STUDENT: Jedan.
>> JASON Hirschhorna: Samo jednu.
Dakle, prije nego što, bila si u pravu, Noah.
Što mi zapravo treba staviti tamo?
>> STUDENT: To je jednako tri.
>> JASON Hirschhorna: argc nije jednako 3.
Želim biti jednak tri, jer želim personalizirane plus druga dva.
Dakle, ako argc nije jednaka 3, vratite jedan.
Zašto ste rekli da se vrate 1?
>> STUDENT: Zato što Znači da je u krivu.
>> JASON Hirschhorna: To znači da je u krivu, i što to ide raditi?
>> STUDENT: Re-brz korisnik.
>> JASON Hirschhorna: To će prestati Program, tako da će morati pokrenuti
opet, ali mi nemamo ništa u ovdje pitati za njih opet.
Nisam pitao za to.
Dakle, to je točno.
Povratak jedna samo zatvara program.
Sjajno.
>> I ispisati pozdrav korisnika to uključuje i svoje ime.
Kako mogu to učiniti?
Anna?
>> STUDENT: printf.
>> JASON Hirschhorna: printf.
>> UČENIK: ("
>> JASON Hirschhorna: (
>> UČENIK: "Pozdrav
>> JASON Hirschhorna: "Pozdrav
>> STUDENT:% s
>> JASON Hirschhorna:% s
>> STUDENT: / n
>> JASON Hirschhorna: / n
>> UČENIK: ",
>> JASON Hirschhorna: ",
>> STUDENT: argv
>> JASON Hirschhorna: Žao mi?
>> STUDENT: argv
>> JASON Hirschhorna: argv
>> STUDENT: Trg nosači 1.
>> JASON Hirschhorna: Trg nosači?
>> STUDENT: 1.
>> JASON Hirschhorna: 1.
>> STUDENT: I) zarez.
>> JASON Hirschhorna:) zarez.
Neka nam to pokrenuti.
Provjerite personalizirane.
. / Osobnije.
To samo prestati.
Zašto se to prestati?
>> STUDENT: Nisi stavio nikakve argumente.
>> JASON Hirschhorna: Nisam stavi argumente u.
Izgleda super.
Vi ga razapet.
Pa opet, da je otišao u argv i tebe provjeren na početku argc.
To su dva važna stvari koje treba zapamtiti.
Dakle, u našim posljednje dvije minute prije nego što smo otići, nećemo doći do pset dva, ali
kao što sam rekao, ako želite ostati nakon za 10 minuta, ja bih bio sretan da ide
s više dečki logici za tih problema setovima.
Imali smo dosta da pokrije danas pa nisam doći do njih.
Općenito, volim se uključiti da je na kraju.
Dakle, ako želite ostati, stick za oko 10 minuta.
Mi ćemo to učiniti.
>> Zatim, kao što sam spomenuo na početku, pset nula i jedan, dobit ćemo da je
povratne informacije natrag na vas, kao prije moguće.
Cilj je da se pset jednu povratnu informaciju, komentara dio,
prije pset dva je zbog.
Dakle, ako ste napravili neke pogreške ili stilski, stvari bi mogle biti bolje,
ćete imati tu informaciju, tako da neće raditi iste stvari u dvije pset.
A onda u budućnosti, vi ćete dobiti sve vašeg pset povratne informacije i komentare
natrag prije nego što sljedeći je zbog.
>> Na kraju, ako sam mogao staviti u drugi plug za povratne informacije.
Ovo je tvoj prvi dio.
To je bio moj prvi dio učeći ove godine.
Idite tamo.
Napišite stvari, dobre i loše, i ja ću ga koristiti za napraviti
Odjeljak bolje sljedeći put.
I na kraju, opet, ako je potrebno ništa, javite mi.
Ja sam više nego sretni da vam pomoći da dečki.
Ako želite samo slatkiše, sam će imati dodatni slatkiše.
Ja sam sretan da ga dovede u vama.
>> To će biti nevjerojatna golf.
To je jedan od, ako ne i moj omiljeni Naravno, ja sam uzeti u mom cijelom životu,
i ja se nadam da će biti tako prekrasna za vas.
Dakle, želim učiniti sve što je u mojoj moći da bi ga da je strašan za vas.
Ja ću poslati e-mail, ako ste u mom odjelu ili Noa, i
će pokušati i raspored sa svakom od vi je vrijeme da provjerite u više
Narednih nekoliko tjedana tako da mogu dobiti Osjećaj što vaš CS pozadina,
a također će mi pomoći krojač tih dijelovi za bolje odgovarati vašim potrebama.
Dakle, to je ono što sam dobio postrojilo se.
Opet, ja ću vas vidjeti izvana Ako želite biti tamo.
Ovaj je tjedan dva odjeljku.
Hvala vam dečki puno.