[Powered by Google Translate] David J. Malan: Nu labi, tas ir CS50 un tas ir
beigas 1 nedēļai, tādēļ studiju kartes ir un kopējais skaits
klasesbiedru ka jums ir šogad ir 745.
Un mēs esam tik saviļņots būt tik daudzi no jums gaitā
šajā semestrī, bet pat ja šis kurss ir tik liels,
apzināties, ka tas ir šīs lietas, piemēram piektdiena pusdienas, tāpat
darba laiks, 15 personām sekcijas, un tā tālāk, ka
ir tiešām domāts, lai radītu šo vairāk intīmo
vidi.
Tātad, pat ja mēs varētu savākt vienu vai divas reizes nedēļā, šeit
Slīpmašīnas, zinu, ka daudz no jūsu pieredzes šajā kursā
būs ļoti daudz ir praktiska uz līdzās saviem klasesbiedriem
un mācībspēki.
>> Tātad šeit mēs iet, Fall 2012.
Tāpēc atgādinām, ka pēdējo reizi, kad mēs beidzās ar piezīmi
neprecizitāte, runājot par pārstāvību numuriem.
Un mēs paskatījās kādā no neveiksmēm, kas notika, jo
reālajā pasaulē, kad tas nonāca pie pārpratumiem
Kā datori strādā.
Nu, šodien mēs pārskatīt vēl vienu no šīm idejām, kā
arī turpināt mūsu diskusiju par CS50 klienta
un C un ko tas nozīmē tiešām programmu.
Bet vispirms, tikai pāris viesulis paziņojumiem.
>> Sadaļas sākt šo svētdien, un pirmajā nedēļā vienmēr
mazliet ātru palaišanu, jo mēs tikko saņēmām
Jūsu sadaļā veidlapas.
Mēs darām to pašu, tagad, ar mācību līdzcilvēkiem, tagad
ka viņi zina savas grafikus, tāpēc mēs tiecamies, ko
Sestdienas rītā, lai ar jums ar savu sadaļu
piešķiršana un TF.
Saprast, ka viņi sāk nākamajā dienā, svētdien
vai pirmdien vai otrdien.
Un tad mēs uzņemt sadaļā izmaiņas, kā tās rodas
, kas dienas nākt.
Darba laiks, tikmēr, ir, atkal, šovakar, 8 vakarā līdz 11, jo
Annenberg, kā arī rīt naktī.
Kaut gan problēma komplekti parasti saistīts ceturtdienās
pusdienlaikā, saprast, jums ir līdz piecām vēlu dienu pavadīt,
tātad pieejamība darba laika ceturtdienās, ja
Jūs vienā no tiem vēlu dienas nauda un, tādējādi, iesniedz
kaut piektdien.
Ļaujiet man liek domāt, ka Scratch ir viens no vairāk jautrības, starp
vairāk zema galvenā problēma komplekti.
Un es būtu karājas uz tiem vēlu dienu, stratēģiski, vienkārši
lai vēlāk pusgadu, kad dzīve sāk iekļūt veidā
ar midterms un citām klasēm.
Problēma Set 1, tikmēr būtu publicēta kurss s
Mājas šī piektdiena, jo būs kurss gājiena attālumā
caur video, kas tiks filmēti pie 02:30 piektdien
un tad ievietojis internetā ar nākamo dienu.
>> Tātad mēs beidzās pirmdien.
Es gribu - patiesībā, viena atzīmēt šeit.
Jo klases - jo Sanders nav īsti aizdot
pats uz gadījuma Q & A un atpakaļ briesmīgi labi, mēs esam
gatavojas izmēģināt kaut nedaudz jaunu šajā gadā, kad
ja jūs neesat apmierināti palielinot savu roku vai jūs vienkārši
drīzāk nevis paaugstināt savu roku telpā, kā šis,
mēs ejam, lai ir dažas no mācību stipendiātu un END
komplektēšanas cs50.net/discuss laikā lekciju.
Tātad, ja jums ir jautājums, jo man bija pilnīgi
skaidrs par kaut vai jūs esat ziņkārīgs par kādu
temats, mēģiniet posting to tur.
Trāpi ar marķējuma Lekcija, un mēs darīsim visu iespējamo,
šodien un nākamnedēļ - we'll izmēģināt šo out - uz lauka to
nu elektroniski, tiešsaistē vai ja tā uzskata, tāpat mums būtu
tiešām to risināt en masse, vienu no mācību līdzcilvēkiem vai
SI būs paaugstināt savu roku un lūgt
anonīmi jūsu vārdā.
Tāpēc mēs sniegt šo izmēģināt un redzēt, cik labi tas darbojas.
Bet, ar visiem līdzekļiem, turpina paaugstināt roku, kā jūs vēlētos.
>> Tātad pēdējo reizi mēs atklāja, ka 10% jeb viena desmitdaļa nav, jo
Fakts, 0.1, kā jums bija mācīts pirms daudziem gadiem.
Tas ir patiesībā, kā šī vērtība.
Bet tas nav pilnībā taisnība, vai ne?
Mums vienkārši ir šo ierobežojumu datoriem saskaņā ar kuru, ja jūs
ir tikai ierobežots atmiņas apjomu, RAM vai vairāk
īpaši biti, labi, tur ir tikai ierobežots skaits
lietas jūs varat pārstāvēt.
Piemēram, ja mums ir vairākas nulles, un mēs vēlamies, lai
pārstāvēt binārā, izmantojot astoņi biti, kur mazliet,
atkal, ir nulle vai viens, mēs varētu
pārstāvēt to kā 00000000.
Un tas ir mazliet nevajadzīgi runīgs.
Tāpat kā aiz sistēmu reālajā pasaulē,
Parasti, ja jūs vēlaties rakstīt numuru 123, mēs
cilvēki, iespējams, nav rakstīt 00000123 pat tad,
funkcionāli, ka ir tieši tā pati numuru.
Mēs tikai piliens vadošajiem nullēm, lai runāt.
>> Binārā, mēs varam darīt to pašu.
Binārā un nulle, nulle un bināro ir tikai nulle.
Jums ir nepieciešama tikai vienu bitu.
Bet atkal, visbiežāk mērvienība pasaulē
Datorikas ir baiti, astoņi biti.
Tikai tāpēc, ka viens bits, diezgan bezjēdzīgi.
Astoņas biti, nav briesmīgi noderīgs, bet vismaz tas ir vairāk
noderīgs, nekā vienu mērvienību.
Tātad ar astoņiem bitiem, mēs parasti pārstāv bināro.
Tāpēc šeit mēs esam skaitļus nulle, viens, divi, un tad, kā
Nate darīja mūsu video pagājušajā trešdienā, mēs varam turpināt
skaitot līdz septiņiem, līdz astoņiem.
Un tad, ja mēs izmantojam vairāk un vairāk biti, mēs
var rēķināties līdz bezgalībai.
Bet, ja jums ir tikai ierobežots skaits šo bitu, kā tas ir
lieta jebkurā datorsistēmā, vai pat raķešu
sistēma, labi, tiešām jums ir tikai
ierobežots apjoms precizitāti.
Tātad, ja jūs vēlaties, lai pārstāvētu numuru, piemēram, 0,1, labi,
dators ir atlasīt un izvēlēties.
Un, ja tas ir tikai ierobežots skaits par skaitļiem, ko tā spēj
pārstāvēt, tas var nākt tuvu jums 0.1, bet tā nevar
vienmēr sniedz jums tieši to vērtību, ko vēlaties.
Un tas ir tikai viens no datoru problēmas,
zem motora pārsega, par laimi.
>> Kā mēs virzāmies tālāk uz semestrī, šie zemāks līmenis
Detaļas kļuvis daudz mazāk interesants, bet noteikti
piemērošanu šīm idejām var būt dažas ļoti reālo pasauli
atzari.
Viens no tiem ir mazliet jautri.
Cik daudzi no jums ir redzējuši apbrīnojamo filmu Office Space?
Ja jums nav, tas ir jūsu neoficiālo
mājasdarbu par nedēļu.
Bet Office Space, šīs filmas puiši veikt
priekšrocības tieši šī ideja, bet tie faktiski nozaga
tas no citas filmas, kas jums varētu būt
redzējis, pat gadus pirms.
Tāpēc ļaujiet man sniegt jums dažas sekundes šīs piekabes no
šo apbrīnojamo filmu un tas ir ļoti daudz
akadēmiski būtiska.
>> [Atskaņota filmu]
Patiesībā es esmu tiek veicināta.
Es var ieprogrammēt vīrusu, kas būs rip ka
vieta pie liels laiks.
Nu, kā tas darbojas?
Katru reizi, tur bankas darījums, kur interese ir
izskaitļotā, ir tūkstošiem dienā, dators nonāks
ar šiem centam frakcijām.
Bet es neesmu gatavojas darīt kaut ko nelikumīgu.
Nelegālā? Samir, tas ir Amerikā.
Jums ir zvēru pie Dieva.
Ja neviens nezina par šo, bet mums, labi? Bez ģimenes locekļu, nav
draudzenes, neviens.
[Nedzirdama].
Neuztraucieties, cilvēks, es nevaru pateikt nevienam nu.
[Filma beidzas]
>> Labi, tāpēc varbūt es atradu šo filmu labāk nekā lielākā daļa
cilvēki šeit, bet jebkurā gadījumā, vīrusu, kas viņi bija
mēģina radīt -
un filmas, jebkurā laikā viņi zvana kaut vīruss,
tas vispār nav reāli vīruss.
Tas ir tikai programma, ka kāds rakstīja kaut ko darīt.
Un šajā gadījumā, puiši centās uzrakstīt programmu
ka izmantoja savu uzņēmumu sauc Innotech s
skaitļošanas sistēma, kurā datori, arī tad, ja tā
runa ir par naudu, ne vienmēr
pārstāvēt money precīzi.
Tātad, pat ja jūs varētu būt $ 0,10 savā bankas kontā,
0.10, labi, dators varētu tiešām domāju, ka jums ir
tas daudzas centi jūsu bankas kontā.
Un tā, ko šie puiši bija iecerējušas darīt - un viņi
nozaga ideju, izrādās, no Supermens III, kur
Richard Pryor bija tas pats - tie būtībā
rakstot programmas, kas tiecas veikt visus trailing
numurus, visi no sīkiem, sīkiem, tiny frakcijām
pennies, un siphoning tiem pie tā, ka cilvēki tikko
doma, ak, tas ir tikai 0,10 $ tur, bet visi no tiem
trailing numuri beidzot saskaitīt.
Tik brīnišķīga ideja un tas backfired hilariously jo
īpaši filmu.
>> Bet reālajā pasaulē, arī tur ir daudz vairāk par
ietekme šīm lietām veidu.
Un viens no iemesliem nodoties jomā datora
zinātne ir, atkal, tā piemērojamība nav
inženierzinātnēs vien, bet tikai līdz
arī citās jomās.
Tātad tas ir tik drastisks apskatīt to, kas var noiet greizi, bet
tas ir arī diezgan acu atvēršana, es domāju, kad runa ir par
sapratni, kā tieši visuresošs tehnoloģijas, piemēram
Datori un programmēšana vai šajās dienās,
formā programmatūru.
Tātad šis nākamais klips ir tikai aptuveni sešas minūtes, turpinās
kur mēs left off pēdējo reizi, bet ļauj mums skatīties mazliet
padziļināti vienā šādā no šiem jautājumiem.
Ļaujiet man izlaist uz priekšu, kur mēs left off,
kas bija šeit.
Un mums ir divu daļu informējusi, apmēram sešas minūtes šeit.
>> [PLAY MOVIE]
Mocīja mūsdienu raķešu tehnoloģiju.
1991, ar sākuma pirmā Līča kara, Patriot
Raķetes piedzīvoja līdzīga veida
numuru pārveidošana problēma.
Un kā rezultātā, 20 cilvēki, 20 amerikāņu karavīri, tika nogalināti
un aptuveni 100 citi ievainoti, kad Patriot, kas bija paredzēts
lai aizsargātu pret ienākošo Scuds,
neizdevās šautu raķeti.
>> Kad Irāka iebruka Kuveitā un Amerikā uzsāka Desert
Vētra 1991.gadā sākumā, Patriot raķešu baterijas bija
izvietoti aizsargāt Saūda Arābiju un Izraēlu no Irākas
Scud raķešu uzbrukumiem.
Patriot ir ASV vidēja diapazona zeme-gaiss sistēmas,
ražojis Raytheon uzņēmums.
Par Patriot kolektoru pats izmērs, tas ir par
aptuveni 20 pēdas garš un tas sver aptuveni 2000 mārciņas.
Un tas nes kaujas galviņu apmēram - es domāju, tas ir rupji
£ 150.
Un kaujas galviņu pati liels sprādzienbīstams, kas ir
fragmenti ap to.
Pants Ar šo kaujas galviņu korpuss ir paredzēts, lai rīkoties kā Buckshot.
Raķetes tiek veiktas četri uz konteineru un ir
transportē ar puspiekabi piekabe.
>> Patriot pretraķešu sistēma iet atpakaļ vismaz līdz
20 gadus.
Tā sākotnēji tika izstrādāta kā gaisa aizsardzības raķešu līdz
atvašu nosaka ienaidnieks lidmašīnām, kas pirmā Līča kara.
Ja, ka karš nāca kopā, armija vēlējās izmantot, lai šautu
leju Scuds, ne lidmašīnās.
The Air Irākas spēki bija ne tik daudz problēmu, bet armija
bija noraizējies par Scuds.
Un tā viņi mēģināja uzlabot Patriot.
Pārtvert ienaidnieks raķetes ceļo 5 Mach gatavojas
lai izaicinājums pietiekami.
Bet, kad Patriot bija rushed ekspluatācijā, Armijas
nezināja par Irākas modifikācijas, kas padarīja viņu
Scuds gandrīz neiespējami, lai sasniegtu.
>> Kas notika ir Scuds kas bija
nāk bija nestabila.
Viņi bija wobbling.
Iemesls bija irākiešu, lai saņemtu 600
kilometru attālumā no 300 kilometru attāluma raķete, ņēma
svars no priekšējās kaujas galviņu un
padarīja Warhead vieglāks.
Tāpēc tagad Patriot mēģina nākt pie Scud, un lielākā daļa no
laiku, lielākā daļa no laika, tas būtu
tikai lidot ar Scud.
Kad Patriot sistēmas operatori saprata Patriot
garām savu mērķi, viņi uzsprāgt Patriot kaujas galviņu.
Lai izvairītos no iespējamiem negadījumiem, tika atļauta
krist uz zemes.
Tas bija tas, ko vairums cilvēku redzēja, kā lielie fireballs debesīs,
un pārprasta kā pārtver no Scud kaujas galviņām.
>> Kaut arī, nakts debesis, patrioti izrādījās
veiksmīgi iznīcina Scuds, pie Dhahran, nevarot būt ne
kļūda par savu sniegumu.
Tur Patriot radaru sistēma zaudējis dziesmu
ienākošo Scud un nekad uzsāka dēļ
ar programmatūras plaisāt.
Tas bija izraēlieši, kurš pirmais atklāja, ka, jo ilgāk
sistēma bija, jo lielāka laika neatbilstība kļuva,
sakarā ar pulksteni iestrādāta sistēmas datorā.
Aptuveni divas nedēļas pirms traģēdijas Dhahran, tad
Izraēlieši ziņoja Aizsardzības departamenta, ka
sistēma tika zaudēt laiku.
Pēc apmēram astoņām stundām darba, viņi pamanīja, ka
sistēma tika kļūst ievērojami mazāk precīza.
Aizsardzības departaments atbildēja ar stāsta visas
Patriot baterijas atstāt sistēmas
uz ilgu laiku.
Viņi nekad teica, ko ilgu laiku bija - 8 stundas, 10
stundas, 1000 stundas.
Neviens nezināja.
>> Patriot akumulatoru izvietoti pie kazarmām pie Dhahran
un tā kļūdains iekšējais pulkstenis bija par vairāk nekā 100 stundas gada
līdz februāra naktī 25..
Tas kāpurķēžu laiku ar precizitāti apmēram desmitā daļa no otrā.
Tagad otrā desmitdaļa ir interesants skaits, jo
to nevar izteikt binārā, precīzi, kas nozīmē,
to nevar izteikt tieši kāda
mūsdienu digitālo datoru.
Tas ir grūti noticēt.
Bet izmantot to kā piemēru.
>> Paņemsim numur viens trešdaļa.
Viena trešdaļa nevar izteikt decimālā, tieši tā.
Viena trešdaļa ir 0,333 notiek uz bezgalību.
Nav veids, kā to darīt, ar absolūtu precizitāti aiz komata.
Tas ir tieši tas pats veida problēma, kas notika
Patriot.
Jo ilgāk sistēma skrēja, sliktāk laika kļūda kļuva.
Pēc 100 darba stundām, laika kļūda bija tikai
apmēram viena trešdaļa no otrā.
Bet, pievēršot raķeti ceļojumā pie 5 Mach,
tas izraisīja uzskaites kļūdas vairāk nekā 600 metrus.
Tas būtu fatāla kļūda pie Dhahran karavīriem.
>> Kas notika, ir Scud uzsākšanu tika atklāta ar agrās brīdināšanas
satelīti un viņi zināja, ka Scud bija nāk to
vispārējo virzību.
Viņi nezināja, kur tas nāk.
Tas tagad līdz radara sastāvdaļu Patriot
sistēma, aizstāvot Dhahran, lai atrastu un sekot līdzi
ienākošo ienaidnieks raķetes.
Radara bija ļoti gudri.
Jūs faktiski izsekot pozīciju Scud un tad
prognozēt, kur tas, iespējams, būtu nākamreiz
radara nosūtīja pulss ārā.
Ka sauca diapazons vārtiem.
Tad, kad Patriot nolemj pietiekami daudz laika ir pagājis, lai dotos
atpakaļ un pārbaudiet nākamo vietu Konstatētās
objekts, tas iet atpakaļ.
Tad, kad tas devās atpakaļ uz nepareizā vietā, tad tas neredz
iebilst, un tā izlemj, ka nebija objekts.
Tas bija viltus atklāšanas un pilieni dziesmu.
>> Ienākošā Scud pazuda no radara ekrāna.
Un sekundes vēlāk, tas ietriecās mītnē. The Scud
nogalināti 28 un bija pēdējais atlaists laikā
pirmā Persijas līča kara.
Traģiski, atjaunina programmatūru ieradās Dhahran
nākamajā dienā.
Un programmatūras trūkums bija noteikts, slēdz vienu nodaļu
nemierīgajā vēsturē Patriot raķešu.
Patriot ir faktiski akronīms "Pakāpeniskās Array Tracking
Pārtvert Target ".
>> Labi, tik daudz noskumis iznākums nav gluži
izprast šo pasauli.
Un takeaway, tiešām, no filmas, ir, ka risinājums
tur bija pārstartēt pretraķešu aizsardzības sistēmu
Katru reizi brītiņa.
Un tā atkal, no šī kursa mērķiem, viens, protams,
par vairāk pazemīgs mērogā nekā šiem pieteikumiem, ir
tiešām atvērt ikviena acis uz kā tieši jūs iet par
izgatavošanas mašīnas darīt to, ko vēlaties tos darīt un kā jums iet
par darot, ka pareizi, bet pa ceļam to dara
labi, eleganti, un tā tālāk.
Un tāpēc šodien, pieņemsim pikējošais mazliet vairāk par šo, bet
tāpēc, ka mums nav iet pārāk ātri, īpaši tiem, kas mazāk
ērts, bet arī tādēļ, lai mēs varētu saglabāt interesi
tiem ērtāk, pieņemsim tikai ātri sākt ar mazliet
gada Atgādinājums par dažas no šīm idejām.
Un atkal, lūgt prom, gan personiski vai tiešsaistē, ja Jums ir
jautājumus, lai mēs varētu saglabāt visus vienā lapā.
>> Tāpēc CS50 Appliance, ātrs solis atpakaļ, ir
ko, saviem vārdiem?
Tas ir OK, ja jums nav ne jausmas, ko šie vārdi var būt vēl.
[Dzirdams]
Labi, tāpēc universāls interfeiss -
ka mēs visi varam dalīties.
Absolūti.
Lai mēs varētu, piemēram, pateikt, lai dotos uz kādu
Mājas, lejupielādēt šo programmatūru Mac OS.
Lejupielādēt šo programmatūru Windows, konfigurēt
šādā veidā, un ka.
Bet realitāte ir, tad mēs uzskriet neskaitāmas tehniskās
atbalsta jautājumus.
Un arī šajās dienās, daudz par to, kas tiek darīts servera pusē,
pasaulē skaitļošanas, jo īpaši, ja runa ir par
web izstrāde un tīmekļa lietojumprogrammas, ir faktiski
diezgan bieži darīts uz Unix vai Linux datoros, pretstatā
Mac vai Windows PC.
>> Tātad starp upsides, tad, izmantojot šo lietu sauc
CS50 Appliance ir mēs visi ir šajā pašā vidē.
Tāpēc ikviens ir uz pašu lapu vienalga ko aparatūras jums
ieradās pilsētiņas ar, bet arī tiks dabbling precīzi
tajā pašā vidē, kas jums tiks izmantojot pret
semestra beigās, kā arī par interneta attīstību, kā arī
nākotne reālās pasaules pieteikumus to.
Tātad vēl konkrētāk, CS50 Appliance ir bezmaksas gabals
programmatūra, kas ļauj jums vadīt citu operētājsistēmu,
Linux, šajā gadījumā, uz sava datora, logā.
Tagad jūs varat ne tikai lejupielādēt ierīci.
Jums ir nepieciešama programma, ar kuru spēlēt vai izmantot ierīci.
Un tas gabals programmatūras sauc par
Hypervisor.
Hypervisors nāk kā produktu, piemēram, VMware,
Virtual Box, Parallels.
Visi uzņēmumi veidu padarīt programmatūru, gan bezmaksas un
komerciālā, līdzīgi.
Ko jūs redzat problēmu Set 1 ir norādījumi par to, kā
saņemt bezmaksas programmatūru, ar kuru var
palaist CS50 Appliance.
Un, kad jūs darāt, jums ir, jo logs uz jūsu Mac vai PC,
darbvirsmas vide, kas izskatās gluži kā šis, kad
tas ir Start izvēlnē līdzīgu lieta
apakšējā kreisajā stūrī.
Tā ir mājas mapi vai mājas direktoriju, augšējā kreisajā
tur, trash var, un tā tālāk.
Tāpēc mēs kaitināt izņemot nepieciešamās detaļas, kā mums iet.
>> Bet tagad sāksim nodoties C.
Tāpēc C tas ir programmēšanas valoda, līdzīga garu
Scratch, bet daudz mazāk grafisko, bet ironiski, tālu
jaudīgāku kad jums gudriem ar to.
Tātad C, mēs rakstīt programmas, rakstot avota kodu, kas ir
Šis angļu-piemēram, sintakse, līdzīgi zeķes
demonstrēt, ka mēs pēdējo reizi, kas ļauj
izteikt sevi diezgan precīzi, ja
arcanely, uz datoru.
>> Tātad, kāda veida produkts programmatūru Vai jums tiešām ir nepieciešams
rakstīt programmas valodā, piemēram, C, balstoties uz mūsu
saruna pirmdien?
[Dzirdams]
Labi, jums ir nepieciešams teksta redaktoru.
Jums nav nepieciešams kādu īpašu programmatūru
per se rakstīt programmas.
Jums vienkārši nepieciešams teksta redaktoru, piemēram, Notepad, uz Windows,
TextEdit uz Mac, vai kaut ko sauc gedit, pasaulē
Linux, ko mēs izmantot šeit.
Un tas ir tas, rakstīt programmas.
>> Bet rakstot ir tikai puse no vienādojumu.
Pēc tam ir nepieciešams, lai palaistu tos.
Bet, lai palaistu programmas -
Jūs nevarat palaist pirmkodu.
Jums tā vietā ir jādara, ko ar to vispirms?
Yeah.
David J. Malan: Jums ir nepieciešams, lai
salīdzināšanu.
Un, kāds cits, apkopojot pirmkodu nozīmē -
[Dzirdams]
David J. Malan: Tieši tā.
Tulkojot to nullēm un uzņēmumiem.
Jo visi no mums šajās dienās, ir datori, kas ir CPU,
gandrīz visi, kas ir izgatavoti ar sabiedrību ar nosaukumu Intel, un
Intel Inside, nozīmē, ka tas ir smadzeņu iekšpusē jūsu
dators, kas pazīstams kā CPU.
Un viena no lietām, ka smadzenes dara, ir, tas zina
kā saprast modeļus nullēm un uzņēmumiem.
Tā zina, ko modelis bitu pārstāv saskaitīšanu, kādi
modelis atspoguļo atskaitījumus, ko modelis
biti pārstāvam drukāšanas, un radot dzirdamu skaņu.
>> Tātad īsumā, CPU, kopā ar operētājsistēmu,
kas ir gabals programmatūra, kas darbojas uz augšu no CPU,
tā runāt.
Kopā šie divi gabali zināt, kā vadīt programmas, kas
mēs cilvēki rakstīt.
>> Tātad, ja es eju uz CS50 Appliance šeit, man ir nepieciešams, lai atvērtu
līdz teksta redaktoru, un es varu piekļūt šo
pēc pāris veidos.
Es var vai nu doties uz Menu, Programmēšana,
un tad es varu izvēlēties -
Nē, nav, ka ēdienkarte.
Es varu iet uz Piederumi / gedit šeit, lai atvērtu
mana maz teksta redaktoru.
Vai vienkārši, es varētu noklikšķināt šo maz ikonas apakšā
kreisajā stūrī.
Un tagad man šo vidi šeit.
Tas ir diezgan atgādina vienkāršu teksta redaktoru, ar tikko
viens vai divi atšķirības.
Jo augšā, kur kursors mirgo tagad, tas ir, ja
Es varētu sākt rakstīt savu kodu.
Jo apakšā ir šo lietu sauc par termināļa logu.
Un kāda veida lietas es varu darīt šajā
tā sauc termināļa logu?
[Dzirdams]
>> Labi, tāpēc es ņemšu palaist komandas.
Un daži no komandas mums bija pirmdien bija mazliet
mistisks sākumā, bet ls, sarakstā cd mainīt direktoriju,
rm, lai noņemtu.
Tātad, tas ir sava veida vecās skolas veidā pārlūkošana
dators, izmantojot tikai tastatūru un teksta komandas,
un nav vispār, izmantojot peli.
Bet mēs redzēsim, pirms ilgi, tas patiesībā dod mums
nedaudz vairāk jaudas un nedaudz vairāk precizitāte, ar kuru ir
izteikt sevi.
Un tad vairāk nekā šeit pa kreisi, mēs esam tikai gatavojas, lai redzētu,
kā mēs sākt rakstīšanas programmatūru, mazliet kopsavilkums
programma, kas mēs esam rakstīts augšējā kreisajā pusē.
Bet mēs redzam, ka atkal pirms ilgi.
>> Tāpēc pieņemsim kaut ko darīt diezgan vienkāršs šeit.
Ļaujiet man vispirms iet uz priekšu un doties uz File, Save, un es esmu tikai
gatavojas klikšķiniet uz jharvard šeit, nekā pie kreisās, un
jharvard ir, atkal, nosaukums manā mājas mapē, mans
personas lietas, man, tagad ir Jānis Harvard, kā jums visiem
drīz būs Jānis Hārvarda šajā vidē.
Viņš ieguva šo mājas direktoriju, Mani dokumenti un tā tālāk,
ka es gribu saglabāt, tagad, šo failu iekšā
Tāpēc es esmu gatavojas to sauc hello.c. Tad es iešu
priekšu un noklikšķiniet uz Saglabāt, un tagad ko man šeit ir cilne
sauc hello.c, tik daudz, piemēram, cita veida redaktoru.
>> Tāpēc tagad ļaujiet man iet uz priekšu un sākt rakstīt programmu.
int galvenais (spēkā neesošs).
Un tad es vienkārši darīju pēdējo reizi, printf, lai drukāt formatēts,
("Hello, World!"
).
Gandrīz pabeigta.
Bet es esmu trūkst pāris detaļas.
Kas ir pazudis no šīs programmas, kas man tiešām ir nepieciešams, lai
tas faktiski apkopotu?
Yeah.
[Dzirdams]?
>> David J. Malan: Jā, tāpēc man ir nepieciešams, lai iekļautu standartu
I / O bibliotēka.
Tāpēc to nepieciešams iet virs galvenais, tāpēc es esmu tikai gatavojas
veikt dažas telpa tur.
Un es esmu gatavojas darīt # ietvert .
Un paziņojums leņķveida iekavās tur.
Un kā malā, gedit ir maz lietotājam draudzīga, ja
dažreiz nedaudz mulsinoši, jo tā cenšas palīdzēt jūsu
Acis novērojat ko līniju līdz ar ko.
Tātad fakts, ka mans kursors ir tieši blakus šo leņķveida
kronšteinu, pamanīsiet, cik tas izceļot otru leņķveida
kronšteins plus šo vienu.
Un tas ir tikai, lai pievērstu manu uzmanību uz to, ka es
ir simetrija.
Un simetrija programmēšanā parasti laba lieta.
Tāpat, ja es pārvietot manu kursoru uz beigām, paziņojums, kā
cirtaini bikšturi rindā, lai parādītu, ka, jā, man ir atvērt vienu
un slēgta vienu, lai runāt.
>> Labi, un es varu darīt viena cita lieta.
Tas nav obligāti nepieciešams, taču laba prakse, ko teikt
atgriezties 0.
Un atpakaļ 0 ko dara, lai mums šeit?
Or nozīmē ko?
[Dzirdams]
David J. Malan: Bet nekas noticis.
Un atklāti tas ir grūti par daudz iet greizi
programma šo īss.
Tāpēc es esmu tikai to super skaidri noteikts, ka viss ir labi.
Es, cilvēks, kad es palaist šo programmu, iespējams, nekad
sk ka 0.
Parasti šie skaitļi, kas tiek atdoti no galvenās
tikai audzināt savus galvas ar cilvēkiem, kad
kaut kas noiet greizi.
Un jūs saņemsiet nedaudz pop up sakot sistēmas kļūda, viens,
divi, trīs, vai kāds skaits bija, ka
faktiski tika atgriezta.
Tātad kaut kas cits nepareizi ar šo?
[Dzirdams]
>> David J. Malan: Tātad tas nav tik daudz funkcionāla kļūda
bet estētiskā vienu.
Es būtu iespējams ielikt NL simbolu tur
galu šīs virknes tā, ka mēs faktiski pārvietojiet kursoru uz
nākamais līnija, un programma tikai izskatās nedaudz prettier.
>> Tāpēc tagad ļaujiet man iet uz leju, lai manu termināļa logā
un zoom atpakaļ iekšā
Un šī lieta šeit, to sauc ātri.
Tas ir vienkārši atgādinot man, kas es esmu, jharvard @ iekārtu, kur
Ierīce ir nosaukums no datora es esmu par.
Iekavās tas Tilde, squiggle simbols, kas
pārstāv ko?
Mērķauditorija: Sākums katalogs.
David J. Malan: Sākums katalogs.
Tātad tas ir tikai stenogrāfija nošu sakot, jums ir
Jūsu personiskā mape, kurā visi faili iet pēc noklusējuma.
Tāpēc tagad, jo šeit, es varētu rakstīt ls par sarakstu.
Un vienīgais, ko es redzu šeit šobrīd ir hello.c.
Un tas ir labi, jo es tikko uzrakstīju šo.
>> Tāpēc ļaujiet man iet uz priekšu un darīt sveiki.
Un paziņojums es neesmu rakstīt darīt hello.c.
Tā vietā, es esmu tikai ierakstot bāzes faila nosaukumu, sveiki.
Un dara, kā mēs redzējām pirmdien, būs tikai secināt, ka es gribu
c failu..
Tāpēc tagad es esmu drukāti darīt sveiki.
Tagad es redzu šo diezgan ilgi komandu un turpinās
redzot atkal un atkal.
Bet, lai būtu skaidrs, šķindoņa, vārds, kas tikko parādījās,
tas faktiskā kompilatoru.
Darīt ir tikai būvēt lietderība.
Tas ir tikai vairāk lietotājam draudzīgs programma, kas saglabā man,
ilgtermiņā, no tā tipa no neticami garlaicīgs garš
komandas, piemēram, šo vienu.
Tātad, jūs varētu palaist šķindēt manuāli.
Jūs varētu ierakstīt visu, kas manuāli.
Tikai kļūst ļoti garlaicīgs.
Un tā darīt ir tikai programma, kas vienkāršo mūsu dzīvi un
darbojas vairāk sarežģītu komandas mums.
>> Labi, tāpēc tagad ko fails man ir
manā pašreizējā direktorijā?
Ne tikai hello.c, bet arī sveiki.
Tātad, ja es gribu palaist sveiki, atceros, ka es saku dot slīpsvītru,
ja dot līdzekļi iedziļināties pašreizējā mapē, kur jums
ir, un tad palaist programmu sauc sveiki un, protams, tagad,
Man ir Sveika pasaule.
Visas tiesības, jebkuras darbplūsmā jautājumi vai sintakse
ko mēs tikko izdarījām?
>> Visiem labi, tāpēc pieņemsim lietas izveido iecirtums atkal.
Tātad tas bija underwhelming tikai uzrakstīt programmu, kas tikai
kādreiz saka sveiki, pasaule.
Tātad mēs mainīts tā, pirmdien, proti, sveiki, Deivids.
Tas nedaudz vairāk personīgo, bet tikpat grūti kodē kā
pirmā versija.
Tāpēc ne viss, kas pārliecinoši.
Bet pastāv, C, funkcijas noteikti papildus
drukāt, funkcijas, kas ļauj jums lietotāja ievadi.
Un kā mēs to darījām, citu dienu, bija šāds.
Pirms es tiešām izdrukāt kaut ko, es pirmo got
kaut kas no lietotāja.
Tāpēc ļaujiet man darīt atkal.
>> String s, kur s ir tikai patvaļīgi vārdu, šeit, lai
stīgu, vienāds GetString.
Tātad, kāds bija GetString?
Tas acīmredzami kļūst virkni, pamatojoties uz tās nosaukuma.
Bet kas tas ir, vairāk tehniski?
Tas ir funkcija.
Tātad, tas ir funkcija, kas nenāk ar C per se.
CS50 darbinieki rakstīja šo.
Un tāpēc, lai izmantotu šo, jūs varat ne tikai ietver stdio.h,
Jūs arī ir nepieciešama, lai iekļautu ko?
Yeah.
Tātad cs50.h, kas ir tikai fails mēs rakstījām pirms dažiem gadiem.
Mēs uzstādītas uz ierīces jums līdzās
visas standarta failus.
Un tāpēc šajās pirmajās nedēļās klasē, mēs izmantosim
tas tikai, lai vienkāršotu procesu dara ļoti pamata
lietas kā iegūt lietotāja ievadi.
Jo, kā mēs redzēsim pēc pāris nedēļām, kļūst lietotāja ievade
valoda, piemēram, C ir faktiski pārsteidzoši sarežģīts,
īpaši tāpēc, ka jūs nezināt iepriekš, parasti, cik
daudz sīkumi lietotājs gatavojas rakstīt iekšā
Un, kad jūs nezināt, cik daudz datu, lai gaidīt, jums nav
zināt, cik daudz atmiņas piešķirt.
Un, ja jūs faktiski ir sacīkstes lietotājs, kurš mēģina
kapāt jūsu sistēmā, crash datoru, labi,
Parasti pirmā metode uzbrukums ir, tāpat kā es bija par
Pirmdien, ierakstiet veselu garu secību izlases rakstzīmes,
hit Enter, un redzēt, kas saplīst.
Jo parasti, ja programma pārtraukumiem, kas norāda uz
drošības plaisāt, potenciāli.
Tas, protams, norāda uz jums, programmētājs, kas izdarījusi
kļūda, bet vairāk bīstami, Jums varētu būt veikti
drošību saistītas kļūda, un parasti mēs redzam, ka
tas ir kā mašīnas ir apdraudēta līdz šai dienai, gan
pasaulē interneta un programmas, tajā
komandrindas, kā šis.
>> Labi.
Tātad stīgu s vienāds GetString.
Tātad vēl konkrētāk tagad, kādi līnija 6 darīt šeit?
Tātad par tiesībām funkcija kļūst virkni,
ņem cik argumenti?
Labi.
Tā nav.
Mazliet veselība pārbaudītu.
Arguments, atkal, ir tikai ievadi līdz funkcijai, mainīt
tās noklusējuma uzvedību kaut kādā veidā.
Bet šajā gadījumā, es nevēlos mainīt
uzvedību GetString.
Es tikai gribēju, lai iegūtu virkni.
Tāpēc man nekas iekavās, un tad man
semikols demarking beigām līnijas kodu.
Tagad, vienādības zīme nenozīmē vienāds, par sevi.
Tas nozīmē uzdevumu, kas nozīmē īstenot neatkarīgi izpaužas
izvadīt uz labo iekšpusē kāds ir pa kreisi.
>> Tā pa kreisi, mēs sakām, ka mēs esam deklarēti
stīgu sauc s.
Un konkrētāk, mēs esam piešķirti atmiņas iekšpusē
ko mēs likts biti, kas pārstāv secību
rakstzīmes.
Bet šodien, mēs esam piešķirti
vai deklarētā virkni.
Labi.
Tāpēc tagad, kad es esmu darījis, es gribu, lai kontaktdakšu vērtībā
s, nevis vērtību Dāvida.
Tātad tas ir nepareizi, kāpēc?
Tātad tas ir tikai burtiski iekodēts s.
Tas ir teikt "sveiki, s", kas ir tas, ko es gribu.
Lai es varētu darīt.
Procentu zīme ir vietturis, bet tagad man ir nepieciešams, lai
nokļūst drukāt otro argumentu.
Atgādināt, ka argumenti funkcijas ir atdalītas ar
komatus, tāpēc nākamais komatu šeit man pēc šī vēstule s.
Un šajā sakarā tagad, s ir mainīgs, un printf,
Saņemot šos divas ieejas -
stīgu pa kreisi un mainīgā nosaukums ir uz pareizā -
tas novērsīs to par bijušo par mums, un
vienkārši izdrukāt skaistu skaistu virkni, kas satur
neatkarīgi no tā, ka mēs drukāti collas
>> Tāpēc pieņemsim mēģināt šo.
Gatavojas iet uz priekšu un tālināt, muguras
uz manu termināļa loga.
Tuvinātu apakšā šeit.
Atkārtojiet padarīt sveiki.
Šķindoņa, šķiet, ir atkārto.
Es esmu gatavojas rakstīt / sveiki, Enter..
Nekas, šķiet, notiek vēl, bet tas ir pie šīs uzvednes
ka es varētu rakstīt kaut ko līdzīgu Nate, Enter, un tagad mums ir
Sveiki, Nate.
Un es varu darīt to atkal ar Rob, un tā tālāk.
Tāpēc cerams, tagad šī programma ir uzvedas kā es plānoju.
>> Tagad, ne viss, kas lietotājam draudzīgi.
Man nav ne jausmas to, kas tiek gaidīts no manis.
Tātad, mēs noteikti varam tīrīt tas pat mazliet.
Ļaujiet man atgriezties šeit, un nevis tikai niršanu un
lūdzot lietotājam par virkni, ļaujiet man skaidri pateikt
lietotājs, ko es esmu gaidījis.
Tātad printf ("Ievadiet virkni:"
);
Līdz ar to nav mainīgie šeit.
Nav procenti pazīmes.
Tikai vienkārši angļu frāze.
Ļaujiet man tagad iet uz leju šeit un atkārto savu programmu.
Bet nekas, šķiet, ir mainījusies.
Kāpēc?
Man ir recompile to.
Tik viegli kļūda izteikt.
Bet jums ir ne tikai saglabāt failu, bet
recompile programmu.
Un tāpēc, ja es atkal palaist padarīt sveiki, tagad šķindēt iet.
Tagad es varu palaist / sveiki.. Un tagad es redzu "Ievadiet virkni:".
Labi.
Tagad tas ir nedaudz vairāk lietotājam draudzīgu.
Nate, Enter, sveiki, Nate.
>> Nu, pieņemsim, mēģiniet vēlreiz un sākt domāt
par stūra gadījumos.
Tik tāpat kā nulles, jūs esat aicināti, vai tiek
jāveicina spec lai veida domāt par to, kas varētu iet
nepareizi, ja jums nav paredzēt visu, lietotājs varētu darīt.
Bugs, tāpēc var rasties.
Tātad, ievadiet virkni -
kas ir stūrī gadījums?
Kas scenārijs, ka es, programmētājs, varētu būt
Paredzams?
Yeah.
Labi.
Tātad, ko darīt, ja es rakstīt vairākos kā šī?
Labi.
Tāpēc tas joprojām darbojas.
Gramatically nav jēgas.
Bet vismaz programma darbojas.
>> Kas cits stūra gadījumā?
Kaut ko es negaidīju.
Yeah?
Labi.
Lai mēs varētu darīt kaut kas līdzīgs tiešām, tiešām liels skaits.
Tāpēc pieņemsim darīt šeit.
Ļaujiet man zoom out uz otru, ļaujiet man uzsvērt.
Nevar kopēt un ielīmēt leju šeit.
Labi.
Tāpēc es nevaru kopēt un ielīmēt šo termināļa logā, tāpēc mēs
tikai simulēt to.
Ļaujiet man zoom out, dodoties uz wrap.
Es neesmu gatavojas darīt pārāk ilgi, jo tas nav
faktiski pauze šajā programmā.
Bet tas varētu notikt.
Enter.
Bet tā nav.
Labi.
Bet tas ir patiess stūra gadījums.
Un vienīgais iemesls, ka uzvedās pareizi, tāpēc, lai
runā, ir tāpēc CS50 funkcija GetString ir faktiski
izstrādāta zem motora pārsega, kā mēs redzēsim pēc pāris nedēļām,
lai automātiski piešķirt vairāk un vairāk RAM, vairāk un vairāk
atmiņu no operētājsistēmas, kad tas saprot, wow,
Jūs esat tiešām ievadījis kaut diezgan ilgi.
Tagad tas ir mazliet balta meli.
Ja mēs patiešām apstājās diezgan brītiņa un es ierakstījāt
kaut kā 5000000000 zīmēm pie tastatūras
šeit, vai tiešām hit copy-paste diezgan daudz, mēs ļoti iespējams
varētu izraisīt programmas avāriju.
Tikai nedaudz grūtāk simulēt, ka ar ierobežotu
daudz laika.
>> Kas cits stūris gadījumā mēs varētu mēģināt?
Yeah?
Yeah.
Tātad, kāpēc nav mēs atbildēt neko?
Tāpēc mums tiešām ir veikt kādu darbību, jo pretējā
Programma gatavojas sēdēt tur mirgo visu dienu.
Bet, ja es tikai hit Enter -
Labi, tagad, joprojām izskatās nepareizi.
Nav crash, bet varbūt tur tagad iespēja
sākt īstenot stingrāku programmu
kas faktiski pārbauda.
Un, ja virkne, teikumu, vārdu, kas man
drukāti ir garums 0, labi, varbūt man vajadzētu kliegt
lietotājs, vai viņam vai viņai ievadīt virkni atkal, lai
mēs faktiski iegūtu to, ko izskatās pareizu uzvedību un nav
tikko pabeigta uzraudzība no manas puses.
>> Jautājums muguras?
Decimāls skaitlis.
Lai mēs varētu mēģināt, ka pārāk.
1,10000005.
Šķiet, piemēram, kas notiek, lai tikai darbs faktiski labi.
Un tas tiešām ir gaidāms.
Pat ja mēs varētu būt drukāti, ka vairāki tur, vai
lielāks skaits agrāk, saprotam, ka tad, kad mēs esam rakstīt lietotājam
ieejas un mēs esam izmantojot GetString funkciju, nav
svarīgi, ja tas, ko es esmu mašīnrakstīšanu izskatās numuru.
Atgādināt, ka saskaņā ar ASCII, viss par savu
tastatūrai ir skaitliskā vērtība, kas var nodibināt
raksturs, char.
Tātad šajā gadījumā, pat ja es varētu ierakstīt numuru,
dators gatavojas domāt par to, tā teikt, kā virkne -
kaut kas izskatās kā numuru, bet ir
faktiski nav skaitlis.
Bet tas tiešām ideāls segue, jo tagad mēs varam
tiešām pāreja uz rakstiski programmām, kas
izmantot citus datu veidus.
>> Tātad papildus izmantojot chars, vai drīzāk, papildus izmantojot virknes,
saprotam, ka mums ir citi datu tipus C, kā arī
citas valodas.
Palija, kā norāda nosaukums, ir tikai viena rakstzīme.
Pludiņš ir peldošā punkta vērtība, un tas ir tikai iedomātā
veids, kā pateikt īstu numuru - kaut kas ir decimālzīmi
punkts tajā ar dažiem skaitļiem uz kreisās un / vai pa labi.
Int ir skaitlis, kas ir tikai skaitlis, piemēram, 123.
Un tagad vēl interesantāk ir lietas, piemēram dubultā.
Ko mēs sakām dubultā bija pēdējā reize?
Tas ir 64, labi.
Tāpēc tā parasti pludiņš ir 32-bitu -
tāpēc šo ilgi atmiņā, tā izmanto 32 nullēm un tiem, kas
simbolizē vērtības - dubultā ir burtiski divreiz, ka, kurā
nozīmē, ka jūs varat vai nu pārstāvēt lielāku skaitu, vai
Jūs varat pārstāvēt precīzākus skaitļus.
Tātad jūs varat būt vairāk numurus aiz komata, bet
kā puisis teica video, pat kaut ko vienkāršu
konceptuāli līdzīgi 1/3 nevar pārstāvēt precīzi ar
dators, jo galu galā jūs darbināt no bitiem, un
Tāpēc jūs varat darīt tikai .33333333 tik daudzas reizes, pie
kurā brīdī tu vienkārši ir pateikt es esmu no pārstāvības
telpa, man ir tikai sauc to dienu un pārstāvēt to
nedaudz neprecīzi tāpat.
Un ilgi ilgi -
stulba vārdu, bet tas ir tāpēc, ka tur ir datu tips pazīstams kā
ilgi C, kas nejauši bieži 32 biti, tāpat kā
int ir 32 biti, bet ilgi ilgi ir
parasti 64 biti.
Tāpēc tas tikai nozīmē, ka jūs varat pārstāvēt lielāks
skaitļi nekā šis.
>> Labi.
Tātad, ja mēs patiešām vēlamies sākt pārstāv lietas, mēs
var būt nepieciešams vairāk sarežģītas veidus, un
tāpēc mums ir virkne.
Tātad CS50 bibliotēkā, ka failu sauc cs50.h, mēs esam
faktiski paziņoja datu tips, tā sakot, sauc stīgu,
bet virkne nav reāli nepastāv.
Tas ir, atkal viens no šiem slāņiem, mēs ejam, lai mizu
atpakaļ pēc nedēļas vai divām, un mest to prom, un faktiski
izskatās zem pārsega pie kāda virkne patiesībā ir, un
cik tas ir pārstāvēta.
Mēs arī gatavojamies apskatīt Boolean vērtības.
>> Tātad, kāds bija saistībā ar nulles bool?
Tas ir patiess vai nepatiess.
Tātad tas ir tikai vērtība, kas ir patiess vai nepatiess, vai izslēgt, 1 vai
0, tomēr jūs vēlaties apskatīt pasauli.
Tātad C, pateicoties CS50 bibliotēkā, kas savukārt
ietver citu bibliotēku zem motora pārsega, mums ir
piekļuvi datu tipu, kas sauc bool, kas būs
burtiski ļauj piešķirt vērtības patiess vai nepatiess, lai
lietas programmā.
>> Tāpēc iesim uz priekšu šeit un uzrakstīt maz programmu, kas
kaut ko dara, iesaistot numurus vietā.
Tāpēc ļaujiet man iet atpakaļ uz CS50 Appliance, ļaujiet man iet uz priekšu un
izveidot jaunu failu šeit sauc -
pieņemsim tikai teikt kaut ko vienkāršu, piemēram math.c.
Labi.
Un tagad iet uz augšu uz augšu manā programmā, es esmu
gatavojas darīt parasti -
# Ietvert , lai es varētu izmantot
printf, int galvenais (spēkā neesošs) -
mēs būsim atpakaļ, beidzot, ko int nozīmē
šeit, kāda spēkā neesošu nozīmē šeit, bet tagad, tikai zinu, ka
Jums ir jāsāk šādas programmas.
Tagad es esmu gatavojas iet uz priekšu un teikt kaut nedaudz
atšķirīgs - printf ("Dodiet man numurs:"
).
Tad es esmu gatavojas darīt int n = GetInt, jo tā
Izrādās GetInt ir cita funkcija CS50 bibliotēkā
turklāt GetString.
Un tagad es esmu gatavojas darīt kaut ko muļķīgu, piemēram, "pateicoties
par% d ", lai decimal skaitlim, un tad komats N, un
tad atgriezties 0.
Tātad vēlreiz, atgriezties 0 nav nekāda sakara ar numuru es esmu
lūdzot lietotājam par.
Tikai nozīmē beigās tas viss, iespējams, ir labi.
>> Tāpēc ļaujiet man iet uz leju, lai manu termināļa logu šeit.
Ļaujiet man rakstīt darīt math, ievadiet.
Un kaut kas ir nepareizi.
Padarīt matemātikas nestrādāja.
Lūk mūsu kļūdu ziņojumus pirmās.
Kāpēc?
Mazliet noslēpumains, bet -
Yeah.
Tātad cs50.h.
Tātad vēlreiz, it īpaši agri, jūs rakstīt savu pirmo
Programma 1 PSET sadaļās, jo darba laika, un
godīgi sakot, tas būs milzīgs dažreiz, ko šīs lietas
patiesībā sakot.
Bet tu sapratīsi ļoti ātri viņi sāk samazināties
spaiņos kuru tas viens nozīmē, ka jūs esat atstājuši off viens
no # ietver augšpusē faila.
Un šķindēt, kompilators, ir informēt Jūs par to, ko
sakot, drīzāk fancifully, netieši deklarācija
funkcija GetInt ir nederīgs.
>> Labi.
Tātad, ko tas nozīmē?
Tas tikai nozīmē, ka jūs esat netieši paziņoja GetInt jo
sajūta, ka jums nav skaidri deklarēti to.
Skaidri deklarēt int, jums ir mācīt
Šķindoņa, ka tā pastāv.
Un ļoti vienkāršs risinājums, kas ir iemācīt to, ko
ieskaitot šo citu failu, cs50.h, pie
top jūsu failu.
Jo burtiski, ko # ietvert tas ir tā stāsta šķindēt
diezgan daudz, lai iet atrast failu ar nosaukumu cs50.h, kopēt,
ielīmējiet to automātiski uz augšu no manas programmas par mani,
un tad konvertēt avota kodu, lai nullēm un uzņēmumiem.
Bet tas acīmredzami būtu ļoti garlaicīgs, ja mēs, cilvēki bija
iet kopēšanu un ielīmēšanu šos liels failus visu laiku,
tāpēc # ietvert tikai dara visu, kas automātiski, bez
muddying savu kodu ar kādu citu bibliotēku.
Un bibliotēka ir tikai vēl viens fails satur funkcijas un
citas lietas, ka kāds cits ir rakstījis, ka mēs esam
piesaistot mūsu pašu dēļ.
>> Labi.
Mēģināsim vēlreiz.
Padarīt math.
Enter.
Labi.
Tāpēc, ka, šķiet, ir strādājuši.
Tāpēc ļaujiet man tagad palaist math;. / Math.
Ievadiet dod man numuru, 123.
Paldies par 123.
Tagad mēģiniet vēl stūra lietu.
Stīgu ir diezgan dāsna, jo
virkne var būt jebkas.
Var izskatīties skaitļiem, izskatās
rakstzīmes, izskatās vārdiem.
Bet int ir int.
Tāpēc tagad, ja es esmu grūti lietotājam, un tas ir saprotams: "Dod man
numurs, "Ko darīt, ja es mēģinātu kaut ko darīt, piemēram, 0,1?
Nu, tas ir skaitlis, un tas saskan ar
gramatika es šeit, bet zem motora pārsega, es esmu par
Kurss izmantojot funkciju GetInt.
>> Tātad, pieņemsim redzēt, kas notiek.
Enter, retry.
Labi.
Ļaujiet man būt grūti un tikai hit Enter vēlreiz.
Enter, Enter.
Tāpēc tagad šķiet, ka GetInt ir nedaudz vairāk
spēcīgu nekā GetString.
Mēs, darbinieki, īsteno tādā veidā, ka, ja mēs pamanām
Jums nav dota mums int - un int ir decimāls skaitlis
satur nullēm, tie,, twos, pa trim, četrām kājām, Fives, sixes,
Sevens, eights, vai nines.
Un tas arī viss.
Nav komati, ne zīmes, ne pieturzīmes.
Šķiet, ka mums ir jāsadarbojas.
Tāpēc ļaujiet man mēģināt četri, pieci, seši, un kas izpaužas mani cauri.
Tik tiešām, lai anālais šeit, es droši vien teikt: "Dod man
vesels ", lai sniegtu lietotājam
tieši tas, ko es plānoju.
>> Tagad domāju par zem motora pārsega.
Mēs nebrauksim, lai apskatīt kā cs50.h tiek īstenota šodien,
ka bibliotēka.
Bet, ja tas tur sakot retry, retry, retry, ko programmēšanas
būvēt man jādomā, izmantojot zem pārsega līdz
īstenotu šo?
Tik vienkārši cilpa, vai ne?
Viens no vienkāršākajiem idejām, mēs redzējām nulles.
Forever būvēt, Atkārtot būvēt.
Jādomā, šajā programmā, zem motora pārsega, pat
lai gan tas ir rakstīts C un nevar saskrāpēt, tā dara
kaut ko sauc līdzvērtīgs ar visiem laikiem, ja lietotājs nav
drukāti veselam skaitlim, teiksim retry, retry, retry, retry, tāpēc
tad beidzot, kad mēs saņemam skaitlim, tad jūs
izkļūt no ka cilpas.
>> Tātad, ko citas funkcijas mēs varam izmantot šeit CS50 bibliotēkā?
Nu, veida acīmredzamas tiem, vismaz pamatojoties uz
datu tipi, ka mēs tagad zinām pastāv.
Mēs īsteno GetString, GetInt, bet visā
Pirmo nedēļu termiņu, jūs varat arī izmantot GetFloat un
GetDouble un GetLongLong lai saņemtu precīzi
datu tipu, ko vēlaties.
Jo galvenais detaļa šeit ir tas, ka atšķirībā no dažiem valodās,
piemēram Python un Ruby, kur jums nav obligāti
atzīt datu tipu mainīgo -
Jums nav pateikt datoram, kāda veida sīkumi
jūs gatavojas nodot mainīgais -
C, jums ir jābūt kādreiz tik precīzi.
Tātad, ja jūs vēlaties mainīgo sauc n, rieciens uzglabāšanas
ka šajā gadījumā notiek, ir 32 bitu pēc vienošanās, jums
ir pateikt datoram, ka šie biti ir
gatavojas glabāt vairākus -
nav raksturs, nevis virkne, nevis peldēt.
Un tas pievēršas jautājumam mēs efektīvi
uzbrauca pagājušajā nedēļā.
Ja mēs izmantojam nullēm un tiem numurus pārstāvēt ne tikai
skaitļi, bet kā un Bs un Cs, cik pasaulē ir
dators gatavojas zināt, ka šis raksts bitiem faktiski
pārstāv numuru 65, pretstatā pārstāv
vēstule, kurā nejauši, saskaņā ar
ASCII, atceraties, bija līdzvērtīgs līdz 65?
>> Tātad šie datu tipi nodrošinātu kontekstu ar datoru, tāpēc
ka tas zina, ja šie biti būtu jāinterpretē kā
int vai kā virkni.
Kādi jautājumi, tad, par šo?
Yeah?
David J. Malan: Labs jautājums.
Ja mēs ņemtu ārā stdio.h, mēs saglabājiet failu -
ļaujiet man iet uz leju, lai termināla logu un palaist padarīt matemātikas, zoom
un ievadiet -
tagad man citu kļūdas, jo es esmu netieši
paziņojot, kādu funkciju tagad?
Printf.
Tāpēc tagad es esmu izveidojis jaunu problēmu, kuras risinājums ir
būtībā tas pats.
Man vajag, lai, ka atpakaļ.
Mērķauditorija: [dzirdams]
David J. Malan: Ak.
Tātad, ja es izņemt -
Labi, jā.
Tātad, ja es noņemt standarta I / O bibliotēka iekļaušanu augšu
šeit, un tad tu saki, ja es varu atbrīvoties no printf, get
Atbrīvoties no printf?
Jā.
Tam vajadzētu strādāt, jo es esmu vairs izmantojot jebkuru - whoops.
Vai es tikai gulēt?
Ak, labi.
Tas nav darbs, jo jaunas kļūdas mēs vienkārši ieviests.
Un šī ir nedaudz vairāk pašsaprotams.
>> Kāda ir problēma?
Neizmantotās mainīgās n.
Tātad šī kļūda ir rezultāts mūsu kam konfigurēts
Ierīce ir īpaši pedantiska, lai patiešām bļaut
Jūs par katru iespējamo kļūdu, pat ja tas ir sava veida
nav liktenīga kļūda, piemēram, tas - tas tiešām tāds liels
Nodarbojamies ka es piešķirti int, nodot vairākus tajā, un pēc tam
vienkārši nebija nekas ar to?
Tātad funkcionāli, nē.
Tas nav gatavojas lauzt programmu.
Tā ir tikai sava veida stulba, vai ne?
Nav vērtību, kas lūdza šo numuru, uzglabā
tas ir mainīgs, ja jūs nekad gatavojas darīt kaut ko
ar to, vai izdrukāt vai saglabāt.
Tātad šajā gadījumā, šķindēt ir atzīstot tik daudz, un
tas ir saprotams neizmantotās mainīgus n.
>> Lai mēs varētu noteikt, ja mēs patiešām vēlamies.
Bet atkal, tas nav labas plānošanas tagad.
Lai es varētu vienkārši darīt -
iet uz leju šeit, ļaujiet man notīrītu ekrānu, veikt math.
Kas darbojas.
Tagad es varu palaist manu math programma, ņem ievadi -
labi, ka bija slikti.
Stājas ievadi, un tas ir viss tas, kas šajā gadījumā.
>> Tātad faktiski, pamēģināsim vēl vienu stūra lieta, ka mēs
nedomāja par agrāk.
Šajā gadījumā - šeit, iesim atpakaļ uz vienu, kas ir
nedaudz vairāk lietotājam draudzīgu.
Ļaujiet man atgriezties šeit un palaist padarīt math vēlreiz.
Whoops, ko es daru nepareizi?
Got, lai roll atpakaļ tālāk.
Labi.
Tagad mēs esam atpakaļ sākotnējā stāvoklī, ja visi
cerams labi.
Un tagad, ja man palaist math, 123, šķiet, darbojas.
Bet tas nav īsti efektīvs pierādījums, lai vienkārši pateikt
labi, ka strādā.
789, kas darbojas.
Laiks iesniegt.
Jo tur ir citi stūra lietas šeit.
Stīgu nav īsti dot mums daudz problēmu, ierakstot
Visai daudz rakstzīmes.
Bet ja es rakstīt šo?
Hitting numuru 1 visai daudz, visai daudz šeit -
labi, tas kļūst mazliet garlaicīgi, tāpēc es esmu gatavojas
apstāties šeit, un es esmu gatavojas hit Enter.
>> Kāda velna tikko notika?
Tātad tas faktiski var izskaidrot.
Tāpēc tas veic to kā bināro?
Laba doma, bet nē, tas nav fakts, ka tas bija to
par bināru, jo patiesi, tas bija tikai veida
nejaušība.
Mēs varam darīt atkal.
Tāpēc tur nav bināro sistēmu 2, kas ir
iespējams pietiekami anyway.
Enter.
Tā, ka nav problēmu.
Kas vēl?
Tieši tā.
>> Tāpēc domāju, ka atpakaļ uz to int patiesībā ir.
Tas ir 32 biti, kas kopā ir interpretējami
kā skaitlis.
Ja jums ir 32 bitus, tas nozīmē, ka katrs no bitiem var būt
0 vai 1, 0 vai 1.
Tātad tas nozīmē, ka ir divas iespējas šajā bit,
divas iespējas šo, divas iespējas šo
bitu - tā ka ir 2 reizes 2 reizes -
tā ka ir 2 no 32 jauda ir kopējais skaits
permutācijas nullēm un tiem, ja jums ir 32
vietturi, nullēm vai tiem, kas pie jums.
Tātad, ja man ir 2 līdz 32, matemātiski, kas ir, ko?
Tātad, tas ir daudz.
Tas ir 4 miljardus, sniegt vai pieņemt.
Un 4000000000 nešķiet būt kāda bija izdrukāt šeit.
Faktiski, tas izskatās tuvāk 2 miljardus.
Bet tas nav nejaušība.
Fakts, ka dators ir nepareizi interpretējusi manu milzīgu skaitu,
mans milzīgs secība tiem, un tad mans milzīgs secība pāriem,
as aptuveni 2 miljardus, ir paskaidrots, kā?
Tur uz int vāciņu.
Tur noteikti maksimālā vērtība, kas var pārstāvēt.
Bet tas parasti 4 miljardus, labi?
Ja 2-32 ar ir aptuveni 4 miljardus, kas šķiet
tas lielākais skaits.
Tāpēc nav atlikusī, bet laba doma.
Negatīvi skaitļi.
Tātad, ja jums ir 4000000000 iespējamo lietas jūs varat
pārstāvēt šo dažādo permutācijas 32 0S un
1s, labi, tas saprotams, ka mēs cilvēkiem varētu vēlēties
pārstāv ne tikai pozitīvi veseli skaitļi
bet negatīvi skaitļu.
Un tiešām, tas ir pieņēmums, ka C padara.
Tātad ar 32 bitiem, jūs varat pārstāvēt aptuveni negatīvs 2
miljardus visu ceļu līdz pozitīvu 2 miljardiem.
Un tāpēc šajā gadījumā, tas, ko mēs patiešām redzam, ir tikai
kapacitātes mūsu skaitlim bārkstis, un mums ir, lai
runāt, pārplūda skaitlim.
Mēs esam mēģinājuši piestūķēt vairāk bitu tajā nekā patiesībā var fit.
Tāpēc gala rezultāts ir mums būtībā ir visi 1 biti.
Mēs esam Pagriezts visiem mūsu biti, mēs esam mēģinājuši pārstāvēt
Visvairāk iespējams, bet tas ir skaidri nav gandrīz
pietiekami lielas, lai pārstāvētu divas lietas es esmu tikko drukāti collas
Yeah?
Mērķauditorija: [dzirdams]
>> David J. Malan: Labs jautājums.
Kāpēc mēs nevaram vienkārši apliecināt, ka negatīvā
parakstīt kā tikko raksturs?
Tātad mēs absolūti varētu, un mēs tad varētu ietaupīt
papildu mazliet.
Bet jūs joprojām nāksies pārstāvēt šo domuzīme, un
kas notiek uz izmaksu jums vismaz kaut ko,
domājams mazliet.
Tātad, jā, mēs varētu būt 32 bitus izmanto mūsu numuru, bet tagad
nepieciešams vēl viens mazliet izmanto mūsu svītra
simbols, mīnus zīmi.
Tāpēc tagad mums ir 33 bitu vērtības, ko mēs varētu darīt, bet tas ir
tikai ne veids, kā tas tiek darīts.
Mēs veicām spriedumu zvans gadiem, 32 biti ir sava veida
mērvienība šeit.
Tāpēc mēs esam gatavojas izmantot vienu no šiem bitiem efektīvi
pārstāvēt negatīvisma, un 31 biti pārstāvēt numuru.
Citi jautājumi?
Labi.
Tas ir daudz.
Kāpēc ne mēs ejam uz priekšu un veikt mūsu piecu minūšu pārtraukumu šeit?
>> Labi.
Tātad vēlreiz, nevis pārvērtēt matemātisko pieteikumus
plānošanas, pieņemsim tikai nošķīt šo vienu piemēru
Pirms mēs pāriet uz citām konstrukcijām, tikai tāpēc, ka tas
ilustrētu dažas kopīgas klupšanas punktus par dažiem
pamati kad runa ir rakstiski programmām.
Šajā gadījumā, darot aritmētiskas izteiksmes, ka ir dažas
Interesanti saistība ar sintaksi.
>> Tātad tas ir tikai formula, ar kuru mēs varam pārvērst
temperatūras no Fārenheita uz Celsija.
Ja jums nav atcerēties, tas ir tikai formulu.
Tātad, ja mēs plug Fārenheita vērtībā 32 grādiem, kas ir
iesaldēšanu, kas notiek, lai ir 32 mīnus 32 ir 0, un, protams,
0 Celsija ir arī iesaldēšanu.
Tik ātri veselība pārbaudīt tur - tas ir pazīstams formulas.
Ļaujiet man iet vairāk nekā uz ierīces, lai gan, un sākt
Rakstot programmu ar nosaukumu, piemēram, f2c; "Fārenheita līdz
Celsija dot c ".
Un augšā šeit, es esmu gatavojas sākt ar # ietvert
stdio.h, un es esmu gatavojas darīt int galvenais (spēkā neesošs), un
atkal, mēs būsim atpakaļ nākotnē, jo to, ko int nozīmē
tur un ko neesošu nozīmē tur.
Un tagad ļaujiet man iet uz priekšu un īstenot programmu, kas
būtībā tas par mums pārveidošana.
>> Tātad printf, teiksim, temperatūra Fārenheita.
Un tad ļaujiet man iet uz priekšu un iegūt vērtību no lietotāja.
Kādas vērtības būtu man no lietotāja, ja es gribu
viņiem man temperatūru Fārenheita?
Yeah?
Ko jūs ierosināt?
Yeah.
Tāpēc peldēt jūtas diezgan saprātīgi.
Mums ir, atkal, tikai dažas iespējas, kas
mēs esam redzējuši līdz šim.
Mums ir lietas, piemēram char, dubultā, peldēt, int, ilgi ilgi,
bool, stīgu.
Tātad no šiem, peldēt jūtas diezgan saprātīgi.
Mēs varētu izmantot dubultu, tiesības, jo, ja mēs patiešām vēlamies
pārstāvēt cilvēka s temperatūra -
98,60000 -
mēs varētu izmantot 64 bitus lai darīt, bet tā uzskata, tāpat
overkill temperatūru.
Tāpēc pieņemsim tikai iet ar pludiņu.
Tagad man vajag mainīgo.
Tikai, lai saglabātu lietas vienkārši, es esmu dodas uz zvanu tā f, bet es
varētu tāpat kā pareizi sauc to temperatūra,
bet nu ir labi.
Tāpēc peldēt f = GetFloat.
Tiklīdz es tagad esmu nolēmis izmantot GetFloat, lai gan, es
nepieciešams veikt vienu korekciju.
Yeah.
Tāpēc mums ir nepieciešams, lai # ietvert , citādi kompilators ir
gatavojas kliegt uz mums.
Tagad, ka man ir peldēt, ļaujiet man iet uz priekšu un darīt
konversijas.
>> Tātad, pirmkārt, ļaujiet man arī nokļūt ieradumos Šeit
Komentējot savu kodu.
Tātad vēlreiz, komentārs ir tikai atzīme uz cilvēka, kas ir
nav daļa no programmu per se, bet tā viena, palīdz jums
saprast, ko jūs nākamajā rītā, vai nākamo
mēnesi, tas palīdz jūsu mācīšanas kolēģis saprast, ko jūs
vai ko gribējāt darīt, tāpēc tas ir
parasti ir ļoti laba prakse.
Ik pēc pāris rindiņas kodu, rakstiet komentāru
pats vai jūsu kolēģis.
Tātad šeit, es esmu gatavojas teikt: "Lūdziet lietotājam par temperatūru."
Vai nav jābūt pilnu teikumu, tikai īsa frāze.
Bet aiz komentēšanas C ideja ir tāda, ka katrs no jūsu
komentāri būtu pilnvarot jums - vai, teiksim, TF vai kolēģis -
nosmelt savu programmu un precīzi zināt, ko tā dara, ko nevar
tik daudz lasot kodu, bet, lasot komentārus, kas
jābūt kodolīga un skaidri.
Visiem labi, tāpēc tagad ļaujiet man iet uz priekšu un saka, "Convert
Fārenheita uz Celsija. "Tāpēc es esmu gatavojas iet uz priekšu un darīt,
teiksim, peldēt c.
Mēs turpināsim Celsija kā peldošā punkta vērtības.
>> Un ļaujiet man veikt stab pie šī.
Formula ir, atkal, šeit.
Kā 5/9 reizes F mīnus 32.
Tāpēc pieņemsim darīt.
Tātad 5 dala ar 9, mīnus -
Whoops, es messed to jau.
Reizes.
Tātad 5/9 reizes F mīnus 32.
Tāpēc F mīnus 32, semikols.
Un tagad, šeit lejā, es esmu gatavojas iet uz priekšu
un teikt, drukāt rezultātu.
Un šī daļa ir viegli. Printf.
Kā es varu iet par drukāšanu šo?
Nu, es varētu teikt: "Tas Celsija skaits ir% f \ n",
tikai dažas estētiku.
Un tad kāda vērtība vēlos plug šeit kā printf s
Otrs arguments?
Labi.
Tik vienkārši c.
Tāpēc mēs sāksim ar šo un tad tikai atgriezties 0.
Atkal, tas nav nekāda sakara ar matemātiku.
Tas tikai nozīmē, viss ir labi.
>> Tagad, tas ir pareizi, šī programma?
Labi.
Tāpēc es esmu dažas kļūdas.
Pat ja jums nav ne jausmas, ko programmēšanas ir, jūs varat kārtot
gada secinu atpakaļ uz pakāpē skolā kāda
kļūdas šeit varētu būt.
Kas ir viens no pirmais?
Mērķauditorija: [dzirdams]
David J. Malan: Jā.
Tāpēc mēs esam trūkst iekavas.
Tas bija apzināts, ka es tomēr iekavas pamattonis
slaidu šeit, jo tur tiešām šī rīkojuma jēdziens
operāciju, vai priekšroka, kad atsevišķas darbības -
reizināšanu -
ir lielāks saistošs, ir augstāka prioritāte, nekā lietām
piemēram saskaitīšanas vai atņemšanas.
Tāpēc mēs esam darījuši šo gadiem tikai, lai būtu skaidrs, tieši
kāda matemātiskā darbība būtu jādara vispirms.
Tāpēc es būtu iespējams imitēt tieši to.
Pretējā gadījumā dators ir iespējams gatavojas, lai mēģinātu darīt
kaut kā pa 9 5 šķirtnes, reizinot F, tad atņemt
32 no visa lieta.
Kas nav, faktiski, ko mēs vēlamies darīt.
Tāpēc pieņemsim iestarpināt.
Pieņemsim pievienot savus iekavas šeit, iekavas šeit.
Paraudzīsimies nekā šeit.
Lūk, es tikko pamanīju Vēl viena kļūda, ko es izteicu pa ceļu.
Yeah?
Mērķauditorija: [dzirdams]
>> David J. Malan: Ah.
Labi.
Tātad mēs faktiski ir tāds pats skaitlim
sadalījums jautājums no iepriekš.
Es labot šo, pieņemsim redzēt, kas simptoms ir.
Bet mēs esam nāksies pareizs
cita kļūda šeit.
Yeah?
Mērķauditorija: [dzirdams]
David J. Malan: Jā.
Tātad, stulba kļūda es, bet neticami svarīgi.
Dators nav gatavojas tikai neredzam un ļaujiet
mani izmantot kapitāla F, kad es tiešām paziņoja mainīgo
kā mazie f šeit, 8 rindā.
Tāpēc man ir nepieciešams, lai labotu 11 rindas manā kapitalizāciju, kas
pirms brīža bija kapitāla F kļūdas.
Kas par šeit?
Ja tas ir mazie, kā arī?
Tā vajadzētu būt, bet tas ir sagadīšanās.
Ka% f nav nekāda sakara ar mainīgo.
Tik vienkārši jābūt super skaidrs šeit, ļaujiet man iet uz priekšu un
pārdēvēt šo, īsi, "temperatūru". Ļaujiet man pārdēvēt
šī "temperatūra." Ļaujiet man ne pārdēvēt šo.
Jo, atkal,% f globāli nozīmē, "peldošo punktu vērtība."
Nav nekāda sakara ar manu mainīgo.
Bet "temperatūra" visas vietas ir tikai nedaudz izplūdis,
tāpēc es esmu gatavojas doties atpakaļ uz manu mazo "f" s.
>> Tagad, ļaujiet man iet uz priekšu uz leju, lai mana loga šeit.
Make f2c -
kas bija, atkal, patvaļīgu vārdu es
deva uz šo failu.
Šķiet, ir apkopoti.
Ļaujiet man palaist f2c.
Enter.
Temperatūra Fārenheita - pieņemsim do viegls vienu.
32.
Labi, labot.
Bet, ja es tagad darīt 212 vārīšanai -
nopelt.
Labi.
Tātad, protams, nav pareizi, ja jūsu TF mēģina
vismaz divas vērtības.
Tātad, kāda ir problēma šeit?
Nu, jūs jau nodot savu pirkstu uz to, jautājums ir.
Bet kāpēc ir tā, ka lieta?
Šeit, kad es esmu dara par 5 math dalīts ar 9.
Tātad konceptuāli, ka ir pilnīgi pareizs.
Pilnīgi saskan ar formulu.
Bet datori tikai darīt tieši to, ko jūs
pastāstiet viņiem darīt.
Un ko mēs faktiski stāsta datoru šeit ir
sadalīt veselu 5 ar skaitlim 9
un man rezultātu.
Problēma ir, lai gan, ja jūs nodaļa, izmantojot datus
veidiem, produkcija ir pati datu tips kā izejvielas.
Un tāpēc, ja abi ieejas abi Ints, izeja notiek
būt int.
Un tā 5 dalīts ar 9 punktu kaut.
Bet kas ir tuvākais veselais norādīt kaut ko?
Tātad, tas ir faktiski 0.
Tā kā mēs apspriests pirmdien, viss aiz komata
punkts kļūst saīsināts.
Tas tikai izpaužas izmet prom.
Tātad tas ir pilnīgs kļūda, jo es varētu arī vienkārši
reizināt viss ar 0 šeit.
>> Tagad, es varu noteikt šo pāris veidos.
Es varētu darīt.
5,0 dalīts ar 9,0.
Tehniski, man nav pat nepieciešams, lai to izdarītu.
Tas ir pietiekami, lai tikai veikt vienu no numuriem pludiņa -
vai dubultā - liekot komatu šeit.
Jo kas notiek tagad, ir, ja jūs sadalīt skaitlim ar
peldēt, vai dubultā, dators notiek realizēt
ak, viens no tiem ir precīzāks.
Ļaujiet man grēkot uz pusi sniedzot jums lielāku precizitāti nekā
gribējāt.
Tātad tā būs pārvērst rezultātu -
tā atgriezīsies rezultātu kā peldošo punktu vērtības, kā arī.
Lai varētu strādāt.
Tas varētu strādāt.
Un tur ir viena cita mehānisms ka mēs redzam
sīkāk nākamajā nedēļā.
Jūs faktiski, kā programmētājs, pastāstīt datoru
faktiski ārstētu vienu datu veidu kā
lai gan tas bija cits.
>> Tāpēc es patiešām varētu darīt.
Iekavās, es varu teikt kaut ko līdzīgu (peldēt), atvērtu
paren, tuvu paren.
Un tas ir tas, ko sauc par "liešana." Atkal, vairāk
Šajā nākamajā nedēļā.
Bet tas ir tikai programmatiska veids, kā stāsta
dators, jā es zinu, 9 ir skaitlis, vai garš.
Es zinu, tas nav peldošo punktu vērtības.
Bet pret to kā tādu vienalga.
Tāpēc nodot datu tipu nozīmē, lai pārvērstu
no viena uz otru.
Atklāti sakot, tas ir tikai nedaudz neglīts, tāpēc es ierosinu mums iet
atpakaļ uz sākotnējo ieteikumu tikai konvertējot
šīs lietas peldošu punktu vērtības manuāli.
Jo tagad tas ir vienkārši super skaidrs, kas notiek, un
tas nav viss, kas novērš uzmanību.
>> Tāpēc pieņemsim tagad iet atpakaļ uz manu termināļa loga.
Padarīt f2c.
Ļaujiet man iet uz priekšu un palaist to.
Un, kā malā, jums garlaikoties rakstīt šīs komandas
atkal un atkal, saprotam, ka datori, piemēram, Linux šeit,
mēdz būt diezgan gudri.
Un, ja es hit up, mēs varam iet caur manu visu vēsturi
komandas, uz augšu un uz leju.
Tātad šajā gadījumā šeit, es varētu tikai iet uz augšu, lai palaistu veikt f2c.
Es esmu to kliedza uz, jo es vienkārši darīju, ka otrais atpakaļ.
Tas jau līdz šim.
Tāpēc tagad es varu palaist f2c vēlreiz.
Mēģināsim 32 pēc Fārenheita.
Tagad pamēģināsim 212 Fārenheita.
>> Phew.
Šķiet, darbojas.
Tagad tas ir labs, bet tā uzskata, nedaudz patvaļīgi, kas
Es esmu parādot sešiem cipariem aiz cipariem aiz komata.
Labi?
Ja jūs esat laika persona televīzijā, tu esi sava veida doofus
ja jūs lasāt šo temperatūru
šī precizitātes pakāpe.
Tāpēc pieņemsim vienkāršotu šo.
Tāpēc pieņemsim tiešām iet uz augšu šeit, lai mana printf.
Un jā, es gribu peldēt.
Bet es gribu, lai tagad norādīt precizitāti.
Un es esmu būs nedaudz īss.
Es esmu gatavojas teikt, dod man vienu punktu pēc decimāldaļas.
Tātad, nevis teikt% f, es esmu gatavojas teikt% .1 f.
Un tas nozīmē tikai dod man vienu pozīciju
aiz komata.
Labi.
Mēģināsim to atkal.
Ļaujiet man vēlreiz palaist to pēc sastādīšanas.
Un tagad es rakstīt 32, un es saņemt atpakaļ
vairāk kodolīgs vērtību.
Un es varu rakstīt, tagad, 212, un saņemt atpakaļ vairāk kodolīgu
vērtību, kā arī.
Un tur ir arī citas lietas, jūs varat darīt ar printf.
Jūs faktiski var norādīt, cik plaša skaitam vajadzētu būt.
Ja jūs vēlaties, lai būtu polsterējumu uz to, lai jūs varētu labo saskaņot vai
kreisā saskaņot visas jūsu numuriem vai
mēģiniet centra lietām.
Tātad saprotu, ka ir maz triku varat darīt tur.
Bet viņi tikai vārīties uz leju, lai formāta kodiem,
kā mums ir tur.
>> Tātad attiecībā uz šo jautājumu prioritārā.
Tas ir ļoti garlaicīgi tabula iet cauri metodiski.
Bet saprast, ka C autori ir jānāk klajā ar
kas nosaka, kas operatoriem ir augstāka
prioritāte, vēl saistošs spēks, nekā citi.
Tātad tā pakāpē skolā, mēs parasti zināja, ka tas bija
reizināšanu un dalīšanu, tad saskaitīšanu un atņemšanu,
tad daži citi sīkumi.
Jo pasaule plānošanu, tur daudz
garāks saraksts ar lietām.
Un tas nav kaut vērts iegaumēt tagad.
Jūs saņemsiet acclimated uz to pirms ilgi.
Bet, tāpat kā pakāpē skolā, iekavas parasti atrisināt
jautājumi par prioritātes, veicot super skaidrs
dators un cilvēka līdzīgi kāda ir paredzēta.
Tāpēc uzskatu šo tikai nedaudz apkrāptu lapas tur.
Bet lielākā daļa no šīs detaļas mums nav nokļūt uz kādu laiku.
>> Labi.
Tagad, pieņemsim veidot un virzīties prom no šiem dumjš maz
matemātiskās piemēri.
Joprojām izmanto tos pašus pamatus, bet sākt
izsakot sevi nedaudz vairāk kā nulles.
Tātad Scratch, mums bija šīs Būla izteiksmes.
Un angļu valodā, Būla izteiksme ir tas, ko?
Patiess vai nepatiess.
Tas ir kaut kas novērtēts ar patiess vai nepatiess.
1 vai 0.
Ieslēgt vai izslēgt.
Lai ko jūs vēlaties, lai izsauktu to.
Tagad Scratch, puzzle gabalus izskatījās.
Un tas ir kombinācija, apakšā tur, trīs
puzzle gabaliem.
Viens saiklis -
kaut kas ir tukša un tukša.
Un tad divas Būla izteiksmes iekšpusē no tā.
Tātad jūs var ligzdot Būla izteiksmes, lai iegūtu vairāk
sarežģīta Būla izteiksmes.
Piemēram, ja tā ir sestdiena, un tas ir jauki
laika, tad iet ārā.
Vai kaut patvaļīgs tāpat.
Tātad jūs varat pievienoties Būla izteiksmes nākt klajā ar
lielāka patiesība vērtība, kura atbilde ir balstīta
uz mazākiem uzņēmumiem.
>> Tagad, C, par laimi, tas kartēšana ir
tiešām diezgan vienkārši.
Iekavas palīdzēt padarīt lietas skaidri šeit.
&& Ir tas, ko nozīmē "un". Tātad tas, kā
mēs ejam, lai pārvērstu šos blokus no nulles uz C.
Un apstākļiem, mēs redzējām Scratch, uz kreisās rokas
pusē tur, es varētu kaudze tos Līdzīgi C. Ja x ir mazāks
nekā y, tad to izdarītu.
Cits ja x ir lielāks nekā y, tad to izdarītu.
Cits loģiski tām jābūt vienādam, tā teikt
ka viņi ir vienādi.
Tātad tagad mēs varam sākt veidot šīs lietas uz augšu.
>> Tātad, pieņemsim do piemērs.
Ļaujiet man atvērt failu, kas ir par kursu mājas lapā šī
Es uzrakstīju iepriekš.
Ka sauc nonswitch.c.
Un mēs redzēsim, kāpēc tikai brīdi.
Tāpēc šajā failā - nonswitch.c--
vispirms saprast, ka tur ir viss ķekars
komentāri augšpusē.
Tas ir vienkārši skaidrojot faila nosaukumu, ko tā
dara, un tā tālāk.
Un tas acīmredzot pierāda izmantošanu boolean un-ing -
conjoining divas izteiksmes.
>> Tātad, pieņemsim redzēt, kā šī programma darbojas.
Es arī manu divus failus, cs50.h un stdio.h.
Ja es ritiniet uz leju, tagad ar programmu, tas ir mazliet garāks
nekā mēs esam rakstīts iepriekš, bet diezgan lasāma.
Tāpēc es pirmo drukāt lietotājam, 18 līnijas,
"Dodiet man skaitlim no 1 līdz 10." Tā
tas ir labi tur.
Tagad man skaitlim.
Bet saprast, ka GetInt - diezgan vienkāršs.
Tas ir tikai gatavojas iegūt int.
Tas notiek, lai nodrošinātu, ka tā saņem int un nav
virkne vai peldēt.
Bet tas nav gatavojas darīt jebkura veida robežu pārbaudes.
Tas nav gatavojas filtrēt numurus, lai būtu starp
noteiktā diapazonā.
Tāpēc mums ir jāīsteno kas sevi.
Tik tāpat kā Scratch, kur es varētu darīt jāapvieno
divas izteiksmes, es varu darīt, ka C šādi.
Ja n ir lielāks vai vienāds ar 1, un n ir mazāks nekā, un
vai vienāda ar 3, es esmu gatavojas ļoti patvaļīgi dekrētu, kas
numurs tiktu neliels skaits.
Tikai dēļ uz paziņojumu.
Cits ja n ir starp 4 un 6, drukas "Tu palielinājies medijs
numurs. "cits, ja n ir no 7 līdz 10, druka" Tu noplūktiem
Liels skaits. "Vēl print" Jūs uzņemt nepareizu numuru. "
Jo loģiski, ka šāds ja mēs esam
izsmeltas mūsu klāstu.
>> Tātad saproti tas nav gluži kā mēs rakstīt lielāks vai
vienāds ar matemātikas klasē.
Labi?
Jūs parasti izdarīt to, kā šis, ar līniju zem tā.
Bet tur nav tādas taustiņu uz mana tastatūra.
Tāpēc simbols C paužot lielāks vai
vienāds ir divi varoņi, un mazāk nekā simbols
vai vienāds ar ir divi varoņi, kā arī.
Labi.
Tātad, ja man palaist šo programmu, jūs varat droši uzminēt, kas tas ir
gatavojas darīt.
Ja es iet uz priekšu un darīt nonswitch, Enter.
Un tad palaist nonswitch.
Dodiet man skaitli no 1 līdz 10.
Es esmu gatavojas sniegt tai 11.
Es paņēmu nederīgu numuru.
Ļaujiet man mēģināt numuru 3.
Es paņēmu nelielu skaitu.
Tātad diezgan vienkārši tur.
>> Ko darīt, ja es vēlos mainīt uzvedību šīs programmas un
darīt kaut nedaudz atšķiras vietā?
Ļaujiet man iet uz priekšu un pateikt.
Ļaujiet man atbrīvoties no visa šī.
Un ļaujiet man teikt, ja (n == 42).
Un tad es esmu gatavojas iet uz priekšu un saka print "Tu noplūktiem
pareizā atbilde. "Vēl mēs ejam, lai iet uz priekšu un saka,
printf ("Jūs noplūktiem
nepareiza atbilde "). Labi.
Tikai tāpēc.
>> Tagad, daži punkti, mēs varam darīt šeit.
Viens, man nav rakstīt simbolu, ka jūs domājat, ka ir
vissamērīgāko.
Kad es gribu, lai pārbaudītu vienlīdzību, izrādās nelietojat
vienādības zīmi.
Jūs tā vietā izmantot vienlīdzīgas vienādības zīmi.
Un kāpēc varētu būt, ka, tikai intuitīvi?
Yeah.
Mērķauditorija: [dzirdams]
David J. Malan: Pareiza.
Vienādības zīme jau tiek izmantots cesiju.
Kāds īsti domāju, ka tas cauri.
Un tāpēc tagad, kad runa ir par vienlīdzības testēšanu, mums ir
būtu skaidrāk, un teikt vienāds vienāds.
Ļoti izplatīta kļūda ir to darīt.
Un, ja darba laikā vai dažkārt nākamajā nedēļā vai
nākamo divu nedēļu laikā jūs kaut kas līdzīgs šim, un tad
cīnās ar to par 10, 20 minūtes mēģina izdomāt
ko nopelt kļūda ir, saprast, ka jūs esat viens no tiem,
cilvēki, kuri veikti šo kļūdu.
Tātad, super viegli izdarīt.
Bet mērķis tagad ir atvairīt šo kļūdu.
Tas varētu novērtēt, jo to, ko tas īsti saka?
Ja n izpaužas 42.
Tātad darbības vārdu cilvēki izmanto, mutiski, lai izteiktu
jēdziens norīkojuma ir "kļūst." Tātad, ja n izpaužas 42.
Tātad tas nozīmē, piešķirt 42 līdz n.
Tagad man ir Būla izteiksme iekavās,
iekšpusē šo nosacījumu, par kura vērtība ir 42.
Labi?
Jo, ja jūs vērtējat to no iekšpuses uz āru, kopējais
Atbilde, tagad ir 42.
>> Tātad, ja es tev jautājumu, "ja (42)," Kas ir
kas patiešām saka?
Nu, Būla izteiksmes var būt tikai patiess vai nepatiess.
1 vai 0.
Ieslēgt vai izslēgt.
Tāpēc mums šķiet, ir stūra gadījums, kad visi
pēkšņi, es saku "ja (42)". Tas nav Būla vērtība.
Tātad, ko datoru darīt, lai gan, ir tas būtībā ir pielīdzināma
kaut kas nav 0 ir interpretēts, lai būtu patiesība.
1.
Gada.
Viņi visi funkcionāli līdzvērtīgi.
Tikai vērtību 0, vai atslēgvārds nepatiess, jo mēs
beidzot redzēt, ir faktiski nepatiesa.
Tāpēc "ja (42)" faktiski būtu taisnība, jo tas ir ne-nulle.
Tātad, lai precīzāk šeit, Būla vērtība ir patiešām nav tik
patiess vai nepatiess, bet tas
gadījumā, ja ir 0 vai nav nulle.
Tāpēc nepatiesa vai ne nepatiess.
Un tas ļauj mums, lai aptvertu visus vēl
iespēja izmantot parenthetical izteiksmi.
Tāpēc mums ir nepieciešams, kādreiz tik uzmanīgi, teikt -
ja (n == 42).
Vienkārši tāpēc, ka mums ir nepieciešams, lai norādītu pārbaudi vienlīdzību,
nav cedēti vērtību.
>> Ko vēl ir vērts pieminēt šeit?
Šie cirtaini bikšturi ir faktiski nav nepieciešami.
Esmu bijis darot tos vienkārši būt gnīda-picky šeit.
Bet, ja Jums ir slimība, kas ir tikai vienu rindiņu
kods, kā ērtāk, programmētāji nav nepieciešams lietot
cirtaini bikšturi.
Pietiek tikai ievilkumu, estētisku iemeslu dēļ, un
tad uzrakstiet līniju kodu.
Tikai tad, kad jūs vēlaties rakstīt divas līnijas kodu - par
Piemēram, vēl printf ("Atā!"). Ja jūs vēlaties darīt
ka tas ir bojāts.
Jūs varat ievilkumu visu vēlaties, bet tas, ka jums ir
drukāti divas līnijas kodu, neizmantojot cirtaini bikšturi
nozīmē, ka šī programma nav darboties pareizi vai varētu
nav pat sastādīt pareizi.
Tātad tagad, ja godīgi, es domāju, ka labākais ieradums ir tikai
izmantot cirtaini bikšturi, un jūs atradīsiet, ka viņi dara
super skaidrs, kas notiek.
>> Tāpat, kā malā - it īpaši, ja jūs esat starp tiem, kas izmanto
ieteicamās grāmatas vai resursi online -
apzināties, ka tas ir par stilu jēdziens
programmēšana.
Un daži cilvēki tiešām gribētu likt cirtaini lencēm
nekā šeit uz līnijas.
Daži cilvēki izvēlas darīt smieklīgs lietas,
patīk viņus šeit.
Nav nepareizi atbilde, kad runa ir par
stilu, bet tas ir nepareizi.
Bet daži cilvēki to dara.
[Smiekli]
David J. Malan: Tātad es pieminēt to tagad, tikai tāpēc, kā
Jūs lasīt līdzi lietām grāmatas vai internetā, jūs gatavojas saņemt
dažādas ziņas no dažādiem skolotājiem un
dažādi autori.
Un tikai saprast, ka, funkcionāli, viņi
vispār līdzvērtīgs, bet jābūt konsekventiem.
Tātad šajā gadījumā mēs standartizēt uz cirtaini
Breketes uzliku šeit kreisajā pusē.
>> Labi.
Tāpēc iesim uz priekšu tagad un palaist šo, un redzēt, kas notiek
ar šo programmu.
Padarīt nonswitch.
Tad palaist nonswitch.
Dodiet man veselam skaitlim no 0 un - tā ka nav būtiska
vairs, bet es esmu tikai gatavojas patvaļīgi teikt 42.
Un es paņēmu pareizo atbildi.
Nu tagad, pieņemsim faktiski veikt šo citā virzienā.
Izrādās, ka ir daži citi sintakse mēs
var izmantot programmā.
Lūk jauns gabals sintakse, kas ir funkcionāli pats,
bet tikai ievieš citu veidu, kā izteikt sevi.
Tātad tas ir tas, ko sauc "slēdzis paziņojumu." Un
slēdzis paziņojums darbojas šādi.
Tas aizņem, iekavās vērtību, ko vēlaties
"Slēdzis" par.
Jūs vēlaties, lai uzvesties savādāk, pamatojoties uz tās vērtību.
Tātad tas nozīmē, slēdzi n vērtībai.
Un ko tas nozīmē?
Nu, ja n ir 1 vai 2 vai 3, iet uz priekšu un izdrukāt "You
palielinājies liels skaits ", tad pārtraukums.
Uz sabrukuma iemesls ir tas, ka ceļš C darbojas, ir kā
Tiklīdz tā konstatē gadījums, kas atbilst, tas sākas izpildes
Visi koda zem tā.
Tātad, ja man ir vienu rindiņu kodu, kā es to daru šeit 27 līnijas, tā
izpaužas izpildīts.
Ja es pievienot vēl vienu rindiņu šeit, tas izpaužas izpildīts.
Cita līnija šeit, tas izpaužas izpildīts.
Programma apstājas tikai izpildot to, kas ir zem
piemērojamas gadījumā paziņojumu, kad es skaidri
saka "pārtraukums". Tik nepareizi.
Tiesības, šajā gadījumā, kā rezultātā.
Lieta 4 vai 5 vai 6, līdzīgi, notiek
izdrukāt ziņu.
Šajā gadījumā, vidēja numuru.
Break.
Lieta 7, 8, 9, 10, tas notiek, lai izdrukātu "Tu noplūktiem liels
numurs "Break..
Un tad tur ir burtiski atslēgvārds sauc par "noklusējuma"
tas faktiski tāpat "cits" būvēt.
Tik jauns sintakse, bet intelektuāli,
neko jaunu šeit.
Tas ir tāpat kā nulles.
Ja cits, ja cits, ja, sava veida bloku.
>> Tā ka ir ieslēgts versija šīs programmas.
Bet paziņo, ka mēs to izdarījām ar skaitļiem šeit.
Ļaujiet man atvērt otru versiju, tikai lai parādītu
kaut nedaudz vairāk betona.
Tātad šeit mums ir atzīmes vietā.
Izrādās, jūs varat izmantot slēdžus ne tikai skaitļu, bet
rakstzīmes.
Ne visiem datu tipiem, bet vismaz par burtiem.
Tātad šeit mēs varētu darīt kaut ko, piemēram, ja vērtība C, kas
lietotājs drukāti, 19 līnija, izmantojot getchar funkciju,
ir kapitāls, vai mazie, pieņemsim to izprot pakāpē,
un saka, ka viņi paņēma lielisku pakāpē.
Un lejup pa slēdzi paziņojumu, mums ir cita
gadījumi "B" s un "C" s, un tā tālāk.
Bet pieņemsim tagad kārta viena cita lieta.
Un atkal, sava veida peld ar
daži no šiem piemēriem.
Bet tas tiešām tā, ka mēs varētu tos piemērot, tagad -
vai tiešām, vienkārši tulkot tos tagad -
uz C.
>> Tāpēc ļaujiet man iet uz priekšu un darīt to.
Es esmu gatavojas atvērt jaunu failu.
Un es esmu gatavojas darīt arī .
Un tad es esmu gatavojas darīt int galvenais (spēkā neesošs).
Ļaujiet man saglabāt šo failu kā loop.c.
Tāpat kā, piemēram.
Un es esmu gatavojas iet uz priekšu un darīt tālāk.
Es gribu uzrakstīt ļoti garlaicīgs programmu.
Tā 10.
Darīsim to.
9.
Labi.
Tiklīdz jūs sākat darīt to plānošanu, jūs esat
iespējams, dara kaut ko nepareizi.
Bet mēs sāksim tur anyway.
Hmm.
Tas ir tiešām nepareizi.
7.
6.
5.
4.
Nekas notiks, kad mēs līdz 0.
3.
2.
1.
Labi.
0.
Izdzēst.
>> Labi.
Tā atgriezties 0.
Tāpēc šī programma ir acīmredzami gatavojas darīt to, ko tā ir ļoti
tediously saka, ka tā gatavojas darīt.
Tas notiek, lai izdrukātu visus tos
vērtībām, no augšas uz leju.
Tāpēc ļaujiet man darīt darīt cilpa.
Un tad - whoops.
Padarīt cilpa.
Man bija nepareizā direktorijā.
Un tagad ļaujiet man palaist cilpa.
Enter.
Woohoo.
Ļoti jauki.
Jauki, sen programmu.
>> Labi, bet tagad pieņemsim darīt labāk.
Tāpat kā nulles, kad sāka izmantot looping
būvēt, nevis tikai kopējot un ielīmējot visas
puzzle gabalus, ļaujiet man iepazīstināt šī lieta.
Tātad C, ir dažādas looping konstrukcijas,
no kuriem viens izskatās.
"Par" cilpa ir trīs lietas, kas atdalīti ar diviem semikoliem.
Un tad, iekšpusē ķermeņa cilpa, tā teikt -
sīkumi iekšpusē cirtaini lencēm -
mēs varam kaut ko darīt atkal un atkal.
Tātad, ko es esmu šeit uz ekrāna, tas ir
burtiski tikai komentārs.
/ / Šeit nozīmē nāk komentāru.
Tas nav koda.
Tas ir tikai angļu apraksts, man, cilvēkam.
>> Tātad initializations, nosacījumus, un atjauninājumus.
Nu, pieņemsim redzēt, kā tas darbojas.
Tas ļauj man pārrakstīt šo programmu šādi.
Par -
tāpēc šeit nāk mana cilpa -
int i -
šeit nāk mainīgo sauc "i" -
izpaužas inicializēts līdz 10.
Tātad tur ir mans inicializācijas.
Es gribu darīt šo cilpu tik ilgi, kamēr "es" ir lielāks vai
vienāds ar 0.
Un par katru atkārtojuma šīs cilpas, es gribu
līdz es varu -.
Tātad mēs redzējām + + pirmdien.
- Ir pretēja.
Tā samazinājumi vērtību 1.
Iekšpusē šīs cilpas, es gribu, lai faktiski darīt kaut ko.
Tāpēc es esmu gatavojas teikt kaut ko līdzīgu printf.
Es negribu teikt 10 Tagad, jo tas acīmredzot ir tikai
gatavojas drukāt pašu vērtību.
Ko es gribu drukāt vietā, iespējams?
Yeah.
Tāpēc "es". Tātad% d, i.
>> Tāpēc es esmu gatavojas nozagt kādu no šīm idejām no agrāk -
Šī aizstāšana formāta kodiem -
un tad uz leju šeit, apakšā, es ņemšu atgriezties 0, tikko
labs pasākums.
Bet tagad, man ir vairāk īsu programmu.
Tas ir tikai dažas rindiņas, un nevis kaut kādi 10 vai 11 rindas.
Ļaujiet man iet uz manu ātri leju šeit.
Pārtaisīt cilpa.
Atkārto cilpu.
Un tas, šķiet, ir pats.
Tagad programma ir ne vairāk interesants.
Bet tagad es varētu rakstīt kaut kas līdzīgs šim.
Es varu mainīt uz 100.
Es tad var recompile savu programmu.
Un tad es varētu atkal palaist savu programmu.
Un tagad tas notiek super-ātri uz mūsdienu datoriem.
Bet tur man ir -
un faktiski, mana scrollback buferis nav
pat iet tik tālu.
Tur mums iet.
Tātad mums ir visi 100.
Bet tas ir viegli kļūdīties šeit.
Kas būs gaidāmā rīcība, ja es
nejauši darīt?
Tātad tā uzskata, tāpat bezgalīgs.
Tātad, pieņemsim redzēt, ja dators uzvedas.
>> Tāpēc ļaujiet man iet uz priekšu un darīt cilpu.
Un ļaujiet man palaist cilpa.
Tāpēc pieņemsim atgriezties ka tikai brīdi.
Mēs let, kas darbojas.
Jo tas, ko mums vajadzētu rēķināties līdz, minimāli?
Iespējams, vismaz 2 miljardus, ja mums ir, ka daudzi bitiem, un
Mēs esam izmantojot pozitīvās vērtības.
Tāpēc pieņemsim lēkt atpakaļ šeit.
Bez šiem cilpas veidiem, mums ir ko sauc kamēr
cilpas. Tātad, tāpat kā nulles, jums bija Forever
bloki, un jums bija Atkārtot blokus.
Tāpat, C, jums vienkārši ir citi veidi
izteikt sevi.
Tātad jums ir šī jēdzienu, kamēr cilpa, kas ļauj
izteikt sevi nedaudz savādāk.
Un tad jums ir kaut ko sauc do-kamēr cilpa,
kas darbojas nedaudz atšķirīgi, kā arī.
Un mēs kaitināt šie intervālu laikā.
>> Bet pieņemsim apskatīt šo pēdējo šeit.
Ja mēs iedziļināties -
joprojām darbojas.
Tas ir diezgan bezgalīgs.
Tāpēc ļaujiet man iet pozitīvs, un parādīt, kā mēs varam reāli
regulē lietotāja ievadi nedaudz efektīvāk.
Tas ir diezgan īsā programma.
Un šeit mēs esam, jo ​​galvenais, int n deklarācija.
Tāpēc man mainīgo sauc n. Tagad, es burtiski saku
"Darīt." Un tad man atklātu Curly
lencēm, tuvu cirtaini lencēm.
Un tad ievērosiet, uzreiz pēc tam tā saka bet n
ir mazāks nekā 1.
Tāpēc ievērosiet, ka šīs līnijas -
19-24 -
sacerēt kolektīvs do-kamēr cilpa.
Un atkal, jauna sintakse, nevis jauna ideja.
Tas ir tikai vēl viens veids, looping, sintaktiski.
Tātad, ko tas dara?
Vai šādas darbības, kamēr n ir mazāks par 1.
Tātad, ko es gribu darīt?
Es pieprasu, ka jūs man vesels pozitīvs skaitlis.
Tad es tiešām mēģināt iegūt skaitlim no lietotāja.
Bet runājot par rīkojuma darbību šeit, jo
kamēr nosacījums ir šeit lejā, es esmu tam gatavojas pārbaudīt, ir n
mazāk par 1?
Tātad pieņemsim, ka lietotājs -
pēc tam prasīja šādā veidā -
veidi vērtība 0.
Šis nosacījums būs patiess vai nepatiess?
Nu, tas tiešām būs taisnība.
Jo n ir 0, un 0 ir mazāks nekā 1.
Tātad, ko tas nozīmē?
Darīt to vēlreiz.
Tikai reiz šis nosacījums tiek novērtēts ar FALSE.
Ja es rakstīt 42.
Nu nē, 42 ir ne mazāks kā 1.
Tāpēc šis cilpa tiek darīts izpildes.
Un tā šajā brīdī, programma saka, paldies par
42, šajā gadījumā.
Tagad, ka jums ir šādā veidā izteikt sevi -
Mums nevajadzētu gaidīt, lai tas pabeigtu.
Tas gatavojas veikt kādu laiku.
Jāturpina nākamo reizi, varbūt.
>> Bet tagad, jums ir iespēja, cerams, lai saprastu
mazliet geek izjūta.
Atvainojos.
Tas nav uzrādīts humora ar datoru zinātnē
pasauli, bet tas ir gudrs.
[Smejas] Let 's beidzas šajās piezīmēs.
Un mēs redzēt jūs pirmdien.
[Aplausi]