>> JASON Hirschhorn: Welcome to CS50 artikel, almal.
My naam is Jason Hirschhorn.
Ek is 'n baie van jou TFS, maar 'n baie mense sal hopelik saam met ons
aanlyn, uitbreiding studente of studente probeer om te kyk deur artikel indien hulle
gemis het hul afdeling wat week of net haal as hulle wou
sommige materiaal te hersien.
>> So as per die leerplan, wat al van wat jy gelees het, reg?
Ek sien 'n klomp van die kop knik.
Afdelings gee jou die geleentheid om die loop se om te verken
materiaal in 'n intieme omgewing, sowel as duik in
praktiese aktiwiteite.
>> So dit is basies wat ons is gaan om te doen elke week.
Ons gaan om te gaan deur dit wat ons het vasbeslote om die belangrikste
onderwerpe wat gedek word in lesing, en die kinders waarskynlik ook die meeste nuttige en
die meeste geneig om te kom op die probleem stelle en in vasvrae, en in jou kodering
lewe buite CS50.
So ons gaan om te gaan in dié onderwerpe, bespreek, gaan oor hulle,
antwoord op enige vrae wat jy ouens het, en dan gaan ons 'n baie om te doen
praktyk probleme in die kodering.
>> Julle almal het skootrekenaars, wat is fantasties.
Dit is 'n rekenaar wetenskap klas.
Maar baie van die oefeninge wat ons doen, sal jy nie nodig het om jou skootrekenaars vir.
Jy kan dit doen dit op 'n vel papier.
Dit is hoe jy gaan doen hulle op die vasvrae.
En inderdaad, dit is 'n goeie manier om te regtig weet wat jy hoe om te doen
iets as jy nie seker 50 tot staatmaak op of om te vertrou op, vertel
jy foute begaan het.
>> So jy is welkom om te kode op die toestel of run.cs50.net, wat
'n ander hulpmiddel wat u toelaat om te kode aanlyn, maar ek sou ook aanbeveel, indien
jy het nie probeer dit, met behulp van 'n vel papier en probeer om hierdie praktyk
probleme op 'n vel papier.
Omdat weer, dit is uiteindelik wat jy gaan wees
gevra om te doen op quizzes.
>> So laat ons begin met ons agenda vir vandag.
Ons gaan om te gaan oor 'n paar norme vir ons artikel, dan is ons gaan duik
in skikkings, funksies en command line argumente, en dit is wat julle
gedek het die afgelope week in die lesing en dan Maandag, en wat jy sal dek
meer van môre.
En dan uiteindelik, ons gaan om te praat oor pset2.
As ek kon kry 'n opsteek van hande as jy het nie gekyk na die probleem stel twee
spesifikasie.
Ons sal sê almal.
Fantasties.
>> Ons sal praat oor probleem stelle in 'n bietjie, maar as jy die probleem stel
spesifikasie, dis al wat jy hoef te doen.
As jy lees wat voor julle kom klas en artikel op Dinsdag, sal jy
wees om 'n goeie posisie.
Ons kan gaan deur middel van die probleem stel, en dit is wat ons gaan
te doen aan die einde.
Ons gaan om te gaan deur die logika, maak seker
almal is op dieselfde bladsy.
>> Ek wil hê jy moet in staat wees om Dinsdag te verlaat voel baie gemaklik met wat jy
nodig het om te doen vir hierdie week se probleem stel, en as jy dit nie doen nie, sal ek gelukkig
bly na en saam te werk.
Maar dit is een ding wat jy hoef te doen nie, maar ek dink sou wees regtig slim,
net die probleem stel om te lees spesifikasie deur die klas op Dinsdag,
wat dit klink soos 'n baie van julle ouens het.
>> Ek sal met 'n agenda elke klas begin sodat jy weet waar ons gaan.
Dit is ook nuttig vir die mense kyk aanlyn, omdat elke afdeling
is kleurgekodeerde, so as jy wil kom terug en kyk net 10 minute eerder
as die hele 90-minute behoort jy kan net gaan na die kleurgekodeerde artikel
en kyk na daardie deel.
So ek het probeer om hulle op te breek in mooi modules wat jou sal toelaat om -
As jy wil om terug te kom en te hersien, of ander studente wat net
kyk na 'n artikel te hersien -
die spesifieke ding om te vind dat hulle wil aandag te skenk aan
en meer te leer oor.
Soet.
>> Norme.
Ek is 'n FOP leier op die kampus.
Ek weet nie of enigiemand het FOP.
Het enigiemand doen FOP?
Een persoon het FOP.
Twee mense het FOP.
Awesome.
So FOP is die eerste jaar Buite Oriënteringsprogram.
Ons neem eerstejaars in die bos en maak die mees magiese ervarings van
hul lewens, korrek?
Ja.
Geluide oor reg.
>> So ek wou net om te begin om ons heel eerste artikel deur die bespreking van 'n paar norme
vir die klas en ons verhouding want ek dink
dit is baie belangrik.
In die eerste plek, as dié van julle wat is my artikel ontvang het en
bespreek het in daardie e-pos, ek is lief vir hierdie.
Dit is my gunsteling deel van die jaar.
Ek is so opgewonde.
Ek is hier vir ure vandag.
Ek het nie verlaat die gebou behalwe om te gaan eet, want ek is lief vir CS50 artikel, ek
lief vir onderrig, ek hou van die werk saam met julle ouens.
>> Een van my grootste prioriteite, indien nie my nommer een prioriteit, nie net vir
hierdie klas, maar ook my ander klasse en extracurriculars, is om te
ondersteun julle ouens, en jou help om ouens, en my bes doen om seker te maak dat jy
ouens het 'n wonderlike, fun, produktiewe, innemende, opwindende
ervaar in hierdie klas.
Dit is wat ek is daartoe verbind om.
Dit is waarom ek is lief om dit te doen.
Dit is my nommer een ding, ondersteun julle.
As jy enige vrae oor die lesing, die probleem stel, artikel,
lewe, selfs as jy wil om te praat oor lewe, voel asseblief vry om uit te reik.
>> Jy het my selfoon nommer, jy het my e-pos
adres, jy het my GChat.
Jy kan my kontak by enige van of al diegene wanneer nie, maar sal waarskynlik nie
'n reaksie wanneer.
Ek probeer om terug te kry binne 24 uur.
Dikwels sal dit binne 20 minute of 24 minute.
Ek moes gesê het dat te maak dit parallel.
Maar jy kry 'n antwoord redelik vinnig.
>> As jy die teks vir my 'n uur voor die gestelde probleem is as gevolg, ek sal jou kalmeer
af en doen diep asemhaling oefeninge saam met jou, maar as jy nog nie begin,
jy waarskynlik nie van plan om te voltooi, en Ek kan nie regtig help om jou daar buite
selfs al het ek sal my bes probeer.
So ek sal alles doen wat Ek kan jou te ondersteun.
Voel asseblief vry om uit te reik of dit is in die artikel weer by Kantoor ure
As jy my sien, of selfs buite.
Ek is gelukkig om 'n tyd om te voldoen aan en werk deur probleme
met of gaan oor materiaal.
So dit is nommer een, ondersteuning.
Ek sal alles doen wat ek jy kan te ondersteun.
>> Nommer twee, vergadering in die middel.
Soveel as wat ek graag sou wou wees, is ek nie almagtig of al-magtige of
alwetend, so ek weet nie al die tyd as wat ek doen is om
oor, as die manier waarop ek die onderrig van die onderwerp help om te leer, of as jy
verward is oor 'n onderwerp, maar dit nie doen nie verhoog jou hand of my vra
of stuur 'n e-pos.
Of selfs as jy weer, is verward oor iets oor die probleem stel.
As jy nie uitreik na my, Ek kan nie weet wat vir seker.
Ek gaan my bes doen om so op julle ouens, maak seker alles is
goed gaan, probeer om dinge te leer in 'n manier wat sal wees wat bevorderlik is vir die meeste van
jou leerstyle, maar as daar enigiets wat ek kan doen, laat my weet.
>> Langs die lyne, as jy wil 'n paar hulp met die probleem stel, ek is meer
as gelukkig om jou te help met die probleem stel.
Ons gaan 'n baie te doen wat gerig is op die tweede
helfte van hierdie artikel.
Maar as jy lees nie die probleem sit rug en het nie kyk na die loop
deur en het nie kyk na die kortbroek en my verwag om jou te leer
alles wat is video-opname aanlyn of wat jy kan vind op CS50
studie, dit is nie werklik regverdig te my of na jou ander maats.
>> So asseblief, ek is meer as bly om te help julle, maar julle ouens het my in ontmoet
die middel.
Ons het ton van die hulpbronne vir jy beskikbaar op CS50.
Ek het genoem sommige van hulle.
Neem asseblief voordeel van hulle.
As jy verward, ek is meer as gelukkig om jou te help verduidelik in
'n ander manier, maar dit is nie regverdig nie, indien studente opdaag by kantoorure,
het nog nie begin nie, en dit is Donderdag nag en hulle verwag
die TF hulle loop deur elke enkele ding vir die probleem wat weens
op die middag die volgende dag.
Sin maak?
Weereens, asseblief aan ons in die middel.
>> En ten slotte, 'n hoë verwagtinge.
Ek gaan gradering almal wat ons wees in my artikel, of scoring jou
probleem stelle.
Jy het nie omgedraai het nie probleem stel nul of een nie.
Ons is jammer daaroor.
Dit het ons 'n rukkie om uiteindelik skik afdelings, en nou
ons kan begin gradering.
>> Ek kry hulle terug na jou so gou as moontlik.
Dit is 'n paar van my advisees daar buite.
Ek kry hulle terug na jou so gou as moontlik.
En vir die probleem stel twee, sal ons op skeduleer en ons sal begin om hulle
aan u redelik vinnig nadat jy draai hulle in
>> Wanneer jy jou probleem terug te stel, moet jy sal kry tellings, as jy weet uit
lees die leerplan - korrektheid, ontwerp, omvang en styl tellings.
Jy kry ook kommentaar.
Die kommentaar is meer belangrik as die punte.
Ek dink dit is veilig om te sê dat.
>> Tellings is net 'n nommer van een tot vyf.
Dit is moeilik om te lees in daardie.
Dit is moeilik om te verbeter van diegene.
Maar die kommentaar sal uitwys spesifieke dinge wat jy goed gedoen het of areas
jy kan verbeter op en gee jou 'n paar idees vir die toekoms of alternatiewe
maniere van dinge doen.
>> So asseblief, asseblief, lees asseblief deur die kommentaar.
Ek het 'n baie tyd in die kommentaar.
Lees asseblief deur middel van hulle en nie net blaai af na die onderkant van die
PDF, kyk uit vir jou telling, of gaan aanlyn en vind jou telling, en dan ignoreer
die kommentaar.
Dit is nie hoe jy gaan beter.
Dit is hoe jy nie gaan om te verhoog jou tellings uiteindelik net
deur te kyk na die tellings.
Asseblief kyk na die kommentaar.
>> En langs die lyn van 'n hoë verwagtinge, weer, soos ek gesê het, het jy
kan behaal van een deur middel van vyf.
Tweë, drieë, en viere is die oorgrote meerderheid van die tellings
jy gaan kry.
Ones en twintigs is albei baie skaars.
Daar is altyd dinge ons beter kan doen.
Wanneer ek Kode sal 'n program, is daar altyd iets wat ek
kon beter gedoen het.
>> So eerder as om te sê dat jy kry 'n vyf al die tyd oor alles en het
alles perfek, ek dink nie enige van ons regtig glo dat ons - of
Hopelik kan ons nie alles doen nie volkome al van die tyd.
So moenie bekommerd wees as jy het nie 'n vyf.
'N vyf nie verander na 'n A, 'n vier- nie verander na 'n B, 'n drie nie
nie op 'n kaart C. Dit is nie hoe die tellings werk.
>> Soos Dawid het gesê baie keer, op semester se einde al jou tellings en
insette van my, jou TF, kom saam en bepaal 'n finale graad vir jou.
Maar weereens, dit is nie vyf, A, vier, B, ensovoorts.
So ek gaan 'n hoë verwagtinge te hê vir julle.
Ek gaan 'n goeie probleem om te verwag stelle en ek gaan om te gee
jy terugvoer as sodanig.
En dit gaan nie te beteken jy gaan 'n erger graad te kry.
Jy is gegradeer in terme van jou vordering vanaf week
nul tot kursus se einde.
>> En ten slotte, in terme van 'n hoë verwagtinge in die klas, ek is lief vir wanneer
mense deel te neem.
Ek verstaan ​​dat sommige mense voel meer of minder gemaklik deelneem.
Ander mense is wat deelneem nie deur die verhoging van hul hand en
praat al die tyd.
Maar ons in hierdie klas gaan wees doen 'n baie klein probleme, 'n baie
van mini vrae, en dan 'n paar groter kodering probleme.
So beslis werk hierdie oefeninge uit wanneer ons dit doen op jou rekenaar of op
'n vel papier.
>> Maar Ek sal ook vir jou 'n geruime tyd voor niemand het nog ooit 'n paar te beantwoord
van die vrae wat ek vra.
So want ek sal gee jou 'n tyd om te dink daaroor, want ons gaan
dinge om te doen in vennote soms, Ek sal verwag dat almal
word 'n bietjie besig.
En vir 'n gebrek aan 'n beter term, is daar sal waarskynlik koue roeping, wat
is waar almal sal 'n kans hê na te dink oor die antwoord, en dan
Ek sal 'n beroep op julle, en dan jy sê die antwoord.
>> Moenie bekommerd wees nie, of bang wees oor wat.
Ek het dit gedoen in die verlede en ons het gevind dat dit is baie meer suksesvol is,
lees ook opvoedkundige navorsing daaroor te bepaal of dit was 'n
goeie taktiek.
Dit is baie nuttig, veral as jy gee studente die tyd om te dink oor die
antwoorde en maak hulle nie net kom uit en sê dat dit reg van die kolf.
Maar as jy nie gemaklik voel beantwoord, ek is ook redelik goed op
aanvoel dat uit, en ons gaan nie sit jy op die plek, veral op
die kamera, selfs al het nie een van jy is op kamera nou.
>> So wat is die norme wat ek het.
Nog 'n ding langs die lyne van die vergadering in die middel.
Ek gaan gee julle 'n baie terugvoer.
Gee asseblief vir my terugvoering as well.
Daar is 'n webwerf, sayat.me/cs50.
So dit is 'n eerlike terugvoer.
As jy wil om dit te gee tydens die artikel, Ek kry 'n e-pos wanneer dit gebeur.
Ons sal 'n onderbreking in 'n bietjie te neem, so ek sal kyk deur die terugvoer dan.
As jy ooit enige terugvoer, gee dit vir my daar.
>> As jy gee my terugvoer oor die Q, dis wonderlik, maar dit is die gids
wat jy doen aan die einde.
Maar wat sal wees by semester se einde so Ek sal nie in staat wees om enige van daardie te neem
terugvoer en draai dit in onderrig julle ouens beter.
So asseblief, as jy enige terugvoer, gee dit aan my.
Ek is lief vir terugvoer.
Terug na FOP, kry ons terugvoer al die tyd.
>> U kan my plusse, goeie dinge, deltas, dinge wat ek kan verbeter.
Jy kan nie kommentaar lewer oor my uitrustings.
Dit sal nie as nuttig, maar jy welkom om kommentaar te lewer op enige en
alles.
Asseblief, gee my terugvoer.
Ek waardeer dit baie en dit beteken baie vir my.
>> Een meer norm, pret.
Ons gaan 'n baie pret te hê.
Hopelik sal in hierdie kursus, sal jy het 'n baie pret.
Ons sal lekkergoed by artikel.
Ons sal musiek.
Ons sal hopelik om een ​​te leer ken nog 'n bietjie goed, so ek wil
dat dit 'n prettige, innemende ervaring.
>> Ek weet sommige van julle aan die slaap geraak in Die lesings jy het vroeër vandag,
so hopelik dit sal nie wees nou die geval is.
En as dit die geval is, net snork nie, want dit mag
word op kamera vasgevang.
Soet.
Enige vrae, kommentaar of bekommernisse voordat ek beweeg oor iets wat ons het
gepraat oor?
Groot.
>> So ons gaan om te gaan in skikkings eerste.
Dit is hoe jy 'n skikking.
Ons het gesien dat dit voor.
Jy het 'n data tipe, jy het 'n naam, en dan moet jy 'n grootte.
Reg hier, Ek skep twee skikkings.
Die eerste een is 'n verskeidenheid van die karakters, en dit het 26 ruimtes.
Die tweede een is 'n verskeidenheid van tellings, en dit het drie
ruimtes vir drie heelgetalle.
Ja?
>> STUDENT: Is al hierdie skyfies beskikbaar iewers vir ons?
>> JASON Hirschhorn: Groot vraag.
Die vraag was, is al hierdie skyfies beskikbaar?
Ja.
Al hierdie skyfies beskikbaar sal wees, en in die toekoms, sal ek e-pos om hulle te
jy voor afdeling.
Maar vandag, want dit is die eerste week, het ons 'n laat begin.
So gewoonlik, sal jy hierdie skyfies, maar hulle sal aanlyn beskikbaar wees en
Ek sal e-pos dit aan jou reg na die klas.
Enige ander vrae?
>> So weer, skikkings is bokse, vir 'n gebrek aan 'n beter woord, wat vashou aan verskeie
elemente van 'n data tipe, en hulle is langs mekaar in die geheue.
En dit weer, dit is hoe jy kan maak twee tipes van skikkings.
>> So nadat jy jou skikking dat die eerste lyn - int tellings, bracket
drie, naby bracket - jy wil om dit te begin.
Jy wil 'n paar waardes te sit in daar.
En dit is hoe jy sit 'n paar waardes in daar, net die keuse van die indice en
skryf die getal.
Kom ons teken dit op die bord.
Almal kan sien?
Almal kan sien.
Soet.
>> So wat gaan wees my skikking met die naam tellings.
Soos jy kan sien, is dit groot drie.
Daar is drie bokse in daar.
Elkeen kan inpas wat tipe data tipe?
>> STUDENT: Integer.
>> JASON Hirschhorn: 'n heelgetal in hierdie een.
Ons het int tellings, en die eerste woord is die data tipe wat gaan
gaan in die bokse in die skikking.
So ek kan inpas drie.
Hoekom het ek nul tot daar op die bord?
Hoekom sê dit telling nul is gelyk aan 1?
Herinner my aan jou naam.
>> STUDENT: Kurt.
>> JASON Hirschhorn: Kurt.
>> STUDENT: Ja.
>> JASON Hirschhorn: Hoekom?
>> STUDENT: Omdat die eerste indeks nul, het ons begin tel by nul.
>> JASON Hirschhorn: So het ons begin tel op nul.
Dit is presies reg.
Dit is die verwarrende deel en wil reis jy het, veral wanneer jy
probeer om Itereer deur skikkings, wat ons gaan doen in 'n bietjie.
Ons begin tel by nul.
So as ek wil om te verwys na die eerste boks, dit is nie 'n boks.
Ongelukkig is dit boks nul.
Die tweede een is box een, en in hierdie geval, die derde een is box twee.
>> Wat van box drie?
Waar is box drie?
Of as ek wil tellings, bracket te doen drie, naby bracket, wat is dit?
So jy het die nul karakter.
Enige ander gedagtes?
Wat is telling bracket drie bracket?
>> STUDENT: Dit maak nie regtig bestaan ​​nie, want jy net gedefinieer as tellings,
bracket drie.
>> JASON Hirschhorn: So jy sê dit maak nie regtig bestaan ​​nie.
In sommige gevalle, wanneer ons te doen het met snare, oor die algemeen sal ons sit 'n nul
karakter aan die einde.
Ons sal kry om dit in 'n tweede.
Maar in hierdie geval, is daar is nie 'n derde boks hier.
So het die laaste boks in enige skikking is grootte minus 1.
So as ons 'n verskeidenheid van grootte n, die eerste boks is op nul, die laaste een is
op n minus 1.
En in hierdie geval, beteken dit nie bestaan ​​nie.
Daar is iets wat hier in geheue, maar dit is nie ons s'n nie.
Ons besit dit nie.
Ons het nie gevra vir dit.
So as ons probeer om dit te bekom, wat ons doen in 'n bietjie, ons is waarskynlik gaan om te
in die moeilikheid beland.
>> In hierdie geval, ek initializing my skikking met drie veranderlikes.
Ons is besig om 'n mens in die boks nul, 'n twee in box een, en 'n drie in die boks twee.
Het enige iemand enige vrae oor initializing 'n skikking?
>> So het ons oor hierdie nou net.
Tellings, bracket drie, naby bracket, wat nie bestaan ​​nie.
Ons is nul is opgeneem in die rekenaar wetenskap, sodat ons begin tel by nul.
Die laaste boks aan ons beskikbaar is, is dit die derde boks, maar dit is bekend box
nommer twee.
>> Onder, dit is 'n alternatiewe manier van initializing skikkings.
So in plaas van die skep van die skikking op 'n lyn, vul die eerste boks, dan
die tweede boks, dan is die derde boks, wat jy kan doen dit alles in een lyn.
So in daardie lyn, beide skikkings.
Dit skep presies dieselfde skikking as wat ons geskep reg hier, maar dit
net doen dit in een lyn.
>> Nou het ons geskep om ons verskeidenheid.
Gewoonlik wanneer jy skep 'n skikking, jy wil om iets te doen met dit, of
dis vul dit of dinge uit dit en druk dit uit op die skerm.
In hierdie geval is, gaan ons deur middel van ons tellings skikking, wat ons geïnisialiseer op
die eerste line-up hier in grys.
En dan op die tweede lyn, ons begin iterating deur die skikking.
Het enige iemand enige vrae oor die struktuur van 'n for-lus?
>> So dit is die lus vir.
Ons het ons aanvanklike toestand is, en dan ons finale toestand, en dan het ons
Itereer, i, elke lus.
En in die krulhakies in hierdie vir lus, wat gebeur as ek was om te hardloop
hierdie program?
Kan iemand vir my sê wat ons sou kry?
[? Matu? ?]
>> Matu: Druk al die tellings op elke lyn.
Dit sal druk elke telling op 'n aparte lyn.
>> JASON Hirschhorn: Wat presies sou dit druk?
>> STUDENT: Dit sal druk een, dan twee, dan drie.
>> JASON Hirschhorn: Presies.
Dit sal druk een, dan twee, dan drie, elkeen op 'n aparte lyne, want
ons gaan deur middel van die skikking en jy sal sien dat die tweede, die printf
verklaring, tellings i.
So op die eerste ronde deur ons vir lus, ek is gelyk aan nul, wat beteken ons is
om die waarde te telling nul -
wat, as ons gaan terug na ons diagram, is een -
en in te vul -
O, dit sê c.
Dit behoort% d wees.
Ek sal regmaak wat in 'n bietjie wanneer Ek hand wat aan julle.
Maar ons is die aanbieding van 'n heelgetal, sodat dit behoort% d reg hier te wees, nie% c.
Wat is% c vir?
>> STUDENT: Character.
>> JASON Hirschhorn: Character, presies.
Wat is die ander een?
As jy nie wil hê% d te doen vir 'n integer, wat anders kan jy doen?
>> STUDENT: i.
>> JASON Hirschhorn:% i, presies.
So enige vrae oor iterating deur middel van die skikking?
So wat gebeur as ons dit doen?
In plaas daarvan om dit te doen Ek is minder as drie, ons i is minder
as of gelyk aan drie.
Wat gebeur wanneer ons gebruik hierdie kode?
Ja, Annie?
>> STUDENT: Hulle gaan om uit te druk vreemde dinge op die vierde lyn.
>> JASON Hirschhorn: So jy sê, is dit gaan uit te druk vreemde dinge op die
vierde reël?
Het enige iemand 'n antwoord om haar vraag?
So is die kans is dat wanneer ons by die -
so op die vierde ronde deur ons vir lus, net soos jy gedink, Annie,
dit sal wees tellings bracket drie, wat ons het reeds uitgepluis het nie
bestaan ​​nie, en ons gaan om te probeer en toegang tot dat dit druk
het, gebruik dit om een ​​of ander manier.
So sal die rekenaar waarskynlik kry mal by ons.
Jy is presies reg.
>> Dit mag dalk die program heeltemal ophou.
Dit mag dalk druk iets baie vreemd.
Jy kan nie met sekerheid sê nie.
Kans is dit sal waarskynlik kry mal by jy en net reg om weg te hou.
>> Maar dit is 'n algemene fout wat jy sal moet waar jy net af deur die een by
die einde nie, en dit is 'n fout wat plaag jy in jou hele kodering.
Een manier wat ek wil doen is net op 'n witbord, gaan deur elke iterasie
van die lus op die hand of op papier te sien wat gebeur, en dan is jy
algemeen besef, O wag, ek moet nie het gegaan na minder as of
gelyk aan drie.
Ek moes gestop het by twee, wat wat gebeur as jou toestand is minder
as drie.
Enige vrae so ver?
Soet.
>> Sodat jy al jou rekenaars oop.
Ons gaan om te gee jou 02:58 minute om 'n program te skryf wat
skep 'n skikking met die heelgetalle een deur vyf en dan druk uit elke
integer op 'n nuwe reël.
En as jy enige vrae het, verhoog jou hand.
Ek is bly om te kom deur.
Soos ek gesê het, kom ons neem drie minute om dit te skryf.
Is almal OK as ek gaan na 'n 'n nuwe venster en sluit dit?
>> Ek is jammer as jy nog nie 'n kans gehad het te voltooi nie, maar ons gaan om dit te doen
saam nou.
So op die skerm, sluit ek het # cs50.h, # sluit stdio.h.
Kan iemand my vertel wat hierdie twee lyne doen?
Michael?
>> STUDENT: Dit sluit in die biblioteke dat CS50 gemaak en dat Steve het
gered vir jou om te gebruik om te maak jou lewe makliker te maak.
>> JASON Hirschhorn: So jy het gesê hulle sluit in die biblioteke, een wat CS50
gemaak, cs50.h, en een wat net standaard, kom met
die C-pakket, stdio.h.
Wat bedoel jy sluit die biblioteke, al is?
Kan jy 'n bietjie meer spesifiek?
>> STUDENT: Dit maak dit so dat jy kan gebruik om sekere kodewoorde 'n te hê
funksioneer gebeur sonder om te gaan en maak die funksie c jouself.
>> JASON Hirschhorn: Kan jy gee my 'n voorbeeld?
>> STUDENT: Soos printf is een wat jy kan gebruik.
>> JASON Hirschhorn: printf.
So jy het gesê printf is een van daardie funksies waar eerder as om te
skryf printf op jou eie, is printf ingesluit eintlik in stdio.h, sodat jy
kan net dit gebruik en aanvaar dat dit sal werk.
In stdio.h, as jy oopgemaak het die lêer, sou dit sluit in hoe printf
werke, almal van die kode vir printf?
Hoekom is jy skud jou kop?
>> STUDENT: Omdat die kop lêer net sluit in die funksie verklaring.
>> JASON Hirschhorn: Presies reg.
Die kop lêer sluit net die funksie verklaring.
So basies, wanneer jy dit getref Maak graaf, wat ons gaan doen in 'n
Tweedens, die samesteller weet dat as jy printf gebruik, bestaan ​​printf.
Dit gaan om iewers gedefinieer.
Dit is nie 'n probleem vir jou om dit te gebruik.
En dan later, sal dit sluit in die ene en nulle, wat eintlik bevat
printf se implementering en saam te smelt dit met jou kode.
Hoe kan jy seker maak dat dit sluit in die ene en nulle vir, sê, kry string?
>> STUDENT: Kry string is in cs50.h.
>> JASON Hirschhorn: Right.
So wat sê jy string bestaan, die funksie verklaring.
Maar dan is die ene en nulle, die binêre lêer wat eintlik die sluit
implementering van get string?
Hoe kan jy seker maak dat gaan saam met jou program?
>> STUDENT: Slaag die linkerkant in die opdrag lyn argument.
>> JASON Hirschhorn: Slaag die linkerkant in die command line argument.
Hoe doen jy dit?
>> STUDENT: Dit is die L-lyn in die klang
>> JASON Hirschhorn: Presies reg.
Jy sê-l cs50, reg?
Dit sluit die kinders en nulle.
>> STUDENT: Maar maak nie wat vir jou reg?
>> JASON Hirschhorn: Presies.
Maak beteken dit vir jou, maar uiteindelik, jy sal dit nie maak nie, of
jy sal hê om 'n maak op jou eie, so dit is 'n
goeie ding om te onthou.
As jy gaan een van hierdie te gebruik ander biblioteke, nie net jy
te skryf # sluit en dan is die biblioteek.
Jy moet ook om dit te skakel in
En dié twee dinge is anders. -L cs50 is verskillende
as # sluit cs50.h.
>> Dan het ons int main leemte krulhakies, en nou gaan ons die kode
binne hoof.
Die eerste lyn wat ek hier het is 'n kommentaar wat sê: Skep 'n skikking
met ints een deur middel van vyf.
Wat is 'n goeie woord om te beskryf wat ek het nou op die skerm, net
kommentaar binne hoof?
Wat noem ons dit?
>> STUDENT: pseudokode.
>> JASON Hirschhorn: pseudokode.
Dankie, Jeffrey.
Dit is presies reg.
Pseudokode.
Het julle gesien pseudokode voor?
Lig jou hand as jy gebruik pseudokode voor probleem stel een.
Ongeveer die helfte van jou.
>> Ek sou raai die gebruik van pseudokode af te breek probleme in
kleiner, meer maklik om af te byt stukke.
Ook, as jy nie die pseudokode, jy jou kommentaar reeds grootliks
gebou in, so jy hoef nie te Gaan terug en probeer om uit te vind
wat jy doen.
So kan iemand gee my daardie eerste lyn 'n skikking te skep met ints een
deur vyf?
Jy?
>> STUDENT: Int en dan kan jy noem watter nommer, en dan vierkante
bracket vyf.
>> JASON Hirschhorn: So int getalle, vierkante hakies vyf.
>> STUDENT: gelykes, en dan krullerige draadjies.
>> JASON Hirschhorn: gelykes, krullerige draadjies.
>> STUDENT: Een, twee, drie, vier.
>> JASON Hirschhorn: Een, twee, drie, vier, vyf.
>> STUDENT: En dan krulhakies en dan kommapunt.
>> JASON Hirschhorn: En krullerige draadjies en kommapunt.
Uitstekend.
Druk elke int op 'n nuwe reël.
Kan iemand anders gee my kode, asseblief?
[? Matu? ?]
Gaan voort.
>> STUDENT: Vir (
>> JASON Hirschhorn: Vir (
>> STUDENT: Int i = 0
>> JASON Hirschhorn: Int i = 0
>> STUDENT: Flitser i minder as vyf.
>> JASON Hirschhorn: komma i minder as 5.
>> STUDENT: komma i + +.
>> JASON Hirschhorn: komma i + +.
>> STUDENT: Geslote hakies, dan open stut.
>> JASON Hirschhorn: Geslote hakies en twee stutte.
Binne-in die draadjies?
>> STUDENT: En dan printf "% d / n"
>> JASON Hirschhorn: Jammer, hou op.
Printf "% d / n, geslote kwotasie.
>> STUDENT: En dan geslote kwotasie, komma, telling, bracket i.
>> JASON Hirschhorn: Komma, tel, bracket i.
>> STUDENT: Jammer, getalle bracket i.
>> JASON Hirschhorn: Nommers, bracket i.
>> STUDENT: Jammer.
En dan gesluit hakies, kommapunt.
>> JASON Hirschhorn: Geslote hakies, kommapunt.
Ek gaan dit te red.
Ons gaan tel te maak.
En hoe kan ek tel?
>> STUDENT: agteroorskuisstreep.
>> STUDENT: Dot slash -
>> JASON Hirschhorn:. / Tel, presies.
Dankie. . / Tel.
Een, twee, drie, vier, vyf nuwe lyne.
Lyk soos dit het gewerk.
Ja, Noag?
>> STUDENT: Jy kan ook minder as of doen gelyk aan vier, net soos ek is minder as
of gelyk aan vier?
Is daar enige voordeel te doen minder as vyf, of net 'n ander manier
skryf dit?
>> JASON Hirschhorn: Dus die vraag is wat jy kon gedoen het ek minder as of
gelyk aan vier in plaas van Ek is minder as vyf.
Sou dit gewerk het dieselfde?
>> STUDENT: dit moet.
>> JASON Hirschhorn: Ja.
Dit heeltemal sal werk het dieselfde.
Stilisties, dit is oor die algemeen minder as, en jy sal sien in 'n tweede toe
ons snare, kan jy gebruik om iets genoem strlen, wat jy gesien het
voor, om die lengte van die string.
En jy kan dit nie doen nie minder nie as of gelyk strlen.
Jy kan minder as of doen gelyk strlen minus een.
So dit is net mooier te doen minder as strlen.
Ja?
>> Student is en in die werklike vasvrae, doen Ons het kommentaar op ons te voorsien
kode, asook?
>> JASON Hirschhorn: Die vraag is in vasvrae, het jy
het om kommentaar te lewer?
So sal ons meer praat oor vasvrae wanneer hulle kom op, maar oor die algemeen 'n goeie
reël is wanneer jy kode skryf, kommentaar lewer.
As jy die kode verkeerd is, maar die kommentaar te lewer reg is, kan jy kry 'n paar
krediet beide van my as ek gradering jy op 'n probleem stel of op 'n quiz.
So kommentaar is altyd goeie te lewer.
Soet.
Tel.
Uitstekende werk.
Kom ons beweeg aan.
>> Snare.
Snare.
Ons het gesien dat dit voor in lesing.
Dit blaas my gedagtes toe ek eerste het gevind dat hierdie uit.
Dit het waarskynlik nie blaas enigiemand se gee hier, maar dit is OK.
>> Strings is skikkings van die karakters, en het hulle uiteindelik met, soos jy vroeër gesê het,
die nul terminator, wat is dit / 0 karakter.
As ons gaan 'n string op die te trek raad, sal ons dit tog hier.
So hoe lank is die tou?
Jammer.
Hoe lank is hierdie string?
>> STUDENT: [onhoorbaar].
>> JASON Hirschhorn: Vier?
Hoekom is dit vier?
>> STUDENT: Omdat die vyfde plek is vir die nul karakter.
>> JASON Hirschhorn: So het die vyfde plek is vir die nul karakter.
So as ek strlen uit te voer op hierdie, sou dit gee my vier.
Korrek is.
En die skikking nie, as ek was om te inisialiseer hierdie skikking, hoeveel ruimtes
sou ek het om te vra vir?
>> STUDENT: Five.
>> JASON Hirschhorn: Five.
Ek sou hê om te vra vir vyf, maar ek kan net sit vier karakters in hier
omdat ek nodig het dat nul te sit terminator op die einde.
So ons gaan om te skryf in "ohai" en sit die nul terminator in aan die einde.
Ons sal sê dit is string s is gelyk aan dié.
Wat is s bracket nul?
s bracket nul, Annie?
>> STUDENT: O.
>> JASON Hirschhorn: O, presies. s bracket een?
s bracket vyf?
>> STUDENT: nie bestaan ​​nie.
>> JASON Hirschhorn: nie bestaan ​​nie.
Presies reg.
Cool.
Enige vrae oor die begrip snare as skikkings van die karakters?
OK, dan is.
Een program vir julle.
Skryf 'n program wat vir die gebruiker vir 'n string dan druk uit elke
karakter op 'n nuwe reël.
So kom ons neem drie minute om te skryf hierdie program, en dan sal ons Kode Daar word
as 'n groep.
>> Jammer.
Het jy nodig het om dit te sien?
>> STUDENT: No
>> JASON Hirschhorn: OK.
Kom ons neem nog een minuut om dit te kode, of ten minste begin kry op dit.
>> Sodat jy kan aanhou werk, maar ek gaan om te begin deur dit gaan.
Dus, voordat wil, ek het op die skerm # Sluit cs50.h, # sluit stdio.h.
int main nietig.
Binne hoof se krulhakies, ek het twee opmerkings, pseudokode.
Een is om te vra vir 'n string van die gebruiker.
Die tweede is die druk elke karakter op 'n nuwe reël.
So Anna, kan jy my vra vir 'n string van die gebruiker?
>> STUDENT: printf.
>> JASON Hirschhorn: printf?
>> STUDENT: Ja.
(
>> JASON Hirschhorn: (
>> STUDENT: "Gee my 'n string.
>> JASON Hirschhorn: "gee my 'n str - oops -
string.
>> STUDENT: / n ") kommapunt.
>> JASON Hirschhorn: Einde van die string, geslote hakies, kommapunt.
>> STUDENT: Ja.
En dan volgende lyn, string s = kry snaar.
>> JASON Hirschhorn: String s = kry snaar.
>> STUDENT: Ja.
En dan ()
>> JASON Hirschhorn: ()
>> STUDENT: Flitser.
>> JASON Hirschhorn: Flitser.
Fantasties.
So ek gaan 'n string te kry en Ek gaan dit red in wat?
Wat is die veranderlike genoem wat jy geskep het?
>> STUDENT: String s.
>> JASON Hirschhorn: Die veranderlike genoem is.
Dit is tipe string.
Presies.
Volgende ding wat ons wil is druk elke karakter op 'n nuwe reël.
Wie kan my die kode?
[Onhoorbaar]?
Kan jy dit vir my gee?
>> Student: Natuurlik.
>> JASON Hirschhorn: Kom ons doen dit.
En jammer.
Ek hou nie daarvan om te herhaal wat jy sê want jy kry dit reg, maar ek
moet dit so herhaal dat wanneer hulle skryf nie, kan hulle kry al
die teks uit op die transkripsie.
So jy kan net aanhou praat.
Ongelukkig het ek om dit te sê oor jou.
Ek is jammer, maar -
>> Student: Daar is 'n boete.
Vir int i = 0
>> JASON Hirschhorn: Vir int i = 0
>> STUDENT: Ek minder as -
>> JASON Hirschhorn: Flitser.
>> STUDENT: Voor hierdie, kan ons 'n veranderlike sodat jy int naam lengte?
>> JASON Hirschhorn: O, jy doen nie wil die kommapunt te sit?
OK.
So, wat wil jy hê om te doen na zero?
>> STUDENT: Ek wil die te kry string lengte van s en
stel wat aan 'n veranderlike?
>> JASON Hirschhorn: OK, So, hoe doen ek dit?
>> STUDENT: So jy doen int lengte =
>> JASON Hirschhorn: Int lengte =
>> STUDENT: S-T-R-L-E-N.
>> JASON Hirschhorn: S-T-R-L-E-N -
>> STUDENT: Van s.
Hakies.
>> JASON Hirschhorn (s).
>> STUDENT: En dan dink ek jy het om te sit 'n kommapunt tussen die twee ints.
>> JASON Hirschhorn: 'n Kommapunt na zero?
>> STUDENT: Ja.
Dan sit 'n kommapunt na dit, en jy sê, ek minder as lengte.
i minder as lengte, wat is die veranderlike.
>> STUDENT: En dan kommapunt.
>> JASON Hirschhorn: Flitser.
>> STUDENT: i + +.
>> JASON Hirschhorn: i + +.
Daar is ons vir lus.
OK, die binnekant van die for-lus.
>> STUDENT: En dan printf doen.
>> JASON Hirschhorn: printf.
>> STUDENT: hakies.
>> JASON Hirschhorn: hakies, aanhalingstekens.
>> STUDENT: hakies, aanhalingstekens,% c / n.
>> JASON Hirschhorn:% c, OK.
>> STUDENT: / n.
>> JASON Hirschhorn: / n.
>> STUDENT: Geslote kwotasies.
>> JASON Hirschhorn: Geslote kwotasies.
>> STUDENT: Komma.
>> JASON Hirschhorn: Komma.
>> STUDENT: S.
>> JASON Hirschhorn: S.
>> STUDENT: Bracket i.
>> JASON Hirschhorn: Bracket i.
>> STUDENT: En dan gesluit hakies.
>> JASON Hirschhorn: Geslote hakies.
>> STUDENT: En dan kommapunt.
>> JASON Hirschhorn: Flitser.
Fantasties.
So laat ons red nie.
Maak spel.
Oh boy.
Ek het 'n paar foute.
Eerste fout op die lyn 11, dit sê, verwag uitdrukking, en dit gee
vir my 'n fout wat die tweede int, daar is die fout.
Daar 'n fout daar rond.
Het enige iemand weet wat fout wat?
Kurt?
>> STUDENT: Ek dink dit veronderstel is om te 'n komma en nie 'n kommapunt.
>> JASON Hirschhorn: OK, 'n komma in plaas van 'n kommapunt.
So is dat alles wat ons nodig het om op te los?
>> STUDENT: No
>> JASON Hirschhorn: Wat anders het ons nodig om vas te stel?
>> STUDENT: Ons het string.h te sluit.
>> JASON Hirschhorn: Sluit string.h.
Waar het ek nodig om te sluit nie?
>> STUDENT: dieselfde plek jy insluitende die ander dinge, reg
ná sluit stdio.h.
>> JASON Hirschhorn: Kom ons kyk of dit loop eerste, want in die algemeen, ek wil
een ding wat eerste op te los, en dan loop dit, en dan sien die foute wat ons kry.
So ons gaan die terminale skoon te maak met 'n beheer, laat se spel maak nie.
So 'n fout op die lyn 11.
Verwag kommapunt.
En ek is nog steeds foute op die lyn.
Dus is dit nie vir my 'n fout gesê dit nie verstaan ​​wat strlen is,
maar dit gee my foute op hierdie lyn, so wat anders is verkeerd?
Merk?
Marcus.
>> STUDENT: Het jy te verwyder die tweede int verklaring?
>> JASON Hirschhorn: Verwyder die tweede int.
Kom ons probeer om hierdie.
Nou duidelik dat die terminale.
Maak spel.
Fout.
Onvoorwaardelik verklaar biblioteek funksie strlen.
So nou het ons nie sien dat fout.
Wat het ons nodig om te sluit?
>> STUDENT: string.h.
>> JASON Hirschhorn: Sluit string.h, ons sal # sluit nie string.h op die top
van die skerm.
Kom ons red, maak spel.
Nou saamgestel.
So weer, die dinge wat ons nodig het om te onthou lyn 12 in ons lus vir wanneer
ons is die opstel daarvan, int i = 0, lengte = strlen (s).
>> Dit is 'n fantastiese strategie.
Die styl van hierdie is groot, die ontwerp van hierdie is groot.
Ons kan gaan in daardie redes later, maar op dié manier hoef jy net te noem
strlen een keer in plaas van elke enkele keer as jy loop deur die lus.
Maar jy moet 'n komma om daar te gebruik en jy hoef nie int weer.
As jy verklaar beide dié veranderlikes saam, jy
hoef nie int weer.
En dan as jy gaan strlen te gebruik, Dit is 'n ander biblioteek
funksioneer nie ingesluit in stdio.h of cs50.h, maak
seker dat jy string.h.
Kurt?
>> STUDENT: So dan as jy nie hoef te sê watter tipe lengte is, beteken dit
beteken dit het tot 'n int wees?
Jy kan nie twee verskillende tipes daar?
>> JASON Hirschhorn: sodat jy kan het twee verskillende tipes.
Lengte is 'n int hier, al is.
Lengte is 'n int, want dit is komma en dan dieselfde ding.
>> STUDENT: So is dit aanvaar dat dit gaan dieselfde te wees as die eerste een?
>> JASON Hirschhorn: Presies.
Ons gaan nie om dit nou te doen, maar jy kan insluit twee veranderlikes op die
dieselfde lyn met behulp van 'n data tipe.
So int x, y sou skep twee veranderlikes.
So int x, y, as ons dit nie, dit gee my 'n ongebruikte veranderlike x en y omdat
ons dit nie gebruik nie.
So sit leemte voor is net 'n fancy truuk As jy nie gebruik nie
iets om dit te gebruik.
Maar as jy sien, Ek skep x en y op dieselfde lyn met 'n komma.
Dit is die skep van twee heelgetalle reg daar.
So ja, heeltemal moontlik om te skep twee dinge op dieselfde lyn
geskei deur 'n komma.
Kom ons ontslae te raak van hulle, al is.
>> So is daar spel.
Dankie ouens vir die kodering dit vir ons.
Kom ons maak dit nog een keer, hardloop dit.
Gee my 'n string.
[Onhoorbaar], jy het die meeste van dit.
Wat is die tou?
>> STUDENT: Hello.
>> JASON Hirschhorn: Hello.
H-E-L-L-O, elke karakter op een lyn.
Lyk baie goed.
Kom ons loop dit weer.
Altyd gaan om seker te maak vir die hoek gevalle.
Wat is 'n goeie hoek saak te gaan?
>> STUDENT: 'n nommer?
>> JASON Hirschhorn: 'n nommer.
So ek sit in 1, en dit druk uit 1.
Dit is nie vra vir letters, so dit lyk soos getalle werk.
Goeie hoek saak te kyk.
Wat is 'n goeie hoek saak te gaan?
>> STUDENT: 'n leë string.
>> JASON Hirschhorn: Hm?
>> STUDENT: soos 'n leë string.
>> JASON Hirschhorn: Leë string.
So laat ons nie sit in enigiets.
En wat kry ook uit?
>> STUDENT: Niks nie.
>> JASON Hirschhorn: Niks nie.
Lyk soos dit werk.
Jy kan probeer om meer hoek gevalle, maar algemeen getalle, 'n ander data is
wonderlik om te probeer, is so goed nie.
Niks, nul, negatiewe is altyd groot dinge te probeer en dinge wat jy
moet toets, dinge beslis sal ons toets vir en Check 50 sal toets vir.
Enige vrae oor spell.c?
>> OK, laat ons kop terug.
Ek het nog 'n program vir julle te skryf.
Dit is bekend as students.c.
Dit is 'n program wat die gebruiker vra vir vyf name, dan kies lukraak
en druk uit een van die name.
Hierdie program is 'n bietjie meer betrokke is as die laaste twee ons geskryf het,
so hoekom ons nie vyf minute om te Kode Daar word individueel, en dan sal ons
Kode Daar word as 'n groep.
>> Hierdie program behels ook 'n paar dinge jy mag nie voor gesien het, so as
jy het 'n vraag oor hoe doen Ek doen, verhoog jou hand.
Ek sal kom en wys jou in die regte rigting.
Maar ons is ook om dit te doen, want hierdie sal 'n goeie manier om te stel wees
onderwerpe wat moeilik.
>> So dit werk nie, reg?
>> STUDENT: Ja.
>> JASON Hirschhorn: Wanneer jy draai in 'n probleem stel, daar is baie maniere om dit te doen
nie, maar sommige is meer elegant as ander.
Kom ons duik in
# Sluit cs50.h.
# Sluit stdio.h.
int main leemte, krullerige draadjies.
Binne-in die krulhakies, Ek het twee opmerkings.
Die eerste een is, vra die gebruiker vir vyf name.
Die tweede een is lukraak, kies en die druk van een van die name.
Dus is die eerste een laat doen nie, vra die gebruiker vir vyf name.
Wie het gevra om die gebruiker vir vyf name en my vertel hoe om dit te doen?
Slegs twee mense het die eerste deel.
Drie mense het die eerste deel.
Vier, vyf.
Tom, hoe kan jy dit doen?
>> STUDENT: Jy sal 'n string verklaar en dan naam, bracket vyf.
>> JASON Hirschhorn: String noem bracket vyf.
So, wat is hierdie lyn doen, string naam bracket vyf?
>> STUDENT: Jy sal verklaar 'n verskeidenheid van snare.
>> JASON Hirschhorn: Dit is ' 'n verskeidenheid van snare.
Hoeveel snare gaan om in te pas hier?
>> STUDENT: Five.
>> JASON Hirschhorn: Five.
Uitstekend.
Ons gaan om te noem dit Name omdat Ons gaan verskeie mense te kry.
OK, volgende?
>> STUDENT: En dan is jy 'n lus vir -
>> JASON Hirschhorn: Vir lus.
>> STUDENT: - vir i = 0.
>> JASON Hirschhorn: Vir (int i = 0.
>> STUDENT: Flitser.
>> JASON Hirschhorn: Flitser.
>> STUDENT: Ek minder as vyf.
>> JASON Hirschhorn: Ek minder as vyf.
>> STUDENT: Flitser.
>> JASON Hirschhorn: Flitser.
>> STUDENT: i + +.
>> JASON Hirschhorn: i + +.
>> STUDENT: En dan gesluit hakies.
>> JASON Hirschhorn: Geslote hakies, en dan 'n paar krullerige draadjies.
Binne-in die krulhakies?
>> STUDENT: En dan printf.
>> JASON Hirschhorn: printf.
>> STUDENT: Open hakies, naam% d.
>> JASON Hirschhorn: Jammer?
>> STUDENT: Naam.
>> JASON Hirschhorn: Naam.
>> Student is en dan die ruimte, en daarna% d.
>> JASON Hirschhorn: Naam, ruimte,% d.
>> STUDENT: En dan is / n, en dan gesluit.
>> JASON Hirschhorn: So naam, ruimte, % D / n, geslote hakies.
>> STUDENT: Comma, i + 1.
Ek is jammer.
Geslote kwotasie, en dan komma, i 1.
>> JASON Hirschhorn: Geslote quote, komma, i 1.
>> STUDENT: Ja.
En dan is die volgende lyn -
>> JASON Hirschhorn: i + 1.
>> STUDENT: Ja.
En dan is die volgende skyfie is name bracket i.
>> JASON Hirschhorn: Volgende lyn is name bracket i.
>> STUDENT: = kry snaar.
>> JASON Hirschhorn: = Kry -
kapitaal G-E-T -
string.
Oeps, jammer.
>> STUDENT: oop, geslote hakies en dan -
>> JASON Hirschhorn: oop, geslote hakie.
>> STUDENT: Flitser.
>> JASON Hirschhorn: Flitser.
OK, so jy inisialiseer die verskeidenheid van snare, name, en dan gaan deur 'n
vir lus, en vyf keer druk sommige gevra om die gebruiker en dan slaan
vyf snare.
Het enige iemand enige aanpassings aan dit?
Tom, ek dink almal stem saam met jou.
Lyk redelik goed.
OK.
Waarom het jy i 1, al is?
>> STUDENT: Ek bedoel, nie ' te wees nie, maar ek 1 sodat dit
Noem EEN vyf te noem.
Anders, sou dit naam nul vier te noem.
>> JASON Hirschhorn: So jy het i 1 want anders sou dit
gedruk zero deur vier omdat dit is hoe rekenaars dink nie, maar die mens
nie regtig nie lees soos dit.
Dit is 'n ander ding jy sal teëkom.
Soms wanneer jy druk om iets aan die gebruiker, sal jy wil om te maak dit 'n
bietjie mooier, en doen i 1 in hierdie geval is 'n
manier om dit mooier.
>> Ek sien ook vyf keer, string naam vyf, ek is minder as vyf.
Ek weet waar jy die vyf.
Jy het dit vir my vertel jy vyf name.
Maar as ons wou die kode te maak 'n bietjie meer robuuste, een ding wat ons
kan doen is hier, buite int, ons kan doen iets soos hierdie,
# Definieer, en wat ons kan doen NAME 5.
>> So basies, waar ek skryf kapitaal N, kapitaal A, M kapitaal, kapitaal E,
kapitaal S, wat string, sal dit vervang wat met 5 in die kode.
Of laat ons net noem dit - ons sal noem dit net nommer.
So ek definieer hoofletters Nommer te wees 5.
>> So nou waar ek die nommer 5, I kan dit vervang met hoofletters nommer.
En nou, as ek wil om die nommer te verander name, al wat ek nodig het om te doen, is om
hierdie een reël, reël vier, waar ek # Definieer nommer 5, verander na 10,
of verander wat aan 4.
Wanneer jou kode kry meer, jy is nie gaan om te onthou al die plekke wat jy
sit hoeveel name wat jy wil, en in sodat jy nie een te mis, is dit
'n goeie manier om dit te doen, om iets te vind tot bo-op en dan net gebruik om die frase
oral in jou kode.
Marcus?
>> STUDENT: Is dit stilisties voorkeur as wêreldwyd definisie van 'n
konstante n?
>> JASON Hirschhorn: So is dat stilisties verkies as wêreldwyd
definisie van 'n konstante n?
So jy sê jy kan doen, int nommer = 5?
>> STUDENT: hulle het nie medeklinkers in C of nee?
>> JASON Hirschhorn: Of konst - in gelyk.
So jy sê maar net 'n globale veranderlike?
>> STUDENT: Ja.
>> JASON Hirschhorn: So stilisties, daar is geen noodwendig een reg
beantwoord nie, maar beide van hulle is beter as net gooi hierdie ewekansige
nommers in jou kode.
Ons noem dit magic nommers.
As ek kyk na jou kode of wanneer enigiemand se deur te lees, het hulle
wil nie net die ewekansige getalle wat nie sin maak nie.
Selfs die nommer 26, wat oor die algemeen is die aantal letters in die alfabet,
dit is beter ALPHABET te definieer up top en red die nommer 26 in die tou,
as dit sin maak.
>> Of probleem wat een, eerder as - weer, het ons nie praat oor dit by die
die tyd, maar in plaas van net te gooi in 'n 25 oral of 'n 10, wat jy kan
red die nommer 25 as KWARTAAL of 10 as DIME, en dit maak dit makliker vir
wie se deur te lees om jou kode te verstaan ​​waarom jy verkies dat die nommer.
En ook vir jou, as jy ooit wil werk om jou kode, dit maak dit 'n bietjie
meer robuuste.
Ja?
>> STUDENT: Is hierdie kode ook gaan beskikbaar te wees vir ons na?
>> JASON Hirschhorn: Al hierdie kodes dat ons saam geskryf is
gaan word per e-pos aan u ouens en beskikbaar is nie.
Ja.
So vra die gebruiker vir vyf name.
Lukraak kies en druk een van die name.
Wie het hierdie lyn het?
Dit is die moeilijkste lyn hier.
Jammer, Tom.
Jy het 'n baie goeie werk, maar dit is 'n bietjie moeiliker.
Marcus, voort te gaan.
>> STUDENT: Wel, die eerste, jy gaan nodig stdlib.h en time.h. te sluit
>> JASON Hirschhorn: So jy sê op die top, sluit in twee biblioteke.
Jy wil hê ek moet insluit S-T-D-L-ek-B dot H, Standard Biblioteek, en wat
was die ander een?
>> STUDENT: Time.h.
>> JASON Hirschhorn: # sluit time.h.
So het hierdie twee biblioteke.
Ek neem nou ons gaan word met behulp funksies wat in hierdie vervat is
twee, wat is die rede waarom jy nodig hulle in te sluit?
>> STUDENT: So dan, in die eerste jy gaan wil srand te skryf.
>> JASON Hirschhorn: Srand.
>> STUDENT: (tyd (0)
>> JASON Hirschhorn: Jammer.
Srand (tyd (
>> STUDENT: 0.
>> JASON Hirschhorn: 0.
>> STUDENT:)), kommapunt.
>> JASON Hirschhorn: Nog 'n geslote paren?
Kommapunt.
Ek gaan net vervang jou zero met NULL.
Dit sal doen dieselfde ding, maar oor die algemeen, sien jy NULL, wat
sal ons praat oor hierdie lyn in 'n sekonde.
>> STUDENT: Stilisties beter?
>> JASON Hirschhorn: Oor die algemeen, mense reg NULL, maar dieselfde ding.
>> STUDENT: En dan int naam.
>> JASON Hirschhorn: Int naam.
>> STUDENT: =
>> JASON Hirschhorn: =
>> STUDENT: Rand.
>> JASON Hirschhorn: Rand.
>> STUDENT: ()
>> JASON Hirschhorn: ()
>> STUDENT: Modulo nommer.
>> JASON Hirschhorn: Wat is modulo?
Die karakter?
Die persent karakter?
>> STUDENT: Persentasie karakter.
Modulo nommer wat jy omskryf tot bo-op.
>> JASON Hirschhorn: Modulo nommer.
>> STUDENT: En dan kommapunt.
>> JASON Hirschhorn: Flitser.
>> Student is en dan nuwe lyn, printf.
>> JASON Hirschhorn: printf.
>> STUDENT: (
>> JASON Hirschhorn: (
>> STUDENT: "
>> JASON Hirschhorn: "
>> STUDENT:% s / n
>> JASON Hirschhorn:% s / n
>> STUDENT: "
>> JASON Hirschhorn:% s / n "
>> STUDENT: kommas name.
>> JASON Hirschhorn: Space -
>> STUDENT: O, ek dink, wat het ons noem dit hier?
>> JASON Hirschhorn: Ons noem dit name.
>> STUDENT: Open bracket, naam.
>> JASON Hirschhorn: Open bracket, naam.
>> STUDENT: Geslote bracket.
>> JASON Hirschhorn: Geslote bracket.
>> STUDENT:)
>> JASON Hirschhorn:)
>> STUDENT: Flitser.
>> JASON Hirschhorn: Flitser.
OK, laat ons red.
Kom ons maak hierdie kode.
Studente.
Kom ons gebruik hierdie kode.
Studente.
Nie / student.. / Studente..
Noem een.
Ons sal sê David.
Noem twee, RJ.
Noem drie, Rob.
Noem vier, Lucas.
Noem vyf, Joseph.
En dan is dit druk uit Joseph weer.
>> So laat my loop dit weer.
Laat my doen dieselfde name.
David, RJ, Rob, Lucas, Joseph.
En dit het my Dawid hierdie tyd.
So ek het dieselfde ding, maar dit het vir my 'n ander ding, en dit is
want, natuurlik, vra ons 'n ewekansige naam.
So ek dink, wat gebaseer is af van my dwaal in die kamer rond, dat die meeste mense
waarskynlik het die eerste deel reg, opstel wat verskeidenheid en dan kry
al die name.
Ek praat van reëls 10 tot 16.
Maar reëls 18 tot 21 is waarskynlik 'n paar dinge wat jy nie gesien het nie,
so laat ons gaan deur hulle.
>> Hierdie lyn, srand tyd NULL is in wese -
Jammer, laat slaan af 'n lyn, rand ().
Dit gee jou 'n ewekansige getal, 'n ewekansige heelgetal.
En as jy getref man rand, wat 'n klomp van julle het -
M-A-N ruimte R-A-N-D -
in die terminale soos hierdie, M-A-N ruimte R-A-N-D, druk Enter.
Jy sou kom om die handleiding en sal in staat wees om die rand te lees
opdrag uitgange num pseudo ewekansige grepe na saai die ewekansige getal
kragopwekker keer.
>> So dit is 'n beskrywing.
Dit is wat rand doen, gee jy 'n ewekansige getal toe
jy noem dat die funksie.
Ongelukkig, dit is nie regtig ewekansige want as jy net noem ewekansige
sonder om dit 'n paar saad, sommige beginpunt, sal dit altyd kies
dieselfde een en dit maak gebruik van 'n formule die volgende een te bepaal.
So as jy 'n beroep rand, dit sal net gee jou dieselfde ding.
Dit sal baie voorspelbaar.
Dit is eintlik nie lukraak.
>> So wat ons moet doen, per Marcus se instruksies aan my, was saad rand
met iets anders, en dit is wat die srand funksie verrig.
Dit sade rand met iets 'n bietjie meer ewekansige as dieselfde ding, en
hy is besaai met die tyd NULL, wat is, net deur die konvensie, die huidige
tyd in sekondes.
>> So jy is die veronderstelling dat nie almal is gaan die kode uit te voer op die presiese
dieselfde tweede, so dit is 'n veilige weddenskap dat tyd NULL gaan om anders te wees
elke keer hierdie kode is hardloop.
Veilige weddenskap dat dit so, srand sal saad rand met iets anders elke
keer.
So deur die konvensie, wanneer ons wil nie 'n ewekansige getal, ons skryf hierdie lyn,
srand tyd NULL, te gee vir ons 'n baie meer ewekansige saad, en dan loop ons
rand, wat gee ons 'n ewekansige getal.
Ja?
>> STUDENT: Kan jy sê wat jy bedoel met saad?
>> JASON Hirschhorn: Saad as in -
so rand gaan 'n paar nommer te kies en dit gaan 'n paar te gebruik
formule om daar te kom.
So dit gaan om te begin met iets en dan draai dit in iets wat gebaseer
af van daardie formule.
As jy gee altyd dieselfde ding, dit is altyd gaan om dit om te draai in die
dieselfde ding.
So die eerste ding wat jy gee dit is die saad.
So jy wil gee dit iets verskillende te begin met, en daarom is dit
sal draai dit in iets anders.
>> En dan uiteindelik, lyn 20, hierdie% staan ​​bekend as die
modulo, en dit is verwarrend.
Dit is iets wat 'n bietjie anders hier dat jy nie regtig
het in die werklike lewe wiskunde.
Maar in wese, wanneer jy 'n reuse nommer en jy deel in C, wat
gebeur met die res?
>> STUDENT: Dit word afgesny.
>> JASON Hirschhorn: Dit word afgesny.
So 20 gedeel deur 3 is wat?
Wat beteken dat die terugkeer na jy, 20 gedeel deur 3.
Jammer, 10 gedeel deur 3.
Wat beteken dit terug te keer na jou?
>> STUDENT: [onhoorbaar].
>> JASON Hirschhorn: 10 gedeel deur 3 net opbrengste 3, nie 3 res 1.
So, wat 10 modulo 3 opbrengste is net die res, 1.
So as jy wil weet wat 10 verdeel deur 3 eintlik was, sou jy
doen 10 gedeel deur 3, wil jy jou 3, en dan sal jy wil doen 10 modulo 3, en
jy kry 'n 1.
So jy wil besef dat 10 verdeel deur 3 is 3, res 1.
>> En in hierdie lyn, kan rand wees enige heelgetal is, in wese.
So modulo sê, deel dit deur nommer, wat in hierdie geval 5.
En as jy ooit verdeel deur 'n aantal, die integer het altyd minder as
dat die getal.
So as jy deel deur 'n nommer 5, die res is altyd gaan wees
zero deur vier.
Dit is net hoe die wiskunde werk uit.
>> So 'n groot aantal moduloed deur 'n kleiner nommer sal altyd terug
res en sal altyd terug sommige aantal wat minder is as die getal wat jy
gedeel deur.
Het enige iemand enige vrae oor modulo, want dit sal kom in 'n baie,
baie handig, so ek wil om seker te maak almal verstaan ​​dit?
Cool.
En ons sien dat hierdie program gewerk het.
OK, beweeg op.
>> So, volgende, ons gaan om te gaan in funksies, en ons gaan om te gaan
deur die res van hierdie dinge mooi vinnig, want ek wil te kry om
command line argumente.
So funksies is in wese, as jy gesien het, black boxes.
Hulle neem dinge in die naam parameters, hulle doen iets vir hulle, óf
verander of skep 'n paar newe-effekte, en uiteindelik, hulle spoeg
iets uit, wat die terugkeer waarde.
Kan iemand gee my 'n rede Hoekom sou ons gebruik funksies?
Enigiemand?
Een van die redes waarom ons wil gebruik om funksies?
Enigiemand?
Ek het gesien hoe twee hande.
Wat is 'n goeie rede?
Marcus?
>> STUDENT: As jy dieselfde te bel stuk kode verskeie kere.
>> JASON Hirschhorn: OK, as jy dieselfde stuk te roep
repertorium van meer as een keer.
Jeff, het jy 'n ander rede?
>> STUDENT: Net sodat jy kan kode minder.
>> JASON Hirschhorn: Jy kan kode minder.
Reg.
As jy wil iets doen om 'n baie -
in die vorige kode, kon ek geskryf kry string vyf keer, maar 'n
vir lus maak dit lyk mooier en jy het minder kode te skryf.
Funksies 'n soortgelyke idee.
As ek wil dieselfde ding doen 'n baie, skuif dit na 'n funksie en noem dat
funksioneer elke keer.
Dit sal die ding doen vir jou.
Dit is 'n groot rede funksies te gebruik.
>> So anatomie van 'n funksie.
'N funksie sal in die algemeen lyk.
Dit sal begin met die terugkeer tipe, Dan kry jy die naam.
Dit sal neem om die argumente, anders bekend as die parameters, en binne
diegene krulhakies, sal jy skryf jou kode.
>> Ons het gesien hoe een funksie 'n baie.
Dit is belangrikste.
Hier is die hoof bo-op dat anatomie Ek het vroeër.
Wat beteken int hier dui?
Wat beteken int beteken?
Wanneer ek skryf int main (void).
>> STUDENT: Stuur tipe?
>> JASON Hirschhorn: Jammer?
>> STUDENT: Die terugkeer tipe.
>> JASON Hirschhorn: Int is die terugkeer tipe, presies reg.
Main gee 'n int.
Wat is die hoof?
>> STUDENT: Function name.
>> JASON Hirschhorn: Main is die naam van die funksie.
Presies reg.
En leeg?
Wat is nietig in die hakies?
>> STUDENT: Dit neem nie enige eksterne waarde.
>> JASON Hirschhorn: So leemte -
reg.
Binne-in die hakies, het ons die parameters of die argumente die
funksie neem, wat gaan binne-in die swart boks.
Wanneer jy skryf leemte, jy sê: dit neem niks in
So int main leemte beteken hoof se nie om enigiets in
>> Binne-in die krulhakies, ons het 'n paar kode, en dan sien ons aan die einde
terugkeer nul.
Wat beteken terugkeer nul beteken?
Wel, ons het gepraat oor terugkeer tipe.
Hoof moet 'n int om terug te keer.
Dit is wat hierdie lyn nie.
Dit gee 'n int, nul.
>> Natuurlik, het ons nie gesien dat 'n klomp want in die ontwikkeling wat ons doen met
die masjiene wat ons doen en die opstellers ons gebruik deesdae, jy
nie nodig dat die lyn.
Belangrikste is spesiaal genoeg dat dit weet wanneer jy aan die einde van die hoof, net
terugkeer nul as alles goed gegaan.
In werklikheid, as iets nie goed gaan, hoof dikwels sal terugkeer 'n ander
getal dui dat daar iets verkeerd gegaan het met jou program.
>> So oor die algemeen as jy sien kode, kan jy skryf nie terugkeer nul, maar dit is 'n goeie
om te weet dat dit gebeur agter die tonele, want wanneer jy skryf
'n ander tipe funksie, jy gaan nodig het om te
sluit in 'n terugkeer lyn.
As jy sê ek gaan terug te keer 'n int, jy het om te
skryf weer iets teruggee.
As jy sê leemte hier by die begin, nietig belangrikste leemte, vir
Byvoorbeeld, dan is dit nie terug enigiets - nietig beteken niks -
sodat jy nie nodig dat die terugkeer lyn.
Maar jy al ooit iets skryf wat nie nietig vir die terugkeer tipe, moet jy
'n lyn wat sê terugkeer en jy nodig het om iets daar te vestig
wat ooreenstem met die tipe.
Enige vrae oor wat?
Soet.
>> Omvang.
Dit is iets wat ons het aangeraak as well.
Elke veranderlike, soos ons weet, het 'n sekere omvang, en dit is basies
praat oor waar die veranderlike mag of mag nie gekla word.
En ek hou van om te sê wat gebeur in krulhakies bly
binne-in die krulhakies.
So byvoorbeeld, as ons kyk na hierdie kode, ons definisie van 'n globale veranderlike
buite hoof, int n, hier aan die bokant.
Ons is deur 'n ander int 'n binne-hoof.
Ons het 'n paar meer krulhakies, en roep ons nog 'n int.
>> Ons het drie A's in die kode.
Dit is nie dieselfde ding nie.
Ek het geskep drie afsonderlike veranderlikes.
Dan binne hierdie innerlike krullerige draadjies, sê ek a = 4.
Wat 'n is dat dit oor die eerste een, die tweede een,
of die derde een?
>> STUDENT: Die derde een.
>> JASON Hirschhorn: Dit praat Oor die derde een.
Al hierdie is eintlik 'n kan gepraat oor in hierdie spesifieke
byvoorbeeld omdat hul omvang alles in hierdie binneste krullerige draadjies.
Maar wanneer jy noem dinge dieselfde naam, daar is iets genoem wegkruip.
So jy het net om met of los of gebruik die mees onlangse veranderlike, of die een wat
naaste aan jou.
So binnekant hier, is hierdie 'n derde naaste aan daardie lyn, 'n = 4, so dit
invloed op die derde een.
En die laaste reël, 'n = 2, wat 'n is wat praat, die eerste, tweede,
of derde 'n?
>> STUDENT: Tweede.
>> JASON Hirschhorn: Dit praat oor die tweede a.
Natuurlik, die derde 'n is die naaste aan dit in die kode nie, maar die derde 'n
bestaan ​​nie buite diegene krullerige draadjies.
Sodra jy op daardie geslote krullerige stut, dit is soos dit is weg,
wese.
Dus is die enigste twee wat jy verlaat het, is dié eerste twee, en natuurlik, nou
dit is die naaste aan die tweede een.
>> So dis 'n goeie ding om te onthou oor die omvang.
Byvoorbeeld, ek is seker jy teëgekom dit in 'n doen terwyl loop.
As jy inisialiseer die veranderlike binne die nie lus en dan, terwyl jy probeer om te
toegang tot dit buite, het jy waarskynlik het 'n waarskuwing soos, hierdie
veranderlike nie bestaan ​​nie.
Dit is as gevolg van die omvang idee, dat dinge net bestaan
binne-in die krulhakies.
Krulhakies is soos 'n reuse drukkie wat jy gee om jou kode, is 'n ander
manier om te dink oor dit.
>> So, dit is 'n ander funksie, iets vir julle te kode, hellofunction.c.
Ons gaan dit oor te slaan vir nou, maar dit is iets wat ek u aanmoedig om te
oefen op jou eie.
Skryf 'n program in wat die hoof oproepe 'n ander funksie wat druk uit 'n
groet aan die gebruiker.
Dit is in wese die neem van Hello World en onttrekking wat printf in
'n ander funksie.
Maar ons is nie van plan om dit reg om nou te doen want ons het nie soveel tyd
verlaat as ek sou wou hê.
>> So funksie verklaring.
Ons het gesien dat dit voor as well.
As jy wil 'n ander funksie te skryf, wat jy nodig het om jou te laat weet die rekenaar en
hoof weet dat dit bestaan.
So, wat ons hierbo nie is die hoof, ons skryf return, die naam, en die
parameters, en dan af onder hoof, hier het ons eintlik kopieer daardie lyn
en skryf dan die werklike kode.
So op hierdie manier, as jy noem die funksie in die belangrikste aan die bokant, hoof weet dat
hallo bestaan, byvoorbeeld, as ek te roep hallo, en dan lyk dit na
die implementering onder.
Wat gebeur as ek nie hierdie sluit line-up top, nietig hallo (void)?
>> As ek sluit nie die lyn en die belangrikste oproepe hallo, ek is
gaan 'n fout te kry.
Ek gaan 'n fout, want te kry die opsteller nie weet
dat hierdie ding bestaan.
Dit is soortgelyk aan die rede waarom ons insluit # moenie cs50.h.
Wat in wese cs50.h doen plaas kry string daar.
Dit is om te kry int daar.
Dit is om al daardie funksie prototipes voor belangrikste sodat wanneer
jy noem dit in hoof-, hoof-weet dat hierdie dinge bestaan ​​nie.
Dit is wat die h-lêers. Doen.
En so, as jy gaan jou eie te maak funksie, jy het om seker te maak
jy dat die prototipe daar.
Enige vrae oor hierdie so ver?
>> Command line argumente.
Dit is wat ons gaan om te voltooi op, en dan hopelik sal ons
druk in sommige pset.
Ek weet nie of ons sal in staat wees om te druk wat in gevolg van tyd, maar
saam met julle ouens wat hier is, en as jy ouens wil sê na 'n bietjie, ons
kan gaan oor dit buite.
Maar ons gaan om te voltooi met command line argumente
vir die laaste 15 minute.
Ons word wakker, Michael?
Jy wakker word?
Goed.
Ek weet nie of jy slaap met jou oë toe.
Dit sou moeilik wees.
>> Command line argumente.
Dit is een manier om inligting te slaag in 'n program.
Uiteindelik, sal ons teëkom ander.
Maar in wese, ons gaan om te stop skryf int main (void) as ons wil
neem 'n paar command line argumente.
Ons gaan hierdie ding om te skryf genoem int main (int argc,
string bevat SPASIES, hakies.
Dit is verwarrend.
Dit is 'n baie van die briewe wat nie in menslike Engels, so ons gaan
pak hulle op die oomblik.
>> Argc staan ​​vir argument tel -
en weer, al hierdie sal aanlyn beskikbaar wees -
en dit is die getal van die argumente.
Bevat SPASIES staan ​​vir argument vektor, en dit is die argumente self.
Dit is 'n verskeidenheid van snare.
Ons het eintlik gesien hoe 'n verskeidenheid van snare voor vandag.
Ons het een in die verlede program wat ons gekodeer.
>> So hier is 'n voorbeeld.
Ek skryf. / Ohai cs50 artikel op my opdrag lyn.
Argc in hierdie geval is gelyk aan 3.
Bevat SPASIES bracket 0 is ohai, bevat SPASIES bracket 1 is cs50, bevat SPASIES bracket 2 is artikel.
Weereens, argc is die getal van die argumente, en om te reis wat jy 'n bietjie
bietjie, het ons altyd die telling van die naam van die funksie as die eerste argument.
So in hierdie geval, is daar drie argumente, die naam van die funksie
en dan daardie twee wat ek getik in
>> Volgende, gaan ons diegene te red argumente hulself in bevat SPASIES.
En weer, net soos ons voor gesien het, het ons dit in die laaste program ons gekodeer.
Jy kan beweeg deur middel van die verskeidenheid van bevat SPASIES en kry die snare.
Dit is in wese wat ons gedoen het by die einde van ons laaste program.
Ons pluk 'n ewekansige naam en toe na name bracket wat ook al en gedruk
uit die string daar geleë.
>> Op die top van net die een skikking, omdat snare self skikkings, as
gepraat het, kan jy skikkings van skikkings, wat
wese wat bevat SPASIES is.
Een manier waarop jy kan dink dit is rye en kolomme.
Ek kan dit nou trek.
So bevat SPASIES -
dit is nie die skoonmaak.
Kom ons teken onder ohai.
>> So as ek geskryf het in, ohai cs50 artikel, Ek gaan kortknip
artikel vir hierdie voorbeeld.
Maar in wese, my multi-dimensionele skikking, ohai cs50,
ons gaan party te doen.
So hier is, kan ek toegang tot -
As ek net gee bevat SPASIES een nommer -
Dit is verkeerd.
Wat is verkeerd in hierdie diagram?
>> STUDENT: Begin by nul.
>> JASON Hirschhorn: Dit moet begin met 'n nul.
Ek moet ook waarskynlik draai nie, maar want ek het dit reeds geteken, ek is
gaan om dit te laat op vir nou daar.
Maar dit begin by nul.
Dit is reg.
Ek is jammer as dit is klein.
Kan soort van julle sien?
So as ek doen bevat SPASIES 0, sal ek kry al ohai.
As ek dit doen bevat SPASIES 1, ek sal almal van cs50.
As ek dit doen bevat SPASIES 2, ek sal almal van party.
>> Maar nou, soos ons sê, stringe is skikkings hulself.
So, wat ek kan doen is ek kan hanteer hierdie as 'n multi-dimensionele skikking, en ek
kan doen iets langs die lyne van bevat SPASIES 0, 0, wat gee my net die
karakter 0.
Bevat SPASIES 0, 1, wat my net h.
Bevat SPASIES 1, 3, wat gee my net hierdie 0 af hier in cs50.
>> So omdat snare hulself is skikkings, ons sit
wat in 'n ander skikking.
Ons het nou 'verskeidenheid van skikkings, en ons kan kruip in ons eerste reeks en
dan indeks in ons tweede skikking.
En as jy sou verwag, ons doen wat deur net om daardie twee -
ons doen die vierkantige hakies net reg langs mekaar.
So in hierdie voorbeeld, bevat SPASIES 1 is cs50 en bevat SPASIES 1, 2, soos ons gesê het, is net 5.
Het enige iemand enige vrae oor multi-dimensionele skikkings?
Julle doen awesome.
Soet.
>> So het ons 'n ander program reg hier, en dit is die laaste ding wat ons is
gaan nou te doen.
So ek wil hê dat jy 'n program te skryf wat neem 'n gebruiker se volle naam, twee en slegs
twee command line argumente, en uiteindelik, druk 'n groet aan die
gebruiker wat insluit hul eerste naam.
So hoekom neem jy nie drie of vier minute om dit te doen, en dan sal ons gaan
meer as dit as 'n groep, en dan sal ons draai?
>> En weer, hier, wanneer ons sê 'n gebruiker se volle naam per die beskrywing
van die probleem, moet dit command lyn argumente, nie met behulp kry snaar.
Ja, Marcus?
>> STUDENT: So wanneer jy sê twee opdrag lyn argumente, is dat bykomend tot
. die / hardloop, of -
>> JASON Hirschhorn: Goeie vraag.
Doen, insluitend die / run., Drie command line argumente.
Of insluitende die / persoonlike., In hierdie geval, want dit is die
naam van die lêer.
So argc sou wees drie.
Maar ek wil net twee argumente gegee aan die program.
Ek moet spesifiseer dat.
Ek sal dat verandering te maak voordat ek 'n boodskap hierdie en stuur dit vir julle ouens.
>> STUDENT: Wat gebeur as jy 'n middel naam?
>> JASON Hirschhorn: As jy 'n middel naam, is jy uit van geluk.
Ek is jammer.
Of as jy net gaan deur Shakira, jy is ook uit van geluk.
Ja?
>> STUDENT: So wanneer mense nie cs50.h, definieer hulle bevat SPASIES
as char ster bevat SPASIES?
Of is dit nog genoem string bevat SPASIES?
>> JASON Hirschhorn: Ja.
So string, weer, ons masker oor wat presies daar gebeur.
Dit gaan om miskien uitgepak op Woensdag, maar gou.
Dit is soos die opleiding wiele.
Want in wese is, is dit dieselfde ding.
>> So laat ons 'n minuut program hierdie, en dan sal ons gaan oor
dit as 'n groep, en dan soos ek gesê het, draai.
En ek dink hulle is nog ekstra lekkergoed, so julle ouens moet hopelik neem
dat, of neem asseblief dat.
>> Jammer as jy nog skryf, maar ek wil om te duik in en ons
kan dit klaarmaak saam.
So ek geskryf het in, sluit # cs50.h, # sluit stdio.h.
int main (void), krullerige stut, krullerige stut, binne drie reëls van die
pseudokode, neem 'n gebruiker se volle naam, twee en slegs twee command line
argumente, druk 'n groet aan die gebruiker wat insluit hul eerste naam.
>> So het die eerste een, neem 'n gebruiker se volle naam.
Wie kan my help neem 'n gebruiker se volle naam?
Hoe doen ek dit deel?
Het julle ouens doen dat die eerste deel?
Neem 'n gebruiker se volle naam.
Wel, vir daardie een command line argument, wat moet ek skryf?
Wat moet ek verander oor my funksie verklaring?
>> STUDENT: Jy wil nie dit is nietig nie.
>> JASON Hirschhorn: Presies.
Ek wil nie hê dit moet wees nietig.
Wat wil ek hê moet dit wees?
>> STUDENT: Int argc.
>> JASON Hirschhorn: Int argc.
>> STUDENT: String bevat SPASIES.
>> JASON Hirschhorn: String bevat SPASIES.
>> STUDENT: Bracket, bracket.
>> JASON Hirschhorn: Bracket, bracket.
Dit is presies reg, en dit is eintlik hoe ek gaan kry
'n gebruiker se volle naam.
Hulle gaan om dit te sit in daar.
Sodat 'n mens gedoen is.
So nou wil ek twee en slegs twee command line argumente.
So Noag, wat is een manier wat ek kan check die getal van die opdrag
line argumente ek het?
>> STUDENT: Jy doen 'n if-stelling.
>> JASON Hirschhorn: As verklaring, presies.
Wat wil ek doen as die toestand?
>> STUDENT: Indien argc groter as 3.
>> JASON Hirschhorn: As argc is groter as 3.
As argc groter as 3, doen wat ek doen?
>> STUDENT: Terug 1.
>> JASON Hirschhorn: Terug 1.
Sal dit verseker Ek het twee en slegs twee?
>> STUDENT: No
As argc is groter as 3 en minder as 2.
>> JASON Hirschhorn: As argc is groter as 3 en argc is minder as 2.
Wat is een manier wat ek kan skryf in net een lyn, of sonder die gebruik van daardie
en Boole-operateur?
>> STUDENT: Dit is nie gelyk aan 2.
>> JASON Hirschhorn: As argc is nie gelyk aan 2.
Presies.
So as argc is nie gelyk aan 2, wat gee my hierdie program,
persoonlike, toe ek dit loop, en wat gee my hoeveel
command line argumente?
Hoeveel sal ek kyk vir?
>> Jammer.
Laat my herbewoord wat.
As argc = 2, hoe baie dinge gedoen die gebruiker skryf in die lyn?
>> STUDENT: One.
>> JASON Hirschhorn: Net een.
So voor, jy was reg, Noag.
Wat ek nie eintlik nodig het om daar te sit?
>> Student: Daar is gelyk aan 3.
>> JASON Hirschhorn: Argc nie gelyk aan 3.
Ek wil 3 te gelyk, want ek wil persoonlike plus die ander twee.
So as argc nie gelyk 3, terug 1.
Waarom het jy gesê terug 1?
>> STUDENT: Omdat beteken dit is verkeerd.
>> JASON Hirschhorn: Dit beteken dit is verkeerd, en wat is dit gaan doen?
>> STUDENT: Re-Vra die gebruiker.
>> JASON Hirschhorn: Dit gaan om op te hou die program, so dit sal hê om te hardloop
weer, maar ons het nie iets hier om te vra vir hulle weer.
Ek het nie gevra vir dit.
So dit is presies reg.
Terug 1 net verlaat die program.
Groot.
>> En die druk van 'n groet aan die gebruiker wat insluit hul eerste naam.
Hoe kan ek dit doen?
Anna?
>> STUDENT: printf.
>> JASON Hirschhorn: printf.
>> STUDENT: ("
>> JASON Hirschhorn: (
>> STUDENT: "hallo
>> JASON Hirschhorn: "hallo
>> STUDENT:% s
>> JASON Hirschhorn:% s
>> STUDENT: / n
>> JASON Hirschhorn: / n
>> STUDENT: ",
>> JASON Hirschhorn: ",
>> STUDENT: bevat SPASIES
>> JASON Hirschhorn: Jammer?
>> STUDENT: bevat SPASIES
>> JASON Hirschhorn: bevat SPASIES
>> STUDENT: Square hakies: 1.
>> JASON Hirschhorn: Square hakies?
>> STUDENT: 1.
>> JASON Hirschhorn: 1.
>> Student is en) kommapunt.
>> JASON Hirschhorn:) kommapunt.
Kom ons loop nie.
Maak persoonlike.
/ Persoonlike..
Dit is net op te hou.
Hoekom het dit ophou?
>> STUDENT: Jy het nie 'n argument.
>> JASON Hirschhorn: Ek het nie sit enige argumente in
Lyk baie goed.
Julle vasgespyker.
So weer, jy het in 'bevat SPASIES en jy nagegaan word aan die begin argc.
Dit is twee belangrike dinge om te onthou.
So in ons laaste twee minute voor ons verlaat nie, sal ons nie kry om pset twee nie, maar
soos ek gesê het, as jy wil om te bly nadat vir 10 minute, ek sou hy bly om te gaan
saam met julle ouens die logika vir hierdie probleem sit.
Ons het 'n baie vandag te dek so ek het nie vir hulle.
Oor die algemeen, ek wil graag in te sluit wat aan die einde.
So as jy wil om aan te bly, hou om vir 10 minute.
Ons sal dit doen.
>> Dan, as ek reeds aan die begin, pset nul en een, sal ons daardie
terugvoer terug na jou as gou as moontlik.
Die doel is om pset een terugvoer te kry, die kommentaar gedeelte,
voor pset twee verskuldig is.
So as jy het 'n paar foute of stilisties, kon dinge beter wees,
jy sal hê om daardie inligting, sodat jy sal dit nie doen dieselfde dinge in pset twee.
En dan in die toekoms, sal jy al van jou pset terugvoer en kommentaar
terug voor die volgende een is te danke.
>> Ten slotte, as ek kon in 'n ander prop vir terugvoer.
Dit is jou eerste artikel.
Dit was my eerste artikel onderrig van hierdie jaar.
Gaan daar.
Skryf dinge, goed en sleg, en ek sal gebruik om dit te maak
artikel volgende keer beter.
En laaste, weer, as jy enigiets, laat my weet.
Ek is meer as gelukkig om julle te help.
As jy net lekkergoed wil, ek sal ekstra lekkergoed.
Ek is bly om dit te bring na jou toe.
>> Dit gaan 'n wonderlike kursus.
Dit is een van, indien nie my gunsteling Natuurlik, ek geneem het in my hele lewe,
en ek hoop dat dit sal wees dat wonderlik vir jou.
So ek wil alles in my vermoë doen te maak dit wat awesome vir jou.
Ek gaan om uit te stuur 'n e-pos as jy in my artikel of Noag, en
gaan probeer skeduleer met elk van julle 'n tyd om te kyk in die
volgende paar weke so ek kan 'n sin van wat jou CS agtergrond is,
en dit sal ook help om my maat hierdie afdelings aan te pas by jou behoeftes.
So dit is wat ek het gevoer.
Weereens, ek sien jou buite As jy wil hê om daar te wees.
Dit was week twee afdeling.
Dankie ouens so baie.