[Powered by Google Translate] LEXI ROSS: All right, hei, alle sammen. Velkommen til den første CS50 supersection. Dette vil være den eneste uke av supersections. Etter dette vil du gå til vanlig del med din tildelt TF. Men denne uken, vi gjør det i en liten bit av en annen format, selv om den faktiske format, hvordan det kommer til å gå for den neste timen og en halv eller så, kommer til å være ganske ligner på hva du skal se etter resten av semesteret. Så hva vi skal gjøre er å starte med å gå over § del av oppgaven. Så hvis du har lest over p sett, som forhåpentligvis du har, vil du se at det er en del som heter "en del av Spørsmål ", og disse er ment å være borte over i seksjonene dine. Så du har en fordel ved å være her i at du kommer til gå over disse mer konseptuell-baserte spørsmål. Og etter at vi gjør det, kommer vi til å gå over de to siste § spørsmål som er mer dykk til koding type spørsmål. Så vi faktisk kommer til å ha dere ta noen minutter for hvert spørsmål, kan du prøve å løse dem på egen hånd, og så vi kommer til å komme sammen med den nye CS50 Mellomrom verktøy og gå over svarene, slik at du har alle riktig kode til vurdering. Så et par kunngjøringer. Ikke glem at det er kontortid hver kveld denne uke i Annenberg 8-11, så ta nytte av dem. Og også, ikke starte p satt for sent inn i uken. Starter i kveld eller i morgen kveld på den siste. Du vil angre hvis du venter for lenge med å starte og kjøre inn i problemer. Så ta våre råd og definitivt begynne tidlig. Dette vil være en god måte å komme i gang med disse delen spørsmål. Så jeg er Lexi, forresten. Jeg er en TF. Og dette er Dan, som er også en TF. DAN BRADLEY: Hei, folkens. LEXI ROSS: Og han kommer til å få startet med spørsmålene. DAN BRADLEY: All right. Så jeg kommer til å bare innføre et par litt kompilator saker som vi kommer til å snakke om og bare gå gjennom en slags konseptuelle ideer som vi trenger å faktisk kjøre kode, enten i et apparat eller med vår form for falsk apparater, Run CS50 og Spaces. Så la oss bare se om noen i publikum har noen ide om hva vi snakker om. Så hva er et bibliotek i sammenheng med koden? Alle som har noen ide? Okay. Søt. PUBLIKUM: Like et lager av funksjoner som noen andre allerede programmert at vi kan bygge opp? DAN BRADLEY: Nettopp. Så et bibliotek er et lager av funksjoner som noen andre har allerede programmert at vi ikke behøver å re-implementere selv. Så vi har ting som standard I / O-bibliotek, cs50.h bibliotek, som er ting som verden, Internett, har de ansatte gjort som gjør vårt lever lettere som programmerere. Så hvordan skriver du ting til en skjerm? Jeg har ingen anelse, gjør printf det for meg. Det er noe noen andre allerede har gjort det er awesome og fungerer ganske bra. Okay. Så for å bruke biblioteker, på den andre siden, men har du å faktisk gjøre noen ekstra ting med koden din. Så du må bruke ting som dette # include. Hva gjør det? Hvilken rolle spiller som spiller når du har den i et program? PUBLIKUM: Den lar deg gjøre bruk av noen funksjoner som er [Uhørlig] bibliotek ved å bruke definisjonene som allerede har [Uhørlig] biblioteket. DAN BRADLEY: Ok. Den lar deg trekke biblioteket funksjoner i koden din, men den gjør det på en måte som ikke er nøyaktig det samme som like -Lcs50, som vi får til i et minutt. Det kan bare kompilatoren vet at hei, det er disse funksjoner som kommer til å komme opp i koden din. Vær oppmerksom på at hvis de ikke er fullt ut beskrevet i koden som er foran deg, er det noen bibliotek funksjon som kommer til å ta vare på den. Så i tilfelle av printf, som vi vil gå over et par ganger i dag, er det standard I / O-bibliotek. Så mens jeg ikke definerer printf hvor som helst i koden min noensinne, standard I / O tar seg av det for meg, og jeg vil gjøre # include stdio.h, og det vil trekke i disse funksjonene som jeg har ikke noen gang definert. Så hva er forskjellen da mellom denne # include og-lcs50? Hva gjør-lcs50 gjøre når jeg passerer det til kompilator, som Clang? Alle som har noen ide? Okay. Ja? PUBLIKUM: Det gir deg tilgang til CS50 biblioteket? DAN BRADLEY: Den lar deg få tilgang til CS50 biblioteket i at det forteller kompilatoren, Clang, at hei, dette er hvor du faktisk gå for å få disse funksjonene. Så # include sier det er disse funksjonene sted. The-lcs50 sier, gå til dette stedet i datamaskinen - det er CS50 bibliotek - og trekk opp den faktiske koden til disse funksjonene. Gjør det fornuftig, alle? Så disse er alle ting som skal hjelpe kompilatoren sammen med å lage koden faktisk kjøre. Rask spørsmål. Folk flest vet ikke hva en kompilator er? God følelse? Det er i utgangspunktet tar skrevet kode som du har, konvertere den til binær, konvertere til maskinkode, slik at datamaskinen kan faktisk forstå det. Og uten videre, vi kommer til å gå inn i mer faktiske koding øvelser som dere vil ha det litt gøy synker tennene i, og Lexi vil gå over det. LEXI ROSS: Ok. Awesome. Så vi kommer til å gå over to spørsmål her. Så det første man faktisk kan du se, det er en liten bit små akkurat her, men i hovedsak det ber deg om å skrive et program for å ta litt brukerens input. Jeg er ikke sikker på hvorfor det er en svart firkant der. Det er mystisk. Det bør være fint, skjønt. Så det vil at du skal ta en brukerens input i Celsius, konvertere til Fahrenheit, og deretter fortelle brukeren hva temperaturen ville være i Fahrenheit. Så du kan se et eksempel input / output sekvens her. Brukeren innganger - etter Celsius, viser dristig å brukerens input. Så bruker innganger 100, og programmet utganger Fahrenheit, 212,0. Og et viktig skille i dette programmet er at vi er skal bare ha én desimal, så vi får se hvordan du gjør som også. Og så en annen ting å merke seg er at vi bruker a.out fordi Clang, kompilatoren, navngir automatisk den binære filene a.out mindre du angir det med en viss flagg for å gi den sitt eget navn, men for nå er vi bare kommer til å bruke standard, a.out. Så la oss faktisk ta et par minutter og prøv å skrive ut noen kode for dette selv. Så det er 4:15. Så på 4:20, vi kommer til å komme tilbake og - oh, akkurat. Mellomrom. Cool. Dette er liksom som det vi kaller skjelett kode i det det er et skjelett, men du må fylle ut kjøttet av program for å faktisk gjøre det kjøre. Så du kan se # include direktiver der oppe å inkludere CS50 og stdio. Jeg bemerket i en kommentar selve formelen for konvertering Celsius til Fahrenheit, i tilfelle du ikke husker fra høy skolens naturfag eller whatnot. Og så dette er bare et skjelett for den faktiske viktigste funksjon. Så alt du skriver kommer til å gå her. Og for å faktisk komme til denne plassen - så CS50 Spaces kan nås via denne webadressen, som Dan er kommer til å skrive på tavlen, og jeg vil diktere også. DAN BRADLEY: cs50.net/spaces-- LEXI ROSS: / qWLc - Jeg beklager, y. DAN BRADLEY: Y?. LEXI ROSS: Nei, nei, nei, nei. Det er fint. qYLcYWfg. Så jeg skal se alles navn slags dukker opp her. Awesome. Dette ser flott ut. Dette betyr at folk blir med på plass. Så hvis du ikke har fått sjansen til å spille rundt i Mellomrom ennå, dette er faktisk hva du skal bruke med TFS i seksjon hele semesteret. Hvordan det fungerer er slags alle skriver sin egen kode, og ingen kan se det før du trykker på Lagre knappen, som jeg peker på akkurat nå. Så jeg kommer til å trykke Lagre, og hvis du alle gå til mitt navn, som du bør være i stand til å se det i Folk i denne Plass, som er Lexis Beryl Ross. Så hvordan det kommer til å se er å klikke deg på mitt navn, og du kommer til å se Revisjon 5, som er den siste revisjonen. Kopiere bare Revisjon 5 i verdensrommet ved å klikke på det. OK. Så la oss gå gjennom dette problemet sammen, og jeg er faktisk kommer til å skrive koden opp her på skjermen. Du kan zoome inn litt. Og så når jeg er ferdig, kan du kopiere min siste revisjon i verdensrommet din, hvis du vil se den endelige løsningen. Nå har Spaces mulighet for meg å gå inn og se noen av koden som dere har skrevet, men bare fordi det er en så stor del, og vi har egentlig ikke det samme slags diskusjon evner som en mindre delen vi bare kommer til å gå gjennom og jeg skal bare å skrive koden. Men definitivt stoppe meg med spørsmål på noe punkt. Vi kommer til å gå gjennom den slags trinnvis for å gjøre at vi forstår hver del av hva som skjer her. Alle kan se denne teksten her? Ønsker noen det større? Så hva er det første vi skal gjøre her? Vel egentlig, siden vi ønsker å få innspill fra bruker og vi vil at det skal være en slags god opplevelse for bruker vi faktisk ønsker å fortelle dem hva vi leter etter. Så la oss skrive ut nøyaktig hva vi ønsker danne brukeren. Så bare ikke bry å heve hånden, bare skrangle den av. Hva er kommandoen for å skrive ut noe til skjermen? PUBLIKUM: printf. LEXI ROSS: Awesome. Ok, så printf. PUBLIKUM: Hei, Lexi? [Uhørlig]? LEXI ROSS: Sure. Så printf, som vi har sett ofte i foredraget, er det kommando for å skrive noe til standard ut-strømmen. Så vi ønsker å be brukeren om å taste inn en temperaturen i Celsius. Og nå, vi faktisk ønsker å ta den inngangen som de gir oss og lagre den i en variabel. Så vi har lært litt om typer. Kan noen huske hvilken type vi ønsker for en variabel med en desimal i den? PUBLIKUM: Float. LEXI ROSS: Float. Ja, awesome. Det er en flåte. So. Og hvordan skal vi - stort hint - få flyte fra brukeren? PUBLIKUM: GetFloat. LEXI ROSS: Yeah. Cool. Og brukeren kan potensielt bli bety og prøve å gi oss en negativt tall, men la oss ikke bekymre deg for at for dette problemet nå. Du kommer til å bekymre deg for at en litt mer på lekser på oppgavesettet. Så la oss anta at de gir oss en god del, og nå er vi faktisk nødt til å konvertere som flyter fra Celsius til Fahrenheit. Så la oss se i vår formel her oppe, og la oss lage en ny variabel og kaller det Fahrenheit. Jeg studerte stavemåten. Det er slags gal, jeg vet det. Og la oss telle på rekkefølgen av operasjoner for å slags gjøre jobben sin her, men vi vil bruke parenteser bare for å være helt ordrik og klar. Så Celsius ganger 9 delt på fem. Jeg kommer til å zoome ut bare litt, så dette kan passe på én linje, men jeg vil zoome inn igjen for de som ikke kan se, lenger i ryggen. Beklager om det. Strange markøren spørsmål. Pluss 32. Ok, noen som har noen spørsmål om hvordan jeg satt i formelen, eller noen problemer med det? Ja. PUBLIKUM: Trenger vi å sette printf før flottøren celsius, flyte Fahrenheit script linjer? Spiller det noen rolle hvilken rekkefølge de er i? LEXI ROSS: Så spørsmålet var, trenger vi å printf før vi faktisk be om float? Svaret er at vi gjør. På den måten, at markøren som brukeren får innspill float vil være etter den trykte c, ikke sant? Og det er fornuftig hvis du tenker logisk, som du spør brukeren et spørsmål, og så er du få svar. Så det skrives c, og så er det en markør, så Brukeren kan skrive inn verdien, som vi skal se senere når vi demo. Ja? PUBLIKUM: Hvorfor bruker vi en flåte og ikke en dobbel? LEXI ROSS: Så en dobbel, i hovedsak, som navnet innebærer, gir oss dobbelt så mye presisjon som en dupp. Men vanligvis i C, i emnet, for en rekke grunner, vi kommer til å bruke flyter. Og dette er virkelig all den presisjonen vi trenger bare for slags grunnleggende temperatur konverteringer. Vanligvis dobler er mer brukt i Java-språket, flyter er mer vanlig i C. Greit, awesome. DAN BRADLEY: En. LEXI ROSS: En. Ja? PUBLIKUM: Hvor plasserer du mellomromstasten? Liker, [uhørbart] Space Bar [uhørlig]? Spiller det noen rolle? LEXI ROSS: Å, nei. Så det spiller ingen rolle. Jeg har faktisk burde ha satt en annen plass her. Men hva gjør saken er at du er konsekvent hele koden din. Så hvis du bestemmer deg for å bruke en stil av avstand, sørg for å holde det gjennom hele koden, eller du kan få stilen poeng trukket fra. Så konsistens er nøkkelen. DAN BRADLEY: Jeg tror han snakket om den plassen. LEXI ROSS: Åh, du snakker om at plassen? Ved faktiske C? PUBLIKUM: Yeah. LEXI ROSS: Å, så det er bare utseendemessig, ikke sant? Så på den måten når vi kjører koden, hvis vi ikke har dette plass her, hvis det så ut som dette, ville brukeren starte taste inn nummeret og det ville være klemt opp rett mot kolon etter C, og det ville se litt bedre hvis det var et mellomrom. Og du kan se at en liten bit bedre når vi faktisk kjøre denne koden, når vi får det ferdig. Awesome. Ja, et spørsmål til. PUBLIKUM: Har jeg å sette et desimaltegn etter en av de [Uhørlig]? LEXI ROSS: Så du ikke gjør det, på grunn av rekkefølgen av operasjoner. Så fordi Fahrenheit er allerede en flåte, som er Celsius, trenger du ikke å eksplisitt kaste noen av disse andre tall som flyter, men i andre omstendigheter, når du arbeider med ints, kan du må sette et poeng å eksplisitt kaste det som en dupp. Ja? PUBLIKUM: Jeg bare lurte på om bokstaver saker i disse kommandoene som GetFloat? LEXI ROSS: Ja, godt spørsmål. Så spørsmålet var, gjør kapitalisering saken i kommandoer som GetFloat? Svaret er ja, det gjør det. Så GetFloat er, som Dan beskrev tidligere, et bibliotek funksjon i CS50 biblioteket, og det ble skrevet som hovedstad G, hovedstaden F. Så hvis du ikke skriver det med disse hovedstedene Det er kompilatoren ikke kommer til å forstå hva fungere du refererer til. Okay. Ja? PUBLIKUM: Er argumentet for main alltid tomrom? LEXI ROSS: Ja, det er en annen stor spørsmålet. Slik at koden som du kopierte fra min plass feilaktig hadde noen flere argumenter. Så spørsmålet var, er argumentet til den viktigste funksjonen alltid ugyldig, noe som betyr ingenting? Svaret er nei. Du kan oppleve at koden du kopierte fra min tidligere revisjon hadde det kan se ut som noe som virkelig gjør følelse akkurat nå, noen char *, argv, argc. Ikke bry deg om det for nå, men du vil finne ut senere på de gjør en forskjell. Men hvis du ikke bruker den slags ekstra funksjonalitet som du vil lære om senere, ugyldig er helt greit. OK. Og vi har bare ett trinn, som er at vi ønsker å faktisk vise brukeren hva den konverterte temperaturen er. Så igjen, vi kommer til å bruke printf, og la oss si f, bare for konsistens skyld. Og nå skal vi gjøre noe litt kinkig. Så vi kommer til å bruke et flagg, eller en spesiell type notasjon, å fortelle printf å bare skrive ut én desimal. Og skjer noen å vite hva som kommer til å se liker, før jeg skriver det ut? Ja? PUBLIKUM: 0,2% f? LEXI ROSS: Ja, ja. Så egentlig er det veldig nære. 0.01f for 0,01% f, og da må vi huske å inkludere den andre argumentet til printf, som er variabel selv, som er n. En siste trinnet. Kan noen huske hva som er i vår viktigste funksjon? Ja, der oppe. PUBLIKUM: Return? LEXI ROSS: Nettopp. Så siden dette er viktigste avkastning i int, ønsker vi å også tilbake i int. DAN BRADLEY: Percent må være på den andre siden. LEXI ROSS: Ok. Beklager, folkens. Det var en feil. Så prosent kommer før 0,01. Så det er% 0,01 f. De er litt vanskelig å huske. Mange mennesker, som meg, bare se dem opp når vi bruker dem. Ja, der oppe. PUBLIKUM: Hvorfor er det 0,01 og ikke 0,2 eller 0,1? LEXI ROSS: Jeg vet ikke, faktisk. Vet du det? DAN BRADLEY: Grunnen til at det er 0,01 i motsetning til 0,02, eller 0,2, eller 0,1, er ganske vilkårlig til måten programmerer opprinnelig designet den. PUBLIKUM: Det var ikke det jeg mente. Jeg ber ikke om årsaken. [Uhørlig] grunnen. Jeg har skrevet det som 0,2, og den leverer to - DAN BRADLEY: Yeah. Så var vi bare ønsker én. PUBLIKUM: Å, Okay. Så du kan 0,01 da. DAN BRADLEY: 0,1 ville trolig også fungere. 0,01 virker like bra. LEXI ROSS: Oh, kan 0 være å vise null, hvis det er mindre enn én. DAN BRADLEY: Ja, jeg tror det er riktig. Så 0,01 ville vise en null hvis den ikke har noe som ville gå dit naturlig. Så hvis du var, sier, setter i 100 for Celsius, ville det komme ut til 212 som normalt i Fahrenheit, som 212 akkurat. Hvis du har 0,01, vil det vise 212,0, som motsetning til bare 212. LEXI ROSS: Det er riktig. Så lese det i utgangspunktet forteller printf, skrive ut en desimaltegn, og skrive ut en 0 hvis nødvendig. Hvis ikke, skrive ut den første desimal stilling. DAN BRADLEY: Og vi vil utforske noe av dette når vi er faktisk kjører koden. LEXI ROSS: Yeah. PUBLIKUM: Så jeg satte 0.1. Det skrives fortsatt sin null. DAN BRADLEY: Det fortsatt skriver sin null? PUBLIKUM: Yeah. DAN BRADLEY: Hm, okay. LEXI ROSS: Cool. OK. Flere spørsmål om denne koden før jeg kompilere og kjøre? Ser noen noen bugs her, først av alt? Noen ser noe som burde være her? Hvis dette var problemet sett, hva ville være her som ikke er der akkurat nå? Ja, flott. Så jeg ikke inkluderte kommentarer fordi jeg levere dem muntlig, men hvis jeg skulle skrive dette i et problem sett, ville jeg definitivt vil sette kommentarer å indikere hva jeg gjør, i hovedsak, i programmet. Og du vil slags få en følelse for det, som du beveger deg gjennom semesteret, riktig mengde kommenterer. Du ønsker ikke å være for detaljert og sette linjer og linjer av kommentarer for hver av linjene med kode, men du også ønsker ikke å være ikke verbose nok og la leseren til å prøve å finne ut hva pokker koden gjør. Ok, kult. La oss prøve å kjøre denne koden. Ok, jeg kommer til å zoome ut litt. Cool. Så du vil merke det er en Play-knappen her. La oss klikke Play. Så du vil legge merke til her, akkurat som i spec på problemet satt, er det. / a.out. a.out er navnet på den binære kjørbare, som er en langt ord for bare en fil som består av binærkode som datamaskinen er faktisk kjører. Så som vi forventet, har vi C her. Så ringe ut et tall. PUBLIKUM: 23. LEXI ROSS: 23. DAN BRADLEY: Programmet tok for lang tid å kjøre. Bare kjøre den på nytt. LEXI ROSS: Oh, my bad. Okay. Spaces er kresen noen ganger. Det vil at du skal tenke på føttene. Ok, 23. Awesome. Mener alle dette? Cool, fordi det virker. Okay. La oss prøve et par mer. La oss prøve en kant tilfelle her. I informatikk, når vi snakker om edge tilfeller, mener vi saker for programmet til å kjøre som er liksom på de aller kantene av rimelige innganger eller at test visse hjørner logikken i programmet, og dette gjør mer fornuftig når vi gjøre mer kompliserte programmer. La oss prøve 0. Awesome. Vi vet dette. Cool. Eventuelle flere spørsmål om dette før jeg flytter videre til neste program? Greit, awesome. Så nå skal vi til - ønsker du å bare bruke min datamaskin? DAN BRADLEY: Ja, det er lett nok. All right, så kommer til å gå og snakke om å gjøre prosenter. Så vi er egentlig, i denne neste lite mosjon, gå til ta to heltall innspill fra brukeren, håper på en ikke-negativt teller og en positiv nevner og utgangspunktet dele dem opp og gi ut hva som kommer ut som en prosentandel. Så vi vil at det skal bare godta ikke-negative numerators og akseptere bare positive nevnerne, og fortsette å spørre for nye hvis det ikke har fått det som de vil. Greit? Så gi det en gå. LEXI ROSS: Oh yeah, vil du gjøre det - oh, kanskje folk bør kopiere koden min. DAN BRADLEY: Yeah. LEXI ROSS: [uhørlig] Mellomrom. PUBLIKUM: Jeg har et spørsmål. Hvis jeg bruker Spaces og jeg ønsker å spare [uhørlig] den Fahrenheit konvertering, lagrer jeg den og deretter lage en ny - LEXI ROSS: Vi kan bare gjøre en ny plass, eller du kan bare ønsker å kopiere og lime det inn i en fil eller noe så du har det. DAN BRADLEY: Jeg vil bare endre navnet mitt. LEXI ROSS: Så jeg bare lagret den siste revisjonen av tofahrenheit.c, så hvis du går inn i AAAA Lexis Beryl Ross, kan du gå inn og kopiere denne siste koden, og deretter begynne på dette nye, som jeg tror Dan kommer til å gi noen skjelett kode for også. Okay. DAN BRADLEY: Den siste revisjonen jeg har på meg, så det er helt på toppen denne gangen, er Revisjon 4, og det vil ha det du trenger for å komme i gang. LEXI ROSS: All right, og jeg vil kopiere den inn i mine også. DAN BRADLEY: All right. Jeg tror vi kommer til å bare begynne å gå over dette, hvis noen er interessert. LEXI ROSS: Vi er alle interessert. DAN BRADLEY: Vi kommer til å starte ut bare ved å erklære noen variabler. Så vi har en teller, og for moro skyld Nå skal jeg bare starte den med verdien -1, og så skal jeg sette opp en do-mens loop. Mens - så når jeg vil at den skal loop? Når vil jeg det å holde spør - yeah? PUBLIKUM: Når det er mindre enn eller lik null. DAN BRADLEY: Hvorfor kan det ikke være lik null? PUBLIKUM: [uhørlig]. DAN BRADLEY: Yeah. Så for telleren, det er bare mens telleren er mindre enn null. Gjør det fornuftig for folk? Vi holder looping mens telleren er mindre enn null, Vi holde ber om nye innspill, og holde krevende at de inngang nye ting. Så jeg vil bare ha en liten printf her, ikke-negative num -. Og så gjør vi det samme som før, bortsett fra at vi gjør en GetInt, bare fordi vi ønsket å gjøre det som prosenter av ints. Så teller = GetInt. Ok, nå et par ting. Trenger jeg denne -1 her? PUBLIKUM: [uhørlig]. DAN BRADLEY: Nei Hvorfor ikke? PUBLIKUM: Fordi du får en tilfeldig verdi fra brukeren. DAN BRADLEY: Nettopp. Men jeg vil ha erklæringen her ute? Ja. Hvorfor? PUBLIKUM: Du må finne utsiden av loopen. Ellers, er du ikke kommer til å ha variabelen for resten av programmet. DAN BRADLEY: Nettopp. Omfang. Søt. Gjør det fornuftig for alle? PUBLIKUM: Kan du si det en gang til? DAN BRADLEY: Ok. Så hvis jeg skulle erklære denne teller inne i loopen, hvis Jeg hadde dette i stedet for telleren er int teller, og jeg ble kvitt dette helt, teller ville forsvinne. Det ville ikke eksistere utenfor denne sløyfen, fordi alt er innenfor rammen av disse klammeparentes. Fornuftig? Okay. Så for nevneren, gjør vi noe ganske lik, int nevneren = - og jeg trenger ikke lik - gjøre, og for mens i dette tilfellet, hva jeg vil? Hvilken tilstand jeg vil at den skal fortsatt sløyfe på? PUBLIKUM: Mindre enn eller lik 0.. DAN BRADLEY: Mindre enn eller lik 0.. Nevneren <= 0. Ikke glem semikolon, barn. Så vi gjør det samme som før, printf en positiv nevneren, og vi får int herfra. Det vi går. GetInt. Okay. Og så til slutt, vi ønsker å skrive ut noen prosent. Så for å gjøre dette, hva bør vår streng ser ut? printf. Noen andre ideer om hva jeg kan gjøre her? Ja? PUBLIKUM: Kanskje% 0,2 [hørbar]. DAN BRADLEY: Jepp. Okay. Jeg skal begynne med den første biten,% 0,02%%, sitater, komma. Og jeg kommer til å kaste en ny linje her, bare fordi jeg som nye linjer når jeg gjør ting. Hva slags matematisk uttrykk bør jeg ha her? PUBLIKUM: Parenteser og flyte. DAN BRADLEY: Good. Hvorfor ønsker jeg å ha det i float? PUBLIKUM: [uhørlig]. DAN BRADLEY: Bra, bra. Flyte. PUBLIKUM: Teller. DAN BRADLEY: Teller? Ok, så jeg gjør float teller. PUBLIKUM: Delt på - DAN BRADLEY: Delt på? PUBLIKUM: Nevner. DAN BRADLEY: Må jeg gjøre akkurat nevner, eller må jeg gjøre float nevner? PUBLIKUM: Bare nevner. DAN BRADLEY: Ok. PUBLIKUM: Og du kan multipliserer det med 100. DAN BRADLEY: Og jeg multipliserer det med 100. PUBLIKUM: Og så parenteser rundt hele uttrykket. DAN BRADLEY: Jepp. Okay. Ser bra ut? La oss prøve det. -50. Bra, 50. 0, og 100, 50%. Det har fungert akkurat som vi ønsket. Betyr denne koden fornuftig for folk? Jeg kommer til å lagre den slik at du kan få en kopi av den. Ja? PUBLIKUM: Hvorfor ikke trenger å sette [uhørlig]? DAN BRADLEY: Hvor? PUBLIKUM: Som når du sier nevner lik [Uhørlig]. DAN BRADLEY: Når jeg har det her? Hvorfor skulle jeg ha int før det? PUBLIKUM: Fordi den andre har int før det. DAN BRADLEY: Vel, så det var ikke i en loop, ikke sant? Så jeg erklærer denne int nevner ovenfor loop, og jeg ikke har det i loop fordi jeg ville være erklære det en haug med ganger, og det ville faktisk ikke bære over til noe annet sted i programmet. LEXI ROSS: Ja, er det viktig å huske på at variabler trenger bare å bli erklært en gang. Så forestille det er som å innføre en ny variabel inn i verden ved å kalle det int eller flyte eller whatnot, og når den er deklarert, er alt du trenger å gjøre for å endre det bare kalle den ved sitt navn: nevneren, eller x eller y. Du trenger bare å faktisk kalle det en int bare én gang. DAN BRADLEY: Yeah. PUBLIKUM: Kan du forklare forskjellen mellom% d og% f og hvis du noen gang erklærer en variable som en desimal? DAN BRADLEY: Så% d og% f her? LEXI ROSS: Så d faktisk refererer til bare et tall, ikke desimal, noe som er ganske forvirrende. Det er ingen faktiske data type som kalles desimal, og når du ønsker å skrive ut en int, henvise deg til det som% d, eller %-Uansett-d. F er for float, som du skulle tro det ville være i, men det er faktisk d for int. DAN BRADLEY: Yep? PUBLIKUM: Så i det andre programmet, hvorfor ikke vi bare gjøre det samme når du sier Fahrenheit? Hvorfor ikke vi sagt, liker -? DAN BRADLEY: I bunnen her? Du kunne ha. Det ville ha vært helt legitimt. Jeg liker å gjøre det på denne måten, andre folk liker å skille det ut i forskjellige linjer med kode. Uansett fungerer fint. Hva skjer? PUBLIKUM: Kan du forklare hva%% [Uhørlig]? DAN BRADLEY: Ok, så prosent, prosent. Høyre, ble jeg kommer til å gå over dette. Den første prosent kalles en escape-tegnet, og det bare sier ting bak dette er faktisk ikke koden. Så dette første prosent, høyre,% 0,02 f, alle av dem% 0,02 f bety noe for printf som en funksjon. %%, Jeg ville bare det å faktisk bare skrive ut en prosenttegn. Så jeg sier ikke at det er noe viktig bak det. Jeg sier bare det er et prosenttegn bak det. Vennligst skriv ut et prosenttegn. Så prosent, deretter en annen prosent. PUBLIKUM: Kan du vise hvordan det ville se ut hvis du har flyte basert på en annen linje? DAN BRADLEY: Oh yeah, sikkert. Så jeg blir bedt om å vise hvordan det ville se ut hvis jeg hadde denne flyte teller, alt dette regnestykket, på en annen linje. Så float prosent = - og jeg ville bli kvitt dette og bare sette i prosent. Og det gjør akkurat det samme, jeg bare har en annen variabel. PUBLIKUM: [uhørlig]. DAN BRADLEY: Bla ned til hva? PUBLIKUM: Slik at jeg kan se [hørbar]. DAN BRADLEY: Hva kan du ikke se? PUBLIKUM: Beklager, jeg var [hørbar]. DAN BRADLEY: Yeah. PUBLIKUM: Så hvis vi erstatter escape-tegnet, anta at vi ønsket å ha et dollartegn i stedet, bare for eksempel et dollartegn bak prosent? DAN BRADLEY: Nope. Det er bare en dollar, bare en dollar tegn, fordi en dollar sign betyr ikke noe å printf. Spørsmålet var, jeg må ha en flukt karakter for symboler som dollartegn? PUBLIKUM: Så slags relatert, er det noen andre saker som vi bør vite om når noe som prosent tegn kan bety noe [uhørlig]? LEXI ROSS: Ja. Ikke nødvendigvis et prosenttegn, men backslash, se hvordan vi har tilbakeslag slutten her? La oss si at vi faktisk ønsket å skrive et tilbakeslag, ville vi ha å unnslippe som - og dette kommer til å høres forvirrende - med en annen backslash. Så hvis vi ønsket å skrive ut \ \, ville vi bare å skrive det, eller for ytterligere backslash, en annen rømning. Og en annen, hvis vi ønsker å skrive ut et sitat - så utgangspunktet, noe som slags betegner noe spesielt innenfor en streng, ønsker vi å unnslippe. Så la oss si at vi faktisk ønsker å ha et tilbud her, ville vi ønsker å gjøre \ ". PUBLIKUM: Så det er vanligvis en backslash? DAN BRADLEY: Det er vanligvis en backslash. LEXI ROSS: Yeah. For noen grunn her, er det et prosenttegn. PUBLIKUM: [uhørlig]? DAN BRADLEY: Denne fyren? Dette er bare å si, er det ting som blir delt her kommer til å bli behandlet som en flåte av hensyn divisjonen. Så i tilfelle av 50 delt på 100, hvis jeg ikke har flyte der, ville det bare være 0. Det er alt som ville komme ut, fordi 50 delt på 100, hvis du ikke er inkludert eventuelle desimaler, er 0. - og alt etter desimaltegnet er bare avkortet av. PUBLIKUM: Um, hvorfor ikke vi sette det før nevner også? DAN BRADLEY: Så grunnen til at vi ikke setter det foran nevneren er fordi når du dele noe av et heltall, det fungerer helt fint. Å ha et større antall på bunnen endrer ikke noe. Du kan dele av heltall helt fint. Det bare ikke virkelig betyr noe. Du kan, ville det ikke endre noe. PUBLIKUM: Så hvis du ønsket tre desimaler, ville du setter prosent 0,03? DAN BRADLEY: Jepp. Du ville sette% 0,03 hvis du ønsket tre desimaler. Målgruppe: Og gjøre kommandoer, hva er forskjellen mellom det og bare gjøre mens på toppen? DAN BRADLEY: Så en gjør-mens versus en stund loop er to nokså like kommandoer. Den eneste forskjellen er at du kjøre koden en gang, kjører du kode inne i loopen en gang før gjør noen faktiske sjekk. Så det er også grunnen til at jeg kan si nevneren uten å gi det et tall. Så hvis jeg sa int nevner, og deretter mens (nevneren <= 0), kan det aldri selv kjøre koden innsiden. Det vil gjøre at sjekken før - så her. Så hvis jeg hadde denne mens loop her, ville jeg ha nevner lik, sier -2 eller noen tall mindre enn eller lik 0, så det ville faktisk prøve å kjøre koden innsiden først. Så generelt sett, vil du bruke en gjør-mens loop i stedet for en stund loop når du ber om brukerens input fordi du kjører koden en gang, ber om noe brukeren vil gi deg er generelt den beste løsningen, i motsetning å bare stole hva du legger i å begynne med. PUBLIKUM: Og gjør er alltid fulgt av en stund. DAN BRADLEY: Gjør følges av noen del av koden som du ønsker å utføre, og deretter mens noen tilstanden er. LEXI ROSS: Tenk på det som en kommando slags brutt opp i to deler. Det er en gjør-stund, ikke som her er en gjør, og da er jeg kommer til å legge en stund, det er bare en gjør-stund. PUBLIKUM: Jeg forstår grunnen til at du bruker To prosent skilt, men kan du forklare meg hvorfor vi må har [uhørlig]? DAN BRADLEY: Ok, så ett prosentpoeng skiltet er bare å si printf, her er en kommando som jeg vil at du skal fyll med noen tall. Så jeg vil at du skal fylle den med to desimaler og en flyte, og du vil finne flottøren på slutten av kommandoen, er det denne prosent. Gjør det fornuftig? PUBLIKUM: Jepp. DAN BRADLEY: Ok. PUBLIKUM: Er det noe om gjør-mens loop som hvis tilstanden ikke er oppfylt, hvis du får en negativt tall for numerator ditt, vil det bare fortsette spør og vil fortsette å spørre brukeren? DAN BRADLEY: Yeah. Så hvis tilstanden mens ikke er oppfylt ved slutten av do-while, vil det løpe tilbake til start. Det er bare en loop. Så det er som en stund løkke at tilstanden ikke har vært oppfylt på. Det går bare en gang. Ja. PUBLIKUM: Så hvis du gjør dette, kan du for mens, sette to forhold? DAN BRADLEY: Du kan. Det avhenger av hva du spør. Så du kan sette to forhold på en stund sløyfe hvis du har det alle innen en slags boolsk operator, som lyder stygg, men det er i utgangspunktet denne nevneren er mindre enn eller lik null, enten returnerer sant eller usant, ikke sant? Det er enten mindre enn eller lik null eller ikke. Så du kan gjøre andre boolske operatorer som vil si mens Dette er også sant eller mens dette er også feil. Så det er ting som og teller er større enn null, ikke sant? Som spør, vil dette bare løkke mens nevneren er mindre enn null, og du har en positiv teller. PUBLIKUM: Og du gjør de to ands, ikke sant? DAN BRADLEY: To ands. LEXI ROSS: Vi dekker det mer senere. PUBLIKUM: Hva hvis noen ikke satt i en positiv nevner? Hvis de satt i en negativ teller, kan du be dem til, si, satt i et ikke-negativ teller og har en kommando for det? DAN BRADLEY: Du kunne. PUBLIKUM: Akkurat nå er det bare sier ikke-negativt teller. Hva ville bli brukt for det? DAN BRADLEY: Så du ville ha en hvis tilstand, så som om Telleren er mindre enn null. LEXI ROSS: Du ville sannsynligvis bare ønsker å bryte den opp i mer trinn, ikke sant? Så den første gang de satt i input, vil vi bare si gi oss en teller eller whatnot. Og hvis de gjør noe galt, kan dette være tilfelle en stund løkke, snarere enn en gjør-mens, fordi vi har første gang vi har GetInt, og deretter mens den inngangen er dårlig, vi holder ber dem for videre inngang med en forskjellige slags tekst, gjorde som som ikke fungerer eller gi oss en ikke-negative teller i stedet, den slags ting. DAN BRADLEY: Yeah? PUBLIKUM: Hvordan fjerner du ting som [uhørlig] terminalen? LEXI ROSS: Klar. DAN BRADLEY: Ja, kan du ikke skrive i den. LEXI ROSS: Egentlig er dette ikke et reelt terminal. Spørsmålet var hvordan fjerner du at ting der nede? Svaret er at det er ikke en ekte terminal, men la oss si at du er i en reell terminal. Fjerne. Åh, det er en katt. DAN BRADLEY: [uhørlig]? Det er det, ikke sant? LEXI ROSS: Nei, det er alle mine ting. DAN BRADLEY: [uhørlig]. LEXI ROSS: Det vi går. DAN BRADLEY: Yeah? PUBLIKUM: Har klart arbeid hvis du har - liker, si at du kjører et program [hørbar] og det er å spørre deg for noe, og du ikke vil. Hvordan du gjør - DAN BRADLEY: Ctrl + C? LEXI ROSS: Yeah. Så hvis du kjører et program og noe ikke går slik du vil ha det til, og du bare ønsker å avslutte hele program, Ctrl + C. Selv om du er på en Mac, ikke Apple + C, Control + C. PUBLIKUM: Har du har riktig versjon i revisjon i profilen din? DAN BRADLEY: Jeg tror den er lagret, er det ikke? Ja. LEXI ROSS: Dette er plassen. Ja. Jeg tror det er Revisjon 11. DAN BRADLEY: Yeah? PUBLIKUM: Gjør C noen antakelser om hva en variabelen er hvis du definerer en variabel, men ikke tildele noe til det med en gang? DAN BRADLEY: Så det vil bare akseptere ints inn det punktet. Så hvis du deklarerer det - PUBLIKUM: Hvis jeg bare gjorde int nevner semikolon, gjør det anta at det er lik null, eller hvilket som helst antall -? DAN BRADLEY: Nope. Så hvis du ikke tilordner, sier int nevner til noen verdi, det kunne være noe. Det er den gamle minne som var på dette stedet. Så det kan være negative 2 milliarder kroner, kan det være positivt 2 milliarder kroner, og det kan være hvor som helst i mellom. Så hvis du faktisk kjører ting, sørg for at du tildele en verdi til variablene. Dette, det spiller ingen rolle fordi vi er umiddelbart tildele verdien, men generelt sett, ja. Andre spørsmål? LEXI ROSS: Vi kan også bare ta generelle spørsmål på dette punkt på foredrag materiale, p sett materiale, noe du har har lurt på, er dette et godt tidspunkt å spørre dem. PUBLIKUM: Så i walkthroughs, Zamyla nevnt runde funksjonen. Ville du tankene utdype hvordan å implementere det? LEXI ROSS: Sure, hvordan gjennomføre det? PUBLIKUM: Hun sa det var rund. LEXI ROSS: Oh yeah. Så bare så vi har alle den samme vocab og sånt, redskap betyr vanligvis egentlig skrive fra scratch. Og så tror jeg ikke hun snakket om slags skriftlig den runde funksjon. Hun trolig bare ment hvordan du bruker den. Implementere betyr liksom som skaper. Så generelt, er en tid da vi ønsker å bruke den runde funksjon jeg mener, liksom, for eksempel, Hvis du ønsker å runde. Kan du gi meg litt mer sammenheng om hva problemet var? PUBLIKUM: For å unngå imprecisions av desimaler ved å gjøre dem en flåte. LEXI ROSS: Yeah. Så problemet med flottører som vi har slags antydet er at på grunn av måten de er lagret på maskinen, de er ikke 100% nøyaktig på den måten at du kanskje tror kalkulatoren vil lagre dem. Det er vanskelig for meg å vise et eksempel uten å vite hva sammenheng var fra. Jeg vet ikke, kan du tenke på noe, Dan? DAN BRADLEY: Så hvis du spør etter, sier tallene større enn 10 og du bruker flyter, og du legger en til en flåte hver gang, vil det noen ganger vente til du har fått til 12 før det vil si dette er faktisk en rekke større enn 10. Flyter har noen alvorlige problemer bare mellom den 32. og 33. desimal som vil gå, så det kan 9.9999999, eller det kan være 10.0000001, ikke sant? Det gjør egentlig ikke skille mellom de to, så hvis du er venter på ting som er større enn eller lik 10, kanskje du ikke komme dit på hva du tror er den 10. iterasjon. Du kan få det i 11.. LEXI ROSS: Hovedsakelig, ja. Når du looping over mange flyter, er at når imprecisions skje. PUBLIKUM: Jeg tror, ​​så i utgangspunktet, er det som på p satt, vil det å runde flyte verdi, og hvis du setter på 4,24 for hvor stor endring du trenger tilbake, hvis du bare gjøre ganger 100, vil det faktisk endre til 423 - DAN BRADLEY: Noen ganger, ja. PUBLIKUM: Så jeg tror det er akkurat som, hvordan du bruker den runde funksjon i selve koden for å gjøre det slik at det ikke gjør det? DAN BRADLEY: Så hvis du er avrunding 424 ved å multiplisere den med 100 og gjøre det til et heltall, vil det noen ganger gjør det 423 på grunn av at imprecision. Og så ting du kan gjøre er å legge bare 0,0000003. PUBLIKUM: Men jeg tror, ​​faktisk, de ønsker oss til å bruke runde. DAN BRADLEY: Den runde funksjon? Det er trolig en matte funksjon, noe i math biblioteket. PUBLIKUM: # include matematikk. DAN BRADLEY: # include , og det er sannsynligvis en runde funksjon. PUBLIKUM: Akkurat som round () -? LEXI ROSS: I hovedsak fordi du ønsker å runde av til nærmeste øre. DAN BRADLEY: La oss dra opp mannen sidene. Så et nyttig verktøy, hvis du ikke vet - du trekker opp terminalen - er hvis du går til mannen matematikk. LEXI ROSS: Cool. Så du kan se, så man er en forkortelse for manuell, ikke mennesket, og det tillater deg å slå opp mer informasjon om et gitt funksjon eller biblioteket som du kan være med å gjøre. Så jeg bare skrev i mennesket matematikk. La meg zoome inn DAN BRADLEY: Vi kan prøve mann runde, også. LEXI ROSS: Sure. DAN BRADLEY: Og dette vil liste ut - Mannen matematikk vil liste alt som er i matematikk biblioteket, som vi vil inkludere. Ja, vi har også runde. LEXI ROSS: Så jeg bare gjorde mannen runde. Du kan se her i sammendraget, sier det # include , så det er typen som cs50.h, stdio.h. Og det ser ut som det er faktisk overbelastet, noe som betyr det tar ulike typer argumenter, slik at du kan runde dobler eller flyter. DAN BRADLEY: Round versus roundf. LEXI ROSS: Roundf. Visste Zamyla nevne roundf versus runde? PUBLIKUM: I gjennomgang, var det bare rundt (). DAN BRADLEY: Ok, så hun sannsynligvis var med dobbel, da, i motsetning til en flåte. Ok, så du ville multiplisere med 100 og deretter rundt det, og du ville få antallet nærmest til det, tror jeg. LEXI ROSS: Så runde funksjonen returnerer integrert verdi nærmest x avrunding halvveis tilfeller unna 0, uavhengig av den gjeldende avrunding retning. Så egentlig, ville du ønsker å bare rundt når du er på et heltall, slik at du multiplisere med 100 og deretter runde. Betyr det være mer fornuftig? PUBLIKUM: For å bruke denne funksjonen i en C-fil, trenger du å sette runde flyte, som om variabelen kalles q, trenger du sette runde (float) q, og deretter en parentes, eller kan du bare sette rundt, og deretter Q i parentes? DAN BRADLEY: Så hvis du prøvde å bruke denne funksjonen faktisk, ville du ta det q, Q en flåte, eller hvordan er det erklært? PUBLIKUM: Q er en flåte. DAN BRADLEY: Så hvis q er deklarert som en dupp, ville du bare ta runden, og deretter gi den q. Du må kanskje erklære det som en dobbel i dette tilfellet. LEXI ROSS: Ja, med mindre du vil bruke roundf. PUBLIKUM: Jeg kunne bare bruke roundf, og deretter q i anførselstegn? DAN BRADLEY: Nei, ikke i anførselstegn, bare q. PUBLIKUM: Beklager, ikke i anførselstegn, i parentes. DAN BRADLEY: I parentes, ja. LEXI ROSS: Beklager det var litt forvirrende. Noen flere spørsmål? DAN BRADLEY: Yeah? PUBLIKUM: Så runde bare runder til heltall? LEXI ROSS: Ja. DAN BRADLEY: Ja, runde bare runder til heltall. PUBLIKUM: Så hvis du ønsket å ha noe eksakt som måtte være [hørbar] multiplisert med 100 og deretter delt på 100 igjen hvis du ønsket å -? LEXI ROSS: Så hvis du ønsker å få det inn i en desimal form? PUBLIKUM: Vel eksempel, for eksempel, [uhørlig] du har 1,25, og deretter [hørbar] 1,24, hvis du ønsket å holde det som 1,25, ville du multipliserer det med 100, rundt det, og deretter dele det med 100 igjen for å få 1,25? LEXI ROSS: Yeah. Så spørsmålet er, siden avrunding, som mannen siden sier runder til nærmeste integrert verdi, betyr at at man ønsker å multiplisere med 100, gjør avrunding, og dividere med 100 igjen til, si, få den riktige dollar og cent verdi? Og svaret er -? DAN BRADLEY: Nei Jeg mener, hvis du bare får en dupp verdi, hvis du starter med en flåte verdi på 1,25, det er hvordan det kommer til å bli tolkes. Så hvis du multipliserer det med 100 og deretter dele det med 100, det er fortsatt kommer til å bli tolket som 1,25, eller muligens 1,249 ... .. 999. LEXI ROSS: Jeg tror spørsmålet var som, ville du multiplisere, deretter bruke runde, og deretter dele, så det er som - DAN BRADLEY: Yeah. Jeg fortsatt tror ikke det forandrer noe, skjønt. Jeg tror det er stille. LEXI ROSS: Fordi runde gjør - det bruker heltall. Så hvis du prøver å runde 1,25, får du bare en. Så jeg tror for å få ut den ekstra presisjon, hvis det er det du snakker om. PUBLIKUM: Så i hvilke forekomster bruker du rundt, da? DAN BRADLEY: Så i dette tilfellet, hvis du vil, sier, antall cent fra $ 1,25, vil du multiplisere med 100, runde, får 125, og la det som det, som cents, i motsetning til å prøve å konvertere den tilbake i kroner og øre. LEXI ROSS: Oh yeah, yeah, for sikker. PUBLIKUM: Hvorfor trenger du å runde at [uhørlig]? DAN BRADLEY: Så hvis du multipliserer det med 100 og deretter umiddelbart konvertere det til et heltall, som er den mer nyttig form, det er da du avtale med det unøyaktighet, ikke sant? Så det kan være 124.999999, og så hvis du deretter konvertere det til et heltall, synker den bare alt av det er under desimaltegnet. PUBLIKUM: Så det vil gi deg [uhørlig]. DAN BRADLEY: Nøyaktig, istedenfor 125, noe som er hvorfor du ønsker å runde. PUBLIKUM: Beklager, kan du gjenta det du sa du bør gjøre i motsetning til hva du ikke bør gjøre? DAN BRADLEY: Ok. Så hva du bør gjøre er hvis du starter med 1,25, multiplisere det med 100, og deretter runde at hele tall, som 125 eller 124.9999, og få den til nærmeste heltall. PUBLIKUM: Så hvis du runde, setter det til nærmeste heltall? DAN BRADLEY: Yeah. PUBLIKUM: Er det en måte å begrense, hvis du ber om en flåte å bli lagt inn, er det en måte å begrense hvor mange desimaler steder du kan legge inn en dupp til? LEXI ROSS: Bruker ikke CS50 gjennomføring. Jeg mener, kan du telle hvor stor inngang er gitt ved brukeren, men det ville kreve en ny implementering av GetFloat, og slik at du ikke trenger å bekymre deg for det. DAN BRADLEY: Så hvis de sier, inngang 1.256, kunne du bare bruke 1,25, eller du kan gjøre 1.26. Uansett, jeg tror gjennomføringen sier du kan - PUBLIKUM: Du kan bare ha den rundt til - DAN BRADLEY: Uansett hva den vil, ja, så lenge du gjør en slags avrunding. Noe annet? Trenger ikke å være om avrunding. LEXI ROSS: Yeah? PUBLIKUM: Hvis vi ønsker å sjekke for å se om stilen vår Koden er hensiktsmessig eller den beste stilen at det kan være, er at den slags ting vi ville ta opp i delen, eller ved kontortid, eller er det den slags ting vi kan legge privat på ting, på diskusjonen, og deretter be om råd om? LEXI ROSS: Så vi ikke gjør det, ved kontortid eller på CS50 Diskuter, vil vi faktisk ikke karakteren din p sett på forhånd for stil, men jeg tror nok den mest nyttige ting du kan gjøre ville være å se på eksempler, og du bør kunne finne at i delkoden, som bør være distribuert online, samt foredrag lysbildene, der bør være eksempler på kode. Men hvis du har individuelle spørsmål om et bestemt style problemet, definitivt gjerne be om at den CS50 Diskuter og kontortid, eller på din egen tid. Men hvis det er mer en generell titt på koden min, er det best å slags bruk eksempler og prøver å passe inn koden til det. Og jeg tror det er en stil guide på - DAN BRADLEY: Det er stil guide. Stilen guiden er kjempebra. Den lærer deg alt du trenger, og det dekker ganske mye hver eksempel kjent mann, eller i det minste kjent for meg. Noe annet? OK. Kule, folkens. LEXI ROSS: Ha en flott dag. DAN BRADLEY: Takk for at du kom.