>> [Video atskaņošana]
>> -A Triumfs matemātisko un mehāniskās prasme
tas ir liels jaunu automātisko kalkulators Hārvardas universitātē.
Sarežģīts problēmas matemātikā likts caur mašīnu kodētā veidā
lentē ir precīzi risināti minūte daļu laika vajadzīgs
cilvēka aprēķinam.
Izstrādāts, lai paātrinātu visu veidu formas matemātisko un zinātniskā pētniecība,
milzu mehāniskās smadzenes strādās ASV Navy līdz kara beigām.
>> [Beigtu atskaņošanu]
>> DAVID J. Malan: Tas ir CS50.
Pagājušais bija maģisks vieta, bet, ja jūs esat kādreiz
brīnījās, kas tas ir ierīce in Harvard Science Center,
tas ir patiešām daļa no Harvard Mark I, un tas ir
uz displeja tur tagad pēdējo daudzu gadu garumā.
Un ko jūs redzēsiet iestrādāta problēmu kopumu
viens ir apskatīt aizkulises par to, ko šī ierīce bija, un tas,
no profesora Harry Lewis, kurš ir datorzinātņu departaments šeit.
Tik daudz par ka tikai mazliet.
>> Bet šodien mēs sākam pāreju no pagājušajā nedēļā uz šo,
un mēs atnesīšu pieminēt Vienas fotogrāfijas šeit
tas ir faktiski diezgan slavens.
Vai kāds zina, ko tas šeit ir uz ekrāna?
Vismaz saskaņā ar mītu.
Jā.
Mērķauditorija: Pirmais vīruss.
DAVID J. Malan: Tātad tas bija it Pati pirmā faktiskais bug datorā.
Tagad patiesībā vārds bug, par kļūdu kādā programmā,
ir kopā ar mums, lai kādu laiks fiziskajā pasaulē,
un šī bija viens no pirmajiem dokumentētas reizes kur kāds faktiski
noplūktas lielu kožu no Mark II dators, likt to saistvielu,
un pēc tam reģistrē to kā pirmā zināmā bug
lai faktiski ir atrasti fiziski.
Tātad Tādējādi tika ievadīts ka uz šodienas mācība.
Viss no pēdējās nedēļa ir pieejams tiešsaistē.
Jo īpaši resursu, ka jūs varētu ne vienmēr paziņojums, it īpaši
ja nāk šeit personīgi.
Tātad viena no mācību puiši ik gadā padara kanonisko kopumu piezīmes,
tāpēc jums nav nepieciešams turēt galvu uz leju, cenšoties
pārveidot visvairāk neko kas varētu notikt šeit klasē.
Tāpēc jāsaprot, ka tie tā sauktais [? Scribd?] Piezīmes
tiešsaistē, protams, slaidi un pirmkodu, ka mēs izmantojam klasē.
Mēs izgatavojam pilnu tekstu stenogrammas pieejamas kā labi.
Tātad, ja jūs neskaidri atceros kādu termins, un vēlas, lai skatīties to uz augšu mazliet
vieglāk, saprast, ka viss no tā ir meklējams tiešsaistē.
Kā arī walkthroughs, kā arī.
Patiešām, šodien mēs sākam apskatīt zemāka līmeņa programmēšanas valoda,
drīz, lai būtu zināms mums kā C, un tas ir ļoti viegli
līdz veida pazust jau pēc pāris brīži laiks, un tad sava veida brīnums
kā mēs faktiski ieguva dažas vairāk sarežģīts piemērs no vienkāršākā.
Un tā saprotu, mēs ķirsis uzņemt klasē kādā laikā
no uzskatāmiem piemēriem, bet apzināties, ka tik daudz ir arī
pieejami tiešsaistē, lai jūs varētu strādāt caur to pie sava gaita,
tomēr esat visērtāk.
>> Bet mēs left off ar programmas, kas bija tieši šis.
Tāpēc es noklikšķiniet uz zaļo karogu, un ko šī programma dara?
Saka, hello, pasaule.
Tas padara kaķis teikt sveiki viņa maz pasaulē
augšējā kreisajā pusē no nulles, lietotāja interfeiss.
Bet mēs sākām ieviest daži terminoloģija pagājušajā nedēļā.
Un tā, lietas, piemēram, to mēs sauc, ko?
Kāda varētu būt vispārējs termins par šo?
Jā.
Metode vai paziņojums.
Protams, tas ir rīcība.
Dariet to.
Un tomēr tur bija citas formas nulles,
Bez šiem tā saukto apgalvojums, tie bija arī
lietas, piemēram, tas, ko mēs sauc par ko?
Jā.
Tik cilpa.
Un, šajā gadījumā, šī lieta atkārtojas, protams, 10 reizes.
Tur ir mūžīgi bloks.
Tur ir pāris citiem.
Un šodien mēs ejam, lai redzētu, kā tulkot šo vairāk mūsdienu pasaulē,
ja jūs, pat ja tas ir gatavojas ierasties pēc pirmā acu uzmetiena
būt daudz vairāk arcane.
Bet tie tiešām bija cilpas.
Un tad mums ir lietas, piemēram, Tas, kas bija šo formu,
un būtībā uzdotie jautājumi.
Un mēs minēts kā tie, ko?
>> Mērķauditorija: Būla izteiksme.
>> DAVID J. Malan: Jā.
Būla izteiksme.
Kaut ko, kas ir vai nu patiess, vai nepatiesa, jā vai nē, viena vai nulle,
tomēr vēlaties apskatīt pasauli.
Bet mēs sauc tos Bula izteiksmes, un mēs pievienojiet tos
par nosacījumiem, vai filiāles.
Un pasaulē Scratch, viss labi
atslēgām attiecībā uz tās formu, ja tas padara loģisku jēga to darīt,
bet jums nav apstāties pie tikko darot vienu lietu nosacīti,
Jums var būt proverbial dakša uz ceļa
un darīt vai nu to vai ja nosacījums ir taisnība, vai ne.
Un tad, kā jūs redzēsiet, Ja jums vēl nav,
Jūs pat varat ligzdo šos blokus.
Tātad Scratch aug aizpildīt formas ka jūs varētu vēlēties, lai ievietotu tajā,
lai jūs faktiski var izteikt visvairāk jebkurš loģiski, ka jūs varētu vēlēties darīt.
>> Tagad daži vārdi paziņojumu lai gan šeit, gan New Haven.
Tātad pārgriešana sākas šodien.
Par šo URL ir par kursu s mājas lapā, par tiem svešs.
Sekcijas būs iespēja saņemt kopā
būtu daudz vairāk intīmo vidi kā [? Sanders?] Pieļauj,
ar 10 līdz 20 klasesbiedriem ar mācību līdzstrādnieks dažādām trasēm,
un dažādi tempus, ja jums tā izvēlēties.
Patiešām kursa piedāvājumu dažādas sekcijas
tiem mazāk apmierināti, vairāk ērts, un kaut kur starp,
un loma īkšķis šeit, ir tur nav formāla definīcija,
bet, ja tu esi tik ērti, jūs veida zināt to.
Tu esi mazliet bezbailīgs Par Ideja par pastiprināšanu kāju, iespējams, atpakaļ
klasē, vai parādot līdz pat starp sadaļā.
Ja esat bijis programmēšana kopš tevi bija seši gadi, ērtāk,
varbūt jums.
Un, ja tas ir sava veida mētāt-up, tas ir tieši tas, ko pa vidu
ir domāts, lai būtu.
>> Tagad, pa to laiku, par klasi šo lielumu,
tas aizņem mums diezgan kādu laiku, lai sadaļu visi, tāpēc mēs esam tā saukto,
super sekcijas, nāk klajā šī nedēļas nogalē un nākamās nedēļas sākumā,
tāpēc to apskatīt kursa mājas lapā tiem, kas ir, protams plašs,
un arī filmēja tiem kas nevar padarīt tos.
Un sekcijas paši sāks nedēļā trīs no CS50 nulles indekss.
Problēma noteikti 0 jau par kursu mājas lapā.
Un saprast, ka jums ir deviņas vēlu dienas šis semestrī.
Tātad tas ir jauninājums no pēdējās gads, kad mums bija piecas vēlu dienas.
>> Tātad, ja jūs domājām, mums ir deviņi problēmu kopas.
Jums ir deviņi vēlu dienas, no kuriem katrs jūs varat tikai tērēt vienu nedēļā on.
Tas faktiski padara visu problēma noteikti dēļ Piektdiena,
bet mērķis ir likt nedaudz mazliet psiholoģisko spiedienu
par jums, lai mēģinātu iegūt lietas ceturtdien
jo, kā jūs drīz atklāt, lai labāk vai sliktāk, visvairāk
viss programmatūras pasaulē nonāks ņemot daudz ilgāk, nekā jūs prognozēt.
Tāpēc uzskatu to par sava veida par iespēju palīdzēt
yourself mērķa ceturtdien, bet būt apmierināts, ka, jā,
viss ir saistīts piektdienā.
Un, ja jūs iesniegt tos Ceturtdiena, tas ir brīnišķīgi.
Nav bonusa punktiem vai papildu kredīts, lai sasniegtu šo termiņu.
Tas ir domāts, lai būtu tikai kruķi.
>> Un darba laiks, gan šeit un New Haven,
personīgi, ja vēlaties tikties ar kādu no mūsu kursiem
mācību stipendiātiem un CAS palīdzības.
>> Viss kārtībā.
Tāpēc tagad, pieņemsim padara šo reālāks.
Un uz brīdi tas notiek, lai sāktu lai iegūtu nedaudz vairāk mistisks, bet ļoti
ātri piektdien un nākamnedēļ mēs būsim
var darīt daudz vairāk nekā mēs varētu līdz šim ir nulles.
Tātad mēs iepazīstinājām kodu pēdējo nedēļā, lai gan pictoral.
Tas bija puzzle gabalus.
Un mēs formāli, ka tas ir kaut ko sauc par pirmkodu,
bet tomēr izskatās?
Nu, tas izskatījās mazliet kaut kas tamlīdzīgs.
Un, patiesībā, tikai veida ķircināt kur mēs varam iet ar to.
Es iešu uz priekšu un atvērt logu šeit,
un es esmu tikai gatavojas izvēlēties jaunu failu.
Un es esmu gatavojas, lai saglabātu šo failu kā kaut ko līdzīgu sveiki dot c.
Vairāk par šo izvēli vārdus tikai brīdi.
Un tas ir tas, kā kāds varētu iet par rakstveidā programmu.
Iekļaut standarta I / O dot h, int galvenais par spēkā neesošu, un pēc tam atvērt cirtaini lencēm, close
cirtaini lencēm, printf sveiki komats pasaule, slīpsvītru n, semikols, Save, darīts.
LABI.
Es esmu uzrakstījis mans pirmais programma, bet tas notiek
būt neticami underwhelmed jo, kad es tiešām
palaist šo programmu, protams, ar pirmo rakstiski darīt sveiki,
un tad DOT slash hello, un mēs iet caur to daudz detalizētāk
pēc brīža, tas ir viss, tā dara.
Nav pop atvērt visus logus.
Tas nedara neko īpaši fancy.
Viss tas ir tas, ko es teicu, lai darīt, bet kā mēs nokļūt, ka?
Un kā mēs balstīties uz to?
Nu, pieņemsim ieviest dažus dažādi jēdzieni šeit.
>> Tik viens, mēs esam par to, lai sāktu izmantojot programmu, ko sauc kompilators.
Kompilators pastāv Mac OS, Windows, Linux, jebkurš no operētājsistēmām skaits,
un mēs drīz jūs iepazīstināt ar vide, kas mums būs izmantojot,
bet kompilators ir tikai vispārējs termins gabals programmatūras
kas ņem pirmkodu un ražo objekta kodu no tā.
Citiem vārdiem sakot, ja jums ir kā ieejas signāla avotu
kods, kaut kas līdzīgs, ko es tikko drukāti, tas galu galā rada objekta kodu.
Un objekts kods ir patiešām vienkārši iedomātā veids, kā pateikt, ka izejas
nulle s un viens ir.
Citiem vārdiem sakot, avots kods, pat ja tas ir
skatīsies mazliet arcane, un nedaudz mazāk draudzīga
nekā nulles pēc pirmā acu uzmetiena, tas ir vismaz kaut kas
ka mēs cilvēki var saprast.
Tā veida izskatās un izklausās Angļu pat ja tas ir ļoti īss.
Tā plānošanu nulle s un viens ir, kā mūsu priekšteči bija jādara,
Pirms dažiem gadiem, nebija īpaši jautri izaicinājums.
Un tomēr, tas ir tas, ko dators joprojām saprot.
Tātad kompilators izpaužas mūs no pirmkods iebilst kodu.
Tas ir tāpat kā atvērt failu ar kompilatoru, un, kad jūs to saglabāt,
jums tās nullēm un uzņēmumiem.
Tātad mēs redzēsim, kā to izdarīt ka tikai brīdi.
>> Bet pieņemsim tagad cenšamies nodrošināt tiltu starp pagājušajā nedēļā, un tas,
tā ka pat tad, kad mēs get hung up par lietām, piemēram, cirtaini bikšturi,
un semikoliem, un iekavas, un visi šie intelektuāli interesanti
aspekti programmēšana, ka ļoti saprotams ceļojums cilvēkus agri,
saproti, ka visas idejas šodien, ir tādi paši kā pēdējais.
Tātad pēdējais, mēs redzējām šo piemēru šeit, Hello World programmu.
Nu, sākot ar šodienu, ja mēs gribam lai īstenotu šo pašu programmu,
tas notiek, lai izskatās mazliet kaut kas līdzīgs šim.
Un mēs izskaidrot pirms ilgi kādā int, un galvenais, un par spēkā neesošu, un visu, kas
ir, bet vismaz es redzu šeit jau pazīstami Hello World.
>> Tikmēr, lietas, piemēram, funkcija, teiksim sveiki,
ir ļoti vienkārši būs ļoti vienkāršs apgalvojums, kā šis.
Printf hello world, ar dažiem citātus, ar slīpsvītru,
ar semikolu, bet vairāk par to, lai nāk.
Cilpas, tikmēr tas ir cilpa, kas, protams, saka sveiki pasauli uz visiem laikiem,
un tas viens ir gatavojas izskatās mazliet dīvaināks nekā pēdējā,
bet, ja es kaut ko teikt tāpat, lai gan ir taisnība, es
pēc tam var izdrukāt Hello pasaule atkal un atkal un atkal un atkal.
Un tad, kā jūs varat veida no sākuma, lai secinātu šeit,
šī konvencija, izmantojot cirtaini bikšturi ir laipns
līdzīgu aptverošu izrobots līnija koda tur.
Printf līnija koda līdzīgi dzeltenais puzzle gabals augšas.
Tātad mēs nebrauksim teikt visiem laikiem, mēs ejam teikt, bet taisnība,
bet mēs redzēsim, kāpēc tas ir tikai mazliet.
>> Tikmēr, ja mums ir cilpa, piemēram, tas, kur jūs atkārtot kaut ierobežots
numurs reizes, šo vienu too tas ir gatavojas veikt mazliet jāpierod
to, bet tas notiek teikt par int i kļūst nulle, i mazāk nekā 10, i ++,
un tad printf vēlreiz.
Bet tur būs modeļus.
Un tiem no jums pazīstami ar AP datorzinātnēs vai Java,
vai kādu citu valodu skaits, gandrīz visas no šīm konstrukcijas
Līdz šim vajadzētu izskatīties galvenokārt pazīstams.
>> Tik mainīgs.
Tātad, šeit ir vienkāršs Scratch izvilkums ka nosaka mainīgo sauc counter līdz nullei,
un tad uz visiem laikiem saka skaitītājs, un tad tas izmaina skaitītājs pa vienam.
Tātad, tas sākas ar nulli, un pēc tam viens, divi, trīs.
Nu, kā varētu mēs ieviest, ka Šī jaunā valoda mazliet līdzīgi?
Int skaitītājs ir vienāds nulle, bet taisnība, kas
ir tas, ka pati ideja no pirms darīt kaut ko uz visiem laikiem,
un es esmu tikai gatavojas printf.
Un tagad tas kļūst mazliet dīvaini, procenti i, bet vairāk par to, lai nāk,
bet šīs idejas ir tieši tāds pats.
Mēs tikai tagad ir jāievēro sintakse, ka dators ir
gatavojas pieprasīt no mums.
>> Būla izteiksme, kaut ko līdzīgu sx mazāk nekā y, vai x mazāk nekā y,
un y ir mazāks par z.
Tas notiek, lai izskatās mazliet kaut ko kā šis, ar iekavas tikai
tāpat math labs pasākums, lai tikai nodrošina, ka operāciju kārtība
ir, kā mēs plānojam.
Un tagad, nosacījumi.
Tātad, ja x ir mazāks nekā y, teiksim x ir mazāks nekā y, cits ja x ir lielāks nekā y,
teikt x ir lielāks nekā y, citādi loģiski, x ir vienāds ar y.
Lai jūs varētu īstenot kaut kas līdzīgs tas nulles,
vai jūs varētu īstenot tas šajā sintaksi.
Un atkal, cirtaini bikšturi ir sava veida dodot mums to pašu formu kā puzzle
gabali, bet sintakse, tagad ir iespējams sāk ievērot dažus modeļus.
>> Tātad, ko tas dod mums šeit?
Tātad mēs esam atpakaļ, tad mūsu galvenajā programmā.
Pieņemsim faktiski, tagad, kaut ko darīt ar to.
Tātad tas pats pirmais line mēs redzam asas ietver,
standarta I / O, punkts h, un tad daži dīvaini leņķis
iekavās zem ka. int main par spēkā neesošu, un tad printf hello world.
Tik vienkārši veikt soli.
Kāds, kurš nekad nav ieprogrammēts agrāk, vismaz paskaidrot vienu no šīm līnijām.
Izmantojot varbūt daži žargons pagājušajā nedēļā.
Kas ir printf, piemēram?
Jā.
>> Mērķauditorija: [dzirdams]
>> DAVID J. Malan: Jā.
Tā ir funkcija, vai paziņojums, No pagājušās nedēļas terminoloģiju.
Un tas ir darbība ka dara kaut ko.
Tagad šī funkcija, vai Šis apgalvojums, vai
tas, šķiet, veikt kādu ieejas?
Un kāda jēga to dara šķiet, veikt ieguldījumu, ja tā?
Input, Ko es domāju ar šo?
Jā.
>> Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā.
Tātad Scratch no pāris puzzle gabalus kur jūs varat parametrize to.
Jūs varētu pateikt atkārtot bloķēt cik reizes atkārtot,
tā ka bija ieguldīto veidu, un tāpat kā Scratch
bija mazliet balta vietturi skaitam jūs ierakstiet,
tāpēc mēs izmantojam šajā Teksta pasaules iekavas
lai dotu mums, ka apaļu formu kurā mēs varam plug savu ieguldījumu.
Galu galā, desmitiem gadu atpakaļ ja šī valoda, ko sauc par C,
tika izgudrots neviens Paredzams, tas ir viens no mums,
šos dažus gadus vēlāk, mēs gribētu gribu funkcija, kas saka sveiki.
Tiesības?
Tas lūdzu būt jauki, ja būtu puzzle gabals vai atslēgas vārdi,
ka sauc sveiki, ka burtiski vienkārši saka sveiki.
Bet mums nav nepieciešams, ka.
Mēs varam būt kaut kas daudz zemāks līmenis, piemēram, ģenērisko drukāt
komanda, kas ņem ievadi, un izdrukas kāds mēs gribam.
Tātad paziņojums tagad modelis kas sāks parādīties.
Atvērt paren, tuvu paren ir acīmredzot aptverot ievadi,
un tad es redzu dubultā citātus abos galos.
Joprojām dīvaini slīpsvītra n, bet cerams, ka tagad jūs
var sākt iztēloties, ka vismaz printf veic sava veida ieguldījumu.
Ne tik lietotājam draudzīgi, kā Scratch, bet tas ir tikai
tāpat tam pievienots kādu vērtību tur.
>> Labi, tagad pieņemsim faktiski kaut ko darīt ar to.
Tāpēc daži no jums varētu zināt no kam iepirkušies klasi pirms,
tērzēja ar draugiem, ka daudzus gadus
mēs izmantojām kaut ko sauc CS50 ierīce.
Tas bija termins, kas apraksta tehnoloģijas sauc par virtuālo mašīnu, kas
ir gabals programmatūra, kas jūsu priekšteči varētu lejupielādēt off
Kurss mājas lapā par brīvu.
Viņi arī lejupielādēt bezmaksas gabals programmatūras sauc hypervisor,
kaut ko sauc, piemēram, VMware, vai VirtualBox, vai jebkurš skaits
no citiem rīkiem, un par to Mac vai PC vai kāds dators viņiem bija pagājušajā gadā
un gadu iepriekš, tie būtu dubultklikšķi uz ikonas
palaist šo programmatūru sauc hypervisor.
Un tad iekšpusē šo programmu tie pavērtu CS50 ierīci.
Un efekts bija, ka vai priekštecis jums
skrēja Mac OS vai Windows, viņš vai viņa pēc tam
Pēc tam bija jaunu logu uz to ekrāns darbojas CS50 vidi.
Tātad virtuālā mašīna ļauj palaist vienu operētājsistēmu iekšpusē citu,
un tas ir tieši tas, ko mēs darījām.
Visā lielākā daļa, protams, mēs izmantot operētājsistēmu, ko sauc
Linux, īpaši Ubuntu Linux, un tas
ir ļoti jauks veids gadu pagātnē Pārliecinoties, ka ikvienam gaitā
tikko bija tā pati vide.
Un jūs varat izmantot jebkura veida dators, kas jūs tiešām vēlaties.
Starp ēnas, lai gan, bija tas bija, piemēram, diviem gigabaitiem
lejupielādēt šo lietu.
Tas ne vienmēr strādā super labi cilvēki, kuru datorus, kas varbūt tikai
bija GIG vai tik RAM, vai ne pārāk daudz gigahercu CPU ātrumu,
un tāpēc šogad, lai šo un citu iemeslu dēļ,
ir mums ir pārejot šai videi.
Ts CS50 IDE, kas ir pamatojoties uz atklātā pirmkoda programmatūru,
un atbalsta platforma ka uzņēmums, ko sauc Cloud9
atbalsta Eiropā, kas ļauj mums būt pamatā
ka tieši tādu pašu vide kā gadu iepriekš, bet tā saukto mākoni.
>> Tātad, kas ir mākonis?
Jūs droši vien esat noklikšķinājis tā ikona uz jūsu Mac vai PC.
Kas ir mākonis?
Yeah?
Mazliet skaļāk.
Jā.
Tas ir tikai ķekars datoriem citur, kas uzglabā datus un palaist
programmatūru un tamlīdzīgi.
Tātad, tas ir tiešām tikai ar vārdu de jure aprakstīt [? nomājams?]
datori, kas dzīvo citur.
Ka jums, sevi, ne vienmēr paši.
Tātad, ja jūsu dati, vai jūsu programmas, ir mākonis,
tas tikai nozīmē, ka tas ir uz kādu cits datori citur,
un nevis, visticamāk, par savu fiziskā klēpjdatoru vai galddatoru.
Un tā tas, ko CS50 IDE tagad ir.
>> Turpmāk jūs doties uz noteiktu URL, kas būs jūs iepazīstināt
to, jo problēma ir noteikts 1, vēlāk šajā nedēļa, kas būs pēc tam, kad piesakoties,
sniegt jums šo vidi.
Un līdzīgi Scratch bija daži atšķirīgi paneļi iesaistīti,
tas pats CS50 IDE ir tieši tā.
Augšējā kreisajā pusē šeit, jūs esat gatavojas redzēt pazīstamas failu pārlūks.
Tātad kāds no failiem, kas jums nodot šajā vidē
ir tikai tiks uzskaitītas.
Failus un mapes.
Uz augšu tepat, jūs gatavojas redzēt vietu
kur jūs faktiski var rakstīt savu kodu.
Sākotnēji C, vēlāk Termins PHP un JavaScript,
un, varbūt final projekti, Ruby vai Java vai Python
vai kādu valodu skaits ir atbalstīta šajā vidē.
Tas nemaz nav piesaistīti uz CS50 konkrēti.
>> Un tad apakšējā stūrī šeit, jo īpaši tiem, ērtāku,
jums ir kaut kas sauc par termināla logu.
Un šī termināļa logs ļauj jums izpildīt jebkuru komandu, kas jums
gribu šajā mākonis vidē.
Tas ļauj jums, lai instalētu jebkādu papildu programmatūra
ka jūs vēlaties, jo jūs esat tā sauktais saknes, vai administratora privilēģijas.
Tātad citiem vārdiem sakot, pat ja tas galu galā izvietots mākonis,
un, lai gan mēs esam vienkāršota to zināmā mērā
pēc noklusējuma, burtiski ieviešot, Pateicoties Dan Armendariz, un Dino,
un Dan Bradley uz CS50 komanda virs tā pagātnē daudzus mēnešus, mazāk ērts
režīms, kas slēpj daudz no sākotnēji jauc traucējošos.
Viss pastāv uz veido tipisku datorsistēmu
ka jūs varētu izmantot reālajā pasaulē.
>> Tātad, ko tas viss nozīmē, un Ko mēs varam reāli darīt ar to?
Pieņemsim faktiski pieņemt palūrēt pie programmas.
Tāpēc es esmu gatavojas atvērt Faktiskais vide šeit,
kas ir tikai mūsu Chrome pārlūks, kas varētu būt Firefox,
varētu būt Internet Explorer, vai kādu citu pārlūku, kā arī.
Tas ir pilnībā pārmeklēta šeit uz šo brīdi.
Un es gribu, lai faktiski ķircināt izņemot to, ko šī programma bija.
Tātad, pieņemsim to apskatīt, uzklikšķinot uz augšu top, to, ko es darīju, un kā es saņēmu šeit.
Tātad, šeit ir tie, precīzs paši rindas kodu.
Tātad šis ir apgalvojums, kā jūs jau iepriekš minēts.
Funkcija, kas saka sveiki.
Cirtaini bikšturi, par line četri un seši līnija,
domājams veida piešķīrumiem ka līnija saistīt to
ar būtību manā programmā.
Tātad tiešām, šis atslēgvārds galvenais, tas ir tur augšā uz līnijas trīs,
Jūs varat iedomāties, ka ekvivalents no ka tad, kad zaļais karogs uzklikšķināt,
bloķēt in nulles.
Tātad tas ir viss, kas mums ir šeit, ir, kad zaļš karogs uzklikšķināt, izdrukāt, vai teikt,
Sveika pasaule.
>> Bet pieņemsim minējums, tagad, ko Tas, pirmkārt, vairāk arcane līnija, ir.
Sharp ietver, open leņķveida kronšteins, standarta I / O dot h,
aizvērt leņķveida kronšteinu.
Kas ir tas, ka, iespējams, dara, it īpaši, ja jūs esat programmēt
pirms kādā citā valodā.
Yeah?
>> Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā.
Tieši tā.
Tātad šis dod jums piekļuvi bibliotēka, tā sakot, no funkcijām.
Un bibliotēka funkcijām ir funkcijas, ka kāds cits
rakstīja: nu nesen vai sen, lai jūs
nav no jauna jāizgudro ritenis.
Piemēram, mums nav ir jāzina, 2015. gadā,
kā rakstīt kodu, kas liek raksturs uz mana ekrāna.
Kāds cits ir izpētījuši, ka veic ar printf funkciju
lai es varētu kārtot abstraktās prom no ka, vai slānis
virsū viņa vai viņas kods, un tagad lietojiet tikai
par pašsaprotamu, ka jebkura programma man uzrakstīt var drukāt kaut ko uz ekrāna.
Tātad šī pirmā rinda tur vienā solī ietver tā saukto header failu
standarta bibliotēkā.
Tātad redzēt, ka valodu ko mēs tagad strādājam
bija standarta bibliotēka ar daudzām funkcijām.
Printf ir viens no tiem, un ka pirmajā rindā kodu
nozīmē, iedodiet man piekļuvi šīs funkcijas, tā ka es
nav jauna, ka ritenis.
>> Tagad iesim uz apakšējā loga un darīt tieši to, ko es darīju pirms tam.
Pirms mirkļa, kad es biju whizzing izmantojot kodu,
ierakstot to, pirmo reizi, Es ļoti ātri drukāti, veikt sveiki.
Ko tas viss bija jūs uzminēt?
Kas bija daru?
Yeah?
Aizmirsti.
Ir labi.
Jā.
Mērķauditorija: apkopošana to.
DAVID J. Malan: Jā.
Tas bija tikai apkopojot to.
Tiesības?
Pat tad, ja tas ir pilnīgi svešs jums, tas ir diezgan angliski, piemēram.
Tas, protams, nav nulles un tiem, tāpēc es joprojām
ir nepieciešams, lai palaistu to, izmantojot tā sauktās programma, kompilators, kas notiek
ņemt to kā ievade un ražot produkciju.
Un vismaz pagaidām, jo šis Linux vidē,
bet tas nav priekšnoteikums, tas ir tieši tur, kur mēs sāksim,
jūs parasti mijiedarbojas ar datorsistēmas, piemēram, tas
ar tā saucamo komandrindas.
Tātad ar mirgojošu ātru un klaviatūras,
un ne tik daudz jūsu pele, un nav tik daudz logi un ikonas un izvēlnes,
drīzāk viss ir teksta.
Un, pat ja tas jūtas, sākumā skatiens, varbūt, kā solis atpakaļ,
tas ir tiešām daudz vairāk Spēcīgs un izteiksmīgs veids
kontrolēt datoru jo īpaši jums,
sevi, kļūt ērti no mazāk.
Tas notiek, lai jūs varētu darīt daudz vairāk lietām nekā tikai to, ko Microsoft
vai Apple ļauj darīt ar to grafisko operētājsistēma.
>> Tātad, kad es hit Enter, tagad, nekas nenotiek šoreiz
jo acīmredzot Programma sveiki ir atjaunināta.
Un kāda bija komanda Es skrēja pēc tam?
Dot slash hello, un Hello World.
Tagad pieņemsim veikt soli atpakaļ tikai brīdi.
Izrādās, ka padarītu sveiki ir tikai vienkāršots veids, programmas sastādīšanas.
Pieņemsim tikai iepazīstināt viens gabals žargonu,
bet tad attālināties no tā, jo tas nav
visu, kas interesants šodienas vajadzībām.
Kompilators mēs ejam, lai sāktu izmantot sauc šķindēt, par C valodā.
Un tas ir programma, kas ir palaist tikai tāpat kā mēs to darījām pie komandrindas tur.
Un tāpēc, ja es gribu sastādīt programmu, kas man
ir rakstīts failu sauc sveiki dot c, es burtiski vienkārši ierakstiet šķindēt sveiks C
ienākt.
>> Smieklīgi ir tas, vēsturisku iemeslu dēļ,
ja man nav precizētu programmas nosaukums
ka es gribu, lai produkciju, ja man nav norādiet faila nosaukumu šīm nullēm
un tiem, ļoti dīvaini pirms Konvencija tika pieņemta gadi
ja tā uzskata, sava veida laba atbilde tajā laikā,
labi pieņemsim tikai patvaļīgi zvanīt Pirmā programma mēs apkopotu dot out.
Nāk pirmais alfabēts.
Out, tas ir izejas.
Tātad mēs saucam par programmu pēc noklusējuma dot out.
Un tas ir labi, jo, ja es gribu palaist programmu šajā tekstā, pamatojoties
vide, es vienkārši ierakstiet dot slash ir dot out ienākt.
Un tas būtu darboties tieši tā, kā agrāk.
Tātad, pieņemsim redzēt, ka reālā ātri.
>> Tātad, ja es iet atpakaļ uz manu pirmkodu CS50 IDE,
un es tā vietā darīt, šķindēt sveiki gultiņa c ievadīt, paziņojums nekas, šķiet, notiek,
bet gandrīz vienmēr šis Linux vidē,
ja nekas slikts, šķiet, notiek, ka ir kaut kas labs patiesībā noticis.
Ja jūs neredzat kļūdu ziņa, viss ir iespējams, labi.
Un tiešām, ja man tagad darīt dot slash ir punkts out ieiet, es esmu palaist manu pašu programmu.
Man joprojām ir Hello programmu no agrāk, jo patiešām, tas ir
būs tik daudz jaukāk vienkārši tips padarīt vietā atcerēties
šie buramvārdi par komandas, bet pieņemsim redzēt, kā mēs
varētu uzlaboties pēc tam, tomēr.
>> Tātad, tas ir komandu sastādīt kodu.
Šī ir komanda, lai palaistu tam apkopoti kodu.
Kā es varu norādīt faila nosaukumu?
Nu pieņemsim tikai iepazīstināt vēl viens gabals žargonu.
Kad tu esi tas teksta pamatā vide,
jūs gatavojas vēlaties norādīt lietas, ko sauc komandrindas argumentus.
Kura ir tikai iedomātā veids, kā pateikt, Citiem vārdiem pie ātru, ka
kniebiens uzvedību neatkarīgi Programma jūs darbojas.
Tātad īpaši programma es esmu darbojas, ierakstot vārdu šķindēt,
ir programma, ko sauc šķindēt.
Tātad šis ir vai old school ekvivalents dubultklikšķi
Microsoft Word vai dažas programmas ikona.
Es esmu nevis vienkārši ierakstot savu vārdu, bet šajā versijā komandu,
Man tad ir domuzīme o telpas sveiki telpa sveiki dot c.
Tātad, pat ja jūs nekad neesmu spēlēja šajā pasaulē, pirms,
lietojiet tikai minējums, ko tas domuzīme o sveiki darīt?
Vai ko tas pateiks šķindēt darīt?
Jā.
>> Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā.
Tas tikai nosaka faila izejas būt sveiki, nevis no sillier dot out.
Un, protams, pieņemsim mēģināt šo.
Tātad, ja es tagad daru, vispirms Darīsim to, r m sveiki.
Tas ir noņemt.
Un tas notiek teikt Noņemt regulārs fails hello, kas
ir nevajadzīgi Arcane, bet tas tikai līdzekļus jūs vēlaties izdzēst failu,
un es rakstīt Y Jā.
Un paziņojums, ja Jums bija glancing augšā pa kreisi, tā pazūd no tur.
Ļaujiet man tagad darīt šķindēt domuzīme o, un Es esmu gatavojas iet uz priekšu un darīt sveiki,
visās cepures, hello dot c.
Tagad, ja man dot slīpsvītru sveiki, ko jūs sagaida?
>> Varbūt tā ir reģistrjutīga.
Varbūt tas nav.
Paskatīsimies.
Nav tāda faila vai direktorijas.
Un mēs varam veida apkrāptu ar tikai apskatot augšējā kreisajā stūrī.
Ko darīju es, protams, saglabājiet programmu kā?
Visi cepures sveiki.
Tik tiešām, kas notiek, lai kaut ko mainīt.
Tāpēc tagad sveiki pasaule ir atpakaļ.
Tagad tas viss ir labi un labs, un visi ir ļoti prātā-numbing,
to veida saņemt bogged noteikti tie detaļas, bet tās izpratni
ir labi.
>> Rakstīt šos arvien garās buramvārdi
nav būs īpaši jautri, tāpēc cilvēku pasaulē
izgudroja citu programmu, Pirms dažiem gadiem, ko sauc
padarīt, ka gluži vienkārši ļauj jums rakstīt marku,
nosaukums programmas Jūs vēlaties, lai, un padarīt
ir gudrs, jo tas izskatīsies pašreizējā mape, aka direktorijā,
un, ja jums ir fails sauc sveiki dot c,
tas ir fails būs apkopot Jums par programmu, ko sauc sveiki.
Tātad, tas ir daudz vienkāršāks veids darot vairāk mistisks komandas
ka mēs darījām agrāk.
Un mēs esam iepriekš konfigurēta CS50 IDE zināt
ka tas būtu jādara domuzīme o un vairākas citi karogi, vai komandrindas argumentus,
ka mēs redzēsim pirms ilgi.
>> Bet pieņemsim tagad faktiski darīt kaut ko interesantu.
Just rakstīt out Hello pasaule visu laiks nav tik pārliecinoši.
Tāpēc ļaujiet man iet uz priekšu un pārmaiņas šī programma un teikt, sveiki David.
Tagad es esmu gatavojas iet uz leju šeit.
Es esmu gatavojas iet uz priekšu un darīt padarīt Sveiki.
Un atkal tagad jūs redzēt padarīt rāda jums ilgāk
secība komandas, kas tas ir dara, jo mēs esam iepriekš konfigurēta
tas, ka veids, bet mēs nav jāuztraucas tagad
ko tas dara cits, nekā tas ir apkopojot dot slash Hello, Hello World.
Kas noticis?
Jā.
>> Mērķauditorija: [dzirdams]
>> DAVID J. Malan: Jā.
Tātad, noobie kļūda.
Es ievēroju, tas ir super smalks, bet zvaigznīte šeit, tab,
tikai nozīmē, ka jūs neesat saglabājis to, un pārlūkprogrammām un citas programmas
izdarītu reizēm.
Tātad kontrole s vai komandu s vajadzētu saglabāt.
Tagad ļaujiet man iet uz priekšu un atkārtoti palaist programmu.
Recompiled.
Tiesības, tāpēc tas ir daudzpakāpju process.
Neviens no tiem ir īpaši sarežģīts, bet jebkurā laikā mēs mainīt failu,
mums ir nepieciešams, lai mainītu Iegūtais nullēm un tiem, un dot slash sveiki.
Vau.
Tātad šī ir ļoti underwhelming ka mēs vienkārši izdrukāt to.
Veidosim lietas nedaudz dinamiskāks, tagad.
>> Nu izrādās, ka, piemēram, Scratch, C atbalsta mainīgajiem.
Un izrādās, ja jūs vēlaties ir mainīgs lielums, veikali,
nav numurs, piemēram, mēs parasti darīja ar nulles,
bet, piemēram, vārda, vai frāze vai vārds, jūs
var norādīt mainīgo būt tipa virkni.
Tātad mēs redzēsim vairāk tie tikai brīdi,
bet izrādās, ka C, un daudz valodas, piemēram, to,
ir ļoti īpaša veida mainīgo.
Tas nav tāpat kā algebra, kur jūs saņemsiet X, Y un Z
un tie ir tikai vienmēr numurus, jo programmēšanas valodu
jūs varat saglabāt numurus, jūs varat uzglabāt atsevišķas rakstzīmes,
jūs varētu saglabāt veselus vārdus, jūs varētu saglabāt veselus attēlus, veseli skaņas failus,
un tamlīdzīgi.
Tāpēc mums ir nepieciešams noteikt, kāda Mūsu mainīgo tips ir.
Un pēc vienošanās es esmu dodas uz zvanu manu mainīgās s tikai tāpēc, ka tas īss,
un s apzīmē virkni.
>> Un tad es esmu gatavojas glabāt iekšpusē šo mainīgo,
tāpat kā ar Scratch kad es izmantot iestatīto bloku,
Es esmu gatavojas izmantot Piešķiršanas operators C,
kas labi pietiekami ir vienāds parakstīt, bet vienādības zīme dara.
Tas kustas kaut ko no labi kreisajā pusē izteiksmes.
Tātad, ko es esmu darījis, lai būtu skaidrs, line pieci, ir es esmu deklarēta mainīga.
Es esmu teicis datoru, dod man atmiņas par mainīgo, sauc to s,
un jau iepriekš zināt, ka es esmu gatavojas būt liekot virkni tajā.
Un string ir tikai rakstzīmju secība.
Tas ir vārds, vai frāzi, vai punkts, bet tas ir rakstzīmju sekvence.
Tas nav numuri.
Ko string man būs laist šo mainīgo?
Nu, acīmredzot citējot likt pēdiņas beigās, "Hannah".
Tagad paziņojums modelis, kas ir jaunās.
Tur ir kreisā roka izteiksme.
Tur ir labās rokas izteiksme, atdalīti ar vienādības zīmi.
Un tikai veikt minējums, ja svešs tomēr,
ar ko Semikolu dara.
Kas tas iespējams, dara mums?
Yeah?
>> Mērķauditorija: [dzirdams]
>> DAVID J. Malan: Jā.
Tas ir vienkārši izbeidz līniju.
Tiesības?
Datori vēlas būt skarbi pastāstīja, burtiski, ko darīt.
Tāpat kā zemesriekstu sviestu un želejas sendvičs piemērs,
ja jums nav jānorāda tieši to, ko jūs plānojat,
tas varētu atstāt uz spriedumu vai kļūdu.
Semikols nozīmē, tas arī viss par šo komandu.
Tas ir super precīzs, un tas ir ļoti viegli lieta mitēties.
Tāpēc tagad šī programma, šķiet, nav tikt uzvedas savādāk līdz I
padarītu to dinamiskāku.
Tātad, nevis grūti varētu mana nosaukt, ļaujiet man nodot viettura vērtību.
Un izrādās, ka, un es zinu, tas no izlasot dokumentāciju,
un izmantoja funkciju gadiem, kas printf tika izstrādāta, lai būtu dinamisks.
Jums nav iepriekš zināt kādi vārdi jūs vēlaties, lai to.
Jūs varat vietā have a vietturis, piemēram, procentiem s, kas
gatavojas pateikt dators, ielieciet virkni šeit.
>> Kura string mēs vēlamies likt tur?
Will Izrādās, ka starp šiem iekavas, kas jāatceras, norobežot
ievades līdz funkcijai, ja Jums ir komatu atdalīti sarakstu ar lietām šeit,
mēs faktiski iet sastāvus ieejas uz funkciju.
Tik vienkārši patīk dažas Scratch bloki, jūs nevarēsiet
ir bijusi ar viņiem jūsu projekti vēl vai vispār,
daži Scratch blokiem ir divas ieejas.
Divas baltas kastes, jūs varat numurus vai vārdus ievadīts.
Tāpēc, lai tas C ir funkcijas, piemēram, printf, kas var veikt divas ieejas.
Un atkal, tas komats tiek atdalot tos.
Tātad angļu valodā, atkal pat ja jūs nekad neesmu programmēt agrāk,
ar to, ka loģika printf ir funkcija, aizņem divas ieejas, no kuriem viens
ir vietturis, ko jūs cerību printf gatavojas darīt ar šo ieguldījumu?
Tas būs teikt sveiki Hannah, cerams.
Tātad, lai to izdarītu, mums ir nepieciešams, lai to saglabātu.
Es esmu gatavojas, lai tālinātu.
Es iešu atpakaļ uz leju šeit un teikt, padarīt sveiki ievadīt.
Oh.
Kaut kas ir nepareizi, un faktiski tas ir diezgan milzīgs.
Man ir sešas rindiņas kodu un tāpat kā 12 līnijas kļūdas.
Tātad, ceram uz to.
Tātad, kas notiek šeit?
Tāpēc labākais īkšķis šeit, jo īpaši, ja jūs, sākot out,
nesaņem apjucis ar sīkumi apakšā.
Patiesībā, es ļoti apzināti tikai apskatus up
jo ļoti bieži, dators ir ne viss, kas spilgti no ierīces.
Tas notiek, lai saņemtu sajaukt.
Ja tā uzskata, viena lieta, ka tā nesaprot,
tas varētu noturēt cits rindiņas kodu, kā nepareizi,
pat ja viņi ir perfekti labi.
Tātad, jūs vienmēr vēlaties strādāt augšas uz leju caur kļūdām.
Un, protams, tas ir super arcane brīdī.
>> Kļūda, izmantošana nedeklarētu identifikators string.
Vai es domāju standarts?
Nē, es nozīmēja virkni.
Un tas ir norādot, varbūt tas ir typo.
Kārtot līdzīgu, pareizrakstības pārbaudes in ļoti geeky veidā, bet iemesls šeit,
un jūs zināt, tas tikai ar praksi, ir
ka izrādās, ka virkne neeksistē C. Faktiski, C
ir īpaši vecs valoda, un tas ir ļoti zems līmenis,
un tas nav daudz funkcijas kas jums varētu būt auguši
ar, ja jums ir, faktiski, programmēt Java, kā daži no jums ir,
bet jūs varat mācīt jaunas lietas.
Un tiešām, mēs esam darījuši šo CS50, lai gan ar semestra noslēgumā,
visi šie mācību riteņiem tiks veikti off,
ko mēs darām šajās Pirmais pāris nedēļām
Sākotnēji ir mums ir arī jūs iekļaut CS50 dot st.
Kura ir header fails.
Vairāk par to, ka nākotnē.
>> Tas ir fails, kas satur funkcijas ka mēs esam rakstīts par jums.
Un starp šīm funkcijām ir funkcijas, lai iegūtu ieejas
no lietotāja, piemēram, stīgām, un numurus, un reāliem skaitļiem, un vairāk.
Bet tas arī ir dažas īsceļus.
Tā definē Būla kā datu tipu.
C nav patiess vai nepatiess.
Bet mēs varam to jēdzienu patiess vai nepatiess veidā šīs bibliotēkas.
Un tā arī nav virknes uzcelta kamēr mēs iekļaut šo līniju.
Tātad šī līnija koda stāsta kompilators, hey, šķindēt, meklēt
Šajā failā kopumā ķekars kodu, kas CS50
ir rakstīts tā, ka ikviens, kas izmanto šo failu
var veikt par piešķirts funkcijas viņi piebilda.
>> Tāpēc tagad ļaujiet man iet uz priekšu un notīrītu ekrānu,
un ja ziņkārīgs Es tikai saku, kontroli l katru reizi, lai notīrītu ekrānu,
vai jūs varat ierakstīt skaidrs.
Es esmu tikai gatavojas iet uz priekšu un tagad tips padarīt hello, un viss ir labi.
Joprojām ir arcane izejas, bet tas nav kļūdains ziņojums.
Tagad, ja man dot slīpsvītra hello, un kā malā, dot slīpsvītra ir svešs visvairāk.
Tas tikai nozīmē, DOT līdzekļi pašreizējā direktorijā.
Tātad, ja jūs esat kādreiz izmanto DOS vai Linux vai Unix
Jums varētu būt darījuši kaut ko piemēram, cd dot dot, kur
dot dot nozīmē iet atpakaļ in laiks, vai iet atpakaļ, vai augstāk
savā direktorijā.
Dot nozīmē tikai ieskatīties pašreizējā direktorijā.
Es gribu hello, kas ir tepat.
Un tiešām, tagad tā saka sveiki Hannah.
Un, ja es mainīt to vēlreiz Maria, recompile
tas būtu Sveiki, dot slīpsvītru sveiki, programma vienmēr mainās.
>> Bet tas joprojām ir diezgan stulba programma.
Ja es gribu nosūtīt šo programmu, vai dot to draugam,
vai arī tā, lai Maria vai Hannah par šo jautājumu, tas ir jauki.
Es varu pielāgot to gan no tiem, bet tas nekad nebūs dinamisks.
Viņi nevar mainīt to, kad tas ir apkopoti lejup šajās nullēm un uzņēmumiem.
Tātad, ko mēs kaut ko gudrāku?
Ko darīt, ja, nevis cieto kodēšanas programmā šīs personas vārdu,
Ko darīt, ja mēs tikai iegūt stīgu pēc pieprasījuma?
>> Tātad citiem vārdiem sakot, ļaujiet man darīt.
Es esmu gatavojas recompile šo programmu.
Un ļaujiet man tuvinātu apakšā tagad.
Padarīt sveiki dot slash sveiki.
Tagad nekas nenotiek.
Vai mēs varam iegūt ātri brīvprātīgo lai kaut kas notiktu?
Nāciet uz augšu.
Kā tevi sauc?
>> PANCHO: Pancho.
>> DAVID J. Malan: Pacho?
Nāciet uz augšu.
Kad jums šeit, tas ir būs ļoti underwhelming,
bet tas ir vairāk interesanti nekā man rakstīt to.
Ja jūs vēlaties, lai iet uz priekšu un ierakstiet vārds, es šo programmu tieši Jums.
Vienkārši ierakstiet savu vārdu.
Enter.
Wonderful.
Labi, liels paldies.
>> PANCHO: Liels paldies.
>> DAVID J. Malan: OK.
>> [Aplausi]
>> Tas bija ļoti laipns.
Šeit jums iet.
Ko mēs darām?
Tātad, mēs beidzot, vismaz, padarīja šo programmu dinamisks.
Tagad tas ir vēl noteikti pēc uzbūves underwhelming,
bet mums beidzot ir iespēja tagad rakstīt kodu iepriekš, daudz
tāpat autori printf, un pēc tam dinamiski
ADAPT pamatojoties uz ieguldījumu mēs esam pasniedza vai nu programmētājs,
vai ar cilvēku, kurš ir faktiski mijiedarbojas ar programmu.
Tātad pieņemsim faktiski tagad mēģināt darīt dažas citas konstrukcijas
un redzēt, ja mēs nevaram padarīt programmas paši sarežģītākas.
So iesim uz priekšu un nevis Rakstot šo vienu no nulles,
Es iešu uz šodienas pirmkodu, un tas viss
ir pieejams kurss ir mājas lapā, un jūs varat vilkt un nomest to
savā dzimtajā vidē nāk piektdiena, kad problēmas
komplekts 1 sniedz jums instrukciju, vai jūs varētu
darīt to pie komandrindas, kā labi, bet vēl ir priekšā p noteikts 1.
>> Let 's redzēt, kas ir šajā programmā šeit sauc, papildinātājs dot c.
Tagad es esmu jau komentēja tas, bet to, kas jauns?
No pirmā acu uzmetiena, ko līnija kods ir pilnīgi jauns?
Droši vien nav būtiski svešs tagad.
>> Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā, tāpēc int x vienāds nokļūt n.
Mēs nekad neesmu redzējis kādu no šo pirms, bet int ir iespējams
simbols kāda veida mainīgs, [? no?] veselam skaitlim.
Tātad int par skaitlim.
Tas vienkārši ir vairāk kodolīgs. x ir tikai patvaļīgi.
x un y un z ir joprojām diezgan saprātīgi numuriem,
bet parasti mēs izmantot vārdus reiz Mūsu programmas iegūt sarežģītāka.
Iegūt int, protams, līdzīgi get virkni,
ir iespējams, gatavojas saņemt int no lietotāja,
un tad mēs ejam uz darīt to pašu ar y.
Un acīmredzot, kaut arī šis pēdējā rindā, 24, izskatās sarežģītāka,
tas notiek, proti, no šīs summas un ka tas ir cita lieta.
>> Un paziņojums procenti i droši vien nozīmē, ko?
Kāda loma procentiem i acīmredzot kalpo?
Tas ir tikai vietturi.
Tiesības?
Percent s bija stīgu, procenti i ir vesels skaitlis.
Tur būs procenti f peldošo punktu vērtību, kas
ir tikai skaitlis ar komata.
Citiem vārdiem sakot, īsta numurs.
Tātad pieņemsim faktiski apkopo šo programmas Real ātri un darīsim papildinātājs.
Whoops.
Laba iespēja.
Tātad paziņojums šeit, visu šo laiku manu lietotāju konta nosaukumu ir jharvard.
Es esmu CS50 IDE, aka IDE50.
Un tagad zilā šeit, ir pieminēta, bet no vides, kur es esmu.
Un patiesībā, ja es zoom uz augšu uz augšu šeit, ievērosiet, ka man ir IDE50
un es redzu šo vārdu, ja jūs veida pagrieziet galvu uz sāniem, darbvietas.
In Īsumā, tas, ka Es esmu redzēt tildes slash darbvietas
nozīmē, ka šajā tekstā balstīta komanda vide,
Es esmu teksta ekvivalentu Tas Grafiskie mapi šeit.
Tātad, kad man dot slīpsvītru papildinātājs, tas ir saprotams, nekādas normas
padarīt mērķa papildinātāja pietura.
Es nezinu, ko tas nozīmē, bet tas ir slikti, kāda iemesla dēļ.
Nav tāda faila vai direktorijas ir vēl vairāk skaidrs.
Kur tad tas?
Pamatojoties uz to, kur es noklikšķinājuši lai atvērtu failu agrāk.
Kur tas varētu būt?
>> Tas ir iespējams, jo avota viens w, trešdien,
un es redzu to, protams, ja es atveru, ka līdz.
Ir papildinātājs dot c, bet Šis teksts balstīta vide,
atkal, man ir jābūt super skaidri.
Ja es gribu mainīt direktoriju uz avots viens Trešdiena, man ir nepieciešams rakstīt,
cd telpa avots viens Trešdiena ieiet un tagad
Mani ātru izmaiņas man vizuāls norādījums, ka
Es esmu, protams, citur manā vidē,
bet tagad es varu darīt darīt papildinātājs, tas, šķiet, darbojas,
dot slash papildinātājs, dod man veselu skaitli.
One.
Divi.
Par vienu un divām summa ir trīs.
Bet, ja man nav sadarboties, pieņemsim redzēt, kas get int dara.
Dodiet man vesels skaitlis.
Nē.
Atkārtot.
LABI.
Fine.
50.
Viss kārtībā.
Tātad tas beidzot sadarbojas.
Un tas ir daži no funkcionalitāte, kas šīs funkcijas
var būt celta jums.
>> Tātad iekšpusē īstenošanai no get INT, kāda programmēšana
būvēt no pagājušajā nedēļā ir iespējams, tur, lai piespiestu šo uzvedību mēģinājuma,
retry, retry?
Jā, tur ir iespējams sava veida cilpas.
Tas skatīsies sintaktiski atšķiras no nulles s blokiem,
bet tas ir patiešām kas ir iekšpusē failu.
Un pāris nedēļu laikā mēs faktiski apskatīt CS50 bibliotēkā
par to, kas ir iekšā, bet tur ir cilpa uzlikt tieši tā.
>> Spēlēsim dumjš Little Spēle šeit ar šo failu.
Stāvoklis nulle dot c.
Mēs esam tikai gatavojas parasti sākas skaitīšana nulles līmenī.
Un es glabāt ritināšanu pagātni daži sīkumi augšā.
Zilā šeit, norobežota ar visiem no šīm zvaigznēm un simbolos,
tiem no jums, kas programmēt pirms, kas tas ir?
Kāpēc mēs turpinām izlaižot pār to?
Ko?
>> Mērķauditorija: Tas ir komentārs.
>> DAVID J. Malan: Jā.
Tas ir tikai komentārs.
Tas ir piezīme cilvēkiem lasīt, ka mūsu gadījumā,
stāsta mums, ko faila nosaukumu ir, kas rakstīja to, un to, ko tā dara,
tā, ka jums nav izlasīt kodu
zināt, ko šis fails ir visu par.
Tas ir tikai apraksts, bet funkcionāli tas ir neefektīvs.
Un es pat varētu izdzēst to no mans failu un tā neietekmē.
Sulīgs līnijas ir šie Pirmie divi šeit, tagad.
int galvenais neesošu ir ekvivalents no mūsu zaļus karogs uzklikšķināt,
tāpēc mēs esam gatavojas atstāt, ka būtu šodien, un mēs atgriezties,
Galu galā, par to, ko int neesošs ir, bet tagad,
paziņojums, ko es esmu darījusi arī šeit, varat arī,
ja jums ir rindā komentēt, ja jums ir
doma vēlaties koplietot par konkrētu koda rindu,
konvencija C ir darīt slīpsvītru slīpsvītra, un tad dažas kodolīgu vārdi,
nav pilna teikums, parasti nav punktu,
ka tikai skaidro ar jums, vai jūsu TF, vai citi lasītāji vai kolēģiem,
kādas ir jūsu kods dara.
Tātad, nevis jāskatās šajā un izsecināt no līnijas
deviņi un 10, kas ir Tas dara saskaņā astoņās
Es tikai dot komentāru pieprasīt no lietotāja par skaitlim,
tad man nav jādomā pārāk grūti par to, ko līnijas deviņi un 10 ir.
Es tikai zinu, ka tas ir kas kopā viņi dara.
>> Kā?
Nu, šeit ir ātri.
Lūk, kļūst par int.
Un, pamatojoties uz iepriekšējā uzvedība, šķiet, piemēram, get int
ir pietiekami gudrs, lai pārliecinātos, ka cilvēka sadarbojas un sniedz to
vesels skaitlis.
Bet tagad mēs redzam.
Un tas atgādina nulles.
Es esmu apgalvojot, ka es esmu analizējot lietotāja ievadi,
bet nedaudz neprecīzi.
Un tas acīmredzot C ir, kā Mēs šo, ja cits, filiāle,
dakša uz ceļa, bet es saka nedaudz neprecīzi.
Kas ir bug šajā programmā?
Par tālāk atpakaļ?
Jā.
>> Mērķauditorija: [dzirdams] nulle.
>> DAVID J. Malan: Jā.
Tātad, ja es rakstīt nulles, pieņemsim apsvērt tieši tā lieta, vai stūra gadījums,
ja Jums gribas.
Tātad, ja es rakstīt nulles, kurā no bloki gatavojas acīmredzot paķert to?
IF vai kas cits?
Cits, un tas notiek, proti, jūs noplūktiem negatīvu skaitli.
Un tiešām, nulle nav paredzēts būt pozitīva vai negatīva,
un lai būtu kļūdaini.
Tas būtu kļūda.
Tātad, kā mēs varam noteikt šo?
Kāds, kurš nekad nav ieprogrammēts agrāk?
Vai tu gribi--
>> Mērķauditorija: [dzirdams]
>> DAVID J. Malan: Savilkšanās?
>> Mērķauditorija: [dzirdams]
>> DAVID J. Malan: Ak, jums ir?
Kāds, kurš nekad nav ieprogrammēts agrāk.
Vēlaties izmēģināt savu roku Tas, sarkanajā kreklā?
Nāciet uz augšu.
Ak jā, nākt uz augšu, ja jums nav prātā.
Tāpēc nekad nav ieprogrammēta Pirms, kāda ir jūsu vārds?
LAUREN: Lauren.
DAVID J. Malan: Lauren, viss labi.
Tātad noteikt šo kļūdu mums.
Jūs esat ne redzējis C, domājams, un, iespējams, neviens cits valoda.
Tātad noteikt šo programmu mums.
Prieks iepazīties ya.
Nav spiediena.
LAUREN: Jā.
>> DAVID J. Malan: Bet atkal, ja tas spekulēt noritēs pēc plāna,
takeaway šeit būs būt, tikai atkal, lai sāktu
lai paziņojuma modeļus un secināt no esošā sintakse
Kā gan citādi jūs varētu izteikt sevi, no pun paredzēti, lai
lai attēlotu dažus papildu scenāriju.
Tātad mēs esam sakot cits, ja.
printf, labs.
Un paziņojums ar CS50 IDE, un frankly-- IDE
apzīmē integrētu Izstrādes vide.
Tas ir tikai iedomātā veids, kā pateikt programma, kas palīdz jums programmu.
Tas lietotājam draudzīgas lietas, piemēram, ja jūs tipa vienu iekavās
tas automātiski dod jums otru.
Pieņēmums ir tas, ka tu esi beidzot gatavojas vēlaties rakstīt, ka,
un tas arī tiek darīts ar pēdiņām.
>> Tāpēc man patīk līniju 23.
99% no tā, kā tur.
Kāds vēlas piebalsot ar galu?
Es dzirdēju semikolu no auditorijas.
Labs.
Tā, ka pabeidz to.
Un tagad, man vienkārši ir nedaudz samulsums ar līniju 21.
Kā mēs gribam izteikt šo?
Ko jautājums mēs gribam jautāt, vai jūs domājat?
Tātad iepriekš mēs uzdeva jautājumu, ja n ir lielāks par nulli, to izdarītu.
Else, darīt.
Tāpēc mums ir nepieciešams izvēlēties jautājums uzdot šeit.
Mērķauditorija: [dzirdams]
DAVID J. Malan: Labi.
Tātad, ja n ir vienāds ar nulli.
Excellent.
Tātad pieņemsim pauze šeit.
Thank you so much braving šis.
Ļaujiet man sniegt jums mazliet labi pelnījis stress bumbu, varbūt tur.
Tātad mēs esam gandrīz tur.
Patiesībā, Lauren, ja jums nav prāts, ļaujiet man viens kniebiens šeit,
tikai, lai atbilstu pat ar tas, ko mēs redzējām nulles, ko
vēlos darīt ar līnijām 21 un 24, tikai atkal balstās
par to, kā mēs to darījām ar nulles, varbūt?
>> Mērķauditorija: Pārvietojiet to uz augšu.
>> DAVID J. Malan: Jā, pārvietot to uz augšu.
Tātad cits nosacījums, trešais vai ceturtā, vai piektā, vai galīgā filiāle,
būtu patiešām nāk pēc tam, un tas ir tikai pēc vienošanās,
tikai tāpēc, ka, ja Jums gribas.
Tāpēc man ir nepieciešams, lai padarītu šo iekniebt.
Un man vajag manu cirtaini lencēm atpakaļ šeit.
Un tagad, šī programma apkopo.
Mēs esam tik tuvu, bet tur ir ļoti, ļoti smalks bug.
Let 's redzēt, kas notiek.
>> Pirmkārt, ļaujiet man iet uz priekšu un attālinātu.
Es iešu uz priekšu un tips padarīt stāvokli nulle.
Ak, es meloja.
Tagad kompilators ir faktiski diezgan gudrs.
Un man nav īsti saprast tas ir kļūdas ziņojums.
Izmantojot rezultātu cesiju kā nosacījumu bez iekavās,
ir acīmredzami slikti.
Bet ko tas nozīmē?
>> Nu atkal, meklē modeļus ar kodu, ko mēs esam redzējuši iepriekš,
kas ir 17 līnija patiesībā dara, pat ja Lauren nedaudz paredzēta
citādi?
Jā.
>> Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā.
Tik atceros vienādības zīmi, acīmredzot jo mēs esam izmanto to pirms, nav vienāds.
Tās uzdevums, no labās uz kreiso pusi.
Tātad pozīcijas 17 brīdī ir stāvoklis, un tas ir
izpildes kodu iekšpusē iekavās, bet, kad tas kods izpilda,
kas notiek ar vērtību nulle?
Kas notiek ar vērtību n?
Kļūstot nulli.
Tātad, ja n kļūst nulle, un atkal, kā par pagājušajā nedēļā,
mēs parasti sakām, ka nulles ir nepatiesa, un viens ir taisnība,
vai jā ir viens, un neviens ir nulle.
Tik patiess un nepatiess, viens un 0.
Ja n no līnijas 17 ir ņemot vērā vērtību 0, ir nulle taisnība?
Nē.
Pēc definīcijas, nulle ir nepatiesa.
Tas ir konvencija mēs esam gatavojas piekļauties virzās uz priekšu.
Tā būs līnijas 18, 19, un 20 kādreiz pieteikties tagad, loģiski?
Viņi nevar.
Tāpēc mēs lūdzām jautājumu bet ne gluži precīzi,
un jūs nezināt, ja vien tas jūs esat redzējuši, šķīdumu C
ir, ja jūs vēlaties, lai paustu vienlīdzība, jūs sakāt vienlīdzīgi vienāds.
Tātad vienādības zīme jau bija iztērēta cesijas, no labās uz kreiso pusi.
Vienāds vienāds līdzeklis vienāds.
Un, ja jūs patiešām vēlaties, lai jūsu prātu būt saliekti, JavaScript un PHP,
tur ir vienāds vienāds vienāds, kas nozīmē kaut ko citu vispār,
bet mēs nokļūt, ka pirms ilgi.
>> Tātad tas ir vienkārši noteikt, bet saprast, super viegli izdarīt šo kļūdu,
un pēc tam brīnīties, un cīņa par minūtēm, ja ne stundu,
kāpēc ir mans kods nav izpildītāja kā es plānoju?
Tas ir tāpēc, ka jums nav pateikt tas tieši to, ko jums nozīmē.
Tā, ka bija gandrīz ideāls, un tas bija lieliski
ka mēs stumbled pāri šīm divi maz lietas, jo tagad, ja mēs noteiktu tos,
un man darīt nosacījums nulli dot slash stāvoklis nulle,
Es gribētu vesels skaitlis lūdzu.
Paskatīsimies.
Nē.
Tas notiek, lai piespiestu mani, lai to izdarītu.
Tātad 42.
Es paņēmu pozitīvu skaitli.
Tāpēc tagad, kā es varu pierādīt, Šī programma ir pareizi?
Ja jūs esat matemātiķis, jūs nevarat tiešām pierādīt ar izmēģinājumu un kļūdu,
labi?
Jūs varat ne tikai pierādījums, ko piemērs, bet vismaz
kā programmētājs mēs neesam mēģināšu pierādīt tagad
ka tas ir faktiski pareizi, bet es droši vien
pārbaudīt dažus reprezentatīvus gadījumus.
>> Esmu testē 42.
Es varētu pārbaudīt 43.
Es varētu pārbaudīt 44.
Test 45.
Tiesības?
Bet es varētu darīt ļoti ilgu laiku.
Kādi varētu būt daži vairāk interesantas lietas, lai mēģinātu?
Mērķauditorija: [dzirdams] nulle.
DAVID J. Malan: Tātad nulle.
Protams.
Un labi, mēs esam ieguvuši to šoreiz, Pateicoties Lauren jauno kodu.
Kas ir vēl viens labs gadījums izmēģināt?
Mērķauditorija: Negatīvs viens.
>> DAVID J. Malan: negatīva, un varbūt kaut nedaudz lielāks,
tāpēc varbūt negatīvs 42, bet vispār, kad
pārbaudīt savas programmas virzās uz priekšu, jūs esat
gatavojas vēlaties, lai padomātu uz sevi, patīk tas, ko
ir fundamentāli atšķirīgas lietas.
Un es uzdrošinos teikt negatīvu lietu, pozitīva lieta, un nulles lieta
diezgan daudz kārtās tiem ārā.
Apskatīsim variantu šīs though.
Nosacījumi viens.
Tas ir pareizs risinājums šeit, tā, ka jūs redzēsiet divas un online,
ja jūs staigāt pa walkthroughs, parasti
pieauguma šos pakāpeniski, kamēr mēs saņemt tieši pareizo pieeju.
Ko darīt, ja mēs vēlējāmies jautāt divi jautājumi uzreiz?
>> Ļaujiet man atvērt šo vietā.
Non-slēdzis, tādu iemeslu dēļ, mēs redzēsim vēl vienu reizi.
Kas jauns sintaktiski šeit?
Es esmu šobrīd spēlējot spēli ja dators ir spēcīgi
man, dod man vesels skaitlis starp vienu un 10,
un tad es esmu spriežot lietotāja ievadi.
Angļu valodā, pamatojoties uz kodu jūs redzēt šeit
zilā krāsā, kāda ir šī programma dara?
Mērķauditorija: [dzirdams] paņēma liels vai mazs skaitlis.
DAVID J. Malan: Jā.
Tas ir tikai spriest, vai Es paņēmu liels, vai vidēja,
vai mazs skaits, pamatojoties uz ļoti patvaļīga definīciju mazās, vidējās,
un liela šeit, bet paziņojums sintakse kas jauns ir tas.
Tur ir ne mazāk kā int vai vienāds ar parakstīt, vai lielāks vai vienāds parakstīt,
kur viens ir pār otru, ka jums var izteikt, piemēram, Microsoft Word.
Tātad programmēšanas valodu jūs parasti vienkārši darīt divas rakstzīmes,
viens pēc otra.
Un ko tas, iespējams, pārstāvēt, aizvieto & zīmes aizvieto & zīmes.
Mērķauditorija: [dzirdams]
DAVID J. Malan: Jā.
Tas tikai nozīmē, un tāpēc, ka tā Izrādās, ka autoru C
izmanto vienotu aizvieto & zīmes, ko jūs varētu domāt
būtu ideāls jēdzienu un, jau izlietota,
tāpēc Ampersand Ampersand faktiski uztver šo lietu mēs patiesībā gribam.
>> Tātad pieņemsim tagad paklupt pāri divām lietām.
Ļaujiet man iet uz priekšu un atvērt vienu.
Kaut kas, kas ir nedaudz satraucoša.
Neprecizitāte dot c.
Ļaujiet man iepazīstināt divas lietas šeit.
Viens, paziņojums, ka mēs varam darīt math, jo tāpat kā līdz šim, kad
mēs darījām plus divi skaitļi, x un y.
Kas ir šī programma acīmredzot dara?
Man nav komentēja to vēl, un es esam ieviesuši procentiem f,
bet es ātri teicu agrāk procenti f nozīmē peldošā komata
vērtība, kas ir reāla numurs.
Kaut ar komata punkts, kas nav vesels skaitlis.
Ko jūs domājat, ka šī programma ir mēģina parādīt man uz ekrāna?
Yeah?
Mērķauditorija: Viena virs 10 rezultāts.
DAVID J. Malan: Jā.
Kāds ir rezultāts viens dalīts ar 10.
Pareizi, jo visi no jums ir iespējams izauguši zinot, ka viens virs 10
ir tas, ko?
Jā, tas ir tikai 1/10 jeb 0,1.
Tiesības?
Tātad, pieņemsim redzēt, kas tas patiesībā ir.
Tāpēc ļaujiet man iet uz priekšu un saglabājiet to.
Ļaujiet man iet uz leju šeit.
Padarīt neprecizitāte dot slīpsvītru neprecizitātes, un paziņojums, pārāk,
ar Linux vidē, jums nav ir tipa out neprecizitātes un veikt
Visas dienas garumā.
Tas parasti, ja jūs hit Tab, tas beigsies jūsu domas par jums,
pamatojoties uz vārdi, kas ir pieejams pašreizējā direktorijā.
LABI.
Tātad jums bija taisnība.
Viens dalīts ar 10, patiesībā, 0.1.
Bet es esmu mazliet ziņkārīgs.
Un izrādās, printf atbalsta dažas funkcijas
ar kuru jūs varat norādīt vairāk nekā noklusējuma skaits aiz punktiem.
Tātad, ja es gribu redzēt 10 decimālo Punkti es varu darīt procentiem,
par viettura simbolu, dot 10 par, dodiet man 10 cipariem aiz komata,
un tad vēl peldošā komata vērtību, un, kā malā,
Kas tas ir slīpsvītra n acīmredzot mēs turpinām izmantot?
Izrādās, ka tas ir simbols jaunu līniju.
Tas ir ļoti skaidrs ceļš kā pateikt datoram,
pārvietotu kursoru uz nākamo line pēc esat pabeidzis.
Un mēs redzēsim, kas notiks ja mēs to nedarām.
>> Ļaujiet man recompile padarīt neprecizitātes.
Tagad dot slash neprecizitātes.
LABI.
Joprojām labi.
Viens dalīts ar 10.
Tagad es saņemu mazliet ziņkārīgs, though.
Ko darīt, ja es paskatos 20 decimālo norāda, recompile, atkārto,
un kā atstātas ātrumu, jūs varat arī izmantot
Jūsu augšu un uz leju bultas, lai ritinātu savu vēsturi,
tāpēc jums nav, lai saglabātu pārrakstīšana šīm komandām, ievadiet.
Huh.
Man nebija uzzinot, ka pakāpē skolā.
Labi, tāpēc ļaujiet man skatīt, piemēram, 29 vietās out.
Varbūt tā ir tikai sagadīšanās.
Varbūt mans dators ir rīkojas dīvaini.
Tas nav lieta, vai ne?
Tas dara kaut deterministically.
Tātad, lai neprecizitātes.
Labi, ka ir messed up.
Tātad, kas notiek?
>> Tātad acīmredzot Jūsu Skolotājs ir meli
jums visu šo laiku iemesli, ka mēs redzēsim pirms ilgi.
Bet pieņemsim beidzas ar vienu citu programmu.
Tas ir maz programmas kāds rakstīja pirms dažiem gadiem,
un tas faktiski ir daļa no konkursā.
Neviens patiesībā raksta kodu kā šis, un, ja jūs darāt,
tas ir stilistiski problēma.
Bet cilvēki to dara par bragging tiesības.
Lai rakstītu visvairāk mulsinoši meklē programmu, kas
tomēr dara kaut ko interesantu.
Un piezīme es domāju, mēs gribētu atstāt uz Šodien, pirms Colton spēlē mūs šeit,
ir palaist šo programmu, kas, pat tikai izmantojot
C šajā teksta pamatā vide, dod mums šo.
Nolāpīts.
>> [Smiekli]
>> Stāvēt.
[Dzirdams] c domuzīme l m.
Jūs esat dodas, lai redzētu burvju buršana, ka mēs redzēsim pirms ilgi.
[Dzirdams] Viss labi.
Un tagad jūs pat varat darīt lietas, piemēram, šis.
Tieši tā.
Par CS50 mēs, redzēs tevi piektdien.
>> [Mūzikas atskaņošanai]
>> [Aplausi]