[Powered by Google Translate] David J. Malan: Gerai, tai yra CS50, ir tai yra
baigti 1 savaitę, todėl studijų kortelės ir iš viso
klasiokai, kad jūs turite šiemet yra 745.
Ir mes taip malonu, kad tiek daug jūsų kurso
šį semestrą, bet nors šis kursas yra toks didelis,
suprasti, kad tai šių dalykų, pavyzdžiui, penktadienis pietūs, pavyzdžiui,
darbo laikas, 15-asmens profiliai, ir taip toliau, kad
iš tikrųjų reiškia sukurti šį intymesnis
aplinka.
Taigi, nors mes galime rinkti vieną ar du kartus per savaitę, čia
Šlifuokliai, žinau, kad daug nuo jūsų patirties šiame kurse
labai hands-on, kartu iš jūsų klasiokų
ir pedagogus.
>> Taigi čia mes einame, Fall 2012.
Taigi prisiminti, kad paskutinį kartą, mes galų pastaboje
netikslumų, kalbėti apie atstovavimo skaičių.
Ir mes pažvelgė į vieną iš nesėkmių, kad atsitiko,
realiame pasaulyje, kai ji atėjo į nesusipratimas
kaip kompiuterių darbą.
Na, šiandien mes bus peržiūrėti vieną kitą tų idėjų
pat tęsti mūsų diskusiją CS50 klientui
ir C ir ką tai reiškia tikrai programa.
Bet pirmiausia, tik pora viesulu pranešimų.
>> Skyriai prasidės šį sekmadienį, pirmąją savaitę visada
tiek greitai pradžios, nes mes tiesiog pateko į
skiltį formos.
, Ką mes darome tą patį, dabar, su mokymo bičiulių dabar
kad jie žino savo tvarkaraščius, todėl mes siekiame,
Šeštadienio rytą, imtis tolesnių su jumis, su jūsų skyriuje
perleidimas ir TF.
Suprantu, kad jie bus pradėti kitą dieną, sekmadienį
arba pirmadienį ir antradienį.
Ir tada mes prisitaikyti prie skyriaus pakeitimus, kaip jie atsiranda
per keletą dienų į priekį.
Darbo valandos, tuo tarpu, yra, vėl, šį vakarą, 8 iki 11,
Annenberg, taip pat rytoj vakare.
Net jei problema rinkiniai yra paprastai dėl ketvirtadieniais
vidurdienį, suprantame, turite pastaruosius penkerius dienas praleisti,
taigi ir ketvirtadieniais darbo valandomis prieinamumas jei
tiems, vėlai dienų grynųjų pinigų ir tuo pačiu pateikti
kažkas penktadienį.
Leiskite man pasiūlyti, kad nulio yra vienas iš labiausiai įdomus, tarp
Low Key problema rinkiniai.
Ir aš norėčiau pakabinti ant tiems, vėlai dienų, strategiškai, tiesiog
vėliau į tą semestrą, kai gyvenimas pradeda gauti į kelią
kontrolinius ir kitų klasių.
Problema Set 1, tuo tarpu, bus paskelbtas kursas
svetainė šį penktadienį, kaip bus kurso pėsčiomis
tiesioginio vaizdo, kuris bus nufilmuotas 2:30 PM penktadienį
ir paskelbtas internete jau kitą dieną.
>> Taigi, mes baigėsi pirmadienį.
Noriu - iš tikrųjų, čia atkreipsime dėmesį.
Kadangi klasės - nes Sanders nėra tiksliai skolinti
pats atsitiktinis Q & A Atgal ir pirmyn siaubingai gerai, mes
ketinate pabandyti kažką šiek tiek naujo šiais metais, kuriuo
jei nesate patogiai pakelti savo ranką ar jūs tiesiog
, o ne pakelti ranką kambarį kaip šis,
mes ketiname turėti tam tikrą mokymo bičiulių ir CAS
įgulos komplektavimo cs50.net/discuss per paskaitą.
Taigi, jei turite klausimų, nes buvau visiškai
neaišku apie ką nors, ar jums yra smalsūs apie kai
tema, pabandykite nusiųsti jį ten.
Tag paskaitų etiketės, ir mes padarysime viską
šiandien ir kitą savaitę - we'll tai išbandyti - į lauką
arba elektroniniu paštu, internetu, arba, jeigu ji mano, kaip turėtume
tikrai jį spręsti masiškai, vieną mokymo bičiuliais arba
KI pakels savo ranką ir paprašyti
anonimiškai jūsų vardu.
Taigi, mes duoti tai pabandyti ir pamatyti, kaip gerai tai veikia.
Tačiau, visomis priemonėmis, toliau kels rankas taip, kaip norėtumėte.
>> Taigi, paskutinį kartą parodė, kad 10% arba viena dešimtoji,
faktas, 0,1, kaip prieš daugelį metų buvote mokyti.
Tai iš tiesų, kaip ši vertė.
Bet tai nėra visiškai tiesa, tiesa?
Mes tiesiog turime šį apribojimą kompiuteriais, kuriuo, jei
tik gali išlaikyti tik ribotą kiekį atminties, RAM arba daugiau
specialiai bitai, gerai, ten tik galutinį skaičių
dalykų, kuriuos galite atstovauti.
Pavyzdžiui, jei mes turime nulį, ir mes norime
sudaro dvejetainis, naudojant aštuonių bitų, kur šiek tiek,
dar kartą, yra nulis arba vienas, mes galime
atstovauja jai kaip 00.000.000.
Ir tai yra šiek tiek be reikalo Verbose.
Tiesiog kaip dešimtainę sistemą ir realiame pasaulyje,
paprastai, jei norite rašyti numeris 123,
žmonės tikriausiai nereikia rašyti 00000123, nors,
funkciniu požiūriu, tai lygiai toks pats skaičius.
Mes tiesiog lašas nuliais, taip sakant.
>> Dvejetainiu, mes galime padaryti tą patį.
Dvejetainis ir nulis, nulis ir dvejetainiai tiesiog nulis.
Jums reikia tik vieną bitų.
Bet vėl, pasaulyje labiausiai paplitusi matavimo vienetas
kompiuterija yra baitų, aštuonių bitų.
Tik todėl, kad vienas bitas, gana nenaudingas.
Aštuoni bitai, nėra labai naudinga, bet bent jau daugiau
naudinga nei vieną matavimo vienetą.
Taigi su aštuonių bitų, mes paprastai atstovauja dvejetainis.
Taigi čia mes turime skaičius nulis, vienas, du, ir tada, kaip
Nate mūsų vaizdo praėjusį trečiadienį, galime tęsti
skaičiuoti iki septynių iki aštuonių.
Ir tada, jei mes naudojame vis daugiau ir daugiau bitų,
gali tikėtis iki begalybės.
Tačiau jei jūs turite tik baigtinio skaičiaus šių bitų, kaip
bet kurio kompiuterio sistemą, ar net raketų
sistema, gerai, iš tikrųjų jūs tik
baigtinis suma tikslumo.
Taigi, jei norite atstovauti daugiau kaip 0,1, gerai,
kompiuteris turi rinktis.
Ir, jei jis turi tik baigtinio skaičiaus numeriais
atstovauti, gali ateiti beveik 0,1 už jus, tačiau ji negali
būtinai duoti jums tiksliai norimą reikšmę.
Ir tai tik vienas iš kompiuterių problemas
po kapotu, laimei.
>> Kaip mes judėti toliau į tą semestrą, tai žemesnio lygio
informacija tapo daug mažiau įdomus, bet tikrai
šių idėjų taikymas gali turėti tam tikrą labai realų pasaulį
pasekmių.
Vienas iš jų yra šiek tiek įdomus.
Kaip daugelis iš jūsų mačiau nuostabų filmą Office Space?
Jei jūs neturite, kad jūsų neoficiali
namų už savaitę.
Tačiau Office Space, kad filmo bičiulių
privalumas būtent šią idėją, bet jie iš tikrųjų pavogė
tai iš kito filmo, kad jums gali tekti
matyti, net metų prieš.
Taigi, leiskite man duoti jums keletą sekundžių šios priekabos
šį nuostabų filmą, ir tai yra labai
akademiškai svarbi.
>> [Vaidina Movie]
Tiesą sakant, aš skatinamas.
Galiu programuoti virusas, kuris bus nukopijuoti, kad
atliekama ne didelis laiko.
Na, kaip tai veikia?
Kiekvieną kartą, kai bankinė operacija, kai palūkanos yra
kompiuterinė, yra tūkstančiai per dieną, kompiuteris baigiasi
šių frakcijų cento.
Bet aš nesiruošia daryti nieko neteisėto.
Neteisėtas? Samir, tai yra Amerika.
Jūs turite prisiekiu Dievu.
Jei niekas nežino apie tai, tačiau mums, gerai? Be šeimos nariai, nėra
draugės, niekas.
[Nesigirdi].
Nesijaudinkite, vyras, aš nebus niekam arba.
[Filmas baigiasi]
>> Viskas gerai, tai gal radau šį filmą geriau nei dauguma
žmonės čia, tačiau bet kuriuo atveju, virusas, kad jie buvo
bando sukurti
ir į kiną, bet kuriuo metu, jie nori skambinti kažkas, virusas,
tai paprastai ne iš tikrųjų virusas.
Tai tik programa, kad kažkas rašė kažką daryti.
Ir šiuo atveju, vaikinai bandė parašyti programą
, kad pasinaudojo savo įmonę vadinamas Innotech-aisiais
skaičiavimo sistemą, pagal kurią kompiuteriai, taip pat, net jei jis
kalbama apie pinigus, ne visada gali
tiksliai atstovauti pinigus.
Taigi, nors jums gali tekti 0,10 $ į savo banko sąskaitą,
0,10, gerai, kompiuteris gali iš tikrųjų manote, kad turite
tai daug centų jūsų banko sąskaitą.
Ir taip ką šie vaikinai buvo trokštantis daryti - ir jie
pavogė idėją, paaiškėja iš Supermenas III, kur
Richard Pryor padarė tą patį - jie iš esmės buvo
rašymo programas, kurios siekia atsižvelgti gale
numeriai, visi mažytė, mažytė, mažytė frakcijų
centus, ir pasilieka sau tie, išjungti, kad žmonės tiesiog
mintis, oh, tai tik 0,10 $ ten, bet visi tie,
gale numeriai galiausiai pridėti.
Taigi, puiki idėja ir jis atsirūgo hilariously tuo, kad
pirma filmas.
>> Tačiau realiame pasaulyje, taip pat yra daug daugiau dėl
pasekmės šių dalykų rūšių.
Ir viena iš priežasčių, pasinerti į kompiuterių srityje
mokslas, vėlgi, jo taikymas ne
inžinerinius mokslus, vienas, bet tik
kitose srityse, taip pat.
Taigi tai yra mažiau linksmas pažvelgti į tai, kas gali suklysti, bet
ji taip pat yra gana iškalbinga, manau, kai jis ateina į
suprasti tiksliai, kaip visur technologijos, tokios kaip
kompiuteriai ir programavimo ar šių dienų,
programinės įrangos.
Taigi tai kitą klipas yra tik apie šešias minutes, ir toliau
kur mes palikome paskutinį kartą, tačiau leidžia mums pažvelgti šiek tiek
išsamiau Vienas iš tokių šiais klausimais.
Leiskite man praleisti į priekį, kur mes nerašomas,
kuris buvo čia.
Ir mes turime dviejų antrą dalį, apie šešias minutes.
>> [PLAY MOVIE]
Kentėjo modernią raketų technologiją.
Pirmojo Persijos įlankos karo pradžios 1991 metais, su Patriot
raketa patyrė panašaus pobūdžio
skaičių konversija problema.
Ir kaip rezultatas, 20 žmonių, žuvo 20 amerikiečių karių,
ir apie 100 sužeistųjų, kai Patriot ", kuris turėjo
apsaugoti nuo gaunamų Scuds
nepavyko į ugnį raketa.
>> Kai Irakas įsiveržė į Kuveitą ir Amerika pradėjo dykuma
Audra pradžioje 1991, Patriot raketų baterijos buvo
dislokuojama siekiant apsaugoti Saudo Arabiją ir Izraelį iš Irako
Skadi raketų atakų.
Patriot yra JAV vidutinio nuotolio žemė-oras sistema,
pagamintas Raytheon kompanijos.
Patriot kolektoriaus dydis, tai apie
maždaug 20 pėdų ilgio ir sveria apie 2.000 svarų.
Ir ji vykdo apie užtaisą - Manau, kad tai maždaug
150 svarų.
Ir Kovinė pati yra aukštos sprogmuo, kuriam yra
fragmentai aplink jį.
Iš galvutės korpusas yra skirtas veikti kaip Buckshot.
Raketos yra atliekami keturi vienoje talpykloje ir
vežami puspriekabe.
>> Patriot priešraketinė sistema nueina bent jau
20 metų.
Iš pradžių ji buvo sukurta kaip oro gynybos raketų
numušti priešo lėktuvus, pirmojo Persijos įlankos karo.
Kai, kad karas atėjo kartu, armija norėjo jį naudoti šaudyti
nustatantį Scuds, o ne lėktuvai.
Oro Irako pajėgų buvo ne tiek daug problemų, bet armija
buvo neramu apie Scuds.
Ir todėl jie bandė atnaujinti "Patriot".
Perimti priešas raketa keliaujant Mach 5 buvo ketinama
turi būti pakankamai sudėtinga.
Bet kai Patriot buvo nuvežta eksploatuoti, armija
nežino Irako pakeitimo, kuris padarė savo
Scuds beveik neįmanoma, kad pasiektų.
>> Kas atsitiko, kad buvo Scuds
ateina buvo nestabili.
Jie buvo Įtaka.
Dėl šios priežasties buvo irakiečių, siekiant gauti 600
kilometrų iš 300 kilometrų nuotolio raketų, paėmė
svoris iš priekinės galvutės ir
Kovinė lengvesni.
Taigi dabar "Patriot" bando ateiti į Skadi, ir dauguma
laiką, didžioji dauguma laiko, jis būtų
tiesiog skristi į Skadi.
Kai suprato Patriot "Patriot" sistemos operatoriai
praleidote savo tikslą, jie Patriot užtaisą susprogdino.
Norint išvengti galimų avarijų, jam buvo suteikta
patenka į žemę.
Tai, ką dauguma žmonių pamatė, kaip didelis ugnies danguje,
ir nesuprastas kaip Skadi galvučių atkarpų.
>> Nors, nakties danguje, patriotai pasirodė esąs
sėkmingai sunaikino Scuds Dhahran, gali būti ne
klaida dėl jo našumo.
Ten, patriotas radaras sistema prarado stebėti
įeinantis Skadi ir niekada pradėjo dėl
programinės įrangos trūkumas.
Tai buvo izraeliečiai, kurie pirmą kartą atrado, kad kuo ilgiau
sistema, tuo daugiau laiko neatitikimas tapo
dėl įdėta į kompiuterio sistemos laikrodį.
Apie prieš dvi savaites iki Dhahran, tragedija
Izraeliečių Gynybos departamentas pranešė, kad
sistema buvo prarasti laiko.
Po maždaug aštuonių valandų važiavimo, jie pastebėjo, kad
sistema tampa pastebimai mažiau tikslūs.
Gynybos departamentas atsakė sakau visi
"Patriot" baterijos nepalikite sistemas
ilgą laiką.
Jie niekada nepasakė, kas ilgą laiką buvo - 8 valandas, 10
val., 1000 val.
Niekas nežinojo.
>> Patriot "baterija dislokuota ne Dhahran kareivinės
ir jos trūkumų vidinis laikrodis buvo daugiau nei 100 valandų
naktį, vasario 25 d.
Jame stebimi laiko maždaug dešimtadalis sekundės dalį tikslumu.
Dabar dešimtadalis antros yra įdomus skaičius, nes
jis negali būti išreikštas dvejetainiu, tiksliai, o tai reiškia,
jis negali būti išreikštas tiksliai bet
modernus skaitmeninis kompiuteris.
Tai sunku patikėti.
Bet ir naudoti tai kaip pvz.
>> Paimkime numeris 1/3.
Trečdalis negali būti išreikštas dešimtaine, tiksliai.
Trečdalis 0,333 vyksta begalybės.
Nėra jokio būdo tai padaryti, kad absoliučiai dešimtosios tikslumu.
Kad yra būtent tos pačios rūšies problema, kad atsitiko
patriotas.
Ilgiau sistema bėgo, blogiau time error tapo.
Po 100 veikimo valandų, laiko paklaida buvo tik
apie trečdalis sekundės.
Tačiau nukreipti raketą, kelionės Mach 5
ji atsirado sekimo klaidos, daugiau nei 600 metrų.
Būtų lemtinga klaida ne Dhahran kariai.
>> Kas atsitiko, buvo aptikta Skadi pradėti išankstinio perspėjimo
palydovai ir jie žinojo, kad Skadi jų
bendrą kryptį.
Jie nežinojo, kur jis ėjo.
Tai buvo dabar iki radaro komponentą patriotas
sistema, gindamas Dhahran, rasti ir sekti.
gaunamus priešų raketų.
Radaras buvo labai protingas.
Jūs iš tiesų sekti Skadi poziciją ir tada
prognozuoti, kur ji tikriausiai būtų kitą kartą
radaras išsiuntė pulsą.
, Kuris buvo vadinamas intervalas vartai.
Tada, kai Patriot nusprendžia, pakankamai laiko praėjo eiti
atgal ir patikrinti kitą vietą Nustatytas
objektas, jis eina atgal.
Taigi, kai ji grįžo į neteisingą vietą, tada jis nemato jokio
prieštarauti, ir jis nusprendžia, kad joks objektas.
Tai buvo klaidinga aptikimo ir meta takelį.
>> Kadenciją Skadi dingo iš radaro ekrano.
Ir sekundes vėliau, jis pateko į tvirtovę. Skadi
žuvo 28 ir buvo atleistas metu naujausia
pirmojo Persijos įlankos karo.
Tragiškai, atnaujinta programinė įranga atvyko Dhahran
kitą dieną.
Ir programinės įrangos trūkumas buvo nustatytas, sudaro vieną skyrių,
neramus raketų "Patriot" istorija.
PATRIOT iš tiesų yra "etapais Array sekimo akronimas
Perimti TARGET. "
>> Viskas gerai, todėl daug daugiau smucić rezultatas ne visai
suprasti šį pasaulį.
Ir išsinešimui, tikrai, iš filmo, kad sprendimas
buvo perkrauti savo priešraketinės gynybos sistemą
kiekvienas, o vieną kartą.
Ir tokiu būdu vėlgi, vienas iš šio kurso tikslų, tikrai
daugiau Kuklus šių programų masto nei, yra
tikrai atvira visiems akis, lygiai taip, kaip jūs einate apie
gamybos mašinos daryti tai, ką norite juos daryti, ir kaip tu
apie tai, kad teisingai, o pakeliui daro
gerai, elegantiškai, ir kt.
Ir todėl šiandien, tegul neria į šiek tiek daugiau, bet
kad mes ne eiti per greitai, ypač tiems, kurie mažiau
patogus, bet ir todėl, kad mes galime išlaikyti susidomėjimą
tiems, patogiau, galime tik greitai prasideda šiek tiek
primenama apie tai, kai kurie iš šių idėjų.
Ir vėl, kreipkitės į toli, tiek asmeniškai, arba internetu, jei turite
klausimai, todėl mes galime išlaikyti visus į tą patį puslapį.
>> Taigi CS50 prietaisų, greitas žingsnis atgal,
tai, kas, savo žodžiais?
Viskas OK, jei jūs neturite idėjos, ką šie žodžiai gali būti dar.
[Nesigirdi]
Gerai, kad universali sąsaja -
kad mes visi galime pasidalinti.
Absoliučiai.
Taigi, mes galime, pavyzdžiui, pasakyti, eiti į kai
svetainėje, atsisiųsti šią programinę įrangą Mac OS.
Atsisiųsti šią programinę įrangą "Windows", konfigūruoti
tokiu būdu ir kad.
Tačiau tikrovė yra tokia, tada mes paleisti į be galo daug techninės
paramos klausimais.
, O taip pat šių dienų, daug kas daroma serverio pusėje,
skaičiavimo pasaulį, ypač, kai kalbama apie
interneto svetainių kūrimas ir interneto grindžiamas taikomąsias programas, yra iš tikrųjų
gana dažnai daroma UNIX ar Linux kompiuterių, o ne
MOK arba Windows PC.
>> Taigi tarp upsides, naudojant šį dalyką vadinamas
CS50 Appliance mes visi turime tą pačią aplinką.
Taigi kiekvienas tame pačiame puslapyje, nesvarbu, kokios aparatūros
atėjo į kampusie, bet taip pat bus žymėjimą tiksliai
pati aplinka, kad jūs naudojate link
semestro pabaiga, taip pat interneto svetainių kūrimas, taip pat
realaus pasaulio paraiškas jų ateitis.
Taigi, konkrečiau, CS50 Appliance nemokamai gabalas
programinė įranga, kuri leidžia jums paleisti kitą operacinę sistemą,
"Linux", šiuo atveju, savo kompiuteryje lange.
Dabar galite ne tik atsisiųsti prietaisą.
Jums reikia programos, su kuria žaisti arba paleisti prietaisą.
Ir kad programinė įranga paprastai vadinama
hypervisor.
Hypervisors būna produktų, pavyzdžiui, "VMware",
Virtuali langelis, paralelės.
Visi įmonių rūšių programinę įrangą, tiek nemokamų ir
komercinės, panašūs.
Tai, ką jūs matote problema Set 1 instrukcijos apie tai, kaip
gauti nemokamą programinę įrangą, su kuria
paleisti CS50 Appliance.
Ir kai jūs darote, jūs turite, dėl jūsų Mac arba PC lango
darbastalio aplinka, kuri atrodo labai patiko tai, kur
ji turi Start meniu, pavyzdžiui, dalykas
apatiniame kairiajame kampe.
Ji turi namų katalogą, ar namų katalogą, viršuje kairėje
ten, šiukšliadėžės ir kt.
Taigi, mes erzinti išskyrus reikalingus duomenis, kaip mes einame.
>> Bet dabar pradėkime pasinerti į C.
Taigi C tai programavimo kalba, panaši dvasia
Nulio, bet kur kas mažiau grafinis, tačiau ironiškai, toli
daugiau galingas, kai jūs gaunate išminties su juo.
Taigi C, mes rašome programas raštu šaltinio kodą, kuris yra
tai anglų kaip sintaksė, panašūs į kojines
įrodyta, jog darė paskutinį kartą, kuri leidžia jums
gana tiksliai išreikšti save, jei
arcanely prie kompiuterio.
>> Taigi, kokios gaminio programinės įrangos ar jūs iš tikrųjų reikia
rašyti programas kaip C kalba, remiantis mūsų
pokalbis pirmadienį?
[Nesigirdi]
Gerai, jums tiesiog reikia teksto redaktoriumi.
Jums nereikia jokios specialios programinės įrangos
per se rašyti programas.
Jums reikia tik teksto redaktorių, pavyzdžiui, Notepad "," Windows ",
TextEdit "Mac", ar kažkas, vadinamas gedit, pasaulyje
"Linux", kuriuos mes naudojame čia.
Ir štai, rašyti programas.
>> Tačiau rašyti tik pusė lygtis.
Tada reikia paleisti juos.
Tačiau, norint paleisti programas
negalima paleisti kodą.
Jums, o turi daryti tai, ką pirmiausia ją?
Taip.
David J. Malan: Jūs turite
kaupia jį.
, O kažkas kitas, sudarant šaltinio kodą -
[Nesigirdi]
David J. Malan: Būtent.
Verčiant nulių ir.
Kadangi mums visiems, šių dienų, kompiuterius, kurie CPU,
beveik visi, kurie pagaminti kompanijos "Intel" ir
Intel Inside, reiškia, kad ši smegenų viduje savo
kompiuteris, vadinamas procesoriaus.
Ir vienas iš dalykų, kad smegenys yra, jis žino,
kaip suprasti nulių ir modelius.
Ji žino, kas bitų modelis atstovauja to, ką
modelis atstovauja atimti, kas modelis
bitai sukuriama spausdinimo, ir sukurti girdimą garsą.
>> Taigi trumpai tariant, CPU, kartu su operacine sistema,
kuris yra programinė įranga, kuri veikia ant procesoriaus,
taip sakant.
Kartu šie du gabalai žinoti, kaip paleisti programas, kurios
mes, žmonės, rašyti.
>> Taigi, jei aš einu į CS50 Appliance čia, man reikia atidaryti
iki teksto redaktoriumi ir aš galiu gauti prieigą
keletas būdų.
Galiu arba eikite į Meniu, programavimas,
ir tada aš galiu pasirinkti -
Ne, ne tai, kad meniu.
Aš galiu eiti Reikmenys / gedit čia, norėdami atidaryti
mano mažai teksto redaktoriumi.
Arba paprasčiau tariant, aš galiu spustelėkite šį mažą piktogramą apačioje
kairiajame kampe.
Ir dabar man šią aplinką.
Tai gana primena paprastą teksto redaktorių, tik su
vienas ar du skirtumai.
Viršuje, kur blyksi mirksi, tai kur
Aš galiu pradėti rašyti savo kodą.
Apačioje yra šis dalykas, vadinamas terminalo langą.
Ir kokių rūšių dalykų, aš galiu daryti tai
taip vadinamas terminalo langą?
[Nesigirdi]
>> Gerai, kad aš paleisti komandas.
Ir kai komandų, nubėgome pirmadienį buvo šiek tiek
paslaptingas per pirmąjį, bet LS sąraše, cd pakeisti katalogą,
rm, pašalinti.
Taigi, tai tarsi senosios mokyklos kaip naršyti jūsų
kompiuteris, naudojant tik savo klaviatūrą ir tekstinius komandas,
o ne, paprastai, naudotis pele.
Bet mes pamatysime, prieš ilgas, tai iš tiesų suteikia mums
šiek tiek daugiau galios ir šiek tiek daugiau tikslumo, su kuria
išreikšti save.
Ir tada per čia kairėje, mes tiesiog ketiname pamatyti,
kaip mes pradėti rašymo programinės įrangos, šiek tiek santraukos
programa, kad mes parašyta viršutiniame kairiajame kampe.
Tačiau mes matome, kad vėl netrukus.
>> Taigi, darykime kažką gana paprastas.
Leiskite man pirmiausia eiti į priekį ir eiti į failą, išsaugokite, ir aš tiesiog
spustelėkite čia jharvard, per ne į kairę, ir
jharvard, vėlgi, mano namų katalogą pavadinimas, mano
asmeniniai failai, ME, dabar yra John Harvard, kaip jums visiems
netrukus bus Jonas Harvardo šioje aplinkoje.
Jis gavo šią namų katalogą, Mano dokumentai ir tt,
, kad noriu išsaugoti, dabar, šį failą in
Todėl aš jį vadinti hello.c. Tada aš ruošiuosi eiti
į priekį ir spustelėkite Įrašyti ir dabar, ką aš turiu čia yra skirtukas
hello.c, tiek daug, kaip kito tipo redaktorius.
>> Taigi dabar leiskite man eiti į priekį ir pradėti rašyti programą.
int main (void).
Ir tada aš tiesiog darė paskutinį kartą printf, spausdinimo suformatuotas,
("Sveikas, pasauli!"
);.
Beveik baigtas.
Bet aš trūkstamų detalių pora.
Tai, ko trūksta, kad man tikrai reikia šios programos
iš tikrųjų sudaryti?
Taip.
[Nesigirdi?
>> David J. Malan: Taip, todėl man reikia įtraukti standartą
I / O lib.
Taigi, tai turi eiti virš pagrindinis, todėl aš tiesiog ketinate
padaryti šiek tiek už jį kambaryje yra.
Ir aš ruošiuosi tai padaryti # include .
Ir pastebėsite kampu laikiklius.
Ir kaip panaikinti, gedit yra šiek tiek patogi, jei
kartais šiek tiek painu, nes ji stengiasi padėti jūsų
akys pastebėti, ką linijos su tuo, ką.
Taigi tai, kad mano žymeklį šalia tai kampu
laikiklis, pastebėti, kaip tai išryškinant kita kampu
laikiklis plius tai vienas.
Ir tai tik atkreipti savo dėmesį į tai, kad aš
turi simetrija.
Ir simetrija programavimo paprastai yra geras dalykas.
Be to, jei aš perkelti savo žymeklį iki galo, pastebėsite, kaip
garbanotieji petnešų linija parodyti, kad taip, aš turiu atvirą
ir vieno uždaro, taip sakant.
>> Viskas gerai, ir aš galiu padaryti vieną dalyką.
Tai nėra būtina, bet gera praktika, pasakyti
return 0.
Ir return 0 ką daro mums čia?
Ar reiškia ką?
[Nesigirdi]
David J. Malan: Bet niekas negerai.
Ir atvirai tai sunku daug suklysti
programoje Šis trumpas.
Taigi, aš tiesiog yra super aiškiai, kad viskas yra gerai.
Aš, žmogaus, kai aš paleisti šią programą, tikriausiai niekada
matyti, kad 0.
Apskritai, tie skaičiai yra grąžinamos iš pagrindinių
tik auginti galvas žmonėms, kai
kažkas negerai.
Ir jūs gaunate šiek tiek pop-up sistemos klaida sakydamas, vienas,
dviejų, trijų, ar kokia jo numeris buvo, kad
buvo faktiškai grąžinama.
Taigi dar ką nors negerai?
[Nesigirdi]
>> David J. Malan: Taigi tai yra ne tiek funkcinis klaida
bet estetinis.
Aš tikriausiai turėtų pateikti naujos eilutės simboliai
šios eilutės pabaigą, kad mes iš tikrųjų perkelti žymeklį į
kitą eilutę, ir programa tiesiog atrodo šiek tiek gražiau.
>> Taigi dabar leiskite man eiti į mano terminalo lange
ir priartinimo atgal in
Ir tai čia, tai vadinama eilutę.
Tai tiesiog primena man, kas aš esu, jharvard @ prietaisą, jei
prietaisas kompiuterio, aš tikiu, pavadinimas.
Skliaustuose tai Tilde, squiggle simbolis
yra kas?
Auditorija: Pagrindinis katalogas.
David J. Malan: Pagrindinis katalogas.
Taigi, tai tik trumpa supratimą ir pasakyti, kad esate
savo asmeninį aplanką, kur visus failus eiti pagal nutylėjimą.
Taigi dabar, čia, galiu tipas Lt sąrašą.
Ir vienintelis dalykas, aš matau čia šiuo metu yra hello.c.
Ir tai gerai, nes aš tiesiog tai parašiau.
>> Taigi leiskite man eiti į priekį ir padaryti pagal Apie.
Ir pastebėsite, aš ne rašyti, kad hello.c.
Vietoj to, aš tik rašyti bazės failo vardas, labas.
Ir padaryti, kaip matėme, pirmadienį, tiesiog daryti išvadą, kad aš noriu
c failas.
Taigi, dabar aš įvedėte padaryti Apie.
Dabar aš matau šį gana ilgą komandą ir toliau
matyti vėl ir vėl.
, Tačiau turi būti aišku, Apsukite metalinis garsas, žodis, kad tik pasirodė,
tai tikrasis kompiliatorius.
Padaryti, yra tiesiog Utility.
Tai tik patogi programa, kuri taupo man,
ilgalaikėje perspektyvoje, įvesti iš neįtikėtinai varginantis ilgas
komandos, pavyzdžiui, kad vienas.
, Kad galėtumėte rankiniu būdu paleisti Apsukite metalinis garsas.
Galite įrašyti, kad rankiniu būdu.
Tiesiog tampa labai nuobodus.
Ir todėl, kad yra tik programa, kuri supaprastina mūsų gyvenimus ir
veikia daugiau sudėtingų komandas mums.
>> Viskas gerai, taip ir dabar, kas tai per failas turėtų Turiu
mano dabartinis katalogą?
Ne tik hello.c, bet taip pat hello.
Taigi, jei aš noriu paleisti Apie priminti, kad aš sakau dot velniop,
kur dot reiškia eiti į dabartiniame aplanke, kur jums
yra, ir paleiskite programą, pavadintą Apie ir iš tiesų, dabar,
Turiu Hello World.
Viskas gerai, bet dėl ​​darbo eigos klausimų ar sintaksė
ką mes ką tik padarė?
>> Viskas gerai, todėl galime imtis dalykų vienu žingsniu vėl.
Taigi tai buvo underwhelming tiesiog parašyti programą, kad tik
niekada nėra teigęs, Hello, world.
Taigi, mes jį pakeitėte, pirmadienį, pasakyti,, labas, Davidas.
Tai šiek tiek labiau asmeniški, bet lygiai taip pat sunku koduojami
pirmoji versija.
Taigi, ne visi, kad įtikinamos.
Bet egzistuoja, C, funkcijas tikrai be
spausdinti, funkcijos, kad jums gauti vartotojo įvesties.
Ir taip, kaip mes tai padarė, kitą dieną, buvo taip.
Prieš faktiškai spausdinti ką nors, aš pirmą kartą gavo
kažkas iš vartotojo.
Taigi, leiskite man tai padaryti ir vėl.
>> Styginių s, kur s yra tiesiog savavališkai vardas, čia,
eilutę, lygus GetString.
Taigi, tai, kas buvo GetString?
Tai akivaizdžiai gauna eilutę, ant jos pavadinimo.
Bet kas tai yra, daugiau techniškai?
Tai funkcija.
Taigi tai yra funkcija, kad nėra ateis su C per se.
CS50 darbuotojai parašė.
Ir taip naudoti, galite ne tik apima stdio.h
Jūs taip pat reikia įtraukti ką?
Taip.
Taigi cs50.h, kuri yra tik failas rašėme prieš keletą metų.
Mes įdiegti ją už jus prietaiso kartu su
visi standartinių failų.
Ir taip, šių klasėje pirmąsias kelias savaites, mes naudosime
tai tik supaprastinti tai labai paprastas procesas
dalykų, pavyzdžiui, gauti vartotojo įvesties.
Nes, kaip matysime po kelių savaičių, gauti naudotojo įvesties
kalbos kaip C yra iš tikrųjų stebėtinai sudėtingas,
ypač todėl, kad jūs neturite žinoti iš anksto, paprastai, kaip
daug dalykų vartotojas ketina įvesti in
Ir, kai jūs nežinote, kiek duomenų galima tikėtis, kad neturi
žinoti, kiek atminties skirti.
Ir, jei jūs iš tikrųjų turi rungtyniškumo vartotojas, kuris bando
nulaužti į savo sistemą, avarijos kompiuterio, gerai,
paprastai yra pirmoji atakos metodas, kaip aš
Pirmadienis, įveskite visą ilgą seką atsitiktinių simbolių,
paspauskite "Enter", ir pamatyti, kas sugenda.
Nes paprastai, jei programa, pertraukų, kad užuominų į
saugumo spraga, gali.
Jis tikrai patarimų į tave, programuotojas, atlikusi
klaida, bet dar pavojingiau, galbūt padarė
su saugumu susijusios klaida, ir paprastai mes matome, kad
mašinos yra pavojus, kad šios dienos,
internete ir programų pasaulyje
komandinės eilutės, kaip šis.
>> Gerai.
Taigi eilutė ai, lygus GetString.
Taigi konkrečiau dabar, ką linija 6 padaryti čia?
Taigi dešinėje funkcija gauna eilutę,
trunka kiek argumentai?
Gerai.
Todėl nė vienas.
Mažai normalumas patikrinti.
Argumentas, vėlgi, yra tiesiog įvesties funkcijos pakeisti
numatytoji elgsena tam tikru būdu.
Tačiau šiuo atveju, aš nenoriu keisti
kad GetString elgesys.
Aš tik norėjau eilutę.
Taigi, aš įdėti nieko skliausteliuose, ir tada aš įdėti
kabliataškis demarking eilutės kodo pabaiga.
Dabar lygybės ženklą nereiškia, lygūs, per se.
Tai reiškia, kad užduotį, o tai reiškia, įrašyti bet kokį gauna
išvedamas dešinėje viduje kokia yra kairėje.
>> Taigi kairėje pusėje, mes sakome, kad pareiškė,
eilutė vadinama.
O tiksliau, mes skirta atminties viduje
mes įdėti bitai, kuris atstovauja seką
simbolių.
Tačiau šiandien, skyrėme
arba paskelbtas eilutę.
Gerai.
Taigi dabar, kai aš padariau tai, aš noriu prijungti vertės
s, o ne Dovydo vertę.
Taigi tai yra negerai, kodėl?
Kad tai tik tiesiog kietai "įsiūtos S.
Tai pasakyti "labas, ai", kuris yra ne ką aš noriu.
Taigi aš galiu tai padaryti.
Procento ženklas yra vietos rezervavimo ženklas, bet dabar man reikia
patenka į išspausdinti antrąjį argumentą.
Prisiminkite, kad argumentai funkcijų atskiriami
kablelių, todėl kitą kablelis čia aš po to raidė s.
Ir šiame kontekste dabar, ai yra kintamasis, o printf,
gavęs šiuos du įėjimai -
iš dešinės į kairę ir Kintamojo pavadinimas ai eilutė -
ji bus prijungti pastarajai į buvęs mums, ir
tiesiog atsispausdinti gražią gražią eilutę, kurioje
kokia ji yra, mes įvedėte in
>> Taigi, pabandykime tai.
Ketinate eiti į priekį ir nutolinti, nugaros
mano terminalo lange.
Padidinti apačioje.
Iš naujo įvesti padaryti Apie.
Apsukite metalinis garsas, atrodo, buvo pakartotas.
Aš ruošiuosi rašyti. / Hello, Įveskite.
Niekas, atrodo, vyksta dar, bet tai ne tai greitai
kad aš galiu įvesti kažką panašaus į Nate, Enter, ir dabar mes turime
Sveiki, Nate.
Ir aš galiu padaryti jį dar kartą su Rob ir kt.
Taigi tikiuosi, dabar ši programa elgiasi, kaip ketinu.
>> Dabar, o ne visi, kad patogi.
Aš ne idėja, kas buvo tikėtis iš manęs.
Taigi, mes tikrai gali išvalyti iki šiek tiek.
Leiskite man grįžti čia, o ne tik nardymas ir
paprašyti, kad naudotojas eilutę, leiskite man aiškiai pasakyti
vartotojo, ką aš tikėjosi.
Taigi printf ("Įveskite eilutę:"
);
Taigi čia nėra kintamieji.
Nėra proc ženklai.
Tiesiog paprastas anglų frazė.
Leiskite man eiti į apačią ir iš naujo paleisti savo programą.
Bet niekas, atrodo, pasikeitė.
Kodėl?
Turiu perkompiliuoti jį.
Taip paprasta klaida padaryti.
Bet jūs turite ne tik išsaugoti failą, bet
perkompiliuoti programą.
Ir todėl, jei aš iš naujo paleisti hello, dabar Apsukite metalinis garsas veikia.
Dabar galiu paleisti. / Hello. Ir dabar matau "Įveskite eilutę:".
Gerai.
Dabar ji šiek tiek patogesnis.
Nate, Enter, hello, Nate.
>> Na, pabandykime šį kartą ir pradėti galvoti
kampe atvejais.
Taigi tiesiog kaip nulio, jūs skatinami arba
skatinamas spec rūšies galvoti apie tai, kas gali eiti
neteisinga, jei jūs neturite numatyti viską, vartotojas gali padaryti.
Klaidas, todėl gali atsirasti.
Taigi įveskite eilutę -
kas kampas atveju?
Kas yra scenarijus, kad aš, programuotojas, gali neturėti
tikimasi?
Taip.
Gerai.
Taigi ką daryti, jei aš tipo kaip šis?
Gerai.
Taigi, ji vis dar veikia.
Gramatically neturi prasmės.
Bet bent jau programa veikia.
>> Kas kito kampo atveju?
Kažkas, aš nesitikėjau.
Taip?
Gerai.
Taigi, mes galime padaryti kažką panašaus tikrai, tikrai didelis skaičius.
Taigi, galime padaryti čia.
Leiskite man nutolinti per sekundę, leiskite man pabrėžti.
Ar ne kopijuoti ir įklijuoti žemyn čia.
Gerai.
Taigi aš negaliu nukopijuokite ir įklijuokite šio terminalo lange, todėl mes
tiesiog imituoti jį.
Leiskite man nutolinti, wrap.
Aš ne ketinate daryti tai per ilgai, nes jis nebus
pertraukos šią programą.
, Bet jis gali.
Įveskite.
Bet ji to nepadarė.
Gerai.
Bet tai tikras kampas atvejis.
Ir vienintelė priežastis, kad elgiasi teisingai, todėl
kalbėti, nes CS50 funkcija GetString yra iš tikrųjų
sukurta po gaubtu, kaip matysime po kelių savaičių,
automatiškai suteikia vis daugiau ir daugiau RAM, vis daugiau ir daugiau
atmintį, operacinės sistemos, kai ji supranta, wow,
jūs tikrai įvedėte kažką gana ilgai.
Dabar, tai yra šiek tiek balto melas.
Jei mes iš tikrųjų gana ilgai patylėjo ir aš įvedėte
kažkas panašaus į 5 mlrd. simbolių klaviatūros
čia, ar tikrai nukentėjo copy-paste gana nemažai, mes turbūt
gali sukelti programos užbaigimas.
Tik šiek tiek sunkiau imituoti, kad su galutiniais
laiko.
>> Tai, kas kito kampo atveju mes galėtume pabandyti?
Taip?
Taip.
Tad kodėl gi ne mes atsakysime nieko?
Taigi, mes iš tikrųjų turime imtis tam tikrų veiksmų, nes kitaip
programa ketina sėdėti ten mirksi visą dieną.
Bet jei aš tiesiog paspauskite "Enter" -
Gerai, dabar, vis dar atrodo negerai.
Ar ne avarijos, bet gal ten dabar atsirado galimybė
pradėti įgyvendinti griežtesnę programą
kad tikrintų.
O jei tokią eilutę, sakinys, žodis, kurį
įvestas ILGIS 0, gerai, gal man reikia klykauti
vartotojui, arba pasakykite jam ar jai dar kartą įvesti eilutę, kad
mes iš tikrųjų gauti tai, ko atrodo teisingą elgesį, o ne
tik baigtas mano pusės priežiūrą.
>> Klausimas atgal?
Dešimtainis skaičius.
Taigi, mes galime pabandyti, kad per daug.
1,10000005.
Atrodo, kad vyksta tik iš tikrųjų gerai dirbti.
Ir kad iš tikrųjų yra tikimasi.
, Nors mes gali įvedėte šis skaičius ten, arba
didesnis skaičius anksčiau, suprantame, kad kai mes rašyti vartotoją
įvesties ir mes naudojame GetString funkciją, nėra
nesvarbu, ar kas wpisuję atrodo numerį.
Primintina, kad pagal ASCII, viskas Jūsų
klaviatūra turi skaitinę vertę, kuri gali būti susietas su
personažas, char.
Taigi šiuo atveju, nors aš galėtų įvesti skaičių,
kompiuteris vyksta galvoti apie tai, taip sakant, kaip eilutę -
kažkas, kad atrodo kaip skaičių, bet
faktiškai nėra skaičius.
Bet tai iš tiesų puikus Segue, nes dabar mes galime
iš tikrųjų perėjimas prie rašymo programų, kad
naudoti kitus duomenų tipus.
>> Taigi, be to, naudojant simbolių, arba, o, be to, naudojant styginiams,
suprantame, kad turime taip pat kitų duomenų tipai C
kitų kalbų.
Char, kaip rodo pavadinimas, yra tik vienas simbolis.
Plūdė yra slankaus kablelio reikšmė, ir tai tik išgalvotas
būdas pasakyti, realus skaičius - kažkas, kad turi dešimtainį kablelį
su kai kurių skaičių į kairę ir / ar taškas.
Int yra sveikasis skaičius, kuris yra tik kaip 123 numeris.
Ir dabar dar įdomiau yra dalykų, pavyzdžiui, dvigubai.
Ką mes sakome, du kartus buvo paskutinį kartą?
64, teisus.
Taigi kadangi paprastai plūdė yra 32-bitų
todėl ši ilgai atmintyje, jis naudoja 32 nulių ir
atstovauja vertybes - dukart yra tiesiog du kartus, kad
reiškia, kad jums gali atstovauti didesnius numerius arba
galite atstovauti tikslesnius skaičius.
Todėl jūs galite turėti daugiau numerių po kablelio, bet
kolegos sakė, vaizdo, net ką nors paprasto,
konceptualiai kaip 1/3 negali būti atstovaujama būtent
kompiuteris, nes galų gale paleisti bitų ir
todėl jūs galite padaryti tik .33333333 tiek daug kartų,
tada jums tereikia pasakyti, aš iš atstovavimo
erdvė, turiu tiesiog vadina jį dieną ir jam atstovauja
šiek tiek netiksliai tai patinka.
Ir ilgai ilgai
kvailas pavadinimas, bet tai todėl, kad yra duomenų tipas, žinomas kaip
ilgai C, kuris atsitiktinai dažnai yra 32 bitų, kaip
Žiniasklaida yra 32 bitų, bet ilgai ilgai
paprastai 64 bitai.
Taigi, tai tiesiog reiškia, kad gali atstovauti didesnis
numeriai, nei šis.
>> Gerai.
Taigi, jei mes iš tikrųjų nori pradėti atstovaujanti dalykų, mes
gali prireikti daugiau sudėtingų tipai ir
Štai kodėl mes turime eilutę.
Taigi CS50 bibliotekoje, kad failas, kuris vadinamas cs50.h, mes
tikrųjų deklaravo duomenų tipas, taip sakant, vadinamas eilutė,
bet eilutėje nėra iš tikrųjų egzistuoja.
Tai, vėlgi, vienas iš šių sluoksnių mes žievelės
atgal į savaitę ar dvi ir jį išmeskite, ir faktiškai
po gaubtu eilutė iš tikrųjų yra, ir
kaip ji atstovavo.
Mes taip pat ketiname pažvelgti į Būlio vertybių.
>> Taigi, kas buvo braižymuisi bool?
Jis yra true arba false.
Taigi, tai tik vertė, tai yra true arba false, įjungti arba išjungti, 1 arba
0, tačiau norite matyti pasaulį.
Taigi C dėka su CS50 bibliotekoje, o tai savo ruožtu
kitą po gaubtu biblioteką, mes turime
prieigą prie duomenų tipo, tai vadinama bool, kuris bus
tiesiog leidžia mums priskirti reikšmės true arba false
dalykų programos.
>> Taigi eikime į priekį čia ir rašyti maža programa, kuri
ar kažką dalyvauja numerius vietoj.
Taigi leiskite man grįžti į CS50 Appliance, leisk man eiti į priekį ir
sukurti naują failą čia vadinama -
tegul tiesiog pasakyti, ką nors paprasto, pavyzdžiui, math.c.
Gerai.
Ir dabar eiti į mano programos viršuje, aš
ketinate daryti įprasta -
# Include , kad aš galiu naudoti
printf int main (void) -
mes grįžti, galų gale, kas int tai
čia kas negalioja čia reiškia, bet dabar, tiesiog žinoti, kad
jūs turite pradėti panašiose programose.
Dabar aš ruošiuosi eiti į priekį ir pasakyti kažką šiek tiek
skirtingi - printf ("Duok man numerį:"
);.
Tada aš ruošiuosi daryti int n = GetInt, nes ji
GetInt Pasirodo, yra dar vienas CS50 bibliotekos funkcija
be GetString.
Ir dabar aš ruošiuosi padaryti kažką kvaila, kaip "dėka
% d, "dešimtainis sveikasis skaičius, ir tada kableliais n
tada grįžti 0.
Taigi dar kartą, grįžti 0 neturi nieko daryti su numeriu, aš tikiu,
klausia vartotojui.
Tiesiog reiškia, pabaigoje, kad visi, matyt, yra gerai.
>> Taigi leiskite man eiti į mano terminalo lange čia.
Leiskite man įvesti padaryti matematikos, įveskite.
Ir kažkas negerai.
Padaryti matematikos didnt darbą.
Štai pirmasis mūsų klaidų pranešimų.
Kodėl?
Šiek tiek paslaptingas, tačiau -
Taip.
Taigi cs50.h.
Taigi dar kartą, ypač anksti, jums parašyti savo
skyriuose, darbo valandomis programa pset 1 ir
atvirai, tai bus itin svarūs kartais tai, kas šie dalykai
iš tikrųjų sako.
Bet jūs suprasite, labai greitai jie pradeda kristi
į grupes, kai tai vienas tai reiškia, kad jūs jau palikote vienas
# failo viršuje.
Apsukite metalinis garsas, kompiliatorių, informuoti Jus apie tai
sakydamas gana Fantazyjnie, numanomas deklaracija
funkcija GetInt yra neteisinga.
>> Gerai.
Taigi, ką tai reiškia?
Tai tiesiog reiškia, kad jūs netiesiogiai pareiškė GetInt,
ta prasme, kad jums dar nėra aiškiai pripažino.
Aiškiai paskelbti int, jūs turite mokyti
Apsukite metalinis garsas, kad jis egzistuoja.
Ir labai paprastas sprendimas, kad yra išmokyti jį
įskaitant šio kitas failas, cs50.h ne
savo failo viršuje.
Nes pažodžiui, # include jis pasakoja Apsukite metalinis garsas
gana daug eiti rasti failą pavadinimu cs50.h, kopijuoti,
automatiškai įklijuokite jį už mane, į mano programa viršuje
ir tada konvertuoti šaltinio kodą, kad nulių ir.
Bet tai, be abejo, būti labai varginantis, jei mes, žmonės,
eiti kopijuoti ir įklijuoti šiuos didelius failus visą laiką,
# include tiesiog daro viską, kas automatiškai be
savo kodą muddying kažkieno bibliotekoje.
Ir biblioteka yra tik vienas failas, kuriame yra funkcijos ir
kitų dalykų, kad kažkas parašė, kad mes esame
įtakos mūsų pačių labui.
>> Gerai.
Pabandykime dar kartą.
Padaryti matematikos.
Įveskite.
Geras.
Taip, kad atrodo, kad dirbo.
Taigi, leiskite man dabar paleisti matematikos / matematikos.
Įveskite man suteikia numerį, 123.
Ačiū, taikant 123.
Dabar pabandykime kito kampo bylą.
Eilutė yra gana turtinga, nes
eilutė gali būti bet kas.
Gali atrodyti skaičių, atrodo
simbolių, atrodyti žodžiais.
Tačiau int int.
Taigi dabar, jei aš esu sunku, ir jis sako: "Duok man
skaičius, "kas, jei aš pabandyti padaryti kažką panašaus 0,1?
Na, tai skaičius, ir tai suderinta su
gramatikos aš čia, bet po gaubtu, aš tikiu,
kursas naudojant funkciją GetInt.
>> Taigi pažiūrėkime, kas atsitinka.
Įveskite, bandykite dar kartą.
Gerai.
Leiskite man būti sunku ir tiesiog paspauskite "Enter" dar kartą.
"Enter", "Enter".
Taigi, dabar atrodo kad GetInt yra šiek tiek daugiau
galingas nei GetString.
Mes, darbuotojai, įgyvendinama taip, kad, jei pastebėsime
turite ne mums davė int - Žiniasklaida yra dešimtainis skaičius
, kurių sudėtyje yra nulinės, kas du, tris, ketvertus, penketus, šešias,
sevens, aštuonios ar devynetai.
Ir viskas.
Skaitmenų po kablelio nėra, jokių ženklų, ne skyrybos.
Atrodo, kad mes turime bendradarbiauti.
Taigi, leiskite man pabandyti keturi, penki, šeši, ir, kad jis pasireiškia mane per.
Taigi tikrai, analinis čia, aš tikriausiai turėtų pasakyti: "Duok man
sveikasis skaičius "siekiant perteikti naudotojui
tai, ką ketinu.
>> Dabar pagalvokime apie po gaubtu.
Mes neketiname pažvelgti kaip cs50.h šiandien yra įgyvendinama,
biblioteka.
Bet jei ji išlaiko sakydamas: retry, bandykite dar kartą, bandykite dar kartą, kokia programavimo
statyti aš tikriausiai naudoti po gaubtu
įgyvendinti, kad?
Taigi tiesiog kilpa, tiesa?
Vienas iš paprasčiausių idėjų, kad mes matėme ant nulio.
Visada statyti, pakartojimo statyti.
Matyt, šioje programoje, po gaubtu, net
nors tai parašyta C ir ne nulio, ji tai daro
kažkas vadinamas atitinka amžinai, jei vartotojas neturi
įvestas sveikasis skaičius, tarkim pabandyti dar kartą, pabandyti dar kartą, pabandyti dar kartą, bandykite dar kartą, todėl
galiausiai, kai mes darome gauti sveikąjį skaičių, tada jūs
ištrūkti iš tos linijos.
>> Taigi, ką kiti funkcijos mes galime naudoti čia CS50 bibliotekos?
Na, akivaizdžių rūšies, bent jau remiantis
duomenų tipai, kad dabar mes žinome, egzistuoti.
Mes įdiegėme GetString, GetInt, bet ir visame
pirmųjų savaičių termino, taip pat galite naudoti GetFloat ir
Siekiant gauti būtent GetDouble ir GetLongLong
duomenų tipai, kuriuos norite.
Nes čia pagrindinė detalė yra tai, kad, skirtingai nuo kai kurių kalbų,
kaip Python ir Ruby, kur nebūtinai turi
deklaruoti kintamojo duomenų tipą -
jūs neturite pasakyti kompiuterio, kokios rūšies daiktų
jūs ketinate įdėti į kintamasis -
C, jūs turite būti vis tiek tikslūs.
Taigi, jei norite, kad kintamasis vadinamas n, saugojimo riekė
kad šiuo atveju būna, kad 32 bitų pagal susitarimą
pasakyti kompiuterio, kad šitie bitai
ketinate laikyti numerį -
ne personažas, ne eilutę, o ne plūdė.
Ir tai išsprendžia problemą, mes efektyviai
įvažiavo į praeitą savaitę.
Jei mes naudojame nulių ir numerius sudaro ne tik
numerius, bet ir pusryčių ir Cs, kaip pasaulyje yra
kompiuteris einate žinoti, kad faktiškai ši bitų modelis
sudaro skaičių 65, o ne atstovaujančių
laiškas, kuris atsitiktinai, pagal
ASCII, prisimenu, buvo lygiavertis iki 65?
>> Taigi šie duomenų tipai pateikti kontekstą prie kompiuterio, todėl
kad jis žino, jei šitie bitai turėtų būti aiškinamas kaip
int arba kaip eilutę.
Bet kokių klausimų, tada apie tai?
Taip?
David J. Malan: Geras klausimas.
Jeigu mes priimsime stdio.h, išsaugokite failą
leiskite man eiti į terminalo langą ir paleisti padaryti matematikos, zoom
, ir įveskite
dabar gaunu kitą klaidą, nes aš netiesiogiai
nurodant, kokią funkciją dabar?
Printf.
Taigi dabar aš sukūriau naują problemą, kurios sprendimas yra
esmės tas pats.
Man reikia įdėti, kad atgal.
Auditorija: [nesigirdi]
David J. Malan: oh.
Taigi, jei aš -
Gerai, yeah.
Taigi, jei aš pašalinti standartinis I / O lib įtraukimą
čia, ir tada jūs sakote, jei aš gauti atsikratyti printf gauti
atsikratyti printf?
Taip.
Tai turėtų dirbti, nes aš jau ne naudojant bet kurį šūksniais.
Aš tiesiog guli?
O, gerai.
Tai neveiks, nes nauja klaida, mes ką tik pristatė.
Ir šis yra šiek tiek daugiau, savaime suprantama.
>> Kokia tai problema?
Nepanaudoti kintamųjų n.
Taigi ši klaida yra mūsų sukonfigūruota rezultatas
prietaisas būti itin pedantiškas, tikrai klykauti
jums visų galimų klaidą, net jei tai tipo
nemirtinas klaida kaip šis - tai tikrai toks didelis
spręsti, kad aš paskirtas int, įdėti numerį jame, ir tada
tiesiog nieko nedarė su juo?
Iki funkciškai, Nr.
Kad nesiruošia nutraukti programą.
Tai tiesiog rūšies kvaila, tiesa?
Yra ne vertė paprašė šio skaičiaus saugomi
į kintamąjį, jei jūs niekada nieko daryti,
su juo, ar spausdinti arba išsaugokite jį.
Taigi, šiuo atveju, Apsukite metalinis garsas pripažindamas, kiek ir
jis sako nepanaudotų kintamųjų n.
>> Taigi, mes galime išspręsti šią problemą, jei mes tikrai norime.
Bet vėl, tai yra gera programavimo dabar.
, Kad galėčiau tiesiog tai padaryti -
eiti čia, leiskite man išvalyti ekraną, kad matematikos.
, Kuri veikia.
Dabar galiu paleisti mano matematikos programą, mano indėlį
gerai, kad buvo blogai.
Mano būdu ir tai yra viskas, ji šiuo atveju.
>> Taigi faktiškai, pabandykime vieną kitą kampe bylą, kad mes
negalvojo anksčiau.
Šiuo atveju - čia, galime grįžti į vienas, kad
šiek tiek patogesnis.
Leiskite man grįžti čia ir paleisti vėl padaryti matematikos.
Oi, ką aš padariau ne taip?
Turite įvirsta toliau.
Gerai.
Dabar mes grįžome į pradinę būseną, kai visi
tikiuosi gerai.
Ir dabar, jei aš paleisti matematikos, 123 atrodo į darbą.
Bet tai nėra tikrai veiksminga įrodymas, tiesiog pasakyti,
Gerai, kad veikia.
789, kuris veikia.
Laikas pateikti.
Nes ten kiti kampiniai atvejai čia.
Eilutė nebuvo tikrai suteiks mums daug problemų rašyti
visai daug simbolių.
Bet kas, jei aš tipo?
Paspaudus skaitmeniu "1" visai daug, čia visai daug
viskas gerai, tai gauti šiek tiek nuobodu, todėl aš ruošiuosi
čia sustoti, ir aš ruošiuosi, paspauskite Enter.
>> Ką, po velnių nutiko?
Taigi, tai iš tiesų gali būti paaiškinta.
Taigi, ji kaip dvejetainis?
Gera mintis, bet ne, tai ne tai, kad ji paėmė jį
kaip dvejetainis, nes iš tiesų, tai buvo tiesiog rūšies
atsitiktinumas.
Mes galime tai padaryti dar kartą.
Taigi čia binarinės sistemos 2 ne, tai
tikriausiai pakankamai vistiek.
Įveskite.
Taigi, tai buvo ne problema.
Ką dar?
Tiksliai.
>> Taigi, prisiminkite, kas iš tikrųjų yra int.
Tai 32 bitų, kurie bendrai yra interpretuojami
kaip skaičius.
Jei turite 32 bitus, tai reiškia, kad kiekvienas bitai gali būti
0 arba 1, 0 arba 1.
Taigi, tai reiškia, kad šis bitas yra dvi galimybės,
dvi galimybės, du galimybes
šiek tiek - kad 2 kartus 2 kartus -
kad nuo 2 iki 32-galia iš viso
permutations nulių ir, jei turite 32
vietos rezervavimo ženklų, nulių ar tie, priešais jus.
Taigi, jei aš turiu 2 32, matematiškai, tai ką?
Todėl daug.
Tai 4 milijardų eurų, suteikti arba užtrukti.
Ir 4 mlrd. Neatrodo, kad būti tai, kas čia buvo išspausdintas.
Tiesą sakant, tai atrodo maždaug 2 milijardų.
Bet tai nėra atsitiktinumas.
Tas faktas, kad kompiuteris klaidingai aiškino savo didelį skaičių,
mano didžiulis seka tie, ir tada mano labai seka poromis,
maždaug 2 mlrd., paaiškinama, kaip?
Yra ant int dangtelis.
Yra tikrai maksimalios vertės, kad jums gali atstovauti.
Bet tai paprastai 4 milijardų eurų, tiesa?
Jei 2 iki 32 yra maždaug 4 mlrd., Kad atrodo
tai didžiausias skaičius.
Taigi ne likusi, bet gera mintis.
Neigiami skaičiai.
Taigi, jei turite 4 mlrd. Galimų dalykų, kuriuos galite
sudaro su šių įvairių kombinacijų 32 0s ir
1s, gerai, ji stovi prie priežasties, kad mes, žmonės galbūt norėsite
atstovauti ne tik teigiami sveikieji skaičiai
bet neigiami sveikieji skaičiai.
Ir iš tiesų, tai prielaida, kad C daro.
Taigi su 32 bitų, galite atstovauja maždaug neigiamas 2
mlrd visą kelią iki teigiamo 2 mlrd.
Ir todėl šiuo atveju, tai, ką mes iš tikrųjų matome, yra tik
mūsų sveikojo skaičiaus talpos pakraštyje, ir mes turime, todėl
kalbėti, krantų sveikasis skaičius.
Mes bandėme įsprausti į jį, nei iš tikrųjų gali tilpti daugiau bitų.
Taigi, galutinis rezultatas yra, mes iš esmės turime visus 1 bitai.
Mes apversta visų mūsų bitai dėl, mes bandėme atstovauti
didžiausia įmanoma, bet tai akivaizdžiai nėra beveik
pakankamai didelis, kad atstovauja du dalykus, aš tiesiog atspausdinti.
Taip?
Auditorija: [nesigirdi]
>> David J. Malan: Geras klausimas.
Kodėl mes negalime tiesiog atstovauti, kad neigiamas
pasirašyti kaip tik simbolį?
Taigi, mes visiškai negalėjo, ir mes galime tada išsaugokite
papildomas bitų.
, Bet jūs vis dar ketinate turėti, tą brūkšnį ir
kad ketina jums kainuoti bent ką nors,
matyt, šiek tiek.
Taip taip, mes galime turėti 32 bitus, naudojami mūsų grupės, bet dabar
turime dar šiek tiek naudojamas mūsų brūkšnys
simbolis, minuso ženklas.
Taigi dabar mes turime 33 bitų vertybes, kurias mes galime padaryti, bet tai
tik ne taip, kaip tai daroma.
Mes padarėme sprendimą skambučių metų, 32 bitai yra tarsi
čia matavimo vienetas.
Taigi, mes ketiname naudoti vieną iš šių bitų veiksmingai
atstovauti negatyvumo, ir 31 bitų atstovauja numerį.
Kiti klausimai?
Gerai.
Tai daug.
Kodėl ne mes eiti į priekį ir imtis mūsų penkių minučių pertrauką?
>> Gerai.
Taigi dar kartą, o ne overemphasize matematikos taikymai
programavimą, tegul tiesiog laupti šį vieną pavyzdį
Prieš mes pereiti į kitas konstruktai, tik todėl, kad
bus parodyti keletas bendrų suklupimo taškų dėl kai kurių
pagrindai, kai jis ateina į raštu programas.
Šiuo atveju, daro aritmetines išraiškas, kurie turi tam tikrą
įdomus aktualumas sintaksę.
>> Kad tai tik formulė, su kuria mes galime konvertuoti
temperatūras iš Farenheito į Celsijaus.
Jei jūs neturite prisiminti, tai tik formulė.
Taigi, jei mes prijungti 32 laipsnių pagal Celsijų vertės, kuri yra
įšaldymo, kad bus 32 minus 32 yra 0, ir iš tiesų,
0 Celsijaus įšaldymas, sąrašą.
Taip greitai normalumas patikrinti ten - kad pažįstamas formulė.
Leiskite man pereiti prie prietaiso, nors ir pradėti
raštu programa, vadinama, kaip, f2c; "Farenheito į
Celsijaus dot c ".
Ir viršuje čia, aš norėčiau pradėti nuo # include
stdio.h, ir aš ruošiuosi daryti int main (void), ir
dar kartą, mes grįžti į ateitį, nes ką int tai
ten ir kas tai negalioja.
O dabar leisk man eiti į priekį ir įdiegti programą,
iš esmės tai daro mus konversija.
>> Printf, tarkim, Farenheito temperatūros.
Ir tada leiskite man eiti į priekį ir gauti iš vartotojo vertę.
Kokios vertės turėčiau gauti iš vartotojo, jeigu aš noriu
jiems duoti man temperatūra Farenheito?
Taip?
Ką siūlytumėte?
Taip.
Taip plūdė jaučiasi gana protinga.
Dar kartą, mes turime, tik keletas variantų, kurie
mes matėme iki šiol.
Mes turime dalykų, pavyzdžiui, char, dvigubas, plūdės, int, long long
bool, eilutė.
Taigi iš šių, plūdės jaučiasi gana protinga.
Mes galime naudoti dvigubą, teisę, nes jei mes tikrai norime
atstovauja žmogaus temperatūrą -
98,60000 -
mes galime naudoti 64 bitus tai padaryti, bet jis jaučiasi
temperatūros žiauru.
Todėl galime tik eiti su plūdės.
Dabar man reikia kintamąjį.
Tik kad viskas būtų paprasta, aš ruošiuosi jį vadiname f, bet aš
gali būti tiesiog kaip teisingai jį vadiname temperatūra,
tačiau bet kuriuo atveju yra gerai.
Taigi plaukti f = GetFloat.
Kuo greičiau, aš dabar nusprendė naudoti GetFloat, nors aš
reikia padaryti viena pataisa.
Taip.
Taigi, mums reikia # include , kitaip kompiliatorius
šaukti į mus.
Dabar, aš turiu pinigų srautas, leisk man eiti į priekį ir daryti
konversiją.
>> Taigi, pirma, leiskite man gauti į įpročiai
komentuodamas savo kodą.
Taigi dar kartą, komentaras yra tik užrašas, žmogaus ŠTAI
nėra per se programos dalis, tačiau jis vienas, padeda jums
suprantu, ką tu kitą rytą, arba kitą
mėnesį, tai padeda jūsų mokymo kolegos suprasti, ką padarei
ar tai, ką ketinama daryti, todėl
paprastai yra labai gera praktika.
Kas keletą eilučių kodo, parašyti komentarą
sau ar jūsų kolega.
Taigi čia, aš norėčiau pasakyti: "Paprašyti naudotojo reikalavimai, keliami temperatūrai."
Neturi būti pilnas sakinys, tik trumpą frazę.
Bet už komentavimo C idėja yra tai, kad kiekvienas iš jūsų
komentarai turėtų suteikti jums - ar, tarkim, TF ar bendradarbiui
nugriebti savo programą ir tiksliai žinoti, ką jis ne
tiek daug skaityti kodą, bet skaitant komentarus, kuris
turėtų būti trumpas ir aiškus.
Viskas gerai, todėl dabar leiskite man eiti į priekį ir pasakyti, "Konvertuoti
Farenheito į Celsijaus. "Taigi, aš ruošiuosi eiti į priekį ir daryti,
tarkim, plaukti c.
Mes nuolat Celsijaus kaip slankaus kablelio vertės.
>> Ir leiskite imtis Pabandyti ne tai.
Formulė yra, vėlgi, čia.
Kaip 5/9 kartus F minus 32.
Todėl galime tai padaryti.
Taigi, 5, padalytas iš 9, atėmus
oi, aš jau messed it up.
Kartus.
Taigi, 5/9 kartus F minus 32.
Taigi F minus 32, kabliataškis.
Ir dabar, čia apačioje, aš ruošiuosi eiti į priekį
ir pasakyti, spausdinti rezultatą.
Ir ši dalis lengva. Printf.
Kaip aš galiu eiti apie spausdinimą?
Na, galėčiau pasakyti: "Šis skaičius Celsijaus% f \ n",
tik kai estetika.
Ir kas tada vertė aš noriu prijungti čia printf ųjų
Antrasis argumentas?
Gerai.
Taigi tik c.
Taigi, mes pradėsime su, ir tada tiesiog grįžti 0.
Vėlgi, tai neturi nieko bendro su matematika.
Tai tiesiog reiškia, kad viskas yra gerai.
>> Dabar, tai teisinga, ši programa?
Gerai.
Taigi, aš padariau keletą klaidų.
Net jei jūs neturite idėjos, kokia programavimo, galite rūšiuoti
kildina atgal į pradinėje mokykloje
klaidos čia gali būti.
, Kas yra vienas iš pirmųjų?
Auditorija: [nesigirdi]
David J. Malan: Taip.
Taigi, mes trūkstamus skliausteliuose.
Tai buvo sąmoningas, kad aš skliaustuose keynote
pastumkite čia, nes ten yra iš tikrųjų tai tvarkos sąvoka
veiklos, arba viršenyb ÷ s, pagal kurią tam tikros operacijos -
Multiplication -
turėti aukštąjį privalomas, turi didesnę pirmenybę, nei dalykų
kaip to ar skirtumą.
Taigi, mes padarėme tai už metus, tik, kad tiksliai ir aiškiai
ką matematinę operaciją reikia padaryti pirmiausia.
Taigi, aš tikriausiai turėtų imituoti būtent tai.
Kitaip, kompiuteris yra tikriausiai ketina bandyti daryti
kažkas panašaus 9 5 atskirties, tada padauginti F, tada atimti
32 iš visa tai.
, Kas, tiesą sakant, tai, ką norime padaryti.
Taigi leiskite suskliausti.
Pridėkime mano skliaustus čia, skliaustai čia.
Tegul tai čia.
Čia, aš ką tik pastebėjau dar vieną klaidą, aš padariau pakeliui.
Taip?
Auditorija: [nesigirdi]
>> David J. Malan: Ah.
Geras.
Taigi, mes iš tikrųjų turime tą patį sveikasis skaičius
padalinys klausimas iš anksčiau.
Manau, teisinga, kad, pažiūrėkime, kas simptomas.
Bet mes ketiname turi ištaisyti
kita klaida čia.
Taip?
Auditorija: [nesigirdi]
David J. Malan: Taip.
Taigi, kvaila klaida padariau, bet nepaprastai svarbu.
Kompiuteris nėra tiesiog nepastebėti ir leiskite
man naudoti kapitalo F, kai aš iš tikrųjų paskelbė kintamasis
mažosiomis f 8 eilutėje.
Taigi man reikia ištaisyti line 11 mano kapitalizacijos, kuri
metu senumo buvo kapitalo F netyčia.
Ką apie čia?
Tai turėtų būti parašytas mažosiomis raidėmis, taip pat?
Ji turėtų būti, bet tai atsitiktinumas.
Kad% f neturi nieko daryti su kintamojo.
Taigi, tiesiog super aišku čia, leiskite man eiti į priekį ir
pervardyti, trumpai, "temperatūrą." Leiskite man pervadinti
tai "temperatūra". Leiskite man ne pervadinti.
Nes, vėlgi,% f visame pasaulyje reiškia, "slankiojo kablelio skaičius.
Neturi nieko daryti su mano kintamojo.
Tačiau "temperatūra" visur yra tik šiek tiek sakytinis
todėl aš grįžti į savo mažosiomis raidėmis "f" s.
>> Dabar leiskite man eiti į priekį, į mano langą.
Padaryti f2c
, kuris, vėlgi, buvo savavališkai vardas
davė į šį failą.
Atrodo, kad turime surinkti.
Tegul man paleisti f2c.
Įveskite.
Temperatūra pagal Celsijų - darykime lengva.
32.
Gerai, ištaisyti.
Tačiau, jei aš dabar 212 virinimui -
Damn.
Gerai.
Taigi, akivaizdžiai nėra pataisyti, jei jūsų TF bando
bent dvi vertės.
Taigi, kas yra problema čia?
Na, jūs jau įdėti pirštą ant kokia yra problema.
Bet kodėl tai, kad byla?
Čia, kai aš darau 5 matematikos, padalintą iš 9.
Taigi konceptualiai, tai visiškai teisinga.
Visiškai suderinta su formule.
Bet kompiuteriai padaryti tik tiksliai, ką jūs
pasakykite jiems padaryti.
Ir ką mes čia pasako kompiuteriui
padalinti sveikuoju skaičiumi 5 sveikasis skaičius 9
ir man duoti rezultatą.
Problema yra, nors, kai jūs padalinys naudojant duomenis
rūšys, produkcija yra tas pats duomenų tipas, kaip įėjimai.
Ir todėl, jei du įėjimai tiek int, produkcija vyksta
int.
Ir taip 5, padalintas iš 9, yra taškas kažkas.
Bet kas artimiausias sveikasis skaičius nurodo kažką?
Taigi, tai tikrai 0.
Taigi, kaip aptarėme pirmadienį, viskas po dešimtainės
taškas bus sutrumpintas.
Jis tiesiog bus išmesti.
Taigi tai yra visiškai klaidinga, nes aš taip pat tik
padauginkite viską 0 čia.
>> Dabar galiu išspręsti šią problemą įvairiais būdais pora.
Galėčiau tai padaryti.
5,0 padalintas iš 9,0.
Techniškai, aš net ne reikia padaryti, kad.
Ji pakanka tiesiog padaryti vieną skaičių flotacinio
arba dukart įgyvendinant kablelio čia.
Nes tai, kas vyksta dabar, kai jums padalinti sveikasis skaičius
plūdės, arba dukart, kompiuteris bus įgyvendinta
oh, viena iš jų yra tikslesnis.
Leiskite man suklysti suteikti jums daugiau tikslumo pusėje nei
jums skirtas.
, Todėl bus konvertuoti rezultatą -
jis grąžina rezultatą kaip slankaus kablelio vertės, taip pat.
Taip, kad dirbtų.
Tai galėtų dirbti.
Ir ten vienas kitas mechanizmas, kad mes pamatyti
Detaliau kitą savaitę.
Kaip programuotojas, jūs iš tikrųjų galite pasakyti kompiuterio
iš tikrųjų gydyti vieną duomenų tipą, kaip ir
nors tai būtų dar vienas.
>> Taigi aš iš tikrųjų galėtų tai padaryti.
Skliausteliuose, galiu pasakyti kažką panašaus (float), atidarykite
skliaustas, netoli paren.
Ir tai yra tai, kas vadinama "liejimo." Vėl, daugiau
šioje kitą savaitę.
Bet tai tik programinis būdas pasakyti
kompiuteris, Yeah I know 9 yra sveikasis skaičius arba ilgas.
Aš žinau, tai nėra slankaus kablelio reikšmė.
Bet su ja elgiamasi kaip toks vistiek.
Taigi, norint mesti duomenų tipą konvertuoti
iš vienos į kitą.
Atvirai kalbant, tai yra tik šiek tiek negraži, todėl norėčiau pasiūlyti mes einame
atsargines tiesiog konvertuoti į pradinį pasiūlymą
šių dalykų slankiojo kablelio vertes rankiniu būdu.
Nes dabar tai tiesiog super aišku, kas vyksta, ir
tai dar ne viskas, kad blaško.
>> Taigi, tegul dabar grįžti į mano terminalo lange.
Padaryti f2c.
Leiskite man eiti į priekį ir paleisti.
Ir, kaip panaikinti, jums nuobodžiauti įvesti šias komandas
vėl ir vėl, suprantame, kad kompiuteriai, čia, kaip Linux
linkę būti labai protingas.
Ir jei aš paspauskite aukštyn, mes galime eiti per visą savo istoriją
komandos, aukštyn ir žemyn.
Taigi, šiuo atveju čia, aš galiu tiesiog eiti paleisti f2c.
Aš vis rėkė, nes aš ką tik padarė, kad antrasis prieš.
Jis jau iki šiol.
Taigi, dabar galiu paleisti f2c dar kartą.
Pabandykime 32 pagal Farenheitą.
Dabar pabandykime 212 Farenheito.
>> Phew.
Atrodo į darbą.
Dabar, tai yra gerai, bet ji jaučiasi šiek tiek savavališkas, kad
Rodau šeši skaičiai po skaitmenų po kablelio.
Tiesa?
Jei esate asmuo, TV oras, jūs natūra iš doofus
jei jūs skaitote temperatūrą
tai tikslumo laipsnis.
Todėl galime supaprastinti šią.
Todėl galime iš tikrųjų eiti čia, mano printf.
Ir taip, aš noriu plaukti.
Bet aš noriu dabar nurodyti tikslumo.
Ir aš norėčiau būti šiek tiek glaustas.
Aš ruošiuosi pasakyti, duok man vieną tašką po kablelio.
Taip, o ne pasakyti,% f, aš norėčiau pasakyti,% .1 f.
Ir tai tik reiškia, kad man duoti vieną poziciją
po kablelio.
Gerai.
Pabandykime tai vėl.
Leiskite man iš naujo paleisti po kompiliavimo.
Ir dabar aš įveskite 32 ir aš grįšiu
daugiau glausta vertė.
Ir aš galiu įvesti, dabar 212, ir grįžti labiau prigludusi
vertė, taip pat.
Ir yra kitų dalykų, kuriuos galite padaryti su printf.
Jūs iš tikrųjų galite nustatyti, kaip plačiai šis skaičius turėtų būti.
, Jei norite turėti padding apie tai, kad jūs galite dešiniuoju pelės suderinti ar
kairėje suderinti visus savo numerius arba
pabandykite centro dalykų.
Taigi, suprantate, yra mažai gudrybės, kuriuos galite padaryti, ten.
Bet jie tiesiog skliautais formato kodais,
kaip mes turime.
>> Taigi, kalbant apie šį klausimą vyresniškumo.
Tai labai nuobodu stalo eiti per metodiškai.
Bet suprantame, kad turi sugalvoti C autoriai
taisyklės, kuriose, kuriuos ūkio subjektai turi aukštąjį
viršenyb ÷ s, privalomos galios, nei kiti.
Taigi, kadangi pradinėje mokykloje, mes žinojo, kad ji
daugyba ir dalyba, tada Sudėtis ir atimtis,
tada kai kurių kitų dalykų.
Į programavimo pasaulį, yra daug
ilgesnis sąrašas dalykų.
Ir tai ne ką verta įsiminti dabar.
Gausite acclimated prieš ilgas.
Bet, kaip ir pradinėje mokykloje, skliausteliuose paprastai išspręsti
viršenybės klausimai, darant super aišku,
kompiuteris ir žmogaus vienodai, ko siekiama.
Todėl mano, kad tai tik šiek tiek Cheat sheet.
Tačiau dauguma iš tų detalių, mes ne gauti tam tikrą laiką.
>> Gerai.
Dabar galime sukurti ir tolti nuo šių kvailas mažai
matematiniai pavyzdžiai.
Vis dar naudoja tuos pačius pagrindus, bet pradėti
išreikšti save šiek tiek daugiau kaip nulio.
Taigi nulio, mes turėjome šias Būlio išraiškos.
Ir anglų kalbomis, Būlio išraiška yra kas?
True arba false.
Tai kažkas, kad vertina true arba false.
1 arba 0.
Įjungti arba išjungti.
Ką gi, jūs norite jį pavadinti.
Dabar nulio, įspūdį, atrodė taip.
Ir tai derinys, ten apačioje, trijų
įspūdį.
Vienas kartu -
kažkas, kad turi tuščias ir tuščias.
Ir tada du Būlio išraiškos viduje.
Taigi galite lizdaviečių Būlio išraiškos Norėdami gauti daugiau
sudėtinga Būlio išraiškos.
Pavyzdžiui, jei tai yra šeštadienis, ir jis yra gražus
oras, tada išeiti į lauką.
Ar kažkas savavališkai, pavyzdžiui, kad.
Taigi, jūs galite prisijungti Būlio išraiškos sugalvoti
didesnė tiesa vertė, kurio atsakymas
mažesnes.
>> Dabar, C, laimei, šis kartografavimo
tiesų yra gana paprasta.
Skliaustai padėti, kad viskas būtų aišku čia.
&& Yra tai, ką reiškia "ir". Tai štai kaip
mes ketiname konvertuoti tuos blokus nuo nulio iki C
Ir sąlygų matėme nulio, ant kairės rankos
przylegało galite sukrauti juos panašiai C. Jei x yra mažiau
nei y, tada tai padaryti.
Else if x yra didesnis nei y, tada tai padaryti.
Kita logiškai jie turi būti lygus, todėl pasakyti
kad jie yra lygūs.
Taigi, dabar mes galime pradėti kurti šiuos dalykus.
>> Taigi darykime pavyzdį.
Leiskite man atverti failą, kad kurso interneto svetainėje, kad
Rašiau iš anksto.
, Kuris yra vadinamas nonswitch.c.
Ir mes pamatyti, kodėl vos akimirką.
Taigi šį failą - nonswitch.c -
visų pirma reikėtų suprasti, kad yra visa krūva
pastabas viršuje.
Kad tik paaiškinti to failo vardą, ką ji
, ir taip toliau.
Ir tai, matyt, rodo, boolean-mo -
conjoining dvi išraiškas.
>> Taigi, pažiūrėkime, kaip ši programa veikia.
Du mano failus, cs50.h ir stdio.h.
Jeigu aš slinkti žemyn, dabar į programą, tai šiek tiek ilgiau
nei mes parašiau prieš, bet gana įskaitomas.
Taigi, aš pirmą kartą spausdinti į vartotoją, on line 18
"Duok man sveikasis skaičius nuo 1 iki 10." Taip
tai tiesiai ten.
Dabar gaunu sveikasis skaičius.
Bet suprantame kad GetInt - gana paprasta.
Tik ketina gauti int.
Ji ketina užtikrinti, kad ji gauti int, o ne
eilutė arba plūdė.
, Bet jis nesiruošia daryti bet kokį pasienio tikrinimo.
Jis nesiruošia filtruoti skaičiai tarp
tam tikras intervalas.
Taigi, mes turime įgyvendinti, kad save.
Taigi tiesiog kaip naujo, kur aš galėtų padaryti konjunkcija
du užrašai, galiu padaryti, kad C taip.
Jei n yra didesnis nei arba lygus 1, ir n yra mažesnis nei
arba lygus 3, aš einu labai savavališkai dekretu
kiekis yra nedidelis skaičius.
Tik už pareiškimą labui.
Else if n yra tarp 4 ir 6, spausdinti "pasirinko vidutinės
numerį. "else if n yra nuo 7 iki 10, spausdinti" Jūs pakėlė
didelis skaičius. "Kitas print" Jūs pasiimti neteisingas skaičius. "
Nes logiškai reiškia, kad, jei mes
išnaudojo savo asortimentą.
>> Taigi suprantame, kad tai yra ne visai, kaip mes rašome didesnis arba
lygus matematikos klasės.
Tiesa?
Jūs paprastai padaryti tai, kaip šis, su pagal liniją.
Bet nėra tokio klavišą ant mano klaviatūros.
Taigi, C simbolis išreikšti didesnis nei arba
lygus du simboliai, ir mažiau nei simbolis
arba lygus, taip pat yra du ženklai.
Gerai.
Taigi, jei aš paleisti šią programą, jums greičiausiai gali atspėti, kas tai yra
ketinate daryti.
Jei aš einu į priekį ir padaryti nonswitch, "Enter".
Ir tada paleisti nonswitch.
Duok man skaičių nuo 1 iki 10.
Aš ruošiuosi suteikti jai 11.
Paėmiau neteisingas skaičius.
Leiskite man pabandyti numerį 3.
Paėmiau mažą skaičių.
Taigi gana paprasta.
>> Ką daryti, jei noriu pakeisti šios programos elgseną ir
, o ne padaryti kažką šiek tiek skiriasi?
Leiskite man eiti į priekį ir pasakyti tai.
Leiskite man atsikratyti visa tai.
Ir leiskite man pasakyti, jei (n == 42).
Ir tada aš ruošiuosi eiti į priekį ir pasakyti spausdinti "Jūs pakėlė
teisingas atsakymas. "Kitas mes ketiname eiti į priekį ir pasakyti,
printf ("Jūs pakėlė
atsakymas neteisingas "); Gerai.
Tiesiog todėl, kad.
>> Dabar keletas dalykų, mes galime padaryti čia.
Vienas, aš ne įrašykite simbolį, kad jūs manote, kad yra
labiausiai pagrįstas.
Kai noriu patikrinti lygybę, paaiškėja, jums nereikia naudoti
lygybės ženklas.
Jums, o ne naudoti vienodą lygybės ženklą.
Ir kodėl gali būti, kad tiesiog intuityviai?
Taip.
Auditorija: [nesigirdi]
David J. Malan: Teisingas.
Lygybės ženklas jau naudojamas užduotims.
Kažkas tikrai ne manau, kad tai per.
Ir todėl dabar, kai kalbama apie bandymų lyčių lygybės, mes turime
būti aiškesnis, ir pasakyti, lygus lygus.
Labai dažna klaida yra tai padaryti.
Ir, jei darbo valandomis arba kažkada kitą savaitę arba
artimiausias dvi savaites jūs darote kažką panašaus į tai, ir tada
kovoti su juo, 10, 20 minučių, bando išsiaiškinti,
damn klaida yra, suprantate, kad jūs esate vienas iš tų
žmonės, kurie padarė šią klaidą.
Taigi, super lengva padaryti.
Bet tikslas dabar yra atremti šią klaidą.
Tai galėtų įvertinti, nes tai, kas tai tikrai sako:?
Jei n gauna 42.
Taigi veiksmažodis žmonės naudoja, žodžiu, išreikšti
užduoties sąvoka yra "gauna". Taigi, jei n gauna 42.
Taigi, tai reiškia n 42 priskirti.
Dabar turiu loginę išraišką skliaustuose,
viduje šios būklės, kurių kiekvienos vertė yra 42 metai.
Tiesa?
Nes jei jūs ją įvertinti iš vidaus į išorę, iš viso
atsakymas, dabar yra 42 metai.
>> Taigi, jei aš paprašė klausimą, "jei (42)," tai, kas
kad tikrai pasakyti?
Na, Būlio išraiškos gali būti tik true arba false.
1 arba 0.
Įjungti arba išjungti.
Taigi, mes, atrodo, kampe atveju byloje, pagal kurią visi
staiga, aš sakau "jei (42)". Tai nėra Būlio vertė.
Taigi, ką kompiuteriai daryti, nors, tai iš esmės prilygsta
nieko, kad ne 0 aiškinama, kad būtų tiesa.
1.
Įjungta.
Jie visi funkciškai lygiavertės.
Tik vertė 0, arba raktinį žodį klaidingas, nes mes
galų gale pamatyti, iš tikrųjų yra klaidinga.
Taigi, "jei (42)" iš tikrųjų būtų tiesa, nes ji yra ne nulis.
Taigi, tiksliau čia, Būlio vertė yra tikrai ne taip
daug true arba false, tačiau tam
atveju, jei yra 0 arba ne nulis.
Taigi klaidinga arba nėra klaidinga.
Ir tai leidžia mums, kad apimtų daugiau
skliausteliuose išraiškos galimybės.
Todėl mes turime, kada nors taip atsargiai, tai sakau -
if (n == 42).
Tiesiog todėl, kad mes turime nurodyti lygybės testą,
kurių vertė priskyrimas.
>> Ką dar verta paminėti čia?
Šie garbanotieji petnešų yra iš tikrųjų nėra būtinas.
Aš jau daro juos tiesiog būti nit-smulkmeniškas čia.
Bet kai sąlygą, kad turi tik vieną eilutę
kodas, kaip patogiau, programuotojai ne reikia naudoti
garbanotieji petnešų.
Pakanka tiesiog įtrauka, dėl estetinių priežasčių, o
tada parašykite eilutę kodo.
Tik tada, kai norite parašyti dvi eilutes kodo -
Pavyzdžiui, kitas printf ("Bye!"). Jei norite padaryti,
, kad tai yra pažeistas.
Galite įtraukti viską, ką nori, bet faktas, kad jūs turite
įvestas dvi eilutes kodo nenaudojant garbanotieji petnešų
reiškia, kad ši programa neveiks ar gali
net sudaryti teisingai.
Taigi, šiuo metu, turi būti sąžiningas, aš manau, kad geriausias įprotis yra tik
naudoti garbanotas petnešos, ir jūs pamatysite, kad jie
super aišku, kas vyksta.
>> Taip pat, kaip panaikinti, ypač jei jūs esate vienas iš tų, kurie naudojasi
Rekomenduojamos knygos ar išteklių internete -
suprasti, kad šis stilius sąvoka
programavimas.
Ir kai kurie žmonės iš tikrųjų nori įdėti garbanotais petnešomis
čia ant linijos.
Kai kurie žmonės nori padaryti juokingas dalykų,
norėtų juos čia.
Nėra jokių atsakymas neteisingas, kai kalbama apie
stiliaus, bet tai negerai.
Tačiau kai kurie žmonės tai padaryti.
[Juokas]
David J. Malan: Taigi, aš sakiau, tai dabar, tiesiog, nes, kaip
jums perskaityti knygų ar internetu dalykų, kad jūs ketinate gauti
skirtingi pranešimai iš įvairių mokytojų ir
skirtingi autoriai.
Ir tiesiog suvokti, kad funkciniu požiūriu, jie
atitikmuo, bet būti nuoseklūs.
Taigi šiuo atveju, mes standartizuoti garbanotieji
petnešos čia rikiuojasi kairėje.
>> Gerai.
Taigi eikime į priekį dabar ir paleisti, ir pamatyti, kas atsitiks
su šia programa.
Padaryti nonswitch.
Tada paleiskite nonswitch.
Duok man sveikasis skaičius tarp 0 ir - taip, kad ne
nebėra, bet aš tik ketina savavališkai pasakyti 42.
Ir aš surinkti teisingą atsakymą.
Na dabar, galime iš tikrųjų į tai kita kryptimi.
Paaiškėjo, kad kai kurios kitos sintaksė, mes
galite naudoti programą.
Štai naujas gabalas sintaksė, kuri yra praktiškai tas pats,
bet tiesiog įveda naują išreikšti save.
Taigi, tai yra tai, kas vadinama "switch" teiginys ". Ir
"switch" teiginys veikia taip.
Ji mano, skliausteliuose, vertę, kurią norite
"Jungiklis".
Jūs norite, kad elgtis kitaip, remiantis jo vertės.
Taigi, tai reiškia, kad n vertės jungiklį.
O ką tai reiškia?
Na, jei n yra 1, 2 arba 3, eiti į priekį ir atsispausdinti "Tu
pakėlė didelį skaičių "ir tada pertrauka.
Pertraukos priežastis yra ta, kad C būdas veikia
greitai, kaip mano atveju, kad atitinka, jis pradeda vykdyti
visi žemiau jo kodą.
Taigi, jei aš turiu vieną eilutę kodo, kaip aš čia on line 27
paleidžiama vykdyti.
Jei aš čia pridėti dar vieną liniją, jis bus vykdomas.
Kita linija, jis bus vykdomas.
Programa sustoja tik tada vykdyti tai, kas žemiau
taikytiną teisminę pareiškimą, kai aš aiškiai
pasakyti "pertrauka". Taip neteisinga.
Teisė, šiuo atveju, kaip rezultatas.
4 arba 5 arba 6, panašiai, vyksta
atsispausdinti pranešimą.
Šiuo atveju, vidutinės numeris.
Pertraukos.
Byla 7, 8, 9, 10, ji ketina atsispausdinti "Jūs pakėlė didelis
numeris. "Break.
Ir tada ten tiesiog raktinį žodį vadinamas "pagal nutylėjimą"
tai efektyviai kaip ir "kitas" statyti.
Toks naujas sintaksė, bet intelektualiai,
nieko visi naujo čia.
Tai kaip "Scratch.
Jei, if, else if, tarsi bloko.
>> Taigi, kad perėjo šios programos versija.
, Bet pastebėsite, kad mes tai padarėme su skaičiais čia.
Leiskite man atverti antrą versiją, tiesiog parodyti
kažkas šiek tiek daugiau betono.
Taigi čia mes turime klases vietoj.
Pasirodo, galite naudoti jungiklius ne tik sveikaisiais skaičiais, bet
simbolių.
Ne visų duomenų tipų, tačiau ne rečiau kaip simbolių.
Taigi čia, mes galime padaryti kažką panašaus, jei C vertę, kuri
vartotojas turi įvesti, atitinka 19, naudojant GetChar funkciją,
yra kapitalo arba mažosiomis, galime interpretuoti kaip rangui,
ir sako, kad jie pasirinko puikią klasę.
Ir žemyn palei "switch" teiginyje, ar mes turime kita
bylos dėl "B" ir "C", ir taip toliau.
Bet tegul dabar baigia vienas kitas dalykas.
Ir vėl, tipo skrenda per
kai kurie iš šių pavyzdžių.
Bet tai tikrai, kad galėtume juos taikyti, dabar -
ar tikrai, tik išversti jas dabar -
iki C
>> Taigi leiskite man eiti į priekį ir tai padaryti.
Aš einu atverti naują failą.
Ir aš ruošiuosi tai padaryti .
Ir tada aš ruošiuosi daryti int main (void).
Leiskite man išsaugoti šį failą kaip loop.c.
Tik kaip pavyzdys.
Ir aš ruošiuosi eiti į priekį ir atlikite šiuos veiksmus.
Aš noriu rašyti labai nuobodų programą.
Taigi 10.
Darykime tai.
9.
Gerai.
Kuo greičiau pradėti tai daryti programavimo, jūs
tikriausiai daro kažką blogo.
Bet mes pradėsime ten vistiek.
Oi.
, Kad tikrai negerai.
7.
6.
5.
4.
Nieko nutiks, kai mes gauname 0.
3.
2.
1.
Gerai.
0.
Ištrinti.
>> Gerai.
Taigi, grįžti 0.
Todėl ši programa akivaizdžiai ketina daryti tai, ko labai
Nemalonu sako, kad ji ketina daryti.
Ji ketina spausdinti visus tuos,
vertės, nuo viršaus iki apačios.
Taigi, leiskite man padaryti kilpą.
O tada - oi.
Padaryti kilpą.
Buvau neteisinga kataloge.
O dabar leiskite man paleisti kilpą.
Įveskite.
Nuostabu.
Labai gražus.
Gražus, ilgas programa.
>> Viskas gerai, bet dabar galime tai padaryti geriau.
Tiesiog kaip ir nulio, kai jūs pradėjote naudoti Looping
statyti, o ne tik kopijuoti ir įklijuoti visus
įspūdį, leiskite man pristatyti šį dalyką.
Taigi C, yra įvairių ciklų sakiniai,
iš kurių vienas atrodo taip.
"Už" loop turi tris dalykus, atskirtų dviem kabliataškiais.
Ir tada, viduje kilpos kūno, todėl kalbėti -
stuff viduje klamrami -
mes galime padaryti kažką vėl ir vėl.
Taigi, ką aš čia ekrane, tai yra
tiesiog tik komentaras.
/ / Čia reiškia ateina komentarą.
Tai ne kodas.
Tai tik Anglų aprašymas, man žmogaus.
>> Taigi initializations, sąlygas, ir atnaujinimus.
Na, galime pamatyti, kaip tai veikia.
Tai leidžia man perrašyti šią programą taip.
Už -
todėl čia ateina mano kilpą
int i -
čia ateina kintamasis vadinamas "i", -
gauna, inicializuoti iki 10.
Taigi yra mano iniciacijos.
Aš noriu padaryti taip ilgai, kaip "i" yra didesnis nei arba šio ciklo
lygus 0.
Ir ant kiekvieno šio ciklo iteracijos, aš noriu
Ar aš.
Taigi mes matėme + + pirmadienį.
- Atvirkščiai.
Mažinimą vertę 1.
Viduje šio ciklo, aš noriu, kad iš tikrųjų kažką daryti.
Todėl aš pasakyti kažką panašaus printf.
Aš nenoriu pasakyti, 10 dabar, nes tai akivaizdžiai yra tik
ketinate spausdinti tą pačią vertę.
Ką noriu spausdinti, o ne, tikriausiai?
Taip.
Taigi, "i". Taigi,% d, i.
>> Taigi, aš ketina pavogti vieną iš šių idėjų iš ankstesnių
tai formato kodų pakeitimas -
ir tada žemyn, apačioje, aš sugrįšiu "0", tik
gera priemonė.
Bet dabar, aš turiu daugiau glaustai programą.
Tai tik keletas eilučių, o ne apie 10 ar 11 linijos.
Leiskite man eiti į mano eilutę žemyn.
Perdarytas linijos.
Pakartotas linijos.
Ir, atrodo, yra tas pats.
Dabar, programa įdomiau.
Bet dabar galiu įvesti kažką panašaus į tai.
Aš galiu pakeisti 100.
Tada galiu perkompiliuoti savo programą.
Ir tada aš vėl paleisti savo programą.
Ir dabar jis eina super greitai šiandienos kompiuteriai.
Bet ten -
ir iš tikrųjų, mano slinkties juosta buferio nėra
net eiti taip toli.
Čia mes eiti.
Taigi mes turime visus 100.
Bet tai lengva padaryti klaidų čia.
Kas bus laukiamas elgesys, jei aš
netyčia tai padaryti?
Taigi jis jaučiasi begalinis.
Taigi pažiūrėkime, jei kompiuteris elgiasi.
>> Taigi, leiskite man eiti į priekį ir padaryti kilpą.
Ir leiskite man paleisti kilpą.
Taigi, galime sugrįžti, kad vos akimirką.
Leisime, kad paleisti.
Nes ką mes turėtume tikėtis iki, minimaliai?
Tikriausiai mažiausiai 2 mlrd. Eurų, jei mes turime tiek bitų, ir
mes naudojame teigiamas vertybes.
Todėl galime atšokti.
Be šių vyrių rūšių, mes turime tai, kas vadinama, o
grandinės. Taigi, kaip nulio, jūs turėjote Visada
Pakartokite blokai blokai, ir jums teko.
Be to, C, jūs tiesiog turite kitų būdų
išreikšti save.
Taigi, jūs turite šią while cikle sąvoka, kuri leidžia jums
išreikšti save šiek tiek kitaip.
Ir tada jūs turite kažką vadinama do-while cikle,
kuris veikia šiek tiek kitaip, taip pat.
Ir mes erzinti tai be laikui bėgant.
>> Bet tegul imasi šiame paskutiniame vienas čia atrodo.
Jei mes einame į
vis dar veikia.
Tai gana begalinis.
Taigi leiskite man eiti į teigiamą, ir parodyti, kaip mes iš tikrųjų gali
šiek tiek efektyviau valdyti vartotojo įvesties.
Tai gana trumpas programa.
Ir čia mes turime, Main, int n deklaraciją.
Taigi duok man kintamasis vadinamas n. Dabar aš tiesiog pasakyti,
"Padaryti". Ir tada aš turiu atvirą garbanotas
petnešomis, arti garbanotas petnešomis.
Ir tada pastebėsite, iš karto po to, ji sako, o n
yra mažesnis nei 1.
Taigi pastebėti, kad šias eilutes
19-24 -
kurti kolektyvinę do-while cikle.
Ir kitą kartą, sintaksė, o ne nauja idėja.
Tai tik dar vienas Looping būdas, sintaksiškai.
Taigi, ką tai daryti?
Atlikite šiuos veiksmus, o n yra mažesnis už 1.
Taigi, ką aš noriu daryti?
Reikalauju, kad galite man duoti teigiamą sveikąjį skaičių.
Tada aš iš tikrųjų bando gauti sveikąjį skaičių nuo vartotojo.
Bet operacijų tvarka, nes
o sąlyga yra nustatytas čia, aš tada ketiname patikrinti, yra n
mažiau nei 1?
Taigi tarkime, kad vartotojo
po to, kai reikalaujama, tokiu būdu
tipų reikšmę, lygią 0.
Ši sąlyga bus teisinga, ar klaidinga?
Na, tai iš tikrųjų vyksta, kad būtų tiesa.
Kadangi n yra 0, o 0 yra mažiau nei 1.
Taigi, ką tai reiškia?
Padaryti jį dar kartą.
Tik tada, kai ši sąlyga įvertinama false.
Jei aš tipo 42.
Na ne, 42 yra ne mažesnis kaip 1.
Todėl šis ciklas yra atliekamas vykdyti.
Ir taip, kad tuo momentu, programa pasakys, ačiū už
42, šiuo atveju.
Dabar, kad jūs turite šią būdas išreikšti save -
Mes neturėtume laukti iki pabaigos.
Ji ketina imtis šiek tiek laiko.
Būti tęsiamas kitą kartą, galbūt.
>> Bet dabar, jūs turite galimybę tikiuosi suprasti
tiek Geek humoro.
Atsiprašymai.
Tai ne atstovas humoro kompiuterių mokslo
visame pasaulyje, tačiau tai mielas.
[Juokiasi] Leiskite pabaigoje dėl šio rašto.
Ir mes matome, pirmadienį.
[Plojimai]