>> DAVID J Malan: All labi, tāpēc tas ir CS50.
Un tas ir skaidri piektdienā.
Un tas ir beigas nedēļas viena.
Tātad, jūs varat atgādināt, ka mēs left off, pēdējo reizi, ar cliffhanger veidu.
Kuru mēs pakļaut šo meli, ka nē neatkarīgi no tā, ko jūs esat mācīts pieaug
up, 1 dalīts ar 10, nav, jo Fakts, 0.1 vai 0,100 vai 0,10000.
Patiesībā, ja mēs apkopotu šo Programma, kā mēs to darījām vakar, ar,
padarīt neprecizitātes, un pēc tam do dot, slīpsvītra, neprecizitāte,
mēs uzzinājām, ka tas ir tas, kas ir 1 dalīts ar 10 patiesībā ir.
Tātad tas nav īsti gluži tas gadījums.
Bet tas nav mājiens dažus būtisks ierobežojums datoriem.
Un tiešām, starp lietas, ko mēs gatavojamies darīt
šodien ir veikt apskatīt, kāpēc tas ir noticis, kādas sekas tas ir,
kā cilvēce nav apgūt šo dažu ļoti
nopietns situations-- rezultāts no kuriem
ir diezgan traģiski un expensive-- un arī
ieskatieties kā mēs faktiski var aizstāvēt
pret šiem ierobežojumiem veidu.
Tātad intuitīvi, iespējams, kāpēc ir 1 dalīts ar 10,
saskaņā ar manu datoru šeit, ne tikai 1/10, 0.10?
Jā.
Ko tu domā?
>> Auditorijas locekļa: Radix ir atšķirīgs?
>> DAVID J Malan: The kas ir?
Ak, radix ir atšķirīgs?
Tātad ne gluži.
Tas ir tiešām vairāk būtiska aparatūru.
Citas domas?
Jā.
Auditorijas locekļa: Viņi pārstāvēt skaitļus savādāk?
DAVID J Malan: Tātad they-- Right.
Viņi pārstāv skaitļus savādāk.
Neprecīzi, acīmredzot.
Tā, ka is-- Nu, atšķirīgi no tā, ko?
Vai no kā?
No mums?
Auditorijas locekļa: Jā.
Viņi neizmantojiet decimālo sistēma [nedzirdama].
DAVID J Malan: OK.
Tātad savā ziņā, tie nav izmantot decimāldaļu sistēmu.
Zem motora pārsega, viss ir, patiešām, binārā,
un tas ir saistīts, patiesībā.
Bet tas ir pat vienkāršāka izskaidrojums nekā.
Jā.
>> Auditorijas locekļa: Viņi ir tikai tik daudz biti.
Viņi var tikai uzglabāt līdz noteiktam mērā, kā ar decimāldaļām.
>> DAVID J Malan: Jā.
Tas ir tas, kas patiešām kļūst pie tā.
Izrādās, ka datori parasti, būs vienmēr tikai
izmantot ierobežotos informācijas apjomu pārstāvēt kaut ko.
Tiesības?
Galu galā, mums ir tikai fiksētu daudzums cietajā diskā.
Mums ir tikai fiksētu summu RAM, vai datora atmiņā.
Un, ja jums ir tikai fiksēta summa par kaut ko,
protams, jūs nevarat patiešām saskaitīt līdz bezgalībai vai jebkuru numuru, kuru vēlaties.
Jūs, veida, ir atlasīt un izvēlēties to, ko klāstu
Vērtību jūs gatavojas atbalstīt.
>> Un tā, piemēram, nedēļu vai divas atpakaļ, kad mēs runājām par ASCII,
un mēs runājām par 8 biti, vai baits, tā sakot,
Visvairāk mēs varētu pārstāvēt ar 8 bitiem bija tas, ko?
255.
Un mēs varam pārstāvēt 256 kopējās vērtības bet ne tad, ja mēs tērēt vienu no tām
uz 0-- Nu, bet, ja mēs pavadīt vienu no tām uz 0,
tad vislielākais skaits ir, protams, 255.
>> Tātad izrādās, ka tas ir gadījumā arī šajā kontekstā.
Mēs sākām runāt, pēdējo reizi, par peldošo komatu numuriem, kas
atšķiras no veseliem skaitļiem, jo ka viņiem ir komatu
un, cerams, daži skaitļi pēc tam, bet tie ir pārāk.
Dators ir tikai parasti dodas izmantot 32 bitus, varbūt 64 bitiem
pārstāvēt peldošo punktu vērtību.
Tātad, pat ja mēs esam izauguši mācīties matemātiku un zinot
ka jūs varat būt absolūti bezgalīgi daudz skaitļu
aiz komata, nevis ja jums ir ierobežots atmiņas.
Jūs, veida, ir apaļas, vai atlasīt un izvēlēties, kuru
numurus jūs gatavojas pārstāvēt.
Un tā jūs varat iedomāties, kas nozīmē, tas ir datora tuvākais
aproksimācija ar vērtību 1/10, ka tā var iegūt, tikai ar 32 vai tik bitiem.
Un tas nav tikai 1/10.
>> Piemēram, ja es mainīt to 1/3, kas, mūsuprāt, ir vēl vienkāršāka.
Tātad 1 dalīts ar 3.
Ļaujiet man saglabāt failu.
Ļaujiet man iet uz priekšu un recompile to.
Un ļaujiet man vēlreiz palaist to.
Arī šeit, acīmredzot, 1/3 nav 0.3 un tad bezgalīgi daudz 3'S
pēc tam.
Jums ir šī neprecizitātes beigās.
Tātad mēs cilvēkiem ir pareizi, un to, kas esat iemācījušies ir, faktiski, pareiza,
bet mēs esam mutuļošana up pret dažiem ierobežojumiem.
>> Un ko es domāju mēs gribētu darīt šodien, ir sākt
skatoties, atklāti sakot, tad traģiskas sekas šis
Dažreiz, kad cilvēce nav gluži īstenot
par šo realitāti un šiem ierobežojumiem.
Un mēs redzēsim virkni vinješu No History Channel, kas notiek
apskatīt, kā lietas ir nogājis greizi.
Tas ir apmēram 8 minūtes garš, un mēs atgriezties pēc šīs
un to apskatīt tieši ko vēl var noiet greizi.
Ja mēs varētu blāvākas lights--
>> [Video atskaņošana]
>> -Computers, Mēs visi esam ieradušies pieņemt tad bieži nomākta problēmas, kas
iet ar viņiem.
Bugs, vīrusi, un programmatūra glitches ir mazas cenas
maksāt par ērtībām.
Bet augsto tehnoloģiju un ātrgaitas militārās un kosmosa programmu pieteikumus,
mazākais problēma var tiek palielināts par katastrofu.
4.jūnijā, 1996, zinātnieki sagatavoja uzsākt bezpilota Ariane 5 raķeti.
Tas nesa zinātniskā satelīti izstrādātas
noteikt precīzi, kā Zemes magnētiskais lauks mijiedarbojas
ar saules vēju.
Raķete tika uzbūvēta Eiropas Kosmosa aģentūra
un pacēla off no objekta krastā Franču Gviānā.
>> -Un Par 30 sekundēm uz lidojums, viņi vispirms
pamanīju kaut kas notiek nepareizi.
Ka sprauslas tika šarnīra tādā veidā viņi tiešām nevajadzētu.
Aptuveni 40 sekundes iekļaušanu lidojuma, skaidri transportlīdzeklis bija nepatikšanas,
un tas ir tad, kad viņi lēmums to iznīcināt.
Virkni drošības speciālists ar milzīgas iekšas nospiedis pogu,
uzspridzināja raķeti pirms tā varētu kļūt par apdraudējumu sabiedrības drošībai.
>> -Tas Bija jaunava reiss no Ariane 5,
un tā iznīcināšana ņēma vietu, jo plaisāt
iestrādāta raķešu programmatūras.
-The Problēma par Ariane bija tas, ka
bija vairāki, kas nepieciešami 64 biti izteikt,
un viņš vēlējās, lai pārvērstu tas uz 16 bitu skaitu.
Viņi pieņem, ka skaitu nekad bija būs ļoti liels,
ka lielākā daļa no šiem cipariem 64 bitu skaits bija 0 s.
Viņi bija nepareizi.
>> -The Nespēja viena programmatūru pieņemt
veida numuru, ko ģenerē cits bija pie saknes neveiksmi.
Programmatūras izstrāde bija kļuvis ļoti dārgi daļa no jaunās tehnoloģijas.
Ariane 4 raķete bija ļoti veiksmīgs, tik daudz programmatūras
izveidots tā bija arī izmanto uz Ariane 5.
>> -The Galvenā problēma bija tā, ka Ariane 5 bija ātrāks, paātrināta ātrāk.
Un programmatūru nebija veidoja to.
>> -The Iznīcināšana raķete bija milzīgs finanšu katastrofa,
viss dēļ minūšu programmatūras kļūdu.
Bet tas nebija pirmais laika datu pārveides problēmas
bija cieš modernas raķešu tehnoloģijas.
>> -In 1991 ar sākuma Par pirmā Persijas līča kara,
Patriot raķešu piedzīvoja līdzīga veida
skaita konversijas problēmu.
Tā rezultātā, 28 cilvēki, 28 amerikāņu karavīri
tika nogalināti un par 100 citi ievainoti,
kad Patriot, kas bija paredzēts aizsardzībai pret ienākošo scuds,
neizdevās uguns raķeti.
>> -Kad Irāka iebruka Kuveitā un Ameriku uzsāka Desert Storm 1991 sākumā,
Patriot raķešu baterijas tika izvietoti aizsargāt Saūda Arābiju un Izraēlu
no Irākas dzīšanās raķešu uzbrukumiem.
Patriot ir ASV, vidēja darbības rādiusa zeme-gaiss sistēmas
ražojis Raytheon uzņēmums.
>> -The Izmērs Patriot kolektoru, pati, ir aptuveni, apmēram 20 pēdu garš.
Un tas sver aptuveni 2000 mārciņas.
Un tā veic kaujas galviņu no about-- Es domāju, ka tas ir aptuveni 150 mārciņas.
Un kaujas galviņu, pats, ir augsts sprādzienbīstama,
kas ir fragmenti ap to.
No kaujas galviņu korpuss ir paredzēti rīkoties kā rupja skrots.
>> -Mikroshēmas Raķetes ir veikts, 4 vienā konteinerā,
un tiek transportēti ar puspiekabi.
>> -The Patriot anti raķešu sistēma iet atpakaļ vismaz 20 gadus.
Tā sākotnēji tika izstrādāta kā gaisa aizsardzības raķete
atvašu nosaka ienaidnieks lidmašīnas.
Pirmajā Persijas līča kara, kad tas karš nāca kopā,
armija vēlējās izmantot, lai atvašu nosaka scuds, nevis lidmašīnas.
Irākas spēki nebija tik daudz problēmu,
bet armija bija noraizējies par scuds.
Un tā viņi centās uzlabot Patriot.
>> -Intercepting Ienaidnieks raķešu ceļo pie Mach piecās
bija būs izaicinājums pietiekami.
Bet, kad Patriot tika steidzās ekspluatācijā,
Armijas nebija zināms par Irākas modifikācija, kas padarīja
viņu scuds gandrīz neiespējami, lai sasniegtu.
>> -Kas Ir noticis, ir scuds ka Tika nāk, bija nestabila,
tie wobbling.
Iemesls tam, bija irākiešiem, lai
lai saņemtu 600 kilometrus no 300 kilometru diapazons raķešu,
paņēma svaru no priekšējās kaujas galviņu un padarīja kaujas galviņu vieglāks.
Tāpēc tagad, Patriot mēģina nākt pie dzīšanās, un lielākā daļa no laika,
lielākā daļa no laiks, tas būtu tikai lidot ar dzīšanās.
>> -Kad Patriot sistēmas operatoru sapratu Patriot sasniegusi savu mērķi,
tie uzsprāgt Patriot ir kaujas galviņu, lai izvairītos no iespējamiem nelaimes gadījumiem, ja tā
bija atļauts krist uz zemes.
>> -That Bija tas, ko lielākā daļa cilvēku redzēja, šie lielie fireballs debesīs,
un pārprot kā pārtver no dzīšanās kaujas galviņām.
Lai gan naktī debesis, Patriots parādījās
būt veiksmīgi iznīcinot scuds, pie Dhahran,
tur varētu būt kļūda par savu sniegumu.
Tur, Patriot ir radaru sistēma zaudējis dziesmu par ienākošu dzīšanās,
un nekad uzsāka, sakarā ar programmatūras plaisāt.
Tas bija izraēliešiem kurš pirmais atklāja ka vairs sistēma bija,
jo lielāks laiks neatbilstība kļuva, pateicoties pulksteņa iegulto
sistēmā datorā.
>> -Par 2 nedēļas pirms traģēdija in Dhahran,
izraēlieši ziņots Aizsardzības departaments,
ka sistēma bija zaudēt laiku, ka pēc aptuveni 8 stundas pēc kārtas,
viņi pamanīja, ka sistēma bija kļūst ievērojami mazāk precīza.
Aizstāvības departaments atbildēja, stāsta visi Patriot baterijas
lai neatstāj sistēmas uz ilgu laiku.
Viņi nekad nav teicis, ko ilgu laiku bija.
8 stundas?
10 stundas?
1000 stundas?
Neviens nezināja.
-The Patriot baterijas izvietoti pie kazarmām
pie Dhahran, un tās trūkumi iekšējās pulkstenis, bija par vairāk nekā 100 stundas
naktī no 25. februāra.
>> -Tas Kāpurķēžu laiku ar precizitāti apmēram 1/10 no otrās.
Tagad 1/10 no otra ir interesants skaitlis
jo tas nevar būt izteikts bināro, precīzi.
Kas nozīmē, ka nevar jāizsaka, tieši tā,
jebkurā mūsdienu ciparu datora.
Ir grūti noticēt, bet izmantot kā piemēru.
Paņemsim numuru, 1/3.
1/3 nevar izteikt jo aiz komata, precīzi.
1/3 ir 0,333 notiek uz bezgalību.
Nav veids, kā to darīt, ar absolūtā precizitāte, jo aiz komata.
Tas ir tieši tas pats veida problēma, kas notika Patriot.
Jo ilgāk sistēma skrēja, tad sliktāks laiks kļūda kļuva.
>> -Pēc 100 darba stundām, tad kļūda laikā bija tikai aptuveni 1/3 no otrā.
Bet attiecībā uz mērķauditorijas raķešu ceļo pie Mach 5,
tas izraisīja uzskaites kļūda vairāk nekā 600 metrus.
Tā būtu fatāla kļūda par karavīriem pie Dhahran.
>> -Kas Ir noticis, ir dzīšanās sākt bija atklāj agrīnās brīdināšanas satelītiem,
un viņi jauns ka dzīšanās bija nāk viņu vispārējo virzienu.
Viņi nezināja, kur tas nāk.
>> Tagad -Tas bija līdz radara komponents no Patriota sistēmas,
aizstāvot Dhahran, lai atrastu un saglabātu līdzi ienākošo ienaidnieka raķešu.
>> -The Radars bija ļoti gudrs.
Tas faktiski izsekot nostāja dzīšanās
un tad paredzēt, kur tas, iespējams, varētu būt,
nākamajā reizē, tad radars nosūtīja impulsu out.
Ka sauca diapazons vārtiem.
>> -Tad, Kad Patriot nolemj pietiekami daudz laika ir
nodots, lai dotos atpakaļ un pārbaudiet nākamo vieta šim atklāto objektu,
tas iet atpakaļ.
Tad, kad tā devās atpakaļ uz nepareizu vieta, tad tas nesaskata objektu
un tā nolemj, ka nav objekts, tas bija viltus atklāšanas,
un pilieni dziesmu.
Ienākošo dzīšanās pazuda no radara ekrāna,
un sekundes vēlāk, to ietriecās kazarmās.
Dzīšanās nogalināti 28 un bija pēdējais viens atlaists pirmā Līča kara laikā.
Traģiski, atjaunināto programmatūru ieradās Dhahran nākamajā dienā.
Programmatūra plaisāt bija ir noteikts, slēgšana
viens nodaļu nemierīgajā vēsture Patriot raķešu.
>> [Beigtu atskaņošanu]
>> DAVID J Malan: Tātad mēs ņemšu apskatīt daži līdzīgi ierobežojumi tikai mazliet.
Bet vispirms, pieņemsim pāreja uz dažiem FYI ir.
Tātad one-- Šajā nedēļas nogalē, tur būs super sekcijas,
kas ir paredzēti, lai izspiest Regulāri regulārie posmi, kas
sāksies up nedēļā tātad.
Veikt apskatīt uz CS50 mājas lapā Plašāku informāciju par tiem.
Tie tiks filmēts un noskatīties dzīvot tiem, kas nevar ierasties.
Problēma ir noteikts 1 ir uz Protams mājas lapā jau,
un mēs ņemšu apskatīt ka tikai mazliet.
Un biroja darba laiks arī veiks ievietot šo pirmdienas līdz ceturtdienai.
>> Tātad tas bija visvairāk kanonisko Programma mēs paskatījās pēdējo reizi.
Tas ir tāpat kā visvienkāršākais programma, jūs varat rakstīt C,
un pat tas ir mazliet drosmīgu apgalvojumu.
Tiesības?
Jo tur ir daudz šķietams sarežģītību šim.
Tātad pieņemsim ātri apskatīt ko daži no šiem elementiem
bija un tad mēģināt nodrošināt garīga modelis kā
šie visvienkāršāko programmu strādāt, un tad mēs sāksim
skatoties uz lietām arvien sarežģītāka.
Tātad šī līnija šeit, uzsvēra tagad, dzeltenā krāsā, ko gan mēs sakām, pēdējo reizi,
ka tas mums?
Kāds ir mērķis tā kalpo?
Ikviens no tālāk atpakaļ?
Jā.
>> Auditorijas locekļa: [nedzirdama]
DAVID J Malan: Labi.
Tātad, tas dod jums piekļuvi uz komandām, vai pieņemsim
Zvanu viņiem funkcijas, ka kāds cits rakstīja, ka tiek deklarētas,
tā sakot, kādā citā failā.
Tātad mēs redzēsim, ko tieši .H fails ir pret a .c failu, galu galā.
Bet tagad, tikai zinu ka printf, piemēram,
ir viens no funkcijām, kas ir bijuši deklarēta kādā citā failā, kaut kur
cits uz mākoņa cieto disku, kas ļauj mums piekļūt printf un izmantot to
bez jauna ka riteņu sevi.
Tikmēr galvenais.
Kāds bija analogs galvenais, pagājušajā nedēļā?
Jā.
>> Auditorijas locekļa: Green karogs ir uzklikšķināt.
>> DAVID J Malan: Jā.
Scratch s, kad zaļais karogs uzklikšķināt.
Tas ir tāpat kā puzzle gabals ka kicks lietas off.
Un tā līdzīgi, tomēr pasauli nolēma pirms dažiem gadiem, ka C,
un ķekars citās valodās, ja jūs vēlaties, lai uzrakstīt programmu,
jūsu pirmā funkcija ir, lai varētu saukt, galvenais.
Un tas ir, lai izskatās šādi.
Bet mēs būsim atpakaļ, cits laiks, lai ko, int,
un, par spēkā neesošu, nozīmē šajā kontekstā.
Tagad, cirtaini bikšturi ir laipns līdzīgu Scratch ir puzzle gabals formas
kas apkopo kādu līniju skaitu.
Un starp līnijās šeit, šeit tas viens.
printf ir funkcija, kuras mērķis ir dzīve ir drukāt formatētu virkni.
Un formatēti, es domāju tevi varat kontaktdakšu vietturis vērtībām,
un jūs varat norādīt, cik daudz decimālo norāda, cik daudz skaitļi drukāt
Pēc komata un tamlīdzīgi.
Un printf, protams, aizņem vienu vai vairāk argumentus vai parametrus,
citādi zināma, vairāk vienkārši, kā izejvielas.
>> Tātad printf, tāpat daudz funkcijas, ņem ieejas.
Un šie dati tiek paustās ar diviem iekavās šeit.
Un iekšpusē no tiem ir viens ieejas.
Tas ir string, jo mēs esam to sauca, kas ir tikai rakstzīmju sekvence,
piemēram, vārdu vai frāzi, vai kopumā eseja pat, starp pēdiņās.
Un tas, kas notiek varētu ietekmēt uzvedība printf, jo, protams,
tas ir tikai vispārējs drukas funkcija.
Tas nav gatavojas zināt, ko drukāt, ja vien jums pateikt to.
Un tad, daži sīkumi.
Ko mēs sakām tas dīvaini secība simboliem ir?
Jā.
>> Auditorijas locekļa: New līnija.
>> DAVID J Malan: New līnija.
Tātad izrādās, jūs varat ne tikai hit, ievadīt, kad jūs esat rakstiski programmu.
Parasti kompilators gatavojas iegūt nedaudz mulsina par to, ko tu domā.
Drīzāk, jums ir burtiski saka, dod man jaunu līniju šeit.
Un tā / n ir tas, ko mēs parasti zvaniet glābšanās raksturs.
Tātad n, jaunu līniju.
Un kompilators zina ka tad, kad redz / n,
tas tiešām būtu izraisīt datoru, galu galā, vai printf, šajā gadījumā,
izdrukāt faktisko Jauns līnija, tāpat kā hitting, ievadīt,
taustiņu uz tastatūras.
Un visbeidzot, ko darīja mēs sakām šis gabals sintakse ir?
Ko tas pārstāv?
Jā.
>> Auditorijas locekļa: [nedzirdama]
>> DAVID J Malan: Tas ir tikai beigām, līnijas.
Tas ir beigu pārskatā.
Un saprast, ka mums nav viņus visur.
Mēs, protams, nav viņus galos katrā no tām.
Piemēram, tur ir neviens no pirmajā rindā, tur neviens uz līnijas
ar, galvenais, tur neviens pēc cirtaini lencēm,
bet jūs sākat redzēt un saņemt iepazinušies ar kur to sauc par.
Un tas ir gandrīz vienmēr pēc funkcijas zvaniet vai paziņojums, daži pasākumi
ka jūs faktiski lietojat.
>> Un zinu tagad, it īpaši, ja Starp tiem ir mazāk apmierināti,
šie ir stulba lietas veidu kas jūs galu galā nejauši banging
galvu pret sienu vairāk.
Tāpēc, ka jūs būsiet loģiski pārliecināti par kādu problēmu
Jūs esat atrisināta problēma komplekts, un nopelt lieta tikko
nebūs sastādīt vai pat palaist.
Un tik bieži, agri, tas notiek, lai būt tāpēc, ka jūs neatbildētos iekavās
vai jūs neatbildētos semikolu.
Un tā vienkārši jābūt uzmanīgiem no šīm lietām,
un mēģiniet nav iegūt neapmierinātas ar tos, jo ļoti ātri to dara
novecot cepure.
Bet tas ir ļoti viegli nokļūt neapmierinātas agri, kā rezultātā.
>> Tāpēc tagad, pieņemsim to apskatīt, kā Šī līnija ir faktiski strādā
un pēc tam apskatīt nedaudz sarežģītāka viens.
Tāpēc mums ir vairāk nekā šeit, tad spēja izdarīt šajā ekrānā.
Un pieņemsim, ka šī ir mana datora ekrāna,
bet es esmu rakstot šo, sveiki programmu, un man nav īstenoti, printf.
Kāds cits ir īstenojusi, printf.
Kurš gribētu apgalvot ir īstenoti, printf?
Ja mēs varam?
Visas tiesības, kas ir jūsu vārds?
>> STUDENT 1: [? Kopāls. ?]
>> DAVID J Malan: Copal, nākt uz augšu.
Nāciet uz augšu.
Viss kārtībā.
Tāpēc mums ir, šeit, daži vārdu tagus, jo mēs veiksim nelielu spēli šis.
Un mēs aicinām jūs, printf.
Un, ja jūs vēlaties, lai nāk pār šeit, ko es tikko novilkta uz ekrāna,
tas ir diezgan vienkārši, tur ir man, tas.
>> Labi, tāpēc, sveiki mans vārds ir, printf, ja jūs vēlaties, lai tas tālāk.
Viss kārtībā.
Un, ja jūs varat iet stāvēt ar datora ekrāna
it kā jums ir funkcija, kas nāca ar šo datoru sistēmas.
Un jūsu mērķis dzīvē ir faktiski drukāt kaut ko.
Bet, līdzīgi kā programmu mēs tikko bija uz ekrāna, šeit,
mēs esam nāksies faktiski dod jums dažas ievadi.
>> Un tā, ja manu ieguldījumu, šeit ir acīmredzot, kas ir nodota printf,
pieņemsim veida izspēles to, kā šis.
Es esmu gatavojas burtiski rakstīt uz papīra gabals, "Hello, world,"
slīpsvītru N. Un, lai būtu skaidrs, ko Esmu tikko sagatavots par šo papīra gabalu,
izskatās šādi.
Tātad, kad es palaist šo programmu, un šī dzeltenā līnija kods tiek izpildīts,
tā, it kā es, Hello programmu, esmu nododot kādu ievadi off uz funkciju
ka kāds cits rakstīja.
>> Un, ja jūs, ar pirkstu, varētu reāli, ar pirkstu,
zīmēt uz ekrāna neatkarīgi tas ir jums ir nodoti,
efekts, galu galā, ir redzēt, tieši tas, uz ekrāna.
Un Little stūra gadījums.
Un labi, mums nevajadzētu redzēt The, jaunā līnija, šajā brīdī.
Būtu nepareizi, lai jūs skaidri izdarīt newline.
Bet, ja mēs tur rakstot vārdus par ekrāna, viņi galu galā zemāks.
>> Tik liels paldies, bet pieturēties šeit apmēram tikai vienu mirkli.
Mums tagad ir nepieciešams viens otru brīvprātīgo, ja mēs varētu,
kas notiek, lai ir nepieciešams, lai spēlēt lomu of-- Tas ir tikai cilvēki orķestri
tieši tagad.
Kā about-- OK.
Tieši te.
Nāciet uz augšu.
Kā tevi sauc?
>> STUDENT 2: [? Ivay. ?]
DAVID J Malan: Sorry?
STUDENT 2: [? Ivay. ?]
DAVID J Malan: Ethan, nākt uz augšu.
Nē?
Vai es saņemt, ka nepareizi, pat pēc tam, kad teica, ka divreiz?
Nāciet uz augšu.
Ir grūti dzirdēt šeit.
LABI.
Un es atvainojos, kas ir jūsu vārds?
>> STUDENT 2: [? Ivay. ?]
>> [? DAVID J Malan: Ivay. ?] LABI.
Tagad, ja jums nav prāts, jūs GetString.
>> STUDENT 2: OK.
Cool.
DAVID J Malan: Tātad, ja jūs vēlaties stāvēt šeit tikai brīdi,
pieņemsim to apskatīt nedaudz sarežģītāka programma, kas
Tagad ir trīs rindas kodu.
Tātad mums ir viens, norādiet savu vārdu, izmantojot printf; divi, aicinājums uz GetString,
seko norīkojumā mainīgs sauc, stīgu s, vai sauc s;
un tad vēl aicinājumu, printf, bet šoreiz ar divām ieejām.
>> Tātad mēs esam jau darījuši valsts Jūsu vārds, vai drīzāk, mēs esam
jau paveikuši printf zvanu.
Tāpēc es esmu gatavojas rakstīt, valsts savu vārdu.
Un tā, ko es esmu gatavojas caurlaide, printf, tikai brīdi,
ir pavisam vienkārši, tas.
Tātad, ja jūs vēlaties, lai iet uz priekšu un izdarīt šo uz ekrāna, tas ir jūsu ieejas tagad.
Viss kārtībā.
Un aizmirst virkni, mums tagad ir mūsu pašu līniju koda šeit.
Tātad, GetString, mums vajag faktiski zvanīt, GetString.
Tātad jūsu mērķis dzīvē ir tikai staigāt ārā orķestri, ja jūs varētu,
un iegūt kādu vārdu.
Bet pieņemsim dot jums kaut likt to.
Ja jūs vēlaties, iet uz priekšu un iegūt virkni,
dabūt kādu vārdu par to papīra gabaliņš, ja jūs varētu.
>> Viss kārtībā.
Un mēs redzēsim, tikai brīdi, kura vārds mēs esam nonākuši.
Tajā pašā laikā, ko es esmu gatavojas ir gatavs, ir tukšs gabals
no papīra, kurā, es eju uzglabāt kāda vērtība to
ir tas, ka GetString atgriežas pie manis, Es, būdams string mainīgo sauc, s.
Viss kārtībā.
Tātad, ko jums ir šeit?
Nik.
Viss kārtībā.
Tāpēc mums ir Nik vārdu šeit.
Tātad, tas ir tas, ko burtiski atdota
man, tā sakot, ar GetString.
>> Es, tagad dodos uz izpildīt kreiso pusi
Šīs izpausmes, kur es vienkārši kopēt leju, šodienas vajadzībām, Nik.
Tāpēc tagad, man ir mainīgais sauc, s, uzglabājot Nik vārdu.
Esmu jau pārņēma printf, iepriekšējais arguments.
Bet mūsu trešajā un pēdējā rindā kods, man tiešām ir roku printf
kaut nedaudz different-- "sveiki,% s," reversā slīpsvītra n.
>> Un tā pēdējā rindā es eju lai send-- pēdējā lieta, ko es esmu
gatavojas rakstīt uz leju tagad, tas ir.
Tātad divas rindiņas koda, vai drīzāk pēdējā rindā kodu,
prasa divu inputs-- viens, tas, un divi, šis.
Tātad, ja mūsu printf funkciju tagad var pieņemt tos kā ievade,
ļaujiet man notīrītu ekrānu jums.
Patiesībā nē, jūs varat iet uz priekšu.
Mēs atstāt to uz augšu, jo tas ir par to pašu programmu.
Mums vajadzētu redzēt, hello Nik.
Viss kārtībā.
Tātad tas bija diezgan maz stīpām lēkt cauri, tikai
rakstīt, norādīt savu nosaukums, un, hello Nik.
Bet tas vienkārši ideja ziņa iet, ieejas tuvo un produkcijas saņemšanu,
ir tieši tāds modelis, mēs esam nāksies lai pat vissarežģītākās funkcijas.
Tātad paldies jums tik daudz, lai jums abiem.
Mums ir jauki stress bumba šeit jums.
Un paldies mūsu GetString un printf brīvprātīgie līdzīgi.
Paldies.
Viss kārtībā.
Paldies jums abiem.
>> Tāpēc mēs esam runājuši par līdz šim, galvenokārt par stīgām.
Un izrādās, ka C var faktiski saprast dažus dažādus datu tipus.
Patiesībā, pieņemsim apskatīt šos šeit.
Tātad C, un daudz valodu, izprast lietas sauc simboli.
Char parasti ir baitu vai astoņi biti.
Un tas nozīmē tikai vienu rakstzīmi, tāpat burtu A, vai kapitālu
burts A, vai arī mazo burtu A, vai izsaukuma zīme,
vai kāds raksturs, ka jūs varat rakstīt par klaviatūras, un dažreiz pat vairāk.
Mēs arī gadās redzēt pludiņus.
Pluds ir, parasti A 32-bitu vērtības, vai četri baiti
jo atkal, viens baits ir astoņi biti.
>> Tātad pludiņš ir peldošā punkta vērtība, kaut kas ar komata.
Un tiešām, tas, ko filma runāja
par to, kad viņi runāja par peldošs punktu vērtības, kādu noteiktu bitu skaitu
tiek izmantoti, lai pārstāvētu reālu numuru.
Bet tur ir arī lietas, ko sauc dubultspēlēs.
Tie pastāv Java, ja tu esi APCS,
un dubultā, jo vārds par laimi liecina, ir divas reizes lielāks kā apgrozāmos līdzekļus.
Tas joprojām ir reāls skaitlis, tas vienkārši ir vairāk bitu
ar kuru būt arvien precīzāk, vai uzglabāt pat lielākus skaitļus.
int ir viegli.
Mēs runājām par to, ka pēdējo reizi.
Tas ir tikai skaitlis.
Un tas parasti 32 biti, vai četri baiti.
>> Un tā, ja jums ir, pieņemsim redzēt tagad, 32 bits-- un mēs darījām nedēļā 0,
kādreiz tik briefly--, ja jums ir 32 biti, kas ir lielākais
numurs jūs varat pārstāvēt kā vesels skaitlis?
Dot vai ņemt?
Tas ir tāpat kā 4 miljardus, un tas ir tikai tad, ja mēs esam
pārstāv tikai pozitīvus skaitļus.
Ja jums ir 32 biti, un jūs vēlaties, lai pārstāvēt negatīvus skaitļus, kā arī,
Jūsu diapazons būtībā ir negatīvs 2 miljardi uz pozitīvu 2 miljardiem.
Bet vispār, mēs sāksim 0 iet līdz 4 miljardiem.
>> Jums nav jāzina precīzi, bet mēs varam redzēt to, patiesībā, ja es vienkārši
atvērt mazliet kalkulatoru, šeit.
Es varu darīt 2 no 32, un tas ir tieši tas, cik liels,
cik daudz vērtības jūs varat pārstāvēt, ar 32 bitiem.
Un tas ir aptuveni 4 miljardi.
Tāpēc mēs turpinām redzēt šo numuru pāris dažādās vietās.
Bet, ja jums ir nepieciešams ilgāks skaitļi nekā,
izrādās, tur ir kaut ko sauc ilgi ilgi.
Un ilgi ilgi parasti 64 bitiem, kas
nozīmē, ka tas ir par kārtu pat lielāks nekā int.
>> Tāpēc es pat nevaru izrunāt lielākais numurs, jūs varat pārstāvēt,
bet tas ir ievērojami lielāks.
Tagad kā malā, vēsturiski, ja int ir 32 biti,
un ilgi ilgi ir 64 biti, kā liels ir ilgs, nav ilgi ilgi?
Jūs domājat, ka tas ir garāks nekā int bet varbūt mazāk nekā ilgi ilgi ilgi,
bet tas tiešām atkarīgs.
>> Un tā izrādās viens no neapmierinātību pārāk,
ar rakstot kodu konkrētām sistēmām, ir tā, ka nav visi no šiem datu tipu
ir iepriekš noteiktām vērtībām.
Dažreiz tas ir šo daudz biti.
Dažreiz tas ir, ka daudzi bitiem.
Tātad jums tiešām ir jāzina, dažreiz, kāda aparatūra
jūs strādājat savu programmatūru.
Par laimi, citas valodas un citi datu veidi, kas šobrīd pastāv,
ļauj precīzāk.
Nu, mēs redzējām virkni, un mēs redzējām bool, pārāk,
bet izrādās, tie nāk tikai ar CS50 bibliotēkā.
Tātad tie nav būvētas uz C. Tie vietā,
nākt šajā failā ar nosaukumu CS50.h, ka mēs galu galā
mizu atpakaļ slāņus.
Bet tagad, viņi vienkārši papildu datu tipi.
Bool ir patiess vai nepatiess, un virkne ir rakstzīmju sekvence,
kā vārdu.
Tagad printf, mēs esam redzējuši, ir vietturi,% s ir viens.
Un jūs varētu būt iespēja, lai tagad, secināt no šiem citiem piemēriem, kā
Jums varētu būt vietturi dažādiem datu veidiem.
Piemēram, ņem uzminēt, ja jums vēlējās izdrukāt vienu char izmantojot
printf, vietturi ir iespējams% c.
Un, ja jūs vēlaties, lai izdrukāt vesels skaitlis ar viettura,% i.
% LLD ir garš garš decimālo vērtību, bet ilgi ilgi, lai kartes, lai to.
Un tad% f peldošo punktu vērtība vai dubultā,
tāpēc dažreiz viņi atkārtoti izmanto dažādos kontekstos.
Tātad mēs redzēsim un izmantot daži no tiem laika gaitā.
Un printf un citas funkcijas arī atbalstīt citu personu evakuācijas sekvences,
un reizēm, tie ir nepieciešami.
Tātad slīpsvītru n ir jauna līnija.
Slīpsvītru t, vai kāds vēlaties veikt stab?
Auditorijas locekļa: Tab.
DAVID J Malan: Tab.
Tātad, ja jūs tiešām vēlaties izdrukāt cilni, ne
fiksēts skaits telpās, bet faktiskā tab raksturs, jums nav hit jūsu,
tab, taustiņu uz tastatūras, parasti, jūs faktiski darīt reversā slīpsvītra t.
Slīpsvītru double quote, kāpēc es kādreiz vēlaties, ka?
Tiesības?
Kāpēc es nevaru vienkārši ierakstiet double quote uz manu klaviatūru?
Auditorijas locekli: Jo, pretējā gadījumā, tas ir
gatavojas domāju, ka tas ir beigu no patīk jūsu drukas [? teksta. ?]
>> DAVID J Malan: Tieši tā.
Atcerieties, ar mūsu printf piemēri, kad mēs
Tika iet uz printf ieeju, pa kreisi no šīs ieejas virkni
un par tiesībām uz šī ieguldījuma pavasarī, protams, bija dubultā citātu.
Ja jūsu pašu ieguldījums ir dubultā quote vidū, kas,
dators varētu potenciāli apmulst, kā to,
Vai šis dubultā citātu pieder vidū?
Vai tas pieder ar kreiso vienu?
Vai tas pieder ar pareizo vienu?
Un tā, ja jūs vēlaties, lai padarītu to super skaidrs, jūs slīpsvītru dubultu citātu,
tā ka tas ir aizbēguši, tā sakot, un tas nav esot sajaukusi par kaut ko citu.
Un tur ir daži citi šeit, slīpsvītru r, vienu pēdiņām, 0,
ka mēs varam redzēt laika gaitā, kā arī.
Un tagad, ko par funkcijām?
>> Tāpēc darbības, ko mēs varam veikt līdz šim šajā valodā, C, labi, mēs esam redzējuši,
printf, protams, un viss viens no otra uz ekrāna,
šeit, ka mēs izmantosim, lai Protams pirmie pāris tikai nedēļas,
nākt kad CS50 bibliotēku.
Un viņi dara to daudz vieglāk, jo C, lai faktiski saņemtu lietotāja ievadi.
Izrādās, ka C, un atklāti pāris valodās,
tas ir reāls sāpes kaklā darīt kaut kas vienkāršs, piemēram, tūlītēju lietotāju
par klaviatūru, par viņa vai viņas ieguldījumu.
Un tā šīs funkcijas padara vieglāku.
>> Un tas arī ir kļūda pārbaudot visu,
tā, ka, kad jūs atgādināt trešdien, mēs
redzēja, mēģiniet vēlreiz, brīdinājums, kad es nesadarbojās,
un es drukāti vārdu, nevis vairākas?
Mēs esam darījuši smago celšanas sākumā par pārliecināties lietotājs sadarbojas.
Bet tie ir tikai mācības riteņi, ka mēs galu galā,
un ātri, pacelšanās.
>> Tātad, lai Atgādinājums, tad, pieņemsim ātri apskatīt,
līdzīgi mēs darījām ar nulles, pie daži kanonisko konstrukcijas C
Tas ir domāts, lai, kārtot novērtējums būt viesulis tūre,
tikai tāpēc, ka jums ir atsauce un ka jūs esat redzējis lietas sākumā.
Bet tad mēs apskatīt faktisko kodēšana izmantot dažus no šiem pamatelementiem.
Tik daudz, tāpat kā nulles, kad mums bija paziņojumi, piemēram,
teikt, vai gaidīt, C, mums ir funkcijas, kā arī, piemēram, printf.
>> Ja mēs gribam izteikt nosacījumu C, tas ir līdzīgs, garā,
uz šo puzzle gabals, kas izskatījās tas nulles.
Bet tā vietā, mēs burtiski vienkārši uzrakstīt, ja.
Un tad, iekavās, mēs ieliekam nosacījumu,
ja šis nosacījums ir tas, ko mēs zvanu, atkal, Būla izteiksme.
Un atkal, tas ir sava veida pseudocode.
Un, patiesībā, // ir komentārs.
Tas ir tikai angļu vārdus pie sevis.
Bet tas ir vispārīgs struktūra ir, ja, stāvoklī.
Bet mēs redzēsim betona piemēri tikai brīdi.
>> Ja jūs vēlaties, lai būtu divvirzienu dakša uz ceļa,
līdzīgi mēs darījām ar mūsu brīvprātīgo par Trešdiena, jums var būt, ja cits.
Un, ja jūs vēlaties, lai būtu trešā un Galīgais nosacījums, vai noklusējuma situācija,
Jums var būt tikai par citu bloku, tur.
Un līdzīgi, ar Būla izteiksmes, jūs varat, un, tos kopā.
Un mēs redzējām trešdien, ka tas nav viens & zīme,
tas ir divi, jo zemāka līmeņa iemesliem, mēs beidzot redzēt un spēlēt ar.
Vai-ing lietas kopā ir 2 vertikālas svītras.
Uz ASV tastatūru, šis parasti ir galvenais
ar Shift taustiņu virs Jūsu taustiņu Enter vai Return taustiņu.
>> Tad tur ir šīs lietas, kas mēs izmantosim varbūt vienu vai divas reizes.
Tie ir funkcionāli līdzvērtīgi ko jūs varat darīt ar, ja cits, ja,
cits, ja cits, būvēt, bet viņi sauc slēdzi.
Tie izskatās ļoti dažādi, bet mēs redzēt dažus no mūsu sadales kodu,
nākotnes problēmu kopumu, visticamāk, ka tas ir dažreiz tikai glītāka
veids, kā paust vienotu veselumu ķekars nosacījumiem,
bez daudz cirtaini lencēm un daudz iekavās un iespiedumiem.
Bet viņi dod mums ne vairāk jauda nekā mums jau ir.
Un tagad cilpas.
Un tas viens, mēs meklēt at nedaudz lēnāk.
Bet tad mēs sāksim izmantot šos, jo īpaši tiem, kas jau pazīstami.
Tas ir kanonisko veids, ja neticami arcane veids, lai rakstītu cilpu C
>> Tagad cilpa Scratch bija diezgan vienkārši.
Jums ir, uz visiem laikiem, bloku.
Jums ir, Atkārtot, bloks ar tikai skaitlis jums ir rakstīt.
Un ar, cilpas, jūs varat īstenot abas šīm idejām,
bet tas ir mazliet vairāk tehnisks.
Bet atklāti sakot, tas ir arī samērā vienkāršs.
Tiklīdz jūs zināt par kārtību operācijas, jūs burtiski
ir tikai gatavojas plug vērtībām un pateikt datoram, ko darīt.
Tātad, šeit ir piemērs.
Tas ir cilpa, kas, diezgan vienkārši, skaitās no viena numura uz augšu
caur citu.
Un tikai ar glancing pie tā, pat ja jums ir
nav iepriekšēja pieredze ar šī valoda, ko skaits
tas, iespējams, sākt skaitīšana?
OK, 0.
Un es esmu guessing tas ir tāpēc, ka jums redzēt, ka tur ir int un i,
kas ir mainīgs.
Tas ir inicializēts ar 0.
>> Un tad vēlāk, tas izskatās mēs iet printf, vērtību.
Un, patiesībā, es mazliet typo šeit.
Bet tas ir viegli noteikts.
Ļaujiet man piebilst, es šeit.
Mums tagad ir printf būtni izturējis šo viettura vērtību.
Un kas notiek, lai saskaitīt cauri?
Mērķauditorija: 50.
50.
49.
DAVID J Malan: 49.
Tātad 50, pēc pirmā acu uzmetiena, šķiet labi.
Bet tas, izrādās, būs Mūsu nosacījums, ka mēs turpinām pārbaudīt.
Un mēs ejam, lai apturētu reizi i ir vairs nav mazāks par 50.
Tātad šī cilpa, tieši pretēji, vajadzētu izpildīt, tik ilgi, kamēr i ir mazāks nekā 50.
Bet, tiklīdz tas kļūst 50, vai 51, vai vēl ļaunāk, tas būtu automātiski apstāties.
Viss kārtībā.
>> Tātad, kas patiesībā notiek šeit?
Tātad šis ir no rīkojums operācijas cilpu.
One, jums ir tā saukto inicializācijas.
Šī dzeltenā uzsvēra rieciens kods tiek izpildīts pirmais,
un tā sekas ir, ka uz vienu Trešdiena, jūs, iespējams iedomāties.
Tas rada mainīgo sauc i un to veikali šajā mainīgā vērtība 0.
Tāpēc es ir 0 šajā brīdī stāsts.
>> Nākamā lieta, kas notiek šajā būvēt,
ir tā, ka nosacījums izpaužas pārbaudīti.
Tāpēc es pārbaudīt uzreiz, ir i mazāk nekā 50?
Un, protams, atbilde tagad ir, protams, jā.
Jā, jo i ir 0, un tas protams ir mazāks par 50.
Tad kas notiek, ir tas, ka šis līnija koda izpaužas izpildīts.
Un patiesībā, ja tur ir vairākas rindas kods šajās cirtaini bikšturi,
viņi visi iegūt izpildīts viens pēc otra.
>> Un efekts šeit ir acīmredzot, izdrukāt
skaits i, kas notiek pie būt 0, un pēc tam pēc tam 1 un 2.
Bet kāpēc?
Kāpēc tas get palielina?
Nu, ceturtā lieta, kas notiek, ir tas, ka šo sintaksi
izpaužas izpildīts, pēc semikolu.
i ++ ir stenogrāfija veids, kā pateikt; ņemt vērtību i, un pievieno 1 līdz tā;
un tad nākamajā reizē apkārt, pievienot 1 ar to; un nākamajā reizē apkārt,
pievieno 1 līdz to.
>> Tātad, ja mēs turpinām iet, kas notiek varētu notikt
Nākamais ir es neesmu gatavojas sāktu es kādreiz atkal.
Ja es tur inicializēšana i 0, šis piemērs
tas nekad nebeigsies, jo Es būtu iestrēdzis pie 0.
Bet to, kas notiks, ir ka nosacījums tiks pārbaudīta,
līnija koda saņems izpildīts, i tiks palielināts,
stāvoklis tiks pārbaudīts, kods saņems izpildīts.
Un tas tur riteņbraukšana atkal, un atkal, un atkal,
līdz i ++ inducē vērtība ir 50.
>> Nosacījums tam saka: ir 50 mazāk nekā 50?
Atbilde, protams, nav, un tāpēc visa kods apstājas izpildes.
Un, ja jums ir vairāk kodu uz ekrāna lejā, ka tas, kas notiks tālāk.
Tā pops no šiem cirtaini lencēm un turpina drukāt vēl pēc tam.
>> Tātad joks tagad, no fokstrots, ka jūs varbūt tagad saprotu.
Tas vienmēr ir smieklīgi.
Tas ir tāpat kā chuckles veida izkāst,
un tad tu saproti, jums nevajadzētu būt smejoties humors, kā šis.
Bet ir daži takeaway šeit, pedagoģiski, too.
Tātad izrādās, ka es esmu trūkst gabals sintaksi,
vai fokstrots ir pazudis gabals sintakses šeit.
Kas trūkst, ka mēs esam bija jebkurā citā Piemēram, līdz šim?
Atgriešanās, ir tur, tāpēc tas ir kaut kas cits,
ka mēs atgriezīsimies pie pirms ilgi.
Kas trūkst, lai gan?
Jā.
>> Auditorijas locekļa: The inicializācijas no [nedzirdama].
>> DAVID J Malan: OK.
So yeah.
Tātad faktiski šis is-- Nu, un skaits ir inicializēts
augšas, vai drīzāk, paziņoja augšas.
Tātad šis ir vēl viens veids, kā to darīt.
Bet ne vienā rindā, tas ir derīgs gan.
Kā par šeit?
>> Auditorijas locekļa: Vai tas ir cirtaini bikšturi?
>> DAVID J Malan: Jā.
Tātad cirtaini bikšturi trūkst.
Bet tas kods, es domāju, uz to kredītu, faktiski, sintaktiski spēkā.
Izrādās, jums nav nepieciešama cirtaini bikšturi
ja jums ir tikai vienu rindiņu kodu, kas jūs vēlaties izpildīt iekšpusē cilpas.
Tagad mēs vienmēr, klasē un visas mūsu sadales kodu,
ietver cirtaini bikšturi anyway, tikai skaidrības labad.
Bet saprotu, ka mācību grāmatās un tiešsaistes piemēri,
jums var ļoti labi redzēt cirtaini breketes trūkst dažkārt.
Un tas ir OK, ja tas, ko tu ir atkāpi un paredzēts
ir tikai vienu rindiņu kodu, un nav vairākas rindas kods, iespējams.
Viss kārtībā.
Tātad saistībā ar jautājumu par neprecizitāte, ir jautājums par pārplūdi,
tādā nozīmē, ka, līdzīgi, Vai skaitļu ir robežas tiem
tāpat kā peldošā punkta vērtības?
Šajā pasaulē Peldošāpunkt vērtībām, mēs varam būt tikai tik precīzi,
pēc tam, dažreiz sliktas lietas var notikt,
un mūsu programmas var būt buggy un kļūdu.
Tagad pat ar veseliem skaitļiem, jūs varat uzskriet problēmas.
Tagad vesels skaitlis nav komatu vai numuri pēc tā.
Tas ir tikai dabas numuru, parasti.
Tātad, ko varētu iet nepareizi ar int?
Ja es esmu, izmantojot int uz Count, kas varētu noiet greizi?
Šķiet daudz vienkāršāk.
Jā.
>> Auditorijas locekļa: Ja numurs izpaužas [nedzirdama]
>> DAVID J Malan: Jā.
Ko darīt, ja jūs skaits tik augsts, ka jums nevar izteikt, kas patiešām liels skaits.
Tiesības?
Kādā brīdī, jūs gatavojas pārsniegt robežas
of a 32-bit vērtību vai 64 bitu vērtību.
Tagad atkal, es neesmu pārliecināts, kā izrunāt 64 bitu vērtību,
bet es zinu, ar 32 bitu vesels skaitlis, lielākā vērtība, tas var būt,
ja tas ir tikai pozitīvs vērtībām, ir aptuveni 4 miljardi.
Tātad, ja es mēģinātu skaitīt līdz 5 miljardiem, kaut notiks.
Bet pieņemsim redzēt, kas, patiesībā, var notikt.
Pasaulē skaitlim pārplūdes, kur jūs, kas nozīmē,
pārplūst kapacitātes skaitlis, kas varētu notikt?
>> Tātad, šeit ir bināro numuru, tas ir atavisms 0.
Tas ir visu 1 s, un vietturi tur, ir pilnvaras 2,
tāpēc tas ir bināro.
Tātad šie ir 8, 1 biti uz ekrāna.
Un, ja jūs atceraties, vai jūs ātri math,
kāda vērtība pārstāvētās šeit ar šiem astoņiem 1 bitiem?
255.
Un, pat ja jums nav pilnīgi pārliecināts par matemātiku, jūs varētu darīt to ārā.
Vai jūs varētu tikai veida no iemesla caur to,
pagaidiet minūti, ja es esmu pārstāvot 8 bitu vērtība,
un es esam ieguvuši 256 iespējamās vērtības, bet no kuriem pirmais ir 0,
Es tikai zinu, ka Lielākais būs 255,
un tas, ko tas varētu būt.
>> Tāpēc domāju, ka es cenšos pievienot 1 līdz šai vērtībai.
Ko tu darītu pakāpē skolu, pievienojot 1, un tas
nav īsti piemērots, jo Jums ir veikt: 1?
Kas ir šis skaitlis turpinās kļūt, kad jūs pievienot 1?
Tas notiek, lai kļūtu 0.
Tiesības?
Jo, ja jums bija vairāk bits-- un es ņemšu mēģināt, veida, ierakstiet to ārā here--
ja mums būtu vairāk bitu, ko mēs varētu darīt, šeit ir pievienot 1,
un tad mēs gribētu saņemt šo.
Whoops.
Mēs gribētu ir 1 mazliet visu ceļu vairāk nekā šeit.
>> Bet, ja tas ir ierobežots vērtība, tas ir tikai 8 biti,
un tas ir iepriekš noteikts ar datoru,
ka 1 ir faktiski nav tur.
Tas tikai veida nokrīt no klints.
Un tāpēc, ja jūs pievienot 1 līdz 255, ko vērtību, jūs acīmredzot nokļūt?
0.
Un tā skaitļiem nejauši, un iespējams, nejauši,
beigties ietīšana apkārt kā šis.
Tātad, kādi var būt saistība ar šo?
Nu, tur ir dažas dažādas lietas.
Tātad viens, tas galu galā meklē piemēram, 0, nejauši,
bet jūs varat veida redzēt, pat reālajā pasaulē,
lai labāk vai sliktāk, izpausmes šo ideju par limitu.
Piemēram, kāds no jums, kas ir kādreiz bijusi Lego Star Wars,
Vai kāds zinu maksimālais skaits monētu
Jūs varat savākt Lego Star Wars?
Veikt, ka, balstoties uz mūsdienu vadošajiem jautājumiem.
Tas ir lielāks nekā 256 vai 255.
Tas ir 4 miljardi.
Tātad izrādās, un tur ir daži people--
daži googling apstiprināja pagājušajā night-- gotten 4 miljardus zelta monētas,
vai plauktiņš, jo Lego Star Wars.
Lai gan acīmredzot, tur ir veids, kā triks spēli,
tur ir bug vai funkcija, kas ļauj jums tikai uzkrāj daudz un daudz punktus.
Bet iespējams, lielākais vērtība, saskaņā
šai ekrānuzņēmums par kādu I atrast internetā, ir patiesi, 4 miljardi.
>> Tagad, kāpēc tā?
Tas ir tieši tas, 4 miljardi, droši vien tāpēc, ka kāds nolēma,
kurš bija rakstot šo spēli, ka viņi varētu darīt 4 miljardi,
kaut kas, kaut kas, kaut kas, tāpat vērtības es safasēti
ar kalkulatoru agrāk, bet tas ir tikai nedaudz tīrāku cilvēkiem
teikt maksimālo skaitu no coins-- vai kniedes,
kā tie piestāj them-- ka jūs var savākt, ir 4 miljardi.
Un tā, kāpēc tas ir?
Kā ir LEGO spēle Īstenojot counter
kas ir sekotu monētu skaits jums ir?
Viņi izmanto to, ko?
Auditorijas locekļa: Tas apstājas skaitīšana pēc 4 miljardi.
DAVID J Malan: Tas apstājas skaitīšana pēc 4 miljardus,
kas nozīmē, ka jūs varat secināt, kā programmētājs,
ka viņi, iespējams, Izmantojot 32 bitu vesels skaitlis.
Tāpat programmētājs burtiski tikko drukāti, int, viņa vai viņas kodu,
un tas ir mainīgā tips, kas viņi izmanto, lai saglabātu kādu kodu.
Tātad tur ir citas izpausmes no šiem ierobežojumiem veidu.
>> Tāpēc es neesmu spēlējis šo SPĒLI_ un es lasīju līdzi vēsturi
apstiprināt kā much-- bet tajā, ka Sākotnējā versijā civilizācijas, kur
Jūs acīmredzot mijiedarboties ar katru otru un var karot vai ir miers,
Gandijs bija jābūt vienam no vismierīgākajām rakstzīmes, kā es
saprotu, pirmajā versija civilizācijas.
Un faktiski, atzīmi no 1 līdz 10, viņa agresivitāte bija tikai 1.
Tik kādreiz tik maigi agresīvs, acīmredzot.
>> Bet kādā brīdī, jūs varat acīmredzot instalēt demokrātiju savā ģeogrāfijā.
Un, ja jūs instalējiet demokrātiju savā versijā spēli,
tad jūsu agresijas līmenis iet uz leju.
Tā ir laba lieta.
Cilvēki ir vairāk rāms acīmredzot, šādā situācijā.
Bet acīmredzot, kāds to darīja ne ir, ja, nosacījums
oriģinālajā versijā kodu.
>> Tātad Gandija agresija līmenis pieauga no pozitīvs 1, mīnus 2, uz negatīvu 1,
bet spēle nav izprast negatīvus skaitļus.
Tātad, kas notika bija Gandija agresija līmenis pieauga no 1, līdz 0, uz negatīvu 1,
kas rezultātā tika ietīšana ap to
visvairāk agresīvu raksturu spēlē, pie kura vērtība ir 255,
atzīmi no 1 līdz 10.
Un kopš tā laika, tur ir bijis vairāk inkarnācijām šajā spēlē,
un viņi tur to kā sava veida Lieldienu olu,
ka Gandhi ir acīmredzami tik briesmīgi agresīvs.
Bet tas bija rezultāts ļoti vienkāršs programmēšanas kļūda
šajā ļoti agri versiju spēli.
>> Tagad vairāk satraucoši, vairāk nesen, Boeing 787
tika dokumentēts kā kam bug, nav tāda veida ierīces
jūs īpaši vēlaties, lai būtu kļūda.
Un simptomi, ka es izlasīju šeit, no raksta internetā,
bija tas, modelis 787 lidmašīna kas ir nepārtraukti powered
par 248 dienām var zaudēt visu maiņstrāvu, AC,
elektriskā jauda, ​​pateicoties Ģenerators kontroles vienības,
GCUs, vienlaicīgi nonākšana bezatteices režīmā.
Tātad tas bija brīdinājums izsniegts kad šī problēma tika atklāts.
Šis nosacījums ir radījis ar programmatūras letes,
iekšējais uz GCUs, tāpēc vesels skaitlis vai mainīga,
ka griba pārplūdes pēc 248 dienas nepārtrauktas jaudas.
Boeing ir procesā izstrādā GCU programmatūras jauninājums, ka
kas novērstu nedrošu stāvokli.
>> Tik daudz kā raķete scenārijs, kur
tie bija sava veida mainīgo kas bija skaitīšana, un skaitīšana,
un skaitīšana, bet pamazām pārpildīta robežas savas iespējas,
līdzīgi bija nopelt lidmašīnu ir mainīga pārplūdes
Pēc pietiekami laika norisi.
Un tā mēles-in-vaiga veids Darba ap šo jautājumu
ir patiesi, reboot, jūsu lidmašīna ik 247 dienas, tā ka atmiņa izpaužas noslaucītajiem
un mainīgais iet atpakaļ uz 0.
Bet saprast, tas ir ļoti liels avatārs programmatūru,
bet jo īpaši kā mēs dzirdam par Apple operētājsistēmas nonākšana automašīnām,
un self-braukšanas automašīnas no Google, un kāds no inkarnācijām programmatūru skaits
mūsu ikdienas dzīvē, TV un pulksteņi, un vairāk,
realizēt būtu ieskauj programmatūru, visi, kas ir uzrakstīts ar mums cilvēkiem.
>> Un kā mēs visi drīz atklāt, tas ir ļoti viegli un ļoti tipisks
kļūdīties rakstot programmatūru.
Un, ja jums nav nozvejas viņiem, dažas sliktas lietas var notikt.
Tagad reizēm, daži funny lietas var notikt,
vai vismaz dažreiz mēs zināt sagaidīt kādu sliktums.
Tātad 0 dalīts ar 0, no pakāpes skola, parasti ir slikta lieta.
Tas ir undefined.
Un izrādās out-- un pieņemsim redzēt, ja mans mic var paņemt šo up-- ka Apple
bija daži jautri ar šo nesen.
Tāpēc man ir iPhone šeit.
Es esmu gatavojas runāt ar Siri un uzdot viņai sniegt man atbildi uz 0 atbildi dalīts ar 0.
Kas ir 0 dala ar 0?
>> Siri: Iedomājieties, ka jums ir 0 cepumi, un jūs sadalīt tos vienmērīgi
starp 0 draugiem.
Cik cookies tas katram cilvēkam nokļūt?
Skatīt?
Tam nav jēgas.
Un Cookie Monster ir skumji ka nav cookies.
Un jums ir skumji, ka jums nav draugu.
DAVID J Malan: Tas ir sava veida nepatīkams.
Tātad, tas ir tas, kas bija tikko teica tur.
Tas ir nenoteikts, tas nav noteikts, Un tiešām, daudzas programmēšanas valodas
vai, tiešām, sastādītāji būs noteikt, kad jūs, programmā,
mēģināt sadalīt 0, 0.
Vairāk jautrības nekā šo, lai gan, ir ka acīmredzot, Cookie Monster
ir par čivināt šajās dienās.
Un viņš atbildēja uz šo, ar to, kas ir absolūti adorable.
Bet pieņemsim ātri apskatīt pāris citas konstrukcijas,
un tad ielieciet dažus šīs jāizmanto kods, labos veidos.
Tātad izrādās, turklāt uz cilpas, tur ir
kaut kas ko sauc par kamēr cilpa, ka izskatās citādi, un tiek īstenota
mazliet differently-- un mēs beidzot redzēt examples--
bet savā ziņā, tas ir vienkāršāk, jo tas
neļauj jums, lai sāktu un atjaunināt ietvaros robežas cilpas.
Jūs joprojām varat īstenot.
Tātad jūs varat darīt tieši tādas pašas lietas ar kamēr cilpa, kā ar par cilpu,
bet jūsu sintakse, ultimately-- kā mēs beidzot
see-- būs atšķirīgs.
Tur pat darīt, kamēr cilpa, kas ir faktiski mazliet atšķirīgs,
šajā tā kā par cilpu un kamēr cilpa vienmēr
pārbaudiet to stāvokli, pirmkārt, ja Jūs lasāt šo lietu augšas uz apakšu,
tā veida izskatās, ka tas notiek, lai pārbaudiet to stāvokli pēdējais, jo tas ir
patiesi pēdējā rindā kodu.
Un tiešām, tas būs noderīgs dažās programmās, ka mēs rakstām,
ja jūs vēlaties, lai tikai akli kaut ko darīt un galu galā pārbaudīt stāvokli.
Tas nav nekas slikts.
Ja mēs gribam mainīgos, mēs varam darīt tā pāris dažādos veidos.
Un mēs redzējām Foxtrot karikatūra, viens no veidiem, kā to darīt,
kur jūs atzīt savu mainīgo, piemēram, int counter semikolu,
un tad later-- varbūt nākamais line, varbūt 10 līnijas later--
jūs tiešām sāktu to.
Tātad šie 2 koda rindiņas deklarēt int tipa mainīgais
un sauc to skaitītājs, tāpēc tas dod mani pietiekami biti rīkot int.
Un tad galu galā, tas liek vērtība 0 minētajā mainīgs.
Tā organizē 0 un 1 ir preces modelis, ka mēs zinām, no pagājušajā nedēļā,
apzīmē skaitu mēs pazīstam kā 0.
Vai godīgi sakot, jūs varat darīt daudz kodolīgāk, tāpat kā šo.
>> Tagad mums ir arī spēja zvanu funkciju.
Un patiesībā, šeit ir 2 līnijas Programma, vai izvilkums punktu,
kas ļauj mums faktiski uzrakstīt kādu kodu, kas
saņem virkni no user-- daudz tāpat kā mūsu brīvprātīgais brīdi ago--
uzglabājot rezultātu mainīgā sauc vārds,
un then-- līdzīgi ar mūsu brīvprātīgo ar printf-- izdrukā šīs vērtības
pārejot uz diviem argumentiem, tad virknes, kam seko mainīgā
sauc, nosaukums, pati.
Tātad, pieņemsim to apskatīt, pirms mēs nonākam atpakaļ pie Mario tur,
pie pāris tagad, piemēri.
>> Es iešu uz priekšu un atvērt up, teiksim, funkcija-0.c.
Un, kā vienmēr, šis kods ir pieejams par kursu mājas lapā,
lai jūs varētu spēlēt kopā at mājas un apskatīt to vēlāk.
Bet šeit ir programma tas ir būtība, no līnijas 17 līdz 22.
Galvenais programma ir vieta, kur Programma vienmēr gatavojas sākt.
Šī programma, acīmredzot, gatavojas izdrukāt savu vārdu, kolu.
Tas ir tad dodas uz zvanu GetString, tāpat kā mēs to darījām ar mūsu brīvprātīgajiem.
Un tad, tas ir interesanti, tas notiek, lai izsauktu PrintName.
Izrādās, visu šo laiku, tur šķiet, ir funkcija sauc PrintName.
Kas drukā kādu vārdu.
Mums nav nepieciešams izmantot printf no vakardienas, tur ir PrintName.
>> Bet tas ir maldinošs jo PrintName nav
nāk ar C. cilvēki nav izgudrot to pirms aptuveni 40 vai 50 gadiem,
Es darīju, vietā.
Un patiesībā, ja es ritiniet kas tālāk, paziņojums
kā es varu uzrakstīt mana funkcijas C. Mēs ņemšu beidzot
izskaidrot, kāpēc mēs turpinām sakot, par spēkā neesošu, jo dažās vietās,
bet šodien, pieņemsim paskatieties uz vārda.
>> On line 24, ja jūs vēlaties, lai izveidot savu funkciju,
Jūs burtiski rakstīt Nosaukums funkciju.
Es izvēlējos PrintName.
Iekavās, jūs tad jānorāda, kāda veida
izejvielu, un cik daudz jūs gribu šo funkciju veikt.
Šajā gadījumā, es gribu, lai ņemtu 1 mainīgo sauc, vārds,
un tas būs par veids, stīgu, tāpēc tas notiek
būt daži secība rakstzīmes.
Un tad, tas program-- līdzīgi kā nulles,
Jūs varat būt pasūtījuma mīklu pieces-- nāksies šo pasūtījuma uzvedību.
Tas notiek, lai izsauktu printf garāmejot, hello, viettura,
un tad tas notiek, lai kontaktdakšu jebkurā lietotājs sauc.
>> Tātad šis ir piemērs tam, ko dators zinātnieks būtu
zvans abstrakcija vai funkcionālā sadalīšanās, kas ir tikai
fancy veidi no saying-- ir, ja jums patīk šī augsta līmeņa ideju,
kā es gribu funkcionalitāti, kas izdrukā kādu vārdu, absolūti jums
var burtiski rakstīt printf un pēc tam apliecību argumentiem vēlaties,
un programma darbosies, kā tas ir kopš trešdienas.
Bet jūs varat sākt abstrakts prom jēdziens drukāšanas nosaukumu.
Jūs varat arī tā nosaukumu, piemēram PrintName, un šis
ir šī ideja layering no nedēļas 0.
>> Turpmāk, es un jums nav jāzina vai aprūpi, kā PrintName tiek īstenots.
Jā tā izmanto printf, varbūt tas nav, kas zina, ko lieto?
Who cares?
Tagad es runāju šeit, nevis uz leju šeit.
Un tiešām, kā mūsu programmas nokļūt spēcīgākās un sarežģītākas,
mēs spēsim turpināt lietot par pašsaprotamu ka zemāka līmeņa puzzle gabalus pastāvēt.
Tāpēc, ka mēs rakstījām tos vai kāds cits darīja, tāpēc
ka mēs varam pēc tam jābalstās uz augšu no tiem.
Pieņemsim to apskatīt šo variants, darbojas viens.
>> Tātad šis ir nedaudz vairāk uzlabotas, bet izrādās,
ka CS50 bibliotēkā, tur ir tikai GetInt funkcija.
Mēs nedomājām, pirms vairākiem gadiem, lai īstenotu GetPositiveInt funkciju.
Un tas ir mazliet kaitinošas, jo, ja jūs puiši rakstāt programmu pie kam
jūs vēlaties saņemt pozitīvu vesels skaitlis no lietotāja,
Jūs varat absolūti izmantot GetInt.
Un jūs varat absolūti pārbaudīt ar nosacījums un varbūt cilpa
ja tas int ir lielāks par 0 un kliegt pie lietotāja
ja viņš vai viņa nesniedz Jūs pozitīvs skaitlis.
Bet pieņemsim veidot šo ēka bloķēt sevi, a,
custom Scratch gabals, ja Jums gribas.
Es esmu nāksies programma šeit, ka galu galā, es
vēlas, lai varētu zvanīt GetPositiveInt, un es gribu būt
iespēja izdrukāt lai kas int ir.
Bet tas ir nošķirts prom tagad.
Tas ir tikai dota augstu vārds, kas saka, ka tas, ko tā dara,
kas ir brīnišķīgi, jo tas ir ļoti intuitīvu tagad lasīt.
Un, ja man vienalga, kas ir zem ar kapuci, ļaujiet man ritiniet uz leju.
Un tas ir nedaudz biedējoša sākumā, īpaši
Ja šī ir jūsu pirmā programma, bet pieņemsim to apskatīt.
>> Es vairs sakot, par spēkā neesošu, jo izrādās funkcijas,
līdzīgi GetString, var atgriež vērtību man.
Tie nav vienkārši ir drukāt uz ekrāna,
tie faktiski var nodot man kaut kas atpakaļ.
Un tā kā pirms PrintName, Man nav nepieciešams neko atpakaļ.
Man vajadzēja blakusparādība kaut kas rāda uz augšu uz ekrāna,
bet man nav vajadzīga cilvēka atdot man kaut ko atpakaļ.
Lūk, ar GetPositiveInt, tāpat ar GetInt,
Es gribu jānodod kaut ko atpakaļ.
Tāpēc es saku nē, par spēkā neesošu, on line 23, bet int,
kas saka, šī funkcija ka es rakstu,
sauc GetPositiveInt gatavojas roku mani atpakaļ veselu skaitli, nevis nekas,
nav spēkā.
>> Tajā pašā laikā, tas notiek, lai ne ieejas, tāpēc es esmu, veida, mainīja to.
Es neesmu dodot GetPositiveInt nevienu ievade, es gribu, lai man savu produkciju.
Un tad, kas notiek tagad?
Tātad, šeit ir, kā es varu deklarēt mainīgo.
Es esmu darījusi to ārpus cilpas, iemeslu dēļ, mēs beidzot redzam,
bet tas tikai dod man 32 biti sauc, n,
un es esmu iepriekš noteiktu tos uzglabāt skaitlim.
Un šeit ir, ka, darīt, kamēr būvēt, un tas ir iemesls, kāpēc tas ir noderīgi.
Burtiski to izdarītu, bet n ir mazāk nekā 1.
Tātad, pieņemsim redzēt, kas notiek.
Es izdrukāt, lūdzu man pozitīvu int.
Tad man int, izmantojot CS50 s darboties un uzglabā n.
>> Un tad, kas rindā kodu, iespējams, izpaužas izpildīts nākamais, loģiski?
Kura līnija numurs?
Jā, tā 31.
Jūs nezināt to, līdz jūs esat teicis vai veida secināt to,
bet tā ir taisnība.
Tā iet no augšas uz leju un tad tur atkārtojot.
Tātad, ja man ir drukāti teiksim, skaita negatīvs 1, ir n mazāks nekā negatīvs 1?
Jā.
Jo negatīvā 1 ir mazāks nekā 1.
Tātad, ko vajadzētu notikt?
Es esmu gatavojas darīt bet n ir mazāks par 1,
tāpēc es esmu gatavojas doties atpakaļ uz līnijas 28.
>> Un katrs LAIKU_ un pieņemsim palaist this-- veikt funkcijas 1, lai apkopotu to,
un tagad dot slash funkciju 1.
Ja es rakstīt negatīvu 1, tas ir gatavojas glabāt kliedza uz mani
kamēr es sadarboties, jo katrs no maniem izejvielām ir mazāks par 1
un, ja tā ir, bet mazāk nekā 1, Es esmu gatavojas, lai saglabātu darot to.
Ja es beidzot to numuru, piemēram, 50, Par laimi, tā saka, paldies par 50.
Kāpēc?
Jo tiklīdz n nav mazāks par 1, es stop kļūst iestrēdzis šīs cilpas,
un šī jaunā atslēgvārds šodien, atgriešanās, burtiski tas, ka.
Tāpēc es esmu tikko ieviesta, jo izjūta, ekvivalents GetString,
kur es esmu, nododot atpakaļ kurš izmanto mani, kāda vērtība.
Tai nav jābūt virkne, tas ir int.
Tik vienkāršs, ātrs Piemēram, bet mēs drīz
redzēt dažas sarežģītākas versijas joprojām.
Patiesībā, pieņemsim to apskatīt ciparu viens, ko sauc return.c.
Un tas viens ir faktiski nedaudz vienkāršāka.
Tātad šī programma ir nolūks life-- pieņemsim apkopot un palaist to,
lai padarītu atdevi, dot slash, return-- paziņojums
Programma vienkārši kubiņos vērtību 2.
Tas ir diezgan muļķīgi, tas ir grūti kods, tas neveic nekādus ieguldījumus,
bet tas pierāda, cits funkcija, kas es esmu rakstījis pats.
Tātad šeit, es esmu paziņojis, ka mainīgais, ko sauc par x, int tipa,
vienāds ar numuru 2, pilnīgi patvaļīgi.
Tas ir tikai dažas pūkains apdruka.
Tajā teikts, x ir tagad, piemēram un piemēram, cubing dot dot dot.
Un maģija ir acīmredzami atbilst 21.
Es esmu aicinot funkciju sauc, kubu, Es esmu nododot to papīra lapu
ar numuru 2, rakstīts par to, un kāda vērtība, matemātiski,
vēlos izkļūt no tā?
Tāpat kā veselība pārbaudītu?
8.
Tiesības?
Es gribu 2 kubā atpakaļ, 2 līdz jauda 3, tā 8 atpakaļ.
>> Tātad, ja ir kubs īstenots?
Nu, uzraksta tas ir īstenots uz leju šeit.
Un, tāpat kā agrāk, loģiski, kaut gan sintakse ir iespējams
ļoti jauns, lai daudzi no jums, Es gribu šo funkciju
atdot man atpakaļ lapas papīrs ar int par to.
Tāpēc man ir int, ka nosaukums ir patvaļīgi,
bet ērti sauc kubu.
Ieguldījums to, ir n tipa vesels skaitlis, tā, ka ir
kā es varu iet skaita 2 uz papīra lapas.
Un tad izrādās, C balstus math, tāpēc jums nav x ir par laikiem,
jūs vienkārši izmantot zvaigznīti pavairošanai.
Un tas atgriežas n reizes n reizes n, kas ir tikai kubā vērtība.
>> Tātad, ja mēs ejam ar visu šo?
Tas noteikti ir viesulis tūre, esiet droši,
ka super sadaļās un problēmu noteikt 1,
jums tiks gāja cauri tas viss vēl vairāk.
Un problēma ir noteikts 1, mēs pāriet no grafiskā pasaules Scratch
lai kaut ko vairāk komandrindas C. Bet mēs smelties iedvesmu
no šī te spēlē no vakardienas, kur
izmantojot C un standarta izdevums p komplekts jums īstenot Mario piramīdu.
Un hakeru izdevumā p komplekts, ja jums tā izvēlēties ievēlēt,
Jūs īstenos mazliet vairāk apstrīdot piramīda ar divām virsotnēm.
Jūs arī īsteno algoritms, mantkārīgs algoritms.
Izrādās, tur ir daži interesanti loģika
aiz procesā rādīt kases staciju
un faktiski nododot kāds atpakaļ pārmaiņas.
Ir algoritms, kas ir diezgan vienkārši, ka jūs pat varētu
satveriet intuitīvi, kad pirmo reizi izlasīju it-- saprotot, ka tas, ko es vienmēr esmu
darīts jebkurā laikā es esmu dota kāds kādu nauda back-- kas ļauj jums vienmēr
samazināt skaitu papīra piezīmes vai metāla monētas
ka jūs nodošanu atpakaļ uz lietotāja.
Un tas, protams, ir pārliecinoši jo, ja jūs doties uz CVS vai plauktiņš,
Jūs nevēlaties būt roku visu ķekars tiem
vai visu ķekars pennies.
Jūs vēlaties vismazāk monētas, iespējams, iespējams.
>> Beidzot, jūs arī var apstrīdēt plunčāties pasaulē ūdens
un faktiski iegūt atzinību par kartēšana starp likmēm plūsmu,
no patīk, ūdens dušu, cik daudz ūdens tiek izmantots.
Un tajā mājiens, būs šo klipu šeit,
ko mēs galu on tikai 60 sekundes, lai
krāsu attēlu zemas plūsmas dušas galviņas.
>> [Video atskaņošana]
-Viss kārtībā.
Man viss šeit.
Man ciklona F sērija, Hydra, Jetflow, Stokholma
Supersteam, jūs nosaukums tam.
>> -Un Ko jūs ieteiktu?
>> -Ko jūs meklējat?
>> -Power Cilvēks.
Power.
-Tāpat Silkwood.
-That Ir par radiāciju.
-That Ir labi.
-Tagad Kas tas ir?
-That Ir Commando 450.
Man nav pārdot, ka viens.
>> -Bet Tas, ko mēs gribam.
Tas ir commando 450.
>> -No Ticiet man.
Tas ir tikai izmanto cirka.
Tas ir par ziloņiem.
>> -I'll Maksāt neko.
>> -Kas Par Jerry?
>> -Viņš Nevarēja rīkoties tā.
Viņš ir delikāts.
O jā.
[Beigtu atskaņošanu]
DAVID J Malan: Labi.
Tas ir, ja par CS50.
Redzēsim tevi nākamnedēļ.
>> SPEAKER 1: [? Scully?], [? Ian,?] ciktāl šo outro projektu,
ko jūs esat puiši nāk klajā ar?
>> SPEAKER 2: Nu, mēs esam dota tas dažādas domas,
un mēs domājam, ka labākais veids, kuri paredzēti,
>> SPEAKER 3: es drīkstu?
>> SPEAKER 2: Jā.
Ar visiem līdzekļiem, faktiski.
>> SPEAKER 3: Tāpēc es domāju, ka mēs varam Rezumējot mūsu ideju
par Outros ar vienu word-- neko.
>> DAVID J Malan: Nekas?
SPEAKER 3: Nekas.
DAVID J Malan: Ko tas nozīmē?
SPEAKER 3: The Outros ir par neko.
SPEAKER 2: Nu, es domāju, filozofijā, Es domāju, nekas vienmēr ir kaut kas.
SPEAKER 1: Tātad what's-- kas ir priekšnoteikums?
SPEAKER 3: Tātad tas ir tāpat kā dzīvē.
LABI.
Ko tu šodien darīji?
>> DAVID J Malan: Es piecēlos, bija Brokastis, un nāca uz darbu.
>> SPEAKER 3: Tas outro.
SPEAKER 2: Bet, es domāju, nevajadzētu kaut kas notiek ar viņu uz the--
SPEAKER 3: Nē, nē, nē, nē.
Nekas nenotiek.
>> SPEAKER 1: Tad kāpēc mēs skatoties?
>> SPEAKER 3: Jo tas ir outro par CS50.
>> DAVID J Malan: Vēl nav.