[Powered by Google Translate] DAVID J. Malan: Kull dritt, dan huwa CS50, u dan huwa l- bidu ta 'ġimgħatejn. Grazzi. Let us tibda hawn bil-telefonata. Jien ser dial 617-BUG-CS50. CS50: Dan huwa CS50. Għal Boy Shuttle, istampa 1. Biex tibda fuq, agħfas 9. DAVID J. Malan: Hekk hu qal għal Boy Shuttle, l-istampa 1. Allura aħna qed tmur għall-istampa 1. CS50: X'inhu l-oriġini tiegħek? Għal quad, l-istampa 1. Mather, l-istampa 2. Boylston, l-istampa 3. Lamont, l-istampa 4. Mem Hall, l-istampa 5. Biex tibda fuq, agħfas 0. DAVID J. Malan: Aħna ser tinsisti 1 għall quad. CS50: shuttle jmiss tħalli dan ħafna minuta PM 1:10, u imbagħad fi 1:20 PM, 01:30, 01:40. Dan huwa CS50. DAVID J. Malan: Allura dan huwa vuċi CS50 s. U huwa eżempju ta 'l-xorta ta' proġetti finali, għall- eżempju, inti tista 'gidma off lejn l-aħħar tas-semestru. Per eżempju, din shuttleboy.cs50.net teżisti - attwalment proġett li I-ewwel kiteb wara li tieħu CS51 lura meta I kien undergraduate. U l-ispirazzjoni hawn kien lura mbagħad, kull ma kellhom kien l-iskedi tax-shuttle bus stampati, u hemm l-ebda kunċett ta 'tfittex affarijiet up online. U għalhekk jien tip ta 'ħamiema f'wieħed weekend, jitferra permezz tal- stampati iskeda, u portati lill programm tal-kompjuter. Fiż-żmien, il-programm tal-kompjuter ġara li tkun bil-miktub fil C. U inti fil-fatt dam mill Boy Shuttle ittajpjar fuq Teptip fil-pront bħal aħna kont qed tagħmel s'issa. Imma matul is-snin, huwa evolvew instant messaġġi bot. Huwa evolvew aktar reċentement fis din il-websajt, fi SMS bbażata fuq għodda, kif ukoll fis din l-għodda vuċi bbażata fuq. U dan huwa li ħjiel fuq l-xorta ta 'affarijiet li inti tista' tagħmel għalik innifsek sa tmiem semestru tal. Per eżempju, hemm, il-verżjoni SMS tal Boy shuttle jiġri biex jopera kif ġej. Jekk, fuq il-mobile phone tiegħek, inti tibgħat messaġġ test li 41,411 u mbagħad jibgħat l-sboy simbolu speċjali, għall-Boy Shuttle, segwit minn A u B, fejn A huwa l-oriġini u B huwa destinazzjoni - per eżempju, Boylston Ispazju Quad - dak li għandek terġa 'lura fi ftit sekondi huwa test Messaġġ mill Boy Shuttle tghidlek eżattament meta l- shuttles li ġejjin huma, minn dan il-punt A li jmorru għal dak punt B. U dan huwa eżempju aktar ġenerali ta 'dak magħruf bħala jużaw API. Għalhekk per eżempju, dan hawnhekk hija biss shuttleboy.cs50.net, il- attwali fuq l-internet Inkarnazzjoni ta 'dan. Iżda d-data li jenfasizza apps dan u oħrajn li CS50 żviluppat huma kollha esposti għal kulħadd hawn fil-forma ta 'APIs, interfaces ta' programmazzjoni applikazzjoni. U dan huwa biss mod fancy ta 'tgħid li n-nies jixtiequ aħna fuq l-Internet u oħrajn jkunu qattgħu xi żmien ħolqien software li tista 'tuża biex grab data minn għandna u imbagħad jibnu l-applikazzjonijiet tiegħek fuq nett ta 'dak is-sett tad-dejta. Għalhekk per eżempju, dan il-shuttle Boy API paġna hawn, li jiġri li jkun fil-manwal CS50, essenzjalment dokumenti kif inti tista 'tmur dwar tistaqsi CS50 servers għal data. Per eżempju, jekk int familjari ma 'CSV fajls, comma separati valuri, dawn huma biss it-tip ta 'malajr u maħmuġin Excel-like fajls. Allura inti tista 'tistaqsi Boy Shuttle għall kollha tad-data fuq kollha ta' l- djar u koordinati GPS tagħhom, u int ser tingħata lura, essenzjalment, spreadsheet bħal dik li inti tista 'mbagħad jaqra fi programm tal tiegħek u mbagħad jiġġeneraw riżultati, bħall-Boy Shuttle innifsu jiġri li tkun qiegħda tagħmel. Għal dawk aktar familjari, rappreżentazzjonijiet tad-data aktar moderni jinkludu JSON, Notazzjoni Għan JavaScript. Xi ħaġa se terga 'lura lilek lejn l-aħħar tas-semestru. Iżda għal darb'oħra, dan huwa biss wieħed minn ħafna ta 'APIs stess CS50 s. U l-ħaġa eċċitanti hija issa, dawn il-ġranet, Facebook u Twitter u Google u pretty ħafna kull website popolari out kien hemm xi tip ta 'API, li jfisser li jekk inti taqra l- dokumentazzjoni dwar il-websajt tagħhom, inti jiffirmaw għal kont, inti tista 'mbagħad tibda bil-miktub tas-softwer fuq quċċata ta' kwalunkwe għodda jew data li l-kumpanija hemm tipprovdi. U għalhekk wieħed mill fellows tagħna stess ta 'tagħlim ftit snin lura kiteb verżjoni Mac ta 'dan. Allura fil-link intitolat Mac hawn fuq quċċata xellug, inti tista 'attwalment tniżżel widget Mac OS li timxi fuq Mac tiegħek biex jagħmlu l- istess tipi ta 'affarijiet. Allura dan kollu dwar il-bini fuq quċċata ta 'settijiet ta' data bħal dawn. Iżda aktar fuq dan lejn it-tmiem tas-semestru. Mela ejja adsa malajr reali biex bug, biss biex tikseb it-tip ta affarijiet msaħħna llum, u jaħsbu lura fuq xi wħud mill- affarijiet ħarisna lejn ġimgħa li għaddiet. B'mod partikolari, let me imorru quddiem u iġbed up, ngħidu aħna, dan l-eżempju hawn. Buggy1.c, dan huwa disponibbli fuq il-websajt tal-kors tal jekk youd simili li niżżlu u poke madwar yourself. Imma ejja zoom hawn fuq f'dan il-programm pjuttost qasir, u biss terġa super fast ta 'xi wħud mill-moduli bażiċi li aħna verament huma se biss tibda tieħu għall mogħtija. Allura l-għalf blu, fil-linji 1 sa 9, huma biss softball mistoqsijiet. Allura dawn huma biss kummenti. Huma jkollhom l-ebda tifsira funzjonali. Iżda dawn qed kummenti fis-sens li dawn qed jinnota li Jiena, il-bniedem, magħmul għal myself sabiex fil lecture u wara lecture, I jistgħu attwalment tiftakar dak dan il-programm ma mingħajr ma jaqra permezz ta 'dan linja b'linja u recreating istorja fil-fehma tiegħi. Barra minn hekk, jekk I-idejn dan il-programm lil xi ħadd ieħor simili inti, huwa ħafna aktar ċar li inti, minħabba kummenti bħal dan, dak il-programm fil-fatt tagħmel, jew għall-inqas dak il- programm suppost li tkun qiegħda tagħmel. Jew le huwa korrett hija kwistjoni oħra għal kollox. Issa, fis-C, multi-linja kummenti, ifakkar li fuq il-linja wieħed hawn huwa s-simbolu magic, / *. Dan ifisser hawnhekk jidħol l-bidu ta 'kumment. U xejn kwistjonijiet sakemm inti jilħqu t-tmiem terminatur, li huwa * /, l-oppost. Allura l-fatt li għandi 80-xi stilla fard hawn minn xellug għal-lemin huwa verament ftit dettall estetika. Hija għandha l-ebda tifsira funzjonali. Issa kif madwar linja 11? X'jagħmel din do f'termini laymans? X'hemm li? UDJENZA: Jinkludi l-istandard. DAVID J. Malan: OK, tajba. Għalhekk tinkludi l-librerija stdio.h. Allura dak ma jfisser? Ukoll, ġewwa dan il-fajl, stdio.h, huma mazz sħiħ ta ' funzjoni dikjarazzjonijiet - jiġifieri, il-kodiċi li xi ħadd ieħor kiteb. U eżempju perfett ta 'funzjoni li s iddikjarata stdio.h huwa - li favorit minn issa? Allura printf, wieħed mill-aktar komuni għall-użu, ċertament kmieni, minn dik librerija hemm. Jekk I jeskludu dik il-linja tal-kodiċi, clang se Yell fil lili xi ħaġa dwar l-użu ta 'simbolu mhux iddikjarat. Xi ħaġa mhux iddikjarat huwa probabbilment l-keyword, minħabba li aħna ma infurmaw lill-kumpilatur dak printf jistenna simili sakemm aħna jinkludu dik il-linja. U aktar l isfel għall-Dinja, verament, dak li linja huwa qal huwa jiftħu dan il-fajl, stdio.h, kull fejn huwa fuq il-tal-server hard drive, jew hard drive, l-apparat, u kopja-paste dan hemm dritt fil-fajl tiegħi, mingħajr tiegħi jkollhom jagħmlu dan manwalment. Issa, ladarba irridu jiksbu l isfel hawn biex prinċipali, qabel twil aħna ser tibda teasing apparti huwa null dak int u dak li. Iżda għal issa, ejja nħarsu lejn it-tliet linji fi żmien 15 permezz 17. Dan here I pretensjoni bħala Buggy. Linja 7 fil-kummenti tiegħi jgħid "Jekk print 10 asteriski iżda ma. "Għaliex ma dan ma print, fil-fatt, 10 stilla bħal dawn? UDJENZA: [inaudible]. DAVID J. Malan: Eżattament. Allura avviż li aħna qed jibdew jgħoddu minn 0. U dan huwa attwalment konvenzjoni fl-ipprogrammar u l- xjenza tal-kompjuter aktar ġenerali, li jibda jgħodd minn 0 minflok 1. U dan verament ftit joħroġ mill-fatt li, għall- Pereżempju, meta kellna tmien persuni up fuq l-istadju, meta ebda wieħed kien jgħollu naħa tagħhom, kienu kollha żerijiet effettiv. U dan huwa biss tip ta 'konvenzjoni tal-kompjuter hekk, għalhekk, biex jibdew jingħaddu minn 0. Jekk dan huwa l-anqas numru inti tista jirrappreżentaw fil binarja. Allura hawnhekk konna beda initializing i għal 0. Imxejna stabbilit i ugwali għal 0. Imma mbagħad I magħmula dan l-iżball hawn, qal i huwa inqas jew ugwali għal 10. Imma jekk inti taħseb li permezz ta ', jekk nibda fi 0 u mbagħad mmur sa 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jien fil-fatt ser jistampa 11 istilel għall-iskrin, għaliex stajt marret up għal u ugwali għal 10. Allura l-jiffissaw faċli hawn allura huwa dak? UDJENZA: [inaudible]. DAVID J. Malan: Just bidla għal inqas minn. Jekk int verament tixtieq, inti tista 'tagħmel dan. Iżda b'mod ġenerali, li l-frowned fuq. U għalhekk jibda jgħodd minn 0 hija biss xi ħaġa inti għandek tipikament jidraw. Issa, dak dwar dan kollu kostruzzjoni u fih innifsu? Dan line 15 demarks a għal loop. Allura għal mhix funzjoni. Huwa biss dikjarazzjoni. Huwa tibni looping, bħal rajna fil Scratch. U għandu tliet partijiet. Avviż li hemm il-parti 1 li l-xellug tal-punt u virgola. Hemm il-parti tan-nofs bejn il-semicolons 2. U allura hemm il-parti tal-lemin lejn il-lemin tat-virgola 2. Issa, l-ewwel minn dawn jagħmel xiex? UDJENZA: [inaudible]. DAVID J. Malan: Lura hemmhekk? Yeah? UDJENZA:. Inizjalizzazzjoni DAVID J. Malan: inizjalizzazzjoni. Allura dak li jfisser dan? Aħna jkunu ddikjaraw varjabbli imsejjaħ i. Huwa ta 'int tip, għaliex stajt speċifikat int i. U jien initializing i għall-valur ta '0. Allura x'hemm dan verament tgħid? Huwa effettivament tgħid li l-kompjuter ħej, agħti lili biżżejjed , memorja RAM biżżejjed, biex jitwaħħal numru, u mbagħad iwettqu l- Numru 0 f'dak blokki ta 'RAM. U bħala twarrib, kemm hu kbir huwa int tipikament, inqas minn ġewwa tat-tagħmir? UDJENZA: 32 bit. DAVID J. Malan: 32 bits. Allura dan ifisser jagħtu me 32 bits, magħrufa bħala 4 bytes, u tpoġġi l-0 valur fiha, li huwa pjuttost faċli minħabba hija biss mezzi msemmija l-bits għal 0. Allura issa, it-tieni parti hawnhekk huwa l-kundizzjoni. U l-kundizzjoni, hekk kif tissuġġerixxi l-isem, huwa dak li huwa kkontrollat ġdid u għal darb'oħra u għal darb'oħra dwar jekk huwa veru jew falza. Allura dan huwa biss qal jagħmlu l-linji ta 'kodiċi - jiġifieri linja 16, għaliex dak l-uniku wieħed indentati taħt - sakemm i huwa inqas minn 10. U wara kull iterazzjoni permezz ta 'dan loop, jagħmlu l- incrementation, li f'dan il-każ huwa i + +. Issa, dan ma għandhom ikunu i + +. Dan jista 'jkun i -. Imma jekk jien għamilt dan, dak li l-imġieba għaddej li jkunu ta 'dan il-programm? UDJENZA: Huwa ser tkun loop infinita. DAVID J. Malan: Huwa ser jkun hemm xi tip ta 'loop infinita, sakemm aħna nikseb xxurtjati wara t-2 negattiv biljun jew hekk. Forsi l-affarijiet se perimetrika, biss min-natura tal-finita numru ta 'bits li għandna allokati għal int. Iżda huwa ċertament se jtenni ferm aktar minn 10 u ċertament aktar minn 11-il darba hawn. U issa, biss bħala twarrib, tirrealizza li i + + u i - huma verament ftit zokkor sintattiku. Huwa biss notazzjoni shorthand għal x'hemm ftit aktar espliċitament bil-miktub kif ġej: i = i + 1. Dan huwa identiku għall i + +. Hija biss it-tip ta 'jistenna prettier ngħid i + +. Huwa aktar konċiża, aktar leġġibbli. U hekk ħafna nies li minflok. Iżda din hija identika funzjonalment li dak li aħna biss raw. Allura fil-qosor, l-jiffissaw malajr hawnhekk huwa biss biex jgħidu jtenni i minn 0 it-triq kollha sa inqas minn 10. U allura aħna ser tabilħaqq tikseb 10 istilel. Mela ejja jippruvaw dan. Let me tiftaħ il-terminal fil-qiegħ. Let me jmorru fil-direttorju li dan huwa pulzieri U jien ser josservawha manwalment bl clang għal issa. U jien ser jiġbor dan bħala buggy1.c, Ikteb. U issa buggy1, għaliex hemm ebda tali file jew direttorju imsejħa buggy1? UDJENZA: [inaudible]. DAVID J. Malan: Yeah. Allura huwa attwalment imsejħa a.out. Mela recall jekk inti biss run clang, huwa clang fejn l- kompilatur, u inti ma tispeċifika l-isem li trid jagħtu lill-programm tiegħek, li għaddej biex default għall a.out. Mela fil-fatt jekk nagħmel ls - oops. U jien didn't - il-kwistjoni iswed u abjad wħud inti jiffaċċjaw ġie ffissat. Iżda let me do dan. Hemm aħna għandna a.out fuq in-naħa tax-xellug hemm. Allura aħna għandna jiddekorri a.out minflok buggy1. So let me imorru quddiem u jagħmlu dan. . A.out /, Ikteb. U jien apparentement ma tagħmel dak? UDJENZA: Save. DAVID J. Malan: Save fajl tiegħi. Allura li huwa faċilment solvuti billi jolqot S Kontroll, jew sejrin lejn File, Save, bħal fil-programmi l-aktar. Let me jinżlu hawn, ċar l-iskrin, run mill-ġdid. U hemm għadu bug. Allura dak li qed jiġri - UDJENZA: Inti ma tiġbor. DAVID J. Malan: Ah, tajba. I ma josservawha. Bħal idjota, jien tħares lejn il-kodiċi biex tara x'hemm ħażin. Allura clang buggy1.c, issa a.out. U phew, ffrankati. Għalhekk jistenna ftit ikrah għaliex hemm l-ebda linja ġdida kullimkien fil-programm. Iżda għal darb'oħra, dan huwa biss dettall estetika. U għall-inqas jekk aħna għadd dawk barra, għandna issa tara 10-il stilla bħal dawn. Ukoll, dak dwar din it-tieni warm-up eżempju? Għalhekk fl buggy2, I jsostnu li din il-verżjoni, wisq, se print 10 stilla, waħda għal kull linja. Allura dan iż-żmien, I għandhom karattru newline, biss biex jagħmlu affarijiet ftit prettier. Iżda minflok dak I nikseb hija din. So let me do buggy2.c clang, Ikteb. Issa huwa għal darb'oħra imsejjaħ a.out. Ikteb. I biss tara linja waħda ġdida, biss il-linja l-ġdida ħafna aħħar li jiċċaqlaq fil-pront tiegħi mal-linja li jmiss. And yet b'mod ċar stajt ġiet istampar *, imbagħad linja ġdida, *, Imbagħad linja ġdida. Imma x'inhu l-bug hawn? Yeah? UDJENZA: [inaudible]. DAVID J. Malan: Eżattament. Allura b'differenza xi lingwi, bħall Python, fejn indentazzjoni fil-fatt għandha tifsira funzjonali, b'mod lingwa bħal C - kif aħna ser tara, PHP, JavaScript - l-indentazzjoni huwa verament biss għall-benefiċċju bniedem ". Allura l-fatt li stajt indentati linja 16 u 17 jistenna kbira, iżda ma jkollu ebda tifsira funzjonali hawn. Jekk irrid żewġ linji li teżegwixxi bħala parti mill-għar loop, imbagħad I għandhom jehmżu magħhom fl ċineg kaboċċi billi tagħmel dan. Tista 'biss tnaqqas l-kantuniera u jħalli barra l-braces kaboċċi jekk x'inhu l-każ? UDJENZA: Just linja waħda. DAVID J. Malan: Eżatt linja waħda. Hekk li jinsab biss it-tip ta 'tip sabiħ ta' dettall sintassi sabiex inti ma jaħlux ħin kitba tliet linji, li tnejn minnhom huma ċineg kaboċċi, biss jiktbu linja waħda tal-kodiċi. Imma jekk ikollok tnejn jew aktar linji, aħna tabilħaqq bżonn tagħmel dan. Allura issa let me jiffrankaw dan. Let me imorru quddiem u jerġa 'jsir clang. Imbagħad let me terġa 'ssir a.out, u issa I tikseb minnhom wieħed għal kull linja. Issa, a.out darb'oħra huwa tip ta 'isem dumb għal programm. Kif nista 'nkun naf clang biex effettivament tagħti me isem ta' fajl li l-aktar faċli għall-utent, bħall buggy2 stess? A ftit aktar ċar? UDJENZA: [inaudible]. DAVID J. Malan: OK, so I jistgħu attwalment jieħdu l-ħafna faċli għall-utent shortcut u biss jiktbu jagħmlu buggy2. Jien ma jispeċifikawx. Ċ f'dan il-każ, u hit Ikteb. U dak li jagħmel ma huwa jikkompila buggy2.c għalija billi titlob clang biex tagħmel dan. Speċifikament, huwa jappella clang, din tmur clang tuża b'mod aktar kmand tal-linja argumenti jew swiċċijiet minn I attwalment bżonn. Fil-ħin, aħna ser terga 'lura għal dak li dawn kollha diversi espressjonijiet hyphenated cryptic mezzi. Iżda għal issa, li jinsab biss iffrankar lili il-problemi ta ' wara li tiftakar u jkollhom tip out kollha ta 'dawk espressjonijiet hyphenated varji. U l-rasu ta 'dan, finalment, huwa li issa għandi buggy2. Jekk irrid li tagħmel dan manwalment, għalkemm, jiena tista 'minflok tagħmel dan - clang-o buggy2 u mbagħad buggy2.c. U li se simili tagħti me a inkartament imsejjaħ buggy2. Allura fil-qosor, clang l-kumpilatur. Agħmel hija biss għodda faċli għall-utent li aħna ser tkun qed tuża aktar u aktar, għaliex hija biss jibda tissimplifika l-affarijiet għalina. U aħna ritorn 0, fl-aħħar. Għal issa, biss għaliex, imma aħna ser tibda teasing dik il-parti illum u nhar l-Erbgħa. Kwalunkwe mistoqsijiet dwar kwalunkwe ta 'dan? Yeah? UDJENZA: [inaudible] ls fil kwotazzjonijiet hemmhekk? DAVID J. Malan: OK. Meta I ls ittajpjat fil-kwotazzjonijiet, li kien me tagħmel xi magic wara l-kwinti biex jiffissaw bug. I nesa, bħal aħna kont qed javżak ħafna minnkom fuq l- diskussjoni bordijiet, li jagħmlu - aħna ser nagħmlu dan issa - sudo yum-y aġġornament appliance50. Whoops, li thats spelt dritt. Allura l-appliance hija bħal sistema operattiva. Huwa running din is-sistema operattiva imsejħa Fedora. U issa minħabba l-konnessjoni tiegħi internet bil-mod, stajt verament ser jiġu maħsula permezz dan. Allura running aġġornament yum sudo, kif aħna jgħidlek biex tagħmel fil- sett problema, essenzjalment simili taħdem aġġornamenti awtomatiċi fil Mac OS jew Windows. U r-raġuni għat-tmexxija dan fil-bidu nett tal- Sett problema għaliex meta ħloqna l-appliance, I messed up, u I aċċidentalment magħmula kollha ta 'programmi tiegħek ħarsa iswed fuq skrin iswed, u huwa għalhekk li int ma jaraw lilhom kontumaċja. Iżda l-aħħar verżjoni ta 'l-appliance jiffissa dan. U jien ser jiffissaw li matul waqfa ladarba I jkollhom Internet konnettività. Allura l-kwotazzjonijiet biss ġlud żball tiegħi, ħafna diskret, apparentament. Mistoqsijiet oħra? Iva? UDJENZA: Fejn ma jagħmlu jiġu minn? [Inaudible] DAVID J. Malan: Mistoqsija tajba. Fejn ma jiġu minn tagħmel? Dan huwa programm Linux li ilha teżisti għal ħafna snin, sakemm qabel CS50. U niġu ma 'sistema operattiva bħal Fedora. Dan ma jaqax mill-bibljoteka CS50. Fil-fatt, l-uniċi affarijiet li ġejjin mill-bibljoteka CS50 s'issa, li aħna stajt tidher, huma GetString, GetInt, kollha ta ' dawk Get funzjonijiet, u l-sekwenza kelma, u sa ċertu limitu, il-kelma bool. Iżda aħna ser tease li apparti meta aħna adsa fis-CS50 apparat innifsu. Allura iva, mistoqsija waħda aktar hawn. UDJENZA: Meta inti qal tagħmel u mbagħad Buggy, kif ma 'l- kompjuter taf [inaudible]? DAVID J. Malan: Mistoqsija tajba. Allura meta inti biss run tagħmel buggy1 jew jagħmlu buggy2, kif ma tagħmel taf? Allura fil-kontumaċja, jekk inti tip tagħmel buggy1, jagħmlu jistenna għal fajl imsejjaħ buggy1.c. U allura tesegwixxi l-kmandi clang xierqa, b'hekk tiġi sorpassata l-fajl default imsejħa a.out. Fil-fatt, jekk inħarsu lejn dak li jagħmel, dak - ejja nieqaf dan. Jekk inħarsu lejn dak li jagħmlu kien fil-fatt tagħmel, tagħmel buggy2, huwa diġà aġġornata. So let me tneħħi l-kmand rm, il- Programm I kiteb qabel. Ittajpjar Y-E-S li tikkonferma li nixtieq li tneħħiha. Jekk I issa ma tagħmel, avviż li din il-linja twila ħafna, hemm dan aħħar ħaġa hawn, o buggy2. Kollha jagħmlu qed tagħmel hija tgħaddi dan l-argument, biex ngħidu hekk, biex Clang, I hekk li ma jkollhomx it-tip myself. Kull dritt, hekk ftit malajr ta amministrattiva Avviżi. Allura għal sezzjonijiet, li uffiċjalment beda din ġejjin Ħadd, inti ser dejjem tixtieq li tressaq, jekk għandek wieħed, laptop. Jekk inti ma għandekx laptop, ma jilħqu lili mill twaqqa email. U aħna ser insemmu workflow. Dak li ġeneralment inti ser issib fis-sezzjoni hija li dawn qed parti kunċettwali, part hands-on. Aħna ser speċifikament tuża l-sezzjoni ta 'mistoqsijiet, parti tal-ġimgħa problema sett, jimxu permezz xi wħud mill- materjal kunċettwali minn lecture. U li kollox fis-sett problema attwali. U aħna ser ukoll adsa fis xi attivitajiet hands-on, xi kultant li se jkunu meħtieġa biex jiġu sottomessi, xi kultant ta ' li mhux se. Per eżempju, din il-ġimgħa 1, dawn qed maħsuba biss bħala warm-up eżerċizzju. U inti ser issib li dawn il-problemi huma verament dan. Huma qed maħsuba li tkun pjuttost żgħar, iżda mhux neċessarjament programmi trivjali li tikteb, li mhumiex neċessarjament opportunitajiet eċċitanti u minnhom infushom, iżda huma tajbin għall- prattika ma sintassi, ma 'funzjonijiet ġodda, fil-kumdità ta' sezzjoni fejn inti għandek ftit ta 'klassi tiegħek tippreżenta mill- ukoll TF tiegħek. U dak li aħna ser nagħmlu matul iż-żmien huwa l-użu ta 'għodda msejħa CS50 Spazji, fejn minflok sempliċiment bl-użu Appliance CS50, inti ser minflok imorru għal paġna web browser, fejn inti ser ikunu jistgħu biex jikteb il-kodiċi fil-tieqa browser matul is-sezzjoni. U mbagħad jekk inti opt in, sħabi tagħlim tiegħek jista 'mbagħad juru kwalunkwe huwa int ittajpjar fuq l-iskrin tiegħek fil-browser tiegħek tieqa up fuq quddiem tal-klassi, sew jekk b'mod anonimu jew pubblikament, sabiex hu jew hi jistgħu mbagħad jimxu permezz ta 'l klassi tiegħek dak li għamilt tajjeb, dak li inti ma tagħmel tajjeb. U għal darb'oħra, mistrieħ assigurat dan kollu jista 'jiġi nicely għamla anonima. Iżda dan ser ikun opportunità sbieħ għal ħafna aktar interattività minn xi ħaġa bħal lecture tippermetti. Fil-frattemp, aħna ser ikollhom dawn l-affarijiet imsejħa super sezzjonijiet, li huma fakultattivi, imma huma miftuħa għal kulħadd fl- il-klassi, sabiex inti tista 'tagħmel dan aktar kollettivament għal problema sett wieħed. Hawn l-iskeda. Dan huwa wkoll stazzjonati fuq il-homepage fuq cs50.net. Avviż li se jkun hemm xi Hacker speċifiku wara nofsinhar għada waħda. U aħna se jiffilmjaw waħda llum u waħda għada u post dawk online fi żmien 24 siegħa. Mela jekk inti ma tistax tagħmel xi wieħed minn dawn iż-żminijiet, biex ma tinkwetax. U għal darb'oħra, l-iskeda hija online issa fil cs50.net. F'termini ta 'sezzjonali innifsu, għandek gotten xi email struzzjonijiet biex tmur għall-homepage tal-kors li ssib out sezzjoni tiegħek. Jekk il-ħajja nbidlet u li għandek bżonn għall-bidla taqsima tiegħek, mhux problema. Mur lura għal dak URL istess, cs50.net/section, singular, u tkun taf timla l-formola simili sabiex inti tista ' imbagħad tagħtina preferenzi tiegħek. U aħna se ssegwi mill-aħħar ġimgħa dwar dak li nistgħu jakkomodaw. Last week, ifakkar li aħna pproponiet li jużaw CS50 Iddiskuti, il-kors tal-diskussjoni għodda, fil lecture. Allura kellna 40 mistoqsijiet li kienu mitluba u wieġeb matul lecture. Għalhekk deher li jaħdmu tajjeb, hekk aħna ser tkompli tipprova tagħmel dan. Jekk, matul taħdita, inti mhux biss jħossuhom komdi kuxjenza naħa tiegħek, mhux problema. Mur cs50.net/discuss, post hemm, u wieħed tat-tagħlim tagħna fellows jew se twieġeb b'mod elettroniku jew jgħollu tagħhom idejn f'ismek anonimu li titlob, skont in-natura tal-kwistjoni. U f'termini ta 'feedback, ġeneralment psets se jkun lura fi żmien ġimgħa. Għaliex tieħu ftit filwaqt li għal sezzjonijiet biex jinkiseb ekwilibriju, l pset 1, 0 u 1, se jkun ftit ittardjata bħala affarijiet jissetilja. Iżda tissospendi sintonizzat għal dak fil-ġimgħat li ġejjin. Kull dritt, so let me jitqiegħdu fuq serja tiegħi vuċi għal ftit mument. Allura dan huwa attwalment klima interessanti li tkun jkollhom din id-diskussjoni, liema kollha ta 'l-affarijiet oħra għaddej fuq magħhom kampus relatati. Iżda CS50 ċertament kellha l-istorja tagħha ta 'din partikolari suġġett, safejn jidħlu kull sena, dan il-kors, għal ħafna snin, Ad-Bordijiet madwar 3% tal-klassi. Din is-sena l-aktar riċenti, 2011, CS50 Ad-mbarkat 35 istudenti. Din mhix, naħseb, minħabba nuqqas ta 'ċarezza. Jirrealizzaw li fil sillabu tal-kors, hemm paġna ta ' dikjarazzjoni li tispjega fejn il-linji huma. Dik id-dikjarazzjoni istess hija ripetuta fuq kull waħda mill- problema settijiet fuq paġna waħda. So I jsemmi dan llum verament biss biex jagħmlu folks konxji ta 'dan. U aħna stajt ppruvaw affarijiet differenti. U dak li ħsibt aħna se nagħmlu llum huwa biss tieħu mument biex attwalment tħares lejn uħud mill-każijiet tal-passat li jkunu ġejjin up. Pjuttost milli żżomm dawn sigrieti ftit maħmuġa kif, fil-fatt tfakkar dak l-istudenti għamlu u kif għandna skoperti dan u verament dak il-motivazzjoni globali hija għal anki wara li dan konverżazzjoni. Allura ma 'dak imsemmi, il-linja essenzjalment hija din - Skond il-sillabu, int milqugħa, inti huma mħeġġa, biex tkellem mal-klassi. Dik hija l-iskop kollu ta 'wara dawn il-kollaborazzjoni uffiċċju siegħa Annenberg u nies inkoraġġanti għall- proġett finali biex jaħdmu flimkien. Iżda l-linja huwa mfassal meta niġu żmien li attwalment jiktbu soluzzjoni finali tiegħek. Taħdit bl-Ingliż, totalment multa, jitkellem fil-kodiċi psewdo, totalment multa. Email classmate pset tiegħek, kiri lilhom ħarsa fuq l-iskrin kif l-idejn tkompli ittajpjar, fuq il-linja kif ukoll. Do inħarsu lejn il-sillabu għal-linji partikolari. Iżda biss li jagħti stampa ta 'kif dan huwa sfortunatament realtà, tirrealizza li hemm websajts hemmhekk li jkollhom soluzzjonijiet minn din il-klassi u l-klassijiet ħafna oħrajn. Il-fatt li inti jew xi 3% ta 'inti taf li dan jeżisti tfisser li aħna nafu li dan jeżisti. Il-fatt li hemm websajts bħal dan fejn inti jistgħu jħallsu xi ħadd li fil-fatt jagħmlu settijiet problema tiegħek - dan kien każ attwali li ħarāu aħħar sena. Din hija website imsejjaħ odesk.com. U Tim kien l-isem tal-persuna hawn li kien kollokament fuq din il-websajt u talbu xi ħadd li jagħmel pset tiegħu 7 fil din partikolari il-każ. Ukoll, odesk.com huwa ħafna Google-kapaċi, u aħna wisq huma tajjeb ħafna fil Googling. Hawnhekk, ukoll, hemm siti - u dan wieħed pjuttost atroċi, franchement. [Daħk] DAVID J. Malan: Il-ħaġa umoristiċi dwar dan is-sit huwa jekk taqra l-paġna About, huma jitkellmu dwar korporattiva tagħhom servizz tal-klijent kultura u kemm hu tagħhom numru wieħed prijorità, biex tiżgura li assenjazzjonijiet tiegħek jiksbu kellu fil-ħin. Iżda fil-serjetà kollha, għal darb'oħra, il-fatt li dawn is-siti jeżistu, realizzata aħna, ukoll, huma Filwaqt li jirrikonoxxu dawn it-tipi ta 'siti. U biex jagħtuk sens ta 'dak li jagħmel din ġeneralment jieħu, aħna ġeneralment ma jkollhomx skandli kbar fejn in-nies qed jikkollaboraw fuq kwalunkwe tip ta 'skala kbira, iżda pjuttost huwa f'dawn il-mumenti tard bil-lejl ta 'dgħjufija, fejn għandek hekk ħafna x'isir, huwa 04:00, int eżawriti, u int taħseb li yourself, ukoll, let me biss tagħti ħarsa lejn tiegħi roommate jew kodiċi ħabib tiegħi jew simili. U l-manifestazzjonijiet ta 'dan sfortunatament jinvolvu Istudenti A ħaġa sottomissjoni bħal din u l-preżentazzjoni B Student xi ħaġa bħal din, li ċertament, fil-kompjuter klassi tax-xjenza, huwa tassew faċli għax-xjenzati tal-kompjuter għall-individwazzjoni ma 'software. Dan huwa pass ieħor paradigma komuni, fejn inti ħadthom tip ta ' ilha taħdem flimkien ta 'xi ħadd, forsi jitkellem fil Ingliż, biss multa, pseudocode. Iżda mbagħad niġu żmien li attwalment jissottomettu, u l-psets biss tikseb skambjata permezz ta 'email jew Dropbox jew affarijiet simili. Iżda f'attentat biex jagħmilha inqas evidenti li din hija dak li ġara, allura dan hu dak li sottomessi. Dan, ukoll, ma vjaġġ sal sew bil-miktub biċċiet ta ' softwer bħal għandna attwalment skoperti dawn it-tipi ta 'affarijiet. U fil-fatt dak li nagħmlu huwa softwer run li jqabbel kollha ta ' sottomissjonijiet din is-sena kontra kollha ta 'l-aħħar sena sottomissjonijiet, kontra dak kollu li sibna fuq il- Internet, kontra kull website impjieg hemmhekk. Huwa kollha ħafna awtomatizzata. U hekk nagħmlu dan verament fil-ġustizzja kbira għall-97% li huma verament jaħdmu ħmir tagħhom off f'dan u fl-ieħor klassijiet u tqegħid fil kollha ta 'dak l-isforz sabiex il-ħidma dawn kienu finalment iressqu huwa tagħhom stess. U jien tista 'tmur fuq għall-etajiet. Dawn huma biss ftit każijiet sena li għaddiet. A istudenti ftit sottomessa dawn il-fajls identiku għal pset 2, pset 3, pset 4, pset 5, pset 6, pset 9. F'dan il-każ, dan kien kwizz 0 u fl-aħħar sena, fejn tnejn istudenti sottomessa identiku din is-sentenza fost ħafna oħrajn, "It-talba tat-tip -" dot, dot, dot. Allura anke fi klassi ta '600 ma aħna jiskopru dan fuq sottomessa kwizzijiet. Allura fil-qosor, dan - franchement, I hate wara dan it-tip ta ' konverżazzjoni - iżda dan huwa verament sforz deliberat din is-sena biex tipprova nbaxxu dak in-numru. Minħabba li anke jekk aħna ngħidu dawn it-tipi ta 'affarijiet kull sena, naħseb li l-realtà ta 'wara dwelled fuqha għal ftit aktar sekonda mis-soltu u fil-fatt biss li fakkret li dak li jista 'jidher, eh, mhux tali big deal, mill-inqas naħseb lura għal dan il-mument partikolari, kemm l-ekwità li yourself u biex klassi tiegħek hawn. Mela jekk inti qatt xi mistoqsijiet dwar fejn il-linja huwa, jekk jogħġbok biss jilħqu lili personalment. Iżda l-tweġiba hija dejjem, kompletament enfasizzat fil- aħħar minuta, flus kontanti fil-jum tard. Jew jekk huwa kwistjoni ta 'ma jkollhomx xi jiem tard, onestament, email me personalment. Aħna ser figura xi ħaġa barra. Jekk jogħġbok ma jitqiegħdu ħin tiegħek hawn fil-Harvard f'riskju. Issa, ħsibt għandna jiħfief il-burdata, so I inkluż dan bħala l-slide li jmiss. [Daħk] DAVID J. Malan: Dan il-websajt kien kbir. I attwalment ltqajna ftit distratt. Hemm dan wieħed. U mbagħad dan wieħed kien aqwa. Okay, hekk naħseb ta 'dak kitten tard bil-lejl meta jagħmlu dawk id-deċiżjonijiet. Kull dritt, Jittieħed hekk lura għall-gost aktar u inqas serji, bħal kundizzjonijiet. Kull dritt, hekk aħna tkellimna fil-qosor dwar dawn. Din hija xi ħaġa li probabbilment pjuttost familjari minn -dinja ta 'Scratch. U fid-dinja tal Scratch, aħna għandna din il-ħtieġa kultant li jmorru jagħmlu frieket fit-triq. Jew tagħmel dan jew dak jew dan ħaġa oħra hawn. U meta rridu nagħmlu dan, aħna jistgħu jużaw, fis-C issa, dan jekk inkella jinbena. U allura hawnhekk għandna espressjonijiet Boolean. Per eżempju, l-espressjonijiet Boolean hawn, nistgħu JEW flimkien, fis-sens li aħna għandna din il-kundizzjoni JEW din il-kundizzjoni. Nistgħu U flimkien, fis-sens li rridu tivverifika din il-kundizzjoni U din il-kundizzjoni. U hawn aħna għandna dikjarazzjoni swiċċ issa, li mhuwiex tant simili sintattiku għal dawk tipi ta 'kundizzjonijiet, iżda jippermetti li jagħmlu l-ekwivalenti ta 'jekk, inkella jekk, inkella jekk, inkella jekk, u simili billi sempliċiment enumerazzjoni minnhom każ b'każ billi każ b'każ. Allura aħna raw dawk aħħar darba. U allura bdejna tintmiss affarijiet simili loops. Rajna wieħed minn dawn biss mument ilu. Iżda hemm dawn constructs looping oħra. Per eżempju, dan wieħed hawn. Għalhekk, filwaqt li (kundizzjoni), jagħmlu dan ħaġa ġdid u għal darb'oħra. Allura fundamentalment, dak li jidher li jkun differenti bejn din għal linja u dan loop filwaqt hawn? Dan għal loop u dan loop waqt. Yeah? X'hemm li? UDJENZA: [inaudible]. DAVID J. Malan: Tajba. Allura billi fil-linja għall-kundizzjoni, hemm b'mod ċar aktar sintassi. Hemm din inizjalizzazzjoni, hemm dan l-aġġornament. Fi loop waqt, hemm biss din il-kundizzjoni. Għalhekk jidher li huwa ftit tqassar kontra l-għar loop, li jfisser li jekk irridu li jkollna varjabbli u rridu li jkollhom incrementation, għandna attwalment ikollhom tagħmel dan ħaġa nfusna. So let me go l quddiem u tiftaħ gedit. Let me jisswiċċja għall-appliance. U ejja biss tagħmel eżempju ftit malajr li tiddistingwi wieħed minn dawn mill-ieħor. U fil-dahar tal-moħħ tiegħi hawnhekk, I għandha tgħid ħaġa waħda. Jiena speċifikament imsemmija l-isem Tim. Tim kien effettivament xi ħadd li student ppruvaw isibu jagħmlu huiswerk tagħhom għalihom. Kellna l-ebda Tim f'dik is-sezzjoni partikolari. Allura realizzata, lest I żvelata student, ma kienx student. Kienet persuna każwali fuq l-Internet nagħmlu l-affarijiet mill-aħħar sena prokura. Allura insibu li, wisq. Allura f'dan il-każ hawnhekk, let me imorru quddiem u jiftħu fajl ġdid. File, New. Dan jagħti me a tab hawn. Let me imorru quddiem u ħlief bħala loop.c. Let me go u kklikkja Save. U mbagħad stabbiliti hawn, ejja imorru quddiem u tibda bil-miktub # Jinkludu . Let me zoom pulzieri Issa aħna ser nagħmlu prinċipali int (vojt). Issa let me go quddiem u tagħmel għal (i int = 0; i < oh, 10; i + +). U issa jien se jimxi 'l quddiem u jagħmlu jistampaw l-istilla li jien għamlet qabel. U mbagħad fl-aħħar ta 'dan il-programm, aħna qed biss jmorru stampar ta 'linja ġdida, biss hekk li fil-pront tiegħi ma tfittex kollha messy. ritorn 0. Jidhru sintattikament korrett? S'issa. Mela ejja ara. So let me zoom out, mur fil tieqa terminal tiegħi. U let me imorru quddiem u run loop, minħabba I sejjaħ din loop.c. ħaġa Sabiex tagħmel loop. Jidher li jikkompilaw OK. Let me run loop, u issa Ikteb. U jidher li jkollhom stampat 10 istilel. Mela ejja biss jikkonvertu dan ma 'linja waqt u ara dak tipi ta 'kwistjonijiet aħna vjaġġ fuq. Allura minflok dan, let me go fil hawn u jgħidu filwaqt i hija inqas minn 10 - let me jeħles mill-linja ta '. OK, hekk aħna jkollhom ftit problemi diġà. Allura l-kundizzjoni huwa l-istess, imma jien ovvjament nieqsa l- inizjalizzazzjoni. I am nieqsa l-incrementation. Allura dak li għandu l-kumpilatur probabbli tell me meta nipprova li jiġbor dan il-programm? Yeah? UDJENZA: [inaudible]. DAVID J. Malan: Tajba. Allura huwa għaddej biex ngħid xi ħaġa simili mhux dikjarat - f'dan il- każ, varjabbli i. U fil-fatt, l-użu ta 'identifikatur mhux iddikjarat i. U hekk dan huwa b'kuntrast ma 'lingwi bħal PHP u Python u Ruby, li magħhom xi wħud minnkom jista 'jkun familjari, fejn inti tista 'biss tip ta' start-użu varjabbli Willy-nilly u ma għandekx għalfejn tinkwieta dwar tiddikjarahom espliċitament dejjem. Fil Ċ u fil-lingwi bħal Java u C + +, inti għandek tkun super espliċitu. U jekk inti tixtieq varjabbli imsejjaħ i, inti għandek tgħidli liema tip ta 'varjabbli huwa. Allura aħna qed tmur biex ikollhom biex jiffissaw dan kif ġej. Jien ser ikollhom imorru up hawn u t-tip i int, għalhekk, I jkunu ddikjaraw varjabbli imsejjaħ i. Issa, stajt skipped pass wieħed. Stajt ovvjament mhux initialized dan, imma ejja ara jekk dak in inqas waqfa clang jagħmel tilmenta. So let me remake dan il-programm. Kull dritt, issa huwa biss tilmenta għal raġuni differenti. "Varjabbli" i "hija uninitialized meta jintuża hawnhekk." Kull dritt, hekk li pjuttost espliċita. Initialized ifisser biss li dan ikun iffissat ugwali għal valur. U konna ma għamlux dan, so let me jippruvaw ikun egwali għal 0. Issa ejja tipprova dan mill-ġdid u jerġa 'jsir clang. Miġbura dan iż-żmien. U jien ser run. Iżda big loop infinita qodma, għaliex jien ghamilt l- inizjalizzazzjoni, jien ghamilt il-kundizzjoni, imma stajt qatt ma jsir kwalunkwe tip ta 'incrementation. Allura kif nista 'nagħmel l-incrementation? Ukoll, fil-linja waqt, huwa jħoss simili jien ser ikollhom biex tagħmel dan ġewwa tal-linja, għaliex ħafna bħall-ewwel Eżempji ġimgħa ta 'kif isir constructs looping, bħal ma l-kalzetti u mal-awto-għadd, kellna biex jagħmlu xi ħaġa fl-aħħar nett, nixtieq mur lura għall-linja li jmiss. X'jigri jekk imorru quddiem u tagħmel dan i + + hawn? Ejja ma anki jiġbor dan. Qabda me diġà. X'hemm ħażin hawn? UDJENZA: [inaudible]. DAVID J. Malan: Allura huwa definittivament mhux int. Huwa i. U l-braces kaboċċi, bħal qabel, indentazzjoni mhuwiex biżżejjed. Allura issa għandi dan jinbena. Għalhekk, filwaqt li i huwa inqas minn 10, stampar ta 'stilla, imbagħad inkrement i. U l-mod waqt xogħlijiet loop huwa li hekk kif inti laqat il- qiegħ tal-linja, li f'dan il-każ qisu linja 10, li għaddej biex tmur lura għal linja 6, f'liema punt l- kundizzjoni ser jerġgħu jiġu verifikati. U jekk i għadu inqas minn 10, aħna ser tagħmel linji 8 u allura 9, allura aħna ser hit 10, u jmorru lura sa 6, għal darb'oħra u ġdid u għal darb'oħra u għal darb'oħra, sakemm i huwa inqas minn 10. Mela ejja jerġa 'jsir jagħmlu hawn. Okay, aħna ve miġbura okay. Let me-ripetizzjoni loop. U issa fil-fatt jidher li qed jaħdem. Allura pluses u minuses hawn? Ukoll, s'issa hemm attwalment mhux kollha, ta 'PLO - hekk ħelu. Kull dritt, li kienet - ah, li kien inċident. Kull dritt, hekk ejja mmorru lura għall-għall-loop. Allura għal linji huma sbieħ għaliex qed super espliċitu. U anki jekk dawn qed ftit clunky li tikteb, huwa qawwija ħafna u li jippermettilek li tagħmel affarijiet multipli fuq darba. Filwaqt loops ma jidhirx li jkollhom ammont kbir ta 'valur biss iżda, għaliex iħoss bħal aħna biss għandhom jagħmlu iktar xogħol. Għandna tpoġġi l-inizjalizzazzjoni up hawn, il- jaġġornaw stabbiliti hawn, u għandna niftakru li tagħmel dak kollu. Allura aħna ser tara fil-ħin li loops filwaqt attwalment jsellef ruħhom għall biss f'kuntesti differenti, data differenti strutturi bħal-listi u tabelli hash, affarijiet aħna ser tingħata biex nofs l-semestru. Iżda għal issa, jafu li hemm dan it-tip 3 magħruf bħala do- filwaqt loop. U Rajna din qosor. U dan jista 'jkun utli super mal pset 1. Kwalunkwe ħin li inti trid tagħmel xi ħaġa u mbagħad tiċċekkja jekk l-utent ikkooperaw, u jekk dawn ma, jagħmlu mill-ġdid, ta 'do- filwaqt loop jippresta ruħu għal dan it-tip ta 'loġika. Minħabba li l-ordni minn fuq għal isfel hawn jissuġġerixxi, do litteralment tfisser tagħmel dan. U tagħmel dan mill-ġdid u għal darb'oħra, dak li jista 'jkun? Forsi dan ifisser GetInt sejħa jew GetString u mbagħad iċċekkjar il-valur ta GetInt jew GetString u mbagħad yelling lejn l-utent jekk dawn ma jkunux ikkooperaw billi talbithom ġdid u għal darb'oħra u għal darb'oħra. Fejn inti tixtieq li tagħmel xi ħaġa darba, mbagħad tiċċekkja xi kundizzjoni. Mela ejja jippruvaw dan. Let me fil-fatt tbiddel dan issa ma 'linja do-waqt. U jien ser jimxi 'l quddiem u jagħmel dan li ġej. Allura tagħmel dan li ġej. Ejja nagħmlu i int = GetInt (); imma ejja 1 tell-utent x'għandek tagħmel. Allura ftit differenti dan iż-żmien. "Agħti me int". So I ser tuża printf għal dak. U issa jien se jinżlu hawn, u jien ser tagħmel dan filwaqt li i huwa, ejja ngħidu, akbar minn - ejja ara, i huwa, ejja ngħidu, inqas minn 0, jew i huwa akbar minn 10. Fi kliem ieħor, nixtieq numru minn 1 sa 9, biss arbitrarju. Allura jien jużaw espressjoni Boolean magħquda hawn biex kun żgur li i huwa inqas minn 0 jew akbar minn 10, li fih każ I se tagħmel dan loop hawn darb'oħra. Għalhekk għal darb'oħra, tagħmel dan - filwaqt li i huwa inqas minn 0 jew i huwa akbar minn 10. Allura issa ejja imorru quddiem u tagħmel dan darba aħna ghamilt dan. Ejja biss tagħmel verifika sanità malajr. printf ("Grazzi, i huwa% d", i). Allura dan il-programm sempliċi jitlob lill-utent għal int, jagħmel ċert li huwa fi ħdan xi firxa, 1 sa 9 inklużi, u mbagħad jirringrazzja lill-utent billi jitfakkru minnhom dak li biss ittajpjat fil, biss bħala verifika sanità ftit. Imma ejja ara jekk din taħdem kif maħsub. Let me go ras stabbiliti hawn u jerġa 'jsir jagħmlu loop. Hmm. "Użu ta 'identifikatur mhux iddikjarat" i "". Li stramba. Ħsibt aħna solvuta din. Sintomu istess iżda kodiċi differenti. Yeah? UDJENZA: [inaudible] ġewwa l-tnejn, għandna biex [Inaudible]. DAVID J. Malan: Eżattament. Allura dan fil-fatt iwassalna għal suġġett magħruf bħala skop. Jirriżulta li C, għal darb'oħra, li verament jieħu inti litteralment. U jekk inti tagħmel xi ħaġa bħal din fejn inti tiddikjara int u mbagħad tassenja din xi valur, iżda inti tagħmel dan ġewwa ta ' par ta 'ċineg kaboċċi, dak Ċ ma huwa jassumi li inti jridux biss dawk bits 32 magħrufa bħala i li jeżistu fi ħdan il- kuntest ta 'dawk ċineg kaboċċi, fil-kuntest ta' linji 6 sa 9. Hekk i huwa ddikjarat, u din tiġi assenjata valur fil-linja 8, iżda hekk kif ikollok barra ta ' Linja 9 hawn taħt il-Brace kaboċċi, i m'għadhiex ambitu, biex ngħidu hekk. S-C-O-P-E. Huwa m'għadux fil-kuntest dritt. Allura issa m'hemm l-ebda i, dan huwa kif għalkemm kellna lanqas iddikjarat fil-livelli kollha. Allura x'hemm jiffissaw imbagħad għal xi ħaġa bħal din, jekk il- raġuni hija li i tkun saret fil-ċingi kaboċċi, li hija apparentement ħażina? Hawnhekk? UDJENZA: [inaudible]. DAVID J. Malan: Yeah. Allura nistgħu initialize barra. So let me go l quddiem u jħassru l-partijiet tad-dikjarazzjoni li permezz tagħha I jispeċifikaw it-tip, u let me do it up here. Allura fil-linja 5, issa jgħid "Agħti me int." Sejħa hija i. Avviż f'konformità 9, Ma rridx li tagħmel dan, minħabba I diġà għandhom l-bits 32. Ma rridx li titlob lill-kompjuter għal bits 32 differenti. Irrid li jużaw dawk l-istess 32 bits. U issa għaliex i huwa ddikjarat fil-linja 5, huwa għadu leġittimu li jużawh fil-linja 11 u linja 12. So let me jippruvaw recompile dan u ara waqfiet clang jekk yelling. jagħmlu loop. Allura issa huwa "dikjarazzjoni impliċita tal-funzjoni "GetInt" huwa invalidu C99. "X'inhi din? Yeah? UDJENZA: [inaudible]. DAVID J. Malan: Yeah. Allura issa li jien attwalment jużaw GetInt, din mhix xi ħaġa li biss jiġi ma C. Dan ġej minn CS50. Għalhekk għandna bżonn dan hawn. U let me jmorru lura għall-isfel fil-pront hawn u jerġa 'jsir jagħmlu. Okay, finalment. Issa aħna stajt solvuti li u l-iżball oħra. Let me issa run loop u tara x'jiġri. "Agħti me int." I ser tagħtiha 11. I ser tagħtiha -1. I ser tagħtiha foo. I ser tagħtiha 5. U issa tabilħaqq taħdem. Iżda l-pront mibdula għal raġuni hawn. Għaliex ma jgħidu retry waħda minn dawn iż-żminijiet, iżda tagħti me int l-oħra tliet darbiet? Għaliex huwa li l-imġiba differenti? UDJENZA: Taw dan string. DAVID J. Malan: Jiddispjacini? UDJENZA: You tatha string. DAVID J. Malan: Yeah. Allura aħna tatha string f'dan tielet tentattiv, meta I ittajpjat foo. Foo hija sekwenza. Huwa ovvjament mhux int. U l-mod li CS50 implimentat GetInt hija li aħna ma tivverifika xi ħaġa jekk inqas minn 0 jew akbar minn 10 għalik, għaliex kif nafu minn qabel liema tip ta ' int trid? Iżda nistgħu minimament jiċċekkja għalik, ma l-utent għall-inqas tip integer? U jekk dawn ma, aħna Yell fil-utent billi jittajpja "retry" fuq l-iskrin. Allura issa għandna programm li l-looping. Okay. Issa, liema minn dawn huwa tip tal-konstruzzjoni aħjar? Allura dan huwa fejn affarijiet tibda tikseb messy ftit, l- fatt li inti għandek tiftakar li tiddikjara varjabbli up here jekk inti tixtieq li tagħmel użu minnha ġewwa ta 'xi braces kaboċċi u barra. Iżda anke jekk dan jistenna ftit cryptic fl-ewwel t'għajn, biss għal darb'oħra, ftakar il-loġika sempliċi. Sabiex jużaw xejn C, jekk huwa funzjoni jew huwa varjabbli, ikollok biex jinkludih jekk huwa funzjoni f'xi librerija, jew għandek bżonn li tiddikjaraha. Imma issa inti jeħtieġ li tkun konxja żejda tal-fatt li int tiddikjara lilha fl-ambitu dritt. Int mhux tqegħid wisq sewwa ġewwa tal parentesi. So let me attwalment roll lura. Jekk immorru lura għall tagħna per eżempju mill-ewwel, u mmur lura għall-għall int, int i = 0; i <10; i + +, u jien do stilla printf, bħal dan, u mbagħad paren qrib, u issa printf i huwa issa - skond l-istess loġika, x'se jiġri meta nipprova li jiġbor dan il-programm? UDJENZA: identifikatur Invalid. DAVID J. Malan: Allura huwa ieħor identifikatur invalidi, mhux iddikjarat identifikatur. Issa, ir-raġuni l-ftit differenti. Hemm ovvjament l-ebda ċineg kaboċċi hawn, iżda l-istess idea, l-istess storja ta 'ambitu japplika. Jekk inti ddikjarajt varjabbli bħal i ġewwa ta ' għal loop, anki jekk int ma espliċitament bil-miktub l-kaboċċi ċingi, think minnhom mentalment bħala li għadhom jkunu hemm, li fih każ i huwa biss ġewwa validu tal-linja għall. M'huwiex validu ladarba inti tikseb l-linja li jmiss, li F'dan il-każ issa huwa 10. Allura biss ftit kwistjonijiet ta 'ambitu u simili. Kull dritt, xi mistoqsijiet? Kull dritt, hekk li dan huwa tip ta 'programm ftit trivjali, istampar biss stilla ftit. Imma ejja ara jekk inti tiftakar dan il-kanzunetta hawn. Din hija kanzunetta oerhört annoying-gidjien se nijet fuq il-bus iskola u simili. Imma x'hemm sbieħ dwar dan hija li dan ikollu din il ċikli, fejn huwa "99 fliexken tal-birra fuq il-ħajt, 99 fliexken tal-birra. Ħu waħda isfel, tgħaddiha madwar, 98 fliexken tal-birra fuq il- ħajt. "U allura l-kanzunetta jirrepeti l-97, imbagħad 96, imbagħad 95, imbagħad 94, it-triq kollha sa 0 jekk inti fil-fatt qbilna li ferm fuq ix-xarabank. Allura dan huwa programm sbieħ li sort ta timplimenta, għax tiegħi Alla, jekk inti tista 'biss jimplimentaw dan bi ftit linji ta 'kodiċi, inti tista' bżiq l-lirika kollu għal dan kanzunetta pjuttost malajr. Imma tul it-triq, nistgħu jibdew issa tease apparti xi ta 'dawn constructs looping bażiċi u issa wkoll jintroduċu funzjonijiet li aħna tikteb lilna nfusna, jirritornaw valuri li aħna jgħaddu madwar. Iżda l-ewwel, għaliex ma we jimxi 'l quddiem u tieħu tagħna ta' ħames minuti break hawn? U meta aħna nikseb lura, aħna se nijet dan kanzunetta. Kull dritt, hekk aħna lura. U meta ngħid aħna issa se nijet dan kanzunetta, I tfisser programmatically, mhux verbalment. Allura hawnhekk għandna beer1.c, li hija waħda implementazzjoni ta 'din kanzunetta partikolari. U biss li jkunu ċari, għal dawk familjari ma 'dak dan il-ħaġa tidher qiesha, let me imorru quddiem u jagħmlu beer1, Ikteb. Issa let me run beer1, u dak li aħna ser tara - kemm fliexken tal-birra se jkun hemm? I ser tip 99, bħall-kanzunetta jgħid. Ikteb. U issa jekk aħna iscroll permezz - Oops - jekk aħna iscroll kollha permezz ta 'dan, aħna ser tara li dan tabilħaqq tkanta l-kanzunetta kollu. Stenna minuta. Bar scroll My l-ftit messed up. Ejja jużaw il-tieqa akbar. Allura beer1, 99, hemm we go. Allura hawnhekk għandna l-kanzunetta kollu, kantata ħafna aktar mgħaġġla mill- kompjuter milli seta 'kien mill us. Allura avviż, għalkemm, in-natura ċiklika hawn. Hija tgħid 99, imbagħad 99, imbagħad "tieħu waħda isfel, tgħaddiha madwar, "imbagħad 98. U issa jirrepeti ġdid u għal darb'oħra. Allura dan huwa attwalment opportunità perfetta għal xi tip ta ' looping jinbena. Avviż li jien tip ta 'qtugħ kantuniera hawn. Avviż li jien qal "98 fliexken tal-birra fuq il-ħajt, 97 fliexken tal-birra fuq il-ħajt, "u li kien biss hekk li meta nikbru għal wieħed fliexken tal-birra, jien ma jkollhom ma joqogħdu jinkwetaw dwar il-grammatika Ingliża. Iżda nistgħu wkoll jiffissaw dan bi ftit ta 'jekk kondizzjoni, forsi. Jekk dan in-numru huwa singular, imorru quddiem u jgħidu "flixkun", inkella jekk huwa plural, jgħidu "fliexken". Iżda għal issa, jien kompletament tqattigħ li kantuniera. Mela ejja ara dak li konna ltqajna hawn. Allura konna ltqajna xi kummenti fil-quċċata. Jien inklużi dawn libreriji 2, kif konna komunement ġew. U issa let me iscroll sal-1 linji attwali ta 'kodiċi. Linja 17 kicks off prinċipali. Linja 21 u 20 għandha kemm fliexken tal-birra se jkun hemm? U mbagħad I call GetInt. U issa għandi daqsxejn ta 'verifika sanità. Allura dan huwa konvenzjoni li aħna ser issa tibda tadotta biex b'mod iktar rigoruż tiċċekkja input l-utent. Kultant inti biss ma jridux li twassalhom għal darb'oħra u għal darb'oħra u għal darb'oħra. Jekk l-utent viti up u ma tikkoperax, multa. Nieqaf u biss ma jittrattaw magħhom. U hekk dan huwa dak li qed nagħmel hawn. Jekk n huwa inqas minn 1, jien biss ser Yell fil-utent, "Jiddispjacini, li jagħmel ebda sens." U mbagħad jien ser arbitrarjament ritorn 1. Għalhekk għal darb'oħra, din hija biss konvenzjoni biex jidraw. Għal issa, teħodha fuq fidi. Imma sa issa, aħna dejjem kelli qed jirritornaw 0, għaliex konna qal li jirritornaw 0 ifisser, liema? UDJENZA: Suċċess. DAVID J. Malan: Suċċess, li kollox. Allura issa li aħna qed finalment jibdew jaħsbu dwar mhux suċċessi - fi kliem ieħor, il-każijiet kantuniera, kondizzjonijiet ta 'żball - Issa I jkollhom provvista infinita, jew għall-inqas 4000000000 affarijiet possibbli li jistgħu imorru ħażin fil-programmi tiegħi. U nista 'tibda tassenja magħhom numri individwali. Issa, ġeneralment huwa biżżejjed li biss jirritorna għajr 0 xi ħaġa. Allura aħna qed tmur biex sempliċement lura 1 għal issa. Iżda r-raġuni għar-ritorn 1 huwa li hekk kif inti tirritorna 1, raden dak li jiġri għall-bqija tal-programm? Huwa jwaqqaf. Li minnu. Allura l-fatt li jien lura 1 hija effettivament qasir circuiting esekuzzjoni dan il-programm sabiex xejn taħt il-linja 27 se jkompli jeżegwixxi. Hekk kif prospetti prinċipali, li huwa. Kull dritt, hekk jekk l-utent ma jikkopera u nilħqu linja 30 minħabba li ittajpjat fil-numru leġittimu, hawnhekk huwa tiegħi implimentazzjoni ta 'dan il-kanzunetta. So I ewwel jistampa karattru newline, biss għall- estetika. I issa għandhom biex loop. U l-avviż qed nagħmel l-affarijiet fi ftit ta 'direzzjoni differenti. I ma jkollhom jagħmlu inqas minn, jien ma jkollhom jagħmlu + +. Nista 'ngħid minflok initialize varjabbli i, huwa stabbilit ugwali għal n, in-numru l-utent ittajpjat fil, allura jagħmel dan li ġej, hekk Sakemm i huwa akbar minn 0, allura i - ladarba inti stajt lest iterazzjoni waħda ta 'dan loop. Allura aħna jista 'joqgħod isfel bl-użu ta' għal loop ukoll. Issa, dan huwa il-ġimgħa pjuttost 1 Jittieħed issa, ma printf. Allura print "fliexken% d tal-birra fuq il-ħajt." Stampa d% " fliexken tal-birra. "" Ħu 1 isfel, tgħaddiha madwar. "Stampa "% Fliexken tal-birra d fuq il-ħajt." Allura huwa għadu d%, imma tinnota li l-argument li printf qed tinbidel. Wara l-virgola, għandi i, għaliex nixtieq ngħid 99. Wara dan comma, għandi i, għaliex nixtieq ngħid 99. Wara dan comma, għandi i - 1, għaliex nixtieq ngħid 98 fl dan ewwel iterazzjoni, u oħrajn. U issa stabbiliti hawn, I biss ikollhom xi kumment ftit stupid. U mbagħad linja 42, I-ritorn 0 b'konvenzjoni, li jfisser li kollox huwa okay. Allura dak li jekk jien goofed? Liema jista 'żball komuni hawn jkun? Ukoll, jekk dak I aċċidentalment qal ukoll, I do jridu għadd isfel għal 0, nixtieq 0 fliexken tal-birra fuq il-ħajt? So I say, i huwa akbar minn jew ugwali għal 0. X'qed jiġri li jkun il-sintomu li I issa tara jekk I recompile beer1 u run? UDJENZA: negattiva. DAVID J. Malan: Yeah, huwa gonna go negattiv. Dan huwa żball off mill-wieħed, oerhört żball komuni tagħmel. Ejja fil-fatt imorru lura għall-tieqa terminal u tagħmel dan hawn, hekk nistgħu naraw aktar fi żmien. Daħħal, 99 fliexken tal-birra. Agħlaq, imma aħna marru dejjem hekk ftit wisq. Aħna kanta l-kanzunetta wisq isfel, tali li aħna issa laqat il- negattiv numru. Għalhekk ma pjuttost xogħol. Kull dritt, sabiex inkunu nistgħu faċilment jistabbilixxu li billi tmur lura għall- mod kif kienet darba. Imma liema huma xi opportunitajiet issa għal titjib? Well, let me miftuħa beer2.c u iscroll isfel hawn u tagħti ħarsa lejn din il-verżjoni. X'hemm-ewwel ħaġa li jumps fil inti bħala differenti f'dan il-verżjoni hawn? UDJENZA: [inaudible]. DAVID J. Malan: Yeah, sabiex l-ebda aktar i, minħabba li ġara me inti taf liema, jien titlob lill-utent għal n, u allura jien iffissar i ugwali għal n, u mbagħad jien jinbidlu i, imma jien qatt ma jmissu n-ġdid. Allura dak l-Heck kien il-punt ta 'inti-allokazzjoni ieħor 32 bits imsejħa i biss sabiex I jista 'jkollhom varjabbli differenti? Allura f'dan il-każ, I tip ta 'irrikonoxxa li mhux meħtieġa karatteristika tad-disinn. U jien issa se ngħid filwaqt n hija akbar minn 0, mur quddiem u jistampaw il-kanzunetta istess, jgħaddu n għall printf bħala l- tieni argument, u n - 1 hekk kif it-tieni argument stabbiliti hawn. U mbagħad fuq kull iterazzjoni ta 'dan loop, imorru quddiem u biss decrement n innifsu. Issa, funzjonalment, dan il-programm se tkun identika. Jekk I tip 99, n jibda fil 99. I decrement, decrement, decrement, decrement. Jien ser tikseb it-triq kollha sa "Waħda flixkun tal-birra fuq il-ħajt, wieħed flixkun tal-birra. Ħu waħda isfel, tgħaddiha madwar. 0 fliexken tal-birra fuq il-ħajt. "Il-end, minħabba I ma jiksbu l-kundizzjoni korretta. Huwa akbar minn 0. I ma tagħmel dan l-iżball. Allura li hija aħjar, verżjoni waħda jew verżjoni 2? So I smajt mazz ta 'murmurings għal tnejn. Għaliex tnejn? X'hemm li? UDJENZA: [inaudible]. DAVID J. Malan: Oh, okay. Għalhekk mhux se jmorru taħt iż-0, iżda tiftakar, fil-verżjoni waħda, l- verżjoni korretta oriġinali ma tmurx taħt iż-0 lanqas. Mela ftakar li dan huwa l-verżjoni korretta. Mela ejja s-inqas jqabblu l-żewġ verżjonijiet korretta. X'hemm argument favur verżjoni 2 benessri, MMM, aħjar? Yeah? UDJENZA: Hija tuża l-ispazju inqas. DAVID J. Malan: Okay, hekk dan juża l-ispazju inqas, id-dritt? Billi verżjoni waħda użata 32 bits għal n, u mbagħad ieħor 32 bits għal i. Verżjoni 2 biss użi 32 bits għal n, sabiex jidher li jkun plus. Ħsibijiet oħra? Hawn xi ħadd tixtieq li jargumentaw favur wieħed? Yeah? UDJENZA: Inti għandek tuża linja żejda ta 'kodiċi għal n -. DAVID J. Malan: Okay, żgur. Allura li huwa ġust. Allura dan biss, għall-inqas lili - I mean, dan fil-fatt iħoss Messier ftit, il-fatt li I ma jistgħux sort ta jirrappreżentaw kollha ta 'loġika tiegħi f'wieħed linja sbieħ, il-linja għal, bħala l-linja ta 'bott. Hawnhekk, I tip ta 'jkollha tindi fuq dan n - fl-aħħar tal-linja, għax huwa loġikament meħtieġa. Iżda tip ta rubs me-mod żbaljat, sempliċement minħabba li jidher separat mill-loġika ta 'l hawn, minkejja li, għal darb'oħra, huwa neċessarju. Ħsibijiet oħra? Yeah? UDJENZA: [inaudible]. DAVID J. Malan: Yeah. Allura dak li jekk inti minflok, fl-aħħar tal-kanzunetta, riedu jistampa mill-ġdid l-isem tal-kanzunetta? Bħal "Grazzi għall-logħob 99 fliexken tal-birra", jew xi ħaġa iblah bħal dik? Iżda l-punt huwa, int riedu aċċess għall-valur oriġinali. Il-fatt li inti stajt għaddew minn mutazzjoni jew mibdula n fuq kull iterazzjoni u għalhekk meqruda valur oriġinali tiegħu ifisser li inti biss ma tistax tagħmel dan fl-aħħar. Issa, forsi, aħna kjarament ma trid tagħmel li f'dan il-programm. Allura quién? Imma dak li ħafna punt validu. U biex ikunu onesti, hemm verament ebda waħda dritt risposta hawn. Huma qed kemm ugwalment korretti. I tista 'tiġi konvinta jew mod. Jien se ngħid li, b'mod ġenerali, huwa prinċipju tajba jekk inti talab lill-utent għal xi valur u inti maħżuna varjabbli bħall n, biss tip ta 'fuq il-prinċipju, huwa probabbilment tajjeb li jżomm li madwar. U xi informazzjoni li inti tixtieq li jgħaddu minn mutazzjoni għal darb'oħra u għal darb'oħra, biss tagħti lilek innifsek kopja ta 'dak il-varjabbli, biss sabiex inti jkollhom aċċess għall-oriġinali. Inti huma l-infiq 32 bits aktar, iżda r-realtà hija din kompjuter, bħal, 2 gigabytes ta 'RAM dawn il-jiem, u aħna qed quibbling aktar minn 32 bits? Verament mhux tali big deal. U anke fuq dan il-mezz hawn, ma 'nofs GIG jew gigabyte ta 'RAM, 32 bit versus 64 bits, mhux tali big deal. Ċertament illum, li għaddej biex tkun mod megħlub mill-daqs tal-programm innifsu, li se tkun diversi mijiet kilobytes, jekk mhux megabytes ftit, dawn il-jiem. Tħassib Allura raġonevoli, ebda waħda risposta dritt. Imma l-anqas dawk huma l-ħsibijiet li għandhom jibdew jgħaddu moħħok? Minħabba fil pset 0, anke jekk aħna verament biss mistennija korrettezza, jew għall-inqas jiċħad bugs varji li inti jista 'jkollok ltaqgħu magħhom, kif aħna nimxu' l quddiem hu d-disinn, se tkun aspett ieħor importanti, kemm tal-kitba kodiċi u wkoll tagħna evalwazzjoni kodiċi. U dan bl-inqas jagħtu maħsub li affarijiet bħal dan. U biss minħabba xogħlijiet xi ħaġa ma jfissirx li huwa tajjeb, ma jfissirx li huwa mfassla tajjeb. U dan huwa wieħed mill-affarijiet l-inkarigati mir-tagħlim u settijiet problema se tgħinna tease part matul iż-żmien. Ukoll, dak dwar, ejja ngħidu, din il-verżjoni hawn? Let me jagħmlu xi ħaġa ftit sexy hawn fil-mument. Ewwel let me teħles minn dan. U issa ejja tiffissa din il-kwistjoni grammatikali. Allura f'dan il-verżjoni, nixtieq li jiffissaw il-grammatika sabiex, aktar milli biss jgħidu i parenthetical, bħal "flixkun" jew "fliexken" - Ma rridx li tnaqqas dak kantuniera - Nixtieq ukoll li dinamikament jistampa l-kelma "fliexken" jew "flixkun", waqt li tuża placeholders dawn% s illum. So I bżonn biex kundizzjonalment jiċċekkjaw liema huwa l-valur ta 'i. U jekk huwa 1, nixtieq ngħid "flixkun", u jekk xejn huwa inkella, nixtieq ngħid "fliexken". Mela ejja jipprova jagħmel dan. Mela jekk i == 1, allura let me imorru quddiem u tiddikjara - I ħtieġa string, so let me do s1 spag, għaliex dan huwa l- string ewwel I kura dwar id-dritt issa. Jien se ngħid "flixkun". U mbagħad, ejja ara, spag s2 - u jien ser jispjegaw fejn jien ser fil-mument - "Fliexken." Allura jfakkru li, f'din il-kanzunetta, għandna bżonn li jkunu kapaċi li jistampaw affarijiet, żewġ kelmiet differenti potenzjalment. Mela jekk inħarsu lura hawn, tinnota li meta nikbru biex dan l-eżempju hawn, "żewġ fliexken tal-birra fuq il-ħajt, żewġ fliexken tal-birra, tieħu waħda isfel, tgħaddiha madwar ", nixtieq din il-linja 4 sa issa ngħid "1 flixkun tal-birra fuq il- ħajt ". So I bżonn biex tiddeċiedi, ma nixtieq ngħid" fliexken "jew "Flixkun"? Allura jien ser ngħid b'mod arbitrarju, id-dritt, Jien ser issa tiddikjara varjabbli imsejjaħ s1, spag waħda, li għaddej biex tikseb pplaggjat fil hawn u wkoll hawnhekk, għaliex dawn il-kliem huma dejjem identiċi, biss minħabba l- natura tal-kanzunetta. U jien ser sejħa s2 kwalunkwe kelma nixtieq eventwalment jidhru stabbiliti hawn. Issa, litteralment, 99 darbiet minn 100, li għaddej biex tkun l- istess fiż-żewġ ta 'dawn il-każijiet, għax 3 huwa plural, 2 huwa plural, 4 huwa plural. Iżda f'dan il-każ kantuniera, fejn irridu jiksbu għal 2 u mbagħad 1, jew anki 1 u mbagħad 0, I bżonn din il-loġika. So I jkollu jonfoq xi żmien fil-kodiċi tiegħi jkollna dan id-dritt. Mela jekk jien tagħmel dan, jekk i == 1, imbagħad s1 stabbiliti ugwali għal "flixkun" u s2 ugwali għal "fliexken", għaliex dan se jkun għal 1 flixkun, u dan se jkun għal 0 fliexken. U dan hawn, dak ma dan jirrappreżenta? Just biex ikunu ċari. Dan huwa biss kumment. Allura l-fatt li inti jista 'jkollhom waħda linja kummenti ifisser li inti jistgħu jikkummentaw kodiċi tiegħek bħal dan, iżda ieħor komuni paradigma, ukoll, hija li jekk inti għandek frażi super-qasir li inti tixtieq li tqiegħed lilek innifsek u huwa biss aktar tinqara biex dan id-dritt fl-aħħar tal-linja ta 'kodiċi, inti tista' assolutament tagħmel xi ħaġa bħal din. Allura issa dak li jekk nagħmel dan? Else jekk i ma tkunx ugwali għal 1. Allura bang ugwali - punt exclamation huwa magħruf bħala "bang". Allura bang = 1. Mela jekk i ma tkunx ugwali għal 1, x'għandi nagħmel minflok trid tagħmel? Ukoll, l-ewwel kelma nixtieq li jkun dak li? Allura string 1 għandu jkun "fliexken" għall-fliexken plural, u allura dan se jkun "fliexken" plural kif ukoll, għal issa. U aħna ser tara jekk din attwalment gets ahna fejn irridu imorru. Allura issa jekk jien iscroll stabbiliti hawn, avviż li jien fejn jitwaħħal fil mhux biss i, imma s1. Jien fejn jitwaħħal fl-i u s1. U mbagħad stabbiliti hawn, jien minus 1, li hija l-istess bħal qabel, iżda. s2 Fi kliem ieħor, I jridu li l-kelma Ingliża għall-bidla li hi bbażata fuq din il-loġika. Issa, hemm diġà xi problemi f'dan il-kodiċi. X'inhu maqsuma diġà barra tal-bieb hawn? Yeah? UDJENZA: [inaudible]. DAVID J. Malan: Eżattament. Allura stajt diġà kisru l-lezzjoni ta 'ambitu. Allura stajt iddikjarat s1 u s2, imma jien ghamilt dan ġewwa tal ċineg kaboċċi, li jfisser yeah, dan il-kodiċi se taħdem up sakemm linja 42, iżda hekk kif I hit-linja 43, raden liema l-ebda jkunx għadu jeżisti? Ukoll, raden x'hemm m'għadhomx fl-iskop - la s1 jew s2. Allura aħna għandna biex jiffissaw dan. So let me tħassar id-dikjarazzjonijiet. U jien ser iħallu l-ismijiet varjabbli u ħassar dan hawn u ħassar dan hawn. U f'liema linji għandhom I really niddikjara dawn l-affarijiet? UDJENZA: [inaudible]. DAVID J. Malan: Yeah, hekk probabbilment dritt up hawn, 33-ish. Allura s1 spag u mbagħad string s2. U jirriżulta, I tista 'tagħmel dan. Jekk int tiddikjara żewġ varjabbli ta 'l-istess tip, inti tista 'attwalment biss użu virgola u tagħmel dan fi C. Kollha dritt, hekk issa għandi żewġ varjabbli - s1 u s2. Jien assenjat lilhom valuri f'dawn kondizzjonijiet hawn, jew fil hawn. U mbagħad jien jużaw them down hawn taħt. Kif ukoll dan huwa issa sejjer jaħdem? Ukoll, huwa għadu Buggy ftit, imma ejja mill-inqas tara kemm aħna ħadthom gotten. So let me go quddiem u jagħmlu beer3. Huwa dan beer3? Yep, dan huwa beer3. U issa let me imorru quddiem u run beer3. 399 99. Nistgħu probabbilment skip ħafna minnhom. U stabbiliti hawn, tħares lejn dak. "Waħda flixkun tal-birra fuq il-ħajt, wieħed flixkun tal-birra, jieħdu 1 isfel, tgħaddiha madwar, 0 fliexken tal-birra fuq il-ħajt. " Imma jien tiġbed l-attenzjoni tiegħek għal biss nofs tas-soluzzjoni. Tip ta 'invitat up here. Għalhekk jidher li l-każijiet kantuniera jinqalgħu meta i ugwali liema żewġ valuri? UDJENZA: 2, 1. DAVID J. Malan: 2 u 1. Mhuwiex 1 u mhux 1. Huwa tassew biss dawn l-aħħar żewġ dramm ta 'dan il-kanzunetta. Mela xi do I minflok trid tagħmel? So I jidhru li qabdu l-każ fejn jekk i hija == għal 1, allura l-ewwel kelma hija "flixkun", iżda l-kelma 2 huwa "fliexken". Iżda hawnhekk, nixtieq li tibdel dan ikun == 2. U jekk dan huwa l-każ, dak li nixtieq l- ewwel kelma li tkun? UDJENZA: "Fliexken". DAVID J. Malan: "Fliexken", hekk għal żewġ fliexken. U allura din il-kelma hawnhekk għandhom ikunu - UDJENZA: "Flixkun". DAVID J. Malan: "Flixkun", singular. Kull dritt, ejja zoom out, mur lura hawn fuq, mill-ġdid run jagħmlu, -ripetizzjoni beer3, tip 99 darb'oħra. Okay, "Segmentazzjoni tort (qalba mormi)." What jiena jsir ħażin? UDJENZA: Inti ma jkollhom valur [inaudible]. DAVID J. Malan: Ah, punt eċċellenti. Kull dritt, hekk x'hemm ħażin hawn? Allura tort segmentazzjoni, u aħna qed attwalment għaddejjin biex tara dan pjuttost ftit drabi fil-futur, deliberatament. Iżda għal issa, dak ma dan fil-fatt jfisser? A tort segmentazzjoni kważi dejjem ifisser li inti għandek b'xi ppruvat taċċessa, memorja RAM fil-kompjuter tiegħek, li inti ma stess, li inti ma attwalment staqsa lill- sistema operattiva għal. Allura f'dan il-każ, l-avviż dak li jien ghamilt, li huwa difettuż fil-loġika tiegħi. Għandi assenjati s1 u s2 valur jekk i huwa ugwali għal 1. Stajt ukoll isir li jekk i ugwali 2. Imma jien ma sar fin-numru infinit ta 'oħrajn possibbiltajiet - b'mod partikolari, 3 jew 4 jew dot, dot, dot, 99. Allura wieħed jiffissaw għal dan jista 'jkun biss ejja ikollhom kundizzjoni ieħor. U let me go fil hawn u ngħid s1 ugwali - liema għandu jkun hawn? UDJENZA: [inaudible]. DAVID J. Malan: "Fliexken", minħabba li fil-każ komuni, huwa biss l-istess ħaġa. Allura ugwali, kwotazzjoni unquote, "fliexken." Allura għal plural fliexken, u mbagħad up hawn, għall-fliexken plural. Okay, hekk issa let me jmorru lura għall-tieqa terminal tiegħi, recompile, ri-run. 99. Whew. U ejja tagħmel verifika sanità malajr. Teknikament, aħna'd tixtieq li taqra kollha ta 'dawn biex tiżgura dawn qed korretti, imma ejja nħarsu lejn inqas l-ħatja magħrufa. 3 fliexken, 2 fliexken, 2 fliexken, 1 flixkun, flixkun 1, 0 fliexken. Aħna jidhru li għall-inqas iffissat għal issa. Iżda l-qabda hawnhekk hija li dak mess god orribbli li dan huwa biss biex issolvi stupid one-karattru grammatikali dettall. Allura hemm tip ta 'raġuni li I cut dan kantuniera qabel, għaliex dan huwa biss kompletament annoying li jkollhom biex jikteb dan il-kodiċi ħafna. Iżda jirriżulta li hemm modi ftit aktar eleganti ta ' jesprimi l-istess ħaġa eżatt. U nistgħu nagħmlu dan kif ġej. Let me leave dan fuq l-iskrin għal mument u jintroduċu xi ħaġa magħrufa bħala operatur tenarji. Dan huwa tip ta 'one-liner li jinsab biss maħsub biex jagħmlu tagħna jgħix sexier ftit, kif imwiegħed. U jien ser tagħmel dan kif ġej. Agħti me string imsejjaħ s1, u let me tassenja dan kif ġej. (I == 1)? "Flixkun", inkella "fliexken". String s2 gets (i == 2)? "Flixkun", inkella "fliexken". Allura x'inhi allura huwa d-differenza hawn? Dawn iż-żewġ linji ta 'kodiċi, I jargumentaw, jista tissostitwixxi dan mess kollu. So I sejħa hija mess, sempliċement minħabba li tip ta 'rubs lili il- mod żbaljat li huwa linji tant ta 'kodiċi. Mhux ħażin. Mhuwiex disinn ħażin. Bħal, dan huwa perfettament korrett u perfettament multa. Iżda kodifikazzjoni gets tedious jekk ikollok li tesprimi lilek innifsek sabiex kkritikat b'mod speċifiku għal darb'oħra u għal darb'oħra u għal darb'oħra ma 'sempliċi Xenarju bħal dan. Allura C għandha xi shortcuts, bħal dan. Allura dan essenzjalment huwa qal jiddikjara string imsejjaħ s1 u tassenja dan jew dan il-valur jew dan il-valur jekk i huwa == - sorry, I għandha tgħid dan b'mod aktar ċar. Tiddikjara a s1 varjabbli, tassenja dan il-valur, jekk dan huwa veru. Inkella, tassenja dan il-valur. Allura fi kliem ieħor, dan huwa tip ta 'mod wieħed linja ta' qal jekk inkella iżda jagħmlu l-assenjazzjoni tul it-triq. Mela jekk i huwa 1, imbagħad imorru quddiem u sejħa dan "flixkun". U allura din inkella, sejħa hija "fliexken". Sadanittant, s2, il- tieni kelma li għandna bżonn biex jiddefinixxu, jekk i ugwali 2, aħna ser stabbiliti s2 għal "flixkun". Inkella, tistabbilixxi li "fliexken". U liema dan ifisser issa huwa I tista 'tmur permezz ta' dan u ħassar kollha ta ' dawk il-linji ta 'kodiċi. U meta ngħid, xi ftit ridiculously, li issa din hija sexier, huwa sexier fil-tip ta 'sens stilistiċi. Il-fatt li funzjonalment, dan il-kodiċi huwa attwalment għaddejjin biex jagħmlu l-istess ħaġa eżatt. U anki jekk jista 'tfittex ftit cryptic fl-ewwel t'għajn, għaliex aħna stajt ma rajt dan tibni qabel, I d jargumentaw li huwa finalment se tkun daqstant aktar tinqara u għalhekk ħafna aktar faċli għall aħna bnedmin li tip ta ' jifhmu, għaliex issa inti tista 'biss taqra l- kodiċi kollha fuq linja waħda. Huwa għadu simili fl-ispirtu għal l-jekk, meta dan ikun kundizzjoni u allura dan huwa x'hemm ġewwa l-jekk u dan huwa x'hemm ġewwa l-ieħor. Iżda nistgħu nagħmlu dan biss ħafna aktar elegantly. U jekk I issa mur lura għall-terminal tiegħi, wara li titħassar kull ta 'dawk il-linji u sostitwiti bl biss dawn iż-żewġ, recompile, ri-run fliexken tal-birra ma '99, avviż li tiegħi grammatika hija, fil-fatt, xorta korretta. Għalhekk għal darb'oħra, xi ħaġa biex tibda. 2 fliexken tal-birra, 1 flixkun tal-birra. Jistenna dritt. Yeah. Allura hemm għandna soluzzjoni konċiża ħafna aktar. Allura dan, wisq, kif ikollok aktar komda ma 'C, mhux neċessarjament ma 'l-pset ewwel jew saħansitra tieni, iżda jirrealizzaw li dawn constructs jistgħu jippermettu magħna biex tagħmel affarijiet li qatt aktar elegantly. Issa ejja tagħmel ħaġa waħda oħra hawn. Let me imorru quddiem u tiftaħ return1.c. Issa ejja nibdew biex isolvu problema oħra b'mod li jippermetti li jikteb il-kodiċi aktar sofistikati. Allura hawnhekk programm ftit sempliċi li l-għan fil-ħajja huwa li inkrement valuri. U fil-fatt, ejja jieħu pass lura. Let me tagħmel dan manwalment. Let me do jinkludu u int prinċipali (vojt). U let me sejħa dan increment.c. U dak li nixtieq do? Jien ser jimxi 'l quddiem u ngħid xi ħaġa simili - se nitolbu-numri l-istess - x int. Allura x int gets 2; x printf hija% d, linja ġdida, x. Allura jien ittajpjar malajr, iżda tip ta 'għalf familjari issa. Imbagħad jien ser tagħmel x + +. Imbagħad jien ser jistampaw din is-sentenza istess mill-ġdid. U mbagħad jien ser jirritorna 0 biss biex nieqaf-programm. Kull dritt, hekk li dan huwa programm li inkrementi numru. Huwa 1 ser initialize xi ħaġa għal 2, u allura huwa se inkrement dan u jistampaw mill-ġdid. Mela ejja jimxu inkrement, programm oerhört sempliċi. Imma ejja ngħidu issa li nixtieq li kubu il-valur, sabiex jagħmlu kemmxejn arbitrarja xi ħaġa. U jien fil-fatt tixtieq li tagħmel x gets-kubu ta 'dan. So I jistgħu jużaw dak li jissejjaħ il-funzjoni Pow, imma jien ma verament jafu fejn dan ikun għadu. Allura jien ser jagħmlu dan il-mod ta 'dari. x drabi din hija ugwali għal x drabi x-ħinijiet x. Allura jien cubing il-valur, multiplikat bl nnifisha mill-ġdid u għal darb'oħra u għal darb'oħra, sabiex inkunu jiksbu l-poter tat-3 f'dan il-każ. Allura issa n-numri I għandhom jistampaw għandhom ikunu, kif Ser naraw hawn - jagħmlu inkrement, dan huwa attwalment mhux verament inkrement aktar, iżda aħna ser tħalli l-isem biss - 2 u mbagħad 8. Issa, aħna għandna l-bidu ta 'opportunità għall-irfinar hawn, fejn dan il-ħaġa cubing ta multiplikazzjoni numru minnu stess waħedha minnu stess iħoss bħal dan jista 'jkun biss utli li jkollhom bħala funzjoni, iddeċieda xi ħadd ferm simili snin ilu - taf, it-tip ta utli jekk wieħed minna tiltaqa stabbiliti u jikteb printf sabiex il-bqija tad-dinja tista 'tagħmel użu minnha, għaliex ma we joqogħdu bilqegħda u jiktbu funzjoni msejħa kubu li ma dan cubing għalina hekk aħna ma jkollhomx għalfejn manwalment timplimenta l-kunċett ta 'cubing valuri hawn? Allura eżempju sempliċi, imma ejja imorru quddiem u l-użu dan huwa bħala opportunità li jiktbu funzjoni tagħna stess. Allura s'issa, konna biss użati prinċipali, u konna użati b'mod ieħor funzjonijiet tan-nies, iżda aħna ma miktub tagħna stess. Allura here we go. Jien ser jimxi 'l quddiem u jiktbu funzjoni msejħa kubu. U jien se jkollhom dan jieħu input. Allura input tagħha se tkun numru sħiħ. U dak hu li se jagħmlu? Huwa ser tiddikjara output int = input ħinijiet input ħinijiet input. U allura huwa se jirritorna l-output. U mbagħad I għandhom ikunu speċifiċi issa. Din il-funzjoni se terġa 'lura int. Allura hawnhekk allura huwa kif youd tikteb funzjonijiet tiegħek. Inti l-ewwel tiddeċiedi x'inhu l-isem tal tiegħek funzjoni se tkun. U ġeneralment, xi ħaġa ta 'spjegazzjoni hija tajba, so I ser sejħa hija kubu. Imbagħad għandek tispeċifika dak li għaddej biex jirritornaw, x'hemm produzzjoni tagħha se tkun. U aħna ma jkollhom għażliet li ħafna għadhom. Int, char, float, bool, sekwenza. Għal issa, jien ser twaħħal ma 'int, minħabba I jriduhom li jirritorna numru sħiħ. Imbagħad għandek tispeċifika liema inputs tiegħu, jekk ikun hemm, ikunu. U jekk kubu jieħu l-argument, jieħu xi ħaġa bejn parentesi, inti għandek tagħti dan l-argument isem b'tali mod li inti tista 'sejħa hija xi ħaġa int implimentazzjoni jew bil-miktub din il-funzjoni, u inti għandek tagħtiha tip, li f'dan il- każ se tkun int. Allura fil-qosor, kubu huwa funzjoni li jieħu numru sħiħ bħala input u l-prospetti ta 'numru sħiħ bħala output. Allura dak li ma tagħmel ma 'dak l-input? Ukoll, f'konformità 14, niddikjara output varjabbli imsejħa, u jien tassenja din il-valur, il-ħinijiet input input ħinijiet input. U mbagħad I ritorn output. Allura kif nista jużaw dan allura? What do I jibdlu dawn il-karattri enfasizzati fuq il-linja 7 li, do you think? UDJENZA: [inaudible]. DAVID J. Malan: Yeah, hekk kubu ta 'x. Allura x hija varjabbli, li jfisser li żżomm xi valur. Fortunatament, huwa ta 'numru sħiħ tip. U minħabba x hija int, li jfisser nista 'għaddih fil kubu. U anki jekk jien prevalenti l-valur ta 'x bil-valur ta 'x kubi, kif kien il-każ s'issa, kull meta tagħmel jkollhom sinjal ugwali u linja ta 'kodiċi, l-għalf fuq il-lemin gets esegwita u mbagħad gets assenjati lill- valur fuq ix-xellug. Allura l-ordni ta 'operazzjonijiet huwa kif aħna nittamaw. Allura ma dan ix-xogħol? Well, let me jinżlu hawn. Let me tiftaħ tieqa terminal tiegħi. Let me do jagħmlu inkrement, Ikteb. "Dikjarazzjoni impliċiti ta 'kubu" funzjoni huwa invalidu C99. "Bħala twarrib, C99 jirreferi għall-C-lingwa kif kien definit fl-1999, li kienet aġġornament fuq il-verżjoni minn 1989, li huwa aġġornament fuq l-oriġinali. Allura dak kollu li tfisser. Allura dak ma jfisser li "dikjarazzjoni impliċita ta ' "kubu" funzjoni huwa invalidu? "Huwa dritt hawn. Huwa hemm dritt fil-linja 12. UDJENZA: [inaudible]. DAVID J. Malan: X'hemm li? UDJENZA: Mhuwiex qabel. DAVID J. Malan: Mhuwiex qabel. Allura dan huwa l-ħaġa. C huwa tip ta 'stupid, jew kompilaturi Ċ huma tip ta' stupid. Huma verament biss tagħmel dak li jgħidulhom li jagħmlu. U huma, b'mod partikolari, biss aqra top kodiċi tiegħek għal isfel, xellug għal-lemin. Allura jekk il-kumpilatur, clang, huwa qari kodiċi tiegħek, linja 1, ċifri kif għandek tagħmel dan. Oh, hawn taqa prinċipali. Okay, let me imorru quddiem u tiddikjara x varjabbli. Let me jistampaw xi ħaġa. Linja 7, dak l-Heck huwa kubu? Mhuwiex iddikjarat stdio.h. Hija ma jiġu mal C. Għandi l-ebda idea x'għandek tagħmel. U hekk clang biss bails u quits ma dak il-messaġġ ta 'żball. Allura nistgħu jiffissaw dan fi ftit ta 'modi. Nistgħu jgħallmu clang dak kubu huwa billi sempliċiment jiċċaqalqu fejn il- dikjarazzjoni. So I maqtugħa u pasted hija atop prinċipali. Issa tirrealizza li sempliċiment għaliex prinċipali m'għadux l-ewwel, huwa xorta esegwiti mill-kontumaċja. Main hija ewlieni. Hu l-isem funzjoni default. Ma jimpurtax fejn fil-fajl. Imma l-anqas issa clang rat kubu qabel I użu. Mela ejja ara jekk clang huwa kuntenti issa. Għamla inkrement, hija ma tiġbor dan iż-żmien. Let me run inkrement. U fil-fatt, jidher li tkun qed taħdem. Issa, inti tista 'toħroġ bi xenarji eventwalment fejn mhuwiex fattibbli li tqiegħed kull funzjoni hawn fuq kull funzjoni oħra. Int ser jeħlu f'dan loop infinita fir-realtà, fejn dan Guy jixtieq li jkun hawn imma dan Guy jeħtieġ li jkun hemm. Allura li ma dejjem xogħol. Allura Thankfully, C tkun soluzzjoni aktar eleganti. Jien ser tpoġġi din lura fejn kien, biss minħabba I jippreferu, bħala kwistjoni ta 'prinċipju, li ewlieni dejjem ikunu fil-quċċata, għaliex huwa biss sbieħ biex tara dak li dan il-programm ma b'mankanza. U dak li jien ser tagħmel up hawnhekk huwa jiddikjara dak li sejjaħ prototip. Jien ser terġa 'tiddikjara funzjoni kubu tiegħi mill litteralment ikkupjar u pasta. Attwalment, li mhux litteralment. Allura litteralment ikkupjar u pasta linja 15 up fuq linja 6. Ma jimpurtax liema linja dan jispiċċa fuq. Dan jiġri li jkun fuq il-linja 4. Iżda dan ma għandhom ikunu qabel prinċipali. Iżda avviż-differenza. Linja 4 truf bil-punto virgola, li jfisser ħej, Clang, tieħu kelma tiegħi għaliha li teżisti funzjoni imsejħa kubu li jieħu int u jirritorna int. Imma jien ma gonna jgħidlek dak li hu għadu. Biss jafu li I wegħda li jgħidlek eventwalment. U fil-fatt, issa huwa okay li dan huwa stabbiliti hawn taħt. Allura dan huwa ġeneralment aħjar, għaliex imbagħad fil-quċċata tal- fajl tiegħek, inti tista 'sempliċement Rattle off, rapidu-nar, linja waħda kull wieħed, dak li l-ismijiet ta 'funzjonijiet tiegħek huma, liema tagħhom inputs huma, liema riżultati tagħhom huma. U biex ikunu aktar ċari, input ġeneralment tfisser argument jew parametru, sinonimi. Output ifisser il-valur tar-ritorn, dak ma idejn lura lili. Allura f'dan il-każ hawnhekk, kubi ġiet iddikjarata fil-quċċata, iżda definiti, magħrufa wkoll bħala implimentati, fil-qiegħ. Allura issa ejja mmorru lura hawn u jerġa 'jsir dan. Allura issa let me go quddiem u jerġa 'jsir jagħmlu, jerġa' jsir inkrement. U issa jidher li qed jaħdem biss multa. Allura issa nistgħu jimxi 'l quddiem u fattur barra xi ħaġa bħall- birra eżempju fis din il-verżjoni 4. So let me iscroll hawn. U avviż li jien tip ta 'ħa din il-lezzjoni lill-qalb heure. Il-fatt li I kien kant stanza istess mill-ġdid u ġdid u għal darb'oħra, il-linja kor istess fil-kanzunetta, feltru simili għaliex ma I fattur li minn ġo funzjoni? U fil-fatt, dan għandu jkun wieħed mill-motivazzjonijiet. Minbarra l-fatt li xi ħadd ieħor fid-dinja tista 'tixtieq li tuża l-funzjoni kubu - li l-raġuni tajba għall-fattur xi ħaġa u jiktbu tiegħek funzjoni custom stess - jekk hemm blokki ta 'kodiċi fil-programm tiegħek li biss jagħmel sens kunċettwali, li inti tip ta 'tixtieq li tagħtiha isem - bħal f'dan il-każ, kor - allura inti tista 'bl-istess mod jikteb dik bħala funzjoni separata. Inti ma għandekx li tikteb kollox prinċipali jekk hija biss iħoss aktar nodfa li tissepara dan jitwettaq u tagħtiha isem. Allura f'dan il-każ hawnhekk, avviż li għandi kumment atop din il-funzjoni li biss sings dwar il- numri speċifiċi ta 'fliexken. Avviż hawnhekk li jien ma bżonn tirrikorri dawn affarijiet input u output. Fil-fatt, din id-darba I biss imsejħa b input tiegħi għall-flixkun. U l-avviż hawn, null jissuġġerixxi liema? Dan kor - UDJENZA: Ma lura. DAVID J. Malan: Ma jerġax lura għal valur. U fil-fatt, il-funzjonijiet ma jkollhomx għalfejn jirritornaw valuri. Huma biss tista 'tagħmel xi ħaġa. Huma jista 'jkollhom liema huma msejħa effetti sekondarji, li f'dan il- każ huwa biss mazz sħiħ ta 'l-istampar fuq l-iskrin. Allura avviż li dan il-kodiċi hawn, I litteralment biss seraq minn ta 'qabel eżempju. L-unika differenza hija minflok tintuża i kif tiegħi varjabbli, jien issa jużaw b bħala varjabbli tiegħi. So I jkollhom b stabbiliti hawn, għandi b stabbiliti hawn, għandi b minus 1 stabbiliti hawn. Iżda l-kodiċi huwa eżattament l-istess. Iżda biss biex turi li inti issa kif nistgħu nużaw dan, let me go quddiem u fil-fatt tbiddel din tkun għal loop. għal (i int = n; i> n; i -). Allura stajt misruqa li minn eżempju preċedenti tagħna. Preċedentement, huwa konformi 37 li jiena bdew kant dan kanzunetta tedjanti. Iżda minflok, jien biss ser issa jitolbu kor ta 'i. Magħmul. Allura issa f'kull iterazzjoni ta 'dan loop, I call dan ieħor , il-funzjoni kor, li I ġara li tikteb. Ma kienx miktub minn xi ħadd ieħor sena ilu. Iżda kor, sadanittant, użi printf għall-istampar out dawn il-linji 4. Imma l-fatt li jien ssejjaħ kor ġdid u għal darb'oħra fil- loop ifisser li jien ser tikseb, fl-aħħar nett, il- kanzunetta istess eżatt kif jien s'issa. Allura fil-qosor, issa jekk I ħarsa lura lejn il-kodiċi tiegħi, anki jekk funzjonalment din hija ekwivalenti, avviż li huwa tibda tikseb saħansitra aktar leġġibbli. I do not know kif eżattament GetInt hija implimentata. Franchement, I do not know kif kor tiġi implimentata. Imma ma jimpurtax lili. I ma 'kura, għax issa nista sort ta', bħala bniedem, moqri din qiegħ minn fuq għal. U minħabba l-funzjonijiet huma msemmija skond dak li do, kodiċi tiegħi huwa dejjem tinqara. U kif il-programmi tagħna jiksbu ħafna aktar kumpless - sa tmiem is-semestru, inti ser tkun bil-miktub mijiet ta 'linji tal-kodiċi fil-lingwi bħal PHP u JavaScript u simili - inti ser issib li huwa daqstant faċli milli biex iżommu kont ta ' dak li inti ghamilt. U meta tibda jikkollabora ma 'ħbieb jew imsieħba jew kollegi, inti ser tkun tista 'tikteb ħafna aktar programmi massivi billi jibdew jeżerċitaw dawn bażika building blocks. Allura ma 'dak imsemmi, għaliex ma aħna sejħa hija ta' kuljum? U aħna se tara inti nhar l-Erbgħa. [Applause]