>> [Daqq tal-mużika]
DAVID Malan: Hello, kulħadd.
Dan huwa supersection CS50 s.
Taqsimiet assenjati mhux se jibdew għall ieħor ġimgħa.
U hekk illum, jien hawn with--
>> MARIA: Maria.
DAVID Malan: --to attwalment tagħti ħarsa lejn problema
sett wieħed, il-kors tal ewwel ġimgħat ta 'materjal,
nikseb inti orjentati ma IDE CS50, daqsxejn ta 'Linux, is-sistema operattiva li l-
taħdem fuq IDE, kif ukoll ħarsa lejn uħud mill-tranżizzjoni
minn Scratch sa C ewlieni sa problema sett wieħed.
>> Allura mingħajr aktar dewmien, fi problema sett wieħed,
int ser tkun introdotti biex CS50 IDE, li
hija din il-programmazzjoni fuq l-internet ambjent li nużaw sabiex
jiktbu programmi.
Huwa kien mfassla biex tħares ħafna reminixxenti ta 'kompjuter tipiku
sistema jmexxu operattiva sistema, imsejħa Linux.
Imma hija fil-sħaba hekk imsejħa, li jfisser kulħadd fil-klassi
jista 'attwalment ikollhom tiegħu jew tagħha kont proprju u l-użu, kif ukoll.
>> Allura ħafna minnkom probabbilment qatt ma użaw ambjent Linux qabel jew forsi
anki f'ambjent kmand tal-linja.
U linja ta 'kmand ambjent hija differenti.
Dan kollu testwali.
Huwa l-ordnijiet kollha keyboard.
U huwa no mousing, l-ebda ikoni, ebda twieqi djalogu, l-ebda menus.
Huwa purament test.
Allura fl-ewwel, it-tip ta iħoss bħal pass
lura fejn jidħol sofistikazzjoni.
Iżda dan jispiċċa jkun ħafna aktar qawwija, ċertament,
għal xjenzat kompjuter, finalment.
>> Mela ejja tagħti ħarsa.
Here I am fil CS50.io, permezz li inti tista 'log fis IDE CS50.
U ħafna bħal fil Scratch, hemm tliet oqsma primarji għal dan l-iskrin.
Allura fuq in-naħa tax-xellug, għandna x'se jkun il-fajl browser.
U hemm this folder fuq top, li huwa dritt issa vojta
peress I ħassar kollha tiegħi fajls qabel supersection.
U li fejn aħna ser ħlief fajls Ċ li aħna jiktbu.
Fil-kantuniera, għandna post fejn kollha tal-kodiċi tagħna għaddej biex tikseb bil-miktub.
U fil-fatt, jekk I ikklikkja din plus, dan se let me jagħżlu File Ġdid.
U hawn I tista 'tibda tikteb kodiċi C jew, tassew, kwalunkwe numru ta 'lingwi oħra.
>> U mbagħad fil-qiegħ fejn jgħid jharvard @ ide50-- u tiegħek se
ngħid xi ħaġa ftit different-- dak li kien dan jissejjaħ?
Tieqa Terminal.
Yeah.
Allura l-tieqa terminal huwa l-hekk imsejħa linja tal-kmand
interface permezz tiegħu tista 'jinteraġixxu mas-sistema operattiva sottostanti.
U għal issa, aħna qed tmur biex jagħmlu ftit li xejn użu ta 'this--
biss biex jikkompilaw, li tħares lejn messaġġi ta 'żball li naraw,
u biex imexxu programmi tagħna.
Iżda fl-aħħar, aħna qed tmur li tagħmel dan ħafna aktar, kif ukoll.
U inti tista 'anki jinstallaw softwer u jamministra workspace tiegħek
fi ħdan CS50 IDE, kif ukoll.
Iżda aktar fuq li xi żmien ieħor.
>> Mela ejja imorru quddiem u jiktbu programm sempliċi ħafna biss
li jmorru permezz ta 'warm-up tal hello.c, li hija forsi
il-programm sempliċi nistgħu jiktbu.
Stajt diġà fetħet tab ġdid.
Jien ser jimxi 'l quddiem u jgħidu jinkludu io.h. standard
Imbagħad int prinċipali (vojt).
U mbagħad printf ("hello, dinja" backslash n, kwotazzjoni qrib,
parentesi qrib, u virgola.
>> Kull dritt.
Allura issa avviż tieqa tiegħi huwa untitled.
Hekk jien malajr ħafna li jmorru li jitla 'sa File, Save.
U huwa importanti li I call dan ma "bonjour."
Allura żball komuni ħafna, speċjalment fl problema sett wieħed,
huwa li aċċidentalment biss sejħa tiegħek programm "ilma" jew "greedy" jew "Mario"
jew "kreditu" jew simili.
Imma inti fil-fatt tixtieq li tagħmel ċert li jkollok l-estensjoni fajl
għax dan huwa l-uniku mod li l kompilatur u wkoll l-editur kodiċi
jaf li int fatt bil-miktub kodiċi C.
So let me go quddiem u kklikkja Save.
>> U issa, wisq, dak CS50 IDE għamel għalina huwa huwa wkoll
sintassi enfasizzat kollox.
Allura huwa magħmul kollox ikkulurita ħafna.
U l-għan sħiħ ta ' li mhix funzjonali.
Huwa biss tiġbed għajnejn tiegħi għall- biċċiet minn perspettiva kunċettwali differenti
ta 'dan il-programm.
Mela ejja imorru quddiem u jiġbor dan it.
U nista 'jiġbor dan fi ftit ta 'modi.
U fil-ġimgħa, il- mod qodma l-iskola għamilna
kien litteralment fil- kmand line-- "hello.c clang."
U mbagħad I hit Ikteb.
U xejn jidher li jiġri fit-tieqa terminal.
Imma dak li għamlet bidla fil-IDE?
Fejn, għal darb'oħra, IDE ifisser biss Ambjent Iżvilupp Integrat.
Huwa mod fancy ta 'tgħid dan l-iżvilupp integrat
ambjent għall-iżvilupp tas-software.
Allura dak li għamlet bidla fil-UI?
What did tinnota li l differenti, Maria?
>> MARIA: I ndunat xi ħaġa taħt il-IDE50 folder up here.
>> DAVID Malan: Yeah.
Allura up here, mhux biss do għandna "hello.c."
Għandna wkoll "a.out," li huwa tip ta 'isem mutu għal programm.
Iżda fil-fatt, huwa l-isem default għal programm meta inti biss jikkompilaw kodiċi tiegħek
u ma jgħidux il-kumpilatur dak fajl lill output.
Mela jekk jien tixtieq li run dan, I trid tghid l compiler--
jew pjuttost, I bżonn tgħid il-workspace li I
tixtieq li tmexxi l-programm imsejjaħ "a.out."
Ikteb.
U hemm "i hello, dinja. "issa l-" ./ ".
huwa attwalment importanti.
Anki jekk normalment aħna biss jiktbu l-ismijiet ta kmandi,
meta huwa program inti stajt miktub, inti tixtieq li jgħidu "./"
minħabba li espliċitament tg Linux li inti tixtieq li tmexxi programm imsejjaħ
"a.out" li fil dan, fejn dot ifisser dan id-direttorju li jien bħalissa
in, li jiġri li jkun imsejħa workspace, "a.out.
Għaliex jekk I biss qal "a.out," Daħħal, Jien ser tikseb "a.out kmand ma
misjuba "għaliex l-computer-- minħabba I ivvintat "a.out;"
din ma kinitx taqa mal-computer-- ma taf fejn tfittex għal dan,
anki jekk huwa dritt taħt imnieħer tiegħi, biex ngħidu hekk.
KOLLOX SEW.
Allura nistgħu tbiddel dan li jkun "clang -o bonjour hello.c."
U jekk I hit Ikteb, dak il-programm huwa dan se output għalija?
X'inhu l-isem tal-fajl?
Yeah, fid-dahar.
Dak id-dritt. "Bongu."
Allura "bonjour" se tkun l-isem tal-programm
għaliex aħna ħadthom użati hekk imsejħa argument linja tal-kmand, li huwa biss
mod ta 'tibdil tal-imġiba ta l kompilatur li attwalment output
isem speċifiku fajl.
U fil-fatt, jekk I zoom out u jfittxu up hawn,
issa għandi mhux biss "a.out" u "hello.c" iżda wkoll "hello," kif ukoll.
Allura issa I tista 'tagħmel "./hello," Ikteb.
U hemm "hello, dinja."
Iżda lastly-- u dan issa se jkun il-konvenzjoni
nużaw matul il- semestru, typically--
huwa inti tista 'wkoll biss jgħidu "jagħmlu bonjour."
U fil-fatt, huwa qal huwa sa sal-lum minħabba li diġà teżisti.
Let me imorru quddiem u neħħi, ma il-kmand rm, kemm "a.out" -
u jgħidu "tneħħi a.out fajl regolari?"
Li sempliċiment ifisser, huma inti żgur inti tixtieq li iħassarha?
Jien se ngħid iva.
U allura jien ser ineħħi "Hello" iżda mhux "hello.c."
Jien se ngħid "iva" espliċitament, imma "y" hija biżżejjed, kif ukoll.
>> U issa avviż jekk I tip ls-- li, irtirar,
ifisser list-- it listi kollha tal-fajls folder tiegħi.
U fil-fatt, jekk I zoom out u ħarsa lejn quċċata xellug,
jikkonferma li x'hemm fil this folder, anke
għalkemm huwa ttikkettjat bħala IDE50 up here u mhux workspace, huwa biss "hello.c."
Allura issa l hawn, jekk I do "jagħmlu hello," Daħħal,
issa nara kmand ħafna itwal iżda kmand aktar sofistikata li għaddej
li tkun utli fil-ġimgħat li ġejjin.
U issa I tista 'tgħid "./hello."
>> Mela ejja tagħti tour quick xi Linux oħra jikkmanda.
Allura għaliex ma nieħdu pass lura u fil-fatt tħares lejn Ċ aktar
ġeneralment, it-transizzjoni minn Scratch sa C, u mbagħad jikkonkludi ma 'ħarsa
fl-ewwel problema stabbiliti fil C. Kull dritt.
Hekk jien ser jimxi 'l quddiem u biss nadif up workspace tiegħi ma Control L eżatt
biex iżommu l-iskrin pulita.
Iżda dan ma jkollux funzjonali impatt mod ieħor.
>> Recall li aħna stajt tidher kmandi ftit issa.
Allura aħna stajt tidher clang, li ġeneralment inti mhux se jkollhom biex tesegwixxi manwalment aktar.
Aħna ser minflok jużaw make.
Iżda aħna wkoll raw ls, li juri elenkar tal-fajls fil-direttorju tiegħi.
U issa għaliex huwa there-- theres żewġ fajls issa, "Hello" u "hello.c."
Għaliex hemm stilla jew asterisk wara "Hello"?
What did li turi, ibbażata fuq dak li raw fil-Ġimgħa waħda?
X'tahseb?
X'tagħmel l-istilla turi?
>> MARIA: For---programm "Hello"?
DAVID Malan: "Hello *".
Yeah.
Oh, yeah?
Oh, eżekutibbli.
Dak id-dritt.
Allura dan ifisser li "Hello" hija eżegwibbli.
Allura fil-fatt, hu għalhekk I tista 'tagħmel "./hello."
Kull dritt.
Allura dak li inkella 'nagħmel hawn?
Ukoll, jirriżulta nista joħolqu wkoll direttorji.
So let me go quddiem u joħolqu, per eżempju, "pset1" direttorju.
U l-problema stabbilita ispeċifikazzjoni se jkollhom inti tagħmel eżattament dan,
sabiex inti ma għandekx tiftakar llum.
Imma "pset1 mkdir" jidher li jkollhom l-ebda impatt.
Iżda għal darb'oħra, l-ebda messaġġ ta 'żball huwa ġeneralment ħaġa tajba.
Mela jekk jien tip "ls" now-- ah, issa I jkollhom fajl eżekutibbli imsejħa
"hello," fajl C imsejjaħ "hello.c."
U allura l-mmejla batuta, hekk li jitkellmu, ifisser li dan huwa direttorju.
>> Allura fil-fatt, issa nixtieq li tiftħu.
U jien ma ikklikkja darbtejn fuq dan simili fil-GUI, ambjent grafika.
I minflok ngħid "pset1 cd."
Ikteb.
Xejn interessanti jidher li ġara ħlief ftit fil-pront tiegħi
here-- dan huwa mod Linux tal fakkruha me fejn I am, iva, liema folder huwa miftuħ.
Huwa biss javżak me espliċitament għall-kuntrarju grafikament.
U jekk jien tip "ls," għaliex nara ieħor pront immedjatament, taħseb,
meta I telenka l-kontenut ta 'pset1?
MARIA: You probabbilment ma jkollhom xejn fil hemmhekk.
DAVID Malan: Yeah.
Hekk allura aħna ma ovvjament maħluqa xejn fil hemm
minħabba I biss ħolqu l-direttorju.
Issa, jekk I riedu joħolqu file-- għall eżempju, I tista 'toħloq fajl ġdid.
U mbagħad I tista 'tmur għall Issalva u ħlief bħala,
bħal, "mario.c" jekk int tagħmel l-edizzjoni standard ta pset wieħed.
U mbagħad, bħal kull Mac jew PC, just jagħżlu l-folder "pset1, Save.
U issa l-fajl ikun vojt.
Imma ejja zoom fl-ġdid għat-tieni.
Ejja nagħmlu ls hawn.
Issa naraw "mario.c".
>> Allura hemm xi kmandi oħra ftit li jiswew jżomm f'moħħu matul time--
ċara, jew Control L huwa dak stajt Kien laqtu; mkdir Rajna;
rm Rajna, kif ukoll, li hija għat-tneħħija jew tħassar fajl.
Beware inti tista also-- u jekk inti tħares fil tutorials online, inti ser rm -rf
huwa mod komuni ħafna ta 'tgħid tħassar folder li għandha Jittieħed fiha.
Just tkun super, bir-reqqa super.
-rf ifisser recursively iħassarha kwalunkwe huwa
int tipprova li jitħassar u sfurzat iħassarha.
Mela mezzi rikursivi jekk huwa folder ma ' folder bi folder bil folder,
titħassar kull wieħed minnhom.
U sfurzat ifisser lanqas biss jistaqsu lili iva jew le, jien ċert?
Allura huwa mod super perikolużi ta ' tħassir lottijiet ta 'għalf malajr.
Iżda beware-- ħafna drabi ma 'l Intrepid student aċċidentalment iħassru, ngħidu aħna, pset
wieħed, per eżempju.
>> MARIA: U jekk huma biss do -R, dawn qed tmur
biex jistaqsihom dwar kull fajl waħdieni.
>> DAVID Malan: Liema huwa moderatament annoying.
>> MARIA: Yeah.
>> DAVID Malan: Allura hu għalhekk tant minna, awto inklużi,
am fil-drawwa li jużaw -rf.
Imma hija perikoluża.
Allura xerrej beware.
U allura mv huwa tip ta interessanti jismu.
Allura dan huwa l-kmand moviment, li tħoss ftit stramb
għaliex inti tista 'tabilħaqq użu minnha biex jiċċaqalqu fajls minn post għall-ieħor.
Per eżempju, ejja ngħidu li jien messed up.
Ejja ngħidu li I maħluqa fajl ġdid għall-pset.
U jien salvat bħala "greedy.c."
Imma suppose I aċċidentalment isalvawh fil IDE50-- hekk fil workspace tiegħi innifsu
u mhux fil pset1.
>> Tista 'tara kemm fil-quċċata xellug.
Hemm "greedy.c."
U hemm ftit soluzzjonijiet.
Allura wieħed, nista 'nuża l- super faċli għall-utent mod
ta 'ftit jittrattienu u twaqqa.
U li kieku attwalment tiffissa din il-problema.
Imma llum, aħna qed jippruvaw biex tħares lejn l-modi aktar arcane iżda qawwija
biex dan isir.
So let me jieħdu "ls" fil pset1.
UI biss ara "mario.c."
Let me imorru quddiem u jagħmlu "cd ..".
Allura CD darb'oħra huwa direttorju bidla.
".." Tfisser dak, għalkemm?
Last time I said "cd pset1 "li jmorru fis pset1.
Allura meta I say "cd ..", dak am I tagħmel?
Lura.
Yeah.
>> Allura li għaddej lill-ġenitur hekk imsejħa.
Mur livell wieħed up, bħal joħorġu minn folder.
Allura Ikteb.
U fil-fatt, tfittex dak li għamlet.
Hija mċaqalqa me biss fis workspace minflok tal fis pset1, li hija fil workspace.
U issa jekk jien tip "ls", hemm mazz sħiħ ta 'għalf.
Fil hemm "greedy.c".
Allura issa let me użu mv li litteralment jimxu "greedy.c" fis pset1.
U għalhekk ħafna ta 'Linux jikkmanda xogħol eżattament bħal dan.
Huma jieħdu ebda argumenti jew li jieħdu waħda argument jew li jieħdu żewġ linja ta 'kmand
argumenti u ibqa 'sejjer hekk.
U f'dan il-każ, huwa litteralment tagħmel dak
jgħid, għalkemm succinctly-- jimxu greedy.c fis pset1.
Ikteb.
Xejn ma jidher li jiġri.
Imma jekk jien do a ls darb'oħra, greedy hija marret.
U jekk I do "pset1 cd", Daħħal, u mbagħad ls-ġdid, issa huwa fil-post it-tajjeb.
Bħala twarrib, jekk għal xi reason-- speċjalment
jekk għandek intermittenti konnettività tan-netwerk
jew int mixi madwar kampus bl-għatu laptop tiegħek
magħluqa u mbagħad iftaħ it up darb'oħra u workspace tiegħek
jidher kemmxejn minn sync, no big deal.
Just rikarigu browser tiegħek tieqa, u dan għandu
resync sabiex il--xellug fajl browser jidher eżattament
bħall-tieqa terminal.
Ma tinkwetax.
Meta fid-dubju, rikarigu-paġna, hekk Sakemm inti ħadthom salvati l-fajls diġà.
KOLLOX SEW.
Allura mv jista 'jintuża wkoll biex tibdel isem fajls.
U ejja tagħti ħarsa lejn dan il-kmand finali hawnhekk.
Allura suppose-- u dan huwa super komuni, wisq, sa minn kmieni.
Xi studenti kultant toħloq fajl imsejħa, ejja say-- x'hemm xulxin?
Bħal "WATER.C."
So I ser biss Yell, għal ebda raġuni, fil-limiti kollha.
Iżda dan mhuwiex il- isem korrett għall-fajl
jekk xejn minħabba problema tagħna stabbilit ispeċifikazzjoni ma jgħidlek
biex isalva l-fajl bħala kollha caps "WATER.C."
Minflok, aħna nistennew "water.c" fl zghar.
U, fil-fatt, dan huwa problematika minħabba check50,
programm int ser jissodisfaw problema
sett wieħed li awtomatikament testijiet il-korrettezza tal-kodiċi tiegħek
se Yell fi inti jekk ma jistax isibu "water.c" fl-zghar.
>> So I bżonn biex jiffissaw dan.
Allura ħafna modi differenti tagħmel dan, l-ewwel waħda
ikun Control-click jew dritt ikklikkja l-isem fajl u biss bidla Semmi.
Totally multa li tagħmel dan.
Iżda għal darb'oħra, illum, ejja tagħmel dan ftit fancier.
Ejja jużaw mv għall-bidla "WATER.C" għal "water.c."
Allura inti tista 'wkoll tuża l-ewwel argument li semmi mill-ġdid għat-tieni argument
jekk it-tieni argument mhuwiex, fil fatt, folder jew isem id-direttorju.
>> Kull dritt.
U fl-aħħarnett, trick-- ftit hekk jien fil direttorju workspace tiegħi fil-mument.
Jekk I rridu nġibu fis pset wieħed, I jista 'ċertament tip "pset1 cd."
Iżda huwa hekk tedious li tip "pset1" jew itwal fajl ismijiet jew l-ismijiet tad-direttorju
xorta.
Allura ħafna drabi fil Linux, liema inti tista 'tagħmel huwa tibda ittajpjar "PSE"
u biss niddejjaq, hit Tab, u ħalli il-figura kompjuter out għalik.
Super utli li jsibu rwieħhom li vizzju.
Il-qabda biss huwa jekk għandek fajls multipli jew folders jibdew
bl-ittra "p" jew "ps," inti jista 'jkollok
tip ftit aktar qabel il- kompjuter jaf x'għandek tagħmel.
>> MARIA: Aħna bħal shortcuts.
>> DAVID Malan: Dan se jiffrankaw il-ħin tant.
U wkoll, kif għidna fil lecture, inti jistgħu iscroll up fl-istorja, u 'l isfel,
biex isibu esegwiti reċentement jikkmanda, kif ukoll.
Kull dritt.
Allura issa, ejja tagħti attenzjoni tagħna lura għal programm sempliċi, bonjour dinja.
Allura konna kkumpilata din il eżattament.
U issa għaliex ma nieħdu ħarsa lejn it-tipi ta 'data
u mbagħad tranżizzjoni minn xi blokki Scratch jikkorrispondi għal C.
MARIA: biża.
Allura issa li inti stajt beda miktub programmi C,
aħna qed tmur biex tibda titkellem dwar tipi ta 'data u fatturi varjabbli.
Allura xi tipi ta 'data li inti trid tkun taf tibda issa
huma dawk li huma enfasizzati fil-blu.
Allura aħna għandna int l-ewwel, li stands għall-eqreb numru sħiħ.
U li jkollha interi, kif inti jista 'jkollhom guessed-- hekk 1, 2, 3,
u kull interi oħra li inti tista 'taħseb.
>> DAVID Malan: U wkoll negattiva.
>> MARIA: U wkoll dawk negattivi, Yep.
U 0.
Imbagħad għandna sufruni, li huma f'wiċċ l-ilma punt numri.
Allura dak l-numri reali li għandhom punti deċimali.
Allura 5.0, 5.2, u saħansitra aktar ċifri wara l-punt deċimali,
kif ukoll, u wkoll dawk negattivi.
Imbagħad għandna char li huwa karattru.
So I think we tkellem dwar dan lecture llum.
Imma aħna għandna ittri, għal example-- A, B, C-- li jistgħu jkunu maħżuna bħala char.
Imma allura għandna ħafna aktar simboli li jistgħu jkunu maħżuna bħala char.
U dawk huma maħżuna bħala ASCII.
>> U allura għandna BOOL, li huma Booleans.
U dawk tevalwa lil Veru jew Falza jew 1 u 0, rispettivament.
DAVID Malan: U recall li BOOL ġej mill-bibljoteka CS50.
Allura mhuwiex mibnija fis C, imma hija super utli
li jkollhom l-kunċett ta 'vera u falza.
U anki jekk inti jista think-- fatt gost.
A BOOL teknikament jeħtieġ kemm bits, tassew, li jirrappreżentaw Veru Falz versus?
Kemm bits taħseb għandek bżonn, maximally?
Yeah, wieħed biss.
Għalhekk jirriżulta li C ma jista 'jtik biss waħda bit.
L-iżgħar unità tal-kejl inti tista 'tikseb huwa tmienja.
Allura huwa ħela ftit huma int użu ta 'byte kollu, jew tmien bits,
li jirrappreżenta vera jew falza.
Imma dak li biss il-mod huwa implimentata C mill-librerija CS50.
MARIA: U mbagħad dawk li aħna qed mhux ser jitkellmu dwar kif estensiv
dritt now-- doppja, li għall sufruni akbar.
Twil twil u qasir huma wkoll għall-interi.
DAVID Malan: Tabilħaqq.
Fil Hacker edizzjoni ta 'pset waħda, aħna attwalment jużaw twil twil.
Iżda għall-edizzjoni standard, m'għandux ikun meħtieġ.
MARIA: Kessaħ.
KOLLOX SEW.
Allura operators-- inti għandek tkun probabbilment familjari ma 'ħafna minn dawn.
Barra minn hekk, +; tnaqqis, -.
Għal multiplikazzjoni, aħna għandna l-*.
Allura ma l-X li aħna normalment jużaw.
Diviżjoni, aħna għandna l-backslash.
U modulo hija operatur aħħar tagħna li aħna ser jitkellmu dwar id-dritt issa.
Huwa ta 'operatur li jippermetti li jieħdu l-bqija ta 'diviżjoni.
Mela jekk ikollna 4% 2, 4 diviża bi 2 huwa 2 bil-bqija ta '0.
Allura 4% 2 huwa 0.
4% 3 huwa 1.
4% 5 huwa ta '4, kif jista' jkollok guessed.
U ftakar meta jużaw dawn kollha operaturi jużaw ir-regoli PEMDAS.
>> DAVID Malan: Allura biex tkun ċara, jekk inti do 4% 2, għaliex huwa li 0, eżattament?
>> MARIA: Minħabba 4 diviż bil 2 huwa 2 bil-bqija ta '0.
Allura modulo jagħtina l-kumplament bħala kuntrarju għar-riżultat tad-diviżjoni.
DAVID Malan: U fil-fatt, dak li aħna ser issib dan utli
għal huwa li f'xi problemi li mhux neċessarjament waħda,
jekk inti tixtieq li jkollok l- effett li jirrestrinġu l yourself
għal firxa ta 'numri bħal 0 permezz xi ħaġa,
inti tista 'tuża modulo biex nagħlaq madwar qabel bħall-2 biljuni
jew il-valur 4 biljun li konna tkellem dwar fl lecture.
>> MARIA: Yeah.
U anki fil- "greedy" nistgħu.
DAVID Malan: Iva, fil problema sett wieħed, kif ukoll.
MARIA: Yeah, sbieħ.
DAVID Malan: ħjiel Tajba.
MARIA: Jiddispjacini.
Boolean expressions-- hekk għall-operaturi Boolean,
se nkunu qed nitkellmu dwar l minn dawn li tara hawn.
Allura issa dritt, għandna żewġ sinjali indaqs elenkati għal ugwali.
Għalhekk dawn huma għall-paragun.
S'issa, konna biss tidher waħda ugwali sinjal.
Li meta aħna tassenja valur għal varjabbli.
Allura jekk aħna stajt tidher int n = 5, imbagħad konna assenjat 5 għall-n varjabbli.
Iżda jekk irridu li jużaw == għall paragun, nistgħu tivverifika jekk == 5 n.
U jekk n == 5, allura dan huwa veru.
>> Operaturi hekk Boolean inessu, bażikament,
biex tevalwa Boolean espressjonijiet għal Veru jew Falz.
Allura mhux equals-- aħna għandna l- marka exclamation u ugwali.
Allura nistgħu wkoll jiċċekkjaw jekk n mhux daqs 5-- hekk n! = 5.
Inqas minn, inqas minn jew ugwali għal, akbar minn, akbar minn jew ugwali għal,
u allura għandna l loġiku U u l-loġika OR.
U dawk inessu biex tevalwa espressjonijiet Boolean multipli flimkien
li bażikament ġejjin flimkien bħala wieħed espressjoni Boolean kollu.
Mela jekk irridu li ssib numru, jiġifieri, li huwa ikbar minn 5 imma anqas minn 15
fl-istess ħin, aħna se jużaw il- loġiku U operatur biex tara jekk n hija
akbar minn 5 && n anqas minn 15.
DAVID Malan: U hawn, wisq, huwa verament faċli
kmieni biex aċċidentalment jużaw biss ampersand wieħed
jew bar vertikali waħda.
U nisperaw li l-kumpilatur se Yell fi inti għaliex fil-fatt
għandhom tifsira differenti ħafna.
Għal dawk kurjuż, dawn qed użati għal operazzjonijiet bitwise,
joperaw fuq bits individwali.
Imma inti trid li l-par ta 'hawnhekk.
U super importanti huwa li ewwel waħda, is-sinjal ugwali,
li hija l-operatur ugwaljanza kuntrarju tal-operatur assenjazzjoni.
>> MARIA: U l-bar vertikali hija tinsab bejn il Ħassar u Ritorn.
DAVID Malan: Iva.
Fuq tastiera tipiku Istati Uniti.
>> MARIA: Yep.
Mela ejja jaqbżu dritt fil dikjarazzjonijiet kondizzjonali.
Fil Scratch, inti stajt diġà rajna, probabbilment,
jekk id-dikjarazzjonijiet li jippermettu li inti jiċċekkjaw jekk xi ħaġa hija vera, allura
tagħmel xi ħaġa oħra.
Allura inti jista 'jkollok riedu biex jiċċekkjaw jekk Sprite tiegħek hija
jmissu xi Sprite oħra jew il-fruntiera tal-iskrin tiegħek.
U allura inti jista 'jkollok riedu tmiem il-logħba jew tagħmel xi ħaġa oħra.
Allura l-sintassi għal dak huwa "jekk (kundizzjoni)."
Mela jekk Sprite tiegħek qed imiss xi ħaġa, allura ma hu ġewwa l-braces kaboċċi.
>> Imbagħad għandna jekk-ieħor dikjarazzjonijiet.
Else jippermetti li nagħmlu xi ħaġa jekk il-kundizzjoni li aħna
check fil-bidu mhux veru.
Allura jekk il-Sprite qed imiss il- transkonfinali tagħmel dan, inkella tagħmel xi ħaġa oħra.
Allura inkella tagħmel xi ħaġa oħra.
Imbagħad għandna eżempju qasir għal dan.
Mela jekk (military_time <12), aħna tixtieq li printf "filgħodu Tajba!"
Else aħna qed tmur biex printf "Good filgħaxija!"
Eżempju bażiku.
>> DAVID Malan: Tajba.
>> MARIA: Kessaħ.
Allura issa għandna dikjarazzjonijiet swiċċ.
Jaqilbu dikjarazzjonijiet b'mod ġenerali tista inessu li jagħmlu ħafna ta 'l-istess ħaġa
li aħna biss tkellimna dwar jekk jitwettqu dikjarazzjonijiet.
Per eżempju, id-dritt issa għandna l- forma ġenerali tad-dikjarazzjoni swiċċ
li jippermettilna nieħdu varjabbli imsejjaħ n
u jqabbilha lil ħafna valuri differenti, li here we
sejħu constant1, constant2.
Aħna jista 'jkollhom ħafna aktar.
U dawk huma msejħa każijiet.
>> Mela jekk ikollna swiċċ statement-- u taħdem din
biss għal integers-- għandna varjabbli f'dan il-każ li l-n.
Jekk il-varjabbli huwa n daqs constant1, aħna
se tesegwixxi xi snippet ta 'kodiċi jew xi ħaġa li rridu nagħmlu.
U allura aħna se break.
Allura l-waqfa ifisser li id-dikjarazzjoni swiċċ
se tieqaf esekuzzjoni jekk n huwa daqs constant1,
u imbagħad ipprogramma tiegħek se jkompli.
Se ħruġ mill- switch dikjarazzjoni u inneħħu
tkompli tagħmel xi ħaġa oħra.
>> Jekk, madankollu, n mhuwiex ugwali għal constant1, allura każ għall constant2
se jiġu kkontrollati.
Mela jekk n ugwali constant2, li l-oħra snippet ta 'kodiċi se jiġu esegwiti.
U allura dan ser break jekk dan huwa ugwali għal dan.
U allura jista 'jkollna also-- ma neċessarjament, though-- każ kontumaċja,
li se jiġri jekk n mhuwiex ugwali għal kwalunkwe mill-każijiet li għandek elenkati.
U fil-każ normali, aħna wkoll m'għandhomx jeħtieġu waqfa neċessarjament
minħabba li l-istqarrija bidla se tkun taf li jeħtieġ li jispiċċa wara l-inadempjenza
każ jekk dan huwa l-każ.
>> DAVID Malan: Iżda stylistically, aħna dejjem poġġih fil hemmhekk.
>> MARIA: Yeah.
>> DAVID Malan: Yeah.
Allura speċjalment meta bdew, speċjalment jekk fost dawk inqas
komdu, nixtieq personalment biss jirrakkomandaw twaħħal mal-IFs
u IFs-elses u ieħor 'jekk' elses jekk- u oħrajn jekk biss
għaliex qed ftit aktar sempliċi.
Din hija ottimizzazzjoni sbieħ, jew xi kultant anke estetikament dan
jagħmel il-kodiċi jinqara aħjar.
U fil-fatt, probabbilment nofs l-semestru Ser naraw problema
sett fejn hija biss jistenna aħjar u aktar faċli biex jinqara għall-bnedmin
bl-użu stqarrija swiċċ.
Imma ma joqogħdu jinkwetaw dwar jaqbdu ma 'dan kmieni wisq.
>> MARIA: Yeah.
Jekk ikollok ħafna ta 'jekk id-dikjarazzjonijiet, jista 'biss ma ikunu jistgħu jinqraw ħafna.
Jista 'ma jkunx malajr ħafna għalik biex jgħaddu minnha.
Allura jaqilbu dikjarazzjonijiet jistgħu jkun utli ħafna, kif ukoll.
U wkoll, ma remember-- ma ninsewx li tpoġġi l-pawżi fil hemmhekk.
>> DAVID Malan: M'għandekx tiftakar dan.
>> MARIA: Għaliex imbagħad inti tista 'taqa permezz minn każ għall-ieħor.
Mela ejja ngħidu li każ constant1 ma jkollha dikjarazzjoni waqfa fiha.
Imbagħad nistgħu jaqgħu permezz constant2 każ ġewwa.
U ma rridux li tagħmel dan jekk konna diġà laħqu każ constant1
u huwa ugwali għal n.
>> Għalhekk, per eżempju, jekk ikollna varjabbli n li fih għadd klassi,
u irridu naraw dak li klassi is-- jekk n ugwali 50,
aħna qed tmur għall-istampar "CS50 hija Introduzzjoni għall Computer Science I. "
Allura aħna qed tmur biex jinkiser.
U li hu.
Jekk, madankollu, n ikun ugwali sa 51, aħna qed tmur
għall-istampar "CS51 hija Introduzzjoni li Computer Science II. "
Imbagħad, għal darb'oħra, aħna qed tmur biex jinkiser.
Madankollu, jekk allura npoġġux 124, 61, kull numru ieħor li inti tista 'taħseb,
jew programm mhux se li jirrikonoxxu dan.
Allura li għaddej biex jgħidu, "Jiddispjacini, jien ma jkunux familjari mal-klassi. "
U li għaddej biex jinkiser.
DAVID Malan: Allura inti tista 'verament tara l-jekk, inkella jekk, idea inkella hawn.
Huwa sintassi biss differenti għall jesprimi l-istess idea preċiża.
>> MARIA: Eżattament.
Issa għandna l-operaturi tenarji tagħna.
Operaturi hekk ternarji jkollhom tliet parts-- kundizzjoni,
xi ħaġa li tagħmel jekk din il-kundizzjoni huwa minnu,
u mbagħad xi ħaġa li tagħmel jekk din il-kundizzjoni hija falza.
Allura inti tara, bażikament, l sintassi ta 'dak hawn.
Għandna l-kwistjoni mark, u allura the-- dak li nsejħu dan?
DAVID Malan: Il-kolon.
MARIA: Kolon.
Grazzi.
Jiddispjacini.
Mela ejja nħarsu lejn eżempju tagħna biex ara jekk nistgħu jagħmlu sens ta 'this--
== class_num 50.
Allura hawn naraw operatur Boolean tagħna == li tqabbel il-class_num varjabbli
50.
Stores hekk class_num integer.
U jekk dan integer ugwali 50, allura aħna qed
ser taħżen "David Malan" ġewwa l-professur sekwenza.
Jekk in-numru tal-klassi ma daqs 50, "mhux David Malan"
se tkun il-professur.
>> DAVID Malan: Grazzi.
U hekk dan jidher ekwivalenti għal dak, tgħid, fl-ewwel daqqa t'għajn?
>> MARIA: Lili jidher bħal dikjarazzjonijiet-ieħor jekk.
>> DAVID Malan: Yeah.
U fil-fatt, dan huwa tip ta 'pretty inforra waħda,
biex ngħidu hekk, għall-implimentazzjoni eżattament il-loġika ta 'jekk' ħaddieħor
iżda tagħmel dak kollu fi stadju wieħed.
>> MARIA: Eżattament.
Yeah.
Dikjarazzjonijiet hekk jekk-ieħor jista jieħdu ħafna ta 'spazju.
Huma jistgħu jkunu twal wisq għall xi ħaġa sempliċi kemm dan.
Allura dan jista 'jkun ħafna konċiż u sbieħ ħafna.
Allura issa aħna qed tmur fis tħares lejn eżekuzzjoni xi ħaġa għal darb'oħra u għal darb'oħra,
hekk iċċekkjar għal kundizzjoni minn darba
u mbagħad jkomplu jagħmlu xi ħaġa filwaqt li din il-kundizzjoni huwa veru.
Allura dan iwassalna nicely fis loops waqt.
>> Biex ix-xellug, għandna ewwel loop filwaqt tagħna.
Għalhekk, filwaqt li xi ħaġa hija vera, tagħmel xi ħaġa mill-ġdid u għal darb'oħra.
Sabiex tagħmel ċert li l-avviż li tagħna kundizzjoni hawn huwa vvalidat fil-quċċata.
Billi bil tieni loop-- tagħna aħna sejħa li do-waqt loop-- nagħmlu xi ħaġa,
allura aħna jikkontrolla għal kundizzjoni.
U jekk din il-kundizzjoni tkompli tkun vera,
immorru lura u jagħmlu l-ħaġa mill-ġdid.
Allura l-differenza prinċipali hija fejn il-kundizzjoni tkun ikkontrollata għal.
U l-kodiċi qatt ma jista 'jkun esegwiti jekk il-kundizzjoni mhijiex
veru mal-linja waqt.
Billi bil-do-waqt loop, aħna għandna l-kodiċi
li huwa dejjem jitwettaq mill-inqas darba.
U allura filwaqt li l-kundizzjoni tkompli tkun vera,
nistgħu mmorru lura u jtenni mill-ġdid ġewwa.
Allura għaliex taħseb aħna se jużaw a do-waqt li loop fuq loop filwaqt?
Dritt.
Mela jekk irridu li tkun inkoraġġuta l utent għal xi tip ta 'input,
jekk irridu li jistaqsihom li jidħol isem tagħhom,
irridu tal-anqas jistaqsihom darba.
U jekk dawn jidħlu dak l-isem, aħna mhux qed
ser titlob jerġgħu għaliex aħna diġà jafu.
Iżda jekk dawn ma jidħlux isem tagħhom, jew jekk
jidħol xi ħaġa li ovvjament mhux l-isem,
aħna xorta jridu jkomplu talbithom fuq għal isem tagħhom.
>> DAVID Malan: U fl lecture kellna wieħed bħal dan mal-nikseb int pożittiv
eżempju, fejn hemm xejn li check fl-ewwel għaliex inti lanqas biss
gotten int.
Allura rridu nagħmlu this-- tikseb int mill-user--
imbagħad check, forsi, ġdid u għal darb'oħra u għal darb'oħra.
>> MARIA: Eżattament.
Għal OK loops--.
Għal loops jistgħu jippermettu magħna biex tagħmel kważi l-istess ħaġa eżatt, kif ukoll.
Huwa fil-fatt l-istess ħaġa eżatt.
Hekk hemm xejn li inti tista 'tagħmel ma' għal linji
li inti ma tkunx tista x'jaqsmu ma 'loops waqt.
Iżda għal linji jista 'jidher ftit ftit aktar ikkumplikata sintattikament
minħabba li jkunu tliet partijiet ġewwa dak
kien qabel biss il- kundizzjoni ma loops waqt.
Allura l-ewwel parti li inti baħar, il- xellug kbira, aħna għandna "int dwarves = 0."
Allura dan huwa fejn aħna initialize varjabbli tagħna.
>> Imbagħad għandna punto virgola u "dwarves <7."
Allura dan huwa fejn l kundizzjoni fil-fatt hu.
Allura dan huwa dak li rridu naraw jitqiegħdu biss fis-waqt loop--
"filwaqt dwarves <7."
Hawnhekk, li tmur fil- nofs ta 'tagħna għal loop.
Allura "dwaves <7."
U mbagħad aħħar parti tagħna huwa "dwarves ++," li huwa fejn aħna aġġornament varjabbli tagħna.
Allura l-ħaġa importanti li tirrealizza hija li din
se jmorru permezz ta 'dan għall loop seba 'darbiet u tesegwixxi seba' darbiet.
Allura aħna għandna seba dwarves, u dawn qed kollha
se ngħid, "jien hawn biex jgħinuk, Snow White "
minħabba li huma lesti biex jgħinu Snow White.
>> Bil filwaqt loops, aħna kien jagħmel l inizjalizzazzjoni u l-aġġornament
mhux ġewwa l-kundizzjoni, għal darb'oħra, iżda jew qabel jew ġewwa l-linja waqt
biex tiżgura li we-- minħabba aħna dejjem bżonn dawk il-partijiet.
Allura biex tagħmel ċert li għandna minnhom, aħna ħadthom xorta miżjud magħhom
fuq, mhux biss ġewwa l-parentesi.
>> DAVID Malan: U hekk jidher like-- fil-lecture, per eżempju,
I kważi dejjem jużaw, bħal, iu nu varjabbli pretty boring.
Jidher qisu inti tista 'tuża aktar cleverly varjabbli msemmija, wisq.
>> MARIA: Yeah, huwa attwalment sbieħ ħafna l-użu varjabbli daqsxejn aktar deskrittivi
għaliex speċjalment jekk xi ħadd ieħor huwa qari code-- tiegħek forsi int grader
jew jekk int jikkollaboraw ma somebody--
inti tixtieq li tagħmel ċert li huma jifhmu dak li qed isir.
>> KOLLOX SEW.
Allura din hija xi ħaġa funky-- ħafna għal loop ġewwa għall loop.
I do not know jekk aħna stajt tidher dan qabel.
Probabbilment le.
Iżda nistgħu attwalment ikollhom this-- hekk ċirkwiti minflok loops.
Allura ħadd ma tridx li forsi jimxu lili permezz x'inhu għaddej hawn?
DAVID Malan: I ser tieħu stab.
MARIA: Kessaħ.
DAVID Malan: OK.
Allura, spoiler-- aħna tixtieq li jistampaw l-għalf li fil-kantuniera tal-lemin t'isfel
hemmhekk.
>> MARIA: Dritt.
Ijja ijja.
>> DAVID Malan: Allura aħna ħadthom biss iqiegħed dak output kampjun hemmhekk.
So I jistgħu jiddeduċu mill- loop topmost li int
mtennija fuq ringieli il loop aktar imbiegħed, biex ngħidu hekk.
U int mtennija fuq kolonni bl-linja ġewwanett.
U intuwittivament, dan għandhom nisperaw jagħmel sens
minħabba fin-natura ta ' kull programm Rajna
qabel, printf, li hija l- funzjoni aħna qed jużaw, finalment,
għandu l-kapaċità li jistampaw Jittieħed out essenzjalment linja b'linja.
Bħal, ladarba inti ħadthom outputted linja ġdida, hemm
ebda irduppjar lura u l-istampar xi ħaġa ogħla fil-iskrin, mill-inqas
ma jużawx printf bħal dan.
>> U hekk F'dan ir-rigward, jagħmel sens li l-linja ta 'barra nett
għandhom ikunu jirreferu għall-ringieli minħabba li għal kull mogħti ringiela,
int tmur jridu jistampa XXXXX, u mbagħad
jimxu fuq il-filliera li jmiss, XXXXX.
Allura ringieli jasal l-ewwel.
U allura f'kull ringiela, tistampa kolonni.
Jekk inti ippruvaw jagħmlu dan l- oppost, ikun probabbilment mhux
toħroġ bħala ħsiebek.
>> MARIA: Yeah.
Aħna biss ma setgħux imorru lura għall il-filliera ta 'qabel ma printf.
>> DAVID Malan: U x'hemm interessanti kull chat lum dwar ambitu,
fil-fatt, hija li ringiela hija int li l-ddikjarat fil-linja topmost.
Iżda avviż li għadu ġewwa ta ', biex ngħidu hekk,
l-braces kaboċċi li minnufih issegwi,
anki jekk mhuwiex teknikament fi ħdan dawk braces kaboċċi.
Allura ringiela hija fl-iskop għall- intier tal-snippet ta 'kodiċi,
kemm ġewwa tal-extratmosferiku għall loop u ġewwa tal-ġewwa għall loop.
Iżda b'kuntrast, fejn huwa kolonna fl-ambitu?
Il-kolonna varjabbli?
Yeah, biss fil-linja ġewwa.
U li OK għaliex aħna ma aċċess dan barra tal ċingi kaboċċi tagħha.
Kollha għandna nagħmlu huwa print out ġdid linja fl-aħħar nett hemmhekk.
Allura li fil-fatt huwa OK.
>> Għalhekk dan għandu l-effett, jidher qisu, li jagħmlu tliet ringieli u kolonni erba.
>> MARIA: Dritt.
Allura l-ewwel aħna jgħaddu l-ewwel ringiela tagħna.
U biss fl-ewwel ringiela tagħna, nagħmlu l- erba 'kolonni ġewwa l-ewwel ringiela.
Allura aħna jistampa erba X tal.
U allura nistgħu joħorġu mis-għal loop, peress konna diġà stampati erba X tal.
U aħna jistampaw linja ġdida.
U allura aħna jgħaddu l- istess proċess għal żewġ ringieli aktar
li jagħmlu total ta 'tlieta.
>> DAVID Malan: U huwa ta 'min jinnota li huwa biss artifact tal-font, il-fatt
li l-output kampjun jidhru tant taller,
bħallikieku hemm aktar ringieli minn kolonni.
Iżda huwa biss minħabba l-X huwa taller milli huwa wiesa '.
Li kollox li jiġri hemmhekk, flimkien mal-ispazju abjad bejn il-linji.
>> MARIA: Dritt.
Kessaħ.
DAVID Malan: Kull dritt.
Allura ħarsa lejn problema sett wieħed, jieħdu xi mistoqsijiet, u mbagħad taġġorna?
Kull dritt.
Għalhekk fl problema sett wieħed, hemm tliet isfidi primarji, finalment.
Iżda l-ewwel, inti ser issib li l-problema stabbilita
ispeċifikazzjoni, kif ma 'ħafna l- psets dan it-tnaqqis, se jimxu miegħek
permezz ftit eżerċizzji warm-up, punt inti out ftit riżorsi
li inti tista 'jew ma kienu diġà raw.
Per eżempju, CS50 għandha suite ta xorts,
li huma vidjos qosra, ma b'differenza dan, iżda li
huma specific-- suġġett ħafna forsi ħames minuti,
10 minuti fit-tul fuq loops jew dwar il-kondizzjonijiet jew fuq algoritmi
jew aktar tard aktar suġġetti avvanzati, kif ukoll.
U aħna ġeneralment ssodata dawk il-problema
settijiet sabiex l-istudenti jkollhom riżorsi li magħhom
biex tirrevedi materjal li jista 'jkollhom diġà joħorġu fis lecture jew taqsima.
Iżda dan il-mod huwa aktar iffokat u aktar fuq ponot tagħhom.
>> Aħna wkoll tendenza li ssodata fl problema tistabbilixxi affarijiet imsejħa walkthroughs.
Allura kważi kollha tal-eżempji I do fil lecture, fuq il-palk hawnhekk, aħna wkoll
shot fuq camera fil javvanzaw aktar bil-mod,
walkthrough aktar intimi minni fuq laptop tiegħi ta 'dan il-kodiċi, linja b'linja
sabiex fil-klassi, aħna ser spiss skim permezz xi ħaġa jew xi ħadd
se interject ma ' twieġeb għal mistoqsija.
Iżda dan ma jfissirx neċessarjament sink fil għal kulħadd fl-udjenza.
Allura inti ser issib kodiċi walkthroughs għal ħafna mill-eżempji
li aħna nagħmlu hawnhekk fil lecture sabiex inti tista 'timxi permezz ta' dan fil-pass tiegħek
u Rewind jew fast quddiem jew skip għal kollox, jekk inti tixtieq.
>> Hemm ħafna drabi ftit mistoqsijiet warm-up li
nitolbok biex issolvi ta isaħħu dan il-materjal
u kun żgur li int comfy qabel ma tipproċedi bil-bqija tal-pset.
U allura, ovvjament, hemm il-pset innifsu.
U waħda mill-affarijiet aħna deliberatament ħafna
jagħmlu fil CS50 huwa kważi kull uninteresting jew intellettwalment uninteresting
pass mekkanika li inti tista 'tagħmel
huwa dokumentat kważi dejjem tajjeb ħafna.
Matul il-kors tat-terminu, aħna ser jibdew jistaqsu mistoqsijiet aktar rhetorical
bħal ftakar kif tagħmel dan jew dak?
Iżda ġeneralment, inti ser issib li l-settijiet problema inti tikseb
permezz tal-mechanics ta 'xi ħaġa hekk li
l-interessanti, l-isfidi intelletwali huma finalment xellug biex inti l-istudent.
>> Ma 'dak imsemmi, Zamyla, li min aħna jinżammu jirreferi illum fil lecture,
huwa wieħed mill-istaff żmien twil tagħna membru li jkollu wkoll walkthroughs
dwar problemi speċifiċi pset bħall mario u greedy, għalkemm mhux ilma din is-sena.
U huwa f'dawk walkthroughs li hi spiss
joffri xi tips u tricks għall kif tipproċedi, qatt tghidlek
eżattament x'għandhom jagħmlu, iżda rather-- bħal kundizzjoni,
jekk inti will-- giving you inqas ftit ideat b'tali mod li huwa sa inti,
finalment, li jiddeċiedi kif approċċ lilhom.
>> MARIA: tip simili ta 'livell għoli fehim tal-loġika ta 'dak
aħna inti titlob sabiex tagħmel.
>> DAVID Malan: Eżattament.
U, fil-fatt, Zamyla ta walkthroughs huma maħsuba
tingħata risposta għad-frekwentement mistoqsija ta 'fejn
do I bdiet, speċjalment meta dawn l-ispeċifikazzjonijiet twil huma
ftit kbar partikolari it-test kollu u xbihat li jkollhom fihom.
>> Allura water.c, inti ser issib wara li tkun ħadthom kompletati dan,
huwa attwalment relattivament sempliċi.
Assolutament huma mazz minnkom se bang
kapijiet tiegħek kontra l-ħajt jippruvaw biex insemmu għaliex mhuwiex kumpilazzjoni
jew għaliex huwa ma tkunx qed taħdem b'mod korrett.
Imma ladarba inti qed isir magħha u ladarba inti ħadthom
qattgħu xi żmien lotta ma 'kwalunkwe mill-bugs li jista 'jkollok,
inti ser issib li huwa programm qasir ħafna.
Dan jista 'jsir biss fi ftit linji ta 'kodiċi, li ħafna minnhom
Rajna hawn fil lecture diġà, jekk inti tiġbor l-blokki tal-bini dritt.
>> U kif aħna nissuġġerixxu hawn, li għaddej biex jistaqsu
inti tispeċifika kemm il minuta xi ħadd qed tieħu doċċa fuq il-kampus.
Aħna jispeċifikaw fil-problema iffissar tar-rata ta 'fluss ta' ilma
fil, bħal, a-fluss baxx doċċa ras, ħafna bħall-clip Seinfeld
rajna bieraħ jew l-oppost tagħha.
U allura inti biss għandek li jagħmlu daqsxejn ta 'matematika,
really-- aritmetika jużaw C li tgħid us kif ħafna, madwar, fliexken ta 'ilma
huwa li ekwivalenti għal jekk aħna qed jieħdu n-minuta doċċa.
>> Issa, fil mario.c, dan se li jkun programm kemmxejn itwal.
Huwa għadu mhux se jkun dan twil.
Just ftit linji itwal minn water.c.
Iżda li għaddej biex tkun opportunità jirrikreaw l-iskola antika Mario
piramida mill Super Mario Brothers jew xi ta 'segwitu.
Mhuwiex ser tfittex bħala prettier jew bħala colorful bħala li waħda hemm.
Aħna biss ser tuża hashtags ftit bħal għandna hawnhekk fuq l-iskrin
jużaw it-test ASCII.
Iżda se tqarreb l-istess idea.
U li għaddej biex tkun jeżerċita dik ewwel daqqa t'għajn
Jidher pjuttost simple-- biss stampar ta 'piramida sempliċi.
Iżda hemm xi karatteristiċi koppja hawnhekk li huma interessanti.
Avviż li t-tarf lemini tal il-piramida fil-fatt għandu wisa tnejn.
Allura hemm żewġ ugwali kolonni għoli, li
jagħmilha jeħtieġu ftit daqsxejn ta 'ħsieb li jagħmlu
ruħek li tikseb dak eżattament id-dritt, kif kuntrarju biss perfettament angolata
linja.
Allura dak daqsxejn ta 'każ kantuniera imma jaqbel mal-logħba attwali.
>> U huwa wkoll mhux ovvju fl-ewwel t'għajn kif jistampaw l-ispazju abjad.
Allura meta I tħares lejn l- kampjun output here--
u huwa wkoll fil-spec-- dan tip ta qisu rettangolu,
iżda djagonali tal- rettangolu ġie mqatta off,
u huwa biss spazji bojod, biex ngħidu hekk.
U għalhekk spiss staqsa kwistjoni hawnhekk hija dejjem, ukoll,
kif nista jiċċaqalqu l-hashtags fuq il-lemin?
Jew kif nista jistampaw l-ispazji vojta?
U huwa attwalment aktar faċli milli ħafna studenti jaħsbu.
Dritt?
Tista approssimati viżwalment bi ftit laqtu l-ispazju bar darba jew darbtejn
jew tliet darbiet.
>> U hekk anke jekk ma printf aħna kważi dejjem jistampa string jew int
jew kelma bħal "hello, dinja "jew serje ta 'kliem,
inti tista 'ukoll biss print kwotazzjoni, l-ispazju, unquote.
U li fil-fatt se tagħti inti spazju abjad hemmhekk.
Sabiex iżommu dan f'moħħhom u ma overthink dan.
Int verament għandhom tiddeċiedi ringiela mill ringiela mill ringiela,
b'differenza ma Eżempju tiegħek mument ilu, kemm ta 'dawk
kolonni għandhom ikunu spazji bojod u kemm minnhom għandu jkun hashtags.
Huwa se jieħu ftit ta 'żmien, iżda huwa finalment puzzle loġika ta 'tip.
>> MARIA: Yeah.
Iżda l-loġika ta 'ringiela għaddej minn ringiela se tkun utli ħafna hawn.
DAVID Malan: Yeah.
Naħseb li l-kodiċi kampjun inti gave-- anki għalkemm ma kienx programm komplet.
Inti xorta jkollok bżonn int u prinċipali u stdio.h null u #include,
ħafna ta 'l-għalf minn lecture.
Iżda l-blokki tal-bini jidhru li huma hemmhekk.
U allura finalment hija xi ħaġa ftit aktar algorithmic.
Għalhekk jirriżulta li kull darba li inti jmorru fil CVS jew kwalunkwe store konvenjenza
u xi ħadd idejn inti fil- bills kaxxier jew muniti bħala bidla,
jirriżulta li dawn, il-bnedmin, kemm jekk taf jew le,
probabilment tuża x'hemm imsejħa algoritmu greedy,
li biha jekk int dovuti, jiġifieri, $ 21 fil-bidla għaliex għal xi raġuni
inti xtrajt xi ħaġa ħafna rħas bil-kont kbir ħafna fil CVS,
ikun verament annoying jekk il kaxxier ħadt 21 singles jew, agħar
għadhom, lott kollu ta 'muniti.
Pjuttost, dak li persuna raġjonevoli hija probabbilment ser tagħmel hu li dawn qed tmur
li grab $ 20 u mbagħad $ 1-kont, u banda inti biss żewġ kontijiet f'dik il-kawża.
MARIA: Allura dawn qed ifittxu li jimminimizzaw il-bidla li jagħtu lura lilek.
DAVID Malan: Eżattament.
U istess jittrattaw muniti, kif ukoll.
Jekk inti qed dovut, jiġifieri, $ 0.50, nisperaw li int ma tridx 50 pennies.
Inti minflok tixtieq żewġ kwarti, per eżempju.
Issa, dan ma jassumu li l-kaxxier għandha
biżżejjed ta 'kull denominazzjoni li hu jew hi jista 'jkun irid jtik.
Iżda aħna ma jippermettu li inti tassumi kemm fil-problema.
U l-għan, finalment, huwa li jimplimentaw kodiċi C algoritmu greedy.
Allura l-utent huma permessi it-tip fil kemm
bidla hu jew hi huwa dovut ma 'dollari u ċenteżmi, xi tip ta 'floating point
valur probabbilment.
U allura inti għandek tagħmel l-matematika u figura algorithmically, ukoll,
kif muniti ħafna tista 'tagħti I inti minimament biex jagħtuk
eżattament dak l-ammont ta 'bidla.
Iżda hemm għaddej li jkun partijiet delikata ftit hawn, id-dritt?
Simili hemm l-sħiħ kwistjoni impreċiżjoni.
MARIA: Eżattament.
Punt hekk floating Valuri jkollhom impreċiżjoni.
Did nitkellmu dwar dan fil lecture llum?
>> DAVID Malan: Aħna ma l- aħħar darba fl-lecture.
Aħna tkellimna dwar impreċiżjoni.
U inti ma tridx li iqarrqu-utent ta 'kemm it-tibdil hu jew hi huwa dovut.
U għalhekk l-walkthrough, fil il-problema sett ispeċifikazzjoni,
jaħsbu ftit, finalment, li kif tista 'jittaffew dawk impreċiżjoni
żbalji, potenzjalment.
Huwa evitabbli, ċertament, għall l-inputs aħna qed jitkellem dwar.
U, fil-fatt, pennies-- forsi aħna ser tiddifferixxi għall Zamyla,
I think, għall-tricks hemmhekk.
Allura finalment, inti ser issib progressjoni ta 'problemi din il-ġimgħa,
l-ewwel waħda minnhom hija pjuttost żgħira, imbagħad medju, allura ftit akbar.
Iżda kollha kemm huma jużaw l-bini blokki mill din il-ġimgħa passat,
minn dan supersection, problema stabbiliti ispeċifikazzjoni
tpoġġik riżorsi innumerabbli.
Iżda xorta, jekk xejn jitħabtu, speċjalment fost dawk inqas komdi
bl-ebda sfond minn qabel, jaslu għal ħinijiet tal-uffiċċju
nhar it-Tnejn u t-Tlieta u L-Erbgħa u l-Ħamis.
Mur fil CS50 Iddiskuti permezz websajt tal-kors, l
li permezz tagħhom inti tista 'chat b'impjegati u klassi.
>> Iżda fl-aħħar, naħseb li l- aħjar parir huwa biss jibdew kmieni.
Mhuwiex-tip ta 'klassi li inti għandhom ikunu qed jibdew psets nhar l-Erbgħa
lejl, jew tal-lejl il-Ħamis agħar.
>> MARIA: aħjar parir tiegħi huwa li bdew mill Tnejn.
DAVID Malan: it-tnejn.
Mela jekk int ma bdew already-- ebda.
Iżda anke jekk mhux it-tnejn, imbagħad it-Tlieta.
L-ewwel l-aħjar.
U dak l-raġuni l- kors tant ġranet tardivi
biex jagħtuk daqsxejn ta ' pressjoni psikoloġika
biex jibdew aktar kmieni iżda xorta jħallu affarijiet slip meta l-affarijiet jieħu aktar
milli għandek tistenna.
>> MARIA: U inti tixtieq li tagħmel użu ta ' ħinijiet tal-uffiċċju kif kemm tista ', wisq.
>> DAVID Malan: Kwalunkwe mistoqsijiet?
Kull dritt.
Well, għaliex ma we taġġorna hawn?