[Powered by Google Translate] DAVID J. Malan: Kull dritt.
Dan huwa CS50, u dan huwa l-aħħar ta 'ġimgħa 2.
Jekk inti tistenna li tkun bil-ġuħ madwar dan iż-żmien ta 'għada, tkun taf li aħna qed tmur
biex ilaqqa bħala għada grupp żgħir, il-Ħamis, 01:15.
Hemm dan il-URL hawn jekk inti tixtieq li RSVP.
L-ispazju huwa limitat, għalhekk jekk jogħġbok nahfru jekk il-formola tkun mimlija mill-ħin li inti
timla dan.
Ieħor URL għalkemm li jistgħu jkunu ta 'interess hija din.
>> Għalhekk fl biss dwar żmien xahar, il-kors se jkun disponibbli
l-aktar wiesa 'permezz EDX, li permezz tagħhom folks fuq l-Internet se tkun
jistgħu jsegwu tul, jinvolvu ruħhom fil-kors pjuttost attiv, fil-fatt.
Huma ser tkun qed tuża l-Appliance CS50 u CS50 Iddiskuti u ħafna mill-
diversi għodod ta 'softwer li aħna diġà kienu jużaw dan is-semestru.
U waħda mill-inizjattivi aħna tixtieq tieħu fuq bħala esperiment din is-sena
huwa li tara biss kemm kontenut nistgħu jissarraf oħra mitkellma u
lingwi miktub.
Mela jekk inti jista 'jkollhom interess li jieħdu sehem f'dan il-proġett, fejn
aħna se jipprovdu transcripts Ingliż u sottotitoli għall-kors tal-
lectures u xorts u seminars u sezzjonijiet u simili -
jekk inti titkellem b'mod mexxej jew ikteb b'mod mexxej xi lingwa oħra, aħna kieku
imħabba li jidħlu lilek f'dan il-proġett, fejn inti tieħu fuq waħda jew aktar mill-
videos, li dawn jinbidlu fi f'lingwa li taf pjuttost tajjeb.
Biex jagħtuk sens ta 'l-interface, hemm dan user interface web-based
li aħna ser tkun qed tuża li se joħolqu essenzjalment UI bħal dan.
Dan kien me tagħlim xi Halloween ilu.
U fuq il-lemin hemm bl-iswed li jmiss ma 'dawn it-timbri żmien,
int ser tara l-affarijiet varji li ħareġ mill-ħalq tiegħi dik il-ġurnata.
U allura hawn taħt, inti ser tkun tista 'tittraduċi fis xi lingwa oħra.
Eżattament dak l-immappjar huwa bejn, f'dan il-każ, l-Ingliż
u, ngħidu aħna, l-Ispanjol.
Allura huwa attwalment ħafna faċli għall-utent għodda.
Tista 'Rewind u veloċi quddiem ħafna mill-ewwel ma shortcuts tal-keyboard.
Mela jekk inti tixtieq li tieħu sehem f'din l-esperiment u jkollhom kliem tiegħek
jidher u jinqara minn potenzjalment eluf ta 'folks hemmhekk, jekk jogħġbok tħossok
ħielsa li tieħu sehem.
>> Issa wieħed kelma dwar il-kitten mit-Tnejn, lest għandna bagħtet żżejjed
scary messaġġ.
Do jirrealizzaw li kif ħinijiet tal-uffiċċju jissuġġerixxu u bħala taqsimiet li jmiss jissuġġerixxu, il-
disinn tal-kors huwa ferm li l-istudenti jikkollaboraw u
tkellem jaħdmu permezz settijiet problema u problemi flimkien.
U verament il-linja biss jaqa 'għal, għal darb'oħra, ix-xogħol inti finalment
għandha tissottometti għandu jkun tiegħek.
U dan huwa, pjuttost onestament - fil ħinijiet tal-uffiċċju, huwa totalment normali -
huwa totalment mistennija, anki - biex chat ma 'xi
ħbieb jmiss lilek.
Jekk hu jew hi qed tissara ma 'xi suġġett, u int simili, oh, ukoll let
nagħtikom idea ta 'xi linja tal-kodiċi li I kiteb.
Li l-multa.
Li jiġri.
U li ħafna jwasslu, naħseb, mal-proċess ta 'tagħlim.
Fejn il-linja, għal darb'oħra, gets qasmu huwa meta l-kap huwa tip ta 'mmejjel fuq
hawn għal ftit sekondi wisq jew minuti għal li verament li jkollhom biss
kien opportunità żblokk għall-ħabib tiegħek.
U ċertament, meta l-affarijiet nikseb skambjata permezz ta 'email u Dropbox u
simili, hemm wisq huwa l-linja.
Allura bil-mezzi kollha, jħossuhom komdi u jħossu mħeġġa biex chat mal-ħbieb
u klassi dwar psets u aktar.
U biss jirrealizzaw li dak li inti finalment iressqu għandek verament tkun l-
prodott tal-ħolqien tiegħek u mhux xi ħadd ieħor.
>> Għalhekk fl-istess ta 'kreaturi Cuddly, inti tista'
jafu dan Guy hawn.
Allura dan huwa movie horrifically Logged minn snin ilu.
Kulħadd hawn tidher Spaceballs?
Kull dritt.
Allura numru tajjeb hawn.
Allura dan huwa mod wonderfully akkademiku tagħna ta 'introduzzjoni llum finalment
il-kunċett ta kriptografija.
U għalhekk waħda mill-problemi ta 'dominju speċifiċi għall pset 2, li se jidħlu
barra bil-lejl ta 'għada tard, huwa li adsa fis-dinja ta' kriptografija, li
hija l-arti ta 'encrypting jew scrambling informazzjoni.
U dan finalment tirrigwarda l-dinja ta 'sigurtà.
>> Issa sigurtà għal ħafna minna taqa 'fil-forma ta' mekkaniżmi pjuttost mundane.
Lkoll usernames u passwords.
U lkoll usernames u passwords ħżiena ħafna, l-aktar probabbli.
Jekk il-password tiegħek hi l-istess fuq il-websajts multipli, li probabbilment ma
l-idea aħjar, kif aħna ser jiddiskutu lejn tmiem semestru tal.
Jekk il-password tiegħek huwa miktub fuq nota twaħħal - mhix ċajta - fuq tiegħek
monitor, li wisq mhuwiex neċessarjament l-aħjar disinn, iżda pjuttost komuni
fenomenu.
U jekk ma tkunx qed tużah kriptografija għall-kriptaġġ passwords tiegħek, huma
partikolarment vulnerabbli.
Mela jekk inti taħseb li int qed super għaqlija billi jkun hemm Word moħbija
dokument x'imkien fuq hard drive tiegħek li tkun kollha ta 'passwords tiegħek imma
huwa fil-folder li ħadd għaddej biex tħares, li wisq mhuwiex ħafna
sigura mekkaniżmu.
U iva, liema pset 2 se jintroduċi hija din l-arti ta 'kriptografija u
scrambling informazzjoni sabiex affarijiet simili passwords huma
l-aktar sikuri.
Sabiex timmotiva din il-problema ħafna tad-dinja reali ma 'ħafna mhux tad-dinja reali
xenarju, let me jintroduċu inti lil wieħed mill clips favoriti tagħna hawn minn din
movie, Spaceballs.
>> [Daqq ta 'video]
-Elmu, inti fiend, x'inhu għaddej?
X'Ser tagħmel biex bint tiegħi?
-Permess me jintroduċu l-brillanti żgħażagħ plastik kirurgu, Dr Philip
Schlotkin, l-akbar imnieħer impjieg bniedem fil-sħiħ
univers u Beverly Hills.
Your-Altezza.
Impjieg Imnieħer-?
Ma nifhimx.
Hija li diġà kellhom xogħol imnieħer.
Kienet ħelwa 16 preżenti.
-Nru, mhuwiex X'taħseb.
Huwa ħafna, ħafna agħar.
Jekk inti ma jagħtux me-kombinazzjoni li l-ilqugħ arja, Dr Schlotkin se
tagħti t-tifla tiegħek lura imnieħer qadim tagħha.
-Nru!
Fejn ma ikollok dan?
-Kull dritt.
I ser jgħidlek.
-Nru, daddy, l-ebda.
Inti ma għandu.
You're-dritt, għeżież tiegħi.
I ser titlef imnieħer ġdida tiegħek.
Imma jien mhux ser jgħidulhom il-kombinazzjoni x'ikun.
-Tajjeb ħafna.
Dr Schlotkin, do agħar tiegħek.
-Tiegħi divertiment.
-Nru!
Stenna, stenna.
I ser jgħidlek.
-I kien jaf ikun xogħol.
Kull dritt, tagħtiha lili.
-Il-kombinazzjoni hija waħda.
-One.
-Żewġ.
-Tliet
-Tliet.
-Erba.
-Ħames
-Ħames.
-Allura-kombinazzjoni hija wieħed, tnejn, tlieta, erba ', ħames.
Dik hija l-kombinazzjoni stupidest I qatt semgħu fil-ħajja tiegħi.
Dik hija l-tip ta 'ħaġa idjota jkollha fuq bagalji tiegħu.
-Grazzi, Altezza tiegħek.
-What did you do?
-I daru off-ħajt.
-Le, inti ma.
Inti mitfija l-film kollu.
-I irid ikun ippressat-buttuna ħażina.
Well, erġa 'poġġih fuq.
Poġġi l-film lura fuq.
-Iva, sir.
Iva, sir.
-Ejja ħa mmorru, Erna.
Come, Gretchen.
Tal-kors li inti taf I taf xorta jkollhom inti kont għal dan.
Well, ma taħdem?
Fejn hi l-bieb?
-It maħduma, sir.
Għandna l-kombinazzjoni.
-Kbir.
Issa nistgħu jieħdu kull aħħar nifs ta 'arja friska minn pjaneta Druidia.
X'hemm-kombinazzjoni?
-Wieħed, tnejn, tlieta, erba ', ħames.
-Wieħed, tnejn, tlieta, erba ', ħames?
-Iva.
-Li aqwa.
Stajt ltqajna l-kombinazzjoni istess fuq bagalji tiegħi.
Ipprepara Spaceball 1 għall-tluq immedjat.
-Iva, sir.
U l-bidla l-kombinazzjoni fuq bagalji tiegħi.
-Ow!
[END video daqq]
>> DAVID J. Malan: An movie aqwa għandek issa kulħadd jara.
Allura l-kuntest hawnhekk hija li ma 'data mhux sikuri ġejja l-opportunità li
kriptaġġ u biex ġirja dan.
U hekk dan, per eżempju, huwa eżempju ta 'messaġġ encrypted.
Dan fil-fatt jgħid xi ħaġa bl-Ingliż.
Iżda huwa ċar mhumiex totalment ovvji.
U aħna ser jiġu ċirku sħiħ llum biex tease apparti dak li din sigriet
messaġġ hawnhekk huwa.
Imma fid-dinja reali ta 'kompjuters, l-affarijiet ma anki look like dawn jistgħu
jkun frażijiet Ingliż.
Per eżempju, dan huwa dak li inti tista 'ssib fuq Linux jew Mac standard jew
Kompjuter Unix fil-fajl li kienet darba fuq żmien imsejjaħ il-fajl password.
Illum, huwa kien imċaqlaq għall-postijiet l-oħra.
Imma jekk inti tfittex fil-post it-tajjeb fuq sistema, tkun taf tara mhux biss tiegħek
username jew dik ta 'persuni oħra fuq is-sistema, iżda inti ser tara
Verżjoni encrypted password ta 'tagħhom.
Tabilħaqq, il-kripta kelma hemmhekk jissuġġerixxi li l-għalf li ġej huwa encrypted.
U din is-serje ta 'ittri apparentement każwali u karattri u numri u
ibqa 'sejjer hekk jistgħu jiġu decrypted biss bil ġeneralment jaf xi sigriet -
kelma sigrieta, numru sigriet.
U għalhekk fil-fatt, l-arti tal-kriptografija finalment jeħodna għall-fiduċja ta 'xi
sort u jafu xi ħaġa li xi ħadd ieħor ma.
Aħna ser tesplora dan fid-dettall daqsxejn aktar llum u fil-pset li ġejjin.
>> U issa l-kelma fuq għadda / jonqsu.
Allura speċjalment, kif xi wħud minnkom dived fis pset 1, l-apparat, u
dinja ferm ġdida għalik innifsek, realizzati li frustrazzjonijiet u
diffikultajiet konfużjoni u biss tekniċi huma mistennija.
Speċjalment ma 'l-pset 1, fejn hemm biss tant ġodda, biss jkollna
familjari ma 'ls u cd u kollha dawn il-kmandijiet arcane f'ambjent ġdid.
U li separata mill-materja attwali u l-ipprogrammar innifsu.
Allura realizzata, wisq, li hemm ċertament ħinijiet tal-uffiċċju li jeżistu bħala
l-istruttura ta 'appoġġ.
Taqsimiet jibda dan il-Ħadd li ġej.
Iżda aktar importanti, jekk int tħossok ftit li dan mhuwiex il-
dinja għalik, tirrealizza li huwa verament ma biss jieħu ż-żmien.
U kieku ma kienx għal din l-opportunità snin ilu għalija li tittieħed klassi
suċċess / falliment, onestament, jien qatt ma saħansitra sett marda fil-klassi.
U inti tista 'tbiddel dan sa, ngħidu aħna, it-Tnejn 5 tal-kors.
Mela jekk int fuq it-tarf issa, jirrealizzaw li aktar milli ras fis xi oħra
ilmijiet kollox, do ċertament jikkunsidraw ftit tibdil biex suċċess / falliment.
Għal darb'oħra, hemm mhux verament din il-kultura hawn fil-Harvard li jieħdu l-affarijiet
suċċess / falliment peress li kulħadd verament jixtieq li jilħqu jew taqbeż il.
Iżda franchement, dan huwa wunderbare mod ta 'tipprova xi ħaġa li jista' ma
ikun familjari għalik.
U tkun taf jispiċċaw jagħmlu f'ħafna każijiet pjuttost multa, forsi
ħafna biex sorpriża tiegħek.
U f'termini iktar konkreti, dak li naħseb suċċess / falliment ġeneralment ma,
speċjalment peress li inti jista 'jkollok esperjenza bil pset 0, jekk inti stajt tpoġġi
fl-10 siegħa, 15 siegħa, 25 siegħa fi ftit pset - u inti qed biss banging
ras tiegħek kontra l-ħajt,
u huwa jkollna super tard bil-lejl,
imma inti ħadt il-pset simili 90% mill-mod,
inti taf li inti biss ma tistax figura ħaġa waħda -
suċċess / falliment verament jieħu l-tarf off ta 'klassi bħal din, fejn inti tista sort
ta heureusement jgħidu okay, I know mhuwiex perfett.
Imma I maħduma ħmar tiegħi off fuq dan.
Jien pjuttost kuntenti bil fejn spiċċaw.
U li se jilħqu l-aspettattivi għal suċċess / falliment.
Allura iżommu dan f'moħħhom.
>> Kull dritt.
Allura dawk fostkom li għadhom tħabtu biex jużaw l-Università ta 'Harvard Wi-Fi taf
li hemm SSID CS50, konnessjoni Wi-Fi f'wiċċ l-ilma madwar li inti
jista 'jkollhom Xorti aħjar għall.
Huwa ironiku ftit li l-password għal dan - jekk inti tixtieq li jippruvaw
konnessjoni għal dan għal veloċitajiet aħjar u jgħidilna jekk l-ebda aħjar -
huwa wieħed, tnejn, tlieta, erba ', ħames, it-triq kollha sa tmien għaliex 8 huwa
aktar sikuri minn ħamsa.
Mela jekk għandek bżonn l-password Wi-Fi, jgħaqqdu wirelessly CS50 hawn.
Wieħed, tnejn, tlieta, erba ', ħames, sitt, seba', tmien.
U post fuq CS50 Iddiskuti jekk inti għad għandek kwistjonijiet konnettività intermittenti,
u aħna ser let-setgħat li jiġu jafu għal dan l-ispazju.
>> Kull dritt.
Allura teaser malajr, speċjalment għal dawk minnkom li huma subien fann jew bniet
ta 'kulħadd Apple affarijiet.
What I dug up minn ftit snin lura kien dan il-fajl hawn, ilock.c, just biex
tip ta 'juri b'mod aktar konkret u aktar kumplessi xi wħud mill-aktar bażika C
Programmi aħna kont qed miktub.
So I fetaħ dan il-fajl, ilock.c.
Huwa disponibbli fuq il-paġna lekċers għal-lum.
Fuq in-naħa tax-xellug, inti tara lista twila ta 'funzjonijiet.
Allura l-kollegi li kiteb dan kiteb ħafna ta 'funzjonijiet,
aktar milli sempliċiment prinċipali.
Huwa użat mazz sħiħ ta 'libreriji hawn.
U jekk nibdew scrolling permezz ta ', dak li din fil-fatt hija l-ħafna
1, nemmen, xquq għall-iPhone oriġinali.
Meta inti riedu jailbreak l-iPhone oriġinali, li jfisser untether
minn AT & T u fil-fatt tinstalla software speċjali fuqha u jagħmlu affarijiet
li Apple ma riedx nies biex jagħmlu -
ukoll, xi ħadd ħa l-ħin biex insemmu eżattament kif jistgħu jisfruttaw
softwer difetti, żbalji, bugs, fis-software Apple.
U għalhekk twieled ilock.c.
Li jekk inti miġbura fuq il-kompjuter u installati hija fuq iPhone li
kienu konnessi mal-kompjuter tiegħek permezz, ngħidu aħna, USB cable, dan jagħtik
privileġġi amministrattivi jew għerq fuq iPhone tiegħek u tavżak tagħmel pretty ħafna
tkun xi tkun trid.
>> U hekk hemm kien dan il-qtates affaxxinanti u kaċċa maws bejn Apple u
il-bqija tad-dinja, b'mod partikolari peress li, bħal ħafna kumpaniji, jippruvaw biex jissakkar
Jittieħed tagħhom stabbiliti sabiex inti tista 'biss tagħmel magħha dak li bi ħsiebhom.
Iżda grazzi għall-persuni bħal dan u l-fehim tagħhom ta 'livell baxx
dettalji u, f'dan il-każ, programmazzjoni C u ħafna ta 'l-constructs familjari
li konna bdew jilagħbu ma ', inti tista' verament jwieżen l-
ħardwer b'mod tara xieraq u mhux neċessarjament xi entità korporattiva.
Għalhekk per eżempju, għandi l-ebda idea dak li dan kollu qed tagħmel.
Iżda GetVersion ħsejjes pjuttost sempliċi.
U jidher qisu dan huwa funzjoni li din il-persuna kiteb.
Jieħdu xi tip ta 'numru sħiħ bħala argument, ma ritorn xejn, imma
jidher li loop bi għar loop hawn u jekk il-kundizzjoni, jekk il-kundizzjoni,
break, u b'xi mod tirrigwarda n-numri verżjoni.
Jekk aħna iscroll -
anke jekk ħafna ta 'dawn keywords ser ikunu ġodda, u hemm
lott kollu ta 'funzjonijiet fl here we ve qatt u ma tista qatt tara fuq
il-kors tas-semestru -
fl-aħħar tal-ġurnata, isegwi l-istess regoli u l-loġika li aħna kont qed
playing mal s'issa.
Allura dan huwa wisq antik biex jitwaqqaf 3s iPhone tiegħek jew 4s jew ftit 5s, dawn il-ġranet,
imma jafu li dan kollu ħafna derivat minn din id-dinja li aħna ħadthom
dived fis.
>> Mela ejja tagħti ħarsa lejn eżempju ftit aktar sempliċi.
Dan wieħed, biss li tikseb msaħħna ma 'xi sintassi u wkoll xi data oħra
tip li konna tkellimna dwar iżda ma verament jidhru C. Allura dan huwa
fajl imsejjaħ positive1.c.
U kull l-kummenti fil-quċċata, dan biss jitlob li utent jipprovdu
pożittiv numru.
Allura huwa eżempju ta 'loop do-waqt, li huwa sbieħ għall-utent interattiv
programmi fejn għandek bżonn li tgħid l-utent li jagħmel xi ħaġa.
U jekk dawn ma jikkoperaw, inti Yell fil minnhom jew tirrifjuta l-kontribut tagħhom.
Kawża fil-punt, jiena ser tagħmel linji 19 permezz 24 sakemm l-utent ikollu
ma tani numru pożittiv.
Issa dan id-dettall hawn fuq il-linja 18, għaliex ma niddikjara n ogħla minn dan kollu
tibni looping għall-kuntrarju dritt li jmiss għal-linja 22 fejn I
attwalment kura biex tikseb n?
Yeah?
[Inaudible]
>> DAVID J. Malan: Yeah, hekk din il-kwistjoni tal-ambitu.
U fit-terminu layman, dak ma iskop jirreferu għall?
Yeah?
[Inaudible]
DAVID J. Malan: Tista titkellem ftit louder?
SPEAKER 1: Fejn inti tista 'aċċess varjabbli partikolari.
DAVID J. Malan: Perfect.
Fejn inti tista 'aċċess varjabbli partikolari.
U ġeneralment, ir-regola ta 'thumb s'issa kienet li l-ambitu ta' xi
varjabbli huwa definit mill-braces kaboċċi aktar riċenti li inti stajt tidher.
U hekk f'dan il-każ, jekk I għamel l-iżball li tiddikjara n fuq il-linja 22,
dik il-linja tkun taħdem.
Nixtieq nikseb int, u jien poġġih fil dak n-varjabbli fil-linja 22.
Iżda li linja tal-kodiċi issa se jkollhom l-ebda idea dak li nkun qiegħed jitkellem dwar?
Allura 25, u jirriżulta 24, kif ukoll, minħabba f'dan il-każ, dan jaqa 'barra
taċ-ċingi kaboċċi.
Hekk biss ftit ta 'inkonvenjent, iżda faċilment solvuti billi sempliċement iddikjarat li
barra varjabbli tal-funzjoni stess.
>> Issa aħna ser tara aktar tard illum, inti tista 'tmur pass ulterjuri.
U inti tista 'anki jiksbu ftit għażżien -
u dan m'għandux jiġi rakkomandat, b'mod ġenerali -
imma int tista 'wkoll tikseb għażżien u mqiegħda varjabbli globalment, biex ngħidu hekk, ma
ġewwa ta 'funzjoni, mhux ġewwa ta' linja, iżda fil-fajl innifsu, barra
ta 'kollha tal-funzjonijiet li inti stajt bil-miktub, kif għamilt hawn fuq il-linja 15.
Iżda din hija ġeneralment frowned fuq.
Iżda realizzata din hija soluzzjoni kultant għal problemi oħra, kif aħna ser
eventwalment tara.
Allura għal issa, aħna ser jitilqu minnu bħal dan.
Imma ejja ara jekk nistgħu jikteb dan biss biex tibda jesprimu nfusna a
ftit differenti.
>> Allura dan il-programm, biss biex ikunu ċari, huwa positive1.
Let me imorru quddiem u hawn fil-tieqa terminal tiegħi jagħmlu positive1, Ikteb.
Jikkompila, okay.
Jien ser jimxu positive1, hit Ikteb.
I domanda li inti tagħti me numru sħiħ pożittiv.
I ser ngħid -1.
Li ma ħadmux.
0, 99, li jidher li qed jaħdem.
Forsi mhux l-aktar test rigoruża.
Imma l-anqas huwa kontroll sanità sbieħ li aħna qed fuq il-binarju dritt.
Allura issa let me imorru quddiem u tiftaħ verżjoni 2 ta 'dan.
U dak li huwa differenti diġà?
Hija timplimenta l-istess ħaġa.
Imma x'hemm qbiż b'mod ċar differenti dan iż-żmien?
Yeah, għalhekk dan bool fl-aħdar.
Gedit enfasizzat fl-aħdar dan il-keyword magħrufa bħala bool,
li huwa tip ta 'data.
Ma jiġu mibnija għall-verżjonijiet kollha ta 'C. Ikollok bżonn li tinkludi
speċifiku librerija.
Fil-każ tagħna, I inklużi l-librerija CS50 sabiex inkunu
jkollhom aċċess għall-bool.
Iżda fil-linja 18, aħna jidhru li jkollhom valur Boolean hawn imsejjaħ thankful.
So I setgħet sejjaħ din xejn.
Imma I sejħitilha thankful biss li tip ta 'twassal xi tifsira semantika.
Allura inizjalment fuq il-linja 18, jien apparentement ma thankful minħabba li l-
Valur Boolean thankful huwa initialized li foloz fil-linja 18.
U allura jidher dak I ghamilt hawn fil-linji 21 permezz 23 huwa Stajt biss
tip ta 'tinkiteb mill-ġdid loġika tiegħi.
Allura l-ebda funzjonalment differenti.
Iżda fil-linja 22 issa, I jivverifika jekk l-int-utent ikun ipprovda huwa akbar minn
0, imbagħad I sempliċiment ibiddlu l-valur tal-thankful għall veru.
U għaliex nista 'nagħmlu?
Minħabba fil-linja 25, apparentement, jien ser jiċċekkja kundizzjoni.
Agħmel dan loop filwaqt huwa thankful falza.
>> So nipproponi dan bħala alternattiva għall-verżjoni 1 għaliex dan huwa mill-inqas
ftit aktar intuwittivi, forsi.
Huwa ftit aktar milli jtir bl-Ingliż.
Allura tagħmel dan li ġej waqt li inti mhux thankful jew waqt li tkun thankful falza.
U din id-darba, ukoll, I apparentement ma 'kura li tiftakar dak li l-utent ittajpjat
fil minħabba avviż hemm l-ebda n varjabbli.
Allura fil-fatt, I -
gidba ftit abjad hemmhekk.
Funzjonalment, il-programm huwa daqsxejn differenti ladarba irridu jiksbu l-qiegħ ta '
għaliex jien ma ftakar dak n hija.
Imma jien ridt li juru hawnhekk ukoll li anke jekk aħna stajt tidher GetInt u
GetString qed jintużaw fuq in-naħa tal-lemin ta 'sinjal ugwali s'issa sabiex
aħna niftakru l-valur, teknikament, li mhux strettament neċessarju.
Jekk għal kwalunkwe raġuni inti biss ma 'kura biex isalva l-valur, inti biss trid
biex jivverifika l-valur, avviż li nistgħu sempliċement jiktbu dan bħala GetInt miftuħ
paren, paren qrib.
Din il-funzjoni se terġa 'lura għal valur, kif aħna kont qed tgħid.
Huwa ser jagħtuk lura int.
U għalhekk jekk inti mentalment taħseb li dan jiġri, meta I tip 99, GetInt
jirritorna l-għadd 99.
U għalhekk kunċettwali, huwa daqs li kieku kodiċi tiegħi kienu attwalment dan.
Mela jekk 99 huwa tabilħaqq ikbar minn 0, imbagħad isir thankful veru.
Imbagħad linja 25 jirrealizza ooh, aħna qed isir għaliex jien issa thankful.
U fil-linja 26, aħna sempliċiment ngħidu, grazzi għall-eqreb numru sħiħ pożittiv, tkun xi
li jkun ġara.
>> Issa ejja nagħmlu zokkor sintattika żgħir hawn, biex ngħidu hekk.
Ejja naraw jekk nistgħu tnaddaf din il-linja 25 ma 'dan varjanza tielet u finali
fil positive3.
Allura avviż-differenza biss issa huwa dak linja tal-kodiċi?
Yeah, hekk 25.
U aħna stajt ma verament jidhru dan trick għadha biss.
Iżda aħna ma tara l-punt exclamation-Tnejn, li tindika liema?
Allura le, jew negazzjoni.
Allura jieħdu valur Boolean u flip-valur tagħha.
Veru isir falza.
Foloz isir veru.
Allura dan, nixtieq nipproponi, huwa saħansitra xi ftit aktar intuwittivi ta 'mod ta'
miktub l-kodiċi minħabba I xorta initialize thankful għall falza.
I għadhom jagħmlu dan li ġej.
I sett thankful għall veru meta jasal iż-żmien.
Imma issa inti tista 'verament ftit tittraduċi din il-kodiċi verbalment xellug għal-lemin,
filwaqt li ma thankful.
Minħabba bang, jew il-punt exclamation, tindika l-kunċett ta 'le, sabiex filwaqt li
mhux thankful.
>> Għalhekk għal darb'oħra, aħna ma introduċiet l-ebda kunċetti ġodda per se.
Imxejna tkellem dwar Booleans lura meta aħna lagħbu Scratch.
Imma tirrealizza issa nistgħu biss tibda tikteb kodiċi tagħna fl-
modi differenti.
Allura speċjalment fil pset1, jekk int-tip ta 'tissara biex insemmu l-mod li
jikteb xi programm, odds huma int fil Xorti għaliex hemm għaddej li tkun kwalunkwe
numru ta 'soluzzjonijiet li inti jista' jiġri fuq.
Per eżempju, dan huwa biss tlieta għall anki l-aktar sempliċi ta 'programmi.
Kull dritt.
U issa lura nhar it-Tnejn, aħna xellug fuq din in-nota ma 'valuri ta' ritorn.
Allura għall-ewwel darba, aħna kiteb programm li ma biss ikollhom prinċipali,
għandu wkoll il-funzjoni tad-dwana tagħha stess li I kiteb hawn.
Allura fil-linja 31 permezz 34, stajt implimentati funzjoni kubu.
Mhuwiex kumplessi.
Huwa biss il-darba xi drabi a, f'dan il-każ.
Imma x'hemm importanti dwar dan hija li jien teħid input fil-forma ta 'u
Jien lura output fil-forma ta 'drabi darbiet a.
>> Allura issa għandi l-abbiltà, simili ħafna I użati biex ma printf biss, għal sejħa
din il-funzjoni billi ċċempel l-funzjoni kubu.
U l-funzjoni kubu jieħu xi input.
U l-funzjoni kubu lura xi output.
U hekk b'kuntrast, printf biss għamlet xi ħaġa.
Hija ma reġgħux lura xejn li aħna jieħdu ħsiebhom dwar - anki jekk, bħala
twarrib, dan ma ritorn ta 'valur.
Inti biss ġeneralment jinjoraha.
Printf biss għamlet xi ħaġa.
Hija kellha effett sekondarju ta 'l-istampar l-iskrin.
B'kuntrast hawn, aħna għandna l-funzjoni kubu, li
attwalment prospetti xi ħaġa.
>> Allura dan huwa ġeneralment -
għal dawk familjari ma 'dan, din hija idea pjuttost sempliċi.
Iżda għal dawk inqas familjari ma din l-idea li tgħaddi fil-inputs u jkollna
outputs lura, ejja ipprova biss xi ħaġa sempliċi super.
Huwa xi ħadd komdu ġejjin fuq il-palk fil-qosor?
Int għandek tkun komda ma 'kamera fuqek, kif ukoll.
Yeah.
Okay, dak l-isem tiegħek?
KEN: Ken.
DAVID J. Malan: Ken.
Kull dritt, Ken.
Come fuq up.
Allura Ken se tkun funzjoni ta 'tip hawn.
U ejja imorru quddiem u jagħmlu dan.
Ejja jiksbu fancy ftit.
Nizza biex jissodisfaw inti.
Merħba għall-istadju taċ-ċentru.
Kull dritt.
Ejja hit din il-buttuna hawn.
Kull dritt.
Allura hawnhekk għandek chalkboard moderna.
U dak I am hija l-funzjoni prinċipali, per eżempju.
U jien ma jkollhom iPad fl-idejn tiegħi.
I ma verament tiftakar kif - ukoll, fil-fatt, ma nistax ngħid li.
I ma verament ikollhom kalligrafija tajba.
U hekk għalhekk, nixtieq li jistampaw xi ħaġa fuq l-iskrin għalija.
>> So I am huwa l-programm prinċipali.
U jiena se jkollhom inti ngħid dan bil-kitba fil-bidunett tat-tiġieġ tiegħi u
imbagħad jgħaddi inti input.
Allura kif iblah jekk dan l-eżerċizzju huwa, il-kunċett tal-funzjonijiet u sejħa
funzjoni u r-ritorn funzjoni verament jeħodna għal dan.
I am prinċipali.
I għadek miktub printf ("xi ħaġa") fuq l-iskrin.
Niġri dan il-programm.
U hekk kif printf gets imsejħa, hija tieħu 1 argument - jew parametru wieħed,
kultant -
bejn kwotazzjonijiet doppja.
Hawnhekk huwa dan l-argument.
Jien tgħaddi lill Ken.
Issa huwa kaxxa sewda bil-miktub xi numru ta 'snin ilu li apparentement
biss jaf kif jistampaw affarijiet fuq l-iskrin.
>> Allura, tesegwixxi.
Li mhux ħażin.
Allura, tajba ħafna.
Allura issa Ken isir esekuzzjoni.
Ma hu bżonn idejn lili xejn lura?
Allura mhux li Rajna s'issa.
Għal darb'oħra, printf ma attwalment ritorn ta 'numru.
Iżda aħna qed tmur biex jinjoraw li għal issa għaliex aħna qatt ma stajt użati dan.
Allura dak li għal Ken.
U hekk issa ġejja prinċipali lura biex tesegwixxi -
prinċipali jieħu f'idejh kontroll tal-programm mill-ġdid minħabba li l-linja tal-kodiċi,
printf, isir esekuzzjoni.
U aħna tmur dwar mod tagħna teżegwixxi kwalunkwe linji oħra hemm.
>> Kull dritt.
Allura issa ejja ipprova eżempju kemmxejn differenti.
U din id-darba hawn, ejja ewwel ċar l-iskrin hawn.
U dan iż-żmien, aħna ser nagħmlu l-funzjoni cubing.
Iżda dan iż-żmien, nistenna valur ta 'produzzjoni.
Mela ejja imorru quddiem u jagħmlu dan.
Allura issa I jkollhom linja ta 'kodiċi li tgħid x = kubu (x).
Allura fil-fatt let's -
il-linja ta 'kodiċi, irtirar, qisu dan.
x = kubu (x).
Allura kif huwa dan se jaħdem?
Mela ejja imorru quddiem u jagħtuk screen abjad mill-ġdid.
U jiena ser jikteb issa l-valur ta 'x, li f'dan il-mument fil-
ħin jiġri li jkun, ejja ngħidu, 2, li jżommha sempliċi.
So I kitbu isfel fuq biċċa karta mill-valur 2,
li hija x-valur tiegħi.
I jagħtiha lill Ken.
KEN: U jien biss jiktbu l-risposta?
DAVID J. Malan: Yeah, ejja biss jiktbu l-risposta.
Okay.
U issa huwa għandu jirritorna lili xi ħaġa.
Allura -
perfetta.
Nizza segue.
>> Allura issa huwa f'idejn me lura l-valur ta '8, f'dan il-każ.
U x'għandi nagħmel miegħu?
Ukoll, fil-fatt, ejja ara.
Get dan id-dritt.
What am I se tagħmel magħha?
Issa jien ser jieħdu dan il-valur u fil-fatt jaħżen fil dawk
bits istess memorja.
Imma l-avviż, jien tip ta 'tissara hawn.
Jien ftit konfuż għaliex fejn nista attwalment tikteb il-valur ta 'x?
Minħabba dak li stajt biss isir huwa fiżikament naħa Ken biċċa karta
li kellha l-valur 2, li kien x.
U fil-fatt, dan huwa preċiżament dak li jiġri.
Għalhekk jirriżulta li meta inti sejħa funzjoni, u inti tgħaddi fl-argument
bħal "bonjour dinja" jew inti tgħaddi fl-argument bħal 2, ġeneralment, int
tgħaddi fil-kopja ta 'dan l-argument.
U hekk biss kif I kiteb isfel in-numru 2 hawn u mogħtija lill Ken; li għandu
jfissirx li għadni kopja ta 'l-2 valur x'imkien.
Minħabba fil-fatt, issa li stajt gotten lura l-valur 8, I bżonn li jmorru lura fil-
RAM u fil-fatt ikteb 8 fejn I ladarba kellhom in-numru 2.
>> Mela ftakar viżwalment dan il-kunċett ta 'tgħaddi fil litteralment
kopja tal-valur.
Ken ma ħaġa tagħha, idejn me lura xi ħaġa - f'dan il-każ,
valur bħal 8.
U mbagħad I għandek tagħmel xi ħaġa ma 'dak il-valur jekk I
tixtieq li jżommha madwar.
Allura dan kollu se jkunu kollha wisq familjari qabel twil.
Grazzi tant għal dan demo hawn, Ken.
Kull dritt.
Tajjeb ħafna x'isir.
Mela ejja ara kif li finalment tirrigwarda xi wħud mill-funzjoni
sejħa li aħna kont qed tagħmel hawn.
So let me go quddiem u jressaqna lura għall-eżempju cubing hawn.
U tinnota li jekk irridu li attwalment tibda tieħu din ulterjuri, aħna qed tmur
li jkollha li tkun konxja tal-fatt li l-x numru li l-jiġu mgħoddija fil
hawnhekk hija differenti minn dak li fil-fatt jiġu mgħoddija fil-funzjoni.
Għalhekk għal darb'oħra, dan għadda minn kopja se jsiru pjuttost
germane fi ftit mument.
>> Mela ejja tagħti ħarsa lejn xi ħaġa li ma pjuttost xogħol tajba s'issa.
Jien ser jimxi 'l quddiem u tiftaħ eżempju Buggy 3, li
huwa difettuż min-natura.
U huwa msejjaħ buggy3, u timplimenta funzjoni iskambji.
Allura hawnhekk għandna funzjoni prinċipali li tkun xuy arbitrarju initialized li
1 u 2, rispettivament.
Aħna jistgħu jużaw GetInt, imma aħna biss bżonn ta 'eżerċizzju sempliċi.
Allura huwa diffiċli kodifikata bħala 1 u 2.
Fil-linji 21 u 22, aħna apparentement jistampa xuy, wieħed għal kull linja.
Imbagħad, fuq il-linja 23, I jitolbu jiena iskambji dawn il-valuri, dot, dot, dot.
I apparentement sejħa funzjoni fl linja 24 imsejjaħ swap
li jieħu żewġ argumenti.
Huwa totalment leġittimu għall-funzjonijiet li jieħdu żewġ argumenti.
Rajna printf jagħmlu dan diġà.
Allura tpartit apparentement tieħu xuy.
U kif ismu jissuġġerixxi, nixtieq tama li huwa għaddej biex
tpartit dawn iż-żewġ valuri.
Allura mbagħad I pretensjoni fuq il-linja 25, biddlu.
U jien Reprint xuy bis-suppożizzjoni li
li ħadthom tabilħaqq biddlu.
Imma jekk I attwalment tmexxi dan il-programm -
let me tiftaħ tieqa terminal.
Let me jagħmlu buggy3.
Kif tissuġġerixxi l-isem, dan mhux se jispiċċaw tajjeb.
Għaliex meta I hit Ikteb, avviż li x hija l-1.
y huwa 2.
And yet fl-aħħar tal-programm, dawn għadhom qed, fil-fatt, l-istess.
>> Allura ibbażata fuq id-dimostrazzjoni biss issa ma Ken, dak li fil-fatt jiġri?
Ukoll, ejja adsa fis din il-funzjoni tpartit.
Huwa super qasir.
Huwa biss ftit linji tal-kodiċi twil.
Imma x'inhu l-problema fundamentali bbażata fuq l-istorja sempliċi told
up hawn ma Ken?
Għaliex maqsuma tpartit huwa?
[Inaudible]
Eżattament.
Allura aħna qed jaħżnu għal kopja, mhux l-varjabbli innifsu.
Fi kliem ieħor, tpartit apparentement jieħu żewġ argumenti, ta 'int.
U huwa arbitrarjament msejjaħ b u.
U up hawn, stajt għaddew fl xuy, li huma rispettivament 1 u 2.
Imma jien ma litteralment jgħaddi fil x.
Jien ma litteralment jgħaddi fil y.
Jien tgħaddi kopja ta 'x u kopja ta' y.
Huwa simili kważi daqs li kieku inti kkupjati u pasted fis tpartit l-valuri li
inti tixtieq li attwalment jimmanipulaw.
Allura jekk dan huwa l-każ, meta I, il-programm, bidu eżekuzzjoni
linja 35, imbagħad 36 -
meta nasal għal-linja 37, f'dan il-punt fl-istorja, dak li huwa l-valur ta '?
Fuq dan il-punt fl-istorja, linja 37, dak li huwa l-valur ta 'f'dan il-punt?
Għalhekk għandu jkun biss 1.
Dritt?
Minħabba x kienet għaddiet fl bħala l-ewwel argument.
U din il-funzjoni biss b'mod arbitrarju qed issejjaħ ewwel argument tagħha,.
Bl-istess mod huwa y, it-tieni argument.
U huwa biss arbitrarju sejħa tal-b tieni argument.
>> Issa din id-dikotomija huwa attwalment pjuttost sempliċi spjegat.
Aħseb dwar dan.
Xejn minna laħqu l-persuna li kiteb printf.
Allura żgur, hu jew hi għandha l-ebda idea liema fatturi varjabbli tagħna 30 snin wara tmur
li għandu jissejjaħ.
Għalhekk għandu jkun hemm distinzjoni bejn dak li inti sejħa varjabbli
funzjonijiet int bil-miktub u dak li inti sejħa varjabbli fil-funzjonijiet int
sejħa jew bl-użu.
Allura fi kliem ieħor, ktibtu varjabbli tiegħi bħala xuy.
Imma jekk xi ħadd ieħor kien kiteb il-funzjoni tpartit, hu jew hi ċertament
ma jkunux jafu liema fatturi varjabbli tiegħi ser ikunu msejħa.
Allura jirrealizzaw li dan huwa għaliex għandek dan duwalità ta 'ismijiet.
Teknikament, I jistgħu jagħmlu dan billi koinċidenza.
Iżda huma xorta waħda tiġi mgħoddija f'numru ta 'kopji.
Ikun biss tkun koinċidenza pur estetikament jekk dik il-persuna li kiteb
tpartit kienet użat l-istess ismijiet.
>> Kull dritt.
Allura f'dan il-punt fl-istorja, linja 37, hija l-1.
b huwa 2.
U issa I tipproċedi biex tpartit lilhom.
Ukoll l-ewwel nett, let me fil-fatt jagħmlu dan ħafna aktar sempliċi.
I do not know dak dawk il-linji 3 tal-kodiċi kienu qed jagħmlu.
Let me biss tagħmel dan.
b gets.
a gets b.
Magħmul.
Għaliex dan imkisser, loġikament?
Huwa tip tal-ħaġa intuwittivi, id-dritt?
Allura isir b.
U b isir.
Iżda l-problema hija li hekk kif linja 37 tesegwixxi, x'inhu l-
valur ta 'u b?
L-istess, 1.
Għaliex inti tkun clobbered, biex ngħidu hekk, inti stajt mibdula b biex ikunu ugwali għal.
Allura ladarba linja 37 hija esegwita, li l-kbir.
Inti issa għandhom żewġ kopji tal-numru 1 ġewwa ta 'din il-funzjoni.
Mela allura meta inti tgħidli fil-linja 38, li gets b, ukoll, int tip ta 'invitat.
Għaliex int biss assenjazzjoni 1 għal 1.
You ħadthom tip ta 'tilfu l-valur inti tajt.
>> Allura fil-verżjoni oriġinali ta 'dan, l-avviż dak li għamilt.
I minflok kellhom tielet linja ta 'kodiċi li dehru qishom dan.
Niddikjara varjabbli temporanju - TMP huwa isem komuni ħafna
għal varjabbli temporanju.
Huwa ta 'int għax irid ikun kompatibbli dak li nixtieq li tagħmel kopja ta'.
I taħżen kopja ta 'ġewwa ta' TMP. Allura ladarba linja 37 tkun wettqet,
il-valur ta 'huwa -
sanità malajr check -
1.
Il-valur ta 'b huwa 2.
U l-valur tal-TMP huwa wkoll 1.
Allura issa I tesegwixxi linja 38.
Allura ladarba linja 38 tesegwixxi, a jieħu l-valur ta 'b.
U b '2.
Allura issa huwa 2.
Allura f'dan il-punt fl-istorja, li huwa 2, b huwa 2,
u TMP huwa 1.
Allura issa loġikament, nistgħu valur eżatt TMP plop s in b.
U aħna qed isir.
>> Allura aħna ve solvuti din il-problema.
Sfortunatament, meta I run dan il-programm f'din il-forma, din attwalment ma tpartit
kwalunkwe valur.
Iżda biex ikunu ċari, għaliex?
I fiss il-problema loġiku minn ftit mument ilu.
Iżda għal darb'oħra, jekk I run dan il-programm, xuy jibqgħu mhux mibdula sa l-aħħar ta '
esekuzzjoni tal-programm.
[Inaudible]
DAVID J. Malan: Allura aħna ma lura xejn.
Allura dan huwa veru.
Iżda jirriżulta hemm daqsxejn ta 'problema hawnhekk għaliex s'issa, ir-
unika ħaġa aħna kont qed kapaċi li jirritornaw hija ħaġa waħda.
U dan huwa restrizzjoni ta 'C. Tista' biss jirritorna verament valur wieħed,
f'liema każ, jien tip ta 'mwaħħla hawn
minħabba I tista 'lura l-valur il-ġdid ta' x jew I tista 'lura l-
valur il-ġdid ta 'y.
Imma nixtieq tnejn lura.
Allura lura mhix is-soluzzjoni sempliċi hawn.
Iżda l-problema fundamentalment huwa għaliex?
Dak li aħna fil-fatt skambjati?
au b.
Iżda aub huma kopji ta 'xuy, li jfisser aħna biss ma kollha ta' dan
xogħol - aħna biss qattgħu bħal tliet minuti jitkellem dwar it-tpartit
funzjoni u t-tlieta ta 'dawn il-varjabbli.
U li l-kbir, perfettament korretta b'mod iżolat.
Iżda u ambitu b s biss huwa f'dawn il-linji hawn.
Hekk biss bħal għal loop, jekk inti tiddikjara integer i ġewwa l-għar
loop - b'mod simili, ġewwa jekk int tiddikjara u b ta 'funzjoni li
inti stajt bil-miktub, dawn qed biss ġewwa validu ta 'dik il-funzjoni.
Li jfisser malli tpartit isir eżekuzzjoni u immorru mil-linja 24 sa
linja 25, xuy ma nbidlux fil-livelli kollha.
Inti biss moħlija lott kollu ta 'żmien jagħmlu skambju kopji ta' fatturi varjabbli.
>> Għalhekk jirriżulta li s-soluzzjoni għal dan huwa attwalment mhux ovvju.
Huwa pjuttost mhux biżżejjed biex jirritornaw valuri għaliex nistgħu
biss ritorn valur wieħed.
U jien verament tixtieq li tpartit kemm xuy fl-istess ħin.
Allura aħna qed tmur biex terga 'lura għal dan.
Iżda għal issa, jirrealizzaw li l-kwistjoni fundamentalment ġejja mill-fatt
li aub huma kopji.
U huma fl-ambitu tagħhom stess.
Ukoll, ejja jippruvaw isolvu din b'xi mod.
Let me attwalment scroll lura hawn u tiftaħ, ejja ngħidu, varjant 4
ta 'dan, buggy4.
U xi ngħidu dwar dan?
Din hija problema simili iżda aktar sempliċi li tħares lejn qabel we tieħu stab fil
jissolvew.
Dan il-programm huwa msejjaħ inkrement.
U apparentement initializes integer x sa 1 fil-linja 18.
I imbagħad titlob x hija l-1.
I imbagħad istqarrija inkrementazzjoni, dot, dot, dot.
I imbagħad call inkrement.
Iżda mbagħad fil-linji 22 u 23, I jitolbu huwa kien inkrementat.
I jsostnu x issa hija tkun xi tkun, preżumibbilment 2.
>> Iżda dan il-programm huwa Buggy.
X'hemm l-problema?
Yeah?
[Inaudible]
DAVID J. Malan: Eżattament.
Allura x ġiet dikjarata ovvjament fuq il-linja 18.
Dan huwa ġewwa ċineg kaboċċi ewlenin tal.
Għalhekk ir-risposta sempliċi hawnhekk hija li, ukoll, x jeżisti hawnhekk.
Ma teżistix fil-linja 32.
Allura dan il-programm fil-fatt mhux saħansitra se jiġbor.
Il-kompilatur, meta nipprova kompilazzjoni ta 'dan il-kodiċi, se Yell fil lili
dwar xi identifikatur mhux dikjarat jew xi ħaġa f'dan is-sens.
Fil-fatt, ejja ipprova.
Dan huwa jagħmel buggy4.
Hemm huwa.
Użu ta 'x identifikatur mhux iddikjarat fil-linja 32.
U fil-fatt, ejja tkun iktar espliċita hawn illum sabiex dan ikun utli fl-
uffiċċju sigħat u fid-dar.
Avviż li huwa ftit cryptically miktub.
Imma l-fatt għandha clang li għajjat ​​fil us, qal
buggy4.c: 32:5, huwa attwalment utli.
Dan ifisser li l-iżball huwa fuq il-linja 32 fil-pożizzjoni karattru 5.
Allura wieħed, tnejn, tlieta, erba ', ħames.
Li, fil-fatt, meta l-problema hija.
U wkoll li wieħed iżomm f'moħħu li ħinijiet tal-uffiċċju u d-dar, jien xxurtjati hawn.
I jkollhom waħda żball.
Huwa ser tkun relattivament faċli biex jiffissaw.
Imma jekk ikollok iskrin kollu sħiħa ta 'messaġġi ta' żball enormi, għal darb'oħra,
jirrealizzaw li l-waħda bottommost jista 'jkun biss sintomatika ta'
dawk topmost.
Hekk dejjem chase stabbiliti bugs tiegħek minn isfel quċċata.
Minħabba li hemm jista 'jkun biss effett daisy-katina li qed tissuġġerixxi int
għandhom problemi mod aktar milli suppost fil-fatt tagħmel.
>> Allura kif nistgħu jiffissaw dan jekk l-għan tiegħi huwa li inkrement x?
X'hemm li?
Okay.
Allura nistgħu nagħmlu x globali.
Ejja jieħdu l-buttuna li I wissiet dwar preċedenti.
Iżda Heck, aħna biss bżonn ta 'jiffissaw malajr.
Mela ejja biss jgħidu x int up here.
Li jagħmel x globali.
Allura issa għandha ewlieni aċċess għalih.
U inkrement għandu aċċess għaliha.
U hekk let me jimxi 'l quddiem u jikkumpilaw dan issa.
Għamla buggy4, Ikteb.
Jidher li jikkompilaw issa.
Ejja run buggy4, u jidher li attwalment jaħdmu.
Issa dan huwa wieħed ta 'dawn l-affarijiet -
do kif ngħid jien, mhux bħala I do, kif stajt biss isir hawn.
Minħabba b'mod ġenerali, programmi tagħna ser jiksbu ħafna aktar interessanti u
ħafna itwal minn dan.
U jekk soluzzjoni tiegħek għall-problemi tal-ħajja huwa biss ah, tpoġġi l-
varjabbli fil-quċċata tal-fajl tiegħek, malajr ħafna do programmi tikseb
horrifically diffiċli biex tamminstrahom.
Jiġrilha diffiċli li wieħed jaħseb up ismijiet varjabbli ġodda.
Jiġrilha diffiċli biex jifhem dak varjabbli qed tagħmel dak.
>> U għalhekk b'mod ġenerali, din mhix soluzzjoni tajba.
Mela ejja tagħmel dan aħjar.
Aħna ma rridux li jużaw varjabbli globali hawn.
I do jridu inkrement x.
So I jistgħu ovvjament -
fl-aħħar tal-ġurnata, huwa tip ta 'storja iblah għaliex aħna biss tagħmel dan.
Imma jekk jien ma taf dwar dak l-operatur, jew I ma kienx permess li
bidla fl prinċipali nfisha, kif inkella jista I timplimenta Ken hawn fuq, dan
żmien li ma kubu iżda li inkrement?
Kif nista 'bidla dan ħaġa hawn?
Yeah.
[Inaudible]
DAVID J. Malan: Okay, tajba.
Allura għaliex ma I jgħaddu fil x?
U allura minflok jirritornaw dan, għaliex ma I biss tagħmel ritorn x + 1?
Issa, l-affarijiet ftit aktar jkollha tinbidel hawnhekk.
Jien fuq il-binarju dritt.
X'iktar għandi bżonn biex tweak?
Xi ħadd ieħor.
Yeah?
[Inaudible]
DAVID J. Malan: I ħtieġa li tinbidel it-tip ritorn ta 'inkrement
għaliex mhuwiex null.
Null tfisser xejn l-jiġu rritornati.
Iżda b'mod ċar, issa huwa.
Allura dan jeħtieġ li tinbidel li int tkun konsistenti ma 'kwalunkwe
Jien fil-fatt jirritornaw.
>> Issa xi ħaġa oħra għadu Buggy hawn.
Yeah?
[Inaudible]
DAVID J. Malan: So I bżonn biex inkrement x?
[Inaudible]
DAVID J. Malan: Ah, so I bżonn li tgħaddi x.
So I bżonn tagħmel dan hawn.
Allura l-prototip, għandi jibdlu dan up here.
Allura dan għandu jsir int.
Dan għandu jsir -
HMM.
I attwalment jkollhom bug stabbiliti hawn.
Ejja jiffissaw dan ewwel waħda.
X'għandu dan fil-fatt tkun?
Għalhekk huwa ltqajna biex tkun xi ħaġa int.
Jista 'jkun x.
Iżda franchement, jekk tibda ssejjaħ kollha ta 'x varjabbli tiegħek, li għaddej biex tikseb
inqas u inqas ċara li huwa li.
Mela ejja biss b'mod arbitrarju jagħżlu konvenzjoni ismijiet differenti għall tiegħi
helper funzjonijiet, il-funzjonijiet jien bil-miktub.
Aħna ser sejħa hija.
Jew nistgħu sejħa hija - ejja sejħa hija even_number li jkun aktar espliċitu.
Allura mbagħad I jkollhom jirritornaw irrispettivament min-numru huwa plus 1.
U issa għandi jibdlu ħaġa waħda oħra up hawn u wieħed
Ħaġa oħra up here.
What do I għandhom jibdlu fuq il-linja 21 l-ewwel?
Għandi biex tassenja lill x.
So I ma tistax biss sejħa x inkrement.
I bżonn li wieħed jiftakar ir-risposta billi jinbidel il-valur ta 'x fuq
ix-xellug idejn.
U anki jekk x issa hija fuq ix-xellug u tal-lemin, li l-totalment multa minħabba
il-lemin gets esegwiti ewwel imbagħad gets plopped fil-xellug
Ħaġa idejn, x f'dan il-każ.
U mbagħad fl-aħħarnett, din hija tiffissa faċli issa.
Dan għandu biss jaqblu x'hemm stabbiliti hawn taħt.
Int numru.
>> Kull dritt.
Allura mazz sħiħ ta 'bidliet għal funzjoni verament stupid.
Imma rappreżentant ta 'l-affarijiet li aħna ser dejjem trid tagħmel.
Sabiex tagħmel buggy4.
Stajt invitat up x'imkien.
Oh my God.
Ħames żbalji fi, simili, programm ta 'sitt linja.
Allura x'hemm ħażin fuq il-linja 18, il-karattru 5?
Kull dritt.
So I għandhom jiddikjaraw dan int.
Kull dritt.
Mela ejja ara, mazz sħiħ ta 'żbalji oħra.
Oh my god.
19, 18, 21.
Iżda għal darb'oħra, ejja biss ċar l-iskrin -
L Kontroll hawn - u ri-run clang.
Allura 5 problemi hija attwalment biss li wieħed.
Allura issa ejja jimxu buggy4, Ikteb.
Whew.
x ġiet inkrementat korrett.
>> Kull dritt.
Kwalunkwe mistoqsijiet dwar kif inkrement numri?
Yeah?
SPEAKER 2: Għaliex huwa li inti tista 'biss bidla x-numru fil-varjabbli
isem u inneħħu jafu dak li jfisser?
DAVID J. Malan: Mistoqsija tajba.
Kif huwa li nista 'biss bidla x-numru u l-programm se jkun jaf
immedjatament?
Għalhekk għal darb'oħra, think minnha bħala dan estrazzjoni.
Mela jekk jiena prinċipali u Ken huwa inkrementali, franchement, jien ma 'kura
dak Ken sejħiet iPad tiegħu.
I ma kura dak li huwa jsejjaħ kwalunkwe ħaġa li għandha x'taqsam ma 'l-implimentazzjoni tiegħu
ta 'din il-funzjonalità.
Allura dan huwa dettall implimentazzjoni li jien, prinċipali, ma
jkollhom jimpurtahom.
U għalhekk sempliċiment jinbidlu b'mod konsistenti ġewwa tal-funzjoni, numru hawnhekk
u n-numru hawnhekk, hija kollha li tieħu sakemm I recompile.
Huwa tip ta 'bħal jekk inti taħseb dwar - ħafna minna, dawk tal inti ma sewwieq
liċenzji li stajt misjuqa, jew jekk inti ħadthom anke misjuqa fil-karozza -
ħafna minna għandna ebda idea kif taħdem karozza minn taħt il-barnuża.
U litteralment, jekk inti tiftaħ il-barnuża, ħafna minna - myself inklużi -
mhumiex ser verament jafu dak li aħna qed tfittex fuq.
Tip ta 'bħal inti tista' tħossok ma għalf bħal dan id-dritt issa.
Iżda aħna ma verament ikollhom kura kif il-karozza taħdem.
Aħna ma jkollhom kura liema kollha ta 'l vireg u l-pistuni u kejbils ġewwa ta
il-karozza huma fil-fatt jagħmlu.
>> Allura xi ħaġa bħal dak li inti sejħa-pistun ma jimpurtax
hawn f'dan il-każ.
Istess idea.
Yeah?
[Inaudible]
DAVID J. Malan: Jekk kien hemm użi iktar tal-mument xa varjabbli ilu,
int, l-programmer, ikollhom dawn jitbiddlu kullimkien.
Jew inti tista 'litteralment tagħmel, File Menu, u mbagħad Sib / Ibdel,
xi ħaġa bħal dik.
Imma inti se jkollu jagħmel dawk il-bidliet lilek innifsek.
Int għandek tkun konsistenti.
[Inaudible]
DAVID J. Malan: A ordni partikolari bħal hawn?
Jekk dan kien int numru ieħor?
Yeah.
Allura ordni kwistjonijiet meta qed iċċempel l-funzjoni.
Mela jekk jien kienu sejħa inkrement hawn ma 'xi ħaġa virgola xi ħaġa,
hemm immappjar dirett.
Il-varjabbli 1, ikun x'ikun huwa msejjaħ, huwa magħmul kopja tal-ewwel
argument hawn fuq.
Jiddispjacini, dan m'għandux ikun parentesi.
Il-linji argument 2 sa ma t-tieni waħda.
>> Allura ordni, iva, il-kwistjonijiet.
Kull dritt.
Jiddispjacini I ħa triq twila biex naslu s'hemm.
Mistoqsijiet oħra?
Kull dritt.
Mela ejja ara jekk ma nkunux nistgħu żebgħa stampa ta 'dak li attwalment għaddejjin
hawn taħt il-barnuża, biex ngħidu hekk.
Allura dan huwa rettangolu li jistgħu jirrappreżentaw memorja tal-kompjuter tiegħek.
Għalhekk anki jekk ma jkollok ebda idea kif memorja xogħlijiet jew kif taħdem RAM, mill-inqas
jassumi li inti għandek għenieqed ta 'dan dawn il-jiem.
You ħadthom ltqajna megabytes ta 'dan.
You ħadthom ltqajna gigabytes ta 'dan.
U nafu minn żero ġimgħa li byte huwa biss dak?
8 bits.
Dritt, hekk 8 zeroes u dawk.
Allura jekk il-kompjuter tiegħek għandha GIG ta 'RAM, żewġ gigs ta' RAM dawn il-jiem, għandek
biljun jew 2 biljun bytes tal-memorja, jew madwar 8 biljun jew 16000000000
bits, ġewwa tal-kompjuter tiegħek.
Issa kuntrarjament għall-eżempju Willy ftit sufi, mhuwiex partiċelli manjetiċi
tipikament aktar.
Dejjem aktar, fil-laptops inqas, huwa drives stat solidu, SSDs, li
biss jkollhom l-ebda partijiet li jiċċaqalqu.
Dan kollu elettroniku.
Dan kollu elettriku bbażata.
Allura taħseb, għalkemm, ta 'dan ir-rettangolu biss bħala li tirrappreżenta l-waħda jew tnejn
gigabytes ta 'memorja li għandek.
>> Allura huwa ta 'blokki ta' memorja.
Issa l-dinja tax-xjenza tal-kompjuter għandu tip ta 'biċċiet maqsum off ta'
memorja biex tagħmel affarijiet differenti.
Għalhekk per eżempju, jekk dan huwa RAM kompjuter tiegħek - kif issuġġerit mill-
rettangolu hemm - jirriżulta li permezz tal-konvenzjoni, fil-quċċata ta 'RAM tiegħek, sabiex
biex ngħidu hekk, huwa ġeneralment dak li sejjaħ segment test.
Dawn huma l-zeroes u dawk li inti għandek miġbura.
Allura meta aħna ve ħares taħt il-barnuża lejn dak a.out hija, kollha
l zeroes u dawk -
meta inti tmexxi programm, dawk zeroes u dawk huma mgħobbija minn drive tiegħek
drive fis xi ħaġa imsejħa RAM.
U fil-RAM, dawn qed tpoġġi fil-quċċata.
Issa sadanittant, inti għandek affarijiet oħra.
Data initialized, data uninitialized.
Dawk swaths 2 ta 'memorja jirreferu għall-varjabbli globali, li
inti ma spiss jużaw.
Imma kultant jekk inti tagħmel, huma jispiċċaw up hemm ukoll.
Imbagħad hemm xi għalf ieħor.
Ambjent varjabbli, li aħna mhux se jqattgħu ħafna ħin fuq.
Iżda mbagħad żewġ affarijiet importanti li se terga 'lura matul dan
, semestru munzell u borġ.
>> Għalhekk ħafna mill-memorja tal-kompjuter tiegħek huwa rriservat meta tmexxija ta 'programm għall-
xi ħaġa imsejjaħ il-munzell u xi ħaġa imsejjaħ il-borġ.
U aħna ma tkunx qed tmur biex jitkellmu dwar il-borġ llum, iżda aħna se
jitkellmu dwar il-munzell.
U l-munzell huwa maħsub li jevokaw l-viżwali ta bħall-sala dining
trejs ikla fil Mather House, jew kull meta inti jiġri li jkun, fejn il-
dining sala persunal nadif minnhom kuljum.
Huma munzell up mill-art fuq up.
U bl-istess mod fil-memorja, hemm din l-idea ta 'tqegħid xi ħaġa fuq
munzell, tqegħid xi ħaġa fuq munzell, tqegħid xi ħaġa fuq munzell.
U dak li rridu nfissru minn dan?
Ukoll, ejja zoom fl fuq ftit-parti t'isfel ta 'din l-istampa, l-kompjuter tiegħek
RAM, tipproponi dan li ġej.
Jirriżulta li meta inti tmexxi programm bħal a.out jew hello, tkun xi tkun
il-programm huwa li inti stajt bil-miktub,
għal darb'oħra, dawk zeroes u dawk huma mgħobbija mill-hard drive tiegħek - li huwa
ħażna fit-tul, jibqa hemmhekk anki meta inti iġbed il-plagg -
mgħobbija fil RAM.
RAM huwa aktar mgħaġġel milli hard drives.
Huwa iżgħar minn hard drives.
Iżda huwa fejn programmi live waqt li tkun qed taħdem fuqhom.
>> Allura inti ikklikkja darbtejn programm fuq Mac jew PC - huwa mgħobbi minn
hard drive fis-RAM.
Hekk kif huwa jitgħabbew fil-RAM, il zeroes u dawk jmorru fil-quċċata mod, il-
hekk imsejħa segment test.
Iżda mbagħad hekk kif program tiegħek attwalment tibda taħdem, il-prinċipali
funzjoni tissejjaħ.
U prinċipali, kif aħna stajt tidher, ta 'spiss ikollu varjabbli lokali.
U għandu ints u kordi u Chars u simili.
Mela jekk program tiegħek li għandek bil-miktub jew il-programm li għandek
double għafast użat xi varjabbli ġewwa ta 'prinċipali, huma jispiċċaw fil-
qiegħ tal tiegħek munzell ta 'memorja, biex ngħidu hekk.
Issa aktar konkret, dak ma dan fil-fatt jfisser?
Dan sempliċiment ifisser li jekk konna se jinnumera l-affarijiet -
jekk konna se numru l-bytes ta 'RAM fil-kompjuter tiegħek, avviż li
dan jista 'jkun żero numru byte.
Dan jista 'jkun in-numru byte wieħed, tnejn, tlieta, erba', ħames, sitt, kollha
il-mod sa biex simili -
2000000000 tkun it-triq kollha up hemm fil-quċċata.
Allura fi kliem ieħor, meta nitkellmu dwar RAM jew memorja f'termini ta 'bytes, huwa
ifisser biss li xi ħadd iddeċieda dak li jinnumera kull
dawk biċċiet ta 'memorja.
>> Allura meta għandek bżonn 32 bits għal int, jew għandek bżonn 8 bits għal char, fejn
ma huma jispiċċaw fil-memorja?
Ukoll kunċettwali, huma biss jispiċċaw fil-qiegħ ta 'din
ħaġa imsejjaħ il-munzell.
Imma x'hemm interessanti issa huwa meta jitlob prinċipali funzjoni.
Ejja ngħidu funzjoni msejħa foo, biss l-isem arbitrarja.
Dak li jiġri huwa ewlenija hija fil-qiegħ ta 'dan munzell ta' memorja.
Foo issa titqiegħed fuq quċċata ta 'prinċipali fil-memorja.
Allura xi varjazzjonijiet lokali li foo ikun jispiċċaw tip ta 'konċettwalment hawn fuq
dawk fl prinċipali.
Jekk foo jitlob funzjoni oħra msejħa bar, dawk il-varjabbli jispiċċaw here.
Jekk bar jitlob xi ħaġa oħra, hawn, hawn, hawn.
Allura x'hemm interessanti dwar tmexxija ta 'programm huwa li kif inti sejħa funzjonijiet,
u kif dawk il-funzjonijiet sejħa funzjonijiet, u kif dawk il-funzjonijiet sejħa funzjonijiet,
inti jibnu din munzell ta 'funzjonijiet fil-memorja.
U darba biss ta 'prospetti funzjoni ma tibda jkollna li l-memorja lura.
Allura wieħed mill-modi eħfef biex jispiċċaw ta 'memorja fil-programm tal-kompjuter hija li
jiktbu funzjonijiet li qatt ma ritorn.
>> Għalhekk per eżempju, ejja juru kemm ma '
intenzjonalment Buggy programm.
Let me imorru quddiem u jagħmlu # jinkludu , prinċipali int (vojt).
U jien ser tagħmel filwaqt li (2> 1), li probabilment mhux se qatt
bidla fuqna.
U let me imorru quddiem issa u jagħmlu printf.
Fil-fatt, li għaddej biex tkun inqas viżwalment interessanti.
Ejja nagħmlu dan.
Għal int (i = 0; i> 0).
Ejja jagħmlu dan l-iżball, i + +.
U ejja ma printf hawn.
Ejja prattika dak I kien jippriedka.
Ejja jkollhom metodu hawn.
Kor null, u aħna ser ngħidu int i.
U mbagħad jien se ngħid, printf -
oh, ejja tagħmel dan aktar interessanti.
Ejja fil-fatt ma print xejn affattu.
Ejja biss tagħmel dan.
Chorus (i).
>> Kull dritt.
Allura dan huwa Buggy għaliex għaliex?
Jien jagħmlu dan up bħala mmur minħabba li l-programm ma attwalment tagħmel xejn
ta 'interess.
Iżda li mhux l-għan.
Il-mira hija li jikteb programm li funzjoni prinċipali ma dak, apparentement?
Sejħa innifsu.
U fil-fatt, ma kellniex bżonn il-linja.
Ejja anki tissimplifika dan biss sabiex ma nitilfu l tassew l-
fundamentali bug.
Jistieden ewlenin kor nijet xi kor.
Imbagħad għamilt xi ħaġa stupid, u kelli kor sejħa kor minħabba I jassumi
xi ħadd ieħor kien se timplimentaha forsi.
U issa dan mhux se tiġbor s'issa.
I-ħtieġa li jagħmlu dak?
I bżonn l-prototip, tiftakar.
So I jeħtieġ li jkollhom up hawn kor nulli (int i);.
>> Allura issa, jekk jien jinżlu hawn -
fil-fatt, ejja tuża l-tieqa akbar.
Ejja jimxi 'l quddiem u jagħmlu kor.
Użu ta 'dikjaratur mhux identifikati i.
Oh, li kien stupid.
M'għandniex bżonn l-argument.
Ejja biss tagħmel dan.
Jixtiequ kellna beda dan il-mod.
Kien ikun ta 'programm ħafna aktar faċli biex jiktbu.
Allura hemm.
Issa ejja jmorru fuq l terminal tieqa tiegħi, mill-ġdid run clang.
U hawn we go.
Dan kien verament mgħaġġel.
Dak li fil-fatt ġara biss, għalkemm?
Well, issa I ser żid il-linja istampar, hekk nistgħu naraw.
So let me say printf, ejja ngħidu, jien fil hawn.
Okay, l-ebda varjabbli, aħna ser jitilqu minnu bħal dik.
Let me jerġa 'jsir jagħmlu.
Let me-ripetizzjoni kor.
U come fuq.
Żomm għaddejjin.
Bħala twarrib, għaliex ma ma ġġarraf għadhom?
It-tort segmentazzjoni ġara super fast qabel.
[Inaudible]
DAVID J. Malan: Eżattament.
Allura tieħu ż-żmien biex jistampaw.
Hija biss jieħu aktar xogħol min-naħa tal-kompjuter.
U hemm hu.
Tort Segmentazzjoni.
>> Allura avviż kemm programmi fast run.
Jekk int ma istampar xejn, super fast.
Iżda aħna għadhom kisbu dan tort segmentazzjoni għaliex dak li kien qed jiġri?
Ukoll, jekk inti taħseb dwar kif memorja tal-kompjuter tiegħek hija stabbilita, din
jiġri li jkun prinċipali.
Imma hawn -
ejja biss sejħa dan kor, u ejja sejħa dan kor.
U issa jekk jien estetika tiegħi dritt, dan huwa biss se ngħid kor,
kor, kor, kor, kor, kor, kor, nauseum ad.
U eventwalment, dak li jiġri?
Jekk l-istampa kbar litteralment huwa dan, dak li jiġri biss konċettwalment?
Il-eċċessi munzell l-munzelli.
Jew agħar, inti biss eċċess kollox, inkluż il-segment test, li huwa
l zeroes u dawk li jirrappreżentaw il-programm tiegħek.
Fil-qosor, din hija biss super, bad super.
Dritt?
Programm tagħkom telgħu barra mill-kontroll.
Inti qed tuża memorja mod aktar milli suppost intenzjonat kollha minħabba stupid
żball, f'dan il-każ.
Jew f'dan il-każ, funzjoni very deliberatament jsir ssejjaħ lilha nnifisha.
Issa dan mhux kollox ħażin.
Funzjonijiet li ssejjaħ infushom attwalment għandha setgħa kbira
meta tuża b'mod korrett.
I ma jkunux użati b'mod korrett hawnhekk.
>> Allura dan mhux kollox ħażin.
Imma l-fatt li jien qatt ma attwalment niefqu milli nsejħulha myself hija fundamentali
dgħjufija hawn dan il-programm.
Għalhekk, fejn huma aħna se kollha ta 'dan?
Ukoll, dak li verament jiġri?
Meta I-sejħa l-funzjoni inkrement, bħal aħna kienu qed jagħmlu fil dawn l-eżempji,
I jkollhom valur bħal 1 li I jgħaddu pulzieri
I jgħaddu f'kopja tad-numru wieħed.
Allura li ġej jiġri.
Mela ejja jmorru fil-eżempju inkrement.
U dan Guy dritt fuq hawn.
Allura hawnhekk huwa dak li verament jiġri.
Meta I imsejħa żieda, u I jgħaddu x-pictorially x'hemm
għaddejjin hawn hija din -
jekk Għandi l-valur ta '1 maħżun hawnhekk, u I attwalment sejħa inkrement, li
li issa hija msejħa kor -
yeah, li l-jitfg me off hawn.
Mela ejja sejħa dan inkrement.
U aħna ma jafux liema din il-funzjoni li jmiss li għaddej biex tkun.
Allura dak li verament jiġri huwa hawn x'imkien prinċipali, għandi blokki ta '
memorja li huwa ħażna in-numru 1.
Meta I call inkrement, jien jużaw ieħor blokki ta 'memorja, imma issa I
għandhom il-kopja ta '1.
Meta I inkrement li l-valur, dan isir 2 - horribly bil-miktub dwar il-
iskrin hawn.
Iżda mbagħad, dak li jiġri hekk kif prospetti inkrement?
Din il-memorja biss gets mogħtija lura lill-sistema operattiva, li tfisser kull
inti ghamilt xejn utli.
Il-wieħed li kien oriġinarjament jinsabu fil prinċipali għadu attwalment hemm.
>> Għalhekk, fejn huma aħna għaddejjin ma 'dan?
Ukoll, jirriżulta li fil-memorja għandek dan lura lura sekwenza ta '
bytes li inti tista 'tpoġġi Jittieħed pulzieri
U jirriżulta li aħna stajt diġà raw xi ħaġa li tinvolvi t-tqegħid
affarijiet lura lura lura lura.
X'inhu string, ibbażata fuq ġimgħa waħda u issa ġimgħatejn?
Allura huwa biss ġabra ta 'karattri.
Għalhekk jirriżulta, hekk kif inti tista 'tpoġġi numri fil-memorja, bl-istess mod inti tista'
jitqiegħdu karattri fil-memorja.
U ladarba nibdew karattri tqegħid fil-memorja lura lura lura biex
lura, jirriżulta li l-użu l-aktar sempliċi ta 'affarijiet bħal għal loop jew
linja filwaqt li, nistgħu jtenni -
mix-xellug għal-lemin fuq il-karattri fit string -
u tibda timmassaġġja minnhom fil-karattri differenti għal kollox.
A tista 'ssir B. B jista' jsir C. Allura li finalment, nistgħu nieħdu l-
Sentenza Ingliża li attwalment jagħmel sens u jikkonvertu kull wieħed minn dawk
ittri wieħed kull darba bil-mixi permezz memorja tal-kompjuter tagħna xellug għal
dritt li fil-fatt kriptaġġ.
>> Mela ejja tagħti ħames minuti break tagħna hawn, u meta niġu lura, aħna ser
bidu dan il-proċess ta scrambling informazzjoni.
>> Kull dritt.
Għalhekk qabel we adsa fl għal xi kripto u dawn l-affarijiet imsejħa arrays, let me
nieqaf għal xi mistoqsijiet għaliex inħoss bħal I really tip ta 'xejn ċar xi
dawk is-suġġetti.
Mela ejja tiffissa issa jekk nistgħu.
Allura aħna biss tkellem dwar il-valuri ta 'ritorn.
Aħna tkellimna dwar l-argumenti.
U tkellimna dwar dan il-kunċett, li aħna ser terga 'lura fit-ġimgħat li
ġejjin, tal-wiri tal-memorja bħala mazz sħiħ ta 'dawn stacked
trejs, biex ngħidu hekk.
Minn qiegħ fuq up, b'tali mod li kull trej li gets mqiegħda fis-munzell jirrappreżenta
funzjoni li l-li bħalissa qed jissejħu.
Kwalunkwe mistoqsijiet?
Allura kif madwar - let me tipprova tistaqsi mistoqsija.
I iżommu spoiling, iżda issa it's - you've kollha raw wiċċ tal-boy.
Allura aħna ser terga 'lura għal dan.
>> So let me jistaqsu mistoqsija hawn.
Let me jissimplifikaw dan lura għal dak li kien qabel xi wħud Q preċedenti tagħna & A.
U l-fatt li żieda għandha parentesi miftuħa, in-numru int, magħluqa
parentesi.
Xi jfisser in-numru int jirrappreżenta?
[Inaudible]
DAVID J. Malan: An argument.
Okay, imma dak argument?
[Inaudible]
DAVID J. Malan: Jiddispjacini, dak li?
SPEAKER 3: Haga inti tgħaddi pulzieri
DAVID J. Malan: Okay.
Allura xi ħaġa li inti tgħaddi pulzieri
U b'mod aktar ġenerali, huwa biss l-input.
Jekk int bil-miktub funzjoni u l-iskop li l-funzjoni fil-ħajja huwa li tagħmel
xi ftit differenti kull darba li tużah, allura l-uniku mod għal
dak li jiġri verament jidher li jkun li jipprovdilha kontribut sabiex
tista 'tagħmel xi ħaġa differenti ma' dak l-input kull darba.
>> Għalhekk ikollok bżonn li jispeċifikaw żewġ affarijiet meta l-funzjoni jieħu inputs.
Ikollok bżonn li jispeċifikaw l-isem li inti tixtieq li tagħti għal dik input, purament għall
konvenjenza tiegħek sabiex inti tista 'tirreferi lilu fejn għandu l-funzjoni li inti
yourself qed tikteb, kif għamilt hawn fil-linja 32.
Imma inti wkoll bżonn biex jispeċifika t-tip tagħha għaliex Ċ hija lingwa ta 'programmar
li biss jeħtieġ
li jekk inti tixtieq varjabbli, inti għandek tgħid il-kompjuter liema
data tip huwa,
fil-parti kbira hekk li jaf kemm bits għal
jalloka għal dan il-varjabbli.
Minħabba li jista 'jkun 6 -
sorry, dan mhux se jkun 6.
Jista 'jkun 16.
Hija tista 'tkun 8.
Hija tista 'tkun 32, anke 64.
Iżda l-kompjuter jeħtieġ li tkun taf.
Issa l-int fuq in-naħa tax-xellug jirrappreżenta dak, b'kuntrast?
[Inaudible]
DAVID J. Malan: X'hemm li?
[Inaudible]
DAVID J. Malan: It-tip tal-funzjoni u, b'mod aktar speċifiku, il-
tip ta 'produzzjoni tagħha.
Dritt.
Allura filwaqt li l-ħaġa fil-parentesi jirrappreżenta input tagħha, jekk ikun hemm, il-
Ħaġa lejn ix-xellug jirrappreżenta produzzjoni tagħha.
U f'dan il-każ, iż-żieda apparentement jirritorna int.
U għalhekk int huwa t-tip ritorn ta 'din il-funzjoni.
>> Xi jfisser li jirritornaw?
Litteralment, tuża r-ritorn keyword.
U mbagħad jekk dak li qed jirritornaw lejn il-lemin tal-keyword huwa
numru sħiħ, allura dan hu tassew konsistenti ma 'dak li għandna imwiegħed.
Inti ma setgħux jagħmlu xi ħaġa bħal din -
hello, dinja -
għaliex dik hija string.
Ovvjament mhuwiex numru sħiħ.
Allura fil-qosor, il-piż huwa verament fuqna, il-programmer, li tkun speċifika kemm
għal dak li aħna qed jirritornaw u li mbagħad fil-fatt imorru dwar jirritornaha.
U mbagħad tagħmel tad aktar ċara tal-kuntest -
hemm hu ġdid.
Il-kuntest -
sorpriża kbira li ġejjin fil ftit mument.
Il-kuntest hawn issa huwa li l-memorja tal-kompjuter tiegħek huwa, għal darb'oħra,
gigabyte, żewġ gigabytes, tkun xi tkun.
Forsi huwa aktar.
Forsi huwa inqas.
Iżda l-kompjuter fehmiet bħala li għandhom taqsimiet differenti.
Xi ħaġa tmur stabbiliti hemmhekk.
Xi ħaġa oħra tmur up hemm.
Jittieħed differenti tmur fin-nofs.
U llum, aħna biss tibda javżak din l-istorja.
>> Iżda aħna ser terġa 'lura għal dan iż-żmien fuq.
Għal issa, il-biċċa biss ta 'memorja aħna verament jimpurtak huwa l-segment test
minħabba li ftit tirrappreżenta l zeroes u dawk
li clang tkun outputted.
Allura meta inti tmexxi kmand fil-keyboard simili a.out, jew inti doppja
ikklikkja l-ikona fuq Mac OS jew Windows, programm tiegħek mgħobbija minn drive tiegħek
issuq fil-RAM.
U huwa plopped fil-quċċata ta 'RAM kompjuter tiegħek, biex ngħidu hekk.
Issa sadanittant, kif program tiegħek tibda taħdem u ewlieni gets msejħa fl-
programm inti kiteb jew il-Microsoft programm jew Apple kiteb, xi tagħha
varjazzjonijiet lokali jispiċċaw stabbiliti hemmhekk fil-qiegħ tal-memorja tal-kompjuter tiegħek.
Iżda jekk jitlob prinċipali funzjoni oħra li hi stess tkun varjabbli jew
argumenti, huma jispiċċaw hawn fuq.
U jekk dik il-funzjoni sejħiet xi ħaġa, huma jispiċċaw hawn fuq,
hawn fuq, hawn fuq.
U darba biss funzjoni isir esekuzzjoni ma l-munzell ta 'dixxijiet, għalhekk
biex jitkellmu, tibda tikseb iktar baxxi.
U dan huwa dak li mbagħad, fi ftit kliem, tispjega għaliex, meta inti sejħa kubu -
jew inti sejħa inkrement -
int tgħaddi f'kopja tal-valur.
U dak li jfisser pictorially hija li int litteralment bil-miktub l-
numru 1 f'parti oħra ta 'memorja, li jinbidlu li 1 sa 2, fil-każ ta'
inkrement -
jew lil 8, fil-każ ta 'kubu -
u mbagħad jitfg li l-memorja bogħod hekk kif il-inkrement jew il-kubu
funzjoni prospetti.
>> Mistoqsija.
[Inaudible]
DAVID J. Malan: Fejn - varjabbli globali huma maħżuna fil x'hemm
bħalissa msejjaħ id-data initialized jew data uninitialized.
Id-differenza hija, jekk għandek varjabbli globali, u inti tassenja din
immedjatament valur ugwali ma 'l-sinjal, dan jispiċċa fil-quċċata hemmhekk.
U jekk inti biss jgħidu int x virgola bl-ebda valur, dan jispiċċa ftit
aktar baxx fl-RAM sempliċiment billi konvenzjoni.
Mistoqsijiet oħra.
Kull dritt.
>> Allura din l-istampa se terga 'lura kif aħna nikseb aktar qawwija ma' dak li nistgħu nagħmlu
mal-kompjuter.
Iżda għal issa, ejja jkollhom intro qasira għall-kriptografija, tip speċifiku ta '
kriptografija li ma isolvi l-problemi tad-dinja, iżda ma ssolvi
xi wħud minnhom.
F'dan il-każ hawnhekk, aħna għandna xi ħaġa imsejħa kriptografija ċavetta sigriet.
U kriptografija sigrieti ewlenin, kif tissuġġerixxi l-isem, joħroġ sigurtà tagħha
minn sigriet.
Għalhekk per eżempju, jekk int lura fl-iskola grad u int tgħaddi minn
ftit sigriet imħabba ittra lill-tifel jew tifla li qed tgħaffiġ fuq - jekk inti
riedu li jgħaddu li permezz tal-udjenza, inti probabilment mhux se jikteb
tali nota bl-Ingliż jew kwalunkwe lingwa tiegħek huwa, iżda, inti
jista 'kriptaġġ.
Jew inti tista 'biss tibgħathom messaġġ f'dawn il-jiem.
Iżda int tista 'attwalment jgħaddihom nota matul il-klassi.
U biex tagħmel dan b'mod sikur, b'tali mod li l-ħbieb tiegħek u l-għalliema
ma nafx dak li qed tikteb, inti tista 'toħroġ bi pjuttost sempliċi
algoritmu -
żgħażagħ għalkemm inti tista 'tkun -
biss ġirja-kliem.
Allura minflok bil-miktub A, inti tista 'tikteb B. Minflok B, inti tista' tikteb
C. Minflok C, inti tista 'tikteb D, u ibqa' sejjer hekk.
Jew inti tista 'toħroġ bi traduzzjoni aktar sofistikati ta' ittri
għall-ittri differenti.
Iżda l-qabda hija l-tifel jew tifla li lilha qed tibgħat din in-nota trid
taf xi ħaġa.
Liema huwa dak li, ovvjament?
Bħal, liema sigrieta tiegħek.
Bħal, dak li huwa li l-immappjar bejn Kif u Bs u Cs u Ds?
Huwa sempliċement tiżdied wieħed, biex ngħidu hekk, għal kull wieħed mill-ittri li jmorru minn
A sa B, B sa C?
Huwa aktar kumplessa minn dik?
Allura inti u tgħaffiġ tiegħek jeħtieġ li jkollhom din l-informazzjoni sigrieta.
Iżda hemm tip ta 'qabda-22 here.
Jekk dan huwa l-ewwel darba li qed tibgħat din l-ittra imħabba permezz tal-
klassi, kif huwa li tifel jew tifla se tkun taf liema l-sigrieti anke hu?
Allura sigriet ewlieni kripto ma ssolvix il-problemi kollha tad-dinja.
U hemm attwalment relazzjoni li aħna ser terga 'lura għal lejn
aħħar semestru tal-.
>> Bl-istess mod, m'għandhom xejn minna probabbilment qatt bagħtet -
bl-istess mod, do ħafna minna ma jafux xi ħadd li jaħdem, per eżempju, fil-
Amazon.com.
And yet, ħafna minna probabbilment mixtrija Jittieħed fuq Amazon.com.
U aħna kont qed mgħallma li wieħed jassumi li dawn le-commerce
transazzjonijiet huma sikuri.
Dritt?
Il-URL probabbilment jgħid https.
Hemm forsi ikona katnazz iblah ftit x'imkien.
Hemm xi tip ta 'kriptografija żgurati l-informazzjoni tiegħek karta ta' kreditu
bejnek u Amazon.com.
And yet, jekk kriptografija jinvolvi jafu xi sigriet, u għadhom I ma
taf xi ħadd fil-Amazon, u stajt ċertament mhux irranġati xi tip ta '
sigriet ma 'xi ħadd fil-Amazon, kif huwa kompjuter tiegħi jew browser tiegħi tagħmel dan?
Ukoll, jirriżulta hemm tipi oħra ta 'kriptografija għal kollox li ssolvi
dik il-problema.
Iżda għal-lum, aħna ser tiffoka fuq il-wieħed sempliċi, fejn inti tista 'tirranġa fil
javvanzaw tkun taf xi sigriet, bħal plus 1 jew xi immappjar bejn Kif u Bs.
>> U l-proċess ta 'kriptografija ġeneralment jinvolvi dan.
Inti għandek xi test sempliċi, jidhru hawn fuq xellug.
You run permezz ta 'xi tip ta' algoritmu jew il-proċedura
għall encrypting dan.
Forsi dan huwa biss A issir B, B isir C. U allura inti tispiċċa bil
cipher test.
Sadanittant, ladarba tgħaffiġ tiegħek tirċievi n-nota sigriet, hu jew hi għandu mbagħad
decrypt dan billi ġeneralment rivers li algoritmu sabiex tikseb
lura t-test sempliċi.
Issa hemm incarnations fiżiċi ta 'dan.
Per eżempju, dan huwa ċirku ftit decoder sigriet.
U dan huwa ċirku fis-sens li hemm żewġ dials hawn.
Fuq il-periferija ta 'barra tal dan il-ħaġa, hemm l-ittri a sa Z,
għalkemm dawn qed sabiex każwali.
U fuq il-ġewwa, hemm attwalment xi numri, tali li ma 'dan
ċirku, inti tista 'tip ta' ddawar il-barra imma mhux ġewwa sabiex linja up
numri ma 'ittri.
U fil-clip int ser tara - li wħud minnhom inti tista raw 24/7
madwar l-istaġun tal-Milied minn movie imsejjaħ A Story Milied.
Int ser ikollok tara li Ralphie ftit kien tant ħerqana biex insemmu dak orfni ftit
Messaġġ sigriet Annie kien lilu li kienu ġew ikkomunikati, naħseb, fl-
forma ta 'messaġġi numeriċi fuq kaxxa tas-serje.
U kellek biex jakkumulaw l-karti ftit li daħal
fil-kaxxa ċereali.
Kellek għall-posta lilhom pulzieri
Inti kellha terġa 'lura l-ċirku decoder sigriet, sabiex inti tista' finalment figura
barra dak l-immappjar huwa bejn l-ittri u numri,
jew ittri u ittri.
So I jagħtuk din clip qasir minn A Story Milied biex jimmotivaw pset 2 u
diskussjoni tagħna, fil-mument, ta 'arrays.
Allura hawnhekk għandna Ralphie.
>> [Daqq ta 'video]
-Be hija magħrufa għal kulħadd u varji li Ralph Parker huwa b'dan maħtur
membru tal-Ċirku Orfni Little Secret Annie u huwa intitolat għal kulħadd
l-unuri u l-benefiċċji li jseħħu magħhom.
Iffirmat-, Orphan Annie Little.
Kontrofirmata, Pierre Andre!
Fil linka!
Honors u l-benefiċċji, li diġà fl-età ta 'disa'.
Come on, ejja nikseb fuq magħha.
I m'għandhomx bżonn dak kollu li jazz dwar kuntrabandisti u l-pirati.
Isma 'bil-lejl ta' għada għall-avventura konklużjoni ta 'The Black
Vapur pirata.
Issa wasal iż-żmien għall-messaġġ sigriet Annie s għalik membri
tal-Ċirku Sigriet.
Ftakar, gidjien, membri tal Circle Secret Annie jista 'jiddekowdja
Messaġġ sigriet Annie s.
Ftakar, Annie jiddependi fuq int.
Set labar tiegħek lil B2.
Hawn hu l-messaġġ.
12, 11 -
-I am fil-laqgħa tiegħi sigrieta 1.
-14, 11, 18, 16 -
-Pierre kien tonight vuċi kbira.
I tista 'tgħid li l-messaġġ tonight kien verament importanti.
-3, 25.
Li l-messaġġ mill Annie ruħha.
Ftakar, ma tgħid xi ħadd.
-90 Sekondi wara, jien fil-kamra biss fid-dar fejn tifel ta 'disa'
jistgħu ipoġġu fil-privatezza u jiddekowdja.
Ah, B. I marru għall-ieħor.
E. L-ewwel kelma hija tkun.
S. Hija kien ġejjin faċli issa.
U.
Oh, come fuq, Ralphie.
Sibt li jmorru.
I'll jiġu-dritt isfel, ma.
-GEE whiz.
-T, O. Kun żgur li.
Kun żgur li dak li?
Liema kienet Little Orfni Annie nipprova ngħid?
Kun żgur li dak li?
-Ralphie!
Randy s'est li jmorru.
Gaat jekk jogħġbok toħroġ?
-Id-dritt, ma.
I ser tkun dritt out.
-I kien jkollna aktar mill-qrib issa.
It-tensjoni kienet diżappuntanti.
Liema kien dan?
Il-destin tal-pjaneta jista hang fil-bilanċ.
-Ralphie!
Randy ltqajna biex imorru.
-I'll tkun id-dritt, għal biki out loud.
-GEE, kważi hemm.
Swaba tiegħi taru.
Moħħ tiegħi kien nassa azzar.
Kull pori ivvibrat.
Kien kważi ċara.
Iva, iva, iva, iva.
-Kun żgur li tixrob Ovaltine tiegħek.
Ovaltine?
A crummy kummerċjali?
Iben ta 'kelba.
[END video daqq]
>> DAVID J. Malan: Allura hemm aħna għandna kriptografija.
Allura kif fil-kompjuter nistgħu tmur dwar implimentazzjoni jew
jirrappreżentaw affarijiet bħal dan?
Ukoll, għandna bżonn mod li jesprimu nfusna ftit aktar flessibbli minn
Varjabbli tagħna s'issa ippermettew.
Aħna kellna ints.
Aħna kellna Chars.
Aħna kellna flowts u jirdoppja u fi ftit oħrajn.
Iżda dawn huma biċċiet individwali ta 'memorja li ma verament jippermettu magħna biex
jesprimu affarijiet simili kliem u sentenzi u frażijiet.
Tabilħaqq, konna imsejħa kordi bħal dawn l-affarijiet.
Iżda aħna wiegħed li din hija verament ftit simplifikazzjoni fil-CS50
librerija li aħna qed l-intenzjoni li qoxra lura.
>> U hekk ejja nibdew biex tagħmel dan hawn.
Let me imorru quddiem u tiftaħ fajl -
kollha ta 'dawn il-fajls huma disponibbli bħala online soltu -
imsejħa array.c biex isolvu problema mhux relatat mal kordi iżda li żebgħa
stampa hawn 'kif nistgħu jużaw xi ħaġa imsejħa firxa.
Firxa hija tip tad-data.
Huwa tip ta 'varjabbli, ta' tip, li għandha ħafna tipi ta 'data iżgħar
ġewwa ta 'dan lura lura lura lura.
Għalhekk per eżempju, jekk irridu li jikteb programm ftit li jagħtik tiegħek
kwizz medja għal kors bħal 50 li għandha żewġ kwizzijiet, inti tista 'faċilment
tikteb dan il-programm - ibbażati anke fuq xi wħud mill-materjal il-ġimgħa li għaddiet -
bl-użu GetInt u l-koppja ta 'varjabbli.
Int quiz1, int quiz2, u huwa pjuttost sempliċi.
Huwa forsi 10, 20 linji ta 'kodiċi, mass, biex jimplimentaw programm li jitlob lill-
utent għall-punteġġi kwizz 2 u mbagħad tikkalkula medja tagħhom billi jżidu magħhom
flimkien, diviż bi tnejn, u mbagħad istampar tar-riżultati.
Nistgħu probabbilment jagħmlu dan pretty faċilment issa wara
xi numru ta 'minuti.
>> Iżda l-problema hija li jissoponi li 50 kellhom 3 kwizzijiet jew erba '.
Ejja ngħidu li int riedu li tuża l-istess programm għal klassi li kien
kull ġimgħa kwizzijiet.
Aħseb dwar klassi li tkun ġimgħa kwiżż.
Jekk hemm simili 16 jew hekk ġimgħat semestru, issa għandek 16-varjabbli -
int quiz1, int quiz2, int quiz3, int quiz4.
Hekk kif inti tibda tara dan redundancy, dan l-ikkupjar u pasta
tal-kodiċi, hija għandha tibda tagħmel inti tixtieq kien hemm mod aħjar.
U Thankfully, minħabba arrays, hemm.
Mela ejja jagħmlu dan.
Ewwel, let me jintroduċu ħaġa sempliċi ħafna li konna mhux użati s'issa,
iżda inti ser tara li kultant fil-kodiċi.
Dan huwa dak li ġeneralment jissejjaħ kostanti.
Allura huwa kostanti fis-sens li dan il-valur qatt bidliet.
Il-konvenzjoni tal-bniedem meta jinħoloq kostanti huwa l-użu l-kapital
ittri, biss hekk li verament jispikka fil-kodiċi tiegħek.
U l-keyword speċjali li tuża fit C huwa # tiddefinixxi.
Mela jekk inti tgħidli # tiddefinixxi, imbagħad spazju, allura l-kelma li inti tixtieq li tuża għal
Isem il-kostanti, u allura l-valur tal-kostanti.
Allura l-avviż, din hija differenti minn tassenja xi ħaġa għal varjabbli.
M'hemm l-ebda ugwali sinjal.
M'hemm l-ebda virgola.
Dan huwa dak li ġeneralment magħrufa bħala direttiva preprocessor, iżda aktar fuq
dak ieħor ħin.
>> Għal issa, dan joħloq valur ma jinbidlux imsejħa kwizzijiet attwali li
Valur numeriku huwa 2.
Allura kullimkien inti tara kwizzijiet, kwizzijiet, kwizzijiet matul dan il-fajl, li l-
biss in-numru 2.
Issa, jekk I ħarsa lejn ewlenija issa, ejja ara kif taħdem din.
Għall-ewwel, jidher ftit cryptic.
Imma dan kollu Jittieħed minn ġimgħa waħda.
Staqsi lill-utent għall-gradi.
Kif nistgħu nagħmlu dan?
Ukoll, f'konformità 22 -
dan huwa verament il-parti mmerraq -
Niddikjara float, iżda mhux biss float wieħed.
Jien tiddikjara, pjuttost, firxa ta 'valuri b'punt li jvarja.
Dan il-varjabbli se jiġu msejħa gradi, kif implikat hawnhekk.
Iżda l-biċċa biss ta 'sintassi ġdid imbagħad huma dawn il-parentesi kwadri, il-fatt
li stajt qal gradi float u mbagħad parentesi miftuħa u mbagħad numru.
Avviż, jekk dan huwa kostanti, din hija biss bħal għamilna dan.
Dan ifisser kompjuter ħej, agħti lili 2 sufruni, u ejja kollettivament sejħa
minnhom gradi.
Dan huwa b'kuntrast għal proċess ferm aktar tedious bħal dan.
Float grade1, float Grade2, u oħrajn.
Allura firxa jippermetti li jimplimentaw din l-idea, iżda ħafna inqas messily, b'mod
b'tali mod li nistgħu jikteb linja waħda tal-kodiċi minflok, jiġifieri, 16 għal 16
semestru ġimgħa.
So I ma riedx li hard-kodiċi 2 għaliex jekk inti taħseb dwar dan issa
loġikament - jissoponi sena d-dieħla CS50 tibdil 3 kwizzijiet minflok.
U kelli in-numru 2 hawn.
Kelli in-numru 2 hawn.
Dan isir ħafna tedious ħafna u faċli biex screw up u aċċidentalment bidla
valur wieħed sa 3 u titlifx xi valur ieħor ta '2.
Allura jien ser minflok astratti dan bogħod u jużaw dan kostanti li, kif tagħha
isem jissuġġerixxi, qatt bidliet.
U issa, l-ebda kwistjoni jekk aħna jkollniex differenti kwizzijiet din is-sena jew li jmiss, I
biss għandhom jibdlu f'post wieħed, up hawn fuq quċċata.
>> Allura li kollox kostanti huwa.
Sadanittant, il-karatteristika kunċettwali ġdida hija dik ta 'firxa.
Allura l-parentesi kwadri jagħtu me dan sufruni ħafna u tikri me kollettivament
jsejħulhom gradi hawnhekk.
Allura issa ejja ara dak li jien ser tagħmel.
Hawnhekk fil-linja 24 hija l-bidu ta 'għall-loop.
Dan huwa verament fancy xejn.
Huwa biss bl-użu kwizzijiet minflok ta 'numru hard-kodifikati.
Iżda hemm xejn intellettwalment differenti hemmhekk minn ġimgħa li għaddiet.
Dan huwa biss printf.
Allura printf ("Numru kwizz% d% tal d") minħabba I biss trid li jistampa tagħti me kwizz
numru wieħed ta 'tnejn u mbagħad tnejn minn tnejn.
Allura dan huwa purament ħaġa estetika.
Imma l-parti interessanti issa huwa konformi 27.
Sabiex jimtlew f'wieħed mill-placeholders 2 ma 'varjabbli punt
valur, għandek terġa 'tuża parentesi kwadri.
F'dan il-każ, jien jużaw i, minħabba dan għal loop bdiet ma i daqs
dak il-valur, apparentement?
0.
>> Allura fuq l-ewwel iterazzjoni ta 'dan loop, huwa daqs li kieku I
kiteb dan fil-kodiċi.
Imma fuq il-tieni iterazzjoni ta 'dan loop, huwa daqs li kieku I
kiteb dan fil-kodiċi tiegħi.
Imma l-fatt li jien jużaw varjabbli hi perfetta għaliex, bħala l-isem
jissuġġerixxi, huwa jvarja valur tiegħu fuq kull iterazzjoni.
Allura jien mili dan array wieħed post kull darba.
Xi jfisser dan array look like?
Ukoll, ir-raġuni I ġibdet dan ir-rettangolu sempliċi super fuq l-iskrin hawn
qabel kien għal din ir-raġuni.
Firxa hija biss blokki ta 'memorja segwita minn blokki ta' memorja,
segwita minn blokki ta 'memorja, u oħrajn.
Mela jekk firxa tiegħi huwa ta 'daqs 2, f'dan il-każ hawnhekk, kollha I jkun qed jagħmel mill
ittajpjar fid punteġġi kwizz tiegħi, nixtieq hawnhekk.
Sibt 100 fuq dan wieħed.
U mbagħad Sibt 99 dwar dan wieħed.
Imbagħad din il-memorja ma jista 'anke jkun użat għaliex stajt biss talab lill-
kompjuter għal firxa ta 'daqs 2.
Dawk kwadri għadhom hemm.
Dritt?
Inti xorta jkollhom żewġ gigabytes ta 'RAM, anki jekk int biss
titlob għal żewġ sufruni.
Allura l-idea wara arrays hija li l-kompjuter biss tieħu blokki ta 'memorja
u mbagħad tqassam biċċiet iżgħar lura lura lura lura.
U hekk li kollox firxa hija.
Huwa blokki kontigwi ta 'memorja, minn ġewwa illi inti tista' tpoġġi l-affarijiet.
>> Issa dan jiġri mbagħad tagħmel biss ftit aritmetika boring.
Jekk I iscroll stabbiliti hawn, dan huwa fejn I imbagħad ttenni fuq il-firxa.
I toħroġ bi l-għadd totali tal-valuri kollha fil-firxa.
U mbagħad I tuża l-funzjoni round hawn biex fil-fatt jagħmlu l-
somma diviż bil kwiżż.
Imma ħalluni mewġa naħa tiegħi f'dak bħala tip ta 'aritmetika biżżejjed għal issa.
Imma dak kollu li qed jagħmel għalija finalment qed jinħadem medja.
Kwizz Allura l-ewwel plus kwizz 2, diviż bi 2, u mbagħad l-istampar
it out bħala int.
>> Imma ejja issa transizzjoni lejn eżempju differenti msejħa string1,
li żebgħa stampa simili iżda kordi jużaw.
Let me imorru quddiem u ssimplifikat għal ftit mument.
U nahfru l-indentazzjoni għal issa.
Avviż fil-linja 19 ta 'dan eżempju, I nikseb string mill-utent.
Imma avviż dak li jien tagħmel li jmiss fil-linji 22 'il quddiem.
Jien fil-fatt mtennija mis i sa - u dan huwa trick ġdid -
strlen tul string,.
Din hija funzjoni li jiġi ma C li jekk inti tgħaddi din string, hija jgħidlek
inti kemm karattri huma f'dak sekwenza.
Li kollox.
Il-fatt li huwa strlen minflok it-tul sekwenza huwa biss għaliex dan huwa
aktar konċiż.
30 sena ilu, in-nies xtaqu li jiktbu l-affarijiet kif konċiż possibbli.
Allura konna tinżamm dik il-konvenzjoni hawn.
i + + ifisser biss inkrement i f'kull iterazzjoni.
U issa Avviż dan, li huwa verament interessanti.
Allura fil-linja 24, I say kompjuter, agħti lili karattru, 8
bits, u sejħa hija ċ.
Imma dak li hu dan fuq il-lemin tgħid?
Bl-Ingliż, dak li ma jirrappreżenta?
[Inaudible]
DAVID J. Malan: Eżattament.
Agħti lili l-ewwel karattru fil-firxa.
Jew b'mod iktar ġenerali, agħti lili il-karattru i-th fil-firxa.
U jirrealizzaw huwa importanti issa li bħala xjenzjati tal-kompjuter, aħna qed attwalment
jingħaddu minn 0.
Inti ma għandekx diskrezzjoni issa biex tibda tagħmel dan.
Issa għandek biex jaġixxu b'mod konformi mal-aspettattivi tal-kompjuter u
għadd minn żero minħabba [0] se tkun l-ewwel
karattru string.
[1] se jkun it-tieni.
[2] se tkun it-tielet, u oħrajn.
Allura dan il-programm, jekk I josservawha - dan huwa, għal darb'oħra, string1.
>> Sabiex tagħmel string1.
U issa I run string1 fil tieqa terminal tiegħi.
Huwa stennija għall-input, hekk jien ser tip fil, jiġifieri, David.
Ikteb.
U issa prints DAVID kollha fuq linji differenti minħabba
Avviż dak li qed nagħmel.
Jien istampar karattru wieħed fi żmien.
Issa aħna mhux se tidħol fis-dettal llum dwar dan.
Imma I imħassar mument ilu dan il-kontroll hawnhekk.
Jirriżulta li jekk l-utent ikun misbehaving, kontradittorju, jew biss
konfuż, inti tista 'attwalment jonqsu milli jagħtu sensiela ta' xi tul.
Jekk inti hit-ċavetta żbaljata fuq il-keyboard, inti tista 'tagħti
ebda string fil-livelli kollha.
Jew jekk int malizzjużi, inti tista 'tipprova li paste fil jiswew gigabyte ta' l
essay biex timla din is-sekwenza.
U jekk il-kompjuter runs out ta 'memorja, jirriżulta li aħna qed tmur
li terġa 'lura dan il-valur speċjali msejħa null.
Allura għal issa, biss jafu li hemm dan il-valur speċjali msejħa null li
se jippermetti magħna biex jiċċekkja meta nkunu barra ta 'memorja, fost affarijiet oħra.
>> Imma jekk jien jiftħu issa string2, avviż wieħed differenza hawn.
Avviż wieħed differenza hawn ma string2.
Ma string2, dan għal loop huwa xi ftit differenti.
Let me tħassar il-nulls sabiex inkunu nistgħu nitkellmu dwar dawk ieħor żmien.
Imma x'hemm differenti dwar il-linja għal dan iż-żmien?
U I tista 'tmur lura għall-eżempju preċedenti.
Allura dak verżjoni 2.
Din hija verżjoni waħda.
Wieħed, tnejn, li waħda tnejn.
Allura l-sejħa strlen huwa fejn?
Huwa fl-ewwel parti tal-linja għall.
Kwalunkwe ħsibijiet dwar għaliex jien tagħmel dan?
Yeah.
[Inaudible]
DAVID J. Malan: Allura aħna ma sejħa tal-funzjoni kull wieħed ħin.
Eżattament.
Recall minn għal linji li dawn qed super sempliċi ladarba tal sort inti
jifhmu li dan huwa l-inizjalizzazzjoni, il-
kondizzjoni, u l-aġġornament.
Il-problema hija li l-kundizzjoni jiġri fuq kull
iterazzjoni tal-linja.
U hekk f'dan l-eżempju hawn, dak li huwa ħażin dwar il-fatt
li dan huwa kundizzjoni tiegħi?
Inti ssejjaħ strlen ġdid u għal darb'oħra u għal darb'oħra.
Imma ladarba stajt ittajpjat fil DAVID, it-tul ta 'dak sekwenza huwa 5.
U huwa mhux se jibdlu fuq kull iterazzjoni tal-linja minħabba li l-
sekwenza għadu D-A-V-I-D. Allura dan huwa ħjiel fuq dak li għaddej biex issir
idea dejjem aktar importanti magħruf bħala deċiżjoni disinn, fejn - biss ma
jagħmlu l-kompjuter jagħmlu x-xogħol bla bżonn.
>> Issa biss bħala Sneak preview tal pset 2, pset 2 fl-edizzjoni standard huwa
se jikkontestaw inti fil-fatt jimplimentaw xi numru ta 'ciphers, xi
numru ta 'algoritmi encryption, sabiex inti tista' kemm kriptaġġ u decrypt
messaġġi sigrieti, ħafna bħall-Ralphie waħda hemm decoded.
Fl-edizzjoni Hacker ta pset 2, aħna qed tmur biex tmur ftit aktar.
Aħna qed tmur biex inti idejn fajl minn sistema tal-kompjuter attwali li fih
mazz sħiħ ta 'usernames u passwords encrypted attwali, u l-isfida
għall-edizzjoni Hacker se tkun li jitwaqqaf dawk passwords u l-figura
barra dak kriptografija jew dak sigriet kien użat biex attwalment
jiġġeneraw dawk passwords.
U aħna qed tmur biex tagħmel dan billi tuża fattur ġdid hawn 'C li jien ser jagħtu
inti biss demo ta ', magħrufa bħala kmand tal-linja argumenti.
>> Għalhekk jirriżulta, kif xi wħud minnkom tista raw fis-sezzjoni jew fil-kotba,
prinċipali ma dejjem għandhom ikunu nulli fil-parentesi.
Jirriżulta li ewlieni tista 'wkoll tkun bil-miktub bħal dan, ma' żewġ argumenti,
argc u ARGV, fejn argc huwa n-numru ta 'kliem li inti tip wara
Isem tal-programm fuq linja tal-kmand tiegħek.
U ARGV huwa l-kliem attwali.
U kif il-parentesi kwadri hemmhekk jissuġġerixxu, ARGV hija apparentement firxa.
Huwa ser tkun string wara string wara string fil-memorja.
Allura dak li aħna qed tmur biex tkun tista 'tagħmel, li tibda bil pset 2, huwa
xi ħaġa bħal din.
Jekk I jagħmlu argv1, li huwa eżempju aħna ser terga 'lura għal nhar it-Tnejn, u run
dan, avviż li ma jidhirx li tagħmel xejn s'issa.
Hija biss tistampa f'isimha.
Imma jekk jien ngħid addiju klassi, avviż li dan il-programm apparentement ttenni
fuq kull wieħed mill-kliem li kienu ittajpjat fil-pront.
U l-mezzi li bihom aħna se jiksbu aċċess għal kliem li l-utent ikollu
ttajpjati fil-pront hija billi jbiddlu prinċipali, li jibda dan il-weekend, minn int
prinċipali (vojt) li int prinċipali (argc, ARGV).
U għalhekk se tkun imwielda argumenti kmand tal-linja.
U ladarba ikollok verament sofistikati fil dan, inti ser tkun tista 'tikteb
Programmi verament trippy, bħal dan wieħed hawn, li tmur fuq u lil hinn
xi wħud mill-funzjonalità aħna ghamilt s'issa imma kollha pjuttost qawwija.
>> Allura aħna ser tħalli dan ma 'dan fuq l-iskrin.
U aħna se tara inti nhar it-Tnejn.