>> JASON Hirschhorn: Vitajte CS50 sekcia, všetci.
Moje meno je Jason Hirschhorn.
Som veľa z vás TFs, ale veľa ľudia budú snáď sa k nám
on-line, predlžovací študentov alebo študenti Snaží sa hľadať cez časť, ak
minuli časť, ktorá sa týždeň alebo len dohnať, ak chcú
preskúmať nejaký materiál.
>> Takže podľa učebných osnov, ktoré všetky ze ste si prečítali, že?
Vidím veľa hlavy prikývne.
Sekcia vám poskytnú príležitosti preskúmať priebeh je
materiál vo viacerých intímne prostredie, rovnako ako ponoriť sa do
praktickej činnosti.
>> Takže to je v podstate to, čo sme bude robiť každý týždeň.
Chystáme sa prejsť, čo máme stanovená na najdôležitejšie
Témy v prednáške, a tie, pravdepodobne tiež najužitočnejšie a
s najväčšou pravdepodobnosťou prísť na problémové sady a kvízy, a vaše kódovanie
život mimo CS50.
Takže sme ísť do týchto témach, diskutovať o nich, ísť cez ne,
odpovedať na všetky otázky, ktoré ľudí majú, a potom budeme robiť veľa
problémy praxe kódovanie.
>> Vy všetci priniesli notebooky, čo je fantastické.
To je počítačová veda triedy.
Avšak, mnoho cvičení, ktoré robíme, nebudete potrebovať vaše notebooky.
Môžete to urobiť je na list papiera.
To je, ako budete to je na kvízy.
A skutočne, je to skvelý spôsob, ako Naozaj viem, že, ako to urobiť
niečo, ak nemáte Pozrite sa na 50 spoliehajú na alebo Vytvoriť spoliehať na, hovoriť
ste urobili nejaké chyby.
>> Takže ste vítaní kódu na zariadenie alebo run.cs50.net, ktorý je
Ďalším nástrojom, ktorý umožňuje kódovať on-line, ale tiež by som odporučiť, ak
ste to skúsil, za použitia listu papiera a snažia tieto praktiky
problémy na list papiera.
Vzhľadom k tomu znova, to je nakoniec čo budeš
požiadaný, aby na kvízy.
>> Takže začnime s našimi agenda pre dnešok.
Chystáme sa ísť cez niektoré normy pre Naše sekcie, potom budeme potápať
do poľa, funkcie a príkazového riadku argumenty, čo je to, čo vy
sa vzťahuje minulý týždeň v prednáške a potom pondelok a to, čo budete kryť
viac zajtra.
A nakoniec, budeme hovoriť o pset2.
Ak by som mohol dostať zdvihnutím ruky, ak som sa pozrel na problém nastaviť dva
špecifikácia.
Povieme, že každého.
Fantastic.
>> Preberieme základné problémové okruhy vo chvíli, ale keď si prečítate problém sadu
špecifikácia, to je všetko, čo musíte urobiť.
Ak budete čítať, že predtým, než ste prišiel do triedy a časť v utorok, budete
byť skvelý pozíciu.
Môžeme prejsť problém set, čo je to, čo budeme
k tomu na konci.
Chystáme sa prejsť logika, uistite sa, že
všetci sú na rovnakej stránke.
>> Chcem, aby si bol schopný opustiť utorok cítiť veľmi pohodlne s tým, čo
je potrebné urobiť pre tento týždeň problému set, a ak nie, budem šťastne
zostať po a pracovať s vami.
Ale to je jedna vec, ktorú musíte robiť, ale myslím, že by bolo naozaj šikovný,
len preto, aby si problém sadu Špecifikácia podľa tried v utorok,
ktoré znie ako Veľa z vás urobil.
>> Začnem s programom, každá trieda takže viete, kam ideme.
To je tiež užitočné pre ľudí sledujú online, pretože každá časť
je farebne odlíšené, takže ak chcete, aby sa späť a len pozerať 10 minút skôr
ako celé 90-minútové časti je stačí ísť na farebné kódované časti
a pozrieť sa na túto časť.
Tak som sa snažil rozohnať do peknej moduly, ktoré vám umožnia -
Ak sa chcete vrátiť a skontrolovať, alebo ostatní študenti, ktorí sú práve
sledovanie sekciu Recenzia -
nájsť konkrétnu vec, ktorú chcete venovať pozornosť
a dozvedieť sa viac o
Sladký.
>> Normy.
Som vedúci FOP na akademickej pôde.
Neviem, či niekto urobil FOP.
Vedeli niekto robiť FOP?
Jeden človek urobil FOP.
Dvaja ľudia robili FOP.
Skvelé.
Takže FOP je prvý rok Outdoor Orientačný program.
Berieme prvák do lesa a aby najkúzelnejšou skúseností
ich životy, že?
Jo.
Znie to akurát.
>> Tak som chcel začať naše prvé sekcie diskutovať o niektoré normy
pre túto triedu a náš vzťah pretože si myslím,
sú veľmi dôležité.
Po prvé a predovšetkým, ako tí z vás, ktorí sú moja časť dostali a
je v ňom popísaná e-mail, milujem to.
Toto je moja obľúbená časť roka.
Bola som tak nadšená.
Bol som tu dnes niekoľko hodín.
Som neopustil túto budovu okrem ísť jesť, pretože mám rád CS50 kategóriu I
rád učenie, milujem prácu s vami.
>> Jednou z mojich priorít, ak nie môj prioritou číslo jedna, a to nielen pre
Táto trieda zahŕňa ale môj druhý triedy a extracurriculars, je
podporovať ľudí, a pomôže vám chlapci, a v mojich silách, aby sa ubezpečil, že vám
chlapci majú skvelý, zábavný, produktívne, pútavé, vzrušujúce
skúsenosti v tejto triede.
To je to, čo som odhodlaný.
To je dôvod, prečo som rád, ako to urobiť.
To je moje číslo jedna vec, podporu, chlapci.
Ak máte nejaké otázky týkajúce sa prednášky, Problém set, časť,
život, aj keď so mnou chceš hovoriť o život, neváhajte osloviť.
>> Máš moje číslo mobilného telefónu, Máte môj e-mail
adresu, máte moje GChat.
Môžete ma kontaktovať na niektoré alebo všetky tí kedykoľvek, ale pravdepodobne nebude mať
reakciu, kedykoľvek.
Snažím sa dostať späť do 24 hodín.
Často to bude v rámci 20 minút alebo 24 minút.
Mala som povedal, že , Aby bolo rovnobežné.
Ale dostanete odpoveď celkom rýchlo.
>> Ak text mi hodinu pred Problém sada je vďaka, budem upokojiť
dole a robiť hlboké dychové cvičenia s vami, ale ak ste ešte nezačali,
budete pravdepodobne nebude až do konca, a Nemôžem pomoct tam
aj keď sa budem snažiť čo najlepšie.
Tak som sa robiť všetko Môžem vás podporiť.
Prosím, neváhajte osloviť, či je to v časti opäť v úradných hodinách
ak ste ma vidieť, alebo dokonca vonku.
Som rád, nastaviť čas na stretnutie a pôsobí prostredníctvom problémov
s alebo ísť cez materiál.
Takže to je číslo jedna, podpora.
Urobím všetko, čo som môžu, aby ho podporili.
>> Číslo dva, stretnutia v stredu.
Rovnako ako by som chcel byť, som nie je všemocný a všemohúci, alebo
vševedúci, takže neviem všetky Doba či to, čo robím, je stále
naprieč, v prípade, že spôsob, ako učím téma vám pomôže naučiť sa to, alebo ak si
sú zmätení na tému, ale nie zdvihnite ruku a opýtajte sa ma
alebo mi pošlite e-mail.
Alebo aj keď ste znovu, sú zmätení o niečom, čo na problém televízore.
Ak nechcete dostať ku mne, Nemôžem vedieť, že určite.
Budem robiť moje najlepšie skontrolovať na vy, uistite sa, že je všetko
to dobre, pokúste sa naučiť veci takým spôsobom, , Ktorý bude napomáhať k väčšine
vaše štýly učenia, ale ak existuje Môžem niečo urobiť, dajte mi vedieť.
>> Pozdĺž týchto liniek, ak chcete nejakú pomoc s problémom set, som viac
ako radi pomôžu sa problémov k
Chystáme sa urobiť veľa , Že k druhému
polovica tohto oddielu.
Ale ak ste nečítali problém sady zálohovanie a neboli sledoval prechádzku
vďaka a ešte sledoval, kraťasy a očakávajú, aby som vás naučí,
všetko, čo bolo nahrával on-line alebo ktoré môžete nájsť na CS50
štúdie, v skutočnosti to nie je fér mi alebo vaše ďalšie kolegov.
>> Takže, prosím, že som viac ako radi pomôžu vy, ale vy tu so mnou stretnúť v
prostredný.
Máme veľa zdrojov na vám k dispozícii CS50.
Som sa zmienil niektoré z nich.
Prosím, využiť z nich.
Ak ste zmätení, že som viac než šťastný ktoré vám pomôžu vysvetliť im
iný spôsob, ale nie je to fér, ak Študenti ukáže v úradných hodinách,
nezačali nič, a to je Vo štvrtok v noci a oni očakávajú
TF prejsť skrz každý vec za problém nastavený z dôvodu
V poludnie nasledujúceho dňa.
Zmysel?
Opäť, prosím, s nami stretnúť v stredu.
>> A konečne, vysoké očakávania.
Budem sa triedenie každý, kto je v mojom oddieli, alebo zaznamenávať vaše
základné problémové okruhy.
Ste sa vrátili problém nastaviť nulu alebo ešte jeden.
Sme ľúto.
Trvalo nám nejakú dobu, aby konečne usadiť sekcie a teraz
môžeme začať triedenie.
>> Dostanem späť k vám čo najskôr.
To sú niektoré z mojich advisees vonku.
Dostanem späť k vám čo najskôr.
A problém nastaviť dva, budeme na plánovať a začneme dostať je
pre vás veľmi rýchlo po dáte im palce
>> Keď sa váš problém nastaviť naspäť, budete dostanete skóre, ako viete z
čítanie osnovy - správnosť, dizajn, rozsah a štýl skóre.
Budete tiež získať pripomienky.
Komentáre sú dôležitejšie než skóre.
Myslím, že to je bezpečné hovoriť, že.
>> Výsledky sú len číslo od jednej do piatich.
Je ťažké si na tie.
Je to ťažké pre zlepšenie od tých.
Ale komentára sa poukázať na špecifické čo si urobil dobre, alebo oblasti
môžete zlepšiť a dať vám niektoré nápady pre budúcnosť alebo alternatívne
spôsoby, ako robiť veci.
>> Takže, prosím, prosím, prečítajte si prostredníctvom pripomienok.
Dal som veľa času na tieto pripomienky.
Prečítajte si skrze ne, a to nielen posunúť dole na dno
PDF, pozrite sa na svoje skóre, alebo on-line a nájsť svoje skóre, a potom ignorovať
komentáre.
To nie je, ako ste bude lepší.
To nie je, ako budete zvyšovať vaše skóre nakoniec rovnako
pri pohľade na skóre.
Pozrite sa prosím na týchto pripomienok.
>> A po línii vysokým očakávaním, znova, ako som povedal, si
možno skóroval z jedného až piatich rokov.
Dvojky, trojky, štvorky a sú Drvivá väčšina skóre
budete sa dostať.
Ty a päťky sú obaja veľmi zriedkavé.
Vždycky veci môžeme urobiť lepšie.
Kedykoľvek som kód programu, je tu vždy niečo, čo som
mohol urobiť lepšie.
>> Takže skôr než hovoriť dostanete päť stále na všetko a urobil
všetko perfektné, nemyslím si, že by z nás naozaj veria, že my - alebo
dúfajme, že nerobíme všetko perfektné po celú dobu.
Takže nemusíte mať strach, ak nedostal päťku.
Päť nie je mapovať na, štyri nie je mapovať na B, tri sa
nie je mapa je na C. To nie je ako skóre fungovať.
>> Rovnako ako David mnohokrát povedal, na Semester Koniec všetky vaše skóre a
Vstup odo mňa, vaša TF, zídu a určiť výslednú známku pre vás.
Ale znovu, to nie je päť, , Štyri, B, a tak ďalej.
Takže budem mať vysoké očakávania pre ľudí.
Budem očakávať dobrú problému súpravy a Idem dať
spätnú väzbu ako taký.
A nebude to znamenať, že si dostane horšiu známku.
Tie sú odstupňované z hľadiska váš postup z týždňa
nulu kurzu je koniec.
>> A napokon, pokiaľ ide o vysoko očakávania v triede, Milujem, keď
ľudí podieľať.
Chápem, niektorí ľudia cítia viac či menej pohodlné zúčastňuje.
Ostatní ľudia sa zúčastňujú nie je zdvihnutím ruky a
hovorí po celú dobu.
Ale my sme v tejto triede sa bude robí veľa malých problémov, veľa
mini otázok, a ešte niečo navyše väčšie problémy kódovanie.
Takže určite pracovať týchto cvičení sa keď sme si ich na počítači alebo na
list papiera.
>> Ale ja tiež dať nejaký čas, než niekedy niekto musí odpovedať na niektoré
z otázok, ktoré som sa opýtať.
Takže, pretože som vám nejaký čas na o tom premýšľať, pretože ideme
robiť veci niekedy partnermi, Budem očakávať, že všetci
sa zaoberá trochu.
A pre nedostatok lepšieho termínu, je bude pravdepodobne cold calling, ktoré
je miesto, kde každý bude mať šancu premýšľať o odpoveď, a potom
Zavolám na vás, a potom povieš odpoveď.
>> Neboj sa, alebo sa báť o to.
Ja som to urobil v minulosti, a zistili sme, že je oveľa úspešnejší,
prečítajte si tiež pedagogický výskum na to, aby určiť, či je, alebo nie je
dobrá taktika.
To je veľmi užitočné, najmä ak dať študentom čas na premýšľanie o
odpovede a nedávajú im len tak a povie to hneď bat.
Ale ak sa necítite pohodlne odpovede, som tiež celkom dobre
vycítil, že von, a my nebudeme ťa na mieste, najmä na
fotoaparát, aj keď žiadny z ste na kamere práve teraz.
>> Takže to sú tie normy mám.
Ešte jedna vec, v duchu splniť v stredu.
Budem vám chlapci veľa spätnej väzby.
Prosím, dajte mi spätnú väzbu, rovnako.
K dispozícii je internetové stránky, sayat.me/cs50.
Takže je to úprimná spätná väzba.
Ak chcete, aby to v priebehu časti, Mám e-mail vždy, keď sa to stane.
Dáme si prestávku v trochu, takže budem prezrieť spätnej väzby po tom.
Ak budete mať nejaké pripomienky, prosím, daj mi ho tam.
>> Dáte Ak mi spätnú väzbu o Q, to je nádherné, ale to je príručka
že si na konci.
Ale, že bude na konci semestra tak Nebudem môcť vziať nič z toho
spätná väzba a otočte ho do výučby vy lepšie.
Takže prosím, ak máte nejaké spätná väzba, daj mi to.
Milujem spätnú väzbu.
Späť na FOP, dostaneme spätnú väzbu po celú dobu.
>> Môžete mi dať plusy, dobré veci, delty, veci môžem zlepšiť na.
Môžete komentovať na mojom oblečení.
To nebude tak užitočné, ale ty si vitajte komentovať akékoľvek
všetko.
Prosím, prosím, daj mi spätnú väzbu.
Vážim si ho veľa, a to znamená pre mňa veľa.
>> Ešte jedna norma, legrace.
Budeme mať veľa zábavy.
Dúfajme, že v tomto kurze, budete majú veľa zábavy.
Budeme mať cukroví na časti.
Budeme mať hudbu.
Budeme snáď poznávanie sa ďalšie trochu dobre, takže chcem,
to byť zábavné, pútavé skúsenosti.
>> Viem, že niektorí z vás zaspal prednášky ste mali dneska,
takže dúfajme, že nebude je tomu teraz.
A ak je tomu teraz, len nie chrápať, pretože to by mohlo
sa zachytil na kameru.
Sladký.
Akékoľvek otázky, pripomienky alebo obavy než som sa ďalej o niečom máme
hovorili?
Skvelé.
>> Takže sme ísť do poľa ako prvý.
To je, ako si urobiť poľa.
Videli sme to predtým.
Máte dátový typ, máte meno, a potom máte veľkosť.
Práve tu vytvoriť dve polia.
Prvý z nich je pole znakov, a má 26 miest.
Druhá je pole skóre, a to má tri
priestory pre tri celé čísla.
Áno?
>> Študent: Sú všetky tieto snímky niekde k dispozícii pre nás?
>> JASON Hirschhorn: Veľká otázka.
Otázkou bolo, sú všetky Tieto snímky k dispozícii?
Áno.
Všetky tieto snímky budú k dispozícii, a do budúcna budem poslať e-mailom
ste predtým sekcie.
Ale dnes, pretože sa jedná o prvý týždeň sme mali oneskorený štart.
Takže zvyčajne, budete si tieto snímky, ale budú k dispozícii online a
Budem e-mail je pre vás hneď po triede.
Nejaké ďalšie otázky?
>> Takže znova, polia sú boxy pre nedostatok lepšie slovo, ktoré drží viac
prvky jedného typu dát, a oni sú vedľa seba v pamäti.
A tak opäť, je to, ako môžete robia dva druhy polí.
>> Takže potom, čo ste vykonali polia s že prvý riadok - int skóre, držiak
tri, zátvorka - môžete Chcete ju inicializovať.
Ak chcete dať nejaké hodnoty tam.
A to je, ako sa dať nejaké hodnoty tam, len výber Index a
písanie číslo.
Poďme nakresliť to na tabuľu.
Každý môže vidieť?
Každý môže vidieť.
Sladký.
>> Tak, že to bude môj Pole s názvom skóre.
Ako vidíte, je to veľkosť tri.
K dispozícii sú tri polia v tam.
Každý z nich sa zmestí to, čo Typ dátového typu?
>> STUDENT: Integer.
>> JASON Hirschhorn: číslo v tejto jednej.
Napísali sme int skóre a prvé slovo je dátový typ, ktorý sa bude
ísť do polí v tomto poli.
Tak som sa zmestí tri.
Prečo mám nula až tam na palube?
Prečo sa hovorí skóre nula rovná 1?
Pripomeňte mi svoje meno.
>> STUDENT: Kurt.
>> JASON Hirschhorn: Kurt.
>> Žiak: Áno.
>> JASON Hirschhorn: Prečo?
>> Žiak: Pretože prvý index je nula, začneme počítať od nuly.
>> JASON Hirschhorn: Takže začneme počítať od nuly.
To je presne to pravé.
To je mätúce časť a vôľa výlet ste sa, a to najmä, keď ste
snaží iterovat polí, ktoré budeme robiť trochu.
Začneme počítať od nuly.
Takže ak chcem odkázať na prvý box, nie je to jeden box.
Bohužiaľ, je to pole nulová.
Druhý z nich je jeden box, a v tomto prípad, tretí je box dva.
>> Čo poli tri?
Kde je box tri?
Alebo keď chcem robiť výsledky, držiak tri, zátvorka, čo je to?
Takže ste povedal, že znak null.
Akékoľvek iné myšlienky?
Čo je to hodnotenie držiak držiak tri?
>> STUDENT: Je to v skutočnosti neexistuje, pretože jenom definovaná ako skóre,
držiak tri.
>> JASON Hirschhorn: Takže hovoríte, že v skutočnosti neexistuje.
V niektorých prípadoch, kedy máme čo do činenia s struny, zvyčajne dáme null
znak na konci.
Dostaneme sa k tomu v druhom.
Ale v tomto prípade žiadna tretia okno tady.
Takže posledný pole v každom poli je zmenšenej 1.
Takže ak máme poľa veľkosti n, Prvé pole je na nule, posledný z nich je
v n mínus 1.
A v tomto prípade, že neexistuje.
Existuje niečo, čo tu pamäť, ale to nie je naša.
Nemáme vlastné.
Nemali sme na neho spýta.
Takže keď sa snažíme o prístup, ktorý my budeme urobiť trochu, budeme pravdepodobne bude
dostať do ťažkostí.
>> V tomto prípade som inicializácia moju dušu pole s tromi premennými.
Dávame jeden v kolónke nula, dva v jeden box, a tri v poli dvaja.
Má niekto nejaké otázky, o inicializáciu poľa?
>> Tak sme išli na to práve teraz.
Skóre, držiak tri, zátvorka, že neexistuje.
Sme nula indexované v informatike, takže začneme počítať od nuly.
Posledné políčko máme k dispozícii, je Tretia pole, ale je to len krabička
číslo dva.
>> Dole, to je alternatíva spôsob inicializácia poľa.
Takže namiesto vytvárania poľa na jednej linka, vyplňovanie prvého poľa, potom
druhý rámik, potom tretie okno, môžete to urobiť všetko v jednom riadku.
Takže v tomto riadku obe polia.
Tým sa vytvorí presne rovnaký ako pole to, čo sme vytvorili tu, ale
Len sa to v jednej línii.
>> Teraz sme vytvorili našu ponuku.
Spravidla raz vytvoriť maticu, môžete Chcete s tým niečo urobiť, či už
ktorý je vyplniť, alebo si veci z nej a vytlačiť ich na obrazovke.
V tomto prípade, ideme cez naše skóre pole, ktoré inicializovaný
prvý riadok tu v šedej farbe.
A potom sa na druhom riadku, začneme iterácie poľa.
Má niekto nejaké otázky týkajúce sa Štruktúra pre slučky?
>> Tak to je pre slučke.
Máme pôvodného stavu, a potom naša posledná stav a potom sme
iterácii, ja, každý slučky.
A v zložených zátvorkách v tomto pre slučky, čo sa stane, keby som spustiť
tento program?
Môže mi niekto povedať, čo by sme sa dostali?
[? Matu? ?]
>> Matu: Tlač všetkých bodov na každom riadku.
To by vytlačte každý gól na samostatnom riadku.
>> JASON Hirschhorn: Čo presne by to vytlačiť?
>> Žiak: To by jeden vytlačiť, potom dva, potom tri.
>> JASON Hirschhorn: Presne tak.
To by tlačiť jeden, potom dva, potom tri, každý na samostatných riadkoch, pretože
ideme cez pole a budete vidieť, že druhý, printf
vyhlásenie, skóre i
Takže v prvom kole cez naše pre slučky, aj nulová, čo znamená, že sme
získanie hodnoty na nulu -
ktoré, ak sa vrátime k Naše diagram, je -
a vyplnenie -
oh, to hovorí, že c
To by malo byť% d
Budem opraviť, že vo chvíli, keď Som ruku, ktorá sa na vás.
Ale my predstavuje celé číslo, takže to by mala byť% d tu, nie% c
Čo je% c pre?
>> STUDENT: Character.
>> JASON Hirschhorn: Znak, presne tak.
Čo je ten druhý?
Ak nechcete robiť,% d pre integer, čo iného môžete robiť?
>> Žiak:.
>> JASON Hirschhorn:% i, presne tak.
Takže nejaké otázky ohľadom iterácie cez pole?
Takže čo sa stane, keď to urobíme?
Namiesto toho, i je menšia než tri, my aj menej
než alebo rovný trom.
Čo sa stane, keď tento kód spustiť?
Áno, Annie?
>> STUDENT: Chystajú sa vytlačiť divné veci na štvrtom riadku.
>> JASON Hirschhorn: Takže ste povedal, je bude tlačiť divný veci na
štvrtý riadok?
Má niekto odpoveď na jej otázku?
Takže je pravdepodobné, že ak sa dostaneme do -
tak na štvrtom bicykli cez náš pre slučky, rovnako ako ste si mysleli, Annie,
to bude skóre držiak tri, ktoré už sme zistili, nie je
existujú, a budeme sa snažiť a prístup, aby ju vytlačiť
von, použite ju nejakým spôsobom.
Takže počítač bude pravdepodobne hnevať sa na nás.
Máš úplnú pravdu.
>> To by mohlo ukončiť program úplne.
To by mohlo vytlačiť niečo naozaj divné.
Nemôžete povedať s istotou.
Kurzy sú to nejspíš hnevať na vy a len prestať hneď.
>> Ale to je častý omyl, budete musieť , Kde ste len kúsok od jedného na
koniec, a to je chyba, ktorá bude mor po celú dobu svojho kódovania.
Jeden spôsob, ako by som chcel urobiť, je len na tabule, prejsť každej iterácii
zo slučky na ruky alebo na papieri vidieť čo sa deje, a potom
všeobecne si uvedomiť, oh počkať, ja by som nemal šli do nižšej alebo
rovný trom.
Mal som sa zastavil pri dvoch, čo je čo sa stane, keď sa váš stav je menej
ako tri.
Akékoľvek otázky tak ďaleko?
Sladký.
>> Takže všetci máte váš počítač otvorený.
Chystáme sa dať dve až tri minút napísať program, ktorý
vytvorí pole s celými číslami jedna cez päť a potom vytlačí každý
číslo na nový riadok.
A ak máte nejaké otázky, zdvihnite ruku.
Som rád, že prísť.
Ako som povedal, poďme si vziať tri minút to napísať.
Sú všetci v poriadku, ak pôjdem do nové okno a zatvorte to?
>> Ospravedlňujem sa, či ste nemali šancu až do konca, ale budeme to robiť
spolu práve teraz.
Takže na obrazovke, som # include cs50.h, # include stdio.h.
Môže mi niekto povedať, čo tieto dva riadky robiť?
Michael?
>> STUDENT: Zahŕňajú knižnice že CS50 urobil a že má Steve
uložené pre vás na použitie na aby váš život jednoduchší.
>> JASON Hirschhorn: Takže ste povedal, že patrí knižnice, jednu CS50
urobil, cs50.h, a ten, ktorý je len štandard, je dodávaný s
Balíček C, stdio.h.
Čo tým myslíš patrí knižnice, aj keď?
Môžete byť trochu konkrétnejší?
>> Žiak: To je to tak, že môžete používať niektoré kódové slová majú
fungovať stáť, bez toho aby museli ísť a aby funkcia c sami.
>> JASON Hirschhorn: Dokážeš mi dať príklad?
>> STUDENT: Ako printf ich môžete použiť.
>> JASON Hirschhorn: printf.
Takže ste povedal printf je jedným z tých, funkcie, kde skôr než
napísať printf na vlastnú päsť, je printf súčasťou skutočne stdio.h, takže
stačí použiť, a predpokladajú, že to bude fungovať.
V stdio.h, ak ste otvoril tento súbor, by zahŕňala ako printf
práca, všetok kód pre printf?
Prečo sa trasie hlavou?
>> STUDENT: Vzhľadom k tomu, hlavičkový súbor len obsahuje deklaráciu funkcie.
>> JASON Hirschhorn: Presne tak.
Hlavičkový súbor obsahuje len deklarácie funkcie.
Takže v podstate, pri kompilácii to, klikol na Make gróf, ktorý budeme robiť v
Druhá, kompilátor vie, že ak použiť printf, printf existuje.
Bude to byť definovaný niekde inde.
To nie je pre vás problém používať.
A potom o niečo neskôr, bude obsahovať jedničiek a núl, ktoré skutočne obsahujú
printf je vykonávanie a zlúčiť so svojím kódom.
Ako sa uistite sa, že obsahuje jedničiek a núl, povedzme, sa reťazec?
>> STUDENT: Získajte reťazec je cs50.h.
>> JASON Hirschhorn: Správne.
Tak, že sa hovorí, že existuje reťazec, deklarácie funkcie.
Ale potom jedničiek a núl, binárne súbor, ktorý v skutočnosti obsahuje
realizácia get string?
Ako sa uistiť, že ide s programom?
>> STUDENT: Pass linker v argument príkazového riadka.
>> JASON Hirschhorn: Pass linker na argument príkazového riadku.
Ako to robíte, že?
>> Žiak: To je-l riadok v rinčaním
>> JASON Hirschhorn: Presne tak.
Hovoríte-l CS50, že jo?
To zahŕňa jedničiek a núl.
>> Žiak: Ale Uistite sa že pre vás, nie?
>> JASON Hirschhorn: Presne tak.
Uistite sa, že pre vás, ale nakoniec, nebudete mať Make, alebo
budete musieť robiť Urobiť na vlastnú päsť, tak to je
dobrá vec, mať na pamäti.
Ak sa chystáte použiť jeden z týchto ďalšie knižnice, a to nielen máte
písať # include a potom knižnica.
Tiež je potrebné prepojiť ju dovnútra
A tieto dve veci sú odlišné. L-CS50 je odlišný
ako # include cs50.h.
>> Potom máme int main void zložené zátvorky, a teraz ideme do kódu
vnútri hlavnej.
Prvý riadok Mám tu je komentár , Ktorý hovorí, vytvoriť pole
s ints jedna až päť.
Čo je dobré slovo popisovať to, čo som majú teraz na obrazovke, len
komentáre vnútri hlavnej?
Čo hovoríme, že?
>> STUDENT: Pseudocode.
>> JASON Hirschhorn: Pseudocode.
Ďakujem, Jeffrey.
To je presne to pravé.
Pseudokódu.
Už ste videli pseudocode predtým?
Zdvihnite ruku, ak ste použili pseudokódu pred problém nastaviť jeden.
Asi polovica z vás.
>> Ja by som Veľmi odporúčam používať pseudokódu rozobrať problémy do
menšie, ľahko odhryznúť kúsky.
Tiež, ak budete robiť pseudocode, vy mať svoje pripomienky už z veľkej časti
postavená v roku, takže nemusíte vrátiť a pokúsiť sa zistiť,
čo ste robili.
Takže môže mi niekto dať túto prvú líniu vytvoriť pole s jedným ints
až päť?
Vy?
>> STUDENT: Int a potom môžete volať bez ohľadu na počet a potom námestí
držiak päť.
>> JASON Hirschhorn: Takže int čísla, hranatá zátvorka päť.
>> STUDENT: Rovná a potom zložené zátvorky.
>> JASON Hirschhorn: Rovná, Zložené zátvorky.
>> STUDENT: Jeden, dva, tri, štyri.
>> JASON Hirschhorn: Jeden, dva, tri, štyri, päť.
>> Žiak: A potom zložené zátvorky a potom bodkočiarka.
>> JASON Hirschhorn: a kučeravé traky a bodkočiarkou.
Výborný.
Vytlačte si každý int na nový riadok.
Môže niekto dať mi ten kód, prosím?
[? Matu? ?]
Len do toho.
>> STUDENT: Pre (
>> JASON Hirschhorn: Pro (
>> STUDENT: int i = 0
>> JASON Hirschhorn: int i = 0
>> STUDENT: bodkočiarka aj menej ako päť.
>> JASON Hirschhorn: bodkočiarku, aj menej ako päť.
>> STUDENT: bodkočiarka, i + +.
>> JASON Hirschhorn: bodkočiarku, i + +.
>> STUDENT: Uzavreté zátvorky, potom otvorte rovnátka.
>> JASON Hirschhorn: Uzavreté zátvorky a dve traky.
Vnútri zátvoriek?
>> Žiak: A potom printf "% d / n"
>> JASON Hirschhorn: Ospravedlňujeme sa, ale vydrž.
Printf "% d / n, uzavreté citácie.
>> Žiak: A potom uzavretý citujem, čiarka, počítať, aj držiak.
>> JASON Hirschhorn: Comma, počítať, aj držiak.
>> STUDENT: Je nám ľúto, čísla aj konzoly.
>> JASON Hirschhorn: Čísla, držiak som.
>> STUDENT: Ospravedlňujem sa.
A potom zavrel zátvorky, bodkočiarka.
>> JASON Hirschhorn: Zatvorené zátvorky, bodkočiarky.
Chystám sa okrem toho, že.
Chystáme sa robiť počítať.
A ako mám spustiť počítať?
>> STUDENT: Spätné lomítko.
>> STUDENT: Dot lomítko -
>> JASON Hirschhorn:. / Spočítať, presne tak.
Ďakujem. . / Počítať.
Jedna, dve, tri, štyri, päť na nových tratiach.
Vyzerá to, že to fungovalo.
Áno, Noah?
>> STUDENT: Môžete si tiež urobiť menšie alebo , Rovná sa štyrom, ako aj je menšia než
alebo rovná sa štyrom?
Je nejaká výhoda robí menej ako päť, alebo len iný spôsob
písanie?
>> JASON Hirschhorn: Takže otázka je, mohol urobiť aj je menší ako alebo
, Rovná sa štyrom miesto i je menšia než päť.
To by fungovalo rovnako?
>> STUDENT: Malo by.
>> JASON Hirschhorn: Áno.
Úplne by to fungovať rovnako.
Štylisticky je to zvyčajne menej ako a uvidíte v druhom, kedy
my reťazca, môžete použiť niečo volal strlen, ktoré ste videli
skôr, aby sa dĺžka z reťazca.
A nemôžete robiť menej, než alebo rovné strlen.
Dalo by sa urobiť menšie alebo rovnať strlen mínus jedna.
Takže je to krajšie robiť menej než strlen.
Áno?
>> STUDENT: A skutočná kvízy, vykonajte musíme predložiť pripomienky k našej
Kód rovnako?
>> JASON Hirschhorn: Otázka bol v kvízy, máte
musieť predložiť pripomienky?
Takže budeme hovoriť o kvízy, keď oni prídu, ale všeobecne, dobrú
pravidlom je, keď ste písanie kódu, predložiť pripomienky.
Ak máte kód zle, ale komentár pravdu, môžete získať niektoré
úver aj odo mňa, či som triedenie Ste na problém súboru alebo na kvíz.
Takže komentáre sú vždy vhodné zabezpečiť.
Sladký.
Počítajte.
Vynikajúca práca.
Poďme ďalej.
>> Reťazce.
Reťazce.
Videli sme to predtým na prednáške.
To mi vyrazil dych, keď som Prvý to zistila.
To asi nemal vyhodiť kohokoľvek myseľ tu, ale to je v poriadku.
>> Reťazce sú polia znakov a oni skončí s, ako ste povedal,
null terminátor, ktorý je to / 0 charakteru.
Ak budeme kresliť reťazec na doska, budeme kresliť to sem.
Tak ako dlho je tento reťazec?
Prepáčte.
Ako dlho je tento reťazec?
>> STUDENT: [nepočuteľné].
>> JASON Hirschhorn: Štyri?
Prečo je to štyri?
>> STUDENT: Vzhľadom k tomu, piate miesto je pre nulový znak.
>> JASON Hirschhorn: Takže piate miesto je pre nulový znak.
Takže ak by som mal bežať na strlen to by sa mi štyri.
Opravte.
A pole, aj keď, ak by som mal inicializovať pole, koľko miesta
budem musieť žiadať?
>> STUDENT: Five.
>> JASON Hirschhorn: Five.
Chcel by som sa spýtať na päť, ale ja dal len štyri znaky tu
pretože musím dať, že null zakončenie na konci.
Takže budeme písať "Ohai" a dal null zakončenie v konci.
Povieme, že je to reťazec s to sa rovná.
Čo je to držiak nula?
Držiak je nula, Annie?
>> STUDENT: O.
>> JASON Hirschhorn: Ó, presne tak. je držiak jeden?
je držiak päť?
>> STUDENT: neexistuje.
>> JASON Hirschhorn: neexistuje.
Presne tak.
Skvelý.
Máte otázky k pochopeniu reťazca ako pole postáv?
OK, potom.
Ešte jeden program pre vás.
Napíšte program, ktorý vyzve užívateľa pre reťazec a potom vytlačí každý
znak na nový riadok.
Takže poďme sa tri minúty písať tento program, a potom budeme kódovať ho
ako skupina.
>> Prepáčte.
Vedeli ste potrebné vidieť?
>> STUDENT: Nie
>> JASON Hirschhorn: OK.
Poďme ešte jednu minútu kód tohto alebo aspoň začať na ňom.
>> Takže môžete pokračovať v práci, ale budem začať chodiť cez neho.
Tak ako predtým, mám na obrazovke # Include cs50.h, # include stdio.h.
int main neplatné.
Vnútri zložených zátvoriek Hlavné je, mám dve pripomienky, pseudokód.
Jedným z nich je požiadať o reťazec od užívateľa.
Druhá je vytlačiť každý znak na nový riadok.
Takže Anna, môžete mi dať opýtať pre reťazec od používateľa?
>> STUDENT: printf.
>> JASON Hirschhorn: printf?
>> Žiak: Áno.
(
>> JASON Hirschhorn: (
>> Študent: "Daj mi reťazec.
>> JASON Hirschhorn: "dať me str - pardon -
string.
>> STUDENT: / n ") bodkočiarka.
>> JASON Hirschhorn: Koniec reťazec, uzavreté zátvorky, bodkočiarky.
>> Žiak: Áno.
A potom ďalší riadok, reťazec s = dostať reťazec.
>> JASON Hirschhorn: String s = dostať reťazec.
>> Žiak: Áno.
A potom ()
>> JASON Hirschhorn: ()
>> STUDENT: bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
Fantastic.
Takže budem sa dostať reťazec a Idem uložiť v čom?
Čo je to premenná s názvom ktorý ste vytvorili?
>> STUDENT: String s
>> JASON Hirschhorn: Premenná sa nazýva s.
Je to typ string.
Presne tak.
Ďalšia vec, ktorú chceme, je vytlačiť každá postava na nový riadok.
Kto mi môže dať tento kód?
[Nepočuteľný]?
Môžeš mi to dať?
>> STUDENT: Jasne.
>> JASON Hirschhorn: Poďme na to.
A ospravedlňujem sa.
Nemám rád opakovať to, čo hovoríte, pretože ste ako na to, ale myslím,
musí opakovať tak, že keď sa prepísať to, môžu sa všetky
text sa na prepisov.
Takže si môžete len držať hovoriť.
Ja mám bohužiaľ to povedať nad vami.
Je mi ľúto, ale -
>> Študent: To je v poriadku.
Pre int i = 0
>> JASON Hirschhorn: Pre int i = 0
>> Žiak: Myslím, menej ako -
>> JASON Hirschhorn: bodkočiarku.
>> STUDENT: Pred tým môžeme dať premenné tak dostanete pravý dĺžky názvu?
>> JASON Hirschhorn: Oh, to nie chcete umiestniť bodkočiarku?
OK.
Tak čo chceš robiť po nulu?
>> STUDENT: Chcem sa dostať Dĺžka reťazca a s
nastaviť, aby sa do premennej?
>> JASON Hirschhorn: OK, tak ako to mám urobiť, že?
>> Žiak: Takže vy int length =
>> JASON Hirschhorn: int length =
>> STUDENT: S-T-R-L-E-N.
>> JASON Hirschhorn: S-T-R-L-E-N -
>> STUDENT: S.
Konzoly.
>> JASON Hirschhorn: (y).
>> Žiak: A potom myslím, že budete musieť dať bodkočiarku medzi dvoma ints.
>> JASON Hirschhorn: bodkočiarku Po nastavení nuly?
>> STUDENT: Jo.
Potom dal bodkočiarka po tom, a hovoríte, aj menšie ako dĺžka.
aj menšie ako dĺžka, ktorá je variabilná.
>> Žiak: A potom bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
>> STUDENT: i + +.
>> JASON Hirschhorn: i + +.
Tu je náš cyklu for.
OK, vnútri slučky for.
>> Žiak: A potom to printf.
>> JASON Hirschhorn: printf.
>> STUDENT: Zátvorky.
>> JASON Hirschhorn: zátvorky, úvodzovky.
>> STUDENT: Zátvorky, citácie,% c / n
>> JASON Hirschhorn:% c, OK.
>> STUDENT: / n
>> JASON Hirschhorn: / n
>> STUDENT: Uzavreté citácie.
>> JASON Hirschhorn: Uzavreté citácie.
>> STUDENT: Comma.
>> JASON Hirschhorn: Comma.
>> STUDENT: S.
>> JASON Hirschhorn: S.
>> STUDENT: Konzola i
>> JASON Hirschhorn: Konzola i
>> Žiak: A zavrel zátvorky.
>> JASON Hirschhorn: Uzavreté zátvorky.
>> Žiak: A potom bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
Fantastic.
Takže poďme zachrániť toto.
Urobiť kúzlo.
Ach jo.
Mám pár chýb.
Prvá chyba na riadku 11, hovorí, očakáva, že výraz, a to dáva
me chyba, že druhý int, tam je chyba.
Existuje nejaká chyba asi tam.
Vie niekto, čo to je chyba?
Kurt?
>> Žiak: Myslím, že to má byť čiarka a nie bodkočiarka.
>> JASON Hirschhorn: OK, čiarka miesto bodkočiarkou.
Tak je to, že všetko, čo je potrebné opraviť?
>> STUDENT: Nie
>> JASON Hirschhorn: Čo iné potrebujeme opraviť?
>> STUDENT: Musíme zahrnúť string.h.
>> JASON Hirschhorn: Zahrnúť string.h.
Kam musím patrí, že?
>> STUDENT: Rovnaké miesto máte, vrátane ďalšie veci, že jo
po zahŕňajú stdio.h.
>> JASON Hirschhorn: Uvidíme, či to beží prvý, pretože všeobecne sa mi páči
opraviť jednu vec a až potom spustiť to, a potom zistiť chyby, ktoré dostávame.
Takže ideme na vymazanie terminálu s riadiacim n, poďme to urobiť kúzlo.
Takže ďalšia chyba na riadku 11.
Predpokladaný bodkočiarka.
A ja som stále dostáva chyby na tomto riadku.
Tak to mi nedala chybové hlásenie, že ho nechápe, čo je strlen,
ale je to, že mi chyby na tomto linka, takže čo iné je zle?
Označiť?
Marcus.
>> STUDENT: Máte na odstránenie Druhý int vyhlásenie?
>> JASON Hirschhorn: Odstrániť druhý int.
Skúsme to.
Teraz vymazanie terminálu.
Urobiť kúzlo.
Chyba.
Implicitne vyhlásil knižnice Funkcia strlen.
Takže teraz vidím, že chybu.
Čo treba zahrnúť?
>> STUDENT: string.h.
>> JASON Hirschhorn: Include string.h, Urobíme # include string.h v hornej
na obrazovke.
Zachráňme, aby kúzlo.
Teraz zostavujú.
Takže znova, čo sme potrebovali pamätať linku 12 v našom pre slučku
sme jeho zriadenie, int i = 0, dĺžka = strlen (s).
>> To je fantastický stratégie.
Štýl je to skvelé, Konštrukcia je to skvelé.
Môžeme ísť do Z týchto dôvodov neskôr, ale takto stačí zavolať
strlen raz namiesto každý spustenie priechodu slučkou.
Avšak, budete musieť použiť čiarku tam a nemusíte int znova.
Ak ste vyhlásil ako tých ukazovatele spolu,
Nemusíte int znova.
A potom, ak budete používať strlen, čo je ďalšia knižnica
Funkcia nie je zahrnutá do stdio.h alebo cs50.h, aby
nezabudnite zahrnúť string.h.
Kurt?
>> Žiak: Takže ak nepotrebujete povedať, aký typ dĺžka, to robí
neznamená, že musí byť int?
Tie nemohol mať dva rôzne Typy tam?
>> JASON Hirschhorn: Takže ste mohli majú dva rôzne typy.
Dĺžka je int tu, hoci.
Dĺžka je int, pretože je to čiarka a potom to isté.
>> Žiak: Takže to predpokladá, že to bude byť rovnaký ako prvý?
>> JASON Hirschhorn: Presne tak.
Nebudeme robiť teraz, ale môže obsahovať dve premenné na
rovnakom riadku pomocou jedného dátového typu.
Takže int x, y by vytvoriť dve premenné.
Takže int x, y, ak urobíme to, že dáva me nepoužité premenné x a y, pretože
nebudeme používať.
Takže uvedenie neplatné, než je len fantázie trik, ak nechcete použiť
niečo použiť.
Ale ako vidíte, ja stvorím xay na rovnakom riadku s čiarkou.
Je to vytvorenie dvoch celých čísel práve tam.
Takže áno, úplne možné vytvoriť dve veci na rovnakom riadku
oddelené čiarkou.
Zbavme sa tých, hoci.
>> Takže to kúzlo.
Ďakujem vám chalani pre kódovanie to pre nás.
Poďme urobiť to ešte raz, spustite ho.
Daj mi reťazec.
[Nepočuteľné], si najviac.
Čo je reťazec?
>> STUDENT: Dobrý deň.
>> JASON Hirschhorn: Dobrý deň.
H-E-L-L-O, kde každý znak v jednom riadku.
Vyzerá skvele.
Poďme znova spustite.
Vždy ísť na kontrolu pre rohové a prípady.
Čo je dobré roh vec skontrolovať?
>> STUDENT: číslo?
>> JASON Hirschhorn: číslo.
Tak som si dal v 1, a to vytlačí 1.
Nie je to pýta na listy, takže Vyzerá to, že čísla prácu.
Dobrý roh puzdro pre kontrolu.
Aký je ďalší dobrý roh puzdro pre kontrolu?
>> STUDENT: prázdny reťazec.
>> JASON Hirschhorn: Hm?
>> STUDENT: Rovnako ako prázdny reťazec.
>> JASON Hirschhorn: Prázdny reťazec.
Takže poďme sa dať nič.
A čo sa bude tlačiť?
>> STUDENT: Nič.
>> JASON Hirschhorn: Nic.
Vyzerá to, že to funguje.
Môžete skúsiť viac rohových prípady, ale všeobecne čísla, odlišné údaje
skvelé vyskúšať, rovnako nič nie je.
Nič, nula, negatívy sú vždy veľké veci vyskúšať a veci, ktoré
by mal test, čo určite budeme testovať Skontrolujte pre a 50 sa bude testovať.
Máte nejaké otázky ohľadom spell.c?
>> OK, poďme vrátime.
Mám ešte jeden program, pre vy písať.
Hovorí sa students.c.
Ide o program, ktorý požiada užívateľa o päť mien, potom sa náhodne vyberie
a vytlačí jednu z mien.
Tento program je trochu viac zapojiť, ako posledné dva sme už písali,
tak prečo sme sa päť minút, kód to individuálne, a potom budeme
kód je spoločne.
>> Tento program tiež zahŕňa niektoré veci nemusí nevideli, takže ak
Máte otázku ohľadom, ako sa To urobím, zdvihnite ruku.
Prídem a bod, ktorý v správnom smere.
Ale my sme tiež robí to, pretože to bude dobrý spôsob, ako predstaviť niektoré
témy, ktoré sú zradné.
>> Tak to funguje, nie?
>> STUDENT: Jo.
>> JASON Hirschhorn: Keď zapnete v Problém set, je tu mnoho spôsobov, ako
to, ale niektoré sú elegantný než ostatné.
Poďme sa ponoriť dovnútra
# Include cs50.h.
# Include stdio.h.
int main void zložené zátvorky.
Vnútri zložených zátvoriek, Mám dve pripomienky.
Prvý z nich je, spýtajte sa Užívateľ päť mien.
Druhý je, že náhodne vyberie a vytlačiť jeden z názvov.
Takže poďme urobiť ten prvý, spýtajte sa užívateľ pre päť mien.
Kto požiadal užívateľa na päť mien a môžete mi povedať, ako to urobiť?
Len dvaja ľudia urobili prvú časť.
Traja ľudia urobili prvú časť.
Štyri, päť.
Tom, ako to robíte?
>> STUDENT: Tie by deklarovať reťazcovú a potom meno, držiak päť.
>> JASON Hirschhorn: String meno držiak päť.
Takže čo je to linka robí, Názov reťazca držiak päť?
>> STUDENT: Tie by deklarovať Pole reťazcov.
>> JASON Hirschhorn: Toto je Pole reťazcov.
Koľko reťazca budú aby sa sem zmestil?
>> STUDENT: Five.
>> JASON Hirschhorn: Five.
Výborný.
Budeme hovoriť mená, pretože budeme mať viac ty.
OK, ďalšie?
>> Žiak: A potom ste majú pre sláčiky -
>> JASON Hirschhorn: pre sláčiky.
>> Študent: - pre i = 0.
>> JASON Hirschhorn: for (int i = 0.
>> STUDENT: bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
>> Žiak: Myslím, menej ako päť.
>> JASON Hirschhorn: Aj nižší ako päť.
>> STUDENT: bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
>> STUDENT: i + +.
>> JASON Hirschhorn: i + +.
>> Žiak: A zavrel zátvorky.
>> JASON Hirschhorn: Uzavreté zátvorky, a potom niektoré zložené zátvorky.
Vnútri zložených zátvoriek?
>> Žiak: A potom printf.
>> JASON Hirschhorn: printf.
>> STUDENT: Otvorené zátvorky name% d
>> JASON Hirschhorn: Je nám ľúto?
>> STUDENT: Meno.
>> JASON Hirschhorn: Meno.
>> Žiak: A potom medzeru a potom% d
>> JASON Hirschhorn: Meno, priestor,% d
>> STUDENT: A / n, a potom zavrel.
>> JASON Hirschhorn: Takže názov, miesto, % D / n, uzavreté zátvorky.
>> STUDENT: Čiarka, i + 1.
Ospravedlňujem sa.
Uzavretý citácie a potom čiarka, i +1.
>> JASON Hirschhorn: Zatvorené Ponuka, čiarka, i +1.
>> Žiak: Áno.
A potom ďalší riadok -
>> JASON Hirschhorn: i + 1.
>> Žiak: Áno.
A potom ďalšiu snímku sú mená aj držiak.
>> JASON Hirschhorn: Ďalší riadok sú mená aj držiak.
>> STUDENT: = dostať reťazec.
>> JASON Hirschhorn: = Get -
kapitálu G-E-T -
string.
Jejda, ospravedlňujem sa.
>> STUDENT: Otvorené, uzatvorené zátvorky a potom -
>> JASON Hirschhorn: Otvorená, uzavretá zátvorka.
>> STUDENT: bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
OK, takže inicializáciu poľa reťazca, mená, a potom prejsť
pre sláčiky, a päťkrát vytlačte niektoré výzvu pre užívateľa a uložiť
päť reťazca.
Má niekto nejaký úpravy to?
Tom, myslím, že každý s vami súhlasí.
Vyzerá to celkom dobre.
OK.
Prečo si to urobila aj +1, aj keď?
>> Žiak: Myslím, že nemá byť, ale aj +1 tak, že je
meno, kto vymenovali päť.
V opačnom prípade by to bolo meno nula pomenovať štyri.
>> JASON Hirschhorn: Tak ste aj 1 pretože inak by sa
vytlačiť nula až štyri, pretože to, ako počítače premýšľať, ale ľudia
nie je naozaj čítať takhle.
To je ďalšia vec, s ktorými sa stretnete.
Niekedy, keď tlačíte niečo pre užívateľov, budete chcieť, aby sa to
trochu krajšie, a tým i +1 je v tomto prípade
spôsob, ako to krajšie.
>> Vidím tiež päť dvakrát, názov reťazca je päť, aj je menšia než päť.
Viem, kde máš päť.
Máš to odo mňa rozprávanie si päť mien.
Ale ak by sme chceli, aby kód trochu robustnejšie, jedna vec, ktorú by sme
môže urobiť, je tu, mimo int, by sme mohli urobiť niečo také,
# Define, a my sme mohli robiť mien 5.
>> Takže v podstate tam, kde píšem kapitál N, kapitál, kapitál M, kapitál E,
S mestom, že reťazec, nahradí že s 5 v kóde.
Alebo si jednoducho hovoria - my budeme len zavolať, že číslo.
Takže som definovať všetky čiapky ČÍSLO byť 5.
>> Takže teraz tam, kde som číslo 5, som ho nahradiť všetky ČÍSLO čiapky.
A teraz, keď chcem zmeniť číslo mien, všetko, čo potrebujete urobiť, je
tento jeden riadok, riadok štyri, kde mám # Define číslo 5, zmeniť na 10,
alebo zmeniť na 4.
Keď kód dostane dlhšie, nie ste bude pamätať všetky miesta, ktoré
dať, koľko mien ste chceli, a Aby pre vás nenechajte ujsť jeden, je to
dobrý spôsob, ako to urobiť, nájsť niečo, hore hore a potom stačí použiť túto frázu
všade v celom svojom kóde.
Marcus?
>> STUDENT: Je to štylisticky prednostné než globálne definovať
konštantný n?
>> JASON Hirschhorn: Takže je to, že štylisticky radšej než na celom svete
stanovenie konštantný n?
Takže hovoríš, že by áno, int číslo = 5?
>> STUDENT: Majú spoluhlásky v C, alebo nie?
>> JASON Hirschhorn: Alebo const - v sebe rovní.
Takže hovoríš, že práve globálna premenná?
>> STUDENT: Jo.
>> JASON Hirschhorn: Takže štylisticky nie je nevyhnutne jediný správny
odpovedať, ale obaja z nich sú lepšie než len hádzanie takýchto náhodných
čísel na celom svojom kóde.
Hovoríme im magická čísla.
Keď sa pozriem na váš kód, alebo keď niekto číta cez to, že
Nechcem práve tieto náhodných čísel ktoré nemajú zmysel.
Aj číslo 26, ktorý je všeobecne počet písmen v abecede,
je lepšie definovať abecedy do hornej a uložiť číslo 26 v tomto reťazci
ak to dáva zmysel.
>> Alebo na problém nastaviť jeden, skôr ako - znova, nehovorili sme o tom na
čas, ale namiesto toho len hádzanie v 25 alebo 10 všade, môžete
uložiť číslo 25 ako štvrti a 10 ako DIME, a to uľahčuje
kto číta cez váš kód pochopiť, prečo ste si vybrali tento počet.
A tiež pre vás, ak ste niekedy chceli aktualizovať kód, ale je to trochu
viac robustný.
Jo?
>> STUDENT: Tento kód je tiež bude k dispozícii pre nás po?
>> JASON Hirschhorn: Všetky z týchto kódov čo sme napísali spolu so
bude zaslané chlapci a sú k dispozícii.
Áno.
Takže pýtať užívateľa na päť mien.
Náhodne vyberte a vytlačte jeden z názvov.
Kto to urobil čiaru?
Toto je najzložitejšie stávke.
Je nám ľúto, Tom.
Vy ste naozaj dobrú prácu, ale to je trochu zložitejšie.
Marcus, choďte do toho.
>> Žiak: No v prvom rade, budete treba zahrnúť stdlib.h a time.h.
>> JASON Hirschhorn: Takže hovoríš, že na hore, zahŕňa dve ďalšie knižnice.
Chceš, aby som patrí S-T-D-L-I-B bod H, Štandardná knižnica a čo
bol druhý?
>> STUDENT: Time.h.
>> JASON Hirschhorn: # include time.h.
To sú ďalšie dve knižnice.
Predpokladám, že teraz budeme používať funkcie, ktoré sú obsiahnuté v týchto
dvaja, čo je dôvod, prečo ste potrebovali zahrnúť je?
>> Žiak: Takže, ty si prvý bude chcieť písať srand.
>> JASON Hirschhorn: srand.
>> STUDENT: (čas (0)
>> JASON Hirschhorn: Ospravedlňujem sa.
Srand (time (
>> STUDENT: 0.
>> JASON Hirschhorn: 0.
>> Študent :)), bodkočiarka.
>> JASON Hirschhorn: Ďalšie uzavretá zátvorka?
Bodkočiarka.
Idem len vymeniť Váš nula s NULL.
Bude to robiť rovnakú vec, ale všeobecne, uvidíte NULL, čo
budeme o tom hovoriť riadok druhý.
>> STUDENT: Štylisticky lepší?
>> JASON Hirschhorn: Všeobecne platí, že ľudia, právo NULL, ale je to to isté.
>> Žiak: A potom int meno.
>> JASON Hirschhorn: Int meno.
>> STUDENT: =
>> JASON Hirschhorn: =
>> STUDENT: Rand.
>> JASON Hirschhorn: Rand.
>> STUDENT: ()
>> JASON Hirschhorn: ()
>> STUDENT: Modulo číslo.
>> JASON Hirschhorn: Čo je modulo?
Postava?
Znak percenta?
>> STUDENT: znak percenta.
Modulo číslo, ktoré ste definovali až hore.
>> JASON Hirschhorn: Modulo ČÍSLO.
>> Žiak: A potom bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
>> Žiak: A potom nová linka, printf.
>> JASON Hirschhorn: printf.
>> STUDENT: (
>> JASON Hirschhorn: (
>> Študent: "
>> JASON Hirschhorn: "
>> STUDENT:% s / n
>> JASON Hirschhorn:% s / n
>> Študent: "
>> JASON Hirschhorn:% s / n "
>> STUDENT: čiarka, medzera mená.
>> JASON Hirschhorn: Space -
>> Žiak: No, myslím, že to, čo to hovoríme tu?
>> JASON Hirschhorn: Hovorili sme, že mená.
>> STUDENT: Open držiak meno.
>> JASON Hirschhorn: Open držiak meno.
>> STUDENT: Uzavretý držiak.
>> JASON Hirschhorn: Uzavretý držiak.
>> STUDENT :)
>> JASON Hirschhorn :)
>> STUDENT: bodkočiarku.
>> JASON Hirschhorn: bodkočiarku.
OK, poďme zachrániť.
Poďme urobiť tento kód.
Študenti.
Poďme spustením tohto kódu.
Študenti.
Nie. / Študenta. . / Študentov.
Menuj jedného.
Povieme, že Dávid.
Meno dva, RJ.
Meno tri, Rob.
Názov štyri, Lucasa.
Názov päť, Joseph.
A potom sa to vytlačí Joseph znova.
>> Dovoľte mi teda plynúť znova.
Dovoľte mi, aby som to rovnaké mená.
David, RJ, Rob, Lucas, Josef.
A to mi dal David tentoraz.
Tak som urobil to isté, ale dal ma iná vec, a to je
pretože, samozrejme, žiadame pre náhodné meno.
Takže si myslím, založený okrem mňa putovanie po miestnosti, že väčšina ľudí
pravdepodobne dostali prvú časť vpravo, zriadenie tohto poľa a potom sa dostať
všetky mená.
Hovorím o tratiach 10 až 16 rokov.
Ale riadky 18 až 21 sú pravdepodobne niektoré veci, ktoré ste ešte nevideli,
takže poďme prejsť ty.
>> Táto linka, srand čas NULL je v podstate -
Ospravedlňujem sa, poďme preskočiť dole linka, rand ().
To vám dáva náhodné číslo, náhodné celé číslo.
A ak ste nájomný vrah rand, ktorá mnoho z vás urobili -
M-A-N priestor R-A-N-D -
v termináli, ako je tento, M-A-N priestor R - N-D, stlačte kláves Enter.
Tie by prísť do návodu na obsluhu a by mal byť schopný čítať, že rand
Príkaz výstupy num pseudo náhodných bajtov Po naočkovaní náhodné číslo
generátor raz.
>> Takže je to popis.
To je to, čo robí rand, dáva Ste náhodné číslo, ak
budete volať túto funkciu.
Bohužiaľ, to nie je naozaj náhodná pretože keď stačí zavolať náhodne
bez toho aby sa to nejaký olej, niektoré počiatočný bod, bude to vždy zvoliť
rovnaký a používa vzorec určiť ďalšie.
Takže, ak povieš rand, bude to len vám to isté.
To bude veľmi predvídateľný.
V skutočnosti sa to byť ľubovoľné.
>> Takže to, čo musíme urobiť, na Marcusa Pokyny pre mňa, boli semeno rand
s niečím iným, čo je to, čo funkcie srand robí.
To semená Rand sa niečo trochu viac náhodné, než to isté, a
on siatie ju s časovým NULL, čo je, rovnako konvencií, aktuálne
čas v sekundách.
>> Takže za predpokladu, že každý nie je chystá spustiť kód na presné
Rovnaký sekundu, takže je to stávka na istotu, že Doba NULL bude iný
zakaždým, keď tento kód spustený.
Stávka na istotu, že takto bude srand semeno rand s niečím iným každom
jednotlivý čas.
Takže konvencií, keď budeme robiť chcú náhodné číslo, píšeme tento riadok,
srand čas NULL, aby nám moc viac hniezda, a potom spustiť
rand, čo nám dáva náhodné číslo.
Jo?
>> STUDENT: Môžete povedať, čo myslíš osivo?
>> JASON Hirschhorn: Semeno ako -
takže rand sa chystá vybrať určitý počet a bude to používať niektoré
vzorec sa tam dostať.
Takže to bude začať s niečím a potom zase do niečoho na základe
z tohto vzorca.
Ak ste vždy dať to isté, je to vždy premeniť
to isté.
Tak, že prvá vec, ktorú dať je semeno.
Takže chcete, aby to niečo inak začať s, a tak to
sa premeniť v niečo iné.
>> A nakoniec, riadok 20, toto sa nazýva%
modulo, a to je mätúce.
To je niečo, čo je trochu iný tu, že ste naozaj nemám
majú v reálnom živote matematike.
Ale v podstate, keď budete mať obra číslo a rozdeliť v C, čo
sa stane zostávajúce?
>> STUDENT: Dostane skrátené.
>> JASON Hirschhorn: Dostane skrátené.
Tak 20 delené 3 je to, čo?
Čo to návrat do tie, 20 delené 3.
Ospravedlňujeme sa, 10 delené 3.
Čo to späť k vám?
>> STUDENT: [nepočuteľné].
>> JASON Hirschhorn: 10 delené 3 iba vráti 3, nie 3 zvyšok 1.
Takže to, čo sa vracia 10 modulo 3 je len zvyšok, 1.
Takže ak by ste chceli vedieť, čo delí 10 o 3 vlastne bol, že nie
do 10 delené 3, mali by ste dostať 3, a potom by som urobil 10 modulo 3, a
by ste dostať jeden.
Takže by ste si uvedomiť, že 10 rozdelené o 3 je 3, zvyšok 1.
>> A v tejto rade, môže byť rand ľubovoľné celé číslo, v podstate.
Takže modulo hovorí, rozdeliť ju číslo, ktoré je v tomto prípade 5..
A ak ste niekedy vydeľte číslom, číslo musí byť vždy menšia než
toto číslo.
Takže ak ste delenie číslom 5, Zvyšok sa vždy bude
nula až štyri.
Tak to proste matematika funguje.
>> Takže veľké množstvo moduloed by menšie číslo bude vždy vrátiť
zvyšok a bude vždy vrátiť niektoré číslo, ktoré je menšie ako číslo, ktoré
delené.
Má niekto nejaké otázky týkajúce sa modulo, pretože to príde veľmi,
veľmi šikovný, takže chcem, aby sa ubezpečil, všetkým je to jasné?
Skvelý.
A videli sme, že tento program funguje.
OK, ďalej.
>> Takže nabudúce, budeme ísť do funkcie, a my sme ísť
cez zvyšok tejto veci dosť rýchlo, pretože chcem dostať do
Argumenty príkazového riadka.
Takže funkcie sú v podstate, Ako ste videli, čierne skrinky.
Berú veci zvané parametrov robia niečo pre nich, a to buď
zmeniť alebo vytvoriť niektoré nežiaduce účinky, a konečne, že pľuvať
niečo, čo, ktorý je návratová hodnota.
Môže mi niekto dať jeden dôvod Preto by sme použiť funkcie?
Niekto?
Jedným z dôvodov, prečo by sme použili funkciu?
Každý, kto?
Videl som obe ruky.
Čo je to dobrý dôvod?
Marcus?
>> STUDENT: Ak máte možnosť volať rovnaké kus kódu viackrát.
>> JASON Hirschhorn: OK, ak potrebujete možnosť volať rovnaké kus
kód viackrát.
Jeff, si mal iný dôvod?
>> STUDENT: Len tak, aby môžete kód menej.
>> JASON Hirschhorn: Môžete kódovať menej.
Presne tak.
Ak chcete urobiť niečo veľa -
v predchádzajúcom kóde, mohol som mať napísal dostať reťazec, päťkrát, ale
pre sláčiky robí to vyzerať krajšie a musíte napísať menej kódu.
Funkcie sú podobné nápad.
Ak chcem urobiť to isté veľa, presunúť do funkcie a volať, že
fungovať zakaždým.
To bude robiť to, čo pre vás.
To je veľký dôvod používať funkcie.
>> Tak anatómie funkcie.
Funkcia bude všeobecne vyzerať takto.
Bude začínať návratový typ, potom budete mať meno.
Zaberie to argumenty, inak známy ako parametre, a vo vnútri
tie zložené zátvorky, budete napísať svoj kód.
>> Videli sme jednu funkciu veľa.
To je hlavné.
Tu je hlavný prekrýva na že anatómia som mal predtým.
Čo int tu znamenať?
Čo int znamená?
Keď píšem int main (void).
>> STUDENT: Návrat typ?
>> JASON Hirschhorn: Je nám ľúto?
>> STUDENT: Návratový typ.
>> JASON Hirschhorn: Int návratový typ, presne tak.
Hlavné vracia int.
Čo je hlavné?
>> Študent: Názov funkcie.
>> JASON Hirschhorn: Hlavné je názov funkcie.
Presne tak.
A neplatné?
Čo je neplatná v zátvorkách?
>> STUDENT: Neberie žiadne externé hodnoty.
>> JASON Hirschhorn: Takže void -
pravdu.
Vnútri zátvoriek, dáme parametre alebo argumenty, že
funkcie má, čo sa deje vnútri čiernej skrinky.
Pri písaní neplatný, hovoríš To nijako palcov
Takže int main void znamená, že hlavné je neberie nič palcov
>> Vnútri zložených zátvoriek, máme nejaké kód, a potom vidíme na konci
vráti nulu.
Čo znamená návrat nula znamená?
No, my sme hovorili o návratový typ.
Hlavné potrebuje vrátiť int.
To je to, čo robí tento riadok.
Vracia int, nula.
>> Samozrejme, že sme nevideli, že mnoho pretože v programovaní robíme s
stroje, ktoré robíme a prekladače používame dnes, vás
nemusí tento riadok.
Hlavné je dosť zvláštne, že vie, keď sa dostanete na koniec hlavnej, len
vráti nulu, ak všetko dobre dopadlo.
V skutočnosti, ak niečo nie je dobre, Hlavným sa často vráti iný
číslo znamenať, že niečo sa stalo s programom.
>> Takže väčšinou, keď vidíte kód, nepíšte vráti nulu, ale je to dobré
vedieť, že sa to deje za scény, pretože keď píšete
iný typ funkcie, budete musieť
zahŕňajú vratné potrubie.
Ak hovoríš, že idem vrátiť int, musíte
napísať niečo vracať.
Ak poviete void tady na začiatok, void main void, pre
príklad, potom to nie je návratu čokoľvek - void znamená, že nič -
takže nemusíte že vratné potrubie.
Ale ste niekedy napísať niečo, čo nie je neplatnosť návratový typ, čo potrebujete
riadok, ktorý hovorí, že návratnosť a vy je potrebné dať tam niečo
, Ktoré sa zhoduje s typom.
Máte nejaké otázky ohľadom že?
Sladký.
>> Rozsah.
To je niečo, čo sme dotkol tiež.
Každá premenná, ako vieme, má istý rozsah, a to je v podstate
hovorí o tom, kde premenná môžu alebo nemusia byť odkazované.
A páči sa mi povedať, čo sa stane, do zložených zátvoriek pobyty
vnútri zložených zátvoriek.
Tak napríklad, ak sa pozrieme na tohto kódu, budeme definovať globálne premenné
mimo hlavnej, int, tu hore.
Hovoríme ďalšie int vnútri hlavné.
Máme nejaké ďalšie zložené zátvorky a hovoríme ďalšie int.
>> Máme tri je v kóde.
Nejedná sa o to isté.
Ktoré som vytvoril tri rôzne premenné.
Potom sa vnútri týchto vnútorných kučeravé traky, hovorím = 4.
Čo je to, že hovoríš, Prvý, druhý,
alebo tretej?
>> STUDENT: tretí.
>> JASON Hirschhorn: Je to hovorí o tretieho.
Všetky z nich je v skutočnosti môže byť hovoril o tejto konkrétnej
inštancie, pretože ich rozsah všetko ide do týchto najvnútornejších zložených zátvoriek.
Avšak, keď budete volať veci samej meno, je tu niečo, čo nazýva skrýva.
Takže ste sa zaoberajú iba alebo opraviť, alebo použite Posledná premenná, alebo jeden
najbližšie k vám.
Takže tu vnútri, je najbližšie táto tretia na tejto linke, a = 4, takže je
vplyv na tretiu.
A posledný riadok, a = 2, čo je že hovorí o, prvý, druhý,
alebo tretej?
>> STUDENT: Druhý.
>> JASON Hirschhorn: Je to hovorí o druhý pohľad.
Samozrejme, tretí je najbližšie sa v kóde, ale tretí
neexistuje mimo tie zložené zátvorky.
Akonáhle sa dostanete do tohto uzavretého kučeravé rovnátka, je to ako, že je preč,
v podstate.
Takže len dvaja ste zostalo, sú tie, Prvé dva, a samozrejme, teraz
je to bližšie k druhej.
>> Takže je to dobrá vec pamätať o rozsahu.
Napríklad som si istý, že ste sa stretli To do while.
Ak inicializovať premennú vnútri sa while a skúste
prístup von, budete pravdepodobne dostal nejaké varovanie, ako je táto
premenná neexistuje.
To je z dôvodu rozsahu nápad, že veci existujú iba
vnútri týchto zložených zátvoriek.
Zložené zátvorky sú ako obrie objatí, že dávate do kódu, je ďalší
spôsob, ako sa o tom premýšľať.
>> Takže to je ďalšia funkcia, niečo pre vy do kódu hellofunction.c.
Budeme preskočiť, že pre túto chvíľu, ale je to niečo, čo som povzbudiť, aby ste
praxi na vlastnú päsť.
Napíšte program, v ktorom hlavné hovory ďalšiu funkciu, ktorá vytlačí
pozdrav pre užívateľa.
Je to v podstate s hello world a abstrahovať, že printf do
ďalšie funkcie.
Ale my nebudeme robiť, že práve teraz pretože nemáme toľko času
vľavo, ako by som si prial.
>> Tak deklarácie funkcie.
Videli sme to predtým tiež.
Ak chcete napísať inú funkciu, budete potrebovať, aby sa počítač vedieť a
Hlavné viem, že to existuje.
Takže to, čo robíme, je nad hlavnou, my píšeme návratový typ, názov a
parametre, a potom dole hlavné, tu sme vlastne skopírovať linky
a potom napísať skutočný kód.
Takže týmto spôsobom, ak volanie funkcie v hlavnom hore, vie, že hlavnou
Dobrý deň existuje, napríklad, keď sa zavolať ahoj, a potom to vyzerá, že
vykonávanie dole.
Čo sa stane, keď nebudem zahrnúť line up hore, stratu ahoj (void)?
>> Ak nemám obsahovať tento riadok a hlavné výzvy ahoj, ja som
dostaneme chybu.
Chystám sa dostanem chybu, pretože kompilátor nevie
že táto vec existuje.
To je dôvod, prečo sa podobné to # include cs50.h.
Čo je na tom v podstate cs50.h je uvedenie dostať reťazec tam.
Je to dávať si tam int.
Je to dávať všetky tie funkcie Prototypy sa pred hlavnou tak, že keď
im zavoláte na hlavný, hlavný vie že tieto veci existujú.
To je to, čo ty. H. súbory robiť.
A tak ak sa chystáte vytvoriť svoj vlastný funkcie, musíš sa uistiť,
si dal, že prototyp tam.
Akékoľvek otázky týkajúce sa to tak ďaleko?
>> Argumenty príkazového riadka.
To je to, čo budeme do konca , A potom snáď budem
stlačiť v niektorých pset.
Ja neviem, či budeme schopní stlačiť že vzhľadom k času, ale
s vami, ktorí sú tu, a ak chalani chcem povedať, po na chvíľu sme sa
môže ísť cez neho von.
Ale budeme na záver Argumenty príkazového riadka
za posledných 15 minút.
Sme hore, Michael?
Si hore?
Dobre.
Ja neviem, či budete spať so zavretými očami.
To by bolo zložité.
>> Argumenty príkazového riadka.
Jedná sa o jediný spôsob, ako odovzdávať informácie do programu.
Nakoniec, budeme stretnúť s ďalšími.
Ale v podstate, budeme zastaviť písanie int main (void), ak chceme
vziať nejaké argumenty príkazového riadku.
Chystáme sa napísať túto vec tzv int main (int argc,
string argv, konzoly.
To je mätúce.
To je veľa listov, ktoré nie sú v človek anglicky, takže budeme
rozbaliť práve teraz.
>> Argc je skratka pre počet argumentov -
a znova, budú všetky tieto k dispozícii online -
a to je počet argumentov.
Argv znamená argument, vektora, a to sú argumenty samotných.
Je to pole reťazcov.
Sme vlastne videli rad reťazcov pred dnes.
Vytvorili sme jednu v poslednej program, ktorý sme kódované.
>> Tak tu je jeden príklad.
Píšem. / Ohai CS50 sekcie na mojom príkazovom riadku.
Argc v tomto prípade rovná 3.
Argv držiak 0 je Ohai, argv držiak 1 Je CS50, argv držiak 2 je časť.
Opäť platí, že argc je počet argumentov, a výlet vás trochu
bit, sme sa vždy spoľahnúť na meno funkcie ako prvý argument.
Takže v tomto prípade, že sú tri argumenty, názov funkcie
a potom tí dvaja, ktoré som napísal palcov
>> Ďalej budeme okrem tých, argumenty sa v argv.
A opäť, rovnako ako sme videli predtým, my sme to v poslednom programe sme kódované.
Môžete sa pohybovať po poli argv a dostať tie reťazca.
To je v podstate to, čo sme robili v koniec posledného programu.
Vybrali sme náhodný názov a potom šiel do Mená držiak čokoľvek a vytlačiť
z reťazca tam nachádza.
>> V hornej časti iba na jednom poli, pretože Reťazce sú samy o sebe pole, ako
hovoril o, môžete mať polia polí, ktorá je
v podstate to, čo je argv.
Jeden spôsob, ako si môžete myslieť To je riadky a stĺpce.
Môžem čerpať, že práve teraz.
Tak argv -
to nie je mazanie.
Poďme nakresliť pod Ohai.
>> Takže keď som písal, Ohai časti CS50, Chystám sa skrátiť
sekcie pre tento príklad.
Ale v podstate, moje multi-dimenzionální pole, Ohai CS50,
budeme robiť sektu.
Tak tu, mám prístup -
keď som len dať argv jedno číslo -
To je zle.
Čo sa deje v tomto diagrame?
>> STUDENT: Začnite na nulu.
>> JASON Hirschhorn: Malo by sa začať s nulou.
Asi by som mala tiež otočiť, ale pretože som už vypracované to tak, som
nechám to tam do teraz.
Ale to začína na nule.
To je pravda.
Ospravedlňujem sa, či to je len malá.
Môže vás druh vidieť?
Takže keď som to argv 0, ja dostať všetky Ohai.
Ak sa mi argv 1, dostanem všetky CS50.
Ak sa mi argv 2, dostanem všetky sekty.
>> Ale teraz, ako sme už povedali, struny sú polia sami.
Takže to, čo môžem urobiť, je môžem liečiť túto ako multi-dimenzionální pole, a ja
Môžete urobiť niečo v duchu argv 0, 0, čo mi práve
znak 0.
Argv 0, 1, čo mi dáva len hodiny.
Argv 1, 3, čo mi dáva len Tento 0 tu dole CS50.
>> Takže, pretože reťazca sami sú polia, budeme dávať
že v inom poli.
V súčasnej dobe máme rad polí, a my je index do nášho prvého poľa a
potom index do nášho druhého poľa.
A ako sa dalo očakávať, že robíme len o uvedenie tých dvoch -
urobíme hranaté zátvorky len hneď vedľa seba.
Takže v tomto prípade, je argv 1 a CS50 argv 1, 2, ako sme povedali, je iba 5.
Má niekto nejaké otázky týkajúce sa multi-dimenzionální pole?
Vy robíte úžasné.
Sladký.
>> Takže máme iný program práve tu, a to je posledná vec, že ​​sme
robiť práve teraz.
Takže chcem vám napísať program, ktorý trvá celé meno užívateľa, dve a iba
dva argumenty príkazového riadku, a konečne, vytlačiť na pozdrav
používateľ, ktorý patrí ich krstné meno.
Tak prečo si nevezmeš tri alebo štyri minút, ako to urobiť, a potom pôjdeme
nad ním ako skupina, a potom si zabaliť?
>> A opäť tu, keď hovoríme, že sa plné meno užívateľa podľa popisu
tohto problému by malo byť príkaz argumentom, nepoužívajú sa reťazec.
Jo, Marcus?
>> Žiak: Takže keď hovoríte, dve riadiace argumentom, je to, že okrem
. / Beh, alebo -
>> JASON Hirschhorn: Dobrá otázka.
Do, vrátane. / Beh, tri Argumenty príkazového riadka.
Alebo vrátane. / Individuálne, v V tomto prípade, pretože to je
Názov tohto súboru.
Takže argc by mali byť tri.
Ale ja chcem len dva argumenty vzhľadom k programu.
Mal by som upresniť, že.
Budem robiť, že zmeny, než som príspevok Tieto a poslať ich na vás.
>> Študent: Čo keď mať prostredné meno?
>> JASON Hirschhorn: Ak máte stredná meno, si smolu.
Ospravedlňujem sa.
Alebo ak chcete ísť len o Shakira, ste tiež smolu.
Jo?
>> Žiak: Takže, keď ľudia nemajú cs50.h, nedefinujú argv
ako char argv hviezdy?
Alebo je to ešte volal reťazec argv?
>> JASON Hirschhorn: Áno.
Takže reťazca, opäť sme sa maskovať z toho, čo presne sa tam deje.
To bude možno bez obalu v stredu, ale čoskoro.
Je to ako koliesok.
Vzhľadom k tomu, v podstate je to to isté.
>> Takže poďme sa ďalšiu minútu na programe to, a potom pôjdeme cez
sa ako skupina, a potom ako som povedal, zabaliť.
A myslím, že sú stále ďalšie cukroví, takže vy by dúfajme
to, alebo si vezmem.
>> Ospravedlňujeme sa, ak ste ešte písanie, ale chcem sa do toho ponoriť a my
môže skončiť spolu.
Tak som napísal v roku, # include cs50.h, # include stdio.h.
int main (void), zložená zátvorka, kučeravé rovnátka, vnútri tri riadky
pseudokódu, vezmeš celé meno užívateľa, práve dve príkazového riadka
argumenty, vytlačiť na pozdrav používateľ, ktorý patrí ich krstné meno.
>> Takže prvé, sa užívateľovho celé meno.
Kto mi môže pomôcť sa užívateľovho celé meno?
Ako to mám urobiť, že časť?
Vedeli ste, chlapci, že prvá časť?
Take celé meno používateľa.
No, že jeden príkazový riadok Argument, čo by som mal písať?
Čo by som mal zmeniť na môj deklarácie funkcie?
>> STUDENT: Nechcete že je neplatné už.
>> JASON Hirschhorn: Presne tak.
Nechcem, aby to bolo neplatné.
Čo chcete, aby sa?
>> STUDENT: argc Int.
>> JASON Hirschhorn: argc Int.
>> STUDENT: String argv.
>> JASON Hirschhorn: String argv.
>> STUDENT: Bracket, držiak.
>> JASON Hirschhorn: Bracket, držiak.
To je presne to pravé, a to v skutočnosti, ako budem mať
užívateľovho celé meno.
Chystajú sa dať to tam.
Tak, že človek urobil.
Takže teraz chcem práve dve Argumenty príkazového riadka.
Noe teda, čo je jeden spôsob, ako môžem kontrolovať počet príkazu
argumentom mám?
>> STUDENT: Robíte Ak vyhlásenie.
>> JASON Hirschhorn: Ak je vyhlásenie, presne tak.
Čo chcem ako podmienku?
>> STUDENT: Ak argc vyšší ako 3.
>> JASON Hirschhorn: Ak argc je väčší ako 3.
Ak argc vyššia ako 3, čo mám robiť?
>> STUDENT: Vracia 1.
>> JASON Hirschhorn: Vracia 1.
Bude to zabezpečiť, mám práve dve?
>> STUDENT: Nie
Ak argc je väčší než 3 a menej ako 2.
>> JASON Hirschhorn: Ak argc je väčšia ako 3 a argc je menej ako 2.
Čo je jeden spôsob, ako môžem napísať to v práve jeden riadok, alebo bez použitia, ktoré
a logický operátor?
>> Študent: To nie je rovné 2.
>> JASON Hirschhorn: Ak argc sa nerovná 2.
Presne tak.
Takže ak argc nie je rovné 2, že bude mi tento program,
osobné, kedy som ho spustiť a ktorý vám dá mi, koľko
Argumenty príkazového riadku?
Koľko budem kontrolovať?
>> Prepáčte.
Dovoľte mi, aby som preformulovať to.
Ak argc = 2, koľko vecí som užívateľ zapísať do linky?
>> STUDENT: Jeden.
>> JASON Hirschhorn: Len jeden.
Takže predtým, než si pravdu, Noah.
Čo to vlastne je potrebné dať tam?
>> STUDENT: To sa rovná 3.
>> JASON Hirschhorn: argc nie je rovné 3.
Chcem sa rovná 3, pretože chcem osobné a ďalšie dva.
Takže ak argc sa nerovná 3, vráťte 1.
Prečo hovoríte návrate 1?
>> STUDENT: Vzhľadom k tomu, že znamená, že je to zlé.
>> JASON Hirschhorn: To znamená, že je to zle, A to je čo robiť?
>> STUDENT: Znovu vyzve užívateľa.
>> JASON Hirschhorn: Bude to skončiť programu, tak to bude musieť spustiť
znova, ale nemáme nič V sem a opýtajte sa na ne znovu.
Nepýtal som sa na to.
Tak to je presne to pravé.
Vracia 1 len ukončí program.
Skvelé.
>> A vytlačiť na pozdrav užívateľa ktorý obsahuje ich prvé meno.
Ako to môžem urobiť?
Anna?
>> STUDENT: printf.
>> JASON Hirschhorn: printf.
>> STUDENT: ("
>> JASON Hirschhorn: (
>> Študent: "ahoj
>> JASON Hirschhorn: "ahoj
>> STUDENT:% s
>> JASON Hirschhorn:% s
>> STUDENT: / n
>> JASON Hirschhorn: / n
>> Študent: ",
>> JASON Hirschhorn: ",
>> STUDENT: argv
>> JASON Hirschhorn: Je nám ľúto?
>> STUDENT: argv
>> JASON Hirschhorn: argv
>> STUDENT: Hranaté zátvorky 1.
>> JASON Hirschhorn: Hranaté zátvorky?
>> STUDENT: 1.
>> JASON Hirschhorn: 1.
>> Žiak: A) bodkočiarku.
>> JASON Hirschhorn :) bodkočiarku.
Poďme tento príkaz.
Personalizované.
. / Osobné.
Je to jednoducho skončiť.
Prečo to skončiť?
>> Žiak: nedal žiadne argumenty.
>> JASON Hirschhorn: ja nie neklaďte žiadne argumenty palcov
Vyzerá skvele.
Vy pribitý.
Takže znova, šiel do argv a vy kontrolované na začiatku argc.
To sú dva dôležité veci na pamäti.
Takže naše posledné dve minúty pred tým, než odísť, nebudeme dostať do pset dvaja, ale
ako som povedal, ak chcete zostať po po dobu 10 minút, ja by som sa rád ísť
ako sa vy logikou Pre tieto základné problémové okruhy.
Mali sme veľa na pokrytie dnes takže som sa k nim dostať.
Všeobecne platí, že sa mi páči, aby zahŕňala že na konci.
Takže ak chcete držať okolo, držať okolo 10 minút.
Urobíme to.
>> Potom, ako som sa zmienil na začiatku, pset nula a jedna, dostaneme, že
spätná väzba k tebe ako čo najskôr.
Cieľom je dostať pset jeden spätnú väzbu, Komentáre časť,
pred pset dva je splatná.
Takže ak ste urobili nejaké chyby, alebo štylisticky by veci byť lepšie,
budete mať tieto informácie, takže si nebude robiť rovnaké veci v pset dva.
A potom sa v budúcnosti budete mať všetky vášho pset pripomienky a komentáre
späť pred ďalšou je spôsobené.
>> A napokon, ak by som mohol dať ďalší konektor pre spätnú väzbu.
Toto je váš prvý časť.
Bol to môj prvý časť vyučovanie v tomto roku.
Choďte tam.
Napíšte veci, dobré a zlé, a budem používať to, aby sa
sekcia lepšie nabudúce.
A nakoniec, opäť ak potrebujete niečo, dajte mi vedieť.
Som viac než šťastný, ktoré vám pomôžu chlapci.
Ak chcete len sladkosti, som bude mať ďalšie sladkosti.
Som rád, aby to na vás.
>> To bude úžasný kurz.
To je jeden z, ak nie môj obľúbený Samozrejme, že som si vzal v celom mojom živote,
a dúfam, že bude, že skvelé pre vás.
Tak som chcel urobiť všetko, čo bude v mojich silách aby bolo úžasné, že pre vás.
Chystám sa odoslať e-mail, ak ste v mojom oddieli alebo Noah, a
Pokúsim a naplánovať každý z ste si čas na kontrolu v priebehu
najbližších pár týždňov, aby som sa mohol Zmysel pre to, čo vaše CS pozadia,
a to tiež pomôže mi to na mieru časti, aby lepšie vyhovoval vašim potrebám.
Takže to je to, čo som dostal postavili.
Opäť uvidíme mimo Ak chcete byť.
To bol týždeň dve časti.
Ďakujem vám chalani moc.