[Powered by Google Translate] DAVID Malan: Kjo është CS50, dhe ky është fillimi i javës 1. Ajo që ne menduam se do të bëjmë sot është të marrë një vështrim mbrapa në diçka shumë prej jush ndoshta kanë ecur për disa kaluarën Ora tani dhe mund të duket pak e njohur. Kjo gjë këtu, kjo sigurisht është në - Audienca: Shkenca. DAVID Malan: Shkenca qendër. Pra, kjo është në fakt një nga kompjuterat e hershme mbështetur nga vitet 1940. Kjo ishte një nga kompjuterat e parë elektromekanike se ishte në gjendje të veçanërisht gjatë, vetë-qëndrueshme computations, dhe ajo që ne shohim në të vërtetë Qendra shkenca është vetëm një pjesë e vogël e kësaj gjëje. Ajo që ne menduam se do të bëni pastaj është marrë një vështrim prapa në një video që është bërë disa kohë më parë, duke futur këtë gjë në botë. Dhe ju do të shihni nga muzika dhe zëri i atyre që me të vërtetë ishin shumë herë më të lumtur. [Rishikim video] -Një triumf i aftësive matematikore dhe mekanike është kjo Llogaritësi i madh i ri automatik në Universitetin e Harvardit. Problemet ndërlikuar në matematikë, e vënë nëpërmjet makinë në formë të koduar në kasetë, janë zgjidhur saktë në një pjesë minutën e kohës e nevojshme për të njeriut Llogaritja. Projektuar për të shpejtuar të gjitha format e matematikore dhe shkencore hulumtim, truri gjigant mekanike do të punojë për United Shtetet e marinës deri në fund të luftës. DAVID Malan: Pra, çfarë ju mund të mos dini është se ajo ishte në kjo pajisje njëjta që një mandat ne të gjithë tani të marrë goxha shumë për të dhënë është shpikur, atë të një bug. Pra, një nga inxhinierët që punojnë në këtë kompjuter gjeti fjalë për fjalë një molë të vogël në makinë që rezultoi në disa llogaritjeve të pasakta. Dhe si historia shkon se mola u regjistruar në këtë log Revista këtu, kthehet nga 9 shtator në 1940-diçka, dhe kështu ka lindur për botën termin "bug". Kështu tash e tutje ne e konsiderojmë të mete të ketë ndonjë lloj të gabimeve në programe, nëse njeriu ose, në këtë rast, insekte. Pra, një njoftimet pak, si ne të vazhdojë. Pra CS50 ka një traditë për të ofruar dreka e në terezi më premteve gjatë semestrit, ku kemi marrë 30 për 40 studentë të zjarrit dhe Ice në sheshin e rastit thashetheme, flasin për shkenca kompjuterike, flasim për të ardhmen. Ne ftojmë alumni dhe miqtë nga industria për të biseduar deri studentët si. Vërtetë drejt një fund për të bërë çfarë është një klasë mjaft e madhe gjithë më intime, të paktën një herë në, ndërsa për subsets e studentëve. Pra, nëse ju do të donte të bashkohen me ne të premten, 01:15 PM, shkoni në CS50.net/lunch për RSVP. Dhe ne do të bëjmë këtë recurringly, jo aq për t'u shqetësuar nëse ju nuk jeni në mesin e 30 apo më shumë të parë këtë javë. Pra, shënime shkrues. Një fjalë mbi burimet që tani do të fillojë të qenit në dispozicion tek nxënësve në klasën. Kështu që krerët tuaj nuk duhet të jetë poshtë gjatë ligjëratave scribbling poshtë gjithçka kam thënë dhe kështu me radhë, ajo që ne bëjmë në vend të kësaj është të sigurojë nga stafi mësimdhënës a set kanonik i shënimeve. Pra, ne kemi një nga miqtë tanë të mësimdhënies, Andrew Sellergren, që ulet çdo javë, shqyrton videos, dhe pastaj shkruan ajo që ne mendojmë se është një mënyrë të drejtë grup autoritativ i shënimeve. Dhe dua Andrew, gjithashtu, të vënë në shënimet snarky fund. Pra, ju do të gëzojnë këto shpresojmë se si një libër referimi për argëtim, dhe gjithashtu, vijnë quiz kohë, si një mundësi për të rishikuar çfarë ndodhi në leksionet individuale. Pra, ata janë të lidhura në faqen e leksioneve. Set Problemi 0, ndërkohë, është jashtë. Dhe në drejtim të burimeve në dispozicion për ty - walkthrough. Milo udhëhequr parë të premten. Ajo ishte filmuar, të vënë në internet nga e shtuna. Dhe kështu të kuptojë, në qoftë se ju nuk jeni me të vërtetë të sigurt ku të fillojë, për këtë apo në të ardhmen p-grupe, gjithmonë kthehet pari që walkthrough ose saj video. Sectioning është në progres, në cs50.net/section është ajo ku ju duhet të paraqesin preferencat tuaja, nëse ju nuk keni tashmë, nga sot. Sepse seksione do të fillojnë këtë e diela e ardhshme, e hënë, dhe të martën. Ne bëjmë seksione ato tri ditë, çdo javë i semestër për pjesën më të madhe. Dhe ne gjithashtu të futur, përsëri, këngë të ndryshme. Pra, ju do të kërkohet në këtë formë sectioning, nëse ju nuk e kanë parë atë tashmë, nëse ju jeni në mesin e atyre më pak rehatshme, më të rehatshme, apo diku në mes. Dhe në qoftë se ju jeni lloj në gardh, përgjithësisht diku në mes është ajo që shumica e studentëve deri në fund kontrolluar. Orari i punës të fillojë sonte. Pra Scratch është çelësi mjaft e ulët, edhe pse kjo është mjaft e natyrshme për të kandiduar në të mete të ndryshme, ose të jetë e pasigurt se si të zbatojë diçka. Pra, të kuptojnë se ne do të fillojmë orë zyre këtë javë. Ata do të jenë në Annenberg hënë, e martë, e mërkurë, E Enjte, 20:00-11:00 gjatë pushimit të trurit. Classmen sipërme mund të merrni në, dhe nëse ndonjëherë ju keni vështirësi për marrjen në derë, sepse ata do të swiping, vetëm të flasim në rrugën tuaj në dhe shpjegoni ju jeni me CS50. Zakonisht 20 deri në 30 prej nesh në stafin do të jenë atje për të ndihmuar ju një për një. Pas mbërritjes ideja është kjo: ju do të sjellë tuaj laptopë, ju do të keni ngarkues tuaj, ne do të kemi litarët pushtet ekstra, veçanërisht përgjatë murit jug të Annenberg ku ka shumë priza elektrike. Dhe pika kryesore e hyrjes për orë zyre Q & A është për të shkuar në cs50.net/discuss dhe për të postuar pyetjen tuaj atje. Dhe për emërtim atë me pset 0 ose 1 pset, çfarëdo javën mund të ndodhë që të jetë. Dhe pastaj çfarë ne do të bëjmë është të ketë një tabelë të shokëve të mësimdhënies dhe asistentë kurs, përgjithësisht 8 ose 10 apo më shumë prej nesh, kalon, duke e mbajtur një sy vigjilent në bord, dhe plucking off pyetje me të vërtetë sa më shpejt që mundemi, ju referuar në poste të lidhura në qoftë se ju nuk e keni gjetur ata veten, referencat online, si të përshtatshme. Dhe pastaj, nëse ka probleme, pasi nuk ka mënyrë të pashmangshme do të jetë, ose ai thjesht e bën më shumë kuptim për të ulemi njëri në një, punojnë nëpër probleme me dikë. Ose ju vetëm të hyjë në të vërtetë orarit të punës kanë nevojë për atë mendim. Ju nuk duan të kalojnë nëpër formë elektronike, ju me të vërtetë duan të takohen me dikë. Komunikoni se për ne, dhe çfarë do të ndodhë është kur tuaj Pyetja është parë nga një anëtar i personelit, dhe ne përcaktuar, Yup, kjo duhet të dërguar tek një prej 20 ose 30 anëtarët e ekipit këtu në vend, ju do të shihni në krye lënë këtë pak Shkruani butonin radhë fillon ndezje në cs50.net / diskutuar. Dhe kjo është thënë se ju tani kanë qenë të ftuar, kështu që për të folur, për të hyrë në radhë. Dhe duke klikuar atë buton, emri juaj do të shfaqet pastaj në një iPad që greeter CS50, një nga kokat e kursit, do të të mbajnë pranë hyrjes së Annenberg, i cili pastaj do të shohin përshkruar si këtu, studentët që kanë pyetje mbi të majtë, anëtarët e stafit të cilët janë të pranishëm në të djathtë. Dhe me një klik të majtë dhe të djathtë, browser-i juaj web do të fillojë ndezje sa më shpejt, për shembull, Profesor McGonnagal është i gatshëm për të parë ju në një tryezë të veçantë në Annenberg. Pra, ne e bëmë disa prej këtij vitit të kaluar. Ne kemi restartohet orë zyre dhe ri-zbatuar shumë e softuerit. Pra, të kuptojnë se kjo do të ngrohtë deri këtë javë. Por edhe të kuptojë edhe në vitet e kaluara, si ju mund të keni dëgjuar nga miqtë, orarit të punës kishte me të vërtetë 50 për 150 studentë në të njëjtën kohë. Dhe kjo nuk është thjesht të jetë e mundur për ne për të trajtuar se efektive, një për një, të gjithë në mbrëmje. Dhe kështu që ajo që ne jemi me të vërtetë do të përpiqet të bëjë këtë vit është germa në faktin se shumë pyetje janë pyetur shpesh dhe shpesh mund të përgjigjet më mirë asynchronously. Kështu që ju mund të lloj të mendojnë nëpërmjet përgjigjes së stafit, dhe ne mund të mendojmë me kodin tuaj, pa ndezur presioni i domosdoshmërisht luftuar nëpërmjet saj krah për krah. Pra, ne vlerësojmë se afërsisht një e treta apo gjysma e pyetjeve do të vendoset në person, dhe ne do të përpiqemi të këpusin jashtë si shumë si gjysma ose më shumë elektronike, gjatë orarit të punës. Dhe ne do të vazhdojmë të përdorim Diskutoni gjatë gjithë javës si. Dhe së fundi, të kuptojnë se ky kurs mund të merret kalojë / dështojnë. Pra, nëse ju jeni në gardh ose thjesht të mendoni se ju jeni me të vërtetë Nuk jam i sigurt nëse kjo është bota për ju, apo kjo është me të vërtetë mjaft e huaj për ju, e kuptojnë se kjo është një mënyrë e mrekullueshme të fitimit deri disa besimin me të cilin do të futemi në klasë, si unë e bëri sinqerisht, vite më parë. Dhe pastaj të ketë pesë javë për të zgjidhur të figurës për veten në qoftë se ju dëshironi të qëndroni të kalojë / dështojnë, kaloni në një letër klasën, ose si. Dhe zakonisht ajo të kalojë / dështojnë ka, unë mendoj se, për studentët është se, në qoftë se keni vënë në atë 10 orë, 20 orë, çfarëdo qoftë ajo mund të jetë në disa probleme, dhe ju jeni banging kokën tuaj kundër murit, dhe ju thjesht nuk mund të vërtetë diçka ndjekje poshtë, dhe ju kanë aq shumë gjëra të tjera që ju duhet të bëni, sinqerisht, ajo që unë mendoj se të kalojë / dështojnë, ajo merr off buzë e situatat si kjo. Ku e keni marrë gjënë e 90% të rrugës. Ju e dini, kjo nuk është mjaft e përsosur. Por ju mori një shumë prej tij, megjithatë. Kështu që e konsiderojnë të kalojë / dështojnë duke i dhënë se Modeli mendore, ndoshta. Të gjithë të drejtë, kështu që javën e kaluar kemi pëllumb në Scratch, dhe ne biseduar rreth programimit në një nivel mjaft të lartë grafik. Dhe sot ne kemi bërë kalimin në një gjuhë quajtur C, një nivel të ulët programimit gjuhë në majë të të cilat shumë gjuhë moderne janë ndërtuar tani, duke përfshirë disa nga ato që ne do të jetë duke përdorur drejt përfundimit termin së. Dhe syntactically, atë që ata të duken si është mbi të gjitha mjaft të ngjashme. Pra, le të fillojë për të bërë këtë tranzicion këtu. Pra, kjo ishte një program javën e kaluar se ishte thjeshtë e përshëndetje programe botë. Ajo thjesht të shtypura në botë ekran hello, me një flluskë pak Fjalimi vijnë nga cat. E pra, në qoftë se ne fillojmë tani për të përkthyer këtë në një tjetër gjuhës, të kuptojnë se idetë sot dhe të mërkurën janë identike, por sintaksa fillon të ndryshojë. Pra, ndërsa javën e kaluar kemi pasur, kur flamuri gjelbër klikuar, thonë Hello World. Sot ne do të kemi int kryesore, zbrazëti,,, printf kthimi, me disa sintaksë tjetër në atje si. Formatimin e teksteve kaçurrel, dhe kllapa, dhe citate, dhe gjësend. Por e kupton se thelbi i idesë këtu është shtypje, dhe përfundimisht faktin se kryesor është tani do të jetë sinonim me fillimin e një programi. Kryesore do të jetë aty ku flamuri gjelbër nis gjërat jashtë. Pra, tani le të ngas përveç disa nga blloqet e ndërtimit këtu para se të zhyten në disa shembuj konkretë. Pra, ne e quajti këtë javë një deklaratë e fundit, ku është vetëm një udhëzim. E bëjnë këtë - në këtë rast, thonë botë Hello. E pra në C, nëse ne shikojmë në linjë vetëm atë, kjo është se si ne jemi do të fillojnë të shprehur atë pjesë të veçantë puzzle: printf ("Hello World");. Dhe tani ne do të vë në lojë përveç këtyre gjithnjë e më shumë me kalimin e kohës, por të kuptojë se ka një model këtu. Pra një, ne kemi këtë gjë të quajtur printf, e cila është thelb analoge me fjalën Thuaj. Kjo është ajo që do të bëjë. Printf, dhe f këtu do të thotë "formatuar". Pra, kjo thjesht do të thotë që ju mund të futni detaje të ndryshme estetike. Pra mbyll thonjëzat quote është fillimi i asaj që ne jemi duke shkuar të fillojnë duke e quajtur një varg. Një fjalë, një frazë, një dënim. Një varg në një language programuese është një sekuencë e zero ose më shumë karakteret. Kështu h-E-l-l-O, presje, dhe kështu radhë është, mbyll thonjëzat quote, një varg. Dhe tani backslash n, pak syntactically i rastësishëm, por ne përcaktuar tashmë se javën e kaluar, si do të thotë çfarë? Kjo është vetëm një linjë e re. Kjo është vetëm një mënyrë për të përcjellë në kompjuter që ju doni të ekuivalent i goditur Shkruani atje, por ju nuk e bëni doni të vërtetë hit Enter dhe rrëmujë këtë arsye të gjithë të Formatimi i programit tuaj aktuale. Tani kllapat mbyllni këtë varg, të hapur dhe të prindërve prindërve të ngushtë, dhe brenda e që është string tonë. Sepse kjo është për shkak se në C, dhe programimi të tjera gjuhë, gjëra të tilla si printf marrë argumente, ose të marrë parametra. Pra, filloni të menduarit tani i këtij blloku thonë purpurt si një funksion, si një metodë, si një procedurë. Ju mund të vërtetë të telefononi atë çka ju dëshironi për tani, por kjo është lloj i një programi miniaturë që vetëm bën një gjë, në një linjë të vetme, jo më pak. Pra printf është edhe ajo që ne jemi duke shkuar për të filluar një thirrje funksion, dhe funksionet bëjë diçka - në këtë rast printon një varg formatuar në ekran - por gjithashtu të marrin funksionet argumente apo parametrat. Dhe nga argumentet apo parametrave, thank you, ne do të thotë se sjellja e tyre mund të ndikohet nga ajo që ju kaloni në brendësi të paranteza. Pra, në këtë rast, nevojat printf të thuhet se çfarë për të shtypur, dhe ne vetëm të kalojë në, në thonjëza dyshe këtu, string se ne të vërtetë doni të shtypura. Dhe pikëpresje në fund të kësaj linje është vetëm një telash historike ku në fund të linjave më të kodit, ju vënë një pikëpresje për të bërë super të qartë në kompjuter që kjo linjë e kodit përfundon këtu. Tani kjo është e mirë për shkak se si ne do të shohim si programe të merrni më shumë komplekse, pikëpresje do të bëjë njerëzit super të qarta për ne, dhe gjithashtu kompjuter, ku linjat e kodit fillim dhe në fund. Kuptojnë se disa gjuhë nuk kanë ndonjë nga këto detaje të njëjta. Dhe në fakt, në JavaScript, ju nuk keni gjithmonë nevojë për diçka si pikëpresje. Por më shumë se për të ardhur. Pra, sythe. Ne kishim diçka si kjo, shumë intuitive, e qartë, të bëjë diçka përsëri dhe përsëri dhe përsëri. Doja vënë në çorape, ose thënë hello, në këtë rast. E pra, duke filluar nga sot në C, ne mund të shprehim këtë Scratch bllokuar si ndërsa (e vërtetë) printf ("Hello World"). Pra njoftim ne jemi duke filluar për të ndërtuar në fjalë për fjalë puzzle copë para. Ne kemi të njëjtin bllok purpurt, por kjo është në brendësi të kësaj bracketed Gjithmone bllok, dhe mënyra më e mirë për të përkthyer që C për të është si më poshtë. Nuk ka asnjë Gjithmone fjalen. Ju nuk mund të vetëm të tipit f-O-R-E-V-E-r në C. Pra, analog afërt është duke. Tani, ndërsa (e vërtetë) duket pak budalla, sepse ka vlera e ndryshimit të vërtetë ndonjëherë? Me sa duket jo. Është si të thuash, ndërsa një, ndërsa në, ndërsa e vërtetë. Kjo është e gjitha e njëjta gjë, e vërtetë është gjithmonë rasti. Pra, kjo është në të vërtetë loop inducing çfarë lloj lak? Vetëm një loop pafund, e drejtë. Një lak Gjithmone apo si ne e quajti atë javën e kaluar, vetëm një lak pafund. Pra, ndonjëherë kjo është e keqe. Ndonjëherë kjo është një bug, nganjëherë kjo është arsyeja pse ju merrni topin tjerrje plazh ose hourglass apo si. Por në këtë rast, ne me dashje, për çfarëdo arsye, të kërkuar për të shkruar të njëjtën gjë përsëri dhe përsëri dhe përsëri. Ose në rastin e si një orë, ju doni të bëni diçka përsëri dhe përsëri dhe përsëri. Kështu sythe pafund mund të ketë kuptim. Dhe kjo është se si në C ne mund të përkthehet Gjithmone të kodit. Deri tani kjo është pak më specifike. Ne kishim përsëritur 10 herë deklaratën e mëposhtme. Kështu, ndërsa (e vërtetë) nuk ka mjaft të punojnë atje, për shkak se është e vërtetë gjithmonë e vërtetë. Pra, nëse ne shikojmë në vend versionin C, tani merr një sintaksë pak më i fshehtë. Por të jetë i sinqertë kur ju filloni për të parë këtë, ajo merr të gjitha shumë të njohur shpejt. Pra, kjo është ajo që quhet një për lak. Një për lak do të them kompjuterin për të bërë diçka përsëri dhe përsëri dhe përsëri për aq kohë sa këto gjëra janë të vërteta. Tani çfarë ne do të thotë me këtë? E pra, ka tre pjesë në një për lak, dhe ne jemi duke shkuar për të kthehen kësaj në kontekstin e aktuale shembuj në një moment. Pra, mos u bëni merak nëse nuk mjaft të zhytet në të gjitha përnjëherë. Por int i = 0 është, histori të gjatë të shkurtër, duke thënë jepni një ndryshore që është numër i plotë i tipit, kështu që jepni një numër quhet i, dhe nisja atë për të 0. Kjo është dhënë mua si një x algjebrike ndryshueshme dhe nisja atë për të 0. Por në këtë rast kemi quajtur atë unë. Pastaj në mes, ajo thotë se i është më pak se 10. Kjo është thënë kompjuterin e stuff në vijim në mënyrë të gjatë si i është më pak se 10. Dhe padyshim ajo fillon më pak se 10 për shkak fillon në 0. Pastaj në fund, ju mund ndoshta me mend se çfarë kam + + mjete. Është pak e sintaksës që vetëm do të thotë shtim i. Pra, shtoni 1 me i, përsëri dhe përsëri dhe përsëri. Dhe kështu që ne do të shohim këtë lak, kjo sintaksë, në vend, zbaton pikërisht të njëjtën gjë që, sinqerisht, në Scratch ishte vetëm aq shumë më e lehtë për të shprehur. Përsëriteni 10, dhe ju jeni bërë. Në C, dhe në shumicën e gjuhëve të programimit, ne duhet të jetë një pak më shumë instruktive për kompjuter dhe në fakt specifikojë diçka si kjo. Por ne do të vijnë përsëri në këtë dhe sintaksë tjetër. Po në lidhje me variablat? Në Scratch kishim diçka si këto blloqe portokalli, ku unë mund të deklaroj një ndryshore. Le të thërrasë atë në mënyrë arbitrare kundër. Le nisja atë në 0, dhe pastaj le përgjithmonë të bëjë diçka. Në këtë rast në Scratch unë jam duke thënë se kundër, kështu që cat do të ketë një flluskë pak fjalim që është folur numri që është në këtë variabël. Dhe pastaj ne kemi counter ndryshim nga 1. Pra, e gjithë kjo është e mbështjellë brenda një lock përgjithmonë. Pra, ne tani kemi tashmë blloqet e ndërtimit në C me e cila për të përkthyer këtë. Një mënyrë ne mund të bëjmë që është kjo. Më jepni një numër të plotë, e quajti atë kundër. Nisja atë për të 0 në rreshtin e parë atje. Ndërsa (e vërtetë), kështu që unë jam duke vjedhur këtë ide nga vetëm një moment parë, të shkojnë përpara dhe të bëjë në vijim. Shtypura nga counter, dhe pastaj rritje counter, përsëri, dhe përsëri, dhe përsëri. Apo përsëri, + + thjesht do të thotë të shtoni 1 për diçka. Por nuk është një copë e re e sintaksës këtu. Çfarë është hedhur jashtë si nuk është në mesin shembujt tona të mëparshme? Po, ky d%. Kështu që ju ndoshta mund të konkludoj se çfarë është duke bërë këtë, sinqerisht, duke u bazuar në atë bllok Scratch është duke bërë. Por përsëri në C, ne vetëm duhet të jetë pak më të veçantë kur është fjala për të shprehur veten. Pra printf ("% d \ n"). Edhe shumica e që ne mund të hedhin larg si të njohur. Kuotat thjesht do të thotë se kjo është një string, backslash n është vetëm një linjë e re. Pra, e vetmja gjë e re këtu është% d. Dhe e gjithë kjo është një placeholder. % D po shkon për të treguar një numër decimal. Dhe% d kompjuter do të thotë, të vënë një numër decimal këtu. E pra, çfarë numri ju doni të vënë atje? E pra, si ju ndoshta mund të konkludoj, pas presje themi counter, që është emri i një ndryshore që deklarohet, ose krijuar nja dy rreshta më herët. Pra, kjo është vetëm mënyrë C i mbylljen në një ndryshore në një string dinamike. Sepse nga ana tjetër, në qoftë se unë kam bërë diçka në vend si kjo, printf ("kundër"), çka do të këtë Programi në vend të bëjë, me sa duket? Ajo do fjalë print "kundër". I cili nuk është efekti që unë dua. Unë kam nevojë për të zëvendësuar në një vlerë numerike. Pra, ne do të shohim që funksionon atëherë, si printf, nuk mund të marrë vetëm vetëm argumente të vetme, si "Hello World". Ata mund të marrin mbyll thonjëzat presje japin kuotën e tyre, dhe pastaj disa variabla që do të merrni mbyllën në, si ne do të shohim vargun e mëparshme nëpërmjet këtyre placeholders shenjë%. E pra ajo që për shprehje Boolean? Shprehjet Boolean ishin këto vlera, e vërtetë apo e rreme. Po ose jo. 1 ose 0. On ose off. Pra, në Scratch ata të duken si kjo, dhe vëreni se bllok fund këtu është vërtetë lidhje e dy blloqeve të vogla. Kështu që unë lloj i zvarritur dhe ra tri copa mister së bashku për ta bërë atë pjesë të gjatë mister atje kështu që unë mund të përcjellë idenë se unë dua x të jetë më pak se y dhe y të jetë më pak se z. Dhe kështu që unë mund të përkthehet këto dy linja të veçanta si më poshtë. Një top mund të jetë shumë trivially përkthyer në C, me vetëm x është vetëm mënyra jonë për të thënë, në C, jepni qasje në funksionet që dikush tjetër shkroi. Dhe në këtë rast më intereson, sepse unë dua printf. Tani kemi marrë kryesore int (i pavlefshëm). Pra, kjo është një nga këto gjëra, sinqerisht, se në ditën e 0, pretty much unë kam për të lloj jashtë zonës, sepse kjo është vetëm jo interesante intelektualisht, disa nga sintaksës. Por tani për tani e di që funksionon, i njohur ndryshe si procedurat, metodat apo, në përgjithësi të prodhojë disa vlera. Ata bëjnë diçka. Ata vijnë me një përgjigje. Ata prodhojnë dalje. Pra int pranë kryesor është vetëm mënyra jonë stenografi për të thënë se ky funksion, kjo procedurë, është përfundimisht do për të ju jap përsëri një numër. Dhe pse kjo është, ne do të kthehen për të. Kryesor është vetëm bota parazgjedhur standarde për mungesë funksion që do të merrni ekzekutuar në një program C, kur ju drejtuar atë. Void thjesht do të thotë këtë gjë, kryesore, nuk merr argumente, në këtë rast. Kështu që unë jam duke u super eksplicite. Nuk ka strings në atje, nuk ka asnjë presje. Void do të thotë nuk ka argumente për kryesor. Tani së fundi, fatmirësisht, e fundit dy linja janë të njohur. Brenda formatimin e teksteve kaçurrel ne kemi një printf dhe ne kemi një kthim. Dhe kthimi është lloj i të ardhur keq që ne duhet të vënë atë atje, sepse në këtë rast kjo nuk është bërë gjithçka që shumë interes. Por në një program kompjuterik, kur një funksion kthen 0, që do të thotë të gjitha është mirë. Asgjë nuk shkoi keq. Në të kundërt, nëse një funksion të kthimit 1, ose 1 negativ, ose 1.337 negative, ose disa numra të rastit si kjo, që në përgjithësi do të thotë se një gabim në të vërtetë ka ndodhur. Pra, nëse ju jeni në Mac apo PC tuaj, nëse ju keni parë ndonjëherë disa Mesazhi i bezdisshëm, sepse kompjuteri juaj ka u rrëzua ose ngrirë, dhe ka një mesazh të fshehtë gabim, dhe pastaj disa kodi, si kodi sistemi 1,2,3,4, disa numër, që në përgjithësi është një detaj i panevojshëm për të treguar Shumica prej nesh njerëz, por kjo është ajo që disa funksioni ose disa Programi është kthyer në fakt, një vlerë jo-zero. Dhe përfitimi i kësaj është se të gjithë 0 do të thotë, si edhe, dhe atëherë ju thelb të ketë një numër të pafund të gjërave që mund të shkojnë keq. Cila është arsyeja pse ata zgjodhën 0 për të mirë dhe një jo-zero vlera për keq, siç do ta shohim së shpejti. Pra, le të shkojnë përpara dhe të shkruani këtë. Pra, kujtoj se ditë të tjera kam përdorur Mac tim për të hapur një dritare terminali, dhe pastaj kam hapur programin tekst, si TextEdit, dhe unë filloi të shkruajë disa kodin. E pra kjo është në rregull. Por përvoja juaj do të jenë të ndryshme në një Mac, ose në një kompjuter Solaris, një kompjuter Linux, çfarëdo operativ Sistemi ju ndodh që të jeni duke përdorur. Dhe kështu në kurs, ajo që ne në vend që të përdorin është diçka quajtur CS50 Appliance. Pra CS50 Appliance është një pjesë e software të shkarkohen që ju lejon të drejtuar një sistem operativ të quajtur Linux, posaçërisht Fedora Linux, në Mac apo PC tuaj. Dhe ju bëni këtë duke shkarkuar diçka që quhet një hypervisor. Pra, e gjithë kjo do të dokumentohet në grup problemit 1. Dhe ju do të udhëhiqet drejt asaj që ju duhet për të shkarkuar. Por rezultati përfundimtar, nëse ju keni një Mac apo PC, është që ju download disa softuerit të lirë. Ju pastaj shkarkoni Appliance CS50, dhe ju them se free software - hypervisor - për të drejtuar Appliance CS50 në një dritare në kompjuterin tuaj. Dhe ajo që ndodh është kjo. Unë kam tani, vini re këtu, atë që duket të jetë një desktop mjedisit. Dhe më lejoni të vërtetë tkurret këtë dritare të vetme. Pra, kjo tani është Mac tim, me një dritare të vogël këtu, dhe brenda e kësaj dritare ndodh të jetë një krejtësisht të sistemit operativ të ndryshme. Në të vërtetë nuk është kjo meny fillimi këtu poshtë, të kujton Dritare, që ka një bandë e tërë e menutë nën, duke përfshirë një lidhje me manualin CS50, Dropbox, dhe si. Dhe çfarë ky mjedis tani është një mjedis standarde që të gjithë ne tani mund të përdorni, kështu që pa marrë parasysh se çfarë tuaj kompjuter është, ajo që ju keni instaluar në të, çfarë version i Mac OS ose Windows që ju jeni running, ne të gjithë tani kanë Mjedisi njëjtë. Dhe tani në këtë mjedis, ne mund të filloni të shkruani disa kodin. Kështu që unë jam duke shkuar për të shkuar përpara dhe të hapur një program të quajtur gedit. Kjo është e krahasueshme me notepad.exe, ose TextEdit në një Mac. Dhe kjo është vetëm një e thjeshtë super text editing program që duket si kjo në shikim të parë. Tani në krye, unë kam një gamë të bardhë, në fund unë kanë këtë dritare zi që thotë jharvard aplikim @. Dhe kjo është për shkak llogarinë e përdoruesit që ne para-krijuar për të gjithë është quajtur John Harvard. Ai ka një dosje ku të gjitha dosjet e tij do të shkojnë, dhe këtu është ku ne mund të filloni të shkruani disa kodin. Pra më lejoni të shkoj përpara këtu dhe zoom në vetëm pak, dhe unë jam i do të bëjmë # include , kryesore int (i pavlefshëm), dhe atëherë unë jam duke shkuar për të bërë printf ("Hello World") ; Kthehen 0. Tani kjo është e gjitha shumë e zezë dhe e bardhë. Më lejoni të shkojnë përpara dhe të bëjë një gjë të për të mësuar atë që unë jam Gedit vërtetë për ta bërë. Lermë të shkoj Save As. Unë jam duke shkuar për të zgjedhur në anën e majtë këtu jharvard. Pra, përsëri, edhe në qoftë se ju kurrë nuk kam përdorur Linux parë, sinqerisht këto ditë, të gjithë prej tyre janë delegimin në thelb njëjtin lloj të ndërfaqes - Mac OS, Windows, Linux dhe. Pra, unë nuk kam zgjedhur dosje jharvard në shtëpi këtu. Dhe unë jam duke shkuar për të ruajtur këtë file si hello.c. Pra, në shumë të lartë, I shtypur hello.c; emërtimin e një C Programi me zgjerimin. C është çfarë është praktikë e zakonshme. Dhe unë goditi Save. Dhe tani ajo është e mirë është se unë kam mësuar në mënyrë efektive Gedit, se kjo është një programi C. Vini re se teksti im zezë dhe e bardhë është ngjyra tani koduar, ose Sintaksa e theksuar, të cilat vetëm tërheq vëmendjen time të pjesë të ndryshme semantike të programit. Në krye mbetur atje, si programet e mia të merrni më shumë komplekse, unë jam do të ketë një përmbledhje të të gjitha gjërat që kam shkruar. Pra, kjo është ajo deri atje. Pra më lejoni tani zoom out dhe shkoni poshtë në këtë dritare terminali. Pra, kjo është ndoshta e re për shumë njerëz. Nëse ju nuk keni përdorur një mjedis command line, ju kurrë nuk kam përdorur DOS, ose ju kurrë nuk kam përdorur Linux, ose ju nuk keni hapur Mac OS dritare terminali tuaj, ka shumë gjëra që ju mund të bëjë me GUI, të tilla si duke treguar dhe duke klikuar, dhe zvarritje, dhe rënë, dhe si, por përgjithësisht - sigurisht në botën e shkencës kompjuterike - duke përdorur një command line, ku ju nuk keni mausin tuaj në përgjithësi, ju keni vetëm tastierën tuaj, është në fakt një shumë më të fuqishme se interface, sapo ju të merrni përshtaten me klimën për komanda të ndryshme. Dhe ju lloj veten të lirë e që kanë nevojë për pikë dhe klikoni në çdo gjë. Pra, në Gedit ne do lloj të keni më të mirë të të dy botët. Ne mund të drag dhe drop tekst, ne mund të shohim atë bukur dhe ngjyra koduar. Por kur vjen koha për të drejtuar programin tonë, ne do të ndonjëherë vetëm përdorni këtë dritare të vogël këtu. Kështu që unë jam duke shkuar për të shkuar përpara dhe të bëjë këtë. Në dritaren e poshtme të zezë dhe të bardhë, unë jam duke shkuar për të shkuar përpara dhe shkruani tingulli. Dhe tingëllimë është emri i një përpilues. Është një program që konverton kodin burimor time në, kështu që, kodi objekt. 0s dhe 1s, që pamë shkurtimisht javën e kaluar. Kujtojnë që nga java e kaluar, ne kemi premtuar se ne kemi qenë duke shkuar për të shkojnë nga diçka si kjo - ne duhet të jenë të diçka si kjo - dhe kjo sigurisht nuk është diçka që një njeri që po ndodh për të bërë me dorë. Pra, në vend që ne jemi duke shkuar për të përdorur një program, dhe se programi në këtë rast quhet tingëllimë. Dhe emri i programit tim është hello.c. Pra, në mënyrë që të hartojë hello.c nga kodi burim në Kodi objekt, ose 0s dhe 1s, ajo duhet të mjaftojë për të vetëm të bëjë këtë dhe hit Enter. Mirë, asgjë nuk duket të ketë ndodhur. Por unë e di tani, ose nga java e fundit, që emri i parazgjedhur një program, kur i shkruar në C, quhet mend a.out. Emri më jointeresant ju mund të dalë me. Një është letër i parë i alfabetit, nga është çfarë ishte outputted, por kështu të jetë ajo. Ky është programi im, dhe tani dot plagë, siç do të shohim, është në fakt vetëm një lloj funksion të sigurisë, sepse a.out është një program që kam shkruar. Ajo nuk ka ardhur me kompjuterin tim, kjo është jo në Program Files. Kjo nuk është në dosje Zbatime Mac OS s. Unë duhet të jetë eksplicit super me kompjuter, dhe thonë ky program, a.out, është në dosjen aktuale, Lista aktuale. Dhe mënyra që ju përfaqësoni këtë në një mjedis si ky po dot përfaqëson çfarëdo folder ju jeni aktualisht in Dhe kështu. / Thjesht do të thotë a.out kandiduar në dosjen aktuale. Dhe unë të drejtuar këtë me Enter, dhe voila, programin tim të parë. Tani, më lejoni të marrë një hap prapa. Kjo dritare është pak i vogël, dhe të kuptojë se poshtme majtë të pajisjes këtu është një tjetër ikonë. Njëra është Chrome, i cili duhet të jetë mjaft e njohur, vetëm një web shfletuesi brendësi të pajisjes. Dhe kjo ikonë e zezë dhe e bardhë është vetëm një dritare terminali të mëdha. Pra, në qoftë se ajo merr një pak i bezdisshëm të lloj ketë vetëm kjo fetë vogël pak e një dritare me të cilin për të bashkëvepruar me programe, ne mund të bëjmë këtë vend. Dhe tani më lejoni të filloni të shtypni pak më shpejt të jetë komanda të njohura. ls. Pra ls është komanda për listim. Pra, në një Mac ose Windows OS, ju në përgjithësi do të klikoni dy herë një dosje dhe pastaj, voila, ju të shihni të gjitha dosjet e ndryshme dhe dosjet. Në një mjedis command line, ku ju mund të shkruani komandat apo tekst, ls është ekuivalent. Pra, më tregoni çfarë është në këtë directory. Tani ka një bandë e gjëra këtu se është edhe një pak njohur dhe të panjohur pak. Por njoftim se vetëm si Windows dhe Mac OS, jharvard ka një dosje desktop. Kështu që çdo ikona që janë në tavolinën e punës time të ndodhë të jetë në atë dosje. Ka një dosje shkarkime, sende që Chrome mund të vënë atje. Dropbox. Pra, pajisja vjen me ndërtuar në mbështetje për Dropbox kështu që gjatë semestrit, ju mund të sync me Dropbox tuaj llogari në mënyrë që të gjitha programet tuaja janë të mbështetura. Ata janë të qasshme në kompjuterin tuaj të tjera. Nëse diçka shkon keq ndonjëherë me aplikim, ju mund të shumë lehtë shërohen nga Dropbox. Pra, kjo dosje është atje për këtë. Ka dy fotografi që kam bërë - hello.c dhe a.out. Dhe pastaj në të djathtë ka disa dosje të tjera që ne do të të marrë në drejtim në fund të semestrit, me web programimit. Kështu që kur unë bëj. /, A.out, Enter, që është thënë se të shkoni në directory unë jam në, dosjen aktuale, dhe drejtuar Programi quhet a.out drejtë atje. Të gjithë të drejtë, kështu që është e bukur dhe e mirë, por kjo nuk është e gjitha që bindëse për të shkruar një program të quajtur ndihmojë a.out. Pra, ne mund të bëjë në fakt kjo pak ndryshe. Pra, në vend të vetëm tingëllimë të rrjedhshëm, hello.c, le të shtoni atë që quhet një argument command line. Pra, një linjë komande argument, ose një kaloni në këtë rast, është vetëm një fjalë apo fraza që ju shkruani në një të shpejtë pas program që ju dëshironi për të kandiduar. Pra, në këtë rast, është tingëllimë programi që unë dua të drejtuar,-o prodhimi do të thotë një fotografi që është nuk quhet a.out. Prodhimi një file të quajtur hello, dhe të bëjë kështu me hartimin e fjala e fundit në linjë, hello.c. Pra me pak fjalë, kjo është një përmirësim shumë margjinale, ku në vend të kësaj a.out emrin stupidly file, Unë tani mund të bëjë tingëllimë-o hello, atëherë hello.c, dhe pastaj goditi Enter. Asgjë nuk duket të ndodhë, por përsëri shumë si me 0 - kur asgjë nuk duket të ndodhë që do të thotë asgjë të keqe ka ndodhur - kështu që le të bëjmë ls tani, Enter, dhe në të vërtetë unë tani kanë një program hello. Pra, nëse unë lloji përshëndetje tani, Komanda nuk u gjet. OK,. /. Pra, saktësisht e drejtë. Pra, për shkak të këtij programi kam shkruar, dhe kjo nuk ka ardhur me kompjuter,. / hello, Enter, do të thotë Unë tani jam running hello. Pra, kjo është ajo atje. Tani ajo që ne përfundimisht do të merrni të vijë gjithnjë e më shumë komandës argumentet që të na lejojë të bëjë më shumë, por vetëm për ato për cilin kjo mund të jetë vjetruar, më lejoni të vërtetë të shkojnë në një Lista këtu dhe ju jap vetëm një ngacmues të asaj se si ne të tjerët mund të shkoni në lidhje me zbatimin botë Hello. Më lejoni të shkoj në këtu, dhe unë jam duke shkuar për të hapur atë. Pra në fakt, unë jam duke shkuar për të shpjeguar atë që unë jam duke bërë, në mënyrë që kjo është e dobishme. Le mua back up. Kështu që unë kam qenë duke e bërë këtë një kohë të gjatë. Pra, njoftim mbi të drejtën nuk janë një çift i directories që janë përmendur kaq të çuditshme source1m dhe source1w. Kjo konventë është vetëm pa kuptim ne përdorim. Burimi thjesht do të thotë kodin burim, 1 do të thotë kjo është një javë, dhe m do të thotë se është e hënë, dhe w të thotë se është e mërkurë. Pra, asgjë fshehtë atje. Kjo është vetëm simbol stenografi. Këto gjëra janë blu dosjet, i njohur ndryshe si directories. Unë dua të shkoj në atë dosje tani, dhe në një kompjuter normal Unë vetëm mund të klikoni dy herë mbi një ikonë dosje dhe ka të gjitha dosjet e mia. Por në një mjedis command line, unë nuk mund të bëjë mjaft që, kështu që në vend, unë kam për të ndryshuar directories me dorë. Pra, nëse unë lloji CD dhe pastaj source1m, Enter, vërejmë se menjëhershëm tim, gjëja në të bardhë në të majtë, ndryshoi vetëm. Dhe kështu në të vërtetë, kur ajo vetëm tha kllapa dhe pastaj squiggle pak, simbol tildë, që vetëm do të thotë unë kam qenë në directory John Harvardit shtëpi, Dokumentet e mia e tij, Fotografi të tij personale. Por tani ai thotë se në kllapa ~ / source1m. Kjo thjesht do të thotë që unë jam në një dosje të quajtur source1m që është në directory John Harvardit në shtëpi. Pra, nëse unë tani dua të listë fotografi në këtë dosje, të lehtë pyetje, unë vetëm shkruani ls. Dhe tani shoh të gjitha dosjet që para-krijuar për sot leksion, të cilat, ose shumica e të cilave, të ndodhë të përfundojë në. C. Pra më lejoni të shkoj përpara dhe tani të drejtuar gedit e një programi të quajtur holloway.c, e cila është shkruar nga disa hacker rastit në internet, që duket pak si kjo. Dhe ne nuk do të kalojnë nëpër këtë në ndonjë detaje, por për ata më të rehatshme, në veçanti, nëse ju doni të merrni me mend se çfarë ky program bën këtu. Pjesa tjetër e siguroi, nëse ju jeni më pak ose më shumë të rehatshme, ne nuk jemi të merrni edhe për këtë gjë e tillë deri në fund të këtë semestër. Kjo është ajo që është një shembull i një konkursi C turbullohet, e cila Mjetet shkruani programin më të fshehtë kërkoni ju ndoshta mund të mposht njerëz të tjerë të zgjuar, të cilët janë të ngjashme duke u përpjekur për të shkruar gjëra dhe nxjerr se ata mund të shkruajnë gjërat më të fshehta se ju. Pra, kjo nuk është një shembull i një programi të mirë-shkrim nga Perspektiva e stilit, ky është një shembull i një programi që fiton një konkurs, për njerëzit duke u përpjekur të të jetë i paqartë dhe abstrakte. Pra, nëse kemi drejtuar këtë gjë, më lejoni të shkoj në dritaren time terminal, mënyrë që të flasin. Pra, ky mjedis i zi dhe të bardhë quhet dritare terminali në përgjithësi. Më lejoni të shkoj përpara dhe të përpilojnë atë. Unë nuk jam duke shkuar për të përdorur tingulli, sepse ky program është një pak fshehtë dhe ajo ka nevojë për një tjetër përpilues, një i quajtur GCC. Por kjo e bën të njëjtën gjë. Ajo merr kodin burimor të kodit objekt. Dhe tani, nëse unë të drejtuar, a.out atë program që ju pashë vetëm e bën këtë. Në mënyrë që shoku se viti fitoi atë garë. Gjithsesi, ne nuk jemi duke shkuar në atë drejtim, në vetvete. Pra, le të vërtetë të përpiqet të ngas tani përveç se çfarë ne mund të bëjmë me këto blloqe themelore të ndërtimit për të bërë më shumë dhe më programe interesante. Pra, ne kemi shkruar një program, ne kemi drejtuar një program. Tani ne fakt mund të thjeshtojë dhe nuk kanë për të shkruar tingëllimë fjala në ftim. Kjo rezulton nga programet tona si të merrni më shumë të fshehta, ne mund të, ose më komplekse në vend, ne fakt mund të drejtuar këtë komandë. Pra më lejoni të shkoj përsëri në directory e shtëpisë sime, në mënyrë që të flasin, le të më hequr - rm është komanda hiqni - Jam duke shkuar për të hequr file i quajtur a.out dhe përshëndetje. Dhe tani vini re në një mjedis command line, ashtu si në nje GUI, ju merrni bëri. Unë nuk mund të klikoni një buton edhe pse, unë duhet të shkruani për y po, y per po. Dhe tani, nëse unë lloji ls përsëri, njoftim se ata gjelbër Programet - a.out dhe përshëndetje - janë zhdukur. Beware rm. Ajo mund të bëjë gjëra të këqija, ashtu si ju mund të duke zvarritur gjërat në plehra tuaj. Pra, tani le të shkojë përpara - dhe unë mund ta bëjë këtë - tingëllimë-o hello, hello - Unë jam i mërzitur tashmë shtypur atë komandë. Edhe pse unë shtypur atë pak më shpejt. Kështu që ne mund të bëjmë në vend të bëni përshëndetje. Kështu që bëni nuk është një përpilues. Kjo është vetëm një program miqësor që vjen me Linux, në këtë Rasti - Sistemi operativ - që automatizojnë procesin e hartimit të programeve. Pra, në vend të kujtohet tingëllimë-o filename dhe atëherë kështu me radhë, sidomos kur ato linja të merrni më shumë dhe gjatë, unë mund të shkruaj vetëm të bëjë. Dhe kjo do të nxjerr nga goja një bandë e tërë e gjëra asaj ne do të shohim përfundimisht këtë semestër. Por tani, nëse vëreni I ls lloji, përshëndetje është kthyer në directory time. Dhe me të vërtetë unë mund të kandidojë atë me. / Hello. Pra, të bëjë vetëm automatizojnë procesin e running çfarë ishte, në këtë rast, një shumë më të gjatë, komanda më e ndërlikuar. Pra, ne jemi duke shkuar për të filluar përdorimin e bërë, vetëm për shkak se kjo është një shumë më shumë përdorues miqësore. Por tani le të bëjmë një program më interesante se vetëm thonë hello. Pra, në programet që kam shkruar deri më tani nuk ka kryesore. Kjo është vetëm gjëja e parazgjedhur që nis çdo gjë jashtë. Por ka edhe funksione të tjera atje, si edhe, dhe stdio.h është gjë që e pamë në krye të tonë fotografi më parë, dhe kjo është ajo që është e njohur si bibliotekë standarde. Brenda bibliotekës standarde është një bandë e tërë e funksioneve se dikush tjetër ka shkruar, dhe ne mund të fillojë duke përdorur këto Funksionet për të shkruar më shumë Programe interesante veten. Pra më lejoni të shkoj përsëri në aplikim. Unë jam duke shkuar për të mbyllur këtë dritare terminali. Unë jam duke shkuar për të mbyllur gjëra kemi shkruar më herët, dhe thjesht shkoni në hello.c, dhe vëreni tani unë mund të bëjë në vijim. Përshëndetje Bota nuk është e gjitha që interesante, unë do të doja të personalizosh këtë program për veten time. Pra, në vend të thënë botës, unë jam duke shkuar për të të shkojnë përpara dhe të them - Unë mund të shkruani Davidin - por kjo me të vërtetë është lloj i rrënjësisht njëjtë. Por le të provoni këtë ide placeholder. Kujtojnë se në C, në vend në printf, kemi pasur këto placeholders, dhe ka më shumë se vetëm% d. Pra, ishte% d, kontrolloni mendje e shëndoshë të shpejtë. Mirë, numri decimal, kjo është ajo. Shifra dhjetore, që është e gjitha. Pra c%, pasi ne do të hasni, do të jetë një karakter. Vendos një karakter këtu, një letër me anë të një Z, ose simbol pikësimit. Një karakter të vetme, f%, di ndokush nga gjuhët e tjera? Pra, një vlerë lundrues pikë. Një numër real. Pra, nuk është një numër decimal - kjo është në fakt një numër i vërtetë me një pikë dhjetore, dhe disa numri i shifrave të majtë dhe e drejta e saj. S%, string. Se një ne jemi duke shkuar për të parë mjaft shpesh. Një string, përsëri, është vetëm një fjalë, një frazë, një sekuencë e karaktere individuale. Dhe së fundi, Lld? Pra, kjo është më shumë një rast qoshe. Gjatë, decimal të gjatë. Pra, nëse ju nuk doni vetëm një numër i madh se kjo, ju duan një numër më të madh, ju jeni do të duhet të specifikojë të kompjuter se ajo është një madhësi të veçantë. Pra, le të shkulje këtë pak pak. Në vend se vetëm kodin vështirë në Davidit, më lejoni pak dinamike thonë se% s. Kështu vënë% s këtu, e cila është një vendshënuesi për një varg. Atëherë më lejoni të bëjë presje, dhe pastaj "Davidi" mbi këtu. Tani kjo nuk është e gjitha që intelektualisht interesante, sepse të gjitha unë kam bërë tani është të krijojë me të vërtetë shumë punë për kompjuter. Në vend se të thoni kompjuter bëni këtë të gjithë në të njëjtën kohë, unë jam tani thënë se e bëjnë këtë dhe të futur një varg këtu përfundimisht, presje, këtu është se string. Pra, kjo nuk është një përmirësim të mirë, por kjo është të paktën një hap drejt një programi më interesante. Sepse tani, më lejoni të shkoj përpara dhe të bëjë këtë dritare pak madhe, më lejoni të shkoj përpara dhe të bëjë të kandidojë hello. Dhe tani,. / A.out nuk është duke punuar, pse? Të gjithë të drejtë, tani ajo është quajtur hello. Kështu që përsëri të bëjë, dhe gjithashtu me një tingëllimë-o, u quajt Programi duhet të jetë diçka më interesante. Dhe voila: tani ajo thotë përshëndetje David. Të gjithë të drejtë, ende një program budalla. Pra, tani le të kthehemi në të vërtetë këtu dhe futjen e nocionit e një variable. Nuk do të jetë mirë në qoftë se unë mund të deklaroj një ndryshore cilit lloj është string? Dhe vlera e variablit të vërtetë vjen nga përdoruesi atë ose veten. Pra në mënyrë arbitrare, unë jam duke shkuar për të thirrur s time ndryshueshme, e cila është vetëm një konventë e zakonshme kur ju keni një ndryshore të quajtur string. Unë jam duke shkuar për të bërë shenjë të barabartë, dhe atëherë unë jam duke shkuar për të thirrur një Funksioni quhet getString. Pra getString nuk është diçka që vjen ndërtuar në C. Kjo është një funksion që stafi CS50 shkroi, në të vërtetë vetëm për këta parë disa javë, për të lehtësuar procesin e marrë të dhëna përdoruesi dhe duke fituar të dhëna përdorues në formën e vargjeve, ose numrat, dhe të tilla. Pra getString është si printf, por padyshim jo shtypura ajo do të bëjë atë që emrin e saj thotë se, të merrni një varg. Por për të përdorur getString, ne do të duhet të bëjë një ndryshim këtu, përtej kësaj. Pra intuitive, ky program, me shpresë, do të disi marrë një varg nga përdoruesit, dhe atëherë çfarë është ajo do të bëjë me atë varg, i quajtur s? Është vetëm do të shtypura atë, e drejtë? Ende nuk një program stimulues, sepse e gjitha kjo po ndodh të bëni është prizë në atë vlerë, ku në% s thotë se duhet të shkoni. Pra, le të paktën të shihni këtë në veprim. Më lejoni të ruajtur dhe zoom jashtë. Tani në dritaren time terminal këtu poshtë, fetë e vogël e një, më lejoni të bëj sërish të bëjë hello. Në rregull, dhe ah, damn, unë kam një bandë e tërë e gabimeve. Më lejoni të lëvizni lart, dhe ne shohim sonë të parë - kështu që le të bëjë në fakt këtë në një dritare edhe më të mëdha kështu që ju mund të shihni se sa keq I dehur - prandaj sigurohuni hello. Mirë, kjo është një fatkeqësi, e drejtë? Unë kam shkruar tre rreshta të kodit, dhe ajo është dhënë 12 gabime. Pra, pse është kjo? Pra, për fat të mirë, shumë herë kur ju shikoni shumë, shumë gabime pështypje jashtë në të njëjtën kohë, është e vërtetë vetëm për shkak se ju keni hutuar kompjuterin deri këtu. Dhe mbetet i hutuar nga ajo kohë merr këtu poshtë. Dhe kështu ajo vetëm fillon fikje dhe pengues, dhe pështypje nga më shumë sende frikshme se në të vërtetë vlen. Pra, në përgjithësi, gjithmonë të fillojë me një top. Pra shkallës shumë të lartë më të kuqe, mesazh gabimi është kjo. Përdorimi i vargut identifikues padeklaruar, nuk kam do të thotë standarde në? Unë nuk e bëri. Unë do të thotë vargun, por kjo është për shkak se, gjithashtu, string fjala që unë mbajtur duke përdorur verbalisht vërtetë nuk ekziston në C ose. Kjo është diçka që ne do të përdorim vetëm për javën e parë ose dy këtu, por ajo ekziston në një skedar të quajtur cs50.h. Kështu që tani për tani, e di se nuk është kjo bibliotekë të tjera që Stafi i shkroi, kështu që ajo është shkruar më shumë se fundmi stdio.h. Por brenda i cs50.h është një përcaktim, një sinonim i llojet, që krijon ky varg fjalë. Kështu që tani më lejoni të kthehem në dritaren time terminal. Unë jam duke shkuar për të pastruar këtë rrëmujë tërë nga Ctrl-L. Ne vetëm do të fshij çdo gjë të pastër, dhe unë jam duke shkuar për të shkuar përpara dhe të bëjë Përshëndetje përsëri, Enter. Pra, çfarë ka ndodhur tani? Tani të gjitha ato gabime shkoi larg. Pra, çfarë kam bërë me të vërtetë? Unë e kam mësuar vetëm kompjuter që string ekziston, dhe kjo është në këtë dosje të quajtur cs50.h. Pra mos u ankuar, sepse tani ju e dini ku mund të gjeni Deklarata se funksioni në mënyrë që të flasin. Ku ajo ekziston në botë. Pra, tani unë jam duke shkuar për të shkuar përpara dhe për të drejtuar hello. I duket të ketë një lak pafund, ndodh asgjë e. Kështu që unë duhet të shkruani diçka këtu, të drejtë. Rreshtin e parë të kodit në programin tim u getString. Pra, kjo është fjalë për fjalë duke pritur për mua për të marrë një varg. Pra, në këtë kuptim po, kjo është një lak pafund. Me sa duket në getString është sjellja e parazgjedhur që ne shkroi - Stafi - thotë që vetëm presin dhe presin dhe presin dhe presin dhe presin, deri kur përdoruesi ju jep një varg duke shtypur diçka in Pra më lejoni të shkoj përpara dhe lloji në D-nje-v - I-d, Enter. Dhe nuk është, përshëndetje David. Tani që e bën këtë të duket si kjo është vetëm një akt i? Më lejoni të shkojnë përpara dhe të shkruani në Tommy. Shkruani, në rregull, duket të jetë duke punuar. Punon për Rob, punon për Zamyla, punon për - rregull. Kështu ajo do të punojë, ka shumë të ngjarë. Kështu që ajo duhet të shtypura nga çdo gjë që ne fakt japim atë, dhe ne mund të jetë pak e vështirë këtu. Le të shohim nëse bëjmë diçka si përshëndetje. Mund të shkojë gjatë këtu, le të shohim,, copy paste. Unë nuk jam do të jetë në gjendje për të ngjitur që shumë herë këtu. Paste, rregull, Shift + Ctrl + V. Pra, çfarë mund të ndodhë që është e keqe këtu? Mirë, kështu që, segfaults. Kështu që disa prej jush me prejardhje mëparshme do të dini se në përgjithësi, duke i dhënë kompjutera shumë të inputeve, kur ata janë ndoshta nuk ka për qëllim për të marrë emrat e gjata si kjo - Bad gjëra të ndodhë. Në të vërtetë, në botën e internetit, shumë, kjo ndodh mjaft, ku, kur ju jeni të hartonin një faqe interneti, kur ju jeni projektim Facebook, ju duhet të marrë vendime arbitrare deri para, si për sa kohë do të dikujt Facebook emrin jetë? Ose sa kohë do emri i parë të jetë e dikujt? Sa kohë do të numrin e telefonit e dikujt të jetë dhe si. Dhe në qoftë se programuesit bëjnë supozime të këqija, programe thyer sepse ju përpiqeni duke u dhënë atyre më shumë prodhim, më shumë të dhëna më tepër, se ata kanë memorie. Ose RAM ndarë për të, dhe kështu që nëse tani unë hit Enter, se programi i vërtetë ka punuar, sepse ne kemi qenë në bibliotekë dhe ne fakt parashikuar këtë rast të veçantë. Por padyshim këtë semestër, ju do të shkruani të paktën një program që do të thonë këto fjalë. Mbani mend këtë javë nga tani, ndoshta dy ditë nga tani. Faji segmentimit është një gjë e keqe. Ajo do t'iu referuar diçkaje tuaj duke bërë që kompjuteri nuk parashikojnë. Dhe në këtë rast, ju, programues, nuk parashikojnë. Shumë si ajo që ky grumbull e çorape, ka pasur ndryshme raste qoshe ne mund të kemi hasur. Në mënyrë të ngjashme në programet e në qoftë se ju nuk e parashikojnë se sa kohë është Emri i dikujt do të jetë. Ose çfarë nëse unë kam një përdorues me qëllim të keq, dhe emri i tij ose të saj është në fakt shumë e shkurtër, por ata janë vetëm duke u përpjekur të luajnë me mua? Çfarë do të jetë sjellja e programit tim? E pra, në këtë rast, diçka që mund të vërtetë të rrëzimit. Pra, le ta bëjmë këtë. Në 90 minuta, kjo është një kohë e tmerrshme të gjatë të bëjë shkenca kompjuterike. Pse nuk kemi marrë në zakonin e marrjes së një minutë pesë thyer këtu, dhe kur kemi ardhur përsëri, ne do të zhyten në disa Programet më komplekse dhe bindëse? Pesë minuta. Dakord. Pra, një koment të shpejtë. Unë jam i tha se pse kjo ishte në ekran para, çfarë doli nga goja ime ishte cs50.net/rsvp. Kjo është e saktë. cs50.net/lunch. Kështu që tani ju mund të provoni RSVPing për këtë në / drekë. Por, le ta bëjmë këtë tani. Pra, kjo ka qenë super të shpejtë, super re për një shumë të folks. Hat të vjetra për disa folks. Pra, le të Rewind për vetëm një moment, dhe të shohim se si ne mori për të kjo output Hello World thjesht një moment më parë. Pra, së pari, nuk është kjo Appliance CS50. Përsëri, pjesë e problemit, software vendosur 1 do të tregojë ju se si për ta shkarkuar atë, ku për ta shkarkuar atë, se çfarë duhet të klikoni dhe kështu me radhë. Dhe pastaj një herë ju do të ndiqni këto udhëzime, ju do të jetë në gjendje për të maksimizuar dritaren tuaj, dhe Mac ose PC tuaj do të duket një diçka e vogël si kjo. Një sfond i zi, një dosje në shtëpi në krye, ku të gjithë fotografi tuaja të shkojnë, një plehra mund të në të majtë të lartë, një menu në fund. Pra, përsëri, mjaft të ngjashme në frymë të Mac OS ose Windows, edhe pse kjo ndodh të jetë Linux. Pra, çfarë nuk kemi të bëjmë më tej? E pra, kemi filluar programe me shkrim. Dhe kujtoni nga java e fundit që të gjithë ajo merr për të shkruar një Programi është një editor teksti të thjeshtë, si Notepad ose TextEdit. Sinqerisht, edhe ju mund të përdorni Microsoft Word. Por gjëra të këqija do të ndodhë, sepse kjo është një shumë rëndë duar zgjidhje për të shkruar një program, plus ajo do të ruani atë në format të gabuar file. Por kjo është vetëm një editor teksti, një përpunues teksti, është e gjitha kjo është e nevojshme për të shkruar një program. Pra, në Appliance CS50, ne mund ta bëjmë këtë në një mënyrë të thjeshtë. Ne vetëm mund të klikoni në këtë ikonë në fund majtë. Dhe përsëri, problemi vendosur 1 do t'ju këshillojë për këtë, dhe voila - ju merrni këtë ndërfaqe zezë dhe të bardhë, ku ne mund të fillojë shkruar kodin. Pra, le të filloni të shkruani një program super të thjeshtë përsëri. Unë jam duke shkuar për të shkuar deri tek File, Save, dhe unë jam duke shkuar për të thirrur këtë, le të themi, hello2.c. Dhe unë jam vetëm duke u thënë atë duke klikuar mbi jharvard, e vënë atë në directory e saj në shtëpi, unë nuk e kujdesit të vërtetë ku kjo e shkon. Dhe pastaj të shpëtuar. Dhe tani unë mund të filloni të shkruani programin tim. Dhe unë kujtoj nga herët se unë kam për të shkruar int kryesor (i pavlefshëm). Zoom në në të majtë të lartë. Dhe atëherë unë dua të them printf, të marrë dy. Dhe tani një newline, të japin kuotën ngushtë, të ngushtë kllapat, pikëpresje. Dhe pastaj do të shkoj këtu poshtë në dritaren time terminal që është ngulitur në Gedit, vetëm për lehtësi. Dhe unë jam duke shkuar për të shkuar përpara dhe të bëjë shkruani hello, por jo përshëndetje vetëm, hello2. Pra dosjen time quhet hello2.c. Dosjen time për këtë arsye duhet të quhet hello2, në këtë rast. Dammit, çfarë nuk kam bërë gabim? Të gjithë të drejtë, kështu që unë hequr një vijë të qartë, në qoftë se ju kujtohet se çfarë programeve të mëparshme të duken si. Por le të shohim nëse ne nuk mund të vë në lojë përveç kësaj. Për fat të keq, shumica e njerëzve që shkruajnë programet me të cilat kemi shkruar programe nuk thjeshtojë gjërat të gjithë që mirë. Pra, ne duhet të lloj cek se çfarë nuk ka fare të bëjë kuptim këtu dhe të shohim nëse ne mund të kuptoj se çfarë është e gabuar. Linja e parë nuk thotë në mënyrë implicite deklaruar C Funksioni Biblioteka printf me int lloji. OK, kam kuptuar një pjesë të atë. Por kjo duket të jetë duke aluduar në faktin që kam përdorur printf gabuar, disi. Dhe çfarë është ajo ndjenja e gabuar? Unë thjesht nuk mësojnë kompjuterin se ajo është në një skedar quajtur stdio.h. Tani unë vetëm duhet të mësuar përmendësh vetëm tani që është printf në stdio.h, dhe me të vërtetë nuk do të jetë tjetër funksionon në këtë dosje të njëjtë që ne do të mësohen për të. Kështu që tani më lejoni të shkoj përpara dhe e goditi Ctrl-L të vetëm e qartë se larg, përsëritje të bëjë hello2, dhe voila. Dhe këtë komandë përsëri, më komplekse se ne do të shpjegojë për Qëllimet e sotme. Por ajo ka drejtuar tingulli, Dhe tingëllimë merr kodin burim dhe pështyn nga 0s dhe 1s. Dhe ata 0s dhe 1s në këtë rast janë quajtur atë? Mirë, kundërshtojnë kodin. Dhe fotografi që ata janë në është quajtur, kështu që, hello2, në këtë rast. Sepse dosjen time Teksti ishte hello2.c, Enter. Dhe tani kam marrë dy pikë thirrje, thirrje pikë, pikë thirrje. Të gjithë të drejtë, kështu që ne kemi tani mundësinë për të marrë strings, me sa duket. E pra, çfarë tjetër mund të merrni nga përdoruesit? Edhe në bibliotekën CS50, ka funksione të tjera që do të thjeshtojë jetën tonë në këto ditët e para. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, getString. E pra, le të këpusin off lehtë nga këto para. GetString vërtetë e bën këtë. Ajo vetëm ulet atje, duke pritur për përdoruesit të shkruani diçka në, dhe sa më shpejt që unë lloji diçka në dhe hit Enter, atë bën diçka me atë vlerë. Pra, le të kthehemi në atë shembull për të parë saktësisht se çfarë GetString u bërë. Më lejoni të shkojnë përpara dhe të hapur deri në Gedit, hello.c, dhe kujtojnë këtë të drejtë para shpërbërjes, kjo është ajo ku ne u ndërpre. Pra, le të bezdis tani këtë përveç në pak më tepër hollësira. Kështu on line 6, ka dy gjëra ndodh në këtë moment. Shenjë të barabartë është ndan pjesën e parë dhe pjesën e dytë. Pra, në anën e majtë të shenjë të barabartë, ne jemi thënë string s. Dhe pastaj, kushtet Vetëm laik, çfarë është string s bërë, mendoni ju? Është krijuar një çfarë? Pra, kjo është duke krijuar një varg të quajtur s. Tani çfarë do që me të vërtetë do të thotë? E pra, kjo është rezervuar hapësirë ​​për një varg quajtur s. Kjo nuk është mjaft e drejtë. Çfarë është kjo duke bërë? Kompjutera dhe, siç e dini, kanë hard drives, kjo është ajo ku fotografi tuaja janë ruajtur. Kompjuter kanë RAM, dhe kjo është ajo ku programet janë të ngarkuar ndërsa ata janë running. Pra, kur ju të klikoni dy herë një ikonë dhe Microsoft Word hap deri, Microsoft Word është i rrjedhshëm, në mënyrë që të flasin, në RAM, e cila është pjesa elektronike e kompjuterit tuaj. Jo fizike, pjesë mekanike që është tjerrje, ku Të dhënat është ruajtur në përgjithësi një afat të gjatë. Pra string s është thënë shumë e shumë kompjuter jepni RAM të mjaftueshme për të përshtaten një varg. Tani që është pak e një oversimplification, sepse sa i madh është vargu do të jetë? Edhe ne fakt nuk e di ende, kështu që në javët që do të vijnë ne do të në fakt tërheq mbrapsht shtresë që është string dhe ne do të ju tregojnë se çfarë është me të vërtetë. String, tani për tani, është vetëm një thjeshtësim bukur e botës sonë. Por string s deklaron një varg quajtur s, tani për tani. Deklaron një varg. Ajo ruan pak hapësirë ​​në RAM për vargun e përdoruesit është gati për të tipit. Tani le të shohim në të djathtë të shenjës të barabartë. Pra, ai thotë se getString (). Dhe një mendje e shëndoshë pak kontroll. Fakti se nuk ka asgjë brenda e kllapa nënkupton Çfarë Rreth getString? Ajo merr asnjë argumente. Kjo është, ju nuk mund të ndikojë në sjelljen e saj në asnjë mënyrë. Çdo herë që e përdorin atë, ajo do të marrë një varg dhe kjo është ajo. Në të kundërt, printf, shpresojmë se sjellja e tij nuk të ndryshojë në çdo kohë. Përndryshe, kjo është një funksion goxha të padobishme nëse shtypje ajo bën të njëjtën gjë. Në qoftë se ajo gjithmonë e Davidit shtyp ose diçka arbitrare të gjithë kohës. Pra printf ka kuptim që të ketë një argument. GetString nuk ka të vërtetë nevojë për një argument, sepse kam kërkuar për të marrë një varg nga përdoruesit dhe kjo është përdorues i cili do të furnizimit me dinamizmin duke shtypur me shkronja te ndryshme çdo herë në tastierë. Pra, çfarë do të bëni getString përfundimisht? Mendoni se si kjo kuti të vogël të zi. Dhe kjo kuti e zezë merr asnjë kontribut, por kur ju zhurmë në ajo, ajo pështyn nga një varg që përdoruesi ka shtypur in Dhe fakti se ka një shenjë të barabartë nuk do të thotë të çfarë është nxjerr nga goja në të djathtë dhe ruajtur atë brenda çfarë është në të majtë. Pra këtu shenjë të barabartë, ai në fakt nuk do të thotë barazia, kjo do të thotë më tepër teknikisht detyrë. Merrni vlerën në të djathtë dhe e vuri atë në ndryshueshme në të majtë. Pra, kjo është e gjitha që po ndodh atje. Tani në linjë 7, ne jemi quajtur printf. Pra printf shpresojmë se po bëhet një mërzitshëm pak deri tani. Pra shkruar një varg formatuar. Çfarë string? Printuar jashtë, "h-E-l-l-O,% s ! \ N ". Të gjithë të drejtë, kështu që çfarë dua të plug-in për% s? Fjalë për fjalë, çdo gjë është ruajtur në s. Pra, në këtë rast, kontrolloni mendje e shëndoshë pak, sa argumente ka printf marrë? Mirë, kam dëgjuar një të tillë. Kam dëgjuar një herë. Dy, kam dëgjuar dy. Dhe si për tre? Mirë, tre? Shkëlqyer. Tre përgjigjet e mundshme, vetëm njëri prej tyre është e saktë. Pra argumente sërish ndikojnë në sjelljen e një funksioni. Në të kaluarën, printf ka marrë vetëm një argument. "Hello World" ishte një argument i vetëm. Megjithatë, tani, vëreni ku kjo është e presje. Kjo presje është jashtë kuotën / mbyll thonjëzat, që do të thotë hey printf, këtu vjen një argument të dytë. Pra, presje në shumicën e gjuhëve të programimit argumente të veçanta të shumta. Pra, përgjigja këtu nuk është padyshim një, sepse nuk është kjo presje. Pra minimalisht, printf është me sa duket duke marrë dy Argumentet këtë kohë. Por mundësia për një pyetje mashtrim këtu është ajo që në lidhje me këtë presje? A nënkupton kjo se nuk ka aktualisht tri argumente? Kjo, kjo dhe kjo. Kështu asnjë, sepse që presje është brenda i thonjëza, e cila do të thotë se është me të vërtetë vetëm një estetike të gjuhës angleze. Ajo ka asgjë të bëjë me numrin e Argumentet në këtë program. Pra, kjo presje është jashtë kuotat e dyfishtë. Dhe pastaj do të ktheheni 0. Rendit vetëm tani për tani le të marrin këtë një besim më të sot, dhe vetëm e di se kur funksionet janë bërë ekzekutimin e rreshta të kodit, ata duhet të kthehen në përgjithësi disa vlera. Në këtë rast, vetëm sepse kryesor duhet të kthehet një int, kjo është vetëm mënyra se si funksionon gjuha C. Kështu sepse asgjë nuk shkoi keq, ndjehet si ky program të mirë, unë vetëm e vështirë koduar në kthim 0. Por në të kundërt, dhe unë jam duke shkuar për të shkruar këtë në kodin pseudo tani, ashtu si bëri Jozefi, kur ne e bëmë çorap Shembulli javën e kaluar. Nëse diçka shkoi keq - kjo nuk është kodi aktual - shkova gabuar, pastaj të kthehen, le të themi, 1. Tjetër kthim 0. Pra, kjo është ajo ku ne jemi duke shkuar me këtë. Kjo nuk është e vërtetë kodi C, vetëm pseudokod. Por kjo është se si ju mund të ktheheni vlera të ndryshme të mundshme. Por tani për tani unë jam vetëm duke shkuar për të shkuar përpara dhe të kthehen 0. Të gjithë të drejtë, ndonjë pyetje deri më tani në funksionalitetin, sintaksë, apo si? Po, në prapa. Audienca: [padëgjueshme] DAVID Malan: A mund të flisni pak louder? Pse e bëri këtë program 0 kthimit, dhe? Audienca: [padëgjueshme] DAVID Malan: Oh, kjo është për shkak se unë kam dembel, sorry. Nuk ka përgjigje të mirë akademike, kthehet 0. Unë mund të lloj të shpëtuar këtë, duke thënë teknikisht C, nëse kryesore në mënyrë eksplicite nuk kthehen një vlerë, 0 do të kthehet automatikisht për ju. Që është e vërtetë, unë nuk jam vetëm mbulimin. Por, unë duhet të ketë bërë atë në këtë mënyrë. Jo takeaway interesante se sa të tjera se gabimi im. Po? Audienca: Zakonisht kur ju shkruani në zbrazëti, që do të thotë ju nuk kthehen diçka. DAVID Malan: Correct. Nëse në vend të kësaj, ju specifikoni para emrin e një funksioni, për shembull këtu, i pavlefshëm, atëherë funksioni nuk kthehen asgjë. Dhe për këtë arsye unë do të them vetëm, kthimin ose asgjë në të gjitha, dhe që do të jenë në përputhje. Dhe ne do të kthehen në atë. Dhe vetëm FYI, një prej kap me të mësuarit programimit në një botë që ka qindra libra dhe qindra faqet e internetit atje është që ju do pa ndryshim shikoni sintaksë të ndryshme në libra të ndryshëm nga njerëz të ndryshëm. Kuptojnë që ne do të bëjmë çmos në seksione dhe leksione të jenë të konsistente. Por ndonjëherë ju do të shihni sintaksë kontradiktore. Pra, sa herë që në dyshim, thjesht pyesni. Dhe në përgjithësi, ne do të kujdesemi në ligjërata dhe seksioneve të pothuajse gjithmonë të pranishëm atë në rrugën e drejtë. Dhe unë them pothuajse gjithmonë, sepse rasti në pikë. Pyetje të tjera? Audienca: A% s ekziston jashtë aparatit? DAVID Malan: A% s ekziston jashtë aparatit? Po. Pra,% s ka të bëjë me faktin C. se ne jemi duke e përdorur atë në aplikim në thelb ka të bëjë asgjë me tiparet e gjuhës ne jemi duke përdorur. Në të vërtetë, javën e kaluar kur kemi përdorur Mac tim, kam shkruar Kodi C në Mac tim. Unë mund të ketë përdorur% s në Mac tim, dhe ju mund të përdorni atë në kompjuter Windows tuaj nëse keni të instaluar një përpilues, si Studio vizuale nga Microsoft. Pra,% s. Ne jemi duke bërë gjithçka në brendësi të këtij dritare sot ka për të bëjë me C. Dhe thellësisht asgjë të bëjë me sistemit operativ në fjalë. Nga ana tjetër, dritare terminali zezë dhe e bardhë - kur Unë jam i shtypur gjëra të tilla si ls, dhe RM, dhe cd - që ka të bëjë me sistemin operativ dhe lundrimit përreth. Po. Audienca: Unë do të thotë në bibliotekë, bibliotekën CS50. DAVID Malan: Mirë, kështu që nëse ju thotë vargun fjalen, se ekziston vetëm në bibliotekë CS50, e saktë. Kjo nuk ekziston në C vetë, dhe në të vërtetë në një çift javësh ne do të hedhin larg bibliotekën CS50 dhe të fillojnë të duke bërë gjëra nga zeroja veten, në mënyrë që të flasin. Pyetje të tjera? Po. Audienca: [padëgjueshme] DAVID Malan: Pyetje e mirë. Janë rast të ndjeshme komandat? Dhe më lejoni të bëjë një dallim këtu. Pra, komandat janë përgjithësisht gjërat që ne do të shkruajnë në poshtme e dritares, në dritaren e terminalit. Asgjë deri këtu do të jetë deklarata ose kod C. Por në të dyja rastet, përgjigja është e njëjtë, po. Të dyja këto mjedise, kodi C në krye dhe Sistemi operativ komandë Online fund, janë raste të ndjeshme. Kështu që ju duhet me germa kapitale getString me G, Kapitali S. Ju duhet të shkruani printf në të gjitha Fjala. Ju duhet të shkruani në të gjitha ls Fjala. Pra, në pothuajse çdo situatë kjo, semestri rast do të, në , fakt çështje. Po. Audienca: [padëgjueshme] DAVID Malan: Ah, kështu rregull, çfarë nëse kemi pasur një skedar quajtur hello.d. Pra, ajo rezulton nga D është një gjuhë programimi. Dhe kështu në disa raste, ne në fakt mund të shkruaj një program në këtë dosje dhe kanë përpiluar në atë mënyrë. Ne mund, dhe në fakt, përgjigja e shkurtër është, unë nuk e di. Pra, ne jemi duke shkuar për të bërë këtë. Më lejoni të shkojnë përpara dhe për të krijuar një skedë të re. Dhe tjerr këtu, sinqerisht në përgjithësi, është kur ndonjë dyshim këtë semestër, dhe ju keni aplikim tuaj ose kompjuter të hapur, të shkojnë përpara dhe të provoni diçka. Kështu që unë jam duke shkuar për të ruajtur një skedar të quajtur hello.d. Ruaj këtë. Dhe unë jam duke shkuar për të drejtuar bërë përshëndetje Enter. Ajo dukej të dëshmoj se c ishte më shumë gjasa se d, në këtë rast. Pyetje të tjera. Po. Audienca: [padëgjueshme] DAVID Malan: Mirë, le të themi se një herë më shumë. Audienca: [padëgjueshme] DAVID Malan: Si do të ju shkoni në lidhje me diagnostikimin se ose problemeve se? Pra ka shumë të ngjarë, sepse ata janë gjuhë të ndryshme, ka shumë të ngjarë që ju do të merrni një plotësisht Programi ndryshe outputted. Ju do të merrni mesazhe krejtësisht të ndryshme gabim. Dhe gjithashtu vetëm në aspektin e dizajnit, ndoshta kjo do të jetë një Vendimi i varfër dizajn të shkruar dy të ndryshme gjuhë me fotografi pothuajse identike, në emrin Lista e saktë të njëjtën, duke përdorur një mjet automatike si të bëjë. Kështu që unë mund të shtyjë mbrapa dhe thonë se në 15 vjet për të bërë këtë, kurrë nuk e bëri atë gabim. Mund të ndodhë. Por ka vetëm të ndryshme, unë mendoj, mbrojtjet logjistike në vend. Plus mesazhet e gabimit që do të pasojnë, që do të ta zbulojnë se çfarë çështje është. Por një rast mundur qoshe. Të gjithë të drejtë, kështu që le të prezantoj vetëm nja dy të tjera Karakteristika këtu tani, kështu që ne mund të fillojë ndërtimin e deri në më shumë Programi dhe më komplekse. Pra, para së gjithash, matematikë. Pra shembuj matematikës janë vetëm lloj i lehtë në javën e parë. Kjo nuk do të thotë se të gjitha programimi është në lidhje matematikë. Sigurisht, të kuptuarit karakteristika të ndryshme të matematikë, algjebër në veçanti, është mjaft e rëndësishme këtu. Në klasat më të larta të nivelit CS, algjebër lineare, gur, dhe si. Por shumica e kuptojnë se çfarë ne do të bëjmë këtë semestër nuk redukton për matematikë, dhe sigurisht jo me aritmetike, në vetvete, por me të vërtetë të vetëm logjikës dhe të menduarit të kujdesshëm. Dhe kështu këtë lidhje që shkenca kompjuterike ka pasur gjatë, veçanërisht në nivelin e shkollës së mesme, me matematikë, është një pak mashtruese. Sepse shumica e programeve që do të shkruaj, me të vërtetë, janë lloj i nivelit më të lartë dhe të përqëndrohet në zgjidhjen e problemeve që, sigurt, mund të përdorin disa Përveç kësaj, zbritje, dhe të ndryshme formula matematikore apo si, por në fund të ditës, ajo është rreth të menduarit dhe të mos vetëm zbatimin e asaj që ju mund të keni bërë në si një TI Llogaritësi në shkollë të mesme. Pra, me tha se, tani le të bëjë diçka me këto operatorët matematike që ekzistojnë në mënyrë që ne mund të udhëtim mbi disa nga aspektet themelore të programimit, ose në Në këtë rast C. Pra, ka, si CS50 biblioteka sugjeruar, dhe sot ne jemi vetëm duke përdorur getString - dhe në një moment ndoshta një funksion tjetër - por ka të dhëna të ndryshme lloje në një kompjuter. Në fund të ditës, vetëm e di kompjuterat 0s dhe 1s. Por kujtojmë se javën e kaluar kemi biseduar në lidhje me sistemin binar në përfaqësimin numrat, si numrin 0 dhe 1, dhe 2, të gjitha mënyra për deri në 8, si në video Nate-së. Dhe atëherë ne mund të mbështeteni shumë më të larta si ne bëri në skenë këtu. Por në qoftë se ju doni për të përfaqësuar jo vetëm numrat, por shkronja, ne, njerëzit, kanë për të dalë me disa arbitrare konventa, të cilit, nëse në fund të ditës të gjithë kompjuterin tim ka është aftësia për të shprehur 0s dhe 1s, edhe ne do të mirë fillojnë standardizimin modelet e 0s dhe 1s që përfaqësojnë gjëra të ndryshme. Një model i 0s dhe 1s që përfaqëson një letër. Modelet e 0s dhe 1s që përfaqësojnë z letër. Modelet e 0s dhe 1s që përfaqësojnë blu ngjyra, ose kuqe, ose si. Ne duhet të përdorim të gjitha këto 0s dhe 1s për të shprehur veten në kontekste të ndryshme, në mënyra të ndryshme që nuk janë të domosdoshmërisht numerike. Pra, në aspektin e përfaqësimit, C ka lloje të ndryshme të të dhënave, dhe ne kemi parë një nga këto deri më tani. Ne pamë int, dhe njoftim se çfarë nuk është në ekran tani është string. String nuk, në fakt, ekziston në C. Përsëri, kjo është një thjeshtim ne jemi paraqitur për herë të parë Nja dy javë. Një char është një karakter individual. Një noton është një numër real, me një pikë decimale dhe numra në të majtë dhe të drejtën e saj. Një dyfishtë është ajo, për ata me sfond prapa paraprak? Pra, një të dyfishtë është dy herë diçka. Shton dy herë më shumë saktësi. Pra, çfarë do të thotë kjo? Pra, në secilin prej këtyre rasteve, bota ka lloj të standardizuar sa bit janë përdorur për të përfaqësuar secilën nga këto gjëra. Pra, nëse ju keni shikuar videon ASCII Nate-së tashmë për pjesën i pset 0, ose më vonë këtë javë ju do, ju ndoshta do të dini se ASCII - përfaqësime karakter - përdorin sa bit? Dhe ju mund të mbani mend edhe nga demo tonë javën e kaluar se si shumë njerëz ishin në skenë. Pra 7 ose 8, zakonisht. Pra në përgjithësi 8, dhe ka diçka të quajtur si zgjatet ASCII që përdor të gjitha 8 bit, në vend të 7. Por në përgjithësi, ne flasim në fuqitë e 2, kështu që në këtë rast, 8. Pra, një char në një gjuhë programimi është zakonisht 8 bit. Kështu që një int përgjithësi është 32 bit. Një noton në përgjithësi është 32 bit. Një dyfishtë në përgjithësi është 64 bit. Dhe çfarë do të thotë kjo? Kjo do të thotë që ju mund të përfaqësojnë numrat më të mëdha, ose në rast e numrave reale, ju mund të ketë numra shumë më tepër pas Vendi decimal. Një saktësi shumë më tepër, në këtë rast. Tani një kohë të gjatë është quajtur fat të keq. Pra, ka një int cila është 32 bit. Ka një kohë të gjatë që është, nope, 32 bit. Dhe një kohë të gjatë e cila është 64 bit. Megjithatë, disa prej atyre që janë të ndjeshme konteksti, kjo varet çfarë lloj i kompjuterit që ju keni. Pra, në përgjithësi, ne do të specifikojë në një detyrat e shtëpisë ose në një quiz kur ai në fakt ka rëndësi. Por çështja është se ka të gjitha këto të ndryshëm përfaqësime këtu. Pra, le të zhyten në fakt në një program. Në vend se të shkruaj këtë një nga zeroja, më lër të shkoj përpara dhe e hapur deri nga kodi burim sotme - të gjitha prej të cilave është online - në qoftë se ju doni të kallajxhi rreth online, ose kthimi në Mërkurën me aplikim në kompjuterin tuaj, udhëzime për të cilat do të lidhë në faqen e kursit së. Këtu është një program i thjeshtë super. Por atë e mori një diçka të vogël të ri në krye se ne nuk kemi parë. Një tërësi shumë të linjave blu të tekstit. Pra, këto linja blu paraqesin komente. Pra, kjo është mjaft e dobishme në një program të jetë në gjendje për të shkruar disa komente për veten, apo për kolegët, apo miqtë, ose miqtë mësimdhënies, se lloj i përshkruajnë se çfarë po ndodh në këtë file, por nuk kanë asgjë të bëjë me kodin C vetë. Asgjë të bëjë me programin funksionalisht, kjo është vetëm estetikë. Pra, në mënyrë që ju ta bëni këtë në C është që ju zakonisht fillojnë tuaj comments with / *, dhe ju të përfundojnë me komentet tuaja * /. Dhe në qoftë se jeni të vërtetë anal dhe si për të nxjerrë lloj të fotografive, atëherë ju do të vënë një të tërë shumë yje, ju do të bëni një kuti të vogël si kjo. Por asnjë nga çështjet që. E vetmja gjë që ka rëndësi është e parë dhe shumë të fundit. Kjo është ajo që quhet një koment multi-line. Dhe kjo është vetëm Konventa e njeriut për të shpesh bëjnë yjet dhe kuti gjëra si kjo në qoftë se ju keni një shumë kohë të lirë. Pra, pasi ju kam shkruar në disa komente, në përgjithësi, të vijë guxim aktuale e programit. Ja njohur tonë # include . Dhe vetëm të shpejtë, kjo është e nevojshme apo jo e nevojshme? Audienca: e nevojshme. DAVID Malan: Pra, kjo nuk është e vërtetë e nevojshme. Pra, pse, pse, nuk është e nevojshme? Kështu që nuk ka printf. Vërtetë. Të gjithë ne jemi duke bërë në këtë program është matematika. Kështu që unë në fakt mund të fshini atë. Pra, ju nuk gjithmonë duhet të përfshijë asgjë në në krye të një programi. Pra, le të lehtësuar këtë një pak. Dhe tani vini re se çfarë ky program bën. Jo shumë e interesit. int x = 1. E pra, çfarë është kjo duke bërë? E pra, mendoj se përsëri në modelin mendor nga përpara. Anën e majtë dorën e kësaj shprehje bën çfarë? Krijojë hapësirë ​​për një numër të plotë. Pra, si shumë hapësirë? E pra, ne të ndodhë që të dini tani që ajo është 32 bit. Më parë, një varg ishte teknikisht 32 bit, por më shumë në se në të ardhmen. Por një int është 32 bit. Pra kjo shprehje në të majtë këtu, int x vetëm thotë hey sistemit operativ, jepni 32 bit RAM - njohur ndryshe si 4 bytes e RAM - në mënyrë që unë mund të vënë një numër të plotë në atë hapësirë. Çfarë integer nuk ju doni të vendosni? E pra, vetëm numri 1. int y merr 2, bën të njëjtën gjë e saktë, edhe pse numër është i madh, në aspektin e madhësisë së saj. Numri në vetvete është ende vetëm 32 bit. Kjo është vetëm model i bit është e ndryshme për përfaqësojnë 1 kundrejt 2. int z tani thotë se më jepni një tjetër bit 32, e quajti atë z, dhe vënë përmbledhje e 1 dhe 2 në atje. Kështu që tani po duket z ruajtjen e vlerës 3, dhe pastaj kthehen 0. Tani ky program, e bën atë të bëjë asgjë me interes? Pra, ai në fakt nuk bën asgjë interesante, në ndonjë kuptim, sepse pse? Është bërë disa matematikë. Por kjo nuk është kthyer përgjigje, e drejtë. Është kthyer 0. Kjo nuk është shtypje përgjigjen. Pra, ky program është në thelb i pavlefshëm, si ajo qëndron tani. Është duke bërë disa punë. Ajo do të marrë disa numrin e sekondave, ose microseconds, në drejtuar, por kjo nuk është e vërtetë për ta bërë asgjë të dobishme për njeriun. Pra, le të vërtetë tashmë e hapur math2, ku tani unë jam në të vërtetë shtypjen e rezultatit. Pra, kjo shumë mund të nxirret nga shembujt e tona të mëparshme. Në qoftë se unë dua të bëj disa matematikë të thjeshtë, int x = 1, y = 2. Z është 1 plus 2 tani. Çfarë është kjo do të shtypura nga qartazi? Vetëm 3. Pra, mendje e shëndoshë të shpejtë kontrolloni. Më lejoni të hyni në këtë directory. Pra, cd source1m. Më lejoni të shkojnë përpara dhe të bëjë shkruani math2. Nuk ka mesazhe gabimi doli jashtë, kështu që më lejoni të kandidojë - Nuk a.out--let drejtuar math2. Enter. Dhe në të vërtetë, ai printuar nga 3. E pra, le të marrin një vështrim në një variant të kësaj. Në math3.c, ne tani kemi këtë shembull këtu. Pra, kjo lloj i interesante. Pra, në këtë këtu, përgjigjja do të merrni 1 pjesëtuar me 10, dhe vini re unë kam deklaruar atë si një noton. Pse unë dua që ajo të jetë një noton? E pra, kjo është një pjesë. Ajo do të jetë një numër real. Pra, kjo do të jetë 0.1, me shpresë - 10%, në këtë rast. Dhe çfarë kam pas dua të shtypura jashtë? E pra, kjo përgjigje. E pra, le të ngas përveç këtyre parë. Pra, në anën e majtë, mund të deklarojë një noton, e quajti atë përgjigje. Në anën e djathtë, e ndarë 1 nga 10 dhe vendos se përgjigjen brenda të ndryshueshme. Tani, kjo linjë duket pak më i fshehtë. Por vëreni disa tipare të njohura. % Do të thotë këtu vjen një placeholder. f thotë këtu është një vlerë lundrues pikë, vetëm një e vërtetë numër, diçka me një pikë dhjetore. 0.2 Mjetet çfarë? Çdokush e di nga përvoja e mëparshme? Dy numra pas presjes dhjetore. Pra, ne nuk e kemi parë këtë më parë, por kjo është vetëm një mënyrë për të ushtruar një kontroll pak më shumë mbi printf dhe duke thënë se nuk më japin 30 pikë pas presjes dhjetore, vend jepni vetëm 2. Dhe pastaj le të shkojë përpara dhe të drejtuar këtë. Pra, të bëjë matematikë 3, dhe tani më lejoni të kandidojë matematikë 3, Enter. Dhe kjo nuk është e drejtë. Ne duket se kanë hasur bug tonë të parë të mirëfilltë. E pra, ndoshta unë nuk jam vetëm në kërkim mjaft të ngushtë. Pra më lejoni të shkoj deri këtu, dhe më lejoni të vënë 20 decimal Vendet pikë atje. Dhe më lejoni të përpilojnë këtë, të bëjë math3, të drejtuar. Goxha i sigurt 1 nga 10 e ndarë nuk është 0. Pra, çfarë po ndodh? E pra në rregull, kështu që në fakt nuk ka të bëjë me këtë. Kjo është një mendim i mirë. Kjo është me të vërtetë vetëm një rastësi se ne jemi bërë këtë. Por vetëm për të provuar se kjo nuk është ajo, unë do të kthehet diçka të rastit. A nuk e bëjnë këtë në shtëpi, sepse ajo është vetëm e gabuar. Por të bëjë math3, më lejoni të drejtuar atë. Pra, ka të bëjë asgjë me atë që unë jam kthyer, ka të bëjë vetëm me atë që unë jam shtypje. Por kam dëgjuar atë këtu. Çfarë? Audienca: Pra, ne kemi nevojë për të shkruar numrat në ndarje si - DAVID Malan: Mirë mirë. Pra, ne kemi nevojë për të shkruar numrat pjesëmarrëse në Ndarja këtu si pikë lundrues vlerëson veten. Pra, problemi këtu është si më parë: C, si me një shumë të gjuhë, ka lloje të ndryshme të të dhënave. Dhe këto lloje të të dhënave, për shembull, janë këto këtu. Dhe llojet e të dhënave në fjalë këtu, kur unë lloji 1 dhe pastaj unë lloji 10, ndoshta janë lloje të të dhënave çfarë? Pra, kjo është ndoshta një int, e drejtë? Kjo nuk është aspak një float, sepse nuk ka asnjë decimal pika ose diçka të tillë. Pra me të vërtetë, unë kam një int ndarë nga një int. Pra Gjëja interesante në lidhje matematikë dhe një kompjuter është që në qoftë se ju jeni duke bërë ndarje duke përdorur integers - 1 ndarë nga 10, po është 0.1. Megjithatë, kur ju jeni ndarë një numër të plotë nga një numër i plotë, Përgjigja duhet të jetë gjithashtu një numër të plotë vetëm për shkak se, tani për tani. Dhe çfarë është implikimi pastaj? E pra, në qoftë se përgjigja është e ndarë 1 nga 10 e barabartë me 0,1, çfarë kompjuteri do të bëjë është që unë nuk kam asnjë ide se si për të përfaqësojnë 0,1, sepse kjo është një vlerë lundrues pikë nuk, një integer, por do të pres jashtë gjithçka pas Pika decimale dhe vetëm ju tregojnë 0 në fillim. Dhe fakti se ajo është shtypjen si një pikë lundrues vlerë, kjo është vetëm një gjë estetike. Kjo është për shkak se unë jam detyruar kompjuter për të shkruar këtë si një lundrues vlerë pikë. Dhe me të vërtetë unë kam shpallur atë si një float, por është matematikë ndodh gjatë këtu. Pra më lejoni të vërtetë rregullojmë këtë në një mënyrë mjaft të lehtë. Pse nuk mundem të bëjë vetëm 10,0 dhe 1,0, edhe pse teknikisht unë mund të merrni larg me vetëm duke bërë një nga ato. Tani më lejoni të shkoj përpara dhe të bëjë math3. Më lejoni të shkojnë përpara dhe tani të drejtuar math3, Enter. Dhe tani, oh djali. Tani ne kemi një problem të ri krejt. Pra, më mirë, e drejtë, ne jemi më afër 0.1, por ajo është e qartë gabim këtu? Nëse ne kemi qenë të gënjyer për ju për vite me rradhë, e drejtë? 1 i ndarë nga 10 është në të vërtetë nuk është mjaft 0.1, kështu që çfarë është me të vërtetë po ndodh këtu? E pra ju mund të lloj arsye nëpërmjet kësaj logjikisht. Në qoftë se një kompjuter ka vetëm një sasi e fundme e RAM për të filluar me të, dhe në të vërtetë një kompjuter i vetëm është duke përdorur 32 bit për një lundrues vlerë pikë, ajo qëndron për arsye se me një numër i caktuar i bit, 32 në këtë rast, po, ju mund të paraqesin një shumë të gjëra. Ajo në fakt është katër miliardë vlera të ndryshme mund të jenë të përfaqësuar me 32 bit, 2 të 32, por është ende e fundme. Pra, problemi është se ka një numër të pafund të vërtetë numra, të drejtë. Nëse ju jepni një numër real, unë gjithmonë mund të gjeni ju një pak më e madhe, pak më pak, vetëm nga tweaking Numrat që janë pas presjes dhjetore. Pra, nëse ju nuk keni një numër të pafund të bit, ju ndoshta nuk mund të përfaqësojnë një pafund Numri i numrave reale. Pra, nuk është kjo pasaktësi e natyrshme në kompjuterë, dhe kjo merr morën gjatë gjithë kohës edhe në thjeshtë e Programet e pëlqejnë këtë. Por edhe në disa probleme shumë të vërteta të botës si. Në fakt, le të marrin një moment për të vetëm të marrin një vështrim në diçka që në të vërtetë ka ndodhur në realitet. Ne do të shikojnë vetëm nja dy minuta e parë, dhe pastaj ne do të postoni online link. Por kjo është besëlidhja që vetëm ajo mund të shkojnë keq, shumë sinqerisht, në një mënyrë shumë tragjike, kur këto gjëra nuk janë vlerësuar ose vetëm ne njerëzit bëjnë gabime kur është fjala për këto lloje të dhënat e zbatimit të kompjuterëve modern. [Duke luajtur VIDEO] -Ne tani kthehet në fatkeqësi inxhinierike në mrekulli Moderne. Kompjuter. Ne kemi ardhur për të pranuar të gjitha problemet shpesh frustruese që shkojnë me ta. Bugs, viruset, dhe glitches software janë çmime të vogla në paguajnë për lehtësi. Por në të lartë ushtarake të teknologjisë së lartë dhe me shpejtësi dhe hapësirë aplikacionet e programit, problemi më i vogël mund të jetë zmadhuar në fatkeqësi. Më 4 qershor 1996, shkencëtarët të përgatitur për të nisur një pa pilot Ariane 5 raketa. Ajo mbante satelitë shkencore të dizajnuara për vendosë saktësisht se si fusha magnetike e tokës ndërvepron me erërat diellore. Raketa u ndërtua për Agjencinë Hapësinore Evropiane dhe hiqet nga jashtë objektit të tij në bregdetin e Francës Guajana. -Në rreth rreth 37 sekonda në fluturimin, ata së pari diçka e re po ndodhte gabuar, që ishin nozzles swiveling në një mënyrë që ata me të vërtetë nuk duhet. Rreth 40 sekonda në fluturimin, në mënyrë të qartë e automjeteve ishte në telashe, dhe kjo është kur ata e mori vendimin për shkatërrojë atë. Një oficer i sigurisë varg me guxim të jashtëzakonshme presion button, shpërtheu raketa para se të mund të bëhet një rrezik për sigurinë publike. -Ky ishte udhëtimi i vajzërisë Ariane 5, dhe e saj Shkatërrimi u zhvillua për shkak të një krisje të ngulitura në software Rocket së. -Problemi në Ariane ishte se ka pasur një numër që kërkon 64 bit për të shprehur dhe ata donin ta kthyer atë tek një numër 16 bit. Ata supozohet se numri nuk ishte do të jetë shumë i madh, se shumica e këtyre shifrave në numrin e bit 64 ishin 0s. Ata ishin të gabuara. -Paaftësia e një program software për të pranuar lloj i numrit të krijuara nga një tjetër ishte në rrënjë të dështim. Software zhvillimit kishte bërë një pjesë shumë e kushtueshme e teknologji e re. E 4 rocket Ariane kishte qenë shumë i suksesshëm. Pra, shumë prej programeve të krijuar për të është përdorur edhe në Ariane 5. -Problemi themelor ishte se Ariane 5 ka qenë i shpejtë, përshpejtuar të shpejtë. Dhe software nuk e kishte llogaritur për këtë. -Shkatërrimi i raketave ishte një i madh financiar fatkeqësi, të gjitha për shkak të një gabimi software minutë. Por kjo nuk ishte hera e parë konvertimit probleme dhënat pasur rrënuar teknologji moderne raketash. DAVID Malan: Ne do të lënë atë në atë. Por kjo është testament për të vetëm se sa zbatohen edhe disa nga këto detaje të ulët nivelin që ne kemi filluar të shqyrtuar sot janë. Pra, edhe si ju merrni pak të hutuar ndoshta nga disa Sintaksa dhe arcaneness këtu, të kuptojë se mbi termi ne do të fokusohet vetëm në mënyrën se si zbatohet kjo është për botëve përtej CS. Ne do të shohim se të mërkurën.