[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]