[Powered by Google Translate] DAVID Malan: Tai CS50, o tai yra 1 savaitę pradžia.
Ką mes manome, mes norime padaryti šiandien yra pažvelgti atgal
ką daugelis iš jūsų tikriausiai vaikščiojo praeityje kai kuriems
metu ir gali atrodyti šiek tiek susipažinę.
Tai, ką čia, tai, žinoma, yra -
Auditorija: Mokslas.
Davidas Malan: Mokslo centras.
Taigi, iš tikrųjų tai yra vienas iš pirmųjų kompiuterių
Atgal nuo 1940 m.
Tai buvo vienas iš pirmųjų elektromechaninių kompiuterių
kad gali labai ilgai užtrukti, kol,
Savarankiškas skaičiavimai, ir tai, ką mes iš tikrųjų pamatyti
mokslo centras yra tik dalelę šio dalyko.
Ką mes manome, mes norime daryti tada pažvelgti atgal į vaizdo
, kuris buvo prieš kurį laiką, įvedant
dalykas, į pasaulį.
Ir pamatysite iš muzikos ir balso, kad iš tikrųjų tų
buvo labai laimingas kartų.
>> [VIDEO PLAYBACK]
Matematinį ir mechaninis įgūdžių triumfas tai
puikus naujas automatinis skaičiuotuvas Harvardo universitete.
Sudėtingų problemų, matematikos, įdėti per
mašina koduota forma juosta, tiksliai išspręsta
minučių frakcija laiko reikalinga žmogaus
skaičiavimas.
Sukurta siekiant paspartinti visų formų matematinis bei mokslinis
mokslinių tyrimų, milžiniškas mechaninis smegenys dirbs Jungtinių Tautų
States Navy iki karo pabaigos.
>> DAVID Malan: Taigi, ką jūs negalite žinoti, yra tai, kad jis buvo
tas pats prietaisas, kad termino mes visi dabar gana daug
suprantamas dalykas, kad klaidų buvo sukurtas.
Taigi vienas iš inžinierių dirbti šiame kompiuteryje
tiesiog rasti į mašiną, kad atsirado mažas drugelis "
kai neteisingai paskaičiuotas.
Ir kaip sakoma, kad drugys buvo šeimininku į šį žurnalą
žurnalas čia, atgal nuo rugsėjo 9 1940-kažką,
ir taip gimė pasauliui sąvoką "klaidas".
Taigi, nuo šiol mes manome, klaidų, bet klaidų rūšiuoti
programas, ar žmogaus sukeltų ar, šiuo atveju, vabzdžių.
>> Taigi keletą pranešimų, kaip mums elgtis.
Taigi CS50 tradiciją pasiūlyti pietūs dvasia
dauguma semestro metu Penktadieniais, kur mes priimame nuo 30 iki
40 studentų į ugnies ir ledo aikštėje atsitiktinis
Pogawędka, kalbėti apie kompiuterių mokslo,
kalbėti apie ateitį.
Kviečiame absolventai ir draugai iš pramonės kalbėtis
studentams.
Tikrai link priėmimo, kas yra gana didelis klasė pabaigoje
intymesnis, bent kartą, o
sutrumpinti studentų.
Taigi, jei norite prisijungti prie mūsų jau šį penktadienį, 01:15, eikite į
CS50.net/lunch RSVP.
Ir mes tai padaryti recurringly, kad ne nerimauti, jei nesate
tarp pirmųjų 30 arba tiek šią savaitę.
>> Taigi raštininkas pažymi.
Išteklių žodis, kad dabar pradėti galimam
mokinių klasėje.
, Kad jūsų vadovai turi ne paskaitų metu
scribbling viską, ką aš sakau, ir tt, ką mes darome
vietoj to iš dėstytojų
kanoninė banknotų rinkinys.
Taigi, mes turime vieną iš mūsų mokymo bičiulių, Andrew Sellergren
, kuris sėdi kiekvieną savaitę, peržiūri vaizdo įrašus, ir tada
užrašo, ką mes manome, kad yra gana
autoritetingas banknotų rinkinys.
Ir Andriaus mėgsta, taip pat išleidžia snarky išnašas
apačioje.
Todėl jūs tikiuosi naudotis šiomis kaip žinynas
įdomus, ir taip pat ateiti viktorina laiką, kaip galimybė iš naujo išnagrinėti
kas atsitiko, atskirų paskaitų.
Taigi tie, kurie susijęs paskaitų puslapyje.
>> Problemą, 0, tuo tarpu, yra.
Ir jums turimų išteklių požiūriu -
žingsnis po žingsnio.
Milo vedė pirmąjį penktadienį.
Jis buvo nufilmuotas, internete iki šeštadienio.
Ir taip suprasite, jei nesate tikrai nežinote, kur pradėti,
tai ar būsimų p-komplektai, visada pirma kreiptis į
žingsnis po žingsnio ar jo vaizdo.
Ruožais metu; cs50.net/section yra, kur jūs
turėtų pateikti jūsų pageidavimus, jei jūs neturite
jau šiandien.
Kadangi skyriuose bus pradėti šių metų sekmadienis, pirmadienis,
ir antradienį.
Mes darome skyrius tos trys dienos, kiekvieną savaitę
semestrą, kad didžioji dalis.
Ir mes taip pat įvesti dar kartą, skirtingus takelius.
Taigi, jūsų bus paprašyta šio pjūvių formos, jei jūs
nemačiau jau, jei esate tarp tų, kurie mažiau
patogiau, patogi, ar kažkur tarp.
Ir jei jūs tarsi ant tvoros, paprastai kažkur
Tarp jų yra tai, ką dauguma studentų baigti tikrinti.
Darbo laikas pradėti vakarą.
>> Taigi nulio yra gana mažas raktas, nors tai visiškai natūralu,
paleisti į įvairių klaidų, arba neaiški, dėl to, kaip
įgyvendinti kažką.
Taigi suprasti, kad mes pradėsime darbo valandos šią savaitę.
Jie bus ne Annenberg Pirmadienis, Antradienis, Trečiadienis,
Ketvirtadienis, 20:00-11:00 per smegenų pertraukos.
Viršutinė classmen gali gauti, ir, jei turite kokių nors problemų gauti
į duris, nes jie bus swiping, tiesiog kalbėti savo kelią
ir paaiškinti esate su CS50.
Paprastai 20 iki 30 iš mūsų darbuotojams bus ten, kad padėtų
tu vienas ant vieno.
>> Atvykus idėja yra tokia: jūs pareikšti savo nešiojamąjį kompiuterį,
jūs turite įkroviklį, mes turime papildomų maitinimo laidus,
ypač palei pietinės sienos Annenberg
ten daug elektros lizdai.
Ir pagrindinė įvažiavimo į Darbo valandos Q & A yra eiti į
cs50.net/discuss ir rašyti
ten savo klausimus.
Ir ženklinti jį su pset 0 arba pset 1, nesvarbu, kokia savaitės
gali atsitikti, kad būti.
Ir tada, ką mes padarysime, tai yra mokymo bičiulių lentelę
ir kursų padėjėjai, paprastai 8 arba 10, arba tiek mūsų,
išgyvena, išlaikant akimi ant lentos, ir
skynimas išjungtas klausimus tikrai taip greitai, kaip mes galime,
nuoroda pranešimų, susijusių su, jei jums nepavyko rasti tuos,
patys, interneto nuorodos, priklausomai nuo aplinkybių.
Ir tada, jei yra problemų, nes neišvengiamai
bus, ar jis tiesiog daro daugiau prasmės sėdėti vienas prieš vieną,
dirbti per problemas su kuo nors.
>> Arba jūs tiesiog ateiti į darbo valandomis tikrai
kuriems šią mąstyseną.
Jūs nenorite eiti per elektronine forma,
tikrai nori susitikti su kuo nors.
Pranešti, kad mums, ir kas nutiks, kai jūsų
klausimas buvo vertinamas personalo narys, ir mes
nustatyti, Yup, tai turėtų būti siunčiami į vieną iš 20 ar.
30 komandos nariai čia vietoje, pamatysite viršuje palikdavo tai
mažai Įveskite Queue mygtuką pradeda mirksi cs50.net /
aptarti.
Ir tai sakau jums, kad dabar jūs turite pakviesti, todėl
kalbėti, įvesti eilę.
Ir paspaudę šį mygtuką, jūsų vardas bus rodomas
iPad CS50 pasveikinimo, vienas iš kurso vadovų,
surengs netoli įėjimo į Annenberg, kurie bus
pamatyti kaip parodyta čia, studentams, kurie turi klausimų dėl
kairės, darbuotojai, kurie yra dešinėje.
Ir į kairę ir į dešinę paspaudimu, interneto naršyklė
pradeda mirksėti kuo greičiau, pavyzdžiui, profesorius McGonnagal
yra pasiruošęs Jus tam tikru Annenberg lentelę.
>> Taigi, mes padarėme kai šios praėjusiais metais.
Mes perleist darbo valandų ir
iš naujo įgyvendinti daug programinės įrangos.
Taigi, suprasti, kad tai bus sušilti šią savaitę.
Tačiau taip pat suprantame taip pat ankstesniais metais, kaip jūs galbūt girdėjote,
iš draugų, biuro darbo valandomis, nuo 50 iki
150 mokinių vienu metu.
Ir tai tiesiog neįmanoma, mums dirbti, kad
efektyviai, vienas į vieną, visą vakarą.
Ir kas mes iš tikrųjų ketiname pabandyti padaryti šiemet
pasinaudoti tuo, kad daug klausimų
dažnai užduodami, ir dažnai gali būti geriau atsakė
asinchroniškai.
Taigi galite rūšiuoti apgalvoti personalo atsako,
ir mes galime apgalvoti savo kodą, be šildomas
slėgis būtinai stengiasi
per jį šalia.
Taigi, mes prognozuojame, kad maždaug trečdalį arba pusę klausimus
bus siunčiami asmeniškai, ir mes pasistengsime laupti
kiek pusę arba daugiau elektroniniu būdu,
darbo valandomis.
Ir mes toliau naudoti Aptarti
per savaitę, taip pat.
>> Ir galiausiai, suprantame, kad šis kursas gali būti verčių atitikimo / neatitikimo.
Taigi, jei esate ant tvoros ar tiesiog manote, kad esate tikrai
not sure, jei tai pasaulis jums, ar tai tikrai
gana užsienio jums, suprasti, kad tai yra puikus būdas
įgyti šiek tiek žingsnis į pasitikėjimą
klasė, kaip ir aš, atvirai kalbant, metų.
Ir tada jau penkias savaites rūšiuoti išsiaiškinti
sau, jei norite likti atitikimo / neatitikimo, pereiti į laišką,
laipsnio, ar panašiai.
Ir paprastai atitikimo / neatitikimo nėra, manau, studentams yra
, kad, jei jūs įtraukėte, kad 10 valandų, 20 valandų, kokia ji
gali būti dėl tam tikrų problemų, ir tranko galvą
prie sienos,
ir tikrai tiesiog negali persekioti kažką žemyn, ir jūs
turi tiek daug kitų dalykų, kuriuos reikia padaryti, sąžiningai, ką aš
galvoti perduoti / nesugeba yra, ji mano Naostrzyć
situacijose, kaip kad.
Jei jūs atlikote dalykas, 90%, kaip.
Jūs žinote, tai ne visai tobulas.
Bet jūs turite daug iš jo, vis dėlto.
Todėl mano, kad atitikimo / neatitikimo suteikia jums, kad
psichikos modelis, galbūt.
>> Viskas gerai, todėl praėjusią savaitę mes panėrė į nulio, o mes
kalbėjo apie programavimo gana aukštos grafinę.
Ir šiandien mes pereiti prie kalba,
vadinamas C ant apatinio lygio programavimo kalba
kurį daugelis šiuolaikinių kalbų pastatytas, įskaitant kai
tie mes naudosite link termino pabaigos.
Ir sintaksiškai, ką jie atrodo
yra labai panašūs.
Taigi, pradėkime padaryti šį perėjimą čia.
Taigi tai buvo programa, praėjusią savaitę buvo paprasčiausias
hello world programos.
Jis tiesiog spausdinami į ekraną hello world,
mažai kalbos debesėlio išeina iš kačių.
Na, jei mes pradėsime dabar versti į kitą
kalba, suprantame, kad idėjos šiandien ir trečiadienį
yra identiški, tačiau sintaksė pradeda keistis.
Taigi, kadangi praėjusią savaitę mes turėjome pasakyti, kai paspaudėte, žalia vėliava
Hello world.
Šiandien mes ketiname turėti int, Main, tuštumą, printf,
grąža, su kai kuriais kitais sintaksė ten taip pat.
Garbanotasis petnešos, ir skliaustus, ir citatos, ir Papuošalą.
Bet suprasti, kad idėja, čia esmė yra spausdinimo,
ir galiausiai tai, kad pagrindinis dabar vyksta
tapatinama su programos pradžios.
Pagrindinis ketina būti ten, kur žalia vėliava prasideda ko ne.
>> Taigi dabar galime erzinti išskyrus kai iš pastato blokus čia
kol mes pasinerti į kai kuriuos konkrečius pavyzdžius.
Taigi, mes vadinami šis pareiškimas praėjusią savaitę, kai jis tiesiog
komanda.
Tai padaryti - šiuo atveju pasakyti hello world.
Na C, jei pažvelgsime tik tos linijos, tai yra, kaip mes
ketina pradėti pareikšti, kad ypatingą įspūdį:
printf ("Hello world");.
Ir dabar mes erzinti tai, išskyrus vis daugiau ir daugiau, laikui bėgant,
bet suprantame, kad yra modelis čia.
, Kad vienas, mes turime šis dalykas vadinamas printf, kuris yra
iš esmės analogiškas žodžio Pasakykite.
Tai, ką ji ketina daryti.
Printf, ir f čia reiškia "suformatuotas".
Taigi, jis tiesiog reiškia, kad jūs galite įterpti
įvairios estetinės detalės.
Taigi citata citatos, ką mes ketiname pradžia
pradėti skambinti eilutę.
Žodis, frazė, sakinys.
Programavimo kalba eilutė yra lygi nuliui, seka
ar daugiau simbolių.
Taigi, h-e-l-l-o, kablelis ir tt,
citata citatos, seka.
Ir dabar Backslash n šiek tiek sintaksiškai keista, bet mes
jau nustatyta, kad praėjusią savaitę, tai reiškia ką?
Tai tiesiog nauja linija.
Tai tiesiog būdas perteikti prie kompiuterio norite
ekvivalentas pataikyti Enter ten, bet jūs neturite
norite, kad iš tikrųjų paspauskite "Enter", todėl sujaukti visus
formuoti jūsų faktinis programos.
Dabar skliausteliuose pridėti šią eilutę, atviras skliaustas ir
arti skliaustas, o viduje tai yra mūsų eilutė.
, Nes tai, nes C ir kitų programavimo
kalbomis, dalykų, pavyzdžiui, printf imtis argumentus, arba imtis
parametrai.
>> Taigi pradėti galvoti dabar šio raudonos pasakyti bloko kaip
funkcija, kaip metodą, kaip procedūra.
Jūs tikrai gali jį vadiname viską, ko norite dabar, bet
tai tarsi miniatiūriniai programa, kuri veikia vienas
dalykas, vienoje eilutėje, ne mažiau.
Taigi printf taip pat yra tai, ką mes ketiname pradėti skambinti
funkcija, ir funkcijas, padaryti kažką, šiuo atveju -
spausdina suformatuoti eilutę į ekraną -
bet funkcijos taip pat argumentų ar parametrus.
Ir argumentai arba parametrų, ačiū, mes turime omenyje
kad jų elgesys gali turėti įtakos, ką jums perduoti
viduje skliausteliuose.
Taigi šiuo atveju, printf poreikiai bus pasakyta, ką spausdinti, ir mes
tiesiog praeiti kabutes čia eilutę, kad mes
iš tikrųjų norite spausdinti.
Ir ant galo šioje eilutėje kabliataškis yra tik
istorinis nepatogumų, kai daugelio eilučių kodo pabaigos,
kabliataškis, kad super aišku prie kompiuterio
kad šią kodo eilutę baigiasi čia.
Dabar tai yra gerai, nes, kaip matysime, kaip programos gauti daugiau
sudėtingas, kabliataškiu super aišku mums žmones,
taip pat kompiuteris, kur kodo pradžios ir pabaigos linijos.
Suprantu, kad kai kurios kalbos neturi kai
iš tų pačių detalių.
Ir iš tiesų, "JavaScript", jūs ne visada reikia ką nors
kaip kabliataškiu.
Tačiau daugiau apie tai turi ateiti.
>> Taigi kilpos.
Mes turėjome kažką panašaus į tai, labai intuityviai, akivaizdu, padaryti
kažkas vėl ir vėl ir vėl.
Norėčiau išleisti kojinių, arba saying hello, šiuo atveju.
Na, pradedant nuo šiandien, C, mes galime išreikšti Tai nulio
blokuoti, o (teisinga) printf ("Hello World").
Taigi pastebėsite, mes pradedame statyti pažodžiui galvosūkį
gabalas iš anksčiau.
Mes turime tą patį raudonos blokas, bet jis viduje
skliausteliuose Visada blokas, ir geriausias būdas versti, kad
C yra taip.
Yra ne Visada raktinį žodį.
Jūs negalite tiesiog įveskite f-o-r-e-V-e-R C.
Taigi artimiausias analogas, o.
>> Dabar while (true) atrodo šiek tiek kvailas, nes vertė
tiesa kada nors pakeisti?
Turbūt nėra.
Tai tarsi sakydamas, o vienas, tuo tarpu, o tiesa.
Tai visi tą patį, tiesa yra visada.
Taigi šis ciklas yra iš tikrųjų paskatinti Kokios kilpa?
Tiesiog begalinis kilpos, teisė.
Visada kilpa arba, kaip mes pavadino jį praeitą savaitę,
tiesiog begalinis ciklas.
Todėl kartais, kad blogai.
Kartais, kad yra klaida, kartais tai kodėl jums
verpimo paplūdimio kamuolys arba smėlio laikrodis ar panašiai.
Tačiau šiuo atveju, mes sąmoningai dėl kokių nors
priežastis, norėjo spausdinti tą patį vėl
ir vėl ir vėl.
Arba tuo atveju, pavyzdžiui, žiūrėti, jūs norite daryti
kažkas vėl ir vėl ir vėl.
Tiek begalinis kilpos gali prasmės.
Ir tai, kaip C, mes galime išversti Visada kodą.
>> Taigi, dabar tai vienas šiek tiek daugiau specifinių.
Mes turėjome kartoti 10 kartų šį pareiškimą.
Taigi while (true) nėra gana ten dirbti, nes tiesa yra
visuomet tiesa.
Taigi, jei mes vietoj pažvelgti C versija, dabar sintaksė gauna
šiek tiek daugiau paslaptingas.
Bet turi būti sąžiningi, kai jūs pradėsite matyti, visa tai gauna
gana susipažinę greitai.
Taigi, tai yra tai, kas vadinama už linijos.
For ciklas vyksta pasakyti kompiuterio kažką daryti
vėl ir vėl ir vėl tol, kol
šie dalykai yra tiesa.
Dabar ką mes turime galvoje, kad?
Na, yra trys dalys kilpa, ir mes ketiname
grįžti prie šio kontekste faktinės
pavyzdžiai vienu metu.
Taigi nesijaudinkite, jei jis ne visai nuskandinti į visus iš karto.
Bet int i = 0, ilga istorija trumpa, sakydamas, duok man
kintamasis, kuris tipo sveikasis skaičius, todėl man duoti numerį
vadinamas i ir inicijuoti iki 0.
Tai duok man kaip Algebrinė kintamasis X ir
inicijuoti 0.
Tačiau šiuo atveju mes vadinami Tai aš.
Tada per vidurį, ji sako, man yra mažesnis nei 10.
Tai pasako kompiuteriui, šią stuff taip ilgai
kaip aš yra mažesnis nei 10.
Ir, žinoma, prasideda mažiau nei 10, nes
jis prasideda nuo 0.
Tada galiausiai, jūs galite turbūt atspėti, ką aš + + priemonėmis.
Tai šiek tiek sintaksę, kad tik reiškia, prieaugio i.
Taigi pridėti 1 i, vėl ir vėl ir vėl.
>> Ir taip, kaip matysime šio ciklo, šį sintaksė, o, vykdo
tiksliai tą patį, kad, tiesą sakant, Scratch buvo tiesiog
daug lengviau išreikšti.
Pakartoti 10 ir baigsite.
C, ir daugelyje programavimo kalbų, mes turime būti
šiek tiek daugiau pamokantis į kompiuterį ir iš tikrųjų
nurodyti kažką panašaus į tai.
Bet mes grįžti į šio ir kitų sintaksė.
>> Ką apie kintamiesiems?
Nulio, mes turėjome kažką panašaus į šiuos oranžinės blokų,
kur galėčiau paskelbti kintamąjį.
Tegul savavališkai skambinti jai pakenkti.
Leiskite inicijuoti 0, o tada
tegul amžinai kažką daryti.
Šiuo atveju nulio aš sakau skaitiklis, todėl
katė ketina turėti šiek tiek kalbos burbulas, kad kalbėjimo
skaičių, kad į šį kintamąjį rodiklį.
Ir tada mes turime pakeisti skaitiklį 1.
Taigi visa tai yra įvyniojami viduje amžinai spyna.
Taigi, mes jau dabar besiremiančios C
versti.
>> Vienas iš būdų mes galime padaryti, kad tai yra.
Duok man sveikasis skaičius, vadina jį skaitiklis.
Inicijuoti iki 0
ten pirmoje eilutėje.
While (true), todėl aš vagia, kad idėja tik akimirką
atgal, eiti į priekį ir atlikite šiuos veiksmus.
Atsispausdinti skaitiklis, tada prieaugio skaitiklis
vėl, ir vėl, ir vėl.
Ir vėl + + tiesiog reiškia, 1 Pridėti į kažką.
Bet yra naujas gabalas sintaksė čia.
Ką šokinėja kaip nėra tarp mūsų ankstesniuose pavyzdžiuose?
Taip, tai% d.
Taigi, gal galite daryti išvadą, ką tai daro, tiesą sakant, remiantis
apie tai, kas įbrėžimams blokas daro.
Bet vėl C, mes tiesiog turime būti šiek tiek daugiau ypač
kai jis ateina į išreikšti save.
>> Taigi printf ("% d \ n").
Na dauguma, kad mes galime išmesti kaip pažįstamas.
Kabučių tiesiog reiškia, kad jis eilutė, Backslash n
yra tik nauja linija.
Taigi vienintelis naujas dalykas čia yra% d.
Ir visa, kas yra vietos rezervavimo ženklas.
% D pažymėti dešimtainį skaičių.
Ir% d tai kompiuteris, įdėti dešimtainį skaičių.
Na, ką numeriu jūs norite įdėti?
Na, kaip jūs galbūt gali daryti išvadą, po kablelio, mes sakome,
skaitiklis, tai kintamojo pavadinimas, kuris deklaruojamas arba
sukurta pora linijos anksčiau.
Kad tai tik C būdas prijungti į kintamąjį į
eilutė dinamiškai.
Nes priešingai, jei aš buvo, o ne padaryti kažką panašaus
tai, printf ("skaitiklis"), kas tai
programa, o ne padaryti, matyt?
Tai bus tiesiog atspausdinti "skaitiklis".
Kuri yra ne poveikis, kad aš noriu.
Man reikia pakeisti tam tikra skaitinė vertė.
Taigi, mes pamatysime, kad funkcijos tada, kaip printf, gali užtrukti ne
tik šiek tiek atskiri argumentai, pavyzdžiui,
"Hello World".
Jie gali būti citata Unquote kablelį, tada kai kurių kintamųjų,
, kad bus gauti įjungtas į, kaip matysime ankstesnę eilutę
per šių% gestų vietos rezervavimo ženklai.
>> Na, kas apie Būlio išraiškos?
Būlio išraiškos buvo šios vertybės, true arba false.
Taip arba ne.
1 arba 0.
Įjungti arba išjungti.
Taigi nulio, jie atrodo, kaip šis, ir pastebėsite, kad
iš apačios blokas čia iš tikrųjų yra jungtukas
du mažesnius blokus.
Taigi I rūšies tempia ir nukrito tris įspūdį
kartu padaryti, kad ilgiau įspūdį, kad aš
gali perteikti idėją, kad aš noriu, kad x negali būti mažesnis nei Y ir
Y mažiau nei z.
Ir todėl aš gali versti šias dvi atskiras eilutes taip.
Viršutinis gali būti labai funkcionalumą lengvai išverstas į C,
tik su x <y.
Gal su kai gera priemonė skliausteliuose.
Ir tada C, jūs neturite rašyti ir žymėti
kartu kažką.
Jums, o ne rašyti &&.
Ir kaip mes galų gale pamatyti, vienas Ampersand atsitinka
reikšti kažką kita.
Taigi && tiesiog reiškia idėją.
>> Taigi dar kartą, nors tai pradeda atrodyti gana sudėtinga,
vienas iš įvedimo nulio, be
tiesiog ant rampos, kur jūs galite padaryti įdomus rūšiuoti
kažkas, kad labai grafinis ir animacinis, ir
dienoraščių ir panašūs dirbiniai, taip pat perteikti idėją, kad
visų idėjų, mes pradedame pasinerdamas į šiandien ir pirmyn
buvo užfiksuotas net, kad paprastas
sąsaja, nes vieną dieną.
Kaip apie šį vieną čia?
>> Taigi, sąlygos.
Taigi Scratch bloko kairėje, ten atrodo
šiek tiek sudėtingesnis.
Bet tai tik kai velkant ir
nuleisti pažįstamais gabalus.
Jei x yra mažiau nei y pasakyti.
Else if x yra didesnis nei y pasakyti.
Kitur, mes galime logiškai manyti, jis padarė išvadą, kad
jie turi būti lygūs.
Taigi sako, kad jie yra lygūs.
Dabar C dešinėje, toje pačioje tiksliai dalykas.
Ir pastebėjo, kad garbanotieji petnešų bus
bruožas C ir kitomis kalbomis, kad tai padaryti rūšiuoti
Inkapsuliacija.
Lygiai kaip ir, jei blokas tai geltona dalykas tai tarsi
greiferiniai raudonos bloko viduje.
Taip pat yra šios petnešos -
šie garbanotieji petnešų -
skirtas įsivaizduoti tą pačią idėją, apimantis vieną ar daugiau
kodo eilučių, kurie yra Indented viduje.
Taigi dešinėje pusėje, jei x mažiau nei y, printf
("X yra mažiau nei y").
Else if x yra didesnis nei y, spausdinti tas pats.
Kitas spausdinti, kad jie yra lygūs.
>> Taigi trumpai tariant, yra gana tiesioginis žemėlapių ar vertimas
kalba, mes matėme iki šiol, įskaitant kai
daugiau sudėtingų funkcijų.
Todėl jūs galite naudoti šį savo projektą, arba gali nebūti
naudoti savo projektui šią savaitę.
Bet mes turime šie dalykai vadinami masyvo C. nulio
jie vadinami sąrašus.
Ir mes matėme tai su Fruitcraft RPG praėjusią savaitę.
Mėlyna vaikinas, kad vaikščioti aplink, įlaipinami
vyšnios ir apelsinai ir panašūs.
Na nulio, kad buvo įgyvendintas su šiuo oranžinė
blokas, kuris yra žodžių, šiuo atveju, mes tiesiog
pridurdamas, kad "oranžinė"
kintamasis vadinamas sąrašą.
Taigi C, šį sintaksė ketina gauti šiek tiek paslaptingas.
Ir mes grįžti į šią kitą savaitę ir padaryti daugiau
įdomių dalykų pasaulyje Kriptografija su juo.
Bet čia, apačioje šias dvi eilutes, iš esmės
išversti į ką mes darome vienoje nulio blokuoti ten.
Tačiau daugiau apie tai turi ateiti.
>> Todėl pradėti jį kartu, čia yra programa, C. Taigi tegul
greitai erzinti išskyrus kai čia sintaksės vienetų, tačiau
tada tegul iš tikrųjų pradėti rašyti tam tikrą kodą, susipažinti
su kai kurių įrankių, kuriuos naudosite, ir pamatyti, jei mes
dabar gali remtis kai kurie iš šių pagrindinių pastato blokus
praeitą savaitę, dabar sintaksiškai C. Taigi čia viršuje,
yra turbūt vienas iš labiausiai nuobodu programų jums gali
rašyti beveik bet kuria programavimo kalba.
Tačiau tai tarsi turi ypatingą reikšmę, nes jis
kanoninė programa, kuri bet kurio kompiuterio, mokslininkas rašo, kai
mokymo kam nors programavimo kalbą -
hello world programa.
>> Taigi, pačiame viršuje, mes matome šį sąvoka # include
ir tada, kampu skliausteliuose, stdio.h.
Mes ketiname grįžti į, kad, bet tikrai tai, ką, kad
reiškia, kad yra šiame pasaulyje failas vadinamas standartiniu
I / O, stdio taškas h, ir tai tik tekstinis failas,
Kažkas rašė metų.
Ir viduje šio tekstinio failo yra visa krūva
funkcijas arba metodus, ar procedūros, kad kažkas kitas
rašė, kad mes esame paramos gavėjai, nes mes
dabar gali naudotis to asmens kodą.
Funkcijos jis parašė.
Šiuo atveju, printf nėra kažkas, kad aš parašiau, tai
ne kažkas, kad CS50 rašė.
Tai kažkas, kad kažkas rašė metų ir dėkite į
failas, kuris vadinamas stdio.h ir tada, žemę, įdėti
kitą į kitą failą funkcija dalis.
Bet mes ten patekti.
>> Taigi, # include yra tik mūsų būdas pasakyti,
C suteikti man prieigą prie funkcijų, kad kažkas ją parašė.
Ir šiuo atveju man rūpi, nes aš noriu printf.
Dabar mes int main (void).
Taigi tai yra vienas iš šių dalykų, atvirai, kad ir 0 dieną,
gana daug aš zonoje out rūšis, nes tai tik
neįdomu
intelektualiai, kai sintaksę.
Bet dabar žinome, kad funkcijas, kitaip žinoma kaip
procedūrų ar metodus, paprastai gamina tam tikrą vertę.
Jie kažką daryti.
Jie sugalvoti atsakymą.
Jie gaminti produkciją.
Taigi int šalia pagrindinės yra tik mūsų stenografistų būdas pasakyti
kad ši funkcija, ši procedūra galiausiai
duos jums atgal numerį.
Ir kodėl taip yra, mes grįžti į.
Pagrindinis yra tik numatytasis pasauliniu standartu pagal nutylėjimą
funkcija, kuri ketina gauti C programos, kai vykdomas
jį paleisti.
Void tiesiog reiškia tai, ką, pagrindiniai trunka ne
argumentai, šiuo atveju.
Taigi, aš super aiškus.
Nėra jokių ten stygos, nėra jokių kablelių.
Void reiškia, kad nėra argumentų to main.
>> Dabar galiausiai, laimei, dvi paskutinės eilutės yra susipažinę.
Viduje klamrami mes printf
ir mes turime grąžinti.
Ir grąža yra natūra gaila, kad mes turime
padėkite jį ten, nes šiuo atveju tai ne daro viską, kad
daug interesų.
Tačiau į kompiuterinę programą, kai funkcija grąžina 0,
tai reiškia, kad viskas yra gerai.
Nieko nutiko.
Priešingai, jei funkcija grąžina 1 ar neigiamą 1, arba
neigiamas 1337, arba, pavyzdžiui, kad kai kurie atsitiktiniai skaičiai, kad
paprastai reiškia, kad iš tikrųjų įvyko klaida.
Taigi, jei jūs savo Mac ar kompiuteriui, jei jūs kada nors matė
kai erzina pranešimas, nes jūsų kompiuteris sudužo arba
sušaldyti, ir yra paslaptingas klaidos pranešimas,
ir tada kai kodas, kaip sistemos kodas
1,2,3,4, kai skaičius,
kad paprastai yra detalus pasakyti
dauguma mumyse, bet tai, ką kai kurie funkcija arba kai
programa iš tikrųjų sugrįžo, ne nulinės vertės.
Ir tai privalumas yra tai, kad 0 reiškia taip pat ir
tada jūs iš esmės turite begalę dalykų, kad
gali suklysti.
Kuris yra, kodėl jie pasirinko 0 gera ir ne nulinė vertė
blogai, kaip mes netrukus matysime.
>> Taigi eikime į priekį ir rašyti.
Taigi priminti, kad kitą dieną aš naudojamas mano Mac atverti
terminalo langą, tada aš atvėrė teksto programą, kaip
TextEdit, ir aš pradėjau rašyti tam tikrą kodą.
Gerai, kad viskas gerai.
Bet jūsų patirtis bus kitaip "Mac" arba
Solaris kompiuterio, Linux kompiuterių, nepriklausomai nuo operacinės
sistema jums atsitiktų būti naudojant.
Ir taip, žinoma, tai, ką mes vietoj naudoti yra kažkas,
vadinamas CS50 prietaisą.
Taigi CS50 Appliance gabalas programinės įrangos, yra atsisiunčiama
kuri leidžia jums paleisti operacinę sistemą, vadinamą "Linux",
specialiai Fedora Linux į savo Mac arba PC.
Ir jums tai padaryti, atsisiųsti kažką vadinama hypervisor.
Taigi, visa tai bus dokumentuojami problemą, 1.
Ir jums bus vadovaujamasi į tai, ką jums reikia atsisiųsti.
Bet galutinis rezultatas, ar turite Mac arba PC,
parsisiųsti kai laisvos programinės įrangos.
Jūs tada atsisiųsti CS50 Appliance, ir jums pasakyti, kad
nemokama programinė įranga - hypervisor -
CS50 Appliance lange savo kompiuteryje paleisti.
Ir kas atsitinka, tai.
>> Aš jau pastebėsite čia, kas atrodo, kad darbastalio
aplinka.
Ir leiskite man iš tikrųjų trauktis šį vieno langelio ".
Taigi tai dabar yra mano Mac, čia su šiek tiek langą ir viduje
šio lango atsitinka būti visiškai
kitos operacinės sistemos.
Iš tiesų ten tai start meniu žemyn čia, primenantis
Langai, kad yra visa krūva antriniuose meniu, įskaitant
nuoroda į CS50 vadove, išsiskleidžiančiame langelyje ir panašios.
Ir ką ši aplinka dabar yra standartinė aplinka
kad mums visiems dabar gali naudoti, kad nesvarbu, ką jūsų
kompiuteris yra tai, ką jūs įdiegėte apie tai, kokia versija
Mac OS arba Windows vykdote, mes visi dabar turi
ta pati aplinka.
Ir dabar šioje aplinkoje gali pradėti rašyti tam tikrą kodą.
>> Taigi, aš ruošiuosi eiti į priekį ir atidaryti programą, pavadintą gedit.
Tai yra panašus į Notepad.exe arba
TextEdit "Mac".
Ir tai tik super paprasta teksto redagavimo programa
kad atrodo taip iš pirmo žvilgsnio.
Dabar pačiame viršuje, turiu baltą paletę apačioje
šis juodas langas, kuris sako jharvard @ prietaisą.
Ir tai todėl, kad vartotojo abonementą, kad mes iš anksto sukurtą
visiems vadinamas John Harvardo.
Jis turi aplanką, kuriame visi jo failus ketinate eiti, ir
čia, kur mes galime pradėti rašyti tam tikrą kodą.
Taigi leiskite man eiti į priekį ir tik šiek tiek padidinti, ir aš
ketina padaryti # include , int main (void), ir
tada aš ruošiuosi daryti printf ("Hello World")
; Return 0.
Dabar tai yra gana juoda ir balta.
>> Leiskite man eiti į priekį ir padaryti vieną dalyką mokyti gedit, ką aš
iš tikrųjų daro.
Leiskite man eiti Įrašyti kaip.
Aš ruošiuosi pasirinkti kairėje pusėje čia jharvard.
Taigi dar kartą, net jei jūs niekada nesinaudojo Linux prieš, tiesą sakant
šių dienų, visi jie yra perduodant į iš esmės
tos pačios rūšies sąsaja -
"Mac OS", "Windows" ir "Linux".
Todėl aš nusprendė jharvard namųaplanko čia.
Ir aš ruošiuosi išsaugoti šį failą kaip hello.c.
Taigi, pačiame viršuje, aš įvedėte hello.c pavadinimų C
programą su C pratęsimo
kas yra įprasta praktika.
Ir aš paspauskite "Išsaugoti".
Ir dabar, kas malonu, kad aš veiksmingai mokoma gedit,
kad tai C programa.
Atkreipkite dėmesį, kad mano juoda ir balta tekstas dabar spalviniu kodu, arba
sintaksė pabrėžė, kuri tiesiog atkreipia mano dėmesį į
skirtingos semantinės programos dalis.
Paliko ten, viršuje, kaip mano programos gauti daugiau sudėtingas, aš
ketina turėti visų dalykų, aš raštu santrauką.
Taigi, kad jis ten.
Taigi, leiskite man dabar nutolinti ir eiti į šio terminalo lange.
>> Taigi tai yra galbūt naujas daugeliui žmonių.
Jei Jūs niekada naudojamas komandinės eilutės aplinkoje, jūs niekada
naudojamas DOS, ar Jūs niekada naudojamas Linux, ar jūs niekada atidarytas
Mac OS terminalo langą, ten yra daug dalykų
galėtų padaryti su GUI, pavyzdžiui tokius kaip parodymas ir paspaudę,
vilkdami, ir nuleisti, ir panašūs, tačiau paprastai
žinoma, informatikos pasaulyje -
naudodami komandų eilutę, kur jūs neturite pelę
paprastai, jūs turite tik klaviatūra, yra iš tikrųjų daug
galingesnis nei sąsaja, kai jums prisitaikyti prie
skirtingų komandų.
Ir jūs tarsi išsilaisvinti reikia atkreipti ir spustelėkite
ne viskas.
Taigi gedit mes rūšiuoti turėti geriausią iš abiejų Pasaulių.
Mes galite nuvilkti tekstą, mes galime matyti
gražus ir spalviniu kodu.
Bet kai ateina laikas paleisti mūsų programą, mes kartais galime
tiesiog naudokite nedidelį langą.
>> Taigi, aš ruošiuosi eiti į priekį ir tai padaryti.
, Apatiniame juoda ir balta langą, aš ruošiuosi eiti į priekį
ir rašyti Apsukite metalinis garsas.
Apsukite metalinis garsas yra kompiliatorius vardas.
Tai programa, kuri konvertuoja savo šaltinio kodą
taip, į objekto kodas.
0s ir 1s, kad mes matėme trumpai praėjusią savaitę.
Prisiminkite, praeitą savaitę, mes pažadėjo, kad mes ketiname
eiti kažką panašaus į tai - mums reikia
kažkas panašaus į tai -
ir tai tikrai nėra kažkas, kad žmogus vyksta
padaryti rankiniu būdu.
Taigi, vietoj to, mes ketiname naudoti programa, ir kad programa
šis atvejis vadinamas Apsukite metalinis garsas.
Ir mano programos pavadinimas yra hello.c.
Taigi, siekiant surinkti hello.c iš išeities kodo į
objekto kodas arba 0s ir 1s, jis turėtų pakakti tiesiog padaryti
ir paspauskite "Enter".
>> Gerai, niekas, atrodo, atsitiko.
Bet aš žinau, dabar, ar iš praeitą savaitę, kad numatytasis pavadinimas
kvailai vadinama programa, parašyta C, a.out.
Labiausiai neįdomu vardas, kurį gali sugalvoti.
Yra pirmoji abėcėlės raidė, tai, kas buvo
išvesti, bet tegul bus taip.
Tai mano programa, o dabar taškas įstrižas brūkšnys, kaip matysime, yra
iš tikrųjų tik saugumo funkcija rūšiuoti, nes
a.out yra programa, aš parašiau.
Jis neateina su savo kompiuteriu, tai
ne Program Files.
Tai ne "Mac OS" Applications aplanke.
Man reikia itin tiksliai su kompiuteriu, ir pasakyti,
ši programa, a.out, yra šiame aplanke,
einamojo katalogo.
Ir tai, kaip jūs atstovaujate tai, kaip šis aplinkoje
yra taškas reiškia bet kokio aplanko, kurį šiuo metu esate in
Ir tt. / Tiesiog reiškia paleisti a.out
dabartiniame aplanke.
Ir aš paleisti su "Enter", ir voila, mano pats pirmas programos.
>> Dabar leiskite man žengti žingsnį atgal.
Šis langas yra šiek tiek mažas, ir suprasti, kad apačioje
liko prietaiso čia yra kita piktograma.
Vienas iš jų yra "Chrome", kuri turėtų būti pakankamai susipažinęs, tik interneto
naršyklė viduje prietaiso.
Ir tai yra tik juoda ir balta piktograma
didesnis terminalo langą.
Taigi, jei jis gauna šiek tiek erzina, rūšiuoti turėti tik
ši maža maža lango gabalas, su kuriuo bendrauti
su programomis, Vietoj to mes galime tai padaryti.
O dabar leiskite man pradėti rašyti mažai greičiau
būti susipažinę komandos.
ls.
Taigi LS yra komandų sąrašą.
Mac OS arba Windows galėtumėte paprastai dvigubai pelės mygtuku spustelėkite
aplanką, tada, voila, jūs matote iš įvairių failų
ir aplankus.
Komandinės eilutės aplinkoje, kur jūs galite tik tipui
komandas arba tekstas, ls yra lygiavertis.
Taigi, parodykite man, kas yra šiame kataloge.
>> Dabar yra daiktų krūva, kad čia tiek mažai
susipažinę ir šiek tiek susipažinę.
, Tačiau atkreipkite dėmesį, kad kaip ir "Windows" ir "Mac OS jharvard
darbastalio aplanką.
Taigi visus, kurie yra ant mano darbastalio piktogramos atsitikti
būti tame aplanke.
Yra atsisiuntimų aplanką, stuff, kad
Chrome "gali įdėti ten.
"Dropbox".
Todėl įrenginys ateina su built-in paramos ZMI
kad per semestrą, galite sinchronizuoti su savo ZMI
sąskaitą, kad visi iš jūsų programų kopijos.
Jie prieinami dėl kitų savo kompiuteryje.
Jei kas nors kada nors negerai su prietaisu, galite
labai lengvai atkurti ZMI.
Taip, kad aplankas ten.
Yra du failus, kad aš padariau - hello.c
a.out.
Ir tada į dešinę, yra keletas kitų aplankų, kad mes
gauti link semestro pabaigoje, su interneto
programavimas.
Taigi, kai aš. / A.out, įveskite, kad sako eiti
į katalogą aš, dabartinę direktoriją ir paleiskite
programa, vadinama a.out teisę ten.
>> Viskas bus gerai, kad gražus ir geras, bet tai dar ne viskas, kad
įtikinamų parašyti programą, pavadintą padėti a.out.
Taigi, mes galime iš tikrųjų tai padaryti šiek tiek kitaip.
Taigi, užuot tiesiog veikia Apsukite metalinis garsas, hello.c Pridėkime
tai, kas vadinama komandinės eilutės argumentas.
Taigi, komandų eilutės argumentas, arba šiuo atveju jungiklis yra tik
kitas žodis ar frazė, kad įvedate greitai po
programa, kurią norite paleisti.
Taigi šiuo atveju, Apsukite metalinis garsas yra programa, aš noriu paleisti, o
reiškia išvesties failas, kuris nebėra vadinamas a.out.
Išvesties failą pavadinimu hello, padaryti kaupimo
paskutinis žodis ant linijos, hello.c.
Taigi trumpai tariant, tai yra labai menkas gamybos patobulinimas, kuriuo
užuot šią kvailai pavadintas failą a.out,
Apsukite metalinis garsas dabar galiu padaryti-O labas, tada hello.c, ir
tada paspauskite Enter.
Niekas, atrodo, kad taip atsitiktų, bet vėl, panašiai kaip su 0 -
niekas, atrodo, kad taip atsitiktų, tai reiškia, kad nieko blogo nutiko -
tad dabar daryti ls, "Enter", ir iš tiesų aš dabar
Apie programą.
Taigi, jei aš įvesti Apie command not found.
Gerai,. /.
Taigi visiškai teisus.
Todėl, kad aš parašiau šią programą, ir jis nebuvo su
kompiuteris / hello, "Enter", reiškia,
Aš dabar veikia hello.
>> Taigi, kad jis ten.
Dabar ką mes galų gale gauti daugiau ir daugiau komandų eilutės
argumentai, kurie leidžia mums padaryti daugiau, bet tik tiems,
kuriam šis tyrimas gali būti sena skrybėlę, leiskite man iš tikrųjų eiti į
katalogas čia ir tiesiog suteikti jums kaip kitaip mes erzintoją
gali eiti apie Hello world įgyvendinti.
Leiskite man eiti į čia, ir aš norėčiau, kad jį atidarytumėte.
Taigi, iš tikrųjų, aš norėčiau paaiškinti, ką aš darau, kad
tai yra naudinga.
Leiskite man atgal į viršų.
>> Todėl aš tai daryti ilgai.
Taigi pastebėti per dešinėje pusėje yra pora
katalogų, kad keistai pavadintas source1m ir source1w.
Tai tiesiog kvaila konvencija mes naudojame.
Šaltinis tiesiog reiškia, kodą, 1 reiškia, kad tai pirmąją savaitę, ir
m reiškia, kad pirmadienis, ir W reiškia, kad jis trečiadienis.
Taigi nieko paslaptingas ten.
Tai tiesiog sutrumpinimas notacijos.
Šios mėlynos dalykų yra aplankai, kitaip žinomas kaip
katalogų.
Aš noriu eiti į tą aplanką dabar, ir įprastą kompiuterį
Galėčiau tiesiog dukart spustelėkite aplanko piktogramą ir
ten visi mano failai.
Bet komandinės eilutės aplinkoje, galiu ne visai daryti
kad, todėl vietoj, turiu rankiniu būdu pakeisite aplankus.
Taigi, jei aš tipo CD ir source1m, Enter, pastebėsite, kad
mano raginimas, baltai dalykas, kairėje, tiesiog pasikeitė.
Ir iš tikrųjų, kai jis tik pasakė, skliaustus ir tada
mažai squiggle, tildė simbolis, kad tik reiškė, buvau
Džono Harvardo namų kataloge, Mano dokumentai,
jo asmens bylos.
Bet dabar skliausteliuose ji sako ~ / source1m.
Tai tiesiog reiškia, kad aš į aplanką, pavadintą source1m
, kad John Harvardo namų kataloge.
Taigi, jei aš dabar noriu į sąrašą failus į šį aplanką, lengvai
klausimas, aš tipo tik ls.
Ir dabar matau visus failus, kad aš iš anksto sukurta šiandien
paskaita, kurios visos arba kurių dauguma atsitikti,
baigti c.
>> Taigi leiskite man eiti į priekį ir paleisti programa, vadinama gedit
holloway.c, kuri yra parašyta keletas atsitiktinių hakeris
internete, kad atrodo šiek tiek panašus į šį.
Ir mes neketiname eiti per šį vieną, bet
detalė, bet tiems, patogesnis, ypač, jei
norite priimti atspėti, ką ši programa daro čia.
Būkite tikri, ar esate daugiau ar mažiau patogiai,
mes ne gauti net šis dalykas rūšiuoti pagal pabaigoje
šį semestrą.
Tai kas klaidinančiu C konkursas, pavyzdys
priemonė rašyti neaiškūs ieškote programą, kurią galbūt
gali pralenkti kitų protingų žmonių, kurie panašiai
bando rašyti dalykus ir parodyti, kad jie gali rašyti
daugiau paslaptingas dalykų, nei jums.
Taigi, tai nėra gerai parašyta programa nuo pavyzdys
stiliaus perspektyva, tai yra programa, kuri pavyzdys
laimėjo konkursą, žmonių bando
neaiškiai ir abstrakčiai.
>> Taigi, jei mes paleisti šį dalyką, leisk man eiti į mano terminalo lange,
taip sakant.
Taigi, tai juoda ir balta aplinka yra vadinamas
paprastai terminalo langą.
Leiskite man eiti į priekį ir kaupia jį.
Aš ne ketinate naudoti Apsukite metalinis garsas, nes ši programa yra
šiek tiek paslaptingas ir ji turi skirtingas
sudarytojas, vienas vadinamas Persijos įlankos.
Bet tai nėra tas pats.
Kodą į objekto kodo.
Ir dabar, jei aš paleisti a.out, ši programa jums
tik pamačiau tai daro.
Taigi, kad kolegos tais pačiais metais laimėjo šį konkursą.
Šiaip ar taip, mes neketiname ta kryptimi, per se.
>> Todėl galime iš tikrųjų bando dabar erzinti išskyrus tai, ką mes galime padaryti
šių pagrindinių pastato blokus, kad vis daugiau ir daugiau
įdomias programas.
Taigi, mes parašęs programą, mes paleisti programą.
Dabar mes galime iš tikrųjų supaprastinti ir nebereikia rašyti
komandinėje eilutėje žodis Apsukite metalinis garsas.
Pasirodo, mūsų programos gauti daugiau paslaptingas, mes galime arba
sudėtingesnė, tačiau mes iš tikrųjų gali paleisti šią komandą.
Taigi leiskite man grįžti į savo namų katalogą, taip sakant, leiskite man
pašalinti rm Pašalinti komanda - Aš ketinate pašalinti
failą pavadinimu a.out ir Apie.
Ir dabar pastebėti komandinės eilutės aplinkoje, panašiai kaip ir
GUI, jūs gaunate pasirodys. Aš negaliu spustelėti mygtuką, nors, aš
turite įvesti Y taip, Y taip.
Ir dabar, jei aš tipo ls vėl, pranešimas, kad tie, žalia
programos - a.out ir hello
dingo.
Saugokitės rm.
Jis gali daryti blogų dalykų, kaip jūs galite, perkelkite
dalykų, savo krepšio.
>> Taigi dabar eikime į priekį - ir galėčiau tai padaryti - Apsukite metalinis garsas-o
hello, hello -
Aš jau nuobodu įvedę šią komandą.
Nors aš įvedėte jį šiek tiek greičiau.
Taigi, mes galime vietoj padarysiu Apie.
Todėl įsitikinkite, ne kompiliatorius.
Tai tiesiog draugiškas programa, kuri ateina su Linux, šiuo
- operacinė sistema -
kuri automatizuoja procesą sudarant programas.
Taigi vietoj prisiminti, Apsukite metalinis garsas-o failo vardas ir
tada taip toliau, ypač kai tas linijas gauti ilgiau ir
ilgiau, galiu tiesiog parašyti padaryti.
Ir tai vyksta išspjauti visa krūva stuff, kad
mes galų gale pamatyti šį semestrą.
, Bet pastebėsite, dabar, jei aš tipo LS, hello is mano katalogo.
Ir iš tiesų aš galiu jį paleisti. / Hello.
Taigi tiesiog automatizuoja procesą, kas buvo,
šiuo atveju, daug ilgesnis, sudėtingesnis komanda.
Taigi, mes ketiname pradėti naudoti markę, tik todėl, kad daug
patogesnę naudotojui.
>> Bet dabar galime padaryti įdomią programą
nei tiesiog pasakyti labas.
Taigi, programos, mes jau parašyta, iki šiol yra pagrindinis.
Kad tik numatytasis dalykas, kuris prasideda viską išjungti.
Tačiau yra ir kitų funkcijų, iš ten, taip pat ir
stdio.h yra dalykas, kad mes matėme ne iš mūsų geriausių
byla prieš, ir tai, kas vadinama standartinėje bibliotekoje.
Viduje standartinėje bibliotekoje yra visa krūva funkcijų
, kad kažkas parašė, ir mes galime pradėti naudoti šias
funkcijos rašyti daugiau
įdomių programų save.
>> Taigi leiskite man grįžti prie prietaiso.
Aš ruošiuosi uždaryti šį langą terminalo.
Aš ruošiuosi uždaryti rašė tai, ką mes anksčiau, ir tiesiog eiti
į hello.c, ir pastebėti, dabar galiu padaryti.
Hello world yra ne visi, kad įdomus; Norėčiau
pritaikyti šią programą sau.
Taigi, užuot sakydamas pasaulį, aš ruošiuosi
eiti į priekį ir pasakyti -
Aš galėčiau įvesti David - tačiau iš tiesų tai yra tarsi
iš esmės tas pats.
Tačiau pabandykime šią vietos rezervavimo ženklo idėją.
Prisiminkite, kad C, o printf mes turėjome šias
vietos rezervavimo ženklai, ir yra daugiau nei tik% d.
Taigi,% d, greitai normalumas patikrinimas.
Gerai, dešimtainis skaičius, kad viskas.
Skaitmenų po kablelio, štai ir viskas.
Taigi% c, kaip mes susidurti, bus simbolis.
Įdėti simbolį, raidė nuo a iki z,
ar skyrybos simbolis.
Vienas simbolis,% f, kas nors žino, iš kitų kalbų?
Taigi slankaus kablelio reikšmė.
Realusis skaičius.
Taigi, ne dešimtainis skaičius - iš tikrųjų tai yra realus skaičius su
kablelio, ir kai kurių skaitmenų skaičius į kairę
ir teisė juo.
% S, eilutė.
Kad vienas mes ketiname pamatyti gana dažnai.
Eilutė, vėlgi, yra tik žodis, frazė, seka
atskirus simbolius.
Ir galiausiai, LLD?
Taigi tai yra daugiau kampe bylos.
Ilgo dešimtosios dalies.
Taigi, jei norite ne tik skaičių, kad tai dideli,
nori didesnį skaičių, kad jūs ketinate turi nurodyti
kompiuteris, kad jis iš tikro dydžio.
>> Taigi leiskite įgnybti tai šiek tiek.
Užuot tiesiog sunku Dovydo kodą, leiskite man šiek tiek
dinamiškai pasakyti% s.
Taigi įdėti% s, kuris yra vietos rezervavimo ženklų eilutę.
Tada leiskite man padaryti kablelį, o tada "Dovydas" čia.
Dabar tai yra ne visi, kad intelektualiai įdomu,
nes aš padariau dabar tikrai sukurti daugiau darbo
kompiuterio.
O ne pasakyti kompiuterį visi vienu metu, aš dabar
suprantama, tai padaryti, ir čia įterpti eilutę, galų gale, kablelį,
čia yra, kad eilutė.
Taigi, tai nėra ryškesnis pagerėjimas, bet tai bent
žingsnis link įdomesnio programą.
Nes dabar, leisk man eiti į priekį ir padaryti šį langą šiek tiek
didesnis, leiskite man eiti į priekį ir paleisti make Apie.
Ir dabar,. / A.out nėra darbo, tai kodėl?
Gerai, dabar ji vadinama hello.
Taigi dar kartą, o taip pat su-o Apsukite metalinis garsas, pervardyti
programa būtų kažką įdomiau.
Ir voila: dabar ji sako Apie Davidas.
>> Viskas gerai, dar kvailas programa.
Taigi dabar galime grįžti čia ir įvesti sąvoką
kintamojo.
Ar nebūtų puiku, jei aš galėtų paskelbti kintamąjį
kurio tipas yra STRING?
Ir kintamojo vertė iš tikrųjų ateina iš vartotojo
jis pats.
Taip savavališkai, aš ruošiuosi paskambinti savo kintama s, kuri yra
tik bendro konvencija, kai jūs turite vieną kintamąjį, vadinamą
eilutę.
Aš ruošiuosi daryti lygybės ženklą, ir tada aš ruošiuosi skambinti
funkcija vadinama GetString.
Taigi GetString nėra kažkas, kad yra integruota į C. Tai
funkcija, kuri CS50 darbuotojai parašė, tikrai tik
Pirmasis iš jų porą savaičių, supaprastinti procesą
gauti vartotojo įvesties ir gauti vartotojo įvesties forma
stygos, arba numerius, ir tokių.
Taigi GetString kaip printf, tačiau akivaizdu, o ne
spausdinti ji ketina daryti tai, ką sako jos pavadinimas, gauti eilutę.
Bet naudoti GetString, mes ketiname padaryti pakeitimą
čia toliau.
Taigi intuityviai, ši programa, tikiuosi, vyksta kažkaip
gauti iš vartotojo eilutę, tada kas tai ketinate daryti
su ta eilutė, vadinama?
Tai tiesiog ketinate spausdinti, tiesa?
Dar neturi skatinti programa, nes visa tai vyksta
padaryti, tai prijungti į automobilio vertę į tai, kur% s
sako, kad jis turėtų eiti.
>> Taigi, tegul bent jau matyti kaip tai veikia praktikoje.
Leiskite man išsaugoti ir nutolinti.
Dabar mano terminalo lange apačioje, vienas nedidelis gabalėlis,
leiskite man dar kartą padarysiu Apie.
Gerai, ah, damn, aš gavo visa krūva klaidų.
Leiskite man slinkti aukštyn, ir matome mūsų pirmasis -
tad iš tikrųjų tai padaryti dar daugiau lange, taigi jūs
galite pamatyti, kaip blogai aš įsukus
todėl įsitikinkite, hello.
Gerai, kad nelaimė, tiesa?
Aš parašiau tris eilutes kodo ir
jis man davė 12 klaidų.
Tad kodėl tai yra?
Taigi, laimei, dažnai, kai pamatysite daug, daug klaidų
spjaudytis iš karto, tai tikrai tik todėl, kad jūs
supainiojo kompiuterį čia.
Ir ji vis dar painiojama iki to laiko jis gauna čia.
Ir todėl ji tik pradeda užkliuvimo ir susigundyti ir
spjaudytis iš dar baisesnių dalykų, nei iš tiesų.
Taigi apskritai, visada pradėkite viršuje.
>> Taigi pačiame viršuje raudona, pavyzdys
tai klaidos pranešimas.
Naudoti nedeklaruoto identifikatorius eilutę, aš
reiškia standartas?
Aš ne.
Aš reiškė eilutę, bet taip yra todėl, taip pat žodis eilutė
, kad aš nuolat žodžiu iš tikrųjų
neegzistuoja, C arba.
Tai kažkas, ką mes naudojame tik pirmą savaitę ar dvi
čia, bet jis egzistuoja failą pavadinimu cs50.h.
Taigi dabar, žinau, kad yra tas kitas biblioteka, kad
darbuotojai parašė, kad tai buvo parašyta neseniai
stdio.h.
Bet viduje cs50.h apibrėžimas, sinonimas
rūšių, kurios sukuria šį žodį eilutę.
>> Taigi dabar leiskite man eiti atgal į mano terminalo lange.
Aš ruošiuosi aišku visa ši netvarka Ctrl-L. Mes tiesiog
nuvalykite viskas švarų, ir aš ruošiuosi eiti į priekį ir padaryti
Sveiki dar kartą, "Enter".
Kas nutiko dabar?
Dabar visi šių klaidų nuėjo.
Taigi, ką aš tikrai padaryti?
Aš ką tik mokė kompiuterį, kad eilutė yra, ir tai
tame faile vadinamas cs50.h.
Taigi nustoti skųstis, nes dabar jūs žinote, kur rasti
Ši funkcija deklaracija taip sakant.
Kur jis egzistuoja pasaulyje.
>> Taigi, dabar aš ruošiuosi eiti į priekį ir paleisti programą Hello.
Man atrodo, kad begalinis ciklas, nieko, kas vyksta.
Taigi man reikia tipo kažką čia, tiesiog.
Mano programa kodą pirmoje eilutėje GetString.
Taigi tai tiesiog laukia man gauti eilutę.
Taigi šia prasme taip, tai yra begalinis ciklas.
Matyt GetString yra numatytasis elgesys, kad mes
rašė - darbuotojai -
, kad tiesiog sako, laukti ir laukti ir laukti ir laukti ir laukti,
tol, kol vartotojas suteikia jums eilutę įvedę kažkas in
Taigi leiskite man eiti į priekį ir tipas D-A-V - i-d, įveskite.
Ir ten yra, hello Davidas.
>> Dabar tai atrodo, kad tai tik aktas?
Leiskite man eiti į priekį ir įvesti Tommy.
Įveskite, gerai, atrodo, kad reikia dirbti.
Darbai Rob, darbų - Zamyla, veikia gerai.
Taigi jis ketina dirbti, greičiausiai.
Todėl ji turėtų spausdinti, ką mes iš tikrųjų duoti,
ir mes galime būti šiek tiek sunku čia.
Pažiūrėkime, jei mes darome kažką panašaus Apie.
Gali eiti per čia, galime pamatyti, kopijuoti, įklijuoti.
Aš nesiruošia, kad būtų galima įklijuoti, kad daug kartų čia.
Pasta, gerai, paspauskite SHIFT + CTRL + V. Taigi, kas galėtų
atsitikti taip, kad blogai čia?
>> Gerai, kad, segfaults.
Taip žinosite, kad kai kurie iš jūsų ankstesnių sluoksnių
paprastai, suteikiant kompiuteriai daug sąnaudų, kai jie
tikriausiai nėra skirtas gauti ilgus vardus, pavyzdžiui, tai - blogas
dalykų atsitikti.
Iš tiesų, kad interneto pasaulyje, taip pat, tai atsitinka gana nemažai,
, pagal kurią, kai jūs projektuojant svetainės, kai esate
projektavimas "Facebook", kad jūs turite padaryti savavališkus sprendimus iki
priekyje, kaip ir kaip ilgai bus kažkieno
"Facebook" vartotojo vardą?
Arba kaip ilgai bus kažkieno vardas?
Kaip ilgai bus kažkieno telefono numeris ir pan.
Ir jei programuotojai blogų prielaidas, programos pertrauka
nes bandote suteikti jiems daugiau produkcijos, daugiau sąnaudų
o, nei jie turi atmintį.
Arba RAM skyrė už tai, ir todėl, jei dabar aš paspauskite "Enter",
kad programa iš tikrųjų dirbo, nes mes buvome į biblioteką
ir mes iš tikrųjų tikimasi šiuo konkrečiu atveju.
Bet be abejo, šį semestrą, jums parašyti bent vieną
programa, kuri bus pasakyti šiuos žodžius.
Prisiminti šiuos savaites nuo dabar, o gal dvi dienas nuo dabar.
Segmentavimas kaltė yra blogas dalykas.
Jis bus kreiptis į jūs darote kažką, kad kompiuterio
nesitikėjo.
Ir tuo atveju, jūs, programuotojas, nebuvo numatyti.
Panašiai kaip, ką šis kojinių krūva, ten buvo įvairių
kampiniai atvejais mes galime susidūrė su.
Panašiai programas, jei nėra numatyti, kaip ilgai
kažkieno vardas bus.
Arba ką daryti, jei aš turiu piktybinis vartotojas, ir jo pavardė yra
tikrųjų yra gana trumpas, bet jie tiesiog bando
kad netvarka su manimi?
Kas bus mano programos elgesys?
Na, tokiu atveju, kažkas iš tiesų gali strigti.
>> Todėl galime tai padaryti.
Per 90 minučių, tai yra siaubingai ilgą laiką
padaryti, kompiuterių mokslo.
Kodėl mes gauti į įpročiai penkių minučių
pertrauka čia, ir kai mes einame atgal, mes pasinerti į kai
daugiau sudėtingų ir įtikinamų programas?
Penkias minutes.
>> Gerai.
Taigi vienas greitai komentaras.
Man buvo pasakyta, kad nors tai buvo ekrane prieš, kas
išėjo iš mano burnos buvo cs50.net/rsvp.
Tai yra teisinga. cs50.net/lunch.
Taigi, dabar galite pabandyti RSVPing ši / pietūs.
Bet tegul tai padaryti dabar.
Taigi, tai buvo super greitas, super naujas iš žmonių daug.
Sena skrybėlę kai kurie žmonės.
Todėl galime atsukti tik akimirką, ir pamatyti, kaip mes turime
tai hello world produkcija vos prieš akimirką.
>> Taigi, pirma, ten tai CS50 prietaisą.
Vėlgi, gabalas programinės įrangos, problemos 1 going to pasakyti
jums, kaip atsisiųsti, kur jį atsisiųsti, ką spustelėkite
ir taip toliau.
Ir tada, kai jūs laikytis instrukcijose išdėstytų sąlygų, jums galės
siekiant maksimaliai padidinti savo lange, ir jūsų Mac arba PC atrodys
šiek tiek kažką panašaus į tai.
Juodame fone, namų aplankas viršuje, kur visi
jūsų failai, šiukšliadėžės viršuje kairėje,
apačioje meniu.
Taigi dar kartą, labai panašus dvasia Mac OS arba Windows
net jei tai atsitinka būti "Linux".
Taigi, ką mums kitą daryti?
Na, mes pradėjome rašyti programas.
Ir atšaukia iš praeitą savaitę, kad viskas, ko reikia rašyti
programa yra paprastas tekstinis redaktorius,
pavyzdžiui, "Notepad" arba "TextEdit.
Atvirai, jūs netgi galite naudoti Microsoft Word.
Tačiau blogi dalykai galų gale padaryti, nes tai labai
Sunkioji sprendimas rašyti programą, taip pat jis bus
išsaugokite jį netinkamu failo formatu.
Bet tai tik teksto redaktorius, teksto redagavimo, tai viskas, ko
reikia parašyti programą.
>> Taigi CS50 Appliance, mes galime tai padaryti vienu paprastu būdu.
Mes galime tiesiog spustelėkite šią piktogramą apačioje kairėje.
Ir vėl, problema nustatyti 1 patars jums, ir voila -
gausite šį juoda ir balta sąsaja, kurioje mes galime pradėti
rašyti kodą.
Taigi pradėkime rašyti super paprastą programą iš naujo.
Aš ruošiuosi eiti į failą, išsaugokite, ir aš ruošiuosi skambinti
tai, tarkim, hello2.c.
Ir aš tiesiog sakau, įdėkite jį paspaudę ant jharvard
savo namų katalogą, man nerūpi
jei vienas eina.
Ir pasirinkite Išsaugoti.
Ir dabar galiu pradėti rašyti savo programą.
Ir prisimenu iš anksčiau, kad aš turiu parašyti int
main (void).
Padidinti viršuje kairėje.
Ir tada aš noriu pasakyti printf paimti du.
Ir dabar naujos eilutės, netoli citata, uždarykite
skliausteliuose, kabliataškiu.
Ir tada aš einu į mano terminalo langą,
įtraukti į gedit, tiesiog dėl patogumo.
Ir aš ruošiuosi eiti į priekį ir rašyti, kad Apie bet ne
Apie atskirai, hello2.
>> Taigi, mano byla vadinama hello2.c. Mano byla, todėl
turėtų būti vadinamas hello2, šiuo atveju.
Velnias, ką aš padariau ne taip?
Viskas gerai, todėl aš aiškiai neįtraukė linija, jei jūs prisimenate, ką
ankstesnes programas atrodyti.
Bet pažiūrėkime, jei mes negalime erzinti tai, išskyrus.
Deja, dauguma žmonių, kurie rašo programas, su kuriomis
mes rašome programos nereikia supaprastinti dalykų, kad gerai.
Taigi, mes turime rūšies nugriebti per ką ne gana, kad
pajusti čia ir pamatyti, jei mes galime suprasti, kas yra negerai.
Pirmoje eilutėje sako netiesiogiai skelbiantis C
bibliotekos funkcija printf tipo int.
Gerai, supratau, dalimi.
Bet atrodo, kad užuominos į tai, kad aš naudojamas printf
negerai, kažkaip.
Ir kokia prasmė tai negerai?
Aš tiesiog nemokė kompiuterį, kad jis yra faile
vadinamas stdio.h.
Dabar turiu tik tik dabar įsiminti, kad printf yra
į stdio.h, ir iš tikrųjų ten bus būti ir kitų
funkcijas tame pačiame faile, kad mes priprasti prie.
>> Taigi dabar leiskite man eiti į priekį ir paspauskite Ctrl + L, tiesiog išvalykite, kad
toli, atlikite dar hello2, ir voila.
Ir šią komandą vėl, daugiau sudėtingų, nei mes paaiškinti
šiandien tikslais.
Tačiau ji paleisti Apsukite metalinis garsas, ir Apsukite metalinis garsas kodą ir
išspjauna 0s ir 1s.
0s ir 1s šiuo atveju yra vadinamas ką?
Gerai, objekto kodo.
Ir byla, kad jie yra vadinamas, todėl,
hello2, šiuo atveju.
Nes mano tekstinis failas buvo hello2.c, "Enter".
O dabar turiu du šauktukas, šauktuko
taškas, šauktukas.
Viskas gerai, todėl dabar mes turime galimybę gauti eilutes,
matyt.
Na, ką mes galime gauti iš vartotojų?
>> Gerai CS50 bibliotekoje, yra kitų funkcijų, kurios
ketina supaprastinti mūsų gyvenimą šių pirmąsias kelias dienas.
GetChar, GetDouble, GetFloat, GetInt
GetLongLong, GetString.
Na, leiskite laupti Pirmajame iš jų lengviausia.
GetString tiesiog tai daro.
Jis tiesiog sėdi ten, laukia, kad vartotojas galėtų įvesti kažką,
ir, kai aš tipo kažką ir paspauskite "Enter", jį
ar kažkas su tos vertės.
Taigi, grįžkime tą pavyzdį, pamatyti, ką
GetString daro.
Leiskite man eiti į priekį ir atverti gedit, hello.c ir atšaukia
ši teisė prieš pertrauką, tai kur mes nerašomas.
>> Taigi tegul dabar erzinti, išskyrus šiek tiek išsamiau.
Taigi 6 on-line, yra du dalykai,
vyksta šiuo metu.
Vienodas ženklas atskiriant pirmąją ir antrąją.
Taigi kairėje pusėje lygybės ženklą, mes
sakydamas eilutė-ai.
Ir tada, tiesiog profanas sąlygomis, ką string s
daro, do you think?
Sukurti ką?
Taigi tai sukurti eilutę, pavadintą ai.
Dabar ką tai iš tikrųjų reiškia?
Na, tai rezervuoti vietos eilutę vadinamas ai.
Kad ne visai teisus.
Kas tai yra daro?
Bei kompiuterių, kaip jūs žinote, kietuosius diskus, tai yra, kai
jūsų failai yra saugomi.
Kompiuteriai RAM, ir tai, kur programos yra pakraunami
o jie veikia.
Taigi, kai jūs dukart spustelėkite piktogramą ir "Microsoft Word atidaro
, "Microsoft Word", veikia, taip sakant, RAM, kuri yra
elektroninė dalis kompiuterio.
Ne fizinis, mechaninis dalis, kad verpimo, kur
duomenys paprastai yra saugomi ilgą laiką.
Taigi eilutė-ai yra gana daug pasako kompiuteriui, duok man
pakankamai RAM, kad tilptų į eilutę.
Dabar tai yra supaprastinimas bitų, nes
Kaip didelis yra eilutė bus?
Na, mes iš tikrųjų nežinome, dar taip per kelias savaites
mes iš tikrųjų atsitraukti sluoksnį, kuris yra eilutė ir
mes pasakysime, ką ji iš tikrųjų yra.
Eilutę, dabar, yra tik gražus mūsų pasaulio supaprastinimas.
Bet eilutė skelbia eilutę pavadinti S, dabar.
Pareiškia eilutę.
Ji pasilieka šiek tiek RAM vietos eilutę vartotojas yra
apie tipą.
>> Dabar pažvelkime dešinėje lygybės ženklą.
Todėl ji sako GetString ().
Ir šiek tiek normalumas patikrinti.
Tai, kad nieko viduje skliausteliuose
reiškia ką apie GetString?
Tai užtrunka jokių argumentų.
Tai yra, jūs jokiu būdu negali daryti įtakos jo elgesį.
Kiekvieną kartą, kai jūs jį naudoti, jis bus gauti eilutę, ir viskas.
Printf, priešingai, tikiuosi, jos elgesys nėra
keisti kiekvieną kartą.
Priešingu atveju, ji yra gana nenaudingas spausdinimo funkcija, jei
jis daro tą patį.
Jei ji visada spausdina Dovydą ar kažką
savavališkai visą laiką.
Taigi printf prasminga turėti argumentą.
GetString nėra tikrai reikia argumentas, nes norėjau
gauti eilutę iš vartotojo, ir tai, kas vyksta vartotojas
pateikti dinamiškumą rašyti skirtingomis raidėmis
kiekvieną prie klaviatūros.
>> Taigi, ką GetString nereikia galiausiai?
Pagalvokite apie tai, kaip šios mažai juodąją dėžę.
Ir tai black box "neprisiima jokios įvesties, bet kai jūs sprogimo ant
, ji išspjauna eilutę, kad vartotojo įvestą in
Ir faktas, kad lygybės ženklas reiškia imtis
kas yra išspjauti į dešinę ir į vidų
kas kairėje.
Taigi lygybės ženklas čia, ji iš tikrųjų nereiškia
lygybė, o techniškai reiškia užduotį.
Dešinėje vertę, ir įdėti jį į
kintamasis kairėje.
Taip, kad viskas, kad vyksta ten.
>> Dabar 7 eilutėje, mes paskambinus printf.
Taigi printf tikiuosi gauti šiek tiek nuobodu dabar.
Taigi spausdinti suformatuoti eilutę.
, Ką eilutė?
Spausdinti, "h-e-l-l-o:% s
! \ N ".
Viskas gerai, todėl tai, ką aš noriu plug-in% s?
Tiesiogine prasme, kokia yra saugomas s.
Taigi, šiuo atveju, mažai normalumas patikrinti, kiek argumentai nėra
printf imtis?
Gerai, išgirdau vieną.
Aš girdėjau vieną kartą.
Du, aš girdėjau du.
Ir kaip apie tris?
Gerai, trys?
Puikus.
Tris galimus atsakymus, iš kurių tik vienas yra teisingas.
Taigi argumentai vėl turėti įtakos funkcijos elgesį.
Praeityje, printf tik vieno argumento.
"Hello World" buvo vienas argumentas.
Tačiau dabar, pastebėsite, kai tai kablelis yra.
Šis kablelis yra ne citata / citatos pabaiga, o tai reiškia
hey printf, čia ateina antrą argumentą.
>> Taigi daugumoje programavimo kalbų kablelių
Atskirkite argumentai.
Taigi atsakymas yra tikrai ne vienas, nes
tai kablelis.
Taigi minimaliai, printf, matyt, atsižvelgiant dvi
argumentai šiuo metu.
Bet čia yra galimybė apgauti klausimą, kas
apie šį kablelio?
Ar tai reiškia, kad ten tikrai trys argumentai?
Tai, tai, ir tai.
Taigi ne, nes tai kablelis yra viduje kabučių, kuri
reiškia, tai tikrai tik anglų estetinis.
Tai neturi nieko daryti su skaičiaus
argumentai šioje programoje.
Taigi tai kablelis yra už dvigubų kabučių.
Ir tada grįžti 0.
Dabar tegul tiesiog tarsi šį vieną tikėjimo
šiandien, ir tiesiog žinau, kad kai yra atliekamas funkcijas vykdyti
eilučių kodo, jie paprastai turėtų grąžinti tam tikrą vertę.
Šiuo atveju, tik todėl, kad pagrindinis privalo grąžinti int,
, kad tik taip, kaip kalba C darbai.
>> Todėl, kad nieko nutiko, jaučiasi ši programa
gerai, aš tik sunkiai koduojami return 0.
Tačiau priešingai, ir aš ruošiuosi parašyti šį pseudo kodas
dabar, panašiai kaip Juozapo padarė, kai mes padarėme kojinių
pavyzdys praėjusią savaitę.
Jei kažkas negerai - tai nėra tikrasis kodas - atiteko
negerai, tada grįžti, tarkim, 1.
Else return 0.
Taigi tai yra, kur mes einame su šia.
Tai nėra tikrasis C kodas, tiesiog Pseudocode.
Bet tai, kaip jūs gali grįžti
įvairios galimos reikšmės.
Bet dabar aš tik ketina eiti į priekį ir return 0.
Viskas gerai, bet iki šiol sintaksės, funkcionalumo klausimų,
ar pan?
Taip, atgal.
>> Auditorija: [nesigirdi]
David Malan: Ar galite kalbėti šiek tiek garsiau?
Kodėl šią programą Return 0, ir?
Auditorija: [nesigirdi]
David Malan: O, kad nes aš tingus, atsiprašau.
Nieko gero mokslo reakcija, grįžti 0.
Galiu rūšies išgelbėti tai, sakydamas techniškai C, jei pagrindinis
nėra aiškiai grąžina reikšmę, 0 bus grąžintas
automatiškai.
, Kas yra teisinga, aš ne tik slėpdama.
, Bet aš turėjo padaryti jį šiuo būdu.
Ne įdomus išsinešimui nei, kad nei mano klaida.
Taip?
>> Auditorija: Paprastai, kai įvedate tuštuma, tai reiškia, kad jums
negrįžta kažką.
David Malan: Teisingas.
Jei vietoj to, galite nurodyti prieš funkcijos pavadinimą,
instancija, tuščia, tai funkcija
negrąžina nieko.
Ir todėl aš tiesiog pasakyti, grąžinimo ar visai nieko,
ir kad būtų nuoseklūs.
Ir mes grįžti prie to.
Ir tiesiog FYI, vienas su mokymosi sugavimus
programavimo pasaulyje, kuris turi šimtus knygų ir
šimtai svetainių, ten yra, jūs visada
matyti įvairią sintaksę įvairių knygų
skirtingų žmonių.
Suprantu, mes darome viską, skyriuose ir paskaitas
nuoseklūs.
Bet kartais pamatysite prieštaringą sintaksę.
Taigi, jei kyla abejonių, tiesiog paprašykite.
Ir apskritai, mes pasirūpinsime paskaitų ir skirsniai
beveik visada pateikti jį į teisingą kelią.
Ir aš sakau, beveik visada, nes pagal Teisingumo Teismo punkte.
Kiti klausimai?
>> Auditorija: Ar% s egzistuoja ne prietaiso?
DAVID Malan:% s egzistuoja už prietaiso ribų?
Taip.
Taigi,% s daryti su C. Tai, kad mes naudojame jį
prietaisas iš esmės neturi nieko daryti su
bruožai kalba, mes naudojame.
Iš tiesų, praėjusią savaitę, kai mes naudojamas mano Mac, aš parašiau
C kodas mano Mac.
Aš galėjo naudoti% s mano Mac, ir jūs galite naudoti ją į
Windows kompiuteryje, jei jums ją įdiegti kompiliatorių, pavyzdžiui,
Iš "Microsoft Visual Studio.
Taip:% s.
Viskas, ką mes darome, viduje šio lango šiandien
padaryti su C ir iš esmės nieko daryti su
operacinės sistemos klausimą.
Priešingai, juoda ir balta terminalo langą - kai
Wpisuję dalykų, pavyzdžiui, ls, ir RM, ir CD
, kad turi daryti su operacine sistema ir
navigacinio aplink.
Taip.
Auditorija: aš reiškė bibliotekoje, su CS50 biblioteką.
David Malan: Gerai, taigi, jei turite galvoje raktažodžių eilutę, kad
egzistuoja tik CS50 bibliotekoje, teisinga.
Kad neegzistuoja, C pati, kaip ir kitose porą
savaičių išmesti CS50 biblioteką ir pradėti
daryti viską nuo nulio save, taip sakant.
Kiti klausimai?
Taip.
>> Auditorija: [nesigirdi]
Davidas Malan: Geras klausimas.
Yra komandos didžiosios ir mažosios raidės?
Ir leiskite man padaryti skirtumą.
Taigi komandos paprastai yra ne tai, ką mes rašyti
apačioje lango, terminalo lange.
Viskas čia būtų pareiškimų ar C kodas.
Tačiau abiem atvejais atsakymas yra tas pats, taip.
Tiek tų aplinkų C kodas viršuje ir
operacinės sistemos komandinės eilutės
apačioje, yra didžiosios ir mažosios raidės.
Taigi jūs turite pasinaudoti GetString su kapitalo G,
kapitalas S. Jūs turite parašyti printf visose mažosiomis raidėmis.
Turite įvesti ls visose mažosiomis raidėmis.
Taigi, beveik kiekvienoje situacijoje šį semestrą, atveju,
faktas, klausimas.
Taip.
>> Auditorija: [nesigirdi]
DAVID Malan: Ak, taip gerai, ką daryti, jei mes turėjome failą
vadinamas hello.d.
Taigi paaiškėja, D yra programavimo kalba.
Ir taip, kai kuriais atvejais, mes iš tikrųjų galėtų parašyti programą
to failo ir jis sudarytas, kad dėl mados.
Mes galime ir iš tikrųjų, Trumpas atsakymas yra, aš nežinau.
Taigi, mes ketiname tai padaryti.
Leiskite man eiti į priekį ir sukurti naują failą.
Ir nugara, sąžiningai apskritai, kai jokios abejonės,
šį semestrą, ir jūs turite savo prietaisą arba kompiuterį
atidaryti, eiti į priekį ir bandyti ką nors.
Taigi, aš ketina išsaugoti failą pavadinimu hello.d.
Išsaugoti šią.
Ir aš ruošiuosi paleisti Apie Įveskite.
Atrodė daryti išvadą, kad C buvo labiau tikėtina,
nei d, ir šiuo atveju.
Kiti klausimai.
Taip.
>> Auditorija: [nesigirdi]
DAVID Malan: Gerai, sako, kad dar kartą.
Auditorija: [nesigirdi]
DAVID Malan: Kaip tu apie diagnozuoti, kad arba
pagalba, kad?
Taigi, labiausiai tikėtina, nes jie yra skirtingų kalbų,
greičiausiai jums gauti visiškai
skirtinga programa išvedamas.
Jūs galėtumėte gauti visiškai skirtingus pranešimus apie klaidas.
Ir taip pat tik pagal projektą, tai, žinoma, yra
, netinkamas projektavimas sprendimas turi būti raštu du skirtingi
kalbas su beveik vienodai pavadintų failų,
tą patį katalogas, naudojant
automatinis įrankis, pavyzdžiui, kad.
, Kad aš taip pat gali stumti atgal ir pasakyti, per 15 metų tai daryti,
niekada tokios klaidos.
Gali atsitikti.
Bet čia tik įvairūs, manau,
logistikos įtvirtinimai.
Plius klaidos pranešimas, kad galėtų įvykti, kad būtų
galiausiai atskleisti, kokia yra problema.
Bet įmanoma kampe atveju.
>> Viskas gerai, todėl galime pristatyti tik kitų pora
funkcijos čia dabar, kad mes galime pradėti kurti į daugiau
kompleksinė programa.
Taigi, visų pirma, matematikos.
Taigi matematikos pavyzdžiai yra tiesiog rūšies paprasta, per pirmą savaitę.
Tai ne pasakyti, kad visas programavimas yra apie
matematika.
Žinoma, suprasti įvairių funkcijų
matematika, algebra visų pirma, yra
gana svarbūs.
Aukštesnio lygio CS klases, Tiesinė algebra,
skaičiavimas ir panašiai.
Bet suprasti, ką mes darysime šį pusmetį sumažina
matematikos, ir tikrai ne aritmetika, savaime, bet tikrai
tik logika ir kruopštaus mąstymo.
Ir todėl šią sąsają, kad kompiuterių mokslas jau seniai turėjo
ypač vidurinės mokyklos lygio, matematikos,
šiek tiek klaidinantis.
Nes dauguma programų, kad mes rašyti, tikrai,
tarsi aukštesnio lygio ir sutelkti dėmesį į problemų sprendimo, kad
tikrai, gali naudoti tam tikrą sudėtį, atimtį, ir įvairių
matematinių formulių arba panašūs dirbiniai,
, bet ne dienos pabaigoje, tai apie mąstymo, o ne
tik įgyvendinimo, ką galėjo padaryti kaip TI
skaičiuoklė vidurinėje mokykloje.
>> Taigi, su ta sako, tegul dabar kažką daryti su šiomis
matematiniai operatoriai, kurie egzistuoja todėl, kad mes galime kelionė
per kai kurių pagrindinių aspektų programavimo, arba
šiuo atveju C. Taigi, kaip CS50 biblioteka pasiūlė,
ir šiandien mes tik naudojant GetString - ir per akimirką
galbūt vienas kitas funkcijas -
tačiau yra įvairių duomenų tipų kompiuterio.
Tuo dienos pabaigos, tik kompiuteriuose žinoti 0s ir 1s.
Tačiau primena, kad praėjusią savaitę, mes kalbėjome apie binarinės sistemos
atstovaujant numerius, pavyzdžiui, skaičius 0 ir 1, ir 2,
būdas, kaip iki 8 Nate vaizdo įrašui.
Ir tada mes galime tikėtis daug didesnis, kaip mes
ant scenos čia.
Bet jei norite atstovauti ne tik skaičiai, bet raides,
mes, žmonės, turime sugalvoti su kai savavališkai
konvencijas, pagal kurią, jei dienos pabaigoje visi mano kompiuteryje
yra gebėjimas išreikšti 0s ir 1s, gerai mes norime geriau
0s ir 1s modelius, kurie reprezentuoja standartizavimo
skirtingi dalykai.
0s ir 1s modelis, kuris atstovauja raidę a.
0s ir 1s modelius, kurios atstovauja raide 'Z.
Modeliai 0s ir 1s, kurios atstovauja mėlynai arba
raudona, ar panašiai.
Mes turime naudoti visi 0s ir 1s jų išreikšti save
skirtinguose kontekstuose, įvairiais būdais, kurie nėra
nebūtinai skaitinė reikšmė.
>> Taigi atstovavimo, C turi skirtingus duomenų tipus,
ir mes matėme vieną iš jų iki šiol.
Mes matėme, int, ir kas ne pranešimas ekrane
dabar yra eilutė.
Eilutėje nėra, iš tiesų, yra C. Vėlgi, tai
supaprastinimas mes pristatome pirmą kartą
porą savaičių.
Char yra individualių savybių.
Plūdė yra realusis skaičius, su kablelio skaičiaus ir telefono numerius į
, į kairę ir į dešinę nuo jos.
Dvigubai yra kas, atgal iki fone?
Taigi dvigubas yra dvigubai kažką.
Prideda dvigubai daugiau tikslumo.
Taigi, ką tai reiškia?
Taigi kiekvienu iš šių atvejų, kad pasaulis turi rūšiuoti standartizuotas
kiek bitų yra naudojamas vaizduoti
kiekvienas iš šių dalykų.
Taigi, jei jūs stebėjo Nate ASCII vaizdo jau dalis
pset 0 arba vėliau šią savaitę jums, jūs tikriausiai žinote,
kad ASCII -
simbolių atstovybės -
naudoti, kiek bitų?
Ir galbūt net prisiminti iš mūsų demo praėjusią savaitę, kaip
daug žmonių buvo ant scenos.
Taigi, 7 arba 8, paprastai.
Todėl paprastai 8, ir yra kažkas, vadinamas pratęstas
ASCII, kuris naudoja visus 8 bitus, o ne 7.
Bet apskritai, mes kalbame įgaliojimus 2, todėl šiuo atveju, 8.
Taigi char programavimo kalba paprastai yra 8 bitai.
Taigi int paprastai yra 32 bitai.
Plūdė yra 32 bitai.
Dvigubai paprastai yra 64 bitų.
Ir ką tai reiškia?
Tai reiškia, kad gali kelti didesnius numerius, arba tuo atveju,
realiųjų skaičių, jūs galite turėti daug daugiau skaičių po
dešimtųjų tikslumu.
Daug daugiau tikslumo, kad šioje byloje.
Dabar ilgai ilgai, deja, pavadintas.
Taigi čia int, kuris yra 32 bitai.
Yra ilgas, kuris, Ne, 32 bitų.
Ir ilgai ilgai, kuris yra 64 bitai.
Tačiau kai kurie iš jų yra atsižvelgiama į konkrečias aplinkybes, tai priklauso
kokios kompiuteryje turite.
Taigi apskritai, mes nurodyti namų darbus arba viktorinoje
ji iš tikrųjų svarbu.
Bet esmė yra ta, kad visų šių skirtingų
atstovybės čia.
>> Todėl galime iš tikrųjų pasinerti į programą.
, O ne rašyti šį vieną nuo nulio, leisk man eiti į priekį
ir atverti iš šiandienos šaltinio kodą - visa tai yra
internete - jei norite Taisome aplink internete, ar grąža
Trečiadienį prietaisą kompiuteryje, instrukcijos
už kurias bus susieti kurso puslapyje.
Čia super paprasta programa.
Bet jis gavo šiek tiek kažką naujo viršuje, kad
mes neturėjome anksčiau.
Visai daug mėlynų eilučių teksto.
Taigi šie mėlynos linijos sudaro komentarus.
Taigi, tai labai naudinga, programos, kad būtų galima rašyti
keletą pastabų sau, ar su kolegomis ar draugais, arba
mokymo kolegos, kad tarsi apibūdinti, kas vyksta
šį failą, bet neturi nieko bendro su C patį kodą.
Nieko bendro su programa funkcionaliai, tai tik
estetika.
Taigi, kaip tai padaryti, C, jūs paprastai prasideda jūsų
kometarus / * ir baigti savo komentarus
* /.
Ir jei jūs tikrai analinis ir kaip atkreipti rūšiuoti nuotraukas,
tada jums reikia įdėti visai daug žvaigždžių, kad tu padarysi
LITTLE BOX, kaip šis.
Tačiau nė vienas, kad klausimai.
Vienintelis svarbus dalykas yra pirmasis
ir pats paskutinis.
Tai yra tai, kas vadinama kelių eilučių komentarą.
Ir tai tik žmogaus konvencija dažnai žvaigždes ir dėžutės
dalykų kaip tai, jei turite daug laisvo laiko.
>> Taigi, po to, kai parašiau kai kuriais komentarais, ateik
faktiniai programos viduriai.
Štai mūsų susipažinę # include .
Ir tik greitai, tai yra būtina, ar nebūtina?
Auditorija: Būtina.
David Malan: Taigi tai tikrai nėra būtina.
Tad kodėl, nors tai nėra būtina?
Todėl nėra printf.
Iš tiesų.
Viskas, ką mes darome šioje programoje yra matematika.
Taigi aš iš tikrųjų galite ištrinti, kad.
Taigi, jūs ne visada turi apimti nieko
programos viršuje.
>> Todėl galime supaprastinti šį šiek tiek.
Ir dabar pastebėti, ką ši programa daro.
Nėra daug interesų.
int x = 1.
Na, kas tai daro?
Na, manau, psichikos modelį iš anksčiau.
Kairėje pusėje šią išraišką ką daro?
Sukurti erdvę sveikasis skaičius.
Taigi, kiek vietos?
Na, mes atsitikti žinoti, dabar, kad tai 32 bitų.
Anksčiau, eilutė buvo techniškai 32 bitų, bet daugiau
ateityje.
Tačiau int yra 32 bitai.
Taigi, šis kairėje išraiška, int x tiesiog sako: hey
operacinės sistemos, duok man 32 bitų RAM -
kitaip žinomas kaip 4 baitų RAM -
, kad galėčiau įdėti šioje erdvėje sveikasis skaičius.
Kas sveikasis skaičius buvo norite įdėti?
Na, tiesiog skaičių 1.
int y gauna 2, ar tą patį dalyką, nors
skaičius yra didesnis, didelė.
Numeris pati yra dar tik 32 bitų.
Tai tiesiog bitų modelis skiriasi
atstovauti 1, palyginti su 2.
int z dabar sako duok man dar 32 bitų, jį vadiname Z, ir įdėti
1 ir 2 yra sumavimas.
Kad dabar "z", matyt, laikyti vertę 3
ir tada grįžti 0.
>> Dabar šią programą, tai nieko daryti interesų?
Taigi, ji iš tikrųjų nėra padaryti ką nors įdomus, bet
prasme, nes kodėl? Tai daro šiek tiek matematikos.
, Bet jis negrįžta atsakymą, į dešinę.
Jis grąžina 0.
Jis nespausdina atsakymą.
Todėl ši programa iš esmės yra bevertis, nes jis
yra dabar.
Tai daro tam tikrą darbą.
Ji ketina imtis tam tikrą skaičių sekundžių ar mikrosekundžių, į
paleisti, bet jis nėra iš tikrųjų ką nors
naudinga už žmogaus.
>> Todėl galime iš tikrųjų dabar atidaryti math2, kur dabar aš iš tikrųjų
spausdinimo rezultatą.
Taigi tai taip pat gali būti padaryti iš mūsų ankstesniuose pavyzdžiuose.
Jei aš noriu padaryti keletą paprastų matematikos, int x = 1, y
= 2. z yra 1 plius 2.
Ką tai vyksta atsispausdinti akivaizdžiai?
Tik 3.
Taip greitai normalumas patikrinti.
Leiskite man pereiti į šį katalogą.
Taigi cd source1m.
Leiskite man eiti į priekį ir įveskite padaryti math2.
Pranešimus apie klaidas išėjo, todėl leiskite man paleisti -
ne a.out leiskite man paleisti math2. Įveskite.
Ir iš tiesų, jis atspausdintas iš 3.
Na tegul bent šis variantas atrodo.
Į math3.c, dabar mes turime šį pavyzdį čia.
>> Taigi tai vienas natūra įdomių.
Taigi tai vienas čia, atsakymas ketina gauti 1 dalijamas iš 10
ir pastebėsite, aš paskelbė, kad ji kaip float.
Kodėl aš noriu, kad ji būtų plūdė?
Na, tai frakcija.
Tai bus realusis skaičius.
Taigi tai bus 0,1, tikiuosi - 10%, šiuo atveju.
Ir ką tada norite spausdinti?
Na, tai atsakymas.
Ką gi, erzinti tai, išskyrus 1..
Taigi kairėje pusėje, paskelbti
plūduriuoti, vadina jį atsakyti.
Dešinėje pusėje, 1 dalijamas iš 10 ir įdėti, kad
answer kintamojo viduje.
Dabar, ši eilutė atrodo šiek tiek paslaptingas.
Bet pastebėti kai kuriuos žinomus funkcijų. % Tai čia ateina
vietos rezervavimo ženklas.
f, čia reiškia, slankaus kablelio reikšmė, tiesiog realus
numeris, kažkas su dešimtainiu tašku.
0,2 reiškia ką?
Kiekvienas žino, iš ankstesnės patirties?
Dviejų ženklų po kablelio tikslumu.
Todėl mes nematė prieš tai, bet tai tik būdas
vykdyti šiek tiek daugiau kontroliuoti printf ir
posakis nesuteikia man 30 taškų, po kablelio,
o ne duoti man tik 2.
>> Ir tada eikime į priekį ir paleisti.
Todėl įsitikinkite, matematikos 3, o dabar leiskite man paleisti 3 matematikos, įveskite.
Ir kad tai nėra teisinga.
Mes, atrodo, susidūrė su mūsų pirmasis tikras klaidą.
Na, gal aš tiesiog ne ieško pakankamai arti.
Taigi leiskite man eiti čia, ir leiskite man 20 dešimtainį kablelį
taško vietos ten.
Ir leiskite man sudaryti tai, kad math3, paleisti.
Gana įsitikinęs, 1 dalijamas iš 10 yra ne 0.
Taigi, kas vyksta?
Na gerai, todėl iš tikrųjų ji neturi daryti su tai.
Kad tai gera mintis.
Tai tikrai tik sutapimas
kad mes tai daryti.
Bet tik įrodyti, kad tai yra ne tai, Aš
grįžti kažką atsitiktine tvarka.
Nedarykite to namuose, nes tai yra tiesiog neteisinga.
Tačiau įsitikinkite, math3, leiskite man paleisti jį.
Taigi yra nieko, ką aš grįžti, tik turi daryti
, ką aš spausdinti.
Bet aš girdėjau jį čia.
Ką?
Auditorija: Taigi, mums reikia rašyti skaičių
padalinimas
>> Davidas Malan: Gerai gerai.
Taigi, mums reikia rašyti skaičius, dalyvaujančias
padalinys, čia kaip slankaus kablelio vertės.
Taigi problema čia, kaip ir anksčiau: C, nes daug
kalbomis, turi skirtingus duomenų tipus.
Ir šie duomenų tipai, pavyzdžiui, tai yra čia.
Ir duomenų tipai yra nagrinėjamu atveju, kai aš įveskite 1 ir tada aš
tipas 10, tikriausiai ką duomenų tipai?
Todėl tikriausiai int, tiesa?
Tai tikrai ne plūdės, nes nėra dešimtainis
taškas arba ko nors panašaus.
Taigi tikrai, turiu int, padalinta iš int.
>> Taigi, įdomus dalykas, apie matematikos ir kompiuterio yra tai, kad
jei jūs darote padalijimo naudojant sveikieji skaičiai -
1 dalijamas iš 10, taip yra 0,1.
Tačiau, kai jūs sveikąjį skaičių padalijus sveikasis skaičius,
Atsakymas turi būti sveikasis skaičius, tik todėl, kad, dabar.
Ir kas potekstė tada?
Na, jei atsakymas yra 1, padalytas iš 10, yra lygus 0,1, kas
kompiuteris yra ruošiuosi padaryti tai aš neįsivaizduoju, kaip
atstovauti 0,1, nes tai slankaus kablelio vertė, o ne
sveikasis skaičius, jis ketina nukirsti viską po
dešimtainis taškas, ir tiesiog parodyti jums pradžioje 0.
Ir tai, kad ji spausdinama kaip slankaus kablelio
vertė, tai tik estetinis dalykas.
Tai todėl, kad aš verčia kompiuteris Spausdinti šį
slankiojo kablelio skaičius.
Ir iš tiesų aš paskelbė jį kaip float, tačiau matematika
vyksta čia.
>> Taigi, leiskite man iš tikrųjų išspręsti šią problemą į vieną gana lengvai.
Kodėl ne aš tiesiog padaryti 10,0 ir 1,0, nors
techniškai aš galėtų išeiti su tiesiog daro vienas iš tų.
Dabar leiskite man eiti į priekį ir padaryti math3.
Leiskite man eiti į priekį ir dabar paleisti math3 Įveskite.
Ir dabar, oh boy.
Dabar mes turime naują problemą apskritai.
Tad geriau, tiesa, mes arčiau 0,1, bet tai, kas yra akivaizdžiai
negerai čia?
, Jeigu mes jau gulėti jums metų, tiesa?
1 dalijami iš 10, iš tiesų yra ne visai 0,1, tai kas
tikrai čia vyksta?
Na, galite natūra priežasties per šį logiškai.
Jei kompiuteris turi tik baigtinių suma RAM pradėti
ir, žinoma, kompiuteris naudoja tik 32 bitų
slankiojo kablelio skaičius, tai suprantama, kad su
baigtinis bitų, 32 skaičius, šiuo atveju, taip, jūs galite
sudaro daug daiktų.
Ji iš tikrųjų yra keturis milijardus skirtingos reikšmės gali būti
atstovaujama su 32 bitų, 2 iki 32, bet jis vis dar ribotas.
Taigi ši problema yra begalinis skaičius realaus
numeriai, teisė.
Jei galite man duoti realus skaičius, aš visada galite rasti jums vieną
šiek tiek didesnis, šiek tiek mažiau, tik truputį keisdami
numeriai, kurie yra po kablelio.
Taigi, jei jūs neturite begalinį skaičių bitai,
negali galbūt begalinis
skaičius realiaisiais skaičiais.
>> Taigi ten tai neatsiejama kompiuterių neaiškumų ir
tai pasireiškia paslydau per visą laiką, net ir paprasčiausias
panašiose programose.
, Bet ir kai kurie labai realaus pasaulio problemas, taip pat.
Tiesą sakant, tegul šiek tiek laiko ir tiesiog pažvelgti
kažkas, kas iš tikrųjų nutiko iš tikrųjų.
Mes žiūrėti tik pirmąjį keletą minučių, tada
mes po nuorodą internete.
Bet tai liudija tik tai, ką gali suklysti, gana
sąžiningai, labai tragiška, kai šie dalykai yra ne
vertinama, ar tik mes, žmonės daro klaidų, kai kalbama apie
įgyvendinimo detales, šiuolaikinių kompiuterių rūšių.
>> [Vaizdo žaidimai]
-Mes dabar grįžti inžinerinių nelaimių Šiuolaikinės stebuklai.
Kompiuteriai.
Mes visi ateiti sutikti su dažnai nelinksma problemų
kad eiti su jais.
Klaidas, virusai ir programinės įrangos trikdžių mažos kainos
mokėti už patogumą.
, Bet ir aukštųjų technologijų ir greitųjų karinių ir kosmoso
programų programas, mažiausias problema gali būti
padidintos nelaimės.
1996 birželio 4 d., Mokslininkai pasirengusi pradėti nepilotuojamą
Ariane 5 raketų.
Jis vykdė mokslinių palydovų,
tiksliai nustatyti, kaip Žemės magnetinis laukas
sąveikauja su Saulės vėjai.
Raketa buvo pastatytas Europos kosmoso agentūros ir
pakilo iš savo įrenginio dėl Prancūzijos Gvianos krantų.
>> Maždaug apie 37 sekundžių skrydžio į, jie pirmiausia
pastebėjau, kad kažkas negerai, kad purkštukai
pasukamas taip, jie tikrai neturėtų.
Maždaug 40 sekundžių į skrydžio, aiškiai transporto priemonių
buvo bėdų, ir tai yra, kai jie priėmė sprendimą
ją sunaikinti.
Diapazonas saugos pareigūnas su milžinišku viduriai nuspaudžiamas
mygtuką, susprogdino raketa, kol ji gali tapti
kelti pavojų visuomenės saugumui.
>> -Tai buvo mergautinė reiso 5 "Ariane, ir jos
naikinimas vyko dėl to, kad trūkumas, įterptųjų
Raketa programinė įranga.
>> Nuo "Ariane" problema buvo, kad ten buvo skaičius, kuris
reikia 64 bitų išreikšti, ir jie norėjo ją konvertuoti
16 bitų skaičius.
Jie manė, kad šis skaičius niekada nebuvo
bus labai didelis,
kad dauguma iš tų 64 bitų skaičiaus skaitmenų 0s.
Jie klydo.
>> Vienos programinės įrangos nesugebėjimas priimti
kitu numeriu, kaip rūšies šaknų
nepakankamumas.
Programinės įrangos kūrimas tapo labai brangi dalis
nauja technologija.
Ariadnė "4" raketa buvo labai sėkmingas.
Tiek daug už jį sukurta programine įranga taip pat buvo naudojama
5 "Ariane".
>> - Pagrindinė problema buvo ta, kad Ariane 5 buvo greitesnis,
paspartino greičiau.
Ir programinė įranga nebuvo apskaitomas už tai.
>> Raketos sunaikinimas buvo didžiulė finansinė
nelaimei, visos dėl minutę programinės įrangos klaidos.
Bet tai buvo ne pirmas kartas, duomenų konvertavimo problemų
kentėjo modernią raketų technologiją.
>> DAVID Malan: Mes palikti jį tuo.
Bet tai liudija tik tai, kaip net kai
šie Žemiausio lygio informacija, kad mes pradėjo
ištirti šiandien yra.
Taigi, net, kaip jūs gaunate šiek tiek išsiblaškęs, galbūt kai kurie iš
, sintaksė ir arcaneness čia, suprantame, kad per
laikotarpiu mes bus skiriama tik apie tai, kaip taikoma tai
pasaulius toli už CS.
Pamatysiu jus trečiadienį.