[Mūzikas atskaņošanas] DAVID Malan: Nu labi. Laipni lūdzam atpakaļ. Tas ir CS50, un tas ir Week One, Turpinājums. Tātad viens no iemesliem, kāpēc mēs esam garām ap tehnoloģijām, piemēram, Google Stikls ir, ka tie nāk ar kaut kas pazīstams kā API, Application Programming Interface. Un ko tas nozīmē, ka ar tiesības failus un ar tiesībām dokumentāciju, jūs faktiski var rakstīt Programmatūra pat ierīcēm, piemēram, šo. Un tā, kas mums ir prātā pret semestri gals ir, ja projekts iesaistot, piemēram, Google Glass varētu apelācija, mēs redzēsim, ko mēs varam darīt noteikumi hooking jums uz augšu ar kādu Aizdotai aparatūras, kā arī publiski pieejamu API, lai jūs varētu faktiski sākt veidot programmatūru , kas darbojas tajā pašā Google Glass. Vēl viena ierīce, kas mēs esam spēlē ar par vēlu, ka mēs domājam, varētu būt jautri semestra beigās ir tas maz lieta šeit. To sauc lēciens Motion, un ko jūs esat par to, lai redzētu, ir tehniski reklāma ierīces, bet tas tas runā, ko tas īpaši Ierīce ir spējīga. Un tā arī nāk ar API, izmantojot ko jūs varat rakstīt programmatūru, lai kontrolēt savu datoru tādā veidā, ļoti patīk šī vienas minūtes filmu šeit. [VIDEO PLAYBACK] [END VIDEO PLAYBACK] Tāpēc tieši tagad, šī ierīce notiek jāīsteno kā maz USB savienotājs, ka jūs varat kontaktdakšu jūsu dators, bet es nebūtu pārsteigts ja pirms ilgi mums ir šāda veida tehnoloģijas nākamo grupu datoriem un Mac, lai jūs varētu, protams, mijiedarboties ar to veidā, piemēram, ka. Patiesībā, ko es domāju, ka es gribētu darīt, arī ir Man velk uz augšu mazliet demonstrāciju programmu, kas nāk ar šo programmatūru. Tāpēc es esmu likts maz sensoru priekšā manu klēpjdators. Un, kā jūs varat redzēt, tas jau saprot ka manas rokas ir tur to kontrolē. Un viss šis pieteikums nav ir swimmingly maz lietas, kā šis. Bet jūs varat redzēt, ka, protams, Man ir pieci pirksti tur. Ja mēs varam iegūt to darīt visus 10, Jūs varat iedomāties, veikls klavieres pieteikums vai tamlīdzīgi. Tātad, ja jūs vēlaties nākt klajā pēc klases šodien un spēlēt ar to, kā labi, jūs esat laipni aicināti. Tātad vairāk par to uz semestra beigām. Tātad pāris administratīvās paziņojumi. Viens, do sadaļu, piektdienu pusdienlaikā pie cs60.net/section. Šis URL ir par kursu ir mājas lapā, kā arī. Pa to laiku, lai gan, supersections būs debija šo svētdien. Supersections ir vienu reizi lieta, jo tas aizņem mums kādu laiku, lai strādātu , kurš ir, kurā sadaļā un kur. Tātad šo nāk svētdiena, tur būs viens sadaļā tiem mazāk apmierināti, viena sadaļa tiem, ērtāku. Un tiem no jums kaut kur starpā ir laipni aicināti doties uz viena vai abas, vai ne. Abi šie tiks filmētas. Tie būs lielākā auditorija, nekā daļa, kas parasti būtu iekšā Bet mērķis šeit ir, lai aprīkot jūs ar daži ar problēmu komfortu iestatīt vienu, ar C, ar CS50 ierīces, šā nedēļas nogalē, pat pirms jūs uzzināt savu formāla sekcijām. Tātad tu sastapsi savu TF, un jūsu mazāku grupa no sectionmates in par nedēļas laikā. Darba laiks, tikmēr, ir iet tālāk. Vai izmantot no tiem šovakar vai rītvakar, ja vēlaties. Problēma komplekts 0 ir saistīts piektdien. Šī ir diena vēlāk nekā regulāri ieplānotais ceturtdien. Bet ar problēmu kopumu 1, jūs redzēsiet ka tas ietver daži warm-up vingrinājumi, ar kuru tu pats varat paplašināt savu Ceturtdiena termiņu līdz piektdienai. Problēma komplekts 1, tikmēr būs debija par kursu mājas lapā tas nāk Piektdiena, ja jūs vēlaties, lai čokurošanās klajā ar tā kā es reiz vēlu Piektdienas vakarā savā istabā. Tātad cs50.net/appliance ir vieta, kur Jūs varat saņemt CS50 ierīci ka mēs sākām izmantot pirmdien. Mēs to izmantot nedaudz vairāk šodien. Bet esiet droši, ka problēma noteikti 1 specifikācija būs staigāt jums caur precīzi soļi jums , lai iegūtu, ka izveidota un darbojas. Tāpēc nav jāuztraucas par darot, ka pirms PSET 1, ja jūs nevēlaties. Labi. Tāpēc mēs skatījāmies pirmdien pie pirmkodu, bet saistībā ar jaunu programmēšanas valoda, proti, C un C, atšķirībā no nulles, nav grafiskā. Tas nav puzzle gabalus. Tas ir vairāk angliski, piemēram, sintakse. Un tur ir soļi pāris faktiski rakstot un darbojas programma C, jo bez avota kods, kā šis, jums ir nepieciešams kaut sauc kompilatoru. Un lajs izteiksmē, ko tas kompilators darīt mums? Jā. STUDENTU: Tā pārvērš kodu kas jums rakstīt 0s un 1s. DAVID Malan: Labi. Tātad, tas pārvērš kodu, kas mēs rakstām, lai 0s un 1s. Tas pārveido tā saukto pirmkodu objekts kods, kura gan izskatās mazliet kaut kas līdzīgs šim. Un tas ir jūsu CPU, smadzenes iekšpusē dators, ka sakarā ar cilvēki, kas izveidoja šos datorus, zināt, kādi ir šie secības no 0s un 1s nozīmē. Varbūt tas nozīmē izdrukāt. Varbūt tas nozīmē papildus. Varbūt tas nozīmē atņemšanu. Varbūt tas nozīmē parādīt grafikas. Ir iepriekš modeļi bitiem ka pasaule ir nolēmusi nozīmēt dažas lietas. Bet lielākā daļa šajā kursā, mēs darbu augstākā līmenī, un mēs uzskatām par pašsaprotamu, ka pastāv lietas, piemēram kompilatoru, kas var padara mūsu pirmkoda funkciju tādā veidā mēs plānojam. Tāpēc programmā mēs rakstījām pirmo reizi pagājušajā nedēļā un tad sāka ostu, tāpēc, lai sakot, C pagājušā Pirmdiena, bija šī. Kad zaļo karogu uzklikšķināt, sasveicināties. Tas bija, protams, rakstīts nulles. Un es apgalvoja, ka ekvivalents programma C izskatījās nedaudz kaut kas līdzīgs šim. Tātad, ko es domāju, ka mēs gribētu darīt vispirms, ir, pieņemsim kaitināt izņemot to, kas izskatās, sākumā skatienu, protams, jo diezgan mistiskā sintakse, bet jūs sākat pamanīt modeļiem diezgan ātri. Ko mēs arī darīt šodien, ir sniegt Jūs ar garīgās modeli dažiem kanonisko, daži standarta konstrukcijas programmēšanā. Un tad mēs tiešām saņemtu mūsu rokās netīrs ar dažiem piemēriem, kā arī. Tātad tiem no jums ērtāk, saprast, ka šonedēļ, un tad nākamajā nedēļā, var ļoti labi būt mazliet pārskatīšanu. Bet, jo īpaši, ja hakeris valodā Problēmas komplekts 1 nodziest Protams Mājas piektdien, es domāju, Jūs atradīsiet, ka pat, kā jūs aizpildīt dažas sagataves, nākamo nedēļu vai divas, jūs sākat, lai iegūtu arvien vairāk apstrīdēt un sastopas jaunas un jaunāku lietas. Tātad, pieņemsim kaitināt šo programmu intervālu dažas rindiņas laikā. Tajā pašā augšā, mēs esam to, kas ir tehniski sauc apstrādātāju direktīva. Tas ir tikai līnija kods, kas saka: iekļaut faila saturu, saukts par standarta I / N, standarta ieejas - vai, piedodiet, standarta I / O, standarta ieejas / izejas,. h, iekšpusē manas programmas. Tātad, citiem vārdiem sakot, ja es to rakstīju Programma ar vienkāršu teksta redaktoru, piemēram, gedit, vienkāršāku ekvivalents kaut kas, piemēram, Microsoft Word, ka norādījums, # ietvert stdio.h, ir tikai gatavojas pateikt kompilators, paķert saturu šīs citas lietas, stdio.h, un ielīmēt tos tieši šeit. Tagad, kāpēc es aprūpi? Ko mēs apgalvojam ir iekšā šo failu sauc stdio.h, kas tiek glabāti kaut kur uz manu cieto disku, vai šajā gadījumā, kaut kur CS50 ierīces? Kāds cits likt to tur par mani. Bet to, kas ir tā? Jā, tāpēc tas ir deklarācija funkciju sauc printf. Tātad printf atgādina funkcija, kas displeji vārdi un burti un numurus uz ekrāna manu cenu. Bet man nav rakstīt to. CS50 nav rakstīt to. Kāds gadus atpakaļ uzrakstīju, un tie būtībā deva mums recepti par to failā ar nosaukumu stdio.h. Tā, ka pirmā līnija tikai dod man piekļūt funkcijām, ka kāds cits rakstīja gadiem, vidū , kas ir printf. Tagad, nākamais rindā es esmu gatavojas vilnis Mani roku pie, vismaz līdz brīdim, kad nākamajā nedēļā. Bet tagad zinu, ka int galvenais (spēkā neesošs) ir būtībā ir ekvivalents šīs dzeltena puzzle gabals, kad zaļo karogu uzklikšķināt. Pasaule, gadus atpakaļ, nolēma, ka gadījumā, ja jūs esat rakstiski programmu valoda sauc par C, sākat jūsu programma ar līniju kas izskatās tāpat. Tikai aptuveni nedēļas laikā, tas būs padarīt sajūtu, kas int ir, kas par spēkā neesošu ir. Bet tagad, tikai domā par to kā šo dzelteno puzzle gabals. Tagad nākamais, mums ir cirtaini lencēm seko cita cieši cirtaini lencēm, tā runāt. Un mēs redzēsim šos visā programmas C, kā arī JavaScript un PHP. Un šie tikai rezumēju saistītās rindas kodu. Atvērta cirtaini lencēm būtībā saka, šeit nāk daži kodu. Un slēgta cirtaini lencēm, kas ir leņķveida citā virzienā, tikai nozīmē, ka ir tas, lai attiecīgo kodu. Tātad sulīgs līnija šajā vispirms Programma ir pēdējais, printf, kotēšana likt pēdiņas beigās, sveiki pasaule. Un es sauc lieta starp citātus, ko pēdējo reizi? Tātad, tas ir virkne. Un virkne ir tikai techie termins secību rakstzīmes, vārds, frāze. Pat vienu burtu varētu divkārt kotētas. Bet tas ir secība nulles vai vairākas rakstzīmes. Slīpsvītra-n, lai gan, izskatās mazliet dīvaini. Bet tas vienkārši nozīmē kaut ko vienkārši ar datoru. Kas ir Reversā slīpsvītra-n? Jaunā līnija. Tātad tas ir tikai īpaša secība zīmes, ka pasaule ir nolēmusi nozīmē likt rindiņas pārtraukumu labi tur, jo kompilators faktiski nokļūt sajaukt, parasti, ja jums ir ļoti saprotams, bet nepareizi, vienkārši sākt hitting Enter likt jaunas līnijas jūsu kodu. Jums ir nepieciešams, lai būtu nedaudz vairāk skaidri ar slīpsvītru-n. Un mēs redzēsim tur ir dažas citas tādas modeļu speciālās rakstzīmes. Piemēram, ja jūs vēlaties, lai ļautu jūsu prātā klīst uz stūra gadījumā pieņemsim, ka es gribēju drukāt dubultā quote uz ekrāna kādu iemeslu dēļ, kas, šķiet, būt nedaudz problemātiski, labi? Jo, ja man dubultu citējot vidū "Hello, world," lai kāda Iemesls, kāpēc tas šķiet potenciāli problemātiska? Tas saplīst virkni. Kompilators ir tikai programma. Kā kompilators programma ir tikai gatavojas lai lasītu savu kodu augšas uz apakšu, kreisās uz labo pusi. Un, ja redz trīs dubultās pēdiņas vietā divi, tas nav gatavojas zināt ja tu domā, ka lieta, pa kreisi vajadzētu būt virkne, vai lieta, lai labi, vai viss. Tas ir neskaidrs, un lai to, kas tipisks kompilators varētu darīt, ir tikai ķēms, un sniegt jums dažas kļūdas paziņojumu, un jums tikt galā ar šo problēmu. Tātad, ņemot vērā, ka slīpsvītra-n ir jauns līnija, kādi būtu jūsu instinkti tagad sākt, ja jūs vēlētos, lai iekļautu kaut anomālu kā dubultā quote iekšpusē šo citādi kotēto stīgu? Slīpsvītra-double quote. Un tā mēs redzam veida modeli too. Ja jūs vēlaties darīt kaut ko nedaudz dīvaini, jūs atradīsiet, ka risinājumi bieži vien seko modelis, un slīpsvītru apzīmē evakuācijas secību. Un tas tikai nozīmē kaut ko īpašu ka mums ir nepieciešams, lai pārstāvētu citādā veidā. Attiecībā uz to, kā jūs pārstāvēt slīpsvītru, labi, mēs nāk atpakaļ uz to. Bet atbilde, arī faktiski mazliet acīmredzama. Tātad, pieņemsim tagad ieviest kādu citu programmēšanas konstrukcijas ka jūs redzēju nulles. Jūs esat droši vien par pašsaprotamu jau ir, ja jūs esat jau ienira problēma noteikts 0. Bet pieņemsim tagad ieviest sintakse C par šiem citādi diezgan intuitīvi idejas, vismaz daži no tiem. Tātad šis nosacījums jēdziens vai filiāle, lai gan agrāk mums pārstāv to ar kodu, kas izskatījās piemēram, tas par kreisi Scratch - ja x ir mazāks nekā y, tad tā teikt - vietā tagad C - ļaujiet man trīt kas par Vienkāršākajā gadījumā - mēs esam tikai gatavojas teikt, ja, atveriet iekavas, kaut kas ir patiess - Būla izteiksme ir gatavojas iet kur es teicu stāvokli - aizvērt iekavas, tad to, kas ir iekšpusē no tiem cirtaini lencēm. Tātad arī šeit, cirtaini bikšturi ir veida, piemēram Scratch s U-veida puzzle gabalus. Vai to, kas ir iekšā šo cirtaini lencēm. Šajā gadījumā, slash slash. Un paziņojums, tas ir uz priekšu slash, nevis slīpsvītru. Slīpsvītra, slīpsvītra, par tiem, kas esam ieprogrammēts pirms, vienkārši nozīmē - tas ir tikai komentārs. Comment ir ne līnija koda, per se. Tā ir līnija angļu valodā, ka jūs, cilvēku, ir rakstīts uz sevi varbūt atgādināt jums kaut ko darīt, lai izskaidrot sevi, lai izskaidrotu kāds cits, kas jūsu kods dara. Tas ir tikai aprakstošs komentārs. Tagad, protams, mēs varam būt divvirzienu dakša uz ceļa, tikai darot to, trīsceļu dakša uz ceļa darot tas, un, ja jūs turpināt šo modelis, jums var būt četru veidu, piecu way, sešu ceļu dakšas ceļu, ja jums ir nepieciešams, lai apstrādātu, protams, ka daudzi apstākļi. Un tad paziņojums paralēlismu šeit - ja (nosacījums), cits ja (nosacījums), , un tikai viens, kas ir nedaudz dīvaini ir pēdējais, kas ir tikai, ka cits. Bet atkal, tas ir identisks, konceptuāli, to, ko mēs esam darījuši jau, kaut sintakse būs ņem mazliet kļūst izmantoti, lai. Tagad, šajā piemērā, ir daži citi dīvaini sintakse. Mēs redzam printf atkal atvērtu iekavu, un tuvu iekavas. Un iekšpusē ir kotētas virkne. Iekavas, saistībā gada printf, doties pa kreisi un labi, ko? Ko mēs aprakstīt, ka citēts stīgu plašākā mērogā? Tātad, tas ir arguments. Jebkurā laikā jums ir funkcija, piemēram, printf, un pēc tam atvērtu paren un cieša paren un kaut iekšpusē tas, vai tas ir string, vai vesels skaitlis, vai kaut kas cits, lieta starp tiem iekavas tiek saukta arguments. Un arguments tikai ietekmē Funkcija uzvedība. Šajā gadījumā, tas ir diezgan skaidrs, kā. x