[Powered by Google Translate] [♪ ♪ zumado]
Do por klarigi pri kio mi havas sur la ekrano;
ĝi estas unu el la iloj ni disvolvita dum la somero;
ĝi estas nomata CS50 Spacoj,
kaj estas nia kunlabora kodigo apliko
ke ni tuj uzi en sekcioj.
Estas bela malvarmeta.
Ĉu iu el vi vidas CS50 kuri ankoraŭ?
Lasu min eltiri ke en alia langeto.
Run.cs50.net
Do
se vi iros al run.cs50.net,
vi povas vidi ĉi estas en via retumilo maniero
fakte kodo - skribi C-kodo,
kaj poste ruli ĝin,
tiel ambaŭ kompilas ĝin, kuras ĝi, tiam redonas la eliro al vi,
do ĉi tiu estas speco de cool maniero sperti
kun iuj de la kodo, kiun David iras super en prelegoj
kaj ni donos al vi sur la problemo aroj
sen efektive devi pafi supren la aparaton.
>> Do kio Spacetoj faras tio diferencas de tiu
se mi ŝanĝas denove al ĉi langeto,
Spacoj estas CS50 kuri, kiel vi vidas ĉi tie,
sed se ni rulumi pli kaj rigardu la alian flankon de la fenestro,
vi vidas dekstre mi estas la sola persono en ĉi tiu spaco,
sed kion mi faros estas demandi vin infanoj kunigi ĉi Spaco kun mi
kaj ni cxiuj atingos kodon en la sama malgranda fenestro,
konigi kodon kun alia,
kaj paroli pri la diferencoj inter niaj kodo.
Do ĝi estas speco de cool afero -
tiel aliĝi, se vi vizitus tiun ligilon ĉi tie supre
ke mi reliefigis,
vi povas simple tajpi en apps.cs50.net/spaces/vqcspSnO.
>> Bone, do por dividi,
Mi tuj donos al vi iom de planoj vojaĝi al ĉi tio.
Ni estas gonna do iu stulta iom kodigon kun ĝi al la komenco,
nur por ke ĉiuj kinda ricevas senton por kio ĝi estas kiel,
sed kion mi faris -
aux kion mi celas fari ĉi tie estas -
Mi iros por preni la kodo kiun mi skribis en ĉi tie,
kiu kiel vi vidas nun estas malplena;
ne fari ion.
Estas nur kaldrono plato kodo, ni nomas ĝin.
Kun iom-do komento.
Mi iros por savi ĝin bati ĉi Save butonon.
Kaj kion tio faras estas ĝi
emfazita ĝin ĉi tie mallonge - tio revizio save verda skatolo,
kaj nun, se vi serĉos min en la Spaco,
vi klaku mia nomo,
vi povas vidi, ke mi havas ĉi revizio ĉi tie,
kaj se vi klakas sur tiu revizio,
ĝi devos montru ke kodon en Spaco, ankaŭ.
>> Do estas ĉiuj ŝarĝis ke kodo en iliajn Spaco?
Bone, se vi ankoraŭ ne, faru tion,
kaj tiam kion mi volas vin infanoj fari en ĉi tiu malgranda por-do sekcio
estas skribi iomete uzante printf pri vi,
tiel ekzemple, mi skribus
printf ("Mia nomo estas Nate");
kaj poste mi skribos
"Mi diplomiĝis en 2009
de Stanford "
kaj mi amus aŭdi pri
kio jaro vi estas en lernejo,
ĉu vi estas ĉe la kolegio aŭ la negoco lernejo
aŭ alia Harvard lernejo,
kion vi studas se ĝi estas konata ankoraŭ;
se ĝi estas ne konas, jen tute malvarmeta.
Mi ne decidi ĝis mi estis malfrue en mia dua jaro.
kaj tiam Mi ankaŭ amas scii
ion frenezan vi volas diri al mi aŭ
io pri la klaso aŭ nur io alia.
Kiam vi farita skribante ke kun via malgranda printf,
se vi ŝparos la revizio aŭ pli ĝuste
unua certigi ke vi povas ruli ĝin
kaj kiu presas el ekzakte kion vi volas ĝin por presi,
kaj poste, se vi iros antaŭen kaj krom tio, ke versiono
uzante la Revizia Save butonon, tiu unua iom ulo super ĉi tie,
kaj ni kinda iri tra kaj fari iom enkonduko tiu vojo.
Do vi devus nur devas bati la Play butonon,
kio estas tie supre sur la pinto maldekstra,
tial ĉi Play butonon sur la supro maldekstro volo
sendi vian kodo ekstere al nia servilo kie gets kompilita kaj poste ekzekuti.
Do kio estas kinda freneza pri ĉi tio
ĉi tiu kodo reale ne kuras en via komputilo;
ĝi estas reale esti senditaj tra la Interreto.
>> Kiel vi fartas, Charlotte?
>> Mi - bone. I'm - Mi pensas mi estas
esti malfacilaĵoj ŝparante ĝin
en la servanto, ke gxi povas - mi ne povas kuri la programon.
Kaj poste, kiam mi provas ruli ĝin, ĝi diras ke estas eraro.
Deklarita kiel viruso, kiu ne estas en tie plu.
Ho, vidu; vi batis Konservu denove?
Mi vidas gxin sur la ekrano.
>> Ĝuste, bone, do jen kion mi havas.
Kaj mi ne scias kial ĝi ne lasu min ruli ĝin.
Ho, bone, sorry.
Ĉu vi povas klarigi kial - kio estis erara - kio ne funkciis kun ĝi?
>> Jes, ĉar mi ne vidis ke estis lasta linio kie ekzistas ankoraŭ variablo
ke mi ne deklaris, ke mi ne intencas ĝin esti tie.
Yeah, perfekta!
>> Nu, se mi savos ĝin, mi kredas ke devus funkcii.
Nun ke vi savis ĝin, ĝi funkcias; awesome.
>> Do jes, kiel ni trairi -
do kio okazas,
Mi simple intencas ripeti tion por la ĉambro.
Kio okazis estis ke tiu variablo s
restis en post - mi supozas vi deleted iu alia materialo
kie vi deklaris kiel,
kaj tiel ĉi tio ĵetante aferoj ekstere kaj ne lasi vin ruli ĝin.
Do ĉi tiu estas ekzakte kion ni volas fari en sekcio
Estas jam homoj provos skribi malsamajn pecoj de kodo,
kompili ĝin, vidu kio funkcias, vidu kio ne,
kaj tiam kinda paroli pri tiuj aferoj, ĉar tiuj estas Tripping punktoj kiuj
Mi ankoraŭ trovas,
Mi ankoraŭ - mi faras multajn stultajn aĵojn tuta tempo,
kaj mi ne scias kial ne funkcias,
do ni elsxiros Charlotte revizio 3,
kaj ni ruli ĝin.
>> Do kiam mi kuras, nun ke mi havas sian kodon en ĉi tie,
Mi povas zomi, batis la Run butonon,
alŝutoj ĝin, verko ĝin, kuras ĝi,
diras kuris kun sukceso, kaj se mi rulumu malsupren,
vidu Charlotte estas junior ĉe Adams Domo,
psikologio, malĉefa en ekonomiko; awesome.
Granda renkonti vin!
Awesome.
Okay, movante on, ni iru al Daniel,
iri al revizio 3,
kompili, forkuras;
kial vi ne diru al ni iom pri vi mem, Daniel?
>> Nomu min Dan.
Mi tuj negoco lernejo trans de vi knaboj,
kaj mi estis en la marines antaŭ ĉi tie,
kaj jen estas la tuta nova por mi, do jes.
Ne sentas malbone, mi estas 30 kaj mi ne scias iun el ĉi aĵoj.
Awesome; dankon, Dan!
Bone, ni akiris alian Daniel.
Vi iru de Daniel - vi prezenti vin, Daniel?
>> >> Certe, mi estas Daniel.
Mi estas sophomore ĉe Mather nun.
Mi celantajn registaro,
sed mi volis porti CS50 ĉar mi aŭdis grandan recenzoj pri la klaso
kaj mi neniam provis CS antaŭe.
Rulumu malsupren tie kaj montri ĉi - malvarmeta.
Movante on, Jared.
Kiel vi fartas?
>> Bone, kiel vi fartas?
Kiel vi povas vidi, mi estas juna filozofio concentrador en Eliot,
origine el suda Kalifornio,
kaj mi estas interesita en porti CS50 ĉar mi ŝatas la logiko de tio,
kaj ĝi ŝajnas vere malvarmeta fari aferojn en la komputilo, do.
Awesome; kie en suda Kalifornio vi estas?
>> Pri horon de [inaudible], malgranda urbo [inaudible].
Ho, jes, mia patro estas el Redlands.
Cool stuff.
>> Bone, Jimmy: kiel vi fartas, Jimmy?
>> Bone, kiel vi fartas?
Farante sufiĉe bone!
Diru al ni pri vi.
>> Mi estas freshman, kaj mi ne estas tute certa kio mi magistriĝi en
sed mi kinda apogante al ekonomiko.
Kiel Daniel antaŭ mi, mi neniam faris ion CS, sed sonas kinda cool.
Mi estas origine el Ĉikago.
Awesome. Do kontrolu sian printaĵo tie.
Mi volis demandi, ĉu ĉi tiu impreso el kiom vi atendis?
>> Ne, mi forgesis presi novan linion.
Mi vere forgesis ke kiam mi estis skribanta mian aferon
por la unua fojo, ankaŭ.
Estas speco de doloro memori meti tiujn en permane.
Ĝi estus agrabla se nur scias tion vi volis.
>> Konsentite, Kelly.
Wow, ni havas 2 Kellys; 2 Daniels, 2 Kellys.
Do Kelly - vi iru de Kelly Ren?
Konsentite, awesome.
Aŭ Kelly, mi volas diri.
>> Do jes, do mi estas Kelly.
Mi estas sophomore en Pfoho.
Mi ricevis retpoŝton hodiaŭ ke mi ankoraŭ havas 7 semajnoj por deklari mian koncentriĝon,
do mi provas ne pensi pri tio,
kaj mi ŝatas bakado, kurante, kaj Craisins.
Mi ne havas sperton kun plej de CS;
Mi instruis min mem konstrui Retejoj kiam mi estis vere juna,
sed mi opinias, ke mi probable instruis min malbone multajn fojojn.
Espereble mi lernos iom pli
kaj - jes.
>> Awesome; bone, dankon.
Ni iru al la alia Kelly;
Mi ne havas ion - vi diris ion tie?
>> [Inaudible]
Jen ĝi!
Dolĉa!
>> Bone, do mi estas Kelly.
Mi estas unua-jara postdiploma studento.
Mi magistriĝi en Menso, cerbo, kaj Eduko.
Mi diplomiĝis en Franklin & Marshall College en 2008
kun plej grandaj en psikologio kaj sociologio
kaj minora en la franca.
Mi prenas CS50
ĉar Mi estas interesita en duumaj PhD en Neuroscience
kaj mi sentas min kiel ĉi helpos min kompreni la teknologioj uzitaj.
Awesome.
Movante on, Mikaela.
Ĉu tio estas korekta prononco?
Konsentite, awesome.
>> >> Mi Mikhaila.
Mi estas sophomore en Kirkland Domo,
kaj mi koncentri en Mekanika Inĝenierio.
Mi vere ŝatas bicikladon, konstruis biciklon ĉi somero.
Mi prenas CS, fakte,
kiel koncentriĝo asigno,
sed vi scias, mi kredas ke estas ankoraŭ freŝa speco de inĝenierio klaso.
Awesome - vi konstruis biciklon ĉi tiu somero?
>> Jes.
Wow, kiel la kadro kaj cxio, kion?
>> Uh-hunh (jesa).
Wow, jen vere genia.
>> [Inaudible ekstere ĉambro babilejo]
[Ridado]
Jes, ili pasis tiom da tempo.
Vi neniam scias, ĉu ne?
Nu, cool; bone dankon, Mikhaila.
>> Bone, Missy.
>> Mia nomo Missy; Mi estas freshman,
por ke signifas mi ne scias ion ajn!
Mi volas koncentri en astrofiziko.
En CS50,
Mi sentas min kiel definitive helpi kun tio.
Nepara fakto pri mi estas mi estas nacie registrita fajrestingisto.
Wow!
Kiel tio okazis?
>> Mi ĉeestis akademion
kaj eliris tra la infero por multaj semajnoj
kaj ricevis mian ateston.
Wow, congrats!
Tio estas ne malgranda heroaĵo, por certa.
Okay, do nun ni faros mi.
Mi estas la sekvanta en la vico.
I'm - ruli ĝin.
>> Do mia nomo estas Nate.
Mi estis klaso de 2009 en Stanford.
Mi estis Simbola Sistemoj maĵora,
kiu estas simila al la Menso, cerbo, Konduto koncentriĝo tie,
sed estas speco de miksaĵo de
komputiko, lingvistiko, psikologio kaj filozofio.
Ia - jes, multe da strangaj aferoj, sed tio estis granda,
kaj poste mi faris mia sinjoro en Komputila Scienco tie, ankaŭ.
Do mi estas nova al Harvard ĉi tiu jaro.
Mi vere volis eniri instruado.
Mi pasigis la lastaj 4 jaroj en Stanford TA-ing Komputiko klasoj
kaj tiel David lasu min iras,
kaj ke mi baldaŭ estos helpi evi CS50,
do mi faru ĉi plentempe, mi estas ne en grad lernejo.
Jam pasis amuzo.
Espereble ĝi povos daŭrigi esti amuza, mi certas ke gxi estos.
>> Bone, Sam.
>> Mia nomo estas Sam; Mi estas sophomore ĉe la kolegio, en leĝo specife.
Mia plej granda estos historio de scienco, probable, kaj Ves malĉefa,
kaj mia preferata koloro estas flava.
Neniu bezonas por pasi juĝo aŭ nenio, sed ĝi estas bona koloro!
Kaj Stella.
>> Saluton, mi estas Stella; Mi estas freshman en Grays.
Mi havas neniun postsignon kion mi koncentris en ankoraŭ,
tiel CS50 estis nur speco de hazarda,
kio estas interesa.
Amuza fakto, Jimmy estis la unua Harvard amiko mia,
ĉar ni ambaŭ de Ĉikago.
Cool, kaj Grace - ke tio devus esti la vere bela unu, ĉu ne?
>> Mi pensis [inaudible].
Ho, jes.
[Inaudible / off-ĉambro babilejo]
Okay, mi ankoraŭ lernas, ankoraŭ lernado.
>> Do ni havas ion alian jen speco de interesaj tie.
Yeah, mi nur scivolas, ĉu vi havas ideon, ke okazas ĉi tie?
Vi scias kiel interpreti tion?
>> Mi supozis, por esti metita la punktokomo post ĉiu unuopa linio.
Tio estas speco de doloro.
Kelkfoje tiuj punktokomojn povas esti reela doloro spuri.
Do rezultas ke
la speciala programo ni uzas ĉi tiun jaron al
kompili nia C-kodo estas nomata Clang,
kaj la kialo ni komencis uzi Clang ĉi jaro -
ĉar ni ne uzis tiun programon en la pasinteco;
ni uzis alia nomita GCC ke vere populara -
Clang efektive donas erarmesaĝojn kiuj faras sencon.
Ĉi tiu diras "atendita ';' post esprimo",
kaj eĉ diras al vi la esprimon post kio vi bezonis punktokomo.
Do vi ripari ĝin?
>> Jes, ĝuste nun.
Awesome; lasu min scii kaj ni treni ĝin supren, kaj ni kuros ĝin.
Sed jes, metante tiujn punktokomojn en estas speco de doloro.
>> Mi riparis ĝin, do mi kredas ke devus funkcii.
Awesome - revizio 3.
Tio aspektas kiel ĝin.
Bone, do nun se ni kuras ĝi,
tie ĝi iras.
Cool stuff.
>> Bone.
Do dankon por fari tion.
Ke estas bone renkonti vin guys.
Kio ni estas gonna do nun elspezos la sekvanta iomete
kinda subnaĝado en la sekcio problemoj
kiu venas de la problemo metita de tiu semajno
kaj ni faru tion por la plejparto de la sekcioj
por la resto de la termino,
kaj poste ni povos savi la lastaj 15, 20 minutoj aŭ tiel
paroli pri la problemo starigis sin
kaj tiam simple ajna alia demandojn vi havas ĝenerale pri la klaso.
Kiu diris, kion ni vere volas fari
Estas jam ĉiuj partoprenantaj
uzante la Spacetoj stuff,
ĵetante en kodo, ĵetante en sugestojn,
kaj parolante pri kiam aĵoj like this rompo
aŭ ne funkcias, nur ĉar tiuj estas aferoj
Mi scias, mi renkontis
kiam mi komencis kodigo,
kaj estis vere kinda frustrante foje
ĉar se ĝi estas kiel la 2 am antaux via problemo aro estas devita,
do - nur por malkaŝo,
Mi ne komenci programado ĝis mi estis sophomore en kolegio.
Estis speco de ĉi stranga, nekonata afero
ke mi auxdis, estis kinda cool
kaj mi ankaŭ aŭdis povus esti reela doloro en la tenilon
se vi maltrafos punktokomo kaj tio estas la sola eraro tenante vian programon de laboro
kaj subteni vin iri dormi,
tiel definitive,
se vi havas demandojn tiel,
se vi havas zorgojn tiel, lasu min scii,
ĉar mi volas fari ĉi bona sperto por vi guys.
>> Do vi infanoj ĉiuj elŝutitaj la problemo starigis yet?
Kinda scias kie estas? Okay.
Do ni iros al cs50.net, ĉar mi ne havas gxin sur tiu konto,
elsxiros la problemo aroj,
elsxiros problemo aro 2, kaj ni rigardu la normo eldono hodiaŭ.
Ni elsxiros la specifo tie.
Rulumu malsupren.
Do ni estas gonna komenci rigardi ĉi sekcio de demandoj.
Ĉu vi infanoj rigardis tiujn mallongaj yet?
Okay.
Do estas mallongaj sur bukloj,
kiu estas farita de Tommy, unu el la kapo instruado kamaradojn.
Estas unu en medion,
Mi kredas farita de alia instruado ulo nomata Davido
kaj poste unu sur Cezaro Cipher ankaŭ farita de David.
Ili estas belaj cool.
Ĉu vi infanoj estis observante siajn mallongaj ĝis nun?
How've ili estis?
Helpis? Okay, bona scii.
Se ili ne estas, vi povas diri tiel.
Sed antaŭ ol vi faros,
vi infanoj rigardis tiujn demandoj
tute?
>> Ni parolos pri tio iomete.
Do ni enkondukis dum la lastaj kelkaj semajnoj
en prelego
numeron de malsamaj cikloj.
Jen la por ciklo,
la dum ciklo, kaj tiam la do-dum ciklo,
kaj en prelego, ni parolis multe pri
kiel tiuj cikloj estas ĉiuj
sufiĉe similaj en multaj manieroj,
kaj vi povas fari multe de la samaj aferoj kun dum buklo
ke vi povas kun a por buklo.
Vi nur devas ia uzi la dekstran kombinoj de variabloj kaj tia.
kaj tiel vere
la reala distingo inter ĉiuj cikloj estas ke
kelkfoje ili estas pli utila
por uzi ilin en tempo ol alifoje.
>> Do ekzemple,
dume buklo diferencanta de do-dum ciklo.
Ĉu ĉiuj sentas ili havas bonan tenilon de kiam
oni do-dum ciklo estas pli
utila aŭ kio la diferenco estas?
>> Mi kredas ke la diferenco estas do-dum buklo
kuras - Mi ne scias sufiĉe kion la terminologio estas,
sed la serio de funkcioj ene de la ciklo.
Ili aŭtomate - ĝi faras lian runs almenaŭ
antaŭ ol ĝi kontrolas la kondiĉo, aŭ la dum buklo nur kuri ĝin kiam
ĝi senĉese kuras - ĉu aŭ ne la kondiĉo estas sata.
Yeah, ĉu tio havas sencon?
>> Ni rigardu iom da kodo.
Do ĝuste ripeti la demandon,
aŭ la respondo, prefere;
la respondo estis, ke
momenton buklo kontrolos por vidi se la kondiĉo
ke vi precizigi estas konita
antaŭ ol ĝi kuras la korpo de la ciklo por la unua fojo,
dum la do-dum buklo aŭtomate run la korpo de la ciklo,
estas kion ni nomas ĝin - ĝi estas stranga terminologio,
sed se mi iam diros ion kiu ne havas sencon, lasu min scii -
la ciklo korpo estas ke aferoj kiujn vi metis en inter la frizita krampoj.
Kaj en do-dum ciklo,
tiu korpo get kuri almenaŭ unufoje,
kaj tiam la kondiĉo gets kontrolis antaŭ ĝi kuras ĉiu plua tempo.
>> Do efektive, Sam,
Kion ili gravas skribi simplan dum buklo
en Spacetoj?
>> Kiel vi ordigi de kiel
fari novan ...?
Mi nur forigi ĉion, kion vi havas en tie.
Yeah, nur purigi ĝin.
>> Nu, mi kredas ke mi havas tiun -
kiu vi volas, kiam, aŭ ĉu vi volas ...?
Yeah, simple kelka tempo vera, presi ion.
Kaj ni vidos.
Aleksandro, mi komprenis ni neniam enkondukis vi.
>> Ho, tio estas bone.
Ĉu vi - vi povas kodi supren do-dum buklo por ni?
>> Jes, mi provos.
Bone, ni nur tiri tiujn sur la ekrano,
por ke vi ia havas tenilon sur kio la diferencoj estas.
>> Do jen kio Sam ĉi faru.
Li havas entjero nomis i
ke li inicializado al 17.
Tiam li diras dum (int i = 17)
printf ("Mia nomo estas Sam.");
Do kio okazas kiam ni kuras tiun kodon?
Estas eraro; kion la eraro diri?
Ni tiri ĝin kaj parolu pri tio.
Okazis eraro, ĝi diras.
Ni rulu suben.
Kion donis al ni cxi tiun eraron, kaj gxi diris,
"Hej, mi atendis esprimo."
Tio kinda kamufla.
Yeah, do ĝuste - kaj denove,
estos alia iom cimo ke ni kaptos en nur dua.
Sed tio estas alia de tiuj ia stranga terminologio aferojn,
tial ĉi int i = 17
ne estas esprimo.
Kio aspektas kiel ĝi estas fari estas tio
deklari entjero nomis i
kaj fiksante ĝin egali al 17
aŭ, pli ĝuste, metante 17 en tiun int vokis mi.
Kaj kiu ne havas sencon
en la kunteksto de tiu dum ciklo.
Ĝi havas sencon, kiel ni vidos,
en la kunteksto de a por ciklo, ĉar por buklo deklaroj ne dividi
kun tiu por int i egalas ion
kaj daŭras.
>> Tiel faris vin -
ripari ion, tute certe.
Tie iras; awesome.
Do nun tio aspektas iom malsama.
Paro de aferoj ŝanĝiĝis.
Ĉu vi povas diri al ni tion, kion ili ŝanĝis?
>> Mi prenis el la int, do ne estas deklaro [inaudible] anstataŭ de valorizo.
La egala signo, mi metis 2 egala signoj, kion signifas egalas.
Awesome.
Yeah, do kio Sam ne estis li elprenis la int
kiu estis ĉi tie antaŭe,
do se mi simple rigardi ĉi - tiu ĉi estas kio gxi estas pli frua, ŝi diris int,
kiu estis deklarante ĝin - do ni prenis el la tipo.
Estas int, char, kordoj, mallonga,
tiuj estas nomataj tipoj.
Do vi elprenis la tipo
kaj tiam antaŭe,
li havis nur la solan egala signo
kaj kion li diris estis problema pri ĉi tio
kiam vi havas 1 egala signo,
jen asigno operatoro.
Tio ne kontroli, ĉu aŭ ne 2 aĵoj estas egalaj.
Tio vere opcio io egala al io.
Ni metas la numero 17 en la variablo i.
Do fari tian komparon,
vi devas uzi la duoblaj egaluloj,
kiu estas speco de stranga afero
sed estas sufiĉe komuna eraro.
Do unu alia afero mi markas, se vi ne ĝenas,
estas kiu en
nia funkcio ĉi tie en int main,
vi vidas ke la korpo de niaj funkcio
estas kompensita de la maldekstra flanko
per 4 spacojn aŭ langeto.
La kialo ni faros ĉi
estas nur por legibilidad.
Kiel vi povas vidi en Sam dum buklo tie,
li ne indent tute ne,
kaj kiu ne tuŝas la funkciaro de la kodo.
Ĝi funkcios ĝuste la sama.
>> Do ekzemple, se ni venis sur la supron tie
kaj premu nia Play butonon, ĝi konstruos ĝin,
ĝi kuros ĝin,
kaj kion okazos?
Kial ĝi ankoraŭ diras kurante?
>> Ĉar ĝi malebligos ke ripetante hi.
Ekzakte, kaj kial ĝi observu ripetante hi?
>> Pro la entjera neniam ŝanĝas, tia estas ĉiam 17.
Yeah, precize, tiel
ni vidu, post - memorigas al mi vian nomon denove?
Jimmy. Do, Jimmy diris ke
la kialo ĉi ripeti: hi denove kaj denove
estas ĉar ĉi tiu kondiĉo estas ĉiam vera.
Ni neniam ŝanĝi la valoron de i.
Ni neniam ŝanĝi la enhavon de tio, kio stokitaj en tiu variablo.
Do je ĉi tiu punkto ni akiris tiun eraron kiu
via programo generita tro multe eligo,
kaj se ni rulumu malsupren kaj tipon de rigardu kio okazas ĉi tie,
vi povas vidi ke ĝi estas hi, hi, hi, hi, hi, hi, hi tuta vojo tra.
Awesome.
>> Do ia reen al la originala punkto
ke havi la deŝovon tie
en la korpo de la dum buklo ne tuŝis nenion.
La programo ankoraŭ kuris nur fajna.
Tipe por bona stilo -
kaj ĉi tiu estas iu kiun ni serĉas en via problemo aroj -
ni petas vin indent ĉi per 4 spacoj, kiujn vi povas fari
por nur premante la langeton ŝlosilon
aŭ per mane metante en 4 spacoj mem.
Cool, okay do ni reiru kaj rigardu
Aleksandro do-tempo.
>> Nur kinda havante multe da malhelpo.
Konsentite, bone ni laboros per ĝi.
Ĉu tio estas cool?
>> Jes.
>> Okay, do jen ni iru.
Jen la kodo kiu Aleksandro skribis.
Ĉu vi iros de Alex - okay.
Do jen la kodo kiun Alex skribis.
Do, ni havas niajn deklaro de ĉefa dekstra tie,
kaj poste ni atingis ĉi entjera variablo nomis i
esti deklarita ĉi tie.
Ni havas do komunikaĵo
kaj tiam la korpo denove kun tiuj krampoj,
do ĉi tiu estas la korpo de la do-dum -
lasu min zomi en ĉi tia ĝi estas pli legebla -
kaj en la korpo, ni provas presi "ĉi tiu estas la korpo",
i + +,
tiel pliigo la enhavo de i kaj fari tion
ĝis mi alvenas al esti 3,
kaj tiam nia programo finiĝas.
>> Do kio okazas kiam ni kuras tiu programo?
>> Mi atendis ensalutilo.
Okay, do konstruu, kuri, eraro okazas.
Kio okazas?
Ni rulu suben ĉi tie,
ni preni tiun iom críptico rigardas aferon,
atendis punktokomo post supro nivelo deklaro.
Tio kinda stranga.
Ĉu neniu havas ideon pri tio, kion oni povus okazas?
Kinda stranga, yeah.
>> [Inaudible] esti deklarita ekstere de la parentezoj?
Do ĉu tio ne aplikas tiam kiam vi uzas krampojn?
Do li deklaris ĉi ulo ekstere de kiuj parantezoj?
Ho, tiuj infanoj - la frizita krampoj?
>> Jes.
Yeah, precize.
Do rezultas ke
vi ne povas reale deklari variablon ĉi tie ŝatas tion.
Kion vi povus esti provas fari estis -
tranĉi ĝin el tie -
vi povas aŭ ŝovi ĝin ene de la frizita krampoj ĉi tie
aŭ alia alternativo
estas meti ĝin tute ekstere.
Kaj tial tiuj - depende kie vi efektive metis la deklaro
de tiu entjero variablo,
vi povas akiri 2 tre malsamaj specoj de variabloj;
kiam estas ekster ĉefa,
estas kion ni nomas tutmonda variablo.
Estas ekster la atingo de iu el la funkcioj -
ĝi ne estas ene de funkcio -
dum se ni metas gxin en ĉefa,
kiel ĉi tie, tiam ĝi estas nomata loka variablo,
ĉar ĝi estas loka al la medio de ĉefa.
Kaj ni parolos iom pli pri kio la diferencoj estas
inter la 2 tipoj kaj kial vi uzas diversajn specojn de variabloj,
sed por nun,
vi povas simple observu ĉiuj variabloj lokaj,
ĉar ni ne havas ajnan bezonon por tutmonda variabloj.
>> Okay, do tio estas unu afero prava.
Ni provu kurante ĉi denove, vidi kio okazas.
Kuru, get alia eraro.
Zoom en iom, kion ni preni?
Ni get this atendis parentezo post do / tempon.
Ajna ideoj kio okazas? Dan?
>> Ĉu la tempo tiam parentezo kaj tiam -
Mi ne scias se vi bezonas redeclare int,
sed la fari dum (i <3).
Ĝuste, jes.
Do rezultas ke Dan Ekzakte pravas.
Ni ne bezonas meti ĉi tiu tipo tie denove.
Ni povas anstataŭ mortigi la tipo
kaj nur faru tion.
Bone.
Mi zoom reen ekster, provu ĝin pli tempo.
Rigardu tiun; kuras sukcesis.
Se ni rulumu malsupren, "ĉi tiu estas la korpo" presita el 3 fojoj.
Tio estas bela dolĉa.
Bone, bone farita, knaboj.
Well done.
Kiel vi ĉi alvenante?
Deca ritmo?
Konsentite, cool.
>> Do, kiel ni ia reen al la originala demando,
ni - kaj nun, se ni vidas la diferencon,
vi vidas, ke en ĉi do-dum ciklo,
kondiĉe venas lasta.
Do kiel la komputilo legas la programon
ekde C programoj estas ekzekutitaj ia en ĉi secuencial ordo,
kie laŭvorte starti kun la unua linio de ĉefa,
kaj poste ekzekuti linio 6, linio 7, linio 8, linio 9,
linio 10, linio 11,
ĉiuj ĉi aĵoj supre dekstre tie
tuj ekzekuti unufoje
antaŭ ol ni iam provi ĉi kondiĉo por vidi
ĉu mi - aŭ la enhavo de i, prefere -
estas malpli ol la nombro 3.
Kaj nur se iam ni atingos linio 12,
la enhavo de i estas malpli ol 3
do ni efektive saltas reen ĝis la linio 7
kaj poste ripeti la procezon,
kaj poste ni testi la kondiĉo denove kaj denove kaj denove.
>> Do ni povas kontrasti ĉi
kun - zoom reen eksteren,
rulumu malsupren al Sam versio,
ni estas gonna rigardu tion, iomete ŝanĝita por ke ĝi ne plu senfina ciklo -
kie se ni zomi,
ni vidas ke ĉi tiu programo ekzekutas,
ĝi tuj unua deklari int i,
starigis la enhavo de i estu al 0,
kaj tiam frapas la kondiĉo de la dum buklo unua,
tial en ĉi tiu kazo, tiu korpo, ĉi printf ("hi") kaj i + +
eĉ ne ekzekuti
se i estas vere malpli ol aŭ egala al 2.
Do, se i estas 3, ekzemple,
se ni povas tion ĉi tie
egala al 4 - aŭ mi faros 3, ĉar mi diris 3 -
kaj poste ruli ĝin,
ĝi devos konstrui, ĝi kuros tute bone,
sed ne vere presi ion,
ĉar ĝi malsukcesis ke provo por la unua kazo.
Do en la klaso, ni ia parolis pri kial tiuj do-dum maŝojn
estas utilaj kelkfoje
kaj kial ni devus uzi ĝin kiel kontraŭ momenton buklo.
>> Ĉu ekzistas - do you guys havas sugeston
cxar kial oni do-dum buklo povus esti pli utila?
>> Nu, mi pensas do-dum cikloj estas se vi volas uzanto enigo,
ĉar tiu vojo vi povas lasi ilin
meti ion en unu fojon; se estas ĝentila,
ni povas movi al la resto de la programo,
sed se ne estas ĝentila, tiam vi daŭre instigante la uzanto
ĝis vi metis la dekstran enigo.
Yeah, precize - ekzakte,
tial do-dum ciklo estas utila
ĉar kiam instigante por uzanto enigo
ĉar vi bezonos akiri la uzanto enigo antaŭ ol vi povos efektive kontroli ĝin.
Do en pset 1, en pset 2,
kie vi instigante por uzanto enigo estas multe,
tio estas utila afero uzi
kontraste al nur simpla dum ciklo.
Se vi uzas dum buklo, vi povas fari la samon -
vi povas fari la samon kun dum buklo
kiel vi faras kun do-dum ciklo.
Vi nur devas ia havas tiun duplikatajn procezo
kie vi akiris la enigo unua kaj tiam komenci vian dum ciklo.
Pro do-dum buklo, vi nur devas skribi ĝin unufoje
kaj ĝi estas multe pli pura.
>> Bone.
Demandojn?
Sencon?
>> La reveno 0 - tio estas nur speco de stalo aŭ ĉu -?
Yeah, do ni povas -
bone, ni kovras ĉi iom pli poste
sed ĝi rezultas ke
ĉi tiu reveno 0 kiujn ni metis
fine de ĉefa tutan tempon -
vi povas kinda simple preni ĝin kiel ion ni devas fari
provizore.
Kion ni komencis paroli pri kun funkcioj
speco de fine de la pasinta semajno kaj tiam denove ĉi-semajne
estas ke funkcio
prenas enigoj, kiuj estas tiuj aĵoj ene de la krampoj;
tiuj estas 2 enigoj, nia argumentoj aŭ parametroj,
kion ili ankaŭ nomita al nia ĉefa funkcio,
kaj tiam funkcio produktas eligo
kiun ni nomas la reveno valoro.
Kaj la reveno valoro en la kazo de ĉefaj estas ĉi int,
ĉi entjero,
kaj la vojon diru funkcio, "Hej, tion vi eligo
tuj estos, "estas kun tiu vorto" reveno ",
ke ŝlosilvorto, pli ĝuste,
kaj tiel ĉefa reveni 0
aŭ ĉefa elirigi 0
estas normo en C programoj
ĉar reveni 0 de ĉefa signifas ke
"Hej, ĉio ekzekutita kun mia programo nur bela."
Se ni estus meti ion alian ol 0,
kiel 1, ekzemple,
ke estas uzata por diri kiu ajn kuris tiu programo
ke io iris malbone.
Do kiel ni ricevas pli implikitaj kun stuff super la semestro,
se vi iam bezonas diri,
"Oops, vi scias, iu iris malbone en tiu programo,"
prefere ol, havante mian programon akcidento, mi volas sciigi
la koridoro de mia programo, ke io estis malbone,
vi povas uzi reveno valoro,
kiel ni nomas ĝin, tio ne estas 0.
>> Do ni kovras ke iom pli
iam ni enir funkcioj.
Tian havas sencon?
Okay.
Funkcioj estas klaso de bizara -
Mi kredas por homoj kiuj havas multajn matematikajn fono
ĝi venas iom pli facile,
precipe se vi havas iom pli abstrakta math fono
kaj vi uzis por paroli pri funkcioj
kaj cxio, kion klaso de aĵoj.
Sed ni provos kaj kovri ilin
kaj iru bela kaj malrapida kiel ili venis.
Ankaŭ, ĉi tiu tuta int argc,
char * argv [],
cxar nun vi povas ankaŭ preni ke kiel kaldrono telero.
Ni komencis kovri tiujn iom en prelego
kiam ni parolas pri argumentoj kiujn get pasis al programoj sur la komanda linio,
sed en via problemo aroj kaj viaj programoj,
estas tute bone simple skribi malplena kaj konservi ĝin simpla.
Kaj kion tio signifas void estas ke
"Hej, ĉefa ne tuj akceptus ajnan enigoj;
ĉi tiu estas nur programo ni gonna nur kuri.
Ni ne gonna donos neniun ekstran informoj
ĉiufoje ni komencu gxin kuri. "
Do por la momento, vi povas fari tion;
vi povas ankaŭ eĉ preterlasi la reveno 0
fine de via programoj kaj ili kuros nur bone,
sed mi rekomendas simple subteni ke in
En paro de semajnoj, ni komencos ia
tiri denove la ferdeko iomete kaj kompreni pli pri
ĉiuj tiuj malsamaj iom movanta partoj.
>> Bone, nun ni parolu pri nia dua demando tie.
Do kion signifas la "nedeklarita ensalutilo" kutime indikas
se outputted per Clang?
Mi kredas ke ni povus vidi ke jam hodiaŭ.
Ĉu iu povas doni recap de kion tio signifas?
Ni vidu, Kelly - unu el la Kellys.
>> Do -
Yeah, kio faras -
>> Mi pensas, kiam vi, kiel, ne deklaras la variablojn kaj vi provas uzi ĝin.
Yeah, ĝuste, akurate.
Do, se vi iam vidi ĉi eligo
kiam vi provas kaj kompili vian programon,
samkiel Kelly diris,
ĝi signifas ke vi uzis variablo kiu vi ne deklaris,
do se mi reiros al nia Spaco,
kaj mi faru ion kiel
printf (
"Saluton% s")
kaj provi kaj plenigu en tiu% s
kun ŝanĝiĝema s kion mi ne deklaris ie
kaj mi provas ruli ĝin,
vi vidos, kion Mi alvenas malsupren en ĉi sube tie ĉi:
"La uzo de nedeklarita ensalutilo 's'";
ke nur signifas ke vi ne deklaris vian variablo.
Sama afero okazas se
vi havas x kaj vi provas kaj stoki 7 en ĝi
kaj mi ne deklaris X.
Mi alvenas tiu sama eraro:
"La uzo de nedeklarita ensalutilo 'x'".
>> Bone,
do la cezaro Cipher, ne esti tre sekura,
Mi lasos vin infanoj rigardi ĉi mallonga, ia kompreni kial,
kaj espereble post fari ĉi tiu semajno problemo starigis
kie vi fakte skribi Cezaro Cipher, vi komprenos iom pli
pri kio signifas esti sekura kaj necerta -
aŭ ne sekura, mi supozas - necerta estas iomete malsamaj.
La alia afero ni havas ĉi tiujn aliajn demandojn tie
pri funkcioj
kaj kion funkcio estas,
kaj ni ia parolis pri tio mallonge kiam ni parolis pri reveno valoroj;
por iu kiu jam pasis por prelegi,
vi povas recap kiu jam pasis por prelegi hodiaux?
Bone.
Ni vidu; ni havas - povas iu diri al ni kion funkcio estas?
Kelly?
>> >> Esence ion vi desegnas sur iu kiu estis skribita en la biblioteko jen
pli komplika ol tie, kaj tiam vi simple skribi mallongan formon de ĝi,
tiel kiel vi raportante al tiu biblioteko, uzante
ĉiuj, kiuj delonge kodo kaj [inaudible].
Yeah, precize, kaj tiam vi volas aldoni ion al tio?
>> Jes, mi pensas pri ĝi kiel simila al la koncepto de formulo en math
kie vi ĵus skribi formulon kaj tiam vi povas ŝtopi variabloj en
kaj tio funkcio estas [inaudible].
>> Yeah, do ni havas kelkajn respondojn tie
kiuj estas ambaŭ vere bona kaj justa plu.
Okazis raportante al kodo ke tio estis skribita en la biblioteko ie
ke estas pli komplika
kaj tiam vi povas desegni sur tiu kodo
kaj fakte uzas ĝin por nur skribi la mallongan formon de ĝi -
aŭ, pli ĝuste, lia nomo -
kaj tiam estas ankaŭ ĉi komparo al formulo en math
aŭ fiziko, cxiuj klaso de aĵoj
kie vi havas formulon
kaj vi povas tiam konektas en
la variabloj al tiu formulo
al la tiam akiri la rezulton de la formulo,
tiel vi pensas pri tio kiel kiel la kvadrata ekvacio.
Imagu se anstataŭ devi lerni pri
kion la kvadrata formulo estas en math klaso,
vi simple devis iom kalkulilo programon kiu faris por vi.
Ĉu neniu uzas kalkulilo programoj en math klasoj en alta lernejo?
Yeah, fiziko klasoj?
Kie vi povas simple diri, "Hej, kvadrata formulo.
Ĉi tiuj estas la variabloj, ke mi volas enigo.
Nun donu al mi la respondon. "
Tio estas speco de kia funkcio estas.
Ĝi estas maniero por ni
speco de skribo kiel malgranda iom sub programo
ene de nia granda programo
kaj uzi ĝin denove kaj denove
por ke ni ne devas kopii kaj almeti kodo,
ni povas doni ĝin malsamaj enigoj kaj akiri malsamaj eligoj,
ĝi estas super oportuna
kiam vi provas skribi malsamaj programoj en malsamaj epokoj.
>> Do ekzemple, funkcio kiun ni uzis denove kaj denove kaj denove
laŭlonge de la kurso estas printf.
Printf estas sin funkcio
kaj tio rezultas ke ĝi estas vere bela longa kaj komplikita,
aĉa rigardante, funkcii skribi.
Do tiel simpla kiel ĝi ŝajnas al ni
presi stuff al la ekrano,
ĉar ni ĉiuj simple faris tion komence de sekcio hodiaŭ,
rezultu ke fakte, sciu,
bona paro de cent linioj de kodo.
Ĝi ne estas io, kiun mi iam volas skribi, asekuro,
sed ni preni uzi ĝin ĉiutage; jen speco de cool,
tiel ni atingos dividi ĝin kun alia,
kun malsamaj programoj,
do ni estos subnaĝado pli enen funkcioj;
provizore, ni ne -
la sola funkcio nin tuj skribos estas ĉefa.
Ĉefa mem estas ankaŭ funkcion,
kaj vi povas vidi ke estas atingis sian produktadon
lia enigoj kiel ni raportis,
kaj tiam ĝia nomo, kiu estas ĉefa.
Artikolo estas speco de - estas speciala funkcio tie.
En via C programon, ne devas esti ĉefa funkcio,
kaj tiel por nun, ni ia preterlasis skribo
la prototipo, aŭ la deklaro de, ĉefa.
Ni donis ke al vi,
kaj ni ĵus estis vi plenigu speco de la spacoj.
>> >> Do por la dua problemo aro, ni ne bezonas
skribi ĝin en la dua funkcio?
Mi ne kredas tion.
Mi kredas ke estas ĉiuj en ĉi tie.
Yeah, do Cezaro Cipher,
vi ne devas, ne rigardu kiel,
kaj Vigenère, vi ne bone,
tiel - kaj ĝi rezultas vi ne iam reale devas skribi
funkcio, ĉu ne?
Vi nomas ĉiam metas ĉiujn viajn kodo ene ĉefa,
kaj multaj programistoj fari tion.
Kiel ni movi plu,
ni komencu enkondukante funkcioj kiel maniero
purigi vian kodon,
fari ĝin pli eleganta,
en kazo vi havas taskojn - ia kiel kiam ni parolis pri cikloj,
kiom foje estas aĵoj, kiun vi volas fari denove kaj denove kaj denove,
kaj vi havas ia la naiva maniero -
aux kion ni ofte nomas la "pajlulo" solvo,
estas ĝuste kopii kaj almeti denove kaj denove -
vi povas fari la samon kun funkcioj kie vi ĵus kopii kaj almeti
la saman kodon denove kaj denove,
sed ke bloats vian kodo -
ĝi finas farante vian kodon vere longe -
kaj ankaŭ ricevas iom malklara,
kaj tiam signifas ke vi ne povas ŝati -
se vi iam volas uzi tiun kodon denove en alia programo,
vi ankaŭ batis kopii kaj bati ĝin denove,
tial unu el la aferoj ni parolos pri trovas
speco de dezajno kaj stilo de via programoj,
kaj tiel, kiam ĝi havas sencon ia
pako ion tien kaj metis ĝin kiel sendependan funkcio,
ni kuraĝigas vin fari tion,
kaj tio estas io, kio denove,
ne estas malmola kaj rapida regulo.
Ni malofte diras ke vi devas skribi funkcion nomis tiun,
sed ĝi estas pli de unu el tiuj aferoj, kiujn vi ĵus disvolvi la tempo
kiel vi skribas pli kaj pli programoj.
>> Plu demandoj?
Konsentite, do ni nun
iri malantaŭen ĝis ĉi ulo ĉi tie,
tial mi ankoraŭ en ĉi tiu sekcio de demandoj.
Ni jam parolis pri ĉiuj tiuj malsamaj,
kio estas funkcio, kial skribi funkciojn,
kiam vi povas simple kopii kaj almeti?
Espereble ni konvinkis vin, ke skribi funkciojn, estas bona aĵo.
Do nun ni movi antaŭen al ĉi MySpace programo,
kaj ni pasigas iom da tempo fari tion.
>> Do, ni vidu,
mi povas esti iu legas tion por mi?
Ni havas Mikhaila - cxu vi legis tion por ni?
>> You mean malantaŭen kiam MySpace -
Back kiam MySpace estis genia.
>> "Back kiam MySpace estis genia,
ĉiu estis la furoro por tajpi ŝatas tion.
Eble ĝi ankoraŭ estas? Mi ne vere certas.
En ajna kazo, uzante la CS50 Appliance,
CS50 Run, aŭ CS50 Spacoj,
skribi programon kiu pelas la uzanto por mesaĝon
kaj tiam eligas la mesaĝon kun lia unua letero majusklon,
kun ĉiuj aliaj literoj en alternaj kazo,
kiel por la specimeno eligo pli sube,
en kiun boldfaced teksto reprezentas iujn uzanto enigo.
Por simpleco, oni povas supozi ke la uzanto
volo nur enigo minuskla literoj kaj spacoj.
Konsideru ĉi tiun problemon eblon praktiki;
vi ne estos petita prezenti ĉi tiu programo. "
>> Awesome, dankon.
Do kiel Mikhaila diris,
tuj skribi programon kiu MySpaces vian kodon.
Tial same iu el vi infanoj uzi MySpace?
Iu el vi havas MySpace kontoj?
Ho, jes, jes!
Ĝi estis sufiĉe malvarmaj.
[Ridado]
Mi scias.
Dating mi mem.
Do kion ni provas fari estas skribi programon
kiu iras tra
kaj capitalizes la unua litero
kaj tiam ĉiu letero poste -
aŭ ĉiu alia letero poste, mi bedaŭras.
>> Do - kaj vi povas vidi en ĉi tiu ekzemplo,
jen kiel ni ruli la programaron,
kaj tiel ĉi tio nur diras, "Ni kuras programo nomata a.out.
La eniro ke ni tuj doni ĝin
tuj estos instigis.
Ni ne gonna provizi la eniro en la komanda linio. "
Se vi estis sekvante ĉiuj prelegoj
kaj aŭdante pri komandlinio argumentoj,
jen speco de kie tiuj - ke funky sintakso
ĉe ĉefa envenas kun la int argc, cxiuj aferoj,
do tien ni ne uzas tion; ni ne pritraktas iun el tio.
Ni estas nur gonna get this tajpitaj en de la uzanto,
kaj tiam ĉi duan linion kun la funky majuskloj
estas kion ni volas nian programon al eliro.
>> Do anstataŭ uzi la Appliance aŭ Run, ni uzos Spacoj,
ĉar ni havas Spacoj,
kaj do se vi infanoj estus
ricevos vian kodon por rigardi ion kiel ĉi tiu,
do mi tuj savi ĉi revizio
nur tiom vi havas la kaldrono plato ĉi tie
kiu similas tiun, int main (void), nenio en ĝi.
Vere, kion ni faros estas ni nur forigi ĉiun ĉiuj kune.
Ni volas vakan skribtabulo,
ĉar ni ne gonna komenci skribi kodo;
pli ĝuste, ni gonna provi skribi kelkajn _pseudocode_
kiuj vere nur signifas ke ni tuj skribos iu kiu ne estas kodo
tian priskribas kion ni volas fari,
kinda kiel faris David en la unua tago de prelego,
aŭ mi supozas ke estis la dua tago de prelego kiam li faris la tuta ŝtrumpetojn demo.
You guys memoras ke - vidante la ŝtrumpetojn?
Jozef estis tie ia tajpi ekster en la angla?
Do ni estas gonna do la sama aĵo.
>> Do kiam mi komencas skribi _pseudocode_,
Mi ŝatas komenci rigardi kion la enmeto tuj estos.
Kaj mi donas min specimeno kazo,
tiel kiel "dankon pro la add!"
Kaj tiam mi ankaŭ skribos kion mi volas la eligo esti,
kiu en ĉi tiu kazo estas io tiamaniere.
Kaj tian donas al mi bonan, kiel, ekde loko por pensi,
"Bone, mi volas preni la linio 1
kaj mi volas transformi ĝin en la linio 2, "
kaj tian helpas gvidi mia penso.
Ĉi tiu estas bona loko por komenci.
Alia vojo al pripensi ĝin, ankaŭ, kiel ni kinda movi sur
kaj kiel vi faras tion en viaj propraj programoj, estas
pensi ia kiel tio estas la rando kazoj al tio?
Kio estas speco de la stranga scenaroj?
Kio estas la stranga enigoj, ke ni povus preni?
Kaj kion oni tiuj eligoj aspektas?
Ekzemple, unu stranga enigo
estus ĉi tiu,
krei absolute nenion,
kiel kion ni eligo en tiu kazo?
Io ni volas pensi, ankaŭ.
>> Do ĝuste kiel demando,
kio povus ni volas eligo?
Se ni ne akiras iun enigo tute ne, kio devus nia programo estos elirigi?
>> Nenio.
Nenio? Sonas granda.
Do ni volas certigi ke ni ne skribas ion el
se ni ne komprenas ion ajn in
Cool. Okay.
Do
Mi tuj alvokos kelkaj homoj kiel ni trairi
kaj ĝuste kalkuli ia kiel kion la ĝenerala algoritmo estas
kaj ni speco komenci labori tra ĉi kune.
>> Do, ni vidu. Missy.
Kiel vi opinias, ke ni volas komenci?
Kio estus bona loko por komenci tie
se ni volas transformi, diru, linio 1
en linio 2?
Can you speco de simple klarigi al mi, en la angla, kion vi pensas?
Eĉ ne maltrankviligi kodo.
>> Unue kion mi farus estus
speco de rekta al la uzanto por diri al ili kion vi volas.
Okay, do, ekzemple,
"Hej, uzanto. Mi volas
cxeno "- awesome.
Do ni skribus ĉi sube.
Instigas la uzanton por linio.
Tio sonas kiel bona komenco.
Bone.
Ni petas Kelly Ren ĉi tiu tempo.
Kion ni do volas fari poste?
Kio estas speco de nia venonta -?
>> Kolektas ilia eniro kaj stoki ĝin kiel variablo.
Granda.
Do kolekti la kordo,
stoki ĝin en variablo.
Do estas io speciala ni volas fari tie?
Ĉu ni volas kontroli siajn enigo
antaŭe -?
>> Jes.
Kio povus ni volas kontroli?
>> Nu, vi diris ke ni ne devas kontroli ĉu ĝi estas nombro, ĉu ne?
Ĉar ĝi devos supozi ke ĝi estas minuskla?
Yeah.
>> Do rezultas ke - jes.
Do getString estas garantiita por reveni al ni kordoj.
Oni ne tuj revenos numeron al ni aŭ io simila.
Povas esti cifero karakterojn ene de tiu ĉeno, kvankam.
Kaj tiuj, ni povas ignori kiel ni faris la majuskloj.
Sed malplena linio estas tute bone,
tial la kazo ĝuste sur linio 4 kaj 5,
Dekstre, kie ne estas eniro,
kaj ni metis nenion kiel nia eliro.
Ni ne devas maltrankviligi certigante ke estas iu en la ĉeno
aŭ kiu la kordo estas minimume 4 signoj longaj;
io estas bona.
Do tiu estas kontrastita, ekzemple, kun kiel la moneroj programoj kiuj vi skribis
kie vi devis certigi vin teksado nenegativa nombroj;
vi devis certigi ke vi ricevas la ĝustan nombron de tagoj en monato.
Kaj kiel vi infanoj faras tion?
Kiel vi faras tion testo?
Kion kiuj postulas, ke vi uzu?
>> Do-dum cikloj.
Do-dum bukloj; aliaj specoj de cikloj, tro, jes.
Do rezultas ni ne devas uzi ciklo en ĉi tiu kazo,
kiam ni instigante al cxeno, kiu estas speco de agrabla.
>> Bone, movante plu.
Do, Stella.
Ĉu vi povas diri al ni iomete pri tio, kion ni faru nun?
Do nun ni havas la kordo, ni havas ĝin stokita en variablo;
Kion ni bezonas por fari kun la kordo?
>> Ni bezonas -
identigi la 2 -
Yeah, simple diru ĝin en la angla, tio estas timinda.
>> Identigi la [inaudible] ĉefurboj - aŭ, majuskla.
Yeah, do vi volas identigi kiuj aĵoj estas majuskla kaj minuskla.
Ni ne povas majuskle aŭ minuskle ilin ĝis ni identigas kiu aĵoj.
Do ni metos ke en ĉi tie.
>> Do, nur pensas en tiu procezo,
how do ni faru ĉi tiu identigo?
Ĉu vi scias, Dan?
Speco de tio, kion ni - kion ilo ni devus uzi el niaj iloj?
>> Mi metis ĝin en iu maniero en kiel tabelo aŭ ĉiu linio
estas liaj propraj iom skatolo,
kaj tiam Majusklaj ĝin de tie aŭ ne.
Okay, do unu ilo ni povas uzi estas tabelo.
Kion ni devas rigardi en la ĉeno,
kvankam, elŝeligi - ni devis rigardi la gravuloj.
>> Do vi devas rigardi la longo de la kordo?
Yeah, do parto de tiu fariĝas ĉiam la longo de la kordo.
Nur pro scivolemo, kion ni uzas por ricevi la longo de kordoj?
>> Strlen?
Yeah, strlen; ni nomas tion "strlen"
Ĉiuj de ĉi tiuj kordoj funkcioj, do strlen estas funkcio,
kaj estas super oportuna, ĉar ni povas uzi ĝin por nur diras,
Hej, strlen: Jen kordoj, diru al mi kiom longe ĝi estas.
En la prelego hodiaŭ, Davido parolis multe pri kiel strlen estas implementado,
kio efektive okazas malantaŭ la scenoj.
Sed ĉi tiu estas unu el la tre super oportuna aĵoj.
Estas aliaj kiuj estas ankaŭ en la kordo biblioteko,
kiel strcmp, kiu estas literumita "strcmp",
kiu estas uzata por kompari kordoj al ĉiu alia.
Aliaj aĵoj vi uzos kiel strstr,
kio estas bona por trovi sub kordoj kaj tiel plu.
Por la plimulto, ili ĉiuj komenciĝas per str kaj poste iru al esti iu alia.
La kialo ne vere literumi ilin kiel ĉenon kaj tiel plu
estas ĉar reen en kiel la fruaj tagoj de C,
kiam homoj estis unue skribe kaj cxiuj,
ili havis limigojn sur la nombro da karakteroj por ke vi povis uzi
por funkcio nomoj kaj variablo nomoj,
do ĉio estas kiel super kondensita.
Sed aùton vi vidas ion, kiu komenciĝas per str,
kiu tipe signifas ĉi havas ion fari kun ĉeno.
>> Konsentite, do vi devas atingi la longo de la kordo,
kaj poste, kion ni faru kun la gravuloj?
Ĉu vi scias, Sam?
>> Mi tute ne scias, mi provis kompreni ĝin.
Mi vere ne scias - mi deziras estis iuj maniero -
Mi volas diri, mi pensus eble ni povus fari ion kun senesperon kaj evens,
sed mi ne scias pri iu ajn funkcio tiel.
Yeah.
>> Sed tio - tio ne nepre laboras,
ĉar tiam vi ricevas la spacoj esti -
vi devus havi la spaco por ricevi konsiloj pri kiel -
Okay.
>> Mi ne scias - I'm ia perdis je ĉi tiu punkto.
Yeah - ne, ne, ne, tiuj estas bonaj punktoj.
Do kion ni bezonas por fari estas, kiel Sam diris,
ni bezonas por spuri kiuj literoj estas la nepara literoj,
kaj kiu aĵoj estas la eĉ leterojn.
Sed ni volas certigi ni ne nur rigardis
ĉe la neparaj kaj eĉ
indeksoj en la ĉeno,
sed prefere rigardante la strangan kaj eĉ literoj en la ĉeno,
do ni bezonas kinda havas tiun distingon inter
leteroj - kiel kio estas reale A, B, C, D, aŭ tiel plu,
kaj kion aĵoj ne estas literoj sed ankoraŭ en nia linio.
Ekzemple tie, kiel tiu ekkrio punkto ne leteron,
sed estas ankoraŭ parto de nia kordoj, temas ankoraŭ char.
Simile, ĉiu de ĉi tiuj spacoj -
ĝi ne havas sencon por profiti spacon, ĉu ne?
Do ni volas certigi, ke ni iel salti tiuj
dum ankoraŭ sekvado senesperon kaj evens.
>> Do ia en nia programado iloj
ĝis nun, se vi volas,
ni havas kelkajn diversajn ilojn kiuj ni jam parolis pri.
Do, ekzemple, estas variabloj,
kiel ni jam parolis pri cxi tie.
Alia ilo ni jam parolis pri estas funkcioj.
Do ni jam parolis pri variabloj en nia _pseudocode_ tien
kiel kio ni tuj uzos por stoki niajn kordoj.
Ni jam parolis pri funkcioj por ricevi la longo de kordoj, kiel strlen.
Ni parolis pri io alia, kaj ni jam parolis pri tio
cxar multe pli frue en la sekcio hodiaŭ: cikloj.
>> Kion vi pensas pri infanoj uzante buklo en tiu programo?
Jared, kion vi opinias?
Ĉu ni uzu ciklo en tiu programo?
>> Probable ne, ne, ĉar vi ne devas iri tra ĝi pli ol unufoje.
Okay, vi ne devas iri tra pli ol unufoje?
>> La tuta linio.
Bone, do vi ne devas iri tra la kordo tuta unufoje.
Pardonu, ke faris absolute neniun senson!
Vi ne devas iri tra la tuta ĉeno pli ol unufoje.
Okay.
Kion vi opinias?
>> Mi pensas ke ĝi estas bona por uzi ilin
do ni povas fari kiel capitalize dum
la situo de ĝi estas [inaudible] numeron.
Granda, kaj tiel profiti kio?
Okay, do ni dirante, ke
ni devus uzi buklo ĉar ni volas
profiti leteron dum ĝi ne estas nombro.
Do - sorry, vi volas aldoni?
>> Mi intencis diri, ke la vojo vi trakti la kordo
kaj [inaudible] disigas la [inaudible] en la gravuloj?
Yeah.
>> Kaj tiam ni povas atribui la nombroj al -
aŭ bazita sur la loko de la literoj en la kordo?
Yeah.
>> Kaj identigi ĉu ĝi estas nepara aŭ eĉ kaj profiti la letero mem
dum la situo de la letero estas [inaudible] - sorry.
Granda.
>> Do nur recap.
Ĉu vi povas rememorigi al mi pri via nomo denove - I'm sorry.
>> Charlotte.
Charlotte, okay.
Do kio Charlotte dirante
kio estas plene rajtas - ho, tiu homo al auto indent sur min -
estas ke se ni rigardas ĉeno
kiel ĉi tiu supre -
"Dankon pro la Aldoni" -
kiel vico de signoj
kie la estas en pozicio 0,
la h estas pozicio 1.
A estas 2, tiam ni havas 3, 4, 5;
la spaco estas en la pozicio 6.
Dum - kio estas la pozicio de f?
7!
Ho? 8.
R? 9.
Kaj tiam ni havas 10, kaj poste mi ne povas vere skribi ĝin sen ĝi
kinda atingi senorda sur la ekrano.
Sed tio estas vere kiel ni povas paroli pri kordoj en memoro.
Ĉu ĝi ĉeno
estas vico de signoj,
kaj kiam ni priparolas al individua karaktero en ĉeno,
ni ofte faras tion pro mencio ke gravulo pozicio
ene de la kordoj,
probable la sama vojo, kiun ni parolas pri septembro
esti la naŭa monato de la jaro
aŭ lundo esti la unua tago de la semajno.
Do ĉi havigas al ni vojon al
elŝeligi kiuj aĵoj estas nepara kontre eĉ
ĉar vi povas vidi ĉi tie,
se ni kongruas ĝin kun ĉi tiu T,
vi povas vidi, ke ĉiuj de la majuskloj aĵoj
estas vespero pozicioj,
almenaŭ por la unua vorto,
kaj tiam aĵoj elĵetigis vin ekstere iam ni batis tiu spaco,
ĉar ni ne rakontas ĉi spaco kiel leteron,
tiel estas kvazaŭ ni komencis
kaj eliris 0, 1, 2, 3, 4, 5,
spaco, 6, 7, 8, spaco,
9, kaj tiam 10, 11, 12, kaj tiel plu.
>> Cool, do ni certe volos uzi ian buklo
iri super ĉiu el la gravuloj de turno.
Do je ĉi tiu punkto,
ni revenos al nia malnova _pseudocode_ tie.
Kiel parto de ĉi tiu identigo de kiuj tiuj
estas majuskla kaj kiuj aĵoj estas minuskla,
ni volas fari ĉi tion en ia buklo.
Cirkla, dupunkto.
Kia buklo, el la tipoj de cikloj, ke ni havas,
Ŝajnas esti bona por uzi en tiu kazo?
>> Mi pensis la por buklo.
Kaj kial vi pensas por buklo?
>> Ĉar komenciĝas je nulo, kaj poste
kiam ni atingas la longecon de la kordo,
kaj tiam ĉiu ripeto vi povas [inaudible] ankaŭ?
Yeah, precize.
Do, el la malsamaj elektoj de cikloj,
ni havas por bukloj, dum bukloj, kaj do-dum cikloj.
Kie a por buklo estas aparte utila
Estas kiam vi volas scii
speco de kie vi estas en la ciklo,
kiom da fojoj la buklo estis ekzekutita ĝis nun.
Kio estas ĝuste kion ni volas scii en ĉi tiu situacio,
kiel Kelly diris,
bazita sur de Charlotte en la unuaj komentoj kiujn ni volas scii la pozicion
de la karaktero ene de la kordoj,
kaj la por buklo donos al ni nur tion,
ĉar se ni komencas ia rigardante malantauxen je nia ĉeno,
se ni komencos nian por buklo je 0,
kaj ni iru supren tra la longo de la tuta ĉeno,
tiam ni povas asocii la letero T
kun la 0 en nia por ciklo,
litero H kun la 1 en nia por ciklo, kaj tiel plu,
iri la tutan vojon tra la fino de la kordo.
>> Do ni komencu kodigo ĉi malmulta
nur tiom vi infanoj ricevas senton por kio ĉi tiu aspektas.
Mi iros por savi tion,
tial ni havas niajn pseŭdo kodo en ĉi tie,
kaj mi tuj forviŝi ĉion.
Do mi havas malplenan skribtabulo.
Ke mi baldaŭ komencos skribi int main (void)
{
Ke mi baldaŭ metos la reveno 0 en
kaj tiam la}.
Do kutime kiam mi komencas plani, ĉi tiu estas kion mi komence.
Mi savos ĝin por ke vi infanoj havas ĝin.
Do unu el la unuaj aferoj ni parolis pri estis
atingi eniron de la uzanto
kaj stokante ĝin en linio.
Kiel ni atingas enigo de uzanto?
>> GetString.
GetString, tute certe.
Do se mi tajpas GetString ()
kaj punktokomo.
Ni provu kurante ĉi; volo ĉi run, en unua loko?
Kaj kial ne ĉi kuri?
>> Vi devas deklari la variablon.
Mi devas deklari variablon. Okay.
>> Do kiel mi faru tion?
Ĉu ĝenas vin skribi ion, dividante ĝin?
Kaj tiam ni povas tiri gxin.
Ni vidas, Dan, dekstra, okay.
Aŭ Daniel. Kopiu ke en, kordoj enigo = GetString ().
Awesome.
Ĉu ĉi kuri?
Ni provu ĝin.
Hit kuri, uploading fontkodo, konstruaĵo, eraro okazis.
Okay.
Do whats okazas ĉi tie?
Uzo de nedeklarita ensalutilo 'ĉeno'.
>> Ni devas inkluzivi la bibliotekoj?
Yeah, do Donas dirante ni devas inkluzivi la bibliotekoj.
Ĉu tio estas kion vi intencis diri, Stella? Awesome.
Estas bonege, do Stella, ĉu vi
kopii tiun kodon el Daniel Spaco?
Se vi klakas sur Daniel Roland Ki, kopii ĝin,
kaj tiam vi metu la inkluzivas linio, kaj poste konservu ĝin?
Lasu min scii kiam vi estas preta.
Do ĉi inkluzivas sintakso estas ankaŭ speco de funky;
ekzistas kiel tiu hash etikedo,
kaj jen mia inkludi, kaj tiam estas tiuj angulajn krampojn.
Ĉu vi memoras kiel ĉi funkcias, aŭ mi devus meti ĝin sur tiun kodon ĉi tie?
>> Mi estas bona.
Okay.
>> Mi presis ĝin - mi ne estis certa kio bibliotekon, tamen.
Ho, bone - jes, tia estas la CS50 biblioteko.
>> Ho, mi metis stdio biblioteko.
>> Ho, got it - jes, ne, that's -
tial ĝi rezultas ke kordoj estas vere iu kiu estas speciala por CS50.
Ekzistas fakte ne estas vera kordoj tipo
ĉar ĉi tie, linio estas en la tipo pozicio, -
ni deklari variablon nomata enigo de tipo kordoj -
kaj ni metante ene de enigo
la valoro kiu prenas revenis al ni, la eligo de ĉi GetString funkcio nomita.
Vi povas diri ĉi estas funkcio alvokon ĉar ĝi estas ekhavis la krampoj, kiel printf faras,
samkiel strlen faras.
Sed kordoj estas fakte ne estas reala tipo
en la C lingvo.
Ni faris ĝin en tipo, kaj ni prenu ion pli kio efektive estas
en C, ĉar tie estas maniero labori kun kordoj;
ni ĵus faris ion por fari ĝin rigardi iom pli agrabla.
>> Do jen ni iru.
Jen Stella la kodon.
Oni metis la # include .
Aliaj homoj nomas tiun kiel hash inkluzivas foje aŭ akra inkludi.
Nun ni povas komenci ĝin, ruli ĝin,
kaj ni ankoraŭ ricevas eraro.
Ni vidu kio okazas.
"Neuzataj variablo 'enigo'."
Konsentite, tiel ke estas cool, jen malvarmaj.
Mi volas diri, ne vere malvarma,
ĉar ni ricevas eraron kaj ĝi ne funkcias,
sed kion tiu diras estas ke
ni ne uzas nian variablo, kiu havas sencon.
Ni ne provis fari ion per ĝi.
Tio estas ke
Clang provas helpi nin certigi ke ni ne nur uzante variabloj
kaj tiam distrite nomante ilin ion alian poste en nia kodo,
helpante nin eviti erarojn tiu vojo.
>> Bone, do ni devas enigo de uzanto,
ni gardis ŝin en variablo.
La sekva paŝo estis tiam
komenci rigardi ĉiujn karakterojn en la kordo
kaj identigi kiuj aĵoj estas al esti majuskla
kaj kiu tiuj devas esti minuskla.
Kaj kiel Kelly kaj Charlotte altigis,
ni ĉi uzante por buklo.
Do tio neniu memoras la sintakso de a por buklo
kaj ŝatus preni ponardopikon en ĝuste skribi
la unua linio de la por ciklo, nur la por iom?
Kelly, vi volas doni provi?
>> Jes, tiel vi devas pravalorizi unua,
do mi metis i = 0,
kaj poste mi faris i <strlen ().
Ĉu en via spaco - mi povas tiri gxin?
>> Jes, mi ŝraŭbita supren iomete, sed jes.
>> Konsentite, ni treni ĝin.
Awesome.
>> Sed tiam mi ne sciis se vi havis tiun -
Yeah, okay.
Do jen kio Kelly got: ni rigardu ĝin rapide.
Do ŝi inkludis la cs50 biblioteko ĉe la supro.
Ŝi komprenis la norma IO biblioteko ĉe la supro,
kaj la normo IO havas funkciojn kiel printf,
do se vi iam volas uzi printf, vi bezonas tiun linion.
Kaj tiam ŝi komprenis la kordo biblioteko,
kiuj ni bezonos,
ĉar la ŝnuro biblioteko havas strlen funkcio,
kiuj ni atingos en nur iom.
Do, se ni rigardas kio Kelly ĉi faru ĉi tie,
vi povas promeni ni per tio, kion vi faris?
>> Jes, do - mi volas diri, mi atingis erarojn, do -
Yeah, ne, it's -
>> Do mi volis nomi la kordo, kiun mi ricevis nur "kordoj".
Mi volis printi la kordo
kaj tiam mi -
Mi volis kiel agordi la kordo kiel kiel tabelo de ĉiu karaktero
esti malsamaj [inaudible], ĉu ne?
Kaj tiam mi volis komenci ĉe pozicio 0
kaj tiam ĉiu 2 spacoj,
Mi tuj profiti,
do mi ĵus priskribis kiel 23, ĉar mi estis rigardanta la ASCII tablo.
Do jen kion mi pensis - mi scias ke ne pravas.
>> Havas ĝin, do ĉi tiu estas granda komenco.
Mi kredas multon de la kadro estas en loko ĉi tie.
Ni iru tra speco de linio por linio kaj vidu kio okazas.
Do la vojo mi ŝatas fari tion estas nur starti per kompili la kodo
kaj lasante la tradukilo diru al mi kiel kio estas malbone en mia kodo,
ĉar la tradukilo estas vere bona diras al vi kio estas malbone en via kodo.
Do, se ni ludas ĝin, konstruado, kaj ĝi ne konstruu.
Ĝi diras, ke estis eraro,
tial se ni rulumu malsupren kaj rigardi la unua eraro,
ĝi diris -
ni rulumu reen ĝis la supro,
ni povas vidi estas 5 eraroj generitaj cxi tie malsupre.
Oops, ke tio vere ekstermigxos.
Mi supozas ke tio simple ne ricevos ajnan bona.
>> Ĉi tie ni iru.
Do estas 5 entute eraroj generita.
Ĉi tie mi povas nur vidi la unuajn 2,
do mi povas movi ĉi supren iomete kaj poste ia skribrulajxon supren.
Tiu estas la komando kiu kuras por kompili la kodon,
kaj tiam la unua eraro estis en file.c tie ĉi:
"Atendis identigas aŭ '('", kaj estis sur tiu ĉi linio
kie ni diris string = GetString ().
Vi povas vidi ĉi tie ke estis en la linio 8 de file.c,
kaj tiam mi kredas ke tiu estas signo 12 - tio estas la eraro.
Do kio okazas erara on line 8 - Kelly?
>> Vi nur bezonas nomi ĝin, kiel, leteron aŭ ion,
kiel kordoj s aŭ ion?
Yeah, do rezultas ke tiuj specialaj tipo nomoj,
tiel kordoj, int, char, mallonga,
ili estas ĉiuj specialaj ŝlosilvortoj,
kaj vi ne povas reale uzi ilin kiel nomojn de viaj variabloj,
ĉar la tradukilo rigardas tion kaj diras,
"Ho, mi scias ke estas tipo"
tial vi ne povas reale havas ĉenon variablo nomis kordoj,
kiel mi provis fari tie; ĉi tio ne funkciis.
Sed anstataŭe, ni povas nomi ĝin iu kiel s aŭ-a aŭ str.
Ni ankaŭ ne povis nomi lin int.
Ni ne povas havi ĉenon nomis int.
Ni ne povas havi ĉenon nomas char; neniu el tiuj funkcios.
>> Do ni simple nomas ĝin s por la momento.
Awesome.
Do kio sekva okazas en ĉi tiu linio?
String - ĉi tiu linio aspektas sufiĉe bonaj?
Ni donu alian provi; ni ruli ĝin.
Konsentite, do ni ankoraŭ akiri eraroj.
Ĉi-foje, ni malsupreniris al 4 eraroj.
Do ni havas unu el ili.
Ni movi supren.
"Neatendita tipo nomo 'ĉeno': atendata esprimo," jes?
>> Jes, tio estas ĉar mi klopodis nomi la kordo.
Yeah, do ĝi aspektas kiel ni nun ankaŭ devas iri riparas
ĉiuj el tiuj referencoj al ĉeno.
Vi povas vidi tie estas referenco al ĉeno ĉi tie, ĉi tie, ĉi tie,
do ni povas movi ĉiujn tiujn al s.
Granda. Konsentite, ruli ĝin denove.
Konstruaĵo - alia eraro.
>> Okay, nun ni estas malsupren al unu eraro,
tiel int i = j kaj poste la rektaj krampoj.
Do vi povas diri al ni iomete pri tio, kion vi faras cxi tie, Kelly?
>> Jes.
Estis on line 10.
>> Mi ne scias se ni bezonis ĉion,
sed mi kredas ke mi provis -
Mi savos ĝin tiel vi povas sekvi kune.
>> Mi pensas, ke mi estis
provis diri ĝin por komenci en la pozicio 0
komence de mia por ciklo,
do mi pensas eble tiun diron estis nenecesa.
Do nur por recap,
vi dirante ke tio - vi volis komenci tiun ĉe pozicio 0
kaj akiri ĉi - jes,
do mi pensas pli frue, ankaŭ, kiam vi estis promeni tra la kodo,
vi parolis pri kiel vi volis trakti la ŝnuro tiel tablo
do ni povas aliri ĉiu karaktero individue.
Mi kredas Dan mencias arrays, tro, provante igi kordoj en tabeloj.
>> Ĝi rezultas ke ia sub la kapuĉo,
ŝnuro fakte stokitaj tiel tablo jam,
kaj vi povas aliri ĝin kiel tabelo;
ne estas konvertiĝo, ke vi devas fari.
Kordo isn't - tiel -
cxeno ne estas vere tabelo,
sed vi povas aliri ĝin kiel tia, ĉar ĉiuj el la karakteroj estas stokitaj
unu tuj apud la alia en la memoro,
do se vi volas ricevi la unuan karakteron de la kordo,
ĝi estas la sama kiel atingi la unuan entjeron en entjera tabelo.
Do ni ofte - we'll
rilatas al la 2 kiel
ho, kiel ĉenon, kiel tabelo,
kvankam ĝi vere - they're tre malsamaj aferoj,
sed vi povas trakti ilin tre multe la sama.
Do rezultas ke tiu linio fakte -
ni ne bezonas fari neniun konvertiĝo,
kaj fakte,
ĉi efektive ne estas valida esprimo,
kiu estas kiu nia tradukilo diras ni.
Oni diras, "Hej, ĝi atendis esprimo,
kaj kion mi havas ĉi tie estas iu kiu ne estas esprimo. "
Deklari tabelo,
ĉiuj vi bezonas fari, estas io kiel tio kun punktokomo,
kaj tiam vi diru la tabelo kiel longe vi volas esti,
kiel 5, do ĉi tiu linio 10
rakontos tabelo nomis i kun 5 entjeroj en ĝi.
>> Tio estas la rando; ĉi tio ne estas necesa por la kodo,
sed ĉi tiu estas - tio estas speco de tio, kion la deklaro aspektas.
>> Kiel vi ne uzas char i [strlen (j)]?
Char mi [strlen (j)]?
>> Char mi, kaj poste ene de la krampoj, strlen (j).
Yeah, do ni povis -
ni povus fari tion,
kaj ĉi deklarus - kion tiu faras?
>> Mi pensas ke estus deklari tabelo
de, kiel - de -
ho, vi ne bezonas la i - ho,
yeah, vi certe ne bezonas la i.
Vi deklaras tabelo de signoj
de longo s.
Kaj tiel kion Sam diras nur ke
ĉi linio 10 - lasu min metis iun spacon inter ĝi kaj la resto do ni povas izoli ĝin -
ĉi linio 10 deklarus tabelo
de signoj, strlen (j) valoro de ili,
sed ni vere ne bezonas la i,
kaj la kialo ni bezonas la i estas ĉar ni bezonas doni la tabelo nomon;
alie, ni ne havas manieron por nomi la tabelo poste en la kodo.
>> Do ĉi tie ĉi estas la tabelo nomo
kaj ene estas la longo.
Tio donas al ni tabelo,
sed ĉi tiu estas - denove, ĉi tiu estas deklaro.
Ne asigno, temas ne inicialización.
Se ni deklaras tiun tabelo kiel ĉi tiu,
ekzistas reale nenio en la enhavo de la tabelo.
Estas nur rubaĵo - kio ajn en tie.
Kaj kiel ni diris,
ni efektive eĉ ne bezonas fari tion konvertiĝo,
ĉar ni povas jam trakti ĉenon s kiel tabelo.
Mi scias ni kuris iom longa al tempo,
sed mi volas nur vere rapide atingi tion por buklo
kaj montros al vi kiel aliri la individuaj karakteroj en la tabelo,
ĉar tio estas ŝlosilo por nia tasko.
Kaj poste ni lasos vin iri de tie.
>> Do jen, ni hvas por buklo
ke aspektas preskaŭ bona.
Kio estas ne tute preskaŭ ne?
What's - kio estas ne tute pravas pri tiu por buklo?
>> Neniu frizita krampoj?
Neniu frizita krampoj, por unu.
Wanna certigi ke ni havas la korpon de la ciklo kun frizita krampoj.
Oops, ne la kvadrata krampo!
Kaj kio estas la sekvanta afero kiun ni bezonas por fari kun ĉi buklo?
Se mi provas kaj ruli ĝin,
whats ĉi eraro kiun mi ricevis?
Mi ricevis ĉi tiun tutan erarojn - mi devas pravalorizi i.
Granda.
Do jen la buklo - tio ne estas sufiĉe tie,
sed Fariĝas vere proksima.
Ĉi tiu kodo oni povas nun kuras,
konstrui, eraro ankoraŭ okazas.
Kial oni ankoraŭ plendis,
dirante la esprimo estas neuzata,
kaj tio estas ĉar tiu linio ne faras nenion.
Ni ne stoki ĝin ie ajn, ni ne savas la rezulton.
Kien ni povas savi ĉi tiun rezulton?
>> S aŭ i?
Ekzakte, kaj ĉi funky sintakso,
ĉi s kun la rektaj krampoj
signifas aliri la i-a karaktero de s.
Tio tuj estos iu kiu estas vere gravaj por la farita.
Bedaŭrinde, ni tuj devos halti ĉi tie,
por ke Sebastian sekcio povas enveni,
sed mi estas kontenta resti post ekstere kaj prenos demandojn.
Do dankon infanoj por veni.
Tiu devus nun alŝuti, konstrui, kuri.
Ni povas eniri ĉenon kiel "saluton"
kaj presas "QOX".
[Ridado]
>> Do ne sufiĉe tie, sed kopii, atingante al tiuj cikloj!
Dankon pro veni, kaj mi estos ekstere.