1 00:00:00,000 --> 00:00:05,928 Bog, moje ime je Nick Parlante, a ovo je nastava o 2 00:00:05,928 --> 00:00:11,264 svojstvima računala. Kako ona funkcioniraju, što mogu, a što ne mogu raditi. 3 00:00:11,264 --> 00:00:17,096 Ne traži se nikakvo predznanje o računalima. Namijenjena je svima. Dakle prije 4 00:00:17,096 --> 00:00:21,950 nego što započnem, želio bih se, kratko, zahvaliti Google-u na podršci mojim ranim 5 00:00:21,950 --> 00:00:26,284 istraživanjima na ovu temu, koja su u konačnici pomogla u kreiranju ove nastave. Također 6 00:00:26,284 --> 00:00:31,023 kratka napomena o obliku. Nastava se ne sastoji samo od videa. Uz svako poglavlje videa 7 00:00:31,023 --> 00:00:35,530 postoji i neka vrsta pisanog dokumenta, kojeg ću listati, pomicati, na ekranu, koji 8 00:00:35,703 --> 00:00:40,037 prati izlaganje i sadrži dijagrame, primjere koda i slične stvari. 9 00:00:40,037 --> 00:00:44,718 Dakle, vi možete u bilo kojem trenutku prelaziti s videa na dokument 10 00:00:44,718 --> 00:00:49,904 ako želite ponovo pročitati obrazloženje ili isprobati neki primjer ili slično. 11 00:00:49,904 --> 00:00:55,757 Postoji velika razlika između gledanja kako ja nešto radim i pokušaja da to sami napravite. 12 00:00:55,757 --> 00:00:59,650 Moj savjet bi bio: Puno puta, na kraju poglavlja imati ćemo vježbe. 13 00:00:59,650 --> 00:01:02,952 Tada, prije nego što probate odraditi vježbe, odlučiti da li ste spremni 14 00:01:02,952 --> 00:01:06,558 odmah prijeći na vježbe ili se želite vratiti na 15 00:01:06,558 --> 00:01:10,077 dokument i malo sami eksperimentirati s primjerima da učvrstite 16 00:01:10,077 --> 00:01:13,684 svoje znanje. Tek toliko da znate da vam ta mogućnost stoji na raspolaganju za svako poglavlje. 17 00:01:13,684 --> 00:01:20,658 Rekao bih da je temeljna jednadžba računala: 18 00:01:20,658 --> 00:01:27,158 računalo je "moćno" plus "glupo". Moćno u smislu da računala mogu 19 00:01:27,158 --> 00:01:32,195 obaviti na milijarde operacija. Ona rade nezamislivo brzo. Ali, 20 00:01:32,195 --> 00:01:37,714 operacije su "glupe" u smislu da su operacije koje računalo izvodi 21 00:01:37,714 --> 00:01:43,096 u suštini vrlo jednostavne, one su potpuno mehaničke. One nemaju ništa što bi mi 22 00:01:43,096 --> 00:01:48,445 opisali kao inteligentni (čovjekov) uvid u to na čemu rade. Dakle ta čudna 23 00:01:48,445 --> 00:01:52,420 kombinacija, na neki način, velike moći kombinirane s nekom vrstom mehaničke 24 00:01:52,420 --> 00:01:57,191 ograničenosti (gluposti). Taj obrazac postati će kristalno jasan dok budemo obrađivali 25 00:01:57,361 --> 00:02:01,955 ove male primjere koda, kako bi se na neki način poigrali u računalnom svijetu. 26 00:02:01,955 --> 00:02:06,606 Sad sam malo provokativan, na neki način ismijavam računala. "O da, ona su glupa", 27 00:02:06,787 --> 00:02:11,499 ali u drugu ruku vidimo da su računala ... ona su vrlo korisna. 28 00:02:11,499 --> 00:02:16,210 Na neki način to je ono o čemu ova predavanja govore. S jedne strane ulaženje 29 00:02:16,210 --> 00:02:21,224 u, na neki način zabavan svijet računala koji je pomalo mehanički onda ga povezivati 30 00:02:21,224 --> 00:02:26,056 sa stvarima poput email-a i MP3 zvučnih zapisa. Stvarima koje su u realnom svijetu 31 00:02:26,056 --> 00:02:30,716 vrlo uobičajene. Pokušavati povezati ta dva svijeta i pokazati kako računala funkcioniraju 32 00:02:30,716 --> 00:02:35,418 i kako se to uklapa u svijet. Moj cilj je da kad odradite nastavu 33 00:02:35,418 --> 00:02:39,951 kako računala rade i kako se uklapaju u svijet. 34 00:02:39,951 --> 00:02:44,370 I da ne budete zastrašeni računalima. Da ne mislite o njima kao nekakvoj magiji, 35 00:02:44,370 --> 00:02:49,844 neshvatljivoj kutiji. Imam također i skriveni plan. Premalo ima u svijetu onih koji se bave 36 00:02:49,844 --> 00:02:54,899 računalnom znanošću. Postoji velik broj problema za koje bi željeli da budu riješeni 37 00:02:54,899 --> 00:02:59,889 ali jednostavno nema dovoljno ljudi koji bi napisali programe za sve njih. Dakle, 38 00:02:59,889 --> 00:03:05,076 moj skriveni plan je da, otvarajući vam pogled u računalni svijet i način kako 39 00:03:05,076 --> 00:03:10,132 on funkcionira, vi otkrijete da ste zainteresirani nastaviti se baviti 40 00:03:10,132 --> 00:03:14,859 računalnom znanošću i dalje. Dakle prva približan uvid u koji želim ući: 41 00:03:14,859 --> 00:03:19,476 Kako računala funkcioniraju? Iznutra je računalo pogonjeno kodom. 42 00:03:19,476 --> 00:03:24,001 Mi ćemo detaljnije o tome kasnije. Ovo bi trebao biti samo prvi uvid. 43 00:03:24,001 --> 00:03:28,505 Napravio sam ovdje malu sliku računala. Kod unutar računala sastavljen je 44 00:03:28,505 --> 00:03:33,822 od ovih jednostavnih naredbi. Jedna naredba mogla bi biti da se zbroje dva broja, 45 00:03:33,822 --> 00:03:39,266 izračuna se koliko je 1 više 1 ili da se provjeri da li je 2 manje od 10. 46 00:03:39,266 --> 00:03:44,077 To je ono što računalo radi, na prvi pogled ono samo izvodi ovu listu naredbi. 47 00:03:44,077 --> 00:03:49,014 Svaka je instrukcija vrlo jednostavna i računalo jednostavno izvodi jednu po jednu 48 00:03:49,014 --> 00:03:53,635 s liste, ali ih izvodi izuzetno velikom brzinom. 49 00:03:53,635 --> 00:03:58,978 Svaka instrukcija ima neku vrstu određenog mehaničkog dojma. Rekao bih, 50 00:03:58,978 --> 00:04:04,190 da nas ovo vodi prema prirodnom pitanju koje glasi: Ako ... ako računalo 51 00:04:04,190 --> 00:04:09,338 samo mehanički izvodi niz instrukcija, kako je moguće da ono obavlja 52 00:04:09,338 --> 00:04:14,229 tako mnogo korisnih stvari u svijetu. Imam ovaj dijagram za taj slučaj. 53 00:04:14,229 --> 00:04:18,991 Na desnoj strani zamisliti ću neke korisne mogućnosti poput 54 00:04:18,991 --> 00:04:23,946 uklanjanja "crvenih očiju" ili instant messaging-a. Reći ću radi pojašnjenja da morate znati 55 00:04:23,946 --> 00:04:28,937 da su vaš mobitel, vaš digitalni fotoaparat, sve su to računala. Dakle na desnoj strani 56 00:04:28,937 --> 00:04:33,448 imam korisnu mogućnost: "uklanjanje crvenih očiju", a na lijevoj strani 57 00:04:33,448 --> 00:04:37,842 imam računalo, koje upravo izvodi svoje, kao što znate, jednostavne mehaničke instrukcije. 58 00:04:37,842 --> 00:04:42,471 Što je ono što povezuje ova dva pogleda? A odgovor je 59 00:04:42,471 --> 00:04:46,541 to je u suštini računalno programiranje. Postoji osoba 60 00:04:46,541 --> 00:04:51,009 računalni programer, koji u početku ima ideju. O, trebam ukloniti efekt "crvenih očiju", 61 00:04:51,009 --> 00:04:55,709 to bi bilo vrlo korisno. Oni koriste svoju kreativnost i svoju imaginaciju 62 00:04:55,709 --> 00:05:00,119 da smisle što bi računalo moglo korisno obaviti. 63 00:05:00,119 --> 00:05:04,587 I tada, ono što programer radi je da strukturira i 64 00:05:04,587 --> 00:05:09,229 razdijeli taj problem, tako da ga računalo može obaviti. Oni instruiraju računalo, 65 00:05:09,229 --> 00:05:13,755 i strukturiraju stvari tako da to računalo može obaviti tu korisnu stvar. 66 00:05:13,755 --> 00:05:19,294 To je ono što programiranje jest. I u stvari za bilo koju korisnu stvar 67 00:05:19,294 --> 00:05:24,263 koju izvodite svojom digitalnom kamerom ili svojim mobitelom 68 00:05:24,263 --> 00:05:29,702 ili svojim računalom, u pozadini stoji osoba koja je omogućila da se to dogodi. 69 00:05:29,702 --> 00:05:34,872 Sviđa mi se ta kombinacija. Na neki način programer, osoba, 70 00:05:34,872 --> 00:05:40,579 unosi svoju kreativnost i svoj pogled na svijet i razmišljanje o stvarima 71 00:05:40,579 --> 00:05:45,569 koje bi bilo korisno napraviti i to je njihova polovica problema. A računalo 72 00:05:45,569 --> 00:05:50,218 donosi ono u čemu je računalo dobro. Rekao bih da je računalo dobro u tome što je 73 00:05:50,218 --> 00:05:54,789 u konačnici prilično jeftino. Računalo je u stanju izvoditi ove instrukcije 74 00:05:54,789 --> 00:05:58,734 vrlo, vrlo brzo i tako u konačnici dobivamo ovu lijepu kombinaciju. 75 00:05:58,734 --> 00:06:03,008 To je na neki način razlog što tako veliki broj računala 76 00:06:03,008 --> 00:06:07,666 u svijetu izvodi tako mnogo korisnih stvari. To pokazuje da je ovo dobro partnerstvo 77 00:06:10,022 --> 00:06:12,214 između ljudi i računala. Na svoj način ovaj dijagram je pomalo sažetak ovih predavanja. 78 00:06:12,214 --> 00:06:16,762 Posjetiti ćemo na lijevoj strani da vidimo, pomalo, da vidimo 79 00:06:16,762 --> 00:06:21,270 kako izgleda računalni svijet. I pogledati na vezu između tih 80 00:06:21,270 --> 00:06:25,846 i aktualnih mogućnosti koje ste koristili i donekle razumjeli kako se računalo uklapa 81 00:06:25,846 --> 00:06:32,507 u svijet i omogućava da se stvari obave. U drugom dijelu ovog poglavlja 82 00:06:32,507 --> 00:06:37,414 započeti ću izvoditi male primjere koda. I moram kazati da će to zahtijevati 83 00:06:37,414 --> 00:06:42,449 nešto strpljenja. Početi ću pisati kod ... i naš prvi 84 00:06:42,449 --> 00:06:47,483 primjer biti će vrlo jednostavan. On neće obavljati ništa blistavo. 85 00:06:47,483 --> 00:06:51,707 Rekao bih da je to pomalo kao LEGO kockice. Svaki komad koda koji naučimo 86 00:06:51,707 --> 00:06:56,123 predstavlja dodatnu kockicu, i s vremenom ćemo biti u mogućnosti sastaviti ih 87 00:06:56,123 --> 00:07:00,272 zajedno i napraviti prilično zgodne stvari. Međutim u ovih prvih nekoliko poglavlja 88 00:07:00,432 --> 00:07:04,848 stvari ..., negdje moramo započeti, i ovi prvi primjeri su vrlo jednostavne. 89 00:07:04,848 --> 00:07:09,157 Molim vas stoga za strpljenje i obećavam da ćemo postići nešto zgodno s ovim materijalom 90 00:07:09,157 --> 00:07:13,307 U stvari, ovdje stavljam malo nagovještaja, kroz nekoliko sati predavanja 91 00:07:13,307 --> 00:07:18,293 započeti ćemo raditi specijalne vizualne efekte. 92 00:07:18,293 --> 00:07:23,427 Poigrati ćemo se poznatim, tu prikazanim, majmun-mjesec-banana problemom. 93 00:07:23,427 --> 00:07:28,441 Samo malo naznake gdje ćemo dospjeti. Ali ono što ćemo raditi danas su vrlo 94 00:07:28,441 --> 00:07:32,775 jednostavni komadići koda. Za ove vježbe kodiranja koristiti ćemo programski jezik zvan 95 00:07:32,775 --> 00:07:36,734 JavaScript. JavaScript je vrlo popularan jezik. Izvodi se u web pregledniku (browser-u) 96 00:07:36,734 --> 00:07:40,884 što ga čini iznimno popularnim. To je i razlog koji ga 97 00:07:40,884 --> 00:07:44,605 čini pogodnim za ovu nastavu. Jer radi, jer mi radimo u web browser-u, 98 00:07:44,605 --> 00:07:48,541 moguće je da naš kod funkcionira vrlo jednostavno. Koristiti ćemo JavaScript plus još neke 99 00:07:48,541 --> 00:07:52,815 dodatke koje sam dodao samo za ova predavanja. Tako ovo neće izgledati baš kao 100 00:07:52,815 --> 00:07:57,229 profesionalni JavaScript kod. Raditi ćemo na dijelovima koda 101 00:07:57,229 --> 00:08:01,638 koji je u konačnici vrlo kratak, tek toliko da ukažemo na poantu 102 00:08:01,638 --> 00:08:05,944 onog što pokazujemo i pomalo istražimo računala, ali bez dovlačenja puno "prtljage" 103 00:08:05,944 --> 00:08:10,146 koja bi bila nužna za pisanje kompletnih profesionalnih programa. 104 00:08:10,146 --> 00:08:14,503 Evo dakle mog prvog primjera. Ono što će kod napraviti za nas je ... 105 00:08:14,503 --> 00:08:18,550 imamo ovo pravokutno područje i ovaj tekst u okviru njega 106 00:08:18,550 --> 00:08:22,959 to je kod. Imati ćemo svaki put "RUN" gumb ovdje dolje. Kad napravim klik mišem 107 00:08:22,959 --> 00:08:27,596 na RUN gumb. Ono što će se dogoditi je da će računalo otići ovdje gore i 108 00:08:27,596 --> 00:08:31,832 jednostavno proći ovim linijama. On će jednostavno, kao što kažemo, izvesti svaku liniju. 109 00:08:31,832 --> 00:08:36,802 Obaviti će ono što ona kaže. U ovom slučaju, dakle, ono što gledamo je 110 00:08:36,802 --> 00:08:41,151 print funkcija. Dakle imamo riječ "print". Način na koji je print funkcija uvedena u kod 111 00:08:41,151 --> 00:08:45,568 je da imamo riječ "print" i onda imamo lijevu (otvorenu) zagradu i nakon nje niz stvari 112 00:08:45,568 --> 00:08:49,647 U ovom primjeru to je samo brojka 6 nakon čega 113 00:08:49,647 --> 00:08:53,988 redak završava s desnom (zatvorenom) zagradom i znakom točkom-zarez. Ono što print funkcija radi je 114 00:08:53,988 --> 00:08:58,601 da uzme one stvari koje pišu u zagradama i ispisuje ih. 115 00:08:58,601 --> 00:09:04,130 Ako pogledate preko na desnu stranu ovo je ispis 116 00:09:04,337 --> 00:09:09,857 koji se dobije kad kliknemo na RUN. Ako ovo promijenim na recimo print(42) i sad 117 00:09:09,857 --> 00:09:15,337 kliknem RUN tada vidimo 42. To je ono što dobijemo od prve linije, a kad 118 00:09:15,337 --> 00:09:21,151 kažem print(1,2) tada vidim 1 i 2 s druge strane. Dakle to tako radi. 119 00:09:21,151 --> 00:09:26,430 Rekao sam već da su naši prvi primjeri vrlo banalni, nisu nešto blistavo. 120 00:09:26,430 --> 00:09:32,044 To je u ovom slučaju doista i istina. Dakle mogao bih sada ovdje pokušati još par stvari. 121 00:09:32,044 --> 00:09:37,457 Mogao bih napisati zarez 47 tako da kad to izvedem ... OK, sada vidimo 122 00:09:37,457 --> 00:09:43,271 da dobijemo 1 i 2 i 47. Također da pokažem da se ove linije uzimaju samo jedna po jedna 123 00:09:43,271 --> 00:09:49,242 Kopirati ću to i onda to mogu zalijepiti nekoliko puta ... 124 00:09:49,242 --> 00:09:54,467 Imam viš linija, tako da kad to izvedem, ... sad možemo reći da je to u redu 125 00:09:54,467 --> 00:09:59,692 dobijemo, dakle dobijemo ponavljanje onoga što god nam je ispis bio. 126 00:09:59,692 --> 00:10:06,593 Dakle ono što treba naglasiti je da sintaksa naredbe nije slobodna forma. 127 00:10:06,593 --> 00:10:11,297 Naprotiv, ona je vrlo čvrsto strukturirana. Ona mora biti upravo takva 128 00:10:11,297 --> 00:10:16,303 da bi je računalo moglo razumjeti. To je, u stvari, posljedica 129 00:10:16,303 --> 00:10:20,465 unutarnje prirode računala. Ono ima tu mehaničku čvrstinu, ograničenost, 130 00:10:20,465 --> 00:10:25,230 pa će i jezik, kojeg ono razumije isto biti mehanički, čvrst. 131 00:10:25,230 --> 00:10:30,296 Ovo je malo čudno. U početku krećemo slobodno pisati 132 00:10:30,296 --> 00:10:35,302 engleski ovdje i postići da to računalo slijedi. Razmišljajte i tome 133 00:10:35,302 --> 00:10:39,121 kao svojoj prvoj lekciji o prirodi računala. Ili po principu 134 00:10:39,121 --> 00:10:42,507 "kad si u Rimu ponašaj se kao Rimljanin". Dakle tražim od vas da zavirite 135 00:10:42,507 --> 00:10:46,067 u svijet računala. Raditi ćemo stoga malo u jeziku računala. 136 00:10:46,067 --> 00:10:49,409 U početku će izgledati malo čudno, ali stvarnost je slijedeća, to nije komplicirano, 137 00:10:49,409 --> 00:10:54,411 Sintaksa postoji. To jest čvrsta struktura, ali to zapravo i nije tako teško 138 00:10:54,411 --> 00:10:59,599 Htio bih vas ohrabriti da ne odustajete zbog pomalo 139 00:10:59,789 --> 00:11:04,787 čvrsto strukturirane mehaničke kvalitete jezika. Ona će nam omogućiti da radimo 140 00:11:04,787 --> 00:11:10,190 neke zgodne stvari. U redu, to je bio moj prvi primjer, probajmo ovaj drugi 141 00:11:10,400 --> 00:11:16,428 U prvom primjeru radio sam samo s brojevima. U računalnom kodu postoje 142 00:11:16,428 --> 00:11:21,565 i nešto što zovemo strig-om (nizom znakova). Ovo je prvi primjer sa string-om: "hi" unutar navodnika 143 00:11:21,565 --> 00:11:26,537 Dakle niz je samo slijed znakova i u kodu ga zapisujemo između dvostrukih navodnika. 144 00:11:26,537 --> 00:11:31,701 Zbog toga imam "hi". Dakle print može prihvatiti brojke i ispisati ih, a 145 00:11:31,701 --> 00:11:36,545 pokazuje se da može ispisati i stringove. On jednostavno interpretira string kao 146 00:11:36,545 --> 00:11:41,390 slijed slova i kojih god znakova što ga čine i ispisuje ih redom ovdje. 147 00:11:41,390 --> 00:11:46,445 Mogao bih, znate, ovo izmijeniti da umjesto "hi" to promjenim u "good day" 148 00:11:46,445 --> 00:11:51,284 Dakle string može uključivati i razmake. Ako to izvedem mi ćemo samo 149 00:11:51,284 --> 00:11:57,723 dobiti ovdje 'good day'. Dakle u računalnom programu i stringovi i brojevi su, i jedni i drugi, 150 00:11:57,723 --> 00:12:02,221 vrlo česti. Stringovi u programu se koriste da se u njima čuva 151 00:12:02,221 --> 00:12:06,834 npr. URL kojeg ste utipkali ili, u programu za uređivanje teksta, cijeli stavak 152 00:12:06,834 --> 00:12:11,216 teksta na kojem radimo može biti pohranjen u string. Dakle string je u suštini 153 00:12:11,216 --> 00:12:15,598 sekvenca znakova. To je vrlo uobičajena vrsta podatka u računalu. 154 00:12:15,598 --> 00:12:20,211 Druga stvar koju smo pokazali u ovom primjeru koda je ovaj prvi redak. To nazivamo 155 00:12:20,211 --> 00:12:24,940 komentarom i u JavaScript jeziku komentari započinju s dvije kose crte a komentari funkcioniraju tako 156 00:12:24,940 --> 00:12:29,632 da se sve, počevši s dvije kose crte pa sve desno do kraja retka 157 00:12:29,632 --> 00:12:34,880 ignorira od strane računala. Mogu to onda koristiti da tu napišem bilo kakvu opasku poput 158 00:12:34,880 --> 00:12:39,749 tu imam dva stringa i sl. Neku malu opasku ili primjedbu sebi ili slično o kodu. 159 00:12:39,749 --> 00:12:44,807 Dakle kad ovo izvedem računalo, recimo, ignorira ovaj dio. 160 00:12:44,807 --> 00:12:49,865 U nekom od mojih primjera koji slijede vidjeti ćete 161 00:12:49,865 --> 00:12:55,176 komentare razasute okolo u kojima ja stavljam napomene o tome što se događa. 162 00:12:55,365 --> 00:13:01,738 Dakle, jedan primjer kojeg bi ovdje mogao pokazati, a koji je malo zbunjujući. Staviti ću riječ print 163 00:13:01,738 --> 00:13:09,411 unutar stringa i pogledati što se ispisuje. Sad dakle ovdje 164 00:13:09,411 --> 00:13:14,807 na drugom retku dobivam 'hello to print'. Ono što se dogodilo da se riječ print unutar 165 00:13:14,807 --> 00:13:20,622 stringa ne tretira kao kod, kojeg treba izvesti poput riječi print izvan stringa, 166 00:13:20,622 --> 00:13:26,158 t.j. kao funkcija koju kod programa poziva. Dakle kad se nalazi unutar dvostrukih navodnika 167 00:13:26,158 --> 00:13:31,889 ista riječ tretira se kao običan podatak. To predstavlja distinkciju unutar koda. 168 00:13:31,889 --> 00:13:37,719 To bi bilo u redu. Na kraju poglavlja imati ćemo nekoliko vježbi 169 00:13:37,719 --> 00:13:43,908 u kojima ćete moći pisati kod kao što sam ja radio ovdje. Kao što sam prije spomenuo 170 00:13:43,908 --> 00:13:50,102 kod funkcionira unutar sustava koji ima čvrsto strukturiranu ograničenu sintaksu. 171 00:13:50,102 --> 00:13:54,603 U stvari, vrlo često se potkrade pogreška i profesionalnim programerima koji pišu 172 00:13:54,603 --> 00:13:59,455 programe po cijeli dan. Kad se utipkava neki kod postoji tendencija da se naprave 173 00:13:59,455 --> 00:14:04,249 sitne sintaktičke pogreške na raznim mjestima u kodu. Moguće da se ispusti desna zagrada 174 00:14:04,249 --> 00:14:09,218 ili se krivo otipka neka riječ ... I te sintaktičke pogreške su vrlo lake za 175 00:14:09,218 --> 00:14:13,719 ispravljanje. Dakle kad pritisnete RUN gumb 176 00:14:13,719 --> 00:14:18,513 vrlo često će se ukazati nekakva sitna pogreška koju je potrebno ispraviti. 177 00:14:18,513 --> 00:14:22,769 Htio bi da to razumijete. Te sitne pogreške ne odražavaju vaše 178 00:14:22,769 --> 00:14:27,484 duboko nerazumijevanje ili ozbiljan nedostatak, radi se samo o površnim previdima 179 00:14:27,484 --> 00:14:32,083 koja se događaju tijekom kodiranja, a rade ih i profesionalni programeri cijelo vrijeme . 180 00:14:32,083 --> 00:14:36,624 Mi niti ne mislimo o njima dok ih uklanjamo, uopće ne razmišljamo o njima. 181 00:14:38,894 --> 00:14:41,164 Mislim stoga da, kad se ljudi uvode u kodiranje, ovo ih 182 00:14:41,164 --> 00:14:45,647 pomalo izbacuje iz takta. To da postoje ove male sintaktičke greške 183 00:14:45,647 --> 00:14:50,129 odvraća im pažnju i oni misle da rade nešto potpuno krivo, dok zapravo svi 184 00:14:50,129 --> 00:14:54,707 rade takve greške. To uopće nije značajno. Da bi pomogao da vam malo 185 00:14:54,707 --> 00:14:58,131 odvratim pažnju s toga, ja ću vam jednostavno prikazati gomilu primjera u kojima sam ... 186 00:14:58,131 --> 00:15:01,691 Zadao sam par primjera u kojima imam neke tipične male sintaktičke greške. 187 00:15:01,691 --> 00:15:05,206 Pokazati ću kako se greška manifestira kad kliknete na RUN gumb. Dobro? 188 00:15:05,206 --> 00:15:08,946 Dakle što će se dogoditi je da kad kliknem RUN gumb stvari neće raditi. Dobiti ću 189 00:15:08,946 --> 00:15:12,461 neku vrstu poruke o grešci. Dakle želim Vam pokazati proces od 190 00:15:12,461 --> 00:15:15,795 pojave greške do razrješenja ovog sintaktičkog problema, samo kako bi se privikli. 191 00:15:15,795 --> 00:15:19,220 O, da, kad prvi put kliknete RUN gumb, to je vrlo česta pojava, 192 00:15:19,220 --> 00:15:22,554 dogoditi će se ovo. Samo da prođemo kroz ovo. U redu dakle kliknimo RUN gumb. 193 00:15:22,554 --> 00:15:26,380 I umjesto izvođenja koda i realizacije ispisa, dobio sam 194 00:15:26,380 --> 00:15:30,031 neku grešku ovdje. Malu poruku o grešci. Ponekad su poruke o grešci 195 00:15:30,031 --> 00:15:33,729 prilično dobre i jasno opisuju što se događa. Dakle pogledajmo prvu, ona glasi: 196 00:15:33,729 --> 00:15:38,719 Error: prlnt is not defined. Što se dogodilo je da "print" je funkcija .... 197 00:15:38,719 --> 00:15:44,141 ali ovaj drugi navod, u drugom retku, ... sad u ovom slučaju, 198 00:15:44,141 --> 00:15:49,920 dobro, to ne radi uvijek, ali u velikom broju slučajeva bit' će označen redak u kom je problem. 199 00:15:49,920 --> 00:15:56,342 Problem je u tipkanju. Ne piše P R I N T, već piše P R L N T 200 00:15:56,342 --> 00:16:01,054 Dakle ako "l" promijenim u "i". Ha! Sada radi. Dakle ovaj mali program 201 00:16:01,054 --> 00:16:05,101 ispisuje 'a', pa '1' i 'b', pa 'c' i '3' , dakle jedan potpuno besmislen primjer 202 00:16:05,101 --> 00:16:09,302 kojeg sam izmislio. Naravno stavio sam l jer sam razmišljao kako je to slovo 203 00:16:09,302 --> 00:16:13,246 koje vrlo sliči i. Pa je nužno da pažljivo zagledate, dakle bio sam 204 00:16:13,246 --> 00:16:17,183 pomalo zločesti profesor. U redu, pokušajmo s jednim od ovih 205 00:16:17,183 --> 00:16:21,666 Kliknuti ću na RUN gumb na ovom. Javlja grešku, nezaključen doslovni string 206 00:16:21,666 --> 00:16:26,319 i označio je drugi redak. Moram, dakle pregledati drugi redak s lijeva 207 00:16:26,319 --> 00:16:31,085 na desno. Vidite ovaj (redak) i postoji 'b' . Ovdje je vidite problem što imamo doslovno naveden string 208 00:16:31,085 --> 00:16:35,624 Htjeli smo string "b", ali nedostaje nam zatvaranje (desni) navodnika. 209 00:16:35,624 --> 00:16:40,709 Trebamo oba navodnika. Probati ću s trećim primjerom. 210 00:16:40,709 --> 00:16:45,136 Pogledajmo, greška, nedostaje desna zagrada. Još jednom je linija osvijetljena. 211 00:16:45,136 --> 00:16:49,446 Ja ću ... u stvari ... u ovom slučaju .. poruka o grešci je prilično dobra. 212 00:16:49,446 --> 00:16:54,275 Ona govori, gledaj ..., kao i kod navodnika, lijeva (otvorena) zagrada 213 00:16:54,275 --> 00:16:58,478 i desna (zatvorena) zagrada, moraju se spariti. Mora biti desna zagrada, 214 00:16:58,478 --> 00:17:02,951 točno ovdje, da bi se dala naredbu ispisa. Sada, dakle, radi. 215 00:17:02,951 --> 00:17:12,220 Evo zadnjeg. Nešto ne štima, javlja grešku da nema desne zagrade, ali kad pogledam ona je tu. 216 00:17:12,220 --> 00:17:16,165 Ono što se dogodilo je da je poruka o grešci netočna. Ponekad, kad postoji sintaktička greška, 217 00:17:16,165 --> 00:17:20,787 računalo se zbuni i ne može dobro dijagnosticirati grešku za vas u svojoj poruci 218 00:17:20,787 --> 00:17:25,240 Ono u osnovici može govoriti nešto ne valja u drugom retku. 219 00:17:25,240 --> 00:17:29,974 Moja preporuka je da dobro pregledate s lijeva na desno ... i pogledajte ovdje, izgleda 220 00:17:29,974 --> 00:17:34,401 prilično razumno. Izgleda da u ovom slučaju ono što nedostaje je zarez 221 00:17:34,401 --> 00:17:38,624 Mislim da taj primjer dobro ukazuje na razliku između čovjeka i računala. 222 00:17:38,624 --> 00:17:42,795 Čovjek bi mogao pogledati naredbu i otkriti vašu namjeru. Poput: vidim što je on 223 00:17:42,795 --> 00:17:46,965 namjeravao je da ispiše '1' i 'b'. Ali računalo ima tu mehaničku (nesvjesnu) crtu. 224 00:17:46,965 --> 00:17:51,771 Stvari moraju biti upravo onakve kakve se očekuje da budu, pa i zarez 225 00:17:51,771 --> 00:17:57,121 nije opcija već mora biti tamo, tako da smo blokirani tok to ne riješimo. 226 00:17:57,121 --> 00:18:02,999 U redu, sad to radi. Dakle ti je prvo poglavlje samo s osnovnim ispisom 227 00:18:02,999 --> 00:18:09,120 s brojkama i stringovima. Imam jedan problemski primjer kojeg ću probati. 228 00:18:09,120 --> 00:18:13,688 Ovako će najčešće izgledati vježbe. Iako će kasnije vježbe biti zabavnije. 229 00:18:13,688 --> 00:18:18,036 To vam obećavam. Ovdje piše: izmijeni donji kod tako da kad se izvede 230 00:18:18,036 --> 00:18:22,548 on generira upravo ovakav izlaz. Tu stoji '1 2 buckle' .... dakle zasniva se na brojalici 231 00:18:22,548 --> 00:18:26,438 'one, two, buckle my shoe'. Dakle, ovaj kod ovdje koji nešto radi 232 00:18:26,438 --> 00:18:29,911 ali to nije, to uopće nije ono što trebamo, pa da moramo prepraviti 233 00:18:29,911 --> 00:18:33,384 Pogledajmo! Najprije, ono što ću napraviti je ja ću dodati 2 i onda ću se 234 00:18:33,384 --> 00:18:36,993 sjetiti dodati zarez ... i onda ću promijeniti ovaj strig 235 00:18:36,993 --> 00:18:40,694 da glasi 'buckle'. Sad to mogu izvesti tek da vidim što radi. 236 00:18:40,694 --> 00:18:44,349 Htio bi vas ohrabriti, da ako imate ideju za neki kod, ili samo želite nešto isprobati, ... 237 00:18:44,349 --> 00:18:48,142 ne možete ništa razbiti ako ovdje bilo što ukucate i kliknete pogrešan gumb. 238 00:18:48,142 --> 00:18:51,889 Dobro je imati osjećaj da malo eksperimentirate. 239 00:18:51,889 --> 00:18:58,721 To je bio prvi redak. Isprobati ću i drugi. '3' zarez '4' zarez 'knock' 240 00:18:58,721 --> 00:19:07,456 Dobro je, sada to radi. Vrlo često kad radim male pokuse 241 00:19:07,456 --> 00:19:12,952 u dokumentu poput ovog, ... to može biti ovaj u videu, raditi ću gomilu primjera 242 00:19:12,952 --> 00:19:16,592 i onda vi možda zaželite isprobati ... moda ćete znate biti radoznali vezano za drugi primjer 243 00:19:16,592 --> 00:19:20,509 I vi ćete naići na jedan i htjeti isprobati neku varijantu i stisnuti ćete krivu tipku 244 00:19:20,509 --> 00:19:24,150 To je nešto što vi slobodno možete napraviti. 245 00:19:24,150 --> 00:19:27,467 Često ću u dokumentu imati mali 'show solution' (pokaži rješenje) gumb 246 00:19:27,467 --> 00:19:31,061 To znači da vi možete doći na njega, ... on je prazan, dakle možete eksperimentirati 247 00:19:31,200 --> 00:19:34,748 Ali onda ako ste radoznali koji kod sam ja koristio, tada je i to dostupno 248 00:19:34,748 --> 00:19:38,204 u dokumentu tako da možete usporediti to s vašim rješenjem. 249 00:19:38,204 --> 00:19:41,752 Ili ako želite iz njega kopirati ili što god bilo to je u redu. 250 00:19:41,752 --> 00:19:44,940 Time završavamo prvo poglavlje, isprobajte vježbe s kodom.