WEBVTT 00:00:00.000 --> 00:00:05.928 Bog, moje ime je Nick Parlante, a ovo je nastava o 00:00:05.928 --> 00:00:11.264 svojstvima računala. Kako ona funkcioniraju, što mogu, a što ne mogu raditi. 00:00:11.264 --> 00:00:17.096 Ne traži se nikakvo predznanje o računalima. Namijenjena je svima. Dakle prije 00:00:17.096 --> 00:00:21.950 nego što započnem, želio bih se, kratko, zahvaliti Google-u na podršci mojim ranim 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 00:00:26.284 --> 00:00:31.023 kratka napomena o obliku. Nastava se ne sastoji samo od videa. Uz svako poglavlje videa 00:00:31.023 --> 00:00:35.530 postoji i neka vrsta pisanog dokumenta, kojeg ću listati, pomicati, na ekranu, koji 00:00:35.703 --> 00:00:40.037 prati izlaganje i sadrži dijagrame, primjere koda i slične stvari. 00:00:40.037 --> 00:00:44.718 Dakle, vi možete u bilo kojem trenutku prelaziti s videa na dokument 00:00:44.718 --> 00:00:49.904 ako želite ponovo pročitati obrazloženje ili isprobati neki primjer ili slično. 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. 00:00:55.757 --> 00:00:59.650 Moj savjet bi bio: Puno puta, na kraju poglavlja imati ćemo vježbe. 00:00:59.650 --> 00:01:02.952 Tada, prije nego što probate odraditi vježbe, odlučiti da li ste spremni 00:01:02.952 --> 00:01:06.558 odmah prijeći na vježbe ili se želite vratiti na 00:01:06.558 --> 00:01:10.077 dokument i malo sami eksperimentirati s primjerima da učvrstite 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. 00:01:13.684 --> 00:01:20.658 Rekao bih da je temeljna jednadžba računala: 00:01:20.658 --> 00:01:27.158 računalo je "moćno" plus "glupo". Moćno u smislu da računala mogu 00:01:27.158 --> 00:01:32.195 obaviti na milijarde operacija. Ona rade nezamislivo brzo. Ali, 00:01:32.195 --> 00:01:37.714 operacije su "glupe" u smislu da su operacije koje računalo izvodi 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 00:01:43.096 --> 00:01:48.445 opisali kao inteligentni (čovjekov) uvid u to na čemu rade. Dakle ta čudna 00:01:48.445 --> 00:01:52.420 kombinacija, na neki način, velike moći kombinirane s nekom vrstom mehaničke 00:01:52.420 --> 00:01:57.191 ograničenosti (gluposti). Taj obrazac postati će kristalno jasan dok budemo obrađivali 00:01:57.361 --> 00:02:01.955 ove male primjere koda, kako bi se na neki način poigrali u računalnom svijetu. 00:02:01.955 --> 00:02:06.606 Sad sam malo provokativan, na neki način ismijavam računala. "O da, ona su glupa", 00:02:06.787 --> 00:02:11.499 ali u drugu ruku vidimo da su računala ... ona su vrlo korisna. 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 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 00:02:21.224 --> 00:02:26.056 sa stvarima poput email-a i MP3 zvučnih zapisa. Stvarima koje su u realnom svijetu 00:02:26.056 --> 00:02:30.716 vrlo uobičajene. Pokušavati povezati ta dva svijeta i pokazati kako računala funkcioniraju 00:02:30.716 --> 00:02:35.418 i kako se to uklapa u svijet. Moj cilj je da kad odradite nastavu 00:02:35.418 --> 00:02:39.951 kako računala rade i kako se uklapaju u svijet. 00:02:39.951 --> 00:02:44.370 I da ne budete zastrašeni računalima. Da ne mislite o njima kao nekakvoj magiji, 00:02:44.370 --> 00:02:49.844 neshvatljivoj kutiji. Imam također i skriveni plan. Premalo ima u svijetu onih koji se bave 00:02:49.844 --> 00:02:54.899 računalnom znanošću. Postoji velik broj problema za koje bi željeli da budu riješeni 00:02:54.899 --> 00:02:59.889 ali jednostavno nema dovoljno ljudi koji bi napisali programe za sve njih. Dakle, 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 00:03:05.076 --> 00:03:10.132 on funkcionira, vi otkrijete da ste zainteresirani nastaviti se baviti 00:03:10.132 --> 00:03:14.859 računalnom znanošću i dalje. Dakle prva približan uvid u koji želim ući: 00:03:14.859 --> 00:03:19.476 Kako računala funkcioniraju? Iznutra je računalo pogonjeno kodom. 00:03:19.476 --> 00:03:24.001 Mi ćemo detaljnije o tome kasnije. Ovo bi trebao biti samo prvi uvid. 00:03:24.001 --> 00:03:28.505 Napravio sam ovdje malu sliku računala. Kod unutar računala sastavljen je 00:03:28.505 --> 00:03:33.822 od ovih jednostavnih naredbi. Jedna naredba mogla bi biti da se zbroje dva broja, 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. 00:03:39.266 --> 00:03:44.077 To je ono što računalo radi, na prvi pogled ono samo izvodi ovu listu naredbi. 00:03:44.077 --> 00:03:49.014 Svaka je instrukcija vrlo jednostavna i računalo jednostavno izvodi jednu po jednu 00:03:49.014 --> 00:03:53.635 s liste, ali ih izvodi izuzetno velikom brzinom. 00:03:53.635 --> 00:03:58.978 Svaka instrukcija ima neku vrstu određenog mehaničkog dojma. Rekao bih, 00:03:58.978 --> 00:04:04.190 da nas ovo vodi prema prirodnom pitanju koje glasi: Ako ... ako računalo 00:04:04.190 --> 00:04:09.338 samo mehanički izvodi niz instrukcija, kako je moguće da ono obavlja 00:04:09.338 --> 00:04:14.229 tako mnogo korisnih stvari u svijetu. Imam ovaj dijagram za taj slučaj. 00:04:14.229 --> 00:04:18.991 Na desnoj strani zamisliti ću neke korisne mogućnosti poput 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 00:04:23.946 --> 00:04:28.937 da su vaš mobitel, vaš digitalni fotoaparat, sve su to računala. Dakle na desnoj strani 00:04:28.937 --> 00:04:33.448 imam korisnu mogućnost: "uklanjanje crvenih očiju", a na lijevoj strani 00:04:33.448 --> 00:04:37.842 imam računalo, koje upravo izvodi svoje, kao što znate, jednostavne mehaničke instrukcije. 00:04:37.842 --> 00:04:42.471 Što je ono što povezuje ova dva pogleda? A odgovor je 00:04:42.471 --> 00:04:46.541 to je u suštini računalno programiranje. Postoji osoba 00:04:46.541 --> 00:04:51.009 računalni programer, koji u početku ima ideju. O, trebam ukloniti efekt "crvenih očiju", 00:04:51.009 --> 00:04:55.709 to bi bilo vrlo korisno. Oni koriste svoju kreativnost i svoju imaginaciju 00:04:55.709 --> 00:05:00.119 da smisle što bi računalo moglo korisno obaviti. 00:05:00.119 --> 00:05:04.587 I tada, ono što programer radi je da strukturira i 00:05:04.587 --> 00:05:09.229 razdijeli taj problem, tako da ga računalo može obaviti. Oni instruiraju računalo, 00:05:09.229 --> 00:05:13.755 i strukturiraju stvari tako da to računalo može obaviti tu korisnu stvar. 00:05:13.755 --> 00:05:19.294 To je ono što programiranje jest. I u stvari za bilo koju korisnu stvar 00:05:19.294 --> 00:05:24.263 koju izvodite svojom digitalnom kamerom ili svojim mobitelom 00:05:24.263 --> 00:05:29.702 ili svojim računalom, u pozadini stoji osoba koja je omogućila da se to dogodi. 00:05:29.702 --> 00:05:34.872 Sviđa mi se ta kombinacija. Na neki način programer, osoba, 00:05:34.872 --> 00:05:40.579 unosi svoju kreativnost i svoj pogled na svijet i razmišljanje o stvarima 00:05:40.579 --> 00:05:45.569 koje bi bilo korisno napraviti i to je njihova polovica problema. A računalo 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 00:05:50.218 --> 00:05:54.789 u konačnici prilično jeftino. Računalo je u stanju izvoditi ove instrukcije 00:05:54.789 --> 00:05:58.734 vrlo, vrlo brzo i tako u konačnici dobivamo ovu lijepu kombinaciju. 00:05:58.734 --> 00:06:03.008 To je na neki način razlog što tako veliki broj računala 00:06:03.008 --> 00:06:07.666 u svijetu izvodi tako mnogo korisnih stvari. To pokazuje da je ovo dobro partnerstvo 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. 00:06:12.214 --> 00:06:16.762 Posjetiti ćemo na lijevoj strani da vidimo, pomalo, da vidimo 00:06:16.762 --> 00:06:21.270 kako izgleda računalni svijet. I pogledati na vezu između tih 00:06:21.270 --> 00:06:25.846 i aktualnih mogućnosti koje ste koristili i donekle razumjeli kako se računalo uklapa 00:06:25.846 --> 00:06:32.507 u svijet i omogućava da se stvari obave. U drugom dijelu ovog poglavlja 00:06:32.507 --> 00:06:37.414 započeti ću izvoditi male primjere koda. I moram kazati da će to zahtijevati 00:06:37.414 --> 00:06:42.449 nešto strpljenja. Početi ću pisati kod ... i naš prvi 00:06:42.449 --> 00:06:47.483 primjer biti će vrlo jednostavan. On neće obavljati ništa blistavo. 00:06:47.483 --> 00:06:51.707 Rekao bih da je to pomalo kao LEGO kockice. Svaki komad koda koji naučimo 00:06:51.707 --> 00:06:56.123 predstavlja dodatnu kockicu, i s vremenom ćemo biti u mogućnosti sastaviti ih 00:06:56.123 --> 00:07:00.272 zajedno i napraviti prilično zgodne stvari. Međutim u ovih prvih nekoliko poglavlja 00:07:00.432 --> 00:07:04.848 stvari ..., negdje moramo započeti, i ovi prvi primjeri su vrlo jednostavne. 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 00:07:09.157 --> 00:07:13.307 U stvari, ovdje stavljam malo nagovještaja, kroz nekoliko sati predavanja 00:07:13.307 --> 00:07:18.293 započeti ćemo raditi specijalne vizualne efekte. 00:07:18.293 --> 00:07:23.427 Poigrati ćemo se poznatim, tu prikazanim, majmun-mjesec-banana problemom. 00:07:23.427 --> 00:07:28.441 Samo malo naznake gdje ćemo dospjeti. Ali ono što ćemo raditi danas su vrlo 00:07:28.441 --> 00:07:32.775 jednostavni komadići koda. Za ove vježbe kodiranja koristiti ćemo programski jezik zvan 00:07:32.775 --> 00:07:36.734 JavaScript. JavaScript je vrlo popularan jezik. Izvodi se u web pregledniku (browser-u) 00:07:36.734 --> 00:07:40.884 što ga čini iznimno popularnim. To je i razlog koji ga 00:07:40.884 --> 00:07:44.605 čini pogodnim za ovu nastavu. Jer radi, jer mi radimo u web browser-u, 00:07:44.605 --> 00:07:48.541 moguće je da naš kod funkcionira vrlo jednostavno. Koristiti ćemo JavaScript plus još neke 00:07:48.541 --> 00:07:52.815 dodatke koje sam dodao samo za ova predavanja. Tako ovo neće izgledati baš kao 00:07:52.815 --> 00:07:57.229 profesionalni JavaScript kod. Raditi ćemo na dijelovima koda 00:07:57.229 --> 00:08:01.638 koji je u konačnici vrlo kratak, tek toliko da ukažemo na poantu 00:08:01.638 --> 00:08:05.944 onog što pokazujemo i pomalo istražimo računala, ali bez dovlačenja puno "prtljage" 00:08:05.944 --> 00:08:10.146 koja bi bila nužna za pisanje kompletnih profesionalnih programa. 00:08:10.146 --> 00:08:14.503 Evo dakle mog prvog primjera. Ono što će kod napraviti za nas je ... 00:08:14.503 --> 00:08:18.550 imamo ovo pravokutno područje i ovaj tekst u okviru njega 00:08:18.550 --> 00:08:22.959 to je kod. Imati ćemo svaki put "RUN" gumb ovdje dolje. Kad napravim klik mišem 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 00:08:27.596 --> 00:08:31.832 jednostavno proći ovim linijama. On će jednostavno, kao što kažemo, izvesti svaku liniju. 00:08:31.832 --> 00:08:36.802 Obaviti će ono što ona kaže. U ovom slučaju, dakle, ono što gledamo je 00:08:36.802 --> 00:08:41.151 print funkcija. Dakle imamo riječ "print". Način na koji je print funkcija uvedena u kod 00:08:41.151 --> 00:08:45.568 je da imamo riječ "print" i onda imamo lijevu (otvorenu) zagradu i nakon nje niz stvari 00:08:45.568 --> 00:08:49.647 U ovom primjeru to je samo brojka 6 nakon čega 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 00:08:53.988 --> 00:08:58.601 da uzme one stvari koje pišu u zagradama i ispisuje ih. 00:08:58.601 --> 00:09:04.130 Ako pogledate preko na desnu stranu ovo je ispis 00:09:04.337 --> 00:09:09.857 koji se dobije kad kliknemo na RUN. Ako ovo promijenim na recimo print(42) i sad 00:09:09.857 --> 00:09:15.337 kliknem RUN tada vidimo 42. To je ono što dobijemo od prve linije, a kad 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. 00:09:21.151 --> 00:09:26.430 Rekao sam već da su naši prvi primjeri vrlo banalni, nisu nešto blistavo. 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. 00:09:32.044 --> 00:09:37.457 Mogao bih napisati zarez 47 tako da kad to izvedem ... OK, sada vidimo 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 00:09:43.271 --> 00:09:49.242 Kopirati ću to i onda to mogu zalijepiti nekoliko puta ... 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 00:09:54.467 --> 00:09:59.692 dobijemo, dakle dobijemo ponavljanje onoga što god nam je ispis bio. 00:09:59.692 --> 00:10:06.593 Dakle ono što treba naglasiti je da sintaksa naredbe nije slobodna forma. 00:10:06.593 --> 00:10:11.297 Naprotiv, ona je vrlo čvrsto strukturirana. Ona mora biti upravo takva 00:10:11.297 --> 00:10:16.303 da bi je računalo moglo razumjeti. To je, u stvari, posljedica 00:10:16.303 --> 00:10:20.465 unutarnje prirode računala. Ono ima tu mehaničku čvrstinu, ograničenost, 00:10:20.465 --> 00:10:25.230 pa će i jezik, kojeg ono razumije isto biti mehanički, čvrst. 00:10:25.230 --> 00:10:30.296 Ovo je malo čudno. U početku krećemo slobodno pisati 00:10:30.296 --> 00:10:35.302 engleski ovdje i postići da to računalo slijedi. Razmišljajte i tome 00:10:35.302 --> 00:10:39.121 kao svojoj prvoj lekciji o prirodi računala. Ili po principu 00:10:39.121 --> 00:10:42.507 "kad si u Rimu ponašaj se kao Rimljanin". Dakle tražim od vas da zavirite 00:10:42.507 --> 00:10:46.067 u svijet računala. Raditi ćemo stoga malo u jeziku računala. 00:10:46.067 --> 00:10:49.409 U početku će izgledati malo čudno, ali stvarnost je slijedeća, to nije komplicirano, 00:10:49.409 --> 00:10:54.411 Sintaksa postoji. To jest čvrsta struktura, ali to zapravo i nije tako teško 00:10:54.411 --> 00:10:59.599 Htio bih vas ohrabriti da ne odustajete zbog pomalo 00:10:59.789 --> 00:11:04.787 čvrsto strukturirane mehaničke kvalitete jezika. Ona će nam omogućiti da radimo 00:11:04.787 --> 00:11:10.190 neke zgodne stvari. U redu, to je bio moj prvi primjer, probajmo ovaj drugi 00:11:10.400 --> 00:11:16.428 U prvom primjeru radio sam samo s brojevima. U računalnom kodu postoje 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 00:11:21.565 --> 00:11:26.537 Dakle niz je samo slijed znakova i u kodu ga zapisujemo između dvostrukih navodnika. 00:11:26.537 --> 00:11:31.701 Zbog toga imam "hi". Dakle print može prihvatiti brojke i ispisati ih, a 00:11:31.701 --> 00:11:36.545 pokazuje se da može ispisati i stringove. On jednostavno interpretira string kao 00:11:36.545 --> 00:11:41.390 slijed slova i kojih god znakova što ga čine i ispisuje ih redom ovdje. 00:11:41.390 --> 00:11:46.445 Mogao bih, znate, ovo izmijeniti da umjesto "hi" to promjenim u "good day" 00:11:46.445 --> 00:11:51.284 Dakle string može uključivati i razmake. Ako to izvedem mi ćemo samo 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, 00:11:57.723 --> 00:12:02.221 vrlo česti. Stringovi u programu se koriste da se u njima čuva 00:12:02.221 --> 00:12:06.834 npr. URL kojeg ste utipkali ili, u programu za uređivanje teksta, cijeli stavak 00:12:06.834 --> 00:12:11.216 teksta na kojem radimo može biti pohranjen u string. Dakle string je u suštini 00:12:11.216 --> 00:12:15.598 sekvenca znakova. To je vrlo uobičajena vrsta podatka u računalu. 00:12:15.598 --> 00:12:20.211 Druga stvar koju smo pokazali u ovom primjeru koda je ovaj prvi redak. To nazivamo 00:12:20.211 --> 00:12:24.940 komentarom i u JavaScript jeziku komentari započinju s dvije kose crte a komentari funkcioniraju tako 00:12:24.940 --> 00:12:29.632 da se sve, počevši s dvije kose crte pa sve desno do kraja retka 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 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. 00:12:39.749 --> 00:12:44.807 Dakle kad ovo izvedem računalo, recimo, ignorira ovaj dio. 00:12:44.807 --> 00:12:49.865 U nekom od mojih primjera koji slijede vidjeti ćete 00:12:49.865 --> 00:12:55.176 komentare razasute okolo u kojima ja stavljam napomene o tome što se događa. 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 00:13:01.738 --> 00:13:09.411 unutar stringa i pogledati što se ispisuje. Sad dakle ovdje 00:13:09.411 --> 00:13:14.807 na drugom retku dobivam 'hello to print'. Ono što se dogodilo da se riječ print unutar 00:13:14.807 --> 00:13:20.622 stringa ne tretira kao kod, kojeg treba izvesti poput riječi print izvan stringa, 00:13:20.622 --> 00:13:26.158 t.j. kao funkcija koju kod programa poziva. Dakle kad se nalazi unutar dvostrukih navodnika 00:13:26.158 --> 00:13:31.889 ista riječ tretira se kao običan podatak. To predstavlja distinkciju unutar koda. 00:13:31.889 --> 00:13:37.719 To bi bilo u redu. Na kraju poglavlja imati ćemo nekoliko vježbi 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 00:13:43.908 --> 00:13:50.102 kod funkcionira unutar sustava koji ima čvrsto strukturiranu ograničenu sintaksu. 00:13:50.102 --> 00:13:54.603 U stvari, vrlo često se potkrade pogreška i profesionalnim programerima koji pišu 00:13:54.603 --> 00:13:59.455 programe po cijeli dan. Kad se utipkava neki kod postoji tendencija da se naprave 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 00:14:04.249 --> 00:14:09.218 ili se krivo otipka neka riječ ... I te sintaktičke pogreške su vrlo lake za 00:14:09.218 --> 00:14:13.719 ispravljanje. Dakle kad pritisnete RUN gumb 00:14:13.719 --> 00:14:18.513 vrlo često će se ukazati nekakva sitna pogreška koju je potrebno ispraviti. 00:14:18.513 --> 00:14:22.769 Htio bi da to razumijete. Te sitne pogreške ne odražavaju vaše 00:14:22.769 --> 00:14:27.484 duboko nerazumijevanje ili ozbiljan nedostatak, radi se samo o površnim previdima 00:14:27.484 --> 00:14:32.083 koja se događaju tijekom kodiranja, a rade ih i profesionalni programeri cijelo vrijeme . 00:14:32.083 --> 00:14:36.624 Mi niti ne mislimo o njima dok ih uklanjamo, uopće ne razmišljamo o njima. 00:14:38.894 --> 00:14:41.164 Mislim stoga da, kad se ljudi uvode u kodiranje, ovo ih 00:14:41.164 --> 00:14:45.647 pomalo izbacuje iz takta. To da postoje ove male sintaktičke greške 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 00:14:50.129 --> 00:14:54.707 rade takve greške. To uopće nije značajno. Da bi pomogao da vam malo 00:14:54.707 --> 00:14:58.131 odvratim pažnju s toga, ja ću vam jednostavno prikazati gomilu primjera u kojima sam ... 00:14:58.131 --> 00:15:01.691 Zadao sam par primjera u kojima imam neke tipične male sintaktičke greške. 00:15:01.691 --> 00:15:05.206 Pokazati ću kako se greška manifestira kad kliknete na RUN gumb. Dobro? 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 00:15:08.946 --> 00:15:12.461 neku vrstu poruke o grešci. Dakle želim Vam pokazati proces od 00:15:12.461 --> 00:15:15.795 pojave greške do razrješenja ovog sintaktičkog problema, samo kako bi se privikli. 00:15:15.795 --> 00:15:19.220 O, da, kad prvi put kliknete RUN gumb, to je vrlo česta pojava, 00:15:19.220 --> 00:15:22.554 dogoditi će se ovo. Samo da prođemo kroz ovo. U redu dakle kliknimo RUN gumb. 00:15:22.554 --> 00:15:26.380 I umjesto izvođenja koda i realizacije ispisa, dobio sam 00:15:26.380 --> 00:15:30.031 neku grešku ovdje. Malu poruku o grešci. Ponekad su poruke o grešci 00:15:30.031 --> 00:15:33.729 prilično dobre i jasno opisuju što se događa. Dakle pogledajmo prvu, ona glasi: 00:15:33.729 --> 00:15:38.719 Error: prlnt is not defined. Što se dogodilo je da "print" je funkcija .... 00:15:38.719 --> 00:15:44.141 ali ovaj drugi navod, u drugom retku, ... sad u ovom slučaju, 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. 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 00:15:56.342 --> 00:16:01.054 Dakle ako "l" promijenim u "i". Ha! Sada radi. Dakle ovaj mali program 00:16:01.054 --> 00:16:05.101 ispisuje 'a', pa '1' i 'b', pa 'c' i '3' , dakle jedan potpuno besmislen primjer 00:16:05.101 --> 00:16:09.302 kojeg sam izmislio. Naravno stavio sam l jer sam razmišljao kako je to slovo 00:16:09.302 --> 00:16:13.246 koje vrlo sliči i. Pa je nužno da pažljivo zagledate, dakle bio sam 00:16:13.246 --> 00:16:17.183 pomalo zločesti profesor. U redu, pokušajmo s jednim od ovih 00:16:17.183 --> 00:16:21.666 Kliknuti ću na RUN gumb na ovom. Javlja grešku, nezaključen doslovni string 00:16:21.666 --> 00:16:26.319 i označio je drugi redak. Moram, dakle pregledati drugi redak s lijeva 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 00:16:31.085 --> 00:16:35.624 Htjeli smo string "b", ali nedostaje nam zatvaranje (desni) navodnika. 00:16:35.624 --> 00:16:40.709 Trebamo oba navodnika. Probati ću s trećim primjerom. 00:16:40.709 --> 00:16:45.136 Pogledajmo, greška, nedostaje desna zagrada. Još jednom je linija osvijetljena. 00:16:45.136 --> 00:16:49.446 Ja ću ... u stvari ... u ovom slučaju .. poruka o grešci je prilično dobra. 00:16:49.446 --> 00:16:54.275 Ona govori, gledaj ..., kao i kod navodnika, lijeva (otvorena) zagrada 00:16:54.275 --> 00:16:58.478 i desna (zatvorena) zagrada, moraju se spariti. Mora biti desna zagrada, 00:16:58.478 --> 00:17:02.951 točno ovdje, da bi se dala naredbu ispisa. Sada, dakle, radi. 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. 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, 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 00:17:20.787 --> 00:17:25.240 Ono u osnovici može govoriti nešto ne valja u drugom retku. 00:17:25.240 --> 00:17:29.974 Moja preporuka je da dobro pregledate s lijeva na desno ... i pogledajte ovdje, izgleda 00:17:29.974 --> 00:17:34.401 prilično razumno. Izgleda da u ovom slučaju ono što nedostaje je zarez 00:17:34.401 --> 00:17:38.624 Mislim da taj primjer dobro ukazuje na razliku između čovjeka i računala. 00:17:38.624 --> 00:17:42.795 Čovjek bi mogao pogledati naredbu i otkriti vašu namjeru. Poput: vidim što je on 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. 00:17:46.965 --> 00:17:51.771 Stvari moraju biti upravo onakve kakve se očekuje da budu, pa i zarez 00:17:51.771 --> 00:17:57.121 nije opcija već mora biti tamo, tako da smo blokirani tok to ne riješimo. 00:17:57.121 --> 00:18:02.999 U redu, sad to radi. Dakle ti je prvo poglavlje samo s osnovnim ispisom 00:18:02.999 --> 00:18:09.120 s brojkama i stringovima. Imam jedan problemski primjer kojeg ću probati. 00:18:09.120 --> 00:18:13.688 Ovako će najčešće izgledati vježbe. Iako će kasnije vježbe biti zabavnije. 00:18:13.688 --> 00:18:18.036 To vam obećavam. Ovdje piše: izmijeni donji kod tako da kad se izvede 00:18:18.036 --> 00:18:22.548 on generira upravo ovakav izlaz. Tu stoji '1 2 buckle' .... dakle zasniva se na brojalici 00:18:22.548 --> 00:18:26.438 'one, two, buckle my shoe'. Dakle, ovaj kod ovdje koji nešto radi 00:18:26.438 --> 00:18:29.911 ali to nije, to uopće nije ono što trebamo, pa da moramo prepraviti 00:18:29.911 --> 00:18:33.384 Pogledajmo! Najprije, ono što ću napraviti je ja ću dodati 2 i onda ću se 00:18:33.384 --> 00:18:36.993 sjetiti dodati zarez ... i onda ću promijeniti ovaj strig 00:18:36.993 --> 00:18:40.694 da glasi 'buckle'. Sad to mogu izvesti tek da vidim što radi. 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, ... 00:18:44.349 --> 00:18:48.142 ne možete ništa razbiti ako ovdje bilo što ukucate i kliknete pogrešan gumb. 00:18:48.142 --> 00:18:51.889 Dobro je imati osjećaj da malo eksperimentirate. 00:18:51.889 --> 00:18:58.721 To je bio prvi redak. Isprobati ću i drugi. '3' zarez '4' zarez 'knock' 00:18:58.721 --> 00:19:07.456 Dobro je, sada to radi. Vrlo često kad radim male pokuse 00:19:07.456 --> 00:19:12.952 u dokumentu poput ovog, ... to može biti ovaj u videu, raditi ću gomilu primjera 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 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 00:19:20.509 --> 00:19:24.150 To je nešto što vi slobodno možete napraviti. 00:19:24.150 --> 00:19:27.467 Često ću u dokumentu imati mali 'show solution' (pokaži rješenje) gumb 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 00:19:31.200 --> 00:19:34.748 Ali onda ako ste radoznali koji kod sam ja koristio, tada je i to dostupno 00:19:34.748 --> 00:19:38.204 u dokumentu tako da možete usporediti to s vašim rješenjem. 00:19:38.204 --> 00:19:41.752 Ili ako želite iz njega kopirati ili što god bilo to je u redu. 00:19:41.752 --> 00:19:44.940 Time završavamo prvo poglavlje, isprobajte vježbe s kodom.