>> David J. MALAN: Tehát ez CS50.
És ez volt CS50 saját Colton Ogden, még több, aki a zene lehet
letölteni soundcloud.com/cs50.
>> Így ma már a hangsúly a nagyobb A művészet a programozás.
És mi hol hagytuk ki a múlt héten, amelynek középpontjában
A Scratch, ami ezt a grafikus programozási nyelv.
És a dolgokat le egy alacsonyabb szintre, egy hagyományos programozási
nyelv ismert C. De az út mentén, felismerve,
hogy az azonos ötleteket beszélt múlt pénteken
megismétlődik nem csak ebben a C nyelv, de a legtöbb minden más
hogy nézzük ebben a félévben.
>> Így hívják ezt a dolgot Itt mi utoljára?
Ez a képviselő a nyilatkozatot.
Így hívják ezt a nyilatkozatot.
És ez nem valami.
Ez egy utasítás, hogy a számítógép vagy Scratch lehet végrehajtani.
És ezentúl, hadd is indul hívó valami ilyesmi a funkció,
okokból hamarosan látni fogjuk.
>> Közben láttuk a dolgokat, mint ez.
És ezek általában néven milyen konstrukció?
>> Közönség: hurok.
>> David J. MALAN: Tehát a hurok.
Így elég egyértelmű.
Ez szó szerint azt teszi, amit mond.
És Scratch, ha azt szeretné, hogy teletölteni több puzzle darab ott,
a darab nő fér meg.
És majd meglátjuk, C, hogy akkor nem ugyanaz a dolog.
>> Egy másik típusú hurok, mégis, A Scratch lehet örökké,
vagy van valami szám más megközelítések.
De vessünk egy generalista néz, arca
ez valószínűleg nagyon ismerős, A hurkok általában.
Mark Zuckerberg: Egy dolog, hogy a számítógépek
nagyon jó az ismétlődő parancsokat.
Mint egy ember, azt kap nagyon unatkozik, ha
volt, hogy nem ugyanaz a dolog sokszor egymás után.
De a számítógép nem ugyanaz a dolog millió vagy akár milliárd alkalommal,
és nem fog unatkozni, és képesnek kell lennie folytatni, hogy ki igazán jól.
>> Így például, ha akartam kívánni mindenkinek
a Facebook-on a happy birthday küldött nekik egy e-mailt,
lehet, hogy nekem több, mint egy század ténylegesen írjon ki
az összes e-maileket, hogy mindenki.
De csak néhány sornyi kódot, tudok Van egy rendszer küld egy e-mailt mindenkinek
a Facebook-on, akik nekik boldog születésnapot.
Szóval, ez az, amit hurkok, és miért ők értékes és valami
hogy a számítógépek nagyon jól.
>> David J. MALAN: Tehát, ha voltál a címzett
néhány CS50 és a Dropbox tér az utóbbi időben,
hogy valójában pontosan az, amit mi igen, a kód egészen így.
Mi alapvetően egy nagy táblázatot, amely
emberek már webes felületen az nevét és e-mail címeket.
És írtam egy apró kis kód lehet végighaladni ezeket a címeket
és kiköp egyedi címek ha valaki benyújtott többször.
És azután, küldünk egy automatikus e-mail CS50 a bot,
beleértve a kupon kódot.
>> Most is néztem ez konstrukció utoljára.
És ez egy adott példa arra, mi?
Szóval, igen, egy logikai kifejezés.
És a forma értjük megragadni, hogy is.
Minden ilyen kérdései formában igaz vagy hamis Scratch
fog kinézni egy kicsit valahogy így.
És ezt nevezzük a logikai kifejezés.
Ez valóban igaz vagy hamis, igen vagy nem.
Ez egy módja a választ a kérdésre.
>> És közben lehet használni ezeket a logikai kifejezések belsejében konstrukciók
mint ezek, amelyek a Természetesen vannak feltételei
vagy fióktelepek, közmondásos villa az úton.
És nézd nem csak mint ez, de ők is
már másnak velük kapcsolatban.
És akkor valóban van egy három módon villa az úton, vagy a négy út villa
az úton, egyszerűen fészkelő ezeket a dolgokat,
ahogy látni fogod a Scratch ha még nem tette meg.
És meg tudod csinálni a C is.
>> Vessünk egy generalista nézd meg egy alumnist, is, aki
jelenthet egy másik megközelítés hogy ezeket a dolgokat az úgynevezett körülmények.
>> Bill Gates: Az emberek döntés minden nap.
Például, mielőtt kimész te ilyen van az if utasítást, amely azt mondja,
ha esik az eső, akkor azt kell, hogy a kabát.
És számítógépek csodálatos, ha dönt az ilyen jellegű nyilatkozatok,
hogy végre tudják megbízhatóan azokat a dolgokat, a hihetetlen sebességgel.
És így a számítógépes program valóban egy kis matek és néhány
ha nyilatkozatokra, amennyiben a döntés lesz készült.
>> David J. MALAN: Annak érdekében, Ön is tudja, hogy
emberek, mint Bill Gates, Paul Allen és mások
hogy valóban indult a úgynevezett személyi számítógép
forradalom néhány évvel ezelőtt.
Azt gondoltam, mielőtt fejest a néhány Karbantartás,
mi lenne vonatkoznak a mese az Albuquerque, New Mexico Museum of Natural History
és a tudomány, ahol néhány Bill Gates " és Paul Allen legkorábbi történetek
tolmácsolom hogyan van most A mai PC-k és Mac és így tovább.
Ehhez azonban szükségünk van két önkéntest akik nagyon jó elbeszélés hang
olvasni a forgatókönyvet hangosan.
>> Rendben, mi a helyzet az ott hátul.
Gyere fel.
És mi van előtte itt.
Gyere le.
Vigye magával helyen itt.
Ahogy a srácok jön fel, egy pár adminisztratív bejelentések.
szakaszolási, a folyamat a választás a szakasz,
indul ez Szerdától péntekig.
Bővebben az, hogy ez a jövő Szerdán előadást.
>> Szuper szakaszok, eközben vannak amit kínálunk a jövő héten
ahol a teljes osztály meghívást hogy részt vegyenek a meglehetősen nagy léptékű
szakaszok, még egy kényelmes, egy kevésbé kényelmes.
És fogjuk be az adatokat Az, hogy is, később ezen a héten.
>> Közben szakaszok, maguk, indul
A hét három természetesen nulla index, ami azt jelenti, ezek egy pár hétig
ki.
Szóval ne aggódj.
Ön még nem hiányzott valami ezekhez hasonlót.
Eközben az addig is, ha bármilyen kérdése van adminisztratív,
e-mail magam, és Devon és Gabe és Rob ezen a címen itt.
>> Végül, a probléma be 0, természetesen, ki.
Lehet, hogy észrevette, hogy A kurzus honlapján.
Meg kell adnia a minden kérdésekre adott válaszok
lehet, hogy az út mentén Ismerkedés a probléma meg.
De ha találsz magadnak szüksége van egy segítő kéz,
minden eszközzel részt vesz munkaidőben, Hétfő, kedd, szerda, csütörtök
Ezen a héten az esti négy étkezőben.
Lásd, hogy URL-t is az adatok hol munkaidőben kell lennie.
>> Most Találkozzunk a két vendég itt ma.
Mi a neve?
>> JAY PAUL: Jay Paul.
>> David J. MALAN: Jay Paul, örülök, hogy találkoztunk.
>> Hikari: Hikari.
>> David J. MALAN: Hikari?
>> Hikari: Hikari.
>> David J. MALAN: Hikari.
Örülök, hogy találkoztunk is.
Jay Paul és Hikari rendelkeznie Előttük a következő zene
áll két írás, amit nyomtatott Ma reggel a New Mexico
Museum of Natural History és a tudomány.
És mit gondoltam Én ezt a felső
A kísérje el a szavalat A forgatókönyvet, és ez a történelem
néhány képi, nincs meglepetés.
>> És mit tettem előre A prehighlight a script
mit kell olvasni, és mit kell olvasni.
És mi lényegében csak alternatív bekezdések.
Tehát ez nagyon hasonló lehet, hogy volna az angol osztályban.
Ez tényleg kényszerítsék a közönség hinni a mese itt.
Mehetünk?
Tehát a történet itt van, van egy BASIC, és kezdődik a Cambridge-ben.
>> JAY PAUL: Tél volt, 1974-ben, Cambridge, Massachusetts
ahol a tél lehet hideg.
A szakállas, hosszú hajú főiskolai lemorzsolódás neve
Paul Allen volt drudging át Harvard Tér, elmerült a gondolataiban.
Fő gondja akkoriban az volt, hogyan lehet a barátja, Bill Gates,
abbahagyni a tanulást, és menj az üzleti vele.
Hikari: A két már elment egy sor üzleti vállalkozások
együtt, kezdve Lakeside iskola Seattle-
ben került sor szabad számítógép idő tesztelni PDP-10 számítógépen a helyi idő
közös vállalat.
A legújabb terv az volt, hogy kilép iskola és a forma egy szoftverfejlesztő cég.
Allen elhagyta Washington Állami Egyetemen.
De az utolsó pillanatban, Gates úgy döntött, hogy kibír Harvard.
>> JAY PAUL: Azon a napon, átkelés Harvard Tér, Allen észrevette a január,
1975 kérdés a Popular Electronics A Föld megállás főcím,
A világ első Minicomputer Kit a rivális kereskedelmi modellek.
Alatta a főcím volt a kép egy kis doboz
díszített fények és kapcsolók.
Ez volt az úgynevezett MITS Altair 8800.
És Allen tudta, hogy ez mit ő keresett.
>> Hikari: Napok vita követte.
Allen és Gates megértette a jelentősége az Altair.
Ők beszéltek sokszor a mikroprocesszorok
és arra vártak, hogy mi volna tenni velük.
Most volt egy minicomputer kit a fedelet a Popular Electronics.
Úgy tűnik, nem volt még szoftver.
Azt képzelte a nemzet programozók csökkenő a MITS.
És így hívják Ed Roberts, A cég vezetője,
azt állítva, hogy egy változata a BASIC programozási nyelv majdnem kész
Az Altair.
Ők nem.
És Roberts tudnia kellett, hogy nem.
Kezdett 10 hívásokat a nap az emberek, akik a BASIC majdnem kész.
És a készlet válasz ez volt: "Az első ember,
aki felbukkan egy működő BASIC kapja meg a szerződést. "
>> JAY PAUL: Gates és Allen még soha nem látott egy Altair.
Ők soha nem is látta az Intel 8080 mikroprocesszor
középpontjában az Altair.
De néhány évvel korábban Allen írt egy programot
a mainframe számítógépen emulált működését a korábbi Intel
mikroprocesszor.
És ezúttal ők nem ugyanaz a dolog.
>> Hikari: Intel 8080 kézi az oldalán,
Allen leült egy Harvard PDP-10 számítógép
és írta az emulátor és szoftver szükséges eszközöket, hogy nem a programozás.
Eközben Gates nem járt osztályok és szentelte magát
tervezése a BASIC, segítségével minden trükköt
tudta, hogy a méret lent 4 kilobyte.
>> JAY PAUL: Out Albuquerque, Ed Roberts hívott Gates
kért adatokat arról, hogy a Altair kezelni speciális rutinok.
Soha senki nem kérte, hogy korábban.
És Roberts kezdett érdeklődni.
>> Hikari: A fejlesztés eszközöket és a tervezési kész,
Gates és Allen írt A kódot a PDP-10,
besorozzák másik Harvard diák, Monte Davidoff, írni matematikai rutinok.
Miután egy utolsó éjszaka programozás, Allen kapott a repülőn
ürítse ki a BASIC a MITS.
Töltötte a sík út ki aggasztó.
És vissza Cambridge Gates aggasztó.
Már tesztelték a BASIC és azt már dolgozott az emulátor.
De mi van, ha az emulátor volt a baj?
JAY PAUL: Amikor a repülőgép közeledett Albuquerque,
Allen rájött, hogy a BASIC, most szépen foglalt
egy kis tekercs lyukasztott papír szalag, akkor
haszontalan nélkül külön program, az úgynevezett a loader, hogy
megmondja az Altair hogyan olvasni a papír szalagon
betáplálni a telex gép.
Elővette a notebook és gyorsan felírta a loader programot
Assembly nyelv, majd kézzel fordították, hogy az 1 és 0
Az Altair értené.
>> Hikari: Allen számítottam tiszta, kicsi, high-tech cég
által működtetett öltönyös férfi.
Szóval meglepődött, amikor Roberts találkozott őt a repülőtéren néz ki, mint egy tanyán
kezét.
Roberts is meglepődött.
Amikor leesett a Harvard programozó egy drága hotel,
Allen kellett vallanom, hogy ő nem engedheti meg magának a szobát.
>> JAY PAUL: MITS, maga volt található egy poros strip mall.
Belül egy zsúfolt munkapad volt Altair
feltöltsék 5 kilobyte memória és egy kábellel összekötve
a telex gép.
Roberts és főmérnök, Bill Yates, várta várakozóan
mint Allen toggled a loader programot az Altair.
A telex kezdte szórakoztak ahogy húzta A papírszalag át a szalagot olvasó.
Ez volt talán 15 perc alatt betölteni a programot.
Majd a telex hirtelen nyomtatott memória gyors, akkor a kész gyors,
és Allen kezdett gépelés néhány teszt parancsok.
Mindenki legnagyobb meglepetésére, A szoftver működött.
Voltak hibák, természetesen.
De a legfontosabb dolog az volt, hogy működött.
>> Hikari: Később, útban a $ 3,00 ebéd Pancho egy darázs repült
az ablakban a felvétel teherautó és megcsípte Allen a karját.
De ezen a ponton semmi tudta elrontani a hangulatot.
Az Altair most már az alapvető, a első kereskedelmi szoftver az otthoni
számítógép által készített Paul Allen és Bill Gates, üzleti, mint a Microsoft.
>> David J. MALAN: Sok köszönhetően a két olvasó.
>> [Taps]
>> David J. MALAN: most van a választás,
mielőtt elmész, egy csillogó vagy a fény a dark-- ó,
várj egy percet, várj csillogó és a fény a sötétben elefánt
a CS50 saját Cheng Gong.
Hikari: Ó, köszönöm.
David J. MALAN: All Rendben, köszönöm szépen.
[Taps]
David J. MALAN: Tehát igaz történet.
Ez azt jelenti, hogy az összes ilyen gépek és a könnyedség, amellyel mi
használja őket, és most, hogy biztosra, tényleg
itt kezdődött, csak néhány lépésnyire ebből tényleges színház.
És most ma, ha már nem volt, ez Maxwell Dworkin, a számítógép
tudományok épület, is a sarkon.
És a második emeleten a jelen épületben Nincs hang három oldal
Az eredeti forráskód hogy Bill Gates és Paul Allen írta.
Sőt, ha használat ráközelít A látható nem csak
nevüket a eredeti típus, hanem
az aláírást, hogy díszíti a Néhány évvel ezelőtt, amikor utoljára meglátogatott.
>> De mi volt különösen meggyőző erről az, amit meghatározott a teendő
az volt, hogy írni egy programot, amely lehetővé teszi más emberek írni
saját programjaikat.
Abban az időben minden ott volt ez Altair géppel készült MITS.
És szükségük volt valamilyen módon így könnyen az amatőrök és az emberek
olyan, mint mi ebben a teremben, hogy valóban a program , hogy nem feltétlenül a megértés
Assembly kód, vagy a gép kód, vagy Isten ments, 0s és 1s.
Mi programozók, mint azok ebben a teremben, mi
szeretné, hogy képes kifejezni magunkat sokkal inkább pszeudo kód
akkor is, ha ez egy kicsit nit válogatós, mint beszélgettünk múlt héten.
Nem akarjuk, hogy kódot írni, mint ez, amely Paul Allen és Bill Gates volt.
Mi ehelyett akar írni a kódot, hogy az úgy néz ki, egy kicsit felhasználóbarát.
>> Most ez a nyelv az úgynevezett BASIC.
És a sorszámok vannak, amit használja, hogy egyszerűen számlálni a sor kódot
hogy írsz.
Még csak nem is kell Ehhez manapság.
De látható itt hogyan PRINT "hello, world"
valóban feltehetően nyomtatni, hogy csak.
És akkor mi van Bill és Paul nem volt képessé az embereket, hogy írni a kódot, mint ez
helyette of-- ha veszel egy pillantást a számítástechnika wall-- kód, mint ez.
>> Sőt, az utóbbi időben CS50 lehetőségük volt
hogy üljön le a professzor Harry Lewis A Számítástudományi Tanszék, aki
valójában tanított Bill Gates néhány évvel ezelőtt,
és itt áll előtt a három oldalnyi részletekben.
Vessünk egy pillantást.
>> HARRY LEWIS: Mi van itt egy felsorolása korai szoftver
írta Bill Gates és Paul Allen, a Microsoft alapítója.
Így a kód érdekes két okból.
Először is, ez lett A Microsoft első terméke,
amely tolmácsként A BASIC programozási nyelv.
Másrészt, ez volt az egyik első próbálkozás
hogy hozzon létre egy tolmács olyan közönséges ember jönne személyi számítógépek.
>> Így Bill Gates volt egyetemi Harvardon.
Kezdtem tanítani a Harvardon 1974-ben.
Erre azért került sor 1975-ben.
Így volt ez már az ő karrierje és a karrierem elején.
Igazából tanított Bill A tanfolyam ebben az időben.
Paul Allen nem volt Harvard diák, de
volt egy középiskolában osztálytársa Bill Gates.
Ha jön, és keresse meg A lista, akkor
valójában talál egy harmadik név, Monte Davidoff,
aki Gates osztálytársa itt a Harvardon.
>> OK, így itt van egy érdekes megjegyzés itt.
Azt mondja: "A 4K törölheti négyzetgyök de hurkok még mindig működik. "
OK, így ez azt jelenti, hogy Két módon lehet fordítani ezt a programot.
Az egyik az volt, hogy fut egy változata Ennek Altair számítógép
hogy még csak 4K szavak memória, 4096 szavait memória.
De a nagy verzió volt 8K.
És mi ez mond hogy a 4K verzió
meg kellett törölnie kell néhány kódot, hogy illik.
És az egyik dolog, Ez lenne hagyni
lenne a négyzetgyök rutin.
De úgy tűnik, a A hurkok kellene még
működik akkor is, ha éppen összeállításakor le mindössze a 4K változata a számítógép.
David J. MALAN: Tehát az egyik téma, mint látni fogjuk a számítógép-tudomány,
ez a fogalom réteg és az absztrakció,
és tényleg állva a vállán Az emberek, akik jöttek előttünk, nem
ellentétben néhány a Bill Gates és Paul Allen elbeszélő itt.
És mit jelent ez az hogy ma már magától
biztosított, hogy a dolgok valóban könnyebb számunkra, hogy írjon kódot.
Valóban kódot, ahogy mondta pénteken, technikailag úgynevezett forráskódot.
És ez az angol, mint a szintaxis ez több, megfelelő és jól meghatározott
mint valami, mint a pszeudo kód, ami nincs hivatalos meghatározás.
>> És ma mit fogunk összpontosítani a forráskód
úgy néz ki, mint ez, ami Igaz első pillantásra
úgy néz ki, teljesen rejtélyes.
És őszintén szólva, ez így esztétikailag bonyolultabb, mint az alapul szolgáló program.
Mindez a program nem, emlékszem, az, amit mondtunk?
Csak kiírja, hogy "hello world".
És mégis, nézd meg az összes cucc van szükségünk körülveszi, hogy nagyon egyszerű mondat.
De hamarosan az összes ezeket a sorokat, és több
teszi sokkal jobban értelme van.
>> És az áramlás a következő.
Amire szükségünk rendelkezésünkre az, hogy kódot, mint forrás
kódot, amit most láttam.
És szükségünk van egy új program fut át.
Szükségünk algoritmusokat konvertálni forráskód, mint ez,
a tárgykód, 0s és 1s.
Más szóval, mi fogunk tanulni ma
hogy hogyan kell ezt csinálni, írni forráskód up felső,
adja át az input egy speciális néven ismert program a fordító,
és fogunk termelni tárgykód.
Ami csak egy divatos módon mondván, mi lesz valami
hogy néz ki, adja át egy program neve a fordító,
termelő tárgykód úgy néz ki, mint ez.
>> Tehát ezek a szó szoros értelmében A minták 0s és 1s
megért egy Intel számítógép ezekben a napokban,
hogy ha értelmezi a CPU, az agy belsejében egy számítógép,
szó szerint ki kell nyomtatni, egyszerűen, "hello world".
Most ez így még 0s és 1s, mint te remélem szükség lehet erre.
De csak azért, mert mi építünk egy jó üzlet a komplexitás
hogy tudjuk ezentúl vesznek.
Más szóval, egy csomó okos emberek adtak nekünk egy csomó klassz eszközök
és hatékony szoftvert, amellyel most, hogy a projektek a miénk.
>> Tehát kezdjük.
Mivel múlt pénteken, és A probléma Set 0 ezen a héten,
akkor lehet játszani a világ úgy néz ki, mint ez.
A mai naptól és a probléma Set 1 a jövő héten, a kód
fog nézni egy kicsit rejtélyes, de funkcionálisan is
lesz ugyanaz.
Tehát értesítés, tetején Scratch, alsó C. Őszintén szólva Scratch
sokkal inkább felhasználóbarát barátságos és megközelíthető.
De ha összehasonlítjuk vizuálisan felső alul, van egyfajta 00:59
közötti levelezés puzzle-darabokat és a nyelv
vagyunk arról, hogy játszani.
Különösen, mondjuk, a kék puzzle darab felfelé top,
látszólag megegyezik azzal, amit kulcsszó vagy speciális kifejezés ezen a nyelven
az úgynevezett C?
Közönség: printf.
David J. MALAN: printf.
Ez azt jelenti, formázott nyomtatást.
És ez még csak a képzelet szóval printf C
lesz egy nyilatkozatot, vagy a funkció amely kiírja valami a képernyőn.
Mit nyomtatnak a képernyőn?
Bármit is mondani, hogy belülről Az idézetek, belsejében zárójelek.
Tehát újra, igaz, van egy csomó dolog
hogy meg kell szem előtt tartani, zárójel, idézetek, pontosvesszővel
és mindezt.
De minden, ami egyfajta Az a lényeg.
Az érdekes elvihető most az, hogy a mondjuk blokk Scratch
nagyjából egyenértékű a printf nyilatkozatot C.
>> Eközben a sárga puzzle-darab up top, amikor a zöld zászló kattintott,
valószínűleg azonos milyen kulcsszó itt?
Közönség: Main.
David J. MALAN: Tehát fő.
Lehet, hogy int, talán semmis.
De fő fajtája a hangok, mint a ez fontos, és valóban az is.
Tehát, amikor a zöld zászló csattant , ismét a puzzle-darab
hogy indul egy teljes Scratch programot.
De mi lesz most kezdődik hívás hogy fő, ez a funkció az úgynevezett fő.
>> Most közben fogjuk általánosítani ezt az alábbiak szerint.
Nevezhetjük mondjuk a funkciót.
És lehet, hogy néz ki különösen, mint ez.
Nos, mi a hurok?
Ha meg akarjuk kezdeni konvertáló vagy fordítás több Scratch C,
ez a dolog itt nyilvánvalóan csak azt mondja: "hello world" örökre.
Tehát, ha társítani ezeket szkriptek egy macska a Scratch,
ez csak fog tartani azt valamilyen rajzfilm buborék,
"Hello world, Helló világ, helló világ, "ad nauseum, örökre.
Ha azt akarjuk, hogy valami hasonló C, ez meg fog nézni egy kicsit rejtélyes.
De tudjuk elérni ugyanazt a eredményeket, majd végül
megtudja, a szintaxis, mint ez.
Fogom használni printf újra, mert a végén a nap
Azt akarom, hogy print "hello world".
És én látszólag egy kulcsszó, hogy nem örökre.
Ez inkább a szó közben.
De csak szemantikailag a Angol, míg a fajta
azt sugallja, valami hurok vagy ciklus.
>> Annak érdekében, hogy történetesen A kulcsszó, hogy a C használ.
És bár igaz, miért míg igaz hatékonyan jelent örökre?
Nos, míg, ahogy hamarosan értékelik a több,
van ez a zárójeles mellette ahol meg lehet tenni a logikai kifejezés.
És mindaddig, amíg az kifejezés igaz, ezt a kódot,
lapokon a két kapcsos zárójelek ahogy hívjuk őket,
majd csak folyamatosan fut újra és újra.
>> Tehát igaz, igaz.
Tehát míg a valódi eszközök csak ezt örökké.
Ez majdnem egy hülye építeni, hogy kifejezze magát.
De nem volt örökké kulcsszó C. Volt közben.
És ott volt egy nagyon egyszerű Logikai kifejezés, mint az igazi.
És ez, majd meglátjuk, éri el ugyanazt az eredményt.
>> Hogy mást lehet, hogy végre a hurok?
Nos, lehet, hogy Scratch kemény kód egy bizonyos számú
iterációk a hurok itt.
És pontosan ez az, amit mi talán nem ez a verzió a C,
amelynek van egy úgynevezett hurok.
És a for ciklus itt folyik segítségével navigálhat, kissé rejtélyesen,
Az érték 0-fel a, de kevesebb, mint 10.
>> Most változók Scratch.
Lehet, hogy nem kellett volna alkalom, hogy használja ezeket.
De mi az a pont, az általános, A változó mondtunk a múlt héten?
Mi ez?
>> Közönség: pont.
>> David J. MALAN: ponthoz?
Oh, pont.
OK, nyomon követése pont, például egy játékban.
Vagy még általánosabban csinál amit a változó?
Mi a haszna őket?
>> Közönség: Memory.
>> David J. MALAN: Igen, a memória.
Ez tárolására valami.
És az a fajta ostoba vizuális használtam utoljára volt ilyen üveg tál.
És ha azt akartuk, hogy tárolja valami belsejében egy változó,
például most a érték hat, mert
Hat ping-pong labdák itt.
Ez csak valami tárolás tartály, amely a motorháztető alatt
valósul bitek, 0-ák és 1-esek, azonban a számítógép éppen erre.
>> Így Scratch, ha szeretnénk, hogy a változó,
tudjuk használni egy narancssárga blokk, mint ez.
Hívjuk, hogy counter ebben a konkrét esetben.
Én inicializálja azt 0-ra.
És mi az én akkor csinálni?
Örökre, mondjuk számláló, ami ha játszani azzal a Scratch,
akkor csak látni Scratch.
A macska vagy bármi jelmez teszel neki fog beszélni a számot kérdéses.
>> Változás számláló 1 mint növelésével 1.
És ez lesz a számít, amit akkor mi van?
0 til végtelenig, vagy míg Scratch szünetek,
vagy addig, amíg valami elveszti érdeklődését a figyel
milyen magas is valójában számít.
>> Tehát hogyan tudnánk konvertálni a C?
Meg fog nézni egy kicsit rejtélyes.
De ismétlem, ha megnézi az egyes Ezeknek a vonalaknak külön-külön
Ezek a fajta felállás általában.
Tehát látszólag int fog néhány speciális jelentése C.
Majd meglátjuk, hogy az újra.
Mellesleg azt jelenti egész.
Tehát ez csak azt jelenti számát.
Szóval ez a fajta üvegtál akarok, egy
hogy képes tárolni a számokat, nem ping-pong labda.
És én fogom használni az egyenlőségjel ott hozzárendelni a 0 érték.
Szóval ez elég, mint a beállított számláló 0, de a C.
>> Közben, míg igaz, hogy volt egyenértékű, persze, hogy örökre,
annak ellenére, hogy ez egy kicsit rejtélyes, majd belül a kapcsos zárójelek.
És azt lehet gondolni ezeket kapcsos zárójelek, amely beírhatja a billentyűzeten,
mivel nagyon is, mint a görbület ezeket a sárga hurok blokkokat Scratch.
Ez magában foglalja több sornyi kódot.
>> Printf kezd egy kicsit ijesztő most, mert
hogy nem csak idézi zárójelben.
De mi mást is új szintaktikailag ebben a példában?
Van egy százalék d.
És akkor backslash n van.
Mi nem látjuk, hogy korábban, még bár nem említette.
Aztán ott van a vessző.
És akkor ott van a számláló.
>> De majd meglátjuk, csak a pillanatban, hogy ez csak
szabványos szóval nyomtatása "Decimális szám", idézet, idézet vége,
néhány decimális szám.
De fogom mondani később hogy mi decimális szám.
Tehát az a tény, hogy van egy vessző ebben a sorban mondás printf,
azt jelenti, megy előre, és a nyomtatási néhány decimális szám.
Ja, és mellesleg, ez a szám függetlenül az értéke változó.
És így, hogy ez a több világos, akkor egy példát
nemsokára bevonásával pontosan printf összefüggésben a valódi C programok.
>> Most csak azért, hogy lezárja bizonyos Ezen konstrukciók.
Logikai kifejezések, akkor lehet, hogy nem alkalom, hogy ezeket a programban
de lehet, hogy nagyon jól, különösen, ha a körülmények.
És így ez a két példa Scratch értem, ha x kisebb mint y,
vagy ha x kisebb mint y és y kevesebb mint z, hogyan tudnánk fordítani, hogy?
>> Nos, a C ez csak fog kinézni, mint ez.
Egy kicsit rejtélyes, több zárójel, furcsa jellel is jelölhetünk, de alapvetően
A gondolatok olyan egyszerű, mint azok vannak a puzzle-darabot világ.
Mi bejelöli ha valami kevesebb, mint valami más.
>> Mit szólnál körülmények között?
Dióhéjban angolul, mit jelent ez a darab Scratch kód nem mondanál?
>> Közönség: Összehasonlít két számot.
>> David J. MALAN: Összehasonlít két számokat, és ha x kisebb mint y
azt mondja, annyira.
Ha x nagyobb mint y azt mondja, mint sok, más
ha x egyenlő y azt mondja, annyira.
Most hol x és y származik?
Ki tudja.
Ez a darab a Scratch kód az adott környezetben.
De mit akarunk csinálni most lefordítani ez csak egy pillanatra látni.
>> Így kapsz kényelmes ezen a héten Probléma Set
0 játszani ebben a világban a bal oldalon, észre
hogy az ötletek nem változik ezen a héten vagy a következő, vagy azon túl.
Mi egyszerűen csak a írásához dolgok
más módon a mi billentyűzet helyett a képre.
>> Tehát, ha x kisebb mint y, és van valami zárójel ott,
akkor van egy kis kapcsos zárójelek ismét, hogy milyen beépítsük
csakúgy, mint a sárga puzzle darab van.
És fogok printf x kisebb, mint Y, és így tovább.
>> Milyen szép a C, mint látható itt,
az, hogy nem kap ez fészkelő, fészkelő, fészkelő ez feltétlenül
majd nyomja a kódot a megfelelő.
Helyettük mindent felállás szépen tetszik.
De ez csak egy esztétikai részletesen látni fogjuk ismét nemsokára.
>> Rendben.
Így jutunk vissza ez rejtélyes keres a program.
Nézzük valójában írni egy kis kódot.
Most, hogy megy a kódot írni?
Annyi éven át, amit tulajdonosa Mac vagy PC, asztali vagy laptop,
már valóban volt képes írhatunk programozás kódot.
De akkor valószínűleg hiányzik egy speciális program.
Akkor biztosan kódot írni.
De nem feltétlenül, ki a dobozból,
átalakítani, hogy a forráskód a tárgykód, 0s és 1s
nélkül, amit a számítógépen?
Közönség: Compiler.
David J. MALAN: Tehát egy fordító, jobbra.
Most a legtöbb, akkor valószínűleg nem maga a fordító,
soha le a fordító.
De látni fogod azt akkor töltse le mint a legtöbb más szoftver.
A világ a Mac OS, lehet, hogy letölteni vagy letöltött már
úgynevezett Xcode vagy GCC vagy csenget.
Ha jön a A Windows a világ lehet, hogy
letöltött Visual Studio, Visual Basic, a környezet, mint ezt.
Van több tucat fordítóprogramok ezekben a napokban, hogy lehet használni.
De a rövid itt az, hogy ez lenne a fájdalom
és, őszintén szólva, a technológiai rémálom száz
Az emberek különböző számítógép konfigurációk az összes
beállítani a gép pontosan ugyanúgy
hogy mindannyian ugyanazon az oldalon.
>> Tehát mi, hanem csinálni A CS50 is adunk
szabványos környezet, a Linux környezetben ez
majd meg egy kicsit valami ilyesmi.
Látni fogod, több ez a Probléma Set 1 specifikáció, amely
megy online péntek este.
>> És hogy ez mit jelent az, hogy ezentúl
lesz, hogy képes legyen töltse le és telepítse a programot
úgynevezett CS50 Appliance.
És fogsz letölteni és telepíteni másik program neve
a hypervisor, amely csak egy divatos módja ennek elérésére.
Akár saját Mac vagy PC, vagy a Linux számítógép vagy a Solaris számítógép,
vagy bármi őrült üzemeltetési rendszer futsz,
fogsz tölteni egy programot úgynevezett hypervisor, ami
fog futni a CS50 Készülék a számítógépen
Nem számít, milyen operációs rendszer van.
Egy más szavakkal hypervisor átalakítja a dolog, hogy milyen nyelven,
bármilyen utasítást a saját számítógép megért.
>> Tehát ez a réteg.
És ismét, ez a fajta A tematikus számítógép
tudomány, az épület tetején a dolgokat.
Lehet, hogy a Windows-t.
Lehet, hogy a Mac OS.
De jövő héten kezd te fog letöltött
a szabad szoftver úgynevezett hypervisor.
Fogsz letöltött egy darab A szoftver az úgynevezett CS50 Appliance.
>> Ez fog futni a hypervisor, amely fogja futtatni a számítógépen.
És a végeredmény hogy mindannyian
Van egy egyszerű ablak, mint ezt a Mac vagy PC
hogy ad nekünk az illúziót minden fut ugyanazt az operációs rendszert,
nélkül bármely egyéb hatással van a számítógép.
És akkor teljes képernyőn , és lényegében viselkedik
mintha fut egy operációs rendszert, a Linux,
ami pontosan a CS50 Appliance alapul.
>> Szóval valóban használja ezt a Most, hogy írjon egy programot.
Írhatsz egy programot a Microsoft Word.
Írhatsz egy programot a TextEdit, vagy Notepad,
vagy WordPad, vagy elég sok olyan szó feldolgozó program, amit valaha használt.
De a valóság az, hogy nem szabad használat valóban ezen programok bármelyikének.
Ön bizonyára nem kell használni valami, mint a Microsoft Word, amely
rendelkezik merész néző dőlt, és nagyobb betűk kisebb betűk,
mert a számítógép nem érdekel sem az.
Minden a számítógép fog törődni az
Angol mint utasítás C nyelven írt
>> Szóval, mit fogunk csinálni benne A CS50 Appliance
van egy program szabadon rendelkezésre áll, és ez
előre telepített ebben készülék, az úgynevezett Gedit.
És Gedit csak egy szuper egyszerű szövegszerkesztő, mint a Mac OS TextEdit,
mint például a Windows Notepad hogy fog meg egy kicsit valahogy így.
>> Szóval valójában nem nézd diák ezt.
De nézzük tényleg megy a környezet is.
Én megyek előre, és jelentkezz be, ebben a másik ablakban,
az én CS50 Appliance, amit már előre van telepítve a laptop itt.
>> Figyeljük meg, hogy, mint a Windows és Mac OS, akkor van néhány menü.
, Mint a Windows, hogy hozza le ott, hanem
A Mac OS, amely helyére teszi le ott.
De a valóság az, hogy ez mindenféle ugyanaz.
És itt van egy egész csomó szoftver.
Van Dropbox.
Van egy csomó kiegészítők, grafikai programokat, hogy mi lesz
a későbbiekben a kifejezés a probléma készletek.
Van egy böngésző beépített, így hogy ez egy teljes értékű számítógép
belsejében egy számítógép.
>> De fogom kattintson erre legbaloldalibb fehér ikon van,
amely az ikonra Gedit.
És ez meg fog nyitni egy ablakot amely három panel hozzá,
a bal oldali, a felső egy, és a legalsó.
>> Most már ezen a jobb felső sarokban az egyik, hogy Fogok valójában írni egy kis kódot.
Szóval ezt ,.
Én megyek a File, Save.
És lehet, hogy soha nem láttam az adott ablak előtt.
De ez olyan, mint a Mac OS és a Windows.
Ez csak egy ablak az összes mappa
hogy van benne az a számítógép.
>> És én fogom megmenteni a fájl hello.c.
És én megyek előre, és kattintson a Mentés gombra.
És most észre van egy fül A bal felső hívott hello.c.
Így valószínűleg elég ismerős is, ha már nem
használják ezt a különleges programot, mielőtt.
>> És most megyek, hogy írja be azokat meglehetősen rejtélyes parancsokat
hogy láttunk egy perce.
Közé tartozik, standard I / O.h.
További információk, hogy hamarosan.
Int main üres, nyitott göndör zárójel, zárt zárójel.
Aztán belsejében ott azt hiszem ahol volt "hello world" pontosvessző.
És most menteni.
>> Tehát ez egy olyan program C-ben írt, írt, ezért a forráskódot.
De nem csak futni a program.
Valahogy szeretnék duplázni kattintson egy ikonra valahol,
de nincs ikon létezik más mint a forráskódban.
Mi az, megint, ez a folyamat most, hogy Meg kell futtatni ezt a fájlt át?
Közönség: Compiler.
David J. MALAN: Tehát a fordító.
Tehát a különböző számítógépeket Ehhez különböző módokon.
De mit tettünk itt a CS50 Appliance ez
képviselője, hogyan lehet Ehhez számos különböző rendszerek,
az Én csak fog futtatni egy parancsot hívott make.
, És a szó szoros értelmében fog tenni.
Csinálj nekem egy programot.
>> Tehát, hogy nem fog fut a fordító nekem.
És a program neve Azt szeretnénk, hogy a Hello.
Most, hogy egy program.
, És elég okos ahhoz, hogy észre, hogy ha azt mondom, hogy szia,
ez fog kinézni automatikusan Egy nevű fájlt hello.c
csak azért, mert ez a ahogy ez beállítva.
>> Tehát, amikor már az Enter leütése itt, ez őrült rejtélyes vonal csak most végre.
És hidd el, mielőtt hosszú, belül csak néhány nappal,
meg fogod érteni, mi minden Az, hogy hülyeség eszközök.
De most, csak tudom, hogy, hogy kiváltott végrehajtása a fordító.
Más szavakkal, úgy találta, a fordító a számítógépen
az előre telepített A CS50 Appliance
hogy mi adja neked a probléma Set 1.
És aztán hello.c mint bemenet, és elő látszólag
0s és 1s kimenetként.
>> És alapértelmezés mit csinál ez takarít azok 0s és 1s nevű fájlt helló.
És bár ez a szintaxis is lehet, hogy lehet új neked, egyszerűen azzal, hogy pont
slash Helló lesz a eszközöket, amelyekkel én vezetem ezt a programot.
>> Most és legalább egy-két A hét szinte minden program
Írunk lesznek a fekete-fehér szöveg ablakokat.
Nem egér, nem csattanó, nincs ablak, nincs ikonok.
Fogjuk, hogy ez egyszerű és elsősorban a mögöttes gondolatok
kezdetben mielőtt eljutunk valami magasabb szintjén, például,
mint a kitörni játék, hogy beszéltünk körülbelül az első előadás a múlt héten.
>> Így amikor az Enter leütése itt, ez egyenértékű egy szöveges környezetben csak
hogy duplán kattintva egy ikon nevű helló.
Mit vársz akarat történni, ha az Enter leütése akkor?
>> Közönség: Nem lesz print "hello world".
>> David J. MALAN: Remélhetőleg kiírja a "Hello World".
És valóban így volt.
Most van itt egy kis rejtélyes szintaxis itt.
Nézzük hátra mindössze egy pillanatra, és nézd meg, mi
nem tudja elindítani következtet csupán bütyköl, próbál, és nem,
arról, hogy mi folyik itt.
Mit tegyek, ha megszabadulni a backslash n?
Most néhányan közületek, akik már programozott előtt valószínűleg
azonnal tudni, hogy ez mit jelent.
De azoknak, akik már soha programozott korábban,
legalábbis azt gondolja, hogy mi folyik változtatni, amikor ismételni ezt a programot?
Szóval megyek vissza az én kis fekete-fehér ablak, amely
az ablak, amelyben Tudom fordítani ezt.
Megyek újrafordítani helló.
Megyünk, hogy az azonos rejtélyes sorozat parancsok.
És én fogom csinálni pont perjel helló.
És most valaki, ha lenne, aki soha nem programozott korábban,
mi más lehet ebben az időben?
Igen.
>> Közönség: Ez nem áll le nyomtatás "hello world".
>> David J. MALAN: Ez megy hogy-- sajnálom?
>> Közönség: Nem fog megállítani a nyomtatást meg?
>> David J. MALAN: Nem fog állítsa le a nyomtatást "hello world".
Tehát nem egy rossz ötlet.
Más ötlet?
Igen.
>> Közönség: Hibaüzenet?
>> David J. MALAN: Error üzenet, OK, lehet.
Mi van még?
Közönség: Lehet, hogy nyomtassa ki a konzol a pontosvessző is?
David J. MALAN: Lehet nyomtatni a konzol a pontosvessző is.
Szóval lehet, hogy a backslash akkor valami fajta terminous ez fontos.
Minden más gondolatok?
>> Tehát minden jó ötletet.
És valóban, ez lesz hogy egy hibaüzenetet.
Ez talán a legvalószínűbb hogy a válasz általában
A következő hetekben ahogy megtanuljuk kódot.
>> De most ne feledjük, hogy a számítógépek csak, hogy mit mond nekik, hogy nem.
Ugyanúgy, mint a nevetséges mogyoró a vaj pl.
A humán számítógépeket csak feltételezett arra, amit mondtam nekik, hogy nem.
Tehát ebben az esetben, ha ne mondd el a számítógép
mozgatni, hogy a villogó kurzort a következő sorban, ez nem fog csinálni.
Tehát, amikor elindul a program Most veszi észre a különbséget.
>> Úgy néz ki, mint egy bogár.
Ez egy esztétikai hiba, talán.
De mi a különbség ezt kimenet szemben az utolsó nyilvánvalóan?
Igen.
>> Közönség: Nem csinál egy új sort.
>> David J. MALAN: Nem csinál egy új sort.
Most azok, akik Van talán készült weboldalak
előtt, lehet, hogy tudja, a BR tag vagy a paragrafus,
nagyon hasonló szellemben.
A böngésző figyelmen kívül hagyja, amíg mondani, hogy pontosan mit kell csinálni.
Hasonlóképpen, a nyelv, mint a C csak csinálni, amit te mondasz, hogy igen.
>> Így az oka, hogy Ezekben a példákban az összes,
eddig, van ilyen véletlenül volt ez a backslash
ott, ez az eszköz amellyel ki magad
mint egy új sor karaktert, hogy úgy mondjam.
És tudod milyen értékelni, talán, hogy ez meg ilyen hülye
ha mást nem.
Ha akartam egy új sort, csak Enter használatával, majd a kedves
A mészáros a kód ilyen Nem igazán dörzsölje meg a helyes utat.
És akkor is, ha nem igazán érdekel, ezen a ponton,
észre fogod venni, hogy ez nem egy különösen
jól néz kódrészletet.
>> És akkor mi van a világ határozott évvel ezelőtt
hogy ha azt szeretné, hogy a kurzort egy új sort kifejezetten,
akkor azt explicit módon mondják új vonal, backslash n.
És van egy másik szimbólumok, mint ezt.
De most csak összpontosítani backslash n.
>> Most nézzük, hogy a program egy kicsit érdekes.
Én megyek előre, és Ebben az időben nyit egy új fájlt.
Fogom menteni ezt a Helló-1.c.
És csak a hecc kedvéért, én megyek menj tedd be a Dropbox mappában.
>> Ahogy látni fogod a CS50 dokumentáció a készülék,
később ezen a héten probléma Set 1 fogjuk ösztönözni
hogy használja Dropbox vagy Egyes egyenértékű szolgáltatást,
mert akkor az összes kód a majd automatikusan biztonsági másolat.
És ez az, amiért én már ment ebbe a mappába itt.
>> És most fogok levelet kissé eltérő programot.
Közé tartozik, standard I / O.h, int main semmis.
És akkor itt printf, hello world, ami pontosan ugyanaz, mint korábban.
>> De most akarok nyomtatni valamit ez egy kicsit más.
Azt akarom, hogy nyomtassa ki, azt mondja: "Helló, David."
Rendben, nyilvánvalóan, ez remélhetőleg
abban az esetben, hogy ha én újrafordítani ezt a programot, futtassa újra azt,
azt fogja mondani: "Helló, David."
>> De mi van, ha azt akarom, hogy vezessenek be ez a fajta változó,
fogalma a tartály, hogy fog tárolni D-a-v-i-d és nem nehéz ez a kódja
a programom.
Hát mi van, ha elkezdek csinál valamit, mint ez?
>> Húr s, így ez a változó.
Ha szeretne egy húr, más néven egy szót vagy kifejezést.
A karakterek sorozata, amit mi a programozás hívni egy string.
Mi csak úgy általánosságban hívás s ez, mert ez egy szép egyszerű nevet.
De nevezhetjük bárminek.
>> Fogok mondani húr s egyenlő idézet idézet vége: "David," pontosvessző.
És most azt szeretné szúrni D-a-v-i-d abba, amit én a nyomtatást.
És mielőtt láttuk a teaser a a képernyő néhány speciális szintaxis
amely lehetővé tette számunkra, hogy helyettesítő értéket.
Mi volt a különleges szimbólum néhány diák ezelőtt?
>> Így százalék.
Abban az időben ez volt százalék d decimális szám.
Ez nem igazán tűnik releváns.
Kiderült, hogy a másik százalék szimbólum,
amely százalék s, amely áll a helyőrző egy karakterlánc.
>> Tehát most, nagyon egyszerű, én vagyok menni, hogy helló-1,
mivel ez a fájl neve Helló-1.c, és nyomja meg az Enter.
És elszúrtam.
Mi folyik itt?
Nos, itt, ahol meg kell kezdeni értékelik, hogy mi ebben a parancs
line környezetben, ez csak szöveges környezetben.
Nincs az ikonra kattintva mint mappák most.
És gondolj vissza egy perce.
Milyen mappa nem mondok Én megtakarítás kódomat?
Így a Dropbox mappában.
Lehetett volna hívott semmit.
De előfordul, hogy hívják Dropbox.
Szóval valahogy meg kell duplán kattintani hogy Dropbox mappában annak érdekében, hogy
bele, és kap az én kód neve hello-1.c.
Sőt, hadd menjen előre, és minimálisra csökkenti Ebben az ablakban egy pillanatra.
Csakúgy, mint a Windows és a Mac OS, vannak mappák Linux.
Vannak olyan mappa a CS50 Appliance.
Csak éppen most szorítsák magunkat ezt a szöveget környezetben.
>> De ha a Double Click A Dropbox, észre ott
az a fájl, amit szeretnék fordítani.
De kell ez a fekete-fehér terminál ablak, hogy úgy mondjam.
De szükségem van, tehát, hogy mozogni ebbe a mappába vagy könyvtárba.
Szóval kissé misztikus, de Majd megszokod, hogy ezt is.
>> A világ a Linux, ami ismét az operációs
rendszer kifutunk belül a CS50 Készülék, van egy parancs az úgynevezett CD-t.
Ami azt jelenti, hogy képes CD, tér, Dropbox.
CD, változás könyvtárba.
Jobb.
Vissza a nap, amikor az emberek feltalálás számítógépek és operációs
rendszerek, mint ez, azt akarták, hogy írja be a legkevesebb billentyűleütéseket lehetséges.
Így a legegyszerűbb módja annak, hogy változás könyvtár volt CD.
>> Szóval ha megüt CD, tér Dropbox, észre, mi változott itt.
Belsejében zárójelek A készülék fajta
A humoring én és emlékeztetve, hogy hol vagyok.
Így a nyitott mappa Dropbox.
Ha most írja LS lista, ismét tömör,
mert az emberek nem akartak írja vissza a nap l-i-s-t.
Így ahelyett, tette ls.
>> Az Enter billentyűt.
Figyeld meg látok két dolog, helló-1.c, és akkor ez a rejtélyes dolog, forrás 1m.
Ez csak az én így mondom forráskódja 1 hét hétfő.
Ez egy mappát I letöltött CS50 honlapján, amit korábban tett ma
és csak tedd be a készülék előre.
>> De most az egyetlen dolog, amit az érdekel, hogy hogy ez a program.
Tehát, amikor azt írja, hogy szia-1, Enter.
A fenébe.
Valami nem stimmel.
Szóval kötekedik ezt szét.
És sajnos ez az, ahol a dolgok egy kicsit stresszes az első,
legalábbis ha neked van soha előtt programozott.
>> Istenem.
Írtam egy két vonal program Van négy sora hibákat.
Szóval, mi folyik itt.
Az első és legfontosabb mindig lépjünk vissza és megtalálja az első hibaüzenet,
mert sokszor fordítóprogramok csak összezavarodnak, amit te és én.
Fordítóprogramok elég buta.
Majd csak az, amit te mondd meg nekik, hogy nem.
És ha megzavarja őket, ők csak majd, hogy milyen dobja fel a kezét
és talán dobja több hibaüzenetek mint valóban fontosak.
>> Tehát nézzük meg az első.
Super rejtélyes először.
De bejelentés, itt a neve fájlt, amit elrontottam látszólag.
Colon 5, vastagbél 5 csak azt jelenti, a 5. sor az ötödik karakter.
Így ötödik oszlop karakterekből ha úgy tetszik, hiba.
A be nem jelentett azonosító karakterlánc.
Gondolt szabvány n?
>> Nem, úgy értem húr.
És akkor ez a fajta másolás és beillesztés
amit beírtam igazán felhívni a a figyelmet arra, elcsesztem.
Tehát valamilyen okból C, vagy legalább a fordító
nem érti a szót húr.
És ez azért van, mert mi tette fel.
Tehát húr nem létezik C. Mi CS50 csinál,
az első néhány hét alatt csak az osztály,
A mi az egyes képzési kerekek, hogy úgy mondjam.
És hogy ezeket a képzés kerekek belsejében egy speciális nevű fájlt CS50.h.
>> Tehát ez a második a két fájl nevek, látszólag véget pont h.
Nézzük visszatekerés.
Printf nyilatkozat vagy funkció hogy látszólag kiírja valami
a képernyőre.
De te nem látsz engem végre printf, jobbra.
Valaki évvel ezelőtt végrehajtott printf.
Milyen fájlt kíván fogadást ő vagy ő tesz a végrehajtás
A printf, a kód printf?
>> Nevű fájlt szabványos I / O.h.
Sőt, ez valószínűleg Két kép, standard I / O.h,
amely áll a header fájlt, és standard I / O.c,
amely áll a C forráskód.
Így ő néhány éve lehuppant a kódot, azt írták be, hogy a fájl
hogy az emberek, mint mi évvel később is tartalmazza azt,
hogy úgy mondjam, a saját programokat.
>> És valóban, ez az, amit a font jel szó követi közé teszi.
Úgy néz ki, a helyi merevlemezen, megtalálja a fájlt a Standard I / O.h,
majd hatékonyan másolatok és beilleszti belsejébe saját fájlt.
Tehát most a programot tudja hogyan lehet nyomtatni a képernyőn.
>> Tehát a logika, ahol A húr meghatározása?
>> Közönség: CS50.h.
>> David J. MALAN: CS50.h.
És valóban, ez az, amit mi, A fő személyzet, megtette.
Már találtak néhány adattípusok, hogy úgy mondjam, mint egy húr,
mellett is meg kap ingyen, mint egy int.
És majd meglátjuk, mások, mint a char egy karaktert, és még néhány.
Belsejében CS50.h látszólag legalább néhány említést húr.
>> Tehát most hadd menjen előre és futtassa újra make helló-1.
Majd nagyítás újra és át az ujjaimat.
Most azáltal, hogy tett egy változtatni rögzítettem a legtöbb dolgot.
De a fenébe is.
Több százalékot, mint az adatok érveket.
Mit csináltam rosszul ebben az időben?
>> Így még mindig elég rejtélyes.
De ez a hiba a 7. sor és a karakter 21.
Tehát nézzük meg itt.
Ez egy kis finom.
De ha úgy gondolja, hogy mi az alapvető ötletek itt,
talán tudjuk ugratni ezt szét.
>> Így printf a neve a funkciót.
Zárójelben eddig, az mint amit teszünk körül
a cuccot mi megy mint bemenetek függvényében.
Rendben, csak egy önkényes emberi egyezmény.
Zárójelek.
Belül ilyen zárójelek mi már üzembe idézőjelek,
majd a szöveg, mint a "hello world".
>> De a korábbi példa nagyon röviden nem nézzük a Scratch.
És mi volt a százalékos d, mi mást volt benne azoknak zárójelben
hogy hívtam ki szóban?
Igen.
>> KÖZÖNSÉG: Tehát ez az, amit az ember vesz [Nem hallható] belül [nem hallható]
amit ezek [nem hallható]?
David J. MALAN: Pontosan.
Tehát mi volt a százalékos d.
De akkor mi volt szoros idézet, vessző, pult.
Jobb.
Azt meg, hogy mit akarunk csinálni, mint a helyőrző.
Szóval, mit fogok csinálni itt vessző, mit akarsz tenni?
Közönség: S.
David J. MALAN: S, s mert ebben az esetben
a neve a tartály.
Ez a neve annak a üvegtál.
Míg korábban nem volt számláló, hogy egyszerű Scratch példa néztük.
Tehát ma már kétszer is változások, hadd nagyítás
és próbálja meg még egyszer fordítani ezt a programot.
>> Most látom, hogy rejtélyes sor.
De ez valójában a neve a fordító.
Csenget a neve a fordító.
Tedd csak megmentettél a fejfájás egyre
gépelés, hogy a hosszú őrült parancs ki.
Tehát most, ha én pont perjel Helló-1, Meg kell látni a "hello, David."
>> Pretty underwhelming, ugye?
Tudtuk volna ez sokkal egyszerűbben
nélkül beszél változókkal és CS50.h és minden adott.
Szóval, hogy ez egy kicsit érdekes.
>> Amellett, hogy CS50.h, miután a dolgok, mint húr
kijelentette, a CS50 könyvtár is van néhány funkciók.
Szóval, mint évekkel ezelőtt, valaki azt írta printf és tedd a standard I / O.h
és néhány egyéb fájl.
>> Mi, a CS50 személyzet, írt egy funkció hívott GetChar, GetDouble, GetFloat,
GetInt, GetLongLong, getString, és mi tesz azok belsejében egy fájlt
hívott CS50.h és CS50.c.
És rakjuk be őket A CS50 Appliance.
És az emberek is letöltés őket az interneten, ha
szeretnénk, hogy őket a saját számítógépeket is.
Ami azt jelenti, hogy az általunk létrehozott funkciók kap a felhasználóhoz.
Én nem tudom, mi minden Ezen adatok típusok.
GetInt a fajta egyszerű, mint kap egy egész valahogy a felhasználó.
És getString valószínűleg hasonló get egy szó vagy egy mondat a felhasználó.
>> Szóval összpontosítani, hogy.
És én megyek vissza a készüléket, és én megyek előre
és mentse ezt a fájlt, nevezzük akkor szia-2.c mint a második verzió.
És nézzük, hogy egy-két változás.
>> Ezúttal helyett kemény kódolás David, amely
tesz egy hihetetlenül következetes de underwhelming program
mi van, ha helyette nem getString?
Figyeljük getString nyitott zárójel,
zárt zárójel, mert nem kell semmilyen bemenet.
Ez csak úgy megy, hogy a húr a felhasználó.
>> És most egy szó a másik szintaxis.
Pontosvessző csak a végén egy sor kódot.
Nem kell őket mindenhol.
De ez csak azt jelenti, én vagyok történik ebben a sorban a kódot.
Hadd mozog egy másik nyilatkozat vagy funkció.
Húr kijelenti változó.
Húr, mintha azt mondanánk adj egy tálba, kérem.
És hadd tegyek fel egy sor benne.
>> És most az egyenlőségjel.
Mi az egyenlőségjel lényegében egyenértékű?
>> Közönség: hozzárendelése.
>> David J. MALAN: Igen, egy értéket rendelünk.
Tehát, ha én például hívás Ez a funkció getString,
és majd meglátjuk, egy pillanat, ami majd figyelmezteti a felhasználót a húr.
Ez olyan, mint engedte majd írjuk D-a-v-i-d egy darab papírra.
És amikor azt mondom, húr s egyenlő getString,
egyenlő nem igazán jelent egyenlő C programozás.
Ez azt jelenti, hozzárendelése a jobb oldalán a bal oldalon.
>> Így kaptam egy string.
És az egyenlőség jel azt jelenti tedd tartóban hívott s.
Majd át ezt ki, hogy printf hogy valójában nem a dolog.
>> Tehát a végeredmény, akkor megy hogy vizsgálja meg egy kicsit más.
Csináljuk, hogy helló-2.
Sem működhet.
Aki követi.
Készíts Helló-2 dolgozott.
Dot perjel Helló-2, Enter.
>> Úgy tűnik, hogy egy végtelen hurok vagy valami.
Semmi sem történik.
Miért?
>> Közönség: Ez így végtelen ciklusba kerül.
David J. MALAN: Ez egy végtelen ciklus.
Ez a fajta vár rám, hogy ténylegesen biztosítani, hogy néhány bemenet.
Szóval, hadd menjen előre, és írja be Dávid, és nyomja meg az Enter.
És most azt mondja: "Helló, David."
Ha elindul újra.
Nézzük írja be Rob, a "hello, Rob."
>> Most ez a legrosszabb felhasználói felület valaha.
A felhasználó látszólag kéne tudni, hogy mit kell tenni.
De nem számít.
Ezekkel a ugyanabban az épületben blokkok, mint a Scratch,
meg tudjuk oldani ezt a problémát, és azt mondják valami, mint a név, kérjük, kettőspont,
hely, zárt idézet, szoros zárójel, pontosvessző.
Így sok újra ostobaság a szintaxis.
>> De észre én már csak hozzá a puzzle darab felett ez
és e fölött egy.
Tehát most, ha én ismételni ezt, szia-2, Enter.
Várj egy percet.
Mi a baj?
Ez nem viselkedik másként.
Igen.
>> Közönség: Nem fut, hogy újra.
>> David J. MALAN: Én nem fut, hogy újra, jobbra.
Szóval megváltozott a forráskódot.
De a lényeg, van, hogy az áramlás.
Forráskód a fordítóprogram ad Ön új tárgykód, vagy 0-ák és 1-esek.
Szóval kell, hogy ténylegesen ismétlését make Helló-2 Írja be.
OK, valami úgy tűnik, hogy történt.
Dot perjel Helló-2.
Az Ön neve kérem.
És hogy most tiszta, hogy miért van a kurzor ugyanabban a sorban?
Pontosan.
Nem tettem a backslash n fel itt a kód.
Így most már tudok írni valami ilyesmit Daven, Enter.
Tudok futni újra, és írja be olyasmi, mint Gabe, Enter,
és kapunk egy másik program újra és újra és újra.
>> Most végül mi lesz szükségünk hogy egy néhány különböző képességeit.
Meg kell, hogy vezessenek be végül néhány feltételek dolgokat feltételesen.
Talán hurkok így nem tehetünk dolgok újra és újra.
>> Talán jó lenne, ha is végre saját függvények,
mint mi is végre saját printf vagy a saját verzióját getString
és GetFlow, mert végül is Ha ezt a parancsot környezet
tehetünk még a leginkább vizuálisan érdekes dolgok.
>> Valóban végezetül hadd tegye ezt.
Én megyek előre és zárja be ezeket az ablakokat
és nyissa meg ezt az ikont itt, ami csak egy nagyobb
változata, amely beágyazott terminál ablak.
Így Gedit nem csak A hely a kódomat,
hanem a beépített terminál ablakban, a fekete-fehér ablak, ahol tudok futni
parancsok.
>> Én csak véletlenül megnyitni egy nagyobb változata ezt.
És most fogok menni azt a mappát, én már
fel előre a pályán honlapján.
És én megyek előre, és Egy fájl megnyitásához nevű thadgavin.c,
amit írt valaki.
>> És ha megnézzük ezt, ez nem az a fajta kód
fogunk írni, mivel A cél ennek a kód
megírása volt a legszebb látszó kód, hogy ő tudta,
függetlenül attól, hogy Egy másik emberi lény valaha is
megérteni ezt a kódot.
>> Sőt, minden évben van mit úgynevezett összezavarva C versenyen, amely
ez az igazi geekek, akik írni kód, hogy senki más nem tud olvasni,
De ez nem valami vagy nagyon egyszerű, vagy nagyon csodálatos.
És úgy gondoltuk, mi lenne zárul ez a megjelenés
valamit, ami elég elképesztő lehet, hogy látott egyszer.
De mi lesz a vége ezen megjegyzés, pont perjel, thadgavin.
Ez tehát az, amit vár.
>> Ez az a CS50.
Látni fogjuk, hogy szerdán.
>> [Zenelejátszás]