[Powered by Google Translate] David J. Malan: Nu labi, tas ir CS50, un tas ir
sākums divu nedēļu.
Paldies.
Ļaujiet mums sākas šeit ar telefona zvanu.
Es esmu par, lai izsauktu 617-Bug-CS50.
CS50: Tas ir CS50.
Turp un atpakaļ Boy, nospiediet 1.
Lai sāktu no jauna, nospiediet 9.
David J. Malan: Tā viņš teica par Shuttle Boy, nospiediet 1.
Tāpēc mēs esam gatavojas nospiediet 1.
CS50: Kāds ir jūsu izcelsme?
Par Quad, nospiediet 1.
Mather, nospiediet 2.
Boylston, nospiediet 3.
Lamont, nospiediet 4.
Mem zāle, nospiediet 5.
Lai sāktu no jauna, nospiediet taustiņu 0.
David J. Malan: Mēs nospiediet 1 quad.
CS50: Nākamais maršruta atstāj šo ļoti minūti at 1:10 PM, un
tad at 1:20 PM, 01:30, 1:40 PM.
Tas ir CS50.
>> David J. Malan: Tātad tas ir CS50 balss.
Un tas ir piemērs no gala projektu veidu, lai
Piemēram, jūs varat nokost pret
beigās semestra.
Piemēram, ka shuttleboy.cs50.net eksistē -
patiesībā projekts, kas es pirmo reizi rakstīja, ņemot CS51
atpakaļ, kad man bija undergraduate.
Un iedvesmas šeit bija toreiz, visi viņi bija bija
iespiestās piepilsētas autobusu grafikus, un nebija
jēdziens meklē lietas uz augšu tiešsaistē.
Un tāpēc es veida balodis vienā nedēļas nogalē, izlej caur
izdrukāt grafiku, un pārnesti to uz datora programmu.
Tajā laikā, kad datorprogramma notika jāraksta
jo C. Un tu tiešām ilga to, ierakstot Shuttle puika
mirgo ātri kā mēs esam darījuši līdz šim.
Taču gadu gaitā, tas ir pārtapusi tūlītēja
ziņapmaiņu bot.
Tas ir kļuvis vēl nesen šajā tīmekļa vietnē, uz
Īsziņu balstīts instruments, kā arī šajā balss rīks.
Un tas ir mājienu lietas veidu, ka jūs varat
darīt, lai sevi līdz semestra beigām.
>> Piemēram, tur, SMS versija Shuttle Boy notiek
darboties šādi.
Ja uz jūsu mobilo tālruni, jūs sūtīt īsziņu uz 41.411 un
pēc tam nosūtīt īpašu simbolu sboy, par Shuttle Boy,
seko A un B, kur ir izcelsme un B ir
galamērķi -
Piemēram, Boylston Space Quad -
ko jums vajadzētu saņemt atpakaļ dažu sekunžu laikā ir teksts
ziņa no Shuttle Boy stāsta jums, kad tieši
Nākamie atspoles ir, no šī punkta dodas uz kas
punktu B.
Un tas ir vairāk vispārējs piemērs, kas pazīstams kā
izmantojot API.
>> Tātad, piemēram, tas šeit ir tikai shuttleboy.cs50.net,
Faktiskais tīmekļa iemiesojums to.
Bet dati, kas ir uzsvērta šī un citu progr, ka CS50
ir izstrādājusi visi pakļauti ikvienam šeit formā
API, lietojumprogrammu saskarnes.
Un tas ir tikai iedomātā veids, kā pateikt, ka cilvēkiem patīk mēs par
Internets un citi ir pavadījuši kādu laiku izveidojot
programmatūru, jūs varat izmantot, lai greifers datus no mums un
tad veidot savu pieteikumu uz augšu
Šīs datu kopas.
Tātad, piemēram, tas Transporta Zēns API lapā šeit, kas
notiek, ir uz CS50 rokasgrāmatā, būtībā dokumentiem
kā jūs varat iet par lūdzot CS50 serveriem datiem.
Piemēram, ja jūs esat iepazinušies ar CSV failiem, komats
atdalītas vērtības, tie ir tikai sava veida ātri un netīrās
Excel līdzīgi failus.
Tātad jūs varat lūgt Shuttle zēns visus datus par visiem
mājas un GPS koordinātas, un Jūs saņemsiet
muguras, būtībā, izklājlapu, piemēram, ka
Jūs varat izlasīt programmā savu un pēc tam
radīt rezultātus, piemēram Shuttle Boy pati
notiek darīt.
Tiem vairāk pazīstams, vairāk mūsdienu datu pārstāvniecībās
ietver JSON, JavaScript objekts pierakstā.
Kaut nāks atpakaļ uz jums uz
beigās semestra.
>> Bet atkal, tas ir tikai viens no vairākiem CS50 pašu API.
Un aizraujošu lieta ir tagad, šajās dienās, Facebook un
Twitter un Google un diezgan daudz ik populāri mājas lapā, kas
tur ir dažas no API, kas nozīmē, ja jūs lasīt kārtot
dokumentāciju par to mājas lapā, jūs pierakstīties uz
kontu, tad varat sākt rakstīt programmatūru uz augšu
neatkarīgi rīkus vai dati, uzņēmums tur piedāvā.
Un tāpēc viens no mūsu pašu mācību līdzcilvēkiem pāris gadus atpakaļ
uzrakstīju Mac versiju par to.
Tāpēc pie saites ar nosaukumu Mac šeit augšējā kreisajā stūrī, jūs faktiski
lejupielādēt Mac OS widget, kas darbojas uz sava Mac darīt to
pašas lietas.
Tātad tas viss ir par ēkas uz augšu datu kopu, piemēram, šo.
Bet vairāk par to uz beigām semestra.
>> Tātad, pieņemsim pikējošais nekustamo ātri ar kļūdu, tikai, lai veida nokļūt
lietas iesilda šodien, un domāju, ka atpakaļ uz dažiem
Lietas, ko mēs paskatījās pagājušajā nedēļā.
Jo īpaši, ļaujiet man iet uz priekšu un uzvilkt, teiksim,
šis piemērs šeit.
Buggy1.c, tas ir pieejams par kursu mājas lapā, ja jūs vēlaties
patīk lejupielādēt un pabāzt ap sevi.
Bet pieņemsim tuvinātu šeit šajā diezgan īsā programma, un tikai
super-ātru Atgādinājums daži no stūrakmeņiem, ka
mēs patiešām gribam, lai tikai sāktu veikt par pašsaprotamu.
>> Tātad zilā sīkumi, kas no 1 līdz 9 līnijas, ir tikai
softbola jautājumus.
Tātad tie ir tikai komentāri.
Viņiem nav nekādas funkcionālas nozīmes.
Bet viņi komentārus tādā nozīmē, ka viņi norāda, ka
Es, cilvēks, kas pie sevis, lai lekciju un pēc
lekcija, es tiešām atceros, ko šī programma
dara bez lasīt caur to pozīcijai un
atjaunošanās vēsturi manā prātā.
Turklāt, ja es roku šo programmu, lai kāds cits, piemēram,
tu, tas ir daudz skaidrāks, lai jūs, jo komentāriem, kā šis,
kāda programma ir faktiski dara, vai vismaz kāda
Programma ir vajadzēja darīt.
Vai tas ir pareizi, ir cits jautājums vispār.
Tagad, C, ar multi-line komentāriem, atcerēties, ka uz līnijas
vienu šeit ir burvju simbols, / *.
Tas nozīmē šeit nāk sākumu komentāra.
Un nekas cits jautājumiem, līdz jūs sasniedzat beigu pārtraucēju
kas ir * /, pretī.
Tātad fakts, ka man ir 80-daži nepāra zvaigznes šeit no
kreisās uz labo, ir tiešām tikai estētiska detaļa.
Tam nav funkcionālas nozīmes.
>> Tagad, kā par 11 līniju?
Ko tas dara lajs izteiksmē?
Ko tas nozīmē?
Mērķauditorija: Ietver standartu.
David J. Malan: Labi, labi.
Tātad tas ietver stdio.h bibliotēku.
Tātad, ko tas nozīmē?
Nu, iekšā šo failu, stdio.h, ir visai ķekars
funkcija deklarācijas -
tas ir, koda ka kāds cits rakstīja.
Un perfekts piemērs funkciju, kas ir deklarēta
stdio.h ir -
kas mīļākā ko tagad?
Tātad printf, viens no visbiežāk tiem izmantot, protams
agri no šīs bibliotēkas ir tur.
Ja es izslēgt, ka līnijas kodu, šķindēt gatavojas kliegt
manī kaut kas par izmantojot nedeklarēto simbolu.
Nedeklarētu kaut kas ir iespējams, atslēgvārds, jo
mēs neesam informēti kompilators ko printf izskatās
patīk, ja mēs arī šo rindu.
Un vēl uz leju, lai Zemes, tiešām, ko tas līnija saka, ir
atvērt šo failu, stdio.h, kur tas ir par servera
cietais disks, vai par ierīces cieto disku, un kopēt-ielīmēt to
labi tur manā failā, bez manas
kam to darīt manuāli.
>> Tagad, kad mēs noteikti šeit galvenais, pirms ilgi mēs sāksim
teasing intervālu ko int un kāda neesošu ir.
Bet tagad, aplūkosim trīs līnijas
aktu 15 līdz 17.
Tas šeit es varu pieprasīt kā mašīnīti.
Manā komentāros 7 line saka "jāizdrukā 10
zvaigznītes bet nav "Kāpēc. tas nav drukāt, patiesībā,
10 Piemēram zvaigznes?
Mērķauditorija: [nedzirdama].
David J. Malan: Tieši tā.
Tātad ievēroju, ka mēs sākam skaitīt no 0.
Un tas ir faktiski konvencija plānošanas un
datorzinātnes kopumā, sākot skaitīt
no 0, nevis 1.
Un tas patiešām ir tikai cēlies no tā, ka, lai
Piemēram, kad mums bija astoņi cilvēki uz augšu uz skatuves, kad
neviens netika paaugstinot savu roku, viņi bija
visi efektīvi nullēm.
Un tā tas ir tikai sava veida datora konvenciju tā,
Tādēļ, lai sāktu skaitot no 0.
Ja tas ir mazākais skaits var pārstāvēt bināro.
>> Tāpēc šeit mēs esam sākuši inicializēšana I līdz 0.
Mēs esam, kas man ir vienāda ar 0.
Bet tad es šo kļūda šeit, sakot man ir mazāks vai
vienāds ar 10.
Bet, ja jūs domājat, ka cauri, ja es sāktu ar 0, un tad es dodos
līdz 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, es esmu patiešām gatavojas
izdrukāt 11 zvaigznēm uz ekrāna, jo es esmu gājusi uz augšu
uz un vienāds ar 10.
Tik viegli noteikt šeit tad ir tas, ko?
Mērķauditorija: [nedzirdama].
David J. Malan: Vienkārši mainīt to mazāk nekā.
Ja jūs patiešām vēlaties, jūs varētu darīt.
Bet vispār, kas ir sarauca pieri.
Un tā sāk skaitīt no 0 ir tikai kaut kas jums vajadzētu
parasti pierast.
Tagad, ko par šo visu būvēt un pats par sevi?
Šī līnija 15 demarks par cilpu.
Tāpēc nav funkcija.
Tas ir tikai apgalvojums.
Tas looping konstrukcija, tāpat kā mēs redzējām nulles.
Un tas ir trīs daļas.
Ievērojiet, ka tur ir pirmā daļa, kas
kreisi no semikolu.
Tur vidusdaļa starp diviem semikoliem.
Un tad tur ir labā puse pa labi
otrās semikolu.
Tagad, pirmais no tiem dara?
Mērķauditorija: [nedzirdama].
David J. Malan: Atpakaļ tur?
Yeah?
AUDITORIJA: Inicializācijas.
>> David J. Malan: inicializācija.
Tātad, ko tas nozīmē?
Mēs esam paziņoja mainīgo sauc i.
Tas ir int tipa, jo es esmu norādīts int i.
Un es esmu inicializēšana I vērtību 0.
Tātad, ko tas īsti saprotams?
Tas ir efektīvi sakot ar datoru hey, dod man pietiek
atmiņu, pietiekami daudz RAM, lai ietilptu numuru, un tad ielieciet
Šajā rieciens RAM 0 numuru.
Un kā malā, cik liela ir int parasti, vismaz iekšā
no ierīces?
Mērķauditorija: 32 bitu.
David J. Malan: 32 biti.
Tātad tas nozīmē, man 32 bitus, citādi zināma kā 4 baiti,
un nodot vērtība 0 tā, kas ir diezgan viegli, jo
Tas nozīmē tikai to noteikt visus bitiem līdz 0.
>> Tāpēc tagad, otrā daļa šeit ir nosacījums.
Un nosacījums, kas liecina nosaukums, ir tas, ko pārbauda
atkal un atkal un atkal, vai tā ir patiesa vai nepatiesa.
Tātad tas ir tikai saprotams darīt šādas rindas koda -
proti līnija 16, jo tas ir vienīgais izrobota 1
zem -
tik ilgi, kamēr es ir mazāks par 10.
Un pēc katra atkārtojuma caur šo cilpu, do
incrementation, kas šajā gadījumā ir i + +.
Tagad, tas nav jābūt I + +.
Tas varētu būt es -.
Bet, ja es to izdarīja, to, uzvedība notiek
būt par šo programmu?
Mērķauditorija: Tas būs bezgalīga cilpa.
David J. Malan: Tas būs sava veida bezgalīgu cilpu,
ja mēs paveiksies pēc negatīvs 2 miljardi jeb tā.
Varbūt lietas aptīšanas, tikai pēc būtības no noteiktas
bitu skaits, kas mums ir iedalītas int.
Bet tas noteikti būs atkārtot daudz vairāk nekā 10 valstīs un
protams, vairāk nekā 11 reizes šeit.
>> Un tagad, tāpat kā malā, saprotam, ka i + + un i -
Ir tiešām tikai sintaktisko cukura.
Tas ir tikai stenogrāfija nošu kas ir nedaudz vairāk
skaidri rakstīts šādi:
i = i + 1.
Tas ir identisks i + +.
Tas tikai veida izskatās glītāka teikt i + +.
Tas ir vairāk koncentrēts, vieglāk uztveramu.
Un tāpēc lielākā daļa cilvēku darīt vietā.
Bet tas ir identisks funkcionāli
ko mēs tikko redzējām.
Tātad īsumā, ātri noteikt šeit ir tikai pateikt atkārtot I
no 0 visu ceļu līdz pat mazāk nekā 10.
Un tad mēs tiešām saņem 10 zvaigznes.
>> Tāpēc pieņemsim mēģināt šo.
Ļaujiet man atvērt termināla apakšā.
Ļaujiet man iet uz direktoriju, ka tas ir iekšā
Un es esmu gatavojas apkopot to manuāli ar šķindēt tagad.
Un es esmu gatavojas apkopot šo kā buggy1.c, Enter.
Un tagad buggy1, kāpēc tur nav šādu failu vai direktoriju
sauc buggy1?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā.
Tātad tas faktiski aicināja a.out.
Tātad atcerēties, ja jūs vienkārši palaist šķindēt, kur šķindēt ir
kompilators, un jums nav jānorāda vārds, kuru vēlaties
dot savu programmu, tas notiek, lai noklusējuma a.out.
Tātad tiešām, ja man ls -
Ups.
Un es didn't - uz melna un balta jautājumu dažus
esat saskārusies ir noteikts.
Bet ļaujiet man darīt.
Tur mums ir a.out uz kreisajā pusē tur.
Tāpēc mums ir palaist a.out nevis buggy1.
>> Tāpēc ļaujiet man iet uz priekšu un darīt to.
. / A.out, Enter.
Un es acīmredzot nebija darīt?
AUDITORIJA: Saglabāt.
David J. Malan: Saglabāt manu failu.
Tāpēc, ka ir viegli atrisināt, trāpot Control S, vai dodas uz
Failu, Saglabāt, tāpat kā vairumā programmu.
Ļaujiet man iet uz leju šeit, notīrītu ekrānu, palaist vēlreiz.
Un tur ir vēl kļūda.
Tātad, kas notiek -
Mērķauditorija: Jums nav sastādīt.
David J. Malan: Ah, labi.
Man nav salīdzināšanu.
Kā idiots, es esmu meklē kodu, lai redzētu, kas ir nepareizi.
Tātad šķindoņa buggy1.c, tagad a.out.
Un Phew, saglabātas.
>> Tāpēc tas izskatās mazliet neglīts, jo tur nav jauna līnija
jebkur programmā.
Bet atkal, tas ir tikai estētiska detaļa.
Un vismaz, ja mēs paļaujamies tos, mums vajadzētu
tagad redzēt 10 tādas zvaigznes.
Nu, ko par šo otro iesildīšanās piemēram?
Tātad buggy2, es apgalvot, ka šī versija arī būs drukāt
10 zvaigznes, pa vienai katrā rindā.
Tātad šajā laikā, man ir newline raksturs, tikai lai
lietas mazliet prettier.
Bet tā vietā, ko man tas ir.
Tāpēc ļaujiet man darīt šķindēt buggy2.c, Enter.
Tagad tas atkal sauc a.out.
Enter.
Es redzu tikai vienu jaunu līniju, tikai pašā pēdējā jaunā līnija, kas
pārceļas mans aicinājums nākamajā rindā.
Un vēl skaidri es esmu drukāšanas *, tad jaunu līniju,
*, Tad jaunā pozīcija.
Bet kāda kļūda šeit?
Yeah?
Mērķauditorija: [nedzirdama].
>> David J. Malan: Tieši tā.
Tātad atšķirībā no dažiem valodām, piemēram, Python, kur līdzinājums
faktiski ir funkcionālo nozīmi, jo
valoda, piemēram, C -
kā mēs redzēsim, PHP, JavaScript -
sašaurinājums ir tiešām tikai par cilvēkiem "labā.
Tātad fakts, ka es esmu izrobota līniju 16 un 17 izskatās lieliski,
bet tas nav funkcionālas nozīmes šeit.
Ja es gribu abas līnijas izpildīt kā daļu par
cilpa, tad man ir jāpievieno tos cirtaini lencēm, ko darīt.
Jūs varat tikai samazināt šo stūri un izlaist cirtaini bikšturi, ja
kāda ir lieta?
Mērķauditorija: Tikai vienu līniju.
David J. Malan: Tikai vienu līniju.
Tātad tas ir tikai sava veida jauku veida sintakses detalizēti, lai
jūs netērētu laiku, rakstot trīs līnijas, no kuriem divi ir
cirtaini bikšturi, vienkārši rakstīt vienu rindiņu kodu.
Bet, ja jums ir divas vai vairākas līnijas, mēs
tiešām ir nepieciešams to darīt.
>> Tāpēc tagad ļaujiet man ietaupīt šo.
Ļaujiet man iet uz priekšu un atkal palaist šķindēt.
Tad ļaujiet man atkārto a.out, un tagad man tos pa vienam katrā rindā.
Tagad, a.out atkal ir sava veida mēms nosaukumu programmas.
Kā es varu pateikt šķindēt faktiski man faila nosaukumu
kas ir vairāk lietotājam draudzīgs, tāpat buggy2 pati?
Nedaudz skaidrāk?
Mērķauditorija: [nedzirdama].
David J. Malan: Labi, tāpēc es patiesībā var veikt ļoti
lietotājam draudzīgu saīsnes un tikai rakstīt padarīt buggy2.
Man nav jānorāda c šajā lietā., Un hit Enter.
Un ko darīt tas ir tas sastāda buggy2.c man ar
lūdzot šķindēt to darīt.
Proti, tā aicina šķindēt, tas darbojas šķindēt izmantojot tā vairāk
komandrindas argumentus vai slēdžus, nekā es tiešām ir nepieciešams.
Ar laiku, mēs būsim atpakaļ uz to, ko visi šie dažādu
mistisks hyphenated izteiksmes līdzekļiem.
Bet tagad, tas ir tikai ietaupot man nepatikšanas
nepieciešamības atcerēties un kam tipa no visiem tiem
dažādas hyphenated izteiksmes.
Un tā otrādi galu galā ir
ka tagad man ir buggy2.
Ja es gribu to darīt manuāli, gan, es
var tā vietā izdarīt -
šķindoņa-o buggy2 un tad buggy2.c.
Un kas būs līdzīgi man failu ar nosaukumu buggy2.
>> Tātad īsumā, šķindēt ir kompilators.
Darīt ir tikai lietotājam draudzīgs rīks, kas mums būs, izmantojot vairāk
un vēl, jo tā vienkārši sāk
vienkāršot lietas mums.
Un mēs atgriežamies 0, visbeidzot.
Tagad, tikai tāpēc, bet mēs sāksim Teasing, ka daļa
šodien un trešdien.
Visus jautājumus par kādu no šo?
Yeah?
Mērķauditorija: [dzirdams]
Ls pēdiņām tur?
David J. Malan: Labi.
Kad es drukāti Ls citātus, kas bija mani dara daži burvju
aizkulisēs, lai noteikt bug.
Es aizmirsu, kā mēs esam stāsta daudzi no jums par
diskusiju dēļiem, kas darīt -
mēs darīt tagad - sudo Yum-y atjauninājumu appliance50.
Whoops, ka ir uzrakstīti pareizi.
Tātad ierīce ir kā operētājsistēmu.
Tas darbojas šo operētājsistēmu sauc Fedora.
Un tagad, jo mana lēnu interneta savienojumu, es esmu
tiešām jātulko to.
Tātad darbojas sudo Yum atjauninājumu, kā mēs jums pastāstīt darīt
Problēma komplekts, būtībā tāpat kā darbojas automātisko atjauninājumu
Mac OS vai Windows.
Un iemesls darbojas šī pašā sākumā
Problēma komplekts ir tāpēc, kad mēs radīja ierīci, es
messed up, un es nejauši izgatavots visas programmas izskatās
melns uz melna ekrāna, kas ir iemesls, kāpēc jūs neredzat tos
pēc noklusējuma.
Bet jaunākā versija no ierīces nosaka šo.
Un es noteikt, ka laikā pārtraukuma reiz man ir internets
savienojamību.
>> Tātad citē vienkārši slēpj mana kļūda, ļoti diskrēti,
acīmredzot.
Citi jautājumi?
Jā?
Mērķauditorija: Kur veikt nāk no?
[Dzirdams]
David J. Malan: Labs jautājums.
Kur tas padara nāk no?
Tas ir Linux programma, kas pastāv jau vairākus gadus, kamēr
Pirms CS50.
Un tas nāk ar operētājsistēmu, piemēram, Fedora.
Tas nenāk no CS50 bibliotēkas.
Patiesībā, tikai lietas, kas nāk no CS50 bibliotēkas
Līdz šim, ka mēs esam redzējuši, ir GetString, GetInt, visi
tiem Get funkcijas, un vārdu virkne, un uz dažiem
mērā vārdu bool.
Bet mēs kaitināt, ka bez kad mēs nirt CS50 uz
pati ierīce.
>> Tātad, jā, vēl viens jautājums šeit.
Mērķauditorija: Kad jūs teicāt veikt un pēc tam Buggy, kā tas
dators zina [dzirdams]?
David J. Malan: Labs jautājums.
Tātad, ja jūs vienkārši palaist padarīt buggy1 vai padarīt buggy2, cik
tas padara zina?
Tātad pēc noklusējuma, ja jūs rakstīt veikt buggy1, padara meklē
failu sauc buggy1.c.
Un tad tas izpilda attiecīgus šķindēt komandas,
tādējādi ignorējot noklusējuma izvades failu sauc a.out.
Patiesībā, ja mēs skatāmies uz to, ko darīt, ko -
pieņemsim atmest šo.
Ja mēs skatāmies uz to, kas padara faktiski dara, dara buggy2,
tas jau līdz šim.
Tāpēc ļaujiet man noņemt rm komandu,
Programma es uzrakstīju iepriekš.
Ierakstot Y-E-S, lai apstiprinātu, ka es gribu, lai to noņemtu.
Ja man tagad darīt darīt, ievēroju, ka šajā ļoti garā rindā,
tur ir šī pēdējā lieta šeit,-o buggy2.
Visi dara dara, ir iet šo argumentu, tā sakot, lai
Šķindoņa, tāpēc, ka man nav rakstīt pats.
>> Labi, tāpēc ātri pāris administratīvo
paziņojumi.
Tātad sadaļām, kuras oficiāli sākās šo nāk
Svētdiena, jūs vienmēr vēlaties, lai, ja
jums ir viens, klēpjdators.
Ja jums nav klēpjdators, do panākt, lai man
krītot man e-pastu.
Un mēs izdomāt darbplūsmu.
Ko vispār jūs atradīsiet nodaļā ir tas, ka viņi daļa
konceptuāls, nepilna praktisku.
Mēs speciāli izmantot sadaļu jautājumiem, daļa no
Šī nedēļa ir problēma, kas, lai staigāt pa kādu no
konceptuālu materiālu no lekciju.
Un tas viss ar pašreizējo problēmu kopumu.
Un mēs arī nirt dažas praktiskas aktivitātes, dažreiz
kas tiks pieprasīts iesniegt, dažkārt
kas nebūs.
Piemēram, šī pirmā nedēļa, viņi nozīmēja tikpat
iesildīšanās pasākums.
Un jūs atradīsiet, ka šīs problēmas ir tiešām tikai to.
Tie ir domāti, lai būtu diezgan maza, bet ne vienmēr
triviāla programmām, lai rakstītu, ka ne vienmēr ir
aizraujoši un par sevi, bet ir labas iespējas
praktizēt ar sintaksi, ar jaunām funkcijām, kas komforts
sadaļā, kur jums ir daži no jūsu klasesbiedriem klāt kā
arī savu TF.
>> Un ko mēs darīsim laika gaitā ir izmantot rīku, ko sauc CS50 Spaces,
kuru nevis tikai izmantojot CS50 Appliance, jūs
vietā iet uz mājas lapā pārlūkprogrammā, kur jūs varēsiet
rakstīt kodu pārlūka loga laikā sadaļā.
Un tad, ja jūs izvēlaties, jūsu mācību kolēģis tad var parādīt
kāds tas ir jūs rakstāt uz ekrāna savā pārlūkprogrammā
logu augšā klases priekšā, vai anonīmi vai
publiski, lai viņš vai viņa var, tad staigāt cauri ar
jūsu klasesbiedri, ko jūs labi, ko jūs nav darīt labi.
Un atkal, drošs tas viss var labi anonīmus.
Bet tas būs jauka iespēja daudz
interaktivitāte kā kaut ko līdzīgu lekciju atļauj.
>> Pa to laiku, mums būs šīs lietas sauc par super
posmi, kas ir obligāta, bet ir atvērtas ikvienam
klases, lai jūs varētu darīt vairāk, kopumā attiecībā
Problēma noteikti vienu.
Lūk grafiks.
Tas ir arī publicēta mājaslapā cs50.net.
Ievērojiet, ka tur būs hakeris specifiska
1 rīt pēcpusdienā.
Un mēs filmēt vienu šodien un vienu rīt un pēc tām
Pašreiz 24 stundu laikā.
Tātad, ja jūs nevarat veikt kādu no šiem laikiem, nav jāuztraucas.
Un atkal, grafiks ir tiešsaistē tagad pie cs50.net.
>> Runājot par sectioning sevi, jums ir jābūt gotten
rakstiet instruēt jums iet uz kursiem mājas lapā, lai atrastu
kādas ir jūsu sadaļā.
Ja dzīve ir mainījusies, un jums ir nepieciešams, lai mainītu savu sadaļu,
nav problēma.
Iet atpakaļ uz to pašu URL, cs50.net/section, vienskaitlis,
un jūs aizpildīt līdzīgu formu, lai jūs varat
tad dod mums savu izvēli.
Un mēs sekot līdz nedēļas beigām, par to, ko mēs varam
pielāgotos.
Pagājušajā nedēļā, atgādināt, ka mēs ierosinājām, izmantojot CS50 diskutēt,
Kurss diskusija instruments, lekciju.
Tāpēc mums bija 40 jautājumi, kas tika uzdoti un
atbildēja laikā lekciju.
Tā likās strādāt labi, tāpēc mēs turpināsim
mēģina to darīt.
Ja, veicot lekciju, jūs ne tikai justies ērti piesaistīšanu
roku, nevis problēma.
Iet uz cs50.net/discuss, post tur, un mūsu mācību 1
stipendiātiem būs vai nu atbildēt elektroniski vai paaugstināt to
roku uz jūsu vārdā anonīmi jautāt, atkarībā
par rakstura jautājumu.
Un attiecībā uz atsauksmēm, parasti psets būs
atgriezās nedēļas laikā.
Jo tas aizņem maz, bet, lai sekcijas lai sasniegtu
līdzsvars, pirmā PSET, 0 un 1, būs mazliet
aizkavēta kā lietas apmesties.
Bet sekojiet līdzi ka nedēļās.
>> Visiem labi, tāpēc ļaujiet man likts uz manu nopietns
balss tikai brīdi.
Tātad tas ir faktiski interesants klimats būt
ņemot šo diskusiju, kas ar visām citām lietām
notiek uz Campus tiem saistīto.
Bet CS50 noteikti ir bijusi sava vēsture šis konkrētais
temats, jo tik daudz kā katru gadu, šis kurss, daudziem
gadiem, Ad-dēļi apmēram 3% no klases.
Šī pēdējā gadā, 2011, CS50 Ad-iekāpa 35 studenti.
Tas nav, es domāju, jo trūkst skaidrības.
Saprast, ka, veicot s mācību, ir lapa
paziņojumu, kurā paskaidro, kur līnijas ir.
Tas pats apgalvojums tiek atkārtots katru vienu no
Problēma noteikti uz vienas lapas.
>> Tāpēc es pieminu šodien tiešām tikai veikt
ļaudīm domājot par to.
Un mēs esam mēģinājuši dažādas lietas.
Un ko es domāju, ka mēs varētu darīt šobrīd ir tikai jāņem brīdi, lai
faktiski apskatīt dažus no pēdējiem gadījumiem, kas ir ieradušies uz augšu.
Nevis saglabāt šos jo netīrās maz noslēpumus, faktiski
norādīt, ko studenti ir jādara un kā mēs esam atklāti
tas un tiešām, ko galvenais motivācija ir
pat ar šī saruna.
Tātad ar to teica, līnija būtībā tas ir -
vienu mācību, jūs laipni, tiek aicināti, lai
runāt ar klasesbiedriem.
Tas ir viss mērķis, kam šie sadarbības
biroja stundas Annenberg un mudinot cilvēkus uz
galīgais projekts strādāt kopā.
Bet līnija ir sagatavots, kad runa ir laiks, lai faktiski rakstīt
savu galīgo risinājumu.
Runājot angļu valodā, pilnīgi naudas sodu, uzstājoties pseido kodu,
pilnīgi naudas sodu.
Nosūtot klasesbiedrs savu PSET, ļaujot viņiem apskatīt
ekrāns, jo rokas turpināt rakstīt,
pa līniju, kā arī.
Vai skatīties uz mācību par konkrētām pozīcijām.
>> Bet tikai uzzīmēt zīmējumu par to, kā tas diemžēl
realitāte, apzināties, ka ir mājas lapas, kas tur, ka
ir risinājumi šīs klases un daudzās citās klasēs.
Fakts, ka jūs vai apmēram 3% no jums zina, ka tas eksistē
nozīmē, ka mēs zinām, ka tas eksistē.
Fakts, ka tur ir mājas lapas, piemēram, tas, kur jūs
var maksāt kādam, lai faktiski darīt savu problēmu kopumu - tas bija
faktiskais gadījums, kas nāca klajā pagājušajā gadā.
Tas ir mājas lapā sauc odesk.com.
Un Tims bija personas vārds, šeit, kas bija norīkošanu par
Šī tīmekļa vietne un lūdza kādu darīt savu PSET 7,
šajā konkrētajā gadījumā.
Nu, odesk.com ir ļoti Google spējīgs, un arī mēs esam
Ļoti labi Googling.
Arī šeit ir vietas - un tas viens ir diezgan
zvērīgās, atklāti.
[Smiekli]
David J. Malan: smieklīgi lieta par šo vietni ir, ja
Jūs lasīt Par lapu, viņi runā par to korporatīvo
kultūra un cik klientu apkalpošana ir to skaits-viens
prioritāte, lai pārliecinātos, ka jūsu uzdevumu iegūt
pagriezās uz laiku.
>> Bet visu nopietnību, atkal fakts, ka šajās vietās
pastāvēt, saproti, mēs, arī ir informētāki par
šāda veida portālos.
Un lai dotu jums sajūtu, ko veido tas kopumā
ņem, mēs parasti nav lielas skandāliem, kur cilvēki
sadarbojas uz jebkura veida liela mēroga, bet drīzāk
tas ir šīs vakara mirkļus vājumu, kur jums ir tik
daudz ko darīt, tas ir 04:00, jūs izsmelti, un jums
domāju, lai sevi, labi, ļaujiet man tikai veikt apskatīt manu
kaimiņiem ir vai mana drauga kods vai līdzīgi.
Un tas izpausmes diemžēl ietver Student
Iesniedzot kaut kas līdzīgs šim, un students B IESNIEGŠANAS
kaut kas līdzīgs šim, kas, protams, ir dators
zinātne klasē, ir ļoti viegli datorzinātnieku
atklāt ar programmatūru.
Tas ir vēl viens kopīgs paradigma, kur jūs esat veida
strādājuši līdzās kāds, varbūt runājot
Angļu, tikai naudas sodu, pseudocode.
Bet tad runa ir laiks, lai faktiski iesniegt, un psets
tikai iegūt apmainījās pa e-pastu vai Dropbox vai līdzīgu.
Bet mēģinājums padarīt to mazāk skaidrs, ka šis ir
kas ir noticis, tad tas ir tas, kas ir iesniegts.
Arī tas nav ceļojums pat labi uzrakstīts gabalus
programmatūru, piemēram, mums ir reāli atklāt
šāda veida lietām.
Un tiešām, ko mēs darām, ir palaist programmatūru, kas salīdzina visus
šogad iesniegumiem pret visiem pagājušā gada s
iesniegumi, pret ko mēs atrast
Internets, pret katru darbu lapā, kas tur.
Tas viss ir ļoti automatizēta.
Un tāpēc mēs to patiešām liels taisnīgumu ar 97%, kas
patiešām strādā viņu ēzeļi off šajā un citos
klases un liekot visu šīs pūles, lai darbs
viņi galu galā iesniegt ir viņu pašu.
Un es varu iet uz vecumu.
>> Tie ir tikai nedaudz pagājušā gada gadījumiem.
Daži skolēni iesniedza šos failus identiski uz 2 PSET,
PSET 3, PSET 4, PSET 5, PSET 6, PSET 9.
Šajā gadījumā, tas bija viktorīnu 0 un pēdējā gadā, kad divi
studenti iesniedza identiski šo teikumu starp daudzām
citi, "pieprasījums - tipa" dot, dot, dot.
Tik pat klasē 600 vai mēs atklāt šo
gada iesniegti viktorīnas.
Tātad īsumā, šo - atklāti sakot, es ienīstu ņemot šāda veida
saruna - bet tas ir patiešām apzināta pūles
Šogad, lai mēģinātu samazināt šo skaitu.
Jo, pat ja mēs sakām šāda veida lietām ik
gadu, es domāju realitāti, kas dwelled pie tā, lai maz
vairāk sekundes nekā parasti un faktiski tikai norādot
ka kāds varētu šķist, eh, nav tik liels darījumu, vismaz
domāju, ka atpakaļ uz šo konkrēto brīdi, gan taisnīgumu, lai
sevi un saviem klasesbiedriem šeit.
Tātad, ja jums kādreiz ir kādi jautājumi par to, kur līnija
ir, lūdzu, tikai panākt, lai mani personīgi.
Bet atbilde vienmēr ir, pilnīgi uzsvēra
pēdējā minūte, jo vēlu dienā naudas.
Vai, ja tas ir jautājums, kam nav vēlīnu dienas,
godīgi, rakstiet man personīgi.
Mēs izdomāt kaut ko.
Lūdzu nelieciet savu laiku šeit Hārvarda riskam.
>> Tagad, es domāju, mēs būtu mazāk garastāvokli, tāpēc es
iekļautas to kā nākamo slaidu.
[Smiekli]
David J. Malan: Šī mājas lapa bija lieliski.
Es tiešām saņēmu mazliet apjucis.
Tur tas ir viens.
Un tad tas viens bija pārsteidzošs.
Labi, tāpēc domāju, ka kaķēnu vēlu vakarā, veicot
šie lēmumi.
Labi, tāpēc jau vairāk jautrības un mazāk nopietnas sīkumi, piemēram,
apstākļiem.
>> Labi, tāpēc mēs runājām īsi par tiem.
Tas ir kaut kas ir iespējams, diezgan pazīstams no
pasaules nulles.
Un pasaulē Scratch, mums ir šī vajadzība dažreiz
iet padarīt dakšām uz ceļa.
Nu darīt šo vai to, vai šī cita lieta šeit.
Un, kad mēs vēlamies to darīt, mēs varam izmantot, jo C tagad, šo, ja
cits būvēt.
Un tad šeit mums ir Būla izteiksmes.
Piemēram, Būla izteiksmes šeit, mēs varam VAI
tos kopā, tādā nozīmē, ka mums ir šis nosacījums vai
šis nosacījums.
Mēs varam un tos kopā, tādā nozīmē, ka mēs vēlamies, lai
pārbaudīt šo nosacījumu, un šis nosacījums.
Un šeit mums ir slēdzi paziņojumu tagad, kas ir ne tik
līdzīgi sintaktiski tām apstākļos veidu, taču tas
ļauj mums darīt ekvivalentu, ja cits, ja cits, ja cits
ja, un līdzīgi, vienkārši uzskaitot tiem katrā gadījumā atsevišķi
ko katrā atsevišķā gadījumā.
Tātad mēs redzējām tos pēdējo reizi.
Un tad mēs sākām pieskaroties uz lietām, piemēram, cilpu.
Mēs redzējām vienu no šiem tikai pirms brīža.
Bet ir šie citi looping konstrukcijas.
>> Piemēram, šo vienu šeit.
Tāpēc, kamēr (nosacījums), darīt šo lietu atkal un atkal.
Tātad būtībā, ko, šķiet, ir atšķirīgas šo
cilpa un šī kamēr cilpa šeit?
Šī cilpu un šī kamēr cilpa.
Yeah?
Ko tas nozīmē?
Mērķauditorija: [nedzirdama].
David J. Malan: Labi.
Tātad tā kā cilpa stāvoklī, tur ir skaidri
vairāk sintakse.
Tur tas ir inicializācijas, tur šis atjauninājums.
Jo kamēr cilpa, tur ir tikai šis nosacījums.
Tāpēc šķiet, ka tas ir mazliet salīdzinātas leju pret par
cilpa, kas nozīmē, ja mēs vēlamies, lai būtu mainīgie un mēs vēlamies
ir incrementation, mēs faktiski ir
darīt šo lietu sevi.
>> Tāpēc ļaujiet man iet uz priekšu un atvērt gedit.
Ļaujiet man pārslēgties uz ierīci.
Un pieņemsim tikai darīt ātri nedaudz piemēru, ka
atšķir vienu no šiem citiem.
Un uz muguras manuprāt šeit, es saku viena lieta.
Es īpaši minēja vārdu Tim.
Tim bija tiešām kāds, kas students centos atrast darīt
savu mājasdarbu par viņiem.
Mums nebija ne Timu konkrētajā sadaļā.
Tātad saproti, ka ne man atklāti students, tas nebija students.
Tas bija nejauši internetā cilvēks dara lietas
ar proxy pagājušajā gadā.
Tātad mēs redzam, ka, pārāk.
Tātad šajā gadījumā šeit, ļaujiet man iet uz priekšu un
atvērt jaunu failu.
Failu, Jauns.
Tas dod man cilni šeit.
Ļaujiet man iet uz priekšu un saglabājiet to kā loop.c.
Ļaujiet man aiziet un noklikšķiniet uz Saglabāt.
Un tad noteikti šeit, iesim uz priekšu un sākt rakstīt
# Ietvert .
Ļaujiet man pietuvinātu objektu
Tagad mēs darīsim int galvenais (spēkā neesošs).
Tagad ļaujiet man iet uz priekšu un darīt uz (int i = 0, i <
ak, 10; i + +).
Un tagad es esmu gatavojas iet uz priekšu un darīt izdrukāt zvaigzne ka es
darīja agrāk.
Un tad beigās šo programmu, mēs esam tikai gatavojas
drukāt jaunu līniju, tikai tāpēc, ka mana tūlītēja
neizskatās visu netīrs.
atgriezties 0.
Šķiet sintaktiski pareizi?
Līdz šim.
Tātad, pieņemsim redzēt.
>> Tāpēc ļaujiet man tālināt, iet manā termināļa loga.
Un ļaujiet man iet uz priekšu un palaist cilpas, jo es sauc šo
lieta loop.c.
Tātad, lai cilpa.
Šķiet, lai apkopotu Labi.
Ļaujiet man palaist cilpas, un tagad Enter.
Un tas, šķiet, ir izdrukāt 10 zvaigznes.
Tāpēc pieņemsim tikai pārvērstu to, kamēr cilpa un redzēt, ko
veidu jautājumiem mēs paklupt.
Tā vietā, ļaujiet man iet šeit un teikt, bet es ir
mazāk nekā 10 -
ļaujiet man atbrīvoties no cilpa.
Labi, tāpēc mums ir pāris problēmas jau.
Tātad nosacījums ir tas pats, bet es esmu acīmredzot trūkst
inicializācija.
Es esmu trūkst incrementation.
Tātad, ko kompilators varētu man pateikt, kad es mēģinātu
apkopot šo programmu?
Yeah?
Mērķauditorija: [nedzirdama].
>> David J. Malan: Labi.
Tātad tas notiek, lai pateikt kaut ko līdzīgu nereģistrētu - šajā
gadījumā, mainīgo i.
Un tiešām, izmantot nedeklarētu identifikators i.
Un tā tas ir pretrunā ar valodas, piemēram, PHP un
Python un Ruby, ar kuru daži no jums varētu būt pazīstams,
kur jūs varat vienkārši veida sākuma, izmantojot mainīgos lielumus
Willy-nilly un nav jāuztraucas par deklarējot tos
skaidri vienmēr.
C un tādās valodās kā Java un C + +, jums ir jābūt
super skaidra.
Un, ja jūs vēlaties, mainīgo sauc I, jums ir, lai man pateikt
kāda veida mainīgo tas ir.
Tāpēc mēs esam nāksies noteikt šo šādi.
Es esmu nāksies iet uz augšu šeit un rakstiet int i, tāpēc
Man ir paziņojuši mainīgo sauc i.
Tagad es esmu izlaidis vienu soli.
Man, protams, nav inicializēts, bet pieņemsim redzēt, ja tas ir
Vismaz padara šķindēt pietura sūdzību.
Tāpēc ļaujiet man pārtaisīt šo programmu.
>> Labi, tagad tas ir tikai sūdzas
cita iemesla dēļ.
"Mainīgais" i "tiek neinicializēts ja izmanto šeit." Labi, lai
tas ir diezgan skaidri.
Inicializēts tikai nozīmē nosakot to vienāds ar vērtību.
Un mēs esam nav darījuši, tāpēc ļaujiet man mēģināt vienāds ar 0.
Tagad pamēģināsim atkal un atkal palaist šķindēt.
Apkopoti šo laiku.
Un es esmu par, lai palaistu to.
Bet liels vecs bezgalīga cilpa, jo es esmu darījusi
inicializācijas, es esmu darījusi to stāvokli, bet es nekad neesmu darījusi
jebkāda veida incrementation.
Tātad, kā es varu darīt to incrementation?
Nu, tādā kamēr cilpa, tā uzskata, tāpat es esmu nāksies
to darīt iekšpusē no cilpas, jo daudz tāpat kā pirmā
nedēļas piemēri dara looping konstrukcijas, piemēram, ar
zeķes un ar sevis skaitīšanas, mums bija jādara
kaut pašās beigās, gribētu atgriezties uz nākamo rindiņu.
Ko darīt, ja es iet uz priekšu un darīt i + + šeit?
Pieņemsim nav pat apkopot šo.
Nozvejas mani jau.
Kas ir nepareizi šeit?
Mērķauditorija: [nedzirdama].
>> David J. Malan: Tātad tas noteikti nav int.
Tas ir man.
Un cirtaini bikšturi, kā līdz šim,
ierobījums nepietiek.
Tāpēc tagad man ir tas būvēt.
Tāpēc, kamēr es ir mazāks par 10, drukāt zvaigzne,
tad pieauguma i.
Un kā kamēr cilpa darbojas, ka, tiklīdz jūs hit
apakšējā no cilpas, kas šajā gadījumā izskatās, piemēram, 10 līnija,
tas notiek, lai dotos atpakaļ uz 6 līniju, kurā brīdī
nosacījums tiks pārbaudīti vēlreiz.
Un ja es vēl joprojām ir mazāks par 10, mēs darīsim līnijām 8 un
tad 9, tad mēs hit 10, un doties atpakaļ uz 6, atkal un
atkal un atkal un atkal, kamēr es ir mazāks par 10.
Tātad pieņemsim atkārtoti palaist darīt šeit.
>> Labi, mēs esam apkopoti labi.
Ļaujiet man atkārtoti palaist cilpa.
Un tagad tas tiešām šķiet, darbu.
Tātad plusi un mīnusi šeit?
Nu, līdz šim tur tiešām nav viss PLO -
tik gudrs.
Labi, ka bija - ak, tas bija nelaimes gadījums.
Visiem labi, tāpēc iesim atpakaļ uz cilpa.
Tāpēc cilpas ir jauki, jo viņi super skaidra.
Un, pat ja viņi mazliet clunky rakstīt, tas ir
ļoti spēcīgs un tas ļauj jums darīt
vairākas lietas vienlaicīgi.
Bet cilpas nav, šķiet, ir milzīgs daudzums vērtības tikko
vēl, jo tā uzskata, tāpat kā mēs vienkārši ir jādara vairāk darba.
Mums ir likts inicializācijas šeit, tad
atjaunināt uz leju šeit, un mums ir jāatceras, lai darīt visu.
Tātad mēs redzam laiku, kamēr cilpas tiešām aizdot
paši, lai tikai dažādos kontekstos, dažādi dati
struktūras, piemēram sarakstiem un hash tabulu, lietas mēs nokļūt
Mid-semestris.
Bet tagad, zinu, ka tur ir šis trešais veids pazīstams kā do-
kamēr cilpa.
Un mēs esam redzējuši šo īsi.
Un tas varētu būt super noderīga ar 1 PSET.
Jebkurā laikā jūs vēlaties darīt kaut ko, un tad pārbaudiet, vai
lietotājs sadarbojās, un, ja tās nav, to darīt atkal, do-
kamēr cilpa pakļauj sevi šāda veida loģiku.
Jo, kā no augšas pasūtīšanas uz leju šeit liecina,
do burtiski nozīmē darīt.
Un darīt atkal un atkal, kādi varētu būt?
Varbūt tas nozīmē, aicinot GetInt vai GetString un tad
pārbaudot vērtību GetInt vai GetString un tad kliegt
pie lietotāju, ja viņi nav sadarbojušies lūdzot
atkal un atkal un atkal.
Kur jūs vēlaties darīt kaut ko vienu reizi,
pēc tam pārbauda kādu stāvokli.
>> Tāpēc pieņemsim mēģināt šo.
Ļaujiet man tiešām mainīt tagad do-kamēr cilpa.
Un es esmu gatavojas iet uz priekšu un darīt tālāk.
Tā darīt tālāk.
Darīsim int i = GetInt (), bet pieņemsim vispirms pateikt lietotājam
ko darīt.
Tāpēc nedaudz atšķiras šoreiz.
"Dodiet man int".
Tāpēc es ņemšu izmantot printf par to.
Un tagad es esmu gatavojas iet uz leju šeit, un es esmu gatavojas darīt
kamēr es ir, teiksim, lielāks -
pieņemsim redzēt, man ir, teiksim, mazāk nekā 0, vai i ir
lielāka nekā 10.
Citiem vārdiem sakot, es gribu skaitli no 1 līdz 9, vienkārši
patvaļīgi.
Tāpēc es esmu, izmantojot kombinēto Būla izteiksme šeit
pārliecinieties, ka man ir mazāks par 0 vai lielāks par 10, kurā
Ja man būs darīt cilpa šeit atkal.
Tātad vēlreiz, darīt -
kamēr es ir mazāks par 0 vai man ir lielāks par 10.
>> Tāpēc tagad iesim uz priekšu un darīt, kad mēs esam darījuši.
Pieņemsim tikai darīt ātri veselība pārbaudītu.
printf ("Paldies, man ir% d", i).
Tāpēc šis vienkārša programma prasa lietotājam par int,
padara pārliecināts, ka tas ir robežās kādu no 1 līdz 9 ieskaitot,
un tad pateicas lietotājam, atgādinot viņiem, ko viņi tikko
drukāti, tāpat kā mazliet veselība pārbaudītu.
Bet pieņemsim redzēt, ja tas darbojas, kā paredzēts.
Ļaujiet man iet galvu uz leju šeit un atkal palaist padarīt cilpa.
Hmm.
"Izmantošana nedeklarētu identifikators 'i'". Tas ir dīvaini.
Es domāju, ka mēs atrisināt to.
Pats simptoms, bet atšķirīgas kodu.
Yeah?
Mērķauditorija: [dzirdams] iekšpusē diviem, mums ir
[Nedzirdama].
>> David J. Malan: Tieši tā.
Tātad tas faktiski noved mūs pie tēmu pazīstams kā joma.
Izrādās, ka C, atkal, tas tiešām ved burtiski.
Un, ja jūs kaut kas līdzīgs šim, kur deklarēt int
un tad piešķirt tam dažas vērtību, bet jūs darīt, iekšpuse
Pāris cirtaini bikšturi, kas C tas ir tas pieņemts, ka jums
tikai vēlaties šos 32 bitus sauc par I pastāvēt
Saistībā ar šīm cirtaini bikšturi, ietvaros līniju
6 līdz 9. Tāpēc es ir deklarēta, un tas tiek piešķirts
vērtība 8 rindā, bet, tiklīdz jūs saņemsiet ārpus
zem cirtaini lencēm līniju 9, man vairs nav
jomu, lai runāt.
S-C-O-P-E. Tas vairs pareizajā kontekstā.
Tāpēc tagad nav man, tāpēc tas ir, it kā mums bija pat
deklarēta to visu.
>> Tātad, kas ir noteikt, tad kaut kas līdzīgs šim, ja
Iemesls ir tas, ka es ir deklarētas cirtaini bikšturi, kas
ir acīmredzami slikti?
Šeit?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā.
Tātad, mēs varam inicializēt to ārā.
Tāpēc ļaujiet man iet uz priekšu un dzēst deklarācijas daļas saskaņā ar kurām
Es norādīt veidu, un ļaujiet man darīt to šeit.
Tātad 5 rindā, tagad saka: "Dodiet man int." Zvanīt tas i.
Pamanīt 9 rindā, es nevēlos to darīt, jo es
jau ir 32 biti.
Es nevēlos lūgt dators
dažādi 32 biti.
Es vēlos izmantot šo pašu 32 bitus.
Un tagad, jo es ir deklarēta 5 rindā, tas joprojām ir legit
to izmantot 11 līnijas un līnija 12.
>> Tāpēc ļaujiet man mēģināt recompile šo un redzēt
ja šķindēt apstājas kliegt.
padarīt cilpa.
Tāpēc tagad tas ir "netiešs deklarācija funkcijas
"GetInt" ir nederīgs C99 "Kas ir tas, ka.?
Yeah?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā.
Tāpēc tagad, ka es esmu faktiski izmantojot GetInt, tas nav kaut kas
kas tikai nāk ar C. Tas nāk no CS50.
Tāpēc mums ir nepieciešams šo šeit.
Un ļaujiet man iet atpakaļ uz tūlītēju leju
šeit un atkārtoti palaist darīt.
Labi, beidzot.
Tagad mēs esam nolēma, ka un citu kļūdas.
Ļaujiet man tagad palaist cilpu un redzēt, kas notiek.
"Dodiet man int." Es arī tā 11.
Es arī tā -1.
Es arī tā foo.
Es arī tā 5.
Un tagad tas patiešām darbojas.
Bet ātri mainīja par iemeslu šeit.
Kāpēc tā saku atkārtojuma vienu no šiem laikiem, bet man
int pārējās trīs reizes?
Kāpēc ir tā, ka uzvedība atšķiras?
Mērķauditorija: deva tam virkni.
David J. Malan: Atvaino?
Mērķauditorija: Tu deva tam virkni.
David J. Malan: Jā.
Tātad mēs deva tam virkni šajā trešo mēģinājumu,
kad es drukāti foo.
Foo ir virkne.
Tas acīmredzot nav int.
Un tā, ka CS50 ir īstenojusi GetInt ir, ka mēs
nepārbauda, ​​vai kaut kas ir zemāka par 0 vai lielāks par 10
jums, jo kā mēs zinām, jau iepriekš, kāda veida
int jūs vēlaties?
Bet mēs varam minimāli pārbaudīt jums, tomēr lietotājam vismaz
rakstiet skaitlim?
Un, ja viņi nav, mēs bļaut uz lietotāju, ierakstot "retry" par
ekrāns.
>> Tāpēc tagad mums ir programma, kas ir looping. Labi.
Tagad, kura no tām ir sava veida labāk būvēt?
Tātad tas ir, ja lietas sāk iegūt mazliet netīrs,
Tas, ka jums ir jāatceras, lai deklarēt mainīgo šeit
ja jūs vēlaties izmantot to iekšpusē dažu
cirtaini bikšturi un ārpuses.
Bet, pat ja tas izskatās mazliet noslēpumains sākumā
skatienu, tikai atkal, atcerieties vienkāršu loģiku.
Lai izmantotu kaut ko C, vai tas ir funkcija vai
tas mainīgais, jums ir jāiekļauj, ja tas ir funkcija
kādā bibliotēkā, vai jums ir nepieciešams atzīt to.
Bet tagad jums ir jābūt papildu norūpējusies par to, ka
jūs atzīstot to tiesības jomu.
Jūs neesat liekot to pārāk cieši iekšpusē iekavās.
>> Tāpēc ļaujiet man tiešām roll atpakaļ.
Ja mēs ejam atpakaļ uz mūsu piemēram, no agrāk, un es iet
atpakaļ uz lai int, int i = 0, i <10; i + +, un es
do printf zvaigznes, kā šis, un tad ciešu paren, un tagad
printf i ir tagad -
Saskaņā ar to pašu loģiku, kas notiks, kad es mēģinātu
apkopot šo programmu?
AUDITORIJA: Invalid identifikators.
David J. Malan: Tātad tas ir cits derīgs identifikators,
nedeklarētu identifikators.
Tagad iemesls ir nedaudz atšķirīgs.
Ir acīmredzami nav cirtaini bikšturi šeit, bet pats
Ideja, pats stāsts par darbības jomu attiecas.
Ja jums ir paziņojuši mainīgo, piemēram, es iekšā
cilpa, pat ja jums nav skaidri rakstīts cirtaini
bikšturi, domā par tiem garīgi, kā vēl to tur, kur
Ja man ir derīga tikai iekšpusē cilpa.
Tā nav derīga, kad jums uz nākamo līniju, kas
šī lieta ir tagad 10.
Tāpēc tikai daži jautājumi par apjomu un līdzīgu.
Viss labais, kādi jautājumi?
>> Labi, tāpēc šis ir sava veida triviāls maz programmu,
drukā tieši maz zvaigznes.
Bet pieņemsim redzēt, ja jūs atceraties šo dziesmu šeit.
Tas ir neticami kaitinošas dziesma bērni varētu dziedāt par
skolas autobuss un līdzīgi.
Bet kas ir jauka par to, ka tas ir šo cikliskumu,
kuru tas "99 pudeles alus pie sienas,
99 pudeles alus.
Ņem vienu uz leju, iet tā apkārt, 98 pudeles alus par
sienu. "Un tad dziesma atkārto 97, tad 96, tad
95, tad 94, visu ceļu uz leju līdz 0, ja jūs tiešām got ka
tālu uz autobusu.
Tātad šī ir jauka programma, lai sakārtotu un agregātu, jo mani
Dievs, ja jūs varētu tikai ieviest to ar maz
rindas kods, jūs varētu izspļaut visu lyrics uz šo
Dziesma diezgan ātri.
Bet pa ceļam, mēs varam sākt tagad kaitināt intervālu daži
Šo pamata looping konstrukcijas un tagad arī
ieviest funkcijas, kas mums rakstīt sevi, atgriezties vērtības
ka mums iet apkārt.
Bet vispirms, kāpēc nav mēs iet uz priekšu un veikt mūsu piecu minūšu
pauze šeit?
Un, kad mēs saņemam atpakaļ, mēs dziedam šo dziesmu.
>> Labi, tāpēc mēs esam atpakaļ.
Un kad es saku, ka mēs tagad dziedam šo dziesmu, es domāju
programmiski, ne mutiski.
Tātad šeit mums ir beer1.c, kas ir viens īstenošana šī
īpaši dziesma.
Un tikai, lai būtu skaidrs, tiem svešs ar to, ko
Šī lieta izskatās, ļaujiet man iet uz priekšu
un padarīt beer1, Enter.
Tagad ļaujiet man palaist beer1, un ko mēs redzēsim - cik pudeles
Alus būs tur būt?
Es rakstīt 99, tāpat dziesma saka.
Enter.
Un tagad, ja mēs ritinātu -
hmm - ja mēs ritinātu visu, mēs redzam, ka
Šis patiešām dzied visu dziesmu.
Pagaidiet minūti.
Mans ritjosla ir nedaudz messed up.
Pieņemsim izmantot lielāku logu.
Tātad beer1, 99, tur mums iet.
Tātad šeit mums ir visu dziesmu, dziedājis daudz ātrāk
dators, nekā tas varētu būt bijis ar mums.
Tātad paziņojums, lai gan, ciklisko raksturu šeit.
Tajā teikts 99, tad 99, tad "ņemt vienu uz leju, nodot to
apkārt ", tad 98.
Un tagad tas atkārtojas atkal un atkal.
>> Tātad tas ir faktiski lieliska iespēja kādu
looping būvēt.
Ievērojiet, ka es esmu veida griešanas stūrī šeit.
Ievērojiet, ka es saku "98 pudeles alus pie sienas,
97 pudeles alus pie sienas, "un tas bija tikai tik
ka tad, kad mēs ar vienu alus pudeles, man nav
jāuztraucas par angļu valodas gramatikas.
Bet mēs varam arī noteikt to ar mazliet ja
nosacījums, varbūt.
Ja šis skaitlis ir vienskaitlī, iet uz priekšu un saka "pudeli",
pretējā gadījumā, ja tas ir daudzskaitlī, saka "pudeles".
Bet tagad, es esmu pilnīgi griešana šajā stūrī.
Tātad, pieņemsim redzēt, ko mēs esam ieguvuši šeit.
Tāpēc mēs esam ieguvuši dažas piezīmes augšpusē.
Es esmu arī šīs divas bibliotēkas, kā
Mēs esam bieži bijuši.
Un tagad ļaujiet man ritiniet uz leju līdz pirmajai
faktiskie rindas kodu.
Line 17 sākas galvenais.
21 līnija un 20 ir cik pudeles alus vai būs?
Un tad es aicinu GetInt.
Un tagad man ir mazliet veselība pārbaudītu.
>> Tātad šī ir vienošanās, ka mēs tagad sāk pieņemt līdz
stingrāk pārbaudīt lietotāja ievadi.
Reizēm jūs vienkārši nevēlaties, lai liktu viņiem atkal
un atkal un atkal.
Ja lietotājs skrūves augšu un nesadarbojas, naudas sodu.
Atmest un vienkārši nav galā ar tām.
Un tā, ka tas, ko es daru šeit.
Ja n ir mazāks par 1, es esmu tikai gatavojas kliegt uz lietotāju,
"Atvainojiet, ka nav jēgas." Un tad es esmu gatavojas
patvaļīgi atgriezties 1.
Tātad atkal, tas ir tikai konvencija, lai pierastu pie.
Tagad, ņemt to uz ticību.
Bet līdz šim, mēs esam vienmēr ir atgriešanās 0, jo
Mēs esam teica atgriešanās 0 apzīmē ko?
AUDITORIJA: Veiksme.
David J. Malan: Veiksme, ka viss.
Tāpēc tagad, ka mēs beidzot sāk domāt par
ne-panākumiem -
citiem vārdiem sakot, stūra kastes, kļūdu nosacījumiem -
tagad man ir bezgalīgs piegādi, vai vismaz 4000000000
iespējamās lietas, kas var noiet greizi manas programmas.
Un es varētu sākt piešķirot tiem individuālu numurus.
Tagad, parasti pietiek tikai atgriezties
kaut kas nav 0.
Tāpēc mēs esam gatavojas vienkārši return 1 tagad.
Bet par atgriešanos 1 iemesls ir tas, ka tiklīdz jūs atgriezties
1, uzminēt, kas notiek ar pārējo programmas?
Tas apstājas.
Viss.
Tātad fakts, ka es esmu atpakaļ 1 efektīvi
īssavienojums šīs programmas izpildi, lai
nekas zem 27 līnija turpinās izpildes.
Tiklīdz galvenie atdevi, tas ir tā.
>> Labi, tāpēc, ja lietotājs nav sadarboties un mums sasniegt līnija 30
jo tie drukāti likumīgu numuru, šeit ir mana
īstenotu šo dziesmu.
Tāpēc es vispirms izdrukāt newline raksturs, tikai
estētika.
Man tagad ir par cilpu.
Un paziņojums es esmu darot lietas, kas mazliet
no citā virzienā.
Man nav darīt mazāk, nekā, man nav jādara + +.
Es varu vietā teikt inicializēt mainīgo i, kas tas ir vienāds ar
n, skaitlis lietotājs drukāti, tad rīkojieties šādi, lai
Kamēr es ir lielāks par 0, tad es -
kad esat pabeidzis viena atkārtojuma no šīs cilpas.
Tātad, mēs varam rēķināties uz leju, izmantojot par cilpu, kā arī.
Tagad tas ir diezgan daudz Week One sīkumi tagad, ar printf.
Tā print "% d pudeles alus pie sienas." Print "% d
pudeles alus. "" Ņem vienu uz leju, iet tā apkārt. "Izdrukāt
"% D pudeles alus pie sienas." Tāpēc tas joprojām% d, bet
ievērojat, ka arguments, lai printf mainās.
Aiz komata, man ir I, jo es gribu teikt 99.
Pēc šī komats, man ir I, jo es gribu teikt 99.
Pēc šī komats, man ir I - 1, jo es gribu teikt 98,
šī pirmā iterācija, un tā tālāk.
Un tagad šeit lejā, man vienkārši ir kādu stulbu maz piezīmi.
Un tad līnija 42, es atgriezties 0 pēc vienošanās, kas nozīmē, ka
viss ir kārtībā.
>> Tātad, ko tad es goofed?
Kas varētu izplatīta kļūda šeit būt?
Nu ko darīt, ja es nejauši teicu labi, es vēlos, lai saskaitītu
līdz 0, es vēlos 0 alus pudeles uz sienas?
Tāpēc es saku, man ir lielāka vai vienāda ar 0.
Kas būs simptoms, ka es tagad redzēt, ja es recompile
beer1 un palaist to?
AUDITORIJA: Negatīvs.
David J. Malan: Jā, tas ir gonna iet negatīvs.
Tas ir off-ko-viena kļūda, neticami
izplatīta kļūda, lai padarītu.
Pieņemsim faktiski iet atpakaļ uz termināla logu un darīt to
šeit, lai mēs varētu redzēt vairāk laikā.
Ievadīt, 99 pudeles alus.
Tuvu, bet mēs devāmies kādreiz tik nedaudz par tālu.
Mēs dziedāja dziesmu pārāk tālu uz leju, tā, ka mēs tagad skāra
negatīvs skaitlis.
Tātad tas nav gluži darbu.
>> Labi, lai mēs varētu viegli noteikt, ka, atgriežoties
kā tas bija kādreiz.
Bet kādi ir dažas iespējas tagad
uzlabošanu?
Nu, ļaujiet man atvērt beer2.c un ritiniet uz leju šeit un veikt
apskatīt šo versiju.
Kas ir pirmā lieta, kas lec ārā pie jums kā dažādas
šajā versijā šeit?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā, tāpēc ne es, jo tas noticis ar
man jūs zināt, ko, es esmu lūdzot lietotājam par n, un tad es esmu
kurā es vienāds ar n, un tad es esmu mainot es, bet es esmu nekad
pieskaroties N vēlreiz.
Tātad, ko heck bija no jums punkts neierādot citu 32
biti sauc Es tikai tā, ka es varētu būt atšķirīgs mainīgo?
Tātad šajā gadījumā, es veida atzina, ka nevajadzīgu
dizaina elements.
Un es esmu tagad gatavojas teikt, bet n ir lielāks par 0, dodieties
priekšu un izdrukāt to pašu dziesmu, izejot n uz printf kā
Otrs arguments, un n - kā otro argumentu leju šeit 1.
Un tad par katru atkārtojuma šīs cilpas, iet uz priekšu un vienkārši
Samazināt n pati.
Tagad, funkcionāli, šī programma
būs identiski.
Ja es rakstīt 99, n sākas pie 99.
Es samazināšanās, samazināšanās, samazināšanās, samazināšanās.
Es esmu gatavojas saņemt visu ceļu uz leju, lai "vienas pudeles alus par
sienas, viena pudele alus.
Ņem vienu uz leju, iet tā apkārt.
0 pudeles alus pie sienas. "Galu galā, jo es darīju
get nosacījums pareiza.
Tas ir lielāks par 0.
Man nav padarīt šo kļūdu.
>> Tātad, kas ir labāks, versija viens vai versija divi?
Tāpēc es dzirdēju ķekars murmurings diviem.
Kāpēc divi?
Ko tas nozīmē?
Mērķauditorija: [nedzirdama].
David J. Malan: Ak, labi.
Tāpēc tas nav iet zem 0, bet atcerēties, vienā versijā,
sākotnējā pareizā versija negāja zem 0 nu.
Tāpēc atcerieties, ka šis ir pareizais variants.
Tātad pieņemsim vismaz salīdzināt divu pareizās versijas.
Kas par labu versijai arguments
divi ir, mmm, labāk?
Yeah?
Mērķauditorija: Tas izmanto mazāk vietas.
David J. Malan: Labi, tāpēc tā izmanto mazāk vietas, labi?
Tā versija, kuru izmanto 32 bitus uz n, un tad vēl
32 biti uz i.
Versija tikai divas izmanto 32 bitus uz n, lai
šķiet, plus.
Citas domas?
Vai kāds vēlas, lai argumentētu par labu vienam?
Yeah?
Mērķauditorija: Jums ir izmantot papildus koda rindu uz n -.
>> David J. Malan: Labi, protams.
Tātad tas ir godīgi.
Tāpēc tas vienkārši, vismaz man -
Es domāju, tas tiešām jūtas mazliet Mesjē, ka
Es nevaru kārtot no rezumēju visu manu loģiku vienā
skaistas līnijas, lai cilpa, jo cilpa var.
Lūk, es veida ir sadiegšana par šo n -
beigās cilpa, jo
tas ir loģiski nepieciešams.
Bet tas veida rubs man nepareizi, tikai tāpēc, ka tas
Šķiet atsevišķi no loģikas šeit, lai gan,
atkal, tas ir nepieciešams.
Citas domas?
Yeah?
Mērķauditorija: [nedzirdama].
>> David J. Malan: Jā.
Tātad, ko tad, ja jūs tā vietā, beigās dziesmu, gribēja
izdrukāt atkal nosaukumu dziesmu?
Tāpat "Paldies par spēlējot 99 pudeles alus", vai kaut kas
muļķīgi, piemēram, ka?
Bet jautājums ir, jūs vēlaties piekļūt sākotnējās vērtības.
Tas, ka jūs esat mutācijas vai mainīts n par katru
atkārtojuma un tāpēc ir iznīcināti tās sākotnējo vērtību
nozīmē, ka jūs vienkārši nevar darīt, ka gada beigās.
Tagad, varbūt, mēs skaidri negribam darīt
ka šajā programmā.
Tā, kas rūpējas?
Bet tas ir ļoti derīgs punkts.
Un ja godīgi, tur tiešām neviens
pareizā atbilde šeit.
Viņi abi vienlīdz pareizs.
Es varētu būt pārliecināts nu veidā.
Es teikšu, ka kopumā tas ir labs princips, ja jūs
lūdza lietotājam kādu vērtību un jūs saglabāti mainīgo
piemēram n, tikai sava veida uz principu, tas ir iespējams, laba
lai saglabātu, ka apkārt.
Un visus datus vēlaties mutācijas atkal un atkal, tikai
sev kopiju šo mainīgo, tikai tāpēc, ka jums
piekļūt oriģināls.
Tu tērē 32 vairāk bitus, bet realitāte ir šī
dators ir, piemēram, divi gigabaiti RAM šajās dienās,
un mēs esam quibbling vairāk nekā 32 bitu?
Tiešām nav tik liels darījumu.
Un pat uz šo ierīci šeit, ar pusi GIG vai
gigabaitu RAM, 32 bitu versus 64 bitiem,
nav tik liels darījumu.
Protams šodien, tas būs ceļš overwhelmed ar izmēru
no pašas programmas, kas būs vairāki simti
kilobaiti, ja ne pāris megabaiti, šajās dienās.
>> Tāpēc pamatotas bažas, neviens pareizā atbilde.
Bet vismaz tie ir domas, ka vajadzētu sākt ar
iet caur jūsu prātā?
Jo 0 PSET, lai gan mēs patiešām tikai gaidāms
pareizība, vai vismaz atsakoties dažādi kukaiņi, ka
Jums varētu būt radušās, kā mēs virzāmies uz priekšu, dizains ir
būs vēl viens svarīgs aspekts, gan rakstot kodu
un arī mūsu izvērtējot kodu.
Un tā vismaz pārdomāt lietas, kā šis.
Un tikai tāpēc, ka kaut kas darbojas nenozīmē, ka tas ir labi,
nenozīmē, ka tas ir labi izstrādāta.
Un tas ir viens no lietām, mācību līdzcilvēkiem un
problēma komplekti palīdzēs mums kaitināt daļu laika gaitā.
>> Nu, ko par, teiksim, šo versiju šeit?
Ļaujiet man darīt kaut nedaudz sexy šeit brīdi.
Pirmais ļaujiet man atbrīvoties no šo.
Un tagad pieņemsim noteikt šo gramatikas jautājumu.
Tātad šajā versijā, es gribu noteikt gramatiku tā, ka,
nevis tikai teikt parenthetical s, piemēram, "pudeles"
vai "pudeles" -
Es nevēlos, lai samazinātu šo stūrī -
Es arī gribu, lai dinamiski izdrukāt vārdu "pudeles"
vai "pudeles", tādējādi izmantojot šos% s vietturus šodien.
Tāpēc man ir nepieciešams, lai nosacīti pārbaudīt, kāda ir vērtība no i.
Un, ja tas ir 1, es gribu teikt "pudeli", un, ja tas ir kaut kas
cits, es gribu teikt "pudeles". Tāpēc pieņemsim mēģināt to darīt.
Tātad, ja es == 1, tad ļaujiet man iet uz priekšu un atzīt -
Man vajag virkni, tāpēc ļaujiet man darīt stīgu S1, jo tas ir
pirmā rinda Man rūp tiesības tagad.
Es esmu gatavojas teikt "pudeli". Un tad, pieņemsim redzēt, stīgu
S2 - un es paskaidrošu, kur es esmu, pēc brīža -
"Pudeles." Tā atceros, ka šo dziesmu, mums jāspēj
drukāt lietas, divus dažādus vārdus potenciāli.
Tātad, ja mēs atskatāmies šeit, ievērosiet, ka tad, kad mēs nokļūt
šis piemērs šeit, "divas pudeles alus pie sienas,
divas pudeles alus, ņem vienu uz leju, iet tā apkārt ", es gribu
Šajā ceturtajā rindā, lai tagad saka "vienu pudeli alus
siena "Tāpēc man ir nepieciešams izlemt,. vēlos teikt" pudeles "vai
"Pudele"? Tāpēc es esmu gatavojas patvaļīgi teikt, visas tiesības,
Es esmu gatavojas tagad deklarēt mainīgo sauc s1, stīgu
viens, kas notiek, lai saņemtu pieslēgts šeit un arī šeit,
jo šie vārdi ir vienmēr identiska, tikai tāpēc, ka
raksturu dziesmu.
Un es esmu dodas uz zvanu S2 neatkarīgi vārdu es gribu
beidzot parādās uz leju šeit.
Tagad, burtiski, 99 reizes no 100, tas būs
pats abās šajās lietās, jo 3 ir daudzskaitlī, 2 ir
daudzskaitlī, 4 ir daudzskaitlī.
Bet šajā stūra gadījumā, ja mēs līdz 2 un tad 1, vai
pat 1 un tad 0, man vajag šo loģiku.
Tāpēc man ir pavadīt kādu laiku manā kods kļūst šīs tiesības.
Tātad, ja es to darītu, ja es == 1, tad noteikti S1 vienāds ar "pudeles"
un S2 vienāds ar "pudeles", jo tas būs par 1
pudele, un tas būs 0 pudelēm.
Un tas šeit, ko tas pārstāv?
Tikai, lai būtu skaidrs.
Tas ir tikai komentārs.
Tātad fakts, ka jūs varat būt viena līnija komentārus nozīmē jums
var komentēt savu kodu kā šis, bet vēl viens kopējā
paradigma, arī ir, ka, ja jums ir super-īsu frāzi, kas
Jūs vēlaties, lai sevi, un tas ir tikai vairāk lasāms likt
tas labi beigās līnijas kodu, jūs varat
absolūti darīt kaut kas līdzīgs šim.
>> Tāpēc tagad ko, ja es to varu darīt? Cits ja man nav vienāds ar 1.
Tā bang vienāds -
izsaukuma zīme ir pazīstama kā "sprādziena".
Tāpēc sprādziena = 1.
Tātad, ja man nav vienāds ar 1, ko es vietā gribu darīt?
Nu, pirmais vārds es vēlos būt, ko?
Tātad virkne 1 vajadzētu būt "pudeles" daudzskaitlis pudelēm,
un tad tas būs daudzskaitlī "pudeles", kā arī, lai tagad.
Un mēs redzētu, vai tas tiešām izpaužas mums
kur mēs gribam iet.
Tāpēc tagad, ja es ritiniet uz leju šeit, pamanīsiet, ka es esmu tapām
ne tikai es, bet S1.
Es esmu tapām i un S1.
Un tad noteikti šeit, es esmu mīnus 1, kas ir tāds pats kā
pirms, bet S2.
Citiem vārdiem sakot, es gribu angļu vārdu mainīt, pamatojoties
uz šo loģiku.
Tagad tur ir jau dažas šā koda problēmas.
Kas ir bojāts jau no vārtiem šeit?
Yeah?
Mērķauditorija: [nedzirdama].
>> David J. Malan: Tieši tā.
Tāpēc es jau esmu pārkāpis mācība jomu.
Tāpēc es esmu atzīts S1 un S2, bet es esmu darījusi to iekšpusē
cirtaini bikšturi, kas nozīmē, jā, šis kods strādās līdz
līdz 42 līnijas, bet tiklīdz es hit līniju 43, uzminēt, ko nav
vairs nepastāv?
Nu, domāju, ko vairs darbības joma - ne s1 vai S2.
Tāpēc mums ir noteikt šo.
Tāpēc ļaujiet man dzēst deklarācijas.
Un es ņemšu atvaļinājumu mainīgo nosaukumi un dzēst šeit
un dzēst šeit.
Un kādi līnijām man tiešām atzīt šīs lietas?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā, tāpēc, iespējams,
līdz pat šeit, 33-ish.
Tātad virknes s1 un tad virkne s2.
Un izrādās, es varētu darīt.
Ja jūs deklarējot divi mainīgie no viena veida,
Jūs faktiski var tikai izmantot komatu, un darīt, ka C. Visi
labi, tāpēc tagad man ir divi mainīgie -
S1 un S2.
Es esmu piešķirot tiem vērtības šajos
apstākļiem šeit, vai šeit.
Un tad es esmu, izmantojot tos tālāk.
Cik labi ir tas tagad iet uz darbu?
>> Nu, tas joprojām mazliet buggy, bet pieņemsim vismaz redzēt
cik tālu esam tikuši.
Tāpēc ļaujiet man iet uz priekšu un darīt beer3.
Vai tas beer3?
Yep, tas ir beer3.
Un tagad ļaujiet man iet uz priekšu un palaist beer3.
399 99.
Mēs varam droši izlaist lielāko daļu no tiem.
Un šeit lejā, apskatīt to.
"Viena pudele alus uz sienas, viena pudele alus, ņem
vienu uz leju, iet tā apkārt, 0 alus pudeles uz sienas. "
Bet es esmu zīmēšanas jūsu uzmanību tikai puse no risinājuma.
Veida ieskrūvē šeit.
Tāpēc šķiet, ka stūra gadījumi rodas, kad es vienāds kāda
Abas vērtības?
Mērķauditorija: 2, 1.
David J. Malan: 2 un 1.
Tas nav 1 un nav 1.
Tas ir patiešām tikai šie divi pēdējie stanzas šo dziesmu.
Tātad, ko es vietā gribu darīt?
Tāpēc man šķiet, ir nozvejotas gadījumu, kur, ja i ir == līdz 1,
tad pirmais vārds ir "pudeles", bet otrais vārds
ir "pudeles". Bet šeit, es vēlos mainīt šo būtu == 2.
Un, ja tas ir gadījums, ko es vēlos
Pirmais vārds ir?
Mērķauditorija: "pudeles".
David J. Malan: "pudeles", tā par diviem pudelēm.
Un tad šis vārds šeit būtu -
Mērķauditorija: "Pudeles".
David J. Malan: "Pudele", vienskaitlī.
>> Labi, pieņemsim tālināt, iet atpakaļ vairāk nekā šeit, atkārtoti palaist darīt,
atkārtoti palaist beer3, tips 99 vēlreiz.
Labi, "segmentācija defektu (kodols dempings)."
Ko es izdarīju nepareizi?
Mērķauditorija: Jums nav vērtība [nedzirdama].
David J. Malan: Ak, lieliski punkts.
Labi, lai to, ko es daru nepareizi šeit?
Tātad segmentēšanas vainas, un mēs esam patiešām gatavojas redzēt
tas diezgan maz reizes nākotnē, apzināti.
Bet tagad, ko tas patiesībā nozīmē?
Segmentēšana vaina gandrīz vienmēr nozīmē, ka jums ir
kaut mēģinājis piekļūt atmiņas, RAM savā datorā,
kas jums nepieder, ka jums nav faktiski lūgusi
operētājsistēma.
Tātad šajā gadījumā, paziņojums, ko es esmu darījusi, kas ir
kļūdains manā loģikā.
Man ir piešķirts s1 un s2 vērtību, ja es vienāds ar 1.
Es esmu darījusi arī, ka, ja es vienāds ar 2.
Bet man nav izdarīts to bezgalīgi daudz citu
iespējas -
jo īpaši, 3 vai 4 vai dot, dot, dot, 99.
Tāpēc viens labojums, tas varētu būt tikai pieņemsim
ir cits nosacījums.
Un ļaujiet man iet šeit un teikt S1 vienāds -
kāds tas būtu šeit?
Mērķauditorija: [nedzirdama].
>> David J. Malan: "pudeles", jo kopējā lietā,
tas ir tikai pats.
Tāpēc vienāds quote, likt pēdiņas beigās, "pudeles." Tātad daudzskaitlis
pudeles, un tad šeit, daudzskaitlis pudelēm.
Labi, tāpēc tagad ļaujiet man iet atpakaļ uz manu termināļa logā,
recompile, atkārtoti palaist to.
99.
Whew.
Un pieņemsim darīt ātri veselība pārbaudītu.
Tehniski mēs gribētu vēlas lasīt visu šo, lai pārliecinātos
viņi pareizi, bet pieņemsim apskatīt
vismaz zināmās vainīgie.
3 pudeles, 2 pudeles, 2 pudeles, 1
pudele, 1 pudele, 0 pudeles.
Šķiet, ka esam vismaz noteikts to tagad.
Bet loma šeit ir tas, kas dievs šausmīgi haoss tas ir
tikai, lai atrisinātu stulba
vienzīmes gramatikas detaļas.
Tātad tur ir sava veida iemesla dēļ, ka es samazināt šo stūri
agrāk, jo tas ir tikai pilnīgi kaitinošas ir
rakstīt tik daudz kodu.
Bet izrādās, ka tur ir nedaudz vairāk elegants veidi
izsakot tieši tas pats.
Un mēs varam izdarīt šādi.
>> Ļaujiet man atstāt šo uz ekrāna uz brīdi un
ieviest kaut kas pazīstams kā trīskāršu operators.
Tas ir sava veida viena līnijpārvadātāju, kas ir tikai paredzēts, lai padarītu mūsu
dzīvo nedaudz sexier, kā solīts.
Un es esmu gatavojas darīt šādi.
Dodiet man virkni sauc s1, un ļaujiet man
piešķirtu to šādi.
(I == 1)?
"Pudeles", citādi "pudeles". Stīgu s2 izpaužas (i == 2)?
"Pudeles", citādi "pudeles".
Tātad, kāda tad ir atšķirība šeit?
Šie divi rindas kods, es apgalvot, var
aizstāt visu šo putru.
Tāpēc es aicinu to haoss, tikai tāpēc, ka tas veida rubs mani
nepareizs veids, ka tas ir tik daudz rindas kodu.
Nav nepareizi.
Tas nav slikts dizains.
Patīk, tas ir pilnīgi pareizi un perfekti labi.
Bet kodēšana kļūst garlaicīgs, ja jums ir, lai izteiktu sevi, lai
nopelt konkrēti atkal un atkal un atkal ar vienkāršu
scenārijs kā šis.
Tāpēc C ir dažas īsceļus, kā šis.
Tātad šis būtībā ir saprotams atzīt virkni sauc s1 un
piešķirtu to nu šo vērtību vai šī vērtība, ja i ir == -
Atvainojiet, es saku daudz skaidrāk.
Deklarēt mainīgo S1, piešķirt tam šo vērtību, ja tā ir taisnība.
Pretējā gadījumā piešķirt tam šo vērtību.
Tātad, citiem vārdiem sakot, tas ir sava veida viena līnija ceļā
sakot, ja cits, bet dara norīkojumu gar ceļu.
Tātad, ja es ir 1, tad iet uz priekšu un to sauc par "pudeli". Un
tad tas cits, to sauc par "pudeles". Tikmēr, S2,
Otrais vārds, kas mums ir nepieciešams noteikt, ja es vienāds ar 2, mēs
iestatīts S2 "pudeles". Pretējā gadījumā noteikti to "pudeles". Un kādi
Tas nozīmē, tagad ir tā, es varētu iet caur šo un izdzēst visus
šie rindas kodu.
Un kad es saku, nedaudz smieklīgi, ka tas ir tagad
sexier, tas sexier kas veida stilistiskā ziņā.
Fakts, ka funkcionāli, šis kods ir faktiski gatavojas
darīt tieši to pašu.
Un, pat ja tas varētu izskatīties mazliet noslēpumains sākumā
skatienu, jo mēs esam nav redzējuši šo būvēt pirms, es gribētu
apgalvo, ka tas galu galā būs tik daudz
lasāma un tik daudz vieglāk mēs cilvēkiem, lai sakārtotu un
saprotu, jo tagad jūs varat vienkārši izlasīt
kods visi vienā rindā.
Tas joprojām ir līdzīgs garu ja gadījumos, kad tas ir
stāvoklī, un tad tas ir tas, kas ir iekšā, ja un šī
ir tas, kas ir iekšā cits.
Bet mēs varam izdarīt tikai daudz vairāk eleganti.
>> Un ja es tagad iet atpakaļ uz manu terminālu, kas svītro visas
Šo līniju un aizstāj tos ar tikai tiem diviem,
recompile, atkārtoti palaist pudeles alus ar 99, paziņojums, ka mana
gramatika ir, faktiski, joprojām ir pareiza.
Tātad vēlreiz, kaut sākt.
2 pudeles alus, 1 pudele alus.
Izskatās labi.
Yeah.
Tātad mums ir daudz vairāk īsu risinājumu.
Tātad arī tas, kā jūs iegūtu vairāk apmierināti ar C, ne
vienmēr ar pirmo PSET vai pat otrās, bet
saprast, ka šīs konstrukcijas var ļaut mums darīt lietas kādreiz
vairāk eleganti.
Tagad pieņemsim do viena lieta šeit.
Ļaujiet man iet uz priekšu un atvērt return1.c.
Tagad sāksim risināt kādu problēmu tādā veidā, ka
ļauj mums rakstīt sarežģītākas kodu.
>> Tātad šeit ir vienkāršs maz programmu, kuras mērķis dzīvē
ir pieauguma vērtības.
Un tiešām, pieņemsim veikt soli atpakaļ.
Ļaujiet man darīt manuāli.
Ļaujiet man darīt iekļaut un int galvenais (spēkā neesošs).
Un ļaujiet man nosaukt šo increment.c.
Un ko es gribu darīt?
Es iešu uz priekšu un teikt kaut ko līdzīgu -
mēs saucam numurus pats -
int x.
Tātad int x izpaužas 2; printf x ir% d, jaunā pozīcija, x.
Tāpēc es esmu mašīnrakstīšanu ātri, bet iepazinušies sīkumi veida tagad.
Tad es esmu gatavojas darīt x + +.
Tad es esmu gatavojas drukāt šo pašu teikumu vēlreiz.
Un tad es esmu gatavojas atgriezties 0 tikai atmest programmu.
Labi, tāpēc šī ir programma, kas
soli numuru.
Tas ir pirmais iet, lai sāktu kaut ko līdz 2, un tad tas ir
dodas uz pieauguma to un izdrukāt to vēlreiz.
>> Tātad pieņemsim palaist pieaugumu, neticami vienkāršu programmu.
Bet pieņemsim, ka tagad, ka es gribu, lai kubs vērtību, tāpēc
kaut nedaudz patvaļīgi.
Un es tiešām gribu darīt x izpaužas kubs tā.
Lai es varētu izmantot to, ko sauc par pow funkcija, bet man nav
tiešām zināt, kur tas ir vēl.
Tāpēc es esmu gatavojas darīt to vecmodīgs veidā.
x reizes tas ir vienāds x reizes x reizes x.
Tāpēc es esmu cubing vērtību, reizinot to ar sevi vēlreiz
un atkal un atkal, lai mēs iegūtu tiesības
gada 3 šajā gadījumā.
Tāpēc tagad to skaits man jāizdrukā jābūt, jo mēs redzēsim
šeit - padarīt pieaugumu, tāpēc tas tiešām nav īsti pieauguma
vairs, bet mēs atstāt nosaukumu vien -
2 un tad 8.
Tagad mums ir pirmsākumiem ir iespēja izsmalcinātību
šeit, turklāt šis cubing lieta reizināt numuru
pati ar sevi, pats par sevi jūtas kā tas varētu būt tikai
noderīgi, lai būtu kā funkcija, līdzīgi kāds nolēma
gadus atpakaļ - jūs zināt, veida lietderīgi, ja viens no mums sēž uz leju
un raksta printf lai pārējā pasaule var izmantot,
kāpēc nav mēs sēdēt un rakstīt funkciju sauc kubs
kas dara šo cubing par mums, lai mums nav manuāli
īstenotu jēdzienu cubing vērtības šeit?
>> Tik vienkāršs piemērs, bet iesim uz priekšu un izmantot tas ir
iespēja rakstīt mūsu pašu funkciju.
Tātad līdz šim, mēs esam izmanto tikai galvenais, un mēs esam izmanto citiem
cilvēku funkcijas, bet mēs esam nav rakstīts mūsu pašu.
Tāpēc šeit mēs iet.
Es iešu uz priekšu un rakstīt funkciju sauc kubs.
Un es esmu nāksies to pieņemt ievadi.
Tāpēc tās ieejas būs skaitlim.
Un ko tas gatavojas darīt?
Tas notiek, lai paziņot int produkciju = ieeja reizes ieeja
reizes ieejas.
Un tad tas notiek, lai atgrieztos minēto produkciju.
Un tad man ir jābūt īpaša tagad.
Šī funkcija ir gatavojas atgriezties int.
Tātad šeit, tad ir, kā jūs rakstīt savas funkcijas.
Jums vispirms izlemt, kas ir nosaukums jūsu
funkcija būs.
Un vispār, kaut paskaidrojuma ir labs, tāpēc es ņemšu
to sauc kubs.
Tad jums ir jānorāda ko tā gatavojas atgriezties, kas ir
tā produkcija būs.
Un mums nav, ka daudz iespēju vēl.
Int, char, peldēt, bool, stīgu.
Tagad, es esmu gatavojas stick ar int, jo es gribu to
atgriezties skaitlim.
Tad jums ir jānorāda, kādi ir tās izejvielas, ja tādi ir, ir.
Un, ja kubs ņem argumentu, ņem kaut ko starp
iekavas, jums ir jāsniedz šis arguments nosaukumu, lai
Jūs varat zvanīt to kaut kā jūs īstenot vai rakstot
Šī funkcija, un jums ir arī tā tipa, kas šajā
lieta būs int.
Tātad īsumā, kubs ir funkcija, kas ņem skaitlim
kā priekšnodokli un atgriežas skaitlim kā produkciju.
>> Tātad, ko tas dara ar šo ieejas?
Nu, 14 līnija, es deklarēt mainīgo sauc izejas, un es
piešķirt tai vērtību, ieeja reizes ieeja reizes ieejas.
Un tad es atgriezties produkciju.
Tātad, kā es varu izmantot šo, tad?
Ko es varu mainīt šos iezīmētos rakstzīmes tiešsaistē
7 būtu, jūs domājat?
Mērķauditorija: [nedzirdama].
David J. Malan: Jā, tā kubs x.
Tātad x ir mainīgs, kas nozīmē, ka tur kādu vērtību.
Par laimi, tas ir tipa skaitlim.
Un tāpēc x ir int, tas nozīmē, ka es varētu nodot to kubu.
Un pat ja es esmu ignorējot vērtību x ar vērtību
gada kuba x, kā tas ir bijis gadījums līdz šim, jebkurā laikā jūs
ir vienādības zīmi un kodu līnija, stuff tiesības
izpaužas izpildīts un tad kļūst piešķirts
vērtība kreisi.
Tātad darbību kārtība ir, kā mēs ceram.
Tātad tas darbojas?
Nu, ļaujiet man iet uz leju šeit.
Ļaujiet man atvērt manu termināļa logu.
Ļaujiet man darīt darīt pieaugumu, Enter.
"Netieša deklarāciju funkcija" kubs "ir spēkā neesoša
C99. "Kā malā, C99 attiecas uz valodas C, kā tas bija
definēta 1999.gadā, kas bija atjauninājums pa versiju, no
1989, kas ir atjaunota vairāk nekā oriģināls.
Tā ka viss, ka līdzekļi.
>> Tātad, ko tas nozīmē, ka "netiešs deklarācija
funkcija "kubs" ir nederīgs "Tas ir tieši šeit?.
Tas ir labi tur 12 rindā.
Mērķauditorija: [nedzirdama].
David J. Malan: Kas tas ir?
Mērķauditorija: Tas nav pirms tam.
David J. Malan: Tas nav pirms tam.
Tātad šī ir lieta.
C ir sava veida stulba, vai C kompilatori ir sava veida stulba.
Viņi tiešām darīt tikai to, ko jums pateikt viņiem darīt.
Un tie, jo īpaši, tikai lasīt savu kodu augšas uz apakšu,
kreisās uz labo.
Tātad, ja kompilators, šķindēt, ir lasīšana savu kodu, līnija 1, tas
skaitļi, kā to izdarīt.
Ak, šeit nāk galvenais.
Labi, ļaujiet man iet uz priekšu un atzīt mainīgo x.
Ļaujiet man drukāt kaut ko.
Līnija 7, kāda heck ir kubs?
Tas nav deklarēti stdio.h.
Tas nenāk ar C. Man nav ne jausmas, ko darīt.
Un tā šķindēt tikai galvojumi un aizveras ar šo kļūdas ziņojumu.
Lai mēs varētu noteikt šo pāris veidos.
Mēs varam iemācīt šķindēt ko kubs ir, tikai pārvietojot kur
deklarācija ir.
Tāpēc es izgriezt un ielīmēt to atop galvenais.
Tagad saprotam, ka tikai tāpēc galvenais vairs pirmkārt, tas ir
joprojām izpildīts pēc noklusējuma.
Galvenais ir galvenais.
Tas ir noklusējuma funkcijas nosaukums.
Tas nav svarīgi, ja tas ir failā.
Bet vismaz tagad šķindēt ir redzējis kubs pirms es to izmantot.
Tātad, pieņemsim redzēt, ja šķindēt ir laimīgāki tagad.
Padariet pieaugumu, tā apkopo šo laiku.
>> Ļaujiet man palaist pieaugumu.
Un tiešām, šķiet, ir darba.
Tagad, jūs varat nākt klajā ar scenārijiem beidzot kur
tas nav iespējams, lai visas funkcijas
Iepriekš katru citu funkciju.
Jūs saņemsiet iestrēdzis šajā bezgalīga cilpa patiesībā,
ja tas puisis grib būt šeit, bet tas
puisis ir jābūt tur.
Tāpēc tas ne vienmēr strādā.
Tātad par laimi, C ir vairāk elegants risinājums.
Es esmu gatavojas nodot to atpakaļ, kad tā bija, tikai tāpēc, ka es
dod priekšroku, jo principā, ka galvenais vienmēr būs
augšpusē, jo tas ir tikai jauki, lai redzētu šī programma
dara pēc noklusējuma.
Un ko es esmu gatavojas darīt šeit ir atzīt to, ko sauc
prototips.
Es esmu gatavojas atkārtoti deklarēt savu kuba funkciju, burtiski
kopējot un ielīmējot.
Patiesībā, tas nav burtiski.
Tik burtiski kopējot un ielīmējot līnija 15
līdz virs 6 līniju.
Tas nav svarīgi, kādi līnija tas nonāks uz.
Tas notiek, ir par 4 līnijas.
Bet tā ir jābūt, pirms galvenais.
Bet pamanīt atšķirību.
Līnija 4 beidzas ar semikolu, kas nozīmē hey,
Šķindoņa, ņem manu vārdu par to, ka pastāv funkcijas
sauc kubs, kas ņem int un atgriež int.
Bet es neesmu gonna pateikt, kas tas ir vēl.
Tikai zinu, ka es apsolu pateikt beidzot.
Un tiešām, tagad tas ir labi, ka tas ir zemāk.
>> Tātad tas parasti ir labāk, jo tad augšā
Jūsu fails, jūs varat vienkārši grabēt off, ātru uguns, viena līnija
katrs, kādas ir jūsu funkcijas vārdi, kāda ir to
izejvielas, kādi ir viņu rezultāti ir.
Un, lai būtu skaidrs, ieeja parasti nozīmē argumentu vai
parametrs, sinonīms.
Izeja ir atgriešanās vērtību, ko tas
rokas atpakaļ uz mani.
Tātad šajā gadījumā šeit, kubs ir pasludināts augšpusē, bet
definēts, citādi zināma kā īstenots, apakšā.
Tāpēc tagad iesim atpakaļ šeit un atkārtoti palaist šo.
Tāpēc tagad ļaujiet man iet uz priekšu un atkal palaist padarīt, atkārtoti palaist pieaugums.
Un tagad, šķiet, ir strādā tikai naudas sodu.
Tātad tagad mēs varam iet uz priekšu un faktors, kas kaut ko līdzīgu
alus piemēru par šo ceturto versiju.
Tāpēc ļaujiet man ritiniet uz leju šeit.
Un ievēroju, ka es veida ņēma šo tēmu, lai sirdi tikai tagad.
Fakts, ka es dziedu to pašu strofa atkal un
atkal un atkal, tas pats koris līnija dziesmu, filcs
like kāpēc ne es faktors, kas ārā funkciju?
Un tiešām, tas būtu viens no motīviem.
Bez tam, ka kāds cits pasaulē varētu vēlēties
izmantot kuba funkciju -
tas labs iemesls, lai faktors kaut ko un uzrakstiet
pašu pasūtījuma funkcija -
ja tur koda gabalu savā programmā, kas tikai padara
konceptuālā nozīmē, ka jūs veida vēlaties, lai dotu tai
nosaukums - tāpat kā šajā gadījumā, koris -
tad jūs varat līdzīgi rakstīt, ka par atsevišķu funkciju.
Jums nav rakstīt visu, galvenais, ja tas vienkārši
jūtas tīrītājs nodalīt to, un piešķir tai nosaukumu.
>> Tātad šajā gadījumā šeit, pamanīsiet, ka man ir komentāru atop
Šo funkciju, kas tikai dzied par
norādītie numuri pudeles.
Pamanīt šeit, ka man nav nepieciešams, lai izsauktu šos
lietas ieejas un izejas.
Patiesībā šoreiz es tikai sauc manu ieejas b par pudeli.
Un pamanīt šeit, anulēts liecina ko?
Ka koris -
Mērķauditorija: Vai to atpakaļ.
David J. Malan: neatgriež vērtību.
Un tiešām, funkcijas nav atgriezties vērtības.
Viņi var tikai kaut ko darīt.
Tie var būt, ko sauc blakusparādības, kas šajā
lieta ir tikai viss ķekars drukāšanas uz ekrāna.
Tāpēc ievērosiet, ka šis kods šeit, es burtiski tikko nozaga no
iepriekšējā piemērs.
Vienīgā atšķirība ir tā vietā izmantojot i kā manu
mainīgs, es esmu tagad, izmantojot B kā manu mainīgo.
Tāpēc man ir b šeit lejā, man ir b šeit lejā, man ir b
mīnus 1 leju šeit.
Bet kods ir tieši tāds pats.
Bet tikai, lai parādītu jums, tagad, kā mēs varam izmantot šo, ļaujiet man iet
priekšu un faktiski mainīt būt par cilpu.
par (int i = n, i> n, i -).
>> Tāpēc es esmu nozagta, ka no iepriekšējā piemēra.
Agrāk, tas ir 37 rindā, ka man būtu sākuši
dziedot šo kaitinošas dziesmu.
Bet tā vietā, es esmu tikai gatavojas tagad saucam koris i.
Darīts.
Tāpēc tagad katrā atkārtojuma šīs cilpas, es aicinu šo citu
funkcija, koris, kas man gadījās rakstīt.
Tas nebija rakstīts kāds cits gadiem.
Bet koris, tikmēr izmanto printf drukāt
ārpus šīm četrām pozīcijām.
Bet fakts, ka es esmu aicinot koris atkal un atkal
cilpa nozīmē, ka es esmu gatavojas saņemt, pašās beigās,
Precīzs pati dziesma, jo man ir līdz šim.
Tātad īsumā, tagad, ja es atskatos uz manu kodu, lai gan
funkcionāli tas ir līdzvērtīgs, ievērosiet, ka tas ir
sāk iegūt vēl lasāms.
Man nav īsti zināt, cik GetInt
tiek īstenots.
Atklāti sakot, es nezinu, kā koris tiek īstenota.
Bet tas nav jautājums man.
Man vienalga, jo tagad es varu veida, kā cilvēku, lasīt
tas no augšas uz leju.
Un tāpēc, ka funkcijas tiek nosaukti saskaņā ar ko tie
do, mans kods ir arvien lasāma.
Un kā mūsu programmas iegūt daudz sarežģītāka -
ko semestra beigām, jums būs rakstiski simtiem līniju
gada koda valodu, piemēram, PHP un JavaScript un līdzīgu -
Jūs atradīsiet, ka tas ir tik daudz vieglāk, nekā sekot
ko jūs esat darījuši.
Un, kad jūs sākat sadarboties ar draugiem vai
partneriem vai kolēģiem, jūs varēsiet rakstīt daudz
masīvas programmas, sākot izmantot šos pamata
celtniecības bloki.
>> Tātad ar to teica, kāpēc nav mēs to saucam dienā?
Un mēs redzēt jūs trešdien.
[Aplausi]