>> JASON Hirschhorna: Dobrodošli CS50 oddelek, vsi.
Moje ime je Jason Hirschhorn.
Jaz sem veliko tvoje TF, ampak veliko Ljudje bodo, upajmo, se nam bo pridružil
spletu, podaljški študenti ali dijaki poskušam odmisliti oddelku, če so
zgrešile svoj razdelek, ki tedensko ali Samo dohitijo, če bi želeli
pregledati nekaj materiala.
>> Tako kot na učni načrt, kar vse o ste prebrali, popraviti?
Vidim veliko glavo pokima.
Oddelki vam z možnostmi raziskati tečaj je
Material v bolj intimno okolje kot tudi potopite v
praktične dejavnosti.
>> Tako da je v bistvu tisto, kar smo da se delaš vsak teden.
Mi smo šli skozi to, kar imamo ugotovljeno, da je najbolj pomembno,
teme, zajete v predavanju, in tisti, verjetno tudi najbolj koristen in
najverjetneje prišel na problematičnih sklopov in kvizi, in v vaš kodiranje
življenje zunaj CS50.
Tako da smo šli v te teme, o njih razpravlja, iti nad njimi,
odgovoriti na vsa vprašanja fantje imajo, in potem bomo narediti veliko
Težave praksa v kodiranja.
>> Ste vsi prinesel prenosnih računalnikov, kar je fantastično.
To je računalništvo razred.
Vendar pa je veliko vaj delamo, vam ne bo treba vaše prenosne računalnike.
Lahko jih naredite na list papirja.
To je, kako boste jih narediti na kvizi.
In res, to je odličen način, da res veš, da si, kako to storiti
kaj če nimate Preverite od 50 do zanašati na ali Poskrbite, da se zanesejo na, pripoveduje
ste naredili nobene napake.
>> Torej, ste dobrodošli, da kode na Naprava ali run.cs50.net, ki je
drugo orodje, ki vam omogoča, da kodo spletu, ampak tudi jaz bi priporočal, če
niste poskusili, z rjuho papirja in poskuša te prakse
Težave na list papirja.
Ker še enkrat, da je na koncu kaj boš, da je
morali narediti na kvizi.
>> Torej začnimo z našimi Dnevni red za danes.
Mi smo šli čez nekaj norm za naš oddelek, nato pa se bomo potapljati
v polja, funkcije in ukazne vrstice Argumenti, ki je tisto, kar vi
so zajeti v preteklem tednu v predavanju in potem Ponedeljek, in kaj boste kritje
več jutri.
In potem na koncu, bomo govoriti o pset2.
Če bi lahko dobil dvigom rok, če ni pogledala na problem niz dveh
specifikacijo.
Bomo rekli vsi.
Fantastično.
>> O tem bomo govorili problemskih sklopov v bit, ampak če ste prebrali problem niz
specifikacija, ki je vse, kar morate storiti.
Če ste prebrali, da preden ste prišli do Razred in oddelek v torek, boste
je velik položaj.
Lahko gremo skozi problem set, kar je tisto, kar bomo
narediti konec.
Mi smo šli skozi logika, poskrbite, da
so vsi na isti strani.
>> Želim si, da bi lahko zapustil torek občutek zelo udobno s tem, kar
potrebno narediti za ta teden problem set, in če ne, bom z veseljem
ostanejo po in delo z vami.
Ampak to je ena stvar, ki jo moraš narediti, ampak mislim, da bi bilo res pametno,
samo za branje problem niz specifikacija, ki jo razreda v torek,
ki zveni Veliko vama je.
>> Začel bom z dnevnim redom, vsak razred tako da boste vedeli, kam gremo.
To je tudi koristno za ljudi, ki gledajo na spletu, saj vsak odsek
je barvno kodirane, tako da, če hočeš priti nazaj in samo gledal 10 minut prej
od celotnega 90-minutnem delu, si Lahko samo pojdi v kodirani oddelku barve
in pogled na ta del.
Tako sem jih poskušala razbiti v lepo modulov, ki vam bo omogočilo, da -
če želite, da pridejo nazaj in pregledati, ali drugi študentje, ki so pravkar
gledal oddelek za pregled -
da bi našli posebno stvar, ki so biti pozorni na
in izvedeli več o tem.
Sladko.
>> Norme.
Jaz sem vodja FOP na kampusu.
Ne vem, če je kdo naredil FOP.
Je kdo naredil FOP?
Ena oseba storila FOP.
Dve osebi naredil FOP.
Super.
Torej FOP je prvo leto na prostem Usmerjenosti program.
Peljemo novincev v gozd in se najbolj čarobna izkušnje
njihovo življenje, kajne?
Ja.
Zvoki o pravici.
>> Tako sem si želela, da začnemo prvi oddelek za razpravljanje nekaj norm
za razred in naš odnos ker mislim,
oni so zelo pomembni.
Najprej in predvsem, kot tiste, ki ste so bile moje oddelek prejel in
se je razpravljalo v tem, da e-pošta, ljubim te.
To je moj najljubši del leta.
Bil sem tako razburjen.
Tukaj sem že ure in ure danes.
Nisem zapustil stavbo, razen iti jesti, ker ljubim CS50 poglavje, sem
ljubezen poučevanje, rad delam z vami.
>> Ena mojih največjih prioritet, če ne moj prioriteta številka ena, ne le za
ta razred, vendar tudi moja druga razredi in extracurriculars, je
podporo vaju in vama pomagal, in po svojih najboljših močeh, da se prepričajte, da ste
Fantje imajo čudovito, zabavno, produktivno, privlačne, zanimive
izkušnje v tem razredu.
To je tisto, kar sem zavezan.
Zato imam rad, da to storijo.
To je moja številka ena stvar, podporo vaju.
Če imate kakršna koli vprašanja o predavanju Problem set, oddelek,
življenje, tudi če želim govoriti o življenje, vas prosimo, da stik.
>> Imate mojo številko mobilnega telefona, Imate mojo e-pošto
naslov, imate mojo GChat.
Lahko me kontaktirate na kateri koli ali vse tisti, kadarkoli, vendar verjetno ne bo dobil
Odziv kadarkoli.
Sem poskusil in se vrnem v roku 24 ur.
Pogosto bo v 20 minut ali 24 minut.
Moral bi rekel, da je da je vzporedno.
Ampak boste dobili odgovor precej hitro.
>> Če mi Besedilo uro pred Problem set je zaradi te bom miren
navzdol in to globoko dihanje vaje s tabo, ampak če še niste začeli,
ste verjetno ne bo do konca, in Ne morem vam pomagati tam
čeprav bom poskusil moje najbolje.
Tako da bom naredil vse, kar je Lahko, da vam pomagajo.
Prosim, vas prosimo, da bi dosegla ali je v oddelku spet na govorilne ure
če me boste videli, ali celo zunaj.
Vesel sem, da se vzpostavi časa za izpolnitev in delo s težavami
z ali gredo čez materiala.
Tako, da je številka ena, podpora.
Storil bom vse, kar bom Lahko, da vam pomagajo.
>> Številka dve je na zasedanju v sredini.
Toliko, kot bi rad, da sem ni vsemogočen in vsemogočen ali
vsevedna, tako da ne vem vsega čas, če kaj delam postaja
čez, če se tako učim Tema vam pomaga naučiti, ali če ste
so zmedeni na to temo, vendar ne dvignite roko ali me vprašajte
ali mi pošljite email.
Ali celo, če ste, še enkrat, so zmedeni o nečem, o problemu nizu.
Če ne boste dosegli, da me, Ne morem vedeti, da zagotovo.
Jaz bom po svojih najboljših močeh, da preverite v na vi, da bo vse
gre dobro, poskušajo naučiti stvari na način, , ki bo ugodno za večino
vaši učni stili, če pa je kaj lahko storim, da mi sporočite.
>> V teh okvirih, če hočeš nekaj pomoči s problemom set, sem bolj
kot z veseljem pomagali s problemom nizu.
Bomo narediti veliko da proti drugi
polovica tega oddelka.
Ampak, če še niste prebrali problema postavlja varnostno in niste gledal sprehod
skozi in je ni gledal v kratkih hlačah in pričakoval sem, da te nauči
vse, kar je snemal spletu ali ki jih lahko najdete na CS50
Študija, ki ni ravno pošteno mi ali drugih vaših vrstnikov.
>> Zato vas prosimo, sem bolj kot z veseljem pomagali ti, ampak vidva dobila, da se dobiva v
srednja.
Imamo ton virov za vam na voljo na CS50.
Sem omenil nekatere od njih.
Prosimo, da izkoristijo njih.
Če ste zmedeni, da sem več kot zadovoljen vam pomaga razložiti
drug način, vendar pa to ni pošteno, če študenti pokažejo ob uradnih urah,
še niso začeli ničesar, in to je Četrtek zvečer in oni pričakujejo
TF, da jih sprehod skozi vsak stvar za problem določiti zaradi
opoldne naslednji dan.
Smiselna?
Spet nam sestane na sredini.
>> In končno, visoka pričakovanja.
Jaz bom biti razvrščanje vsi, ki je V mojem oddelku, ali vaš zadetkov
problem sklopov.
Niste šli nazaj problem nastavite nič ali ena še.
Žal o tem.
Potrebovali smo nekaj časa, da dokončno poravnati poglavji, in zdaj
lahko začnemo razvrstitev.
>> Jih bom priti nazaj k tebi v najkrajšem možnem času.
To so nekateri od mojih advisees tam.
Jih bom priti nazaj k tebi v najkrajšem možnem času.
In problem niz dveh, bomo na urnik in bomo začeli jih dobili
za vas zelo hitro po ste jih spremenili noter
>> Ko prideš tvoj problem nastaviti nazaj, boste dobili rezultate, kot jih poznamo iz
branje predmetnik - pravilnost, oblikovanje, obseg in stil rezultati.
Boste dobili tudi pripombe.
Pripombe, ki so bolj pomembne od rezultatov.
Mislim, da je varno reči, da.
>> Točke so samo številka od enega do pet.
Težko je brati v teh.
Težko je izboljšal od tistih.
Vendar bo komentarji poudariti posebne Stvari si naredil dobro ali območja
lahko izboljšajo in vam dal nekaj Ideje za prihodnost ali alternativnih
načine početje stvari.
>> Torej, prosim, prosim, prosim preberite skozi komentarje.
Dal sem veliko časa v te pripombe.
Prosimo, da preberete njih in ne samo pomaknite navzdol na dno
PDF, poglej za svoj rezultat, ali pa pojdite na spletu in najti svoj rezultat, nato pa ignorirati
pripombe.
To ni, kako ste bo bolje.
To ni, kako boste povečali vaše rezultate na koncu, tik
ga je videti na rezultatih.
Prosim, poglejte na te pripombe.
>> In vzdolž visokih pričakovanj, še enkrat, kot sem rekel,
mogoče doseči od ena do pet.
Dvojke, trojke in štiric so Velika večina ocen
boste dobili.
Ones in petke sta res redki.
Vedno je stvari lahko storimo bolje.
Kadarkoli sem kodo programa, obstaja Vedno nekaj, kar sem
bi lahko naredil bolje.
>> Torej, namesto rek dobiš pet ves čas na vse in ni
vse popolno, jaz ne mislim vsak od nas resnično verjamem, da smo - ali
upam, da ne bomo storili vse izpopolniti ves čas.
Zato ne bodite zaskrbljeni, če ni dobil pet.
Pet ne preslikati na, štiri ne map mirno B, trije pa
ne Zemljevid mirno C. To ni kako so rezultati dela.
>> Tako kot je David povedal že večkrat, na Konec semestra je vse svoje ocene in
vhod od mene, tvoj TF, pridejo skupaj in določitev končne ocene za vas.
Ampak spet, to ni pet, , Štiri, B, in tako naprej.
Torej bom imajo visoka pričakovanja Za vidva.
Grem pričakujejo dober problem garniture in jaz bom dal
vam povratna informacija kot taka.
In to ne bo pomenilo, da ste bo dobil slabšo oceno.
Ti so razvrščeni glede na vaš napredek iz tedna
nič do konca Seveda je.
>> In končno, glede na visoko Pričakovanja v razredu, Obožujem, ko
sodelujejo ljudje.
Razumem, nekateri ljudje počutijo bolj ali manj udoben sodelujejo.
Drugi ljudje, ki sodelujejo ne z dvigom svoje roke in
govoril ves čas.
Toda v tem razredu se bodo delaš veliko manjših težav, veliko
mini vprašanj, in nato nekaj večja kodiranje težave.
Torej vsekakor delati te vaje iz ko smo jih na vašem računalniku ali na
list papirja.
>> Ampak jaz vam bom dal tudi nekaj časa, preden kdo kdaj mora odgovoriti na nekatera
izmed vprašanj, prosim.
Zato, ker vam bom dal nekaj časa, da razmišljati o tem, saj bomo
delati stvari partnerji včasih, Bom pričakujejo vsi
se nekoliko ukvarjajo.
In zaradi pomanjkanja boljšega izraza, obstaja Verjetno bo hladno kliče, ki
, kjer bodo vsi imeli priložnost razmišljati o odgovoru, in nato
Poklical bom na vas, in nato boste rekli odgovor.
>> Ne skrbi, ali bo strah glede tega.
Jaz sem to storil v preteklosti in smo ugotovili da je veliko bolj uspešni,
preberete tudi izobraževalno raziskave na to, da ugotoviti, ali je bila
dobra taktika.
To je zelo koristno, še posebej, če imajo dijaki čas za razmislek
odgovori in jih ne bo samo pridi ven in reči pravico off kij.
Ampak, če se ne počutite udobno odgovor, sem tudi zelo dobra
zaznavanje, da ven, in mi ne bo si dal na kraju samem, zlasti na
Kamera, čeprav nobena ste na kameri sedaj.
>> Torej, to so norme, ki jih imam.
Še ena stvar, po vzoru izpolniti v sredini.
Bom vam fantje veliko povratnih informacij.
Prosim, daj mi povratnih informacij, kot dobro.
Tukaj je spletna stran, sayat.me/cs50.
Tako da je iskren povratne informacije.
Če želite, da ga dajo v oddelku, Sem dobil email, ko se to zgodi.
Bomo odmor v malo, zato bom gledati skozi povratne takrat.
Če boste kdaj imeli kakršne koli povratne informacije, prosim, daj mi tam.
>> Če mi daš povratne informacije o Q, ki je čudovito, ampak to je vodilo
da vam na koncu.
Ampak da se bo ob koncu semestra, tako Jaz ne bodo mogli vzeti vse te
povratne informacije in jo spremeniti v poučevanju vidva bolje.
Zato vas prosimo, če imate povratnih informacij, daj mi jo.
Ljubim povratne informacije.
Nazaj na FOP, smo dobili povratne informacije ves čas.
>> Mi lahko pluse, dobre stvari, delt, stvari lahko izboljšamo.
Lahko pripombe na moje obleke.
Da ne bo tako koristno, ampak si dobrodošli, da komentira vse in
vse.
Prosim, prosim, dajte mi povratne informacije.
Cenim to veliko in ga pomeni mi veliko.
>> Ena bolj norma, zabava.
Bomo imeli veliko zabave.
Upajmo, da v tem času, boste imajo veliko zabave.
Morali bomo sladkarije na oddelku.
Bomo imeli glasbo.
Mi se bo, upajmo, spoznavanje enega še nekoliko dobro, zato želim
da je to zabavno, ukvarjanja izkušnje.
>> Vem, da ste nekateri zaspal predavanja ste imeli že danes,
tako da upam, da ne bo se zgodi zdaj.
In če se to dogaja, samo ne smrči, saj da bi lahko
se ujeli na kamero.
Sladko.
Vsa vprašanja, pripombe ali skrbi preden sem premakniti na karkoli smo jih
govorili?
Super.
>> Tako smo šli v prvih nizi.
To je, kako si narediti niz.
To smo že videli prej.
Imate podatkovni tip, imate Ime in potem imate velikosti.
Tukaj sem ustvariti dveh polj.
Prvi je niz znakov in ima 26 mest.
Drugi je niz Ocene in ima tri
prostori za tri cela števila.
Ja?
>> ŠTUDENT: Ali so vse te diapozitive Na voljo nekje za nas?
>> JASON Hirschhorna: Veliko vprašanje.
Vprašanje je, so vsi ti zdrsne na voljo?
Da.
Vse te stekelc bodo na voljo in v prihodnosti, bom jih pošljete
ste pred oddelku.
Toda danes, ker je to prva teden smo imeli pozno začetek.
Torej ponavadi, boste dobili te strani, ampak bodo na voljo na spletu in
Jaz jih bom po elektronski pošti takoj po pouku.
Še kakšno vprašanje?
>> Torej še enkrat, nizi so škatle, zaradi pomanjkanja boljša beseda, ki imajo več
Elementi eno vrsto podatkov, in oni ena poleg druge v pomnilniku.
Zato še enkrat, to je, kako si lahko da dve vrsti nizi.
>> Torej, ko ste naredili niz z da je prva linija - int ocene, nosilec
tri, zaklepaj - vi želeli, da ga zažene.
Si želite, da bi nekatere vrednote tam.
In to je, kako si dal nekaj vrednosti v tam, samo izbiro Indice in
pisanje številko.
Narišimo ta na krovu.
Vsi lahko videli?
Vsakdo lahko vidi.
Sladko.
>> Tako, da se bo moja matrika se imenuje Scores.
Kot lahko vidite, da je velikost tri.
Obstajajo tri polja notri.
Vsak od njih lahko fit, kar vrsta podatkovnega tipa?
>> ŠTUDENT: Integer.
>> JASON Hirschhorna: celo v tem.
Pisali smo int rezultate, in prva beseda je vrsta podatkov, ki se dogaja, da
pojdi na poljih v tej matriki.
Tako da sem lahko fit tri.
Zakaj imam nič gor tam na ladji?
Zakaj je torej rezultat nič enak 1?
Spominjaš me na vaše ime.
>> ŠTUDENT: Kurt.
>> JASON Hirschhorna: Kurt.
>> ŠTUDENT: Da.
>> JASON Hirschhorna: Zakaj?
>> ŠTUDENT: Ker prvi indeks nič, bomo začeli štetje nič.
>> JASON Hirschhorna: Tako smo začeli Računam na ničli.
Točno tako.
To je zmedeno del in volja izlet si gor, še posebej, če ste
poskuša Ponovil skozi polja, ki smo jo bom v nekaj.
Mi začnemo na nič.
Torej, če želim, da se sklicuje na prvi škatla, to ni ena škatla.
Žal, to polje nič.
Drugi je škatla ena, in to tako, tretji je škatla dva.
>> Kaj polju tri?
Kje je škatla tri?
Ali pa, če želim narediti rezultate, nosilec tri, zaklepaj, kaj je to?
Torej ste rekli null znak.
Vse druge misli?
Kaj je ocena nosilec treh nosilec?
>> Študent: To v resnici ne obstaja, ker vam opredeljena le kot partitur,
Nosilec tri.
>> JASON Hirschhorna: Torej pravite v resnici ne obstaja.
V nekaterih primerih, ko imamo opravka z strune, na splošno bomo dal nično
znak na koncu.
Bomo prišli do, da v drugi.
Vendar pa v tem primeru ni Ne tretje polje tukaj.
Torej zadnje polje v vsakem polju je velikost minus 1.
Torej, če imamo niz velikosti n, Prva škatla je na ničli, zadnja je
na n minus 1.
In v tem primeru ne obstaja.
Obstaja nekaj, kar tukaj, v spomin, vendar to ni naša.
Mi ne njegov lastnik.
Mi ni zaprosila za to.
Torej, če želimo priti do njih, kar bomo storiti nekaj, da smo verjetno bo
zaidejo v težave.
>> V tem primeru, sem inicializacijo moje polje s tremi spremenljivkami.
Mi smo dajanje enega v polju nič, dva V polje ena in tri v polju dva.
Ima kdo kakšna vprašanja O inicializacijo niz?
>> Tako da smo šli čez to šele zdaj.
Rezultati, nosilec treh, zaklepaj, da ne obstaja.
Mi smo nič indeksirane v računalništvu, Tako bomo začeli štetje nič.
Zadnje polje nam na voljo, je tretje polje, vendar je pozval okno
Številka dve.
>> Spodaj je to alternativa način inicializacija matrike.
Torej, namesto ustvarjanja array na enem linijo, za polnjenje prvo polje, nato
drugo polje, nato tretji polje lahko to storite vse v eni vrstici.
Torej, v tej vrstici, tako nizi.
To ustvarja točno isto vrsto kot tisto, kar smo ustvarili tukaj, ampak
Samo to v eni vrstici ne.
>> Zdaj smo ustvarili našo vrsto.
Ponavadi, ko boste ustvarili niz, si želijo nekaj narediti z njim, ali
da se jo napolni ali se stvari od njega in jih izpiše na zaslonu.
V tem primeru, bomo preko našega Ocene matrika, ki smo inicializiran na
Prva vrstica tu v sivi barvi.
In potem na drugi liniji, začnemo ponavljanjem skozi array.
Ima kdo kakšna vprašanja o struktura za zanko?
>> Torej gre za zanko.
Imamo začetno stanje, nato pa naše končno stanje, potem pa
Ponovil sem, vsako zanko.
In v zavite oklepaje v tem za zanka, kaj se zgodi, če bi bil jaz teči
ta program?
Mi lahko kdo pove, kaj bi dobili?
[? Matu? ?]
>> Matu: Natisni vseh točk na vsaki liniji.
To bi natisnite vsako oceno v svoji vrstici.
>> JASON Hirschhorna: Kaj točno jo natisne?
>> ŠTUDENT: Bilo natisniti eno, nato dva, nato pa tri.
>> JASON Hirschhorna: Točno tako.
To bi natisniti eno, potem dve, tri, vsaka od ločenih vodov, ker
gremo skozi niz in boste vidim, da drugi, printf
Izjava, ocene i.
Torej v prvem krogu s pomočjo naših za zanke, i je enak nič, kar pomeni, da smo
dobili vrednost na rezultat nič -
ki bi, če se vrnemo k naš diagram, je eden -
in izpolnitvijo -
oh, pravi c.
To bi moralo biti% d.
Bom popraviti, da v nekaj ko Sem roko, da se za vas.
Ampak mi predstavlja celo tako njim mora biti% d tukaj, ne% c.
Kaj je% c za?
>> ŠTUDENT: znakov.
>> JASON Hirschhorna: Znakov, točno.
Kaj je druga?
Če ne želite narediti% d za celo, kaj še lahko naredim?
>> ŠTUDENT: i.
>> JASON Hirschhorna:% i, točno.
Torej vsa vprašanja o ponavljanjem skozi niz?
Torej, kaj se zgodi, če to storimo?
Namesto tem i manj kot tri, mi i manj
ali enako kot tri.
Kaj se zgodi, ko zaženete to kodo?
Da, Annie?
>> ŠTUDENT: Oni bodo natisnete cudna stvar na četrti vrstici.
>> JASON Hirschhorna: Torej ste rekli, je bo izpisal čudne stvari na
Četrta vrstica?
Ima kdo odgovor na njeno vprašanje?
Torej so možnosti, da pri smo prišli do -
tako v četrtem krogu preko naših za zanke, tako kot si mislil, Annie,
da bomo lahko rezultati nosilec tri, ki smo že pogruntal ne
obstajajo, in bomo poskušali in dostop, da ga natisnete
ven, ga uporabite na nek način.
Torej, bo računalnik verjetno jezen na nas.
Ti si ravno prav.
>> To lahko zaprete program v celoti.
To lahko natisnete nekaj res čudno.
Ne moreš reči zagotovo.
Verjetnost, da bomo verjetno dobili jezen vi in ​​šele umakniti takoj.
>> Ampak to je pogosta napaka, da boste imeli ko ste tik po enega na
konec, in to je napaka, ki bo vas pestijo skozi svoje kodiranja.
Eden od načinov želel storiti, je le na tabla, gredo skozi vsako ponovitev
v zanke na strani ali na papirju, da vidite kaj se dogaja, in potem
splošno zavedaš, oh počakaj, jaz ne bi so šli na manjše ali
enako tri.
Moral bi se ustavila pri dveh, kar je kaj se zgodi, če je vaše stanje manj
kot tri.
Kakšna vprašanja?
Sladko.
>> Torej imate vsi računalnikih odprt.
Bomo dal 02:58 minut, da napišete program, ki
ustvari matriko z enim celih skozi pet in nato natisne vsako
celo v novo vrstico.
In če imate kakršnakoli vprašanja, naj dvigne roko.
Vesel sem priti.
Kot sem rekel, vzemimo tri minut, da napišete to.
So vsi v redu, če grem v novo okno in zapreti to?
>> Žal mi je, če niste imeli priložnost do konca, vendar bomo to storiti
skupaj zdaj.
Torej na zaslonu, sem # include cs50.h, # include stdio.h.
Ali lahko nekdo povej mi, kaj ti dve vrstici storiti?
Michael?
>> ŠTUDENT: Vključujejo knjižnice da CS50 izvedena in da ima Steve
shranjena za vas, da uporabite za da bo vaše življenje lažje.
>> JASON Hirschhorna: Torej, ste rekli, da so knjižnice, tisti, ki CS50
je, cs50.h, in tisti, ki je ravno standardni, prihaja z
Paket C, stdio.h.
Kaj misliš vključujejo knjižnice, čeprav?
Ste lahko malo bolj natančni?
>> Študent: To naredi tako, da lahko uporabo določenih kodnih besed, da se
delovanje zgodi ne da bi šel in da funkcijo c sami.
>> JASON Hirschhorna: Ali lahko daj mi primer?
>> ŠTUDENT: Kot printf je tista, ki jo lahko uporabite.
>> JASON Hirschhorna: printf.
Torej si rekel printf je eden od tistih, funkcije, kjer namesto da bi
napišite printf na svoje, printf je dejansko vključeni v stdio.h, tako da
Lahko samo ga uporabljajo in prevzemajo da bo to delovalo.
V stdio.h, če ste odprli to datoteko, bi bilo tudi, kako printf
Dela, vse kode za printf?
Zakaj se trese glavo?
>> ŠTUDENT: Ker glava datoteke samo vključuje izjavo funkcijo.
>> JASON Hirschhorna: Točno tako prav.
Glava datoteke samo vključuje Izjava funkcijo.
Torej v bistvu, ko zbere to, hit Naredite Count, ki smo jo bom naredil v
drugič, prevajalnik ve, da če uporabite printf, printf obstaja.
To se dogaja, da je treba opredeliti nekje.
To ni problem za vas, da jo uporabljajo.
In potem kasneje, bo tudi enic in ničel, ki dejansko vsebujejo
printf je izvajanje in jih združi s svojo kodo.
Kako ste se prepričajte, da vključuje enic in ničel za, recimo, dobil niz?
>> ŠTUDENT: Get niz je cs50.h.
>> JASON Hirschhorna: Right.
Tako, da pravi, da bi dobili niz obstaja, Izjava funkcijo.
Ampak potem enic in ničel, binarni datoteka, ki dejansko vključuje
Izvajanje get niza?
Kako poskrbite, da gre s svojim programom?
>> ŠTUDENT: Pass povezovalnik v argument v ukazni vrstici.
>> JASON Hirschhorna: Pass povezovalnik V argument v ukazni vrstici.
Kako si to naredil?
>> Študent: To-l vrstica v Jek
>> JASON Hirschhorna: Točno tako prav.
Rečeš-l CS50, kajne?
To vključuje tiste ničle.
>> ŠTUDENT: Ampak Poskrbite ne da za vas, kajne?
>> JASON Hirschhorna: Točno tako.
Poskrbite pa, da je za vas, ampak na koncu, ne boste imeli Znamka ali
boste morali narediti na svoje, tako da je
dobra stvar, da se spomnimo.
Če ste bili, da uporabite enega od teh druge knjižnice, ne samo, da imate
pisati # include in Nato knjižnica.
Prav tako morate povezati noter
In ti dve stvari drugačne. -L CS50 razlikuje
kot # include cs50.h.
>> Potem imamo int main nična zavitimi oklepaji, in zdaj gremo na kodo
znotraj glavnega.
Prva vrstica imam tukaj je komentar , ki pravi, ustvariti array
z ints enega do pet.
Kaj je dobra beseda za opis, kaj sem imajo zdaj na zaslonu, samo
komentarji znotraj main?
Kaj naj rečemo, da je?
>> ŠTUDENT: psevdokoda.
>> JASON Hirschhorna: psevdokoda.
Hvala, Jeffrey.
To je ravno prav.
Psevdokoda.
Ste vi videli psevdokoda prej?
Dvignite roko, če ste uporabljali psevdokoda pred problem določiti enega.
Približno polovica od vas.
>> Jaz bi zelo priporočam uporabo psevdokoda razčleniti probleme v
manjše, bolj enostavno odgriznejo kosov.
Tudi, če vam psevdokoda, si imajo svoje komentarje že v veliki meri
zgrajena, tako da vam ni treba pojdi nazaj in poskušali ugotoviti,
kaj ste počeli.
Tako lahko nekdo, dajte mi to prvo linijo ustvariti matriko z enim ints
do pet?
Vi?
>> ŠTUDENT: Int, potem pa lahko pokličete ne glede na število, nato pa kvadrat
Nosilec pet.
>> JASON Hirschhorna: Torej int številke, oglati oklepaj pet.
>> ŠTUDENT: Enako, in nato zavitih oklepajih.
>> JASON Hirschhorna: Enako, Zaviti oklepaji.
>> ŠTUDENT: Ena, dva, tri, štiri.
>> JASON Hirschhorna: En, dva, tri, štiri, pet.
>> ŠTUDENT: In potem zavite oklepaje in potem podpičjem.
>> JASON Hirschhorna: In kodrasti oklepaji in podpičji.
Odlično.
Natisnite vsak int v novo vrstico.
Lahko kdo drug poda meni, da je koda, prosim?
[? Matu? ?]
Pojdi naprej.
>> ŠTUDENT: Za (
>> JASON Hirschhorna: Za (
>> ŠTUDENT: int i = 0
>> JASON Hirschhorna: int i = 0
>> ŠTUDENT: Podpičje i manj kot pet.
>> JASON Hirschhorna: Podpičje, i manj kot 5.
>> ŠTUDENT: Podpičje, i + +.
>> JASON Hirschhorna: Podpičje, i + +.
>> ŠTUDENT: Zaprte oklepajev, potem odprto naramnicami.
>> JASON Hirschhorna: Zaprte oklepaje in dve naramnice.
Znotraj oklepajev?
>> ŠTUDENT: In potem printf "% d / n"
>> JASON Hirschhorna: Oprosti, počakaj.
Printf "% d / n, zaprt quote.
>> ŠTUDENT: In potem zaprto citiram, vejica, število, nosilec i.
>> JASON Hirschhorna: Vejica, Število, nosilec i.
>> ŠTUDENT: Žal mi je, številke nosilec i.
>> JASON Hirschhorna: Številke, nosilec i.
>> ŠTUDENT: Žal mi je.
In potem zaprt oklepajev, podpičjem.
>> JASON Hirschhorna: Zaprto oklepaje, podpičjem.
Grem rešiti da.
Bomo narediti štetje.
In kako sem teči štetje?
>> ŠTUDENT: Leva poševnica.
>> ŠTUDENT: Dot poševnica -
>> JASON Hirschhorna: /. Računati, ravno.
Hvala. Računati. /.
Ena, dva, tri, štiri, pet novih linij.
Izgleda, da je delal.
Ja, Noah?
>> ŠTUDENT: Lahko bi tudi naredil ali manj enak štiri, kot da je manj kot
ali enak štiri?
Ali obstaja kakšna prednost, da delaš manj kot pet, ali pa drugačen način
to pisanje?
>> JASON Hirschhorna: Torej, vprašanje je, da lahko naredili i manjša ali
enak štiri namesto i je manj kot pet.
Bi delali enako?
>> ŠTUDENT: Moralo bi.
>> JASON Hirschhorna: Da.
To bi popolnoma deluje enako.
Slogovno je na splošno manj kot, in videli boste, v drugem, ko
mi strune, lahko uporabite nekaj imenovano strlen, ki ste videli
pred tem, da bi dobili dolžine niza.
In ne moreš delati manj, kot ali enako strlen.
Lahko bi naredil ali manj enaka strlen minus ena.
Torej to je samo lepše ne manj kot strlen.
Ja?
>> ŠTUDENT: In dejansko kvizi, naredite moramo posredovati pripombe na našem
kodo, kot tudi?
>> JASON Hirschhorna: vprašanje je bil v kvizih, vam
morali posredovati pripombe?
Torej bomo govorili več o kvizi, ko pridejo, toda na splošno dobro
Pravilo palca je, ko ste pisanje kode, posredovati pripombe.
Če boste dobili kodo narobe, ampak komentar desno, boste morda dobili nekaj
Kreditna tako od mene, če sem bil razvrščanje Si na problemski sklop ali na kvizu.
Tako komentarji so vedno dobro zagotoviti.
Sladko.
Računati.
Odlično delo.
Gremo naprej.
>> Strune.
Strune.
To smo že videli v predavanju.
Ta zapravila mojih mislih, ko sem najprej najti to.
Verjetno ni razneslo od kogarkoli drugega, moti tukaj, ampak to je v redu.
>> Strune so nizi znakov, in se konča z, kot si že rekel,
null terminator, ki je to / 0 značaj.
Če bomo pripraviti niz na svet, ga bomo pripraviti tukaj.
Torej, kako dolgo je ta niz?
Žal mi je.
Kako dolg je ta niz?
>> ŠTUDENT: [neslišno].
>> JASON Hirschhorna: Štiri?
Zakaj je štiri?
>> ŠTUDENT: Ker peta točka je za ničelno značaja.
>> JASON Hirschhorna: Torej peto mesto je za ničelno značaja.
Torej, če bi bil jaz teči strlen na to bi mi dal štiri.
Popraviti.
In matrika, čeprav, če bi bil jaz inicializacijo to zbirko, koliko prostori
jaz bi moral prositi za?
>> ŠTUDENT: Pet.
>> JASON Hirschhorna: Pet.
Rad bi morali vprašati za pet, ampak ne morem Samo dal štiri znake tukaj
ker moram dati to nično terminator na koncu.
Torej bomo napisali v "ohai" in dal null terminator na koncu.
Bomo rekli, da je to niz je enaka tem.
Kaj je s nosilec nič?
S podstavki nič, Annie?
>> ŠTUDENT: O.
>> JASON Hirschhorna: O, točno. S podstavki ena?
S podstavki pet?
>> ŠTUDENT: Ali ne obstaja.
>> JASON Hirschhorna: Ne obstajajo.
Točno tako.
Kul.
Vsa vprašanja o razumevanju strune kot nizi znakov?
V redu, potem.
En program za vas.
Napišite program, ki zahteva uporabnika za niz, nato natisne vsako
znak za novo vrstico.
Dajmo torej tri minute, da napišete ta program, in potem bomo to kodo
kot skupina.
>> Žal mi je.
Ali želite videti?
>> ŠTUDENT: Ne
>> JASON Hirschhorna: OK.
Oglejmo si še eno minuto, da to kodo, ali vsaj začeti na njem.
>> Tako da lahko nadaljujem z delom, vendar bom začeti tekoč skozi to.
Tako kot prej, imam na zaslonu # Include cs50.h, # include stdio.h.
int main nična.
Znotraj zavitih oklepajih glavnih je, imam dva komentarjev, Psevdokoda.
Ena je prosil za vrvico od uporabnika.
Drugi je izpisal vsak znak za novo vrstico.
Torej Anna, lahko daš me vprašal za niz od uporabnika?
>> ŠTUDENT: printf.
>> JASON Hirschhorna: printf?
>> ŠTUDENT: Da.
(
>> JASON Hirschhorna: (
>> ŠTUDENT: "Daj mi niz.
>> JASON Hirschhorna: "dati me str - ups -
niz.
>> ŠTUDENT: / n ") podpičjem.
>> JASON Hirschhorna: Konec niza, zaprti oklepaj, podpičjem.
>> ŠTUDENT: Da.
In potem druga, niz i = dobili niz.
>> JASON Hirschhorna: String i = dobili niz.
>> ŠTUDENT: Da.
In potem ()
>> JASON Hirschhorna: ()
>> ŠTUDENT: Podpičje.
>> JASON Hirschhorna: Podpičje.
Fantastično.
Torej bom dobil niz in Jaz grem pa v kakšnem rešiti?
Kaj je spremenljivka imenuje ki ste jo ustvarili?
>> ŠTUDENT: String s.
>> JASON Hirschhorna: spremenljivka se imenuje i.
To je tip niza.
Točno tako.
Naslednja stvar, ki želimo, da se izpiše vsak znak za novo vrstico.
Kdo mi lahko pove to kodo?
[Neslišno]?
Lahko ga daš?
>> ŠTUDENT: Seveda.
>> JASON Hirschhorna: Naredimo to.
In mi je žal.
Ne maram, da ponovite, kar ste rekli ker ste ga dobili prav, ampak jaz
potrebno ponoviti, tako da, ko preoblikuje ta način lahko dobijo vse
Besedilo na prepisov.
Torej si lahko kar naprej govoril.
Na žalost moram reči nad vami.
Žal mi je, ampak -
>> Študent: To je v redu.
Za int i = 0
>> JASON Hirschhorna: Za int i = 0
>> ŠTUDENT: Jaz manj kot -
>> JASON Hirschhorna: Podpičje.
>> ŠTUDENT: Pred tem lahko damo spremenljivka, tako da boste dobili int dolžino ime?
>> JASON Hirschhorna: Oh, ne veš želeli postaviti podpičje?
OK.
Torej, kaj želiš storiti, ko nič?
>> Študent: Želim, da bi dobili Niz dolžina s in
nastavljena, da spremenljivko?
>> JASON Hirschhorna: OK Torej, kako naj to naredim?
>> ŠTUDENT: Torej vam int dolžina =
>> JASON Hirschhorna: Int dolžina =
>> Študent: S-T-R-L-E-N.
>> JASON Hirschhorna: S-T-R-L-E-N -
>> ŠTUDENT: Od ih.
Nosilci.
>> JASON Hirschhorna: (i).
>> ŠTUDENT: In potem mislim, da moraš postaviti podpičje med dvema ints.
>> JASON Hirschhorna: podpičjem Po nič?
>> ŠTUDENT: Ja.
Nato pa podpièje po tem, in praviš, jaz manj kot dolžino.
i dolžino manj kot, ki je spremenljiva.
>> ŠTUDENT: In potem podpičjem.
>> JASON Hirschhorna: Podpičje.
>> ŠTUDENT: i + +.
>> JASON Hirschhorna: i + +.
Tam je naš za loop.
OK, znotraj zanke for.
>> ŠTUDENT: In naredite printf.
>> JASON Hirschhorna: printf.
>> ŠTUDENT: Nosilci.
>> JASON Hirschhorna: oklepaju kotacije.
>> ŠTUDENT: oklepaji, citati,% c / n.
>> JASON Hirschhorna:% c, OK.
>> ŠTUDENT: / n.
>> JASON Hirschhorna: / n.
>> ŠTUDENT: Zaprte kotacije.
>> JASON Hirschhorna: Zaprte kotacije.
>> ŠTUDENT: Vejica.
>> JASON Hirschhorna: Vejica.
>> ŠTUDENT: S.
>> JASON Hirschhorna: S.
>> ŠTUDENT: Konzola i.
>> JASON Hirschhorna: Konzola i.
>> ŠTUDENT: In potem zaprte oklepaje.
>> JASON Hirschhorna: Zaprte oklepaje.
>> ŠTUDENT: In potem podpičjem.
>> JASON Hirschhorna: Podpičje.
Fantastično.
Torej, kaj je rešiti to.
Naredi urok.
Oh fant.
Imam nekaj napak.
Prva napaka na liniji 11, se pravi, Pričakuje izražanja, in to daje
me napaka, drugi int, tam je napaka.
Obstaja nekaj napak tam okoli.
Ali kdo ve, kakšna napaka je to?
Kurt?
>> ŠTUDENT: Mislim, da bi moral biti vejico in ne podpičjem.
>> JASON Hirschhorna: OK, vejica namesto podpičjem.
Tako, da je vse, kar moramo popraviti?
>> ŠTUDENT: Ne
>> JASON Hirschhorna: Kaj pa moramo popraviti?
>> ŠTUDENT: Imamo vključiti string.h.
>> JASON Hirschhorna: Vključi string.h.
Kam moram vključujejo to?
>> ŠTUDENT: Na istem mestu boste vključno druge stvari, kajne
Po vključiti stdio.h.
>> JASON Hirschhorna: Bomo videli, če to deluje prvič, ker na splošno mi je všeč
popraviti eno stvar prvič, in nato zaženite to, in potem videli, napake bomo dobili.
Torej bomo jasno terminal s krmilno n, dajmo narediti urok.
Torej, še ena napaka na liniji 11.
Pričakuje podpičjem.
In sem še vedno pridobivanje napake na tej liniji.
Torej, ni mi dal napačno ga rek ne razume, kaj je strlen,
vendar se mi dali napake na tem linije, tako da kaj je narobe?
Označi?
Marcus.
>> ŠTUDENT: Ali boste morali odstraniti Drugi int izjavo?
>> JASON Hirschhorna: Odstranite Drugi int.
Poskusimo to.
Zdaj jasno terminala.
Naredi urok.
Napake.
Implicitno razglasitvi knjižnico funkcija strlen.
Torej, zdaj bomo videli, da je napaka.
Kaj moramo vključujejo?
>> ŠTUDENT: String.h.
>> JASON Hirschhorna: Vključi string.h, Naredili bomo # include string.h na vrh
na zaslonu.
Rešimo, da bi urok.
Zdaj pripravljajo.
Torej še enkrat, stvari smo morali spomnite linijo 12 v našem za zanko ko
smo njegovo vzpostavitev, int i = 0, dolžina = strlen (e).
>> To je fantastično strategije.
Slog to je super, Oblikovanje to je veliko.
Lahko gremo v teh razlogov kasneje, vendar ta način boste morali poklicati samo
strlen enkrat, namesto vsak ko teče skozi zanko.
Vendar pa morate uporabiti vejico tam in ne boste spet potrebovali int.
Če ste razglasitvi tako tistih spremenljivke skupaj, si
Ne spet potrebovali int.
In potem, če boste za uporabo strlen, kar je še ena knjižnica
funkcija, ki niso vključeni v stdio.h ali cs50.h, da
da boste vključili string.h.
Kurt?
>> ŠTUDENT: Torej, če vam ni treba povedati, kaj dolžina vrsta je, ne da
pomeni, da mora biti int?
Ti ne bi imeli dve različni Vrste tam?
>> JASON Hirschhorna: Torej si lahko imajo dve različni vrsti.
Dolžina je int tukaj, čeprav.
Dolžina je int, ker je vejica in nato isto.
>> ŠTUDENT: Torej predpostavlja, da se dogaja biti enaka kot prva?
>> JASON Hirschhorna: Točno tako.
Da ne gremo, da to storimo zdaj, ampak si lahko vključujejo dva spremenljivk na
isto linijo z eno vrsto podatkov.
Torej int x, y bi ustvarili dve spremenljivki.
Torej int x, y, če se da, daje mi neuporabljen spremenljivka x in y, ker
jih ne uporabljate.
Torej dajanje praznino, preden je le fancy trik, če jih ne uporabljate
nekaj, da jo uporabljajo.
Ampak kot vidite, sem ustvariti x in y na isti liniji z vejico.
To je ustvarjanje dve celi števili tam.
Torej, ja, povsem možno ustvariti dve stvari na isti liniji
ločene z vejico.
Znebimo tistih, četudi.
>> Torej je urok.
Hvala fantje za to kodiranje za nas.
Naj se še enkrat, ga zaženite.
Daj mi niz.
[Neslišno], si naredil največ.
Kaj je niz?
>> ŠTUDENT: Pozdravljeni.
>> JASON Hirschhorna: Pozdravljeni.
H-E-L-L-O, vsak znak v eni vrstici.
Izgleda super.
Dajmo ga ponovno zaženite.
Vedno tekoč, da preverite za primere kotiček.
Kaj je dobro kotiček primer preveriti?
>> ŠTUDENT: številka?
>> JASON Hirschhorna: številka.
Tako da bom dal v 1., in natisne 1.
To je ne prosi za pisma, tako da zdi se, kot številke dela.
Dobro kotiček primeru preveriti.
Kaj je še ena dobra kotiček Primer preveriti?
>> ŠTUDENT: prazen niz.
>> JASON Hirschhorna: Hm?
>> ŠTUDENT: Kot prazen niz.
>> JASON Hirschhorna: Prazen niz.
Torej, da ne dajo v nič.
In kdo bo izpisal?
>> ŠTUDENT: Nič.
>> JASON Hirschhorna: Nič.
Zdi se, kot da deluje.
Lahko poskusite več primerov kotu, toda splošno številke, drugačna podatki
super, da poskusite, pa tudi ni nič.
Nič, nič, negativi so vedno veliko stvari, da poskusite in stvari, ki vas
mora preizkus, stvari zagotovo bomo preizkusiti Preverite za in 50 bo test za.
Imate vprašanja spell.c?
>> OK, vrnimo se nazaj.
Imam eno več programa Za vidva pisati.
Je pozval students.c.
To je program, ki zahteva od uporabnika pet imen, nato naključno izbere
in natisne eno od imen.
Ta program je malo več vključeni od zadnjih dveh smo pisali,
zakaj ne vzamemo pet minut to kodo posamično, nato pa bomo
to kodo kot skupina.
>> Ta program vključuje tudi nekaj stvari Morda niste videli prej, tako da, če
Imate vprašanje o tem, kako Storim, da naj dvigne roko.
Pridem čez in vas usmeril v pravi smeri.
Ampak mi smo tudi to počne zato, ker je to bo dober način, da uvede nekatere
Teme, ki so težavno.
>> Tako da deluje, kajne?
>> ŠTUDENT: Ja.
>> JASON Hirschhorna: Kadarkoli obrniti Problem set, obstaja veliko načinov za
to, nekateri pa so bolj eleganten od drugih.
Dovolite nam, potopite noter
# Include cs50.h.
# Include stdio.h.
int main neveljavna, zavitimi oklepaji.
Znotraj zavitimi oklepaji, Imam dve pripombi.
Prvi je, vprašajte Uporabnik pet imen.
Drugi je, naključno izberejo in izpisal eno od imen.
Torej, kaj je naredil prvo, se posvetujte uporabnik pet imen.
Kdo je prosila uporabnika za pet imen in mi lahko pove, kako to storiti?
Le dve osebi naredil prvi del.
Trije ljudje naredili prvi del.
Štiri, pet.
Tom, kako si to naredil?
>> ŠTUDENT: Ti bi razglasi niz in nato ime, nosilec pet.
>> JASON Hirschhorna: String naštejemo nosilec pet.
Torej, kaj je ta linija dela, Niz ime nosilec pet?
>> ŠTUDENT: Ti bi razglasila nabor nizov.
>> JASON Hirschhorna: To je nabor nizov.
Koliko nizov bodo da se prilega tukaj?
>> ŠTUDENT: Pet.
>> JASON Hirschhorna: Pet.
Odlično.
Bomo pa imena, ker pokličite bomo dobili več narave.
OK, zdaj?
>> ŠTUDENT: In potem si imajo za zanke -
>> JASON Hirschhorna: Za zanke.
>> Študent: - za i = 0.
>> JASON Hirschhorna: for (int i = 0.
>> ŠTUDENT: Podpičje.
>> JASON Hirschhorna: Podpičje.
>> ŠTUDENT: Jaz manj kot pet.
>> JASON Hirschhorna: Jaz manj kot pet.
>> ŠTUDENT: Podpičje.
>> JASON Hirschhorna: Podpičje.
>> ŠTUDENT: i + +.
>> JASON Hirschhorna: i + +.
>> ŠTUDENT: In potem zaprte oklepaje.
>> JASON Hirschhorna: Zaprte oklepajev, in potem nekaj zavitih oklepajih.
Znotraj zavite oklepaje?
>> ŠTUDENT: In potem printf.
>> JASON Hirschhorna: printf.
>> ŠTUDENT: Odprte oklepajev, ime% d.
>> JASON Hirschhorna: Oprostite?
>> Študent: Ime.
>> JASON Hirschhorna: Ime.
>> ŠTUDENT: In potem prostora, in potem je% d.
>> JASON Hirschhorna: Ime, prostor,% d.
>> Študent: In / n in zapreti.
>> JASON Hirschhorna: Torej ime, prostor, % D / n, zaprte oklepaje.
>> ŠTUDENT: Vejica, i + 1.
Žal mi je.
Zaprta citiram, nato vejica, i +1.
>> JASON Hirschhorna: Zaprto citiram, vejica, i +1.
>> ŠTUDENT: Da.
In potem naslednji linija -
>> JASON Hirschhorna: i + 1.
>> ŠTUDENT: Da.
In potem naslednji diapozitiv je nosilec imena i.
>> JASON Hirschhorna: Naslednja vrstica je nosilec imena i.
>> ŠTUDENT: = dobili niz.
>> JASON Hirschhorna: = Get -
Kapital G-E-T -
niz.
Ups, se opravičujem.
>> ŠTUDENT: Odprte, zaprte oklepaje in -
>> JASON Hirschhorna: Odprto, zaprto paren.
>> ŠTUDENT: Podpičje.
>> JASON Hirschhorna: Podpičje.
OK, tako da inicializacijo niz strune, imena, in nato skozi
za zanke, in petkrat izpisal nekaj poziv za uporabnika in nato shranite
pet nizov.
Ima kdo vse Prilagoditve to?
Tom, mislim, da vsi se strinja s tabo.
Izgleda precej dobro.
OK.
Zakaj si moram 1, čeprav?
>> ŠTUDENT: Mislim, nima da, vendar sem 1 tako, da je
ime enega, če naštejemo pet.
V nasprotnem primeru bi bilo ime nič, če naštejemo štiri.
>> JASON Hirschhorna: Torej si bom 1 ker drugače bi imel
natisne nič skozi štiri, saj to je, kako računalniki mislijo, ampak ljudje
Res ne berejo tako.
To je še ena stvar, boste naleteli.
Včasih, ko natisnete nekaj za uporabnika, boste želeli, da bi bilo
malo lepša, in delaš i 1 je v tem primeru
Tako, da bi bilo lepše.
>> Vidim tudi pet dvakrat, ime niza je pet, i je manj kot pet.
Vem, kje si dobil pet.
Si ga dobil od mene povedali vam pet imen.
Ampak, če bomo želeli, da bi kodo malo bolj robusten, ena stvar, ki jo
lahko pa je tukaj, zunaj notr, da bi lahko storili kaj takega,
# Define, in smo lahko naredili imeni 5.
>> Torej v bistvu, kjer pišem kapitala N, kapital, kapitalske M, kapital E,
črko S, da niz bo zamenjal da je s 5. v kodi.
Ali naj samo call it - bomo samo je številka za klic.
Torej sem opredelitev vseh kapice ŠTEVILO biti 5.
>> Torej, zdaj, kjer imam številko 5, sem Lahko ga nadomestiti z vsemi ŠTEVILO kape.
In zdaj, če želim spremeniti številko imen, vse kar morate storiti je,
ta linija, linija štiri, kjer imam # Define številko 5, spremeniti, da do 10,
ali spremeniti, da 4.
Ko kodo dobi več, ne boš dogaja, da se spomnimo vseh krajev vas
dajo koliko imen si želel, in v Da bi za vas, da ne zamudite eno, to je
dober način za to, da bi našli nekaj up top in potem samo uporabiti ta stavek
Povsod po kodi.
Marcus?
>> ŠTUDENT: Je to slogovno najprimernejša kot globalno določanje
stalne n?
>> JASON Hirschhorna: Torej je to slogovno raje kot na svetovni ravni
določanje konstantno n?
Torej pravite, da bi lahko narediti, int število = 5?
>> ŠTUDENT: Ali imajo soglasnike v C ali ne?
>> JASON Hirschhorna: Ali const - v enaki.
Torej pravite, da samo Globalna spremenljivka?
>> ŠTUDENT: Ja.
>> JASON Hirschhorna: Torej slogovno, ni nujno, da je tik
odgovor, vendar sta oba od teh so boljše kot samo metanje teh naključno
številke skozi svojo kodo.
Mi jim čarobne številke klic.
Ko gledam na svojo kodo ali ko kdo je branje skozi njo, so
Ne želim le teh naključnih števil da ne smisla.
Celo število 26, ki je na splošno število črk v abecedi,
je bolje opredeliti abecede do vrha in shranite številko 26 v tem nizu,
če je to smiselno.
>> Ali na problem določiti enega, namesto - še enkrat, nismo govorili o tem ob
čas, vendar namesto samo metanje v 25. povsod ali 10, lahko
shranite številko 25 kot četrtino ali 10, kot DIME, in da se olajša
Kdor je bral po vašem kodo razumeti, zakaj ste izbrali to številko.
In tudi za vas, če si kdaj želeli, da posodobiti svojo kodo, da omogoča malo
bolj robusten.
Ja?
>> ŠTUDENT: Ali je ta oznaka tudi dogaja na voljo za nas po?
>> JASON Hirschhorna: Vse te oznake da smo napisali skupaj
bodo po e-pošti fantje in voljo.
Da.
Tako da od uporabnika zahteva za pet imen.
Naključno izberejo in tiskanje eno od imen.
Kdo je naredil to linijo?
To je najtežje linija tukaj.
Oprostite, Tom.
Si naredil res dobro delo, vendar to je malo težje.
Marcus, pojdi naprej.
>> ŠTUDENT: No najprej, da boš morajo vsebovati stdlib.h in time.h.
>> JASON Hirschhorna: Praviš, da na top, vključi še dva knjižnice.
Hočeš, da se vključi S-t-D-L-I-b dot H, Standard knjižnica, in kaj
V drugi?
>> ŠTUDENT: Time.h.
>> JASON Hirschhorna: # include time.h.
Torej, to sta dve več knjižnic.
Predvidevam, zdaj bomo uporabljali funkcije, ki so vsebovani v teh
dva, kar je razlog, zakaj je potrebno jih vključiti?
>> ŠTUDENT: Torej, najprej si boš želel pisati srand.
>> JASON Hirschhorna: Srand.
>> ŠTUDENT: (čas (0)
>> JASON Hirschhorna: Žal mi je.
Srand (čas (
>> ŠTUDENT: 0.
>> JASON Hirschhorna: 0.
>> ŠTUDENT:)), podpičje.
>> JASON Hirschhorna: Še en zaprt paren?
Podpičjem.
Jaz bom samo zamenjati vaša nič z NULL.
To bom o isti stvari, ampak na splošno, boste videli nič, kar
bomo govorili o tem vrstica v drugi.
>> ŠTUDENT: Slogovno bolje?
>> JASON Hirschhorna: Na splošno ljudje Pravica NULL, ampak ista stvar.
>> ŠTUDENT: In potem int ime.
>> JASON Hirschhorna: Int ime.
>> ŠTUDENT: =
>> JASON Hirschhorna: =
>> ŠTUDENT: Rand.
>> JASON Hirschhorna: Rand.
>> ŠTUDENT: ()
>> JASON Hirschhorna: ()
>> ŠTUDENT: Modul številko.
>> JASON Hirschhorna: Kaj modulu?
Lik?
Odstotkov lik?
>> ŠTUDENT: Odstotek znak.
ŠTEVILO modulu, ki ste jo določili up top.
>> JASON Hirschhorna: ŠTEVILO modula.
>> ŠTUDENT: In potem podpičjem.
>> JASON Hirschhorna: Podpičje.
>> ŠTUDENT: In potem nova linija, printf.
>> JASON Hirschhorna: printf.
>> ŠTUDENT: (
>> JASON Hirschhorna: (
>> ŠTUDENT: "
>> JASON Hirschhorna: "
>> ŠTUDENT:% s / n
>> JASON Hirschhorna:% s / n
>> ŠTUDENT: "
>> JASON Hirschhorna:% s / n "
>> ŠTUDENT: Vejica, vesoljske imena.
>> JASON Hirschhorna: Space -
>> ŠTUDENT: Oh, mislim, kaj ni mu pravimo tukaj?
>> JASON Hirschhorna: to imena Poklicali smo.
>> ŠTUDENT: oklepaj, ime.
>> JASON Hirschhorna: oklepaj, ime.
>> ŠTUDENT: Zaprta nosilec.
>> JASON Hirschhorna: Zaprta nosilec.
>> ŠTUDENT:)
>> JASON Hirschhorna:)
>> ŠTUDENT: Podpičje.
>> JASON Hirschhorna: Podpičje.
OK, dajmo rešiti.
Naredimo to kodo.
Študentov.
Oglejmo zagnati to kodo.
Študentov.
Ne. / Študent. . / Študenti.
Ime enega.
Bomo rekli Davidu.
Ime dva, RJ.
Ime tri, Rob.
Ime štiri, Lucas.
Ime pet, Joseph.
In potem se natisne Jožefa znova.
>> Torej, kaj mi to znova zagnati.
Naj jaz ista imena.
David, RJ, Rob, Lucas, Joseph.
In to mi je dal Davidu ta čas.
Tako sem storil isto stvar, vendar pa je me je druga stvar, in to je
ker, seveda, kar zahtevamo za naključno ime.
Zato mislim, temelji off me tava po sobi, da večina ljudi
Verjetno je prvi del pravico, uvedbo tega matriko, nato pa dobili
vsa imena.
Govorim o vrsticah 10 do 16 let.
Ampak linije 18 do 21, so verjetno nekaj stvari, ki jih niste videli,
tako da gremo skozi njih.
>> Ta linija, srand čas NULL je v bistvu -
Žal pa preskočite linija, rand ().
To vam daje naključno število, naključno celo število.
In če ste zadeli človeka rand, ki Veliko vas naredil -
M-N-prostor-R-N-R -
v terminalu, kot je ta, M-N- Prostor R-N-D, pritisnite tipko Enter.
Ti bi prišli do priročnika in bi lahko prebrali, da je rand
Ukaz izhodi num psevdo naključne bajte Po sejanje naključno število
generator enkrat.
>> Tako da je opis.
To je tisto, kar počne rand, daje vam naključno število, ko
pokličete to funkcijo.
Žal, to ni res naključno ker če pokličete naključno
ne da bi nekaj semen, nekateri pridobivanje Izhodišče bo vedno izbere
enak tistemu in uporablja formula za določitev naslednjo.
Torej, če pokličete rand, bo to samo vam isto stvar.
To bo zelo predvidljivo.
To dejansko ne bo naključno.
>> Torej, kaj moramo storiti, je na Marcusova Navodila za mano, so semena rand
z nečim drugim, kar je tisto, Funkcija srand ne.
To seme Rand z nekaj malo več naključno kot isto stvar, in
mu je to sejanje s časom NULL, ki je, samo po dogovoru, tok
čas v sekundah.
>> Torej si ob predpostavki, da so vsi ne tekoč teči kodo na točno
isto sekundo, tako da je varno stavo, da Čas NULL se dogaja, da je drugačen
vsakič, ko je ta koda deluje.
Varno stavo, da bo tako srand semena rand z nekaj drugačnega vsakem
sam čas.
Torej je po dogovoru, ko bomo želeli naključno število, pišemo te vrstice,
srand čas NULL, da bi nam veliko bolj naključno seme, potem pa tečemo
rand, ki nam daje naključno število.
Ja?
>> ŠTUDENT: Ali lahko poveste kaj misliš s semenom?
>> JASON Hirschhorna: Seed kot v -
tako rand se dogaja, da poberem nekaj več in da se bo uporaba nekaterih
Formula do tja.
Tako se dogaja, da začnete z nečim in ga nato v nekaj, kar temelji
off te formule.
Če ste vedno ji isto stvar, to je vedno tekoč, da se spremeni v
ista stvar.
Tako da prvo stvar, ki jo da je seme.
Torej hočeš, da ga nekaj razlikuje začeti s, in tako
ga bo spremenila v nekaj drugega.
>> In potem končno, linija 20, Ta% se imenuje
modulu, in da je zmedeno.
To je nekaj, kar je nekoliko drugačna tukaj, da vam ni res
imajo v resničnem življenju matematiki.
Ampak v bistvu, ko ste vzeli velikana število in si razdeliti v C, kar
se zgodi, da preostanek?
>> ŠTUDENT: It gets okrnjena.
>> JASON Hirschhorna: It gets okrnjena.
Torej 20 deljeno s 3 je kaj?
Kaj to vrniti vi, 20 deljeno s 3.
Žal, 10 deljeno s 3.
Kaj to vrne k tebi?
>> ŠTUDENT: [neslišno].
>> JASON Hirschhorna: 10 deljeno s 3 le vrne 3, ne 3 1 ostalo.
Torej, kaj 10 modulo 3 vrne je le preostanek, 1.
Torej, če ste želeli vedeti, kaj se 10 deli po 3 dejansko bil, bi si
naredite 10 deljeno s 3, ki ste jo dobili vaše 3, in potem boš naredil 10 modulo 3, in
boš dobil 1.
Pa poglejmo se zavedaš, da 10 deli za 3 je 3, ostanek 1.
>> In v tej vrstici, bi bilo rand celo število v bistvu.
Torej modulu je rekel, ga delimo s število, ki je v tem primeru 5.
In če si kdaj delimo s številom, celo mora biti vedno manjši od
to število.
Torej, če ste tako s številko 5, preostanek pa se bo vedno
nič skozi štiri.
To je samo, kako matematika izide.
>> Tako veliko število moduloed po manjši Številka bo vedno vrnil
Preostanek in bo vedno vrnil nekaj število, ki je manjše od števila vas
deljeno s.
Ima kdo kakšna vprašanja o modulu, ker bo prišel zelo,
zelo priročen, zato želim, da poskrbite, da vsi to razume?
Kul.
In smo videli, da je ta program delal.
OK, gremo naprej.
>> Torej naslednjič, smo šli v funkcije, in smo šli
skozi preostanek te stvari precej hitro, ker želim priti do
argumenti v ukazni vrstici.
Torej funkcije so v bistvu, kot ste videli, črne skrinjice.
Vzamejo stvari v imenovanih parametrov, storijo nekaj za njih, bodisi
jih spremenite ali ustvarite nekaj stranskih učinkov, in končno, pljuvajo
Nekaj ​​je, kar je vrne vrednost.
Lahko kdorkoli povej mi en razlog, zakaj bi jih uporabljamo funkcije?
Kdo?
Eden od razlogov, zakaj sva se s funkcijami?
Kdo?
Videl sem dve roki.
Kaj je dober razlog?
Marcus?
>> ŠTUDENT: Če morate poklicati enako kos kode večkrat.
>> JASON Hirschhorna: OK, če potrebujete poklicati isti kos
kodo večkrat.
Jeff, si imel drugačen razlog?
>> ŠTUDENT: Samo tako, da lahko kodo manj.
>> JASON Hirschhorna: Lahko kodo manj.
Prav.
Če želite nekaj storiti veliko -
v prejšnjem zakoniku, lahko dobim pisno dobili String petkrat, vendar
za zanke omogoča videti lepše in moraš napisati manj kode.
Funkcije so podobna ideja.
Če želim, da storijo enako stvar veliko, premakniti funkcijo in klic, da
deluje vsakič.
Da bo naredil tisto stvar za vas.
To je velik razlog uporaba funkcij.
>> Torej anatomija funkcijo.
Funkcija bo na splošno videti takole.
Da bomo začeli z vrsto vračanja, potem boste dobili ime.
To bo trajalo argumente, drugače znan kot parametre in znotraj
ti zavitih oklepajih, boste napišite kodo.
>> Videli smo eno funkcijo veliko.
To je glavno.
Tukaj je glavni prikazan na da anatomija sem imel prej.
Kaj int tukaj pomenilo?
Kaj int pomeni?
Ko pišem int main (void).
>> ŠTUDENT: Tip Return?
>> JASON Hirschhorna: Oprostite?
>> ŠTUDENT: tip donos.
>> JASON Hirschhorna: Int je vrnitev vrsto, ravno prav.
Glavni vrne int.
Kaj je glavni?
>> ŠTUDENT: Ime Funkcija.
>> JASON Hirschhorna: Glavna je Ime funkcije.
Točno tako.
In neveljaven?
Kaj je ničen v oklepajih?
>> Študent: To ne bo vsak zunanji vrednost.
>> JASON Hirschhorna: Torej nična -
prav.
Znotraj oklepajev, smo se parametre ali argumenti
funkcija je, kaj se dogaja notranjosti črne skrinjice.
Ko pišete praznino, praviš to traja nič podati
Torej int main void pomeni Main je ne sprejema ničesar noter
>> Znotraj zavitimi oklepaji, imamo nekaj kodo, in potem vidimo na koncu
vrne nič.
Kaj pomeni vrnitev nič pomenilo?
No, smo se pogovarjali o vrsti vračanja.
Glavni potrebuje za vrnitev int.
To je tisto, kar te vrstice ne.
Se vrne int, nič.
>> Seveda nismo videli, da je veliko ker v programskem storimo z
stroji delamo in prevajalniki ki jih uporabljamo danes, vas
ne potrebujem linijo.
Glavni je dovolj poseben, da ve, ko pridete do konca glavne, samo
vrne nič, če je šlo vse dobro.
V bistvu, če kaj ne gre dobro, Glavni bo pogosto vrne drugačen
Številka ki pomeni, da je nekaj je šlo narobe z vašim programom.
>> Torej, na splošno, ko vidiš kodo, boste Ne pišem donos nič, ampak to je dobra
vedeti, da se dogaja zadaj Prizori, ker ko pišeš
drugo vrsto funkcije boste morali
vključujejo povratno linijo.
Če praviš, da bom vrne int, morate
napisati nekaj vrnem.
Če rečeš nična tu na začetek, neveljaven glavna nična, za
Na primer, potem to ne vrača karkoli - nična pomeni nič -
tako da vam ni treba, da povratno linijo.
Ampak si kdaj napisati nekaj, kar ni ničnost vrsto vračanja, morate
vrstica, ki pravi, vrnitev in vi morali dati nekaj tam
, ki ustreza vrsti.
Vsa vprašanja o tem?
Sladko.
>> Področje.
To je nekaj, ki smo jih dotaknili tudi.
Vsaka spremenljivka, kot vemo, je določeno področje, in da je v bistvu
govorimo o tem, kje spremenljivka lahko ali se ne sme sklicevati.
In rad povedal, kaj se zgodi v zavitih oklepajih ostane
znotraj zavitih oklepajih.
Tako na primer, če pogledamo to kodo smo opredelitvi globalno spremenljivko
izven glavne, int, tu gor na vrhu.
Mi kličeš drugo int notri glavni.
Imamo nekaj več zavite oklepaje, in smo kličeš drugo int.
>> Imamo tri je v kodi.
To niso ista stvar.
Ustvaril sem tri različne spremenljivke.
Nato znotraj teh notranjo kodrasta naramnice, rečem = 4.
Ki je, da govoriš, Prvi, drugi,
ali tretji?
>> ŠTUDENT: tretji.
>> JASON Hirschhorna: To je govoril O tretjega.
Vse to je dejansko lahko govorili v to posebno
na primer zato, ker gre vse njihov obseg v teh najglobljih zavite oklepaje.
Vendar, če pokličete stvari enako ime, tam je nekaj, kar ti skrival.
Torej, ste se ukvarjajo samo z ali popraviti ali pa uporabite Najnovejši spremenljivka, ali ena
vam najbližje.
Torej tu notri, se ta tretji najbliže na linijo, = 4, tako da
vpliva na tretjo.
In zadnji vrstici = 2, ki je da govoriš, prvi, drugi,
ali tretje?
>> ŠTUDENT: Drugi.
>> JASON Hirschhorna: To je govoril o drugem a.
Seveda, tretji je najbližje je v kodi, ampak tretji
ne obstaja zunaj tiste zavite oklepaje.
Ko prideš do tega zaprtega kodrasta naramnicami, to je, kot je šel,
v bistvu.
Torej samo dva, ki ste jih zapustili, so tisti, Prvi dve, in seveda, zdaj
to je najbližji drugi.
>> Torej, to je dobra stvar spomnite o obsegu.
Na primer, sem prepričan, da ste naleteli to storiti, medtem ko zanke.
Če inicializacijo spremenljivke znotraj Ne while zanko, nato pa poskusite
dostopate do zunaj, verjetno imam nekaj opozorilo, kot je to
spremenljivka ne obstaja.
To je zato, ker je ideja področje, da se stvari le obstajajo
znotraj teh zavitih oklepajih.
Zaviti oklepaji so kot velik objem, da ste ga daje v kodo, je drugo
način, da razmišljajo o tem.
>> Torej je to še ena funkcija, nekaj Za vidva z oznako, hellofunction.c.
Bomo preskočili, da za zdaj, ampak To je nekaj, kar vas pozivam, da
vaditi na svoje.
Napišite program, v katerem glavni klicev drugo funkcijo, ki natisne
pozdrav uporabnika.
To je v bistvu ob Hello World in abstrahiranja, da printf v
drugo funkcijo.
Ampak mi ne boš naredil to pravico zdaj ker nimamo toliko časa
levo, kot bi si želel.
>> Torej izjava funkcijo.
To smo že videli prej kot dobro.
Če želite napisati drugo funkcijo, boste morali pustiti računalnik vedo in
Glavni vedeli, da obstaja.
Torej, kaj mi je predvsem glavno, pišemo tip donos, ime in
Parametri, nato spodaj glavnem tukaj, smo dejansko kopirati to vrstico
nato pa napisali dejansko kodo.
Torej, na ta način, če pokličete funkcijo v glavnem na vrhu, glavna ve, da
halo obstaja, na primer, če bi bil poklicati hello, nato pa je videti, da
Izvajanje spodaj.
Kaj se zgodi, če ne vključujejo to line up top, izniči zdravo (void)?
>> Če jaz ne vključujejo te vrstice in glavna zahteva Zdravo, jaz sem
bo dobil napako.
Jaz bom dobil napako, ker prevajalnik ne ve
da obstaja ta stvar.
To je podobno zakaj ne # vključujejo cs50.h.
Kaj pravzaprav počne cs50.h je dajanje dobili niz tja gor.
To je dajanje priti int tam gor.
To je polaganje vse tiste funkcije prototipi preden glavni, tako da, ko
jih pokličete na glavni, glavni ve da obstajajo te stvari.
To je tisto, kar ti. H files storiti.
In tako, če ste tekoč, da bi svoj funkcijo, moraš se prepričajte,
si dal ta prototip gor.
Vsa vprašanja o tem sedaj?
>> Argumenti v ukazni vrstici.
To je tisto, kar bomo do konca , nato pa upam, da bomo
stisnite v nekaterih pset.
Ne vem, če se bomo mogli stisniti da zaradi časa, vendar
z vami, ki ste tukaj, in če fantje želijo povedati, potem za malo, smo
Lahko greš nad njim zunaj.
Ampak gremo do konca z argumenti v ukazni vrstici
za zadnjih 15 minut.
Mi budni, Michael?
Si buden?
Dobro.
Ne vem, če spite z zaprtimi očmi.
To bi bilo zelo zahtevno.
>> Argumenti v ukazni vrstici.
Tisti, ki so eden od načinov, da prenese podatke v program.
Sčasoma bomo naleteli na druge.
Ampak v bistvu, bomo ustaviti pisanje int main (void), če želimo
sprejmejo nekatere argumente v ukazni vrstici.
Bomo napisali to stvar imenovano int main (int argc,
niz argv, oklepaji.
To povzroča zmedo.
To je veliko pisem, ki niso v človeški angleško, tako da bomo
jih razpakirati zdaj.
>> Argc stoji za štetje argument -
in spet bo vse te na voljo na spletu -
in da se je število argumentov.
Argv stoji za argument vektorja, in to so argumenti sami.
To je množica nizov.
Pravzaprav smo videli niz nizov pred danes.
Smo ustvarili enega v zadnji programirate smo kodirani.
>> Torej, tukaj je primer.
Pišem. / Ohai CS50 oddelek na mojem ukazni vrstici.
Argc v tem primeru je enako 3.
Argv nosilec 0 je ohai, argv nosilec 1 je CS50, argv nosilec 2 je oddelek.
Spet argc je število argumentov, in za potovanje vas up malo
bit, vedno računati ime funkcija kot prvi argument.
Torej, v tem primeru, obstajajo tri Argumenti, ime funkcije
in potem tisti dve, ki sem vtipka
>> Naslednje, bomo prihranili tistih samih argumenti v argv.
In spet, tako kot smo videli prej, smo naredili to je v zadnjem programa smo kodirani.
Lahko premikate skozi paleto argv in dobili tiste strune.
To je v bistvu tisto, kar smo naredili na Konec našega zadnjega programa.
Smo izbrali naključno ime, nato pa odšel v Imena nosilec karkoli in tiskani
iz niza tam nahaja.
>> Na vrhu samo eni matrike, ker strune so same nizi, kot
govorila, lahko imate nizi od polja, ki je
v bistvu tisto, argv je.
En način, kako misliti to je, vrstice in stolpce.
Ne morem pripraviti, da prav zdaj.
Torej argv -
da se ne izbriše.
Narišimo pod ohai.
>> Torej, če sem napisal v, ohai CS50 oddelku, Grem odsekana
oddelek za ta primer.
Ampak v bistvu, moja večdimenzionalno matrika, ohai CS50,
bomo narediti sekte.
Torej, tukaj sem lahko dostopate -
če sem dal argv eno številko -
To je narobe.
Kaj je narobe s to shemo?
>> Študent: Začetek nič.
>> JASON Hirschhorna: Moralo bi začeti z ničle.
Verjetno bi ga tudi zasukati, vendar saj sem ga že pripravljeni na sem
dogaja, da ga pustijo tam za zdaj.
Ampak to se začne na nič.
To je res.
Žal mi je, če je to majhna.
Lahko vidva vrsto vidiš?
Torej, če naredim argv 0, bom dobili vse ohai.
Če naredim argv 1, bom dobil vse CS50.
Če naredim argv 2, bom dobil vse sekte.
>> Toda zdaj, kot smo rekli, strune nizi sami.
Torej, kaj lahko storim, je, da sem lahko privoščite to kot večdimenzionalni array, in jaz
Lahko narediš nekaj po vzoru argv 0, 0, kar mi daje samo
značaj 0.
Argv 0, 1, ki mi daje samo h.
Argv 1, 3, kar mi daje samo 0 tem tukaj v CS50.
>> Zato, ker strune sami so polja, smo dajanje
da je v drugem polju.
Zdaj imamo vrsto polja, in smo lahko kazalo na naši prvi niz in
Nato indeks v naše drugo matriko.
In kot bi lahko pričakovali, to storimo s samo polaganje tista dva -
delamo oglate oklepaje samo zraven drugega.
Torej, v tem primeru, argv 1 je CS50 in argv 1, 2, kot smo rekli, je samo 5.
Ima kdo kakšna vprašanja o večdimenzionalni nizi?
Vi počnete super.
Sladko.
>> Torej imamo drug program tukaj, in to je zadnja stvar, ki smo
storili sedaj.
Torej, želim vas, da napišete program, ki traja uporabnikovo polno ime, dva in samo
dve argumenti v ukazni vrstici, in končno, izpisal pozdrav
Uporabnik, ki vključuje njihovo ime.
Torej, zakaj ne vzameš tri ali štiri minut, da to stori, potem pa bomo šli
kot da kot skupina, in potem bomo zaviti?
>> In spet, tu, ko pravimo, da uporabnikov polno ime po opisu
tega problema, je treba ukaz linije argumenti, ne uporabljate dobili niz.
Ja, Marcus?
>> ŠTUDENT: Torej, ko ste rekli dva ukaza linija trditve je, da poleg
. / run, ali -
>> JASON Hirschhorna: Dobro vprašanje.
Naredi, vključno z. / Begu, tri argumenti v ukazni vrstici.
Ali vključili. / Osebno, v V tem primeru, ker je to
Ime te datoteke.
Torej bi argc so trije.
Ampak želim le dve argumente glede na program.
Jaz bi morala natančno to.
Poskrbel bom, da spremembe, preden sem post ti in jih pošljite na vaju.
>> ŠTUDENT: Kaj pa, če imajo srednje ime?
>> JASON Hirschhorna: Če imate sredini ime, ste od sreče.
Žal mi je.
Ali pa, če greš samo Shakira, ste tudi od sreče.
Ja?
>> ŠTUDENT: Torej, ko ljudje nimajo cs50.h, niso opredeljene argv
kot char zvezda argv?
Ali je to še vedno imenuje niza argv?
>> JASON Hirschhorna: Da.
Torej vrvico, spet smo masko čez kakšnih točno se tam dogaja.
To se dogaja, da je treba iz nje morda v sredo, ampak kmalu.
To je kot kolesi usposabljanja.
Saj v bistvu, to je ista stvar.
>> Tako da je lahko eno minuto na program to, potem pa bomo šli čez
je kot skupina, in nato kot sem rekel, zavil.
In mislim, da si še dodatno sladkarije, tako da bi vidva upajmo da
da, ali upoštevajte, da.
>> Se opravičujem, če ste še vedno piše, ampak želim, da se potopite v in smo
lahko konča skupaj.
Torej sem napisano # include cs50.h, # include stdio.h.
int main (void), kodrasti naramnicami, kodrasti naramnicami, v notranjosti tri vrstice
psevdokoda, da uporabnikovo ime in priimek, dve in samo dve v ukazni vrstici
Argumenti, izpisal pozdrav Uporabnik, ki vključuje njihovo ime.
>> Tako prvi, da uporabnikovo polno ime.
Kdo mi lahko pomaga, da uporabnikovo polno ime?
Kako naj naredim ta del?
Sta to, da je prvi del?
Bodite uporabnikovo polno ime.
No, za to eno ukazno vrstico Trditev, kaj naj napišem?
Kaj moram spremeniti zaradi Moja funkcija izjavo?
>> ŠTUDENT: Nočeš , da je nična več.
>> JASON Hirschhorna: Točno tako.
Ne želim, da je nična.
Kaj hočem biti?
>> ŠTUDENT: Int argc.
>> JASON Hirschhorna: Int argc.
>> ŠTUDENT: String argv.
>> JASON Hirschhorna: String argv.
>> ŠTUDENT: Konzola, nosilec.
>> JASON Hirschhorna: Konzola, nosilec.
Točno tako, in to je pravzaprav, kako bom dobil
uporabnikovo polno ime.
Ti boš dal noter.
Torej je, da je eden naredil.
Torej, zdaj želim dve in samo dve argumenti v ukazni vrstici.
Torej Noetu, kar je eden od načinov morem Preverjanje števila ukaz
linije argumenti imam?
>> Študent: Saj če izjavi.
>> JASON Hirschhorna: Če Izjava, točno.
Kaj hočem kot pogoj?
>> ŠTUDENT: Če argc večja od 3.
>> JASON Hirschhorna: Če argc večja od 3.
Če argc večja od 3, kaj naj storim?
>> ŠTUDENT: Nazaj 1.
>> JASON Hirschhorna: Nazaj 1.
Bo, da se zagotovi imam dve in le dve?
>> ŠTUDENT: Ne
Če je argc večja od 3 in manj kot 2.
>> JASON Hirschhorna: Če je argc večja od 3 do argc manj kot 2.
Kaj je eden od načinov, da lahko to napisati v samo eno vrstico ali brez uporabe, ki
in logični operator?
>> Študent: To ni enako 2.
>> JASON Hirschhorna: Če argc ni enako 2.
Točno tako.
Torej, če argc ni enaka 2, ki mi bo dal ta program,
osebno, ko sem prost, in da mi bo dal koliko
argumenti v ukazni vrstici?
Koliko bom preveriti?
>> Žal mi je.
Dovolite mi, da se preoblikuje.
Če argc = 2, koliko stvari si Uporabnik pisanje v linijo?
>> Študentu.
>> JASON Hirschhorna: Samo eden.
Torej, preden si imel, Noah.
Kaj mi pravzaprav morali dati tja?
>> Študent: To je enako 3.
>> JASON Hirschhorna: argc ni enako 3.
Želim enako 3, ker želim osebno plus druga dva.
Torej, če argc ni enak 3, vrnite 1.
Zakaj si rekel, da se vrnete 1?
>> ŠTUDENT: Ker je pomeni, da je narobe.
>> JASON Hirschhorna: To pomeni, da je narobe, in kaj naj bi to storili?
>> ŠTUDENT: Re-uren uporabnik.
>> JASON Hirschhorna: To se dogaja, da zaprete programa, tako da bo moral teči
še enkrat, ampak nimamo nič sem spet prosil za njih.
Nisem prosil za to.
Tako da je ravno prav.
Vrne 1 le zapre program.
Super.
>> In izpisal pozdrav uporabnika ki vključuje njihovo ime.
Kako lahko naredim to?
Anna?
>> ŠTUDENT: printf.
>> JASON Hirschhorna: printf.
>> ŠTUDENT: ("
>> JASON Hirschhorna: (
>> ŠTUDENT: "zdravo
>> JASON Hirschhorna: "zdravo
>> ŠTUDENT:% s
>> JASON Hirschhorna:% s
>> ŠTUDENT: / n
>> JASON Hirschhorna: / n
>> ŠTUDENT: "
>> JASON Hirschhorna: "
>> ŠTUDENT: argv
>> JASON Hirschhorna: Oprostite?
>> ŠTUDENT: argv
>> JASON Hirschhorna: argv
>> ŠTUDENT: Oglati oklepaji 1.
>> JASON Hirschhorna: Oglati oklepaji?
>> ŠTUDENT: 1.
>> JASON Hirschhorna: 1.
>> ŠTUDENT: In) podpičjem.
>> JASON Hirschhorna:) podpičjem.
Naj nam to delovalo.
Naredite osebno.
. / Osebno.
To odnehati.
Zakaj je nehal?
>> ŠTUDENT: Nisi dal nobenih argumentov.
>> JASON Hirschhorna: Nisem dal nobenih argumentov noter
Izgleda super.
Vidva je pribil.
Torej še enkrat, boste šli v argv in vi preverja na začetku argc.
Tisti, ki so dva pomembna stvari si zapomnite.
Torej, v naših zadnjih dveh minutah, preden smo pustite, da ne bomo prišli do pset dva, vendar
kot sem rekel, če želite, da ostanejo po 10 minut, jaz bi bil vesel, da gredo
več, z vidva z logiko teh problematičnih sklopov.
Veliko za kritje danes smo imeli tako da nisem priti do njih.
Na splošno mi je všeč, da vključuje da je na koncu.
Torej, če želite, da se držijo okrog, držijo okoli 10 minut.
To bomo storili.
>> Potem pa, kot sem omenil na začetku, pset nič in ena, bomo dobili, da
povratne informacije nazaj k tebi kot najkrajšem možnem času.
Cilj je, da se pset eno povratno informacijo, Komentarji del,
Pred dvema pset je posledica.
Torej, če ste naredili nekaj napak ali Slogovno bi stvari bolje,
boste imeli te podatke, tako da ne bo naredil iste stvari v pset dva.
In potem v prihodnosti, boste dobili vse vašega pset povratne informacije in komentarje
nazaj pred naslednjo zapade.
>> Končno, če bi lahko dal v drugo vtič za povratne informacije.
To je vaš prvi del.
To je bil moj prvi del poučevanje letos.
Pojdi tja.
Pisati stvari, dobre in slabe, in sem ga bo uporabil, da bi
oddelek bolje naslednjič.
In nazadnje, še enkrat, če potrebujete karkoli, povej mi.
Jaz sem bolj kot z veseljem pomagali fantje.
Če želite le sladkarije, sem bodo imeli več sladkarij.
Vesel sem, da bi ga na vas.
>> Ta se bo seveda neverjetno.
To je eden, če ne celo moj najljubši Seveda sem si vzel v mojem življenju,
in upam, da bo tako čudovito za vas.
Torej, želim narediti vse, kar je v moji moči da bi bilo super, da je za vas.
Bom poslal e-pošto, če ste V mojem oddelku oziroma Noe in
bo poskušal urnik z vsako od vidva tudi čas, da preverite v več
naslednjih nekaj tednih, tako da lahko dobim občutek, kaj je tvoj CS ozadje,
in to bo tudi pomagalo mi meri ti oddelki bolje ustrezala vašim potrebam.
Tako da je tisto, kar sem dobil vrstijo.
Spet se vidiva zunaj Če želite biti tam.
To je teden dvodelno.
Hvala fantje toliko.