>> [Muzikavimo]
>> ROB Boden: Gerai.
Taigi, pirmas dalykas, pirma, video nuo pažįstamas veidas.
>> [VIDEO PLAYBACK]
>> -Viskas gerai.
Tai CS50, ir tai yra Savaitės trijų pradžia.
Atsiprašau aš negalėjau ten su jumis šiandien, bet leiskite man pristatyti
CS50 savo Rob Boden.
>> [PABAIGA VIDEO PLAYBACK]
>> [Plojimai ir Cheers]
>> ROB Boden: į filmografija kad vaizdo įrašas yra fantastinis.
Gerai.
Taigi, pirmiausia, yra ir kitas pietūs.
Tai rytoj 01:15.
Yra be pietų šį penktadienį.
Būtent Quora.
Tommy nėra čia dar, bet vienas iš žmonės ten yra buvęs CF,
Tommy McWilliam.
Taigi jis įdomus vaikinas.
Jūs turėtumėte ateiti.
>> Gerai.
Taigi, praeitą savaitę, mes pradėjome nesilaikantiems išskyrus apie tai, kas seka tikrai yra.
Mes žinoma nuo pat pradžių, kad tai simbolių seka.
Tačiau praėjusią savaitę, mes delved į tai, kad tai, kas yra tikrai seka
ženklai, gerai, dabar mes turime matricos simbolių.
Ir mes žinome, kad seka, tai masyvas simbolių, pačioje pabaigoje,
mes turime šį specialų null baitas, tai Backslash 0, tai rodo pabaigą
eilutę.
>> Ir taip eilutė yra masyvas ženklai, bet mes galime turėti daugiau nei
tiesiog simbolių masyvas, mes galime turėti, bet matrica
tipo dalykas norime.
Taigi, jei jūs prisimenate iš praeitą savaitę, Amžių programa, kad Dovydas pristatė
tikrai greitai.
Taigi pirmas dalykas, kurį mes ketiname padaryti, tai prasyti vartotojo sveikojo skaičiaus,
žmonių skaičius kambaryje.
Kai mes turime, kad sveikasis skaičius, mes skelbiantis masyvą.
Atkreipkite Šis laikiklis sintaksė.
Jūs ketinate priprasti prie to.
>> Taigi mes skelbiantis sveikųjų skaičių masyvas vadinamas amžiaus, ir yra n
sveikieji skaičiai šiame masyve.
Taigi šis modelis čia, tai 4 int I lygus 0, i mažiau nei n, i plius
plius, kad taip pat bus modelis kad jums labai naudojamas.
Kadangi tai gana daug, kaip jūs visada bus pakartoti per masyvus.
Taigi nepamirškite, kad n yra ilgis mūsų masyvo.
Ir taip čia mes vėl ir vėl kreipiasi dėl asmens i kambaryje amžiaus.
>> Po to, mes einame žemyn, ir dėl kokių nors savavališkai priežastis, mes tada
spausdinti kaip senas jie ketina būti metų nuo dabar.
Ir veikia tą programą, tegul kad amžiaus, dot velniop amžių.
Taigi žmonių skaičius kambaryje, tarkim yra trys.
Ir pasakyti, pirmasis asmuo yra 13, šalia yra 26, o paskutinis yra 30.
Taigi jis bus pakartoti per šių trijų žmonės, išspausdinti 14, 27 ir 31.
>> Taigi nepamirškite, kad kai mes deklaruoti masyvas dydžio n, toje indeksai
matrica, masyvas turi vertybes ir indeksai 0, 1, 2, visi būdas
iki n atėmus 1.
Taigi, kai mes pasakėme buvo trys žmonės į kambarį, ir mes įdėti čia
pirmas iteracijos per šį kilpa, man bus 0.
Taigi 0 indeksą.
Mes paskiriant pirmą kartą amžiaus vartotojas įveda.
Tada kito, mes įvesti Antrasis n vartotojas įveda ir
šalia dviejų, paskutinio n.
>> Taigi pastebėti, kad dydžio masyvas trys neturi nieko
indekse trijų.
Tai negalioja.
Gerai.
Taigi, grįžta čia.
Taigi dabar, kad mes spręsti matricas, mes turime šiek tiek pažįsta.
Dabar mes ketiname pereiti į komandą eilutės argumentai, kurie bus
gana svarbūs šios problemos rinkinį.
>> Taigi iki šiol, kiekvieną kartą, kai jūs paskelbė savo pagrindinę funkciją, mes
sakė int main negaliojančiu.
Taigi klaidinga tiesiog reiškia, kad mes ne artimųjų bet
argumentai šia funkcija.
Dabar mes ketiname pamatyti, kad dažniausiai gali imtis tam tikrų argumentų.
Čia mes vadiname juos int argc ir styginių argv skliausteliuose.
Skliausteliuose, dar kartą, nurodant kad mes susiduriame su matricomis.
Taigi čia, styginių argv skliausteliuose, mes Dirbant su stygų masyvo.
Taigi argc, kad ketina nurodyti kiek argumentai mes
perduodama šią programą.
Ir pamatyti, ką tai reiškia, tegul uždaryti tai.
>> Gerai.
Taigi iki šiol, mes paleisti kiekvieną programa, kaip dot slash amžiaus.
Mes taip pat gali, komandinės eilutės, praeities perduoti argumentus, taigi terminas, komanda
eilutės argumentai.
Taigi pirmasis argumentas, hello world.
Taigi čia argc būtų trys.
Tai iš argumentų skaičius į komandų eilutę.
Argc visada yra mažiausiai 1, nes taškas velniop amžiaus, pati skaičiuoja kaip vieną iš
komandinės eilutės argumentai.
>> Tada Apie tai pirmą kartą.
Jei dot velniop amžius yra nulinis, tada Apie tai pirmasis ir pasaulis
antra komandinės eilutės argumentas.
Taigi styginių argv, mes ketiname pamatyti, yra stygos, dot velniop
amžiaus, labas, ir pasaulis.
Ir Dovydo prašymu, mes ketiname Norėdami paleisti vaizdo įrašą, nustatantį, kad.
>> [VIDEO PLAYBACK]
>> -Iki šiol programose mes parašyta, mes deklaruoti
Pagrindinis kaip int main negaliojančiu.
Ir visą šį laiką, kad tuštuma yra paprasčiausiai nurodant, kad
programoje neatsižvelgiama bet komandų eilutės argumentai.
Kitaip tariant, kai vartotojas atidaro programa, jis ar ji gali suteikti komandą
eilutės argumentai pagal raštu papildomai žodžiai ar frazės, po programos tikslų
pavadinimas eilutėje.
>> Na, jei jūs norite, kad jūsų programos į imtis komandinės eilutės argumentus, vieną ar
daugiau tokių žodžių, mums reikia pakeisti negalioja su argumentais pora.
Taigi galime daryti.
Įtraukti CS50.h.
Įtraukti standartinę io.h.
Int main.
Ir dabar, o ne tuščia, aš ruošiuosi nurodyti int vadinamas argc ir
masyvo eilučių, vadinamų argv.
Dabar argc ir argv yra tiesiog konvencijas.
>> Galėjome vadinamas šie argumentai Patys nieko mes norime.
Tačiau svarbu tai, kad argc yra int, nes, remiantis apibrėžimu, yra
ketina pateikiama argumentų skaičius, žodžių skaičius, iš viso, kad
vartotojas įvedėte į jo ar jos eilutę.
argv, tuo tarpu, argumentas vektorius yra vyksta iš tikrųjų būti masyvas saugoti
visus žodžius, kad vartotojas turi įvestas į jo ar jos eilutę.
>> Leiskite pradėti daryti kažką dabar su vienu ar daugiau iš šių
komandų eilutės argumentai.
Visų pirma, eikime į priekį ir spausdinti kokia žodis vartotojas įveda
Po programos pavadinimas eilutėje.
Atidaryti laikiklis.
Uždaryti laikiklis.
Printf proc ai Backslash ir kablelis.
Ir dabar man reikia pasakyti printf kas vertė prijungti į tą rezervuotą vietą.
Noriu pirmąjį žodį, vartotojas turi įvestas po programos pavadinimu,
ir todėl aš ruošiuosi nurodyti argv laikiklis 1, arti
skliaustelis, kabliataškis.
>> Dabar, kodėl laikiklis 1, o ne 0 laikiklis?
Na, it turns out, automatiškai saugomi į argv 0 bus
Programos tikrasis vardas.
Taigi, pirmas žodis, kad vartotojas įveda Po programos vardas pagal
konvencija, bus saugomi argv 1.
Leiskite dabar kaupti ir paleisti šią programą.
>> Padaryti argv 0, taškas velniop argv 0.
Ir dabar žodis kaip labas.
Įveskite.
Ir mes jį, labas.
>> [PABAIGA VIDEO PLAYBACK]
>> ROB Boden: Gerai.
Uždarykite kad.
Taigi, atsižvelgiant į šios programos atrodo, kad mes ką tik pristatė mums gerai, tik
rodyti, jei mes spausdinti argv 0, kad dabar kas tai yra, argv 0, taškas velniop argv 0.
Taigi, kaip ir tikėtasi, tai spausdinti Programos pavadinimas, nes argv 0 yra
visada bus Programos pavadinimas.
Tačiau galime padaryti kažką šiek tiek įdomesnis.
>> Taigi, problemų rinkinį, jūs būsite įvesta į šią funkciją, atoi.
Taigi, ką mes naudojame atoi už?
Kad ketina paversti eilutė iki sveikojo skaičiaus.
Taigi, jei aš perkelti eilutę, vienas du trys, į atoi, kad bus konvertuoti, kad
į sveikojo skaičiaus, vienas du trys.
Taigi, mes ketiname paversti pirmas komandinės eilutės argumentas iki sveikojo skaičiaus,
ir tada tiesiog atspausdinti, kad sveikasis skaičius.
>> Taigi, iš esmės, mes rūšies reimplementing getint, tiesiog
sveikasis skaičius įrašytas į komandą linija, o ne programoje
interaktyviai.
Taigi, todėl argv 0, darykime tai čia ir uždaryti, kad.
Taigi veikia argv 0, ir tegul įvesti sveikasis skaičius, vienas du trys keturi vienas du.
Taigi jis bus atspausdinti sveikasis skaičius, vieną du trys keturi vienas du.
Yra keletas subtilybių iki atoi kad jis bus nebesijaudinti apie viską
už galiojantį skaitmeniniai ženklai, bet tai nesvarbu.
>> Taigi, ką jūs manote atsitinka jei galiu tai padaryti?
Segmentavimas kaltės.
Taigi, kodėl tai, kad?
Jei pažvelgti atgal į mūsų programą, mes konvertuoti argv 1, pirmasis argumentas
po programos pavadinimu, iki sveikojo skaičiaus.
Tačiau nėra argumentas praėjo po programos pavadinimu.
Taigi čia matome, kad tai yra Buggy programa, nes, jei mes stengiamės jį paleisti
be jokių argumentų, jis tiesiog sustos.
>> Taigi, dar vienas bendras modelis pamatysite yra kažkas panašaus, jei argc mažiau
kaip du, nurodantis, kad nebuvo bent programos pavadinimas ir
Pirmasis argumentas, tada mes kažką daryti kaip printf, nepakanka
komandų eilutės argumentai.
Tai turbūt nėra gera spausdinti, tai turbūt kažkas, pavyzdžiui,
reikia įvesti sveikuosius į komandų eilutę.
Aš tiesiog galų jį ten.
Ir tada vėl 1.
Taigi nepamirškite, kad mūsų pabaigos programa, jei mes grįžtame 0, kad rūšiuoti
rodo sėkmę.
Ir pagrindinis automatiškai grąžina 0, jei ne.
>> Taigi čia mes Pakartotinė 1 rodo kad tai nėra sėkmė.
Ir jūs galite grįžti, ką norite, tiesiog, "0" rodo sėkmę, ir
kas nors kitas rodo gedimą.
Taigi, galime paleisti šį dalykų versiją.
Taigi dabar, jei mes neturime įvesti komandinę eilutę argumentas, kad bus teisingai pasakyti
mums, o ne pakankamai komandinės eilutės.
Nebaigė sakinio.
Kitur, jei mes iš tikrųjų perduoti jį vieną, jis gali baigti programą.
Taigi tai, kaip norite naudoti argc į siekiant patvirtinti, kad numeris
komandinės eilutės argumentai, kad faktiškai pasinaudos.
>> Taigi galime padaryti šią programą tiek daugiau sudėtinga, ir pažvelgti į sekundę
pasikartojančių dalykų.
Taigi dabar mes ne tik spauda Pirmasis komandų eilutės argumentas.
Čia mes Iteracja iš int i lygių 0, i mažiau nei argc, aš plius
plius ir spausdinimas argv indeksas i.
Taigi šis modelis, vėlgi, tai yra tas pats modelis, kaip ir anksčiau, išskyrus vietoje
skambinama kintamąjį n, mes naudojame argc.
>> Taigi tai yra iteravimu per kiekvieną indeksą masyve, ir spausdinant kiekvieną
elementas tame masyve.
Ir todėl, kai mes paleisti šią programą, taip pat, Aš ne įvesti bet kokią komandinę eilutę
argumentai, todėl tik nuotraukas programos pavadinimas.
Jei aš įvesti dalykų krūva, jis bus spausdinti vieną, kiekviena savo linija.
>> Gerai.
Taigi paimkime vieną žingsnį toliau.
Ir vietoj spausdinti kiekvieną argumentą savo linijos, galime atspausdinti kiekvienas
pobūdis kiekvieno argumento atskiroje eilutėje.
Taigi nepamirškite, kad argv yra Stygų masyvas.
Taigi, kas yra eilutė, bet simbolių masyvas?
Taigi, tai reiškia, kad argv tikrai masyvas yra simbolių masyvo.
Taigi pasinaudoti, kad tegul ignoruoti tai dabar.
Leiskite tiesiog laikyti styginių argv 0.
>> Taigi, jei norime, kad kiekvieną simbolį argv 0 atskiroje eilutėje, tada aš noriu
daryti modelį mes įpratę, i mažiau nei masyvo ilgis,
kuri čia yra strlen iš, tai ne tai, ką noriu daryti, styginių
ai Lygu argv 0.
Taigi man yra mažesnis nei mūsų ilgio masyvas, kuris šiuo atveju yra masyvas
simbolių, aš plus plus.
Ir taip, kaip matėme praeitą savaitę, tai idealus jei mes einame, kad strlen ne
su sąlyga, nes n bus pridėti iš s strlen kiekvieną kartą, mes einame
per kilpą, ir tai nebus pakeisti.
Taigi, mes jį lygų n per čia.
>> Gerai.
Taigi dabar mes iteravimu per kiekvienas masyvo indeksas.
Ir taip, jei norime atspausdinti kiekvienas simbolis toje masyvo, proc c yra
vėliava mes norite naudoti simbolių.
Ir dabar laikiklis i bus styginių indeksas simbolis aš, todėl, jei
eilutė buvo labas.
tada s 0 bus h, s laikiklis 1 bus E, ir taip toliau.
>> Taigi, dabar mes norime sujungti šie du dalykai.
Mes norime spausdinti kiekvieną simbolį Kiekvieno komandinės eilutės argumentas.
Taigi, mes ketiname turėti įdėtos už kilpos.
Ir tradiciškai, pirmas skaitiklis yra i kita bus j, n
bus argv i strlen, aš yra mažesnis nei n, i plius plius.
O dabar vietoj spausdinimo argv i, todėl argv laikiklis aš ketina indeksas -
tai bus i-asis komandinės eilutės argumentas, argv i, j ketina
būti jth pobūdis i-asis argumentas.
Aš atsikratyti tai čia dabar nes mes įdėti ją į tą kilpą.
Taigi yra lygiavertis string s lygių argv aš, tada ai laikiklis j.
>> Na, mums nereikia deklaruoti Šis kintamasis ai.
Vietoj to, mes tiesiog sujungti juos du į tai, ką mes turėjome, argv i, j.
>> GARSIAKALBIS 1 [nesigirdi].
>> ROB Boden: Geras skambutis.
Taigi tai yra sulaužyta.
Jei aš iš tikrųjų bėgo, mes supratau tai.
Taigi skaitiklis man rūpi šioje ypač
kilpa yra j, iteratorius.
Taigi, jums reikės paleisti į klausimus, tikriausiai begalinis ciklas, jei mes
nebuvo nustatyta, kad.
Štai kodėl mes taip pat kalbame apie derinimo šiandien.
>> Gerai.
Taigi, galime paleisti šią programą.
Ir tegul faktiškai pridėti atskirą printf čia, kad bus tiesiog atspausdinti
kita linija, nes tai reiškia, kai mes paleisti programą, ten bus tuščias
linija tarp kiekvieno charakterio kiekvienas komandinės eilutės argumentas.
Na, mes pamatyti, ką tai reiškia.
OOP.
Turite šiek tiek klaidų.
Klaida netiesiogiai skelbiantis bibliotekos funkcija strlen.
>> Taigi grįžtame į mūsų programą, aš Pamiršau maišos yra string.h.
Taigi string.h bus header failas, kuris pareiškia,
funkcija strlen.
Gerai, tai kaupia.
Dabar galime paleisti jį.
Taigi, tiesiog, kad.
Ji ketina išspausdinti mūsų programos pavadinimas, hello world.
Tai ketinate spausdinti kiekvieną daiktą, kiekvienas pobūdis, atskiroje eilutėje.
Gerai.
>> Tad faktiškai pasinaudoti šia dar vieną žingsnį.
Ir vietoj naudojant string.h, galime galvoti apie tai, kaip mes norime įgyvendinti mūsų pačių
strlen funkcija.
Taigi aš iš karto duoti funkcija parašas.
Taigi leiskite paskambinti my_strlen, ir tai ketina imtis eilutę kaip argumentą,
ir mes tikimės, kad grįžtumėte ilgis tos eilutės.
Taigi, kur yra tas vaikinas?
Taip.
Gerai.
Taigi nepamirškite nuo ankstesnės skaidrės, kad taip pat buvo iš praeitą savaitę, kad
masyvas simbolių, gerai, virvutė, todėl galime pasakyti, kad tai mūsų styginių ai.
Taigi, jei s eilutę, labas, tada, H-E L-L-O, atminties, kad ketina
būti, ir tai backslash 0 simbolis.
>> Taigi, kaip mes gauti s ilgis?
Na, triukas ieško tai backlash 0 charakterį, šis null
terminatorius.
Taigi algoritmas Ar ketinate būti kažkas panašaus į keletą
pakankamai ženklų, kad -
galime turėti tai ranka sudaro apie skaitiklis, tegul vadina int ilgis.
Taigi, nuo čia, mes ketina pakartoti per savo eilutę.
>> Taigi pirmasis simbolis, tai yra H, ir tai ne atgal velniop 0, todėl
ilgis yra 1.
Kartoti iki kito simbolio, E, ir tai ne backslash 0.
Ilgis yra 2.
L, 3.
L, 4.
O 5.
Ir pagaliau, mes pasiekiame Atgal nerijos velniop 0, ir kad priemonė, gerai,
Ši eilutė yra daugiau.
Taigi galime grįžti 5.
>> Taigi iš tikrųjų įgyvendinti, kad, pirma, mano n ilgis lygus 0, mano dešinioji ranka.
Ir mes ketiname pakartoti -
>> GARSIAKALBIS 1 [nesigirdi]
>> ROB Boden: Oi, šaudyti.
Geras skambutis.
Bumas.
Taigi n ilgis lygus 0.
Taigi, dabar, o s ilgis ne lygūs ir tada, Backslash 0.
Taigi atminkite, tai Atgal nerijos velniop 0, tai tikrasis charakteris, o tai rodo,
stringo pabaigos.
Tiesiog patinka, taip pat Backslash n yra tikrasis simbolis.
Backslash 0 ketina nurodyti Mūsų eilutės pabaigos.
Aš nenoriu daryti, kad.
Ir nors ai indeksuojami ilgis nėra lygi null terminatorius, tada
mes tik ketina prieaugio ilgį.
Taigi, ne mūsų programos pabaigoje ilgis galiausiai ketina
būti 5 ir šiuo atveju.
Ir mes tiesiog grįžti ilgio.
>> Gerai.
Taigi dabar žemyn čia, aš ne padaryti my_strlen.
Tegul kaupia jį įsitikinkite, viskas veikia sklandžiai.
Aš darau iš 2?
Ar tai buvo 1?
Tai turėtų daryti.
Gerai.
Taigi tai yra argv 2.
Veikia kaip tikėtasi, nors buvo, kad aš vienas jį padarė?
Taip.
Gerai.
Tai ko versija neturėjo printf nauja linija po to, bet ji
nėra jokio skirtumo.
Gerai.
Taigi dirbo taip, kaip tikėtasi.
>> Dabar mes galime sujungti vieną žingsnį Be to, kai pranešimas čia gerai,
pirma, mes greiferiniai argv strlen aš, tada mes iteravimu per
kiekvienas simbolis toje eilutėje.
Taigi, užuot, kad kas būtų, jei mes tiesiog sujungti šį laukimo logika
kol mes hit backslash 0 teisę į šią kilpą?
Taigi pakartoti o argv i, j daro nėra lygūs Backslash 0.
Taigi, galime paleisti ją pirma.
>> Gerai.
Taigi, čia ši sąlyga sako -
tegul jau aišku, kad.
Taigi, dabar, tegul tai bus mūsų argv.
Taigi, kai aš tik bėgo tą programą anksčiau, argv yra eilučių masyvo.
Ir taip, jei aš jį dot slash argv 2, hello world, tada argv
pati ilgis 3, už argv nulis, labas, ir pasaulis.
>> Ir viduje kiekvienoje iš šių rodiklių yra pati matrica, jei tai bus
taškų, tai bus velniop, aš nežinau jei tai buvo teisinga kryptimi, aš
nemanau, kad tai buvo.
-R-V brūkšnys, reikia daugiau vietos.
Leiskite supjaustyti šiame masyve.
-R-V brūkšnys 0, tada Backslash 0.
Ir tada netvarkingas bus labas.
Tarkime, H-E Atgal nerijos velniop 0.
Ir, pagaliau, W-O Backslash 0.
>> Taigi, algoritmas, kad mes tiesiog parašė, įdėtos už kilpos, ką jie
darote, yra, mes pirmiausia turi kovoti su i ir tada j.
Tai būtų lengviau su kodo ekranas, grįžkime į tai.
Gerai.
Taigi pastebime, kad i iteratorius tai iteravimu per kiekvieną komandą
linija argumentas.
Ir j yra iteratorius Iteracja virš kiekvieno, kad charakterio
komandinės eilutės argumentas.
Taigi, kas tai slapčiausias printf daro yra, mes printf argv 0 0 printf
argv 0 1 printf argv 0 2 0 3 0 4 0 5, 0 6, bet dabar, argv 0 7 vyksta
lygūs Backslash 0.
>> Taigi mes išeiti, kad kilpos, ir dabar aš kartoja, kad 1.
Ir dabar mes ketiname spausdinti argv 1 0, argv 1 1 -
gerai, dabar, nes aš iškirpti Apie Trumpai tariant, argv 1 2 vėl bus
Backslash 0.
Ir taip, prieaugio i ir toliau, o taip toliau, kol mes spausdinti visus
pasaulyje, ir tie trys komandinės eilutės argumentai ir mes išeiti iš
atokiausiuose kilpa, ir užbaigti mūsų programą.
Gerai.
>> Taigi galime grįžti čia.
Taigi gausite tam tikrą pažinimas komandinės eilutės argumentai tai
pirma problema nustatyti.
>> Dabar, derinimo.
Taigi, jūs tikriausiai jau teko daryti kai su savo ankstesnių klaidų taisymas
problema nustatyti.
Ir dar vienas labai paprastas būdas derinimo, pirmiausia, galime pažvelgti Buggy programą.
Na, vaikščioti per šią programą, mes ketiname prašyti už vartotoją
sveikasis skaičius, patraukti, kad sveikasis skaičius, o tada savavališkai, mes turime while cikle, kad
yra tik ketina Mažėja aš kol jis lygus 10.
Leiskite tiesiog manyti, aš patekti sveikasis skaičius didesnis nei 10.
Taigi Mažėja aš kol jis lygus 10.
>> Ir tada mes turime kitą, o kilpos kad, nors aš ne 0, mes
ketina Mažėja i iki 3.
Taigi, jei matote, kad klaidų tyčia čia tai, kad tai bus Mažėja I
būti 10, o tada tai, o kilpa valia Mažėja i iš 10, 7, 4, iki 1,
neigiamos 2, su neigiamais 5, ir tt, neigiamos begalybės, nes aš
niekada iš tikrųjų yra lygūs 0.
Ir tada šios programos pabaigoje mes turime foo funkciją, kuri būtų
vyksta spausdinti, kad aš.
>> Taigi tai yra trumpas ir nereikšmingas programa, ir klaida yra akivaizdi,
ypač po to, kai aš tiesiog sakė, kas klaida buvo.
Bet tikslas čia yra gerai, tai gali iš tikrųjų atrodo kaip kai kurie iš jūsų
sprendimai iš gobšus nuo paskutinės problema nustatyti, o gal ir jūs turite
kai begalinis ciklas jūsų programoje, ir jūs neturite idėjos
kas jį sukelia.
Taigi labai naudinga derinti technika yra tiesiog pridėti printfs
visame kodą.
>> Taigi čia aš noriu printf ne Pirmasis while cikle.
Ir čia noriu printf, ir aš tiesiog atspausdinti i.
Aš net padaryti pirmiausia, o kilpa, i.
Už antrą, o kilpos.
Dar kartą spausdinti viduje čia, vertė man.
Ir tegul eina tai.
>> Taigi taškas velniop derinti.
Įveskite sveikąjį skaičių.
Darom 13.
Ir bumas.
Mes matome, kad esame begalinė apsisukimo viduje antros while cikle.
Taigi, dabar mes žinome, kas yra klaida.
Bet printf derinimo puikiai puikiai, bet kai jūsų programos gauti
ilgesnis ir sudėtingesnis, yra tobulesni sprendimai
gauti viskas veikia.
Taigi galime pašalinti visus šiuos printfs.
Ir tegul įsitikinkite, aš ne pertrauka nieko.
Gerai.
>> Taigi, programa mes ketiname pristatyti vadinamas
GDB, GNU Debugger.
Na, iš tikrųjų, galime pašalinti debug už antra, ir padaryti perprogramuoti iš naujo.
Na, iš tikrųjų, pirma, gera pamoka komandinės eilutės argumentai.
Atkreipkite dėmesį, kad tai Zaszczękać komanda, kuri yra Sudarant viskas yra perduodama
į komandų eilutę, tai komandų eilutės argumentai.
Taigi, kaip tiksliai jūs ketinate naudoti komandinės eilutės argumentai, kaip mes
ir anksčiau, ir kaip jums per PSET 2, tai kaip Zaszczękać naudoja juos.
>> Taigi pastebime, kad ši pirmoji vėliava, brūkšnys ggdb3, kas tai sakoma, žvangėti,
jums turėtų parengti šį failą tikslas, kad mes galų gale
reikia derinti jį.
Taigi, kaip ilgai, kaip jūs turite, kad vėliava, tada mes galime GDB perprogramuoti.
Ir jis bus atverti GNU Debugger.
>> Taigi yra komandų daug kad jums reikia priprasti.
Pirmasis, kad jums tikriausiai nedelsiant reikia paleisti.
Taigi, kas yra paleisti ketinate daryti?
Jis ketina pradėti savo programą.
Taigi paleisti, pradedant programą, programą prašo mus sveikasis skaičius, 13.
Ir tada atėjo begalinė apsisukimo kaip Tikimasi, išskyrus aš pašalinti
printfs, todėl nereikia net matyti.
Paprastai išėjo.
Oh.
Gali būti, kad ji suvynioti visi atvirkščiai, atgal - ignoruoja tai.
Tarkime, jis neturėjo išeiti normaliai.
Yra sudėtinga atsakyti, kad.
>> Taigi dabar, kad tai nėra labai naudinga.
Taigi tiesiog veikia mūsų programą viduje tai Debugger nepadeda mums bet
būdas, nes mes galėjome tiesiog padaryti dot slash debug iš išorės GDB.
Taigi, viena komanda, jums tikriausiai -
ir aš mesti tai.
Kontrolė-d arba mesti rūkyti, tiek darbo.
Taigi galime pradėti jį vėl.
>> Kita komanda, kad jums tikriausiai iš karto nori
priprasti yra pertrauka.
Taigi mes pertraukos pagrindinis dabar, ir tada aš paaiškinti, kad.
Na, čia mes matome, mes nustatyti atskaitos tašką Šiuo linija debug.c.
Taigi, kas pertrauka reiškia, kad, kai aš įveskite paleisti, programa ketina
toliau veikia tol, kol I hit atskaitos tašką.
Taigi, kai aš paspauskite paleisti, programa prasideda, ir tada ji sugenda, kai ji
patenka į pagrindinę funkciją.
Break pagrindinis bus kažkas jūs gana paprastai padaryti.
>> Ir dabar, kad jums pristatyti iki šiek tiek daugiau komandų.
Atkreipkime dėmesį, kad jis sako, kad mums sumušė eilutėje 11, kuris yra
printf, įveskite sveikasis skaičius.
Taigi komanda Toliau bus, kaip mes einame į kitą eilutę kodo.
Tai va, kad galėtume dėti per mūsų programos eilutė po eilutės.
Taigi kitą.
>> Dabar linija 12, mes ketiname gauti sveikąjį skaičių.
Kitas.
Ir jei jūs tiesiog paspauskite "Enter" dar kartą, jis bus perdaryti paskutinis dalykas, kurį padarė.
Taigi man nereikia rašyti sekantis kiekvieną kartą.
Taigi, įveskite sveikasis skaičius, 13.
Taigi dabar, linija 14, o aš yra didesnis nei 10, ir aš daryti toliau.
Ir mes matome, mes ketiname Mažėja i.
Taigi, mes ketiname Mažėja i naujo.
>> Taigi dabar, dar viena naudinga komanda Print.
Taigi Spausdinti ketina spausdinti kintamojo vertė.
Tegul atneš naudos kintamojo i.
Leiskite spausdinti i.
Jis sakys i 11.
Dabar mes vėl kartu Kitas i yra didesnis nei 10.
Taigi, aš vis dar didesnis nei 10, nes jis 11.
i minus minus.
Leiskite spausdinti i naujo.
Kaip ir tikėtasi, jis 10.
>> Taigi dabar, šalia.
Jis grįžta su sąlyga, i didesnis nei 10, bet aš dabar 10, todėl
tai ne didesnis nei 10, todėl mes tikimės, jis gali nukristi iš while cikle.
Ir dabar mes žemiau eilutės kodo.
Ir kita komanda, sąrašas, yra tik ketina rodyti Ankstesnių ir ateinančių
pora eilučių kodo, visų atveju jūs praradote save.
Taigi mes tiesiog išėjo šį while cikle, ir dabar mes turime įtraukti šį
o linijos, linijos 18.
Taigi, o aš ne 0.
Ir šalia, aš Lygu i minus 3, o mes pastebėti, tai bus tiesiog nesustoti.
Ir mes galime atspausdinti i.
>> Kiekviena komanda tarsi turi nuorodas.
Taigi p yra trumpas Spausdinti.
Taigi, mes galime p i.
Tiesiog išlaikyti ūkį n, arba nuolat daryti Pirmyn.
Spausdinti aš vėl.
Jūs matote dabar atėjo neigiamas 167.
Taigi, tai bus amžinai, bet ne tikrai amžinai, nes jūs tik pamačiau, kad
tikrai bus baigti tam tikru momentu.
>> Taigi, kad pradeda GDB.
Tačiau galime padaryti dar vieną dalyką GDB.
Uh, derinti.
Taigi, šiuo konkrečiu atveju, begalinis ciklas atsitiko viduje
Pagrindinė funkcija.
Ir dabar, tiesiog pripažinti, kad, kad aš ketina perkelti begalinį ciklą į
foo funkcija.
Tiesiog neužmirškite, kad prie šio tikslo programa, taip pat, tai buvo iš pradžių
skambina foo, kuris buvo tiesiog ketinate spausdinti i.
Bet dabar mes skambina foo, kuris yra ketina Mažėja i iki tai 0 ir
tada spausdinti šį kintamąjį.
Gerai.
Išskyrus tai, kad.
Padaryti perprogramuoti.
Ir dabar, gdb derinti.
Gerai.
>> Taigi, jei aš tiesiog paleisti tada aš nesiruošia galėtų iš tikrųjų žingsnis per mano
Programa linija po linijos.
Taigi galime išeiti ne pagrindinis, ir tada įveskite paleisti.
Taigi pereiti per tai, printf, įveskite sveikasis skaičius, gauti sveikąjį skaičių, 13.
Taigi, mes ketiname išlaikyti decrementing kol i yra didesnis nei 10.
Tada mes ketiname patenka per o linijos ir gauti linijos -
tegul ją atidaryti atskirame lange.
Taigi mes decremented kol aš nebe didesnis nei 10, ir tada mes
vadinama funkcijos, rūšys.
>> Taigi, kas atsitiko, kai aš paspauskite funkcija foo, gerai, aš pašaukiau foo ir
tada aš nebeturėjo kontroliuoti GDB.
Taigi, kai aš paspauskite Next šioje eilutėje, viskas tęsėsi iki tai atsitiko,
kur programa išėjo, kai -
manyti, jis neegzistavo ilgainiui.
Tu matei tai pristabdyti šiek tiek nors.
Tad kodėl aš prarasiu kontrolę tuo momentu programa?
Na, kai aš tipo kitą, kad eina į pažodinis kitą eilutę kodo, kad
bus įvykdyti.
Taigi, po linija 21, kitą eilutę kodo kad bus įvykdyti yra linija, 22,
kuris, išeinant iš pagrindinių.
Taigi aš nenoriu tiesiog eiti į kitą eilutę kodo.
Noriu eiti į funkciją, foo, ir tada taip pat žingsnis per
tie kodo eilučių.
>> Taigi, kad mes turime alternatyvą.
Leiskite mesti, kad dar kartą.
Break pagrindinis.
Uh, 1, kitą, kitą, 13, kitą, kitą, kitą, atidžiai,
Prieš mes hit linija foo.
Gerai.
>> Taigi dabar mes eilutėje 21, kur mes vadiname foo.
Mes nenorime įvesti kitą, nes tai tiesiog paskambinti funkcija foo ir
pereiti į kitą eilutę kodo.
Ką mes norime naudoti, yra žingsnis.
Taigi, čia yra tarp Step skirtumas ir to, kur žingsnis žingsnius į
veikti, ir Kitas eina per funkcija.
Jis tiesiog vykdo į visumą funkcija ir išlaiko vyksta.
>> Taigi veiksmas vyksta atnešti mums į funkciją, rūšys.
Čia mes matome dabar, mes atgal tai, o kilpa tai, teoriškai,
ketina tęstis amžinai.
Ir jei paspausite žingsnis, kai ji net funkcija skambinti, tada tai
identiškas Next.
Taigi, tai tik tada, kai esate ne linija, kuri skambina funkciją Tai žingsnis
ketina skirtis nuo kitų.
Taigi žingsnis atneš mums čia.
Žingsnis, žingsnis, žingsnis, žingsnis, žingsnis, žingsnis, ir mes tiesiog begalinis ciklas amžinai.
>> Taigi galite priprasti, kaip jūsų būdas nustatyti begalinis kilpos, yra
tiesiog palaikius klavišą Enter pamatyti, kur jūs įstrigti.
Yra geresnių būdų, kaip tai padaryti, bet dabar, kad yra visiškai pakankamas.
Ir stilistiškai, kad atitiktų Stilius 50, aš tai padariau.
Gerai.
>> Taigi paskutinis komanda pristatyti.
Na, tegul GDB debug in
Taigi vietoj to, nesilaikantiems ne pagrindinė, jei aš žinoti foo funkcija taip pat
problema, tada aš gali turėti tik sakė, pertrauka ne foo vietoj.
Tarkime, aš pertraukos metu tiek pagrindinis ir rūšys.
Taigi galite nustatyti kaip daug ribines vertes, kaip norite.
Kai aš tipo paleisti, jis ketina sustoti -
Ooh, tegul perkompiliuoti, nes Aš pasikeitė dalykų.
Jūs pamatysite šią eilutę, įspėjimo šaltinį failas yra naujesnis negu vykdomąjį.
Taigi, tai reiškia, kad aš tiesiog atėjo čia ir pakeisti juos atitinka Stilius
50, bet aš ne perkompiliuoti programa.
Taigi GDB leidžia man žinoti.
Aš mesti, kad perprogramuoti iš naujo, hit gdb perprogramuoti.
Gerai.
>> Taigi dabar, atgal į, ką aš darau.
Break Main, pertrauka foo.
Dabar, jei aš paleisti programą, todėl ketina tęsti iki hitai
atskaitos tašką.
Kad atskaitos tašką atsitinka būti pirmasis ne pagrindinis.
Dabar, užuot toliau, toliau, toliau, kitą, kitą, kol aš paspauskite foo, aš
galite įvesti ir toliau, o toliau kol paspausite kitą atskaitos tašką.
Turiu įvesti sveikuosius pirmas.
Toliau bus tęsiamas tol, kol aš paspauskite kitą atskaitos tašką, kuris yra tai, kad
funkcija foo.
>> Taigi Vykdyti veiks iki paspausite atskaitos tašką, bet jūs tik įvesti paleisti kai
jums pradedant programą, o tada nuo tada, tai tęsti.
Jei aš tiesiog padariau pertrauka pagrindinis ir tada vyko, tai bus pertrauka ne
Pagrindinis ir tęskite.
Kadangi aš neturiu pertraukos tašką foo, įveskite sveikasis skaičius, tai dabar aš
nesiruošia išeiti į foo.
Tai tiesiog vyksta begalinis kilpa, kol tas.
Gerai.
>> Štai Miesto GDB.
Jūs turėtumėte pradėti jį naudoti Jūsų problemines rinkinių.
Jis gali būti labai naudinga nustatyti klaidas.
Jei jūs iš tikrųjų tiesiog eilutė po eilutės, eikite per savo kodą, ir palyginti tai, kas
iš tikrųjų vyksta su tuo, ką jūs tikėtis taip atsitiktų, tai gana
sunku praleisti savo klaidas.
Gerai.
>> Taigi, praėjusią savaitę Davidas išvedė tai paslaptis rakto kriptografija stuff
Pirmą kartą, kai mes nenorime slaptažodžius tiesiog laikyti ant mūsų
kompiuteris kai paprastojo teksto failą, kur kas nors gali atvažiuoti ir tiesiog
atidarykite jį ir juos skaityti.
Idealiu atveju, jie būtų šifruojamas tam tikru būdu.
Ir problemą, 2, jums reikia spręsti su vienu metodu šifravimo,
ar gerai, du metodai, tačiau jie yra ne toks didelis.
Jei hacker leidimas, esate Taip pat bus sprendžiami su
iškodavimo kai kuriuos dalykus.
>> Taigi, klausimas dabar yra gerai, net jei mes turime stipriausią šifravimas
algoritmas pasaulyje, jei pasirinksite ypač prastas slaptažodį, tada jis
nebus jums padėti, labai daug, nes žmonės vis dar galės suprasti jį.
Net jei matyti užšifruotą eilutę ir jis atrodo kaip šiukšlių netvarka
tai reiškia, kad nieko jiems, jei jie vis tik reikia išbandyti keletą slaptažodžių
figure it out, tada jūs nėra labai saugus.
Taigi, žiūrėti vaizdo įrašą, daro tą tašką.
>> [VIDEO PLAYBACK]
>> -Šalmas, jūs fanatikas.
Kas vyksta?
Ką tu darai, kad mano dukra?
>> -Leiskite man pristatyti lakuotais jauna plastikos chirurgas Dr Phillip
Schlotkin, didžiausias nosis darbo žmogus visam
visatos, ir Beverly Hills.
>> -Jūsų Didenybe.
>> -Nosis darbas?
Nesuprantu.
Ji jau turėjo nosies darbą.
Tai buvo saldus šešiolika metu.
>> -Ne.
Tai ne tai, ką jūs manote.
Tai daug, daug blogiau.
Jei nenorite duoti man derinys oro skydas, Dr Schlotkin bus
duoti savo dukterį atgal savo seną nosį.
>> -Ne.
Kur tu jį gavai?
>> -Viskas gerai.
Pasakysiu.
Ne, tėtis.
Ne, neturi.
>> -Tu teisus, my dear.
Aš praleisti savo naują nosį.
Bet aš negali pasakyti jam derinys, nesvarbu koks.
>> -Labai gerai.
Dr Schlotkin, padaryti jūsų blogiausias.
>> -Nėr už ką.
>> [ĮRANKIAI JUOS Sharpened]
>> -Ne.
Palaukti.
Pasakysiu.
>> -Žinojau, kad dirbtų.
Gerai.
Duok jį man.
>> -Derinys yra vienas.
>> -Viena.
>> -Du.
>> -Trys.
>> Keturių.
>> Penki.
>> -Taigi, derinys yra vienas, du, trys, keturi, penki.
Štai stupidest derinys Aš kada nors girdėjau savo gyvenime.
Štai koks dalykas idiotas turės savo bagažo.
>> -Ačiū, Jūsų Didenybe.
>> -Ką tu padarei?
>> I ¹ jungtas sienos.
>> -Ne tu ne.
Jūs išjungėte visą filmą.
>> -Turiu paspaudėte klaidingą mygtuką.
>> -Na, padėkite jį atgal.
Įdėti filmą atgal.
>> -Taip, pone.
Taip, sere.
>> -Eime, Arnoldas.
Ateik, Gretchen.
Žinoma, jūs žinote, aš vis dar galėsite turi sąskaitą jums už tai.
>> [PABAIGA VIDEO PLAYBACK]
>> ROB Boden: Gerai.
Taigi dabar, kad mes jau kalbame apie saugumo tam tikrais būdais, gražus
mažai filmo plakatas, todėl neseniai dienų, šie klausimai su NSI
stebėti viską.
Jis gali būti sunku jaustis kaip jūs turėti tam tikrą privatumo rūšiuoti
Virtualiame pasaulyje, nors aš negalėjau pasakyti jūs dauguma PRISM detales.
Taigi peržengiant PRISM, mes neketiname kalbėti apie, kad dabar
galvoti apie savo kompiuterį.
Taigi čia, aš noriu pereiti mano tikrojo sąskaitos
mano mažai pingvinas.
Taigi turiu slaptažodžių rinkinį, ir kad slaptažodis ką noriu, kad ji būtų.
>> Bet atsiminkite, kad tai, ką aš prisijungti su, todėl tai prisijungti
greitai, tai kai programa.
Tai kai programa, kuri buvo parašė tikru asmeniu.
Ir taip, kad asmuo, jei jie yra ypač kenksminga, jie galėtų
jau sakiau, viskas gerai, todėl, jei slaptažodis kad turėčiau įvesti lygi mano
Tikrasis slaptažodį, arba tai lygūs tam tikru specialiu slaptažodžiu -
Dovydas yra nuostabus ar kažkas -
tada tegul juos in
Taigi kenksminga programuotojas galėtų turėti prieiga prie visų jūsų Mac arba
Langai, arba nieko.
>> Taigi tai nėra daug susirūpinimą, nes, Aš turiu galvoje, tai yra prisijungimo programa
tai išsiunčiamas su OS X, šimtus ar tūkstančiai žmonių
peržiūri šį kodą.
Ir taip, jei jūsų kode kažkur, jūs pasakyti, ar šios eilutės lygu lygu
Dovydas yra nuostabus, prisijungimo duomenys, tada kažkas yra bus, kaip, palauk.
Tai nėra teisinga.
Tai neturėtų būti čia.
Štai vienas būdas, kuriuo mes gauti dalykų būti natūra saugus.
>> Bet pagalvokite apie net programas kad rašote.
Tarkime, jūs rašė prisijungimo programą.
Taigi šis prisijungimas programa, kad jūs rašė, taigi akivaizdu, kad esate geras
programuotojas.
Jūs nesate ketinate daryti bet kenksminga jei x lygu lygu Dovydas yra nuostabus
į savo kodą.
Tačiau ši programa, ką jūs naudoti kaupti šią programą?
Kažkas panašaus žvangėjimas.
Taigi ką daryti, jei asmuo, kuris atsitiko rašyti Zaszczękać ypatinga Bruņās Zaszczękać
kažkas panašaus, jei aš sudarant prisijungti programą, tada įveskite šį kodą
į prisijungimo programa, kuri sako, jei X reiškia lygu Dovydas yra nuostabus?
Taigi, dar visai, bet mes turime tą patį išleisti čia, kur žvangėjimas, gerai,
tūkstančiai, jei ne dešimtys tūkstančių žmonės, pažvelgė Zaszczękać, turi
pažvelgė į savo eilučių kodo ir sakė, viskas gerai, nieko bloga čia.
Akivaizdu, kad ne vienas yra kas tai kenksminga.
>> Bet kas yra Zaszczękać pati, kaip, ką daryti, jei aš surinkti Zaszczękać?
Ką daryti, jei kai kompiliatorių, kad kaupia Zaszczękać įterpia į Zaszczękać
ši speciali Hack, kad sako, viskas gerai, kai aš sudaryti žvangėjimas, tada
vykdomąjį Man reikia specialiai ieškoti viduje prisijungimo programos ir įterpti
šį slaptažodį lygu lygu Dave yra nuostabus?
Taigi nepamirškite, kad pati savo kompiliatorius turi būti renkami tam tikru momentu.
Taigi, jei kas norite sudaryti Zaszczękać su, pati yra kenksminga, tada jūs
gali būti prisukamas visą kelią žemyn linija.
>> Taigi čia mes turime Ken Thompson Dennis Ritchie.
Taigi tai yra Portretų nuotrauka.
Dennis Ritchie yra dešinėje.
Jis yra svarbus -
gana daug rašė C. Taigi, jūs galite padėkoti jam už šioje klasėje.
Ken Thomson kairėje.
Du iš jų iš esmės rašė UNIX.
Na, jie buvo pagrindiniai veiksniai, UNIX.
Buvo keletas kitų.
Taigi, Ken Thompson, tam tikru momentu, jis laimi Turingo apdovanojimą.
Ir Tiuringo apdovanojimas, Aš visada girdėjau tai nuorodos, tokiu būdu, tai
Nobelio premijos kompiuterių mokslo.
>> Taigi tuo Turingo apdovanojimą, jis turi duoti jo priėmimo kalboje.
Jis suteikia šiam labai žymiojoje kalboje dabar vadinamas Apmąstymai apie Pasitikėjimas
Pasitikėjimas, kurį mes sieja On kurso tinklalapyje.
Ir šioje kalboje jis sako, viskas gerai, todėl parašiau UNIX, o dabar visi
jūs žmonės naudoja UNIX.
Dabar, šiandien prisimenu, kad Linux yra tiesioginis palikuonis UNIX.
OS X "tiesiogiai naudoja UNIX.
"Windows" nėra tiek daug, bet daug idėjų paimtos iš UNIX.
>> Taigi jis pakyla į sceną ir sako: viskas gerai, aš parašiau UNIX.
Ir tik todėl, vaikinai žinau, aš tikiu, gali prisijungti prie kiekvieno
vieną kartą savo kompiuteriuose.
Kadangi aš įdėti vieną iš šių specialių jei x Lygu lygu Ken Thomson yra nuostabus,
tada man bus leista prisijungti.
Taigi žmonės yra kaip gerai, kaip tu tapai tai padaryti?
Mes pažvelgė prisijungimo programos ir nieko ten.
Jis kaip gerai, aš kartą sudarytojas prisijungti prisijungimo programos
kad prisijungimo programa dabar turės kad X reiškia Lygu Ken Thompson
yra awesome.
>> Ir jie sako, gerai, kad tai ne tiesa.
Mes ieškome ne kompiliatorius, ir kompiliatorius neturi jokių linijų
kodas panašaus.
Jis kaip, gerai, bet tai, ką tu Sudarant kompiliatorių?
Ir jie galvoja, ir jis, kaip gerai, Aš tas, kuris davė jums kompiliatorius
jūs naudojate sudaryti sudarytojas, todėl jūs rinkti kompiliatorių, kad
pati yra kenksminga, ir bus pertrauka prisijungimo programą.
Taigi, iš esmės, tuo momentu, ten jokiu būdu jūs galite pažvelgti į šaltinio
kodas prisijungimo programos pamatyti, kas yra negerai.
Jūs negalėjo net pažvelgti į kodą iš kompiliatoriaus
pamatyti, kas yra negerai.
>> Jums reikės pažvelgti į mašiną kodas, faktinis dvejetainis
parengė kompiliatorius pamatyti, palauk, tai eilučių kodo neturėtų būti čia.
Bet Kenas Thompsonas paėmė dar vieną žingsnį toliau ir sako, gerai, kad yra
šios specialios programos, kad iš tikrųjų padėti jums skaityti programų dvejetainis,
todėl jei kas nors naudojo tą programą skaityti dvejetainiai, jie būtų matyti jų
eilučių kodo.
Jis pakeistas šias programas pasakyti, visi Gerai, jei jūs ieškote
sudarytojas, nerodo tai ypač rinkinys binary.
>> Taip, tada jums reikia imtis, kad žingsnis toliau ir, iš esmės, kad gali turėti
kurių buvo imtasi daug lygių Netiesiogiai, ir tam tikru momentu, niekas iš tikrųjų
bus patikrinti.
Taigi istorijos moralas yra, jūs nesiruošia būti raštu
Zaszczękać šioje klasėje.
Jūs ketinate naudoti laipioti Zaszczękać daug šioje klasėje.
Dėl visų žinote, Zaszczękać yra kenksminga programa, kuri yra sabotažas kas
viena programa jūs kada nors surinkti.
Ir palikti jus, kad labai blogas dėmesį, kad mato jus trečiadienis.
>> [Plojimai]
>> SPEAKER 2: Kitame CS50.
>> SPEAKER 3: Ar ne jūs išdrįstų pasakyti, kad.
Jūs galite tai padaryti.
Jūs tai padarė anksčiau, jūs galite tai padaryti, šiandien, jūs galite tai padaryti rytoj.
Jūs buvote daro tai už metus.
Tiesiog eiti ten ir tai padaryti.
Jūs galite tai padaryti.
>> [Muzikavimo]