[Mūzikas atskaņošanai] Jason Hirschhorn: OK, ikviens. Laipni lūdzam iedaļā. Tas ir CS50, mūsu ļoti Pirmais super sadaļā. Kā jūs visi zināt, nākamnedēļ regulāras sekcijas sāksies, bet šonedēļ mēs visi kopā. Ir sevi. Mans vārds ir Jason. Es esmu lektors datorzinātnēs. Mums ir Andi, kurš ir vadītājs TA no CS50. Un Scaz, Profesors Brian Scassellati, viņš ir profesors datorzinātnēs. Mēs esam CS50 galviņas at Yale. Jūs vienmēr varat e-pastu mums heads@cs50.yale.edu. Mēs būsim lekcijās. Mēs būsim pie darba laika. Ja tur ir kādreiz kaut ko mēs varam darīt jūsu labā, kaut kas jums ir nepieciešams, justies brīvi aizsniegt mums. Tātad, ko mēs gatavojamies darīt šodien? Vai pirms tam, kāda ir nāk klajā šonedēļ? Tātad darba laiks ir pirmdienās, otrdienās, Trešdiena, un ceturtdien, 8:00 līdz 11:00. Tur ir grafiks mājas lapā. Sekcijas, tāpat kā es minēju, sāk nākamnedēļ. Un jūs uzzināt šonedēļ ko laika Jūsu sadaļa ir, kāda diena tas ir, un kas jūsu TA ir. Problem Set 1 ir saistīts pie ceturtdien pusdienlaikā, piektdien pusdienlaikā ar vēlā dienā. Jā, jums ir deviņas vēlu dienas. Un tur ir deviņi problēmu kopas. Un var izmantot tikai vienu vēlu diena par problēmu kopumu. Jā, būtībā, visas problēmas komplekti ir saistīts piektdien plkst. Tas ir viss. Viss, kas ir informācija par mācību programmu. Katru piektdienu, mums ir pusdienas. Mēs vēlētos, lai padarītu šo lielo Protams, jūtos nedaudz mazāks. Tātad jūs esat laipni aicināti RSVP. Bezmaksas pusdienas ar kolēģiem klasesbiedriem un darbinieki. cs50.yale.edu/rsvp. Visas šīs lietas, kas Man ir uz ekrāna, un vairāk, jūs varat atrast cs50.yale.edu vai cs50.harvard.edu, ja jums iet uz Harvard un skatās šo tiešsaistē. Arī uz šīm tīmekļa vietnēm, tur ir ton resursu jums. Katru lekcija ne tikai video no lekciju, bet arī atzīmē. Kāds būs skatīties lekciju un veikt piezīmes par jums. Tātad jūs varat maksāt uzmanība lekcijās, vai jūs varat izmantot savas piezīmes / Mūsu atzīmē, lai papildinātu savas piezīmes. Ir slaidi tiešsaistē. Avota code-- viss David iet pār lekciju, vai Scaz iet pa lekciju, ka pirmkods ir pieejams tiešsaistē kā arī, kā, piemēram, I, minēts video. Sekcijas, tāpat visi tiks filmētas. Visi šie slaidi būs pieejama. Visi šī kodeksa būs pieejamas arī Jums. Ir šorti uz tīmekļa vietni, kur CS50 darbinieki tērēt piecus līdz 10 minutes iet cauri tēmām jums. Daži no tiem, jūs esat jau radušās problēmas komplektos. Darba laiks, kā jau minēju, pirmdienās caur ceturtdienās, 8:00 līdz 11:00. CS50 Pētījums ir fantastisks resurss. Ir prakses problēmas, izlases slaidi, zināms bugs ka skolēni gribētu satikt, par būtībā katru tēmu mēs segs šajā kursā. Un, visbeidzot, par šo slaidu vismaz, Reference50 kas sniedz jums informāciju par visu no C funkciju jūs varētu kādreiz iespējams cerēt izmantot, un daudzi, daudzi citi. Atkal, ka dot dot dot pie apakšā ekrāna ir norādīt, ka tur pat vairāk resursu par šīm abām tīmekļa vietnēm: cs50.yale.edu, cs50.harvard.edu. Tātad, ko mēs darām šodien? Nu, vispirms es esmu gatavojas sniegt paskatās resursiem. Jau bija, ka viens. Paskaties uz mums. Tagad mēs gatavojamies iet pa datu tipi un operatori C. Tad Andi nāks šeit un iet pa bibliotēkām C, Printf (), funkcija, ar kuru jūs jau esat pazīstami vai ātri kļūst ļoti pazīstams. Un jūs arī iet pa conditionals un cilpas. Un tad beidzot, Scaz iet pār CS50 ID. Ja neesat balodis jau Problēma Set 1, kā arī to, kā izmantot terminālu un noderīgas komandas un pēc tam sniedz jums dažus demos un prakse kodēšana ar CS50 ID. Pirms es lēkt uz šo saturs šajā pusē, Vai kāds ir kādi jautājumi līdz šim? Liels. LABI. Pārnesumu pārslēgšanas. [Pārnesumu pārslēgšanas] Tas bija man novirzot rīkiem manuālo auto. Tātad datu veidi C, jūs varat ne tikai būt mainīgā x un ir to jābūt uz līnijas 10, vesels skaitlis, varbūt skaitlis 1, on line 20, decimāls skaitlis 10,5, un tad pāris rindas vēlāk virkne, es mīlu CS50. In C, mainīgie var būt tikai viena lieta, un tikai viena lieta. Un tāpēc jums ir, lai dotu viņiem veidus. Un šajā valdē, mēs ir veidu sarakstu. Ir chars, kas kandidēt rakstzīmes. Tātad tas ir viens burts A, B, C, D. Tas var būt arī telpa, vai kas var būt arī jauna līnija raksturs. Tur ir veseli skaitļi, kas ir tieši numuri, veselas numbers-- vai veseli skaitļi rather-- bet ne Decimāldaļa. Decimāldaļskaitļiem, mums ir peldošā komata skaitļus. Peldošā komata skaitļus Ir numuri ar zīmēm aiz komata. Tad ir profila izstrādājumi, kas ir būtībā garākas veseli skaitļi. Jūs pamanīsiet, ka ilgi ir 8 tā kā int ir 4. Es nopirkšu to, ka sekundē. Tas ir tāpēc, ka ilgojas var uzglabāt pat vairāk skaitļu nekā int var uzglabāt. Double ir rīvdēli. Un visbeidzot, mums ir virknes, kas ir tips kas jums, iespējams, izmantojis iepriekš. Ja jūs iekļaut hashtag # includeCS50.h jūsu avota failā, tad jūs varat izmantot virkni veidu. Tas nav reāli iebūvēti C. Ir pāris citi veidi, kā labi. Bet tie ir galvenie tie, ar kas jūs izmantosiet un sastopas. C kā, atkal jau minēju, katru variable-- to var būt tikai viens tips un tikai viens tips. Tas ir tāpēc, ka C ir statiski drukāti valoda, atšķirībā dinamiski drukāti valodās kur, ja jūs izveidotu mainīgo Jūs varat mainīt to, kas glabājas tā kā jums iet uz jūsu programmā. Vairāk nekā šeit uz labās rokas sānu, man ir dažādu izmēru no šiem datu baitu veidiem. Tātad raksturs ir 1 baits. Tas ir 8 biti. Un tas nozīmē, ka 8 bits tur ir astoņi 0s un 1s. Mēs redzējām šos paraugdemonstrējumus pirmais nedēļa ar šo bināro spuldzēm. Ar 8 biti vai 1 baits, mēs varam pārstāvēt numurus no 0 līdz 255. Tiesības. Ja visas 8 biti ir 0, kas ir 0. Ja pirmais bits ir 1, tas ir skaitlis viens, un tā tālāk, visu ceļu līdz pat 255. Un tas ir iemesls, kāpēc par rakstzīmēm, jūs varat būtībā ir līdz 255 no tiem, bet tas ir daudz, lai nosegtu visus rakstzīmes mums ir nepieciešams, lai izmantotu. Par veseli skaitļi, jūs varat būt 0 un tad jums ir 2 līdz 32 mīnus 1. Tie ir cik daudz iespējas Jums ir par veseliem skaitļiem. Par ilgi, jums ir 0 2 līdz 64 mīnus 1. Tātad jums ir daudz, daudz, vairāk iespējas longs. Stīgas, tas ir jautājuma zīme jo tas ir cliffhanger vēlāk. Jā. Es varētu pateikt ikviena uz malas to atrašanās vietas, piemēram, to, kas ir, ka jautājuma zīme? Tas ir cliffhanger. Mēs galu galā sedz izmēru virknes un runāt vairāk par stīgām. Tā kā virkne ir faktiski viens no mācību riteņiem mēs likts uz šajā Protams, no sākuma un tad pacelties vēlāk gada, jo stīgas C faktiski norādes to rakstura masīvi. Bet atkal, tas ir cliffhanger vēlāk. Pirms es pārietu uz visiem jautājumiem, komentāri, bažas par šo slaidu? LABI. Man ir fantastisks Explainer. Arī tad, kad jūs esat programmēšana, jūs gatavojas izmantot šos operatorus. Really Simple pazīmes, ka var darīt vienkārši operācijas, ar kuru jūs, iespējams, jau ļoti labi pārzina. Tā, piemēram, pa labi labajā pusē, mēs redzam pievienot. Lai pievienotu, jūs vienkārši darīt ar plus zīmi. Un lai jūs varētu būt divi mainīgie x un y. Jūs varat darīt x + y savu kodu. Varbūt jūs vēlaties, kuri paredzēti, saku jums ir numurs 7 un 3, vēlaties saglabāt, ka ar mainīgo sauc summu. Jūs varat darīt int par tipa, telpu summa, nosaukums mainīgā, = 7 + 3; Kas būtu, ka veikals summa? Kāds? Ja man bija summa = 7 + 3. Kas būtu jāglabā summa? Jūs varat vienkārši kliegt to ārā. Mērķauditorija: 10. Jason Hirschhorn: 10! Tas ir tieši labi. Kas par Kopumā = 7. pants - 3., Es tikai izmantot šo domuzīme zīmi. Kas notiek jāuzglabā? Mērķauditorija: 4. Jason Hirschhorn: 4. Sum, iespējams, ir nepareizs nosaukums ka mainīgs, bet 4 tiks uzglabāti. Vairoties C, izmanto maz Star raksturs, jūs neizmantojat X. Sadalīt, izmantojiet priekšu Slash nav sadalīšanas simbolu. Un modulo, izmantojiet procents simbolu. Tātad pieņemsim, ka es gribu redzēt int z = 7% 3, kāda būtu jāglabā z? Tātad, tas ir būtiski jautā Kāda Modulo darīt? Vai kāds zina, ko Modulo dara? Jā. y 4. SPEAKER 1: Tas ir atlikums. Jason Hirschhorn: Tā ir atlikums, ja jūs sadalīt. Tātad 7 dalīts ar 3: 2 atlikums 1. Tātad 1 tiks uzglabāti. Tu atņemšanu, bet tas, kā tā darbojas. Tas ir tas, ko Modulo operators dara. Tas aizņem vairākas dala to ar citu numuru un atgriežas pie jums atlikušo daļu. Tātad vēlreiz, 7% 3 dod Jums 1, jo 7 dalīts ar 3 ir 2 atlikums 1, un atgriež atlikumu. Kas par iesim atpakaļ uz augšu viens solis, lai šī sadalīšana zīmi. Ja es darīju 7 / dalīts ar 3 dara kāds zina, ko tas varētu atgriezties? SPEAKER 2: 2. Jason Hirschhorn: Kāpēc 2 un ne 2,333? SPEAKER 2: Es domāju, ka tas saīsina off pēc veselajam skaitlim. Jason Hirschhorn: So tas ir tieši labi. C, ja jūs sadalījumu divi veseli skaitļi 7 dalīts ar 3, tā izpaužas atbildi, kas šajā gadījumā 2.3333 visiem laikiem un tā konstatē, ka komatu un karbonādes viss off pēc komata un tas tikai atgriež jums 2. Tātad, ja es darīju 8 dalīts ar 3. Tas patiesībā, mēs zinām, ka atgriezties 2.666, bet tas karbonādes viss off decimālais, saīsina to visu, un tieši atgriežas ar jums 2. Tātad 6 dalīts ar 3, 7 sadalīta par 3, 8 dalīts ar 3, visi atgriezīsies pie jums 2. Vai kāds zina, vai ir minējums, par to, kā es tiešām varētu saņemt pilna atbilde, ja es gribu, ka decimālo? Jā. Uz priekšu. SPEAKER 3: Izmantojiet peldēt? Jason Hirschhorn: Ko tu ar to domā? SPEAKER 3: Jo jums teica pludiņš ir par skaitļiem [nedzirdama] Jason Hirschhorn: Right. Tātad, tas ir tieši labi. 7 ir vesels skaitlis. Bet, ja es gribēju, lai ieslēgtu, ka uz peldošā punkta skaitlis, Es būtu uzglabāt ka kā 7,0 jo dators ir tiešām stupid-- mēs redzējām, ka ar PB un J example-- tas būs jādara tikai tieši ko tu pateikt to. Tātad, ja jūs rakstīt 7, tas domāju, ka ir vesels skaitlis. Ja jūs rakstīt 7,0, lai gan mēs zināt šīs lietas ir vienādi, tā izturas ka Like peldošā punkta skaitlis. Tātad, ja jūs 7,0 dalīts par 3, vai dalīts ar 3,0, tā teiktu, OK, tagad mums ir darīšana ar pludiņiem. Es atgriezīšos pie jums 2.333333 uz visiem laikiem. Bet nav īsti uz visiem laikiem, jo kā mēs redzējām arī lekciju, šie peldošo punktu numuri nav īsti precīzs. Tātad, ja jūs vēlaties, ka decimālo, vai daļa no šīs aiz komata, tad jums ir use-- viens no tiem ir jābūt peldošā punkta numurs un dators ir jāsaprot ka tas ir peldošā komata esat kas nodarbojas ar, nav vesels skaitlis. Visus jautājumus par šo tabulu uz labajā pusē, līdz šim? Vai jūsu kreisā pusē, jūsu kreisi, jūsu kreisā pusē. Jā. SPEAKER 4: Right. Par tāpat kā regulārs veseli skaitļi, jūs write-- būtu jums ir rakstīt peldēt? Jason Hirschhorn: Jā tā. Nu, ja jūs vēlaties, lai izveidotu mainīgs tas ir peldēt, jums ir nepieciešams teikt peldēt z vienāds kaut ko. SPEAKER 4: OK. Jason Hirschhorn: Bet, ja es gribēju do 7 dalīts ar 3 un saņemt, ka decimālo, Es darītu float Z = 7.0 / 3.0; un kas dotu man peldošā komata numurs. SPEAKER 4: OK. Jason Hirschhorn: Ja es darīju kaut kā int z = 7 / par 3, kas dotu man vesels skaitlis, jo tie visi ir veseli skaitļi. Vai tas ir jēga? SPEAKER 4: Jā. Jason Hirschhorn: OK. Liels. Jebkādi citi jautājumi par šo tabulu? Tiešām? Es esmu tik satraukti. LABI. Tātad dažas citas lietas, jūs izmantojat, nereti apstākļos vai cilpām, ir šie operators-- veidi šie Būla izteiksmes veidi. Un kā mēs uzzinājām, == ir tas, ko jūs izmantot, lai pārbaudītu, vai divas lietas ir vienādi. Tātad, šeit es esmu pārbaudīt, ja x == y, pieņemsim atkal pieņemt, ka x ir 7 un y ir 3. Tātad, ja es uzrakstīju 7 == 3, ko tas, ka atgriezīsies pie manis? Vai tas ir patiess vai nepatiess? Mērķauditorija: False. Jason Hirschhorn: OK. Es jūtos kā ikviens var saņemt šo vienu. Tātad ikviens, kādi būtu, ka atgriezīsies? Mērķauditorija: False. Jason Hirschhorn: False. Liels. 7 nav vienāds 3. Tātad 7 == 3 varētu atgriezties viltus. Jums ir nav vienādības zīmi, tāpēc, ja es pārbaudīto 7! = 3, ko tas var atgriezties? Mērķauditorija: True. Jason Hirschhorn: True. Excellent. Kāds bija ļoti izteiksmīgs in muguras un novērtējam. Tad jums ir mazāk nekā operatoru, mazāks par vai vienāds ar operatoru, lielāks nekā operatora, lielāka par vai vienāds ar operatoru. Tātad vēl viens veselība pārbaudītu. Ja man būtu 7, ir lielāks par vai vienāds ar 3. Kas būtu, ka atgriezīsies? Mērķauditorija: True. Jason Hirschhorn: True. Jā. Ka atpakaļ istaba, back side no istabas, fantastisks. Jūs varat apvienot šos izteiksmes, ja jums patīk, kā arī, ar loģiska un kas ir && Vai loģiska, vai kas ir || ||. Un tāpēc tagad jūs varat pārbaudīt divus lietas together-- Vai tas smieklīgi? Kāpēc ir tā, ka smieklīgi? Tātad, ja es gribēju, es varu teikt, ir 7 lielāks par 3 un 2, ir mazāks nekā 4? Nu, ja 7 ir lielāks par 3, tā ir taisnība. 2, ir mazāka par 4, kas ir taisnība. Tātad tas viss atgriezīsies taisnība. Ja es pārbaudīts 7 ir lielāks nekā 3 and-- Es esmu tikai picking izlases numurus here-- 4 ir mazāks par 2, labi, ka ir nepatiesa. Tik patiess un nepatiess make nepatiesa. Un jūs varat doties un jūs apvienot kā daudzi apstākļi kopā, kā jūs vēlētos. Vai kāds ir kādi jautājumi, komentāri, bažas līdz šim? Un es redzu daži no jums Fotografējot par mani ekrāna, ko es augstu vērtēju. Cerams, tas nav Snapchat. Cerams, tas ir par jūsu piezīmes. Bet visi šie dodas lai būtu pieejami tiešsaistē. Tātad jums nav fotografēt to. Tāpat kā es teicu, viss būs pieejams internetā par jums. LABI. Es esmu par to, lai saņemtu offstage, tāpēc nav kāds gribu pateikt kaut ko pirms tas notiks? Jautājumi? [Iestarpinot Voices] Jason Hirschhorn: Ak, apstāties. Jūs guys ir pārāk jauki. LABI. Es esmu gatavojas atzīmēt ārā. Iesim. ANDI PENG: Mēs esam gatavojas darīt neērts mic izmaiņas tagad. Jason Hirschhorn: Es esmu gatavojas veikt šo off. ANDI PENG: Novērtēt atbalstu, puiši. Vai tu mani dzirdi? Vai tas ir labi? Perfect. Skaisti. Ļaujiet man tikai iešūt ka. LABI. Tātad, es esmu par to darīt, piemēram, milzu informācija dump par jums puiši tieši tagad. Un Neraizējieties whatsoever ja esat ne pēc ik maz līniju, ko Es esmu par, lai parādītu jums. Kā teica Jason, viss ir pilnīgi tiešsaistē. Tikai mēs esam gatavojas izmēģināt, lai ieviestu ikvienam jēdzieniem, uz daži no šiem slaidiem. Tik vienkārši sekot līdzi. Neraizējieties, ja jūs nesaprotat viss; Tomēr, ja kādā brīdī jūs jūtaties zaudējis, paaugstināt savu rokas, mēs pārstāsim, neuztraucieties. Cool. Tāpēc es domāju, ka kaut kas ir Deivids jau veida minēts lekciju un Jason ir sava veida norādīja lai šodien ir tas, ko bibliotēka ir. Tātad plānošanu, mums ir šīs lietas sauc bibliotēkām. Ja, būtībā, visi tie ir tikai kopa funkciju, kas ir būtībā tikai kods, kas ir jau raksta kāds cits, ka mēs visi varam izlietot mūsu programmām. Tātad, kā tas parasts bibliotēka darbs, vai ne? Jūs ievadiet bibliotēkas durvīm. Jums ir visi šie grāmatas jūs varat izraut un jūs varat piekļūt informācijai šajās grāmatās. Pats programmēšanā. Jums ir bibliotēka, kas ir jau rakstīts ar citiem cilvēkiem. Un tā, ka jūs varat, kā programmētājs vai students, var piekļūt šai bibliotēkai ir ar hashtag # Ietvert. Tā, piemēram, C mēs ir trīs C- visvairāk parasti izmanto trīs C standarts libraries-- ievades / izvades bibliotēku, string bibliotēka, un math bibliotēka. Tātad jūsu pirmais Pāris problēma komplekti, tie būs trīs ka jūs galvenokārt izmanto. Tā kā Dāvids jau paskaidrots lekciju, standarta I / O bibliotēka, vai standarta ievades / izvades bibliotēka dara tieši tā. Tas ļauj jums, jūsu kodu, ievadi kaut kas no lietotāja un izejas, ka uz ekrāna, būtībā drukāšana uz ekrāna. Un tā jebkurā laikā jūs izmantot jebkuru funkcijas, Piemēram funkcija printf (), kas mēs gatavojamies iet nākamo slaidu, pārliecinieties, lai iekļautu standarta I / O bibliotēku vai arī jūs neesat gatavojas varēs izmantot printf () funkciju. Jo jūs, kā programmētājs nekad faktiski rakstīja, ka funkciju, jūs tikai izmantojot kādu cits kods jūsu pašu kodu. Vai, ka jēga visiem? Cool. Un tad mēs būtībā nokļūt uz string.h bibliotēka un math.h bibliotēka, .H vienkārši nozīmē bibliotēku, citas bibliotēkas, ka jūs galu galā būt izmantojot jūsu kodu. Tomēr, lai Šīs bibliotēkas, mēs arī have-- Šī class-- mums ir arī ko sauc CS50 bibliotēku, cs50.h, kur mēs, par Jūsu caurskatīšana ir radījuši daudzas svarīgas un noderīgas funkcijas. Tā, ka jūs kā programmētājs var piggyback off tas, ko mēs esam jau rakstīts tā, ka Šī funkcija ir pieejama, lai jūs jūsu lietošanai. Es būšu aptver pāris funkcijas, ko parasti izmanto, bet zinu, ka tie ir viss googleable tiešsaistē. Jūtieties brīvi, uzvilkt CS50 bibliotēku un tad jums ir visas funkcijas tur. Jā. SPEAKER 5: Tātad, ja jums nav izmantojot programmatūru, kas ir, ko klase, tas, ka domāju, mēs gribētu, lai lejupielādētu un atrast šī header failu sevi un pateikt dators kur tas ir? ANDI PENG: Great jautājums. Tieši tā. Tātad, tas ir tāpat, ja jūs neesat fiziski klāt bibliotēkā, tur nav veids, lai jūs varētu faktiski iet un tai piekļūt. Tātad tas pats ar programmēšana C, jums ir jāpārliecinās, ka jūs izmantojat mūsu ierīce jo bibliotēka ir jau ir iekļauti tajā. Un tad, kad jūs hashtag #include, bibliotēka ir tur. Jā. Labs jautājums. Ikvienam labs? Cool. Viss kārtībā. Tāpēc mēs esam gatavojas hit, būtībā, kas ir pirmā funkcija, kas mēs kā programmētāji būs izmantojot mūsu kodu. To sauc par printf () funkciju. Tātad, printf () funkcija, jo es esmu jau teica pēdējā slaida, ir iekļauts standarta I / O, Standarta ieejas / izejas, bibliotēka. Tāpēc pārliecinieties, ka kāds jūs using-- Ak, ļaujiet man paķert lāzera pointer-- kad jūs izmantojat printf () funkcija, Jums ir jāiekļauj standarta I / O bibliotēku vai arī, kad jūs sastādīt, jūs gatavojas saņemt kļūdu jo dators būs kā, Ak, es nezinu, kur printf () ir, Jūs neesat man saki kur printf () ir. Nu printf () ir iekļauts standarta I / O, tad, kad jūs izmantojat printf (), pārliecinieties, lai būtu, ka line virs jūsu kodu. Tā, piemēram, printf () šeit ir funkcija. Viss tas ir izdrukāt kaut iekšpusē iekavās, lai lietotājam. Vai kāds vēlētos pieņemt stab par kādu šajā rindā kodu tiesības šeit gatavojas izdrukāt? Tātad, atbilde ir uz ekrāna. Kāds? VERDI: Apakšējā. ANDI PENG: Verdi, kāpēc nav jums iet uz priekšu un teikt visu paziņojumu? VERDI: Sveiki, mans vārds ir Andi, un es esmu 20 gadus veca. ANDI PENG: Ah, jauki. Tātad šajā līnijā mēs spēsim izdrukāt, Sveiki, mans vārds ir Andi, un es esmu 20 gadus vecs, kas faktiski ir patiess apgalvojums. Sintakse. Tātad pāris sintakses jautājumiem, kas Jūs guys vēlaties, lai pārliecinātos, jūs zināt. Citāti. Pēdiņās pateikt dators, ka viss iekšā tiks drukāts. Viss iekšpusē var vienkārši, kā tieši jūs to rakstāt, izņemot parasti beigās, mēs spēsim vēlaties iekļaut hash-- oh sorry-- domuzīme n. Tātad domuzīme n. Vai kāds vēlas veikt uzminēt at ko tas dara, lai mūsu kodu? Jā. SPEAKER 6: liek to jaunā rindā. ANDI PENG: Tieši tā. Tātad tas viss dara, ir atļaut neatkarīgi notiek pēc tam, kad šo paziņojumu, kas iespiež uz jaunu līniju. Tā, ka tad, kad jūs esat rakstiski savu kods jums nav nejauši ir lietas tacked līdz beigām ka jūs nevēlaties. Tas viss kļūst glīti iespiež vienu līniju un tad mēs sākam par šādu līniju. Vai kāds atceras, ko tas semikols dara, kad mēs esam kodēšanas? Jā. SPEAKER 7: paziņojums. ANDI PENG: Sorry? SPEAKER 7: Vai tas beigsies paziņojumu? ANDI PENG: Jā. Tātad C, vai jebkuru programmēšanas valoda, semikols apzīmē beigas programmēšanas līniju. Tā, piemēram, angliski mēs izmantot periodu teikt, ak tas ir beigu teikums. Programmēšanā, pašu, mums ir semikols lai apzīmētu beigas līnijas. Bieži, kad jūs esat sākot programmu, jūs apzināties tevi aizmirst, lai pievienotu semikolu un tad jūs mēģināt palaist savu kodu un tā nedarbojas. Un jūs, piemēram, Ah, man nav zināt, kāpēc, tas būtu jāstrādā. Iespējams, jūs droši vien aizmirsis semikols vai grupa vai kaut ko kaut kur. Tātad, tas ir svarīgi atcerēties. Cool. Labi, paceļot rokas, kā daudzi cilvēki šeit kādreiz ņemti AP Computer Science vai programmēt Java agrāk, kādreiz? LABI. Lovely. Tas nebūs piemērojams tad, bet Java, jūs ir kaut kas ko sauc System.out.println kas neeksistē C. Tātad C, kad jūs vēlaties pievienot mainīgajiem uz kaut ko vēlaties izdrukāt, tur ir īpaša sintakse mēs spēsim izmantot. Ka sauc par placeholding-- būtībā mēs pievienojam vietturi vietā no skaitlim vai mainīgo ka mēs gribam, lai drukātu. Tātad, kā jūs guys var redzēt, mēs esam iekļāvuši jauna bibliotēka header failu šeit. CS50 bibliotēka. Un ietvertas šajā CS50 bibliotēkā ir kopēja funkcija mēs būsim, izmantojot mūsu kursā sauc GetInt (). Vai kāds vēlas pieņemt stab at Ko GetInt (), iespējams, var darīt. Mērķauditorija: [dzirdams] ANDI PENG: Sorry. Nevarēja dzirdēt. Maddie, ikviens. Maddie: Ak, tas liek jūs par skaitlim. ANDI PENG: Tieši tā. Tātad šī funkcija, cits funkcija, kas jau ir rakstīts kāds cits ka mēs varam aicināt tagad. Viss, kas ir, ir rosināt jums, lietotājam, ievadīt neatkarīgi vēlaties kā kodu darbojas, un tas saglabā whatever-- šajā gadījumā mēs esam GetInt () - ing, tāpēc tas nozīmē, ka mēs esam iegūšana vesels skaitlis. Un mēs ejam, lai saglabātu kas citā skaitlim ka mēs esam tikko veikts sauc vecumu. Tas jēga visiem? Cool. Tāpēc tagad, ka mēs esam uzglabā šo skaitli, ka mēs esam piedāvāts no lietotāja, Šajā mainīgajā lielumā, mēs esam izveidots int tipa sauc vecums, mēs varam iet uz priekšu un vieta ka mūsu printf () funkciju. Tātad sintakse parasti printf () ir ka visur, kur jūsu faktiska line vēlaties iekļaut šo skaitli, jūs darīt, ka simbolu labi tur, procentuālais simbols, ar Mainīgā veids, ka jūs vēlaties. Tātad, šajā gadījumā vecuma ir vesels skaitlis. Tātad jūs esat gatavojas iekļaut % i jo tas ir vesels skaitlis. Un tad pēc jūsu apgalvojums, jūs gatavojas darīt komatu un Nosaukums mainīgo. Tātad šeit, mēs ejam, lai drukātu out, Sveiki, mans vārds ir Andi, un es esmu tukšas gadus vecs. Hashta-- vai, sorry--, vecums ar ko es ievadi. Tātad, ja es būtu ar ieejas 20 par manu GetInt () šeit, tas izdrukāt tieši to pašu. Bet, ja es gribēju kaut ko ievades cits, piemēram, varbūt 40 vai 45, tad jūs varētu redzēt, kas atspoguļo attiecīgi kodu. Tātad šis ir piemērs par kaut ko, kurā tas izdrukā un izskatās Jūs kā tad, ja tas ir tas pats, bet zem motora pārsega dators tur tiešām ļoti dažādas lietas notiek. Cool. Viss kārtībā. Tātad, ko tad, ja mēs gribam vairākus mainīgos? Diezgan viegli. Tas pats. Mums ir arī jaunu funkciju šeit sauc GetString (), iekļauti arī laikā CS50 bibliotēkā, ka visiem tas ir nekavējoties lietotājam par virkni, kas ir tikai kopa rakstzīmju, tā kā teikums vai kā vārda. Tātad šajā gadījumā, mēs būtu divi vietturi% s stīgu un% i vesels skaitlis. Un mēs ejam, lai sekotu ka ar abiem mainīgajiem mēs vēlamies iekļautas, tādā secībā ka tie parādās teikumā. Tā, piemēram, mans vārds ir tukšs, es gribu vārdu tur, tāpēc es esmu nāksies vārdu vispirms. Un tad pēc tam, es gribu vecumu, vēlas, lai būtu vecuma sekundē. Un tāpēc, ja es gribēju, lai ievadītu, Hello, mans vārds ir Andi, un es esmu 20 gadus veca. Ja es ievadīts Andi un 20, tad tieši tas pats varētu drukāt; Taču tagad mēs esam ieguvuši divi glabājas mainīgie nosaukumu, kā arī int. Jā. SPEAKER 8: Vai tas būtu spēj darboties, ja jūs ieslēgts vārdu un vecumu beigās, kas? ANDI PENG: Jā. Tas ir patiešām labs jautājums. Tik garš stāsts īss, nē. Jo vārds un age-- ko Mainīgā veids ir vārds? SPEAKER 8: String. ANDI PENG: Un ko Mainīgā veids ir vecums? SPEAKER 8: Integer. ANDI PENG: Tātad šeit mums ir vietturi stīgu un skaitlim, vai ne? Tātad, ja jums bija, lai pārslēgtos tiem, dators nav gatavojas zināt. Tas notiek, lai pārbaudītu virkni, un ja jūs mēģināt, lai dotu tai int, tas būs tāpat pagaidiet es esmu sajaukusi, jums teica, ka man vajadzētu būt piešķirot atmiņu int. Un tieši šeit, kad tā sagaida vesels skaitlis un jums arī tā nosaukumu un virkne vietā, tas arī būs ļoti mulsinoši, to nedarbosies tieši tā, kā jūs to vajag. Tātad šeit, nosaucot un sintakse ir ļoti svarīgi darboties kodu. Ikvienam labs? Jā. Maddie. Maddie: Lūk, es zinu, ka mēs esam paskatījās at piemērus klasē, kur tie lūdz Kāds ir jūsu vecums, kāds ir jūsu vārds. Lūk, tas var būt tas doesn't-- ja mēs palaist šo kodu, tas nebūtu lūgt kas? Bet jūs vienkārši ievadi divus numurus un tad tas varētu darboties, piemēram, ka? ANDI PENG: Jā, tieši tā. Tātad, ja jūs vēlaties, lai tas displejs, lūdzu, ievadiet savu vecumu, Jūs varat vienkārši pievienot printf () funkcija ka saka, ievadiet savu vecumu, virs tā. Tas ir labs jautājums. Jā. SPEAKER 9: Tātad, jau būtu iekļauts GetInt () [nedzirdama]. ANDI PENG: Nē, tas patiesībā nav. Tātad tas viss dara, ir tikai liek tukšu ekrānu lietotājam ievadīt kaut ko. Ja jūs vēlaties to, ja vēlaties to izdrukāt ārā kaut ko, kas stāsta lietotājam, piemēram, lūdzu sniegt man savu vecumu, tad jūs būtu printf (), kas sevi. Jo visi izmanto šo funkcija dažādām lietām, jūs varētu uzglabāt vecumu, jūs varētu uzglabāt adresi, jūs varētu uzglabāt tālruņu numurus. Un tā tas tiešām līdz jūsu puiši individuālās lietošanas veidi par to, ko jūs vēlaties, tā teikt. Jā. SPEAKER 10: Tātad, tikai lai precizētu, kur Vai tu ievadi nosaukumu un vecuma tā, lai tā parādās vietā% s? ANDI PENG: Tāpat kā lietotājs? SPEAKER 10: Jā, tāpat kā es varu padarīt it-- kur es varu likt Andi, un kur es varu likt 20? ANDI PENG: Jā. Tātad, ja tu būtu faktiski palaist šo kodu, Es neesmu faktiski darbojas kods, tas ir tikai šeit, tiesības tagad. Ja es būtu palaist kodu, es sastādīt kodeksu, veikt failu, palaist kodu, un tad tur būtu tikai divi telpas man ievadi. Jā. Jūs guys redzēs, kad tu spēlē apkārt ar kodu sevi. Visas tiesības mēs ejam, lai pārvietotos uz nākamo sadaļu, ko mēs būsim aptver šodien. Mēs ejam, lai iet pār to, ko nosacītu apgalvojumi ir. Tātad, ja jūs guys atcerēties un atsauktu no lekciju, nosacītie apzīmējumi, visi tie ir kopums norādījumu uz datoru kas, ja kāds nosacījums ir patiess, jums izpildīt kodu iekšpusē šo nosacījumu. Tātad būtībā Scratch-- liels tēma no šodienas ir tas, ka jums puiši ir jau viss redzējis loģiku viss ka mēs esam aptver. Un viss, ko mēs darām, ir tulkojot kaut ko tas bija ļoti intuitīvu Scratch, un grūti kodēšanas to uz sintakse mēs būsim, izmantojot klasei, kas ir C. Tātad loģiski, viss šis bloks bija ir tā, ka gabals koda tiesības tur. Jā. LABI. Mēs arī iekļuvuši ja ... cits apgalvojums, kas ir tikai pievienotā slānis sarežģītības uz ja paziņojums kur dators ņem apskatīt šo un redz, ja šis nosacījums ir patiess, do kāds ir iekšā šajās divās iekavās, else-- tā veida, piemēram, pēc noklusējuma, ja tas neatbilst condition-- izdarīt. Tas ir tāpat kā dakšiņu ceļa. Ja līst ārā, man par lietus jaka, cits kaut ko cits man nav likts uz lietus jaka. Vai tas loģika jēga visiem? Cool. Viss kārtībā. Tātad kā cietais piemēru Tas, ka mēs varētu redzēt C ir, ja es gribēju, lai izveidotu mainīgo sauc par mājasdarbi stundas. Un, ja mājasdarbi stundas ir mazāks par pieci, es saku Dzīve ir liels. Tas ir brīnišķīgi. Tomēr teikt, cīņa ir real-- kas ir tas, ko mēs visi šajā pirmdienā Pēcpusdienā up Science Hill ir iespējams, dara labi now-- Mērķauditorija: [Smejas] ANDI PENG: Viņi kā mēs būtu, paldies par to. Veids, kā mēs varētu hardcode tas C ir if-- pieņemsim mums jau ir mainīgo tipa int sauc mājasdarbu stundas tepat. Ja mājasdarbi stundas, ir mazāks nekā pieci printf (), Dzīve ir liels. Atcerieties, saglabāt / n, jo jūs vēlaties jaunu līniju pēc. Else drukāt, cīņa ir reāla. Vai visi saprotam, cik Es pārgājis no šī bloka šajā blokā kodu? Cool. Viss kārtībā. Tāpēc tagad mēs spēsim to apskatīt Vairāku If paziņojumi vispār. Tātad pieņemsim pieņemu mērķis šajā programmā bija mēs nekavējoties lietotājam pēc pakāpē. Mēs uzvedni izmantojot GetInt () uz pakāpe, un tie ievades vērtība, un jūs vēlaties, lai parādītu kāda veida pakāpē viņi dabūja. Tātad, ja es būtu, lai izstrādātu programmu, es nozīmē parasti visās mūsu acīs, 90-100 ir A, 80-90 ir B, un tā tālāk, un tā tālāk. Kas ir nepareizi ar šo gabals kodu, kas tas nav darīt to, ko es gribu to darīt. Jā. SPEAKER 11: Viņi ir apakšējās robežas, bet viņiem nav augšējās robežas. ANDI PENG: Tieši tā. Vai visi dzirdēt, ko viņa teica? Tur būs augšējais robežas, bet ne apakšējās robežas. Atvainojiet, otrādi, apakšējās robežas, nav augšējās robežas. Tātad jūs vēlētos pieņemt stab at sakot kādi būtu uzdrukāts uz šo ekrāns, ja es būtu palaist šo kodu. SPEAKER 11: kļūda? ANDI PENG: kļūda? Great minējums, nav gluži taisnība. Vai kāds ir cits stab? Jā, Aaron. AARON: Ja jūs nodot kaut kas lielāks par 90, tas liecina visas pakāpes jums. Tas parādīs jums ir A, jums ir B, jums ir C. ANDI PENG: Jā. Tas ir tieši labi. Tātad, kas gribētu būt brīnišķīgi. Tomēr, tie ir savstarpēji ekskluzīvs, es domāju. Ja es būtu, lai palaistu šo gabals kodu. Un tad pieņemsim tikai teikt, es ievadīts šķiru 95. Tātad 95 tagad glabājas INT sauc pakāpes. Un tā C ir valoda kas iet uz augšu no augšas uz leju, tā tas notiek, lai vienmēr palaist līdz apakšai. Tātad tas notiek uz šejieni, lasīt, ja pakāpe ir lielāka par vai vienāda ar 90, printf () jūs got A. Lieliski, es ir 95, kas ir lielāks par 90. Tas notiek, lai drukātu, Es saņēmu A. tas notiek lai apskatīt šo, ja, tas notiek saka, labi 95 ir arī lielāks par 80, tas notiek, lai drukātu jums arī ieguva Got B izsaukuma zīme, un tā tālāk un tā tālāk. Tātad, kā mēs visi varam redzēt, Tas ir kopīgs bug kas var rasties, ja mēs esam rakstot kodu, lai piesargies par. Ikviens, kādi jautājumi par Tāpēc, ka bija noticis? Liels. LABI. Tātad, kā mēs to labotu, ir acīmredzami loģisks nākamais jautājums. Nu, mums ir šie skaisti lietas, ko sauc ja cits, ja cits ja cits paziņojumiem. Tātad jūs varat redzēt, ja jūs vēlētos mainīt šo problēmu, tu gribēji, lai katrs no apstākļi savstarpēji izslēdzošas, Jūs varētu pievienot cits ... ja paziņojums. Un šie ir course-- domāt par to, kā trepes, vai kā kāpšļi, no ladder-- Jūs varat pievienot, jo daudzi no šiem, kā jūs gribu tik daudziem apstākļiem, kā jūs vēlaties. Tātad šeit, ja es ievadīts pakāpe ir 95. Ja pakāpe ir lielāka par 95, printf (), es saņēmu A. lieliski. Tas notiek, lai redzētu cits ... ja un tas notiek, lai zināt, Ak, nē, Es jau izpildīts pirmais cits. Es know-- vai pirmo if-- es zinu, ka Man nav apskatīt kādu no šiem jo viena no tām jau ir taisnība. Tātad, tas ir gatavojas palaist no augšas uz leju. Tiklīdz pirmais ir taisnība, tad tas notiek, lai izlaistu pār visu pārējo no cits ... IF. Vai tas ir jēga? Tātad, šādā veidā jums ir dažādu līmeņu pārbaudes un tiklīdz viens no tiem ir nepatiesa, Pārējie ir arī, tie nav pat pārbaudīt. Cool. Viss kārtībā. Tātad šis ir piemērs atšķirīgs veida nosacītu aprēķins mēs redzam retāk, bet mēs redzēsim tos un izmantot tos. Un viņi bieži vairāk efektīvs noteiktiem gadījumiem. Tātad mums ir, ko sauc slēdzis paziņojums. Tātad, pirms mēs uz to, kas ir cits apgalvojums, IF ... cits paziņojums. Lūk, mēs esam tas, ko esam sauc slēdzis paziņojumi. Tātad, kad mēs izmantot slēdzi pārskati ir galvenais? Tātad slēdzi paziņojumu, jūs parasti, parasti, patiesībā jums var tikai ievades veseli skaitļi par jūsu mainīgais, ka jūs pārbaudīt. Tātad, ja es gribēju pārbaudīt, lai redzētu ja kāds number-- piemēram pakāpē, ja es saņēmu 90. Es gribu, lai redzētu, vai tas ir A, B vai C. es varētu būt gadījums. Tomēr, šajā gadījumā ir lai būtu vēl viens nemainīgs. Tātad šajā ziņā, slēdzis paziņojums var tikai pārbaudīt vienlīdzības diviem numuriem. Tas nepārbauda kaut kas cits. Tātad tas ir kaut kas ļoti uzmanīgs, ja jūs izmantojat to. Tātad šeit, ja es gribēju pārbaudīt, lai redzētu ja mans pakāpe 90 ir vienāds ar 90 vai 80 vai 70 vai 60, un pēc tam drukāt atbilstošais rādītājs, Es varētu rakstīt, ka ar slēdzi paziņojumā. Tātad tas notiek uz šejieni, pārbaude ir šis skaitlis, kas vienāds ar šo konstanti? Ja tā nav, tas notiek, lai izlaistu. Vai tas ir vienāds ar nemainīgu divi, un tā tālāk, un tā tālāk, līdz jūs hit noklusējuma, ja neviens no tiem ir vienāds. Tiklīdz viens no viņiem ir iestatīts uz būt vienāds, tas notiek, lai to izdarītu līnija kodu un pārtraukuma. Kas nozīmē, ka tas notiek, lai sasniegtu ka palaist, pauze, un tikai pilnīgi izlaist uz apakšā kodu. Tātad šajā ziņā veida funkciju piemēram, IF cits, ja cits, ja paziņojums. Tātad, šeit ir konkrēts piemērs jums puiši. Tātad pieņemsim, ka es gribēju izveidot mainīgo sauc gadā dibināts. Un es gribu, lai nekavējoties lietotājam ievadīt gads, ka viņu skola tika dibināta. Lai es varētu izveidot slēdzi paziņojumu šeit. Un pieņemsim tikai teikt, es ievade 1636. Šis kods šeit gatavojas redzēt slēdzis gadā dibināta kas ir vienāds ar 1636. Tas notiek, lai redzētu lietu 1636, ak tie ir vienādi, printf () Ja tu būtu šajā skolā up ziemeļiem? Tāpēc, ka mēs pieņemam, tie nav iet šeit, ja viņi iet uz Harvard, pauze un izlaist līdz beigām. Ja es būtu ievadi 1701, kas Es pieņemu, mums visiem būtu ievade, tas varētu izlaist šo lietu, nāk uz leju, lai gadījumā, ja divi, kas ir 1701, un drukāt Laipni lūdzam Yale! Break, izlaist līdz beigām. Else jūs, iespējams, lietojat šo kursu online kurā case-- foršo uzņemšanu lai Yale-- tas notiek, lai dotos uz noklusējuma drukāt, Hello internets! Un pārtraukums. Jā. SPEAKER 12: Vai jūs izmantojat cits nevis noklusējuma tur? ANDI PENG: Nē, jo veids, ka visa šī funkcija slēdzis ir veidota, sintakse jums nepieciešams, lai izmantotu, ir gadījums gadījums noklusējuma. Tas ir tāpat kā, ja cits, ja tas viens tas gadījums gadījums noklusējuma. Jā. SPEAKER 13: Jūs varbūt jau teica, bet jūs varat būt vairāk nekā diviem gadījumiem? ANDI PENG: Jā, jūs varētu ir tik daudz lietas, kā jūs vēlaties. Domājiet par to kā, tāpat kā bezgalīgi pievienojot tālāk. SPEAKER 14: Ja jums pārgāja 1701 ar 1636, tas nav īsti darīt atšķirība labi? Tas ir tikai gatavojas pārbaudīt to. ANDI PENG: Tas ir tiešām labs jautājums. Un mēs pieskarties pēc Tas vēlāk, bet tikai zina, ka ir slēdzis paziņojums infinitely-- tas efektīvāka nekā tā, un tad, ja cits, ja tāpēc, ka tas darbojas izmantojot dažādu veidu funkcijas, kas ļauj, lai būtībā, lai tikai lēkt taisni uz ja jums ir nepieciešams būt. Jā. SPEAKER 14: Cool. Pateicība. ANDI PENG: Yeah SPEAKER 14: Un jūs nevar darīt lietas, piemēram, un vairāk nekā. ANDI PENG: Nē. Tātad, tas ir to, kas ierobežo Par slēdzis apgalvojums ir tas, ka jums ir ir konstantes tikai, tikai veseli skaitļi. Jā. LABI. Tātad tas ir kaut kas jums puiši sastapsies retāk no, bet es tikai gribēju ieviest to gadījumā. Mēs esam šeit, kas ir sauc trijnieks operators. Ja pēc būtības, tas ir tāpat kā ja paziņojums apkopoti vienā rindā. Lūk, es iešu uz nākamo rindiņu, tad nākamā lapa, jo tas ir vieglāk, lai redzētu. Tātad mēs visi esam redzējuši šīs tiesības? Tas ir diezgan viegli ievērot. Ja es gribēju, lai mainīgo sauc stīgu nosaukts s, ja zināms skaits Es dot tas ir mazāks par 100, es vēlas piešķirt zemi, lai virkni, vēl es gribu, lai piešķirtu augstu. Tas šeit dara tieši to pašu šie astoņi rindas kods dara. Tātad, šeit es gribu, lai izveidotu mainīgs string. Un tas ir nosacījums es esmu pārbaudi, ja skaits ir mazāks par 100, tad jūs piešķirat vērtību zems, cits piešķirt vērtību augsta. Šie slaidi būs online, neuztraucieties ja jūs puiši nesaņem šo leju. Tas ir tikai vienkāršāks veids, vairāk efektīvs veids rakstīšanas kodu. LABI. Tāpēc tagad mēs ejam ievadiet ko, lielākajai daļai cilvēku ir kā ļoti, ļoti mulsinoši lieta, lai padomātu par sākumā. Cilpa sadaļā. Tātad šodien, mēs ejam, lai runātu apmēram trīs veidi cilpas. Mēs ejam, lai sāktu ar, bet cilpa, tad runāt par darīt, kamēr cilpa, un tad runāt par par cilpām. Tātad būtībā, lai vairāk redzes izglītojamajiem, kas tur, mums ir būtībā grafisko tēlojums ko kamēr cilpa dara. Tātad ar plānošanu, jūs varētu sākt un ievadiet cilpa kādā noteiktā brīdī. Jūs pārbaudīt stāvokli. Un, ja nosacījums ir patiess, jums izpildīt kodu iekšpusē. Un tu atgriezies apkārt un jūs pārbaudīt. Ja tas joprojām ir taisnība, jums jāuztur šis kods apkārt un apkārt pa apli. Tomēr otrā ka stāvoklis kļūst nepatiess, jūs gatavojas lauzt un beigtu cilpu. Un tas būtībā ir sintakses jūs gatavojas izmantot. Kaut kāds stāvoklis ir taisnība darīt, ja tā nav taisnība, jūs gatavojas izlaist līdz beigām un virzīties uz priekšu ar savu programmu. LABI. Vai kāds ir piemērs par to, kas, iespējams, var notikt ja es mēģinātu palaist šo gabals kodu? Starp citu, SAJ-- tas Scaz, Andi, Jason-- mēs paraksta savus e-pastus, Mīlestība, Saj. Tas ir mums. LABI. Kāds ir piemērs, vai ir ideja par to, ko tas varētu drukāt? Veida āķīgs jautājums. Tātad šeit, atcerieties stāvokli mēs pārbaudot ir, bet taisnība. Tāpēc, kamēr tā ir taisnība, tas ir gatavojas drukāt, es mīlu Saj! Vai ir kāds punkts, kurā mēs gribētu mainīt uz kaut ko citādi? Nē, labi? Tātad šeit, mēs esam radušās, ko ir iespējams būs bugging daudz jūsu programmas, bezgalīgā cilpu. Jūs atradīsiet, ka, ja jūs palaist šo gabals kodu, tas ir tikai gatavojas, lai saglabātu apdruka, es mīlu Saj! Kamēr mēs novērtējam atbalstu, mēs nevēlamies savus datorus crash, jo jums saglabāt drukāšanu Es mīlu Saj! Tāpēc, lūdzu, lūdzu, izvairīties bezgalīgo cilpa jo tas nekad notiek izvērtēt to viltus un jūs nekad gatavojas atstāt cilpa. Un jūs gatavojas sūkāt uz visiem laikiem. Cool. LABI. Otra veida cilpas mēs runājam par šodienu ir darīt, kamēr cilpa, darīt, kamēr cilpa. Un tā sauc darīt, kamēr cilpa jo jums ir jādara un laiku. Tātad tas ir diezgan līdzīgs, bet cilpa, bet mazliet atšķirīgs. Lūk, jūs gatavojas darīt kāds ir iekšā tas kamēr kāds nosacījums ir patiess. Tātad, ja es būtu C un datoru es esmu darbojas nosaka šis gabals kodu, Es to apskatīt augšpusē. Es eju uz C, es saku darīt šo lietu. Un tad es varētu pārbaudīt, bet tas ir taisnība, man to atkārtot. Bet, kamēr tas ir nepatiess, tad es virzīties uz priekšu un es nekad iet atpakaļ uz šo cilpa vēlreiz. Vai kāds pieņemt stab pie kāda atšķirība starp šo cilpu un viens mums vienkārši paskatījās bija praktiski. Jā. SPEAKER 15: stāvoklis nāk pēc, nevis pirms? ANDI PENG: Tieši tā. Tā viņa teica stāvoklis nāk pēc, nevis pirms. Galu galā, starpība starp šo un kamēr cilpa ir tas, ka jūs tikai gatavojas darīt kāds ir iekšā tas, neatkarīgi no vai Jūsu stāvoklis ir vai nav taisnība, un pēc tam pārbaudīt stāvokli. Tātad šajā gadījumā, tu esi always-- šādā veidā, jūs vienmēr pārliecinoties kāds ir iekšā iet vismaz reizi pirms pārbaudes, lai redzētu ja jūs vēlaties to palaist vēlreiz. Un šeit ir piemērs par to, kad mēs varētu to izmantot. Tā, piemēram, ja es gribēju, lai būtu mainīgs int tipa nosaukts vecums, un es gribu, lai ātri lietotājs viņu vecumam, Es esmu gatavojas darīt printf () Kāds ir Jūsu vecums? vecums = GetInt (), kas ir pamudinot lietotājam. Un daži cilvēki būs tiešām kaitinošas. Un jūs nevēlaties bugs jūsu programma kādu ievadot, piemēram, Ak, es esmu negatīvs 4 gadus veci vai neatkarīgi. Tādā gadījumā, ja tie to, ka šis izvērtē taisnība, un tas nozīmē, ka es esmu gatavojas ir, lai saglabātu atgriežās un darot. Tātad tas notiek, lai saglabātu re-pamudinot lietotājam lai dotu jums patīk īsta vecuma skaits un tas ir gatavojas glabāt iet atpakaļ un redoing tā kamēr tie dod jums reālu vecumu lielāks par vienu, vai nav nulle. Tātad mājiens, mājienu. Tas būs ļoti, ļoti noderīga par vienu no jūsu PSET problēmu. Jā. SPEAKER 16: Vai!, Sorry. ANDI PENG: Yep. SPEAKER 16: Vai pastāv, nav būt asshole, but-- ANDI PENG: Neraizējieties. SPEAKER 16: --are tur atšķirīgi noteikumi šeit, vai jūs vienkārši aizmirst likt citāts? ANDI PENG: Oh Yeah. Atvainojiet, tas ir pilnīgi mans slikti. Tas noteikti bija vajadzēja būt citāts. Labs loms. Tas būtu nedarbosies. LABI. Tātad pēdējā veida cilpas mēs runāsim par un, galu galā, veida, visvairāk komplekss ir par cilpa. Neuztraucieties, ja jums nav zināt, ko tas nozīmē. Tas ir diezgan mulsinoši sākumā. Mēs iet pār piemēru. Viss, kas notiek uz cilpas ir tas, ka jums ir trīs paziņojumus ka jūs gatavojas iekļaut. Tātad zināmā lieta, jūs esat gatavojas inicializēt mainīgo. Jūs esat gatavojas pievienot nosacījumu, kas šī cilpa būs jāuztur. Un pēc tam, beigās no cilpa, jūs gatavojas to atjaunināt. Jūs varat atjaunināt mainīgo ka jūs vēlaties sekot. Tāpēc mēs parasti izmanto uz cilpas, kad mēs vēlaties palaist cilpa Par Zināma reizes un mēs jau zinām, Ak, es gribu šī cilpa izpildīt, piemēram, 10 reizes, tad jūs do-- es iešu pa piemērs nākamajā lapā. Tātad, šeit, piemēram, uz nulles, ja jums gribēja kaut ko atkārtot 10 reizes, viss, kas jums bija teikt bija, atkārtot 10 reizes, es mīlu Saj! kas ir vairāk pieņemams šovs atbalstu mums nevis bezgalīgu cilpu. Lūk, kā jūs Pāreja uz C un rakstīt kas ir par int-- es esmu gatavojas izveidot vai deklarēt int tipa mainīgais nosaukts i. Es esmu gatavojas, lai sāktu tā, lai 0, tā i = 0; un tas būs mans stāvoklis. Tātad, i ir mazāks nekā 10. Un pēc tam pie end-- pēdējais paziņojums esat nāksies ir atjaunināt kas notiek ar mainīgo i beigās jūsu cilpas. Tātad, tas ir sava veida mulsinoši, jo dažādas daļas šajā līnijā kas notiek dažādos veidi cilpu. Bet es iešu vairāk nekā pseudocode piemērs, ka un varbūt izskaidrot šo tikai mazliet labāk. Tātad šeit. Tas ir, mēs tikko redzējām cilpa. Būtībā pseudocode, ko notiek šajā programmā, ir pirmais Es veidoju i, inicializēšana to 0. Es esmu pārbaudi, lai noskaidrotu, vai man ir mazāk nekā 10, un tādā gadījumā pirmo reizi tas ir jo 0 ir mazāks nekā 10. Tādējādi cilpa gatavojas palaist. Un tad es esmu gatavojas izdrukāt šo līniju. Un tad beigās šo līniju, pa labi šeit, es esmu gatavojas darīt pieaugumu i, i ++, viss, kas nozīmē, palielināšanai to ar vienu. Tāpēc es tagad 1. Jo tas reiz bija 0, ja es pieauguma, tas ir, tas ir tagad 1. Un tad es iešu atpakaļ pie sākuma cilpas un es pārbaudīt stāvokli. Vai nosacījums joprojām ir taisnība? Jā, 1 joprojām ir mazāk nekā 10. Tātad, tas notiek, lai drukātu to vēlreiz, iet un tad pieauguma i, un pārbaudiet nosacījums nepārtraukti, pastāvīgi, līdz jūs galu galā iegūt līdz vietai, kur i ir 10. Jūs esat gatavojas drukāt šo 10 reizes un tad es gatavojas vienāds 10. Jūs esat gatavojas pārbaudīt stāvokli. Vai 10 mazāk nekā 10? Nē, tas ir nepatiess. Tādējādi šis cilpa nav dodas palaist, tas būs pauze, un jūs gatavojas turpināt ar savu kodu. Tātad, kā jūs guys var redzēt, šis ir tiešām lielisks piemērs cilpas varat programma, jo iet uz noteiktu summu reizes. Ik viens skaidrs? Jā. SPEAKER 17: Kā par pieaugumu eksponenciāli, tas ir atšķirīgs kodēšana? ANDI PENG: Jūs can-- mēs iesim virs šī nākamajā slide. Labs jautājums. Vai anyone-- pirms es pārvietot on-- kāds vispār sajaukt, jo tas ir patiešām grūts jēdziens. Neraizējieties, ja you're-- OK. Cool. Viss kārtībā. Tikai vispārējs slide. Šis kamēr cilpa ir dara tieši tas pats uz cilpas bija. Tas ir vienkārši rakstīts savādāk. Jūs guys var iepazīties slaidus Jūsu ērtībai vēlāk. Bet tikai zinu, ka tur ir vairākas veidi, kā rakstīt pats notikt ar dažādām cilpām. LABI. Tātad, tagad mēs ar jautājumu par to, kas ja mums ir cilpas iekšpusē cilpas. Mēs esam nokļūst reālā Pirmsākums veida sīkumi šeit. Ja jūs vēlaties darīt lietas vairākus reizes iekšpusē citas lietas kas jādara lietas vairākas reizes, jūs grib to, ko sauc par ligzdotu cilpas. Attiecībā uz tiem no jums, kas pirmo reizi redzēt šo un iegūt ļoti sajaukt, viss, ko mēs darām šeit ir, kam, lai cilpu kur mums ir mainīgo rindu. Bet iekšpusē tā, mums ir arī cits cilpa mainīga sauc kolonnā. Un es ļoti iesakām jums visiem kas ir sajaukt vispirms turēt track-- izdarīt šo, zīmēt šo out. Nemēģiniet tikai iemesls caur to, izdarīt to ārā. Jūsu galvas, par šo gabals papīrs, vai kāds, rakstīt rinda, izsekot, kas rinda ir vienāda. Rakstiet kolonnu, lai sekotu par to, kas kolonna ir vienāds. Un sekot līdzi to, kas ir izdrukāšana ar katru atkārtojuma. Ikviens šīs cilpas atkārtojuma, ik atkārtojuma ka lielākiem cilpas, tikai glabāt pēc loģikas. Un es garantija jums, jūs mīlēt to, ko jūs redzat, jo tas ir arī ļoti piemērojams savu problēmu kopu. Cool. Viss kārtībā. Tātad vissvarīgākais ka jūs puiši, iespējams, visi domājot par tieši tagad, ir jūsu problēma Uzlikt 1s, kas ir saistīts ceturtdiena / piektdien. Savā water.c programmu, mājienu jums nāksies pamudinājusi lietotājam par ieejas. Jūsu mario.c programmu Jums nāksies izmantoja ligzdveida cilpas, kas ir A cilpa iekšpusē cilpas, drukāt bloku piramīdas, būtībā Patīk tas, ko Mario ir lēkt cauri. Un tad iekšpusē jūsu greedy-- vai varbūt Making izmaiņas, ja kāds no jums guys kādreiz dzirdējuši par that-- Jums nāksies būt ļoti uzmanīties no pirmajiem peldošo punktu vērtībām. Atceries peldošās zīmēm aiz komata un veseli skaitļi nav viens un tas pats. Sekot no kuriem viens ir kas. Un jūs esat gatavojas izmantot nosacītie apzīmējumi, kā arī. Labi, pēdējā lieta. Man palikušas pāris minūtes. Stils. Tātad tas ir kaut kas nav faktiski ietekmes efektivitāti, vai faktisko darbību jūsu kodu. Tomēr, tā sekas mūs kā Jūsu greideri, kā jūsu lasītājiem. Tā sekas pats, ja jūs esat mēģina atrast problēmu. Tā sekas lasāmību savu kodu. Tātad stils, piemēram, kad jūs cenšaties stils eseju angļu, ja jūs nebija punktu, Jums ir viss veida no jumbled kopā vienā rindā, to padara to patiešām grūti ikvienam lasīt savu eseju, pat ja jūsu punkti ir loģiski skaņu. Pats programmēšanā. Jums var būt briesmīgi neskaidrs kods, kas Scaz segs, un tā joprojām var palaist un funkciju. Bet mums, kā jūsu jauki TAS, kas būs būt lasījumā un izvērtējot savus PSets, tas nav ļoti jauki. Tātad, lūdzu, labad no mums un sevi, kad jūs mēģināt salabot problēma jūsu kodu, un jūs cenšaties lasīt savu kodu, padarīt pārliecināts, ka jūs ievērot dažus konvencijas ka mēs ejam, lai iet pāri. Tātad vispirms. Piešķiriet jūsu mainīgie lielumi jēgpilnus nosaukumus. Ja vēlaties saglabāt vesels skaitlis sauc vecums, lūdzu, nosauciet to vecumu. Nelietojiet nosaukt to augstumu. Kad jūs mēģināt uzglabāt vecumu augstumā, tas padara visu ļoti mulsinoši mums. Mums nepatīk jaukt. Jums nepatīk jaukt. Nevienam nepatīk sajaukt. Ja jūs gatavojas izveidot kaut ko, nosaukt to kaut jēgpilnu. Tomēr, lai cilpa, single rakstzīmju mainīgie parasti ir labi. Un, lai cilpa, ja jūs vēlaties, vienkārši i, un j, k, justies brīvi, lai tikai darīt. Konsekventa inicializācijas. Tātad, ko tas nozīmē? Tas nozīmē, tehniski, teorētiski, Jūs varat uzsākt un radīt vairāki mainīgie uz vienas līnijas. Tā, piemēram, es var izveidot vesels skaitlis sauc scaz_age, un skaitlis sauc andi_age = 20, un vesels skaitlis sauc jason_age uz vienas līnijas. Un es varu arī piešķirt tikai vienu no viņiem un nevis citi uz vērtībām. Mēs lūdzam jūs, lūdzu, nedariet to. Tāpēc, ka šeit jūs esat būtībā radīja trīs mainīgie, bet tikai viens no viņiem faktiski ir vērtība. Un tad, kad mēs esam mēģina lasīt savu kodu, vai, ja jūs mēģināt salabot problēma jūsu kodu, tas ir ļoti mulsinoši sekot. Tik vienkārši jūsu lasāmību, lai Mūsu lasāmību, nedariet to. Konsekventa cirtaini lencēm. Dažiem cilvēkiem patīk likt savas cirtaini bikšturi dažādās vietās. Tas nav īsti jautājums. Tikai pārliecinieties, ka jūs esat konsekventi jūsu pašu kodu, kur vēlaties, lai viņus. Konsekventa atstarpes. Ja jūs likts atstarpi pēc cilpas, vienmēr darīt. Vai ne tikai patīk veida darīt to atsevišķās vietās, nedariet to citiem. Vienkārši būt konsekventa. Otrkārt, ja kāds vēlētos iepazīties ar CS50 stila rokasgrāmata, mēs oficiāli ir stila rokasgrāmatu, kas stāsta jums visiem par šo konvenciju, plus vairāk. Tas ir online. Tas ir tāpat kā cs50.net/style~~pobj vai kaut kas tamlīdzīgs. Jūs varat google to. Konsekvence ir atslēga. Tāpēc nav jāuztraucas, ko citi cilvēki dara, tikai pārliecinieties, ka jūs esat konsekventa jūsu pašu kodu. Kāds ir kādi jautājumi par šo? Jā. SPEAKER 18: Tātad pareiza lieta darīt ar inicializācijas ir tikai tos visus atsevišķa līnija, ir tas, ka to, ko jūs sakāt? ANDI PENG: Tātad man reti ir tas notiktu. Bet, ja jūs vēlaties, lai, ja jūs vēlētos būt, piemēram, ietaupot vietu jūsu kodu, vai kāds, jūs varat izdarīt. Mēs lūdzam, lai jūs vienkārši nav inicializēt viena lieta, un nevis citi. Tātad, ja jūs vēlaties darīt int scaz_age, int andi_age, int jason_age, tas ir jauki. Vienkārši nav sāktu vienu un nevis citi ir viss. Jautājumi? Viss kārtībā. Es esmu gatavojas pāriet pie mikrofons, un lāzera rādītājs, un stafeti uz Scaz šajā brīdī. Tas ir neērts. Te tas ir. BRIAN SCASSELLATI: Paldies. Kā ir, ka skaņu? Skaņa ir laba? . Excellent. LABI. Tātad, hi everyone. Es esmu gatavojas izmēģināt strādāt ar praktisks piemērs ar jums. Un mēs spēsim izmantot CS50 s izstrādes vide, ko sauc Integrētā izstrādes vide. Un jūs esat redzējuši šo pierādīta lekciju. Un Problēma Set 1, tu esi nāksies iespēja to izmantot, un spēlē aptuveni ar tas, un pierast pie tā, jo mēs spēsim to izmantot ar pārējo pusē. Tātad šajā IDE, jums ir to, kas izskatās kā ļoti tradicionālā failu pārlūks vairāk nekā vienā pusē. Jūs esat ieguvuši daļu up top kur jūs gatavojas redzēt savu pirmkodu, jūsu Cfile, kods, kas jums rakstīt. Un uz leju apakšā, jūs ir termināla logu kas jūs izmantojat, lai gan sastādīt savu programmu un, lai palaistu vai izpildīt savu programmu. LABI. Tik vienkārši, lai dotu mums mazliet fonds, šajā termināla logā, jūs esat būs izmantojot komandu kopu kas ir standarta komandas visā lielākā daļa no Unix vai Linux sistēmām. Un tāpēc, ja jūs esat kādreiz izmanto jebkāda veida Unix, Ubuntu, vai kādu citu garšu, tie dodas meklēt pazīstami. Ja jums nav, neuztraucieties. Nav nekas sarežģīts par tiem. Viņi vienkārši, izmantojot citu sintakse, citu nosaukumu konvencija, nekā jūs esat redzējis. Tātad, lai uzskaitīt failus noteiktā direktorijā, viņi gatavojas izmantot komandu sauc Ls, vai sarakstu. Ja jūs vēlaties redzēt visu ar visu informāciju, jūs izmantojat komandu line arguments ar ls l. Un kas jums parādīs visu sīkāk, tai skaitā atļaujas par failu. Lai mainītu direktoriju, jūs izmantojat cd komandu. Un jūs varēsiet mainīt direktoriju gan, lai dotos uz jūsu mājas direktorijā. Tas ir tikai cd viss, ko pati, CD ar diviem punkti atgriezīs jums uz augšu vienu līmenī, lai jūsu iepriekšējo direktorijā. Un jūs varat arī cd līdz A apakšdirektorijā ierakstot cd un nosaukums šī apakšdirektorijā. Varat arī izveidot jaunus katalogi. Un mēs ejam staigāt caur to tikai minūti. Bet tikai likt viss uz ekrāna. Tā, ka jūs varat redzēt. Jūs arī ir iespēja manipulēt failus tieši no komandrindas. Jūs varēsiet tos nokopēt, lai pārvietot tos, vai arī, lai tos novērstu, tas ir, faktiski, lai tos dzēstu. CS50 IDE sniedz jums pilnīgu jauda komandrindas argumentus. Un tas nozīmē, ka jūs varat arī darīt ļoti bīstamas lietas. LABI. Piemēram, jūs varat noņemt, vai arī tas ir dzēst, fails neprasot par apstiprinājumu. Un jūs pat varat noņemt recursively-- tas domuzīme r flag-- visu apakšdirektorijā un visu tās saturu. LABI. Viņi uzskaitīti sarkans, jo jums jādomā "briesmas" ikreiz redzat šīs lietas. LABI. Viss kārtībā. Tagad beidzot, lietas, kas ir būs patiesi vērtīgs jums, tur ir dažas labas triki zināt, kā jūs navigācijas caur šo termināļa logā. Pirmkārt, jūs varat notīrīt ekrānu jebkurā laikā, vienkārši ierakstot skaidrs. Un jūs gatavojas redzēt man darīt, ka diezgan bieži. Jūs varat arī vienkārši parādīt teksts par failu ierakstot vairāk un tad faila nosaukumu. Jūs tad varēs ritinātu atpakaļ un tālāk ar to tikai ar SPACE un bultu taustiņus. Ja jums ir, kā mēs to darījām šodien lekcijā, programma, kas darbojas pastāvīgi in bezgalīga cilpa, jūs var pārtraukt šo programmu no izpildes ierakstot kontrole, kas ir turot Control-C. Un jums var būt nepieciešams veikt šo vairākas reizes. Dators izpaužas tālu priekšā jums. Un jums dažreiz nepieciešams arī tā pāris mēģina pirms tas faktiski nāk caur. Jums būs arī iespēja kārtot caur komandas ka jūs tikko ierakstījāt izmantojot augšup taustiņu, arrow taustiņu, un pēc tam uz leju bultiņas taustiņu. Un, kas ir ļoti noderīga ir vietā rakstīt out ilgi failu nosaukumi, Jūs varēsiet lietošanas Tab uz pabeigs dažus norādījumus. Tagad mēs ejam, lai pierādītu visiem tiem, kas tikai par sekundi. Tātad, ja jūs neatceraties viņiem, neuztraucieties. Tās ir lietas, kas jums uzņemt un izmantot, kā mums iet līdzi. LABI. Tātad C- atšķirībā Scratch-- C ir apkopota valoda. Tas nozīmē, ka mēs spēsim veikt avotu file-- tas ir teksts, kas jums rakstīt, komandas, kas jums rakstīt, tad printf () paziņojumiem, cilpas, Viss else-- un mēs ejam veikt šo failu un nodot to off ar programmu sauc kompilatoru. Kompilators tad ka teksts, ko jūs esat rakstiski un to pārtulkot Bināro instrukcijas ka jūsu dators ir faktiski notiek izmantošanu. Ka sauc objekts vai izpildāmais fails. Ja paskatās šo failu, jūs gatavojas lai redzētu kodu, kas jūs esat rakstiski. Ja paskatās šo failu, jūs gatavojas lai redzētu izlases rakstzīmju secību ka nekādas jēgas whatsoever. Tas ir tāpēc, ka tas ir bināro. Tas nav domāts, lai jūs varētu būt lasījumā. Tomēr, jebkurā laikā jūs vēlaties palaist kaut ko, ko jūs gatavojas kas darbojas, ir šo objektu fails. Tātad, kad mēs strādājam ar šiem failus, mēs rakstīt failu C. Pēc tam mēs apkopot to, izmantojot komanda tāpat marka, kas izmantos kompilators šķindēt par C valodā. Un tas radīs objektu fails, piemēram, out, vai šajā gadījumā, vārds, mana failu, ka es esmu likts. Viss kārtībā. Tātad pieņemsim faktiski izmēģināt šo. Tāpēc es nāca klajā ar piemēru no tā, ko es gribēju izmēģināt. Un viena no lietām, kas aizrauj mani ir animācija. Tātad mēs ejam, lai mēģinātu darīt mazliet animācijas izmantojot tikai ASCII rakstzīmes. Rakstzīmes mēs varam izdrukāt viegli tagad. Tātad, šeit ir mans labākais mēģinājums radīt jums animācija un zaķis cauri garu zāli. Tur viņš ir. LABI. Tātad viņš nav darboties vēl, bet viņš ir stāv tur garu zāli. Tagad, ja es būtu animators, vecajā skolā versija, animācijas, ko es varētu darīt, ir es varētu saražot priekšstatu par šo bunny zālē. Un tad es varētu saražot cits picture-- cits, ko viņi sauc cell-- ka bija zaķis tikai nedaudz pārvietota. Un tad trešais, kas bija bunny pārcelts nedaudz tālāk. Un es varētu saražot visu secība no šīm šūnām. Daži kur zaķis ir beidzies uz kreisajā pusē. Un tad pārceļas lēnām, viens viens pret vidu. Un tad no vidus pāri pa labi. Un, ja es būtu tad, patiešām laimīgs, es varētu nodot to kopā un es varētu rosināt viņus. Un tur ir mans zaķis braucot cauri zāli. Tas ir mans liels PowerPoint triks par dienu. LABI. Tātad, tas ir tik labi, kā tas izpaužas. LABI. Tātad, šeit vēl vienu reizi, šeit ir mūsu bunny cauri zāli. SPEAKER 19: Atkal. BRIAN SCASSELLATI: One vairāk laika, viss labi. Tur ir jūsu bunny. LABI. Tātad šodien, ko mēs ejam to darīt, ir, mēs ejam mēģināt, lai automatizētu procesu kas ražo šīs šūnas. Mēs ne diezgan nokļūt līdz punktam spēja viņus visus kopā. Bet mēs esam gatavojas izmēģināt, lai automatizētu process radīt šo secību. Un tas ir daudz no tā, ko animācija šodien ir līdzīgi. Tas ir, jums nav darīt lietas vienmēr izstrādājot visu ar rokām. Mēs izmantojam datoru, lai automatizētu daļas šajā procesā. LABI. Tāpēc ļaujiet man pārslēgšanai Tagad mūsu CS50 IDE. Un man ir radīti us-- un ļaujiet man tuvinātu šeit maz bit-- es esmu radīja mums sākuma punkts. Katru reizi, kad mēs lūdzam jūs sēdēt leju un uzrakstīt kādu kodu, ko mēs patiešām lūdz jums to darīt ir mēs lūdzot, lai atrisinātu problēmu. Un tā, ka jums vajadzētu domāt par darot, ka ir, sākot ar dažiem vienkārši daļa no šī risinājuma. Un tad būvēt ārā no šīs daļas. Un tas, ko mēs gatavojamies darīt šodien. Tātad, nevis mēģināt visu uzreiz, lai rakstīt visu ķekars kodu, kas ir gatavojas ražot tiem 10 animācijas šūnas, mēs esam gatavojas sākt vietā ar vienu gabalu, kas darbojas. Un tad mēs veidot mazliet apkārt, ka un mazliet vairāk, un mazliet vairāk. Tagad laba lieta par Problēmu risināšana šādā veidā ir tāds, ka tas ļaus jums, lai sāktu vienmēr ar kaut ko, ka jūs zināt, strādā un ieviest vienu pakāpeniskas izmaiņas. Un tas ir lielisks veids, lai uzzinātu, kā kods, jo katru reizi, kad jūs veicat izmaiņas, jūs redzētu, kāda ir tās ietekme. LABI. Tātad, šeit ir mūsu sākuma punkts. LABI. Tātad sākumā manu failu, Esmu hash #included stdio.h. Tas ir tāpēc, ka es varētu iegūt printf () funkciju, lai strādātu. Man tad man ir mana galvenā funkcija. Un tas joprojām izskatās mazliet arcane vai neskaidra, lai daži no jums. Tas ir labi. Visi tā saka, ir tas, ka galvenā funkcija aizņem nē arguments-- spēkā neesošu līdzekļi nekas C. un IT atgriežas pēc vienošanās veselam skaitlim. Galvenais vienmēr atgriež vesels skaitlis, parasti kods pasakot lietas gāja labi vai negāja labi. LABI. Bet galvenais ir, lai ir, ka forma mums tieši tagad. Esmu tad ieliek trīs rindiņas kodu. Un kopā ar katru līniju kods, es esmu likts komentāru. Tagad viena no lietām, kas mēs uzstāt, ka jūs darāt, un tas ir tik svarīgs programmēšanas prakse, ir vienmēr komentēt savu kodu. Vienmēr pierakstīt izturēties Angļu komentēt kaut ka jūs domājat, ka kods ir paredzēts darīt. Tādā veidā, vēlāk, kad jūs nākt atpakaļ tā, jūs varat apskatīt to, un jūs varat teikt, Ak, es atceros, ko es biju mēģina darīt ar to. Vai tad, kad TA apsēžas ar jums cenšamies palīdzēt jums darba laika, viņi var apskatīt šo un iet, es redzēt, ko jūs mēģināt darīt, bet tā vietā tas ir to, kas īsti notiek. LABI. Tāpēc es esam ieguvuši trīs daļās, lai manu kodu, Es esmu gatavojas vispirms drukāt dažus punktiņi sākumā. Es pēc tam izdrukāt mans ļoti fancy bunny. Un tad daži mazliet punktiņi beigās. Un šie trīs drukas pārskatos izskatās pazīstami ar jums šajā brīdī. Viss, ko es esmu darījis katrs no tiem ir es esmu izdrukāšana rakstzīmju secību. Nav iesaistīti mainīgie. Viss ir tikai dzīvoklis. LABI. Tātad, ja es iet uz leju, tagad uz manu terminal-- pieņemsim redzēt, ja es varētu saņemt šo atpakaļ out-- un es esmu gatavojas rakstīt skaidri vēlreiz. SPEAKER 20: Vai mēs izmantojam divām slīpsvītrām komentēt? BRIAN SCASSELLATI: Can izmantot double-- jā. Ir vairāki veidi, kā atstāt komentārus C. One veids ir izmantot dubulto slīpsvītru. Otra ir izmantot slīpsvītru un zvaigzne un pēc tam aizveriet ar zvaigznīti un slīpsvītru. Viss kārtībā. Pirmkārt, es esmu gatavojas sāktu navigāciju šeit tuvumā. Tātad, ja es iet uz manu mājas direktoriju, Es esmu mainījies katalogi tur, Es esmu gatavojas skatīties un redzēt, kas ir šajā direktorijā, ls, uzskaitīt. Es esmu gatavojas redzēt, ka es esmu ieguva divas apakšdirektorijas. Veidosim šo nedaudz lielāks šeit, lai mēs visi varam redzēt. Es redzu, ka es esmu ieguva divas apakšdirektorijas. Es ņemšu mainīt direktoriju iedziļināties darbvietā. Un es esmu gatavojas tikai rakstīt out daļa no tā, un tad tikai hit Tab. Un tas būs pabeigt pārējo man. Fancy. Es ņemšu meklēt un redzēt darbvietā. Un tieši tagad, es esmu strādā uz SuperSection ka mēs esam māca tieši tagad. Tāpēc es iešu uz šo direktoriju. Un visbeidzot, skatīties un redzēt. Un man šo failu bunny.c. Visas tiesības tāpēc ļaujiet man skaidri vēlreiz. Un es esmu gatavojas now-- atkal es esmu joprojām uzturas šajā direktorijā un tas stāsta man es esmu ka SuperSection direktorija. Es iešu uz priekšu un padarīt manu programmu zaķi. Un ka komanda, padarīt zaķis, kamēr skan mazliet dīvaini, arī atsaucas uz šķindēt kompilatoru. Un tas ir ražota me izejas, kas ir izpildāmā funny-- izpildāmo failu sauc zaķi. LABI. Es varu tad, un tas izklausās vēl sliktāk, izpildīt zaķi. LABI. Un pieņemsim redzēt, kas tā dara. LABI. Tas ir mazliet ko es biju gaidījis. Man manu zaķa attēlu tur, bet es veida gribēju to visu ar sevi. Ko es garām? SPEAKER 21: Slash l vai slīpsvītru n. BRIAN SCASSELLATI: Slash n. LABI. So iesim atpakaļ šeit. Un es nopirkšu no tā. Un es iešu atpakaļ uz šo vienu. Un pieņemsim to apskatīt tagad no mana galvenā funkcija šeit. Tātad, ko man darīt? Es gribu, lai pārtrauktu līniju. Tāpēc es nolikšu komentārā. Es nolikšu kādā printf (). Un kas man ir, lai? / n. LABI. Kas man ir, lai izbeigtu to ar? Semikols. Viss kārtībā. Tagad viens no patiešām svarīgas lietas ir pārliecināties Katru reizi, kad jūs veicat izmaiņas savu kodu, lai jūs to saglabāt. Ja neesat saglabājis savu kodu, jūs esat gatavojas pamanīt Little Star tur augšā. Un tas zvaigzne saka jums neesat saglabājis šo kodu. Ja es sastādīt to tieši tagad, tas nav gatavojas atspoguļot kādu no šīm izmaiņām, jo kompilators aplūko faila kas ir uz diska, nevis failu, kas ir atvērt jūsu redaktors. Viss kārtībā. Tātad, pieņemsim saglabājiet to, un tad mēs iesim tiesības uz leju šeit, nāk atpakaļ out. Nāciet uz leju, lai manu ligzdai. Un pieņemsim skaidrs telpu vēlreiz. Un mēs varam iet uz priekšu un viens vairāk laiks padarīt mūsu zaķa programmu. Un izpildīt zaķi. Tas nestrādāja, vai nu. Nepareizs slash. Tātad, ja jūs apskatīt to, ko man, es likts / n tur, bet man bija nepareizi slīpsvītra. Viss, ka jūsu dators Vai ir ļoti skaidri. LABI? Viena maza kļūda no pieturzīmēm, un pēkšņi jums nav iegūt to, ko jūs vēlaties. Viss kārtībā. Tātad pieņemsim tuvinātu atpakaļ vēlreiz. Mēs iet atpakaļ. Nu darīt, ka ļoti ātri remonts. Mēs nodot pareizo slīpsvītra. Mēs to saglabāt. Mēs tuvinātu atpakaļ. Kādu iemeslu dēļ, tas nav ir laimīgs, bet iesim uz priekšu un mēs iesim atpakaļ uz terminālu šeit. Notīriet to uz augšu. Mēs tuvinātu. Un vēl vienu reizi, mēs veiksim zaķi. Un tagad tik tiešām, tas darbojas. Urā. LABI. Tātad pieņemsim mēģināt padarīt šo nedaudz vairāk vispār. Let 's redzēt, ja tā vietā, lai vienkārši drukājot vienu konkrētu rāmi, pieņemsim redzēt, ja mēs varam padarīt šo lai mēs varētu saņemt visus 10 Šo animācijas rāmji ka mēs vēlējāmies, lai būtu. Tātad vēlreiz, pieņemsim šo soli laikā. Pieņemsim vispirms vispārināt to, kas nav tāpēc, ka man visu rāmji, bet lai man kāds rāmis, ka es varētu vēlēties. Tātad, kāda ir atšķirība starp rāmjiem? Vai zaķis pats? Mērķauditorija: Jā. BRIAN SCASSELLATI: Jā. Kāda atšķirība? Mērķauditorija: Amats. BRIAN SCASSELLATI: Savu nostāju, vai ne? Un kā es varu kontrolēt savu nostāju? Cik punkti es esmu liekot sākumā un cik punkti es esmu liekot beigās. Tāpēc man bija pieci pie sākas un pieci beigās. Pieņemsim aizstāt, ka pieci ar cilpas. LABI. Un es esmu gatavojas, lai izveidotu par cilpa Tagad tas ir gatavojas teikt, Es esmu gatavojas drukāt kādu numuru no punkti sākumā. Es esmu gatavojas izmantot mainīgo. Teiksim, kā par I skaitītājs manā cilpa. Un es esmu gatavojas pasludināt to top. Un tad uz cilpas Man vajag darīt trīs lietas. Pirmā lieta, ko es jādara ir man ir nepieciešams, lai sāktu i. Kas man būtu inicializēt to, lai sāktu, lai būtu? 0. LABI. Tad man jāsaka, kas ir izbeigšanu stāvoklis? Kad man vajadzētu pārtraukt? Nu cik punkti do you vēlaties drukāt uz šo vienu? Mērķauditorija: Five. BRIAN SCASSELLATI: Five atkal? Kā par pieņemsim kaut do atšķirīgs, mēs darījām pieci. Pieņemsim, liecina, ka tas ir atšķirīgs. SPEAKER 22: Two. BRIAN SCASSELLATI: Two. LABI. Tātad, ja es gribu divus punktus, ko man vajadzētu likt šeit? Mērķauditorija: Three. BRIAN SCASSELLATI: Three. LABI. Cik reizes ir tas, ka gatavojas iet cauri? Tas notiek, lai iet cauri trīs reizes, 0, 1 un 2, vai ne? Labi, iesim atpakaļ uz diviem. Tagad mēs iegūtu divas punktus. Un ko darīt, es gribu darīt katru reizi, kad es iet caur cilpu? Kas ir jāmaina Katru reizi, kad es iet cauri? SPEAKER 23: Pievienot dot. BRIAN SCASSELLATI: Man ir, lai saglabātu turpinās. Es esmu gatavojas pievienot dot. Es esmu gatavojas izdrukāt dot, katru reizi caur cilpu. Bet kā es sekotu tam, kā daudzas reizes esmu bijis ar cilpu? Es esmu, izmantojot i, ka mainīgs, ka skaitītājs. Tāpēc katru reizi cauri, es eju pieauguma skaitītāju pa vienam. Tagad, tas ir pats par man kā sakot, i = i + 1. Tas ir labi. Es varētu darīt to that-- man patīk saīsināts, tāpēc es esmu gatavojas teikt i ++. LABI. Darīsim to pašu lejā šeit apakšā. Tikai es veida darīju, ka viens. Es esmu gatavojas let jūs guys darīt šo vienu pilnīgi. Viss kārtībā. Tātad, ko man vajadzētu rakstīt šeit? Te ir mana cilpas. Es esmu gatavojas darīt printf (), un es esmu gatavojas to darīt tā, lai es tikai drukāt viens punkts par šo apakšā. Ko man vajadzētu rakstīt iekšā šis cilpa tagad? Nu, pirmkārt, to, mainīgie man vajadzētu izmantot? SPEAKER 24: j. BRIAN SCASSELLATI: Es varētu izmantot j. Vai es varu izmantot to pašu vienu? Vai es varu izmantot i atkal? Jā. Tas ir OK, jo IS ka es esmu, izmantojot šeit, Man nav nepieciešams tos vēlreiz, kad Man jāķeras pie šī punkta. Tātad, ko es būtu sāktu i? SPEAKER 25: 10. BRIAN SCASSELLATI: 0. Ko man vajadzētu pārbaudīt? Cik punkti darīt tagad man vajag beigās ja man divus punktus sākumā? Man vajag astoņus beigās, lai to, ko Es būtu jāpārbauda, ​​i mazāk than-- Mērķauditorija: septiņi, astoņi, deviņi. BRIAN SCASSELLATI: Es dzirdēju septiņi. Es dzirdēju astoņi. Un es dzirdēju deviņi. LABI. Tātad mēs visi esam labi ball-- Jason saka 10. LABI. Ja man vajadzēja divus punktus par pirmais, cik daudz darīt I-- un man vajag astoņus punktus, lai pēdējais one-- man likt divas augšā, ko man vajadzētu nolikt zemāk? Mērķauditorija: Eight. BRIAN SCASSELLATI: Eight. Jo tas notiek, lai rēķināties nulli caur septiņiem. Un tas ir astoņas reizes caur cilpu. LABI. Un kas man ir jādara beigās? Mērķauditorija: i ++. BRIAN SCASSELLATI: i ++. Viss kārtībā. Tā, ka meklē diezgan labi tur. Pamēģināsim to un redzēsim, ko tā dara. LABI. Tātad mēs ejam, lai to saglabātu. Jauka un saglabāts. Mēs tālinātu. Mēs mēģināsim šeit terminālī. Mēs tuvinātu. Hmm. Mēs, vēl vienu reizi, padara mūsu zaķa programmu. Un iet uz priekšu un izpildīt zaķi. Un tur tas ir. Tātad tur ir mūsu bunny. Kur tas ir divi punkti sākumā un astoņi punkti out beigās. Ikviens joprojām ir ar mani? LABI. Tādēļ mēs izveidojām to uz augšu. Mēs būvēts viens zaķis, viena konkrēta rāmis. Tagad mēs esam spējuši vispārināt, ka, lai veidotu vairāk, dažādi rāmji. Tagad iesim uz priekšu, un ir tas rada ne tikai viens rāmis, bet pieņemsim radīt 10 rāmji, kur mēs lēnām padarīt zaķis pārvietot visus ceļš pa lauku. Viss kārtībā. Iesim atpakaļ. Un mēs cenšamies tagad. Tātad, ko es tiešām ir nepieciešams, lai mainītu šeit? Kas man ir nepieciešams, lai mainītu? SPEAKER 26: Jums vispirms ir nepieciešams, lai mainīt skaitu Dots maksimāli sākumā. Jo, ja mēs darām 10 punkti, tas notiek, ir nepieciešams, lai līdz mērogā. BRIAN SCASSELLATI: Jā. Tāpēc tagad man ir tā veida hardwired to vienmēr darīt divas punktiņi sākumā un vienmēr darīt astoņus punktus beigās. Es gribu, lai izveidotu vēl vienu cilpu, vai ne? Jo es negribu uzbūvēt tikai vienu zaķa attēlu, Es gribu, lai izveidotu 10 bunny attēlus. Tāpēc man ir nepieciešams, lai izveidotu vēl vienu cilpu, un kā es iet caur šo cilpu, Es vēlos mainīt cik punktiņi es drukāt sākumā un cik punkti es izdrukāt beigās, balstoties uz kuru ciklu caur cilpu Esmu iekšā. Viss kārtībā. Tātad, pieņemsim saņemt citu skaitītāju. Kāds ir pirms teica j, tāpēc mēs veikt vēl vienu j. Un tagad, mēs ejam, lai būvēt otru cilpu. Kas iet iekšā, ka cilpa? Šī stuff ir iet iekšpusē cilpa, vai ne? Vai zaķis ir iet iekšā cilpa? Vai man ir nepieciešams Bunny katru no šiem 10 kadriem? Mērķauditorija: Uh-huh. BRIAN SCASSELLATI: Jā. Es gribu zaķis katrā no 10 kadriem, vai ne? Kā par punktiem, pie beigām, man ir nepieciešams, ka? LABI. Tāpēc es esmu gatavojas, lai izveidotu atkāpi tiem visiem. Es esmu gatavojas, lai izceltu visas tas, un es esmu gatavojas hit Tab. Un kas notiek, lai push tos visā mazliet, tāpēc, ka tas ir viegli man lai redzētu, kas ir cilpa. Un tad es galu to. Teiksim. LABI? Tagad, šajā cilpa, kas Es esmu building-- Whoops, darīt, ka, lai jūs varētu see-- Man manu counter j. Es sāku to 0. Cik reizes es gribu iet caur šo cilpu? Mērķauditorija: 10 reizes. BRIAN SCASSELLATI: 10 reizes. Tātad, ko numurs man būtu jāliek šeit? Mērķauditorija: 9, 10. BRIAN SCASSELLATI: 9, 10, kāds ir nokļuvis teikt 11, vai ne? Es gribēju divus punktus pirms un likt es mazāk nekā 2. Es gribēju astoņi punkti, Man i mazāk nekā 8. Tagad es gribu iet cauri 10 reizes, tāpēc man j mazāk than-- Mērķauditorija: 10. BRIAN SCASSELLATI: 10. Tur mēs ejam. Un ko man darīt beigās līdz j? ++, Pieauguma to. LABI. Tagad šeit ir grūts daļa, kas ir notiks tieši tagad, ja man darīt? Es esmu gatavojas drukāt 10 kadriem? SPEAKER 27: Es domāju, ka tie būs visi ir vienādi. BRIAN SCASSELLATI: tie būs visi būt vienādi, vai ne? Jo visi no tiem joprojām turpinās likt divus punktus sākumā. Bet es nevēlos tos visus ir divi punkti sākums. Cik punkti man gribu sākumā? Mērķauditorija: Mainot. BRIAN SCASSELLATI: I vēlaties to mainīt, vai ne? Tātad, ko man ir šeit, ka ir mainot Katru reizi, kad cilpa iet cauri? Mērķauditorija: skaits punkti, j. BRIAN SCASSELLATI: j, skaits punktiem. Lai es varētu mainīt tas ir j. Pirmo reizi izmantojot cilpa, to, kas tas būs? Ko es varu iestatīt J, lai sākumā? Mērķauditorija: 0. BRIAN SCASSELLATI: Tik, cik daudz reizes es gatavojas darīt? 0. Otro reizi caur cilpu, j s būs 1, jo es to pieauguma. Cik punkti man gatavojas drukāt? 1. Trešo reizi caur cilpu, cik punkti man iet, lai drukātu? Mērķauditorija: Three. BRIAN SCASSELLATI: j būs 3. Cik punkti man gatavojas drukāt? Ak, piedodiet, j būs 2. Cik punkti man gatavojas drukāt? Mērķauditorija: 2. BRIAN SCASSELLATI: 2. Labi, tāpēc es esmu gatavojas glabāt palielināšanai, ka mēs ejam līdzi. Kā par lejā? Kas iet uz leju šeit? Es negribu 8 vienmēr beigās vairs? SPEAKER 28: 10. BRIAN SCASSELLATI: Es gribu 10 punktus? Es gribu to mainīt, too. Tātad, kā es gribu to mainīt? Mērķauditorija: [nedzirdama]. BRIAN SCASSELLATI: Nu, ja es ir piecas punktiņi sākumā, cik daudz dot s es varu nokļūt beigās? Mērķauditorija: Five. BRIAN SCASSELLATI: Ja man ir seši punkti sākumā, cik es varu saņemt beigās? Mērķauditorija: Four. BRIAN SCASSELLATI: Ja es saņēmu septiņi punkti sākumā, cik es varu saņemt beigās? Mērķauditorija: Three. BRIAN SCASSELLATI: Ja es esmu got j punkti sākumā, cik es varu saņemt beigās? 10-j. LABI. Tātad pamēģināsim ka out. Tāpēc es esmu gatavojas, lai saglabātu mūsu bunny programmu. Vēlreiz mēs attālinātu. Mēs iet uz leju, lai mūsu termināli. Mēs to iztīrītu. Un tuvinātu. Mēs padara mūsu zaķa programmu, vēlreiz. Un mēs to izpildītu. Uh-oh. Turies, pieņemsim zoom out. Vai es varu saņemt 10 kadriem? Nu, kā daudzi zaķi Vai es redzu tur? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Man 10 kadriem. Vai tie visi vienādi? Mērķauditorija: Jā. Nē. BRIAN SCASSELLATI: Nē. Tas pirmais, tad bunny ir tālu pa kreisi. Un vairāk nekā šeit, zaķis ir tālu no SPEAKER 29: Right. BRIAN SCASSELLATI: Tātad, Ko es aizmirst to darīt? SPEAKER 30: Sākt jaunu rindu. BRIAN SCASSELLATI: Es aizmirsu lai sāktu jaunu rindu, atkal. Same kļūda es pirms tam. Labi, iesim noteikt, ka. Tagad, es esmu vēl got kodu tur veikt jaunu līniju. Kāpēc tas darbojas? SPEAKER 31: Tas nav iekšā cilpa. BRIAN SCASSELLATI: Ak, tas nav iekšā cilpa. Tas ir labi. Tas sēž ārpus šeit. Un cilpa ir viss kas ir iekšā šī teksta. Tāpēc es esmu gatavojas pārcelties šis iekšpusē cilpas. Un es ņemšu Tab tā priekšā uz liecina, ka tas ir īstajā vietā. Un tagad, mēs saglabāsim to vēlreiz. Mēs zoom out. Mēs pārslēgties uz mūsu termināli. Pietuvināt. Mēs pārtaisīt mūsu zaķa programmu. Un tagad, tagad mēs esam ieguvuši mūsu 10 kadrus. [Clapping] BRIAN SCASSELLATI: OK. So. Te ir mūsu ligzdot uz cilpas. Mums bija iespēja radīt In iekšējais cilpa cik punkti es gribēju drukāt sākumā, beigās. Un ārējā cilpa kontrolēta cik kadri man bija ēkas. Mēs sākām ar vienu mazu kodola problēmas, un mēs izveidojām ārā no šīs vietas. Viss kārtībā. Darīsim vēl vienu soli. Esat gatavi? Tur ir viena lieta šeit, kur mēs esam faktiski veida got vairāk sarežģītība nekā mums vajag. Pieņemsim to apskatīt. Tātad mūsu zaķa programmā, ja es zoom out šeit, Es faktiski darīt dažas pats lieta atkal un atkal. Ko man darīt, ka ir sava veida tas pats atkārtojas divreiz? SPEAKER 32: Print punktus. BRIAN SCASSELLATI: Yeah Es izdrukāt šos punktus divreiz. Tiešām, es būtu šis komentārs leju šeit. Es drukāt dažus punktus pie sākuma, līdz pat šeit. Un tad es drukāt dažus punktus beigās. Un es veida tieši to pašu. Ko mēs ejam, lai sāktu strādā tuvākajās nedēļās ir spēja veikt šos blokus kods, kas mēs izmantojam atkal un atkal, un izmantojot procesu sauc abstrakcija, mēs ejam, lai vilktu ārā un rakstīt vienu reizi, lai mēs varētu pēc tam tos atkārtoti izmantot atkal un atkal. Tātad pamēģināsim to. Ready? Mēs ejam, lai šo bloku kodu. Un es esmu gatavojas ņemt to no turienes ārā. Un es esmu gatavojas define-- leju apakšā, Es esmu gatavojas rakstīt jaunu funkciju. Tas nav gatavojas atgriezties neko. Un es esmu gatavojas, lai izsauktu to printDots. Tas gatavojas veikt vienu arguments, vesels skaitlis, kas saka howManyDots man vajadzētu drukāt. Un tagad tā vietā, drukāšanas j punkti, es ņemšu izdrukāt pateikt howManyDots man vajadzētu drukāt. Un tur ir viena maza problēma šeit. Ikviens zina, kas tas ir? Kas man ir, kas ir uzskaitīti šeit tas nav noteikts? Mērķauditorija: [dzirdams] BRIAN SCASSELLATI: Nu cik daudzi punkti definē tiesības uz augšu šeit, bet es esmu, izmantojot šo mainīgo i. Tāpēc es esmu gatavojas pieņemt, ka mainīgo i un es esmu gatavojas noteikt to uz leju šeit vietā. Tāpēc tagad tas notiek uz stay-- Ups, Got Caps Lock uz somehow-- es esmu gatavojas glabāt i noteikti šeit. Tāpēc tagad šeit ir mana maz funkcija vai sub-rutīnas, un tā saka, cik punkti man iet, lai drukātu? Un tas būs iet caur šo cilpu un drukāt tos atkal un atkal. Es pēc tam var mainīt savu programmu šeit. Un ko es saucu, ka funkcija? printDots. Tāpēc es aicinu printDots. Cik punkti vēlos drukāt Pirmo reizi pirms zaķis? Mērķauditorija: j. BRIAN SCASSELLATI: j. Cik punkti vēlos drukāt beigās, pēc tam, kad zaķis? 10-j. Un tur ir viena lieta, ko es esmu pazudis. Kā redzējāt lekciju šodien, mēs spēsim atzīt printDots augšas dot prototipu. LABI. Tātad, ko es esmu darījusi, ir es esmu mēģinājis izolēt ka izmantot atkārtoti daļu koda ka es esmu darījusi atkal un atkal. Un es esmu mēģinājis to izraut to ārā, lai visi kas ir ietverts vienā vietā. Tādā veidā, ja man ir kļūda kaut kur, Man ir tikai noteikt to vienā vietā. Viss kārtībā. Tātad, pieņemsim to saglabāt. Un pieņemsim, pārliecinieties, ka tā darbojas. So iesim ārā. Mēs iet atkal uz mūsu termināli. Mēs tuvinātu. Mēs padarīt šo zaķa procesu. Oh. Un tas ir devis man brīdinājumu. Kas tas ir spēcīgi mani? Nu kāds no šiem reizes, jūs vienmēr vēlaties lai ritinātu līdz ļoti pirmo error-- Tagad par šo vienu, es esmu tikai ieguvuši vienu. Tā stāsta mani bunny.c, on line 8, 9 kolonna, tur ir problēma. Tajā teikts, esat pasludināts šis mainīgo i un neesat to izmanto. Tagad normāli, tas ir nav sliktākais kļūda. Tas ir viegli vienu noteikt. Un patiesībā, mēs varam doties atpakaļ. Mēs varam doties atpakaļ uz bunny. Un, šajā gadījumā, visi mēs ir jādara, ir atbrīvoties no i, jo mēs nelietojat i ietvaros galvenais vairs. Mēs esam tikai to izmanto mūsu apakšgrupas rutīnas. Tātad, pieņemsim, ka izglābt. Mēs iet atpakaļ. Un tuvinātu. Mēs vēl vienu reizi padarīt zaķi. Un tur atkal ir mūsu 10 kadri. LABI. Jebkurā laikā jūs esat dota procedure-- Jā. SPEAKER 33: Man ir a-- es esmu apjucis. Vai jūs varat doties atpakaļ uz kodu? BRIAN SCASSELLATI: Yep. SPEAKER 33: Tātad, kad jūs rakstījāt Jūsu prototips, arguments jums bija tas nosaukts sauca howmany? Bet, below-- BRIAN SCASSELLATI: Ak jā. SPEAKER 33: --called viņiem kaut ko atšķirīgs, es nesaprotu. BRIAN SCASSELLATI: Kāpēc tie atšķiras. Tātad tas ir liels jautājums. Tātad jautājums bija, up šeit, es uzrakstīju howmany, un lejā, es uzrakstīju howManyDots. Iemesls ir tas, ka līdz jūsu prototipu, tas tiešām nepievērš uzmanību nosaukumiem, ka jūs ieviešot. Viss, kas tiešām rūpējas par ka tas ir vesels skaitlis. Tā vēlas zināt formu par to, ko jūs liekot. Tagad stylistically-- oops-- ko man vajadzētu es, ir man patīk, lai šos maču. LABI. Jo tas būs saglabāt to vieglāk man atcerēties. Bet tas bija mana kļūda Jā. SPEAKER 34: Un tā, lai prototips uz darbu, vienkārši rakstot šo līniju, rakstiski prototips, pieļauj, ka funkciju, kas nāk tieši zem tās iet uz beigām un paņemt to, ko tas nozīmē? BRIAN SCASSELLATI: Ko tas nozīmē ir tad, kad kompilators iet cauri, tā iet no augšas Jūsu kods uz leju. Un kas tas ir prototips, tas būtībā solījums. Tajā teikts, ka būs funkcija noteikta kaut kur. Tas būs saukt printDots. Un tas notiek, lai vienu argumentu ka būs vesels skaitlis un tas notiek, lai atgrieztos nekas, spēkā neesošu tips. LABI. Es apsolu jums tas būs definēts kaut kur pa ceļu. Bet jebkurā laikā jūs redzat ka, kā jūs iet uz leju ar pārējo manu galvenā funkcija, es gribu tu, lai ārstētu, ka kā funkcija kas aizņem vienu veselu ievadi. Un tad, kad kompilators iet uz leju ar šo, tas redz šo solījumu. Un, kad tas izpaužas uz leju, tur iet, tur notiek, tā konstatē pirmo reizi ir minēts printDots. Un tā saka, Ak, jūs dodot man tas j. j ir vesels skaitlis. Nu tu man apsolīja, ka būtu ir vesels skaitlis un tas ir labi. Tas ir labi. Un tad visbeidzot, uz leju pašā apakšā, Pirms es nokļūt līdz beigām mans failu, es veicu labi par manu solījumu un es definēt. LABI? SPEAKER 35: Tātad, tas saves-- Programma ļaus ietaupīt tukšas vietas ka tā iet atpakaļ un aizpilda beigās? BRIAN SCASSELLATI: Tas nav par atmiņas sadalījumu. Tas ir tiešām tikai par to, ko tipa tu gaidījis redzēt. Ja šī lieta ir viens arguments, vai pieci argumenti? Ja ir tas vesels skaitlis būt dota tā, vai stīgām? Tas ir viss, tas meklē to darīt, ir, lai pārbaudītu, tu dod man tiesības veida argumentu. LABI? Viss kārtībā. Ļaujiet man atstāt jūs ar viens otru mazliet apskatīt. ASCII māksla nav liels modelis animācijas, kā tas ir šodien. Bet daži protams cilvēki veikt lietas un viņi push to saviem galējībām. Tas ir, kā David pierādīja lekciju, gabals koda ka jums vajadzētu nekādos apstākļos mēģināt atkārtot sevi. Jo tas ir briesmīgi stilistiski. Faktiski, tas ir paredzēts, lai būtu par grūti, kā iespējams izlasīt. LABI. Tātad, ko darīt atkal, pieņemsim tuvinātu šeit. Es iešu tagad, mainīt direktoriju. Es esmu gatavojas iet uz augšu vienu līmenis, atpakaļ uz manu darba vietu. Es tad mainīt direktoriju uz šo cits katalogs, kas es esmu izveidojis. Un tas ir Starptautiskā Obfuscated C Programming Contest. Obfuscated līdzekļus kā cietā kā iespējams saprast. Tāpēc, lūdzu, nav bail, ja paskatās šajā un iet, es nevaru izlasīt to. Tas ir punkts par to. LABI? Bet mums ir šis lieliska programma, kas es esmu skatīsies, tikai ierakstot vairāk. Un pieņemsim redzēt, ja es varētu zoom out tikai mazliet, lai jūs varētu redzēt to Un tas ir programma. Tas ir nosaukts endo.c. Un izskatās, ka šī spainis ar veida burtiem F-L-U-I-D tajā. Tas ir faktiski programma. Tas ir rakstīts visvairāk neskaidra tā, ka autori, iespējams, būtu rakstīt to. Bet tas ir brīnišķīgi maz gabals, kas rada modeli šķidruma dinamiku. Un tā mēs spēsim dot ka modelis ievades ka izskatās, kādas staired noteikt konteineru ar kādu šķidrumu, daži šķidrums, augšā. Un mums būs tas simulēt kas notiek ar to. Tāpēc es saukšu šo funkciju, endo. Un es došu to, ka ievades fails, kas man bija. Un tur ir mūsu izvilkums no ASCII art. Pilnu šķidrums dinamisks simulators darbojas tikai dažas rindiņas kodu. Tagad to, kas ir tiešām ļoti pārsteidzošs par šo mazo programmu ir tas, ka es gribu, lai apturētu to tagad, tāpēc es esmu gatavojas izmantot to, ko komanda? Mērķauditorija: Control-C. BRIAN SCASSELLATI: Control-C. LABI. Tāpēc es ņemšu izmantot Control-C. C Ka būs apturēt. Es skaidrs vēlreiz. Un tagad es esmu gatavojas atsaukties programma, izpildīt programmu, izmantojot sevi kā priekšnodokli. Un mēs redzēsim šķidruma dinamiku simulācija no tā kūst. LABI. Lūdzu, neļaujiet, ka programma būt lieta, kas jauc jums. Tas ir tikai, lai mēs varētu beigsies kaut kas foršs un interesants. LABI. Best of luck ar savu problēmu kopu. Mēs būsim priecīgi atbildēt Jautājumi pēc klases. Thanks daudz, puiši.