[Powered by Google Translate] [♪ ♪ zúgás]
Szóval, hogy bemutathatjuk Önöknek, mit kaptam meg a képernyőn;
ez az egyik olyan eszköz, dolgoztunk a nyáron;
ezt hívják CS50 Spaces,
és ez a mi együttműködési kódoló alkalmazás
hogy fogunk használni részekben.
Ez nagyon klassz.
Van bármilyen Látta CS50 run még?
Hadd húzza, hogy akár egy másik lapon.
Run.cs50.net
Így
ha megy run.cs50.net,
látod ez egy az Ön böngészőjében módon
ténylegesen kód - levelet C kód,
majd futtassa azt,
így mindkét lefordul azt, fut, majd visszatér a kimenet az Ön számára,
így ez egyfajta hűvös módja annak, hogy a kísérlet
néhány, a kódot, hogy Dávid megy át előadások
és adunk, hogy rajtad a probléma készletek
nélkül, hogy ténylegesen, hogy tűz ki a készüléket.
>> Szóval mit jelent ez közös eltérő
ha vissza akar váltani ezt a fület,
Közös jelentése CS50 távon, mint látod itt,
de ha lapozzunk át, és nézd meg a másik oldalán az ablak,
látod a jobb én vagyok az egyetlen ember ezen a helyen,
de mit fogok csinálni a kérni titeket, hogy csatlakozzanak ehhez Space velem
és mi minden kap kód ugyanaz a kis ablak,
ossza kód egymással,
és beszélni a különbség a kódot.
Szóval ez egyfajta klassz dolog -
így csatlakozni, ha látogat meg ezt a linket itt a tetején
hogy én már kiemelte,
akkor csak írja apps.cs50.net/spaces/vqcspSnO.
>> Rendben, így elindul,
Fogok adni egy kis utazásszervező ezt.
Csinálunk néhány ostoba kis kódolás vele először,
csak azért, hogy mindenki kap egy kicsit érezni, hogy milyen,
de amit tettem -
vagy mit fogok csinálni itt is -
Megyek, hogy a kódot írtam itt,
amely mint látod, most üres;
nem csinál semmit.
Ez csak kazán lemez kódot, akkor hívni.
Egy kis teendő megjegyzést.
Fogom menteni az ütő a Mentés gombra.
És, hogy mi nem ez
kiemelte, hogy ide röviden - a felülvizsgálat save zöld doboz,
és most, ha keresni nekem a Space,
gombra kattintva a nevem,
láthatod, hogy kaptam ezt a felülvizsgálatot itt,
és ha rákattint a módosítás,
ez lesz betölteni, hogy a kódot a tér is.
>> Szóval, azt mindenki, hogy a betöltött kódot a hely?
Rendben, ha még nem, megy előre, és nem arra, hogy
aztán mit akarok titeket csinálni ezt a kis to-do szakasz
A levelet egy kicsit a printf magadról,
így például, írnék
printf ("A nevem Nate");
majd én levelet
"Én diplomát 2009-ben
a Stanford "
és én szeretném hallani
melyik évben van az iskolában,
hogy te, a főiskolai vagy az üzleti iskola
vagy más Harvard iskola,
amit tanul, ha ez ismert még;
ha ez nem ismert, ez teljesen jó.
Én nem úgy koromig késői én másodéves.
és akkor én is szeretném tudni
valami őrült akar mondani, vagy
valamit az osztályban, vagy csak bármi mást.
Amikor befejezte írásban, hogy az a kis printf,
ha akkor mentse a felülvizsgálat, vagy inkább
Először győződjön meg arról, hogy tudjuk futtatni
és hogy kiírja, hogy pontosan mit akar, hogy nyomtassa ki,
majd ha megy előre, és mentse a módosítás
a Revision Mentés gombra, ez az első kis fickó ide,
és mi kicsit megy keresztül, és egy kis bevezetés így.
Szóval kéne, hogy elérje a Play gombot,
amely akár itt a bal felső sarokban,
így ez a Play gombot a bal felső fog
küldje el a kódot, hogy a szerver, ha lesz összeállítani, majd futtatni.
Szóval, mi kicsit őrült erről szóló
ez a kód valójában nem fut a számítógépen;
ez valóban küldött az interneten keresztül.
>> Hogy megy, Charlotte?
>> I - rendben. Én - Azt hiszem,
miután nehézségek mentés
a kiszolgálón úgy, hogy lehet - tudom futtatni a programot.
És akkor, amikor megpróbálom futtatni, azt mondja, hogy van egy hiba.
Nyilvánították vírus, amely nem ott.
Oh, lássuk, tud hit Mentés megint?
Látom a képernyőn.
>> Rendben, oké, szóval ez az, amit én.
És nem tudom, hogy miért nem engedik meg.
Ó, oké, sajnálom.
Meg tudod magyarázni, hogy miért -, mi volt a baj - mi nem működik vele?
>> Igen, mert én nem látom, hogy volt egy utolsó sorban, ha van még egy változó
hogy én nem jelentett, amit nem szándékozott rá, hogy ott van.
Igen, tökéletes!
>> Most, ha menteni, azt hiszem, meg kell dolgozni.
Most, hogy mentette meg, hogy működik, félelmetes.
>> Szóval igen, ahogy megyünk keresztül -
Szóval, mi folyik,
Én csak majd ismételje meg ezt a fényképezőgépet.
Mi történt az volt, hogy ez a változó s
maradt után - Gondolom, el kell hagyni néhány más dolgot
ahol a bejelentett,
és így ezt dobás dolgokat, és nem engedem, hogy futtatni.
Szóval ez pontosan mit akarunk csinálni szakaszban
van már ember igyekszik írásban különböző darabjainak kód
összeállítása azt, mi működik, mi nem,
majd kicsit beszélni ezekről a dolgokról, mert ezek kioldási pontok
Még mindig szembesülnek,
Még mindig - Én nem sok buta dolgot minden alkalommal,
, és nem tudom, hogy miért nem működik,
úgyhogy húzza fel Charlotte felülvizsgálatára 3,
és mi futtatni.
>> Tehát, amikor futok, most, hogy megvan neki kódot itt
Azt lehet nagyítani, nyomja meg a Run gombot,
feltöltve azt, épít rá, futtatja,
azt mondja, hogy futott sikerrel, és ha lapozzunk lefelé,
lásd Charlotte egy junior az Adams House,
pszichológia, a másodlagos a közgazdaságtanban, awesome.
Örülök, hogy találkoztunk!
Félelmetes.
Oké, mozgó, menjünk Daniel,
megy felülvizsgálat 3,
fordításához, futtatásához;
miért nem mondja el nekünk egy kicsit magadról, Daniel?
Hívj >> Dan.
Megyek üzleti iskola szerte a srácok,
és én voltam a tengerészgyalogosok előtt van,
és ez minden új számomra, szóval igen.
Ne érezd magad rosszul, én vagyok 30, és nem tudom, sem ez a cucc.
Félelmetes, köszönöm, Dan!
Rendben, van egy másik Daniel.
Menj Daniel - fogsz bemutatni magad, Daniel?
>> >> Persze, én vagyok Daniel.
Vagyok másodéves Mather most.
Én koncentráló kormány,
de azt akartam, hogy CS50 mert hallottam nagy véleménye az osztály
és én soha nem próbáltam CS előtt.
Görgessen le ide, és meg kell mutatni az - cool.
Továbblépve, Jared.
Hogy megy?
>> Jó, hogy van?
Amint látod, én vagyok a junior filozófia koncentrátor itt Eliot,
Eredetileg Dél-Kalifornia,
és én vagyok érdekelt figyelembe CS50, mert szeretem a logikáját is,
és úgy tűnik, nagyon jó, hogy a dolgokat a számítógépen, így.
Félelmetes, ahol Dél-Kaliforniában vagy?
>> Körülbelül egy órával a [hallhatatlan], egy kis város [hallhatatlan].
Ó, igen, apám honnan Redlands.
Cool stuff.
>> Rendben, Jimmy, hogy megy, Jimmy?
>> Jó, hogy van?
Doing nagyon jól!
Mesélj magadról.
>> Vagyok újonc, és nem vagyok teljesen biztos benne, mit szakon
de én kicsit felé hajlik közgazdaságtan.
Mint Daniel előttem, én soha nem csináltam semmi CS, de úgy hangzik, kicsit hűvös.
Én eredetileg Chicago.
Félelmetes. Akkor nézd meg a nyomat itt.
Meg akartam kérdezni, tette ezt nyomtatott ki, mint amire számítottál?
>> Nem, elfelejtettem nyomtatni az új vonal.
Igazából elfelejtettem, hogy amikor írtam az én világom
először, is.
Ez egyfajta fájdalom, hogy emlékezzen, hogy terjesszen azok, kézzel.
Jó lenne, ha csak azt tudom, hogy az, amit akartam.
>> Oké, Kelly.
Wow, van 2 Kellys, 2 Daniels, 2 Kellys.
Szóval Kelly - mész Kelly Ren?
Oké, félelmetes.
Vagy Kelly, úgy értem.
>> Szóval igen, ezért vagyok Kelly.
Vagyok másodéves a Pfoho.
Kaptam egy e-mailt, hogy ma még mindig van 7 hét bejelenteni a koncentrációt,
úgyhogy próbálok nem gondolni rá,
és szeretem sütés, futás, és Craisins.
Nem tudom tapasztalata legtöbb CS;
Én tanítottam magam építeni webhelyek koromban nagyon fiatal,
de azt hiszem, talán tanított magam rossz sokszor.
Remélhetőleg fogok tanulni egy kicsit
és - igen.
>> Félelmetes, jól, köszönöm.
Menjünk a másik Kelly;
Nekem nincs semmi - mondtál valamit itt?
>> [Hallhatatlan]
Ott van!
Édes!
>> Rendben, tehát vagyok Kelly.
Én egy elsőéves hallgatója.
Én szakon Mind, Brain, és oktatás.
Végeztem Franklin és Marshall College 2008-ban
A nagy kiadók a pszichológia és a szociológia
és egy kis francia.
Elviszem CS50
mert én vagyok érdekelt abban, hogy a PhD in Neuroscience
és úgy érzem, ez segít nekem megérteni a technológiát használják.
Félelmetes.
Továbblépve, Mikaela.
Ez a helyes kiejtése?
Oké, félelmetes.
>> >> Vagyok Mikhaila.
Vagyok másodéves a Kirkland House,
és én koncentrálva Mechanical Engineering.
Nagyon szeretem kerékpározási, épített egy kerékpáros ezen a nyáron.
Elviszem CS, valóban,
mint egy koncentrációs követelmény,
de tudod, azt hiszem, még mindig hűvös fajta mérnöki osztály.
Awesome - ha építettek számára ezen a nyáron?
>> Igen.
Wow, mint a keret, és minden ezt?
>> Uh-hunh (megerősítő).
Hű, ez nagyon klassz.
>> [Hallhatatlan off-kamera csevegés]
[Nevetés]
Igen, ez már ilyen sokáig.
Sosem lehet tudni, ugye?
Nos, hűvös, jól köszönöm, Mikhaila.
>> Rendben, Missy.
>> Nevem Missy, én vagyok a gólya,
annak érdekében, hogy azt jelenti, hogy nem tudok semmit!
Szeretnék koncentrálni asztrofizika.
A CS50,
Úgy érzem, biztosan segít ebben.
Furcsa tény rólam, hogy én vagyok a nemzeti minősített tűzoltó.
Wow!
Hogy történt ez?
>> Vettem részt egy akadémia
és ment keresztül pokol a sok hetes
és kaptam minősítést.
Wow, gratula!
Ez nem kis bravúr, az biztos.
Oké, akkor most megteszem én.
Én vagyok a következő egy a sorban.
Én - futtatni.
>> Szóval a nevem Nate.
Én osztály 2009 at Stanford.
Én egy szimbolikus rendszerek jelentős,
amely hasonló a Mind, Brain, Behavior összefonódás itt,
de ez a fajta keveréke
számítógép-tudomány, a nyelvészet, a pszichológia, és a filozófia.
Fajta - Igen, egy csomó furcsa dolog, de nagyon jó volt,
majd én gazdám Computer Science ott is.
Szóval én vagyok az új Harvard ebben az évben.
Nagyon szerettem volna, hogy a tanítás.
Én töltöttem az elmúlt 4 évben a Stanford TA-nek Computer Science osztályok
és így David hadd gyerünk,
és én fogom segíteni ki CS50,
úgyhogy ezt teljes munkaidőben, nem vagyok grad iskolában.
Ez volt szórakoztató.
Remélhetőleg ez lesz továbbra is szórakoztató, biztos vagyok benne, hogy lesz.
>> Rendben, Sam.
>> Nevem Sam, én vagyok másodéves a főiskolán, a törvény kifejezetten.
Erre nagyobb lesz a tudomány történetében, talán, és a VES másodlagos,
és az én kedvenc színe a sárga.
Nem kell ítélkezni, vagy ilyesmi, de ez egy jó szín!
És Stella.
>> Szia, én vagyok, Stella, én vagyok a gólya Grays.
Fogalmam sincs, min mentem koncentráljuk még
így CS50 éppen ilyen véletlen,
ami érdekes.
Fun Tény, hogy Jimmy volt az első Harvard barátom,
mert mi vagyunk mind a Chicago.
Cool, és Grace - ez állítólag az igazán szép, igaz?
>> Azt hittem [hallhatatlan].
Ó, igen.
[Hallhatatlan / off-kamera csevegés]
Oké, én még mindig a tanulás, még a tanulás.
>> Tehát van valami más, ami ilyen érdekes itt.
Igen, azon tűnődöm, van egy ötlet, hogy a fene folyik itt?
Tudod, hogyan kell értelmezni ezt?
>> Kellett volna tenni a pontosvessző után minden egyes sorban.
Ez egyfajta fájdalom.
Néha ezek pontosvesszővel lehet igazi fájdalom a nyomára bukkanni.
Így kiderül, hogy
különleges program általunk használt idén
fordítsd meg a C kód neve csenget,
és az ok elkezdtük használni csenget ebben az évben -
mert nem használta a programot a múltban;
általunk használt másik neve GCC ez igazán népszerű -
Zengés ténylegesen ad hibaüzenetet, hogy van értelme.
Ez azt mondja: "elvárt", "után" kifejezés,
és még mondja a kifejezést, amely után szükség van egy pontosvessző.
Szóval azt rögzítése?
>> Igen, most.
Félelmetes, tudassa velem, és akkor húzza fel, és fogjuk futtatni.
De igen, ezek üzembe pontosvesszők egyfajta fájdalom.
>> Én fix, így azt hiszem, működnie kell.
Awesome - felülvizsgálata 3.
Úgy néz ki, mint ez.
Rendben, most ha futtatni,
ott megy ez.
Cool stuff.
>> Rendben van.
Szóval köszönöm csinálja.
Nagyon jó, hogy találkoztunk srácok.
Mit fogunk csinálni Most töltik a következő kicsit
kicsit búvárkodás a szakasz problémái
hogy jön a probléma beállítható ezen a héten
és mi nem, hogy a legtöbb szakaszok
a többi a kifejezést,
és aztán elmenteni az utolsó 15, 20 perc múlva
beszélni a problémát tűzte
majd csak bármilyen más kérdése van általában az osztályban.
Igaz, amit igazán akarok
A már mindenki részt
a Spaces stuff,
dobott kódot, dobott javaslatokat,
és beszél, amikor a dolgok, mint ez szünet
vagy nem működik, csak azért, mert ezek a dolgok, hogy a
Tudom, hogy találkoztam
amikor elkezdtem kódoló,
és valóban kicsit frusztráló időnként
mert ha ez olyan, mint 2:00, mielőtt a probléma készlet esedékes,
így - csak a nyilvánosságra hozatalt
Én nem indul el, amíg programozást voltam másodéves az egyetemen.
Ez kedves volt ez a furcsa, ismeretlen dolog
hogy én hallottam, kicsit hűvös
és azt is hallottam, hogy lehet igazi fájdalom a seggét
ha kihagy egy pontosvessző, és ez az egyetlen hiba tartani a program működik
és folyamatosan Önt megy aludni,
olyan határozottan,
Ha kérdése van így,
Ha problémát észlel, mint, hogy tudassa velem,
mert azt akarom, hogy ez egy jó tapasztalat srácok.
>> Szóval már srácok minden letöltött a probléma megállapított még?
Kinda tudja, hol van? Oké.
Akkor elmegyünk cs50.net, mert nincs meg az ehhez a fiókhoz,
húzza fel a problémát készletek,
húzza fel probléma set 2, akkor nézd meg a standard változat ma.
Majd húzza fel a specifikáció itt.
Lapozzunk lefelé.
Így fogunk kezdeni nézi most ezt a részt a kérdésekre.
Van srácok figyelte ezeket rövidnadrág még?
Oké.
Tehát vannak rövidnadrág on hurkok,
amelyet végzi Tommy, az egyik a fej tanítási fickók.
Van egy a hatály,
Úgy gondolom, hogy kész egy másik oktatási nevű fickó David
majd egy-egy Caesar Cipher is végzett David.
Ők elég hűvös.
Voltál srácok figyelte a rövidnadrág eddig?
Hogy vagy, hogy vagy?
Hasznos? Oké, jó tudni.
Ha ők nem, akkor szóljon.
De mielőtt ezt megtenné,
már srácok megnézték ezeket a kérdéseket
egyáltalán?
>> Beszéljünk erről egy kicsit.
Így már be az elmúlt hetekben
előadás
számos különböző hurkok.
Ott van a for ciklus,
a while ciklus, majd a do-while ciklus,
és az előadás, mi már sokat beszélnek
hogy e körök minden
meglehetősen hasonló sok szempontból,
és meg tudod csinálni sok ugyanazokat a dolgokat egy while
hogy akkor a for ciklus.
Csak ki kell, hogy milyen a jobb kombinációját változók és ilyen.
és így valóban
a tényleges különbség közöttük az, hogy a hurkok
Néha ők hasznos
használja őket egy időben, mint máskor.
>> Így például,
A while ciklus eltér a do-while ciklus.
Vajon mindenki úgy érzi, mintha egy jó fogantyú, amikor
a do-while ciklus több
hasznos, vagy mi a különbség?
>> Azt hiszem, a különbség a do-while ciklus
fut - Én nem tudom, hogy mi egészen a terminológia,
de a sorozat funkciók a hurok.
Ezek automatikusan - ez a pálya, legalább
előtt ellenőrzi a feltételt, vagy a while ciklus csak akkor fut, ha
folyamatosan fut - függetlenül attól, hogy a feltétel teljesülnek.
Ja, nem, hogy van értelme?
>> Vessünk egy pillantást egy kis kódot.
Szóval, csak azért, hogy ismételje meg a kérdést,
vagy a válasz, hanem;
a válasz az volt, hogy
A while ciklus ellenőrzi, hogy ha a feltétel
megadott teljesül
futtatása előtt a szerv a hurok az első alkalommal,
mivel a do-while ciklus automatikusan futtatja a test a hurok
nevezzük - ez furcsa terminológia,
de ha valaha is mondtam semmit, hogy nincs értelme, hadd tudjam meg -
a hurok szervezet a cucc, amit hozott kapcsos zárójelek közötti.
És a do-while ciklus,
ez a szervezet kap fut legalább egyszer,
majd az állapot lesz ellenőrizni futtatása előtt az egymást követő alkalommal.
>> Így valójában, Sam,
nem bánja írni egy egyszerű while
A Spaces?
>> Hogyan rendezheti a hasonló
hogy egy új ...?
Én csak törölni bármit is ott.
Igen, csak törölje ki.
>> Nos, azt hiszem, én vagyok, hogy ilyen -
melyik akarsz, egy darabig, vagy akarsz ...?
Igen, csak akkor egy kicsit igaz, nyomtassa ki valamit.
És lássuk.
Alexander, rájöttem, hogy soha nem vezetett téged.
>> Ó, ez rendben van.
Van - tudsz kódot egy do-while ciklus nekünk?
>> Igen, megpróbálom.
Rendben, akkor csak húzza ezeket meg a képernyőn,
úgy, hogy a fajta van egy fogantyú, hogy mi a különbség.
>> Szóval, itt van, amit Sam tett.
Van egy egész úgynevezett i
hogy ő inicializálódik 17.
Aztán azt mondja, miközben (int i = 17)
printf ("A nevem Sam.");
Szóval, mi történik, ha ezt a kódot?
Van egy hiba, mit mond a hiba?
Hadd húzza fel, és beszélni róla.
Hiba történt, azt mondja.
Nézzük lapozzunk lefelé.
Így adta nekünk ezt a hibát, és azt mondta,
"Hé, vártam egy kifejezés."
Ez kicsit rejtélyes.
Igen, pontosan - és újra,
lesz még egy kis hiba, hogy mi lesz fogás egy pillanat.
De ez egy másik e furcsa terminológia dolgokat,
így ez az int i = 17
nem kifejezés.
Mi úgy néz ki csinál ez az
nyilvánító egész úgynevezett i
és meghatározza azt, hogy az megfeleljen a 17
vagy inkább üzembe 17 abba int hívott i.
És hogy nincs értelme
összefüggésben ennek a while ciklus.
Ez nem értelme, mint látni fogjuk,
keretében a for ciklus, mert hurok nyilatkozatok nem indul el
az, hogy int i egyenlő valamit
és megy tovább.
>> Szóval, ugye -
fix valami, rendben.
Itt megy, félelmetes.
Tehát most a dolgok egy kicsit más.
Egy pár dolog megváltozott.
Meg tudja mondani, mi a dolgok megváltoztak?
>> Vettem ki az int, így nincs nyilatkozatot [hallhatatlan] helyett feladat.
Az egyik egyenlőségjel, tettem 2 egyenlő jel, ami azt jelenti, az egyenlő.
Félelmetes.
Igen, amit Sam nem is vette ki a int
volt itt korábban,
így ha csak ezt nézd meg - ez az, ami korábban volt, azt mondta int,
amely kijelenti, hogy - így kivette a típus.
Van int, char, string, rövid,
ezeket nevezzük típusok.
Szóval elővette a típus
és azután a korábban,
volt, csak az egységes egyenlőségjel
és mit mondott erről problematikus ez
ha van 1 egyenlőségjel,
ez egy értékadó operátor.
Ez nem vizsgálja, hogy vagy nem 2 dolgot egyenlő.
Ez tulajdonképpen beállítás valamit egyenlő valamit.
Mi üzembe a 17-es szám a változó i.
Így kell csinálni, hogy a fajta összehasonlítás
kell használni a kettős egyenlő,
ami elég furcsa dolog
hanem egy meglehetősen gyakori hiba.
Tehát az egyik dolog fogok rámutatni, ha nem bánod,
az, hogy a
a funkciót itt int main,
látod, hogy a test a mi függvény
van tolva a bal oldalon
4-terek vagy egy lapra.
Az ok, amiért ezt
csak az olvashatóság.
Mint látható, a Sam, miközben hurok van,
ő nem francia egyáltalán,
és, hogy a nem befolyásolja a működőképességét a kódot.
Hogy fog futni pontosan ugyanaz.
>> Így például, ha jön a lap tetejére itt
majd nyomja meg a Play gombot, akkor építeni,
ez lesz futtatni,
és mi fog történni?
Miért mindig mondani fut?
>> Mert akkor tartsa ismétlődő hi.
Pontosan, és miért tartja ismétlődő hi?
>> Mivel az egész soha nem változik, így mindig 17.
Igen, pontosan, így a
lássuk után - emlékeztet a neved?
Jimmy. Tehát Jimmy azt mondta, hogy
az oka a folyamatosan ismétlődő hi újra és újra
azért van, mert ez a feltétel mindig igaz.
Mi soha nem változik az értéke i.
Mi soha nem módosíthatja a tartalmát mi tárolja a változó.
Tehát ezen a ponton kaptuk ezt a hibát, hogy a
A program által generált túl nagy teljesítmény,
és ha lapozzunk lefelé, és egyfajta nézd meg, mi folyik itt,
láthatjuk, hogy ez hi, hi, hi, hi, hi, hi, hi végig.
Félelmetes.
>> Tehát egyfajta vissza az eredeti pont
hogy miután a behúzás itt
a szervezetben a while ciklus nem befolyásolja semmit.
A program továbbra is futott csak finom.
Jellemzően a jó stílus -
és ez olyan dolog, amit keresni a probléma készletek -
kérjük Önöket, hogy francia ezt 4 terek, amit tehetünk
mellett csak a Tab gombbal
vagy kézi üzembe a 4 terekben magad.
Cool, oké úgyhogy menjünk vissza, és nézd meg
Alexander do-while.
>> Csak kicsit egy kis baj.
Oké, menjünk dolgozni rajta.
Ez jó?
>> Igen.
>> Oké, itt vagyunk.
Ez az a kód, hogy Alexander írta.
Nem megy a Alex - rendben.
Szóval itt van a kód, hogy Alex írt.
Szóval, megvan a nyilatkozat legfontosabb itt,
és akkor mi van ez egész nevű változó i
alatt bejelentett itt.
Van egy do nyilatkozat
és azután a test ismét ezekkel nadrágtartó,
így ez a szervezet a do-while -
hadd nagyítani, így ez több olvasható -
és a test, próbálunk nyomtatni "ez a test",
i + +,
így növeljük a tartalmát i és ezt
amíg nem válik, hogy 3,
majd a program véget ér.
>> Szóval, mi történik, ha fut a program?
>> Vártam azonosítóval.
Oké, tehát épít, fut, hiba lép fel.
Mi történik?
Mi lapozzunk le ide,
megkapjuk ezt a kissé rejtélyes látszó dolog,
várt pontosvessző után felső szintű nyilatkozatot.
Ez kicsit furcsa.
Van valakinek egy ötlete, hogy mi lehet a helyzet?
Kicsit furcsa, igen.
>> [Hallhatatlan] kell bejelenteni kívül a zárójelben?
Tehát nem, hogy nem alkalmazható akkor, ha zárójelek használatával?
Szóval ez a fickó kijelentette amelyen kívül zárójelek?
Ó, ezek a srácok - a kapcsos zárójelek?
>> Igen.
Igen, pontosan.
Így kiderül, hogy
nem tudja valójában, hogy egy változót itt, mint ez.
Mit lehetett volna akar csinálni volt -
vágja ki onnan -
akkor vagy tedd a kapcsos zárójelek itt
vagy más alternatív
az, hogy teljesen kívül.
És így ezek - attól függően, hogy hol ténylegesen nyilatkozat
E integer változó,
lehet kapni 2 nagyon különböző változók;
ha ez kívül main,
ez az, amit nevezünk globális változót.
Ez kívül esik bármely funkcióját -
ez nem egy funkció -
mivel ha rakjuk belül main,
mint itt, akkor hívják a helyi változó,
mert helyi hatályának fő.
És akkor beszéljünk egy kicsit arról, hogy mi a különbség
között a 2 típus, és miért használja különböző változók,
de most,
ha csak tartani az összes változót helyi,
mert nincs szükség a globális változókat.
>> Oké, ez az egyik dolog, ott van.
Próbáljuk futtatása újra, meglátjuk, mi történik.
Fuss, kap egy hiba.
Nagyítás egy kicsit, mit kapunk?
Kapunk ez várhatóan után zárójelben do / while.
Van ötleted, hogy mi folyik itt? Dan?
>> A míg aztán zárójel, majd -
Nem tudom, ha kell redeclare int,
de a do while (i <3).
Pontosan, igen.
Így kiderül, hogy Dan pontosan így van.
Nem kell, hogy ezt a típusú újra itt.
Mi lehet ehelyett megöli a típus
és csak csinálni.
Rendben van.
Majd zoom vissza, próbáld meg még egyszer.
Nézd meg azt; fut sikeres.
Ha lapozzunk lefelé ", ez a testület" kinyomtatott 3-szor.
Ez nagyon édes.
Jól van, jól sikerült, srácok.
Szép munka volt.
Hogy megy ez eddig?
Tisztességes ütemben?
Oké, király.
>> Szóval, ahogy a fajta vissza az eredeti kérdéshez,
mi - és most, ha látjuk a különbséget,
látod, hogy ebben a do-while ciklus,
állapot jön utoljára.
Tehát ahogy a számítógép beolvassa a program
mivel a C programok kerülnek végrehajtásra a fajta e sorrendben,
ahol szó kezdődik az első sorban a fő,
majd futtassa vonal 6, 7. sor, 8 vezetéken, line 9,
10. sor, 11. sor,
Az összes ezt a cuccot a jobb felső itt
fog végrehajtani, ha
mielőtt még tesztelni ezt a feltételt, hogy
függetlenül attól, hogy i - vagy tartalmának i, inkább -
kevesebb, mint a 3-as szám.
És csak akkor, ha egyszer eljutunk line 12,
tartalma I kevesebb mint 3
tudjuk valójában ugorj vissza a 7-es vonal
majd ismételje meg a folyamatot,
majd teszteljük a feltételt újra és újra és újra.
>> Tehát ütnie ezt
a - zoom vissza,
görgessen Sam verziója,
fogjuk ezt nézd meg, némileg megváltoztatta úgy, hogy ez már nem egy végtelen ciklus -
ahol ha nagyítás,
azt látjuk, hogy mivel ez a program végrehajtja,
ez lesz az első állapítsa int i,
készlet tartalmának i legyen 0,
és akkor eléri a feltétele a while ciklus első,
így ebben az esetben, ez a test, ez a printf ("hi") és i + +
nem is végre
hacsak i valójában kisebb vagy egyenlő 2-re.
Tehát, ha az i 3, például,
ha beállítja ezt itt
egyenlő: 4 - vagy Megteszem 3, mert azt mondtam, 3 -
majd futtassa azt,
ez lesz építeni, ez lesz futni teljesen rendben van,
de ez valójában nem fog kiírni semmit,
mert nem, hogy a vizsgálati az első eset.
Tehát az osztályban, mi a fajta beszéltünk arról, hogy miért ezeket a do-while ciklusok
hasznosak néha
és miért szeretnénk használni, szemben a while ciklus.
>> Vannak - ne srácok bármilyen javaslata
hogy miért a do-while ciklus lehet hasznos?
>> Nos, azt hiszem, do-while ciklushoz képest, ha azt szeretné, felhasználói,
mert így akkor hagyjuk őket
valamit tenni egyszer, ha ez igaz,
tudunk lépni a többi program,
de ha ez nem megfelelő, akkor folyamatosan a felhasználó megkérdezése
amíg meg nem tesz a megfelelő bemenet.
Igen, pontosan - pontosan,
így a do-while ciklus hasznos
mert amikor kéri a felhasználói input
mert meg kell, hogy a felhasználó bemenet, mielőtt ténylegesen ellenőrizze.
Tehát Pset 1, Pset 2,
hová kéri a felhasználói input egy csomó,
ez egy praktikus dolog kezelhető
szemben, hogy csak egy egyszerű while ciklus.
Ha egy while ciklus, akkor nem ugyanaz a dolog -
meg tudod csinálni ugyanezt a while
mint te a do-while ciklus.
Csak ki kell, hogy milyen ezt ismétlődő folyamat
ahol megkapja az input első, majd indítsa el a while ciklus.
Mivel a do-while ciklus, csak ki kell írni, ha
és ez egy sokkal tisztább.
>> Rendben van.
Van még kérdése?
Értelme?
>> A return 0 - ez csak egyfajta stand vagy ez -?
Igen, tudjuk -
jól fogjuk fedezni ezt egy kicsit később
de kiderül, hogy
ez a return 0, hogy mi tesz
végén legfontosabb egész idő alatt -
akkor kicsit csak úgy, mint valamit, amit mi
egyelőre.
Amit már kezdett beszélni függvényekkel
fajta végén múlt hétig, majd ismét ezen a héten
az, hogy a függvény
úgy bemenetek, amelyek ezeket a zárójelben;
ezek 2 bemenet, érveinket vagy paraméterek,
mit is hívják, hogy a fő funkciója,
és azután egy függvény termel kimeneti
vagy ahogy mi hívjuk a visszatérési érték.
És a visszatérési érték esetén legfontosabb ez int,
ez egész,
és ahogy mondod függvény, "Hé, ez az, amit a kimeneti
lesz, "az a szóval:" visszatérés "
ez a kulcsszó inkább
és így fő visszatérő 0
vagy a fő kimenetre 0
standard C-programokban
mivel a visszatérő 0 a legfőbb eszköze, hogy a
"Hé, mindent végre az én programmal csak finom."
Ha voltunk tenni valami más, mint 0,
mint az 1, például,
ez szokta mondani aki futott a program
hogy valami rosszul sült el.
Szóval, ahogy egyre több részt cucc az félév,
ha valaha szüksége, hogy mondjam,
"Jaj, tudod, valami baj ezzel a programmal"
ahelyett, hogy az én programomat crash, azt akarom, hogy tájékoztassa a
A futó az én programot, hogy valami baj,
használható visszatérési értéke,
ahogy mi nevezzük, ez nem 0-ra.
>> Így fogjuk fedezni, hogy egy kicsit
amint bejutni funkciókat.
Ez valami értelme?
Oké.
A funkciók a fajta bizarr -
Azt hiszem, az emberek, akik sok matematikai háttérkép,
Ami egy kicsit könnyebben,
különösen akkor, ha egy kicsit több absztrakt matematikai háttér
és te használt beszélünk funkciók
és minden ilyesmi.
De megpróbáljuk, és ezek fedezetére
és menj szép lassan, ahogy jönnek fel.
Hasonlóképpen, ez az egész int argc,
char * argv [],
A most, akkor is figyelembe, hogy mivel kazán lemez.
Már kezdett azokra egy kicsit az előadás
amikor arról beszélünk, hogy az érveket kap átment programok a parancssorban,
de a probléma készletek és a programokat,
ez teljesen rendben, csak írni semmis és tartsa egyszerű.
És mi ez a void jelenti, hogy
"Hé, a legfontosabb nem fog elfogadni semmilyen bemenet;
ez csak egy programot fogunk csak futni.
Nem fogunk adni minden olyan további információk
minden alkalommal, kezdjük fel fut. "
Tehát most, akkor ezt;
akkor is még kihagyja a return 0
végén, a programok és fognak futni csak finom,
de azt javasoljuk, csak tartani, hogy be
A néhány héttel, akkor kezdeni, hogy milyen
húzza vissza a fedelet egy kicsit, és jobban megértsük
minden egyes apró mozgó alkatrészeket.
>> Rendben, most beszéljünk a második kérdés itt.
Szóval mit jelent az "illegális azonosító" általában azt mutatják,
ha a kiadott által csenget?
Azt hiszem, talán látta, hogy már ma.
Tud valaki adni bedugni hogy ez mit jelent?
Lássuk, Kelly - az egyik Kellys.
>> So -
Igen, mit jelent -
>> Azt hiszem, amikor, mint a nem nyilvánítja a változók, és próbálja használni.
Igen, pontosan, pontosan.
Szóval, ha valaha is látni ezt a kimenetet
amikor megpróbálja, és fordítsa le a programot,
ahogy Kelly azt mondta,
azt jelenti, hogy használt egy változót, hogy nem nyilvánítja,
így ha megyek vissza a Space,
és én valami ehhez hasonlót
printf (
"Hello% s")
és próbálja kitölteni, hogy% s
változó s hogy én még nem bejelentett sehol
és megpróbálom futtatni,
látni fogod, hogy mit kapok le most ezt a jobb alsó itt:
"Használja a be nem jelentett azonosító 's'";
ez csak azt jelenti, hogy nem nyilvánítja a változó.
Ugyanez történik, ha a
van x és megpróbálja, és tárolja azt a 7.
és én nem nyilvánítja X.
Azt kapjuk, hogy ugyanaz a hiba:
"Használja a be nem jelentett azonosító" x ".
>> Rendben,
így a Caesar Cipher, hogy nem túl biztonságos,
Szólok srácok meg ezt a rövid, a fajta érti,
és remélhetőleg ezt követően heti problémája meghatározott
ahol valójában levelet Caesar Cipher, meg fogod érteni egy kicsit több
arról, hogy mit jelent, hogy egy biztonságos és bizonytalan -
vagy nem biztonságos, azt hiszem - bizonytalan némileg eltérő.
A másik dolog az volt, hogy ezeket további kérdések itt
funkciókkal kapcsolatos
és mi a funkció,
és mi a fajta beszéltünk, hogy rövid ideig beszélgettünk visszatérési értékeket;
valakit, aki már az előadás,
tudod Ismétlésként aki járt előadás ma?
Rendben van.
Lássuk, vessünk - tudja valaki mondani, hogy mi a funkciója?
Kelly?
>> >> Alapvetően amit merít valamit, ami van írva a könyvtárban, hogy ez
bonyolultabb, ott, és akkor csak írj egy rövid formáját is,
így, mint te utal vissza, hogy a könyvtár, a
minden, ami a hosszú kódot, és [nem hallható].
Igen, pontosan, és akkor akar hozzá valamit ez?
>> Igen, gondolok rá, mint hasonló a koncepció egy matematikai képlet
ahol csak írni egy képletet, és akkor dugja változók
és ez az, amit egy függvény [hallható].
>> Igen, van egy pár válaszok itt
, amelyek mind nagyon jó és jobbra tovább.
Ott van utalva kód van írva a könyvtár valahol
Ez azonban sokkal bonyolultabb
és akkor képes mozgósítani a kódot
és ténylegesen használja azt csak írásban a rövid formában is -
vagy inkább a neve -
és ott is ezt az összehasonlítást, hogy egy matematikai képlet
vagy a fizika, minden ilyesmi
ahol van egy képlet
és akkor majd csatlakoztassa a
változók e formula
hogy akkor kap az a képlet eredményét,
így gondolj rá úgy, mint a másodfokú egyenlet.
Képzeld el, ha ahelyett, hogy megtudjuk,
mi a másodfokú képlet a matematika osztály,
csak volt egy kis számológép program tette az Ön számára.
Valaki használja számológép programok matematikai osztályokban a középiskolában?
Ja, fizika osztályok?
Hol tudod csak mondani, hogy "Hé, négyzetes formula.
Ezek a változók akarok bemenet.
Most add nekem a választ. "
Ez az a fajta, amit egy függvény.
Ez egy módja annak, hogy
egyfajta write, mint egy kis kis sub programot
a mi nagyobb program
, és ez újra és újra
azért, hogy ne kelljen másolni és beilleszteni kódot,
tudunk adni, hogy a különböző bemenetek, és kap a különböző kimenetek,
ez szuper ügyes
ha akarsz írni különböző programok különböző időpontokban.
>> Így például, egy funkció, amit már használ újra és újra és újra
az egész tanfolyam printf.
Printf maga is egy függvény
és kiderül, hogy ez valójában egy nagyon hosszú és bonyolult,
csúnya látszó, működnek írni.
Tehát olyan egyszerű, mint amilyennek látszik nekünk
nyomtatni cucc ki a képernyőn,
mert minden csak volt, hogy az elején pont ma,
kiderül, hogy ez valóban, tudod,
egy jó pár száz sornyi kódot.
Ez nem olyan dolog, hogy én valaha is akarok írni, az biztos,
de hogy kell használni minden nap, hogy ez a fajta hűvös,
így kap ossza meg egymással,
különböző programokkal,
így lesz búvárkodás jobban figyelembe funkciók;
egyelőre, nem vagyunk -
az egyetlen funkciója fogunk írni a fő.
Fő maga is egy függvény,
és láthatjuk, ez kapta a kimenet,
bemeneteinek mint mi beszéltünk,
majd a neve, ami a legfontosabb.
Main egyfajta - egy speciális funkciót is.
Az Ön C program, akkor kell, hogy legyen a fő funkciója,
és így most, most már ilyen kihagyott írás
A prototípus, vagy nyilatkozatot, fő.
Már tekintettel arra, hogy az Ön számára,
és mi már csak azt töltse ki a természetbeni üres.
>> >> Tehát a második probléma halmaz, akkor nem kell
írni a második funkció?
Én nem hiszem.
Úgy gondolom, ez az egész itt.
Igen, Caesar Cipher,
Önnek nem kell, nem úgy néz ki, mint,
és Vigenère, te nem vagy,
így - és kiderül, hogy nem valaha is kell írni
egy funkciót, ugye?
Ezt nevezed te mindig is az összes kódot main,
és sok programozó csinálni.
Ahogy haladunk tovább,
kezdjük bevezetéséről működik olyan módon
hogy tisztítsák meg a kódot,
hogy ez több elegáns,
abban az esetben van feladata - olyan, mint amikor beszéltünk hurkok,
hogy néha vannak olyan dolgok, amit akarok újra és újra és újra,
és van egyfajta naiv módon -
vagy milyen gyakran hívják a "szalma ember" megoldás,
hogy csak másolni és beilleszteni, újra és újra -
meg tudod csinálni ugyanezt funkciókkal, ahol csak másol és tészta
ugyanazt a kódot újra és újra,
de híznak a kódot -
köt ki, hogy a kód nagyon hosszú -
és ez is lesz egy kicsit zavaros,
majd az azt jelenti, hogy nem tud szeretni -
ha valaha is szeretnénk használni, hogy ismét a kódot egy másik program,
te is megragadt a másolás és beillesztés újra,
így az egyik dolog, fogunk beszélni a
fajta design és stílus a programok,
és így, ha van értelme, hogy a fajta
csomag valamit, és tedd egy külön funkció,
azt javasoljuk, hogy ezt megtehessük,
és hogy van valami, hogy újra,
nincs kemény és gyors szabály.
Csak nagyon ritkán mondjuk, hogy meg kell írni egy függvényt hívják ezt,
de ez inkább egy olyan dolog, amit csak fejleszteni idővel
ahogy írsz, több és több programot.
>> Van még kérdés?
Oké, akkor menjünk most
menj vissza fel ezt a fickót itt,
ezért vagyok még mindig ebben a szakaszban a kérdés.
Már beszéltünk mindezen különböző is,
mi az a funkció, hogy miért írni funkciók,
ha egyszerűen másolja be?
Remélhetőleg voltunk győződve arról, hogy írás funkciók egy jó dolog.
És most menjünk tovább ezen MySpace program,
és mi eltölteni egy kis időt erre.
>> Szóval, lássuk,
tudom hogy valaki olvassa ezt nekem?
Igyunk Mikhaila - fogod olvasni ezt nekünk?
>> Mármint vissza, amikor MySpace -
Vissza, amikor MySpace hűvös volt.
>> "Vissza, amikor MySpace hűvös volt,
ez volt a divat, hogy írja, mint ez.
Lehet, hogy még ma is? Nem vagyok biztos benne.
Minden esetben, a CS50 Készülék,
CS50 Run vagy CS50 Spaces,
írni egy programot, amely figyelmezteti a felhasználót egy üzenet
majd kiadja az üzenetet, az első betű nagybetű,
az összes többi betűt váltakozó esetben,
mint egy a minta kibocsátás alatt,
ahol az arcátlan szöveg jelentése egyes felhasználói bemenet.
Az egyszerűség kedvéért, akkor feltételezhető, hogy a felhasználó
csak azokat input kisbetűket és terek.
Tekintsük ezt a problémát lehetőséget gyakorolják;
akkor nem kell kérni, hogy nyújtson be ezt a programot. "
>> Félelmetes, köszönöm.
Szóval mint Mikhaila mondta,
fogunk írni egy programot, amely MySpaces kódot.
Szóval bármelyik srácok MySpace kezelhető?
Bármelyik van MySpace-fiókom?
Oh, igen, igen!
Nem volt elég jó.
[Nevetés]
Tudom.
Ismerkedés magam.
Tehát mi próbálunk tennie írni egy programot
hogy megy keresztül
és kihasználva az első betű
majd minden levél ezt követően -
vagy minden egyéb levél azt követően, sajnálom.
>> Tehát - és láthatjuk ebben a példában,
ezt hogyan fut a program,
és így ez csak azt mondom, "Mi fut a program neve a.out.
A bemeneti, hogy fogunk így ez
fog kérni.
Mi nem fog a kínálat a bemenet a parancssorban. "
Ha már követően az összes előadások
és hallunk parancssori argumentumok,
ez a fajta, ha e -, hogy a funky szintaxis
A fő érkezik az int argc, minden ilyesmi,
így itt nem vagyunk segítségével, hogy, mi nem foglalkozunk sem ezt.
Mi csak kap ez tipizált által a felhasználó,
és akkor ez a második sorban a funky nagybetűs
, amit mi akarjuk, hogy program kimenet.
>> Tehát ahelyett, használja a készülék, vagy Run fogjuk használni Spaces,
mert megvan Spaces,
és így, ha a srácok lenne
kap a kódot, hogy néz ki,
így fogom menteni e felülvizsgálat
csak hogy megvan a kazán lemez itt
úgy néz ki, mint ez, int main (void), semmi.
Valójában, mit fogunk csinálni a mi csak törölni mindent együtt.
Szeretnénk egy üres lappal,
mert nem fogunk kezdjük el beírni kód;
inkább, mi Megpróbálják írásban néhány pszeudokód
amely valójában csak azt jelenti, megyünk, hogy írjon valamit, hogy ez nem kód
ez a fajta leírja, hogy mit akarunk csinálni,
akárcsak Dávid első napján az előadás,
vagy azt hiszem, ez volt a második napon előadás, amikor ő az egész zokni demo.
Srácok, ne feledje, hogy - látva a zokni?
Joseph volt ott egyfajta gépelés ki angolul?
Így fogunk csinálni ugyanaz a dolog.
>> Szóval, ha elkezdek írni pszeudokód,
Azt szeretném azzal kezdeni, hogy nézi a bemeneti lesz.
És adok magamnak egy mintát az esetben,
úgy, mint a "thanks for the add!"
És akkor én is írni, hogy mit akarok a kimenet legyen,
ami ebben az esetben valami ilyesmi.
És ez a fajta ad nekem egy jó, mint, kiindulópont gondolni,
"Oké, azt akarom, hogy line 1
és azt akarom, hogy átalakítsa azt összhangba 2 "
és ez a fajta segít irányítani a gondolkodás.
Ez egy jó kiindulópont.
Egy másik módja annak, hogy belegondolok is, ahogy kicsit lépni
és ahogy ezt a saját programokat, hogy
gondolj olyan, mint mi a szélén esetekben ez?
Milyen fajta a furcsa forgatókönyvet?
Milyen furcsa bemenetek hogy lehet, hogy?
És mit kell ezen kimenetek kinézni?
Például az egyik furcsa bemenet
lenne ez,
létre semmit,
mint amit kellene kiadni ebben az esetben?
Valamit szeretnénk gondolni is.
>> Szóval, ahogy a kérdés,
mi akarunk kimenetet?
Ha nem kap semmilyen bemeneti egyáltalán, mit kell a programot kimenetre?
>> Semmi.
Semmi? Jól hangzik.
Tehát szeretnénk, hogy győződjön meg arról, hogy nem vagyunk ír ki semmit
ha nem kap semmit be
Cool. Oké.
Így
Fogok hívni egy pár ember, mint mi megy keresztül
és csak kitalálni, hogy olyan, mint amit az általános algoritmus
és mi fajta munkához keresztül együtt.
>> Szóval, lássuk. Missy.
Mit gondolsz, mi lenne kezdeni?
Mi lenne egy jó hely, hogy itt kezdődnek
ha azt akarjuk, hogy átalakítsa, mondjuk, 1 sor
a 2-es vonal?
Tud a fajta, csak magyarázni nekem, angolul, mire gondolsz?
Ne is aggódj kódot.
>> Első dolog, amit tennék az lenne, hogy
ilyen közvetlen a felhasználó, hogy elmondja nekik, mit akarsz.
Oké, tehát, mondjuk,
"Hé, felhasználó. Szeretném
egy string "- félelmetes.
Szóval írd ezt le.
Rákérdezés a string.
Ez úgy hangzik, mint egy jó kezdet.
Rendben van.
Kérdezzük Kelly Ren ebben az időben.
Mi azt szeretnénk, akkor a következő teendő?
Milyen fajta a következő -?
>> Gyűjtse össze az általuk betáplált és tárolni, mint egy változó.
Remek.
Tehát összegyűjti a húr,
tárolja egy változóban.
Szóval van valami különleges akarunk itt csinálni?
Nem akarjuk, hogy ellenőrizze a bemenet
előtt -?
>> Igen.
Mi lehet szeretnénk ellenőrizni?
>> Nos, azt mondta, nem kell ellenőrizni, ha ez a szám, ugye?
Mert akkor azt feltételezik, hogy ez kisbetűs?
Igen.
>> Így kiderül, hogy - igen.
Szóval getString garantáltan vissza nekünk string.
Ez nem fog visszatérni a számot nekünk, vagy ilyesmi.
Lehet számjegyet karaktereket, hogy string, mégis.
És azok, tudjuk figyelmen kívül hagyni, ahogy volt a kapitalizáció.
De egy üres string teljesen rendben van,
így az ügy itt a 4-es vonal és az 5.,
Rendben, ha nincs input,
és mi már semmit sem tesz, mint a mi kimenet.
Nem kell aggódni, ügyelve arra, hogy van valami a húr
vagy hogy a húr legalább 4 karakter hosszú;
valami rendben van.
Szóval ez áll szemben, például hasonlóan a fillérekért programok írtad
ahol meg kellett győződjön meg róla kezdtek nem-negatív számok;
meg kellett, hogy győződjön meg arról, hogy kezdtek a helyes napok száma egy hónap alatt.
És hogyan csináltok ezt?
Hogy csináltad teszt?
Mit, hogy megköveteli, hogy?
>> Do-while ciklusok.
Do-while ciklusok, más típusú hurkok is, igen.
Tehát kiderül nem kell használni egy hurok ebben az esetben,
amikor mi kéri egy string, ami elég szép.
>> Rendben, mozog.
Szóval, Stella.
Mesélnél egy kicsit arról, mit kellene tenni?
Tehát most megvan a húr, akkor megvan tárolt változó;
mit kell tennünk a húr?
>> Meg kell -
azonosítja a 2 -
Igen, csak azt mondják, hogy az angol, ez félelmetes.
Határozza meg a >> [nem hallható] nagybetűkkel - vagy nagybetű.
Igen, azt azonosítani, hogy melyek kis-és nagybetűk.
Nem tudjuk naggyá, illetve kicsivé őket, amíg mi már azonosítottak, amelyek közül.
Így fogjuk fel, hogy itt van.
>> Szóval, csak gondoltam ezt a folyamatot,
hogyan csináljuk ezt azonosítás?
Tudod, Dan?
Fajta mi - mit eszköz, volna, hogy használja ki a toolbox?
>> Én tegye valahogy, mint egy tömb, vagy minden sor
a saját kis doboz,
és majd nagybetűs azt onnan, vagy sem.
Oké, tehát egy eszköz tudjuk használni egy tömbben.
Mit kell nézni a húr,
bár, hogy kitaláljuk, - volt, hogy nézd meg a karaktereket.
>> Szóval van, hogy nézd meg a hosszát a húr?
Igen, része, hogy egyre hossza a húr.
Csak kíváncsiságból, mit használunk, hogy a string hossza?
>> Strlen?
Igen, strlen, hívjuk ezt "strlen"
Mindezek a string függvények, tehát strlen egy olyan függvény,
és ez szuper praktikus, mert tudjuk használni, hogy csak azt mondom,
Hé, strlen: Itt egy string, mondd, meddig van.
Az előadás ma David sokat beszéltünk, hogy hogyan strlen végrehajtják,
mi folyik valójában a színfalak mögött.
De ez az egyik nagyon szuper praktikus is.
Van más is, hogy szintén a string könyvtárban,
úgymint strcmp, ami írta "strcmp",
mellyel összehasonlítani karakterláncokat egymást.
Más is fogja használni, mint a strstr,
ami jó a megállapítás sub húrok és így tovább.
A legtöbb esetben, mindannyian kezdődik str, majd tovább, hogy valami mást.
Az ok valójában nem pontosan őket, mint a húr, és így tovább
azért van, mert vissza, mint a korai napjaiban C,
amikor az emberek voltak az elsők, írásban és minden,
voltak korlátai a karakterek számát, amit lehet használni
függvény nevek és változó nevek,
így minden olyan, mint a super tömörített.
De bármikor látsz valamit, ami kezdődik str,
jellemzően azt jelenti, ennek valami köze a string.
>> Oké, megvan, hogy a hossza a húr,
és akkor, mit csináljunk a karaktereket?
Tudod, Sam?
>> Fogalmam sincs, én próbáltam kitalálni.
Én tényleg nem tudom - Bárcsak volt valamilyen módon -
Úgy értem, azt hiszem, talán tudnánk tenni valamit odds és egyenletessé teszi,
de nem tudom olyan funkció, mint ezt.
Igen.
>> De ez - ez nem feltétlenül működik,
mert akkor kapnánk a terek, hogy -
akkor kell, hogy legyen a hely, hogy tippeket, hogyan -
Oké.
>> Nem tudom - Én egyfajta vereség ezen a ponton.
Igen - nem, nem, nem, ezek a jó pontok.
Szóval, mit kell tennie, hogy, mint a Sam mondta,
kell követni, amelyek a levelek a furcsa betűket,
és melyek a még leveleket.
De mi szeretnénk, hogy győződjön meg arról, mi nem csak keres
-nél a páratlan és páros
indexek a húr,
hanem nézi a páratlan és páros betűk a húr,
így szükséges, hogy kicsit ezt különbséget
betűk - mint amit valójában az A, B, C, D vagy így tovább,
és mi a dolgok nem betűk, de még mindig a mi string.
Például itt, mint ez a felkiáltójel nem írni,
de ez még mindig része a húr, ez még mindig egy char.
Hasonlóképpen, az összes ilyen terek -
akkor nincs értelme, hogy tőkét kovácsoljon a hely, ugye?
Ezért szeretnénk, hogy győződjön meg arról, hogy mi valahogy kihagyja azokat
miközben követés esélyek és kiegyenlíti.
>> Szóval ilyen a mi programozás toolbox
Eddig, ha úgy tetszik,
van egy számos különböző eszközt, hogy már beszéltünk.
Tehát az egyik, például olyan változók,
mintha már beszéltünk itt.
Egy másik eszköz beszéltünk a függvények.
Szóval beszéltünk változók a pszeudokód ide
A mit fogunk használni, hogy tárolja a string.
Már beszéltünk funkcióját, hogy a string hossza, mint a strlen.
Már beszélt valami mást, és mi már beszéltünk erről
a sok korábbi szakaszában ma: hurkok.
>> Mit gondol srácok egy hurok ebben a programban?
Jared, mit gondolsz?
Vajon az általunk használt hurkot ebben a programban?
>> Valószínűleg nem, nem, mert akkor nem kell menni rajta többször is.
Oké, nem kell, hogy menjen át, amit több, mint egyszer?
>> Az egész string.
Igaz, így nem kell átmenni a húr egész egyszer.
Sajnálom, hogy tett semmi értelme!
Nem kell, hogy menjen át az egész szöveget több alkalommal.
Oké.
Mit gondolsz?
>> Úgy gondolom, hogy jobb, hogy használja őket
így nem tehetünk, mint a tőkét, míg
helye van [hallhatatlan] számot.
Nagyszerű, és így hasznosítani mi van?
Oké, szóval azt mondod, hogy
fel kell használni a hurok, mert azt akarjuk, hogy
hasznosítani írni, miközben ez nem egy szám.
Szóval - Sajnálom, nem szeretne hozzáadni?
>> Azt akartam mondani, hogy az, ahogy kezeli a húr
és [hallhatatlan] külön a [hallhatatlan] a karaktereket?
Igen.
>> És akkor lehet rendelni a számokat -
alapján vagy a helyét a betűk a húr?
Igen.
És >> meghatározni, hogy ez páros vagy páratlan, és tőkét kovácsolni a levél maga
míg a helyét a levél [hallhatatlan] - sajnálom.
Remek.
>> Szóval csak bedugni.
Tud emlékeztetsz a neved - Sajnálom.
>> Charlotte.
Charlotte, oké.
Tehát mi Charlotte mond,
amely teljesen helyes - istenem, ezt szereti automatikus francia rám -
az, hogy ha megnézzük egy string
mint például ez a tetején -
"Thanks for the add" -
mint egy karaktersorozat
ahol a van 0 helyzetben,
A h-helyzetben 1.
A jelentése a 2, akkor megkaptuk a 3., 4., 5;
a tér a 6-helyzetben.
Mivel: - mi az álláspontja f?
7!
O? 8.
R? 9.
És akkor megvan 10, és akkor nem igazán tudok írni, anélkül, hogy
kezd kicsit rendetlen a képernyőn.
De ez valójában hogyan beszélhetünk húrok a memóriában.
Ez egy string
egy karaktersorozat,
és ha utalunk egy egyedi karaktert a string,
gyakran erre hivatkozva, hogy a karakter álláspontja
belül a húr,
valószínűleg ugyanúgy, ahogy beszélünk szeptember
hogy a kilencedik hónapban az év
vagy hétfőn, hogy az első nap a héten.
Szóval ez ad nekünk egy módja annak, hogy
kitalálni, hogy melyek páratlan versus páros
mert itt látható,
ha egyezik fel ezzel a T,
látható, hogy az összes tőkésített is
vannak még pozíciókat,
legalább az első szó,
majd a dolgok dobták ki, amint a hit, hogy a tér,
mert nem számít ezt a helyet, mint egy levél,
így ez mintha kezdtük
és ment 0, 1, 2, 3, 4, 5,
hely, 6, 7, 8, hely,
9., és utána 10, 11, 12, és így tovább.
>> Cool, így biztosan szeretnénk használni valamilyen hurok
hogy menjen át az egyes karakterek viszont.
Így ezen a ponton,
akkor jön vissza a régi pszeudokód itt.
Ennek részeként a azonosítása, melyek ezek
a nagybetűs és melyek kisbetű,
mi szeretnénk ezt valamilyen hurok.
Loop, kettőspont.
Milyen hurok, ki milyen típusú hurkok, hogy mi van,
úgy tűnik, hogy egy jó használni ebben az esetben?
>> Arra gondoltam, a for ciklus.
És miért gondol a hurok?
>> Mert indul nulla, majd
amikor elérjük a hossza a húr,
majd minden iterációs tudsz [hallhatatlan] is?
Igen, pontosan.
Szóval, ki a különböző választási hurkok,
van a hurok, while ciklusok, és nem-while ciklusok.
Ha a for ciklus különösen hasznos
amikor akarsz tudni
a fajta, ahol te vagy az a hurok,
hányszor a hurok végrehajtásra került eddig.
Ami pontosan az, amit tudni akarunk ebben a helyzetben,
mint Kelly azt mondta,
alapján le Charlotte korábbi megjegyzése, hogy szeretnénk tudni, hogy a helyzet
A karakter a string,
és a for ciklus ad nekünk, csak arra, hogy
mert ha elkezdjük a fajta nézett vissza a string,
Ha elkezdjük a for ciklus 0,
és megyünk egészen a hossza az egész szöveget,
akkor tudjuk társítani a T betű
a 0 a mi a hurok,
H betű az 1 a mi a hurok, és így tovább,
megy végig a végén a húr.
>> Szóval kezdjük kódoló ez csak egy kicsit
csak hogy ti kedvet kapjanak, amit ez néz ki.
Fogom menteni ezt,
így megvan a pszeudo-kód itt,
és én fogom törölni mindent.
Szóval van egy üres lappal.
Fogom kezdeni írásban int main (void)
{
Megyek fel a return 0-ban
és azután a}.
Szóval, általában akkor, ha elkezdek program, ez az, amit kezdeni.
Fogom menteni úgy, hogy nektek van ez.
Tehát az egyik első dolog, amiről beszéltünk volt
egyre bemenet a felhasználó
és tárolja a string.
Hogyan jutunk be a felhasználó?
>> GetString.
GetString, rendben.
Tehát, ha azt írja getString ()
és egy pontosvessző.
Próbáljuk futtatása, majd a futás, először?
És miért nem fog ez futni?
>> Meg kell állapítsa meg a változót.
Meg kell, hogy egy változót. Oké.
>> Szóval, hogyan tudom ezt?
Nem bánja, ír valamit, megosztás ugye?
És akkor mi is húzza fel.
Lássuk, Dan, rendben, oké.
Or Daniel. Másolás, hogy, string input = getString ().
Félelmetes.
Vajon ez futni?
Próbáljuk meg.
Hit távon feltöltés forráskód, épületnek, hiba történt.
Oké.
Szóval, izé folyik itt?
A be nem jelentett azonosító "string '.
>> Meg kell tartalmaznia a könyvtárak?
Igen, Dan azt mondja már, hogy tartalmazza a könyvtárakat.
Ez az, amit akartál mondani, Stella? Félelmetes.
Ez félelmetes, így Stella, tudsz
másolja be a kódot out of Daniel Space?
Ha rákattint Daniel Roland Ki, másolni,
és akkor majd teszel az include sort, majd mentsük ki?
Szólj, ha készen állsz.
Szóval ez include szintaxis is egyfajta funky;
van ilyen hash tag,
és ott van a között, és akkor ezek a szögletes zárójelek.
Emlékszel, hogy ez hogyan működik, vagy kell tedd fel ezt a kódot itt?
>> Jó vagyok.
Oké.
>> I kinyomtatta - Nem voltam biztos benne, melyik könyvtár, mégis.
Ó, oké - Igen, ez a CS50 könyvtár.
>> Oh, tettem argumentum könyvtár.
>> Oh, értem - igen, nem, ez -
így kiderül, hogy a szöveg valójában valami, ami különleges a CS50.
Ott valóban nem egy igazi string típusú
mert itt, húr van a típusú helyzetben -
vagyunk nyilvánító változó nevű input string típusú -
és mi üzembe belül input
az értéket adja vissza hozzánk: A kimenet e getString függvényhívás.
Azt lehet mondani, hogy ez egy függvényhívás, mert ez van a zárójelek, mint printf nem,
mint strlen nem.
De a szöveg valójában nem igazi típus
a C nyelvet.
Tettük be a típus, és elvisszük több, amit valójában
C-ben, mert van egy módja annak, hogy dolgozni húrok;
imént tett valamit, hogy úgy tűnjön, egy kicsit kedvesebb.
>> Szóval itt vagyunk.
Itt Stella kód.
Ez van az # include .
Más emberek hívjuk ezt, mint egy hash tartalmaznia néha, vagy egy éles tartalmazzák.
Most lehet kezdeni azt, futtatni,
és még mindig kap egy hiba.
Lássuk, mi történik.
"A fel nem használt változó" input. "
Oké, ez jó, ez jó.
Úgy értem, ez nem igazán jó,
mert mi megvagyunk hiba, és ez nem működik,
de mi ezt mondani, hogy
már nem használják a változót, ami teljesen érthető.
Még nem próbáltam semmit vele.
Ez oly módon, hogy
Zengés próbál segíteni nekünk arról, hogy mi nem csak változók felhasználásával
majd véletlenül hívja őket valami mást később, a mi kódot,
segít a hibák elkerülése érdekében így.
>> Rendben, megvan bemenő felhasználó,
mi tároljuk azt a változót.
A következő lépés az volt, hogy majd
kezdeni az összes karakter a string
és meghatározza, hogy melyek a nagybetűs lehet
és melyek szerint kisbetűvel.
És mint Kelly és Charlotte nevelkedett,
mi ezt egy for ciklus.
Tehát nem valaki emlékszik a szintaxis egy for ciklus
, és szeretnék, hogy egy stab csak írásban
az első sorban a for ciklus, csak az a kicsit?
Kelly, akarsz egy próbát?
>> Igen, így van, hogy inicializálni első,
így tettem i = 0,
majd én i <strlen ().
Ez a Space - tudom húzza fel?
>> Igen, elcsesztem egy kicsit, de igen.
>> Oké, húzza fel.
Félelmetes.
>> De akkor én nem tudom, hogy volt, hogy -
Ja, oké.
Szóval, itt van, amit Kelly-nak van: nézzük meg gyorsan.
Szóval, ő többek között a CS50 könyvtár a tetején.
Ő benne a standard IO könyvtár a tetején,
, és a standard IO funkciókkal, mint a printf,
így ha valaha is szeretne használni printf van szükség, hogy a vonal.
És aztán benne a string könyvtár,
amelyhez szüksége lesz,
mert a húr könyvtár strlen függvény,
amit kapsz, hogy mindössze egy kicsit.
Tehát, ha megnézzük, mit Kelly tett itt,
tud járni nekünk, mit tettél?
>> Igen, - Úgy értem, értem hibákat, így -
Igen, nem, ez -
>> Így akartam hívni a húr, hogy kaptam csak "string".
Azt akartam, hogy nyomtassa ki a húr
és aztán -
Azt akartam, hogy tetszik beállítani a húr, mint egy tömb minden karakter
másság [hallhatatlan], ugye?
És akkor akartam kezdeni pozíció 0
majd minden 2 terek,
Úgy volt, hogy tőkét kovácsoljon,
így csak le, mint 23, mert néztem az ASCII asztalnál.
Szóval ez az, amit gondoltam - Tudom, hogy ez nem helyes.
>> Megvan, így ez egy jó kezdet.
Azt hiszem, sok a keret a helyén van.
Menjünk át a fajta sorról sorra, és mi folyik itt.
Tehát az, ahogy én szeretném, hogy ezt csak most kezdődik összeállítása a kód
és hagyja, hogy a fordító mondja, mint mi a baj az én-kódot,
mert a fordító tényleg jó mondom mi a baj a kóddal.
Tehát, ha játszani, az épület, és nem épít.
Azt mondja, ott volt egy hiba,
tehát ha lapozzunk lefelé, és nézd meg az első hiba,
azt mondta -
akkor lapozzunk vissza a csúcsra,
látjuk, van 5 hiba keletkezett itt lent az alján.
Hoppá, ez tényleg vágva.
Azt hiszem, hogy ez egyszerűen nem megy, hogy minden jobb.
>> Itt vagyunk.
Tehát vannak összesen 5 hiba keletkezett.
Itt csak látni az első 2,
így tudom mozgatni ezt egy kicsit, majd a fajta lapozzunk fel.
Ez az a parancs, hogy futott összeállításához a kódot,
majd az első hiba volt file.c itt:
"Várható azonosítására vagy" ("volt, és ebben a sorban
ahol azt mondta, string = getString ().
Láthatjuk itt, hogy ez volt az on line 8 A file.c,
és akkor azt hiszem ez a karakter 12 - ez a hiba.
Szóval, mi a baj on line 8 - Kelly?
>> Csak azt kell nevezni, mint egy levél, vagy valami,
mint a húr s, vagy ilyesmi?
Igen, kiderült, hogy ezek a speciális nevek,
így string, int, char, rövid,
ők minden speciális kulcsszavak,
és akkor valójában nem használja őket, a nevek a változók,
mert a fordító néz, és azt mondja, hogy az,
"Ó, tudom, hogy ez a típusú,"
így valójában nem egy string változó nevű string,
mint én próbálok csinálni itt, ez nem fog működni.
De ahelyett, tudjuk hívni valami hasonlót s vagy st vagy str.
Mi is nem lehetett nevezni int.
Nem lehet egy string nevű int.
Nem lehet egy string nevű char, ezek egyike sem fog működni.
>> Szóval akkor csak hívni s egyelőre.
Félelmetes.
Szóval, mi a következő lépés folyik ebben a sorban?
String - ez a sor jól néz ki?
Adjunk neki még egy próbálja ki, mondjuk futtatni.
Oké, szóval még mindig hibákat.
Ezúttal vagyunk le 4 hibákat.
Tehát van egy közülük.
Menjünk fel.
"Váratlan típus neve" szöveg ": a várható kifejezés", ugye?
>> Igen, mert én próbáltam megnevezni a húr.
Igen, úgy néz ki, most is menni fix
Mindezen hivatkozások string.
Láthatjuk, van egy hivatkozást húr itt, egy itt, egy itt,
így tudjuk mozgatni az összes ezeket s.
Remek. Oké, futtassa újra.
Az épület - egy másik hiba történt.
>> Oké, most már le, hogy egy hiba,
így int i = s, majd a szögletes zárójelben.
Szóval tud mondani nekünk egy kicsit arról, mit csinálsz itt, Kelly?
>> Igen.
Ez volt a 10. sorban.
>> Nem tudom, hogy mi szükség van, hogy minden,
de azt hiszem, én próbáltam -
Majd mentse el, így követni mentén.
>> Azt hiszem,
próbálja mondani, hogy kezdődik pozíció 0
elején az én a hurok,
ezért úgy gondolom, hogy talán mond szükségtelen volt.
Szóval összefoglalva,
Ön is azt mondja, hogy ez a - próbált elindítani ezt a pozíció 0
és kap ez - igen,
ezért úgy gondolom, korábban is, amikor még séta a kódot,
te beszélsz, hogyan akarta kezelni a string tömb
így érheti el az egyes karakterek egyenként.
Azt hiszem, Dan említettem tömbök is megpróbálta átalakítani karakterláncot tömbök.
>> Kiderül, hogy a fajta a motorháztető alatt,
egy string ténylegesen tárolt tömbként már,
és akkor érheti el, mint egy tömb;
nincs konverzió, amit meg kell csinálni.
A string isn't - so -
karakterlánc nem igazán egy tömb,
de úgy érheti el, mint ilyen, mert a karakterek tárolása
egyetlen helyes egymás mellett a memóriában,
így ha azt szeretnénk, hogy az első karakter a string,
ez ugyanaz, mint az első egész kezd egy egész tömb.
Így gyakran - we'll
nézze meg a 2 hasonló
oh, mint egy húr, mint egy tömb,
még akkor is, tényleg - they're nagyon különböző dolog,
de lehet kezelni őket nagyon hasonló.
Így kiderül, hogy ez a sor ténylegesen -
nem kell semmilyen átalakítás,
és valójában,
ez valójában nem egy érvényes kifejezés,
amelyet mi a fordító mond nekünk.
Ez azt mondja: "Hé, ez várt a kifejezést,
és mit kaptam itt van valami, hogy ez nem egy kifejezés. "
Ahhoz, hogy állapítsa meg egy tömb,
mindössze annyit kell tennie, hogy ilyesmit pontosvesszővel,
és akkor mondd el a tömb milyen hosszú ideig szeretné, hogy legyen,
mint például az 5, így ez a 10-es vonal
akkor nyilvánítja egy tömböt nevű i, 5 egész benne.
>> Ez egy félre, ez nem szükséges az a kód,
de ez - ez a fajta, amit a nyilatkozat néz ki.
>> Hogyan nem használhatja char i [strlen (s)]?
Char i [strlen (s)]?
>> Char I., és majd a zárójelben, strlen (s).
Igen, tudtuk -
tudtuk ezt,
és ez nyilvánítja - mi ezt csinálni?
>> Azt hiszem, ez állapítsa meg egy tömb
A, mint a - of -
Ó, nem kell az i - oh,
Igen, akkor biztosan nem kell a i.
Ön kijelenti tömb karakter
hosszúságú s.
És akkor mi van Sam azt mondja, hogy a
ebben a sorban 10 - hadd egy kis hely között, és a többi, így tudjuk elszigetelni -
ez a 10-es vonal is nyilvánítja egy tömb
A karakter, strlen (s) értékű őket,
de valójában nincs szükségünk az i,
és az ok, amiért szükségünk i azért van, mert meg kell adni a tömb nevét;
különben nem lenne a módja annak, hogy nézze meg a tömb később a kódot.
>> Szóval ez itt a tömb neve
és azon belül a hossza.
Ez ad nekünk egy tömb,
de ez - megint csak, ez egy nyilatkozatot.
Ez nem egy megbízást, ez nem egy inicializálási.
Ha kijelentjük ezt a tömböt, mint ez,
van valójában semmi a tartalmát a tömb.
Ez csak szemét - bármi van ott.
És ahogy mi azt mondtuk,
valójában nem is kell csinálni ezt a konverziót,
mert már kezelni karakterlánc s mint egy tömb.
Tudom, hogy kifutunk egy kicsit hosszú idő,
de azt akarom, hogy csak nagyon gyorsan, hogy ez a for ciklus
és megmutatja, hogyan érhető el az egyes karakterek a tömbben,
mert ez a mi legfontosabb feladat.
És aztán hagyom, hogy menjen onnan.
>> Tehát itt van egy for ciklus
úgy néz ki, majdnem jó.
Mi nem egészen majdnem ott?
What's - mi nem stimmel ebben a hurok?
>> Nem kapcsos zárójelek?
Nem kapcsos zárójelek, egy.
Wanna győződjön meg arról, hogy van a test a hurok kapcsos zárójelek.
Hoppá, nem a szögletes zárójel!
És mi a következő dolog, amit tennünk kell ezzel hurok?
Ha megpróbálom, és fuss ez,
izé ez a hiba, hogy én kapok?
Kapok ezeket a hibákat - Meg kell inicializálni i.
Remek.
Szóval ez lesz a hurok - ez nem egészen ott,
de ez kezd nagyon közel.
Ez a kód most már futni,
épít, a hiba továbbra is fennáll.
Miért van még mindig panaszkodik,
mondván, a kifejezés unused,
és ez azért van, mert ez a sor nem csinál semmit.
Mi nem tárolja sehol, mi nem mentette az eredményt.
Hova kell megtakarítás ezt az eredményt?
>> S vagy én?
Pontosan, és ez a funky szintaxist,
s ez a szögletes zárójelek
olyan módon történő hozzáférés a i-edik jellegét s.
Ez lesz valami, ami nagyon fontos a feladatra.
Sajnos, mi kell majd megáll itt,
annak érdekében, hogy Sebastian szakasz jöhet,
de boldog vagyok, hogy maradjon után ezen kívül, és tegyen meg minden kérdést.
Szóval köszönöm nektek, hogy eljött.
Ez most feltölteni, épít, fuss.
Mi lehet, adjon meg egy karakterláncot, mint a "hello"
és kiírja, hogy "QOX".
[Nevetés]
>> Tehát nem egészen ott, de halad, egyre azokkal szemben hurkok!
Köszönöm, hogy eljött, és én leszek kint.