[Powered by Google Translate] DAVID MALAN: Tämä on CS50, ja tämä on alku viikko 1.
Mitä ajattelimme tehdä tänään katsomaan taaksepäin
jotain monet teistä ovat luultavasti käveli ohi joidenkin
aikaa ja saattaa näyttää hieman tuttu.
Tämä juttu täällä, tämä tietenkin on -
YLEISÖ: Science.
DAVID MALAN: Tiedekeskus.
Joten tämä on itse asiassa yksi varhaisimmista tietokoneista
takaisin 1940.
Se oli yksi ensimmäisistä sähkömekaanisten tietokoneet
että kykeni erityisen pitkä,
omaehtoiselle laskelmat, ja mitä me oikeastaan ​​nähdä
Science Center on vain pieni pala tätä asiaa.
Mitä ajattelimme tehdä sitten on otettava muistella video
että tehtiin jokin aika sitten, käyttöön tämä
asia maailmassa.
Ja näet mistä musiikista ja ääni todellakin nämä
olivat erittäin tyytyväisiä kertaa.
>> [VIDEO PLAYBACK]
-Riemuvoitto matemaattisia ja mekaaninen taito on tämä
hieno uusi automaattinen laskin Harvardin yliopistossa.
Vaativien ongelmia matematiikassa, läpi
kone koodattu muodossa nauhalle, on tarkasti ratkaistu
minuutin murto-aika, joka tarvitaan ihmisen
laskennassa.
Suunniteltu nopeuttaa kaikenlaisen matemaattisia ja tieteellisiä
tutkimusta, jättiläinen mekaaninen aivot toimii Yhdistyneiden
States Navy kunnes sodan loppua.
>> DAVID MALAN: Mitä et ehkä tiedä, että se oli
tämä sama laite, joka termi me kaikki nyt toteuttaa melko
itsestäänselvyytenä keksi, että vian.
Joten yksi insinöörit työskentelevät tällä tietokoneella
kirjaimellisesti löytyi pieni koi on kone, joka johti
Joissakin virheellisiä laskelmia.
Ja kuten tarina kertoo, että koi oli teipattu tämä loki
lehti tänne, takaisin syyskuussa 9 1940-jotain,
ja näin syntyi maailman termi "Bug".
Joten tästä lähtien pidämme bugeja olevan minkäänlaista virheitä
ohjelmat, onko ihmisen tai tässä tapauksessa, hyönteiset.
>> Joten muutamia ilmoituksia, kuten me edetä.
Joten CS50 on perinteitä tarjoamalla lounaat tapaisena
eniten perjantaisin lukukauden aikana, jossa otamme 30
40 opiskelijaa Fire and Ice Square rento
chitchat, puhua tietojenkäsittelytiede,
puhua tulevaisuudesta.
Kutsumme alumni ja ystäviä teollisuuden chat up
opiskelijat samoin.
Todella päätä kohti tehdä mitä on melko suuri luokka
kaikki intiimimpi, ainakin kerran kun taas
osajoukot opiskelijoita.
Joten jos haluat liittyä joukkoomme tänä perjantaina, 13:15, siirry
CS50.net/lunch on RSVP.
Ja me teemme tämän recurringly, joten ei hätää, jos et ole
ensimmäisten joukossa 30 tai niin tällä viikolla.
>> Niin kirjanoppinut toteaa.
Sana resurssit nyt alkaa olla saatavilla
opiskelijoille luokassa.
Niin, että päät tarvitse olla alhaalla Luennoilla
kirjoittelu alas kaiken sanon ja niin edelleen, mitä teemme
sijaan on toimitettava alkaen opetushenkilöstön
kanoninen joukko toteaa.
Joten meillä on yksi opetuksen miehet, Andrew Sellergren,
joka istuu alas viikoittain, arvioi videoita, ja sitten
kirjoittaa ylös mitä ajattelemme on melko
arvovaltainen joukko toteaa.
Ja Andreaksen mieltynyt myös, laskemisesta snarky alaviitteistä
pohjasta.
Joten voit toivottavasti nautitte näistä niin hakuteos
hauska, ja myös tulevat tietokilpailu aikaa, sillä mahdollisuus tarkastella
Mitä tapahtui yksittäisiä luentoja.
Joten ne ovat yhteydessä toisiinsa luentojen sivulla.
>> Harjoitus 0, puolestaan ​​on pois.
Ja suhteen resursseja sinulle -
läpikäynti.
Milo johti ensimmäisen perjantaina.
Se kuvattiin, laita netissä lauantaina.
Ja niin ymmärtää, jos et ole aivan varma mistä aloittaa,
tämän tai tulevien p-sarjaa, aina kääntyä ensin
walkthrough tai videon viipymättä.
Leikkaus on käynnissä, on cs50.net/section on, jos
olisi toimitettava valintasi, jos et ole
jo tämän päivän.
Koska osa alkaa tulevana sunnuntaina, maanantai,
ja tiistaina.
Teemme kohdat nämä kolme päivää, joka viikko
lukukauden suurimmaksi osaksi.
Ja me myös esitellä jälleen eri kappaleita.
Joten sinua pyydetään tällä leikkaus muodossa, jos
ole nähnyt sitä jo, jos olet yksi niistä vähemmän
mukava, mukava, tai jotakin siltä väliltä.
Ja jos olet tavallaan aidalla, yleensä jossain
välillä on mitä useimmat opiskelijat päätyvät tarkkailun.
Aukioloajat alkaa tänään.
>> Joten Scratch on melko pieni avain, vaikka se on aivan luonnollista
törmätä erilaisiin vikoja tai olla epävarma siitä, miten
toteuttaa jotain.
Niin ymmärtää, että aloitamme virka tällä viikolla.
He olla Annenberg maanantai, tiistai, keskiviikko,
Torstai 20:00-23:00 aikana aivot tauko.
Ylä classmen voi saada, ja jos joskus on vaikeuksia saada
ovesta sisään, koska he ovat pyyhkäisemällä vain puhumalla
ja selittää olet mukana CS50.
Tyypillisesti 20-30 meille henkilöstö on siellä auttaa
Oletko yksi yhteen.
>> Saapuessaan idea on tämä: sinun mukaasi kannettava tietokone,
sinulla on oma laturi, meillä on ylimääräisiä virtajohtoja,
erityisesti pitkin etelään seinä Annenberg joissa
siellä on paljon pistorasioihin.
Ja tärkein yhteys siihen virka Q & A on mennä
cs50.net/discuss ja lähettää
kysymyksesi sinne.
Ja merkitä se PSET 0 tai PSET 1 riippumatta viikolla
voisi tapahtua olla.
Ja mitä sitten teemme on oltava taulukko opetuksen stipendiaattien
ja tietenkin avustajat, yleensä 8 tai 10 tai niin meille,
läpi, pitäen silmällä aluksella, ja
nyppiminen pois kysymyksiä todella niin nopeasti kuin voimme,
viitaten voit liittyviä virkoja jos et ole löytänyt niitä
itsenne, online viittauksia tarvittaessa.
Ja sitten jos on ongelmia, koska väistämättä
tulee, tai se vain järkevämpää istua one,
työn kautta ongelmia jonkun kanssa.
>> Tai sitten juuri tullut virka todella
tarvitsevat että mielentila.
Et halua mennä läpi sähköisessä muodossa, voit
todella haluavat tavata jonkun kanssa.
Kommunikoi että meille, ja mitä tapahtuu on, kun
kysymys on nähnyt henkilökunnan jäsen, ja me
määrittää, yup, tämä olisi lähetetään yksi 20 tai
30 tiimin jäsenet täällä paikallisesti, näet vasemmassa yläkulmassa tässä
pikku Anna jonon painiketta alkaa vilkkua cs50.net /
keskustella.
Ja tämä kertoo, että olet nyt on kutsuttu, joten
puhua, kirjoittaa jonoon.
Ja klikkaamalla tätä nappia, nimesi sitten näkyy
iPad että CS50 greeter, yksi kurssin päät, tulee
järjestämme sisäänkäynnin läheisyydessä Annenberg, jotka sitten
pitävät kuvattu täällä, opiskelijat ovat kysymyksiä
vasemmalle, henkilökunnan jäsenet, jotka ovat läsnä oikealla.
Ja napsautuksella vasemmalle ja oikealle, selain tulee
vilkkuu niin pian kuin esimerkiksi professori McGonnagal
on valmis näkemään sinut erityisen taulukon Annenberg.
>> Joten teimme tämän viime vuonna.
Olemme käynnistetään aukioloajat ja
uudelleen toteutetaan paljon ohjelmisto.
Niin ymmärtää, että tämä tulee lämmetä tällä viikolla.
Mutta myös ymmärtää myös menneinä vuosina, kuten olet ehkä kuullut
ystäviltä, ​​virka oli todellakin 50
150 opiskelijaa kerralla.
Ja se ei yksinkertaisesti ole mahdollista, että voimme käsitellä että
tehokkaasti, one, koko illan.
Ja niin mitä me oikeastaan ​​yrittävät tehdä tänä vuonna on
hyötymään siitä, että monet kysymykset ovat
Usein kysyttyjä ja voi usein paremmin vastata
asynkronisesti.
Voit siis tavallaan ajatella läpi henkilökunnan vastaus,
ja voimme ajatella läpi koodia ilman lämmitetty
paine välttämättä kamppailee
sen läpi vierekkäin.
Joten arvioimme, että noin kolmasosa tai puolet kysymyksistä
tullaan lähetetään henkilökohtaisesti, ja me yritämme nyppiä pois, koska
Peräti puoli tai enemmän sähköisesti,
virka-aikana.
Ja me edelleen käyttää Keskustele
koko viikon samoin.
>> Ja lopuksi se, että tämä Kurssin voi suorittaa hyväksytty / hylätty.
Joten jos olet aidan tai ajattele että olet oikeasti
ole varma, onko tämä maailma sinulle, tai tämä on todella
melko vieras sinulle, ymmärtää, että tämä on hieno tapa
hankkia joitakin luottamusta jolla astua
luokka, kuten tein suoraan sanottuna vuotta sitten.
Ja sitten on viisi viikkoa aikaa lajitella kuvan ulos
itse, jos haluat pysyä hyväksytty / hylätty, vaihda kirjain
luokka, tai vastaavaa.
Ja yleensä mitä hyväksytty / hylätty ei mielestäni opiskelijoille on
että jos laitat että 10 tuntia, 20 tuntia, mitä se
saattaa olla joitakin ongelmia, ja olet banging päätäsi
seinää vasten,
ja et todellakaan voi vain jahdata jotain alas, ja te
on niin monia muita asioita sinun tarvitsee tehdä, rehellisesti, mitä
ajatella hyväksytty / hylätty on, se vie reunan pois
tilanteita niin.
Jos olet ottanut asian 90% tavalla.
Tiedäthän, se ei ole aivan täydellinen.
Mutta sinulla paljon irti, kuitenkin.
Joten harkita hyväksytty / hylätty antavan teille
mentaalinen malli, ehkä.
>> Selvä, joten viime viikolla sukelsi Scratch ja me
puhui ohjelmoimaan melko korkea graafinen taso.
Ja tänään teemme siirtyminen kieli
kutsutaan C, alemman tason ohjelmointikieli päälle
jota monet modernit kielet on nyt rakennettu, kuten jotkut
ja niistä Käytämme kohti lukukauden loppua.
Ja syntaktisesti, miltä ne näyttävät
on kaikki melko samanlaisia.
Joten alkaa tehdä tätä muutosta täällä.
Joten tämä oli ohjelman viime viikolla se oli yksinkertaisin
Hello world ohjelmia.
Se yksinkertaisesti tulostetaan näytölle Hei maailma, jossa
pieni puhekupla tulee ulos kissa.
No, jos alamme nyt kääntää tämän toisen
kieltä, ymmärtää, että ajatukset tänään ja keskiviikkona
ovat identtisiä, mutta syntaksin alkaa muuttua.
Joten taas viime viikolla meillä oli, kun vihreä lippu napsautetaan, sano
Hello world.
Tänään aiomme olla int, tärkein, mitätön, printf,
paluu, joidenkin muiden syntaksin myös siellä.
Aaltosulkeita sekä sulkeita, sekä lainauksia, ja vaikka mitä.
Mutta ymmärtää, että ydin ajatus tässä on painatus,
ja lopulta se, että pääasiallinen nyt olemaan
synonyymi alkaa ohjelman.
Tärkeimmät tulee olemaan, jos vihreä lippu käynnistymässä asioita pois.
>> Joten nyt mennään erottaa toisistaan ​​joitakin rakennuspalikoita täällä
ennen kuin sukeltaa joitakin konkreettisia esimerkkejä.
Joten me kutsutaan tätä julkilausuman viime viikolla, jolloin se on vain
ohje.
Tee tämä - tässä tapauksessa sanoa hei maailma.
No C, jos katsomme vain, että linja, näin olemme
aikoo aloittaa ilmaisemalla kyseisen palapelin:
printf ("Hello World");.
Ja nyt me kiusata näitä toisistaan ​​yhä enemmän ajan myötä,
mutta ymmärtää, että on olemassa malli täällä.
Joten meillä on tämä asia sanottu printf, mikä on
olennaisesti samanlainen sana Say.
Niinhän se tulee tehdä.
Printf, ja f tarkoittaa tässä "muotoiltu".
Niin se vain tarkoittaa, että voit lisätä
useita esteettisiä yksityiskohtia.
Joten lainaus lainaus päättyy on alku, mitä aiomme
aloittaa kutsuvan merkkijono.
Sana, lause, lauseen.
Merkkijono ohjelmointikieli on sarja nolla
tai useampia merkkejä.
Niin h-e-l-l-o, pilkku, ja niin edelleen on,
lainaus lainaus päättyy, merkkijono.
Ja nyt kenoviiva n, hieman syntaktisesti oudolta, mutta me
jo määritelty, että viime viikolla siten mitä?
Se on vain uusi rivi.
Se on vain tapa välittää tietokoneeseen haluamasi
vastaa lyömällä Enter siellä, mutta et
haluavat todella Enter ja siksi sotkea kaikki
muotoilu todellinen ohjelma.
Nyt suluissa liittää tämän merkkijonon, avoin paren ja
sulje Paren, ja sisällä se on meidän merkkijono.
Koska se koska C, ja muiden ohjelmien
kielet, asioita, kuten printf ottaa argumentteja, tai ota
parametrit.
>> Niin alkaa ajatella nyt tämän violetti Say lohko
toiminto, kuten menetelmä, koska menettely.
Voit todella kutsua sitä mitä haluat nyt, mutta
Se on eräänlainen miniatyyri ohjelma, joka vain tekee yhden
asia, on yhdellä rivillä, ei vähemmän.
Joten printf on myös mitä aiomme aloittaa kutsuvan
toiminta ja tehtävät tehdä jotain - tässä tapauksessa
tulostaa muotoiltu merkkijono näytölle -
mutta toimii myös väitteitä tai parametreja.
Ja perustelut tai parametreja, kiitos, me tarkoitamme
että niiden käyttäytyminen voidaan vaikuttaa mitä kulkea
sisällä suluissa.
Joten tässä tapauksessa, printf tarpeet kertoa mitä tulostaa, ja me
vain kulkea, lainausmerkkeihin täällä, merkkijono että
todella haluat tulostaa.
Ja puolipiste on hyvin loppuun tämä rivi on vain
historiallinen kiusa jolloin lopussa eniten riviä koodia,
laittaa puolipisteellä tehdä super selväksi tietokoneeseen
että tämä koodirivin päättyy tähän.
Nyt tämä on hyvä, koska kuten näemme niin ohjelmat saavat enemmän
monimutkainen, puolipiste tekee erittäin selväksi meille ihmisille,
ja myös tietokone, jossa koodia alun ja lopun.
Ymmärrämme, että jotkut kielet eivät ole jonkin
Näiden samat tiedot.
Ja itse asiassa, JavaScript, et aina tarvitse jotain
kuten puolipiste.
Mutta siitä lisää tulossa.
>> Niin silmukoita.
Meillä oli jotain tällaista, hyvin intuitiivisesti, ilmeinen, tee
jotain uudestaan ​​ja uudestaan ​​ja uudestaan.
Kuten laittaa sukat tai sanomalla hei, tässä tapauksessa.
No, alkaa tänään C, voisimme ilmaista tätä Scratch
lohkon while (true) printf ("Hello World").
Eli huomaa olemme alkaneet rakentaa kirjaimellisesti palapeli
pala ennen.
Meillä on sama violetti lohko, mutta se on sisällä tämän
haarukoitua Ikuisesti lohko, ja paras tapa kääntää että
C on seuraava.
Ei ole Ikuisesti avainsana.
Et voi vain kirjoittaa F-O-R-E-v-E-R C.
Joten lähin analogi on aikaa.
>> Nyt, kun (tosi) tuntuu hieman tyhmä, koska ei arvosta
todellinen koskaan muutu?
Oletettavasti ei.
Se on kuin sanoisi taas yksi, kun taas, mutta totta.
Se on sama asia, totta on aina tapaus.
Joten tämä silmukka todella indusoimaan millaisia ​​silmukan?
Vain loputon silmukka, oikea.
Ikuisesti silmukka tai Kutsuimme sitä viime viikolla,
vain loputon silmukka.
Joten joskus se on paha.
Joskus se vika, joskus siksi saat
spinning rantapallo tai tiimalasin tms..
Mutta tässä tapauksessa me tietoisesti, jostakin
syystä halusi tulostaa saman uudestaan
ja uudestaan ​​ja uudestaan.
Tai jos, kuten kellon, haluat tehdä
jotain uudestaan ​​ja uudestaan ​​ja uudestaan.
Joten ääretön silmukoita voisi olla järkevää.
Ja näin C voisimme kääntää Ikuisesti koodin.
>> Joten nyt tämä on hieman tarkempi.
Olimme toista 10 kertaa seuraavan lausunnon.
Joten while (true) ei aivan toimi siellä, koska totta on
aina totta.
Joten jos me sen sijaan tarkastelemme C-versio, nyt syntaksin saa
hieman arvoituksellinen.
Mutta ollakseni rehellinen kun alkaa nähdä tämän, se kaikki saa
melko tuttuja nopeasti.
Joten tämä on mitä kutsutaan varten silmukka.
For silmukka aio kertoa tietokoneen tehdä jotain
uudestaan ​​ja uudestaan ​​ja uudestaan ​​niin kauan kuin
nämä asiat ovat totta.
Nyt mitä me tarkoitamme, että?
No, siellä on kolme osaa varten silmukka, ja aiomme
palata tämän yhteydessä todellisten
esimerkkejä hetki.
Joten älä huolestu, jos se ei ole aivan uppoavat kaikki kerralla.
Mutta int i = 0 on pitkä tarina lyhyt, sanoen antaa minulle
muuttuja on tyyppiä Integer, joten anna minulle numero
nimeltään I ja alustaa sen 0.
Se on antaa minulle kuin algebrallinen muuttuja x ja
alustaa sen 0.
Mutta tässä tapauksessa vaadimme sitä i.
Sitten keskeltä, se kertoo i on pienempi kuin 10.
Että puhuu tietokone toimi seuraavasti kamaa niin kauan
koska i on pienempi kuin 10.
Ja tietenkin se alkaa alle 10, koska
se alkaa 0.
Sitten lopuksi, voit ehkä arvata mitä i + + avulla.
Se on vähän syntaksia tarkoittaa vain kasvattaa i..
Joten lisätään 1 i, uudestaan ​​ja uudestaan ​​ja uudestaan.
>> Ja niin me näemme tämän silmukan, tätä syntaksia, vaan toteuttaa
täsmälleen sama asia, rehellisesti sanottuna, Scratch oli niin
paljon helpompi ilmaista.
Toista 10, ja olet valmis.
C-, ja useimmissa ohjelmointikielet, meidän on oltava
hieman opettavainen tietokoneen ja tosiasiallisesti
Määritä jotain tällaista.
Mutta me palaamme tähän ja muihin syntaksi.
>> Entä muuttujia?
Scratch meillä oli jotain näiden oranssi lohkot,
jos voisin julistaa muuttuja.
Katsotaanpa mielivaltaisesti kutsua laskuri.
Mennään alustaa sen 0, ja sitten
Katsotaanpa ikuisesti tehdä jotain.
Tässä tapauksessa Scratch sanon laskuri, joten
Kissan tulee olemaan hieman puhekuplan että puhuu
numero, joka on tämän muuttujan.
Ja sitten meillä on muutoksen laskuria 1.
Joten kaikki tämä on kääritty sisällä Ikuisesti lukko.
Joten meillä on jo nyt rakennuspalikoita C
joka kääntää tätä.
>> Yksi tapa voisimme tehdä, että on tämä.
Anna kokonaisluku, kutsuvat sitä laskuri.
Alusta se 0
ensimmäisellä rivillä siellä.
While (true), joten olen varastamalla että ajatus vain hetken
sitten mennä eteenpäin ja tehdä seuraavasti.
Tulosta laskuri, ja sitten kasvattaa laskuri,
uudestaan, ja uudestaan, ja uudestaan.
Tai jälleen, + + tarkoittaa vain lisää 1 jotain.
Mutta on uusi pala syntaksin täällä.
Mitä hyppäämällä ulos kuulu meidän edellisen esimerkin?
Kyllä, tämä% d.
Joten voit ehkä päätellä, mitä tämä tekee, suoraan sanoen, joka perustuu
mitä Scratch lohko tekee.
Mutta jälleen C, meidän täytyy vain olla hieman erityistä
kun se tulee ilmaista itseämme.
>> So printf ("% d \ n").
No useimmat voimme heittää pois niin tuttuja.
Lainaa vain tarkoittaa se merkkijono, kenoviiva n
on vain uusi rivi.
Joten ainoa uusi asia tässä on% d.
Ja kaikki tämä on on paikkamerkki.
% D on menossa tarkoittamaan desimaaliluku.
Ja% d tarkoittaa tietokoneeseen, laittaa desimaaliluku täällä.
No, mitä numero haluat laittaa sinne?
No, kuten voitte ehkä päätellä, pilkun jälkeen sanomme
laskuri, se nimi muuttujan että ilmoitettu tai
loi pari riviä aikaisemmin.
Joten tämä on vain C tapa liität muuttujan
merkkijono dynaamisesti.
Koska sitä vastoin, jos olisin sen sijaan tehnyt jotain
Tämän printf ("laskuri"), mikä olisi tässä
ohjelman sijaan tehdä, oletettavasti?
Se tulee kirjaimellisesti tulostaa "laskuri".
Mikä ei ole vaikutusta, että haluan.
Minun täytyy korvata jollakin numeerinen arvo.
Niin näemme, että toimii sitten, kuten printf, voi olla
vasta yhden argumentteja, kuten
"Hello World".
Ne voivat ottaa lainaus lainaus päättyy pilkku, ja sitten jotkut muuttujat
että saa kytkeä, kuten näemme edellinen merkkijono
kautta nämä% sign paikkamerkkejä.
>> No entä Boolen?
Boolen olivat nämä arvot tosi tai epätosi.
Kyllä tai ei.
1 tai 0.
Päälle tai pois päältä.
Joten Scratch he näyttävät tältä, ja huomaa, että
pohja lohko tässä on oikeastaan ​​yhdessä
Kahden pienempiä lohkoja.
Joten minä tavallaan vetää ja pudotti kolme palapelin palaset
yhdessä tehdä, että enää palapelin pala on niin, että minä
voisi välittää ajatus, että haluan x vähemmän kuin y ja
y on pienempi kuin z.
Ja niin voin kääntää nämä kaksi erillistä riviä seuraavasti.
Alkuun yksi voi hyvin triviaalisti kääntää C,
vain x <y.
Ehkä joitakin suluissa hyvä toimenpide.
Ja sitten C, et kirjoittaa ja kuvaamaan
yhdessä jotain.
Sinä sen sijaan kirjoittaa &&.
Ja kun me lopulta nähdä, yksittäinen et-merkki sattuu
tarkoittaa jotain erilaista.
Joten && vain tarkoittaa ajatus JA.
>> Joten jälleen, vaikka tämä alkaa näyttää melko monimutkaisia,
yhtenä tarkoituksena käyttöönoton Scratch lisäksi
vain ottaa eräänlainen hauskaa-ramppi, jossa voit tehdä
jotain, joka on hyvin graafinen ja animoitu ja
jaettavia ja vastaavia, on myös välittää ajatusta siitä, että
kaikki ideat alamme sukeltaa tänään ja eteenpäin
on kirjattu myös, että yksinkertainen
käyttöliittymä alusta lähtien.
Entä tämä tässä?
>> Niin olosuhteissa.
Joten Scratch lohkon vasemmalla siellä näyttää
hieman monimutkaisempi.
Mutta se on vain osa vetämällä ja
pudottamalla tuttuja kappaleita.
Jos x on pienempi kuin y, niin sanoa.
If x on suurempi kuin y, niin sanoa.
Else, voimme loogisesti olettaa se on päätellyt, että
ne täytyy olla yhtä suuret.
Niin sanovat että he ovat yhtä.
Nyt C oikealla täsmälleen sama asia.
Ja huomaa, että aaltosulkeiden tulevat olemaan
piirre C ja muita kieliä, jotka eivät tämmöinen
kapseloinnin.
Aivan kuten jos lohko on tämä keltainen asia, joka on eräänlainen
tarttumalla violetti lohkon sisälle.
Samoin nämä olkaimet -
Näiden aaltosulkeita -
tarkoitus loihtia saman ajatuksen käsittää yhden tai useamman
riviä koodia, joka on sisennetty sisällä niitä.
Niin oikealla puolella tässä, jos x pienempi kuin y, printf
("X on pienempi kuin y").
If x on suurempi kuin y, tulostaa saman.
Else tulostaa ne ovat yhtä.
>> Eli lyhyesti sanottuna, siellä melko suora kartoitus tai kääntäminen
Kielen olemme nähneet tähän mennessä, myös joitakin
ja kehittyneempiä ominaisuuksia.
Joten et ehkä käyttää tätä projektin, tai ehkä ei
käyttää tätä projektia tällä viikolla.
Mutta olemme näitä asioita kutsutaan taulukot C. Scratch-
niitä kutsutaan luetteloita.
Ja näimme näiden kanssa Fruitcraft RPG viime viikolla.
Pieni sininen kaveri, joka oli kävelemässä, poimien
kirsikat ja appelsiinit ja vastaavat.
No Scratch, joka toteutettiin tämän oranssi
lohko, joka sisältää sanat, tässä tapauksessa olemme kirjaimellisesti
lisätään "oranssi" ja
muuttuja nimeltä inventaario.
Joten C, tämä syntaksi on menossa hieman arvoituksellisesti.
Ja me palaamme ensi viikolla ja tehdä enemmän
mielenkiintoisia asioita maailmassa salauksen kanssa.
Mutta alaosassa tässä, nämä kaksi riviä olennaisesti
kääntää mitä me teemme yhdessä Scratch tukkia siellä.
Mutta siitä lisää tulossa.
>> Joten laitat sen yhdessä, tässä on ohjelma C. Joten
nopeasti erottaa toisistaan ​​joitakin paloja syntaksin täällä, mutta
Sitten mennään todella alkaa kirjoittaa joitakin koodi, perehdyttää
sinulle joitakin työkaluja Käytämme ja katso jos me
voivat rakentaa nyt joitakin näistä kulmakivistä alkaen
viime viikolla, nyt syntaktisesti in C. Joten yläosassa täällä, tämä
on ehkä yksi kaikkein tylsää ohjelmat voisit
kirjoita useimmissa tahansa ohjelmointikielellä.
Mutta se on tavallaan on erityinen merkitys, koska se on
kanoninen ohjelma että tietokoneen tiedemies kirjoittaa, kun
opettaa joku ohjelmointikieli -
Hello world ohjelmaa.
>> Joten hyvin alkuun, näemme tätä käsitettä # include
ja sitten, kulma suluissa, stdio.h.
Aiomme palata, mutta oikeastaan ​​se
tarkoittaa, että tiedostoa tässä maailmassa kutsutaan standardin
I / O, vakiotulosteesi piste h, ja se on vain tekstitiedosto, joka
joku kirjoitti vuosia sitten.
Ja sisällä että tekstitiedoston ovat koko joukko
toimintoja tai menetelmiä tai toimintatapoja, jotka joku muu
kirjoitti, että olemme edunsaajia, koska me
voi nyt käyttää kyseisen henkilön koodi.
Toimintoja hän kirjoitti.
Tässä tapauksessa printf ei ole jotain, että olen kirjoittanut, se on
ei jotain CS50 kirjoitti.
Se on jotain, joku kirjoitti vuosia sitten ja laittaa
tiedosto nimeltä stdio.h ja sitten, kuten syrjään, laita
toinen osa toiminnon toiseen tiedostoon.
Mutta me sinne.
>> Joten # include on vain meidän tapamme, vuonna
C, anna minulle pääsyn toimintoihin, jotka joku muu kirjoitti.
Ja tässä tapauksessa en välitä, koska haluan printf.
Nyt saamme int main (void).
Joten tämä on yksi näistä asioista, rehellisesti, että päivänä 0,
aika paljon olen eräänlainen vyöhykkeen pois, koska se on vain
ei kiinnostava
älyllisesti, jotkut syntaksia.
Mutta nyt tiedän, että toimii, muuten kutsutaan
menettelyjä, tai menetelmiä, yleensä tuottavat jotain arvoa.
He tekevät jotain.
He keksivät vastauksen.
Ne tuottavat tuotoksen.
Joten int vieressä tärkein on vain meidän lyhenne tapa sanoa
että tämä toiminto, tämä menettely on lopulta menossa
antaa sinulle takaisin numero.
Ja miksi se on, me tulemme takaisin.
Tärkein on vain oletus maailmanlaajuinen standardi oletuksena
toiminto, joka on menossa toteutettu C-ohjelma, kun
käynnistät sen.
Void tarkoittaa vain tätä asiaa, tärkein, ei tee mitään
argumentteja, tässä tapauksessa.
Joten olen ollessa erittäin selvä.
Ei ole merkkijonoja siellä, ei ole pilkkuja.
Void tarkoittaa mitään perusteluja to main.
>> Nyt lopuksi onneksi kaksi viimeistä riviä ovat tuttuja.
Sisällä aaltosulkeita meillä printf
ja meillä on paluuta.
Ja tuotto on sellainen valitettavaa, että meidän on
laittaa sen sinne, koska tässä tapauksessa se ei tee kaikkea
paljon kiinnostusta.
Mutta tietokoneohjelma, kun toiminto palauttaa 0,
tämä tarkoittaa kaikki on hyvin.
Mikään meni pieleen.
Sen sijaan, jos funktio palauttaa 1, tai negatiivinen 1, tai
negatiivinen 1337, tai joitakin satunnaisia ​​numeroita, kuten siitä, että
tarkoittaa yleensä sitä, että virhe todella on tapahtunut.
Joten jos olet Macin tai PC, jos olet koskaan nähnyt
joitakin ärsyttävää viesti, koska tietokone on kaatunut tai
jäädytetty, ja siellä arvoituksellisesti virheilmoitus,
ja sitten koodia, kuten järjestelmän koodi
1,2,3,4, jokin määrä,
että yleisesti on tarpeetonta yksityiskohtaisesti kertoa
Useimmille meistä ihmisille, mutta se on, mitä jotkut toiminto tai jotkut
Ohjelma on palannut, ei-nolla-arvoa.
Ja hyöty on se, että 0 tarkoittaa, kaikki hyvin, ja
sitten pohjimmiltaan on ääretön määrä asioita, jotka
voi mennä pieleen.
Minkä vuoksi he valitsivat 0 hyvän ja nollasta arvo
huono, kuten tulemme pian nähdä.
>> Joten mene eteenpäin ja kirjoittamaan tämän.
Niin muistaa, että toinen päivä käytin Macin avaamaan
pääteikkuna, ja sitten avasin teksti-ohjelman, kuten
TeXturi, ja aloin kirjoittaa koodia.
No se on hienoa.
Mutta kokemus tulee olemaan erilainen Macissa tai
Solaris-tietokoneessa, Linux-tietokone riippumatta käyttöjärjestelmä
järjestelmä satut käyttää.
Ja niin tietenkin me vaan käyttää jotain
kutsutaan CS50 Appliance.
Joten CS50 Appliance on ladattava ohjelmisto
jonka avulla voit suorittaa käyttöjärjestelmän nimeltä Linux,
erityisesti Fedora Linux, omalla Macin tai PC.
Ja voit tehdä tämän lataamalla jotain kutsutaan hypervisor.
Joten kaikki tämä dokumentoidaan Harjoitus 1.
Ja voit ohjata kohti mitä sinun tarvitsee ladata.
Mutta lopputulos, onko sinulla Mac tai PC, on sinun
ladata joitakin vapaita ohjelmistoja.
Voit sitten ladata CS50 Appliance, ja kerrot, että
ilmainen ohjelmisto - hypervisor -
ajaa CS50 Appliance ikkunassa tietokoneen.
Ja mitä tapahtuu, on tämä.
>> Olen nyt huomannut täällä, mikä näyttää olevan työpöydälle
ympäristöön.
Ja haluan todella kutistua tämän yhden ikkunan.
Joten tämä on nyt minun Mac, jossa pieni ikkuna täällä, ja sisältä
Tämän ikkunan sattuu olemaan täysin
eri käyttöjärjestelmä.
Itse on tämä alku menu tänne, muistuttaa
Windows, että on koko joukko alivalikoita, mukaan lukien
linkin CS50 tuotteeseen, Dropbox, ja vastaavat.
Ja mitä tämä ympäristö on nyt vakiona ympäristö
että me kaikki voimme nyt käyttää, joten ei väliä mitä
tietokone on, mitä olet asentanut sen, mikä versio
Mac OS tai Windows näytät, meillä kaikilla on nyt
samassa ympäristössä.
Ja nyt tässä ympäristössä voimme aloittaa kirjoittaminen koodia.
>> Joten aion mennä eteenpäin ja avata ohjelma nimeltä gedit.
Tämä on verrattavissa notepad.exe, tai
TextEdit Macissa.
Ja tämä on vain erittäin yksinkertaisen tekstin editointi ohjelma
joka näyttää tältä ensi silmäyksellä.
Nyt huipulla, minulla on valkoinen paletti, alareunassa I
on tämä musta ikkuna jossa lukee jharvard @ laitetta.
Ja se johtuu käyttäjätilin että valmiiksi luotuja
kaikille on nimeltään John Harvard.
Hänellä on kansio, johon kaikki hänen tiedostot eivät mene, ja
tässä missä voimme aloittaa kirjoittaminen koodia.
Joten anna minun mennä eteenpäin tässä ja zoomata vain hieman, ja olen
teemme # include , int main (void), ja
Sitten aion tehdä printf ("Hello World")
, Palauttaa 0.
Nyt tämä kaikki on aivan mustaa ja valkoista.
>> Anna minun mennä eteenpäin ja tehdä yksi asia opettaa gedit mitä olen
todella tekee.
Anna minun mennä Tallenna nimellä.
Aion valita vasemmalla puolella täällä jharvard.
Joten jälleen, vaikka et ole koskaan käyttänyt Linux ennen, rehellisesti
näinä päivinä, ne kaikki ovat hajauttaa osaksi olennaisesti
samantyyppinen käyttöliittymä -
Mac OS, Windows ja Linux.
Joten päätin jharvard kotikansiossa täällä.
Ja aion tallentaa tämän tiedoston hello.c.
Joten hyvin alkuun, olen kirjoittanut hello.c, nimeäminen C
ohjelman kanssa. C laajennus on
mitä yleinen käytäntö.
Ja osuin Tallenna.
Ja nyt, mitä hienoa on, että olen tehokkaasti opettanut gedit,
, että tämä on C-ohjelma.
Huomaa, että minun mustaa ja valkoista tekstiä nyt värikoodattu tai
syntaksin korostettu, mikä vain kiinnittää huomioni
eri semanttinen ohjelman osia.
Huipulla jäi sinne, koska minun ohjelmia saada monimutkaisempi, olen
menossa on yhteenveto kaikista niistä asioista, olen kirjoittanut.
Niin, että se siellä.
Sallikaa minun nyt loitontaa ja mene alas tämän pääteikkuna.
>> Joten tämä on ehkä uusi monille ihmisille.
Jos et ole koskaan käyttänyt komentoriviltä ympäristön, olet koskaan
käytetään DOS tai olet koskaan käyttänyt Linux tai olet koskaan avannut
Mac OS pääteikkunaa siellä paljon asioita
voisi tehdä GUI, kuten osoittaa, ja napsauttamalla, ja
vetämällä, ja pudottamalla, ja vastaavat, mutta yleensä -
varmasti maailman tietojenkäsittelytieteen -
komentorivillä, jos sinulla ei ole hiirtä
yleensä, sinulla on vain näppäimistön, on todella paljon
tehokkaampia kuin käyttöliittymä, kun saat sopeutetaan
eri komentoja.
Ja sinä tavallaan vapaa itsesi tarvitse kohta ja napsauta
kaikessa.
Joten gedit me tavallaan on molempien maailmojen parhaat puolet.
Voimme vetää ja pudottaa tekstiä, voimme nähdä sen
mukava ja värikoodattu.
Mutta kun on aika ajaa meidän ohjelmaan, käymme joskus
vain käyttää tätä pientä ikkunaa täällä.
>> Joten aion mennä eteenpäin ja tehdä tämän.
Vuonna pohja musta ja valkoinen ikkuna, aion mennä eteenpäin
ja kirjoittaa kalahtaa.
Ja sointi on nimi kääntäjä.
Se on ohjelma, joka muuntaa minun lähdekoodia
tulee, niin, kohdekoodilla.
0s ja 1s, jotka näimme lyhyesti viime viikolla.
Recall viime viikolla, lupasimme, että olimme menossa
menevät jotenkin näin - meidän piti olla
jotain tällaista -
ja tämä ei todellakaan ole jotain, että ihmisen tulee
tehdä manuaalisesti.
Joten sen sijaan aiomme käyttää ohjelmaa, ja että ohjelma
Tällöin kutsutaan clang.
Ja nimi minun ohjelma on hello.c.
Joten jotta laatia hello.c alkaen lähdekoodia
kohdekoodina tai 0s ja 1s, sen pitäisi riittää vain tehdä
tämä ja paina Enter.
>> Okei, mitään ei näytä tapahtuneen.
Mutta tiedän nyt, tai viime viikolla, että oletusnimi
ohjelma, kun kirjoitettu C, on typerästi kutsutaan a.out.
Useimmat mielenkiinnoton nimi voisitte keksiä.
On ensimmäinen kirjain, pois mitä oli
ulos, mutta olkoon niin.
Tämä on minun ohjelma, ja nyt piste slash, kuten tulemme näkemään, on
oikeastaan ​​vain eräänlainen suojausominaisuus, koska
a.out on ohjelma kirjoitin.
Se ei tullut minun tietokone, se on
ei Program Files.
Se ei ole Mac OS: n Ohjelmat-kansioon.
Minun täytyy olla erittäin selkeä tietokoneen kanssa, ja sano
Ohjelman a.out, on nykyisessä kansiossa,
hakemistossa.
Ja miten te edustatte tätä ympäristössä näin
on piste edustaa mitä kansioon olet parhaillaan sisään
Ja niin. / Tarkoittaa vain juosta a.out
nykyisessä kansiossa.
Ja minä suorittaa tämän Enter, ja voila, minun ensimmäinen ohjelma.
>> Nyt haluaisin ottaa askel taaksepäin.
Tämä ikkuna on vähän pieni, ja ymmärtää, että pohja
jäljellä Laitteen tässä on toinen kuvake.
Yksi on Chrome, jonka pitäisi olla melko tuttu, vain web
selaimen sisällä laitteen.
Ja tämä mustavalkoinen kuvake on vain
isompi pääteikkuna.
Joten jos se saa hieman harmittaa tavallaan juuri
Tässä pikku siivu ikkunan, jossa on vuorovaikutuksessa
ohjelmia, voimme sen sijaan tehdä tätä.
Ja nyt haluan aloittaa kirjoittamalla muutaman pian
tunnettava komentoja.
ls.
Joten ls on komento listalle.
Joten Mac OS tai Windows, olisit yleensä kaksoisnapsautat
kansio ja sitten voila, näet kaikki eri tiedostojen
ja kansiot.
Vuonna komentoriviltä ympäristön, jossa voit vain kirjoittaa
komentoja tai teksti, ls on vastaava.
Joten näytä minulle mitä on tähän hakemistoon.
>> Nyt siellä on nippu tavaraa täällä on niin vähän
tuttuja ja vähän tuntemattomia.
Mutta huomaa, että aivan kuten Windows ja Mac OS, jharvard
on työpöydän kansioon.
Joten kaikki kuvakkeet ovat minun työpöydälle tapahtua
olla kyseisen kansion.
Ei Downloads kansioon, tavaraa, että
Chrome voi laittaa sinne.
Dropbox.
Joten Laitteen mukana tulee sisäänrakennettu tuki Dropbox
niin että yli lukukauden, voit synkronoida kanssa Dropbox
huomioon siten, että kaikki ohjelmat varmuuskopioidaan.
He saatavilla toisessa tietokoneessa.
Jos jotain joskus menee vikaan laitteen, voit
helposti toipua Dropbox.
Niin, että kansio on olemassa siitä.
On kaksi tiedostoa, jotka tein - hello.c
ja a.out.
Ja sitten oikealle olemassa joitakin muita kansioita, että me
päästä loppupuolella lukukauden, web
ohjelmointi.
Joten kun teen. /, A.out, Anna, että sanoo menevät
hakemistosta olen, nykyisen hakemiston, ja suorita
ohjelma nimeltä a.out oikeassa.
>> Selvä, joten on kiva ja hyvä, mutta se ei ole kaikki, että
pakottaa kirjoittamaan ohjelma nimeltä auttaa a.out.
Joten voimme todella tehdä tämän hieman eri.
Joten sen sijaan juuri käynnissä kalahtaa, hello.c, lisätään
mitä kutsutaan komentorivillä.
Joten komentorivillä tai kytkin tässä tapauksessa, on vain
toinen sana tai lause kirjoittamalla klo kehotteeseen jälkeen
ohjelma, jonka haluat suorittaa.
Joten tässä tapauksessa, clang on ohjelma haluan ajaa,-O
tarkoittaa tuotoksen tiedosto on enää kutsuta a.out.
Output tiedosto nimeltä Hei, ja niin kokoamalla
viimeinen sana line, hello.c.
Eli lyhyesti sanottuna, tämä on hyvin marginaalinen parannus, jolloin
sijasta ottaa tämän typerästi nimetty tiedosto a.out,
Voin nyt tehdä clang-o Hei, sitten hello.c ja
sitten paina Enter.
Mikään ei tunnu tapahtuvan, mutta jälleen mielelläni, 0 - kun
mikään ei tunnu tapahtuvan, että tarkoittaa mitään väärää tapahtunut -
Tehdäänpä ls nyt Anna, ja olen todellakin nyt
on hei ohjelman.
Joten jos kirjoitat hei nyt komentoa ei löytynyt.
OK,. /.
Niin juuri oikea.
Joten koska tämä ohjelma kirjoitin, ja se ei tullut
tietokone,. / Hei, Enter, tarkoittaa
Olen nyt käynnissä hei.
>> Siinä se siellä.
Nyt mitä me lopulta saada enemmän ja enemmän komentoriviltä
perusteluja, jotta voisimme tehdä enemmän, mutta vain niille,
joille tämä voisi olla vanha hattu, haluan todella mennä
hakemistoon täällä ja vain antaa sinulle teaser miten muuten me
voisi mennä noin täytäntöönpanoa Hello World.
Sallikaa minun mennä tänne, ja aion avata sen.
Joten oikeastaan, aion selittää, mitä olen tekemässä, joten
Tämä on hyödyllistä.
Saanen takaisin ylös.
>> Joten olen tehnyt tätä jo pitkään.
Joten huomaa yli oikealla olemassa pari
luetteloissa omituisesti nimetty source1m ja source1w.
Tämä on vain typerä yleissopimuksen käytämme.
Lähde vain tarkoittaa lähdekoodia, 1 tarkoittaa tämä on viikolla yksi, ja
m tarkoittaa se maanantaina ja w tarkoittaa, että on keskiviikko.
Joten mitään arvoituksellinen siellä.
Se on vain lyhennetty merkintätapa.
Nämä siniset asiat ovat kansioita, muuten kutsutaan
hakemistoja.
Haluan mennä tuohon kansioon nyt, ja normaalin tietokoneen
Voisin vain kaksoisnapsauttamalla kansion kuvaketta ja
siellä kaikki minun tiedostot.
Mutta komentoriviltä ympäristön, en voi aivan tehdä
että, niin sen sijaan, minun vaihtaa hakemistoja käsin.
Joten jos kirjoitat cd ja sitten source1m, Enter, huomaat, että
Minun kehotteeseen juttu valkoinen vasemmalla, juuri muuttunut.
Ja niin todellakin, kun se vain sanoi suluissa ja sitten
pikku koukero, tilde merkki, että juuri tarkoitti olin
John Harvardin kotihakemistossa, hänen My Documents-
hänen henkilökohtaiset tiedostot.
Mutta nyt suluissa lukee ~ / source1m.
Tämä tarkoittaa vain sitä olen kansioon source1m
se John Harvardin kotihakemistossa.
Joten jos haluan nyt luetella tämän kansion, helppo
kysymys, kirjoitan vain ls.
Ja nyt näen kaikki tiedostot, että olen valmiiksi luotu nykypäivän
luento, jotka kaikki, tai suurin osa, joka tapahtuu
päättyy. c.
>> Joten anna minun mennä eteenpäin nyt ja ajaa gedit ohjelman nimeltä
holloway.c, joka on kirjoittanut joitakin satunnaisia ​​hakkeri
Internetissä, joka näyttää vähän kuin tämä.
Ja emme mene läpi tämä millään
yksityiskohta, mutta niille mukavampaa, varsinkin, jos
Haluatko arvata, mitä tämä ohjelma tekee täällä.
Voit olla varma, olitpa enemmän tai vähemmän mukavaa,
emme edes saada tällaista asiaa loppuun mennessä
tällä lukukaudella.
Tämä on mitä esimerkki sotkettu C kilpailu, joka
keinoin kirjoittaa kaikkein arvoituksellinen etsivät ohjelman mahdollisesti
voi päihittää muut fiksuja ihmisiä, jotka ovat samalla
yrittää kirjoittaa asioita ja keuliminen, että he voivat kirjoittaa
enemmän arvoituksellinen asioita kuin sinä.
Joten tämä ei ole esimerkki hyvin kirjoitettu ohjelma
näkökulmasta tyyli, tämä on esimerkki ohjelmasta, joka
voittaa kilpailu, ihmiset yrittävät
olla epämääräisiä ja abstrakteja.
>> Joten jos otamme tämän asian, anna minun mennä minun pääteikkunaa
niin sanoakseni.
Joten tämä musta ja valkoinen ympäristön kutsutaan
pääteikkuna yleisesti.
Anna minun mennä eteenpäin ja kääntää sen.
En aio käyttää kalahtaa, koska tämä ohjelma on
vähän arvoituksellinen ja se tarvitsee eri
kääntäjä, yksi nimeltään GCC.
Mutta se ei sama asia.
Se vie lähdekoodi kohdekoodin.
Ja nyt jos juoksen a.out, että ohjelma
Näin juuri tämä.
Niin, että mies, joka vuonna voittivat kilpailun.
Oli miten oli, emme ole menossa siihen suuntaan, sinänsä.
>> Joten itse yrittää nyt erottaa toisistaan, mitä voimme tehdä
Näiden perusrakenneosia tehdä enemmän ja enemmän
mielenkiintoisia ohjelmia.
Joten olemme kirjoittanut ohjelman, olemme suorita ohjelma.
Nyt voimme todella yksinkertaistaa ja ei enää tarvitse kirjoittaa
sana kalahtaa kehoitteeseen.
On käynyt ilmi, meidän ohjelmat saavat enemmän arvoituksellinen, voimme tai
monimutkaisempia vaan voimme ajaa tämän komennon.
Joten anna minun mennä takaisin kotiini hakemistoon, niin sanotusti, haluan
Poista - rm on poistamiskomento - Menen poistamaan
tiedosto nimeltä a.out ja hei.
Ja nyt huomaan komentoriviltä ympäristön, aivan kuten vuonna
GUI, saat kehotuksen. En voi napsauttaa painiketta vaikka, I
tarvitse kirjoittaa y = kyllä, y kyllä.
Ja nyt jos en kirjoita ls jälleen, huomaa, että nämä vihreät
ohjelmat - a.out ja hei -
ovat poissa.
Varokaa rm.
Se voi tehdä pahoja asioita, kuten voit vetämällä
asioita roskat.
>> Joten nyt mennään eteenpäin - ja voisin tehdä tätä - clang-o
Hei, hei -
Olen jo kyllästynyt kirjoittamalla komennon.
Vaikka olen kirjoittanut sen hiukan nopeasti.
Jotta voimme sen sijaan tehdä tehdä hei.
Joten tee ei kääntäjä.
Se on vain ystävällinen ohjelma, joka tulee Linux, tässä
tapauksessa - käyttöjärjestelmä -
joka automatisoi laadintaprosessin ohjelmia.
Joten sen sijaan muistaa clang-o tiedostonimi ja
Sitten niin edelleen, varsinkin kun nuo rivit pitenevät ja
pidempi, voin vain kirjoittaa tehdä.
Ja tämä tulee sylkemään läjän tavaraa, että
me lopulta nähdä tällä lukukaudella.
Mutta huomaa nyt jos en kirjoita ls, hei on takaisin minun hakemistoon.
Ja todellakin voin ajaa sitä. / Hello.
Joten tee vain automatisoi käynnissä mitä oli,
Tässä tapauksessa, joka on paljon pidempi, monimutkaisempi komento.
Joten aiomme alkaa käyttää valmistajaa, vain koska se on paljon
käyttäjäystävällisempi.
>> Mutta nyt Tehdäänpä mielenkiintoisempi ohjelma
kuin vain sanoa hei.
Joten ohjelmiin olemme kirjoittaneet tähän mennessä siellä on tärkein.
Se on vain oletus asia käynnistymässä kaiken pois.
Mutta on muitakin tehtäviä siellä samoin, ja
stdio.h on asia, näimme yläosassa meidän
tiedosto ennen, ja se mitä kutsutaan standardin kirjastoon.
Sisällä standardin kirjasto on koko joukko toimintoja
että joku muu kirjoitti, ja voimme alkaa käyttää näitä
toimintoja kirjoittaa enemmän
mielenkiintoisia ohjelmia itse.
>> Joten anna minun mennä takaisin laitteeseen.
Aion sulkea tämän pääteikkuna.
Aion sulkea asioita kirjoitti aikaisemmin, ja vain mennä
osaksi hello.c, ja huomaa nyt voin tehdä seuraavasti.
Moikka maailma ei ole kovin kiinnostavaa, haluaisin
mukauttaa tämän ohjelman itselleni.
Joten sen sijaan sanoa maailman, aion
mennä eteenpäin ja sanoa -
Voisin kirjoittaa David - mutta tämä todella on eräänlainen
pohjimmiltaan sama.
Mutta katsotaanpa kokeilla tätä paikkamerkki ajatus.
Muistutan, että C, pikemminkin printf, meillä oli nämä
paikkamerkkejä, ja on enemmän kuin vain% d.
Joten% d oli nopea järki tarkistaa.
Okei, desimaaliluku, se on siinä.
Desimaaliluvut, siinä kaikki.
Joten% C, koska me kohtaavat, tulee olemaan luonteeltaan.
Laita merkki täällä, kirjain Z,
tai välimerkkejä symboli.
Yksikirjaimisia,% f, kukaan tiedä muista kielistä?
Joten Liukulukuarvo.
Reaaliluku.
Joten ei desimaaliluku - tämä on oikeastaan ​​todellinen numeroon
desimaalipilkun, ja jotkut numeroiden vasemmalla
ja oikealla puolella.
% S, merkkijono.
Tuo aiomme nähdä melko usein.
String taas on vain sana, lause, sarja
yksittäisiä merkkejä.
Ja lopuksi, LLD?
Joten tämä on enemmän kulman tapauksessa.
Pitkä, pitkä desimaalin.
Joten jos haluat olla vain numero, tämä iso,
haluavat isompi numero, olet menossa on täsmennettävä,
tietokone, että se on tietyn kokoinen.
>> Joten nipistää tätä hieman.
Sen sijaan vain vaikea koodia David, saanen hieman
dynaamisesti sanovat% s.
Joten laita% s täällä, mikä on paikkamerkki merkkijono.
Sitten haluan tehdä pilkku, ja sitten "David" tänne.
Nyt tämä ei ole kovin älyllisesti kiinnostava,
koska kaikki olen tehnyt nyt todella luoda enemmän työtä
tietokone.
Sen sijaan kertoa tietokone ei tällä kerralla, olen nyt
sanomalla tehdä tämän ja aseta merkkijono täällä lopulta, pilkku,
tässä on se merkkijono.
Joten tämä ei ole paranemisen, mutta se on ainakin
askel kohti entistä mielenkiintoinen ohjelma.
Koska nyt haluan mennä eteenpäin ja tehdä tästä ikkunaa hieman
isompi, anna minun mennä eteenpäin ja suorita make hei.
Ja nyt,. / A.out ei toimi, miksi?
Okei, nyt sitä kutsutaan hei.
Joten jälleen tehdä, ja myös clang kanssa-o, nimeksi
ohjelma olla jotain mielenkiintoista.
Ja voilà: nyt se sanoo hei David.
>> Selvä, vielä tyhmä ohjelma.
Joten nyt mennään todella palata tänne ja esitellä käsite
muuttujan.
Eikö olisi mukavaa, jos voisin julistaa muuttuja
joiden tyyppi on merkkijono?
Ja muuttujan arvon tulee itse käyttäjä
itseään.
Joten mielivaltaisesti, aion soittaa muuttuja s, mikä on
vain yhteinen yleissopimus kun yksi muuttuja nimeltä
merkkijono.
Aion tehdä yhtäläisyysmerkki, ja sitten aion soittaa
toiminto nimeltään GetString.
Joten GetString ei ole jotain, joka tulee rakennettu C. Se
toiminto, joka CS50 henkilökunta kirjoitti, oikeastaan ​​vain
Nämä pari ensimmäistä viikkoa, yksinkertaistaa prosessia
saada käyttäjä syöttää ja saada käyttäjä syöttää muodossa
merkkijonojen tai numeroita, ja tällaisia.
Joten GetString on kuin printf, mutta ilmeisesti pikemminkin kuin
tulosta se tekee mitä sen nimi sanoo, saada merkkijono.
Mutta käyttää GetString, me aiomme pitää tehdä muutoksia
täällä, tätä pidemmälle.
Joten intuitiivisesti, tämä ohjelma, toivottavasti tulee jotenkin
saada merkkijonon käyttäjä, ja sitten mitä se aikoo tehdä
kanssa merkkijono, kutsutaan s?
Se vain menee tulostaa sen, eikö?
Vielä ole stimuloiva ohjelma, koska kaikki se menee
tehdä on plug in, että arvo osaksi jossa% s
sanoo sen pitäisi mennä.
>> Joten ainakin nähdä tässä toiminnassa.
Saanen tallentaa ja loitontaa.
Nyt minun pääteikkunaan tänne, pieni siivu yksi,
saanen eivät tee hei.
Okei, ja ah, pirun, sain koko joukko virheitä.
Saanen vierittää ylös, ja näemme ensin -
joten katsotaanpa todella tehdä tämän vielä suurempi ikkuna, jotta voit
näkee kuinka huonosti Mokasin -
joten varmista Hei.
Okei, se on katastrofi, eikö?
Olen kirjoittanut kolme riviä koodia, ja
Se on antanut minulle 12 virheitä.
Miksi tämä?
Joten onneksi Usein kun näet monia virheitä
sylkee kerralla, se on oikeastaan ​​vain, koska olet
sekoittaa tietokone täällä.
Ja se on edelleen hämmentynyt kun se pääsee tänne.
Ja niin se vain käynnistyy kaatumisen ja kompastelu ja
sylkee enemmän pelottavaa tavaraa kuin todellisuudessa koskee.
Joten yleensä aloita aina alkuun yksi.
>> Joten hyvin alkuun kaikkein esiintymä punainen,
virheilmoitus on tämä.
Käytä pimeän tunnisteen merkkijonon, minä
tarkoittaa vakiona?
En.
Tarkoitin merkkijono, mutta tämä johtuu myös sanajonon
että minun pitää käyttää suullisesti todellisuudessa
ei ole olemassa C joko.
Se on jotain käytämme vain ensimmäisen viikon tai kahden
täällä, mutta se on olemassa tiedosto nimeltä cs50.h.
Joten nyt, tiedän, että on tämä muu kirjasto, joka
Henkilökunta kirjoitti, joten se on kirjoitettu myöhemmin kuin
stdio.h.
Mutta sisällä cs50.h on määritelmä, synonyymi
lajittelee, joka luo tämä sana merkkijono.
>> Joten nyt haluan mennä takaisin minun pääteikkuna.
Aion selvittää tämän koko sotkun by Ctrl-L. Me vain
pyyhi kaiken puhtaaksi ja aion mennä eteenpäin ja tehdä
Hei taas, Anna.
Joten mitä on tapahtunut nyt?
Nyt kaikki nämä virheet menivät pois.
Joten mitä olen oikeasti tehnyt?
Olen juuri opettanut tietokoneen merkkijono olemassa, ja se on
että tiedosto nimeltä cs50.h.
Joten lopeta valittaminen, sillä nyt tiedät mistä löytää
että toiminto vakuutus niin sanotusti.
Jos se on olemassa maailmassa.
>> Joten nyt aion mennä eteenpäin ja ajaa hei.
Tuntuu olevan loputon silmukka, mitään ei tapahdu.
Joten minun täytyy kirjoittaa jotain, oikealla.
Ensimmäinen rivi koodia minun ohjelma GetString.
Joten se on kirjaimellisesti odottaa minua saada merkkijono.
Joten siinä mielessä kyllä, se on ikuinen silmukka.
Ilmeisesti GetString on oletusarvoisesti että
kirjoitti - henkilöstö -
että sanoo vain odottaa ja odottaa ja odottaa ja odottaa ja odottaa,
kunnes käyttäjä antaa merkkijonon kirjoittamalla jotain tuumaa
Joten anna minun mennä eteenpäin ja kirjoita D--v - i-d, Enter.
Ja siinä se on, hei David.
>> Nyt tämä kuulostaa se vain teko?
Anna minun mennä eteenpäin ja kirjoita Tommy.
Anna, okei, tuntuu toimivan.
Toimii Rob, toimii Zamyla, toimii - okei.
Niin se menee töihin, todennäköisesti.
Joten se pitäisi tulostaa mitä me oikeastaan ​​antaa sille,
ja voimme olla hieman vaikeaa täällä.
Katsotaan jos teemme jotain hei.
Voi mennä tänne, katsotaanpa, kopioida, liittää.
En aio pystyä liitä että monta kertaa täällä.
Liitä, okei, Shift + Ctrl + V. Joten mikä voisi
käydä niin, että on paha täällä?
>> Okei, segfaults.
Joten jotkut teistä etukäteen taustat tietää, että
yleensä, jolloin tietokoneet paljon panoksia, kun he
luultavasti ei ole tarkoitus saada pitkiä nimiä kuten tämä - huono
asioita tapahtuu.
Itse asiassa maailmassa web, myös tämä tapahtuu melko vähän,
jolloin kun olet suunnittelemalla verkkosivuilla, kun olet
suunnittelu Facebook, sinun täytyy tehdä mielivaltaisia ​​päätöksiä up
edessä, kuten kuinka kauan joku
Facebook käyttäjätunnus olla?
Tai kuinka kauan jonkun etunimen?
Kuinka kauan jonkun puhelinnumeron olla ja vastaavat.
Ja jos ohjelmoijat tekevät huonoja oletuksia ohjelmat rikkoa
koska yrität antaa heille enemmän lähtö, enemmän panosta
pikemminkin kuin ne ovat muistissa.
Tai RAM varattu sitä, joten jos nyt osuin Enter,
että ohjelma todella toimi, koska olimme kirjastossa
ja oikeastaan ​​odotettavissa tässä tapauksessa.
Mutta epäilemättä tämä lukukausi, voit kirjoittaa vähintään yhden
ohjelma, sanovat nämä sanat.
Muista tämä viikon päästä, ehkä kaksi päivää nyt.
Segmentointi vika on huono asia.
Se viittaa sinun tehdä jotain, että tietokone
ei ennakoida.
Ja siinä tapauksessa, te, ohjelmoija, ei ennakoida.
Paljon kuin mitä tämä kasa sukkia, oli eri
rajatapauksissa olisimme kohdanneet.
Samoin ohjelmissa jos et ennakoida kuinka kauan
joku nimi tulee olemaan.
Tai mitä jos minulla on pahantahtoinen käyttäjä, ja hänen nimensä on
oikeastaan ​​aika lyhyt, mutta he vain yrittävät
sotkea minua?
Mitä tulee olemaan käyttäytymistä minun ohjelma?
No, siinä tapauksessa, jotain voisi todella kaatua.
>> Joten tehdään tämä.
90 minuutissa, tämä on hirvittävän kauan
tehdä tietojenkäsittelytiede.
Miksi emme päästä tapana ottaa viiden minuutin
murtaa täällä, ja kun palaamme, me sukeltaa joitakin
monimutkaisempia ja pakottavia ohjelmia?
Viisi minuuttia.
>> Selvä.
Joten kommentoida lyhyesti.
Olen kuullut, että vaikka tämä oli näytössä ennen, mitä
tuli suustani oli cs50.net/rsvp.
Tämä on oikea. cs50.net/lunch.
Joten nyt voit kokeilla RSVPing tämän osoitteessa / lounaalla.
Mutta tehdään tämä nyt.
Joten tämä on ollut erittäin nopeaa, super uutta paljon ihmiset.
Vanha hattu joitakin ihmisiä.
Joten kelata vain hetken, ja miten saimme
Tämän hello world lähdön hetki sitten.
>> Joten ensimmäinen, on tämä CS50 Appliance.
Jälleen ohjelmisto, ongelma asettaa 1 aikoo kertoa
miten ladata sitä, missä ladata sen, mitä sitten
ja niin edelleen.
Ja sitten kun noudatat näitä ohjeita, voit
maksimoida ikkunan, ja Mac tai PC näyttää
vähän jotain tällaista.
Musta tausta, kotikansio yläosassa, jossa kaikki
tiedostot menevät, roskakori vasemmassa yläkulmassa,
Valikon alaosassa.
Joten jälleen, melko samanlainen henki Mac OS tai Windows-
vaikka se sattuu olemaan Linux.
Joten mitä me seuraavaksi tehdä?
No, aloimme kirjoittaa ohjelmia.
Ja muistamme viime viikolla, että kaikki se kestää kirjoittaa
Ohjelma on yksinkertainen tekstieditori,
kuten Muistiossa tai TextEdit.
Suoraan sanottuna, voit jopa käyttää Microsoft Word.
Mutta pahoja asioita lopulta tapahtuu, koska se on hyvin
kovaotteinen ratkaisu ohjelman kirjoittaminen plus se will
tallentaa sen väärässä tiedostomuodossa.
Mutta se on vain tekstieditori, tekstinkäsittelyohjelma, on kaikki se
Tarvitaan kirjoittaa ohjelman.
>> Joten CS50 Appliance, voimme tehdä tämän yhdellä yksinkertaisella tavalla.
Voimme klikkaa kuvaketta alhaalla vasemmalla.
Ja vielä, ongelma asettaa 1 neuvoo tätä, ja voilà -
saat tämän mustavalkoinen käyttöliittymä, jossa voimme aloittaa
kirjoittaa koodia.
Joten ala kirjoittaa erittäin yksinkertainen ohjelma uudelleen.
Aion mennä jopa Tiedosto, Tallenna ja aion soittaa
Tämän sanotaan, hello2.c.
Ja olen vain kertoa sitä klikkaamalla jharvard, laita se
sen kotihakemistoon, en todellakaan välitä
jos tämä menee.
Ja sitten Tallenna.
Ja nyt voin aloittaa kirjallisesti oman ohjelman.
Ja muistan aiemmin, että minun täytyy kirjoittaa int
main (void).
Suurenna päälle vasemmalla.
Ja sitten haluan sanoa printf, ottaa kaksi.
Ja nyt rivinvaihto, tiivistä lainaus, sulje
sulkeisiin, puolipiste.
Ja sitten minä menen tänne minun pääteikkunassa se
upotettu gedit, vain mukavuussyistä.
Ja aion mennä eteenpäin ja kirjoittamaan tehdä hei, mutta ei
Hei yksin, hello2.
>> Joten minun tiedoston nimi hello2.c. My tiedosto siis
pitäisi kutsua hello2, tässä tapauksessa.
Hemmetti, mitä tein väärin?
Selvä, joten olen selkeästi pois linja, jos muistatte, mitä
aikaisemmista ohjelmista näyttää.
Mutta katsotaanpa jos emme kiusaa tätä toisistaan.
Valitettavasti useimmat ihmiset, jotka kirjoittavat ohjelmia, jotka
kirjoitamme ohjelmat eivät yksinkertaistaa asioita kovinkaan hyvin.
Joten meillä on sellainen silmäillä mitä ei aivan tee
aistia tänne ja katso jos voimme selvittää, mikä on vialla.
Aivan ensimmäinen rivi siellä sanoo epäsuorasti julistamisesta C
kirjaston funktion printf tyypin int.
OK, ymmärsin osa sitä.
Mutta näyttää viittaavan siihen, että käytin printf
väärin, jotenkin.
Ja mitä järkeä on väärin?
En vain opettaa tietokoneen se on tiedoston
kutsutaan stdio.h.
Nyt minun on vain juuri muistaa nyt, että printf on
vuonna stdio.h, ja todellakin siellä tulee olla muita
toimii saman tiedoston me tottua.
>> Joten nyt haluan mennä eteenpäin ja paina Ctrl-L vain selvää, että
pois, uusinta tee hello2, ja voila.
Ja tämä komento uudelleen, monimutkaisempi kuin me kerromme varten
nykypäivän tarkoituksiin.
Mutta se ei suorita kalahtaa, ja sointi vie lähdekoodia ja
sylkee 0s ja 1s.
Ja ne 0s ja 1s tässä tapauksessa kutsutaan mitä?
Okei, kohdekoodilla.
Ja tiedosto he ovat kutsutaan, niin,
hello2, tässä tapauksessa.
Koska minun tekstitiedosto oli hello2.c, Enter.
Ja nyt olen ottaa kaksi huutomerkki, huutomerkki
piste, huutomerkki.
Selvä, joten meillä on nyt mahdollisuus saada jouset,
ilmeisesti.
No, mitä muuta voimme saada käyttäjiltä?
>> Hyvin CS50 kirjastossa, siellä on muita toimintoja, jotka
menossa yksinkertaistaa elämäämme näinä ensimmäisinä päivinä.
GetChar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
No, katsotaanpa nyppiä pois helpoin näistä ensimmäinen.
GetString kirjaimellisesti tekee sen.
Se vain istuu siellä odottamassa käyttäjä kirjoittaa jotain,
ja heti kun kirjoitat jotain ja Enter, se
tekee jotain tämän arvon.
Mennään takaisin että esimerkiksi nähdä, mitä
GetString teki.
Anna minun mennä eteenpäin ja avata vuonna gedit, hello.c ja muistuttaa
että juuri ennen taukoa, tämä on mihin jäimme.
>> Joten nyt kiusaa tällä toisistaan ​​hieman tarkemmin.
Joten rivillä 6, siellä on kaksi asiaa
tällä hetkellä tapahtuu.
Yhtäläisyysmerkki on erottaa alkupuoliskolla ja toinen puoli.
Joten vasemmalla puolella yhtäläisyysmerkki, olemme
sanomalla merkkijono s.
Ja sitten, aivan Maallikon termein, mikä on merkkijono s
teet, luulet?
Se luo mitä?
Joten se luo merkkijono nimeltä s.
Nyt mitä se oikeastaan ​​tarkoittaa?
No, se on varata tilaa merkkijonon nimeltä s.
Se ei ole aivan oikeassa.
Mitä tämä tekee?
No tietokoneita, kuten tiedätte, on kiintolevyt, siitähän
tiedostot tallennetaan.
Tietokoneet ovat RAM, ja se jos ohjelmat on ladattu
kun ne ovat käytössä.
Joten kun kaksoisnapsauttamalla kuvaketta ja Microsoft Word avaa
ylös, Microsoft Word on käynnissä, niin sanotusti, RAM, joka on
elektronisen tietokoneen osa.
Ei fyysinen, mekaaninen osa, joka on spinning, jossa
data tallennetaan yleensä pitkällä aikavälillä.
Joten merkkijono s on melko paljon kertoo tietokoneen antaa minulle
tarpeeksi keskusmuistia mahtuu merkkijono.
Nyt se on vähän liian yksinkertaistava, koska
kuinka suuri on merkkijono aiotaan?
No emme oikeastaan ​​tiedä vielä, joten lähiviikkoina
me oikeastaan ​​vetää kerros, joka on merkkijono ja
me kerromme mitä se todella on.
String, nyt on vain mukava yksinkertaistamista maailmamme.
Mutta merkkijono s julistaa merkkijono nimeltä s, nyt.
Julistaa merkkijono.
Se pidättää joitakin tilaa RAM merkkijono käyttäjä on
noin kirjoittaa.
>> Nyt katsokaamme oikeaan yhtäläisyysmerkin.
Niin se sanoo GetString ().
Ja pieni järki tarkistaa.
Se, että ei ole mitään sisällä suluissa
merkitsee entä GetString?
Siinä ei argumentteja.
Eli et voi vaikuttaa sen käyttäytymiseen millään tavalla.
Joka kerta kun käyttää sitä, se saa merkkijono ja se on siinä.
Sen sijaan, printf, toivottavasti sen käyttäytyminen ei
muuttaa joka kerta.
Muuten, se on melko hyödytön tulostusta, jos
se ei sama asia.
Jos se tulostuu aina David tai jotain
mielivaltainen koko ajan.
Joten printf järkevää olla argumentti.
GetString ei todellakaan tarvitse argumentti, koska halusin
saada merkkijonon käyttäjä ja se on käyttäjä, joka menee
toimittaa dynaamisuutta kirjoittamalla eri kirjaimia
joka kerta näppäimistöllä.
>> Joten mitä GetString eivät lopulta?
Ajattele sitä tällä pieni musta laatikko.
Ja tämä musta laatikko ei ota syöttää, mutta kun lyö
, se sylkee merkkijono, jonka käyttäjä on kirjoittanut tuumaa
Ja että siellä on yhtäläisyysmerkki siellä tarkoittaa toteuttaa
mitä sylkemään oikealla ja säilytä se sisällä
mitä vasemmalla.
Joten yhtäläisyysmerkki täällä, se tosiasiassa ei tarkoita
tasa-arvo, se pikemminkin teknisesti tarkoittaa tehtävän.
Ole arvo oikealla, ja laita se
muuttuja vasemmalla.
Niin, että kaikki mitä siellä tapahtuu.
>> Nyt linja 7, me soittaa printf.
Joten printf toivottavasti on tulossa hieman tylsää nyt.
Joten tulostaa muotoillun merkkijono.
Mitä merkkijono?
Tulosta ", h-e-l-l-o-% s
! \ N ".
Selvä, joten mitä haluan plug-in% s?
Kirjaimellisesti, mitä tallennetaan s.
Eli tässä tapauksessa pieni järki tarkistaa, kuinka monta argumenttia ei
printf kestää?
Okei, olen kuullut erään.
Kuulin taas yhdeksi.
Kaksi, kuulin kaksi.
Ja miten noin kolme?
Okei, kolme?
Erinomainen.
Kolme mahdollista vastausta, vain yksi niistä on oikea.
Joten väitteet jälleen vaikuttaa käyttäytymiseen funktion.
Aikaisemmin printf ei vain ottaa yksi argumentti.
"Hello World" oli yhden argumentin.
Kuitenkin nyt, huomaa jos pilkku on.
Tämä pilkku on ulkopuolella lainaus / lainaus päättyy, mikä tarkoittaa
hei printf, tässä tulee toinen argumentti.
>> Joten pilkkuja useimmissa ohjelmointikielissä
Erota argumentteja.
Joten vastaus tähän ei todellakaan ole yksi, koska
on tämä pilkku.
Niin vähän, printf on ilmeisesti ottamalla kaksi
väitteet tällä kertaa.
Mutta mahdollisuus temppu kysymys tässä on, mitä
tästä pilkku?
Tarkoittaako tämä sitä, että on olemassa oikeastaan ​​kolme argumentteja?
Tämä, tämä, ja tämä.
Joten ei, koska se pilkku on sisällä lainauksia, jotka
tarkoittaa se on oikeastaan ​​vain esteettinen Englanti.
Sillä ei ole mitään tekemistä määrän
argumentteja tässä ohjelmassa.
Joten tämä pilkku on ulkopuolella lainausmerkkeihin.
Ja palaa sitten 0.
Nyt mennään vain eräänlainen ottaa tämä yksi uskossa
tänään, ja juuri tietää, että kun toiminnot tehdään täytäntöönpanovaltion
koodiriviä, ne tulee yleensä palauttaa jotain arvoa.
Tässä tapauksessa vain koska tärkein on palautettava int-
se on vain tapa kieli C toimii.
>> Joten koska mitään meni pieleen, tuntuu tämä ohjelman
hienoa, olen vain kova koodattu vastineeksi 0.
Mutta toisin, ja aion kirjoittaa tähän välikoodissa
nyt, aivan kuten Joosef teki, kun teimme sukka
Esimerkiksi viime viikolla.
Jos jotain meni pieleen - tämä ei ole varsinainen koodi - meni
väärin, palaa, sanotaanko, 1.
Else return 0.
Joten tämä on, jos menemme tähän.
Tämä ei ole varsinainen C-koodia, vain pseudokoodilla.
Mutta näin voit palata
erilaisia ​​mahdollisia arvoja.
Mutta nyt olen vain mennä eteenpäin ja palata 0.
Selvä, kysyttävää tähän mennessä on syntaksi, toiminnallisuus,
tai vastaavaa?
Niin, takaisin.
>> YLEISÖ: [kuulumattomissa]
DAVID MALAN: Voitko puhua hieman kovempaa?
Miksi tämä ohjelma return 0, ja?
YLEISÖ: [kuulumattomissa]
DAVID MALAN: Sepä koska sain laiska, anteeksi.
Ei hyvä akateeminen vastausta, palaa 0.
Voin tavallaan pelastaa tämän sanomalla teknisesti C, jos tärkeimmät
ei nimenomaisesti palauta arvo, 0 palautetaan
automaattisesti.
Mikä on totta, en vain peittelyyn.
Mutta minun olisi pitänyt tehdä sitä tällä tavalla.
Ei mielenkiintoista takeaway kuin muu kuin minun virhe.
Niin?
>> YLEISÖ: Yleensä kun kirjoitat mitätön, se tarkoittaa, että olet
eivät palaa jotain.
DAVID MALAN: Oikea.
Jos sen sijaan voit määrittää ennen nimen toiminto,
Esimerkiksi täällä, mitätön, niin funktio
ei palauta mitään.
Ja siksi haluaisin vain sanoa, paluu tai ei mitään,
ja se olisi johdonmukainen.
Ja Palaamme tähän.
Ja vain FYI, yksi saaliiden oppimisvaikeuksista
ohjelmointi maailmassa, joka on satoja kirjoja ja
satoja sivustoja siellä on tulet aina
Katso eri syntaksin eri kirjoista
eri ihmiset.
Toteuta me teemme parhaamme kohdissa ja luentoja olla
johdonmukainen.
Mutta joskus näet ristiriitaisia ​​syntaksi.
Joten jos olet epävarma, kysy.
Ja yleisesti, me hoidamme luentoihin ja osioita
melkein aina esittää sen oikealla tavalla.
Ja minä sanon melkein aina, koska esillä olevassa asiassa.
Muita kysymyksiä?
>> YLEISÖ: Onko% s ulkopuolella olevia laitetta?
DAVID MALAN: Onko% s olemassa ulkopuolella laitteen?
Kyllä.
Joten% s on tekemistä sen kanssa C. Se, että käytämme sitä
Laitteen pohjimmiltaan ole mitään tekemistä
piirteet kielen käytämme.
Todellakin, viime viikolla, kun käytimme minun Mac, kirjoitin
C-koodin Macin.
Olisin voinut käyttää% s Macin, ja voit käyttää sitä
Windows-tietokoneen, jos asennat kääntäjä, kuten
Visual Studio Microsoft.
Joten% s.
Kaikki me teemme sisällä ikkunan tänään on
tehdä C. Ja pohjimmiltaan mitään tekemistä
käyttöjärjestelmän osalta.
Sen sijaan, musta ja valkoinen pääteikkuna - kun
Olen kirjoittamalla asioita, kuten ls, ja RM, sekä cd -
että on tekemistä käyttöjärjestelmän ja
navigointia.
Joo.
YLEISÖ: Tarkoitin kirjasto, CS50 kirjastoon.
DAVID MALAN: Okei, joten jos tarkoitat avainsanan merkkijono, joka
olemassa vain CS50 kirjastossa, oikea.
Tämä ei ole C itsessään, ja todellakin pari
viikon me heittää pois CS50 kirjasto ja käynnistä
tekee asioita tyhjästä itseämme, niin sanotusti.
Muita kysymyksiä?
Joo.
>> YLEISÖ: [kuulumattomissa]
DAVID MALAN: Hyvä kysymys.
Ovatko komennot kirjainkoko?
Ja haluaisin tehdä ero tässä.
Joten komennot ovat yleensä asioita me kirjoittamaan
alaosassa ikkunan pääteikkuna.
Mitään täällä olisi lausuntoja tai C-koodia.
Mutta molemmissa tapauksissa vastaus on sama, kyllä.
Molemmat ympäristöt, C-koodi yläreunassa ja
käyttöjärjestelmän komentorivin at
pohja, kirjainkoko.
Joten sinun on hyödynnettävä GetString isolla G,
Pääoman S. Sinun täytyy kirjoittaa printf kaikilla pienillä.
Sinun on kirjoitettava ls kaikilla pienillä.
Joten lähes kaikissa tilanteissa tämä lukukausi, tapaus, vuonna
Itse asiassa, asia.
Kyllä.
>> YLEISÖ: [kuulumattomissa]
DAVID MALAN: Ah, niin okei, mitä jos olisimme tiedosto
kutsutaan hello.d.
Joten se kääntyy pois D on ohjelmointikieli.
Ja niin joissakin tapauksissa, voisimme todella kirjoittaa ohjelman
tiedoston ja on se koottu, että muoti.
Voimme, ja itse asiassa, Lyhyt vastaus on, en tiedä.
Joten aiomme tehdä tämän.
Anna minun mennä eteenpäin ja luoda uuden tiedoston.
Ja spin täällä, rehellisesti yleensä on aina epäilystä
Tämän lukukauden, ja sinulla on laitteen tai tietokoneen
avata, mennä eteenpäin ja kokeilla jotain.
Joten aion tallentaa tiedoston nimeltä hello.d.
Tallentaa tämän.
Ja aion ajaa tekemään hei Enter.
Tuntui päätellä että C oli todennäköisempää
kuin d, tässä tapauksessa.
Muut kysymykset.
Joo.
>> YLEISÖ: [kuulumattomissa]
DAVID MALAN: Okei, sano että kerran.
YLEISÖ: [kuulumattomissa]
DAVID MALAN: Miten edetä diagnosointiin että tai
vianetsintä, että?
Joten todennäköisesti, koska ne ovat eri kielellä,
todennäköisesti saisit täysin
eri ohjelmaa ulos.
Saisit täysin eri virheilmoituksia.
Ja myös aivan kannalta suunnittelu, se olisi luultavasti olisi
huono suunnittelu päätös voidaan kirjoittaa kaksi erilaista
kielellä lähes samannimistä tiedostoa, vuonna
täsmälleen samassa hakemistossa käyttäen
automaattinen työkalu, kuten tekevät.
Voin siis myös työntää takaisin ja sanoa 15 vuotta näin,
koskaan tehnyt samaa virhettä.
Voisi tapahtua.
Mutta on aivan eri, luulen,
logistiset puolustuksemme paikallaan.
Plus virheilmoituksia aiheutuisi, että olisi
lopulta paljastaa mikä ongelma on.
Mutta mahdollinen kulma tapaus.
>> Selvä, joten katsotaanpa käyttöön vain pari muuta
ominaisuuksia täällä nyt, joten voimme alkaa rakentaa entistä
ja monimutkaisempi ohjelma.
Joten ensinnäkin, matematiikka.
Joten matematiikka esimerkit ovat vain eräänlainen helppo ensimmäisellä viikolla.
Tämä ei tarkoita sitä, että kaikki ohjelmointi on noin
matematiikka.
Varmasti ymmärtäminen eri ominaisuuksia
matematiikka, algebra erityisesti, on
aivan asiaa täällä.
Korkeamman tason CS luokkiin, lineaarinen algebra,
hammaskiveä, ja vastaavat.
Mutta tosiasia useimmat mitä me teemme tämän lukukauden vähentää ei
matematiikasta, eikä varsinkaan aritmeettinen, sinänsä, mutta todella
vain logiikan ja huolellisen ajattelun.
Ja niin tämä yhteys, että tietojenkäsittelytiede on pitkään ollut,
erityisesti lukion, matematiikan, on
hieman harhaanjohtava.
Koska useimmat ohjelmat me kirjoittaa, todella ovat
tavallaan korkeamman tason ja keskittyä ongelmien ratkaisemiseen,
varma, ehkä käyttää joitakin yhteen-ja vähennyslaskua, ja eri
matemaattisia kaavoja tai vastaava,
mutta loppujen lopuksi se on ajattelemisesta eikä
juuri toteuttamisessa mitä olet ehkä tehnyt kuin TI
laskin lukiossa.
>> Niin, että sanoi, katsotaanpa nyt tehdä jotain näiden
matemaattisia operaattoreita, jotka eivät ole niin että voimme matka
yli joitakin taustalla näkökohtien ohjelmointi, tai
Tällöin C. Joten olemassa, koska CS50 kirjasto ehdotti,
ja tänään olemme vain käyttämällä GetString - ja hetken
ehkä yksi muu toiminto -
mutta on olemassa erilaisia ​​datatyyppejä tietokoneessa.
Lopussa päivän, tietokoneet vain tietää 0s ja 1s.
Mutta muistuttaa, että viime viikolla puhuimme binary-järjestelmän
in edustavat numeroita, kuten numero 0, ja 1, ja 2,
aina on jopa 8, kuten Naten video.
Ja sitten voimme luottaa paljon enemmän kuin me
teki lavalla täällä.
Mutta jos haluat edustaa paitsi numeroita vaan kirjaimia,
me, ihmiset, on keksiä jokin mielivaltainen
yleissopimusten, jolloin jos päivän päätteeksi kaikki minun tietokone
on on kyky ilmaista 0s ja 1s, hyvin meidän on parasta
aloittaa standardoinnista malleja 0s ja 1s jotka edustavat
eri asioita.
Kuvio 0s ja 1s joka edustaa kirjain.
Malleja 0s ja 1s jotka edustavat kirjain z.
Malleja 0s ja 1s jotka edustavat väri sininen tai
punainen, tai vastaavaa.
Meidän täytyy käyttää kaikkia näitä 0s ja 1s ilmaista itseämme
eri yhteyksissä, eri tavoilla, jotka eivät ole
välttämättä numeerinen.
>> Joten kannalta edustuksen, C on eri tietotyypit,
ja olemme nähneet näistä toistaiseksi.
Näimme int, ja huomaa, mitä ei näytössä
nyt on merkkijono.
Merkkijono ei itse asiassa olemassa C. Jälleen, se
yksinkertaistaminen olemme esittelee ensimmäistä
pari viikkoa.
Nieriä on yksilöllinen.
Float on reaaliluku, jossa desimaalipilkku ja numerot
vasemmalle ja oikealle puolelle.
Kaksinkertainen mitä niille selän ennen taustalla?
Joten kaksinkertainen kaksinkertainen jotain.
Lisää kaksi kertaa niin paljon tarkkuutta.
Mitä tämä tarkoittaa?
Niinpä kaikissa näissä tapauksissa maailma on sellainen standardoitu
kuinka monta bittiä käytetään esittämään
kukin näistä asioista.
Joten jos olet katsonut Naten ASCII video jo osa
of PSET 0 tai myöhemmin tällä viikolla tulet, luultavasti tiedätte
että ASCII -
merkki edustustot -
käyttää kuinka monta bittiä?
Ja saatat jopa muistaa meidän demon viime viikolla, kuinka
monet ihmiset olivat lavalla.
Joten 7 tai 8, tyypillisesti.
Joten yleensä 8, ja siellä on jotain kutsutaan laajennettu
ASCII, joka käyttää kaikki 8 bittiä, sen sijaan, että 7.
Mutta yleensä, puhumme toimivalta 2, joten tässä tapauksessa 8.
Joten nieriää ohjelmointikieli on yleensä 8 bittiä.
Joten int on yleensä 32 bittiä.
Float on yleensä 32 bittiä.
Kaksinkertainen on yleensä 64 bittiä.
Ja mitä se tarkoittaa?
Se tarkoittaa, että voit edustaa suurempia numeroita, tai jos kyseessä
reaalilukujen, voit olla paljon enemmän jälkeiset numerot
desimaalin tarkkuudella.
Paljon enemmän tarkkuutta, tässä tapauksessa.
Nyt pitkä pitkä on valitettavasti nimetty.
Joten on int, joka on 32 bittiä.
On pitkä, joka on, nope, 32 bittiä.
Ja pitkä pitkä, joka on 64 bittiä.
Kuitenkin jotkut näistä ovat tilannekohtaisia, se riippuu
millainen tietokone sinulla on.
Eli yleisesti, me täsmentää kotitehtäviä tai tietokilpailu kun
se todella on väliä.
Mutta kohta on olemassa kaikki nämä erilaiset
esityksiä täällä.
>> Joten todella sukeltaa ohjelmaan.
Sen sijaan kirjoittaa tämä tyhjästä, anna minun mennä eteenpäin
ja avata nykypäivän lähdekoodista - jotka kaikki on
Online - jos haluat korjailla noin verkossa, tai tuotto
Keskiviikkona laitteen tietokoneeseen, ohjeet
joiden yhdistää kurssin kotisivulla.
Tässä erittäin yksinkertainen ohjelma.
Mutta se sai hieman jotain uutta huipulla että
meillä ei ollut ennen.
Paljon sinistä riviä tekstiä.
Joten nämä siniset viivat edustavat kommentteja.
Joten se on melko käyttökelpoinen ohjelman pystyä kirjoittamaan
joitakin huomautuksia itsellesi tai työtovereiden tai ystävien tai
opetus miehet, jotka tavallaan kuvailla mikä on meneillään
Tämän tiedoston, mutta ei ole mitään tekemistä C-koodia itse.
Mitään tekemistä ohjelman toiminnallisesti, se on vain
estetiikka.
Joten miten teet tämän C on sinulle yleensä aloitat
huomautuksia / *, ja lopetat huomautuksia
* /.
Ja jos olet todella peräaukon ja kiinnitän lajitella kuvia,
sitten haluat laittaa paljon tähtiä, sinä tekisit
pieni laatikko, kuten tämä.
Mutta mikään, että asiat.
Ainoa asia, että asiat on ensimmäinen
ja viimeinen.
Tämä on mitä kutsutaan monirivinen kommentti.
Ja se on vain ihmisen yleissopimusta usein tähdet ja laatikko
asioita, kuten tämä, jos sinulla on paljon vapaa-aikaa.
>> Joten kun olet kirjoitettu joitakin huomautuksia, yleensä tule
todellinen guts ohjelman.
Tässä on meidän tuttu # include .
Ja vain nopea, tämä on tarpeen tai ei tarpeen?
YLEISÖ: tarpeen.
DAVID MALAN: Joten se oikeastaan ​​ole tarpeen.
Miksi, vaikka se ei ole välttämätöntä?
Joten ei printf.
Todellakin.
Kaikki me teemme tässä ohjelmassa on matematiikka.
Voin siis todellakin poistaa se.
Joten sinun ei aina tarvitse sisältää mitään
alkuun ohjelman.
>> Joten yksinkertaistaa tätä hieman.
Ja nyt huomaa, mitä tämä ohjelma tekee.
Ei paljon kiinnostusta.
int x = 1.
No, mitä tämä tekee?
No, muistelen henkinen malli ennen.
Vasemmalla puolella tätä ilmaisua tekee mitä?
Luo tilaa kokonaisluku.
Joten kuinka paljon tilaa?
No, meillä sattuu tiedämme nyt, että se on 32 bittiä.
Aiemmin merkkijono oli teknisesti 32 bittiä, mutta
siitä, että tulevaisuudessa.
Mutta int on 32 bittiä.
Joten tämä ilme vasemmalla täällä, int x vain sanoo hei
käyttöjärjestelmä, anna minulle 32 bittiä RAM -
muuten kutsutaan 4 tavua RAM -
niin että voin laittaa kokonaisluku tuossa tilassa.
Mitä kokonaisluku sinä haluat laittaa?
No, vain numero 1.
int y saa 2, ei täsmälleen sama asia, vaikka
numero on suurempi, mitä sen suuruus.
Määrä itsessään on edelleen vain 32 bittiä.
Se on vain malli bittien on erilainen
edustaa 1 vs. 2.
int z sanoo nyt anna minulle toinen 32 bittiä, kutsuvat sitä z ja aseta
summattu 1 ja 2 siellä.
Niin, että nyt z on oletettavasti tallentamiseksi arvon 3,
ja palata sitten 0.
>> Nyt tämä ohjelma, se tee mitään kiinnostavaa?
Joten se todellisuudessa ei tee mitään mielenkiintoista, joka
merkityksessä, sillä miksi? Se tekee joitakin matematiikka.
Mutta se ei palaa vastausta, oikea.
Se palaa 0.
Se ei tulosta vastausta.
Joten tämä ohjelma on pohjimmiltaan arvoton, koska se
seisoo nyt.
Se tekee töitä.
Se vie jonkin määrän sekuntia tai mikrosekuntia, jotta
ajaa, mutta se ei oikeastaan ​​tee mitään
käyttökelpoisia ihmisen.
>> Joten oikeastaan ​​nyt avata math2, missä nyt olen todella
tulostaa tuloksen.
Joten tämäkin voidaan päätellä meidän aiempien esimerkkien.
Jos haluan tehdä muutamia yksinkertaisia ​​matematiikka, int x = 1, y
= 2. z on 1 plus 2 nyt.
Mitä tämä tulee tulostaa ilmeisesti?
Vain 3.
Niin nopeasti järki tarkistaa.
Saanen siirtyä tähän hakemistoon.
Joten cd source1m.
Anna minun mennä eteenpäin ja kirjoita tehdä math2.
Ei virheilmoituksia tuli ulos, niin haluan juosta -
ei a.out--haluan juosta math2. Enter.
Ja todellakin, se tulostetaan 3.
No katsotaanpa katsomaan muunnelmaa.
Vuonna math3.c, meillä on nyt tämä esimerkki tästä.
>> Joten tämä on tavallaan mielenkiintoista.
Eli tässä yksi täällä, vastaus tulee saada 1 jaettuna 10,
ja huomaat olen ilmoittanut sen float.
Miksi haluan sen olevan float?
No, se on murto.
Se tulee olemaan todellinen määrä.
Joten se tulee olemaan 0,1, toivottavasti - 10%, tässä tapauksessa.
Ja mitä minä sitten haluat tulostaa?
No, tämä vastaus.
No, kammata nämä toisistaan ​​ensin.
Joten vasemmalla puolella, julistaa
kellua, kutsuvat sitä vastaa.
Oikealla puolella, ei 1 jaettuna 10 ja esittää, että
answer sisällä muuttuja.
Nyt, tämä rivi näyttää hieman arvoituksellisesti.
Mutta huomaa joitakin tuttuja piirteitä. % Tarkoittaa tässä tulee
paikkamerkki.
F tarkoittaa tässä Liukulukuarvo, vain todellinen
numero, jotain desimaalipilkun.
0,2 tarkoittaa mitä?
Jokainen tietää aiempaa kokemusta?
Kahden desimaalin tarkkuudella.
Joten emme ole nähnyt tämän ennenkin, mutta se on vain tapa
käyttäessään hieman valvoa printf ja
sanonta älä anna minulle 30 pistettä desimaalipilkun jälkeen,
vaan anna minulle vain 2.
>> Ja sitten mennään eteenpäin ja ajaa tätä.
Joten tee matematiikka 3, ja nyt haluan juosta matematiikka 3, Enter.
Ja se ei ole oikein.
Olemme ilmeisesti kohdanneet ensimmäinen aito bugi.
No, ehkä olen vain ole etsimässä tarpeeksi lähelle.
Joten anna minun mennä tänne, ja haluan laittaa 20 desimaalin
kohta paikoin.
Ja haluan koota tämän, varmista math3, ajaa.
Melko varmasti 1 jaettuna 10 ei 0.
Joten mitä on tekeillä?
No okei, joten oikeastaan ​​se ei ole tekemistä tämän kanssa.
Se on hyvä ajatus.
Tämä on oikeastaan ​​vain sattuma
että teemme tätä.
Mutta vain todistaa, että tämä ei ole sitä, minä
palata jotain random.
Älä tee tätä kotona, koska se on vain väärin.
Mutta tee math3, anna minun ajaa se.
Joten ei ole mitään tekemistä sen kanssa, mitä olen palaamassa, on vain tehtävä
mitä olen tulostus.
Mutta kuulin sen tänne.
Mitä?
YLEISÖ: Joten meidän täytyy kirjoittaa numerot
divisioonan -
>> DAVID MALAN: Okei hyvä.
Joten meidän täytyy kirjoittaa numeroita osallistuvien
jako täällä liukuluvuiksi itse.
Joten ongelma tässä kuin ennen: C, jossa on paljon
kieliä, on eri tietotyyppejä.
Ja ne tietotyyppejä, esimerkiksi nämä täällä.
Ja tietotyyppejä kysymys tässä, kun tyypin 1 ja sitten
Tyyppi 10, ovat luultavasti mitä tietotyyppejä?
Joten se on luultavasti int, eikö?
Se ei todellakaan ole float koska ei ole mitään desimaalin
piste tai mitään sellaista.
Siis todella, olen int jaettu int.
>> Niin mielenkiintoinen asia matematiikka ja tietokone on, että
Jos teet jakolaskuja kokonaisluvuilla -
1 jaettuna 10, kyllä ​​on 0,1.
Kuitenkin, kun olet jakamalla kokonaisluku, jonka kokonaisluku,
vastaus on myös oltava kokonaisluku vain siksi, nyt.
Ja mitä vaikutuksia silloin?
No, jos vastaus on 1 jaettuna 10 vastaa 0,1, mikä
tietokone tulee tehdä, on minulla ei ole aavistustakaan, miten
edustavat 0,1, koska se on Liukulukuarvo, ei
kokonaisluku, se tulee katkaista kaiken jälkeen
desimaalipilkun ja juuri näyttää 0 alussa.
Ja siitä, että se tulostetaan kuin liukuluku
arvoa, se on vain esteettinen juttu.
Tämä johtuu siitä olen pakottaa tietokone tulostaa tätä
Liukulukuarvo.
Ja todellakin olen ilmoittanut sen float, mutta matematiikka on
tapahtuu täällä.
>> Haluan siis todella korjata tämän yhdessä melko helposti.
Miksi en vain tee 10,0 ja 1,0, vaikka
Teknisesti voisin saada pois vain tekemässä yksi niistä.
Nyt haluan mennä eteenpäin ja tehdä math3.
Anna minun mennä eteenpäin ja nyt ajaa math3, Enter.
Ja nyt, voi pojat.
Nyt meillä on uusi ongelma kokonaan.
Joten parempi, oikea, olemme lähempänä 0,1, mutta mikä on selvästi
pielessä?
Ellemme valehdellut teille vuosia, eikö?
1 jaettuna 10 ei oikeastaan ​​ole aivan 0,1, niin mitä
todella tekeillä?
No voit sellainen syy tällä loogisesti.
Jos tietokoneessa on vain rajallinen määrä muistia alkaa
kanssa, ja jopa tietokone vain käyttää 32 bittiä
Liukulukuarvo, on aivan selvää, että
äärellinen määrä bittejä, 32 tässä tapauksessa, kyllä, voit
edustavat paljon tavaraa.
Se oikeastaan ​​on neljä miljardia erilaista arvot voidaan
edustettuina 32 bittiä, 2 32, mutta se on silti rajallinen.
Eli ongelma on olemassa ääretön määrä todellisia
numeroita, oikea.
Jos annat minulle reaaliluku, voin aina löytää sinulle yhden
hieman isompi, hieman vähemmän, vain hieman säätämistä
numerot ovat desimaalipilkun jälkeen.
Joten jos sinulla ei ole ääretön määrä bittejä, te
voi mitenkään edustaa ääretön
määrä reaalilukuja.
>> Joten on tämä luontainen epätarkkuus tietokoneissa, ja
Tämän saa kompastua koko ajan jopa yksinkertaisin
ohjelmia kuten tämä.
Mutta myös joitakin hyvin reaalimaailman ongelmia.
Itse otetaanpa hetki vain vilkaista
jotain, joka todella tapahtui todellisuudessa.
Me katsella vain pari ensimmäistä minuuttia, ja sitten
Lähetämme linkin verkossa.
Mutta tämä on osoitus juuri voi mennä pieleen, melko
rehellisesti, erittäin traagisella tavalla, kun nämä asiat eivät ole
arvostaa tai vain me ihmiset tekevät virheitä, kun se tulee
tällaisia ​​täytäntöönpanon yksityiskohdista nykyaikaisissa tietokoneissa.
>> [VIDEO PLAYING]
-Palaamme nyt engineering katastrofien moderneja ihmeitä.
Tietokoneet.
Olemme kaikki tulevat hyväksymään usein turhauttavaa ongelmia
jotka menevät heidän kanssaan.
Bugs, viruksia ja ohjelmistot glitches ovat pieniä hintoja
maksaa mukavuutta.
Mutta korkean teknologian ja nopean sotilaallisen ja avaruus
ohjelmasovelluksia, pienin ongelma voi olla
suurennettu osaksi katastrofi.
Kesäkuun 4. päivänä 1996 tutkijat valmis käynnistämään miehittämätön
Ariane 5 raketti.
Se kantoi tieteellisiä satelliitteja suunniteltu
määrittämään täsmällisesti, miten maan magneettikenttä
vuorovaikutuksessa aurinkotuulien.
Raketti rakennettiin Euroopan avaruusjärjestön ja
nostetaan pois sen laitoksen rannikolla Ranskan Guyanassa.
>> -Noin noin 37 sekunnin kuluttua lennon, he ensin
huomasi jotain oli vialla, että suuttimet ovat
kääntyvä tavalla ne todella pitäisi.
Noin 40 sekunnin kuluttua lennon selvästi ajoneuvon
oli pulassa, ja silloin he tekivät päätöksen
tuhota sen.
Valikoima turvallisuusvastuuhenkilölle valtava sisua painetaan
painike, räjäytti raketti ennen kuin se voi tulla
vaarantaa yleisen turvallisuuden.
>> -Tämä oli neitsytmatkalla Ariane 5, ja sen
tuho tapahtui, koska virhe upotettu
raketti ohjelmisto.
>> -Ongelma Ariane oli, että oli numero, joka
vaatii 64 bittiä ilmaista, ja he halusivat muuttaa sitä
on 16-bittinen numero.
Ne olettaa, että määrä ei koskaan
olemaan erittäin suuri,
että useimmat näistä numeroa 64 bittinen numero oli 0s.
He olivat väärässä.
>> -Kyvyttömyys yhden ohjelmiston hyväksymään
Tällainen numero, joka generoidaan toinen oli juureen
epäonnistumisen.
Ohjelmistokehitys oli tullut erittäin kalliiksi osa
uutta teknologiaa.
Ariane 4 raketti ollut hyvin onnistunut.
Niin paljon ohjelmiston luotu sitä käytettiin myös
Ariane-5.
>> -Perusongelma oli, että Ariane 5 oli nopeampi,
kiihtyi nopeammin.
Ja ohjelmistoa ei ollut osuus siitä.
>> -Tuhoaminen raketti oli valtava taloudellinen
katastrofi, kaikki johtuu minuutin ohjelmiston virhe.
Mutta tämä ei ollut ensimmäinen kerta tietojen muuntaminen ongelmat olivat
vaivannut modernin ohjusteknologia.
>> DAVID MALAN: Jätämme asian tähän.
Mutta tämä on osoitus miten soveltaa myös joitakin
Näiden alin taso yksityiskohtia että olemme alkaneet
tutkia tänään.
Joten vaikka saat hieman häiritsee ehkä joidenkin
syntaksi ja arcaneness täällä, ymmärtää, että yli
aikavälillä me keskitytään vain siihen, miten sovelletaan tällä on
maailmoista kaukana CS.
Tulemme näkemään sinut keskiviikkona.