[Powered by Google Translate] DAVID Malan: Tas ir CS50, un tas ir sākums 1 nedēļa.
Ko mēs domājam, ka mēs gribētu darīt šodien, ir veikt apskatīt atpakaļ
kaut daudzi no jums, iespējams, gāju garām dažiem
laiks tagad un varētu izskatīties mazliet pazīstams.
Šī lieta šeit, tas, protams, ir -
AUDITORIJA: Zinātne.
DAVID Malan: Zinātnes centrs.
Tātad tas faktiski ir viens no senākajiem datoriem
atpakaļ no 1940.
Tas bija viens no pirmajiem elektromehānisko datoriem
ka varēja īpaši garš,
pašpietiekamu aprēķini, un ko mēs patiesībā redzami
zinātne centrs ir tikai maza daļiņa no šī lieta.
Ko mēs domājam, ka mēs gribētu darīt, tad ir veikt atskats uz video
, kas tika veikts pirms kāda laika, ieviešot šo
lieta pasaulē.
Un jūs redzēsiet no mūzikas un balss, kas patiešām ir tās
bija ļoti laimīgs reizes.
>> [VIDEO ATSKAŅOŠANA]
-Matemātiskā un mehānisko prasme triumfs tas
lieliska jauna automātiskā kalkulators Hārvarda universitātē.
Sarežģīts problēmas matemātikā, laiž cauri
mašīna kodētā veidā lentes, precīzi risinātas
minūte daļu no laika nepieciešams cilvēku
aprēķins.
Izstrādāts, lai paātrinātu visas formas matemātisko un dabaszinību
pētniecība, milzu mehāniskās smadzenes strādā ANO
Valstis Navy līdz kara beigām.
>> DAVID Malan: Tātad, ko jūs varētu nezināt, ka tas bija
Tas pats ierīce, kas uz laiku mēs visi tagad ņem diezgan daudz
par pašsaprotamām tika izdomāts, ka par bug.
Tātad viena no inženieru strādā šajā datorā
burtiski atrada nelielu kožu mašīnu, kas noveda
Dažās kļūdainu aprēķinu.
Un kā stāsts iet, ka kodes bija lentu uz šo žurnālu
žurnālu šeit, atkal no 9 1940.gada septembrī-kaut ko,
un tādējādi dzimis pasaulē termins "bug".
Tāpēc turpmāk mēs uzskatām bugs nekāda veida kļūdas
programmām, vai cilvēka vai, šajā gadījumā, kukaiņi.
>> Tāpēc dažiem paziņojumiem, kā mēs turpinātu.
Tāpēc CS50 ir tradīciju piedāvāt pusdienas par veidu par
vairums Piektdienās semestra laikā, kad mēs veikt 30 līdz
40 studenti uz uguns un tajā laukumā ledus gadījuma
chitchat, runāt par datorzinātņu,
runāt par nākotni.
Mēs aicinām absolventus un draugus no rūpniecības tērzēt up
studenti, kā arī.
Tiešām uz beigām padarīt to, kas ir diezgan liels klases
vēl intīmo, vismaz vienu reizi, bet, lai
apakškopas studentiem.
Tātad, ja jūs vēlaties pievienoties mums šo piektdien, 01:15, dodieties uz
CS50.net/lunch ar RSVP.
Un mēs to izdarītu recurringly, tāpēc nav jāuztraucas, ja jūs neesat
starp pirmo 30 vai tik šonedēļ.
>> Tā Scribe piezīmes.
Vārds par resursiem, kas tagad sāk nebija pieejami
studentiem klasē.
Lai jūsu galvas nav jābūt uz leju lekcijās
scribbling noteikto visu es saku un tā tālāk, ko mēs darām
vietā ir informācija no akadēmiskā personāla
kanonisko komplekts piezīmes.
Tāpēc mums ir viens no mūsu mācību līdzcilvēkiem, Andrejs Sellergren,
kurš apsēžas katru nedēļu, izskata video, un pēc tam
raksta nosaka, ko mēs domājam, ir diezgan
autoritatīvs komplekts piezīmes.
Un Andreja mīl, arī, liekot snarky vēres jo
apakšējā.
Tātad jūs, cerams baudīt šos kā atsauces grāmatu
jautri, un arī, nāk viktorīna laiku, kā iespēja pārskatīt
Kas notika atsevišķās lekcijās.
Tātad tie ir saistīti uz lekcijas lapā.
>> Problēma komplekts 0, tikmēr, ir out.
Un ziņā pieejamos resursus, lai jūs -
Walkthrough.
Milo vadīja pirmo piektdien.
Tā tika filmēta, ko tiešsaistē ievietojis sestdien.
Un tā saprotam, ja jūs neesat īsti pārliecināts, kur sākt,
par šo vai nākotnes p-komplekti, vienmēr vispirms vēršas ar
walkthrough vai video pantu.
Sectioning gaitā; pie cs50.net/section ir, ja tu
jāiesniedz savu izvēli, ja jums nav
jau, ko šodien.
Jo sekcijas sāksies šo nāk svētdiena, pirmdiena,
un otrdien.
Mēs darām sadaļas minētās trīs dienas, katru nedēļu no
semestris par lielāko daļu.
Un mēs arī ieviest, atkal, dažādas dziesmas.
Tātad jums tiks lūgts par šo sekciju veidā, ja jūs
neesmu redzējis to jau, ja tu esi viens no tiem ir mazāk
ērts, ērtāk, vai kaut kur pa vidu.
Un, ja jūs esat veida uz žoga, parasti kaut kur
starp ir tas, ko lielākā daļa studentu galu galā pārbaudei.
Darba laiks sākas šovakar.
>> Tātad Scratch ir diezgan zems taustiņu, lai gan tas ir diezgan dabiski
palaist dažādās bugs, vai arī šaubās par to, kā
ieviest kaut ko.
Lai saprastu, ka mēs sāksim birojs stundas šonedēļ.
Tie būs pie Annenberg Pirmdien, otrdien, trešdien,
Ceturtdien, 20:00-23:00 laikā smadzeņu pārtraukuma.
Augšējo classmen var saņemt, un, ja jums kādreiz ir grūtības iegūt
pa durvīm, jo ​​tie tiks uzsitot, tikai runāt savu ceļu
un izskaidrot tu esi ar CS50.
Parasti 20 līdz 30 no mums par darbinieku būs tur, lai palīdzētu
Jūs viens pret vienu.
>> Pēc ierašanās ideja ir šāda: jūs lai jūsu klēpjdators,
jums ir jūsu lādētāju, mums būs papildu barošanas auklas,
īpaši gar dienvidu sienas Annenberg kur
tur ir daudz elektrības pieslēgums.
Un galvenais ieejas punkts ar biroja darba Q & A, ir doties uz
cs50.net/discuss un ievietot
Jūsu jautājums tur.
Un marķēt to ar PSET 0 vai PSET 1, neatkarīgi nedēļa
varētu notikt būt.
Un tad ko mēs darīt, ir ir tabula mācīšanas līdzcilvēkiem
un kursa palīgi, parasti 8 vai no mums, vai tik 10,
iet cauri, turot uzmanība uz kuģa, un
noplūkšanas off jautājumi tiešām tik ātri, kā mēs varam,
atsaucoties jums saistīto amatu, ja Jums nav atrasts tie
dvēselē, tiešsaistes atsauces, kā nepieciešams.
Un tad, ja ir problēmas, jo nenovēršami
būs, vai arī tas vienkārši ir izdevīgāka apsēsties viens pret vienu,
strādā ar problēmām, ar kādu.
>> Vai jūs vienkārši nonākt darba laika tiešām
nepieciešamības šo domāšanas veidu.
Jūs nevēlaties, lai iet caur elektroniskā formā, jums
patiešām vēlas tikties ar kādu.
Paziņot, ka pie mums, un kas notiks, ir tad, kad jūsu
Jautājums ir redzams darbinieka, un mēs
noteikt, Yup, tas būtu nosūtīti no 20 vai viens
30 komandas biedri šeit lokāli, jūs redzēsiet augšpusē pa kreisi šajā
maz Ievadiet Queue pogu sāk mirgot uz cs50.net /
apspriest.
Un tas ir stāsta, ka jums tagad ir uzaicināti, lai
runāt, lai ievadītu rindā.
Un, noklikšķinot uz šīs pogas, jūsu vārds tiks rādīts uz
iPad ka CS50 Sveicinātāja, viens no protams ir galvas, būs
rīkos pie ieejas Annenberg, kas pēc tam
redz kā šeit redzamie, studenti, kuriem ir jautājumi par
kreisi, personāla locekļi, kas ir tajā labajā pusē.
Un ar klikšķi uz kreiso un labo, Jūsu interneta pārlūkprogramma
sāk mirgot, tiklīdz, piemēram, profesors McGonnagal
ir gatava redzēt jūs pie konkrētā galda Annenberg.
>> Tāpēc mēs kādu no šo pēdējo gadu.
Mēs esam rebooted darba laika un
atkārtoti īstenots daudz programmatūru.
Lai saprastu, ka tas tiks iesildīšanās šonedēļ.
Bet arī realizēt arī gadu iepriekš, kā jūs varētu būt dzirdējuši
no draugiem, darba laiks bija tiešām no 50 līdz
150 skolēni uzreiz.
Un tas vienkārši nav iespējams, lai mēs rīkotos, ka
efektīvi, viens pret vienu, visā vakarā.
Un tā, ko mēs patiešām gatavojas, lai mēģinātu darīt šajā gadā ir
kapitalizēt par to, ka daudz jautājumu ir
Bieži uzdotie un bieži vien var labāk atbildēja
asinhroni.
Tātad jūs varat kārtot no domāt caur personāla atbildes,
un mēs varam domāt ar savu kodu, bez apsildāmās
spiediens vienmēr cīnās
caur to blakus.
Tāpēc mēs uzskatām, ka aptuveni trešā vai pusi no jautājumiem
tiks nosūtīti personīgi, un mēs cenšamies, lai raut pie kā
daudz kā puse vai vairāk elektroniski
darba laikā.
Un mēs turpināsim izmantot Apspriest
visu nedēļu, kā arī.
>> Un visbeidzot, saprotam, ka šis kurss var ņemt / neatbilstības.
Tātad, ja jums ir uz žoga vai vienkārši domāju, ka tu esi patiešām
nav pārliecināts, vai tas ir pasaule par jums, vai tas ir tiešām
diezgan ārvalstu jums, saprast, ka tas ir brīnišķīgs veids
kā iegūt dažas uzticību, ar kuru soli
klases, piemēram, I did atklāti sakot, gadus atpakaļ.
Un tad ir piecas nedēļas, lai sakārtotu un izdomāt
sevi, ja jūs vēlaties palikt / neatbilstības, pāriet uz vēstuli
pakāpes, vai līdzīgi.
Un parasti kādi / neatbilstības nav, es domāju, studentiem ir
ka, ja jūs nodot, ka 10 stundu laikā, 20 stundas, neatkarīgi no tā
var būt dažas problēmas, un jūs banging galvu
pret sienu,
un jūs tiešām vienkārši nevar tramdīt kaut uz leju, un jūs
ir tik daudz citas lietas, kas jums jādara, godīgi, ko es
domā / neatbilstības ir, tas aizņem malu off
situācijām, piemēram, ka.
Kur tu esi lieta 90% no ceļu.
Jūs zināt, tas nav gluži ideāls.
Bet jums ir daudz no tā, tomēr.
Tāpēc uzskatu / neatbilstības jo dod jums, ka
garīgo modeli, varbūt.
>> Labi, tāpēc pagājušajā nedēļā mēs balodis nulles, un mēs
runāja par programmēšanu par diezgan augstu grafisko līmeni.
Un šodien mēs veiktu pāreju uz valodā
sauc C, zemāks līmeņa programmēšanas valoda uz augšu
kuru daudzi modernās valodas tagad uzcelta, ieskaitot dažus
no tiem mēs būsim, izmantojot uz termina beigām.
Un sintaktiski, ko viņi izskatās
ir viss diezgan līdzīgi.
Tāpēc sāksim veikt šo pāreju šeit.
Tātad šī bija programma, pagājušajā nedēļā tas bija vienkāršāko
Sveika pasaule programmas.
Tā vienkārši izdrukāt uz ekrāna sveiki pasaule, ar
maz runas burbulis nāk no kaķa.
Nu, ja mēs sākam tagad pārtulkot uz citu
valoda, saprotam, ka idejas šodien un trešdien
ir vienādi, bet sintakse sāk mainīties.
Tātad tā pagājušajā nedēļā mums bija, kad zaļo karogu uzklikšķināt, teiksim
Hello pasaulē.
Šodien mēs esam nāksies int, galvenais, neesošu, printf,
atgriešanās, ar kādu citu sintaksi tur, kā labi.
Cirtaini bikšturi un iekavas, un citātus, un plauktiņš.
Bet saprast, ka ideja šeit būtība ir poligrāfija,
un visbeidzot tas, ka galvenais tagad būs
sinonīms palaižot programmu.
Galvenais būs, kur zaļo karogu kicks lietas off.
>> Tāpēc tagad pieņemsim kaitināt izņemot dažus no celtniecības blokus šeit
pirms mēs nodoties dažiem konkrētiem piemēriem.
Lai mēs sauc šo paziņojumu pagājušajā nedēļā, kad tas ir tikai
instrukcija.
Vai šis - šajā gadījumā pateikt sveiki pasauli.
Nu C, ja mēs skatāmies uz tikai šīs līnijas, tas ir, kā mēs esam
gatavojas sākt izteikt konkrēto puzzle gabals:
printf ("Hello World");.
Un tagad mēs kaitināt šie papildus vairāk un vairāk laika gaitā,
bet saprast, ka tur ir modelis šeit.
Tātad vienu, mums ir šī lieta, ko sauc printf, kas ir
būtībā analogs vārdu Say.
Tas, ko tā gatavojas darīt.
Printf, un f šeit nozīmē "formatēts".
Tāpēc tas tikai nozīmē, ka jūs varat ievietot
dažādi estētiskās detaļas.
Tātad citēju likt pēdiņas beigās ir sākums tam, ko mēs ejam
lai sāktu zvanīt virkni.
Vārds, frāze, teikums.
Programmēšanas valodā virkne ir secība nulles
vai vairākas rakstzīmes.
Tā h-e-l-l-o, komats, un tā tālāk, ir,
citāts likt pēdiņas beigās, virkne.
Un tagad slīpsvītru n, mazliet sintaktiski dīvaini, bet mēs
jau ir noteikts, ka pagājušajā nedēļā tādējādi ko?
Tas ir tikai jauna līnija.
Tas ir tikai veids, kā nogādājot uz datora jūs vēlaties
ekvivalents hitting Enter tur, bet jums nav
vēlaties, lai faktiski hit Enter, un tāpēc izjaukt visi
formatēšana jūsu faktisko programmu.
Tagad iekavas pievienojiet šo stīgu, atvērta paren un
tuvu paren, un iekšpusē, kas ir mūsu virkne.
Jo tas ir tāpēc, ka C, un citas programmēšanas
valodās, lietām, piemēram printf ņemt argumentus, vai veikt
parametriem.
>> Tātad, sākt domāt tagad par šo violetu Say Bloka kā
funkcija, kā metode, kā procedūra.
Jūs tiešām var zvanīt tas, ko jūs vēlaties, lai tagad, bet
tas ir sava veida miniatūru programma, kas tikai tas viens
lieta, vienā rindā, ne mazāk.
Tātad printf ir arī tas, ko mēs esam gatavojas sākt aicinot
funkcija, un funkcijas kaut ko darīt - šajā gadījumā
izdrukā formatētu virkni uz ekrāna -
bet darbojas arī ņemt argumentus vai parametru.
Un ar argumentiem vai parametriem, paldies, mēs domājam
ka viņu uzvedība var ietekmēt to, ko jūs iet uz
iekšpusē iekavās.
Tātad šajā gadījumā, printf vajadzības būt teicis, ko drukāt, un mēs
tikai apliecību, dubultās pēdiņas šeit, string, ka mēs
tiešām vēlaties drukāt.
Un par pašām beigām šo līniju semikols ir tikai
vēsturiskā traucēklis kuru beigās lielāko līniju kodu,
Jūs likts semikolu, lai super skaidra ar datoru
ka šī koda līnija beidzas šeit.
Tagad tas ir labi, jo, kā mēs redzēsim, kā programmas iegūtu vairāk
sarežģīts, semikols būs super skaidrs, mums cilvēkiem,
un arī dators, kur rindas kodu sākuma un beigu.
Saprotam, ka dažas valodas nav dažas
Šo pašu informāciju.
Un patiesībā, JavaScript, jūs ne vienmēr vajag kaut ko
piemēram semikolu.
Bet vairāk par to, lai nāk.
>> Tik cilpas.
Mums bija kaut kas līdzīgs šim, ļoti intuitīvi, skaidrs, do
kaut atkal un atkal un atkal.
Piemēram, liekot uz zeķēm, vai sakot sveiki, šajā gadījumā.
Nu, sākot Šodien C, mēs varētu izteikt šo Scratch
bloķēt kā kamēr (patiess) printf ("Hello World").
Tāpēc pamanīt mēs sākam būvēt uz burtiski puzzle
gabals no iepriekš.
Mums ir tāda pati purpura bloku, bet tas ir iekšā no šīs
iekavās Forever bloku, un labākais veids, kā tulkot ka
uz C ir šāds.
Nav Forever atslēgvārdu.
Jūs varat ne tikai ierakstīt f-o-R-e-V-e-r C.
Tātad tuvākais analogais ir vienlaikus.
>> Tagad, kamēr (patiess), šķiet mazliet stulba, jo dara to vērtība
patiesas kādreiz mainīt?
Iespējams nav.
Tas ir tāpat kā teikt, bet viens, bet par, bet taisnība.
Tas viss ir tas pats, taisnība ir vienmēr.
Tāpēc šī cilpa ir faktiski liekot kāda veida cilpa?
Tikai bezgalīga cilpa, labi.
Mūžīgi cilpa, vai kā mēs to nosauca pagājušajā nedēļā,
tikai bezgalīgs cilpas.
Tāpēc dažreiz tas ir slikti.
Dažreiz tas ir kļūda, dažreiz tāpēc jums
vērpšanas pludmales bumba vai smilšu pulkstenis vai tamlīdzīgi.
Bet šajā gadījumā, mēs apzināti, lai kāda
Iemesls, vēlējās izdrukāt to pašu vēlreiz
un atkal un atkal.
Vai gadījumā, piemēram, skatīties, ko vēlaties darīt
kaut atkal un atkal un atkal.
Tā bezgalīgs cilpas varētu jēgas.
Un tas ir tas, kā C mēs varētu tulkot Forever kods.
>> Tāpēc tagad šis viens ir nedaudz vairāk īpašu.
Mums bija atkārtot 10 reizes šādu paziņojumu.
Tāpēc, kamēr (patiess) nav gluži tur strādā, jo taisnība ir
vienmēr taisnība.
Tātad, ja mēs tā vietā apskatīt C versijā, tagad sintakse kļūst
nedaudz vairāk mistisks.
Bet ja godīgi, kad jūs sākat, lai redzētu šo, tas viss kļūst
diezgan pazīstams ātri.
Tātad šis ir tas, ko sauc par cilpu.
Cilpa gatavojas pateikt datoram kaut ko darīt
atkal un atkal un atkal, kamēr
šīs lietas ir taisnība.
Tagad ko mēs ar to domā?
Nu, tur ir trīs daļas, kas par cilpu, un mēs ejam uz
atgriezties pie šī kontekstā faktiskā
piemēri brīdi.
Tāpēc nav jāuztraucas, ja tas nav gluži izlietne visu uzreiz.
Bet int i = 0 ir, garš stāsts īss, sakot man
mainīgais, kas ir tipa skaitlim, tāpēc man vairākas
sauc I, un sāktu to uz 0.
Tas ir dot man kā algebrisko mainīgo x un
inicializēt to līdz 0.
Bet šajā gadījumā mēs to sauca i.
Tad pa vidu, tā saka man ir mazāks par 10.
Kas stāsta dators do šādu sīkumi tik ilgi
kā es ir mazāks par 10.
Un protams, tas sākas mazāk nekā 10, jo
tā sākas ar 0.
Tad visbeidzot, jūs varat varbūt domāju, ko es + + nozīmē.
Tas mazliet sintakses ka tikai nozīmē pieauguma i.
Lai pievienotu 1 līdz I, atkal un atkal un atkal.
>> Un tā kā mēs redzēsim šo cilpa, šī sintakse, drīzāk, īsteno
Tieši tas pats, kas, atklāti sakot, Scratch bija tikai tik
daudz vieglāk izteikt.
Atkārtojiet 10, un jūs darīts.
C, un vairumā programmēšanas valodām, mums jābūt
nedaudz vairāk pamācoši par datoru un faktiski
norādīt kaut kas līdzīgs šim.
Bet mēs būsim atpakaļ uz šo un citiem sintaksi.
>> Kas par mainīgajiem?
Jo Scratch mums bija kaut kas līdzīgs šiem apelsīnu blokiem,
kur es varētu deklarēt mainīgo.
Pieņemsim patvaļīgi to sauc skaitītājs.
Pieņemsim inicializēt to uz 0, un tad
pieņemsim mūžīgi kaut ko darīt.
Šajā gadījumā, Scratch es saku skaitītājs, tāpēc
kaķis nāksies nedaudz runas burbulis, kas ir runāja
numuru, kas ir šajā mainīgā.
Un tad mums ir mainīt skaitītāju 1.
Tātad tas viss ir ietīts iekšpusē Forever slēdzeni.
Tātad mums jau tagad ir celtniecības bloki C ar
kas tulkot šo.
>> Viens veids, kā mēs varētu darīt, ka tas ir.
Dodiet man skaitlim, to sauc skaitītājs.
Inicializēt to līdz 0
Pirmajā rindā tur.
Kamēr (patiess), tāpēc es esmu zādzībās, ka ideja no tikai brīdi
Pirms iet uz priekšu un darīt tālāk.
Izdrukāt letes, un tad pieauguma skaitītājs,
atkal, un atkal, un atkal.
Vai atkal + + tikai nozīmē pievienot 1 līdz kaut ko.
Bet ir jauns gabals sintaksi šeit.
Kas lekt no kā nav starp mūsu iepriekšējo piemēru?
Jā, tas% d.
Tātad jūs varat varbūt secināt ko tas dara, godīgi sakot, balstoties
par to, ko Scratch bloks dara.
Bet atkal C, mums vienkārši ir jābūt mazliet vairāk īpaši
kad runa ir paust sevi.
>> Tātad printf ("% d \ n").
Nu lielākā daļa no, ka mēs varam mest prom kā pazīstams.
Citāti vienkārši nozīmē, ka ir virkne, slīpsvītru n
ir tikai jauna līnija.
Tātad vienīgā jaunā lieta šeit ir% d.
Un viss, kas ir, ir vietturis.
% D gatavojas apzīmētu decimālskaitlis.
Un% d līdzekļiem dators, nodot decimālskaitlis šeit.
Nu, ko skaits jūs vēlaties, lai tur?
Nu, kā jūs varat varbūt secināt, pēc komata mēs sakām
skaitītājs, tas vārds ir mainīgs, ko mēs deklarēta vai
izveidoja pāris līnijas agrāk.
Tātad tas ir tikai C veids, kā tapām mainīgo vērā
stīgu dinamiski.
Jo atšķirībā, ja es būtu nevis darīts kaut kas līdzīgs
Šī, printf ("skaitītājs"), ko no šā
Programma vietā darīt, domājams?
Tas būs burtiski print "skaitītājs".
Kas nav efekts, ko es gribu.
Man vajag, lai aizstāt dažās skaitlisku vērtību.
Tātad mēs redzam, ka funkcijas, tad, piemēram, printf, var veikt ne
Tikai tikai atsevišķu argumentus, piemēram,
"Hello World".
Tās var lietot quote likt pēdiņas beigās komats, un tad daži mainīgie
kas saņems pieslēgts, kā mēs redzēsim iepriekšējo virknes
pa šiem% zīmju vietturi.
>> Nu ko par Būla izteiksmes?
Būla izteiksmes bija šie lielumi, patiess vai nepatiess.
Jā vai nē.
1 vai 0.
Ieslēgt vai izslēgt.
Tātad Scratch viņi izskatās šis, un ievēroju, ka
Apakšējā bloka šeit ir faktiski saiklis
Divu mazākos blokos.
Tāpēc es veida vilkt un samazinājās trīs puzzle gabalus
kopā, lai padarītu šo ilgāku puzzles gabaliņam tur tā, ka es
varētu paust domu, ka es gribu x ir mazāks nekā y un
y ir mazāks nekā z.
Un tā es varētu tulkot šīs divas atsevišķas līnijas šādi.
Top viens var būt ļoti trivially tulkot C,
tikai ar x <y.
Varbūt ar dažiem labs pasākums iekavās.
Un tad C, jums nav rakstīt un lai apzīmētu
apvienojums kaut.
Tu nevis rakstīt &&.
Un kā mēs beidzot redzēt, viena zīme & notiek
nozīmē kaut ko citu.
Tik && vienkārši apzīmē ideju UN.
>> Tātad vēlreiz, pat ja tas sāk izskatīties diezgan sarežģīti,
viens no ieviešanas Scratch vajadzībām, turklāt
tikai ar sava veida fun uz-rampas, kur jūs varat darīt
kaut kas ir ļoti grafisko, un animācijas, un
shareable un tamlīdzīgi, ir arī paust domu, ka
visas idejas, mēs sāktu iegremdēšanās šodien un tālāk
ir ietverts arī, ka vienkārši
interfeiss, jo vienā dienā.
Ko par šo vienu šeit?
>> Tātad apstākļi.
Tāpēc Scratch bloku pa kreisi tur izskatās
nedaudz sarežģītāka.
Bet tas ir tikai dažas vilkšanu un
krītot no pazīstami gabaliem.
Ja x ir mazāks nekā y, tā teikt.
Cits ja x ir lielāks nekā y, tā teikt.
Cits, mēs varam loģiski pieņemt, tas ir secinājusi, ka
tiem jābūt vienādam.
Tā teikt, ka viņi ir vienādi.
Tagad C labajā, pašā precīzu lieta.
Un ievēroju, ka cirtaini bikšturi ir būs
iezīme C un citās valodās, kas darīt šāda veida
gada iekapsulēšanas.
Tāpat kā, ja bloks ir tas dzeltenā lieta, ka ir sava veida
satveršanas violeto bloku iekšpusē no tā.
Tāpat šie breketes -
šie cirtaini bikšturi -
nozīmēja uzburt šo pašu domu aptver vienu vai vairākas
rindas kods, kas tiek ievilkumos iekšpusē no tiem.
Tik uz labajā pusē šeit, ja x mazāks nekā y, printf
("X ir mazāks nekā y").
Cits ja x ir lielāks nekā y, izdrukāt to pašu.
Cits izdrukāt, ka tie ir vienādi.
>> Tātad īsumā, tur diezgan tiešs kartēšanu vai tulkojums
par valodu, mēs esam redzējuši līdz šim, tai skaitā attiecībā uz dažiem
no vairāk sarežģītu iezīmes.
Tātad, jūs varētu būt, izmantojot šo par savu projektu, vai nevarētu
izmantojot šo jūsu projektam šonedēļ.
Bet mēs esam šīs lietas sauc matricas C. nulles,
viņi sauc saraksti.
Un mēs redzējām tos ar Fruitcraft RPG pagājušajā nedēļā.
Maz zils puisis, kas bija iešana apkārt, pacelt
ķirši un apelsīni un tamlīdzīgi.
Nu Scratch, kas tika īstenota ar šo apelsīnu
bloķēt, kas satur vārdus, šajā gadījumā, mēs esam burtiski
piebilstot, ka "oranžā", lai
mainīgo sauc inventāru.
Tātad C, tas sintakse ir gatavojas saņemt nedaudz vairāk mistisks.
Un mēs atgriezīsimies pie šī nākamajā nedēļā un darīt vairāk
interesantas lietas pasaulē kriptogrāfija ar to.
Bet apakšā šeit, šīs divas līnijas būtībā
tulkot to, ko mēs darām vienā Scratch bloķēt tur.
Bet vairāk par to, lai nāk.
>> Lai liekot to kopā, šeit ir programma C. Tātad pieņemsim
ātri ķircināt izņemot dažus sintaksi gabalos, bet
tad pieņemsim faktiski sākt rakstīt kādu kodu, iepazīstinātu
Jūs ar daži no instrumentiem, mēs būsim, izmantojot, un redzēt, ja mēs
var balstīties uz tagad daži no šiem pamatelementiem, no
pagājušajā nedēļā, tagad sintaktiski jo C. Tātad augšā šeit, šajā
iespējams, ir viens no visvairāk boring programmām jūs varētu
rakstīt vairumā jebkurā programmēšanas valodā.
Bet tas ir sava veida ir īpaša nozīme, jo tas ir
kanonisko programma, ka jebkura datora zinātnieks raksta kad
mācīšanu kāds programmēšanas valodu -
sveiki pasaule programmu.
>> Tāpēc pie ļoti top, mēs redzam šo jēdzienu # ietvert
un tad, leņķveida iekavās, stdio.h.
Mēs ejam, lai nāk atpakaļ uz to, bet tiešām, ko tas
nozīmē, ka tur ir šajā pasaulē failu sauc standarts
I / O, stdio dot h, un tas ir tikai teksta fails
kāds rakstīja gadus atpakaļ.
Un iekšā šī teksta datni ir viss ķekars
funkcijas, vai metodes, vai procedūras, ka kāds cits
rakstīja, ka mēs esam saņēmēji, jo mēs
tagad var izmantot šīs personas kodu.
Funkcijas viņš vai viņa rakstīja.
Šajā gadījumā, printf nav kaut kas man rakstīja, tas ir
nav kaut kas CS50 rakstīja.
Tas ir kaut kas, ka kāds rakstīja gadus atpakaļ un nodot
failu sauc stdio.h un tad, kā malā, ielieciet
otra daļa no funkcijas citā failā.
Bet mēs tur nokļūt.
>> Tātad # ietvert ir tikai mūsu veids, kā pateikt, jo
C, dod man piekļūt funkcijām, ka kāds cits rakstīja.
Un šajā gadījumā es vienalga, jo es gribu printf.
Tagad mēs int galvenais (spēkā neesošs).
Tātad šī ir viena no šīm lietām, atklāti sakot, ka 0 dienā,
diezgan daudz es esmu, lai veida zonas ārā, jo tas ir tikai
nav interesanti
intelektuāli, daži no sintakses.
Bet tagad zinu, ka funkcijas, kas pazīstama arī kā
procedūrām, vai metodes, parasti ražo kādu vērtību.
Viņi kaut ko darīt.
Viņi nāk klajā ar atbildi.
Viņi ražo produkciju.
Tāpēc int blakus galvenais ir tikai mūsu stenogrāfija veids, kā pateikt
ka šī funkcija, šī procedūra, ir iespējams iet
lai dotu jums atpakaļ numuru.
Un kāpēc tas ir, mēs būsim atpakaļ.
Galvenais ir tikai noklusējuma pasaules standartu noklusējuma
funkcija, kas gatavojas saņemt izpildīts C programmu, kad
palaist to.
Neesošu tikai nozīmē šī lieta, galvenais, aizņem ne
argumenti, šajā gadījumā.
Tāpēc es esmu to super skaidra.
Nav jēgas tur stīgas, tur nav komatus.
Neesošu nozīmē nav argumentu, lai galvenais.
>> Tagad visbeidzot, par laimi, pēdējās divas rindas ir pazīstami.
Iekšpusē cirtaini lencēm mums ir printf
un mums ir atdevi.
Un atdeve ir sava veida žēl, ka mums ir
likt to tur, jo šajā gadījumā tā nav dara visu, kas
daudz interešu.
Bet datorprogrammu, kad funkcija atgriež 0,
tas nozīmē, ka viss ir labi.
Nekas gāja greizi.
Savukārt, ja funkcija atgriež 1, vai negatīva 1, vai
negatīvs 1337, vai daži izlases numurus, piemēram, ka, ka
parasti nozīmē, ka kļūda tiešām ir notikusi.
Tātad, ja jūs esat par jūsu Mac vai datoru, ja jūs esat kādreiz redzēju
daži kaitinošas ziņu, jo jūsu dators ir crashed vai
saldēti, un tur ir mistisks kļūdas ziņojumu,
un tad daži kodu, piemēram, sistēmas kodu
1,2,3,4, daži numurs,
ka parasti ir nevajadzīga detaļa pateikt
lielākā daļa no mums cilvēkiem, bet tas ir tas, ko daži funkciju vai kādu
Programma ir faktiski atgriezies, kas nav nulles vērtība.
Un Šī priekšrocība ir tā, ka 0 nozīmē visiem, kā arī, un
tad jūs būtībā ir bezgalīgs vairākas lietas, kas
var noiet greizi.
Kurš ir iemesls, kāpēc viņi izvēlējās 0 par labu un ne-nulles vērtība
slikti, kā mēs drīz redzēt.
>> Tāpēc iesim uz priekšu un rakstīt to.
Tāpēc atgādina, ka otro dienu es izmanto manu Mac, lai atvērtu
termināļa logu, un tad es atvēra teksta programmu, piemēram,
TextEdit, un es sāku rakstīt kādu kodu.
Nu tas ir jauki.
Bet jūsu pieredze būs atšķirīgs uz Mac, vai
uz Solaris datorā, Linux datoru, neatkarīgi pamatdarbības
sistēma jums gadās būt, izmantojot.
Un tā, protams, to, ko mēs tā vietā, lai izmantotu, ir kaut kas
sauc CS50 tehnika.
Tāpēc CS50 Appliance ir lejupielādējama gabals programmatūru
kas ļauj jums vadīt operētājsistēmas sauc Linux,
īpaši Fedora Linux, par savu Mac vai PC.
Un jūs to izdarītu, lejupielādējot kaut ko sauc Hypervisor.
Tātad tas viss tiks dokumentēta problēma komplektā 1.
Un jums jāvadās pret ko jums ir nepieciešams, lai lejupielādētu.
Bet gala rezultāts, vai jums ir Mac vai PC, ir jums
lejupielādēt dažas bezmaksas programmatūru.
Jūs pēc tam lejupielādēt CS50 Appliance, un jums pateikt, ka
bezmaksas programmatūra - Hypervisor -
palaist CS50 Appliance logā datorā.
Un kas notiek, ir tas.
>> Man ir tagad, pamanīt šeit, kas šķiet darbvirsmas
vidi.
Un ļaujiet man tiešām sarukt šo vienu logu.
Tātad tagad tas ir mans Mac, ar nelielu logu šeit, un iekšā
Šīs loga notiek, ir pilnīgi
citu operētājsistēmu.
Tiešām tur ir šis menu leju šeit, atgādina
Logi, kas ir visai ķekars apakšizvēlnēm skaitā
saite uz CS50 rokasgrāmatā, Dropbox, un tamlīdzīgi.
Un ko šī vide šobrīd ir standarta vide
ka mums visiem tagad var izmantot, lai neatkarīgi no jūsu
dators ir, kas jums ir uzstādīta uz to, kāda versija
Mac OS vai Windows jūs lietojat, mēs visi tagad ir
tajā pašā vidē.
Un tagad šajā vidē, mēs varam sākt rakstīt kādu kodu.
>> Tāpēc es esmu gatavojas iet uz priekšu un atvērt programmu, ko sauc gedit.
Tas ir salīdzināms ar notepad.exe, vai
TextEdit uz Mac.
Un tas ir tikai super vienkāršs teksta rediģēšanas programmu
ka izskatās pēc pirmā acu uzmetiena.
Tagad ļoti top, man ir balts paleti, apakšā es
ir šī melnu logu, kas saka jharvard @ ierīci.
Un tas ir tāpēc, ka uz lietotāja konta, mēs jau iepriekš izveidotas
ikvienam sauc Džons Hārvarda.
Viņš ir mape, kurā visi viņa failus gatavojas iet, un
šeit, kur mēs varam sākt rakstīt kādu kodu.
Tāpēc ļaujiet man iet uz priekšu šeit un tuvinātu tikai mazliet, un es esmu
darīsim # Ietvert , int galvenais (spēkā neesošs), un
tad es esmu gatavojas darīt printf ("Hello World")
; Atgriezties 0.
Tagad tas ir viss diezgan melns un balts.
>> Ļaujiet man iet uz priekšu un darīt viena lieta, lai mācītu gedit ko es esmu
faktiski dara.
Ļaujiet man iet uz Saglabāt kā.
Es esmu gatavojas izvēlēties kreisajā pusē šeit jharvard.
Tātad vēlreiz, pat ja jūs nekad neesmu lietojis Linux pirms, atklāti
šajās dienās, visi no tiem ir pārgājuši uz būtībā
paša veida interfeisu -
MAC OS, Windows un Linux.
Tāpēc es izvēlējos jharvard s mājas mapi šeit.
Un es esmu gatavojas saglabāt šo failu kā hello.c.
Tāpēc pie ļoti top, es drukāti hello.c; nosaukt C
Programma ar. c paplašināšana ir
kas ir parasta prakse.
Un es hit Saglabāt.
Un tagad, kas ir jauki ir tas, ka es esmu faktiski mācīja gedit,
ka tas ir C programmu.
Pamanīt, ka mana melnā un baltā tekstu tagad krāsu kodēta, vai
sintakse uzsvēra, kura tikko vērš manu uzmanību
semantiski atšķirīgu programmas daļas.
Augšpusē pa kreisi tur, jo manas programmas iegūt sarežģītāka, es esmu
nāksies kopsavilkumu par visu lietām, ko es esmu uzrakstījis.
Tā ka tas tur augšā.
Tāpēc ļaujiet man tagad tālināt un iet uz leju, lai šo termināļa loga.
>> Tātad tas ir iespējams jauns, lai daudziem cilvēkiem.
Ja esat nekad nav izmantots komandrindas vidē, jūs nekad neesmu
izmantots DOS, vai jūs nekad neesmu lietojis Linux, vai jūs nekad neesmu atvērts
Mac OS termināļa logu, tur daudz lietas, jums
varētu darīt ar GUI, piemēram, norādot, un noklikšķinot, un
velkot, un nometot, un līdzīgi, bet kopumā -
protams pasaulē datorzinātnes -
izmantojot komandrindu, kur jums nav peli
vispār, jums ir tikai tastatūru, ir faktiski daudz
spēcīgāks nekā interfeisu, kad jūs acclimated
dažādas komandas.
Un tu par brīvu sevi no nepieciešamības norādīt šķirot un noklikšķiniet
viss.
Tātad gedit mēs sakārtotu un ir labākais no abām pasaulēm.
Mēs varam vilkt un nomest tekstu, mēs varam redzēt to
jauka un krāsu kodēta.
Bet, kad runa ir laiks, lai palaistu mūsu programmu, mēs dažreiz
tikai izmantot šo mazo logu šeit.
>> Tāpēc es esmu gatavojas iet uz priekšu un darīt to.
In apakšējā melnā un baltā loga, es esmu gatavojas iet uz priekšu
un rakstīt šķindēt.
Un šķindēt ir nosaukums kompilatoru.
Tā ir programma, kas pārvērš manu pirmkodu
stāšanās, tāpēc, objekta kodu.
0s un 1s, ka mēs redzējām īsi pagājušajā nedēļā.
Atceros no pagājušajā nedēļā, mēs apsolījām, ka mēs gatavojamies
aiziet no kaut kā šis - mums vajadzēja būt
kaut kas līdzīgs šim -
un tas noteikti nav kaut kas cilvēku notiek
darīt manuāli.
Tā vietā mēs spēsim izmantot programmu, un ka programma
Šajā gadījumā sauc šķindēt.
Un mana programmas nosaukums ir hello.c.
Tātad, lai apkopotu hello.c no avota kodu
objekta kodu, vai 0s un 1s, tai vajadzētu pietikt, lai tikai darīt
šo un hit Enter.
>> Labi, nekas, šķiet, ir noticis.
Bet es zinu tagad, vai no pagājušajā nedēļā, ka noklusējuma nosaukums
programmu, ja rakstīts C, ir muļķīgi sauc a.out.
Lielākā neinteresantas vārds jūs varētu nākt klajā ar.
Ir pirmais burts no alfabēta, kas ir tas, ko bija
izvadīt, bet lai tā būtu.
Šī ir mana programma, un tagad dot slīpsvītra, kā mēs redzēsim, ir
faktiski tikai veida drošības līdzeklis, jo
a.out ir programma, es uzrakstīju.
Tas nenāca ar manu datoru, tas ir
nevis Program Files.
Tas nav Mac OS aplikācijas mapi.
Man vajag, lai būtu super skaidru ar datoru, un pateikt
Šī programma, a.out, ir pašreizējā mapē,
pašreizējā direktorijā.
Un kā jūs pārstāvēt šo vidē, kā šis
ir dot pārstāv neatkarīgi mape jūs pašlaik atrodaties
Un tā. / Vienkārši nozīmē palaist a.out
pašreizējā mapē.
Un es palaist to ar Enter, un voila, mana pirmā programma.
>> Tagad ļaujiet man veikt soli atpakaļ.
Šis logs ir nedaudz mazu, un saprast, ka grunts
kreisi no ierīces šeit ir cita ikona.
Viens no tiem ir Chrome, kas būtu diezgan pazīstams, tikai interneta
pārlūks iekšpusē ierīces.
Un šī melnā un baltā ikona ir tikai
lielāks termināļa logu.
Tātad, ja tā kļūst mazliet kaitinošas, lai sakārtotu un tikko
Šī tiny maz šķēle no loga, ar ko mijiedarbojas
ar programmām, mēs varam vietā izdarīt.
Un tagad ļaujiet man sākt rakstīt daži ātri
jāzina komandas.
Ls.
Tātad ls ir komandu sarakstā.
Tātad Mac OS vai Windows, jūs varētu vispār dubultklikšķi
mapi un tad voila, jūs redzat visus dažādus failus
un mapes.
Jo komandrindas vidē, kur jūs varat tikai tipam
komandas vai teksta, Ls ir līdzvērtīga.
Tātad parādiet man to, kas šajā direktorijā.
>> Tagad tur ir sīkumi ķekars šeit, kas ir gan mazliet
pazīstami un mazliet svešs.
Bet paziņo, ka, tāpat kā Windows un Mac OS, jharvard
ir desktop mapi.
Lai jebkurš ikonas, kas ir uz mana galda notikt
lai šajā mapē.
Tur lejupielādes mapi, sīkumi, ka
Hromēti varētu ievietot tur.
Dropbox.
Tāpēc ierīce nāk ar iebūvētu atbalsta Dropbox
tāpēc, ka vairāk nekā pusgadu, jūs varat sinhronizēt ar savu Dropbox
kontu, lai visas programmas tiek atbalstītas.
Viņi pieejami citām jūsu datorā.
Ja kaut kas kādreiz noiet greizi ar ierīci, varat
ļoti viegli atgūties no Dropbox.
Tāpēc, ka mape ir tur par to.
Ir divi faili, ka es - hello.c
un a.out.
Un tad uz labo pusi tur ir dažas citas mapes, ka mēs
nokļūt līdz uz beigām semestra, ar web
programmēšana.
Tātad, kad es darīt. /, A.out, Enter, ka saka iet
direktorijā es esmu, pašreizējā direktorijā, un palaist
Programma sauc a.out tiesības tur.
>> Labi, tā ka ir jauki un labi, bet tas nav viss, kas
pārliecinoši uzrakstīt programmu, ko sauc palīdzēt a.out.
Tātad, mēs faktiski var darīt mazliet savādāk.
Tātad, nevis tikai darbojas šķindēt, hello.c, pieņemsim pievienot
ko sauc komandrindas argumentu.
Tātad komandrindas arguments, vai šajā gadījumā slēdzis, ir tikai
citu vārdu vai frāzi, ka jūs rakstīt pie ātru pēc
programmu, kuru vēlaties palaist.
Tātad šajā gadījumā, šķindoņa ir programma, es gribu palaist,-o
līdzeklis izejas failu, kas ir vairs sauc a.out.
Izejas failu sauc sveiki, un to darīt, apkopojot
Pēdējais vārds uz līnijas, hello.c.
Tātad īsumā, tas ir ļoti mazsvarīgs uzlabojums, kuru
vietā, šo muļķīgi nosaukts failu a.out,
Es tagad var darīt šķindoņa-o sveiki, tad hello.c, un
tad hit Enter.
Nekas, šķiet notikt, bet atkal līdzīgi kā ar 0 - kad
nekas, šķiet notikt tas nozīmē, ka nekas nepareizs noticis -
tāpēc pieņemsim do ls tagad, Enter, un tiešām es tagad
ir hello izskats programmu.
Tātad, ja es rakstīt sveiki tagad, komanda nav atrasts.
Labi, /..
Tātad tieši labi.
Tāpēc šajā programmā es uzrakstīju, un tas nenāca ar
dators, / sveiki., Enter, nozīmē
Es esmu tagad darbojas sveiki.
>> Tāpēc, ka tas arī viss tur.
Tagad to, ko mēs beidzot nokļūt vairāk un vairāk komandrindu
argumenti, kas ļauj mums darīt vairāk, bet tikai par tiem,
kam tas var būt vecs cepure, ļaujiet man tiešām iedziļināties
katalogs šeit un tikai jums teaser par to, kā vēl mēs
varētu iet par īstenojot Sveika pasaule.
Ļaujiet man iet šeit, un es esmu gatavojas, lai to atvērtu.
Tātad patiesībā, es esmu gatavojas izskaidrot, ko es daru, tāpēc
tas ir lietderīgi.
Ļaujiet man atpakaļ uz augšu.
>> Tāpēc es esmu to izdarīt ilgu laiku.
Tā pamanīt pār labo tur ir pāris
katalogi, kas ir savādi nosaukts source1m un source1w.
Tas ir tikai muļķīgi konvencijas mēs izmantojam.
Avots tikai nozīmē pirmkodu, 1 nozīmē, ka šis ir šonedēļ vienu, un
m nozīmē, ka ir pirmdiena, un w nozīmē, ka ir trešdiena.
Tāpēc nekas mistisks tur.
Tas ir tikai stenogrāfija notācija.
Šīs zilās lietas ir mapes, citādi zināma kā
katalogi.
Es gribu iet uz šo mapi tagad, un uz parasto datoru
Es varētu vienkārši dubultklikšķi uz mapes ikonas un
tur visas manas failus.
Bet komandrindas vidē, es nevaru gluži darīt
ka, tā vietā, man ir jāmaina katalogi manuāli.
Tātad, ja es rakstīt CD un tad source1m, Enter, ievērosiet, ka
mans ātri, baltā lieta ir kreisajā pusē, tikai mainīts.
Un tā tiešām, kad tā tikko teica iekavas un tad
maz squiggle, Tilde simbols, ka tikai nozīmēja man bija
Jāņa Hārvardas mājas direktoriju, viņa Mani dokumenti,
viņa personas lietas.
Bet tagad iekavās saka ~ / source1m.
Tas tikai nozīmē, ka es esmu mapi sauc source1m
kas ir Jāņa Hārvardas mājas direktorijā.
Tātad, ja es tagad gribu uzskaitīt failus šajā mapē, viegli
Jautājums, es rakstīt tikai ls.
Un tagad es redzu visus failus, kas man iepriekš izveidota mūsdienu
lekcija, kas visi, vai lielākā daļa no kuriem, notiktu
beigt. c.
>> Tāpēc ļaujiet man iet uz priekšu tagad un palaist gedit, ko sauc par programmas
holloway.c, kas ir rakstīts ar kādu izlases hakeris
internetā, kas izskatās mazliet kā šis.
Un mēs neesam gatavojas iet caur šo kādā
detaļa, bet tiem ērtāk, jo īpaši, ja
Jūs vēlaties veikt minējums par to, ko šī programma dara šeit.
Esiet pārliecināti, vai jūs esat mazāk vai vairāk ērti,
mēs neesam pat nokļūt šāda veida lieta gada beigām
šajā semestrī.
Tas ir tas, ko piemērs obfuscated C konkursā, kas
līdzeklis rakstīt visvairāk noslēpumains meklē programmu jūs, iespējams,
var pārspēt citus gudri cilvēki, kas ir līdzīgi
mēģinot rakstīt lietas un dižoties, ka viņi var rakstīt
vairāk mistisks lietām nekā jūs.
Tātad tas nav piemērs labi uzrakstīts programmu no
perspektīvā stils, tas ir piemērs programma, kas
uzvar konkursā, lai cilvēki cenšas
būt neskaidrs un abstrakts.
>> Tātad, ja mēs palaist šo lietu, ļaujiet man iet manā termināļa logā,
tā runāt.
Tātad šī melnā un baltā vide sauc
termināļa logu vispār.
Ļaujiet man iet uz priekšu un apkopo to.
Es neesmu gatavojas izmantot šķindēt, jo šī programma ir
maz mistisks un tai atšķirīgu
sastādītājs, viens sauc GCC.
Bet tas nav tas pats.
Tas aizņem pirmkoda objekta kodu.
Un tagad, ja man palaist a.out, šī programma jums
tikko redzēju to dara.
Tā, ka puisis, kas šogad uzvarēja šajā konkursā.
Jebkurā gadījumā, mēs nebrauksim šajā virzienā, per se.
>> Tāpēc pieņemsim faktiski mēģina tagad kaitināt izņemot to, ko mēs varam darīt
ar šiem pamatelementiem, lai padarītu vēl vairāk
interesantas programmas.
Tātad mēs esam uzrakstījis programmu, mēs esam palaist programmu.
Tagad mēs varam reāli vienkāršot un vairs rakstīt
vārdu šķindoņa pie ātri.
Izrādās kā mūsu programmas iegūtu vairāk mistisks, mēs varam, vai
sarežģītāka drīzāk mēs faktiski var palaist šo komandu.
Tāpēc ļaujiet man iet atpakaļ uz manu mājas direktoriju, tā sakot, ļaujiet man
noņemt - RM ir Noņemt komanda - I'm gatavojas likvidēt
failu sauc a.out un sveiki.
Un tagad paziņojums ir komandrindas vidē, daudz tāpat kā
GUI, jūs saņemsiet piedāvāts. Es nevaru noklikšķināt uz pogas, lai gan, es
ir rakstīt y par jā, y uz Jā.
Un tagad, ja es rakstīt ls vēlreiz, paziņojot, ka tie zaļā
programmas - a.out un sveiki -
ir pagājis.
Piesargāties RM.
To var darīt sliktas lietas, tāpat kā jūs varat velkot
lietas uz jūsu miskastes.
>> Tāpēc tagad iesim uz priekšu - un es varētu darīt - šķindoņa-o
Sveiki, sveiki -
Es esmu jau garlaicīgi rakstīt, ka komandu.
Pat ja es drukāti tā mazliet ātrāk.
Tātad, mēs varam vietā darīsim sveiki.
Tātad, lai netiek kompilatoru.
Tas ir tikai draudzīgs programma, kas nāk ar Linux, jo šajā
gadījumā - operētājsistēmas -
kas automatizē apkopošanas procesu programmas.
Tā vietā atcerēties šķindoņa-o filename un
tad tā tālāk, jo īpaši, ja šīs līnijas iegūt ilgāk un
ilgāk, es varu tikai uzrakstīt darīt.
Un tas būs izspļaut visu ķekars sīkumi ka
mēs beidzot redzētu šo semestri.
Bet paziņojums tagad, ja es tipa Ls, sveiki ir atpakaļ manā direktorijā.
Un tiešām es varētu palaist to ar / sveiki..
Tātad, lai tikai automatizē procesu gaitas, kas bija,
šajā gadījumā, daudz garāks, sarežģītāka komandu.
Tāpēc mēs esam gatavojas sākt izmantot marku, tikai tāpēc, ka tas ir daudz
vairāk lietotājam draudzīgu.
>> Bet tagad pieņemsim darīt daudz interesantu programmu
nekā tikai teikt sveiki.
Tātad programmās mēs esam rakstiski līdz šim tur galvenais.
Tas ir tikai noklusējuma lieta, ka kicks viss off.
Bet ir arī citas funkcijas, kas tur, kā arī, un
stdio.h ir lieta, ko mēs redzējām augšā mūsu
failu pirms, un tas, kas ir pazīstams kā standarta bibliotēka.
Iekšpusē standarta bibliotēka ir viss ķekars funkcijas
ka kāds cits rakstīja, un mēs varam sākt izmantot šos
funkcijas rakstīt vairāk
interesantas programmas sevi.
>> Tāpēc ļaujiet man iet atpakaļ uz ierīci.
Es esmu gatavojas slēgt šo termināļa logu.
Es esmu gatavojas slēgt lietas mēs rakstījām iepriekš, un tikai iet
uz hello.c, un paziņojums tagad es varu darīt tālāk.
Sveiki pasaule nav tik interesanti, es gribētu
personalizētu šo programmu par sevi.
Tā vietā, lai sakot pasauli, es esmu gatavojas
iet uz priekšu un teikt -
Es varētu rakstīt David - bet tas tiešām ir sava veida
būtībā ir tas pats.
Bet pieņemsim izmēģināt šo viettura ideju.
Atgādināt, ka C, drīzāk printf, mums bija šie
vietturi, un ir vairāk nekā tikai% d.
Tātad% d tika ātri veselība pārbaudītu.
Labi, decimālskaitlis, tas arī viss.
Decimālciparu, ka viss.
Tātad% C, kā mēs sastopas, būs raksturs.
Put raksturs šeit, vēstule pa z,
vai pieturzīmes simbolu.
Rakstzīmi,% f, kāds zina no citām valodām?
Tātad peldošo punktu vērtības.
Reālais skaitlis.
Tāpēc nav decimāls skaitlis - tas ir faktiski reāls skaitlis ar
komatu, un daži no ciparu skaits kreisi
un labi no tā.
% S, stīgu.
Ka viens mēs ejam, lai redzētu diezgan bieži.
Stīgu, atkal, ir tikai vārds, frāze, secība
atsevišķas rakstzīmes.
Un visbeidzot, LLD?
Tātad tas ir vairāk stūra gadījumā.
Sen, sen decimālo.
Tātad, ja jūs vēlaties, ne tikai vairākas ka tas liels, jums
vēlaties lielāku numuru, jūs nāksies, lai apzīmētu,
dators, kas tas ir par konkrētu lielumu.
>> Tāpēc pieņemsim iekniebt šo mazliet.
Nevis tikai grūti kodu Dāvidu, ļaujiet man nedaudz
dinamiski saka% s.
Tātad nodot% s šeit, kas ir virknes vietturi.
Tad ļaujiet man darīt komats, un tad "Dāvids" vairāk nekā šeit.
Tagad tas nav viss, kas intelektuāli interesanti,
jo viss, ko es esmu darījusi tagad ir patiešām radīt vairāk darba
dators.
Nevis pateikt datoram darīt visu uzreiz, es esmu tagad
sakot darīt un ievietot virkne šeit beidzot, komats,
šeit ir tas, ka virkne.
Tātad tas nav labāka uzlabošanās, bet tas ir vismaz
solis daudz interesantu programmu.
Jo tagad, ļaujiet man iet uz priekšu un veikt šo logu mazliet
lielāki, ļaujiet man iet uz priekšu un palaist padarīt sveiki.
Un tagad,. / A.out nav darba, tad kāpēc?
Labi, tagad to sauc sveiki.
Tātad atkal padarīt, un arī ar-o šķindoņa, pārdēvēja
programma būtu kaut ko interesantu.
Un voila: tagad tā saka sveiki Deivids.
>> Labi, tomēr stulba programma.
Tāpēc tagad pieņemsim faktiski iet atpakaļ un ieviest jēdzienu
ir mainīgs.
Vai tas nebūtu jauki, ja es varētu deklarēt mainīgo
kuru tips ir virkne?
Un mainīgais vērtība faktiski nāk no lietotāja
viņam sevi.
Tātad patvaļīgi, es esmu dodas uz zvanu manu mainīgo s, kas ir
tikai kopēja konvencija, ja jums ir viens mainīgais sauc
stīgu.
Es esmu gatavojas darīt vienādības zīmi, un tad es esmu dodas uz zvanu
funkcija sauc GetString.
Tāpēc GetString nav kaut kas nāk iebūvēts C. Tas ir
funkcija, kas CS50 darbinieki rakstīja, tiešām tikai
Pirmā no pāris nedēļām, lai vienkāršotu procesu
kļūst lietotāja ievadi un iegūstot lietotāja ievadi formā
stīgas, vai cipariem un tādas.
Tātad GetString ir kā printf, bet acīmredzot nevis
drukāt tas notiek, lai darīt to, ko tās nosaukums saka, iegūt virkni.
Bet izmantot GetString, mēs esam nāksies veikt izmaiņas
šeit, tālāk.
Tātad intuitīvi, šī programma, cerams, būs kaut
saņemt string no lietotāja, un tad to, kas tā gatavojas darīt
ar šo auklu, ko sauc s?
Tas ir tikai gatavojas to izdrukāt, vai ne?
Joprojām nav stimulējošu programmu, jo viss tas notiek
kas jādara, ir plug šo vērtību vērā, kad% s
saka, ka tā vajadzētu iet.
>> Tātad pieņemsim vismaz redzētu šo darbībā.
Ļaujiet man ietaupīt un attālinātu.
Tagad manā termināļa logā šeit lejā, mazais gabaliņš vienu,
ļaujiet man atkal darīsim sveiki.
Labi, un ah, nopelt, es saņēmu visu ķekars kļūdas.
Ļaujiet man ritiniet uz augšu, un mēs redzam mūsu pirmais -
tāpēc pieņemsim tiešām izdarīt pat lielāku logu, lai jūs
var redzēt, cik slikti es ieskrūvē augšu -
lai padarītu sveiki.
Labi, ka ir katastrofa, labi?
Es esmu rakstījis trīs rindiņas kodu, un
tas devis man 12 kļūdas.
Tātad, kāpēc tas ir?
Tātad laimi, nereti, kad jūs redzēt daudz, daudz kļūdu
spitting veic uzreiz, tas patiešām ir tikai tāpēc, ka jūs esat
sajaukt datoru šeit.
Un tas joprojām mulsina ar laiku tas kļūst uz leju šeit.
Un tā tas tikai sākas paklupšanu, un klupšanas, un
spitting veic vairāk biedējošu stuff, nekā patiesībā attiecas.
Tātad kopumā, vienmēr jāsāk ar top viens.
>> Tāpēc ļoti top visvairāk instance sarkans,
kļūdas ziņojums ir šī.
Izmantot nedeklarētu identifikators virknes, vai es
nozīmē standarts?
Man nebija.
Es gribēju string, bet tas ir tāpēc, pārāk, vārdu virkne
ka es glabāt, izmantojot mutiski faktiski
nepastāv C nu.
Tas ir kaut mēs izmantot tikai pirmo nedēļu vai divām
šeit, bet tā pastāv failu sauc cs50.h.
Tātad tagad, zinu, ka tur ir tas cita bibliotēka, kas
darbinieki rakstīja, tāpēc tas ir bijis rakstīts vēlāk nekā
stdio.h.
Bet iekšpusē cs50.h ir definīcija, sinonīms
sakārto, kas rada šo vārdu virkni.
>> Tāpēc tagad ļaujiet man iet atpakaļ uz manu termināļa loga.
Es esmu gatavojas, lai notīrītu šo visu putru ar Ctrl-L. Mēs tikko
noslaucīt viss tīrs, un es esmu gatavojas iet uz priekšu un darīt
sveiki atkal, Enter.
Tātad, kas ir noticis tagad?
Tagad visi no tiem kļūdas devās prom.
Tātad, ko es esmu patiešām izdarīt?
Es esmu tikko mācīja datoru, ka virkne pastāv, un tas ir
Šajā failu sauc cs50.h.
Tātad pārtraukt sūdzību, jo tagad jūs zināt, kur atrast
Šādu funkciju deklarācija tā runāt.
Kur tā pastāv pasaulē.
>> Tāpēc tagad es esmu gatavojas iet uz priekšu un palaist sveiki.
Man šķiet, ir bezgalīgs cilpa, nekas notiek.
Tāpēc man ir nepieciešams rakstīt kaut šeit, tiesības.
Pirmais koda līnija manā programmā bija GetString.
Tāpēc tas ir burtiski gaida mani, lai iegūtu virkni.
Tātad šajā ziņā jā, tā ir bezgalīga cilpa.
Acīmredzot GetString ir noklusējuma darbība, ka mēs
rakstīja - darbinieki -
ka tikai saka gaidīt un gaidīt un gaidīt un gaidīt un gaidīt,
līdz lietotājs sniedz jums virkni, ierakstot kaut collas
Tāpēc ļaujiet man iet uz priekšu un D-a-v tips - i-d, Enter.
Un tur tas ir, sveiki Deivids.
>> Tagad tas šķist tas ir tikai akts?
Ļaujiet man iet uz priekšu un ierakstiet Tommy.
Enter, labi, šķiet, ir darba.
Darbi Rob, strādā Zamyla, darbi - labi.
Tātad tas notiek uz darbu, visticamāk.
Lai tā būtu izdrukāt neatkarīgi no mums tiešām arī tā,
un mēs varam būt nedaudz grūti šeit.
Redzēsim, vai mēs kaut ko darīt, piemēram, sveiki.
Var iet vairāk nekā šeit, pieņemsim redzēt, kopēt, ielīmēt.
Es neesmu gatavojas, lai varētu ielīmēt ka daudzas reizes šeit.
Pastas, labi, Shift + Ctrl + V. Tātad, ko varētu
gadīties, ka ir slikti šeit?
>> Labi, tā, segmentācijas kļūdas.
Tāpēc daži no jums ar iepriekšējām fonu zinās, ka
kopumā, sniedzot datoriem daudz izejvielu, ja viņi
iespējams, ne domāts, lai saņemtu garus vārdus kā šis - slikti
lietas notiek.
Patiešām, pasaulē web Arī tas notiek diezgan daudz,
kuru gadījumā, ja jūs projektējot mājas lapā, kad esat
projektēšana Facebook, jums ir veikt patvaļīgus lēmumus par
priekšā, piemēram, cik ilgi kāds ir
Facebook lietotājvārds būt?
Vai cik ilgi kāds ir vārds būt?
Cik ilgi būs kāds tālruņa numurs ir, un tamlīdzīgi.
Un, ja programmētāji dara slikti pieņēmumus, programmas pārtraukums
jo jūs mēģināt dodot viņiem lielāku jaudu, lielāku ieguldījumu
drīzāk, nekā tās ir atmiņas.
Vai RAM piešķirts par to, un tāpēc, ja tagad es hit Enter,
ka programma faktiski nostrādāto, jo mēs bijām pie bibliotēkas
un mēs faktiski paredzēja šo konkrēto lietu.
Bet neapšaubāmi šajā semestrī, jums būs rakstīt vismaz vienu
programma, kas būs teikt šos vārdus.
Atcerēties šo nedēļas no tagad, varbūt divas dienas no tagad.
Segmentācija vaina ir slikta lieta.
Tas attiecas uz jūsu dara kaut ko, kas datoru
negaida.
Un šajā gadījumā, jums, programmētājs, negaida.
Daudz, piemēram, ko šis zeķes pāļu, tur bija dažādi
stūra lietas mēs varētu būt radušās.
Līdzīgi programmām, ja jums nav paredzēt, cik ilgi
kāds ir nosaukums būs.
Vai arī ja man ir ļaunprātīgs lietotājs, un viņa vārds ir
patiesībā diezgan īss, bet viņi vienkārši cenšas
sajaukt ar mani?
Kas būs uzvedība manu programmu?
Nu, tādā gadījumā, kaut kas varētu reāli crash.
>> Tāpēc pieņemsim darīt.
90 minūtēs, tas ir šausmīgi ilgs laiks
darīt datorzinātnes.
Kāpēc ne mēs nokļūt ieradumos ņemot piecu minūšu
pauze šeit, un, kad mēs atgriezīsimies, mēs ienirt daži
sarežģītākas un pārliecinoši programmām?
Piecas minūtes.
>> Labi.
Tik viens ātrs komentārs.
Es esmu teicis, ka, lai gan tas bija uz ekrāna pirms, ko
nāca no manas mutes bija cs50.net/rsvp.
Tas ir pareizi. cs50.net/lunch.
Tātad tagad jūs varat izmēģināt RSVPing par šo pie / pusdienās.
Bet pieņemsim darīt tagad.
Tātad šis ir super ātrs, super jauna par daudz ļaudīm.
Vecās cepuru dažiem ļaudīm.
Tāpēc pieņemsim attīt tikai brīdi, un redzēt, kā mēs saņēmām
Šī sveiki pasaule izlaide tikai pirms brīža.
>> Tātad, pirmkārt, tur ir šis CS50 tehnika.
Atkal, gabals programmatūras, problēmu set 1 gatavojas pateikt
Jūs, kā to lejupielādēt, kur to lejupielādēt, ko noklikšķiniet
un tā tālāk.
Un tad, kad jūs ievērot šos norādījumus, jūs varēsiet
lai maksimizētu savu logu, un jūsu Mac vai PC izskatīsies
mazliet kaut kas līdzīgs šim.
Melna fona, mājas mapes augšpusē, kur visi
failus iet, trash var augšējā kreisajā,
ēdienkarte apakšā.
Tātad vēlreiz, diezgan līdzīgi garā uz Mac OS vai Windows,
pat ja tas notiek, ir Linux.
Tātad, ko mēs nākamais darīt?
Nu, mēs sākām rakstīt programmas.
Un atcerēties no pagājušajā nedēļā, ka viss, kas nepieciešams, lai rakstītu
Programma ir vienkārša teksta redaktoru,
piemēram, Notepad vai TextEdit.
Atklāti sakot, jūs pat varat izmantot Microsoft Word.
Bet sliktas lietas ar laiku notiks, jo tas ir ļoti
neveikls risinājums rakstot programmu, kā tas būs
saglabājiet to nepareizā faila formātā.
Bet tas ir tikai teksta redaktoru, vārdu procesors, ir viss, kas ir
vajadzēja rakstīt programmu.
>> Tātad CS50 Appliance, mēs varam izdarīt vienā vienkāršā veidā.
Mēs varam vienkārši noklikšķiniet uz šīs ikonas pie apakšā pa kreisi.
Un atkal, problēma noteikti 1 būs padomu par to, un voila -
Jūs saņemsiet šo melno un balto interfeisu, kur mēs varam sākt
rakstot kodu.
Tāpēc sāksim rakstīt super vienkāršu programmu vēlreiz.
Es esmu gatavojas iet uz augšu uz File, Save, un es esmu dodas uz zvanu
Tas, teiksim, hello2.c.
Un es esmu tikai stāsta to, noklikšķinot uz jharvard, nodot to
savā mājas direktorijā, man nav īsti aprūpi
ja tas viens iet.
Un tad Saglabāt.
Un tagad es varu sākt rakstīt savu programmu.
Un es atceros no agrāk, ka man ir rakstīt int
galvenais (spēkā neesošs).
Tuvināt uz augšu pa kreisi.
Un tad es gribu teikt printf, ņemt divus.
Un tagad newline, netālu citāts, aizveriet
iekavas, semikolu.
Un tad es iet uz leju šeit uz manu termināļa logā, kas ir
iestrādāts gedit, tikai ērtības labad.
Un es esmu gatavojas iet uz priekšu un rakstīt padarīt sveiki, bet ne
sveiki vien, hello2.
>> Tāpēc mans failu sauc hello2.c. Mans fails tāpēc
jāsauc hello2, šajā gadījumā.
Nolāpīts, ko es daru nepareizi?
Labi, tāpēc es skaidri izlaist līniju, ja jūs atceraties, ko
Iepriekšējās programmas izskatās.
Bet pieņemsim redzēt, ja mēs nevaram kaitināt šo intervālu.
Diemžēl lielākā daļa cilvēku, kas raksta programmas, ar kurām
mēs rakstīt programmas nav vienkāršot lietas viss, kas labi.
Tāpēc mums ir sava veida pārslīdēt pār to, ko nav gluži darīt
sajust šeit un redzēt, ja mēs varam saprast, kas ir nepareizi.
Pati pirmā rinda tur saka netieši atzīstot C
bibliotēkas funkciju printf ar int.
Labi, es sapratu daļa no tā.
Bet tas, šķiet, atsaucas uz to, ka es izmantoti printf
nepareizi, kaut.
Un kāda jēga ir nepareizi?
Man vienkārši nav mācīt datoru, ka tas ir failā
sauc stdio.h.
Tagad man ir tikai tikko iegaumēt, ka šobrīd printf ir
jo stdio.h, un tiešām tur būs citi
funkcijām minētajā pašu failu, ka mēs pierast.
>> Tāpēc tagad ļaujiet man iet uz priekšu un hit Ctrl-L lai tikai skaidrs, ka
prom, atkārto izdarīt hello2, un voila.
Un šo komandu atkal, vairāk sarežģītu, nekā mēs paskaidrosim par
šodienas vajadzībām.
Bet tas bija palaist šķindēt, un šķindoņa ņem pirmkodu un
atklepo 0s un 1s.
Un tie 0s un 1s šajā gadījumā sauc ko?
Labi, objekta kodu.
Un failu, kas viņi ir sauc, tā,
hello2, šajā gadījumā.
Jo mans teksta failu bija hello2.c, Enter.
Un tagad man ir jāveic divas izsaukuma zīmi, izsaukuma
punkts, izsaukuma zīme.
Labi, tāpēc mums ir tagad spēja iegūt stīgas,
acīmredzot.
Nu, ko vēl mēs varam iegūt no lietotājiem?
>> Labi CS50 bibliotēkā, tur ir citas funkcijas, kas
gatavojas, lai vienkāršotu savu dzīvi šajās pirmajās dienās.
Getchar, GetDouble, GetFloat, GetInt,
GetLongLong, GetString.
Nu, pieņemsim nošķīt vieglākais Pirmais no tiem.
GetString burtiski tas, ka.
Tas tikai sēž tur, gaida, lai lietotājs varētu rakstīt kaut ko,
un tiklīdz es rakstīt kaut un hit Enter, to
dara kaut ko ar šo vērtību.
Tāpēc iesim atpakaļ uz šo piemēru, lai redzētu, kas tieši
GetString darīja.
Ļaujiet man iet uz priekšu un atvērt arī gedit, hello.c, un atcerēties
ka tieši pirms pārtraukuma, tas ir, ja mēs left off.
>> Tāpēc pieņemsim tagad kaitināt tas intervālu nedaudz sīkāk.
Tā uz 6 līnijas, tur ir divas lietas
notiek brīdī.
Vienādības zīme ir atdalot pirmo pusi un otrajā pusē.
Tā kreisajā pusē vienādības zīmi, mēs esam
saka virkne s.
Un tad, tikai lajs izteiksmē, kas ir virkne s
darot, jūs domājat?
Tas radot ko?
Tātad tas ir radīt virkni sauc s.
Tagad to, ko tas īsti nozīmē?
Nu, tas rezervējot telpu virkni sauc s.
Tas nav gluži pareizi.
Kas ir šī dara?
Nu datorus, kā jūs zināt, ir cietais disks, tas ir, ja
faili tiek saglabāti.
Datori ir RAM, un ka tur programmas ielādes
kamēr viņi darbojas.
Tātad, ja jūs dubultklikšķi uz ikonas un Microsoft Word atver
augšu, Microsoft Word darbojas, tā teikt, RAM, kas ir
elektroniskā daļa no jūsu datora.
Ne fizikālo, mehānisko daļu, kas ir vērpšanai, kur
dati parasti tiek glabāti ilgtermiņā.
Tāpēc virkne s diezgan daudz stāsta dators dod man
pietiekami daudz RAM, lai ietilptu virkni.
Tagad tas ir mazliet realitātei, jo
cik liels ir virkne būs?
Nu mēs faktiski nezinām vēl, tāpēc to nedēļās
mēs tiešām pull atpakaļ slāni, kas ir stīgu un
mēs jums pastāstīt, ko tas īsti ir.
Auklas, tagad, ir tikai jauka vienkāršošanu mūsu pasaulē.
Bet virkne s deklarē virkni sauc s, kas tagad.
Deklarē virkni.
Tā patur dažas vietas RAM virknes lietotājs ir
par rakstīt.
>> Tagad aplūkosim, kas atrodas pa labi no vienādības zīmi.
Tāpēc tā saka GetString ().
Un mazliet veselība pārbaudītu.
Fakts, ka tur nekas iekšpusē iekavās
nozīmē Kas Par GetString?
Tas aizņem nav argumentu.
Tas ir, jūs nevarat ietekmēt savu uzvedību jebkurā veidā.
Katru reizi, kad jūs to izmantot, tas būs iegūt stīgu un tas arī viss.
Turpretī, printf, cerams tā rīcība nav
mainās katru reizi.
Pretējā gadījumā tas ir diezgan bezjēdzīgi drukāšanas funkciju, ja
tas pats.
Ja tas vienmēr izdrukā Dāvidu vai kaut
patvaļīga visu laiku.
Tātad printf jēga ir arguments.
GetString nav īsti nepieciešams arguments, jo es gribēju
lai iegūtu virkni no lietotāja, un tas ir lietotājs, kurš notiek
sniegt dinamiku ierakstot dažādiem burtiem
Katru reizi pie tastatūras.
>> Tātad, ko tas GetString darīt galu galā?
Domājiet par to kā šo maz melnā kaste.
Un šī melnā kaste aizņem ne ievadi, bet, kad jūs sprādziena
tā, tā atklepo virkni, kas lietotājs ir drukāti collas
Un tas, ka tur ir vienādības zīme tur ir jāņem
ko izspļaut par tiesībām un uzglabāt to iekšā
kas ir pa kreisi.
Tātad vienādības zīmi šeit, tas tiešām nenozīmē
vienlīdzība, tas drīzāk tehniski nozīmē uzdevumu.
Veikt vērtību tiesībām, un nodot to
mainīgo pa kreisi.
Tā ka viss, kas notiek tur.
>> Tagad 7 līnijā, mēs aicinām printf.
Tāpēc printf cerams kļūst mazliet garlaicīgi, ko tagad.
Tātad drukāt formatētu virkni.
Kas stīgu?
Izdrukāt, "H-e-l-l-o,% s
! \ N ".
Labi, lai to, ko es gribu, lai plug-in% s?
Burtiski, kāds ir saglabāta s.
Tātad šajā gadījumā, nedaudz veselība pārbaudītu, cik argumenti nav
printf veikt?
Labi, es dzirdēju vienu.
Es dzirdēju vienu vēlreiz.
Divi, es dzirdēju divus.
Un kā par trīs?
Labi, trīs?
Teicami.
Trīs iespējamās atbildes, tikai viena no tām ir pareiza.
Tātad argumenti atkal ietekmēt uzvedību funkciju.
Jo agrāk, printf bija veikt tikai vienu argumentu.
"Hello World" bija viena arguments.
Taču tagad, ievērosiet, kur tas komats.
Tas komats ārpus citātu / likt pēdiņas beigās, kas nozīmē,
hei printf, šeit nāk otro argumentu.
>> Tātad komatus Vairumā programmēšanas valodu
atdaliet argumentus.
Tātad atbilde šeit noteikti nav viens, jo
tur ir tas komats.
Tātad minimāli, printf acīmredzot ņemot divi
argumentus šajā laikā.
Bet par āķīgs jautājums iespēja šeit ir tas, ko
par šo komatu?
Tas nozīmē, ka tur faktiski trīs argumenti?
Tas, tas, un tas.
Līdz ar to nav, jo tas komats ir iekšā pēdiņām, kas
nozīmē, ka tas patiešām ir tikai estētiska angļu valodas zināšanas.
Tam nav nekāda sakara ar skaitu
argumenti šajā programmā.
Tātad šis komats ārpus pēdiņas.
Un pēc tam atgriezties 0.
Tagad pieņemsim tikai veida uzņemties šo vienu par ticības
šodien, un tikai zināt, ka tad, kad funkcijas tiek darīts izpildes
rindas kods, tie parasti atgriežas kādu vērtību.
Šajā gadījumā, tikai tāpēc, ka galvenais ir atgriezties int,
tas ir tikai veids, kā valoda C darbi.
>> Tāpēc nekas nogāja greizi, jūtas kā šīs programmas
labi, es tikai grūti kodē 0 pretī.
Bet atšķirībā, un es esmu gatavojas rakstīt šo pseido kodu
Tagad, līdzīgi Jāzepam bija, kad mēs zeķe
piemērs pagājušajā nedēļā.
Ja kaut kas nogāja greizi - tas nav faktiskais kods - gāja
nepareizi, tad atgriezties, teiksim, 1.
Vēl atgriezties 0.
Tātad tas ir, ja mēs ejam ar šo.
Tas nav faktiskais C kodu, vienkārši pseudocode.
Bet tas ir, kā jūs varētu atgriezties
dažādas iespējamās vērtības.
Bet tagad es esmu tikai gatavojas iet uz priekšu un atpakaļ 0.
Viss labais, kādi jautājumi līdz šim par sintakses, funkcionalitāti,
vai patīk?
Jā, jo atpakaļ.
>> Mērķauditorija: [dzirdams]
DAVID Malan: Vai tu runā nedaudz skaļāk?
Kāpēc šo programmu atpakaļ 0, un?
Mērķauditorija: [dzirdams]
DAVID Malan: Ak, tas ir tāpēc, ka es saņēmu slinks, piedodiet.
Ne laba akadēmiskā atbildes, atgriešanās 0.
Es varu veida glābšana tas, ko saka tehniski C, ja galvenais
nav skaidri atgriešanās vērtību, 0 tiks atgriezta
automātiski jums.
Kas ir taisnība, es esmu ne tikai piesegšana.
Bet, es būtu darījis to šādā veidā.
Ne interesanti Takeaway nekā izņemot mana kļūda.
Yeah?
>> Mērķauditorija: Parasti, kad jūs ierakstiet tukšumu, tas nozīmē, ka jūs
neatgriežas kaut.
DAVID Malan: Pareiza.
Ja tā vietā, jūs norādiet pirms nosaukuma funkciju,
Piemēram šeit, spēkā neesošu, tad funkcija
neatgriežas neko.
Un tāpēc es tikai saku, peļņu vai vispār nekas,
un kas būtu konsekventa.
Un mēs būsim atpakaļ uz to.
Un tikai FYI, viens ar mācīšanās nozveju
programmēšanas pasaulē, kas ir simtiem grāmatu un
simtiem tīmekļa vietnēm, kas tur ir jums būs vienmēr
sk atšķirīgu sintaksi dažādās grāmatās
ar dažādiem cilvēkiem.
Saproti, mēs darīsim visu iespējamo, iedaļā un lekcijas par
konsekventa.
Bet dažreiz jūs redzēsiet pretrunīgas sintaksi.
Tātad, ja rodas šaubas, vienkārši jautājiet.
Un vispār, mēs parūpēsimies lekcijās un iedaļās uz
gandrīz vienmēr klāt to pareizajā veidā.
Un es saku gandrīz vienmēr, jo sakāms.
Citi jautājumi?
>> Mērķauditorija: Vai% s eksistē ārpus ierīces?
DAVID Malan: Vai% s eksistē ārpus ierīces?
Jā.
Tātad% s ir saistīts ar C. Tas, ka mēs izmantojam to
ierīce principiāli nav nekāda sakara ar
iezīmes valodā mēs izmantojam.
Patiešām, pagājušajā nedēļā, kad mēs izmantojām savu Mac, es uzrakstīju
C kods par manu Mac.
Es varētu būt izmantoti% s par manu Mac, un jūs varētu izmantot to
Jūsu Windows datoru, ja jums instalēt kompilatoru, piemēram
Visual Studio no Microsoft.
Tātad% s.
Viss, ko mēs darām iekšpuses šo logu šodien ir
darīt ar C. Un būtībā neko darīt ar
operētājsistēmu jautājumu.
Turpretī, melnā un baltā termināļa logu - ja
Es esmu mašīnrakstīšanu lietas, piemēram, ls, un RM, un CD -
kas ir jādara ar operētājsistēmu un
navigācijas apkārt.
Yeah.
Mērķauditorija: Es nozīmēja bibliotēkā, CS50 bibliotēku.
DAVID Malan: Labi, tāpēc, ja jums ir atslēgvārdu virkni, kas
pastāv tikai CS50 bibliotēkā, pareizs.
Ka nepastāv C pati, un tiešām pēc pāris
Nedēļu mēs mest prom CS50 bibliotēku un sākt
darot lietas no nulles paši, lai runāt.
Citi jautājumi?
Yeah.
>> Mērķauditorija: [dzirdams]
DAVID Malan: Labs jautājums.
Vai komandas reģistrjutīga?
Un ļaujiet man atšķirību šeit.
Tātad komandas parasti lietas mēs rakstītu pie
loga apakšā, termināļa logā.
Kaut šeit būtu paziņojumus vai C kodu.
Bet abos gadījumos atbilde ir tas pats, jā.
Abi šie vidē, C augšā kodu un
operētājsistēma komandrindas pie
apakšas, ir reģistrjutīga.
Tātad jums ir kapitalizēt GetString ar kapitāla G,
kapitāls S. Jums ir rakstīt printf visās mazie burti.
Jāievada ls visās mazie burti.
Tātad gandrīz katrā situācijā šajā semestrī, lieta būs, jo
fakts, jautājums.
Jā.
>> Mērķauditorija: [dzirdams]
DAVID Malan: Ah, tāpēc labi, kas notiks, ja mums bija failu
sauc hello.d.
Tātad izrādās, D ir programmēšanas valoda.
Un tāpēc atsevišķos gadījumos mēs patiešām varētu uzrakstīt programmu
šo failu un ir tā apkopoti šajā modes.
Mēs varam, un faktiski, Īsā atbilde ir, es nezinu.
Tāpēc mēs esam gatavojas darīt.
Ļaujiet man iet uz priekšu un izveidot jaunu failu.
Un spin šeit, godīgi vispār ir, ja kāda šaubas
šajā semestrī, un jums ir jūsu ierīci vai datoru
atvērtu, iet uz priekšu un izmēģināt kaut ko.
Tāpēc es esmu gatavojas, lai saglabātu failu ar nosaukumu hello.d.
Saglabāt šo.
Un es esmu gatavojas palaist darīt sveiki Enter.
Likās secināt, ka c bija iespējams
nekā d, šajā gadījumā.
Citi jautājumi.
Yeah.
>> Mērķauditorija: [dzirdams]
DAVID Malan: Labi, ka vēl vienu reizi.
Mērķauditorija: [dzirdams]
DAVID Malan: Kā jūs iet par diagnosticēšanai, ka vai
traucējummeklēšana ka?
Tātad visticamāk, tāpēc, ka viņi dažādās valodās,
visdrīzāk jūs varētu saņemt pilnīgi
atšķirīgas programmas izvadīt.
Jūs varētu saņemt pilnīgi dažādas kļūdas ziņojumus.
Un arī tikai uz dizainu, tas būtu varbūt būt
slikts dizains lēmumu tiks rakstiski divi dažādi
valodās ar gandrīz identiski nosaukts failus, jo
tieši tādu pašu direktoriju, izmantojot
automātiska rīks, piemēram, padarīt.
Lai es varētu arī push atpakaļ un saka 15 gadus darot,
nekad ka kļūda.
Varētu notikt.
Bet tur ir tikai dažādi, es domāju,
loģistikas aizsargspējas vietā.
Plus kļūdu ziņojumi, kas rastos, ka būtu
beidzot atklāt kāda problēma ir.
Bet iespējams stūra gadījums.
>> Visiem labi, tāpēc pieņemsim ieviest tikai pāris citu
iezīmes šeit tagad, lai mēs varētu sākt veidot uz vairāk
un sarežģītāka programma.
Tātad, pirmkārt, matemātika.
Tāpēc math piemēri ir tikai veida viegli pirmajā nedēļā.
Tas nav teikt, ka viss programmēšana ir aptuveni
matemātika.
Protams, izprast dažādas funkcijas
matemātika, algebra jo īpaši, ir
diezgan būtisks.
Jo augstāka līmeņa CS klasēm, lineārā algebra,
calculus, un līdzīgi.
Bet saprast lielāko daļu, ko mēs darīsim šajā semestrī samazina ne
līdz math, un, protams, ne uz aritmētisko, per se, bet tiešām
lai tikai loģiku un rūpīgi domāšanu.
Un tā šo saikni, ka dators zinātne jau sen ir bijusi,
īpaši vidusskolā, ar matemātiku, ir
nedaudz maldinošs.
Jo lielākā daļa programmas, kas mēs rakstīt, tiešām, ir
kārtot augstākā līmenī un pievērsties problēmu risināšanā, kas,
Protams, var izmantot kādu saskaitīšanu, atņemšanu, un dažādu
matemātiskās formulas vai tamlīdzīgi
bet beigās, dienā, tas ir par domāšanu un nav
tieši īsteno to, ko jūs varētu būt darīts, piemēram, TI
kalkulators vidusskolā.
>> Tātad ar to teica, pieņemsim tagad kaut ko darīt ar šiem
matemātiskās operatori, kas pastāv, lai mēs varētu brauciens
pār dažām no aspektiem programmēšanas, vai
Šajā gadījumā C. Tātad tur ir, jo CS50 bibliotēka ierosināja,
un šodien mēs esam tikai izmantojot GetString - un pēc brīža
varbūt viens otru funkcija -
bet ir dažādi datu veidi datoru.
Beigās, dienā, datori tikai zināt 0s un 1s.
Bet atceros, ka pagājušajā nedēļā mēs runājām par dubultzvaigžņu sistēmā
pārstāvot numurus, tāpat skaita 0 un 1, 2 un,
visu ceļu uz augšu līdz 8, kā Nate ir video.
Un tad mēs varam rēķināties daudz lielāks, jo mēs
darīja uz skatuves šeit.
Bet, ja jūs vēlaties, lai pārstāvētu ne tikai ciparus, bet burtus,
mēs, cilvēki, ir jānāk klajā ar kādu patvaļīgu
konvencijām, kuru ja beigās, dienā visu manu datoru
ir ir spēja izteikt 0s un 1s, arī mēs labāk
sāktu standartizēt modeļus 0s un 1s kas pārstāv
dažādas lietas.
Modelis 0s un 1s kas pārstāv burtu a.
Modeļi 0s un 1s kas pārstāv burtu Z.
Modeļi 0s un 1s kas pārstāv zilās krāsas, vai
sarkana, vai līdzīgi.
Mums ir nepieciešams, lai izmantotu visus šos 0s un 1s izteikt sevi
dažādos kontekstos, dažādos veidos, kas nav
obligāti ciparu.
>> Tātad attiecībā uz pārstāvību, C ir dažādu datu tipu,
un mēs esam redzējuši kādu no šiem līdz šim.
Mēs redzējām int, un paziņojums, kas ir uz ekrāna nav
tieši tagad ir virkne.
Stīgu nav, faktiski, pastāv C. Atkal, tas ir
vienkāršošanu mēs aicinot uz pirmo
pāris nedēļas.
Char ir individuāls raksturs.
Pludiņš ir reāls skaitlis, ar komatu un tālruņu
kreisi un to tiesības.
Dubultā ir tas, lai tiem, kam muguras iepriekšēju fona?
Tātad dubultā ir divreiz kaut.
Piebilst divreiz vairāk precizitāti.
Tātad, ko tas nozīmē?
Tātad katrā no šiem gadījumiem, pasaule ir sava veida standartizētas
cik biti tiek izmantoti, lai pārstāvētu
katru no šīm lietām.
Tātad, ja jūs esat noskatījos Nate ir ASCII video jau par daļu
ir 0 PSET, vai vēlāk šajā nedēļā jūs, jūs droši vien zināt
ka ASCII -
rakstura pārstāvniecības -
izmantot cik bitus?
Un jūs pat varētu atcerēties no mūsu demo pagājušajā nedēļā par to, kā
daudzi cilvēki bija uz skatuves.
Tātad 7 vai 8, parasti.
Tātad kopumā 8, un tur ir kaut kas ko sauc par pagarināts
ASCII kas izmanto visas 8 biti, 7 vietā.
Bet vispār, mēs runājam pilnvaras 2, tāpēc šajā gadījumā, 8.
Tātad programmēšanas valodā CHAR parasti 8 biti.
Tātad int parasti 32 biti.
Pludiņš parasti 32 biti.
Dubultā parasti 64 biti.
Un ko tas nozīmē?
Tas nozīmē, ka jūs varat pārstāvēt lielāku skaitu, vai gadījumā,
reāliem skaitļiem, jūs varat būt daudz vairāk numurus pēc
atrašanās vietu.
Daudz vairāk precizitāte, šajā gadījumā.
Tagad ilgi ilgi diemžēl nosaukts.
Tātad tur ir int kas ir 32 biti.
Ir garš, kas ir, nē, 32 biti.
Un ilgi ilgi kas ir 64 biti.
Tomēr daži no tiem ir konteksta jutīga, tā ir atkarīga
kāda veida datora jums ir.
Tātad kopumā, mēs norādīt ar mājasdarbu vai viktorīnā kad
tas tiešām ir svarīgi.
Bet jautājums ir tur visas šīs dažādās
pārstāvniecības šeit.
>> Tāpēc pieņemsim faktiski nirt programmā.
Nevis rakstīt šo vienu no nulles, ļaujiet man iet uz priekšu
un atvērt no šodienas pirmkoda - visi, kas ir
internetā - ja jūs vēlaties, lai lāpīt ap tiešsaistē, vai ieņēmumi
Trešdien ierīci datorā, instrukcijas
par kuriem būs saite uz kursa mājas lapā.
Lūk super vienkārša programma.
Bet tas ir ieguvuši mazliet kaut ko jaunu augšā ka
mums nebija pirms tam.
Visai daudz zilā teksta rindiņām.
Tātad šie zilās līnijas attēlo komentārus.
Tātad tas ir diezgan noderīga programma, lai varētu rakstīt
daži komentāri sevi, vai kolēģiem vai draugiem, vai
mācību puiši, kas veida aprakstīt to, kas notiek
Šis fails, bet nav nekāda sakara ar C kodu pati.
Neko darīt ar programmu funkcionāli, tā ir tikai
estētika.
Tātad, kā jūs darīt to C ir jūs parasti sākas jūsu
komentāri / *, un jūs galu savus komentārus ar
* /.
Un, ja tu esi tiešām anālais un vērst veida bildes,
tad tu gribētu likt visai daudz zvaigznēm, jūs darīt
maz kaste kā šis.
Bet neviens no šo jautājumu.
Vienīgais, ka jautājumi ir pirmais
un ļoti pēdējā.
Tas ir tas, ko sauc par multi-line komentāru.
Un tas ir tikai cilvēka konvencija bieži zvaigznes un kaste
lietas, piemēram, tas, ja jums ir daudz brīva laika.
>> Tātad, kad jūs esat rakstiski dažos komentāros, parasti nāk
faktiskie iekšām no programmas.
Lūk, mūsu iepazinušies # ietvert .
Un tikai ātri, tas ir vajadzīgs vai nav vajadzīgs?
AUDITORIJA: nepieciešams.
DAVID Malan: Tātad tas tiešām nav nepieciešams.
Tātad, kāpēc, lai gan, tas nav vajadzīgs?
Tāpēc tur nav printf.
Tiešām.
Visi mēs darām šajā programmā ir matemātika.
Tāpēc es patiesībā var izdzēst to.
Tātad, jūs ne vienmēr ir jāiekļauj neko
top programmas.
>> Tāpēc pieņemsim vienkāršotu šo mazliet.
Un tagad paziņojums, ko šī programma dara.
Nav daudz interešu.
int x = 1.
Nu, kas tas ir dara?
Nu, domāju, ka atpakaļ uz garīgo modeli no iepriekš.
Kreisā puse šī vārda ko dara?
Izveidot telpu veselam skaitlim.
Tik, cik daudz vietas?
Nu, mēs notikt tagad zinām, ka tas ir 32 bitu.
Agrāk, stīgu bija tehniski 32 biti, bet vairāk
par to nākotnē.
Bet int ir 32 biti.
Tātad šī vārda pa kreisi šeit, int x vienkārši saka hey
operētājsistēma, dod man 32 bitus RAM -
citādi zināma kā 4 baiti RAM -
lai es varētu likt skaitlim šajā telpā.
Ko skaitlim jūs vēlaties, lai?
Nu, tikai numurs 1.
int y izpaužas 2, nav tieši tas pats, lai gan
skaits ir lielāks, jo uz tās lielumu.
Skaitlis pats par sevi ir vēl tikai 32 biti.
Tas ir tikai modelis bitiem ir atšķirīga
pārstāvēt 1 salīdzinājumā ar 2.
int z tagad saka man vēl 32 bitus, sauc to Z, un nodot
sasummēt 1 un 2 tur.
Tā, ka tagad z iespējams uzglabāt vērtību 3,
un pēc tam atgriezties 0.
>> Tagad šī programma, tas dara kaut ko interesi?
Tātad tas faktiski nav darīt kaut ko interesantu, jo jebkura
sajūtu, jo kāpēc? Tā dara daži math.
Bet tas nav atpakaļ atbildi, labi.
Tas ir atgriešanās 0.
Tas nav drukāšanas atbildi.
Tāpēc šī programma ir fundamentāli nevērtīgs, jo tā
stendi tagad.
Tā dara kādu darbu.
Tas gatavojas veikt kādu sekunžu skaitu, vai mikrosekundēs, lai
palaist, bet tas nav reāli darīt kaut ko
noderīga cilvēkiem.
>> Tāpēc pieņemsim faktiski tagad atvērt math2, kur tagad es esmu patiešām
drukāšanas rezultātu.
Tātad tas arī var secināt no mūsu iepriekšējiem piemēriem.
Ja es gribu darīt dažas vienkāršas matemātikas, int x = 1, y
= 2. z ir 1 plus 2 tagad.
Kas tas ir gatavojas izdrukāt acīmredzami?
Tikai 3.
Tik ātri veselība pārbaudītu.
Ļaujiet man pārvietoties šajā direktorijā.
Tā cd source1m.
Ļaujiet man iet uz priekšu un tips padarīt math2.
Nav kļūdu ziņojumi iznāca, tāpēc ļaujiet man palaist -
ne a.out--ļaujiet man palaist math2. Enter.
Un tiešām, tas izdrukāt 3.
Nu pieņemsim to apskatīt variantu šo.
Jo math3.c, tagad mums ir šis piemērs šeit.
>> Tātad šis viens ir diezgan interesants.
Tātad šo vienu šeit, atbilde ir gatavojas iegūt 1 dalīts ar 10,
un pamanīt es esmu deklarēta to kā apgrozāmos līdzekļus.
Kāpēc es gribu, lai to peldēt?
Nu, tas ir daļa.
Tas būs reāls skaitlis.
Tātad tas būs 0.1, cerams - 10%, šajā gadījumā.
Un ko es pēc tam vēlaties izdrukāt?
Nu, šo atbildi.
Nu, pieņemsim kaitināt šie intervālu pirmās.
Tā kreisajā pusē, paziņot
peldēt, to sauc atbildēt.
Labajā pusē, do 1 dalīts ar 10, un nodot, ka
atbildēt iekšieni mainīgo.
Tagad, šī pozīcija izskatās nedaudz vairāk mistisks.
Bet paziņojums daži pazīstami funkcijas. % Nozīmē šeit nāk
vietturis.
f nozīmē šeit peldošo punktu vērtības, tikai reālā
numuru, kaut ar komatu.
0,2 nozīmē ko?
Ikviens zina no iepriekšējas pieredzes?
Divas zīmes aiz komata.
Tāpēc mēs esam nav redzējis šo pirms, bet tas ir tikai veids,
Izmantojot mazliet pāri printf kontroli un
teiciens nedod man 30 punktus aiz komata,
vietā man tikai 2.
>> Un tad iesim uz priekšu un palaist to.
Lai padarītu math 3, un tagad ļaujiet man palaist math 3, Enter.
Un tas nav pareizi.
Mēs, šķiet, ir saskārušās mūsu pirmo īstu bug.
Nu, varbūt es esmu tikai nav meklējat pietiekami tuvu.
Tāpēc ļaujiet man iet šeit, un ļaujiet man nodot 20 decimālzīmi
punkts vietām tur.
Un ļaujiet man apkopot šo, padara math3, palaist.
Diezgan pārliecināts 1 dalīts ar 10 nav 0.
Tātad, kas notiek?
Nu labi, tāpēc patiesībā tas nav saistīts ar to.
Tas ir laba doma.
Tas ir patiešām vienkārši sagadīšanās
ka mēs darām to.
Bet tikai, lai pierādītu, ka tas nav tas, es ņemšu
atgrieztos kaut izlases.
Nav darīt mājās, jo tas ir tikai nepareizi.
Bet padarīt math3, ļaujiet man palaist to.
Tāpēc nav nekāda sakara ar to, ko es esmu atpakaļ, tikai ir jādara
ar ko es esmu drukāšanu.
Bet es dzirdēju to šeit.
Kas?
Mērķauditorija: Tāpēc mums vajag rakstīt skaitļus
rajons, kā -
>> DAVID Malan: Labi labi.
Tāpēc mums ir nepieciešams, lai rakstītu skaitļus, kas piedalās
sadalījums šeit kā peldošā punkta vērtības sevi.
Tātad problēma šeit ir tāpat kā agrāk: C, kā ar daudz
valodās, ir dažādu datu tipu.
Un šie datu tipi, piemēram, tie ir šeit.
Un datu tipi attiecīgie šeit, kad es tipa 1 un pēc tam es
Type 10, ir iespējams, kādi dati veidi?
Tāpēc tas ir iespējams int, vai ne?
Tas noteikti nav peldēt, jo tur nav decimālā
punkts vai kaut kā tā.
Tik tiešām, man ir int dalīts ar int.
>> Tāpēc interesanta lieta par matemātiku un dators ir kas
ja jūs darāt dalīšanu, izmantojot integers -
1 dalīts ar 10, jā ir 0,1.
Tomēr, ja jūs dalot skaitlim ar veselam skaitlim,
Atbilde ir arī jābūt veselam skaitlim tikai tāpēc, lai tagad.
Un kāda ir saistība tam?
Nu, ja atbilde ir 1 dalīts ar 10 vienāds 0,1, kāda
dators ir gatavojas darīt, ir man nav ideju, kā
pārstāvēt 0,1, jo tas ir peldošā punkta vērtība, nevis
skaitlim, tas notiek, lai karbonāde off viss pēc
decimālzīmi un tikai parādīs 0 sākumā.
Un fakts, ka tā ir drukāšanas kā peldošo punktu
vērtību, tas ir tikai estētiska lieta.
Tas ir tāpēc, ka es esmu liekot datoram izdrukāt to kā
peldošās punktu vērtība.
Un tiešām es esmu deklarēta to kā peldēt, bet matemātika ir
notiek vairāk nekā šeit.
>> Tāpēc ļaujiet man faktiski noteikt šo vienā diezgan viegli veidā.
Kāpēc es tikai darīt 10,0 un 1,0, kaut gan
tehniski es varētu saņemt prom ar tikai veicot vienu no tiem.
Tagad ļaujiet man iet uz priekšu un darīt math3.
Ļaujiet man iet uz priekšu, un tagad palaist math3, Enter.
Un tagad, ak zēns.
Tagad mums ir jauna problēma vispār.
Tāpēc labāk, labi, mēs esam tuvāk līdz 0,1, bet ko skaidri ir
nepareizi šeit?
Ja vien mēs esam guļ uz jums gadiem, labi?
1 dalīts ar 10 ir faktiski nav gluži 0.1, lai to, kas
īsti notiek šeit?
Nu jūs varat veida iemesla caur šo loģiski.
Ja dators ir tikai ierobežots daudzums RAM, lai sāktu
ar, un tiešām dators tikai izmanto 32 bitus uz
peldošās punktu vērtība, tas saprotams, ka ar
ierobežots bitu skaits, 32 šajā gadījumā, jā, jūs varat
pārstāv daudz sīkumi.
Tas patiesībā ir 4000000000 dažādas vērtības var būt
pārstāvēta ar 32 bitiem, no 2 līdz 32, taču tas joprojām ir ierobežots.
Tātad problēma ir tur bezgalīgi daudz nekustamo
numuri, pa labi.
Ja jūs varētu man reālu numuru, es vienmēr var atrast jums vienu
nedaudz lielāks, nedaudz mazāk, tikai par tweaking
numuri, kas ir aiz komata.
Tātad, ja jums nav bezgalīgi daudz bitu, jūs
nav iespējams pārstāvēt bezgalīgs
skaits reāliem skaitļiem.
>> Tātad tur ir tas raksturīgs neprecizitāte datoros, un
tas izpaužas paklupu pār visu laiku pat vienkāršāko
programmas, piemēram, šis.
Bet arī daži ļoti reālās pasaules problēmas, kā arī.
Faktiski, pieņemsim, veltiet laiku, lai tikai veikt apskatīt
kaut kas patiesībā notika patiesībā.
Mēs skatīties tikai pirmās pāris minūtes, un pēc tam
mēs pēc saiti tiešsaistē.
Bet tas ir apliecinājums, lai tikai to, ko var noiet greizi, gluži
godīgi, ļoti traģiskā veidā, kad šīs lietas nav
novērtēti vai vienkārši mēs cilvēki pieļauj kļūdas, kad runa ir par
šāda veida īstenošanas detaļas par mūsdienu datoriem.
>> [Video spēles]
-Mēs tagad atgriežas inženiertehnisko katastrofām uz mūsdienu brīnumiem.
Datori.
Mēs visi esam ieradušies pieņemt bieži nomākta problēmas
kas iet kopā ar viņiem.
Bugs, vīrusi un programmatūras glitches ir mazas cenas
maksāt par ērtībām.
Bet augsto tehnoloģiju un ātrgaitas militārajā un kosmosa
Programmā pieteikumus, mazākais problēma var būt
palielināts par katastrofu.
4.jūnijā, 1996, zinātnieki gatavi uzsākt bezpilota
Ariane 5 raķete.
Tas nesa zinātniskos satelītus paredzētas
noteikt precīzi, cik Zemes magnētiskais lauks
mijiedarbojas ar saules vēju.
Raķete tika uzbūvēta Eiropas Kosmosa aģentūru un
pacelts no tās objekta krastā Francijas Gviānas.
>> -Pie aptuveni par 37 lidojuma sekundē, viņi pirmo
pamanīju kaut kas notiek nepareizi, ka sprauslas bija
grozāms tādā veidā viņi tiešām nevajadzētu.
Aptuveni 40 sekundes uz lidojuma, skaidri transportlīdzekļu
bija nepatikšanas, un tas ir tad, kad viņi pieņēma lēmumu
iznīcināt.
Diapazons drošības virsnieks ar milzīgu iekšām nospiests
pogu, uzspridzināja raķeti, pirms tas varētu kļūt
apdraud sabiedrības drošību.
>> -Tas bija pirmajā braucienā no Ariane 5, un tā
iznīcināšana notika tāpēc plaisāt iestrādāta
raķeti programmatūras.
>> -Uz Ariane problēma bija tā, ka tur bija vairāki, kas
prasa 64 bitu izteikt un viņi gribēja, lai pārvērstu to
uz 16 bitu numuru.
Viņi pieņem, ka skaits bija nekad
būs ļoti liels,
ka lielākā daļa no šiem 64 bitu skaitu cipariem bija 0s.
Viņi bija nepareizi.
>> -No vienas programmatūras programmas nespēja pieņemt
veida numurs, ko cits bija saknē
mazspēja.
Programmatūras izstrāde ir kļuvusi ļoti dārga daļa
Jaunā tehnoloģija.
Ariane 4 raķete bijusi ļoti veiksmīga.
Tik daudz par programmatūras radīta tā tika izmantota arī
ar Ariane 5.
>> -Galvenā problēma bija tā, ka Ariane 5 bija ātrāks,
paātrināta ātrāk.
Un programmatūra nav jāatskaitās par to.
>> -No raķešu iznīcināšana bija milzīgs finanšu
katastrofa, visi dēļ minūšu programmatūras kļūdas.
Bet tas nebija pirmā reize datu pārveides problēmas bija
mocīja mūsdienu raķešu tehnoloģiju.
>> DAVID Malan: Mēs atstāt to, ka.
Bet tas ir apliecinājums, cik piemērota pat daži
šie zemākā līmeņa informācija, kas mēs esam sākuši
izpētīt šodien ir.
Tā pat kā jums mazliet apjucis varbūt daži no
sintakse un arcaneness šeit, saprotam, ka pār
Termins mēs koncentrēsies tikai uz to, kā piemērot šo ir
pasaulēm tālu aiz CS.
Mēs redzēsim tevi trešdien.