[Powered by Google Translate] ZAMYLA CHAN: Olgu, inimesed.
Tere tulemast kiirtutvustus 1.
See kiirtutvustus toimub pset 1, mis on C. Loodan, et te
kõik oli lõbus oma Scratch'i projektidega.
Nii et nüüd selles läbikäiguks, me tegelikult saab olema
võimalik sattuda C, satuvad kirjalikult mõned masina koodi.
Nii et kui teid polnud kiirtutvustus 0, siis need
walkthroughs tõesti - Me oleme kavatse kõndida läbi
lahendamist, rääkida läbi mõned ühised näpunäiteid ja tehnikaid
, mida saab kasutada.
Me murda loovutamise üles juhitavaks hammustab, nii et
kutid saavad alustada ja loodetavasti
mõista, kuidas seda teha.
>> Okei.
Nii pset 1.
Psets sel aastal on struktuur, kus esimene -
seal saab olema osa küsimusi, seeria
küsimusi, mis tõesti aitavad teil alustada
pset, aitavad teil harjutada mõned tehnikad, mida vajate.
Ja nii need küsimused, ma ei kavatse katta
läbikäiguks sest oma osa, oma määratud õpetajate
mehe tegelikult läheb jalutada läbi nende
küsimused koos sinuga.
Lõpus oma osa, saate Kähveltää
Vastused nendele küsimustele, vaid ka veendumust, et
saate rakendada mõned funktsioonid, mida on vaja
jaoks viimane osa pset.
>> Pset 1 kujutab Mario.
Ja see on lõbus väike programm, kus sisuliselt me
kirjutada ja printida pool püramiidi tüüpiline Mario stseen.
Ja siis teine ​​osa pset nimetatakse ahne.
Ja nii ahne me põhiliselt tegutseb ahne
kassast, kus, kui keegi annab meile palju raha
et me tahame, me arvutama minimaalse summa münte, mis
me saame naasta neid ikka annab neile selle summa.
>> Hea küll.
Nii et iga läbikäiguks on tööriistakasti.
Ja veel, sa ei pruugi kasutada kõiki vahendeid selle
tööriistakasti või võite kasutada neid kõiki.
Igal juhul, see on tõesti hea teada, mida
oled sa varustatud.
Nii et meil on CS50 Appliance, kus ma näitan teile poisid ja
tutvustada teile, et.
Siis ka üldiselt hea stiil on kindlasti üks meie
tähtsamaid tööriistu.
Stiil sisuliselt puudutavas kuidas loetav on oma kood?
Kui keegi läheb ja loeb oma kood, neil on
lihtsalt aega?
Kas nad aru saavad?
Kas see elegantne?
Siis me räägime, kuidas saada kehtiv kasutaja sisend oma
programmi, sest nii Mario ja ahned, peate
paluda kasutajal sisestada ja annab sulle mingi number.
Nii siis tahame veenduda, et number on kehtiv.
Siis mäletan Scratch oli meil plokid nagu kordus,
Korda kuni või Oodake, või Forever.
Nii et me ei kavatse sellist moodustavad sellest C nüüd ja
vaata silmad nagu suutis, ja teha-aega.
Siis ka me ka vaja näidata väärtused tagasi
ekraan, kas see on Mario või ahne.
Ja nii me räägime, kuidas me printida asju stringid
täisarvud ja ujub.
Ja siis lõpuks, me räägime pseudokoodi, tõesti
oluline mõiste meeles pidada kogu kursuse.
Pean aitab mind kõige probleemsete komplekti on mõelda ja
kirjeldada, mida ma tahan teha enne mõtled tahes C.
Aga lihtsalt kirjeldada meetmeid.
Nii pseudokoodi on selline vahel inglise ja C tüüpi
kirjeldab protsesse ilma õige süntaks, kuid
pakkudes piisavalt hea struktuur.
Ja nii ma pean mõned näited pseudokoodi ka teid
selles läbikäiguks.
>> Okei.
Mida me töötame koos on CS50 Appliance.
See on sisuliselt virtuaalne masin sellist jookseb
arvuti sees oma arvutist.
Ja see on palju kasu.
Üks on see, et see on eelseadistatud koos palju vahendeid, et teil
vaja CS50.
Samuti tähendab see, et kõik on samal põhjusel,
kas Mac või PC või teise operatsioonisüsteemi.
Me kõik võime joosta virtuaalne masin.
Ja nii on instruktsioone manual.cs50.net/appliance.
Ja kui te lähete, et link ja järgige juhiseid,
siis loodetavasti on sul võimalik paigaldada seade.
>> Nii et esimene, peate installima rakenduse
tegeliku kohaldamise suutma joosta virtuaalne masin.
Ja siis lae aparaat.
Aga samas, on instruktsioone
manual.cs50.net/appliance.
Nii et ma olen juba alla laadinud minu aparaat, mul on paigaldatud
seda VMware Fusion.
Ja nii kui ma alla aparaat, ma läksin Fail.
Läksin Ava ja siis leidsin, kus ma
salvestatud CS50 Appliance.
Ja sealt, jooksin siit.
Aga ma pean ta üles juba siin, niiet võta lähemalt.
>> Hea küll.
Nii et nüüd oleme sees CS50 Appliance.
Ma tegin seda täisekraanil.
Saate valida, mida teha, et kui soovite või lihtsalt seda
väiksem aken töölaual.
Siin on meil lihtsalt töölaual
Kodu ja prügikast.
Aga kui te lähete Menüü ja seejärel programmeerimine, siis näed
et meil on midagi, mida nimetatakse Terminal.
Ja nii siin, me saame liikuda ümber meie arvuti.
Me võime kirjutada koodi.
Aga tegelikult me ​​kasutame programmi nimega gedit või "g
muuta, "kumb see on.
Nii et me kasutame, et üks kirjutada koodi.
Nii et teil on need kaks vahendeid, mis teid kasutades peamiselt
kirjutada koodi.
Siis lisaks, see on lihtsalt nagu tavaline arvuti.
Meil on brauseris.
Valisime Google Chrome'i.
Mida ma olen teinud, on mul loodud Dropbox sisaldama kõiki
dokumentide.
Ja nii see on midagi, mis on väga soovitatav.
Dropbox kasutab pilve sünkroniseerimine ja nii kui -
nii näiteks midagi juhuslikult - Loodetavasti mitte -
juhtub teie aparaat, siis saad kõik olema
sünkroonitud pilve peal.
>> Hea küll.
Nii et need on taotlused, mis teid kasutades sisse
CS50 Appliance.
Nüüd liikumiseks käsurealt.
Terminali saab tegelikult toimida selline tee tegelikult
Tippige käsud -
meeldib, kui sa oled Mac Finder.
Või kui sul on Windows, ma usun, et on "uurida minu
arvuti "või midagi sellist.
Nii et kui me minna tagasi seadme, olgem avada
terminaliakent.
Nii et see on see kiire, jharvard @ aparaat.
Teeme lihtsalt seda suuremaks.
Okei.
Nii et kui me tippige käsk ls, siis kus on loetletud kõik
failid meie arvuti, meie praeguses kataloogis.
Raamatud on nagu kaustad.
Me kasutame neid mõisteid sünonüümidena.
Olgu, oleme loetletud failid
mis on selle kataloogi.
Nüüd, kui me tahame pääseda, ütleme, meie Dropbox, siis saame
muuta katalooge.
Nii CD ja seejärel Dropbox.
Me LS jälle, ja siis me näeme nimekirja faile, mis asuvad
Selle kausta.
See on analoogne mind lähen koju, siis klõpsake
Dropbox, ja siis näeme nimekiri siin.
>> Hea küll.
Ütleme -
kui te ei kavatse teha oma pset 1, teeme
kataloog nimega pset1.
Nii et me oleme Dropbox just nüüd, kui näete seda
küsi siin.
Nii et teeme kataloog.
Nii mkdir, olgem kutsuvad seda pset1.
Ja nüüd, kui me LS uuesti, siis me
näha, et pset1 ilmub.
Ja kui me tahame minna sees pset1, siis saame sisse minna
selle kausta käsuga cd.
Hea küll.
Nii et taas, vaatame, kas me -
öelda, teeme seda muul viisil.
See on analoogne lihtsalt öeldes: "Loo
Uus kaust, pset1.
Aga kui sa leiad, siis saad suheldes
terminal palju.
Nii et mõnikord on see palju lihtsam, kadunud kiiremini lihtsalt
töötada terminali teha neid erinevaid asju.
Okei.
Ja siis need teised käsud.
Seal rm faili eemaldamiseks.
Nii et sa lihtsalt kirjuta rm ja siis nimi
esitada kustutada.
Me läheme sisse mõned näited sellest hiljem.
Ja siis on meil midagi, mida nimetatakse mees käsk, mis
avab käsiraamatu tüüpi funktsioon.
Jällegi, ma toon välja tegelik näide sellest hiljem.
>> Nii et üks väga oluline vahend, nagu ma mainisin lühidalt
Enne, on stiili.
Nii et sisuliselt stiil on pistmist loetavust.
Kas keegi oskab lugeda, jälgida ja
mõista oma koodi?
See on eriti oluline, et te, ise, tegelikult.
Kui sa oled viibib kuni hilja kodeerimine, ja siis hiljem sa
mine tagasi ja sa oled nagu, mida see muutuja keskmine?
Ütle, te töötate grupis projekti kellegagi, ja te
nii on vaadata üksteise koodi.
See on tõesti oluline, et sa nime oma muutujad korrektselt
ja ilusam välja näeks, sest see teeb kõik vahe.
Aga siis ennekõike oleme muidugi kohe.
Nii huvi CS50 ja eriti oma
õpetamise stipendiaatide ja sorteerijad, kes vaatab oma
psets, palun, palun kasuta õige stiil.
Ja teie õpetamise stipendiaatide on üsna õnnelik.
Nii et taas, stiil hõlmab taandrida asju õigesti,
eriti kasutades oma traksid ja taandrida need.
Nimetades muutujate midagi, mis on mõistlik.
Praegu me järgime konventsiooni kui teil on
mitu sõna oma muutuja nimi, siis
ühendada neid rõhutada, nagu näete, et
nimetada näiteks seal.
>> Ja lõpuks midagi, mida nimetatakse Magic Numbers.
Sisuliselt kui sa loed läbi kood ja öelda
teil on muutuja -
Ütle, teil ei ole erinev, kuid lihtsalt öelda okei, kuni
ja selline on alla 10.
Siis teie teehöövel on minemas hästi, oota,
Kust et 10 tulevad?
Nii et tõesti selgitades ise küsimusi palju.
Et aidata teil selgitada ise on kommentaare.
Kommentaarid on ilmselt kõige olulisem asi, mida lisada
oma programmides.
Ja see aitab teil mitte ainult tegelikult seletada -
see aitab teil selline selgitada oma argumentatsioon, kui
sa lähed mööda.
Ja kui sa seda teed, jällegi, see saab olema palju lihtsam
minna tagasi oma koodi ja omamoodi aru, mida sa
seal teed.
Jällegi, teehöövlid tõesti kommenteerida.
Nii et sa kommenteerida hästi ja -
selline nagu vaba punkti.
Ja kes ei tahaks tasuta punkte?
Te saate ka mitmerealine kommentaare.
Ja nii ma ka mingi mall siin.
Sisuliselt tavaliselt neid kasutatakse ülaosas oma
programmi omamoodi seletada üldiselt mida
sinu probleem komplekt teeb.
Lisage oma nimi, kuupäev, jne.
Ja nii, nagu ma ütlesin see mitmeliiniline kommentaar
manual.cs50.net/style_guide on rohkem näpunäiteid ja nõuandeid
stiili ring, jne.
>> Okei.
Nüüd, et ma olen teile rääkinud veidi stiili, vaatame
Seda tegevust.
Hea küll.
Nii et siin, Tommy on kirjutanud meile vaimustavalt kohutav
näide stiilis programmi.
Nii et näete siin, eks.
See on tegelikult kõik korras.
Näed mitmeliiniline kommentaar siia.
Sa alustad seda kaldkriipsuga ja siis kaks tärni.
Sa jätkama, viies tärne mööda joont
ja siis selle lõppu tärn ja kaldkriips.
Hea küll.
Nii et see on hea.
See siin pole midagi.
Ta sealhulgas tema raamatukogudes.
Aga siis siin ta on kommentaarid toestavad mitu liini.
Seal on palju asju valesti seda.
Kommentaarid toestavad mitu rida, siin ta on, kasutades
süntaks lihtsalt üherealised kommentaarid.
Ta on ka Melding kõik samasse kommentaari.
Nii et me tahame vältida.
Siis siin me näeme, et need traksid, näiteks, on kõik
pool.
Taandus, on vale.
See ei ole tegelikult näitan sulle lõplikult kus midagi
algab ja teine ​​asi lõpeb.
Siis samuti, näeme, et tal on defineeritud muutuja i = 5 siin.
Aga siis see nelja väljub kuhugi, ja seal ei ole
kommentaar tõesti selgitada, kust see pärineb.
>> Okei.
Nüüd vaatame midagi, mis on tegelikult täpselt seesama
kood, välja arvatud parem stiil.
Nii et jällegi, see on hea stiil näiteks
mitmeliiniline näiteks.
Ja siis siin see on üsna puhas.
Me näeme, et ta hakkab, kui avaldus siin, siseneb uus
rida, on avatud traksidega.
Siis ta taandus.
Ta hoiab seda taandus -
ta hoiab selle näidustuse ühtne kogu
programmi ja tõesti näitab, kui üks plokk kood käivitub, kui
üks plokk kood lõppeb.
See võib tunduda veidi nitpicky meie poolt alustada
koos, kuid näete kui olete kirjalikult oma koodi.
See on tõesti kasulik, et oleks võimalik eristada seda.
Ja jälle oma teehöövlid tõesti meeldib.
Ja nii näed, selle asemel, et lihtsalt paneb number
seal ta tegelikult nimega muutuja iteratsiooni.
Ja nii me tegelikult ei vaatab seda koodi praegu
aga lihtsalt selline nägemine näide
hea versus halb stiil.
Ja nii, kui te vaatate neid kõrvuti siin, siis oleks
kindlasti eelistan lugeda üks paremal.
>> Hea küll.
Nii et viimane asi enne kui me sukelduda tõelise liha
pset on, kuidas kompileerida ja käivitada oma koodi.
Ja nii sisuliselt kui kirjutad C, et tegelikult ei ole
tõlgitud reaalne masin koodi, nullita ja
need, mis masin võib tegelikult lugeda ja tõlgendada.
Nii et meil on midagi -
Rõkkama on kompilaator, et me kasutame C.
On palju koostajad.
Aga CS50, me kasutame rõkkama.
Ja nii rõkkama sisuliselt tähendab C-st kuni masin
koodi teile.
Nii vaatame näiteks - sukelduvad Appliance siin.
Hea küll.
Nii et praegu me oleme meie kataloogi.
Me tegelikult ei ole, kui mõni kood on.
Nii Muutkem oma kataloogi Dropbox/walkthrough1, kus
Olen salvestanud mõned koodi.
Nii et kui me vajuta ls, siis näeme, et mul on
paar pilti siia.
>> Hea küll.
Nii et ma olen juba kirjutanud hello.c, niiet kompileerida
ja siis vaata mida ta teeb.
Nii põhi kompileerimise käsk oleks rõkkama siis hello.c,
sisuliselt öeldes okei, koostada hello.c minu jaoks.
Ma vajutan Enter, tundub, et on läinud õige.
Olgem kliki LS uuesti.
See a.out fail on nüüd näidanud.
Ja nii a.out on käivitatava faili.
Nii kestab see, te teete. / A.out.
Ja nii me näeme, et see hello.c programmi ilmselt
prindib välja Tere viis korda.
Hea küll.
Aga ütleme, et me ei taha kasutada nimetust a.out.
Näiteks me tahame joosta tere programmi, sest see
lihtsam aru saada.
Ütleme rõkkama hello.c ja siis sisuliselt pead
läbida mõned asjad nimega lipud.
Nii ütles okei, noh, ma tahan selle nime midagi muud.
Võite ka läbida palju erinevaid lippe,
mis sa näed.
Nii lipu nimetades programmi midagi, mida sa
tahan on-o.
After-o, sa kirjutad programmi nime.
Ütleme nii, et tere.
>> Nüüd me näeme, et meil tegelikult on tere käivitatava faili.
Nii saame kasutada seda, ja see teeb sama asja nagu enne.
Nii et nüüd, kui meil tere, saame ka eemaldada, sest
Näiteks meie a.out.
Nii rm eemaldada, a.out, oma terminal küsib, pidage nõu
Teile kinnitada, kas sa tõesti tahad
kustutada või mitte.
Me ütleme y jah.
Ja seal me läheme.
A.out on läinud.
Hea küll.
Aga mõnikord see muutub segadust meeles pidada kõiki
lipud, et me peame hulka ja kirjuta välja rõkkama.
Ja nagu me näeme, kui me kasutame keerulisem programmid, paneme
olla ka eri raamatukogudes.
Ja nii meie käske rõkkama saavad enam ja enam.
Nii et lisada CS50 Appliance on käsk make.
Nii et sa lihtsalt kirjuta teha tere.
Oih.
Me oleme juba teinud selle käivitatava faili.
Nii et lubage mul lihtsalt eemaldada seda kiiresti.
Vaatame nüüd kirjuta teha tere.
Ja sa näed seda joont siin, et sisuliselt öeldes teha
tere hõlmab kõiki neid käske, mis
minna seda sinu jaoks.
>> Nii et lisada CS50 Appliance on teha faili.
Nii lihtsalt, kui sul on fail name.c, siis kõik, mida teha
on öelda teha faili nimi.
Ja siis pead käivitatava
Sellise nimega fail on.
Jah?
>> SPEAKER 1: minu arvuti asemel rõkkama ta ütleb GCC.
Kas see on nagu -
ZAMYLA CHAN: Jah.
Nii et teie arvuti võib öelda GCC erinevalt rõkkama, sest
GCC on teist tüüpi kompilaator.
Kui oled CS50 Appliance küll, siis
tuleks kasutada rõkkama.
Kui see ei ole, siis äkki tule räägi minuga hiljem või postitada
aasta CS50 Arutle ja saame sorteerida, et viia.
>> Hea küll.
Nüüd, et meil on selline põhivahenditeks maha, siis me
saab sukelduda Mario.
Okei.
Nii et Mario on programm, kus sisuliselt me ​​ei kavatse olla
muutes oma liiki primitiivne versioon Mario
mängu taustal.
Tead, Mario on tavaliselt toru ja
puu ja mõned klotsid.
Ja siis seal on mingi pool püramiid.
Nii et me lihtsalt saab olema keskendunud, et pool püramiidi,
tegemise koodi nii, et see prindib välja hashes lahkete
plokkide selles formaadis.
Mis juhtub on kasutaja sisend teatud
kõrgus püramiid ja siis saate printida, et välja
nii et all vasakul räsi -
nii väga alt siin - et üks on viia
koos alumises vasakus nurgas oma terminal.
Okei.
>> Nii et esimene asi, mida sa pead -
esimene väike mini probleem, et me peame tegelema on see, kuidas
saada kasutaja sisend.
Nii et me peame tegelema sellega, mida kasutaja sisendite ja seejärel
liiki toodangu asju seal.
Nii et vaatame, vaatame faili nimega apples.c et ma kirjutasin
mis tegeleb sisendid ja väljundid.
Okei.
Nii et siin üleval, olen lisanud mõned raamatukogud
et ma vajan.
Tõesti olulisem siin on stdio (standard I / O). Mis tegeleb
standardsete sisendid ja väljundid, sest me ei kavatse
käsitleme kasutaja sisendit.
Hea küll.
Siis ma hakkan minu peamine ülesanne.
Ja siis ma paluda kasutajal okei, kui palju õunad sul on?
Siis siin, mida see joon teeb -
Ma määrata muutuja i väärtusega GetInt.
>> Nii GetInt on funktsioon, mis on lisatud stdio.
Ja nii sisuliselt, et hakkab tegelema selle eest ise.
See küsib kasutajalt int.
Mis iganes nad tagasi, et kantakse
muutuja i.
Ja nii siis see on lihtsalt väike programm, mis vähendab
I väärtus 1 ja seejärel prindib välja uue väärtuse.
Tore asi gedit on tegelikult, et on olemas mini
terminali õigus siin.
Nii et selle asemel, et minna edasi ja tagasi vahel
gedit ja terminal, saab tegelikult
lihtsalt kasutada seda siit.
Nii et olgem kõigepealt saada õigesse kataloogi.
Nii Muutkem oma kataloogid
Dropbox/walkthrough1.
Hea küll.
Nii et nüüd teeme õunad, koostab ta meile.
Ja nüüd lähme jooksma õunad.
Mitu õuna meil on?
Ma ütlen mul on 3.
Ja ta ütleb "mwahaha ma lähen süüa üks neist" ja ütleb
"Sul on nüüd 2 õuna".
>> Hea küll.
Nii et olgem joosta, et jälle.
Ja oletame, et mul on 1 õun.
Nüüd on mul 0 õunad.
Okei.
Nii et see programm tundub tööta.
Me sisestada numbrit, see vähendab see 1. ja seejärel
prindib need välja.
Aga kui näiteks mul on -1 õunad?
See ei ole päris loogiline.
Aga see on ikka täisarv, nii et programm tunnistab ta.
Ja nii see läheb teil veelgi negatiivse numbriga.
Nii et see on üks õppetund meile, et kuigi GetInt
funktsioon ja muude seotud ones nagu
GetFloat või getString -
kuigi need ei vii meid õiges andmete tüüp,
Näiteks, kui ma olin just ütles [TÜPISEERIMINE]
siis oleks mulle uuesti proovida.
Nii et see hakkab tegelema iganes andmed sisestada oma panuse
on aga tegelikult ei vaadata, noh, see on tegelikult tüüpi
väärtus, mida ma tahan?
Nii siis üks osa Mario on, et kasutaja peab sisestama
number, mis tähistab kõrgus poole püramiid
et sa üritad.
Ja nii siis kui me sundides selle kasutaja jaoks kõrgus, siis
seal peaks olema kaks bounds selle.
Eks?
Aastal spec, see ütleb, et see ei tohiks olla rohkem kui 23
märki, sest see on selline standard
kõrgus terminal.
Aga siis, mida muude köidetud, ehk alampiir, võib
tahame kaasata?
>> Kui me tegelikult joonistus püramiid, selline mõtlemine tagasi
kuidas kõrge püramiid saab, võib see kunagi olla madalam kui
teatud arvu?
SPEAKER 2: suurem kui kolm.
ZAMYLA CHAN: Hmm?
SPEAKER 2: suurem kui kolm.
ZAMYLA CHAN: See on hea punkt.
See võiks olla -
tahetakse piirata seda vaid kolme taseme püramiidi.
Aga mõtleme -
ütleme nagu üks hash tabelit loeb püramiid liiga.
Siis mida peaks meie tegelik alampiir olema?
Mõeldes tagasi õunad, me ei taha
negatiivne kõrgus püramiid.
Eks?
Okei.
Nii et kui te küsite kasutaja sisend, siis pead
sisaldada mõningaid viis tagada, et täisarv, mis
nad pakuvad teile ei ole negatiivne, sest te ei saa
juhtida negatiivset püramiidi.
>> Okei.
Nii et seal on paar võimalust seda teha.
Sisuliselt, kui te küsite kasutaja sisend, tahad nõuda
et nad pakuvad teile õige sisend.
Nii et sa tahad nõuda, et nad pakuvad teile mitmeid
et ei ole negatiivne, vaid ka alla 24.
Nii et me tegeleme null kuni 23, viimane kaasa arvatud.
Hea küll.
Nii et me tahame pidevalt nõudma -
kui nad ei ole andnud meile kehtiv täisarv, nad tahavad
pidevalt nõuda ei.
Anna kehtiv sisend.
Anna kehtiv kõrgus.
Nii meenutavad tagasi Scratch oli meil Korda kuni blokaad või
Forever Kui blokeerida.
Need on silmad, mis on väga sarnane samal ajal loop ja
Kas Kuigi silmus, mis me võtame arvesse ainult korraks.
Nii et kui silmus on põhiliselt tingimusel, et teil vaadata
see on tõeväärtus, et paned sees on, nagu
plokid Scratch koos nurkade alt.
Seda läheb sulgudes on samas silmus.
Nii et sa pead olema mingi tingimus seal.
Ja kui me lihtsalt öeldud, et tingimus
pistmist piire täisarv, mis oli töödeldud.
Nii tingimus oleks midagi pistmist sellega, kas
täisarv on asjakohastes piirides.
>> Nii et samas silmus.
Näiteks saate küsima täisarv ja seejärel
pidevalt kontrollida, kui see sisend ei kehti.
Näiteks hoida uuesti märku, hoida paludes
kasutaja täisarv.
Nii et võiks olla üks viis.
Teine võimalus oleks teha kuigi silmus, mis on väga
sarnane samas loop peale, mida teha, kui ei ole -
saate liiki vaata mida süntaks -
on see, et teha ja siis tegelik silmus keha esimesena.
Siis on samas tingimused.
Mida teha, kui silmad -
Mis on need kasulikud on, et nad tegelikult täita
koodi vähemalt üks kord ja seejärel kontrollida, kas tingimus on
täidetud või mitte.
Nii et kui sa seda teha, samas loop, siis sees
avaldus saate küsima täisarv, sest sul on
vähemalt küsima kasutaja korraga.
Ja siis pärast te kallutada neid, siis võib öelda, eks,
hästi kui olen seda teinud, on see kehtiv?
Kui on, siis saate lihtsalt hoida käimas.
Aga kui ei ole, siis ta lihtsalt tegutseb nagu tavaline samas
loop ja siis hoida küsimata.
>> Okei.
Nii et oleme tagasi Mario.
Nii et me teame, kuidas küsiks õige kasutaja sisend, mis on
jooksul õigus piire.
Nüüd me tegelikult teha tuleb, see pool püramiid.
Tundub lihtne tähemärki.
Nii et olgem tegelikult avatud -
olgem lihtsalt avada aken ja öelda okei, noh mis siis, kui ma oleksin
tegelikult läheb seda teha käsitsi, kirjuta ise üks neist?
Okei.
Nii et vaatame.
Oletame näiteks, me tahame teha püramiidi, mis on
joondatud vasakus servas, siis oleks lihtsalt teha -
Mario, tipptasemel on kaks plokki ühe asemel.
Nii et hakkame koos kaks.
Me nuppu Enter.
Teeme kolm ja siis neli, Enter, viis.
Okei.
Nii et see on päris lihtne.
Välja arvatud see probleem komplekt, me tahame seda tegelikult vastavusse viimiseks
paremal pool meie ekraanil.
Hea küll.
Niisiis, kuidas võib üks teist tegelikult tüüp see selline, et
see on joondatud piki eks?
Selle asemel, et räsi kõigepealt seda, kuidas võib teile selline
Liigume edasi?
SPEAKER 3: Kirjutage rida?
ZAMYLA CHAN: Hmm?
SPEAKER 3: Kirjutage rida?
ZAMYLA CHAN: Jah.
Jah.
Sa võiksid kirjutada nagu alakriips või midagi sellist
et, kuid me võime lihtsalt öelda kasutada ruumi.
Olgem panna nagu kolm sammu siin.
Siis järgmine rida, noh, me oleks panna kaks sammu.
Järgmine rida, me lihtsalt pane üks tühik.
Ja siis meie viimane rida, me ei läheks tühikuid.
Ja seal on meil püramiid.
>> Nii et see on selline -
meeles pidada, et selline loogika.
Ja proovida ja nuputada mingi muster, mis meie võimuses,
siis tõlkida C ja kaasata mingi loop.
Hea küll.
Nii et meil on kõrgus kaheksa, siis meie esimene rida on
2 hashes.
Aga saada neile hashes, siis oleks kirjutada mõned
ruumid ette.
Eks?
Mida ma tegin on mul lihtsalt läks läbi.
Ma joonistasin selle ise välja, püramiidi minu tekstiredaktoris
püramiidi kõrgus kaheksa ja siis arvutada, kui palju
ruumid Mul oli vaja teha.
Nii et ma ütlesin okei, noh esimene rida on
läheb kaks hashes.
Aga enne seda pean sisend 7 ruumid.
Järgmise üks on kuus ruumi ja seejärel
3 hashes, jne.
>> Nii siis proovime ja viia see teise kihi
võtmiseks.
Mis siis, kui meil oli nda rea, kui palju hashes ja kuidas
palju ruumi oleks meil vaja on?
Kas keegi näeb muster?
Nii et esimene rida on kaks hashes.
Teine on kolm.
Kolmas on neli.
Nii nda rea ​​oleks -
SPEAKER 4: N pluss 1?
ZAMYLA CHAN: Jah.
N pluss 1.
Täpselt.
Siis näeme, et mitmed hashes saab olema -
kui me loodame esimeses reas on üks, siis arv
kohta hashes on lihtsalt saab olema üks rohkem.
Okei.
Siis kuidas on kohtade arv?
Nii et proovime ja väljendada seda nii kõrgus.
Kui kõrgus on kaheksa, siis esimene
rida on seitse ruumid.
Nii et omamoodi vastab 8 miinus 1.
Eks?
Siis teine ​​rida läheb on kuus sammu,
mis on 8 miinus 2.
Nii siis ma jätan selle sulle, et selline näitaja välja
muster selle eest.
>> Okei.
Aga programmeerimine, mõnikord me tegelikult indeks on null.
Nii et me algavad nullist ühe asemel.
Nii et selle asemel esimeses reas kutsutakse esimeses reas,
me ei kavatse nimetades seda 0-ndas reas.
Nii et olenevalt sellest, kuidas soovite seda rakendada, on
väga ettevaatlik, kas sa algavad nullist, kas hakkate
üks, oma muster läheb korvata üks.
Okei.
Nüüd, et me sellist arvasin programmi, me
pean ütlema, okei.
Nii et igasugune tase trepid, ma lähen printida
sellise ja sellise arvu tühikuid ja siis selline ja
selline arv hashes.
See sõltub mustri, et oleme loonud enne.
Okei.
Nii et üks võimalus itereerimise läbi ja selline läheb
kaudu seada mitmeid asju on loop, selline nagu
kordus 10 Blokeeri või nagu korrata ja sisestatud
number jaoks nullist.
Nii et sisuliselt iga taseme trepid, me tahame
prindi ruumid esimene.
Siis printida mitu hashes.
Ja siis me tahame siseneda uuele reale ja seejärel korrake seda
jälle järgmise ploki.
Okei.
>> Nii et vaatame jaoks silmuseid jaoks sek kuni liiki näha üks viis
et me võiksime minna läbi rea number, läbida mitmeid
sammu, see pool püramiid.
Nii silmuseid koosneb kolmest osast.
Esiteks, sa pead ettekanne.
Nii et sisuliselt seab muutuja.
See saab olema seadistatud, et raha iga kord
et silmus algab.
Siis sa lähed on korras.
Sinu jaoks silmus täitmisele ainult seni, kuni see
tingimus TRUE.
Ja siis pead uuendus seisukorras.
Nii et on pistmist muutuja, mida vormindatud.
Nii et mõnes mõttes on põhimõtteliselt tagada, et saame välja murda
silmus, et me ei või hoida oma täidesaatva
see ikka ja igavesti.
Sest erinevalt Scratch'i, me tegelikult ei ole lihtsalt
tavaline Forever silmus.
C on programmi lõpuni lõpuks.
Nii et me peame tagama, et mingil moel me oleme seda peatada.
>> Okei.
Nii näiteks loop, et te võiksite kasutada
Mario on see.
Nii et teil on täisarv i, et hakkate 0.
Niikaua kui see on väiksem kui kõrgus, te sooritate keha
Euroopa silmus sees siin.
Pärast seda keha silmus on täidetud, siis oleks
suurendada i 1..
Siis teie programm kontrollige uuesti - okei, noh, on mul alla
kõrgus?
Kui on, siis jätkuks.
Nii et siin on näide null indekseerimine, kus hakkame kell
nulli ja siis me -
märgata, et meie tingimus on väiksem kui kõrgus.
Nii ütleme meie kõrgus on neli, näiteks i
algab 0-ga.
See saab olema 1.
See saab olema 2.
See saab olema 3.
Ja siis kui see värskendab, kui loop uudiseid, siis ma
Seejärel määratud 4.
Aga 4 ei ole väiksem kui 4, ja nii siis oleksime
jätkuvalt kogu meie silmus.
>> Okei.
Nii et see algab nulliga.
Aga me võiksime alustada ka ühe, näiteks.
Aga kuna me alustame kell üks, me mingi peame minema veel üks
aja lõpus.
Nii siis sellepärast me lisada väiksem või võrdne.
Nii et üks suur asju, mis mulle meeldib arvuti
programmeerimine on, et seal on lihtsalt nii
palju võimalusi teha asju.
Nii saate valida, kas alustada nullist, kas te
algab kell üks.
Samuti, kui sa tahad, võid lihtsalt kasutada
samas silmus, näiteks.
Nii võib -
olgem tegelikult avatud hello.c.
Nii et meil on loop siin.
See algab kell i = 0, i <5.
Mul on kommentaar siia räägivad meile, mida ta teeb.
Ta prindib tere viis korda, kasutades jaoks silmus.
Aga me võiks ka seda teha, kasutades samas loop samuti.
>> Nii et vaatame, kuidas me võiksime seda teha.
Nii et kui me läheme matkivad jaoks silmus, siis tahame ka
matkivad käivitamise, seisukorra ja uuendus.
Nii tingimus peaks olema üsna lihtne, sest
samas süntaks, kui te vaatate seda, ta ütleb while (tingimus).
Nii et olgem lihtsalt sisend tingimus seal.
i <5.
Okei.
Nii et me teame, et me tahame prindi hüvasti.
Me teame, et see on põhiosas meie silmus.
Aga meil puuduvad initsialiseerimise
ja uuendus, eks?
Sest me ei saa igavesti silmus.
See on lõpetada.
Nii et lisame mingi ettekanne, kasutades
sama, et me kasutasime meie jaoks silmus, int i = 0.
Okei.
Nii et hakkame koos int i.
Me korrake seda samas loop kui i on väiksem kui 5.
Nii siis meil puuduvad üks asi, mis on uuendatud.
Mida uuendus oleks me peame kasutama, kui me põhiliselt
taasloomine jaoks silmus üle?
Meil on initsialiseerimise i on võrdne 0-ga.
Meil on tingimus i on väiksem kui 5.
Ja siis siin on uuendus, eks?
Nii et me tahame kopeerida seda.
Me tahame öelda, okei, i + +.
See on sama asi nagu öeldes i = i + 1.
Aga kuna see on nii palju kasutatud, lühendvormina see on lihtsalt
öeldes i + +.
>> Suur.
Okei.
Siin ma tegelikult ei väljuda mu õunad programm.
Nii et ma olen lihtsalt läheb käsku Control-C ja et kohe
saapad mind mu programmi ja toob
mind tagasi terminali.
Nii et näiteks kui teil tekib bug, kus te
unustasin, et uuendada oma samas silmus nii, et see
lõpetada, ja sisestate lõputu silmuse, siis saate
kasutada Control-C välja murda, et.
Hea küll.
Nii et oleme õiges kataloogis.
Nii et teeme tere.
Ja siis, kui võtame tere, näeme, et hüvasti silmus teeb
täpselt sama asi nagu meie jaoks silmus teeb.
Nii et see on lihtsalt vihje.
Kas olete rohkem rahul jaoks silmuseid või
koos samas silmuseid, võivad nad olla omavahel vahetatavad.
Nii et kumb soovite kasutada itereerima kaudu -
sel juhul -
kõrgus Mario püramiid.
Ja nii jälle, see on lihtsalt meeldetuletus, kui sa alguses null
oma muutuja, siis tahad Sa olla erinev
seisukorras kui siis, kui sa hakkasid ühel.
Nii et see tabel lihtsalt selline näitab teile meeldetuletus.
Kui soovite korrata 10 korda, näiteks siis
saab kas alustada oma muutuja on null.
Ja teie seisund võib olla alla 10.
Ja et selline näitab maatriksi selle.
>> Okei.
Nii oleme läbi käinud Mario.
Me oleme öelnud, Olgu, me peame kontrollima õige sisend,
null ja 23 kaasa arvatud.
Me leiame mingi muster, mingi viis
väljendada nda rea ​​või s rida.
Ja me otsustada, okei, et me ei kavatse trüki
palju ruumi, see palju hashes, uus liin.
Hea küll.
Nii et meil on see.
Nii et nüüd saame edasi liikuda ahne.
Ahne on programm, kus kasutaja annab teile summa
raha, mis sisuliselt sind kassast vaja tagastada.
Aga mida soovite kasutada nii vähe münte kui võimalik.
Ja nii see on, kui ahne algoritm jõuab, kus
me tahame kasutada minimaalset münte võimalik
teha, et muutuse summa.
>> Okei.
Nii näiteks on oma lahendus välja võiks näha
midagi sellist.
Sa jooksed. / Ahne.
Teilt nõutakse öelda okei, noh, kui palju muutusi on ees?
See väärtus saab olema väärtus dollarites.
Nii et see saab olema ringluses.
Sinu programm siis arvutama minimaalse summa
Müntide kohustatud tegema, antud juhul, $ 0,32.
Ja nii minimaalne arv on neli.
Nii et enne kui me aru saada, mida teha, olgem omamoodi jalutuskäik
läbi protsessi, et sa võiksid minna.
Nii et kui sisend on 32, siis sisuliselt ma lähen kasutada
vähemalt summa münte kui ma kasutan nii palju
suur münte kui võimalik.
Eks?
Nii et see on palju lihtsam kasutada ühte kvartalis
vastu viie viiesendist.
Ütleme, sa pead tagasi $ 0,32.
Noh, ma saan kasutada kvartali see on?
Jah, saab küll.
Ja siis oleks vähenes $ 0,07.
Vaatame, kas ma saan kasutada teise kvartali maksan sulle tagasi.
Noh, ei.
Ma ei mahu kvartali mis.
Nii et ma lähen liikuda järgmisele suurim münt.
Kas ma saan kasutada peenraha?
$ 0.07, ei saa te kasutada peenraha maksma $ 0,07.
Nii et sa ütled ei.
Pane järgmise üks, mis on niklit.
Kas te kasutate nikkel?
Jah.
Seitse on suurem kui $ 0,05, et saaksime kasutada niklit.
Ja siis on meil kaks senti üle jäänud.
Kas me kasutame ühe teenari peale?
Jah, me suudame.
Kas me kasutame teise teenari peale?
Jah.
Kas me kasutame teise teenari peale?
Ei, sest nüüd on meil edukalt
makstud kasutaja tagasi.
Ja nii et kokku 4 münti kasutada.
>> Nii et mõelda, et protsess, me kõik
aeg otsustada eks,
Mis on suurim münt, mida saame kasutada?
Kui me kasutame, et me sellist hoida vaimse teadmiseks, kui palju
rohkem raha me peame tagasi kasutaja ning kui palju
mündid oleme kasutanud.
Okei.
Nii aga jälle, esimene samm - nagu Mario - on kiire
kasutaja rahasumma.
Ja nii see summa saab olema -
see saab olema arvulises väärtuses, sest me ei kavatse
paluda neil dollarit.
Nii et andmetüüp ei kavatse olema täisarv.
Aga see saab olema -
Jah, sularahaga.
Aga nagu õunad, ujukite võib olla positiivne või negatiivne.
Siis kui sa kontrollida väärtused, sa lähed tahan
tagada, et teie float -
kasutaja sisend - on mittenegatiivne.
Okei.
Me võiksime tegeleda ujukid on meie kogu programmi, esindavad
kvartali 0,25, Dimes 0,1, jne.
Aga minu arvates on palju lihtsam tegeleda vaid puhas senti.
Samuti -
ja me räägime sellest pisut hiljem -
C, ujuvad punktid on midagi, mida nimetatakse ebatäpsus.
Nii et kui sisestate 0,12, näiteks arvuti
tegelikult kauplustes nagu 0.1111119 või
midagi sellist.
>> Nii et see on palju lihtsam teisendada senti.
Niisiis, kuidas me teisendada dollari väärtust senti?
SPEAKER 5: Times ta 100?
ZAMYLA CHAN: Jah.
Jah.
Seepärast soovime korda see 100ga.
Aga üks keeruline asi ujuv küsimusi on, et seal
on mõned ebatäpsus.
Nii et olgem lihtsalt pilk näide.
Ma lähen avama imprecision.c.
Okei.
See on väga lihtne programm.
Ta küsib float, ja ta prindib selle tagasi.
Üks kena otsa terminali võid trükkida selgeid ja
siis on selge ekraan.
Ja nii sa ei pea vaatama kõik varasemad tootlikkust või
vigu või veateateid, midagi sellist.
Okei.
Nii et teeme ebatäpsus.
Olgem käivitada.
Nii et ma haven't -
minu kood, ma ei prindita kiire või midagi sellist.
Nii see lihtsalt on vilkuv kursor.
Nii et see on lihtsalt ootab mind sisestada sularahaga.
Nii let's -
juhuslik sularahaga.
Ja te näete, et see prindib ta tagasi, kuid on mõned pildi
numbrid, et me kindlasti ei sisaldanud.
Nii et me tahame veenduda, et see ei
juhtuda meie programm.
>> Nii siis, mida me tahame teha, on tagada, et me tegelikult
selline ümardada sobiv väärtus.
Eks?
Ja nii õnneks on meil funktsioon nimega ringi kuuluvad
seadmesse.
See on matemaatika raamatukogu.
Kui soovite teada, kuidas kasutada ümmargune, siis te tegelikult kasutada
käsitsi.
Te võite klõpsata mees ringi.
Siis siin see avab -
võib olla natuke raske dešifreerida, kuid lõpuks
saad riputada seda.
See liik näitab teile, mida funktsioon teeb ja siis mõned
võimalikku kasutamist, et.
Nii et kui te lõpuks saada korraliku, kehtiv sisend
kasutaja, siis sa tahad muuta selle senti.
Veenduge, et teil ümber väärtus nii et teil vältida selle
ujukoma ebatäpsus.
>> Okei.
Nii oleme küsitakse kasutajalt rahasumma.
Nüüd, mida me tahame teha, on sisuliselt kontrollida, eks?
Okei, nii et ma saan kasutada suuremaid münt võimalik?
Kui võimalik, siis kasuta seda.
Teil jälgida, kui palju mündid oled kasutanud siiani ja
Samuti väheneb summa.
Eks?
Ja siis sa lähed, et kontrollida.
Kui olete sellist ammendatud kvartali tahad minna
Järgmise võimalik asi.
>> Nii et millist struktuuri või millist silmus võiks meil
soovite kasutada pidevalt kontrollida, kas me saame ikkagi kasutada
kvartalis, näiteks?
SPEAKER 6: Kuigi suurem väärtus?
ZAMYLA CHAN: Jah, täiuslik.
Täpselt.
Niisiis, kui väärtus on suurem kui.
Niisiis, kui väärtus, mis meil on anda tagasi on ikka veel
suurem kui veerandi, samas me saame ikkagi kasutada kvartalis
kasutada kvartalit.
Jälgi seda.
Ja siis hoida käimas.
Perfect.
Okei.
Oh, siin ma olen lihtsalt lisada vaid mõned nõuanded, kuidas printida
välja väärtused.
Nii et teie printf funktsiooni, oleme tavaliselt olnud lihtsalt
tegelevad stringid.
Aga kui sa tahad välja printida int või lihtsalt igat tüüpi
kohaline, sa pead selline kirjutada selline koht omanik.
Nii et see esindab protsenti,% d täisarvud.
Sa kirjutad, et siis hiljem sa tegelikult -
pärast koma -
panna milline väärtus tegelikult läheb sinna.
Õigus.
>> Okei.
Nii oleme otsustanud, et me tahame, et kontrollida, kas -
üks võimalus seda teha oleks pidevalt kontrollida, kas
me saame ikkagi kasutada kvartali ja seejärel kasutage kvartali hoida
jälgida ja seejärel liikuda edasi järgmisele suurim väärtus.
Nüüd teise liiki puhas nii, et sa võiksid seda teha on
kasutades operaatorit moodul.
Nii et meil on juba pluss, miinus, korrutada ja jagada
meile kättesaadav.
Aga moodul operaator on selline puhas.
Mis see on see tegelikult naasete ülejäänud
jagades kaks arvu.
Nii et kui sa mäletad pikk rajoon, kui sa oleks, ütleme,
teha 74 jagatud 3, siis oleks kirjutada, üle kanda,
lahutada, ja siis lõpus arvu allosas on
Ülejäänud.
Noh, mis moodul see tegelikult lihtsalt annab sulle selle.
Nii et 74 modulo 3 annaks sulle 2.
Samamoodi, 10 mooduli 2 järgi annab 0, sest seal ei ole ühtegi
ülejäänud kui sa jagad 10 2.
6 moodul 5, hästi 5 läheb 6 üks korda ja seejärel
See on 1 üle jäänud.
Siis kui sul on 7 modulo 9, hästi 9 on suurem kui 7.
Nii et see ei saa minna muul ajal.
Nii on loogiline, et tagastatav väärtus on 7.
Nii et kui sa arvad moodul, kuidas see annab teile ülejäänud
pärast sa jagad midagi, saad omamoodi aru, kuidas te
võiksid kasutada seda ahne, eks?
Nii et kui teil mingi ühendada Modulo võibolla rajoon
operaator, midagi sellist, siis võib-olla jahe
selline mathy viis läheneda probleemile komplekti.
>> Nüüd, et me teame, et seal on paar erinevat
viise, et me võiks seda teha - seal on kindlasti palju
erinevaid viise, kuidas isegi kirjutama samas silmuseid.
Nii et ma olen kirjutanud mõned pseudokoodi siin.
See ei pruugi olla identne selline skelett oma
koodi, mis sa kirjutad.
Aga sisuliselt, protsess ja mõtteviis on
nagu me arutasime.
Nii et esimene, esimene rida ütleb, et saada teatud summa
dollarites.
Ja siis kaudne seal on teisendada see senti.
Siis samas kvartalis võib kasutada, tahame
suurendada arvu.
Ja siis me tahame vähendada summa, väärtus, et
Me tagastame tagasi.
Nagu näete siin, see ei ole päris C. Aga ma olen ka
liigestatud asju, panen tingimused sees
sulgudes.
>> Nii siis sellist saab mind hakkas.
Ja siis hiljem, võin lihtsalt otsida süntaks.
Sageli on kõige raskem osa tõesti probleemi kohta on
aru, mida täpselt sa pead tegema.
Nii et kui sa selle üles kirjutama, siis on palju lihtsam siis
tõlkida pseudokoodi.
Ja siis alates pseudokoodi, süntaks on üsna lihtne.
Nii me näeme, kui kvartalites, mida saab kasutada, suurendada arvu,
väheneb summa.
Kuigi Dimes saab kasutada, siis läbi see nii edasi ja nii
edasi, kuni olete ammendanud kõik oma penne.
Sa printida münti kasutada, mis on
miinimumsumma teha kasutaja sisestanud väärtuse.
Ja seal teil oma ahne algoritm.
Ja siis kui olete lõpetanud, et olete ka valmis pset 0.
>> Kas kellelgi on mingeid küsimusi midagi?
Hea küll.
Noh, ma jääda umbes natuke pärast, kui teil on
mingeid küsimusi.
See oli läbikäiguks 1.
Tänan, et tulid.