DAVID J Malan: All dritt, għalhekk dan huwa CS50. U dan huwa manifestament il-ġimgħa. U dan huwa l-aħħar ta 'ġimgħa. Allura inti tista 'tfakkar li aħna jitħalla' off, aħħar darba, ma 'cliffhanger ta' tip. Li biha aħna jesponu dan jinsabu, li l-ebda jimpurtax dak li inti kont qed mgħallem tikber up, 1 maqsum f'10 mhuwiex, fil fatt, 0.1 jew 0.100 jew 0.10000. Fil-fatt, jekk aħna jiġbor dan programm, kif għamilna bieraħ, bil, jagħmlu impreċiżjoni, u mbagħad do dot, mmejla, impreċiżjoni, aħna tgħallimna li dan huwa dak li 1 maqsum f'10 fatt hu. Allura li mhux verament pjuttost il-każ. Iżda dan ma ħjiel f'xi limitazzjoni fundamentali ta 'kompjuters. U fil-fatt, fost l- affarijiet aħna qed tmur biex tagħmel llum hija tagħti ħarsa lejn għaliex dan għandu ġara, x'implikazzjonijiet dan għandu, kif umanità naqset li jaħtfu din f'xi ħafna situations-- serju ir-riżultat tal-li kienet pjuttost traġika u expensive-- u wkoll tagħti ħarsa lejn kif aħna jistgħu attwalment tiddefendi kontra dawn it-tipi ta 'limitazzjonijiet. Allura intuwittivament, forsi, għaliex huwa 1 maqsum f'10, skond il-kompjuter tiegħi hawn, mhux biss 1/10, 0.10? Yeah. What do you think? Udjenza membru: Il radix hija differenti? DAVID J Malan: Il x'inhu? Oh, il radix huwa differenti? Allura ma pjuttost. Huwa attwalment aktar fundamentali għall-hardware. Ħsibijiet oħra? Yeah. Udjenza membru: Huma jirrappreżentaw numri differenti? DAVID J Malan: Allura they-- Dritt. Huma jirrappreżentaw numri differenti. Impreċiż, apparentement. Allura li is-- Well, differenti minn dak? Jew minn min? Minna? Udjenza membru: Yeah. Ma jużawx l-deċimali sistema biex [inaudible]. DAVID J Malan: OK. Allura f'ċertu sens, dawn ma jużaw is-sistema deċimali. Taht il-barnuża, kollox huwa, tabilħaqq, binarja, u li kienet tirrigwarda, fil-fatt. Iżda huwa saħansitra aktar sempliċi spjegazzjoni minn dak. Yeah. Udjenza membru: Huma biss tant bits. Huma jistgħu biss jaħżen sa ċertu punt, bħal ma l-deċimali. DAVID J Malan: Yeah. Dan huwa dak li verament jkollna fiha. Jirriżulta li l-kompjuters tipikament, dejjem se biss jużaw ammont finit ta 'informazzjoni li jirrappreżentaw xi ħaġa. Dritt? Wara kollox, aħna biss ikollhom fissa ammont ta 'spazju hard disk. Aħna biss ammont fiss RAM, jew memorja tal-kompjuter. U jekk inti biss għandek ammont fiss ta 'xi ħaġa, żgur inti ma tistax attwalment joqgħod up għall-infinit jew kwalunkwe numru tixtieq. You, tip ta ', għandek toqgħod tagħżel liema firxa ta 'valuri int ser tappoġġja. U għalhekk per eżempju, ġimgħa jew tnejn ilu, meta aħna tkellem dwar ASCII, u tkellimna madwar 8 bits, jew byte, biex ngħidu hekk, l-akbar numru nistgħu jirrappreżentaw bi 8 bits kien dak? 255. U nistgħu jirrappreżentaw 256-valuri totali iżda mhux jekk nonfqu wieħed minnhom fuq 0-- Ukoll, imma jekk irridu jonfqu wieħed minnhom fuq 0, allura l-akbar numru huwa, ovvjament, 255. Għalhekk jirriżulta li, li dan huwa il-każ ukoll, f'dan il-kuntest. Bdejna nitkellmu, l-aħħar darba, dwar b'punt numri, li huma differenti minn interi, fil li dawn ikollhom punt deċimali u, wieħed jittama, xi numri wara li, iżda huma wisq. A kompjuter huwa biss tipikament se li uża 32 bits, forsi 64 bits li jirrappreżenta valur b'punt li jvarja. Għalhekk anki jekk konna kibret matematika tagħlim u jafu li inti tista 'assolutament ma numru infinit ta 'numri wara l-punt deċimali, mhux jekk għandek memorja finite. You, tip ta ', jkollu jarrotonda, jew toqgħod tagħżel liema numri int ser jirrappreżentaw. U għalhekk inti tista 'taħseb, f'ċertu sens, dan huwa l-kompjuter eqreb approssimazzjoni tal-valur 1/10 li hija tista 'tikseb, bi ftit 32 jew hekk bits. U m'humiex biss 1/10. Per eżempju, jekk nibdel dan 03/01, li aħna naħsbu li hija saħansitra aktar sempliċi. Allura 1 maqsum bi 3. Let me tiffranka l-fajl. Let me imorru quddiem u recompile dan. U let me terġa 'run. Hawnhekk ukoll, apparentement, 03/01 mhuwiex 0.3 u mbagħad numru infinit ta '3 ta wara. Inti għandek dan nuqqas ta 'preċiżjoni fl-aħħar. Allura aħna bnedmin huma korretti, u liema inti tgħallimt jiġifieri, fil-fatt, korretta, imma aħna qed bumping up kontra xi limitazzjonijiet. U dak li ħsibt aħna'd tagħmel illum, huwa tibda billi tħares lejn, franchement, il konsegwenzi traġiċi tat dan kultant, meta umanità ma pjuttost jimplimentaw għal din ir-realtà u dawn il-limitazzjonijiet. U aħna ser tara serje ta 'vignettes mill-Kanal Istorja li jieħu ħarsa lejn kif l-affarijiet marru ħażin. Huwa madwar 8 minuti fit-tul, u aħna ser terga 'lura wara din u tagħti ħarsa lejn eżattament x'iktar tista 'tmur ħażin. Jekk nistgħu dim l lights-- [Daqq video] -Computers, Aħna ve kollha waslu li jaċċettaw il-problemi spiss frustranti li jmorru magħhom. Bugs, viruses, u software glitches huma l-prezzijiet żgħar li tħallas għall-konvenjenza. Iżda ta 'teknoloġija għolja fil u ta' veloċità għolja applikazzjonijiet programm spazjali militari u, l-iżgħar problema tista jiġi eżaltat fil diżastru. 4 Ġunju, 1996, xjentisti ippreparata li tniedi mingħajr ekwipaġġ Ariane 5 rokit. Kien jġorru xjentifika satelliti mfassla biex tistabbilixxi preċiżament kif l- Jinteraġixxi Dinja kamp manjetiku mal-irjieħ solari. Il rokit kienet mibnija għall l-Aġenzija Spazjali Ewropea u tintrefa 'minn faċilità tagħha fuq il-kosta tal-Gujana Franċiża. -u Madwar 30 sekonda fi it-titjira, l-ewwel xi ħaġa ndunat kienet tmur ħażina. Li l-żennuni kienu swiveling b'mod li verament m'għandhomx. Madwar 40 sekonda fil-titjira, b'mod ċar il-vettura kien fl-inkwiet, u li meta huma jkunu għamlu id-deċiżjoni li tiddistruġġih. A Uffiċjal tas-Sigurtà Medda ma imsaren tremendi ippressat il-buttuna, nefaħ l-rokit qabel ma seta ' issir periklu għas-sigurtà pubblika. -Dan Kien il xebba vjaġġ tal-5 Ariane, u l-qerda tagħha ħa post minħabba difett inkorporati fis-software tal-rokit li. -Il-Problema fuq il- Ariane kienet li hemm kien numru dak meħtieġ 64 bits li jesprimi, u ried li jikkonvertu lil numru 16 bit. Assumew li l-għadd qatt kienet se tkun kbira ħafna, li ħafna minn dawk ċifri fil in-numru 64 bit kienu 0 tal. Huma kienu żbaljati. -Il-Inkapaċità ta 'waħda programm tas-software li jaċċettaw it-tip ta 'numru iġġenerat mill ieħor kien fil-għerq tan-nuqqas. Żvilupp tas-softwer kienet saret parti jiswew ħafna ta 'teknoloġija ġdida. L-rokit Ariane 4 kien ferm suċċess, tant tas-software maħluqa għall kien ukoll użati fuq il Ariane 5. -Il-Problema bażika kienet li l-Ariane 5 kien aktar mgħaġġel, mgħaġġla aktar malajr. U s-software ma kinitx ammontaw għal dan. -Il-Qerda tal-rokit kien hemm diżastru finanzjarju kbir, kollha minħabba żball software minuta. Iżda dan ma kienx l-ewwel problemi ta 'konverżjoni data fil-ħin kien ibati teknoloġija rokit moderna. -In 1991, bil-bidu tal-Ewwel Gwerra tal-Golf, l-missili Patriot esperjenzaw tip simili ta 'problema konverżjoni numru. Bħala riżultat, 28 nies, 28 suldati Amerikani nqatlu u madwar 100 oħrajn feruti, meta l-Patriot, li suppost kellha għall-protezzjoni kontra scuds deħlin, naqas milli nar missili. -Meta Iraq invadiet Kuwajt u l-Amerika imnedija deżert Storm fil-bidu 1991, Batteriji missili Patriot ġew skjerati biex jipproteġu Għarabja Sawdita u l-Iżrael minn attakki bil-missili Scud Iraqini. Il Patriot hija Istati Uniti, firxa medja wiċċ-to-air sistema manifatturat mill-kumpanija Raytheon. -Il-Daqs tal-interċetturi Patriot, innifsu, huwa dwar, madwar 20 pied fit-tul. U li jiżen madwar 2000 liri. U twettaq warhead ta about-- Naħseb li huwa bejn wieħed u ieħor 150 £. U l-warhead, hija stess, huwa splussiv ħafna, li għandha frammenti madwaru. Il-kaxxa tal-warhead huwa mfassla biex jaġixxu bħall buckshot. -Il Missili huma mwettqa, 4 għal kull kontenitur, u huma trasportati minn semi-karru. -Il Anti missili Patriot tmur lura għall-inqas 20 snin issa. Din kienet oriġinarjament iddisinjata bħala missili difiża arja li rimja fl ajruplani ghadu. Fil-Gwerra tal-Golf ewwel, meta dik gwerra daħlet tul, l-Armata riedu jużawh għal rimja fl scuds, mhux ajruplani. Il-Forza Iraqi ma kienx hekk ħafna ta 'problema, iżda l-Armata kien inkwetat dwar scuds. U għalhekk huma ppruvaw jaġġornaw il-Patriot. -Intercepting Ghadu missili jivvjaġġaw mach ħamsa kienet se tkun sfida biżżejjed. Iżda meta l-Patriot kien ġrew fis-servizz, l-Armata ma kienx konxju ta ' Modifika Iraqi li għamel scuds tagħhom kważi impossibbli li hit. Liema ġara, hija l-scuds li kienu ġejjin fi, kienu instabbli, kienu wobbling. Ir-raġuni għal dan, kien l-Iraqini, sabiex tikseb 600 kilometru mill missili medda 300 kilometru, ħa piż mill-warhead ta 'quddiem u għamel l-warhead eħfef. Allura issa, l-Patriot tipprova toħroġ fil-SCUD, u ħafna mill-ħin, il-maġġoranza assoluta tal- ħin, ikun biss jtiru mill-SCUD. -Ladarba L-operaturi tas-sistema Patriot realizzati l-Patriot spiċċa barra, dawn jisplodu warhead tal-Patriot, il biex jiġi evitat diżgrazzji possibbli jekk hija kien permess li jaqa 'l-art. -Li Kien dak li ħafna nies raw, dawk fireballs kbar fis-sema, u mifhuma ħażin bħala interċettazzjonijiet ta testati Scud. Għalkemm fil-lejl smewwiet, Patriots deher li jkun b'suċċess jeqirdu scuds, fil Dhahran, jista 'jkun hemm l-ebda żball dwar ir-rendiment tagħha. Hemm, sistema radar tal-Patriot tal mitlufa binarji ta 'Scud li jmiss, u qatt tnieda, minħabba difett software. Kien l-Iżraeljani li l-ewwel skoperti li l-aktar is-sistema kien fuq, l-akbar il diskrepanza ħin saret, minħabba arloġġ integrati fil-kompjuter tas-sistema. -About 2 ġimgħat qabel l-traġedja fil Dhahran, l-Iżraeljani rrapportati lill Dipartiment tad-Difiża, li s-sistema ġiet jitilfu l-ħin, li wara madwar 8 sigħat ta 'ħidma, ndunat li s-sistema kienet isiru notevolment inqas preċiż. Id-Dipartiment tad-Difiża wieġbet billi javżak kollha tal-batteriji Patriot li ma jħallux is-sistemi fuq għal żmien twil. Huma qatt ma qal dak żmien twil kien. 8 sigħat? 10 siegħa? 1000 siegħa? Ħadd ma kien jaf. -Il Batterija Patriot stazzjonati fuq il-kwartieri fil Dhahran, u interna mudelli tiegħu arloġġ, kien fuq matul 100 siegħa fil-lejl tal 25 Frar. -Hija Tracked ħin bi preċiżjoni ta 'madwar 1/10 ta' sekonda. Issa 1/10 tat-tieni huwa numru interessanti għaliex ma jistax ikun espressi binarju, eżattament. Li jfisser, ma jistax jiġu espressi, eżattament, fi kwalunkwe kompjuter diġitali moderna. Huwa diffiċli li wieħed jemmen, iżda jużaw dan bħala eżempju. Ejja tieħu n-numru, 03/01. 03/01 ma tistax tiġi espressa fl deċimali, eżattament. 03/01 huwa 0.333 għaddej għal infinità. M'hemm l-ebda mod biex tagħmel dan, ma eżattezza assoluta, fl deċimali. Dan huwa eżattament l-istess tip ta ' problema li ġara fil-Patriot. L-itwal-sistema dam, il- agħar l-iżball ħin sar. -After 100 siegħa ta 'tħaddim, l-iżball fi żmien kienet biss madwar 1/3 ta 'sekonda. Iżda f'termini ta jimmira għal missili jivvjaġġaw mach 5, dan wassal għal traċċar żball ta 'aktar minn 600 metru. Ikun żball fatali għall-suldati fil Dhahran. Liema ġara, hija tnedija Scud kienet osservata minn satelliti ta 'twissija bikrija, u huma ġdid li l-Scud kienet ġejjin fil-direzzjoni ġenerali tagħhom. Dawn ma kinux jafu fejn kien ġejjin. -Hija Issa kien sal-radar komponent tas-sistema Patriot, difiża Dhahran, li jinstabu u jżommu kont tal-missili ghadu dieħla. -Il Radar kien intelliġenti ħafna. Hija fil-fatt track il-pożizzjoni tal-Scud u mbagħad previżjoni fejn probabbilment ikun, il-ħin li jmiss, il- radar bagħtet polz out. Li kienet tissejjaħ l-gate firxa. -Then, Ladarba l-Patriot jiddeċiedi biżżejjed żmien għandu għadda li jmorru lura u jivverifika l-li jmiss post għal dan l-oġġett misjuba, din tmur lura. Allura meta marru lura lill-ħażin post, imbagħad tara l-ebda oġġett u tiddeċiedi li ma kien hemm l-ebda oġġett, kien kxif falza, u qtar il-binarju. Il Scud dieħla sparixxa mill-iskrin tar-radar, u sekondi wara, slammed fil-kwartieri. Il Scud maqtula 28 u kienet l-aħħar wieħed sparati matul l-Ewwel Gwerra tal-Golf. Traġikament, is-software aġġornat waslu fil Dhahran l-għada. L-difett softwer kellhom Kien fiss, għeluq kapitolu fil-mnikkta istorja tal-missili Patriot. [END Daqq] DAVID J Malan: Allura aħna ser tagħti ħarsa lejn xi limitazzjonijiet simili biss daqsxejn. Iżda l-ewwel, ejja tranżizzjoni għal ftit FYI l. Allura one-- dan il-weekend, hemm se jkun sezzjonijiet super, li huma maħsuba biex jieħdu post sezzjonijiet skedat regolarment, li se jibdew fil-ġimgħa għalhekk. Agħti ħarsa lejn websajt tal-CS50 tal għal aktar informazzjoni fuq dawk. Huma se jkunu wkoll iffilmjati u streaming ħajjin għal dawk li ma jistgħux jattendu. Problema stabbilixxa l-1 huwa fuq il- website kors li diġà, u aħna ser tagħti ħarsa lejn li fi ftit ftit. U ħinijiet tal-uffiċċju wisq, se tieħu qiegħed dan it-tnejn permezz Ħamis. Allura dan kien l-aktar canonical programm ħarisna lejn l-aħħar darba. Huwa bħall-sempliċi programm tista 'tikteb fil C, u anki li daqsxejn ta 'talba bold. Dritt? Għaliex hemm ħafna ta ' seeming kumplessità għal dan. Mela ejja tagħti ħarsa lejn dak li xi wħud minn dawn l-elementi kienu u mbagħad jippruvaw jipprovdu mudell mentali għal kemm dawn sempliċi ta 'programmi xogħol, u mbagħad aħna ser tibda tħares lejn l-affarijiet dejjem aktar kumplessi. Allura din il-linja hawnhekk, enfasizzat issa, bl-isfar, dak li ma ngħidu, l-aħħar darba, li dan ma għalina? X'inhu l-iskop li sservi? Xi ħadd mill farther lura? Yeah. Udjenza membru: [inaudible] DAVID J Malan: Tajba. Allura tagħtik aċċess li jikkmanda, jew ejja jsejħulhom funzjonijiet, li xi ħadd inkella kiteb, li huma ddikjarati, biex ngħidu hekk, f'xi fajl ieħor. Allura aħna ser tara eżattament dak fajl .h huwa versus fajl .c, eventwalment. Iżda għal issa, biss jafu li printf, per eżempju, hija fost l-funzjonijiet li ġew iddikjarat xi fajl ieħor, x'imkien inkella fuq hard drive-sħaba li jippermetti li jaċċessaw printf u jużawh mingħajr ma jkollhom jivvinta dik ir-rota nfusna. Sadanittant, prinċipali. Liema kienet l-Analog ta prinċipali, ġimgħa li għaddiet? Yeah. Udjenza membru: flag Paper huwa għafast. DAVID J Malan: Yeah. Tal-bidu nett, meta bandiera aħdar għafast. Huwa bħall-biċċa puzzle li kicks off affarijiet. U għalhekk b'mod simili, ma l-dinja iddeċieda xi snin ilu li fl C, u mazz ta 'lingwi oħra, jekk inti tixtieq li jikteb programm, ewwel funzjoni tiegħek għandu jiġi msejjaħ, prinċipali. U għandu look like dan. Iżda aħna ser terga 'lura, ħin ieħor, għal dak li, int, u, null, ifisser fil-kuntest. Għal issa, il-braces kaboċċi huma tip ta 'prodotti simili forma biċċa puzzle Scratch ta li tiġbor xi numru ta 'linji. U fost fuq il-linji hawn, huwa dan wieħed hawn. printf hija funzjoni li l-għan fil ħajja huwa li jistampaw string formattjati. U mill ifformattjat, I jfissirx li inti tista 'plug fil-valuri placeholder, u inti tista 'tispeċifika deċimali kemm punti, kemm in-numri li jistampaw wara punt deċimali u simili. U printf, naturalment, tieħu waħda jew aktar argumenti jew parametri, magħruf xorta oħra, aktar sempliċi, kif inputs. Allura printf, simili ħafna ta ' funzjonijiet, jieħu inputs. U dawk l-inputs huma ħaddnu miż-żewġ parentesi hawn. U ġewwa minn dawn huwa input wieħed. Huwa string, kif konna imsejħa, li huwa biss sekwenza ta 'karattri, bħal kelma, jew frażi, jew kollu kemm hu essay anki, fl bejn kwotazzjonijiet doppja. U dan huwa dak li għaddej biex jinfluwenzaw il- imġieba ta 'printf minħabba, naturalment, huwa biss funzjoni tal-istampar ġenerika. Huwa mhux se tkun taf dak li jistampaw, sakemm inti tgħid dan. U mbagħad, xi dettalji. What did ngħidu dan stramb sekwenza ta 'simboli hu? Yeah. Udjenza membru: Linja ġdida. DAVID J Malan: Linja ġdida. Għalhekk jirriżulta li, inti ma tistax biss hit, jidħlu, meta int bil-miktub il-programm. Ġeneralment, il-kompilatur hija se tikseb ftit konfuż dwar dak li jfisser. Pjuttost, inti għandek litteralment jgħidu, tagħti me a line ġdid hawn. U għalhekk / n huwa dak li aħna ġeneralment sejħa karattru salvataġġ. Allura n, għal linja ġdida. U l-kompilatur jaf li meta jara / n, dan għandu attwalment jinduċi l-kompjuter, finalment, jew printf, f'dan il-każ, biex jistampa l-ġdida attwali linja, bħall laqtu l-jidħol, ewlenin fuq it-tastiera tiegħek. U fl-aħħar, dak li għamilt ngħidu din il-biċċa ta 'sintassi huwa għall? X'tikkontrolla jirrappreżenta? Yeah. Udjenza membru: [inaudible] DAVID J Malan: Huwa biss l-aħħar tal-linja. Hu l-aħħar ta 'l-istqarrija. U jirrealizzaw li aħna ma jpoġġuhom kullimkien. Aħna ċertament ma jpoġġuhom fit-truf ta 'kull linja. Per eżempju, hemm xejn fuq il- ewwel linja, hemm xejn fuq il-linja ma ', prinċipali, hemm xejn wara l-braces kaboċċi, imma inti ser tibda biex tara u jiksbu familjari mal fejn huwa msejjaħ għall. U huwa kważi dejjem wara funzjoni sejħa jew dikjarazzjoni, xi azzjoni li int fil-fatt tieħu. U jafu issa, speċjalment jekk fost dawk inqas komdi, dawn huma t-tipi ta 'affarijiet stupid li inti ser jispiċċaw aċċidentalment banging ras tiegħek kontra l-ħajt fuq. Għaliex inti ser tkun loġikament kunfidenti f'xi problema inti ħadthom solvuta għal problema sett, u l-ħaġa kkritikat biss mhux se tikkompila jew saħansitra run. U hekk spiss, sa minn kmieni, li għaddej biex jkun għaliex inti qbiżt parentesi, jew tkun insejt tieħu punto virgola. U hekk biss tkun konxja ta 'dawn it-tipi ta' affarijiet, u nipprova biex ma joħorġux frustrati bl minnhom minħabba malajr ħafna ma dan jsiru hat qodma. Imma huwa faċli ħafna li tikseb frustrati kmieni, bħala riżultat. Allura issa, ejja tagħti ħarsa lejn kif din il-linja huwa attwalment taħdem u mbagħad tħares lejn ftit wieħed aktar ikkumplikat. Allura għandna aktar minn hawn, il- abbilità biex jagħmlu fuq dan l-iskrin. U ejja nassumu li dan huwa iskrin tal-kompjuter tiegħi, imma I am miktub fil, Hello programm, u jien ma implimentawx, printf. Xi ħadd ieħor implimentat, printf. Li jixtiequ jitolbu li implimentaw, printf? Jekk nistgħu? Kull dritt, x'hemm isem tiegħek? STUDENT 1: [? Copal. ?] DAVID J Malan: Copal, jaqgħu fuq up. Come fuq up. Kull dritt. Allura aħna għandna, hawn, xi tikketti l-isem, peress li aħna ser jagħmlu logħba ftit ta 'dan. U aħna se sejħa inti, printf. U jekk inti tixtieq li ġejjin hawn, dak li stajt biss imfassal fuq l-iskrin, huwa pjuttost sempliċi, hemm me, dan. Kull dritt, hekk, Hello jien jisimni, printf, jekk inti tixtieq li tqiegħed dak fuq. Kull dritt. U jekk inti tista 'tmur stand mill-iskrin tal-kompjuter daqslikieku inti huma l-funzjoni li daħal b'din is-sistema tal-kompjuter. U l-iskop tiegħek fil-ħajja huwa li attwalment jistampaw xi ħaġa. Iżda ħafna bħall-programm we biss kellhom fuq l-iskrin, hawn, aħna qed tmur biex ikollhom attwalment jagħtuk xi input. U hekk, jekk id-dħul tiegħi, hawnhekk, huwa apparentement, dak li huwa mgħoddi lill printf, ejja tip ta 'mock up bħal dan. Jien ser litteralment jikteb fuq biċċa karta, "hello, dinja," backslash N. U biex tkun ċara, dak Stajt biss imfassal fuq din il-biċċa ta 'karta, tidher bħal dan. Allura meta I run dan il-programm, u dan linja isfar tal-kodiċi gets esegwiti, huwa bħallikieku I, il-programm hello, am għoti xi kontribut off għal funzjoni li xi ħadd ieħor kiteb. U jekk inti, b'subgħajk, jista 'attwalment, b'subgħajk, tibbaża fuq l-iskrin ikun x'ikun huwa ġejt mogħtija, l-effett, finalment, huwa li tara eżattament dak, fuq l-iskrin. U każ kantuniera Little hawn. U tajjeb, aħna ma tara l-, linja ġdida, f'dan il-punt. Ikun żbaljat għalik tiġbed b'mod espliċitu l-newline. Imma jekk irridu tinżamm bil-miktub kliem fuq il- screen, dawn jispiċċaw taħt dak. Allura nirringrazzjak ħafna, iżda stick madwar hawn għal wieħed biss mument. Issa neħtieġu ieħor voluntier, jekk nistgħu, li għaddej biex bżonn biex jilagħbu l-irwol of-- Huwa biss persuni fil-orkestra dritt issa. Kif about-- OK. Dritt hawn. Come fuq up. X'hemm isem tiegħek? STUDENT 2: [? Ivay. ?] DAVID J Malan: Jiddispjacini? STUDENT 2: [? Ivay. ?] DAVID J Malan: Ethan, jaqgħu fuq up. Nru? Did I nikseb li żbaljat, anke wara li qal li darbtejn? Come fuq up. Huwa diffiċli biex tisma up here. OK. U jien sorry, dak l-isem tiegħek? STUDENT 2: [? Ivay. ?] [? DAVID J Malan: Ivay. ?] OK. Għal issa, jekk inti ma mind, inti GetString. STUDENT 2: OK. Kessaħ. DAVID J Malan: Mela jekk inti tixtieq toqgħod hawn għal ftit mument, ejja tagħti ħarsa lejn ftit aktar programm kumpless, li issa għandha tliet linji ta 'kodiċi. Allura aħna għandna, wieħed, agħti l-isem tiegħek billi tuża printf; tnejn, sejħa għall GetString, segwit minn assenjazzjoni għal varjabbli imsejħa, spag s, jew imsejħa s; u mbagħad sejħa oħra għal, printf, iżda din id-darba ma 'żewġ inputs. Istat Allura konna diġà sar isem tiegħek, jew minflok, konna diġà għamlu sejħa printf. Hekk jien ser jikteb,-Istat ismek. U iva, dak li jien ser jgħaddu, printf, fi ftit mument, hija pjuttost sempliċi, dan. Mela jekk inti tixtieq li tmur quddiem u tiġbed dan fuq l-iskrin, li l-input tiegħek issa. Kull dritt. U tinsa string, issa għandna linja tagħna stess ta 'kodiċi hawn. Allura fi, GetString, għandna bżonn li attwalment sejħa, GetString. Allura l-iskop tiegħek fil-ħajja huwa biss walk barra fil-orkestra, jekk inti tista ', u jiksbu l-isem ta 'xi ħadd. Imma ejja jagħtuk xi ħaġa li poġġih fuq. Jekk inti tixtieq li, mur quddiem u jiksbu string, jiksbu l-isem ta 'xi ħadd fuq li biċċa karta, jekk inti tista '. Kull dritt. U aħna ser tara, fi ftit mument, li ismu aħna qed jkollna. Sadanittant, dak li jien ser tkun lesta, hija biċċa vojt tal-karta, li fihom, jien ser li jaħżen x'ikun il-valur huwa huwa li GetString huwa jirritorna lili, I, bħala varjabbli string imsejjaħ, s. Kull dritt. Allura dak li għandek hawn? Nik. Kull dritt. Allura aħna għandna l-isem Nik hawn. Allura dan huwa dak litteralment ġie ripatrijat lili, biex ngħidu hekk, mill GetString. I, issa, vais tesegwixxi in-naħa tax-xellug ta 'dik l-espressjoni, fejn I sempliċiment kopja isfel, għal skopijiet tal-lum, Nik. Allura issa, għandi varjabbli imsejħa, i, ħażna isem Nik tal. Stajt diġà kellhom jaħtru lil printf, argument preċedenti. Iżda fit-tielet u l-aħħar linja tagħna ta ' kodiċi, I attwalment ikollhom printf idejn xi ħaġa different-- ftit "hello,% s," backslash n. U għalhekk l-aħħar linja jien ser li send-- l-aħħar ħaġa jien se jikteb issa, hija din. Allura l-żewġ linji ta 'kodiċi, jew pjuttost l-aħħar linja ta 'kodiċi, jitlob li jkun hemm żewġ inputs-- wieħed, dan, u tnejn, dan. Mela jekk il-funzjoni printf tagħna issa tista 'tieħu dawn bħala input, let me ċar l-iskrin għalik. Attwalment ebda, inti tista 'tmur quddiem. Aħna ser tħalli f'idejn, peress huwa fuq l-istess programm. Għandna tara, hello, Nik. Kull dritt. Allura dan kien pjuttost ftit ċrieki biex tiżdied permezz, just tikteb, jiddikjara tiegħek isem, u, hello, Nik. Iżda din l-idea sempliċi ta 'mogħdija messaġġ, tal tgħaddi input u output tirċievi, huwa eżattament l-mudell aħna qed tmur biex ikollhom għall anki l-funzjonijiet l-aktar kumplessi. Allura nirringrazzjak tant li inti kemm. Għandna stress sabiħ ballun hawn għalik. U nirringrazzjak għall GetString tagħna u voluntiera printf simili. Grazzi. Kull dritt. Grazzi lilek tnejn. Allura aħna kont qed jitkellem dwar s'issa, l-aktar dwar kordi. U jirriżulta li C jistgħu attwalment jifhmu ftit tipi differenti ta 'data. Fil-fatt, ejja tagħti ħarsa lejn dawn hawn. Allura C, u ħafna ta 'lingwi, jifhmu affarijiet imsejħa Chars. A char huwa ġeneralment byte wieħed, jew tmien bits. U dan jirrappreżenta karattru wieħed, bħall-ittra A, jew il-kapital ittra A, jew f'ittri żgħar A, jew il-punt exclamation, jew kwalunkwe karattru li inti tista tip fuq keyboard tiegħek, u xi kultant anke aktar. Aħna wkoll jiġri li tara sufruni. A float huwa, ġeneralment, ta ' 32-bit valur, jew erba 'bytes għaliex darb'oħra, byte wieħed huwa tmien bits. Allura float huwa valur b'punt li jvarja, xi ħaġa ma 'punt deċimali. U fil-fatt, dan huwa dak l-film kien jitkellem dwar meta tkellem dwar f'wiċċ l-ilma valuri tal-punti, xi numru fiss ta 'bits qed jintużaw biex jirrappreżentaw numru reali. Iżda hemm ukoll affarijiet imsejħa jirdoppja. Dawn jeżistu fl Java, jekk inti ħadt APCs, u doppju, bħala l-isem Thankfully jissuġġerixxi, huwa darbtejn akbar bħala float. Huwa għadu numru reali, hija biss għandha aktar bits li biex tkun dejjem aktar preċiżi, jew li jaħżnu numri saħansitra akbar. int huwa faċli. Aħna tkellimna dwar dan l-aħħar darba. Huwa biss numru sħiħ. U huwa ġeneralment 32 bits, jew erba 'bytes. U hekk, jekk għandek, ejja naraw issa, 32 bits-- u għamilna dan fil-ġimgħa 0, dejjem hekk briefly-- jekk ikollok 32 bits, x'inhu l-akbar numru li jista 'jirrappreżenta bħala numru sħiħ? Agħti jew jieħdu? Huwa simili 4 biljun, u dak li biss jekk aħna qed li jirrappreżenta numri pożittivi biss. Jekk għandek 32 bits, u inti tixtieq li jirrappreżentaw numri negattivi kif ukoll, firxa tiegħek huwa, essenzjalment, negattivi 2 biljuni għall-pożittiv 2 biljuni. Iżda ġeneralment, aħna ser tibda f'0 jitla 'għal 4 biljun. Inti ma għandekx tkun taf b'mod preċiż, iżda nistgħu naraw dan, fil-fatt, jekk I biss jiftħu calculator ftit, hawn. I tista 'tagħmel 2 l 32, u dan huwa eżattament kemm hu kbir, kif il-valuri ħafna tista jirrappreżentaw, 32 bits. U huwa bejn wieħed u ieħor 4 biljun. Allura aħna ser tibqa 'tara dak in-numru fi ftit postijiet differenti. Imma jekk għandek bżonn itwal numri minn dan, jirriżulta hemm xi ħaġa imsejħa twil twil. U fit-tul huwa ġeneralment 64 bits, li ifisser li huwa ordni ta 'kobor saħansitra ikbar minn int. So I can not anki jippronunzja l-akbar numru li inti tista 'tirrappreżenta, imma hija nettament akbar. Issa bħala twarrib, storikament, jekk int tkun 32 bits, u fit-tul huwa 64 bits, kif big huwa twil, u mhux twil twil? Youd taħseb li għandu aktar minn int imma forsi inqas twila minn twil twil, iżda fil-fatt jiddependi. U għalhekk jirriżulta waħda tal-frustrazzjonijiet wisq, bil-kitba kodiċi fuq ċerti sistemi, hija li mhux kollha ta 'dawn it-tipi ta' data għandhom valuri stabbiliti minn qabel. Xi kultant huwa dan ħafna bits. Xi kultant huwa li ħafna bits. Allura inti fil-fatt għandek tkun taf, kultant, liema hardware int taħdem software tiegħek fuq. B'xorti tajba, ilsna oħra u tipi ta 'data oħra li issa jeżistu, jippermetti li inti tkun aktar preċiża. Well, rajna spag, u rajna BOOL, wisq, iżda jirriżulta dawk ġejjin biss bil-librerija CS50. Allura dawn huma mhux mibnija fis C. Dawk minflok, jaqgħu fil dan il-fajl imsejħa CS50.h, li aħna ser eventwalment qoxra lura l-saffi ta '. Iżda għal issa, dawn qed biss tipi ta 'data addizzjonali. A BOOL hija vera jew falza, u string hija sekwenza ta 'karattri, bħal kelma. Issa printf, Rajna, għandha placeholders,% s hija waħda. U inti tista 'tkun kapaċi, għal issa, jiddeduċu minn dawn l-eżempji l-oħra, kif inti jista 'jkollhom placeholder għal tipi differenti ta 'data. Per eżempju, tieħu raden, jekk inti riedu jistampa char waħda bl-użu printf, il placeholder huwa probabbilment% c. U jekk inti tixtieq li jistampa l numru sħiħ ma 'l-placeholder,% i. % LLD hija valur deċimali twil twil, iżda twil twil, b'tali mod li mapep għal dan. U mbagħad% f għas f'wiċċ l-ilma valur tal-punt jew għal doppja, hekk kultant dawn qed jintużaw mill-ġdid f'kuntesti differenti. Allura aħna ser tara u l-użu xi wħud minn dawk matul iż-żmien. U printf u funzjonijiet oħra wkoll sekwenzi jaħarbu appoġġ oħrajn ", u xi kultant, dawn huma neċessarji. Allura n backslash hija linja ġdida. Backslash t, ħadd ma tixtieq li tieħu stab? Udjenza membru: Tab. DAVID J Malan: Tab. Mela jekk inti fil-fatt tixtieq biex jistampa tab, mhux numru fiss ta 'spazji iżda attwali karattru tab, inti ma hit tiegħek, tab, buttuna fuq it-tastiera, ġeneralment, inti fil-fatt tagħmel backslash t. Kwotazzjoni doppja backslash, għaliex kieku I qatt trid li? Dritt? Għaliex ma tistax I biss tip ta ' kwotazzjoni doppja fuq it-tastiera tiegħi? Udjenza membru: Minħabba, inkella, huwa se jaħsbu huwa l-aħħar ta 'prodotti simili print tiegħek [? test. ?] DAVID J Malan: Eżattament. Ftakar, ma tagħna eżempji printf, meta aħna kienu jgħaddu lil printf fil input, fuq ix-xellug ta 'dik string input u fuq il-lemin ta 'dik input rebbiegħa, naturalment, kien kwotazzjoni doppja. Jekk input tiegħek stess ikollu doppja kwotazzjoni fin-nofs ta 'dak, il-kompjuter jista 'potenzjalment nikseb konfuż, dwar, ma dan quote doppju jappartjenu fin-nofs? Ma jappartjenu ma 'dak tax-xellug? Ma jappartjenu ma 'dak id-dritt? U hekk, jekk inti tixtieq li tagħmel dan super ċara, inti tagħmel backslash kwotazzjoni doppja, b'tali mod li huwa ħarbu, biex ngħidu hekk, u mhuwiex conflated għal xi ħaġa oħra. U hemm ftit oħrajn hawn, r backslash, kwotazzjonijiet uniku, 0, li nistgħu naraw matul iż-żmien, kif ukoll. U issa, dak dwar il-funzjonijiet? Allura azzjonijiet li nistgħu nieħdu s'issa f'din il-lingwa, C, ukoll, Rajna, printf, naturalment, u kollha mill-oħrajn fuq l-iskrin, hawn, li aħna ser tuża għall- kors tal-ewwel ftit ġimgħat biss, ġejjin meta l-librerija CS50. U dawn jagħmluha ħafna aktar faċli, fil C, li fil-fatt tikseb jintuza mill-utent. Jirriżulta li fl C, u franchement fi ftit lingwi, huwa reali uġigħ fl-għonq li tagħmel xi ħaġa sempliċi, bħal fil-pront lill-utent għall keyboard, għal input tiegħu jew tagħha. U hekk dawn il-funzjonijiet jagħmluha aktar faċli. U għandha wkoll żball verifika kollu, sabiex, meta inti ifakkar l-Erbgħa, aħna raw il-, retry, twissija, meta I ma kkooperawx, u I ittajpjat kelma, minflok in-numru? We ghamilt l-irfigħ kmieni biex tiżgura l-utent tikkoopera. Iżda dawn huma biss it-taħriġ roti li aħna se eventwalment, u malajr, tluq. Allura biex terġa, imbagħad, ejja tagħti ħarsa, ferm simili għamilna ma Scratch, fil xi constructs canonical fil C. Dan huwa maħsub biex, sort ta ', jkun tour whirlwind, biss sabiex ikollok referenza u li inti stajt tidher l-affarijiet fl-ewwel. Iżda mbagħad aħna ser tħares lejn kodifikazzjoni attwali jużaw xi wħud minn dawn il-blokok tal-bini. Tant simili fl Scratch, meta kellna dikjarazzjonijiet simili, tgħid jew, stenna, fis-C, għandna l funzjonijiet kif ukoll, bħal printf. Jekk irridu li jesprimu kundizzjoni fis-C, huwa simili, fl-ispirtu, li dik il-biċċa puzzle li dehru qishom dan fil Scratch. Iżda minflok, aħna litteralment biss jiktbu, jekk. U mbagħad, fil-parentesi, npoġġux kundizzjoni, fejn din il-kundizzjoni huwa dak li aħna ser sejħa, għal darb'oħra, espressjoni Boolean. U għal darb'oħra, dan huwa tip ta 'pseudocode. U, fil-fatt, il-// huwa kumment. Huwa biss kliem Ingliż li myself. Iżda dan huwa l-ġenerali istruttura ta ', jekk, kundizzjoni. Iżda aħna ser tara konkreti eżempji ftit mument. Jekk inti tixtieq li jkollok two-way furketta fit-triq, ferm simili għamilna ma voluntier tagħna fuq L-Erbgħa, inti jista 'jkollhom, inkella jekk. U jekk inti tixtieq li jkollok terz u kundizzjoni finali, jew sitwazzjoni default, inti jista 'jkollhom biss blokk ieħor, hemm. U l-istess, ma espressjonijiet Boolean, inti tista ', u, flimkien. U rajna nhar l-Erbgħa, li mhuwiex ampersand wieħed, huwa tnejn, għal raġunijiet ta 'livell aktar baxx li aħna ser eventwalment tara u jilagħbu bil. Jew Ing affarijiet flimkien huwa ta '2 bars vertikali. Fuq tastiera Istati Uniti, dan huwa ġeneralment ewlieni bl-buttuni Shift hawn fuq tiegħek Enter jew Ritorn ewlenin. Imbagħad hemm dawn l-affarijiet li aħna ser tuża forsi darba jew darbtejn. Huma funzjonalment ekwivalenti għal x'tista 'tagħmel ma', jekk, inkella jekk, inkella jekk inkella, tibni, iżda dawn qed jissejjaħ bidla. Huma jqisu differenti ħafna, imma aħna ser tara f'xi kodiċi tad-distribuzzjoni tagħna, għal sett problema futur, x'aktarx, li huwa kultant biss prettier mezz li jesprimu kollu kemm hu mazz ta 'kondizzjonijiet, mingħajr ma jkollhom ħafna ta 'ċineg kaboċċi u ħafna ta 'parentesi u indentazzjoni. Iżda dawn tagħtina aktar qawwa mill aħna diġà. U issa loops. U dan wieħed, aħna ser tħares fi ftit aktar bil-mod. Iżda mbagħad, aħna ser tibda tuża dawn, speċjalment għal dawk li diġà familjari. Dan huwa l-mod canonical, jekk oerhört mod arcane, jiktbu linja fil C. Issa loop fil Scratch kien pjuttost sempliċi. Għandek, dejjem, blokk. Għandek, irrepeti, blokk bl biss numru għandek tip fil. U mal-, għal loop, inti tista implimentati kemm ta 'dawk l-ideat, imma hija ftit aktar teknika. Iżda franchement, huwa wkoll relattivament sempliċi. Ladarba inti taf l-ordni ta ' operazzjonijiet, inti litteralment huma biss se plagg fil-valuri u għid il-kompjuter x'għandu jsir. Allura hawnhekk eżempju. Din hija linja li, pjuttost sempliċi, jgħodd minn numru wieħed up permezz ieħor. U biss mill glancing lejn dan, anke jekk ikollok ebda esperjenza minn qabel ma ' din il-lingwa, liema numru ma probabbilment jibdew jingħaddu mill-? OK, 0. U jien guessing dan għaliex inti tara li hemm xi int u jien, li hija varjabbli. Huwa initialized għal 0. U mbagħad, jidher qisu aħna qed tgħaddi printf, valur. U, fil-fatt, I għamel typo ftit hawn. Iżda li faċilment fiss. Let me żid in, i hawn. Issa għandna printf benesseri għadda dak il-valur placeholder. U x'inhu għaddej biex jingħaddu up permezz? UDJENZA: 50. 50. 49.. DAVID J Malan: 49. Allura 50, ewwel daqqa t'għajn, jidher dritt. Iżda dan, jirriżulta, se tkun kundizzjoni tagħna li aħna żżomm kontroll. U aħna qed tmur biex tieqaf ladarba i m'għadux inqas minn 50. Allura dan loop, għall-kuntrarju, jekk tesegwixxi, sakemm i huwa inqas minn 50. Iżda hekk kif din issir 50, jew 51, jew agħar, hija għandha tieqaf awtomatikament. Kull dritt. Allura x'inhu dak li attwalment jiġri hawn? Allura dan huwa l-ordni ta ' operazzjonijiet għal loop. Wieħed, inti għandek l- hekk imsejħa inizjalizzazzjoni. Dan blokki enfasizzat isfar tal-kodiċi jkun ikkompilat ewwel, u għandha l-effett li, għal kull L-Erbgħa, inti probabilment timmaġina. Hija toħloq varjabbli imsejjaħ i u ħwienet f'dak varjabbli-valur 0. Hekk i huwa 0 f'dan il-punt fl-istorja. Il-ħaġa li jmiss li jiġri f'dan tibni, huwa li l-kundizzjoni gets ċċekkjati. So I check immedjatament, huwa i inqas minn 50? U naturalment, ir-risposta għal issa huwa, ċertament, iva. Iva, għaliex i huwa 0, u li l-żgur inqas minn 50. Imbagħad x'jiġri, hija li dan linja tal-kodiċi gets esegwiti. U fil-fatt, jekk ikun hemm multipli linji ta 'kodiċi f'dawk ċineg kaboċċi, dawn kollha jiksbu esegwiti wara xulxin. U fl-effett hawn, huwa apparentement, li jistampa l-i numru, li se jkun 0, u mbagħad 1, u mbagħad 2. Iżda għaliex? Għaliex ma jiksbu inkrementat? Ukoll, il-ħaġa raba li li jiġri huwa li dan sintassi gets esegwiti, wara l-virgola. i ++ huwa mod shorthand ta 'tgħid; tieħu l-valur ta 'i, u żid 1 miegħu; u allura l-ħin li jmiss madwar, żid 1 lilha; u l-ħin li jmiss madwar, żid 1 miegħu. Allura jekk aħna jibqgħu għaddejjin, x'inhu jiġri li jmiss huwa Jien ma jmur biex initialize i qatt darb'oħra. Jekk I tinżamm initializing i għal 0, dan l-eżempju qatt ma tispiċċa minħabba Inkun mwaħħla f'0. Imma dak li jiġri huwa li l-kondizzjoni ser jiġu kkontrollati, il-linja ta 'kodiċi se tikseb eżegwit, l-i se jkun inkrementat, kundizzjoni se jiġu kkontrollati, kodiċi se tikseb esegwiti. U jinżamm ċikliżmu mill-ġdid, u għal darb'oħra, u għal darb'oħra, sakemm i ++ jinduċi valur ta '50. Il-kundizzjoni mbagħad jgħid, hija 50 inqas minn 50? It-tweġiba, naturalment, l-ebda, u sabiex il-kodiċi kollha waqfiet eżekuzzjoni. U jekk ikollok aktar kodiċi fuq l-iskrin stabbiliti hawn taħt, dan huwa dak li jiġri li jmiss. Pops out ta 'dawn ċineg kaboċċi u tkompli jistampaw aktar wara dik. Allura Joke issa, minn Foxtrot, li inti ser forsi issa jifhmu. Huwa dejjem umoristiċi. Huwa simili l-chuckles tip ta 'saffi, u allura inti tirrealizza inti m'għandekx tkun laughing Humer bħal dan. Iżda hemm xi takeaway hawn, pedagoġika, wisq. Għalhekk jirriżulta li jien nieqsa biċċa sintassi, jew ta foxtrot nieqsa biċċa sintassi hawn. X'hemm nieqes, li aħna kellna f'kull każ ieħor, s'issa? Ritorn, hemm, so dan huwa xi ħaġa oħra, li aħna ser terga 'lura għal qabel twil. X'hemm nieqes, għalkemm? Yeah. Udjenza membru: Il- inizjalizzazzjoni ta '[inaudible]. DAVID J Malan: OK. So yeah. Allura fil-fatt, dan is-- Well, u l-għadd huwa initialized up fuq, jew minflok, iddikjarat up hawn fuq. Allura dan huwa mod ieħor ta 'kif isir dan. Iżda mhux f'sensiela waħda huwa validu għalkemm. Kif dwar hawn? Udjenza membru: Huwa l-braces kaboċċi? DAVID J Malan: Yeah. Allura l-braces kaboċċi huma nieqsa. Iżda dan il-kodiċi, I mean, għall-kreditu tagħhom, huwa attwalment, sintattikament valida. Jirriżulta, inti ma bżonn l-braces kaboċċi jekk inti biss għandek linja waħda tal-kodiċi li inti tixtieq li tesegwixxi ġewwa tal-linja. Issa aħna dejjem, fil-klassi u fid kollha tal-kodiċi ta 'distribuzzjoni tagħna, jinkludu l-braces kaboċċi xorta waħda, biss f'ġieħ iċ-ċarezza. Iżda jirrealizzaw li fil-kotba u eżempji onlajn, inti tista 'tajjeb ħafna' tara kaboċċi ċingi nieqsa f'xi. U li OK, jekk dak li jkunu inċiża u maħsuba huwa biss linja waħda tal-kodiċi, u ma diversi linji ta 'kodiċi, potenzjalment. Kull dritt. Allura relatati mal-kwistjoni tal impreċiżjoni, hija kwistjoni ta 'overflow, fis-sens li, b'mod simili, do interi għandhom limiti għalihom bħad f'wiċċ l-ilma valuri tal-punti? Fid-dinja punt floating Valuri, nistgħu nkunu tant preċiżi biss, wara li, xi kultant affarijiet ħżiena jista 'jiġri, u programmi tagħna tista 'tiġi Buggy u żball. Issa anke ma interi, inti tista 'tiffaċċja problemi. Issa integer ma jkollux punt deċimali jew numri wara dan. Huwa biss numru naturali, tipikament. Allura dak li tista 'tmur ħażin ma' int? Jekk jien jużaw int biex għadd, dak li tista 'tmur ħażin? Jidher ħafna aktar sempliċi. Yeah. Udjenza membru: Jekk il- Numru gets [inaudible] DAVID J Malan: Yeah. X'jiġri jekk inti għadd tant għoli, li inti ma jistgħux jesprimu dak in-numru verament kbir. Dritt? F'xi punt, int ser li jaqbżu l-konfini ta 'valur 32-bit jew valur 64-bit. Issa mill-ġdid, M'inix ċert kif jippronunzja valur 64-bit, imma naf bi 32-bit numru sħiħ, l-akbar valur jista 'jkun, jekk huwa biss pożittiv Valuri, huwa bejn wieħed u ieħor 4 biljun. Mela jekk jien nipprova għodd sa 5 biljun, xi ħaġa jiġri. Imma ejja ara dak, fil-fatt, jista 'jiġri. Fid-dinja tal numru sħiħ overflow, fejn inti, f'ċertu sens, overflow il-kapaċità ta ' numru sħiħ, dak li jista 'jiġri? Allura hawnhekk numru binarju, huwa throwback għal 0. Huwa kollu 1, u l-placeholders hemm, huma setgħat ta '2, għalhekk dan huwa binarja. Allura dawn huma 8, 1 bits fuq l-iskrin. U jekk inti recall jew inti malajr tagħmel l-matematika, liema valur qiegħed ikun rappreżentat hawn ma 'dawn it-tmien 1 bits? 255. U anki jekk inti ma kinux pjuttost ċert tal-matematika, inti tista 'tagħmel dan out. Jew inti tista 'biss tip tar-raġuni permezz tagħha, stenna minuta, jekk jien tirrappreżenta valur 8 bit, u stajt ltqajna 256 valuri possibbli, iżda l-ewwel waħda minnhom huwa ta '0, I biss jafu li l- akbar se tkun 255, u dan huwa dak li dan wieħed jista 'jkun. So I jissoponi tipprova żżid 1 ta 'dan il-valur. What would you do fil-grad iskola meta żżid 1, u ma verament tajbin għax inti għandek twettaq l-1 ta '? X'inhu dan in-numru jmorru li ssir meta inti żid 1? Huwa ser isiru 0. Dritt? Għaliex jekk inti kellhom aktar bits-- u jien ser jippruvaw, tip ta ', it-tip out here-- jekk kellna aktar bits, dak li aħna tista 'tagħmel hawnhekk huwa jżid il-1, u mbagħad aħna'd jiksbu dan. Whoops. Aħna'd jkollhom 1 bit-triq kollha madwar hawn. Imma jekk dan huwa finite valur, huwa biss 8 bits, u li l-pre-determinat mill-kompjuter, li 1 huwa effettivament ma jkunx hemm. Hija biss tip ta 'jaqa off a cliff. U hekk jekk inti żid minn 1 sa 255, dak valur do you apparentement nirċievi? 0. U għalhekk numri aċċidentalment, u forsi, mhux intenzjonalment, jispiċċaw tgeżwir madwar bħal dan. Allura dak li tista 'tkun l-implikazzjoni ta' din? Ukoll, hemm ftit affarijiet differenti. Allura wieħed, ma jispiċċaw ifittxu bħal 0, mhux intenzjonalment, imma int tista 'tip ta' tara, anki fid-dinja reali, għall-aħjar jew għall-agħar, manifestazzjonijiet ta 'din l-idea ta' limitu. Per eżempju, kull minnkom li qatt lagħbu Lego Star Wars, ħadd ma jiġri li tkun taf l-għadd massimu ta 'muniti inti tista 'tiġbor fil Lego Star Wars? Ħu raden bbażata fuq mistoqsijiet ewlenin tal-lum. Huwa akbar minn 256 jew 255. Huwa 4 biljun. Għalhekk jirriżulta li, u hemm xi people-- xi googling aħħar night-- kkonfermat gotten 4 biljun muniti tad-deheb, jew whatnot, fil Lego Star Wars. Għalkemm apparentement, hemm mod li trick-logħba, hemm bug jew karatteristika, li ihallik biss jakkumulaw lottijiet u lottijiet ta 'punti. Iżda l-akbar possibbli valur, skond li dan l-iskrin sparatura ta 'xi ħadd I misjuba online, huwa tabilħaqq, 4 biljun. Issa għaliex huwa li? Huwa preċiżament 4 biljun, probabbilment minħabba xi ħadd iddeċieda, li kien miktub din il-logħba, li huma jistgħu jagħmlu 4 biljun, xi ħaġa, xi ħaġa, xi ħaġa, bħall-valur I impoġġija mal-kalkulatur qabel, iżda huwa biss ftit aktar nadifa għall-bnedmin jiġifieri l-għadd massimu tal coins-- jew studs, kif huma jitolbu them-- li inti tista 'tiġbor huwa ta' 4 biljun. U għalhekk, għaliex huwa dan? Kif huwa l-logħba LEGO implimentazzjoni tal-counter li l-issorveljar ta 'l- numru ta 'muniti li għandek? Huma qed tuża liema? Udjenza membru: Huwa jwaqqaf għadd wara 4 biljun. DAVID J Malan: Huwa jwaqqaf għadd wara 4 biljuni, li jfisser li inti tista ' jiddeduċu, bħala programmer, li dawn qed probabbilment użu ta '32 bit numru sħiħ. Bħall-programmer litteralment biss ttajpjata, int, fil-kodiċi tiegħu jew tagħha, u dak l-tip ta 'varjabbli li li qed jużaw biex jaħżnu kodiċi ta 'xi ħadd. Allura hemm manifestazzjonijiet oħra ta 'dawn it-tipi ta' limiti. So I ma lagħbu din game-- u I kien qari fuq l-istorja biex tikkonferma kif much-- iżda fil- verżjoni oriġinali tal-ċiviltà, fejn inti apparentement jinteraġixxu ma 'kull xulxin u jistgħu pagi gwerra jew ikollok paċi, Gandhi kien suppost li tkun waħda mill l-karattri l-aktar paċifiċi, kif I jifhimha, fl-ewwel Verżjoni tal-ċiviltà. U fil-fatt, fuq skala minn 1 sa 10, aggressività tiegħu kienet biss 1. Allura dejjem hekk ħafif aggressivi, apparentement. Iżda f'xi punt, inti tista apparentement jinstallaw demokrazija fil-ġeografija tiegħek. U jekk inti jinstallaw demokrazija fil-verżjoni tiegħek tal-logħba, imbagħad livell aggressjoni tiegħek jinżel. Hija ħaġa tajba. In-nies huma aktar tranquil apparentement, f'dik is-sitwazzjoni. Imma apparentement, xi ħadd ma ma jkollhomx, jekk, kundizzjoni fil-verżjoni oriġinali tar-kodiċi. Allura livell aggressjoni Gandhi marru minn pożittiv 1, minus 2, ma 'riżultati negattivi 1, iżda l-logħba ma jifhmu numri negattivi. Allura dak li ġara kien aggressjoni Gandhi livell marru minn 1, għal 0, ma 'riżultati negattivi 1, li kellu l-effett ta ' tgeżwir madwar li jkunu -karattru aktar aggressiva fil-logħba, b'valur ta '255, fuq skala minn 1 sa 10. U minn dakinhar, hemm kien aktar incarnations ta din il-logħba, u ħadthom miżmuma bħala tip ta 'bajd tal-Għid, li Gandhi hija apparentement hekk terriblement aggressivi. Iżda dan kien ir-riżultat ta ' żball programmazzjoni sempliċi ħafna f'dak verżjoni bikrija ħafna tal-logħba. Issa aktar disturbingly, aktar reċentement, il-Boeing 787 kien dokumentat bħala li bug, mhux it-tip ta 'apparat inti partikolarment tixtieq li jkollok bug. U s-sintomi, li I taf taqra hawn, minn online artiklu, kien dan, mudell 787 ajruplan li ġiet imħaddma kontinwament għall 248 jiem tista 'titlef kollha kurrent alternanti, AC, enerġija elettrika, minħabba l-unitajiet ta 'kontroll ġeneratur, GCUs, fl-istess ħin tgħaddi għall-modalità fail-safe. Allura dan kien twissija maħruġa meta din il-problema ġiet skoperta. Din il-kondizzjoni hija kkawżata minn software counter, interna għall-GCUs, hekk numru sħiħ jew varjabbli, li se overflow wara 248 ġranet ta 'enerġija kontinwa. Boeing tinsab fil-proċess ta ' iżvilupp ta 'software GCU upgrade li se jirrimedjaw il-kundizzjoni mhux sigura. Allura ħafna bħall-missili xenarju, fejn huma kellhom xi tip ta 'varjabbli li kien qed jgħodd, u l-għadd, u l-għadd, iżda overflowing gradwalment il-konfini tal-kapaċità tagħha, bl-istess mod ma 'l-ajruplan kkritikat jkollhom overflow varjabbli wara żmien biżżejjed ta 'tmexxija. U għalhekk l-mod tongue-in-cheek ta 'xogħol madwar din il-kwistjoni huwa li verament, reboot, pjan tiegħek kull 247 ġurnata, sabiex il-memorja gets jintilfu u l-varjabbli tmur lura għal 0. Iżda realizzata, din hija ferm Inkarnazzjoni kbir ta 'software, iżda speċjalment kif aħna jisimgħu dwar Apple sistemi operattivi nidħlu karozzi, u l-karozzi self-sewqan minn Google, u kwalunkwe numru ta 'incarnations ta' softwer Fil-ħajja tagħna ta 'kuljum, it-televiżjonijiet u arloġġi, u aktar, tirrealizza kienu mdawra permezz ta 'softwer, li kollha huwa miktub minn us bnedmin. U kif aħna ser kollha dalwaqt jiskopru, huwa faċli ħafna u tipiku ħafna li jagħmlu żbalji meta tikteb software. U jekk inti ma jaqbduhom, xi affarijiet ħżiena jista 'jiġri. Issa xi kultant, xi affarijiet umoristiċi jista 'jiġri, jew għall-inqas xi kultant aħna taf li jistennew xi badness. Allura 0 diviż bil 0, mill-grad iskola, huwa ġeneralment ħaġa ħażina. Huwa undefined. U jirriżulta out-- u ejja ara jekk mic tiegħi tista 'pick dan up-- li Apple kellhom xi gost ma 'dan l-aħħar. So I jkollhom iPhone hawn. Jien ser jitkellmu ma Siri u jistaqsu tagħha li tagħti me-risposta għal 0 diviż bil 0. X'inhu 0 diviż bil 0? Siri: Immaġina li inti għandek 0 cookies, u inti maqsuma minnhom indaqs fost 0 ħbieb. Kemm cookies ma 'kull persuna nirċievi? Ara? Ma jagħmilx sens. U Monster cookie huwa imdejjaq li ma jkunx hemm cookies. U inti diqa li ikollok ebda ħbieb. DAVID J Malan: Huwa tip ta 'obnoxious. Allura dan huwa dak li kien biss qal hemmhekk. Huwa indeterminat, mhuwiex iddefinit, u fil-fatt, lingwi ta 'programmar ħafna jew, tassew, kompilaturi se jiskopru meta inti, fi programm, jippruvaw jaqsmu 0 0. Gost aktar minn dan għalkemm, hi li apparentement, Monster cookie hija fuq Twitter f'dawn il-jiem. U hu wieġeb għal dan, ma 'dan, li huwa assolutament adorable. Imma ejja tagħti ħarsa lejn ftit constructs oħra, u mbagħad iwettqu xi ftit minn dan kodiċi li tuża, modi tajba. Għalhekk jirriżulta li, minbarra għal-linji, hemm xi ħaġa imsejħa loop waqt, li jistenna differenti u huwa implimentat a differently-- ftit u aħna ser eventwalment tara examples-- imma f'ċertu sens, huwa aktar sempliċi minħabba li ma jippermettu li inti initialize u taġġorna fi ħdan il-konfini tal-linja. Inti xorta tista jimplimentawha. Allura inti tista 'tagħmel l-istess affarijiet eżatt bil-loop waqt, bħala ma 'għall loop, iżda sintassi tiegħek, ultimately-- kif aħna ser eventwalment see-- se tkun differenti. Hemm anki do filwaqt loop, li huwa attwalment ftit differenti, f'dak billi għal loop u loop filwaqt dejjem iċċekkja kundizzjoni tagħhom l-ewwel, jekk inti taqra dan ħaġa fuq għal isfel, it-tip ta 'qisu li għaddej biex check s kundizzjoni aħħar għaliex dan huwa verament l-aħħar linja tal-kodiċi. U fil-fatt, li għaddej biex tkun utli f'ċerti programmi li aħna tikteb, jekk inti tixtieq li biss bl-addoċċ jagħmel xi ħaġa u eventwalment tivverifika l-kundizzjoni. Li mhux neċessarjament ħaġa ħażina. Jekk irridu varjabbli, nistgħu nagħmlu dan fi ftit ta 'modi differenti. U rajna fil-Foxtrot cartoons, mod wieħed kif isir dan, fejn inti tiddikjara varjabbli tiegħek, bħal int counter punto virgola, u mbagħad later-- forsi li jmiss linja, forsi 10 linji later-- inti fil-fatt initialize dan. Allura dawn 2 linji ta 'kodiċi tiddikjara varjabbli ta 'int tip u sejħa hija counter, u għalhekk tagħti me bits biżżejjed li jkollhom int. U allura eventwalment, li tqiegħed il-valur 0 f'dak varjabbli. Jipprovdi l għamilhom 0 u 1 fil- mudell, li nafu mill-aħħar ġimgħa, jirrappreżenta n-numru nafu kif 0. Jew franchement, inti tista 'tagħmel dan ħafna aktar konċiż, bħad dan. Issa irridu wkoll il- abbiltà li sejħa funzjonijiet. U fil-fatt, hawnhekk linja 2 programm, jew silta tiegħu, li jippermetti li attwalment jikteb xi kodiċi li gets string mill-user-- ħafna bħal voluntier tagħna mument ago-- ħażna r-riżultat varjabbli imsejħa isem, u then-- simili ħafna ma 'voluntier tagħna prints printf-- barra dawk il-valuri billi jgħaddu f'żewġ argumenti, il- spag, segwita mill-varjabbli imsejħa, l-isem, hija stess. Mela ejja tagħti ħarsa, qabel aħna terga 'lura għal Mario hemmhekk, fi ftit issa, eżempji ta 'dan. Jien ser jimxi 'l quddiem u miftuħa up, ejja ngħidu, funzjoni 0.c. U kif dejjem, dan il-kodiċi huwa disponibbli fuq il-websajt tal-kors, l sabiex inti tista 'tilgħab flimkien fuq dar u tħares lejn din aktar tard. Iżda hawn l-programm huwa Essenzjalment, mil-linja 17 sa 22. Il-programm prinċipali huwa fejn il- programm huwa dejjem se tibda. Dan il-programm, apparentement, va biex jistampa l-isem tiegħek, kolon. Huwa mbagħad ser sejħa GetString, bħad għamilna mal-voluntiera tagħna. U allura, dan huwa interessanti, li għaddej biex sejħa PrintName. Jirriżulta, dan il-ħin, hemm jidher li huwa funzjoni msejħa PrintName. Li tistampa isem ta 'xi ħadd. Aħna ma bżonn tuża printf minn imgħoddi, hemm PrintName. Imma dak li qarrieqa minħabba PrintName ma jiġu mal C. Nies ma jivvintaw dan madwar 40 jew 50 sena ilu, I did, minflok. U fil-fatt, jekk I iscroll down aktar, avviż kif Kapaċi nikteb tiegħi stess funzjonijiet C. Aħna ser eventwalment jispjega għaliex inżommu qal, vojt, fi ftit postijiet, iżda għal-lum, ejja biss ħarsa lejn l-isem. Fuq il-linja 24, jekk inti tixtieq li joħolqu funzjoni tiegħek stess, inti litteralment tikteb il- isem tal-funzjoni. I għażlet PrintName. Fil-parentesi, inti imbagħad jispeċifikaw liema tipi ta 'inputs, u kemm inti tixtieq din il-funzjoni li tieħu. F'dan il-każ, I tixtieq li tieħu 1 varjabbli imsejħa, l-isem, u li għaddej biex tkun ta ' tip, spag, hekk li għaddej li jkun hemm xi sekwenza ta 'karattri. U mbagħad, dan program-- ferm simili fl Scratch, inti jista 'jkollhom puzzle custom pieces-- huwa se jkollu din l-imġiba tad-dwana. Huwa ser sejħa printf tgħaddi fi, hello, placeholder, u allura huwa għaddej biex timla fi kwalunkwe utent imsejħa. Allura dan huwa eżempju ta 'dak li xjenzat kompjuter kieku estrazzjoni sejħa jew funzjonali dekompożizzjoni, li huma biss modi fancy ta saying-- hija jekk inti bħal din l-idea livell għoli, bħal Irrid funzjonalità li stampi isem ta 'xi ħadd, assolutament inti jistgħu litteralment jiktbu printf u mbagħad jgħaddu l-argumenti li trid, u l-programm se taħdem, kif għamlet sa mill-Erbgħa. Imma inti tista 'tibda biex astratta bogħod il-kunċett ta 'stampar isem. Inti tista 'tagħtiha isem, bħall PrintName, u dan hija din idea ta saffi minn ġimgħa 0. Minn issa, I u inti ma għandekx tkun taf jew kura kif PrintName tiġi implimentata. Iva hija tuża printf, forsi ma, li jaf liema juża? Quién? Issa jien jitkellem up here, minflok stabbiliti hawn. U fil-fatt, bħala programmi tagħna jiksbu aktar avvanzati u sofistikati, aħna qed tmur biex tkompli tieħu għall mogħtija li l-biċċiet puzzle livell aktar baxx jeżistu. Għaliex aħna kiteb minnhom jew xi ħadd ieħor ma, so li nistgħu mbagħad jibnu fuq wiċċ minnhom. Ejja tagħti ħarsa lejn din varjant, funzjoni waħda. Allura dan wieħed l-ftit aktar avvanzati, iżda jirriżulta li fil-librerija CS50, l hemm biss funzjoni GetInt. Aħna ma naħsibx, snin ilu, li timplimenta funzjoni GetPositiveInt. U li ftit annoying għaliex jekk inti guys qed tikteb programm wherein inti tixtieq li tikseb pożittiv numru sħiħ mill-utent, inti tista 'assolutament tuża GetInt. U inti tista 'assolutament tiċċekkja mal il-kondizzjoni u forsi loop jekk dan int huwa akbar minn 0 u Yell fil-utent jekk hu jew hi ma jagħtix inti numru pożittiv. Imma ejja jinbena dan bini blokk lilna nfusna, a, biċċa Scratch custom, jekk inti se. Jien ser jkollhom programm hawn li finalment, I tixtieq li jkunu jistgħu jsejħu GetPositiveInt, u nixtieq li tkun kapaċi li jistampa kwalunkwe li int hu. Iżda dan huwa estratt bogħod issa. Huwa biss ġie mogħti livell għoli isem li tgħid dak li tagħmel, li huwa wunderbare għaliex dan huwa ħafna intuwittivi issa biex jinqara. U jekk jien care x'hemm taħt il-barnuża, let me iscroll isfel. U huwa ftit intimidanti fl-ewwel, speċjalment jekk dan huwa l-ewwel programm tiegħek, imma ejja tagħti ħarsa. Jien m'għadhomx qal, null, għaliex jirriżulta funzjonijiet, ferm simili GetString, jista ritorn valur lili. Huma ma biss għandhom li jistampaw l-iskrin, huma jkunu effettivament jistgħu idejn me xi ħaġa lura. U billi qabel PrintName, I ma bżonn xi ħaġa lura. I meħtieġa l-effett sekondarju ta ' xi ħaġa li juru up fuq l-iskrin, imma jien ma bżonn uman għall-idejn me xi ħaġa lura. Hawnhekk, ma GetPositiveInt, bħal ma GetInt, Irrid li jingħataw xi ħaġa lura. Hekk jien tgħid le, null, fuq il-linja 23, iżda int, li jgħid, din il-funzjoni li nikteb, imsejħa GetPositiveInt se idejn lili lura integer, mhux xejn, mhux nulli. Sadanittant, li għaddej biex jieħu l-ebda inputs, hekk stajt, tip ta ', maqluba dan. Jien mhux qed jagħti GetPositiveInt ebda input, I tixtieq li tagħti me output tagħha. U allura x'jiġri issa? Allura hawnhekk kif I tista 'tiddikjara varjabbli. I ghamilt barra mill-linja, għal raġunijiet aħna ser eventwalment tara, iżda dan biss jagħti me 32 bits imsejħa, n, u stajt pre-determinazzjoni biex jaħżnu numru sħiħ. U hawnhekk li, tagħmel waqt tibni, u dan huwa għaliex huwa utli. Litteralment tagħmel dan, filwaqt n huwa inqas minn 1. Mela ejja ara dak li jiġri. I jistampa, jekk jogħġbok tagħti me a int pożittiv. I imbagħad nikseb int, bl-użu tal CS50 jiffunzjonaw u maħżuna n. U mbagħad, liema linja tal-kodiċi probabbilment gets esegwiti jmiss, loġikament? Liema linja numru? Yeah, hekk 31. Inti ma tkunx taf dan sakemm inti stajt qallek jew tip ta 'jiddeduċu li, iżda dan huwa veru. Hija tmur fuq għal isfel u mbagħad jżomm tirrepeti. Mela jekk jien ittajpjat fil ngħidu aħna, in-numru negattiv 1, hija n anqas minn negattiv 1? Yeah. Minħabba negattiv 1 huwa inqas minn 1. Allura dak li jiġri? Jien ser tagħmel dan filwaqt n huwa inqas minn 1, hekk jien se jmorru lura għal-linja 28. U kull time-- u ejja jimxu this-- jagħmlu funzjoni 1 li josservawha, u issa dot slash funzjoni 1. Jekk tip I negattiv 1, huwa ser iżommu yelling fil lili sal I jikkoperaw minħabba li kull ta 'inputs tiegħi huwa inqas minn 1 u jekk huwa filwaqt li inqas minn 1, Jien ser tkompli tagħmel dan. Jekk I finalment jagħtiha numru simili 50, Thankfully, jgħid, grazzi għall-50. Għaliex? Minħabba hekk kif n ma jkunx inqas minn 1, I stop jkollna staġnati f'dan loop, u dan il-keyword ġdida llum, ritorn, litteralment ma dan. Hekk stajt biss implimentati, b'mod sens, l-ekwivalenti ta 'GetString, fejn jien għoti lura lill min qed tuża me, xi valur. Ma għandhom ikunu string, huwa ta 'int. Allura sempliċi, ta 'malajr eżempju, iżda aħna ser dalwaqt tara ftit aktar sofistikati Verżjonijiet għadhom. Fil-fatt, ejja tagħti ħarsa lejn wieħed numerika, li huwa msejjaħ return.c. U dan wieħed fil-fatt ftit aktar sempliċi. Allura iskop dan il-programm fil life-- ejja tiġbor u run, sabiex tagħmel ritorn, dot slash, avviż return-- il-programm sempliċiment kubi il-valur 2. Huwa pretty stupid, huwa diffiċli kodiċi, dan ma jieħux xi inputs, iżda ma juru ieħor funzjoni li stajt bil-miktub myself. So here, stajt ddikjarat varjabbli, imsejħa x, ta 'int tip, ugwali għan-numru 2, kompletament arbitrarja. Dan huwa biss xi stampar fluffy. Hija tgħid x Huwa issa, tali u tali, cubing dot dot dot. U l-magic hija apparentement konformi 21. Jien ssejjaħ funzjoni msejħa, kubi, Jien Teħodha folja ta 'karta bin-numru 2 bil-miktub dwar dan, u liema valur, matematikament, do Irrid li toħroġ minnha? Just bħala verifika sanità? 8. Dritt? I tixtieq 2 kubiku lura, 2 għal il-qawwa ta '3, hekk 8 lura. Għalhekk, fejn huwa kubu implimentat? Ukoll, avviż huwa implimentat stabbiliti hawn. U bħad qabel, loġikament, anki jekk il-sintassi hija probabbilment ferm ġdida ħafna minnkom, Irrid din il-funzjoni għall-idejn me lura folja ta karta ma 'int fuqha. So I jkollhom int, il isem huwa arbitrarju, iżda konvenjenti imsejħa kubu. L-input għal dan, huwa n ta tip numru sħiħ, b'tali mod li kif I jistgħu jgħaddu fin-numru 2 fuq folja tal-karta. U allura jirriżulta jappoġġja C matematika, sabiex inti ma għandekx x għas drabi, inti biss tuża l-asterisk għat-tkattir. U dan jirritorna drabi n żminijiet n n, li hija sempliċement valur kubiku. Għalhekk, fejn aħna se kollha ta 'dan? Dan żgur huwa tour whirlwind, mistrieħ assigurat, li fit-taqsimiet super u fil-problema sett 1, inti ser tkun mixi permezz dan kollu l-aktar. U fil-problema stabbilixxa l-1, aħna ser transizzjoni mid-dinja grafika ta Scratch għal xi ħaġa aktar linja tal-kmand fil C. Iżda aħna ser jieħdu l-ispirazzjoni minn dan hawn logħba minn imgħoddi, fejn użu C u l-edizzjoni standard tal- sett p inti ser timplimenta piramida Mario. U fil-Hacker edizzjoni tal- sett p, jekk hekk jagħżlu li jeleġġu, inti ser timplimenta daqsxejn aktar sfida piramida żewġ quċċati. Int ser ikollok jimplimentaw ukoll algoritmu, algoritmu greedy. Jirriżulta hemm xi loġika interessanti wara l-proċess ta ' tmexxija istazzjon ta 'kaxxier u fil-fatt għoti xi ħadd bidla lura. Hemm algoritmu li pjuttost sempliċi, li inti tista 'anki jaħtfu intuwittivament meta inti l-ewwel taqra it-- jirrealizzaw dan huwa dak I stajt dejjem jsir kwalunkwe ħin stajt mogħtija lil xi ħadd xi back-- flus li jippermetti li inti dejjem jimminimizzaw in-numru ta ' noti tal-karta jew muniti tal-metall li int għoti lura lill-utent. U dan, naturalment, huwa konvinċenti għaliex jekk inti tmur biex CVS jew whatnot, inti ma tridx tkun mogħtija mazz sħiħ ta 'dawk jew mazz sħiħ ta 'pennies. Trid li l-inqas numru muniti, probabbilment, ikun possibbli. Fl-aħħarnett, inti ser jintalbu wkoll dabble fid-dinja ta 'ilma u fil-fatt tikseb apprezzament għal immappjar bejn ir-rati ta 'fluss, ta 'prodotti simili, ilma fil-doċċa, kemm kemm ilma huwa użat. U l-allużjoni fih, se jkun dan il-klipp hawn, li aħna ser jispiċċaw fuq għal biss 60 sekonda, li żebgħa stampa ta ' rjus tad-doċoċ-fluss baxxa. [Daqq video] -kull Dritt. Sibt kollox hawn. Sibt l-F Series Ċiklun, Hydra, Jetflow, Stokkolma Supersteam, inti isem li bih. -u Liema do you jirrakkomandaw? Liema huma inti tfittex? Bniedem -Power. Power. -SIMILI Silkwood. -Li S għar-radjazzjoni. -Li Dritt. -Issa Dak li huwa dan? -Li Hija l-Commando 450. I ma jbiegħux li wieħed. -Imma dan huwa dak li rridu. Huwa comando 450. -Ebda Nemmen lili. Huwa użat biss fil-ċirku. Huwa għal iljunfanti. -I'll Tħallas xejn. Liema dwar Jerry? -He Ma tista 'timmaniġġja dan. Hu delikat. Oh yeah. [END Daqq] DAVID J Malan: Kull dritt. Li jekk għal CS50. Aħna ser tara int ġimgħa d-dieħla. SPEAKER 1: [? Scully?], [? Ian,?] safejn dan il-proġett outro, dak li jkollu guys toħroġ bi? SPEAKER 2: Well, konna mogħtija dan varjetà tal-ħsieb, u naħsbu li l-aħjar mod to-- SPEAKER 3: Mejju I? SPEAKER 2: Yeah. Bil-mezzi kollha, fil-fatt. SPEAKER 3: So I think nistgħu qosor idea tagħna għall-Outros ma xejn word-- wieħed. DAVID J Malan: Xejn? SPEAKER 3: Xejn. DAVID J Malan: Xi jfisser? SPEAKER 3: Il-Outros huma dwar xejn. SPEAKER 2: Well, I mean, fil-filosofija, I mean, xejn huwa dejjem xi ħaġa. SPEAKER 1: Allura what's-- x'inhu l-premessa? SPEAKER 3: Allura huwa bħall-ħajja. OK. What did you do illum? DAVID J Malan: I ltqajna up, kellhom kolazzjon, u waslet biex jaħdmu. SPEAKER 3: C'est outro. SPEAKER 2: Iżda, I mean, m'għandhomx xi ħaġa jiġri lilu fuq the-- SPEAKER 3: No, no, no, no. Xejn jiġri. SPEAKER 1: Allura għaliex aħna jaraw? SPEAKER 3: Minħabba huwa ta 'outro għall CS50. DAVID J Malan: Għadu mhux.