>> JASON Hirschhorn: Welcome to CS50 rész, mindenki.
A nevem Jason Hirschhorn.
Én sok tiéd TF, de sok emberek remélhetőleg csatlakozik hozzánk
online hosszabbító hallgatók és diákok próbálja keresni a szakasz, ha azokra
hiányzott a rész, amely hét csak felzárkózni, ha akarnak
hogy vizsgálja felül néhány anyagot.
>> Tehát, mint egy a tantervet, amely az összes Az elolvasta, igaz?
Látok egy csomó fej bólint.
§ az Ön számára lehetőséget hogy vizsgálja meg a pálya
anyagot egy intimebb környezetben, valamint belevetik magukat
gyakorlati tevékenységek.
>> Szóval ez alapvetően mi vagyunk lesz ezzel minden héten.
Fogunk átmenni, amink van megállapították, hogy a legfontosabb
témák előadás, és az is, valószínűleg leghasznosabb és
a legvalószínűbb, hogy dolgozzon ki a probléma határozza és a vetélkedők és a kódolási
kívüli élet CS50.
Szóval megyek be azokat a témaköröket, beszéljük meg, menj át őket,
válaszoljon a kérdésekre a srácok, és a akkor fogunk sokat
gyakorlat problémák kódolás.
>> Mindannyian hozta laptop, ami fantasztikus.
Ez a számítógép-tudomány osztályban.
Azonban sok a gyakorlatok, amit csinálunk, akkor nem kell a laptopok.
Meg tudod csinálni őket egy papírlapra.
Így fogod tegye őket a kvíz.
És valóban, ez egy nagyszerű módja annak, hogy igazán tudja, hogy hogyan kell csinálni
valamit, ha nem kell Check 50 támaszkodnak vagy Legyen támaszkodni, és azt mondta
Ön tett hibákat.
>> Szóval szívesen kódot a készülék vagy run.cs50.net, ami
egy eszköz, amely lehetővé teszi, hogy kódot az interneten, de én is azt javaslom, ha
még nem próbáltam, egy lap A papír és megpróbálja ezeket a gyakorlat
problémák egy papírlapra.
Mert megint, ez végül mit akarsz, hogy
kérte, hogy ezt a vetélkedők.
>> Szóval kezdjük a mi menetrend ma.
Fogunk menni át néhány normák a részben, akkor megyünk merülni
tömbök, függvények, és parancssori érv, amely az, amit ti
fedezte az elmúlt héten előadás majd a hétfő, és mit fogsz fedezni
több holnap.
És végül, mi lesz beszélni pset2.
Ha tudnám, hogy a kezeket, ha Nem nézett a megoldásokat két
specifikáció.
Azt mondjuk mindenkinek.
Fantasztikus.
>> Megbeszéljük probléma készletek egy kicsit, de ha elolvassa a probléma meg
specifikáció, ez mindössze annyit kell tennie.
Ha elolvasod, hogy mielőtt jön osztály és részben a kedd, akkor
egy nagy helyzetben.
Mehetünk át a megoldásokat, ami mit fogunk
hogy nem a végén.
Fogunk átmenni A logika, győződjön meg róla,
mindenki ugyanazon az oldalon.
>> Azt akarom, hogy képes legyen elhagyni kedd érzés nagyon kényelmes, amit
kell tennie az e heti probléma meg, és ha nem, én boldogan
marad és után dolgozni.
De ez egy dolog, amit meg kell csinálni, de azt hiszem, lenne igazán okos,
csak olvasni a megoldásokat specifikáció osztály kedden,
amely úgy hangzik, mint egy Sok srácok nem.
>> Kezdjük egy program minden egyes osztály így tudja, hova megyünk.
Ez is hasznos ember nézi online, mert egyes szakaszok
A színkódolt, ezért ha azt szeretnénk, hogy jöjjön vissza, és csak nézni, hanem 10 perc alatt
mint az egész 90 perces részben, csak megy a színkódos rész
és nézd meg ezt a részt.
Szóval próbáltam megtörni őket a szép modul, amely lehetővé teszi, hogy -
ha azt szeretnénk, hogy jöjjön vissza, és felülvizsgálja, vagy más, a diákok, akik csak
nézni egy részt, hogy vizsgálja felül -
megtalálni a konkrét dolog, amit akar figyelni
és tudjon meg többet.
Édes.
>> Normákat.
Én vagyok a FOP vezető az egyetemen.
Nem tudom, hogy senkit nem FOP.
Vajon bárki is FOP?
Egy személy nem FOP.
Két ember volt FOP.
Félelmetes.
Tehát FOP az első év, Outdoor Orientációs program.
Vesszük gólya az erdőbe, és a legvarázslatosabb tapasztalatait
életüket, igaz?
Igen.
Hangzik.
>> Szóval, csak azt akartam kezdeni a legelső fejezet megvitatásával bizonyos normák
Az osztály és a kapcsolat mert azt hiszem,
ők nagyon fontos.
Az első és legfontosabb, mint azok, akik az a rész kapott és
megvitatásra került, hogy az e-mail, imádom ezt.
Ez a kedvenc része az év.
Én már annyira izgatott.
Már órák óta itt ma.
Nem hagyta ezt az épületet, kivéve menni enni, mert szeretem CS50 rész, én
szeretet tanítása, Én nagyon szeretek dolgozni veletek.
>> Az egyik legfőbb prioritása, ha nem az én számú prioritás, nem csak
Ez az osztály de beleértve a más osztályok és iskolán kívüli, az, hogy
támogatni titeket, és segít nektek, és minden tőlem telhetőt, hogy megbizonyosodjon arról, hogy
Srácok, van egy csodálatos, vidám, produktív, magával ragadó, izgalmas
tapasztalni ebben az osztályban.
Ez az, amit én elkötelezett.
Ezért szeretem ezt.
Ez az első számú dolog, támogató srácok.
Ha bármilyen kérdése van előadás, a megoldásokat, rész,
élet, még akkor is, ha azt szeretné, hogy beszélni élet, ne habozzon, hogy elérje.
>> Van mobilom számát, akkor én e-mail
cím, akkor a GChat.
Vegye fel a kapcsolatot velem bármely vagy az összes ezek bármikor, de valószínűleg nem fog
választ bármikor.
Megpróbálom, és vissza 24 órán belül.
Gyakran ez lesz a 20 percig, vagy 24 perc alatt.
Azt kellett volna mondanom, hogy annak érdekében, hogy párhuzamos.
De kapsz választ elég gyorsan.
>> Ha sms-én egy órával a probléma meg ez miatt, én nyugtató
le, és nem mély légzés gyakorlatokat van, de ha még nem kezdődött el,
akkor valószínűleg nem fog befejezni, és Nem igazán tudom segíteni ott
bár én megpróbálom a legjobb.
Szóval mindent megtesz Tudom, hogy támogatjuk Önt.
Kérjük, hogy elérje, hogy a ez a szakasz ismét a Munkaidő
ha látsz engem, vagy akár azon kívül.
Örülök, hogy hozzanak létre egy találkozót és a munka a problémák
vagy megy át anyagot.
Annak érdekében, hogy az első számú, támogatása.
Fogok tenni mindent, amit lehet, hogy támogatjuk Önt.
>> A kettes, találkozó a közepén.
Bármennyire is szeretnék lenni, én vagyok nem mindenható és mindenható, vagy
mindentudó, úgyhogy nem tudom, az összes idő, ha mit csinálok egyre
át, ha az út én vagyok a tanítás témakör segít tanulni, vagy ha
zavaros a téma, de nem emelje fel a kezét, vagy kérdezze meg
vagy küldj egy e-mailt.
Vagy akkor is, ha megint, össze vannak zavarodva valami a probléma meg.
Ha nem éri el nekem, Nem tudom, hogy a biztos.
Fogok tenni minden tőlem telhetőt, hogy ellenőrizze a srácok, győződjön meg róla, minden
jól megy, próbálja tanítani úgy, ahogyan amely kedvez a legtöbb
a tanulási stílus, de ha van bármit tehetek, csak szólj.
>> Ezen a vonalon, ha azt szeretnénk, egy kis segítség a probléma meg, én inkább
mint boldog, hogy segítsen a probléma meg.
Fogunk sokat hogy szemben a második
a fele ebben a részben.
De ha még nem olvastad a probléma határozza vissza, és nem nézte a séta
keresztül, és nem nézte a nadrág és várta, hogy tanítani
minden, ami már videóra Online vagy, hogy megtalálja a CS50
tanulmány, ez nem igazán fair, hogy nekem, vagy a más társaik.
>> Ezért kérjük, én több mint boldog, hogy segítsen , de ti srácok, hogy találkozzon velem
a közepén.
Van tonna források akkor elérhető CS50.
Megemlítettem néhány közülük.
Kérjük, hogy kihasználják őket.
Ha zavaros, én több mint boldog hogy segítsen megmagyarázni nekik
más módon, de ez nem fair, ha diák jelenik meg munkaidőben,
még nem kezdődött semmit, és ez Csütörtök este, és ők számítanak
A TF járni őket minden egyes dolog a probléma megadhat
délben a következő napon.
Van értelme?
Kérjük, ne találkozzunk a közepén.
>> És végül, a magas elvárásokat.
Én leszek osztályozó mindenki, aki az én részben vagy pontozási a
probléma készletek.
Nem ment vissza a probléma meg nulla vagy egy sem.
Vagyunk sajnálom.
Ez volt számunkra, hogy végre egy kicsit rendezni szakaszok, és most
kezdhetjük osztályozás.
>> Hozom vissza hozzád lehető legrövidebb időn belül.
Ezek az én advisees odakint.
Hozom vissza hozzád lehető legrövidebb időn belül.
És probléma meg két, akkor lennie ütemezése és kezdjük, hogy őket
neked elég gyorsan után bekapcsolja őket!
>> Amikor megkapod a problémát meg vissza, akkor kap pontszámot, mint tudjuk
olvasás a tananyag - korrektség, design, hatály, és a stílus pontszámok.
Azt is kap megjegyzéseket.
A hozzászólások fontosabbak mint a pontszámok.
Azt hiszem, nyugodtan mondhatjuk, hogy.
>> Pontszámok csak egy szám egy-öt.
Nehéz olvasni azokba.
Ez nehéz javítani azoktól.
De a hozzászólások fog mutatni konkrét dolog, amit jól vagy területek
javíthatja, és ad egy kis Ötletek a jövő vagy alternatív
módon a dolgok.
>> Szóval kérlek, kérlek, olvasd el a megjegyzéseket.
Én egy csomó időt ezeket a megjegyzéseket.
Kérjük, olvassa el őket, és nem csak a görgessen az aljára a
PDF, keresse meg a pontszám, vagy megy online és találja meg pontszámot, majd figyelmen kívül hagyni
a megjegyzéseket.
Ez nem, hogy te lesz jobb.
Ez nem így fogsz növekedni a pontszámok végső soron, csak
nézi a pontszámok.
Kérjük, nézd meg ezeket a megjegyzéseket.
>> És a vonal mentén a magas elvárások, megint, mint mondtam,
is szerezte egytől öt.
Kettesével, hármasával, és négykézláb a túlnyomó többsége pontszámok
fogsz, hogy egyre.
Is, és ötös egyaránt nagyon ritka.
Mindig dolgok tudunk jobbat.
Valahányszor kódot egy programot, van mindig valami,
lehetett volna jobban csinálni.
>> Tehát ahelyett, mondja, hogy egy öt egész idő alatt mindent, és nem
minden tökéletes, én nem hiszem, hogy bármely közülünk valóban úgy gondolja, hogy mi - vagy
remélhetőleg nem tesszük mindent tökéletes egész idő alatt.
Tehát ne aggódj, ha nem kap öt.
Öt nem kezeli rá az A, a négy nem kezeli rá egy B, a három nem
nem térkép rá egy C. Ez nem hogy a pontszámok működik.
>> Mint David azt mondta többször, a félév végén az összes pontszámok és
input tőlem, a TF, találkoznak és meghatározza a végső pontszám az Ön számára.
De ismétlem, ez nem öt, A négy, B, et cetera.
Így fogok magas elvárásokat a srácok.
Megyek számíthat jó probléma készletek és fogok adni
visszajelzést, mint olyat.
És ez nem fog jelenti azt, hogy lesz, hogy a rosszabb minőségű.
Ön sorolt ​​tekintetében az előrelépés hét
nullára kurzus végén.
>> És végül, tekintve a nagy elvárások az osztályban, én szeretem, ha
vesznek részt.
Megértem, néhány ember úgy érzi, többé- kevésbé kényelmes résztvevő.
Más emberek részt nem feltartásával teszik és
beszél egész idő alatt.
De ebben az osztályban lesznek a sok kis probléma, sok
mini kérdések, majd néhány nagyobb kódolási problémák.
Így biztosan működik ezeket a gyakorlatokat ki ha mi azokat a számítógépre vagy
egy papírlapot.
>> De akkor is, hogy egy kis ideig, mielőtt bárki valaha is, hogy válaszoljon néhány
A kérdés, amit kérek.
Tehát azért, mert ad egy kis időt, hogy gondolj bele, mert megyünk
, hogy a dolgok a partnerek néha Elvárom mindenkinek
hogy részt valamelyest.
És nincs jobb kifejezés, ott valószínűleg hideg hívás, amely
ahol mindenki egy esélyt gondolni a választ, majd
Hívom az Ön számára, majd akkor azt a választ.
>> Ne aggódj, vagy féltem ezt.
Megcsináltam a múltban, és azt találtuk, hogy ez sokkal sikeresebb,
is olvastam Oktatáskutató rá, hogy e vagy sem, hogy ez egy
jó taktika.
Ez nagyon hasznos, különösen, ha hogy a diákok időt gondolkodni a
válaszokat, és nem teszik őket, csak jönnek , és azt mondják, hogy rögtön a denevér.
De ha nem érzik magukat választ, én is elég jó
megérezte, hogy ki, és mi nem fogunk tegye meg a helyszínen, különösen a
a kamera, még ha nem akkor a kamera most.
>> Tehát ezek a normák már.
Még egy dolog mentén a találkozó a közepén.
Meg fogom adni nektek Sok visszajelzést.
Kérem, adja meg visszajelzést is.
Van egy honlap, sayat.me/cs50.
Tehát ez egy őszinte visszajelzést.
Ha azt szeretné, hogy ez alatt részben, Kapok egy e-mailt, amikor ez történik.
Majd egy kis szünetet egy kicsit, úgyhogy nézd át a visszacsatolás akkor.
Ha valaha is bármilyen visszajelzést, kérjük, adja meg, hogy oda.
>> Ha adsz nekem visszajelzést a Q, az csodálatos, de ez a vezető
hogy te a végén.
De ez lesz a félév végén, így Nem tudja, hogy sem, hogy
visszajelzéseket, és kapcsolja be tanítás srácok jobb.
Ezért kérjük, ha bármilyen visszajelzés, add ide.
Szeretem visszajelzést.
Vissza a FOP, akkor kap visszajelzést minden alkalommal.
>> Adhat nekem pluses, jó dolog, delták, dolog, amit javít.
Ön is véleményét a ruhák.
Ez nem lesz olyan hasznos, de te szívesen megjegyzést bármely és
mindent.
Kérjük, kérlek adj visszajelzést.
Értékelem, hogy sokat, és ez sokat jelent nekem.
>> Még egy norma, szórakoztató.
Mi lesz egy nagyon szórakoztató.
Remélhetőleg erre a kurzusra, akkor sok móka.
Lesz cukorkát részt.
Lesz zene.
Mi lesz remélhetőleg ismerkedés egy kicsit is, így azt akarom,
hogy ez egy szórakoztató, magával ragadó élmény.
>> Tudom, hogy néhányan már elaludtak, Az előadások, hogy volt korábban ma,
így remélhetőleg, hogy nem fog a helyzet most.
És ha ez a helyzet most, csak nem horkolok, mert az esetleg
fogott a kamera.
Édes.
Bármilyen kérdése, észrevétele, vagy problémája mielőtt lépni bármiről voltunk
beszélt?
Remek.
>> Szóval menni tömbök először.
Így csinál egy tömböt.
Már láttam ilyet.
Van egy adattípust, akkor egy nevét, akkor a méretet.
Pont itt, hozok létre két tömb.
Az első egy sor karakterek, és azt 26-terek.
A második egy tömb eredmények, és három
terek három egész számot.
Igen?
>> DIÁK: Az összes ilyen diák elérhető valahol nekünk?
>> JASON Hirschhorn: jó kérdés.
A kérdés az volt, mind a ezeket a diákat rendelkezésre?
Igen.
Mindezek a diák lesz elérhető, és a jövőben, én küldd el őket a
mielőtt részt.
De ma, mert ez az első héten volt egy késői kezdés.
Így általában, akkor lehet ezeket a diák, de lesznek elérhető online, és
Majd küldje el Önnek után osztályban.
Van még kérdés?
>> Tehát még egyszer, tömbök dobozok, a hiányzó jobb szó, hogy tartsa több
elemek egy adattípust, és ők egymás mellett a memóriában.
És megint, ez hogyan lehet hogy két tömb.
>> Szóval, miután elvégezte a tömb , hogy az első sorban - int eredmények, konzol
három, záró zárójel - akkor szeretné elindítani azt.
Azt akarod, hogy egy kis értékeket is.
És ez az, hogy ha egy kis értékeket ott, csak a választás Index és
írásban a számot.
Nézzük felhívni ezt a fórumon.
Mindenki tud látni?
Mindenki láthatja.
Édes.
>> Annak érdekében, hogy ez lesz az én nevű tömböt eredmények.
Mint látható, ez a méret három.
Három doboz ott.
Mindegyik elfér milyen típusú adattípus?
>> DIÁK: Egész.
>> JASON Hirschhorn: Egy egész szám ebben az egy.
Írtunk int eredmények, és az első szó az adattípust fog
menni a dobozok a tömbben.
Szóval elfér három.
Miért nulla fel ott a fedélzeten?
Miért mondja pont nulla értéke 1?
Emlékeztetnek a nevét.
>> DIÁK: Kurt.
>> JASON Hirschhorn: Kurt.
>> DIÁK: Igen.
>> JASON Hirschhorn: Miért?
>> DIÁK: Mivel az első index nulla, kezdjük a számolást nulla.
>> JASON Hirschhorn: Tehát kezdjük számláló nulla.
Ez pontosan így van.
Ez a zavarba ejtő része és lekapcsol fel, különösen, amikor
próbál halad végig tömbök, amit majd tenni egy kicsit.
Kezdjük számláló nulla.
Tehát, ha azt akarom, hogy olvassa el az első doboz, ez nem egy doboz.
Sajnos, ez a doboz nulla.
A második a doboz egy, és ebben a esetben, a harmadik pedig két doboz.
>> Mi a helyzet a három doboz?
Hol doboz három?
Vagy ha akarok eredmények, konzol három, záró zárójel, mi az?
Szóval azt mondta a null karakter.
Minden más gondolat?
Mi pont konzol három konzol?
>> DIÁK: Ez valójában nem is létezik, mert csak definíció szerint eredmények,
tartó három.
>> JASON Hirschhorn: Tehát azt mondja nem igazán létezik.
Bizonyos esetekben, amikor van dolgunk vonósok, általában akkor tesz egy null
karakter a végén.
Mi lesz az, hogy a második.
De ebben az esetben is Nincs harmadik doboz itt.
Így az utolsó doboz minden tömb a méret mínusz 1.
Tehát, ha van egy sor n méretű, a első doboz nulla, az utolsó pedig
Az n mínusz 1.
És ebben az esetben, ez nem létezik.
Van valami itt memória, de ez nem a miénk.
Mi nem a tulajdonosa.
Nem kéri.
Tehát, ha megpróbáljuk elérni azt, amit majd tenni egy kicsit, akkor valószínűleg lesz
bajba.
>> Ebben az esetben én vagyok az inicializálás tömb három változó.
Mi amivel egy rovatban nulla, a két rovatban egy, és a három rovatban kettő.
Van valakinek kérdése a tömb inicializálására?
>> Így mentünk át ezt most.
Rengeteg, konzol három, záró zárójel, hogy nem létezik.
Mi nulla indexelt számítástechnika, így kezdjük a számolást nulla.
Az utolsó doboz áll rendelkezésünkre, akkor A harmadik doboz, de úgy hívják box
a kettes számú.
>> Lent, ez egy alternatív módja inicializálása tömbök.
Tehát ahelyett, hogy a tömb egy vonal, kitöltve az első mezőbe, majd
A második mezőbe, majd a harmadik doboz, meg tudod csinálni mindezt egy sorban.
Tehát ezen a vonalon, mindkét tömbök.
Ez megteremti a pontosan ugyanolyan tömb amit teremtett itt, de
csak csinálja egy sorban.
>> Most hoztunk létre a tömb.
Általában, ha létrehozunk egy tömböt, akkor akar vele valamit, hogy a
ez töltse ki, vagy hogy a dolgokat belőle és nyomtassa ki őket a képernyőn.
Ebben az esetben, mi lesz a mi pontszámok tömb, amit inicializált on
az első sorban itt a szürke.
És akkor a második sorban, kezdjük iterációjával a tömb.
Van valakinek kérdése van a szerkezet egy for ciklus?
>> Tehát ez a for ciklus.
Megvan a kezdeti állapotban, majd a végső állapot, aztán
hajtogat, i, az egyes hurok.
És a zárójelek az ezt loop, mi történik, ha én is futni
ez a program?
Tud valaki mondja meg, mit kapnánk?
[? Matu? ?]
>> Matu: Nyomtassa ki az összes pontszám minden vonalon.
Ez nyomtassa ki az összes pontszám külön sorban.
>> JASON Hirschhorn: Pontosan mit lenne nyomtatni?
>> DIÁK: Ez egy nyomtatási, majd két, majd három.
>> JASON Hirschhorn: Pontosan.
Ez nyomtatni egy, majd két, majd három, mindegyik külön sorba, mert a
megyünk át a tömböt, és máris láthatjuk, hogy a második, a printf
nyilatkozatot pontszámok i.
Így az első körben keresztül a loop, i értéke nulla, ami azt jelenti vagyunk
hogy az érték nulla pont -
amely, ha megyünk vissza a diagram, az egyik -
és kitöltése -
Nos, azt mondja c.
Hogy kell% d.
Fogom javítani, hogy egy kicsit, amikor Én viszont, hogy ki nektek.
De mi bemutató egész szám, így legyen% d itt, nem% c.
Milyen% C?
>> DIÁK: Karakter.
>> JASON Hirschhorn: Karakter, pontosan.
Mi az a másik?
Ha nem akarsz% d egy egész, mi mást lehet tenni?
>> DIÁK: i.
>> JASON Hirschhorn:% i, pontosan.
Így bármilyen kérdése iterációjával a tömb?
Tehát, mi történik, ha ezt?
Ahelyett, hogy i kisebb, mint három, mi az i kisebb
vagy egyenlő, mint három.
Mi történik, ha ezt a kódot?
Igen, Annie?
>> DIÁK: fognak kinyomtatni furcsa dolgok a negyedik sorban.
>> JASON Hirschhorn: Szóval azt mondta, ez majd nyomtassa ki furcsa dolgokat a
negyedik sor?
Tudja valaki a választ a kérdésére?
Így az esély, hogy ha a eljutunk a -
így a negyedik fordulóban keresztül a hurok, mint azt gondoltad, Annie,
ez lesz pontszámok tartó három, ami mi már rájöttek nem
létezik, és meg fogjuk próbálni és elérheti, hogy nyomtassa ki
ki, használja valamilyen módon.
Így a számítógép valószínűleg dühös ránk.
Teljesen igazad van.
>> Lehet, hogy kilép a programból összesen.
Lehet, hogy nyomtassa ki valamit nagyon furcsa.
Nem lehet mondani, az biztos.
Valószínű, hogy akkor valószínűleg dühös , és csak kilép azonnal.
>> De ez egy gyakori hiba lesz ahol te csak ki egyet
a végén, és ez egy olyan hiba, amely pestis Önt az egész kódolás.
Az egyik módja, amit szeretek csinálni csak egy tábla, megy keresztül minden iterációban
A ciklus a kezét vagy papíron, hogy mi történik, és akkor
Általában észre, ó várj, ne mentek, hogy kisebb vagy
egyenlő három.
Meg kellett volna állítani két, ami mi történik, ha a feltétel kevésbé
mint három.
Bármilyen kérdése eddig?
Édes.
>> Szóval mind a számítógép nyitva.
Mi fog adni 02:58 percet, hogy írjon egy programot, amely
egy tömböt hoz létre az egész egy révén öt, majd kiírja az egyes
integer új sorban.
És ha bármilyen kérdése van, emelje fel a kezét.
Boldog vagyok, hogy találni.
Mint mondtam, nézzük három percet, hogy írni ezt.
Mindenki rendben van, ha elmegyek egy új ablak, és zárja be ezt?
>> Sajnálom, ha még nem volt esélye befejezni, de fogunk csinálni
most együtt.
Tehát fel a képernyőn, már # include cs50.h, # include stdio.h.
Tud valaki mondani, mi a két vonal nem?
Michael?
>> DIÁK: Ezek közé tartozik a könyvtárak hogy CS50 történt, és Steve
mentett meg használni hogy az élet könnyebb.
>> JASON Hirschhorn: Szóval azt mondta, hogy közé tartozik a könyvtárak, amelyik CS50
készült, cs50.h, és az egyik, hogy csak a szokásos, jön a
A C csomag stdio.h.
Hogy érted is A könyvtárak, igaz?
Lehetne egy kicsit részletesebben?
>> DIÁK: Azt teszi, hogy így használ bizonyos kódszavak, hogy van egy
működik történik anélkül, hogy és a függvény c magad.
>> JASON Hirschhorn: Tud mondj egy példát?
>> DIÁK: Mint a printf az egyik segítségével.
>> JASON Hirschhorn: Printf.
Szóval azt mondta printf egyike azoknak a funkció, ahol ahelyett, hogy
printf írni a saját, a printf foglalt valójában stdio.h, így
csak használni, és feltételezzük, , hogy működni fog.
A stdio.h Ha megnyílt a fájlt, lenne közé tartozik, hogy printf
működik, az összes kód printf?
Miért rázza a fejét?
>> DIÁK: Mivel a header fájlt csak tartalmazza a függvény deklaráció.
>> JASON Hirschhorn: pontosan így van.
A header fájl csak tartalmazza A függvény deklaráció.
Tehát alapvetően, amikor fordítod ezt Legyen hit gróf, amit megteszek a
Másodszor, a fordító tudja, hogy ha használja printf, printf létezik.
Ez lesz meg valahol.
Ez nem probléma az Ön számára használja.
Aztán később, akkor az is a egyesek és nullák, hogy valóban tartalmaznak
printf végrehajtását és egyesíti őket a kódot.
Hogyan győződjön meg róla, ez magában foglalja a egyesek és nullák, mondjuk, hogy húr?
>> DIÁK: A string van cs50.h.
>> JASON Hirschhorn: Így van.
Tehát azt mondja, hogy húr van, A függvény deklaráció.
De aztán az egyesek és nullák, a bináris fájl valóban tartalmazza a
végrehajtása get húr?
Hogyan győződjön meg róla, hogy megy a programot?
>> DIÁK: Át a linker a A parancssori argumentum.
>> JASON Hirschhorn: Át a linker A parancssori argumentum.
Hogy csinálod ezt?
>> DIÁK: Ez az l-vonal a csenget
>> JASON Hirschhorn: pontosan így van.
Azt mondod,-l CS50, igaz?
Ez magában foglalja az egyesek és nullák.
>> DIÁK: de győződj meg nem hogy az Ön számára, nem igaz?
>> JASON Hirschhorn: Pontosan.
Legyen megteszi ezt, de végül is, akkor nem lesz Legyen, vagy
akkor meg kell, hogy a Legyen a saját, úgy, hogy ez a
jó dolog, hogy emlékezzen.
Ha mentek, hogy az egyik ilyen más könyvtárak, nem csak akkor van
írni és # include majd a könyvtárban.
Akkor is meg kell kapcsolni be!
És ez a két dolog különbözik. -L CS50 más
mint # include cs50.h.
>> Aztán ott van int main üres zárójelek, és most fogunk kód
belül fő.
Az első sorban van itt egy megjegyzés azt mondja, hozzon létre egy tömböt
A ints egytől öt.
Milyen a jó szó, hogy leírja, amit van most a képernyőn, csak
megjegyzések belül fő?
Mit nevezünk, hogy?
>> DIÁK: pszeudokódja.
>> JASON Hirschhorn: pszeudokódja.
Köszönöm, Jeffrey.
Ez pontosan így van.
Pszeudokód.
Láttátok pszeudokódja előtt?
Emelje fel a kezét, ha már használt pszeudokódját mielőtt probléma az egyiket.
Mintegy fele meg.
>> Én nagyon ajánlom pszeudokódját lebontani problémákat a
kisebb, könnyű harap le darabot.
Továbbá, ha nem a pszeudokód, akkor már meg észrevételeit már nagymértékben
beépített, így nem kell menj vissza, és próbálja kitalálni,
mit csinálsz.
Így tud valaki adni nekem az első sorban hogy hozzon létre egy tömb ints egy
révén öt?
Önnek?
>> DIÁK: Int, és akkor lehet hívni bármilyen számot, majd a tér
tartó öt.
>> JASON Hirschhorn: Szóval int számok, szögletes zárójel öt.
>> DIÁK: egyenlő, és akkor zárójelek.
>> JASON Hirschhorn: egyenlő, zárójelek.
>> DIÁK: Egy, kettő, három, négy.
>> JASON Hirschhorn: Egy, kettő, három, négy, öt.
>> DIÁK: És akkor kapcsos zárójelek majd pontosvessző.
>> JASON Hirschhorn És göndör zárójelek és pontosvessző.
Kiváló.
Kiírja az összes int új sorban.
Tud valaki adni nekem a kódot, kérem?
[? Matu? ?]
Menj csak.
>> DIÁK: For (
>> JASON Hirschhorn: For (
>> DIÁK: int i = 0
>> JASON Hirschhorn: int i = 0
>> DIÁK: Pontosvessző i kevesebb, mint öt.
>> JASON Hirschhorn: pontosvessző kevesebb, mint 5 i.
>> DIÁK: Pontosvessző, i + +.
>> JASON Hirschhorn: pontosvessző i + +.
>> DIÁK: Zárt zárójel, akkor nyitott zárójel.
>> JASON Hirschhorn: Zárt zárójel és két fogszabályozó.
Bent a fogszabályozó?
>> DIÁK: És akkor printf "% d / n"
>> JASON Hirschhorn: Bocs, várj.
Printf "% d / n, zárt árajánlatot.
>> DIÁK: És akkor zárt idézet, vessző, gróf, konzol i.
>> JASON Hirschhorn: vessző gróf konzol i.
>> DIÁK: Sajnálom, számok konzol i.
>> JASON Hirschhorn: Számok, konzol i.
>> DIÁK: Bocsánat.
És akkor zárt zárójelek, pontosvessző.
>> JASON Hirschhorn: Zárva zárójelben, pontosvessző.
Fogom megmenteni azt.
Mi lesz, hogy számít.
És hogyan futok számít?
>> DIÁK: Backslash.
>> DIÁK: Dot perjel -
>> JASON Hirschhorn:. / Számít, pontosan.
Köszönöm. . / Számít.
Egy, kettő, három, négy, öt az új vonalakon.
Úgy néz ki, hogy működött.
Igen, Noah?
>> DIÁK: Te is ezt kisebb vagy egyenlő négy, ahogy kevesebb, mint
vagy egyenlő, mint négy?
Van-e előnye ennek kevesebb mint öt, vagy csak egy másik módja
írás ez?
>> JASON Hirschhorn: Tehát a kérdés az, hogy lehetett volna i kisebb vagy
egyenlő négy helyett i kevesebb, mint öt.
Vajon, hogy dolgozott az ugyanaz?
>> DIÁK: Meg kell.
>> JASON Hirschhorn: Igen.
Ez teljesen volna ugyanúgy működik.
Stílusában, ez általában kevesebb, mint, és látni fogod, a második, amikor
mi húrok, akkor valamit nevű strlen, amit láttam
előtt, hogy a hosszú a húr.
És akkor nem kevesebb, mint vagy egyenlő strlen.
Lehet csinálni kisebb vagy egyenlő strlen mínusz egy.
Tehát csak szebb nem kevesebb, mint a strlen.
Igen?
>> DIÁK: És a tényleges vetélkedők, akkor meg kell, hogy tegyen észrevételeket a mi
kód is?
>> JASON Hirschhorn A kérdés volt vetélkedők, ugye
kell biztosítani a véleményed!
Így fogunk beszélni többet kvízek, ha jönnek fel, de általában, a jó
ökölszabály az, amikor te kód írása, észrevételeket.
Ha ön kap a kód rossz, de a megjegyzését, akkor lehet, hogy valami
hitel mind nekem, ha én osztályozó Ön a probléma, meg, vagy a kvíz.
Tehát megjegyzések mindig jó, hogy.
Édes.
Gróf.
Kiváló munkát végzett.
Menjünk tovább.
>> Strings.
Strings.
Láttuk ezt korábban előadás.
Ez elszállt az agyam, amikor először találtam ezt ki.
Ez valószínűleg nem fúj senki baj, de ez rendben van.
>> Strings tömbök karakter, és a végén is, ahogy korábban is mondtam,
A null terminátor, amely ez a / 0 karaktert.
Ha megyünk, hogy rajzoljon egy string a tábla, akkor felhívni ide.
Szóval, milyen hosszú ez a szöveg?
Bocsánat.
Milyen hosszú a szöveg?
>> DIÁK: [hangtalan].
>> JASON Hirschhorn: Négy?
Miért négy?
>> DIÁK: Mivel az ötödik helyen ez a null karakter.
>> JASON Hirschhorn: Szóval az ötödik hely ez a null karakter.
Tehát, ha én futni strlen on ez, ez ad nekem négy.
Javítsa.
És a tömb, bár, ha én Inicializálni tömb hány terek
azt meg kell kérni?
>> DIÁK: Öt.
>> JASON Hirschhorn: Öt.
Szerettem volna kérni öt, de én csak fel négy karakter itt
mert kell tenni, hogy a null terminátor a végén.
Így fogunk írni "ohai" és tegye a null terminátor végén.
Azt fogja mondani, hogy ez szöveg s ez egyenlő.
Mi s konzol nulla?
s konzol nulla, Annie?
>> DIÁK: O.
>> JASON Hirschhorn: O, pontosan. s konzol egy?
s konzol öt?
>> DIÁK: Nem létezik.
>> JASON Hirschhorn: Nem létezik.
Pontosan így van.
Cool.
Kérdése megértést húrok tömbök karaktereket?
OK, akkor.
Még egy programot a srácok.
Írj egy programot, amely arra kéri a felhasználót egy sor, majd kiírja az egyes
karakter egy új sort.
Szóval vessünk három percet, hogy írjon A program, és aztán kódot is
mint egy csoport.
>> Bocsánat.
Te kell, hogy ez?
>> Diák: Nem
>> JASON Hirschhorn: OK.
Vessünk még egy percet, hogy ezt kódot, vagy legalábbis elindulni rajta.
>> Így folyamatosan dolgozik, de megyek kezdeni megy át rajta.
Szóval, mint korábban, már a képernyőn # Include cs50.h, # include stdio.h.
int main semmis.
Belül Main zárójelek én két megjegyzést, pszeudokódja.
Az egyik kér egy stringet a felhasználó.
A második kiírja az összes karakter egy új sort.
Így Anna, tudsz adni nekem fel a szöveg a felhasználó?
>> DIÁK: Printf.
>> JASON Hirschhorn: Printf?
>> DIÁK: Igen.
(
>> JASON Hirschhorn: (
>> Diák: "adj egy string.
>> JASON Hirschhorn: "adja nekem str - hoppá -
string.
>> DIÁK: / n ") pontosvessző.
>> JASON Hirschhorn: Vége a húr, zárt zárójelek, pontosvessző.
>> DIÁK: Igen.
Majd a következő sorban, string s = kap string.
>> JASON Hirschhorn: String s = kap string.
>> DIÁK: Igen.
És akkor ()
>> JASON Hirschhorn: ()
>> DIÁK: Pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
Fantasztikus.
Így fogok kapni egy húr és Meg fogom menteni, mi?
Mi a változó nevű létrehozott?
>> DIÁK: String s.
>> JASON Hirschhorn: a változó hívják s.
Ez karakterlánc típusú.
Pontosan.
Következő dolog, amit szeretnénk, hogy nyomtassa ki minden karakter egy új sort.
Ki tud adni nekem a kódot?
[Nem hallható]?
Tudsz adni nekem?
>> Diák: Természetesen.
>> JASON Hirschhorn: Csináljuk.
És sajnálom.
Nem szeretem megismételni, amit mond mert kapsz, hogy jobb, de
meg kell ismételni úgy, hogy amikor átvezeti ezt, akkor kap minden
a szöveget ki az átiratok.
Így csak beszélj.
Sajnos, azt kell mondani, hogy felettetek.
Sajnálom, de -
>> DIÁK: Ez rendben van.
Az int i = 0
>> JASON Hirschhorn: Az int i = 0
>> DIÁK: Én kevesebb, mint -
>> JASON Hirschhorn: Pontosvessző.
>> DIÁK: Mielőtt ez, meg tudjuk tenni a változót, kapsz int név hossza?
>> JASON Hirschhorn: Ó, akkor nem szeretnénk, hogy a pontosvessző?
OK.
Szóval mit akarsz csinálni után nullára?
>> DIÁK: Azt akarjuk, hogy a húr hossza s és
meg, hogy a változó?
>> JASON Hirschhorn: OK, igen, hogyan tehetem ezt meg?
>> DIÁK: Szóval te int hossz =
>> JASON Hirschhorn: int length =
>> DIÁK: S-T-R-L-E-N.
>> JASON Hirschhorn: S-T-R-L-E-N -
>> DIÁK: s.
Konzolok.
>> Hirschhorn JASON: (S).
>> DIÁK: És akkor azt hiszem, meg kell hogy egy pontosvessző a két ints.
>> JASON Hirschhorn: A pontosvessző után nulla?
>> DIÁK: Igen.
Azután, hogy a pontosvessző után, és azt mondod, én kevesebb, mint hosszú.
i-nél kisebb hosszúságú, ami a változó.
>> DIÁK: És akkor pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
>> DIÁK: i + +.
>> JASON Hirschhorn: i + +.
Ott mi a hurok.
OK, belül a for ciklus.
>> DIÁK: És akkor nem printf.
>> JASON Hirschhorn: Printf.
>> DIÁK: Konzolok.
>> JASON Hirschhorn: zárójelek, idézetek.
>> DIÁK: zárójelek, idézetek,% c / n.
>> JASON Hirschhorn:% c, OK.
>> DIÁK: / n.
>> JASON Hirschhorn: / n.
>> DIÁK: Zárt idézi.
>> JASON Hirschhorn: Zárt idézi.
>> DIÁK: Comma.
>> JASON Hirschhorn: Comma.
>> DIÁK: S.
>> JASON Hirschhorn: S.
>> DIÁK: Bracket i.
>> JASON Hirschhorn: Bracket i.
>> DIÁK: És akkor zárt zárójelben.
>> JASON Hirschhorn: Zárt zárójelben.
>> DIÁK: És akkor pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
Fantasztikus.
Szóval mentéséhez.
Legyen varázslat.
Oh boy.
Van egy pár hibát.
Az első hiba line 11, azt mondja, várható kifejezés, és ez ad
nekem egy hiba, hogy a második int, ott van a hiba.
Van néhány hiba körül van.
Tudja valaki, hogy mi ez hiba?
Kurt?
>> DIÁK: Azt hiszem, ez volna egy vessző, és nem egy pontosvessző.
>> JASON Hirschhorn: OK, a vessző helyett pontosvessző.
Tehát az, hogy minden, amit kell rögzíteni?
>> Diák: Nem
>> JASON Hirschhorn: Mi más van szükségünk rögzíteni?
>> DIÁK: Van, hogy tartalmazza string.h.
>> JASON Hirschhorn: Include string.h.
Hol kell, hogy az említett?
>> DIÁK: Ugyanazon a helyen, amit többek között A másik dolog, jobb
után is stdio.h.
>> JASON Hirschhorn: Nézzük meg, ez működik elsősorban azért, mert általában szeretem
rögzíteni egy dolog az első, majd futtassa , és aztán majd meglátjuk, a hibákat kapunk.
Szóval majd törölje a terminál kontroll n, csináljuk, hogy varázslat.
Egy újabb hiba line 11.
Várható pontosvessző.
És én még mindig kapok hibák ezen a vonalon.
Így nem adott nekem egy hiba, mondván, hogy nem érti, mi az strlen,
de, hogy nekem hiba van az vonal, így mi más a baj?
Mark?
Marcus.
>> DIÁK: Van, hogy távolítsa el A második int nyilatkozat?
>> JASON Hirschhorn: Vegye a második int.
Próbáljuk ezt.
Most tiszta a terminál.
Legyen varázslat.
Hiba.
Értelemszerűen kijelentette könyvtár funkció strlen.
Tehát most már látom, hogy hiba.
Mire van szükség arra, hogy?
>> DIÁK: string.h.
>> JASON Hirschhorn: Include string.h, Megcsináljuk # include string.h tetején
a képernyőn.
Mentsük, hogy a varázslat.
Most össze.
Tehát újra, a dolgok, mi szükség van emlékszem, a 12. sorban a mi a hurok, amikor
építünk fel, int i = 0, hossz = strlen (ka) t.
>> Ez egy fantasztikus stratégia.
A stílus ez nagyszerű, a kialakítása ez nagyszerű.
Mehetünk be ezeket az okokat később, de így csak akkor kell hívni
strlen egyszer ahelyett, hogy minden egyes futtatásakor a hurok.
Azonban meg kell használni a vesszőt is és nem kell újra int.
Ha nyilvánítja mindkét változókat, akkor
Nem kell újra int.
És aztán, ha fogsz használni strlen, amely egy másik könyvtár
funkciót nem tartalmazza stdio.h vagy cs50.h, hogy
meg róla, hogy string.h.
Kurt?
>> DIÁK: Tehát, ha nem kell azt mondják, hogy milyen típusú hossza, ez azt
jelenti azt, hogy egy int?
Nem lehetett két különböző típus ott?
>> JASON Hirschhorn: így lehet két különböző típusú.
Hossza egy int itt, mégis.
Hossza egy int, mert vessző majd ugyanezt.
>> DIÁK: Tehát azt feltételezi, hogy ez fog hogy ugyanaz legyen, mint az első?
>> JASON Hirschhorn: Pontosan.
Nem fogunk ezt most, de lehet két változót a
ugyanazon a vonalon használ egy adattípust.
Így int x, y okozna két változó között.
Tehát int x, y, ha teszünk, hogy ez ad nekem egy használaton kívüli változó x és y, mert
nem használjuk őket.
Szóval, amivel üres előtt csak egy képzelet trükk, ha nem használja
valamit, hogy használja azt.
De mint látod, tudok létrehozni x és y ugyanabban a sorban egy vessző.
Ez létre két egész szám ott.
Szóval igen, teljesen lehetséges, hogy hozzon létre két dolog ugyanabban a sorban
vesszővel elválasztva.
Menjünk megszabadulni e, mégis.
>> Tehát van varázslat.
Köszönöm srácok a kódolási nekünk.
Nézzük, hogy ez még egyszer futtatni.
Adj egy string.
[Nem hallható], akkor nem a legtöbb belőle.
Mi a szöveg?
>> DIÁK: Hello.
>> JASON Hirschhorn: Hello.
H-E-L-L-O, minden karakter egy sorban.
Jól néz ki.
Fussunk újra.
Mindig lesz, hogy ellenőrizze sarok esetben.
Mi a jó sarokban ügy ellenőrizni?
>> DIÁK: A szám?
>> JASON Hirschhorn: A szám.
Úgyhogy fel az 1-ben, és nem írja ki 1.
Ez nem kér betűket, így úgy tűnik, mintha számok a munka.
Jó sarok eset, hogy ellenőrizze.
Mi a másik jó sarok esetben ellenőrizni?
>> DIÁK: egy üres string.
>> JASON Hirschhorn: Hm?
>> DIÁK: Mint egy üres string.
>> JASON Hirschhorn: üres string.
Szóval nem hozott semmit.
És mi lesz kinyomtatható?
>> Diák: Semmit.
>> JASON Hirschhorn: Semmi.
Úgy tűnik, hogy működik.
Megpróbálhatod még sarok esetben, de általában számok, más adatok
jó, hogy megpróbálja, és semmi.
Semmi, nulla, negatív mindig nagy dolgokat kipróbálni, és a dolgok, hogy
kell vizsgálni, a dolgok biztosan fogunk tesztelni A 50 és a Check vizsgálatokat fog végezni.
Bármilyen kérdése van spell.c?
>> OK, menjünk vissza.
Van még egy programot a srácok, hogy írjon.
Úgy hívják students.c.
Ez egy olyan program, amely kéri a felhasználó öt nevet, majd véletlenszerűen kiválaszt
és kiírja nevek egyike.
Ez a program egy kicsit részt, mint az elmúlt két írtunk,
miért nem vesszük öt perc alatt kódot is külön-külön, és aztán
kódot, mint egy csoport.
>> Ez a program magában néhány dolgot lehet, hogy nem látott, így ha
van egy kérdés, hogyan Én, hogy emelje fel a kezét.
Megyek át, és pont akkor a helyes irányba.
De mi is csinál, mert ez lesz egy jó módja annak, hogy vezessenek be néhány
témákat, amelyek bonyolult.
>> Így működik, nem?
>> DIÁK: Igen.
>> JASON Hirschhorn: Ha bekapcsolja a probléma meg, van sok módja van
, de van pár, ami elegáns, mint mások.
Engedje merülni be
# Include cs50.h.
# Include stdio.h.
int main érvénytelen, zárójelek.
Bent a zárójelek, Van két megjegyzést.
Az első az, hogy kérje a felhasználó öt nevet.
A második az, hogy véletlenszerűen válassza és nyomtassa ki nevek egyike.
Tehát lássuk az első, kérje a felhasználó öt nevet.
Ki kérte a felhasználó öt nevet és mondja meg, hogyan kell csinálni?
Csak két ember volt az első rész.
Három ember volt az első rész.
Négy, öt.
Tom, hogyan csinálod?
>> Diák: kijelenti karakterlánc és akkor a név, tartó öt.
>> JASON Hirschhorn: String nevet tartó öt.
Szóval mi ez a vonal csinál, string name tartó öt?
>> Diák: kijelenti egy sor húrok.
>> JASON Hirschhorn: Ez egy sor húrok.
Hány húrok mennek hogy beférjen ide?
>> DIÁK: Öt.
>> JASON Hirschhorn: Öt.
Kiváló.
Fogjuk nevezni neveket, mert fogunk, hogy több is.
OK, a következő lépés?
>> DIÁK: És akkor egy for ciklus -
>> JASON Hirschhorn: A loop.
>> DIÁK: - i = 0-ra.
>> JASON Hirschhorn: for (int i = 0-ra.
>> DIÁK: Pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
>> DIÁK: Én kevesebb, mint öt.
>> JASON Hirschhorn: Én kevesebb, mint öt.
>> DIÁK: Pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
>> DIÁK: i + +.
>> JASON Hirschhorn: i + +.
>> DIÁK: És akkor zárt zárójelben.
>> JASON Hirschhorn: Zárt zárójel, majd néhány zárójelek.
Bent a zárójelek?
>> DIÁK: És akkor printf.
>> JASON Hirschhorn: Printf.
>> DIÁK: Nyitott zárójelek, name% d.
>> JASON Hirschhorn: Tessék?
>> DIÁK: név.
>> JASON Hirschhorn Név.
>> DIÁK: És akkor tér majd% d.
>> JASON Hirschhorn: név, hely,% d.
>> DIÁK: És akkor / n, majd becsukta.
>> JASON Hirschhorn: Tehát név, hely, % D / n, zárt zárójelben.
>> DIÁK: Comma, i + 1.
Sajnálom.
Zárt idézet, majd a vessző, i +1.
>> JASON Hirschhorn: Zárva idézet, vessző, i +1.
>> DIÁK: Igen.
És akkor a következő sorban -
>> JASON Hirschhorn: i + 1.
>> DIÁK: Igen.
És akkor a következő dia Nevek konzol i.
>> JASON Hirschhorn: Következő sor Nevek konzol i.
>> DIÁK: = kap string.
>> JASON Hirschhorn: = Get -
tőke G-E-T -
string.
Hoppá, bocsánat.
>> DIÁK: nyitott, zárt zárójelek majd -
>> JASON Hirschhorn: nyitott, zárt paren.
>> DIÁK: Pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
OK, így inicializálja a tömb vonósok, neveket, aztán végig egy
a hurok, és öt alkalommal nyomtassa ki néhány kéri, hogy a felhasználó, majd tárolja
öt szálakat.
Van valakinek kiigazításáról ez?
Tom, azt hiszem, mindenki egyetért veled.
Elég jól néz ki.
OK.
Miért tetted i 1, igaz?
>> DIÁK: Úgy értem, nem kell hogy legyen, de én 1 úgy, hogy ez
Nevezz meg egy a nevét öt.
Ellenkező esetben nem lenne neve nulla a nevét négy.
>> JASON Hirschhorn: Szóval tettem 1 mert különben nem volna
kinyomtatható nullától négyig, mert ez hogyan számítógép gondolkodik, de az emberek
Nem igazán olvasni, mint ezt.
Ez egy másik dolog fogsz találkozni.
Néha, amikor nyomtatni valamit a felhasználó, akkor szeretnénk, hogy ez a
kicsit szebb, és ezzel i +1 ebben az esetben egy
módja annak, hogy szebb.
>> Azt is látni öt kétszer karakterlánc nevét öt, én kevesebb, mint öt.
Tudom, hogy hol van az öt.
Kaptad én mondom Ön öt nevet.
De ha azt akartuk, hogy a kód a kicsit erős, egy dolog, amit
tehetett itt, kívül int, tudnánk tenni valamit, mint ez,
# Define, és mi is ezt nevek 5.
>> Tehát alapvetően, ahol írok tőke N, A tőke, a tőke M, a tőke E,
tőke S, hogy a string, akkor cserélje hogy 5 a kódot.
Vagy nézzük csak ez - Majd csak ez szám.
Szóval meghatározó nagybetűs NUMBER hogy 5.
>> Tehát most, ahol már az 5-ös szám, azt helyettesítheti azt nagybetűs szám.
És most, ha meg akarom változtatni a számot a nevek, csak annyit kell tennie, hogy
ez egy sor, soros, négyhengeres, ahol van # Define 5-ös, a 10-változtatni,
vagy változtatni a 4.
Ha a kód hosszabb lesz, akkor nem fog emlékezni a helyeken
fel, hogy hány név akarsz, és érdekében, hogy ne hagyja az egyik, ez
egy jó módja annak, hogy csinálni, hogy talál valami fel tetején, majd csak használni, hogy a kifejezés
mindenütt az egész kódot.
Marcus?
>> DIÁK: Ez stilárisan preferált mint világszerte meghatározó
állandó n?
>> JASON Hirschhorn: Tehát az, hogy a stilisztikailag inkább, mint a globális
meghatározó állandó n?
Szóval azt mondod, te is igen, int szám = 5?
>> DIÁK: Vannak már mássalhangzók C-ben, vagy nem?
>> JASON Hirschhorn: vagy const - egyenlő.
Szóval azt mondja, csak egy globális változót?
>> DIÁK: Igen.
>> JASON Hirschhorn: Szóval stilisztikailag, nincs feltétlenül egyetlen helyes
válaszolni, de mind a két jobb mint dobott e véletlenszerűen
számok az egész kódot.
Nevezzük őket mágikus számok.
Amikor nézem a kódot, vagy ha valaki olvas át, ők
Nem akarok csak ez a véletlen számok hogy nincs értelme.
Még a szám 26, ami általában a betűk száma az ábécé,
jobb, ha meg ALPHABET fel felső és mentse a számot 26, hogy a húr,
ha van értelme.
>> Vagy probléma az egyiket, és nem - megint nem beszéltünk erről a
az idő, de ahelyett, hogy csak dobott egy 25 mindenhol vagy 10, akkor
menteni a szám 25, mint negyede vagy 10-es DIME, és ez megkönnyíti a
aki olvas át a kódot a Megértem, hogy miért választotta ezt a számot.
És azt is az Ön számára, ha valaha is szeretne frissíteni a kódot, ez teszi egy kicsit
erőteljesebb.
Igen?
>> Diák: Van ez a kód is lesz lesz elérhető számunkra után?
>> JASON Hirschhorn: Mindezek kód hogy írtunk együtt
majd e-mailben elküldjük Önnek fiúk és áll rendelkezésre.
Igen.
Tehát fel a felhasználót öt nevet.
Véletlenszerűen kiválasztásához és kinyomtatásához nevek egyike.
Ki tette ezt a vonalat?
Ez a legnehezebb sorban itt.
Sajnálom, Tom.
Ugye nagyon jó munkát végzett, de a ez egy kicsit trükkösebb.
Marcus, megy előre.
>> DIÁK: Hát először is, meg fogsz kell, hogy tartalmazza stdlib.h és time.h.
>> JASON Hirschhorn: Szóval azt mondod, a A felső, tartalmaz két könyvtárakban.
Azt akarod, hogy is S-T-D-L-I-B dot H, Standard Library, és milyen
volt a másik?
>> DIÁK: Time.h.
>> JASON Hirschhorn: # include time.h.
Tehát ez a két nagyobb könyvtárakban.
Gondolom, most mi lesz a funkciókat, amelyek ezekben
Két, ezért van szükség hogy bevonja őket?
>> DIÁK: Tehát, először te szeretne majd írni srand.
>> JASON Hirschhorn: srand.
>> Diák: (a idő (0)
>> JASON Hirschhorn: Bocsánat.
Srand (idő (
>> DIÁK: 0-ra.
>> JASON Hirschhorn: 0-ra.
>> DIÁK:)), pontosvessző.
>> JASON Hirschhorn: Egy másik zárt paren?
Pontosvessző.
Megyek csak cseréld A nulla NULL.
Megteszi az ugyanaz a dolog, de a általában, látni fogja NULL, amely
fogunk beszélni, a sorban a második.
>> DIÁK: Stílusában jobb?
>> JASON Hirschhorn: Általában az emberek jobb NULL, de ugyanaz a dolog.
>> DIÁK: És akkor int nevét.
>> JASON Hirschhorn: Int nevét.
>> DIÁK: =
>> JASON Hirschhorn: =
>> DIÁK: Rand.
>> JASON Hirschhorn: Rand.
>> Diák: (a)
>> JASON Hirschhorn: ()
>> DIÁK: Modulo szám.
>> JASON Hirschhorn: Mi modulo?
A karakter?
A százalék karakter?
>> DIÁK: Százalék karaktert.
Modulo számot, amit megadott fel csúcsra.
>> JASON Hirschhorn: Modulo szám.
>> DIÁK: És akkor pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
>> DIÁK: És akkor az új vonal, printf.
>> JASON Hirschhorn: Printf.
>> Diák: (a
>> JASON Hirschhorn: (
>> Diák: "
>> JASON Hirschhorn: "
>> DIÁK:% s / n
>> JASON Hirschhorn:% s / n
>> Diák: "
>> JASON Hirschhorn:% s / n "
>> DIÁK: Comma, hely nevét.
>> JASON Hirschhorn: Space -
>> DIÁK: Ó, azt hiszem, hogy mi nem hívjuk ide?
>> JASON Hirschhorn: neveztük el neveket.
>> DIÁK: nyitó zárójel, név.
>> JASON Hirschhorn: Open konzol, nevet.
>> DIÁK: Zárt konzol.
>> JASON Hirschhorn: Zárt konzol.
>> DIÁK:)
>> JASON Hirschhorn:)
>> DIÁK: Pontosvessző.
>> JASON Hirschhorn: Pontosvessző.
OK, mentsük.
Tegyük ezt a kódot.
Diákok.
Nézzük ezt a kódot.
Diákok.
Nem. / Diák. . / Diákok.
Neve is egy.
Azt mondjuk David.
Nevezz meg két, RJ.
Nevezz meg három, Rob.
Név négy, Lucas.
Nevezz meg öt, Joseph.
És akkor kiírja Joseph újra.
>> Hadd futni még egyszer.
Majd én ugyanazokat a neveket.
David, RJ, Rob, Lucas, Joseph.
És kaptam David ebben az időben.
Szóval nem ugyanaz a dolog, de az adott nekem egy másik dolog, és ez
mert persze, kérünk egy véletlen név.
Szóval azt hiszem, amely rólam vándorlás körül a szobában, hogy a legtöbb ember
talán van az első rész jobb létrehozása, amely tömböt, majd egyre
az összes nevet.
Arról beszélek, vonalak 10 és 16.
De sor 18 a 21 valószínűleg néhány dolog, amit még nem látott,
úgyhogy menjünk ezen az úton.
>> Ez a vonal, srand idő NULL alapvetően -
bocs, ugorjunk le egy vonal, rand ().
Ez ad egy véletlen számot, véletlen egész szám.
És ha bejön az ember rand, amely sok te -
M-A-N R tér-A-N-D -
a terminál, mint ez, M-A-N tér R-A-N-D, Enter.
Akkor jön létre, hogy a kézi-és képes lenne olvasni, hogy a rand
parancs kimenetek száma pszeudo random bytes után vetés a véletlenszám
generátor egyszer.
>> Szóval ez a leírás.
Ez az, amit Rand nem ad egy véletlen számot
hívja ezt a funkciót.
Sajnos, ez nem igazán véletlen mert ha hívod véletlen
anélkül, hogy neki egy kis mag, néhány kiindulási pont, akkor mindig választani
ugyanaz, és az általa használt formula meghatározni a következő.
Tehát, ha hívják rand, akkor csak megadja ugyanazt a dolgot.
Ez nagyon kiszámítható.
Ez valójában nem véletlenszerű.
>> Szóval, mit kell tennünk, egy Marcus utasítások nekem voltak mag rand
mással, amely a mi Az srand függvény.
Ez magok rand valami egy kicsit véletlen, mint ugyanaz a dolog, és a
ő vetés, hogy idővel NULL, amely van, csak megállapodás szerint, a jelenlegi
idő másodpercben.
>> Szóval feltételezzük, hogy mindenki nem fog futni a kód a pontos
azonos második, így ez egy biztos fogadás, hogy idő NULL lesz más
minden alkalommal a kód fut.
Biztos fogadás, hogy így lesz mag srand rand valami más minden
egyes alkalommal.
Tehát egyezmény, amikor mi szeretnénk a véletlen szám, írunk ezt a sort,
srand idő NULL, hogy nekünk sokkal több véletlenszerű mag, aztán futunk
rand, amely ad nekünk egy véletlen számot.
Igen?
>> DIÁK: tudod mondani, mi értesz azon, hogy mag?
>> JASON Hirschhorn: Seed, mint -
így rand fog felvenni bizonyos számú és ez fog használni néhány
formula, hogy ott.
Így fog kezdeni valamit majd kapcsolja be valami alapja
le, hogy a formula.
Ha mindig, hogy ez ugyanaz a dolog, ez mindig lesz, hogy kapcsolja be a
ugyanaz a dolog.
Tehát ez az első dolog, amit hogy ez a mag.
Szóval azt akarod, hogy ez valami különböző indulni, és így
majd kapcsolja be valami más.
>> És végül, a vonal 20, ez a% az úgynevezett
modulo, és ez zavaró.
Ez valami, ami egy kicsit más itt, hogy nem igazán
hogy a való életben matematika.
De alapvetően, ha veszel egy óriási számát, és oszd C, milyen
történik a többi?
>> DIÁK: Ez lesz csonka.
>> JASON Hirschhorn: Egyre csonka.
Így 20 osztva 3 mi?
Mit jelent, hogy vissza te, 20 osztva 3-mal.
Sajnáljuk, 10 osztva 3.
Mit jelent, hogy vissza az Ön számára?
>> DIÁK: [hangtalan].
>> JASON Hirschhorn: 10 osztva 3-csak vissza 3, nem 3. fennmaradó 1.
Tehát mi 10 modulo 3 visszatér csak a fennmaradó 1.
Tehát, ha tudni akarja, mi 10 megosztott 3-valójában volt, akkor,
do 10 osztva 3, akkor lennék a 3, és akkor megtenném 10 modulo 3, és
azt, hogy egy 1.
Szóval azt észre, hogy 10 megosztott 3-3, fennmaradó 1.
>> És ebben a sorban, rand lehet egész szám, lényegében.
Így modulo azt mondja, ossza meg száma, ami ebben az esetben 5.
És ha valaha is osztani egy számot, a mindig egész szám lehet kevesebb, mint
ez a szám.
Tehát, ha elosztjuk az egy 5-ös szám, A maradékot mindig lesz
nullától négyig.
Ez csak, hogy a matematika működik ki.
>> Tehát sok moduloed egy kisebb szám mindig visszatér
maradék, és mindig visszatér néhány szám, ami kevesebb, mint a szám
osztva.
Van valakinek kérdése van modulo, mert jön a nagyon,
nagyon praktikus, ezért szeretnénk, hogy győződjön meg arról, Mindenki érti?
Cool.
És láttuk, hogy ez a program működött.
OK, mozog.
>> Így a következő, fogunk menni funkciók, és fogunk menni
a többi ez a cucc nagyon gyorsan, mert azt akarom, hogy a
parancssori paramétereket.
Tehát funkciók lényegében, ahogy láttam, fekete doboz.
Vesznek dolgokat paramétereknek nevezzük, csinálnak valamit, hogy nekik, vagy
megváltoztatni őket, vagy hozzon létre egy mellékhatás, és végül, de köpni
valamit, ami a visszatérési érték.
Tud valaki adjon nekem egy okot miért is használható funkciók?
Bárki?
Az egyik ok, hogy miért lenne használható funkciók?
Valaki?
Láttam két kézzel.
Mi a jó oka?
Marcus?
>> DIÁK: Ha ki kell hívni az azonos kódrészletet többször.
>> JASON Hirschhorn: OK, ha kell hívni az azonos darab
kódot többször.
Jeff ugye van egy másik oka?
>> DIÁK: Csak azért, hogy lehet kevesebb kódot.
>> JASON Hirschhorn: A kódot kevesebb.
Rendben.
Ha szeretne tenni valamit a sokat -
Az előző kódot, tudtam volna írásban kap húr ötször, de egy
A hurok teszi meg szebb és meg kell írni kevesebb kód.
Funkciók egy hasonló ötlet.
Ha azt akarom, hogy nem ugyanaz a dolog nagyon, helyezze azt a funkciót, és hívja, hogy
funkció minden egyes alkalommal.
Hogy meg fog tenni, hogy a dolog az Ön számára.
Ez egy jó ok használható funkció.
>> Tehát anatómiája a funkciót.
A funkció általában néz ki.
Ez lesz kezdeni a visszatérési típus, akkor megkapod a nevét.
Beletelik az érveket, egyébként ismert, mint a paramétereket, és a belső
a zárójelek, akkor írja be a kódot.
>> Láttuk egy funkció sokat.
Ez fő.
Itt fő egymásra rá hogy anatómia volt korábban.
Mit int itt jelent?
Mit int jelent?
Amikor írok int main (void).
>> DIÁK: Return típus?
>> JASON Hirschhorn: Tessék?
>> DIÁK: A visszatérési típus.
>> JASON Hirschhorn: Int a vissza típus, pontosan így van.
Fő tér vissza int.
Mi az a legfontosabb?
>> DIÁK: A függvény neve.
>> JASON Hirschhorn: Main a a függvény nevét.
Pontosan így van.
És érvénytelen?
Mi az érvénytelen zárójelben?
>> DIÁK: Nem kell a külső érték.
>> JASON Hirschhorn: Tehát érvénytelen -
van.
Belsejében, tesszük a paramétereket vagy az érveket a
függvény, mi folyik a fekete dobozt.
Amikor írsz érvénytelen, azt mondod, ez semmit nem vesz be
Így int main void azt Main nem vesz semmit be
>> Bent a zárójelek között van néhány kódot, akkor azt látjuk, a végén
vissza nulla.
Mit jelent a vissza nullát jelent?
Nos, beszélgettünk visszatérési típus.
Fő kell, hogy visszatérjen egy int.
Ez az, amit ez a sor nem.
Ad vissza int, nulla.
>> Persze, még nem láttam, hogy sok mert a programozási tegyünk
a gépek, és mi a fordító használunk manapság, akkor
nem kell, hogy a vonal.
Main elég különleges, hogy tudja, ha eléri a végét fő, csak
vissza nulla, ha minden jól megy.
Sőt, ha valami nem megy jól, Fő gyakran visszatér egy másik
szám jelezve, hogy valami volt a baj a programmal.
>> Tehát általában, ha látod kódot, nem írok vissza nullára, de jó
tudni, hogy ez történik mögött jelenetek, mert ha írsz
egy másik típusú funkció akkor lesz szüksége, hogy
közé tartozik a visszatérő ág.
Ha azt mondod, megyek vissza int, akkor a
írjon vissza valamit.
Ha azt mondod, üres itt a Kezdetben void main érvénytelen, mert
Például, akkor ez nem tér vissza bármi - érvénytelen nem jelent semmit -
így nem kell, hogy a visszatérő ág.
De még írni valamit, ami nem érvényteleníti a visszatérési típus, meg kell
egy vonalat, amely azt mondja vissza, és kell, hogy valamit ott
amely megfelel a típus.
Kérdése az, hogy?
Édes.
>> Scope.
Ez olyasmi, amit már érintette is.
Minden változó, mint tudjuk, egy bizonyos körben, és ez alapvetően
beszél, ahol a változó lehet, hogy nem lehet hivatkozni.
És azt szeretném mondani, hogy mi történik A kapcsos zárójelek marad
belül a zárójelek.
Így például, ha megnézzük ezt a kódot, mi meghatározó globális változót
kívül fontos, int a, itt a tetején.
Mi úgy hívjuk másik int a belső fő.
Van még pár zárójelek, és mi hívás egy másik int a.
>> Három egy a kódot.
Ezek nem ugyanaz a dolog.
Már létrehozott három különböző változót.
Ezután ezekben belső göndör nadrágtartó, azt mondom, a = 4.
Amely, hogy beszél, a első, a második,
vagy a harmadik?
>> DIÁK: A harmadik.
>> JASON Hirschhorn: Ez beszél a harmadik.
Minden ilyen egy valóban lehet beszélt ebben a konkrét
például azért, mert körük minden rendben ebbe a legbelső zárójelek.
Azonban, ha hívja a dolgokat ugyanazt név, van valami neve rejtőzik.
Szóval csak azokkal vagy kijavítani, vagy használja a legutóbbi változó, vagy az,
legközelebb hozzád.
Tehát itt bent, ez a harmadik a legközelebbi az, hogy a vonal, a = 4, és ezáltal azt
befolyásolja a harmadik.
És az utolsó sor, a = 2, ami a nem hogy beszél, az első, második,
vagy harmadik a?
>> DIÁK: Second.
>> JASON Hirschhorn: Ez beszél a második a.
Természetesen, a harmadik pedig a legközelebb azt a kódot, de a harmadik egy
nem létezik külső a zárójelek.
Ha már, hogy a zárt göndör zárójel, ez olyan, mint hogy elment,
lényegében.
Így a két van hátra azok első kettő, és persze, most
ez van a legközelebb a második.
>> Szóval ez egy jó dolog, hogy emlékeznek a hatálya alá.
Például, biztos vagyok benne, hogy már találkozott ezt egy do while ciklus.
Ha elindítani a változó belső A nem while ciklus, majd megpróbál
hozzáférni kívül, akkor valószínűleg Van egy kis figyelmeztetés, mint ez a
változó nem létezik.
Ennek oka, hogy a hatály ötlet, , hogy a dolgok csak akkor létezhet,
belül a zárójelek.
Zárójelek, mint egy hatalmas ölelés, amely adsz a kódot, egy másik
módja annak, hogy gondolni rá.
>> Tehát ez egy másik funkció, amit a srácok a kódot, hellofunction.c.
Fogunk hagyja, hogy most, de ez az, amit azt javasoljuk, hogy
gyakorolni a saját.
Írj egy programot, melynek fő hívások másik funkció, amely kiírja a
üdvözlő, hogy a felhasználó számára.
Ez lényegében véve hello world és absztrakt, hogy a printf
másik funkció.
De nem fogunk csinálni, hogy most mert nincs annyi idő
maradt, mint szerettem volna.
>> Így függvény deklaráció.
Már ilyet is.
Ha szeretne írni egy függvényt, meg kell, hogy hagyja, hogy a számítógép tudja, és
Fő tudja, hogy létezik.
Mi tehát meghaladja a legfontosabb, írunk A visszatérési típus, a nevet, és a
paramétereket, majd lent fő, itt, mi valójában másolni, hogy a vonal
és írjuk be az aktuális kódot.
Szóval ez így, ha hívja a függvényt a fő a tetején, tudja, hogy a fő
helló van, például, ha én lennék hívni hello, és akkor úgy néz ki, hogy
végrehajtási lent.
Mi történik, ha nem tartalmazza ezt a line up tető, semmissé helló (void)?
>> Ha nem ezt a sort és a főbb hívások hello, én vagyok
majd kap egy hiba.
Én megyek, hogy egy hiba miatt a fordító nem tudja
hogy ez a dolog létezik.
Ez hasonló ahhoz, hogy miért nem # include cs50.h.
Milyen lényegében cs50.h csinál a napokban, hogy sor ott.
Ez amivel kap int oda.
Ez amivel az összes ilyen funkció prototípus, mielőtt fő, hogy amikor
hívja őket fő, fő tudja hogy ezek a dolgok léteznek.
Ez az, amit a. H fájlokat nem.
És ha megy, hogy a saját funkció, muszáj, hogy megbizonyosodjon arról
teszel, hogy prototípus ott.
Bármilyen kérdése van az eddig?
>> Parancssori paramétereket.
Ezt fogjuk befejezni be, majd remélhetőleg
nyomjon néhány Pset.
Én nem tudom, hogy képesek leszünk szorítani hogy azért, mert az idő, de a
veletek, akik itt vannak, és ha akarnak mondani, miután egy kicsit, akkor
lehet menni rajta kívül.
De mi lesz a végéig parancssori argumentumok
az utolsó 15 perc alatt.
Mi ébren, Michael?
Ébren vagy?
Jó.
Nem tudom, ha alszik csukott szemmel.
Lenne bonyolult.
>> Parancssori paramétereket.
Ezek az egyik módja annak, hogy át információkat egy programot.
Végül, akkor találkozunk másokkal.
De alapvetően, mi fog megállni írásban int main (void), ha azt akarjuk, hogy
némi parancssori paramétereket.
Fogjuk írni ezt a dolgot nevezett int main (int argc,
karakterlánc argv, zárójelben.
Ez zavaró.
Ez egy csomó levelet, amelyek nem ember angolul, így fogunk
csomagolja őket most.
>> ArgC jelentése érvelés száma -
és újra, mind az ezek elérhető Online -
és ez a szám az érveket.
ARGV jelentése érvelés vektor, és ezek az érvek magukat.
Ez egy sor húrok.
Már valóban látott egy tömb A húrok mai nap előtt.
Hoztuk létre az egyik az utolsó program keretében kódolt.
>> Tehát itt van egy példa.
Írok. / Ohai CS50 rész én parancssorban.
ArgC ebben az esetben egyenlő 3.
ARGV konzol a 0 ohai, argv konzol 1 a CS50, argv tartó 2. rész.
Ismét argc az argumentumok száma, és az út, hogy egy kicsit
bit, akkor mindig számíthat a nevét funkció, mint az első érvet.
Tehát ebben az esetben, három érveket, a nevét, a funkció
majd a két, amit gépelt be
>> Ezután fogjuk menteni az érvek magukat argv.
És ismét, ahogy láttuk korábban, mi ez az utolsó program is kódolt.
Mozoghat a tömb argv és kap a húrok.
Ez lényegében az, amit tettünk a a végén a mi utolsó program.
Szedtük egy véletlenszerű nevet, majd elment neveket tartó bármi és nyomtatott
ki a húr található ott.
>> A tetején csak egy tömböt, mert húrok maguk tömbök, mint
beszélt, akkor tömbök A tömbök, amelyek
lényegében az, amit argv is.
Ennek egyik módja lehet gondolni ez sorok és oszlopok.
Tudok rajzolni, hogy most.
Így argv -
ez nem törli.
Rajzoljunk alatt ohai.
>> Tehát, ha írtam, ohai CS50 rész, Megyek csonkolni
fejezetben ezt a példát.
De lényegében a többdimenziós tömb ohai CS50,
fogunk csinálni szekta.
Tehát itt, én is elérheti -
ha átadom neki argv egy szám -
ez rossz.
Mi a baj ebben a diagram?
>> DIÁK: Kezdjük a nulla.
>> JASON Hirschhorn: Meg kell kezdeni nulla.
Talán érdemes is forgatni, de mert én már húzott bele, én vagyok
fogja hagyni, hogy ott van.
De a nulláról kezdi.
Ez így van.
Sajnálom, ha ez a kicsi.
Tudtok olyan látni?
Tehát, ha én argv 0, én kap minden ohai.
Ha megteszem argv 1, hozok minden CS50.
Ha megteszem argv 2, hozok minden szekta.
>> De most, ahogy mondta, vonósok tömbök magukat.
Szóval, mit tehetek, hogy tudom kezelni ezt a egy többdimenziós tömb, és
tehet valamit mentén argv 0, 0, ami nekem csak a
karaktert 0-ra.
ARGV 0, 1, ami nekem csak h.
ARGV 1, 3, ami nekem éppen a 0 itt lent CS50.
>> Tehát azért, mert maguk húrok tömbök, mi üzembe
hogy egy másik tömbben.
Most már sor tömbök, és képes index a mi első tömb és
akkor index a mi második tömbben.
És, ahogy az elvárható, hogy a mi mellett csak üzembe a két -
mi a szögletes zárójelek csak közvetlenül egymáshoz.
Tehát ebben a példában, argv 1 CS50 és argv 1, 2, ahogy mondtuk, mindössze 5.
Van valakinek kérdése van többdimenziós tömbök?
Srácok csinálnak félelmetes.
Édes.
>> Tehát egy másik program itt, és ez az utolsó dolog, amit még
fog csinálni most.
Szóval azt akarom, hogy írjon egy programot, amely vesz a felhasználó teljes nevét, és csak két
két parancssori paramétereket, és végül, nyomtassa ki egy üdvözlés a
felhasználó, amely magában foglalja az első név.
Akkor miért nem veszel három vagy négy percet, hogy ezt, és aztán elmegyünk
rajta mint egy csoport, és akkor majd lezárja?
>> És ismét itt, amikor azt mondjuk, hogy egy felhasználó teljes nevét egy a leírás
ez a probléma, meg kell parancs paramétereket, nem használ kap string.
Igen, Marcus?
>> DIÁK: Tehát, ha mondjuk két parancs paramétereket, hogy amellett, hogy
a. / run, vagy -
>> JASON Hirschhorn: Jó kérdés.
Do, beleértve a. / Run, három parancssori paramétereket.
Vagy például a. / Személyre szabott, az Ebben az esetben, mivel ez a
fájl nevét.
Így argc lenne három.
De azt akarom, csak két paramétert adni a programnak.
Meg kell határozni, hogy az.
Csinálok, hogy a változás múlva adom ezeket, és elküldi őket, hogy titeket.
>> DIÁK: Mi van, ha egy középső neve?
>> JASON Hirschhorn: Ha van egy középső nevet, akkor így jártál.
Sajnálom.
Vagy ha csak megy Shakira, te is jártál.
Igen?
>> DIÁK: Tehát, amikor az emberek nem cs50.h, vajon meg argv
mivel char csillag argv?
Vagy még mindig hívják húr argv?
>> JASON Hirschhorn: Igen.
Tehát string, megint azt maszk alatt, amit pontosan történik ott.
Ez lesz talán csomagolni szerdán, de hamarosan.
Ez olyan, mint képzés kerekek.
Mert lényegében, ez ugyanaz a dolog.
>> Szóval vessünk egy percig a műsor ezt, és aztán megy át
azt a csoportot, majd mint mondtam, lezárja.
És azt hiszem, még mindig extra cukorka, így srácok remélhetőleg venni
az, vagy kérjük, vegye ezt.
>> Bocs, ha még mindig az írás, de szeretnék merülni, és
fejezni össze.
Így írtam, # include cs50.h, # include stdio.h.
int main (void), kapcsos zárójel, hullámos zárójel, belső három sor
pszeudokódját, hogy a felhasználó teljes nevét, kettő, míg parancssori
érvek, nyomtassa ki egy üdvözlés a felhasználó, amely magában foglalja az első név.
>> Tehát, az első, hogy a felhasználó teljes nevét.
Ki tud nekem segíteni, hogy a felhasználó teljes nevét?
Hogyan csináljam azt a részét?
Csináltatok, hogy az első rész?
Vegyünk egy felhasználó teljes nevét.
Nos, az, hogy egy parancssori érv, hogy mit írjak?
Mit kell változtatni a a függvény deklaráció?
>> DIÁK: Nem akarsz hogy érvénytelen többé.
>> JASON Hirschhorn: Pontosan.
Én nem akarom, hogy érvénytelen.
Amit akarok, hogy legyen?
>> DIÁK: Int argc.
>> JASON Hirschhorn: Int argc.
>> DIÁK: String argv.
>> JASON Hirschhorn: String argv.
>> DIÁK: Bracket, konzol.
>> JASON Hirschhorn: Bracket, konzol.
Ez pontosan így van, és ez az valójában hogyan fogok kapni
a felhasználó teljes nevét.
Mennek, hogy azt ott.
Annak érdekében, hogy egy kész.
Így most azt akarom, kettő, míg parancssori paramétereket.
Tehát Noah, mi az egyik módja tudok ellenőrizze a számot a parancs
argumentumok van?
>> DIÁK: Ugye egy if.
>> JASON Hirschhorn: Ha adatok, pontosan.
Mit akarok a feltétel?
>> DIÁK: Ha argc 3-nál nagyobb.
>> JASON Hirschhorn: Ha argc nagyobb, mint 3.
Ha argc nagyobb, mint 3, mit tegyek?
>> DIÁK: Return 1..
>> JASON Hirschhorn: vissza 1.
Will, amelyek biztosítják azt, hogy kettő, míg?
>> Diák: Nem
Ha nagyobb, mint argc 3 és kevesebb mint 2.
>> JASON Hirschhorn: Ha argc nagyobb mint 3, és argc kevesebb, mint 2.
Mi az egyik módja tudom írni ezt csak egy sort, vagy anélkül használ, hogy
és logikai operátor?
>> DIÁK: Ez nem egyenlő 2-re.
>> JASON Hirschhorn: Ha argc nem egyenlő 2-vel.
Pontosan.
Tehát ha argc nem egyenlő 2, azaz ad nekem ez a program,
személyre szabott, amikor elindul, és hogy ad nekem, hogy hány
parancssori argumentumok?
Hány fogok ellenőrzi?
>> Bocsánat.
Hadd átfogalmazni ezt.
Ha argc = 2, mennyi mindent tett a felhasználó ír be a sorba?
>> DIÁK: Egy.
>> JASON Hirschhorn: Csak egy.
Tehát korábban, igazad volt, Noah.
Mit tényleg kell, hogy tegye oda?
>> Diák: Erről egyenlő 3.
>> JASON Hirschhorn: argC nem egyenlő 3.
Azt akarom, hogy egyenlő 3, mert azt akarom, személyre szabott és a másik kettő.
Tehát ha argc nem egyenlő 3, vissza 1.
Miért mondtad vissza 1?
>> DIÁK: Mert azt jelenti, hogy rossz.
>> JASON Hirschhorn: Ez azt jelenti, hogy a baj, És mi az fog csinálni?
>> DIÁK: Re-kéri a felhasználót.
>> JASON Hirschhorn: Meg fog lépni a programot, így meg kell futni
újra, de nincs semmi itt kérni őket.
Én nem kértem ezt.
Szóval ez pontosan így van.
Vissza 1 csak kilép a program.
Remek.
>> És nyomtassa ki egy üdvözlő a felhasználó amely magában foglalja az első név.
Hogyan lehet ez?
Anna?
>> DIÁK: Printf.
>> JASON Hirschhorn: Printf.
>> Diák: (a "
>> JASON Hirschhorn: (
>> DIÁK: "hello
>> JASON Hirschhorn: "hello
>> DIÁK:% s
>> JASON Hirschhorn:% s
>> DIÁK: / n
>> JASON Hirschhorn: / n
>> Diák: ",
>> JASON Hirschhorn: "
>> DIÁK: ARGV
>> JASON Hirschhorn: Tessék?
>> DIÁK: ARGV
>> JASON Hirschhorn: argv
>> DIÁK: Szögletes zárójel 1..
>> JASON Hirschhorn: Szögletes zárójel?
>> DIÁK: 1..
>> JASON Hirschhorn 1.
>> DIÁK: And) pontosvessző.
>> JASON Hirschhorn:) pontosvessző.
Fussunk ezt.
Személyre szabott.
. / Személyre.
Ez csak kilép.
Miért ez ki?
>> Diák: nem hozott semmilyen érvet.
>> JASON Hirschhorn: Én nem fel olyan érveket be
Jól néz ki.
Srácok szögezték.
Tehát ismétlem, bement argv és elején ellenőrzésre argc.
Ez két fontos dolog, hogy emlékezzen.
Így az utolsó két percet, mielőtt hagyjuk, akkor nem fog a Pset két, hanem
mint mondtam, ha azt szeretné, hogy maradjon, miután 10 percig, szeretném, hogy boldog, hogy menjen
mint veletek a logika Ezen probléma határozza.
Mi volt a sok fedezésére ma így nem tudtam őket.
Általában szeretem is hogy a végén.
Tehát, ha azt szeretnénk, hogy sehova, maradni 10 percig.
Azt fogom tenni.
>> Aztán, ahogy már említettem az elején, Pset nulla és egy, mi lesz, hogy az
visszajelzést vissza hozzád, mint a lehető leghamarabb.
A cél az, hogy Pset egy visszajelzést, a megjegyzéseket rész,
mielőtt Pset két esedékes.
Tehát, ha néhány hibát, vagy stilisztikailag, a dolgok jobban,
akkor ezt az információt, így nem fog ugyanazokat a dolgokat Pset kettő.
Majd a jövőben, akkor kap minden a Pset visszajelzések és észrevételek
vissza, mielőtt a következő esedékes.
>> Végül, ha tudnék tenni egy másik dugó visszajelzést.
Ez az első részben.
Ez volt az első rész tanítás ebben az évben.
Menj oda.
Írja cucc, jó és rossz, és én ezt meg is teszi, hogy a
rész jobb legközelebb.
És végül, újra, ha szükséges valami, szólj.
Én több mint boldog, hogy segítsen nektek.
Ha csak azt, cukorkát, én lesz extra cukorkát.
Örülök, hogy neked.
>> Ez lesz egy csodálatos tanfolyamot.
Ez az egyik, ha nem a kedvenc Persze vettem életemben,
és remélem, hogy az lesz, hogy csodálatos.
Szóval azt akarom, hogy tegyen meg mindent tőlem telhetőt annak érdekében, hogy félelmetes, hogy az Ön számára.
Fogok küldeni egy e-mailt, ha az én részben vagy Noé, és
megpróbáljuk és a menetrend minden egyes srácok az ideje, hogy ellenőrizze az
következő hetekben, így tudok egy értelemben, amit a CS háttér,
és ez is segít nekem szabott ezeknek szakaszok, hogy jobban megfeleljen az Ön igényeinek.
Szóval ez az, amit én kapott sorakoznak.
Ismét találkozunk kint ha azt szeretné, hogy ott legyen.
Ez volt a héten két részt.
Köszönöm srácok annyira.