[Powered by Google Translate] LEXI ROSS: Okay, hej, alle.
Velkommen til det første CS50 supersection.
Dette vil være det eneste uge af supersections.
Efter dette, vil du være at gå til regelmæssig sektion med din
tildelt TF.
Men i denne uge, vi gør det på en lille smule af en anden
format, selvom den faktiske format, hvordan det kommer til at gå
for den næste halvanden time eller deromkring, vil er at være temmelig
svarer til, hvad du skal se efter
resten af ​​semesteret.
>> Så hvad vi vil gøre, er at starte med at gå over
sektion del af dit problem sæt.
Så hvis du har læst over p sæt, som forhåbentlig du har,
vil du se, at der er en del der hedder "Et udsnit af
Spørgsmål ", og disse er beregnet til at blive væk
over i dine afsnit.
Så du har en fordel ved at være her i, at du kommer til
gå over disse mere konceptuel-baserede spørgsmål.
Og når vi gør det, vil vi gå over de sidste to
§ spørgsmål, som er mere dykke
til kodning type spørgsmål.
Så vi er faktisk nødt til jer tage et par
minutter for hvert spørgsmål, så prøv at løse dem på egen hånd, og
så vil vi komme sammen med den nye CS50
Spaces værktøj og gå over de svar, så du har alle de
rigtige kode til at gennemgå.
>> Så et par meddelelser.
Glem ikke, at der er kontortid hver nat dette
uge i Annenberg 8 til 11, så skal du tage
fordel for dem.
Og også, ikke stiller til start p indstillet for sent i ugen.
Start i aften eller i morgen aften senest.
Du vil fortryde det, hvis du venter for længe med at starte
og løbe ind i problemer.
Så tag vores råd og definitivt starte tidligt.
Dette vil være en god måde at komme i gang med
disse afsnit spørgsmål.
Så jeg er Lexi, ved den måde.
Jeg er en TF.
Og det er Dan, der er også en TF.
DAN BRADLEY: Hej med jer.
LEXI ROSS: Og han kommer til at blive
startede med spørgsmålene.
>> DAN BRADLEY: Okay.
Så jeg har tænkt mig at bare indføre et par lille compiler
spørgsmål, som vi kommer til at tale om og bare gå igennem
en slags konceptuelle ideer, som vi er nødt til rent faktisk at køre
kode, enten i et apparat eller med vores slags falske
apparater, Run CS50 og Spaces.
Så lad os bare se, om nogen blandt publikum har nogen idé
om, hvad vi taler om.
>> Så hvad er et bibliotek i forbindelse med koden?
Nogen der har nogen idé?
Okay.
Sweet.
PUBLIKUM: Like a bestand af funktioner, som en anden
allerede er programmeret, at vi kan bygge op?
DAN BRADLEY: Præcis.
Så et bibliotek er en bestand af funktioner, at en anden
har allerede programmeret, at vi ikke behøver at
ny at gennemføre os selv.
Så vi har ting som standard I / O-bibliotek, den
cs50.h bibliotek, der er ting, som verden,
Internettet, har personalet gjort, der gør vores
liv lettere som kodere.
Så hvordan kan du udskriver ting til en skærm?
Jeg har ingen idé om, printf gør det for mig.
Det er noget en anden har allerede dette er
awesome og fungerer ganske godt.
>> Okay.
Så for at bruge bibliotekerne, på den anden side, men du har
til rent faktisk at gøre nogle ekstra ting med din kode.
Så du er nødt til at bruge ting som dette # include.
Hvad betyder det så?
Hvilken rolle at spille, når du har det i et program?
PUBLIKUM: Det kan du gøre brug af de funktioner, der er
[Uhørlig]
bibliotek ved blot at bruge de definitioner, der allerede
[Uhørlig]
bibliotek.
DAN BRADLEY: Okay.
Det kan du trække biblioteksfunktioner ind i din kode, men
det gør det på en måde, der er ikke helt det samme som samme
-Lcs50, som vi vil komme til i et minut.
Det bare lader compileren vide, at hey, der er disse
funktioner, der vil komme op i din kode.
Vær opmærksom på, at hvis ikke de er fuldt beskrevet i koden
der er foran dig, er der nogle biblioteksfunktionen
, der vil tage sig af det.
>> Så i tilfælde af printf, som vi vil gå over et par
gange i dag, er den standard I / O-bibliotek.
Så mens jeg ikke definerer printf overalt i min kode nogensinde,
standard I / O tager sig af det for mig, og jeg vil gøre # include
stdio.h, og det vil trække i disse funktioner, som jeg
har aldrig defineret.
Så hvad er forskellen altså mellem dette # include
og-lcs50?
Hvad gør-lcs50 gøre, når jeg videregive det til den
compiler, ligesom Dunk?
Nogen der har nogen idé?
Okay.
Ja?
PUBLIKUM: Det kan du få adgang til CS50 biblioteket?
DAN BRADLEY: Det kan du få adgang til CS50 biblioteket i
at den fortæller compileren, Dunk, at hey, det er her
du rent faktisk gå for at få disse funktioner.
Så # include siger, at der er
disse funktioner eller andet sted.
The-lcs50 siger, gå til denne plet i din computer -
det er den CS50 bibliotek -
og trække op den faktiske koden til disse funktioner.
Giver det mening, alle?
>> Så disse er alle ting, der er at hjælpe din compiler
sammen med at gøre koden faktisk kører.
Hurtig spørgsmål.
Må folk ved, hvad en compiler er?
God mening?
Det er dybest set tager den skriftlige kode, som du har,
konvertere den til binær, omdannes til maskinkode,
så din computer kan faktisk forstå det.
Og uden videre, vi kommer til at gå ind i den mere
faktiske kodning øvelser, som du fyre vil have nogle sjove
synker tænderne i, og Lexi vil gå over det.
>> LEXI ROSS: Okay.
Awesome.
Så vi vil gå over to spørgsmål her.
Så den første rent faktisk, kan du se, det er en lille smule
small lige her, men i bund og det er beder dig om at
skrive et program til at tage nogle brugerinput.
Jeg er ikke sikker på, hvorfor der er en sort firkant der.
Det er mystisk.
Det bør være fint, selv om.
Så det vil have dig til at tage en bruger input i Celsius, konvertere denne
til Fahrenheit, og derefter fortælle brugeren hvad temperaturen
ville være i Fahrenheit.
Så du kan se et eksempel input / output sekvens her.
Brugeren indgange - efter Celsius henviser fed til
brugerinput.
Så brugerindgange 100, og programmet udgange
Fahrenheit, 212,0.
Og en vigtig sondring i dette program er, at vi er
vil kun have én decimal, så vi vil se, hvordan du gør
at så godt.
Og så en anden ting at bemærke er, at vi bruger a.out
fordi Dunk, compileren, automatisk navngiver sit binære
filer a.out medmindre du angiver det med en vis flag til at give
det sit eget navn, men for nu skal vi bare skal bruge
standard a.out.
>> Så lad os faktisk tage et par minutter, og prøv at skrive ud
noget kode for denne selv.
Så det er 4:15.
Så på 4:20, vil vi komme tilbage og - oh, højre.
Spaces.
Cool.
Det er lidt ligesom det, vi kalder skelet kode i det
Det er et skelet, men du er nødt til at udfylde kødet af
program til rent faktisk at gøre det køre.
Så du kan se det # include direktiver deroppe at omfatte
CS50 og stdio.
Jeg bemærkede i en kommentar den egentlige formel for omregning
Celsius til Fahrenheit, hvis du ikke kan huske fra høj
skole videnskab eller whatnot.
Og så er det bare et skelet for
den egentlige funktion.
Så alt, hvad du skriver kommer til at gå her.
Og for rent faktisk at komme til dette rum -
så CS50 Spaces kan tilgås via denne webadresse, som Dan er
vil skrive på tavlen, og jeg vil diktere så godt.
DAN BRADLEY: cs50.net/spaces--
LEXI ROSS: / qWLc -
Jeg er ked af, y.
DAN BRADLEY: Y?.
LEXI ROSS: Nej, nej, nej, nej.
Det er fint.
qYLcYWfg.
Så jeg burde se alles navne slags dukker op her.
>> Awesome.
Det ser godt ud.
Det betyder, at folk melder sig ind i rummet.
Så hvis du ikke har fået en chance for at spille rundt i
Spaces endnu, det er faktisk, hvad du skal bruge
med dine TF'er i afsnit alt semester.
Sådan virker det er slags alle skriver deres egen
kode, og ingen kan se det, indtil du trykker på Gem
knap, som jeg peger på lige nu.
Så jeg har tænkt mig at trykke på Gem, og hvis du går alle til mit navn,
som du bør være i stand til at se det i Folk i dette
Space, der er Lexis Beryl Ross.
Så hvordan det kommer til at se ud er du klikker på mit navn, og
du kommer til at se Revision 5, som
er den seneste revision.
Kopier kun Revision 5 ind i jeres rum ved at klikke på det.
>> Ok.
Så lad os gå igennem dette problem sammen, og jeg er
faktisk kommer til at skrive koden op her på skærmen.
Du kan zoome ind en lille smule.
Og så snart jeg er færdig, kan du kopiere min seneste revision
ind i jeres rum, at hvis du vil se den endelige løsning.
Nu Spaces har kapacitet for mig at gå ind og se nogen af
den kode, du fyre har skrevet, men bare fordi det er
en så stor del, og vi ikke rigtig har samme
slags diskussioner kapaciteter som en mindre
sektion, vi bare kommer til at gå igennem, og jeg bare
at skrive koden.
Men absolut stoppe mig med spørgsmål på noget tidspunkt.
Vi vil gå igennem den slags trin for trin for at gøre
sikker på at vi forstår de enkelte dele af, hvad der foregår her.
Kan alle se denne tekst her?
Er der nogen ønsker den større?
>> Så hvad er den første ting, vi skal gøre her?
Nå det væsentlige, da vi ønsker at få input fra
bruger og vi ønsker det skal være sådan en god oplevelse for
bruger, vi rent faktisk ønsker at fortælle dem, hvad vi leder efter.
Så lad os udskrive præcis, hvad vi ønsker, danner brugeren.
Så bare ikke gider at hæve din hånd, bare rasler det ud.
Hvad er kommandoen til at udskrive noget på skærmen?
PUBLIKUM: printf.
LEXI ROSS: Awesome.
Okay, så printf.
>> PUBLIKUM: Hey, Lexi?
[Uhørlig]?
LEXI ROSS: Sure.
Så printf, som vi har set ofte i foredrag, er det
kommando om at udskrive noget til den standard output stream.
Så vi vil bede brugeren om at indtaste en
temperatur i Celsius.
Og nu har vi faktisk ønsker at tage det input, de giver
os og gemme den i en variabel.
Så vi har lært lidt om typer.
Kan nogen huske hvad type vi ønsker for en variabel
med et decimal i det?
PUBLIKUM: Float.
LEXI ROSS: Float.
Ja, awesome.
Det er en float.
So.
Og hvordan skal vi - stort vink - få
flyde fra brugeren?
PUBLIKUM: GetFloat.
LEXI ROSS: Yeah.
Cool.
Og brugeren kunne potentielt betyde, og forsøge at give os et
negativt tal, men lad os ikke bekymre dig om, at der for dette
problem nu.
Du kommer til at bekymre sig om, at en lille smule mere på din
lektier på problemet sæt.
>> Så lad os antage at de giver os en god nummer, og nu har vi
faktisk nødt til at konvertere denne flyde fra Celsius til
Fahrenheit.
Så lad os høre vores formel op her, og lad os skabe en
ny variabel og kalder det Fahrenheit.
Jeg studerede stavning.
Det er lidt crazy, jeg kender.
Og lad os regne med rækkefølgen af ​​operationer til slags gøre
sit job her, men vi vil bruge parenteser bare for at være
helt verbose og klar.
Så Celsius gange 9 divideret med 5.
Jeg har tænkt mig at zoome ud bare en lille smule, så det kan passe på
én linje, men jeg vil zoome ind igen for dem, der ikke kan se,
længere i ryggen.
Ked af det.
Strange markøren spørgsmål.
Plus 32.
Okay, nogen der har nogen spørgsmål om, hvordan jeg sætter i
formlen, eller eventuelle problemer med det?
Yeah.
>> PUBLIKUM: Har vi brug for at sætte printf før svømmeren
celsius, flyde Fahrenheit script linjer?
Betyder det noget, hvilken rækkefølge de er i?
LEXI ROSS: Så spørgsmålet var, har vi brug for printf
før vi selv beder om svømmeren?
Svaret er, at vi gør.
På den måde, at markøren som brugeren får lov til at indtaste deres
float vil ske efter det trykte c, right?
Og det giver mening, hvis du tænker over logisk, ligesom
du spørger brugeren et spørgsmål, og så er du
modtager et svar.
Så det udskriver c, og så er der en markør, så den
Brugeren kan indtaste værdien, som vi vil se
senere, når vi Demo.
Ja?
>> PUBLIKUM: Hvorfor bruger vi en flyder og ikke en dobbelt?
LEXI ROSS: Så en dobbelt, det væsentlige, som navnet
indebærer, giver os den dobbelte mængde
præcision som en float.
Men typisk i C, i dette naturligvis for en række
grunde, vi kommer til at bruge flåd.
Og det er virkelig alt den præcision, vi har brug for bare for
slags grundlæggende tempera konverteringer.
Typisk doubler er mere anvendt i Java-sproget,
flåd er mere almindelige i C. Okay, awesome.
>> DAN BRADLEY: En mere.
LEXI ROSS: En mere.
Ja?
PUBLIKUM: Hvor vil du placere Space Bar?
Ligesom, [uhørlig] Space Bar [uhørligt]?
Betyder det noget?
LEXI ROSS: Åh, nej.
Så det gør ikke noget.
Jeg faktisk skulle have sagt på en anden plads her.
Men hvad betyder sagen er, at du er konsekvent
hele din kode.
Så hvis du beslutter at bruge en stil af afstand, så sørg for at
holde det hele hele din kode, eller du kan få stil
fratrukket point.
Så konsistens er nøglen.
DAN BRADLEY: Jeg tror, ​​han talte om det pågældende rum.
LEXI ROSS: Åh, du taler om, at rummet?
Ved den faktiske C?
PUBLIKUM: Yeah.
LEXI ROSS: Åh, så det er bare for udseende, right?
Så på den måde, når vi kører koden, hvis vi ikke havde denne
plads her, hvis det lignede dette, ville brugeren starte
skrive i antallet og det ville være knust op højre
mod tyktarmen efter C, og det ville se ud lidt
bedre, hvis der var et mellemrum.
Og du kan se, at en lille smule bedre, når vi faktisk
køre denne kode, når vi får det færdigt.
Awesome.
Ja, endnu et spørgsmål.
>> PUBLIKUM: Skal jeg nødt til at sætte et decimaltegn efter en af ​​de
[Uhørlig]?
LEXI ROSS: Så du ikke, på grund af rækkefølgen af
operationer.
Så fordi Fahrenheit er allerede en float, som er
Celsius, behøver du ikke eksplicit kaste nogen af ​​disse
andre numre som flåd, selvom der i andre
omstændigheder, når du beskæftiger sig med int'er, kan du
nødt til at sætte et punkt til eksplicit kastede det som en float.
Ja?
PUBLIKUM: Jeg var bare undrende hvis akkumulerende spørgsmål i
disse kommandoer som GetFloat?
LEXI ROSS: Ja, godt spørgsmål.
Så spørgsmålet var, betyder aktivering stof i
kommandoer som GetFloat?
Svaret er ja, det gør det.
Så GetFloat er, som Dan beskrev tidligere, et bibliotek
funktion i CS50 biblioteket, og det blev skrevet som kapital
G, hovedstaden F. Så hvis du ikke skriver det med disse hovedstæder
der er compileren ikke kommer til at forstå, hvad
fungerer du refererer til.
Okay.
Ja?
>> PUBLIKUM: Er argument til main altid ugyldig?
LEXI ROSS: Ja, det er en anden stor spørgsmål.
Så den kode, du har kopieret fra min plads fejlagtigt havde
nogle flere argumenter.
Så spørgsmålet var, er argumentet for den primære funktion
altid ugyldig, som i det væsentlige betyder intet?
Svaret er nej.
Du vil måske bemærke, at den kode, du kopierede fra min tidligere
revision havde hvad kan ligne noget, der virkelig gør
mening lige nu, nogle char *, argv, argc.
Må ikke bekymre dig om det for nu, men du vil finde ud af senere
på de gør en forskel.
Men hvis du ikke bruger den slags ekstra funktionalitet
som du vil lære om senere, ugyldig
er helt fint.
>> Ok.
Og vi har endnu et skridt, som er at vi ønsker at
faktisk vise brugeren, hvad det konverterede temperatur er.
Så igen, vi kommer til at bruge printf, og lad os sige f, bare
hensyn til sammenhængen.
Og nu skal vi til at gøre noget lidt tricky.
Så vi kommer til at bruge et flag, eller en særlig form for notation,
at fortælle printf til kun udskrive én decimal.
Og er der nogen tilfældigvis vide, hvad der kommer til at se ud
gerne, før jeg skriver det ud?
Ja?
PUBLIKUM: 0,2% f?
LEXI ROSS: Yeah, yeah.
Så faktisk, det er virkelig tæt.
0.01f for .01% f, og så må vi huske at medtage
det andet argument til printf, som er variabel i sig selv,
der er n.
>> En sidste skridt.
Kan nogen huske, hvad der er i vores vigtigste funktion?
Ja, deroppe.
PUBLIKUM: Return?
LEXI ROSS: Præcis.
Så da dette er de vigtigste afkast i int, vi ønsker at
også vende tilbage i int.
DAN BRADLEY: Procent skal være på den anden side.
LEXI ROSS: Okay.
Undskyld, gutter.
Det var en fejltagelse.
Så procent kommer før 0,01.
Så det er% 0,01 f.
Det er slags svært at huske.
Mange mennesker, som mig, se bare dem op
når vi bruger dem.
Ja, deroppe.
PUBLIKUM: Hvorfor er det 0,01 og ikke 0,2 eller 0,1?
LEXI ROSS: Jeg ved det ikke, faktisk.
Kender du?
DAN BRADLEY: Grunden til at det er 0,01 i modsætning til 0,02, eller
0,2, eller 0,1, er temmelig vilkårligt til den måde, hvorpå
programmør oprindeligt designet det.
PUBLIKUM: Det er ikke, hvad jeg mente.
Jeg beder ikke om årsagen.
[Uhørlig] hvorfor.
Jeg har det skrevet som 0,2, og den leverer to -
DAN BRADLEY: Yeah.
Så vi var kun ønsker én.
PUBLIKUM: Åh, Okay.
Så du kunne 0,01 derefter.
DAN BRADLEY: 0,1 ville sandsynligvis også virke.
0,01 fungerer så godt.
LEXI ROSS: Oh, kan 0 være at vise nul, hvis
det er mindre end én.
DAN BRADLEY: Ja, jeg tror det er rigtigt.
Så 0,01 ville vise et nul, hvis den ikke har noget
der ville gå der naturligt.
Så hvis du var, siger, at sætte i 100 for Celsius, ville det
komme ud til 212 normalt i Fahrenheit, ligesom 212 præcist.
Hvis du har 0,01, vil det vise 212,0, som
i modsætning til blot 212.
LEXI ROSS: Det er rigtigt.
Så læser det dybest set fortæller printf, udskrive et komma,
og udskrive en 0 hvis det er nødvendigt.
Hvis ikke, skal du udskrive den første decimal position.
DAN BRADLEY: Og vi vil udforske nogle af dette, når vi er
faktisk kører koden.
LEXI ROSS: Yeah.
PUBLIKUM: Så jeg satte 0,1.
Det er stadig udskriver sin nul.
DAN BRADLEY: Det er stadig udskriver sin nul?
PUBLIKUM: Yeah.
DAN BRADLEY: Hm, okay.
LEXI ROSS: Cool.
>> Ok.
Flere spørgsmål om denne kode, før jeg kompilere og køre?
Er der nogen se nogen bugs her først og fremmest?
Enhver ser noget, der burde være her?
Hvis dette var dit problem sæt, hvad der ville være her, er ikke
der lige nu?
Ja, godt.
Så jeg ikke medtage kommentarer, fordi jeg leverer dem
mundtligt, men hvis jeg skulle skrive dette i et problem sæt, jeg ville
definitivt vil sætte kommentarer til angive, hvad jeg
gør i det væsentlige i programmet.
Og du vil slags få en fornemmelse for det, som du bevæger dig igennem
semestret, den rigtige mængde af høringssvarene.
Du ønsker ikke at være alt for ordrige og sat linjer og
linjer af kommentarer til hver af dine linjer kode, men du
ønsker heller ikke at være ikke verbose nok og forlader
læseren til at forsøge at regne ud, hvad dælen
din kode gør.
>> Okay, cool.
Lad os prøve at køre denne kode.
Okay, jeg kommer til at zoome ud en lille smule.
Cool.
Så du vil opdage at der er en play-knappen her.
Lad os klikke på Afspil.
Så du vil opdage her, ligesom i spec på problemet
indstillet, er der. / a.out.
a.out er navnet på filen eksekverbar, som er en
langt ord for blot en fil bestående af binær kode,
din computer er faktisk kører.
Så som vi forventede, vi har C her.
Så kalde et nummer.
PUBLIKUM: 23.
LEXI ROSS: 23.
DAN BRADLEY: Dit program tog for lang tid at køre.
Bare kør den igen.
LEXI ROSS: Oh, min dårlige.
Okay.
Spaces er kræsne tider.
Det ønsker dig til at tænke på dine fødder.
Okay, 23.
Awesome.
Skal alle tro dette?
Cool, fordi det virker.
>> Okay.
Lad os prøve et par mere.
Lad os prøve en kant tilfældet her.
I datalogi, når vi taler om kant sager, vi mener
sager til dit program til at køre, som er slags på den meget
kanter af rimelige input eller at prøvningsresultaterne visse hjørner af
logikken i dit program, og det giver mere mening, når vi
gøre mere komplicerede programmer.
Lad os prøve 0.
Awesome.
Vi kender alle denne.
Cool.
Har du flere spørgsmål om dette, før jeg flytter
videre til næste program?
Okay, awesome.
Så nu vil vi -
vil du bare bruge min computer?
DAN BRADLEY: Ja, det er nemt nok.
>> Okay, så kommer til at gå og snakke om at lave procentsatser.
Så vi er væsentlige i denne næste lille øvelse, der går til
tage to heltal input fra brugeren, håber på en
ikke-negative tæller og en positiv nævner, og
dybest set dele dem og udsende hvad der kommer ud som en
procent.
Så vi vil have det til kun at acceptere ikke-negative tællere og
acceptere kun positive nævnere, og at spørge
for nye, hvis det ikke har fået, hvad den ønsker.
Okay?
Så giv det en go.
LEXI ROSS: Oh yeah, du ønsker at gøre det -
oh, måske folk skal kopiere min kode.
DAN BRADLEY: Yeah.
LEXI ROSS: [uhørligt]
Spaces.
>> PUBLIKUM: Jeg har et spørgsmål.
Hvis jeg bruger Spaces, og jeg vil gemme [uhørlig] den
Fahrenheit konvertering, gemmer jeg det og derefter lave en ny -
LEXI ROSS: Vi kunne bare lave en ny Space, eller du kan bare
ønsker at kopiere og indsætte det i en tekstfil eller
noget, så du har det.
DAN BRADLEY: Jeg vil bare ændre mit navn.
LEXI ROSS: Så jeg har lige reddet den seneste revision af
tofahrenheit.c, så hvis du går ind i AAAA Lexis Beryl
Ross, kan du gå ind og kopiere det nyeste kode, og derefter
starte på denne nye, som jeg tror Dan kommer til at give
nogle skelet kode for så godt.
Okay.
DAN BRADLEY: Den seneste revision jeg har på mine, så
Det er helt i top denne gang, er revision 4, og
det vil have, hvad du behøver for at komme i gang.
LEXI ROSS: Okay, og jeg vil kopiere det til mine så godt.
>> DAN BRADLEY: Okay.
Jeg tror, ​​vi vil bare begynde at gå over dette, hvis
nogen er interesseret.
LEXI ROSS: Vi er alle interesserede.
DAN BRADLEY: Vi vil starte ud blot ved at erklære
visse variabler. Så vi har en tæller og af hensyn til
nu vil jeg bare starte den med værdien -1,
og så vil jeg oprette en gør-while-løkke. Mens -
så når jeg ønsker det loop?
Hvornår vil jeg have det at holde beder -
yeah?
PUBLIKUM: Når det er mindre end eller lig med nul.
DAN BRADLEY: Hvorfor kan det ikke være lig med nul?
PUBLIKUM: [uhørlig].
DAN BRADLEY: Yeah.
Så for tælleren, er det bare, mens tælleren
er mindre end nul.
Giver det mening for folk?
Vi holder looping mens tælleren er mindre end nul,
holder vi beder om nye input, og holde krævende, at de
input nye ting.
Så jeg vil bare have en lille printf herinde, ikke-negativ
num -.
Og så gør vi det samme som før, medmindre vi gør en
GetInt, bare fordi vi ønskede at gøre det som
procentdele af int'er.
Så tæller = GetInt.
>> Okay, nu et par ting.
Har jeg brug for dette -1 her?
PUBLIKUM: [uhørlig].
DAN BRADLEY: Nej.
Hvorfor ikke?
PUBLIKUM: Fordi du får en tilfældig værdi fra brugeren.
DAN BRADLEY: Præcis.
Men jeg ønsker at få erklæringen herude?
Ja.
Hvorfor?
PUBLIKUM: Du er nødt til at finde på ydersiden af ​​løkken.
Ellers er du ikke vil have variablen for resten
af programmet.
DAN BRADLEY: Præcis.
Scope.
Sweet.
Giver det mening for alle?
PUBLIKUM: Kan du sige det en gang til?
DAN BRADLEY: Okay.
Så hvis jeg skulle erklære denne tælleren inde i løkken, hvis
Jeg havde dette i stedet for tælleren er int tæller,
og jeg sluppet af med denne helt,
tælleren ville forsvinde.
Det ville ikke eksistere uden for dette loop, fordi alt
er inden for rammerne af disse krøllede parenteser.
Give mening?
Okay.
>> Så for nævneren, gør vi noget nogenlunde ens, int
nævner = -
og jeg har ikke brug for lig -
gøre, og for det mens i denne sag, hvad jeg vil?
Hvilken tilstand vil jeg have det til endnu loop på?
PUBLIKUM: Mindre end eller lig med 0.
DAN BRADLEY: Mindre end eller lig med 0.
Nævner <= 0.
Glem ikke dine semikoloner, børn.
Så vi gør det samme som før, printf en positiv
nævner, og vi får int herfra.
Der vi går.
GetInt.
Okay.
Og så i sidste ende ønsker vi at udskrive nogle procent.
Så for at gøre dette, hvad skal vores streng se ud?
printf.
Alle andre ideer om hvad jeg kan gøre her?
Ja?
PUBLIKUM: Måske% 0,2 [uhørlig].
DAN BRADLEY: Yep.
Okay.
Jeg starter med den første bit,% .02%%,
citater, komma.
Og jeg har tænkt mig at smide en ny linje i her, bare fordi jeg
ligesom nye linjer, når jeg gør tingene på.
Hvilken slags matematiske udtryk skal jeg have her?
PUBLIKUM: Parenteser og flyde.
DAN BRADLEY: Good.
Hvorfor kan jeg ønsker at have det i float?
PUBLIKUM: [uhørlig].
DAN BRADLEY: Godt, godt.
Flyde.
PUBLIKUM: Tæller.
DAN BRADLEY: Tæller?
Okay, så jeg gør float tæller.
PUBLIKUM: Opdelt efter -
DAN BRADLEY: Opdelt efter?
PUBLIKUM: Nævner.
DAN BRADLEY: Skal jeg gøre lige nævner, eller gør jeg float
fællesnævner?
PUBLIKUM: Just nævner.
DAN BRADLEY: Okay.
PUBLIKUM: Og du kan formere sig, at med 100.
DAN BRADLEY: Og jeg ganger det med 100.
PUBLIKUM: Og så parenteserne omkring hele udtrykket.
DAN BRADLEY: Yep.
>> Okay.
Se godt?
Lad os prøve det.
-50.
Godt, 50.
0 og 100, 50%.
Det virkede ligesom vi ønskede.
Betyder denne kode mening at folk?
Jeg har tænkt mig at gemme den, så du kan få en kopi af den.
Ja?
PUBLIKUM: Hvorfor går du ikke behøver at sætte [uhørligt]?
DAN BRADLEY: Hvor?
PUBLIKUM: Ligesom, når du siger nævner lig
[Uhørlig].
DAN BRADLEY: Når jeg har det her?
Hvorfor skulle jeg have int før det?
PUBLIKUM: Fordi den anden har int før det.
DAN BRADLEY: Nå, så det var ikke i en løkke, right?
Så jeg erklære denne int fællesnævner over løkken,
og jeg har ikke det i loop, fordi jeg ville være
erklære den en masse gange, og det ville faktisk ikke bære
over til et andet sted i programmet.
LEXI ROSS: Ja, det vigtige ting at huske er, at
variabler kun skal opgives én gang.
Så forestille mig, det er ligesom at indføre en ny variabel
ind i verden ved at kalde det int eller float eller whatnot, og
når den er erklæret, alt hvad du behøver at gøre for at ændre det er
bare kalde det ved dets rette navn: nævner, eller x, eller y.
Du behøver kun at faktisk kalde det en int bare én gang.
>> DAN BRADLEY: Yeah.
PUBLIKUM: Kan du forklare forskellen mellem% d
og% f, og hvis du nogensinde erklære et
variabel som en decimal?
DAN BRADLEY: Så% d og% f herinde?
LEXI ROSS: Så d faktisk refererer til blot et ciffer, ikke
decimal, der er slags forvirrende.
Der er ingen egentlige datatype kaldet decimal, og når du
ønsker at udskrive en int, du henvise til det som% d, eller
%-Whatever-d. F er for float, som man skulle tro det
ville være i, men det er faktisk d for int.
>> DAN BRADLEY: Yep?
PUBLIKUM: Så i det andet program, hvorfor vi ikke bare gøre
det samme, når du siger Fahrenheit?
Hvorfor har vi ikke sagt, gerne -?
DAN BRADLEY: I bunden her?
Du kunne have.
Det ville have været helt legitimt.
Jeg kan godt lide at gøre det på denne måde, andre mennesker kan lide at adskille
det ud i forskellige linjer kode.
Enten måde fungerer fint.
Hvad sker der?
>> PUBLIKUM: Kan du forklare, hvad%%
[Uhørlig]?
DAN BRADLEY: Okay, så procent, procent.
Right, blev jeg kommer til at gå over dette.
Den første procent kaldes en flugt karakter, og det bare
siger ting bag dette er faktisk ikke kode.
Så denne første procent, til højre, den% 0,02 f, alle dem% 0,02 f
betyde noget for printf som en funktion.
%%, Jeg ville bare have det til faktisk bare udskrive en
procenttegn.
Så jeg siger ikke der er noget vigtigt bag det.
Jeg siger bare, at der er et procenttegn bag det.
Venligst udskrive et procenttegn.
Så procent, så en anden procent.
PUBLIKUM: Kan du vise, hvad det ville se ud, hvis du har
flyde baseret på en anden linje?
DAN BRADLEY: Oh yeah, helt sikkert.
Så jeg bliver bedt om at vise, hvad det ville se ud, hvis jeg
havde denne float tæller, alt dette matematik, på en anden linje.
Så float procent = -
og jeg ville slippe af med dette og bare sætte i procent.
Og det gør præcis de samme ting, jeg bare
har en anden variabel.
>> PUBLIKUM: [uhørlig].
DAN BRADLEY: Rul ned til hvad?
PUBLIKUM: Så jeg kan se [uhørlig].
DAN BRADLEY: Hvad kan du ikke se?
PUBLIKUM: Undskyld, jeg var [uhørlig].
DAN BRADLEY: Yeah.
PUBLIKUM: Så hvis vi erstatter escape-tegnet,
formoder, at vi ønskede at have et dollartegn i stedet, bare for
Eksempelvis et dollartegn bag procent?
DAN BRADLEY: Nope.
Det er bare en dollar, bare én dollar tegn, fordi en dollar
tegn betyder ikke noget for printf.
Spørgsmålet var, har jeg brug for at have en flugt karakter for
symboler som dollartegn?
PUBLIKUM: So slags relaterede, er der andre sager,
vi bør vide, hvornår noget som procent
tegn kan betyde noget [uhørligt]?
LEXI ROSS: Ja.
Ikke nødvendigvis procent tegn, men den omvendte skråstreg, se
hvordan vi har backlash ende her?
Lad os sige, at vi faktisk ønskede at udskrive en modreaktion, ville vi have
at undslippe, at -
og det kommer til at lyde forvirrende -
med en anden backslash.
Så hvis vi ønskede at udskrive \ \, ville vi
bare nødt til at skrive det, eller yderligere
backslash, en anden flugt.
Og en anden, hvis vi ønsker at udskrive et tilbud - så
Dybest set noget den slags betegner noget særligt
i en streng, ønsker vi at flygte.
Så lad os sige, at vi rent faktisk ønsker at have et citat her, ville vi
ønsker at gøre \ ".
PUBLIKUM: Så det er normalt en backslash?
DAN BRADLEY: Det er normalt en backslash.
LEXI ROSS: Yeah.
Af en eller anden grund i her, er det et procenttegn.
>> PUBLIKUM: [uhørligt]?
DAN BRADLEY: Denne fyr?
Dette er blot for at sige, de ting, der bliver delt her er
kommer til at blive behandlet som en svømmer af hensyn til divisionen.
Så i tilfælde af 50 divideret med 100, hvis jeg ikke havde
flyde der, ville det bare være 0.
Det er alt, der ville komme ud, fordi 50 divideret med
100, hvis du ikke herunder eventuelle decimaler, er 0. -
og alt efter kommaet er bare afskåret fra.
PUBLIKUM: Um,
hvorfor gør vi ikke sætte det før nævner så godt?
DAN BRADLEY: Så grunden til at vi ikke sætter det foran
nævner er fordi når du dividere noget ved
et heltal, det virker fint.
Har et større antal på bunden
ændrer ikke noget.
Du kan dividere med heltal fint.
Det bare ikke rigtig noget.
Du kunne, ville det ikke ændre noget.
PUBLIKUM: Så hvis du ønskede tre decimaler, ville
du sætte procent 0,03?
DAN BRADLEY: Yep.
Du ville sætte% 0,03 hvis du ønskede
tre decimaler.
>> Publikum: og DO kommandoer, hvad er forskellen mellem
det og bare gøre, mens på toppen?
DAN BRADLEY: Så en gør-mens versus en while-løkke er to
nogenlunde tilsvarende kommandoer.
Den eneste forskel er, at du køre koden én gang, du kører
kode inde i løkken én gang før
gøre nogen egentlig kontrol.
Så det er også grunden til at jeg kan sige nævner uden at give
det et nummer.
Så hvis jeg sagde int fællesnævner, og derefter, mens (nævner <=
0), er det måske aldrig selv
køre koden indeni.
Det vil gøre, at kontrollen før -
så her.
Så hvis jeg havde denne while-løkke her, ville jeg have
nævner lig, siger, -2 eller nogle tal mindre
end eller lig med 0, så det ville faktisk prøve at køre koden
indersiden først.
Så generelt, du ønsker at bruge en gør-while-løkke
i stedet for en while-løkke, når du beder om input fra brugeren
fordi der kører koden en gang, beder om noget brugeren
vil give dig er generelt din bedste løsning, i modsætning
til bare tillidsfuld, hvad du putter i til at starte med.
PUBLIKUM: Og gøre, er altid efterfulgt af et stykke tid.
DAN BRADLEY: Gør efterfølges af nogle stykke kode, som du
ønsker at udføre, og derefter mens nogle betingelse er.
LEXI ROSS: Tænk på det som en kommando slags brudt op
i to dele.
Det er en gør-stykke tid, ikke som her er en gør, og så er jeg
vil tilføje et stykke tid, det er bare en gør-tid.
>> PUBLIKUM: Jeg forstår grunden til, at du bruger
to procent tegn, men kan du forklare mig, hvorfor vi er nødt til at
have [uhørligt]?
DAN BRADLEY: Okay, så det ene procentpoint tegnet bare sige
printf, her er en kommando, som jeg vil have dig til
fyldes med en vis nummeret.
Så jeg vil have dig til at fylde det med to decimaler og en
flyde, og du vil finde svømmeren ved udgangen af ​​den
kommando, det er denne procent.
Giver det mening?
PUBLIKUM: Yep.
DAN BRADLEY: Okay.
>> PUBLIKUM: Er der noget om det do-while-løkke,
hvis betingelsen ikke er opfyldt, hvis du får en
negativt tal for din tælleren, vil det bare holde
spørger og vil holde beder brugeren?
DAN BRADLEY: Yeah.
Så hvis tilstand mens er ikke opfyldt ved udgangen af
do-stykke tid, vil det køre tilbage til start.
Det er bare en løkke.
Så det er ligesom en while-løkke, at betingelsen ikke har været
opfyldt på.
Det bare kører en gang mere.
Yeah.
PUBLIKUM: Så hvis du gør dette, kan du, for din tid,
sætte to betingelser i?
DAN BRADLEY: Du kan.
Det afhænger af, hvad du spørger.
Så du kan sætte to betingelser i en while-løkke, hvis du har det
alle inden for en form for boolesk operator, som lyder
grimt, men det er dybest set denne nævneren er mindre end eller
lig med nul, enten returnerer sand eller falsk, right?
Det er enten mindre end eller lig med nul eller ikke.
Så du kan gøre andre booleske operatorer, der vil sige, mens
dette gælder også, eller mens dette er også forkert.
Så det er ting som og tæller er større end
nul, ikke?
Det er at spørge, vil dette kun løkke, mens nævneren er mindre
end nul, og du har en positiv tæller.
PUBLIKUM: Og du gør de to AND, right?
DAN BRADLEY: To AND.
LEXI ROSS: Vi dækker det mere senere.
>> PUBLIKUM: Hvad hvis nogen ikke sat i en positiv
fællesnævner?
Hvis de sat i en negativ tæller, kan du bede dem
til, siger, sat i en ikke-negativ tæller og have
en kommando til det?
DAN BRADLEY: Du kunne.
PUBLIKUM: Lige nu er det bare siger ikke-negative tæller.
Hvad ville blive brugt til det?
DAN BRADLEY: Så du ville have en hvis betingelse, så gerne, hvis
tælleren er mindre end nul.
LEXI ROSS: Du ville sandsynligvis blot ønsker at bryde det op i flere
skridt, right?
Så den første gang de sætter i input, vil vi bare sige at give
os en tælleren eller whatnot.
Og så hvis de gør noget forkert, kan dette være tilfældet
for en while-løkke, snarere end en gør-mens, fordi vi har
første gang vi har GetInt og derefter mens input
er dårlig, vi ved med at spørge dem til yderligere input med en
forskellige slags tekst, havde ligesom der ikke virker eller give os en
ikke-negativ tæller i stedet, den slags ting.
>> DAN BRADLEY: Ja?
PUBLIKUM: Hvordan du fjerner de ting, [uhørligt]
terminalen?
LEXI ROSS: Klart.
DAN BRADLEY: Ja, du kan ikke skrive i den.
LEXI ROSS: Faktisk er dette ikke en reel terminal.
Spørgsmålet var, hvordan du klart, at ting dernede?
Svaret er, det er ikke en rigtig terminal, men lad os sige, at du
er i en rigtig terminal.
Ryd.
Åh, det er en kat.
DAN BRADLEY: [uhørligt]?
Det er den der, ikke?
LEXI ROSS: Nej, det er alle mine ting.
DAN BRADLEY: [uhørlig].
LEXI ROSS: Der kører vi.
DAN BRADLEY: Ja?
>> PUBLIKUM: Er klar arbejde, hvis du har -
gerne sige, at du kører et program [uhørlig] og det er spørger
dig for noget, og du ikke vil.
Hvordan du -
DAN BRADLEY: Ctrl + C?
LEXI ROSS: Yeah.
Så hvis du kører et program og noget ikke at gå den
måde du ønsker det, og du blot ønsker at afslutte det hele
program, Control + C. Selv hvis du er på en Mac, ikke Apple + C,
Control + C.
PUBLIKUM: Har du har den korrekte version i
revision i din profil?
DAN BRADLEY: Jeg tror, ​​det er gemt, er det ikke?
Yeah.
LEXI ROSS: Dette er rummet.
Yeah.
Jeg synes det er Revision 11.
>> DAN BRADLEY: Ja?
PUBLIKUM: Er C gør nogen antagelser om, hvad en
variabel er hvis du definerer en variabel, men ikke tildele
noget til det samme?
DAN BRADLEY: Så det vil kun acceptere int'er i at stedet.
Så hvis du erklære den -
PUBLIKUM: Hvis jeg bare gjorde int nævner semikolon, gør det
antager, at det er lig med nul eller et vilkårligt antal -?
DAN BRADLEY: Nope.
Så hvis du ikke tildeler, siger, int fællesnævner for enhver værdi,
det kunne være hvad som helst.
Det er den gamle hukommelse, der var i den pågældende placering.
Så det kunne være negativ 2 mia kunne det være positivt
2 milliarder og det kunne være hvor som helst i mellem.
Så hvis du faktisk kører tingene, så sørg for, at du
tildele en værdi til variablerne.
Dette betyder det ikke noget, fordi vi er straks
tildele den værdi, men generelt set, ja.
Andre spørgsmål?
>> LEXI ROSS: Vi kan også bare tage generelle spørgsmål på dette
punkt på foredrag materiale, s. sæt materiale, noget, du har
undret om, dette er et godt tidspunkt at spørge dem.
PUBLIKUM: Så i walkthroughs, Zamyla
nævnte runde funktion.
Ville du have noget imod at uddybe, hvordan man gennemfører det?
LEXI ROSS: Sure, hvordan gennemføre det?
PUBLIKUM: Hun sagde, at det var rund.
LEXI ROSS: Oh yeah.
Så bare så vi alle har samme ordforråd og kram,
redskab generelt betyder faktisk skriver fra bunden.
Og så jeg tror ikke, hun talte om slags skrivning
den runde funktion.
Hun sandsynligvis blot betød hvordan man bruger det.
Implement betyder lidt ligesom at skabe.
Så generelt en tid, hvor vi ønsker at bruge den runde funktion er jeg
betyde, sortere af, for eksempel,
hvis du vil runde.
Kan du give mig en lille smule mere sammenhæng om, hvad
problem var?
PUBLIKUM: For at undgå unøjagtigheder i decimaler
ved at gøre dem en flyder.
LEXI ROSS: Yeah.
Så spørgsmålet med flåd, at vi har sådan hentydet til, er
at på grund af den måde, de er gemt i maskinen,
de er ikke 100% præcis på den måde, du måske tror
din lommeregner ville gemme dem.
Det er svært for mig at vise et eksempel uden at vide hvad
sammenhæng var fra.
Jeg ved det ikke, kan du tænke på noget, Dan?
>> DAN BRADLEY: Så hvis du beder om, siger, tal
større end 10, og du bruger flåd, og du tilføjer en
til en svømmer hver gang, vil det nogle gange vente, indtil du har
fået til 12, før det vil sige, det er faktisk en række
større end 10.
Flyder har nogle alvorlige problemer lige mellem den 32.
og 33. decimal, der vil gå, så er det måske 9,9999999, eller
det kunne være 10.0000001, right?
Det er ikke rigtigt skelne mellem de to, så hvis du er
venter på noget større end eller lig med 10, som du måske
ikke komme der på, hvad du synes er den 10. iteration.
Du kan få der i det 11..
LEXI ROSS: Væsentlige, yeah.
Når du looping over en masse flåd, det er når den
upræcise ske.
PUBLIKUM: Jeg tror, ​​så dybest set, det er ligesom på p
indstillet, vil have dig til runde float værdi, og hvis du lægger i
4,24 for mængden af ​​forandring, du har brug tilbage, hvis du bare gøre
gange 100, vil det faktisk skifte til 423 -
DAN BRADLEY: Nogle gange, ja.
PUBLIKUM: Så jeg tror, ​​det er ligesom, hvordan kan du bruge den runde
funktion i den konkrete kode for at gøre det, så det ikke gøre det?
DAN BRADLEY: Så hvis du er afrunding 424 ved at multiplicere det
med 100 og gøre det til et helt tal, vil det undertiden
gøre den 423 på grund af denne manglende præcision.
Og så ting, du kan gøre, er blot tilføje 0,0000003.
PUBLIKUM: Men jeg tror faktisk, de vil
os at bruge den runde.
DAN BRADLEY: Den runde funktion?
Der er sikkert en matematisk funktion, noget i
math-bibliotek.
PUBLIKUM: # include matematik.
DAN BRADLEY: # include , og der er
sandsynligvis en rund funktion.
PUBLIKUM: Ligesom runde () -?
LEXI ROSS: Væsentlige, fordi du ønsker at afrunde til
nærmeste cent.
DAN BRADLEY: Lad os trække op man-siderne.
Så et praktisk værktøj, hvis du ikke kender -
du trækker op terminal -
er, hvis du går til mennesket matematik.
LEXI ROSS: Cool.
>> Så du kan se, så mennesket er en forkortelse for manuel, ikke mennesket, og
det giver dig mulighed for at se op mere information om en given
funktion eller det bibliotek, du kan beskæftige sig med.
Så jeg lige har skrevet i mennesket matematik.
Lad mig zoome ind
DAN BRADLEY: Vi kan prøve at køre man rundt, også.
LEXI ROSS: Sure.
DAN BRADLEY: Og dette vil liste ud -
mand matematik vil opremse alt, der er i math-biblioteket,
som vi vil inkludere.
Ja, vi har også runde.
LEXI ROSS: Så jeg gjorde bare mand rundt.
Du kan se her i synopsis, det siger # include
, så det er lidt ligesom cs50.h, stdio.h.
Og det ser ud som det faktisk er overbelastet, hvilket betyder
det tager forskellige typer af argumenter, så du kan afslutte
doubler eller flåd.
DAN BRADLEY: Runde versus roundf.
LEXI ROSS: Roundf.
Har Zamyla nævne roundf versus runde?
PUBLIKUM: I walkthrough, var det bare rund ().
DAN BRADLEY: Okay, så hun sandsynligvis var ved hjælp af dobbelt,
derefter, i modsætning til en svømmer.
Okay, så du ville ganges med 100 og derefter runde det, og
du ville få det antal tættest på det, jeg tror.
>> LEXI ROSS: Så runde returnerer funktionen integralet
værdi nærmest x afrunding halvvejs sager væk fra 0,
uanset den aktuelle afrunding retning.
Så det væsentlige, ville du ønsker at kun runde, når du er på
et heltal værdi, så du gange med
100 og derefter rundt.
Betyder det mere mening?
PUBLIKUM: For at bruge denne funktion i en C-fil, har du brug for
sætte runde float, gerne, hvis din variabel hedder q, har du
sætte runde (float) q, og derefter en parentes, eller kan
du bare sætte runde, og derefter Q i parentes?
DAN BRADLEY: Så hvis du prøvede at bruge denne funktion
faktisk, ville du tage at q, er Q en float,
eller hvordan er det erklærede?
PUBLIKUM: Q er en float.
DAN BRADLEY: Så hvis q er erklæret som en svømmer, ville du
bare tage runde, og derefter give det q.
Du har måske til at erklære det som en dobbelt i dette tilfælde.
LEXI ROSS: Ja, medmindre du ønsker at bruge roundf.
PUBLIKUM: Jeg kunne bare bruge roundf, og derefter q i anførselstegn?
DAN BRADLEY: Nej, ikke i citationstegn, bare q.
PUBLIKUM: Beklager, ikke i citationstegn, i parentes.
DAN BRADLEY: I parentes, yeah.
LEXI ROSS: Undskyld det var en lille smule forvirrende.
Flere spørgsmål?
>> DAN BRADLEY: Ja?
PUBLIKUM: Så runde kun runder til heltal?
LEXI ROSS: Ja.
DAN BRADLEY: Ja, runde kun runder til heltal.
PUBLIKUM: Så hvis du ønskede at have noget eksakt at
skulle være [hørbar] ganget med 100, og derefter
divideret med 100 igen, hvis du ønskede at -?
LEXI ROSS: Så hvis du ønskede at få det ind i en decimal form?
PUBLIKUM: Nå eksempel, for eksempel [uhørligt] du
har 1,25, og derefter [uhørlig]
1,24, hvis du ønsker at beholde det som 1,25, du ville
formere sig, at med 100, afrund det, og derefter dividere det med 100
igen for at få 1,25?
LEXI ROSS: Yeah.
Så spørgsmålet er, da afrunding, som manden siden
siger, afrundes til nærmeste heltallige værdi, betyder det
at man ønsker at gange med 100, skal du gøre
afrunding, og dividere med 100 igen til, sige, få den korrekte
dollars og cents værdi?
Og svaret er -?
DAN BRADLEY: Nej.
Jeg mener, hvis du bare får en float værdi, hvis du starter
med en float værdi på 1,25, er det sådan det kommer til at blive
fortolkes.
Så hvis du ganger det med 100 og derefter dividere det med 100,
det er stadig i gang, skal fortolkes således 1,25, eller
eventuelt 1,249 ...
.. 999.
LEXI ROSS: Jeg tror, ​​at spørgsmålet var ligesom, du ville
formere, derefter bruge runde, og derefter dele, så det er ligesom -
DAN BRADLEY: Yeah.
Jeg tror stadig ikke det ændrer noget, selv om.
Jeg synes det er stille.
LEXI ROSS: Fordi runde gør - det bruger heltal.
Så hvis du prøver at runde 1,25, du bare få 1.
Så jeg tror, ​​for at komme ligesom den ekstra præcision,
hvis det er det du taler om.
>> PUBLIKUM: Så i hvilke tilfælde bruger du runde, så?
DAN BRADLEY: Så i dette tilfælde, hvis du vil have, siger, at antallet
af cent fra $ 1,25, ville du gange med 100, rund, få
125, og lade det være som det, som cent, i modsætning til at forsøge at
konvertere den tilbage i dollars og cents.
LEXI ROSS: Oh yeah, yeah, helt sikkert.
PUBLIKUM: Hvorfor har du brug for at afrunde at [uhørligt]?
DAN BRADLEY: Så hvis man ganger det med 100 og derefter
umiddelbart konvertere det til et helt tal, der er større
anvendelig form, det er når du beskæftige sig med det
upræcist, ikke sandt?
Så det kan være 124.999999, og så hvis du derefter konvertere det til
et heltal, det bare falder alt fra det er under
decimaltegnet.
PUBLIKUM: Så det vil give dig [uhørlig].
DAN BRADLEY: Præcis, i stedet for 125, som er
hvorfor du ønsker at afrunde.
>> PUBLIKUM: Beklager, kan du gentage, hvad du sagde, at du
bør gøre i modsætning til, hvad du ikke bør gøre?
DAN BRADLEY: Okay.
Så hvad du skal gøre er, hvis du starter med 1,25, formere
det med 100, og derefter rundt at hele tal, at 125 eller
124.9999, og få det til nærmeste hele tal.
PUBLIKUM: Så hvis du runde, der sætter det
til nærmeste heltal?
DAN BRADLEY: Yeah.
PUBLIKUM: Er der en måde at begrænse, hvis du beder om en svømmer
der skal indlæses, er der en måde til at begrænse, hvor mange decimal
steder kan du indtaste et float til?
LEXI ROSS: Ikke brug af CS50 gennemførelse.
Jeg mener, kan du tælle, hvor stor input er givet ved
brugeren, men det kræver en ny implementering
af GetFloat, og så du ikke behøver at bekymre dig om det.
DAN BRADLEY: Så hvis de, siger, indgang 1,256, kunne du bare
bruge 1,25, eller du kunne gøre 1,26.
Uanset hvad, jeg tror gennemførelsen siger du kan -
PUBLIKUM: Du kan bare have det rundt til -
DAN BRADLEY: Uanset hvad det vil, ja, så længe du gør
en slags afrunding.
Noget andet?
Behøver ikke at være om afrunding.
LEXI ROSS: Ja?
>> PUBLIKUM: Hvis vi ønsker at kontrollere, om den stil af vores
kode er hensigtsmæssigt eller den bedste stil
at det kan være, er, at den slags ting, vi ville bringe op i
sektion, eller på kontortid, er eller at den slags ting
vi kan sende privat på ting, på diskussion, og derefter
spørge til råds om?
LEXI ROSS: Så gør vi ikke, at kontortid eller på CS50
Diskuter, vil vi faktisk ikke klasse din p sæt i forvejen
for stil, men jeg tror nok den mest nyttige
ting du kunne gøre ville være at se på eksempler, og du
bør kunne finde, at i afsnitskendetegn, som bør være
distribueres online, samt foredrag objektglas, der
bør være eksempler på kode.
Men hvis du har individuelle spørgsmål om et bestemt
stil spørgsmål, absolut velkommen til at bede om, at den CS50
Diskuter, og kontortid, eller på din egen tid.
Men hvis det er mere en generel kig på min kode, er det bedst at
form for brug eksempler og forsøge at passe din kode til det.
Og jeg tror, ​​der er en style guide på -
DAN BRADLEY: Der er den stil guide.
Stilen guide er awesome.
Den lærer dig alt hvad du behøver, og den dækker temmelig
meget hver eksempel, man kender, eller i det mindste at jeg kender dem.
>> Noget andet?
Ok.
Cool, gutter.
LEXI ROSS: Hav en dejlig dag.
DAN BRADLEY: Tak for at komme.