LUCAS FREITAS: OK, ek dink nou is ons lewe. Welkom by CS50 Supersection. Ons is minder gemaklik. My naam is Lucas Freitas. Ek is een CS50 Hoof TFS. Dit is Lauren. LAUREN CARVALHO: Hi, ek is Lauren. Ek is ook Hoof TF vir CS50. LUCAS FREITAS: Vandag is ons net gaan 'n oorsig van wat alles wat jy te gee ouens het in week een geleer het, hopelik gee julle 'n goeie sin wat jy moet weet vir die probleem stel een. Net 'n paar aankondigings. Eerste van alles, kantoorure. Kantoorure gebeur vanaf Maandag tot Donderdag in verskillende huise in Annenberg elke dag. Hulle is 'n baie goeie hulpbron vir jou ouens om te kom en om vrae te vra, en praat TFS, en selfs ruil idees met ander studente. So seker wees dat hulpbron te gebruik in jou guns. Die tweede ding is die CS50 toestel. Vir die laaste [onhoorbaar] julle ouens het nie eintlik 'n toestel. Jy het net alles in jou persoonlike rekenaar. Maar vir hierdie probleem, kan jy eintlik 'n virtuele masjien te hê, so wees Maak seker dat die CS50 te laai Toestel en dit stel. En die derde ding is seker wees om te begin om die probleem so gou as moontlik stel net want dit is baie makliker om te vind help wanneer jy in die die begin van die week. Omdat mense geneig is om te wag totdat die laaste sekonde van die probleem stel om te begin, en dan gaan jy na kantoorure, en daar is 'n klomp mense. Waar as jy gaan op Maandag, gaan jy om te sien dat jy kan praat TFS pretty much vir die hele nag, en hulle gaan wees meer as gelukkig om jou te help. LAUREN CARVALHO: Kan ek net ophou jy vir net een sekonde? Het almal in staat was om af te laai die CS50 toestel? Het mense probeer? LUCAS FREITAS: af te laai, deur die Sodoende kan jy die instruksies op cs50.net/appliance. LAUREN CARVALHO: Right. En dit neem 'n rukkie vir ons sys bestuurders om jou te kry om 'n lisensie sleutel, so teken vir die gratis verhoor eerste. Op dié manier sal jy dit vir 30 dae, en dan wag vir jou lisensie sleutel wat dit behoort te gee aan u vir 'n jaar. LUCAS FREITAS: Eerste van alles, Kom ons praat 'n bietjie oor die CS50 toestel. Die CS50 toestel is eintlik 'n virtuele masjien wat jy gaan hardloop in jou eie rekenaar wat basies hardloop 'n ander rekenaar binne jou eie rekenaar. Wat is pretty cool. En eintlik is dit oral gebruik. Mense wat aan tegnologie sou weet dat dit gebruik word om al die tyd. jy? Kan verskeie rekenaars in een toestel. Kom ons eintlik 'n blik op die toestel. Wanneer jy na die toestel na registreer, gaan jy te hê sit jou naam en teken in by Harvard sodat ons dit kan jy al geregistreer. Jy gaan basies sien net 'n agtergrond, en dan huis toe en asblik, en dan hierdie klein ikone. Hierdie drie ikone is eintlik die mees belangrike dinge wat jy kan hê in jou toestel. Die eerste een is gedit, wat is 'n teks redakteur, net soos Notepad of soos enige vorm van teks editor. Dit is net iets wat ons gebruik om te skryf kode en dan doen dinge met dit. Die tweede ding wat ons hier is Chrome. So as jy nodig het om die internet te gebruik in die toestel, wat wat jy kan gebruik. En die derde ding is die terminale, wat is eintlik baie soet. Mense is gewoonlik soort van bang die terminale, want dit is hierdie baie outydse aansoek waarin jy basies net tik alles met u sleutelbord. Daar is nie 'n baie interaksie met jou muis. Maar eintlik die terminale doen baie goeie dinge. Eerste van alles, laat ons gaan net deur sommige opdragte wat jy kan gebruik in die terminale. LAUREN CARVALHO: En voel vry om te stop ons as jy enige vrae het. LUCAS FREITAS: Ja. Dus is die eerste gebod dat ons vir die terminale is LS. LS beteken basies lys alles, al die lêers en al die direkteure, dat ek by die plek wat ek by. So as ek dit doen LS hier, ek gaan om te sien dat ek 'n paar dopgehou. Ek het die lessenaar, die downloads, die logs, en die vhosts. Dit is blou omdat hulle is al dopgehou. Dan moet jy nog 'n paar ander lêers. Jy het soos 'hallo en hello.c, wat is net lêers, en hulle is in verskillende kleure. So, dit is 'n baie belangrike opdrag net jy kan sien wat is die lêers en dopgehou wat jy in die gids wat jy by die eindpunt. Wanneer jy sien jharvard @ apparaat en dan die klein simbool daar, die tilde, wat beteken net dat dit is die gids wat jy op die oomblik. LAUREN CARVALHO: So tik LS is byna soos kliek op die gids Dit is reg daar gelys is, in dit toon jy al die inhoud wat in die gids. Publiek: Is daar teks na die hello.c? LAUREN CARVALHO: O, jy kan nie sien dat, want dit is blou. LUCAS FREITAS: Dit sê stompe en vhosts. LAUREN CARVALHO: Dit is net ander dopgehou. Ek is jammer, dit is werklik moeilik om te sien. Miskien as ons het die ligte af? Colton, het jy nie wil om te probeer en vind die lig skakelaar? Jammer oor dit. Ek het nie gedink nie. LUCAS FREITAS: Maar dit is basies - ja, as jy kan - LAUREN CARVALHO: Zoom in jou skerm. LUCAS FREITAS: Ek hou nie het dat die funksie. LAUREN CARVALHO [onhoorbaar]. OK. Wel, daar is net 'n baie natuurlike lig in hierdie kamer so goed. LUCAS FREITAS: Kom ons aanvaar dat Daar is twee ander dopgehou daar. LAUREN CARVALHO: Slegs saam met ons. Dit is die enigste deel wat jy sal kyk na die terminale. LUCAS FREITAS: Die volgende opdrag is basies dalk wil jy te organiseer jou lêers - byvoorbeeld al jou C-lêers in een Gids-maar jy het nie 'n Gids net vir die C-lêers nie. Jy kan basies 'n gids gebruik van die terminale, asook, wat dieselfde ding as regs te klik en gesê: New Folder. Die opdrag is om gids, wat is mkdir, so basies "maak" en "Gids." En dan kan jy die naam van die gids. Kom ons sê dat ek wou genoem word, Ek weet nie, kom ons sê pset1 Doen hierdie, ek het net 'n gids. Kom ons kyk net dat dit daar is. So as ek dit doen LS, nou sien ek logs, en dan pset1, en dan vhosts. So ek het die nuwe gids is daar. En dan nadat jy 'n nuwe gids, Miskien het jy wil om te navigeer in dit, sodat die volgende opdrag hierdie CD, wat net basies beteken gaan na 'n spesifieke gids. So as ek wil om te gaan na pset1, Ek kan net nie CD pset1. LAUREN CARVALHO: CD staan ​​vir verandering gids, [onhoorbaar] in staat te onthou dat. LUCAS FREITAS: En nou is jy sien dat in plaas van net 'jharvard toestel, het ek jharvard toestel, en dan pset1, want dit is wat my waar ek in hierdie rekenaar. Nou as ek wil om terug te gaan na die gids wat was voor hierdie een, ek kan 'n CD dot dot, wat net beteken gaan doen na die gids wat ek was voor, soos die ouer van hierdie Gids, basies. En nou sien ek dat ek Terug na jharvard. Die volgende ding wat ek dit kan doen RM, wat is verwyder 'n lêer. Byvoorbeeld, laat ons eers LS om te sien wat ek het hier. Ek het hallo en hello.c. Kom ons sê dat ek wil dit te verwyder. Ek kan RM hallo doen. Dit gaan om te sê "verwyder gewone lêer hallo? "En ek sê:" Ja. "En as ek nou doen LS, ek sien dat dit nie daar nie. As ek probeer om RM te gebruik vir 'n gids al is, is dit nie gaan om jou te laat niks doen nie. Dit gaan om te sê, hey, jy kan nie 'n gids verwyder. So ons het hierdie ander kom genoem rmdir, wat net basies beteken verwyder gids. Ek kan, byvoorbeeld, verwyder pset1. En as ek doen LS, ek doen nie het dit nie meer nie. Enige vrae oor hierdie? Nee? Ja? Publiek: Is dit belangrik dat jy laat 'n ruimte na - wanneer jy begin tik iets in? LUCAS FREITAS: Ja. As ek dit doen graag CD en die gids, Ek het 'n ruimte te sit. Wat ruimte praat jy? LAUREN CARVALHO: Die spasie tussen CD en [onhoorbaar]. LUCAS FREITAS: Ja, jy sal hê om te sit die spasies omdat CD is die opdrag, en dan is die volgende string wat jy tik is basies die gids. So dit is soos om 'n argument. Ja? Publiek: Wanneer jy 'n lys van al daardie verskillende dopgehou, reg? LUCAS FREITAS: Ja, hulle is in die gids. Publiek: Wat is die verskille onder die dopgehou? LUCAS FREITAS: Hulle is net verskillende dopgehou. Gids is 'n gids in jou rekenaar. Publiek: Open die gids. LUCAS FREITAS: Ja, dit is net 'n oop gids. LAUREN CARVALHO: hier, die kinders wat in blou is werklike dopgehou wat jy kan kry in en dan sien 'n klomp van die dinge wat binne daardie, dit is jammer want jy kan nie eintlik lees die kinders in blou. En die kinders met wit is net lêers wat in die huidige gids. LUCAS FREITAS: So dopgehou is dopgehou. Die ander kinders is lêers. Publiek: Wat is die opdrag om dit te herstel of dit skoon te maak? LUCAS FREITAS: Om duidelik? LAUREN CARVALHO: Om duidelik? LUCAS FREITAS: Ek dink dit is "duidelik nie." Ja. So tik jy net duidelik of jou skerm is te slordig. Enige ander vrae? En jy sal 'n klomp van die ander leer beveel natuurlik net gedurende die semester, want hulle is baie handig. So nou laat ons praat oor die samestelling. Ons het gepraat oor pseudokode en bron-kode en voorwerp-kode. En daar is 'n baie van kodes, en miskien julle ouens is verward oor wat. Kom ons praat 'n bietjie oor wat gebeur wanneer jy 'n program skryf, en jy stel, en dit word 'n uitvoerbare lêer. Dit is al die woorde wat julle waarskynlik gehoor, en miskien is jy nie seker wat aangaan. Kom ons sê, byvoorbeeld, wat ek wil skryf 'n program wat sê: "Hello." Die eerste ding wat kom in jou gedagtes is jy soort van probeer om te dink hoe jy gaan om dit te doen in jou gedagtes, en is jy waarskynlik dink in Engels of 'n ander taal, soos natuurlike taal, waarskynlik. En dan moet jy dink, goed, as Ek wil, byvoorbeeld, skryf 'n program wat sê "hallo" Ek sou 'n program begin, Ek sal druk hallo, en dan sal ek sluit die program. Dit is pseudokode. Dit is basies net wat jy probeer kom met 'n reeks van gebeure wat jy gaan doen om te wees staat om 'n program te skryf. Dan moet jy die bron-kode, en die bronkode nie hoef te spesifiek in C. Ons praat oor die bronkode in C, want dit is die taal wat ons leer nie, maar natuurlik kode kan pretty much enige wees programmeertaal wat jy het. Later in die semester, gaan jy ander tale aan te leer. Dit is ook die bron-kode. Byvoorbeeld, hier, dit is my bron kode, en dan is ek insluitende 'n biblioteek, en dan begin ek hoof, en dan druk ek. En Laura gaan 'n bietjie om te praat bietjie oor al hierdie dinge. So dit is die bron-kode. En wat is die voorwerp-kode? Die doel is om 'n klomp van nulle en kinders, basies. Wat gebeur is dat jy aanvanklik pseudokode, wat al in Engels. En ek bedoel, jy verstaan ​​dit. Waarskynlik vriende verstaan dit, en die meeste mense sal verstaan ​​die idee. Maar rekenaars is baie dom, en hulle nie Engels verstaan, sodat jy het vertaal dat in iets, gewoonlik vertaal in 'n paar programmeertaal. En jy kan dink van 'n program taal as soort van soos 'n taal wat jou vertel hoe om jou rekenaar te praat en te verstaan. Jy is basies iets te skryf in 'n taal wat beide jou en jou rekenaar verstaan. Dit is die bron-kode. So gaan vorm pseudokode om die bron kode, is dit aan jou. Dit is basies wat jy doen jou program. Maar die probleem is dat die rekenaar nie eens programmeertaal te verstaan. Dit beteken nie verstaan bron-kode nie. Dit is eintlik net verstaan nulle en ene. So ons het hierdie baie magic ding genoem 'n vertaler, wat basies is gaan na die bron genoem raak dat jy geskryf in 'n taal wat die beide jy en jou rekenaar te praat, en nou is jy gaan om dit te omskep in nulle en ene. So basies wat die opsteller doen, is dit raak bron-kode, in hierdie geval C, dit gaan om dit te omskep in nulpunte en diegene wat die rekenaar verstaan ​​en kan 'n uitvoerbare lêer uit. Is wat sin maak? Jy kan net dink aan die samesteller as 'n soort van vertaler wat help jy aan die rekenaar te verduidelik presies wat dit veronderstel is om te doen. Maar hoe stel ek doen. Kom ons gaan terug na die toestel te gaan, en Kom ons sê dat ek doen wat program. Eerste gaan ek 'n gids te skep hier, en ek gaan om dit te noem "Praktyk." Nou gaan ek om te navigeer na die gids, so cd praktyk. Nou is ek in die praktyk. Nou wil ek gedit te begin, So, hoe doen ek dit? Ek kan óf klik hier, of ek kan net tik letterlik "gedit", en dit gaan oop te maak vir my. Nou gaan ek my program om te tik, so presies wat ek geskryf het in die skyfie. Ek is waarby 'n biblioteek. Ek doen int hoof, nietig. En nou is ek doen printf, hallo. Nou gaan ek om dit te red. Laat ek dit in die praktyk, en Ek gaan hierdie hello.c te bel. Dus is dit nou gered. As ek wil om dit te stel, het ek eintlik kan dit doen in twee verskillende plekke. Ek kan nie doen dit in 'n terminaal venster sodat hierdie groot een, of jy kan gebruik gedit wat eintlik 'n terminale venster reg hier. So kan jy baie maklik net nie jou kode, en dan kan jy net tik alles hier, en probeer om dit op te stel. So, hoe stel ek nie 'n kode? Die maklikste manier wat ons het, is deur die gebruik van maak, wat 'n funksie wat is basies gaan stel jou kode. Jy moet net om te sê hallo maak, sodat "Maak" en die naam van die program. Oeps. Dit is moeilik. LAUREN CARVALHO: Kan jy [onhoorbaar]? LUCAS FREITAS: Jammer. Ek het dit nie red in die regte gids. Kom om te oefen, en nou stoor dit as hello.c. Ek is jammer. Nou is dit gered. Laat my net te doen LS en seker te maak dat dit is hier. OK, nou is dit hier. So as ek nou doen om hallo, dit spoeg 'n baie dinge, maar dan is dit net gee my 'n ander lyn vir die terminale, wat beteken dat dit suksesvol was. So nou as ek doen 'n LS weer, ek eintlik sien hierdie lêer in groen, wat is die uitvoerbare lêer. En dan as ek wil om dit te doen, al wat Ek het om te doen is dot streep hallo. Dit gaan om te sê hallo reg hier, so dit is presies wat ek vra om dit te. Daar is een manier om van die opstel, wat is die gebruik van klang. Klang is net 'n samesteller wat ons het, en dit is 'n bietjie meer verbose te stel nie. Maar dit werk net so goed. So as ek dit doen klang, en dan-o, en dan die naam wat ek wil om te gee die uitvoerbare lêer, so kom ons sê "Hello." En dan is die lêer wat ek wil saam te stel, hello.c. Dit gaan ook saam te stel. En jy het die lêer hier, en Ek kan net voer dit so goed. So beide van hulle werk. Is wat sin maak? Enige vrae? Publiek: Kan jy zoom in 'n bietjie? LUCAS FREITAS: Jammer? Publiek: Zoom in? LAUREN CARVALHO: Ek dink jy kan net beveel plus. LUCAS FREITAS: Gee bevel wat? LAUREN CARVALHO: Command plus. LUCAS FREITAS: No LAUREN CARVALHO: O, dit is nie gaan werk, want - dit is omdat ons die resolusie vir hierdie ding. LUCAS FREITAS: Ek hou nie dink ons ​​kan zoom in Ja, ons kan nie vergroot. Het jy 'n vraag? Jammer. Publiek: Kan jy herhaal klang? LUCAS FREITAS: Die klang? Klang is dieselfde ding as maak nie, maar die verskil is dat die eerste gaan ek klang, wat is die opdrag om te skryf, dan gaan ek te doen -0, alles, wat net wat ons gaan leer later as 'n vlag. So dink net dat jy altyd die-o te sit. En dan die eerste, jy gaan te sit die naam van die uitvoerbare lêer, basies die lêer wat jy gaan skep. So ek kan sê, byvoorbeeld, hello2 en dan is die lêer wat ek wil stel, wat is die. c lêer. So dit is hello.c. Is wat sin maak? Publiek: Hallo wat? Wat is dit? LUCAS FREITAS: Hello.c. En as ek stel dit, en indien Ek LS, ek het ook 'n hello2 dat ek net saamgestel. En as ek probeer om dit uit te voer, gaan dit doen presies dieselfde ding as hallo, net druk hallo. Publiek: Hoe kom vir die maak jy kan hello.c sit na? LUCAS FREITAS: In maak, moet jy het nie die. c te sit. In maak, moet jy net sê die naam van die program. Jy hoef nie te sê nie. C. Maar vir klang, jy moet. Publiek: Met klang jy ook het die [onhoorbaar] te voeg LAUREN CARVALHO: Ja. So moet jy ook die biblioteek. LUCAS FREITAS: Ja, dit is iets wat Ons gaan later gebruik. Dit is genoem skakel, en ek dink ons ​​is gaan later daaroor praat. Nog 'n vraag? Publiek: Het jy sit 'n dot streep klang? LUCAS FREITAS: No Die dot streep is net oop te maak die uitvoerbare lêer. So klang, jy moet net skryf "klang," en dan is die as jy wil oopmaak om die uitvoerbare lêer wat jy net saamgestel is, dan is jy nie dot streep en die naam. Is wat sin maak? Publiek: As jy net verandering [Onhoorbaar] hallo wêreld, het jy het om dit te hercompileren? LUCAS FREITAS: Ja. As ek wil sê, byvoorbeeld, "hallo daar, "Ek kan net stoor dit nou, en ek net stel dit weer. So laat my nie 'n make hallo. En as ek doen hallo, dit gaan "There." sê Sin maak? Enige ander vrae? Publiek: Het jy te sluit in die standaard I / O die werk te koördineer? LUCAS FREITAS: Ja. Die standaard I / O is basies die biblioteek wat 'n implementering vir printf. So die ding reg op die top sluit Streek Leuven B.. Dit is insluitend 'n biblioteek wat basies het 'n klomp van die verskillende gereedskap wat jy kan gebruik. een? Van hulle is printf dit is 'n funksie wat basies afdrukke boodskappe op die skerm. Enige ander vrae? Nee? OK. So nou laat ons praat oor - LAUREN CARVALHO: Laat ons net gaan na die styl gids. Wil jy net vind dit hier? LUCAS FREITAS: So ons gaan om te praat oor styl. LAUREN CARVALHO: Ag, David het nie voltooi nie. OK. Hoekom het ons nie terug te kom na styl aan die einde? Dit is eintlik is opgedateer as ons praat. LUCAS FREITAS: Ja. Kom ons manier vir Dawid te voltooi. LAUREN CARVALHO: Kan ons eintlik skakel? So ek hoop dat almal was geniet krap. Ongelukkig is dit tyd om te weg te beweeg van hierdie - Ongelukkig is dit tyd om weg te beweeg van hierdie pragtige ontwikkeling blokke aan C. Maar gelukkig, al die ontwikkeling stel dat jy het is besig met in Scratch is direk vertaal na C, en ons is gaan om te begin om te leer oor sommige nou van hulle. Kom ons kyk eers praat oor toestande in Boolse uitdrukkings. Dit loop op reserwe battery krag. LUCAS FREITAS: Hoe is wat nie werk nie? OK. Jy gaan daar, ek gaan die te kry - LAUREN CARVALHO: So toestande belangrik omdat hulle toelaat om ons te stel logika in ons programme. Hier is 'n voorbeeld van 'n voorwaarde binne 'n C program. Kom ons kyk hoe dit - So hierdie toestand blok reg hier, hierdie printf verklaring sal nie voer tensy die toestand binne die hakies, n groter as 0, evalueer om waar te. Nou, almal van die omstandighede in f stellings Boole uitdrukkings, wat beteken dat daar is slegs twee opsies. Hulle kan óf evalueer waar, of hulle kan evalueer na vals. So hier, so dit maak sin, reg? n groter as 0, beteken dit 'n positiewe nommer, wat beteken dat dit sal druk out "jy opgetel 'n positiewe getal." Daar is baie van Boole uitdrukkings dat die toestand kan vorm met 'n init verklaring. Ons het die minder as. Dit is minder as of gelyk aan. Dit is net 'n snaakse [onhoorbaar]. As jy wil hê dat die printf te voorkom indien dit groter as of gelyk aan 0, dan sou jy hierdie kies. So het die gelyke voeg net reg na die groter as teken. Gelyk gelyk, wat verskil van net een gelyk teken, gelyke gelyke eintlik beteken dat alles wat oor die linkerkant van hierdie is dieselfde as Wat is op die regterkant van hierdie waar 'n mens gelyk teken is wat? Wat is net een gelyk teken? Opdrag. LUCAS FREITAS: Wie het dit gesê? Is dit lekkergoed? O, nee. Jammer. Jammer. Julle het albei kry lekkergoed. O, OK! Drie mense kry lekkergoed! LAUREN CARVALHO: So hierdie een reg hier is die bang operateur voorafgaande die gelyke teken, so dit is nie gelyk aan. So as dit was in my toestand, die liggaam van die toestand sou voer net as alles wat's in links is nie dieselfde as die Wat is aan die regterkant. Ek kan ook net die uitroepteken. Eintlik sal ons sien in 'n funksie gly hoe dit gebruik word. LUCAS FREITAS: Enige vrae? Nee? LAUREN CARVALHO: Ons kan kombineer hierdie Boolse uitdrukkings om meer te bou ingewikkelde voorwaardelike state. So hier, as alles wat se links kant van die dubbele bars of alles wat op die regterkant van die dubbele bars evalueer waar, dan sal ons druk ongeldig. En dan hier, as net se op die linkerkant van die twee -karakters en wat se op die regte kant van die twee-karakters evalueer waar, sal ons sal druk geldig. Die dubbel bars is die logiese genoem OR operateur die dubbel-karakters is genoem as die logiese en operateur. Ja? Publiek: Is dit net laer geval l's? LAUREN CARVALHO: No Hulle is eintlik - jy weet wat die teenreaksie, soos bo jou sleutel Return? Sien jy dit? LUCAS FREITAS: Dit is eintlik 'n bar. LAUREN CARVALHO: Dit is eintlik net twee bars. Publiek: Kan jy die gelyk gelyk vir Strykers? LUCAS FREITAS: No Ons gaan later leer iets oor dat. LAUREN CARVALHO: Daar is 'n funksie wat jy kan gebruik. Maar jy hoef nie te bekommerd dat net nog nie. Wat as ek hierdie program die nommer 5? Wat sal druk? Publiek: [onhoorbaar] geldig. LAUREN CARVALHO: Valid? Ja. Ek weet nie wat dit het. [Gelag] LAUREN CARVALHO: Dit is soort scary [onhoorbaar]. Publiek: So het die dubbel en, wat net beteken en? LAUREN CARVALHO: Ja. So nommer 5 is beide groter as 0 en minder as 100. Publiek: Hoekom sou dit wees een? LAUREN CARVALHO: Een ampersand is eintlik iets anders, en dit is 'n bis operateur, wat jy sal leer oor later. Maar dit is iets wat regtig werk met die stukkies van 'n gegewe aantal. LUCAS FREITAS: Dink net wat hulle doen nie hoef te bekommer oor dit vir nou. LAUREN CARVALHO: Ek dink dit is waarskynlik kom volgende week. LUCAS FREITAS: Enige ander vrae? Nee? LAUREN CARVALHO: So het ons gesien dat 'n dit sluit alleen kan staan ​​nie, maar dit kan ook gekoppel kan word met en anders blok. So in hierdie geval, as n groter is as 0, ons gaan uit te druk "Jy pluk 'n positiewe getal is. "anders, wat beteken As dit is 0, of as dit is minder as 0, ons gaan uit te druk, "Jy pluk 'n negatiewe getal." Die interessante ding hier is dat hierdie is eksklusief van mekaar. Daar is nooit 'n geval te wees waarin dit en dit kan beide druk. Ek is seker dat jy saam met die as / anders boks in nuuts af, so dit behoort te wees redelik vertroud. Ja? Publiek: Moet ons die ruimte tussen int n gelyk getint dan ruimte in die As stelling? Soos ons gebruik 'n lyn [onhoorbaar] LAUREN CARVALHO: O, die ruimte hier? Publiek: Hou dit nie, maar jy dubbel ruimte. Nee, gaan. Optrek. LUCAS FREITAS: Slegs die lyn? Publiek: Ja. LUCAS FREITAS: Net die leë lyn? Publiek: Ja. LAUREN CARVALHO: Blank lyn? No Dit is net 'n stilistiese ding. LUCAS FREITAS: Dit is net soos soms jy net slaan 'n paar lyne so dat die kode nie, soos lyk 'n groot blok van die teks. LAUREN CARVALHO: Ek dink wat gebeur was dat ons 'n kommentaar hier, maar ek het dit uit sodat jy ouens wil hê na te dink oor die kode eerder as net lees my kommentaar. In die algemeen, spasiëring nie werklik beïnvloed die manier waarop jou program loop. Dit is meer van 'n stilistiese ding. En wanneer ons die styl gids opgedateer en gereed om te gaan teen die einde van supersection, sal ons praat oor dat meer. Daar is iets fout met hierdie program, reg? Omdat 0 is nie regtig 'n negatiewe getal. So kom ons kyk of ons kan dit regmaak. Jy kan waarskynlik dink met hierdie sê, reg? As n groter as 0, druk ons, "Jy pluk 'n positiewe getal is. "Toe anders As n is minder as 0, "Jy pluk 'n negatiewe getal. "anders," het jy opgetel 0. " Nou is die interessante ding is dat hierdie kan gaan vir ewig. Jy kan 'n As blok, 'n ander het, indien blok, 'n ander anders as blok, anders as, else if, anders as, anders, basies so lank as wat jy wil. En toe gebou soos hierdie, hierdie is almal gaan wees eksklusiewe van mekaar. Ja? Publiek: So hoekom kan jy nie net gebruik 'n ander as in plaas van [onhoorbaar]? LAUREN CARVALHO: In hierdie geval, ja, ek 'n ander kan gebruik as, en dit sou wees absoluut goed, want die voorwaardes self eksklusiewe van mekaar. Maar as die toestande was nie eksklusief van mekaar, sou dit dwing om te nooit beide evalueer, as dit sin maak. Publiek: In daardie geval, kan ons nes die tweede as in die eerste as? LAUREN CARVALHO: As - wat bedoel jy? Publiek: As die twee toestande is nie wedersyds uitsluitend? LAUREN CARVALHO: As die voorwaardes is nie wedersyds uitsluitend? Maar jy wil net een van hulle te laat loop? Publiek: Jy wil net As in plaas van anders nie. LAUREN CARVALHO: Ja. Daar is altyd gaan baie wees maniere waarop jy dit kan doen. Jy kan beslis nes hulle. En jy sal sien in 'n toekomstige skyfie wat jy kan het veelvuldige ifs, net een na die ander. Maar dit is 'n manier om logies organisering van die vloei van die program. LUCAS FREITAS: En daar is 'n meer ding, is dat jy gevra oor om indien en dan 'n ander, indien. Dit sou goed werk, maar dit is sleg ontwerp, want basies as jy gaan die eerste as, en jy sien dat die getal groter as 0, het jy kan net klaar is met die program. Jy hoef nie te kyk of dit is minder as 0, reg? Maar as jy nie as as dit gaan om seker te maak beide, terwyl as ek doen as die ander is, dit gaan om te kyk of dit is groter as 0. As dit is, is dit nie van plan om selfs kyk aan die ander lyne van die kode. So jy basies monitor dit soos twee keer onnodig, so dit is hoekom ons doen as anders as. Enige ander vrae? Publiek: So het die funksie van die anders as die dieselfde as As dit was net as? LAUREN CARVALHO: No Jy is eintlik gaan om te sien in my volgende gly 'n voorbeeld in wat dit kan wees anders. In hierdie geval, dit is byna dieselfde. So hier het ons 'n voorbeeld van veelvuldige indien state, en die funksie is nie dieselfde asof ek het net gesê dat indien anders as die ander, indien anders. Kom ons dink net oor wat sou druk uit te vind of ek die nommer 95 in hierdie program. Publiek: [onhoorbaar] LAUREN CARVALHO: En dan? Publiek: [onhoorbaar] LAUREN CARVALHO: Ja. So in hierdie geval, hierdie toestande nie onderling uitsluitend van mekaar. En omdat daar is niks stop hierdie toestand te evalueer as dit een reeds, hulle is net alles gaan om uit te druk. So, hoe kan ek dit regmaak? Publiek: anders ifs? LAUREN CARVALHO: Jy kan gebruik anders ifs. Ek kon die einde verander van hierdie, reg? As ek het hierdie een eerste? Wel, eintlik, no. Dit sal nie werk vir 95. LUCAS FREITAS: Nee, net die ander ifs. LAUREN CARVALHO: Die anders ifs sou vasgestel het hierdie. Is dit die verwarring tussen IFS en anders ifs? Publiek: Ek wou net om jou te vra, indien jy gebruik het anders as sou dit stop? LAUREN CARVALHO: Right. So net die eerste een. As ek in die nommer 95, net hierdie sou gedruk het nie, en dit het nooit sou gevorder het om die anders. LUCAS FREITAS: net soort van dink dit asof dit gebeur, doen dit. Die ander is soos indien nie, tjek Vir hierdie, en dan doen. Dus, net soos hulle is almal onderling eksklusiewe. Jy kan nie in twee oor hulle. Publiek: Kan jy 'n logiese EN vir die situasie? LAUREN CARVALHO: Ja. Dit is 'n ander manier wat ons kan het vasgestel die probleem. Ons kan gedefinieer wissel, reg? So ek kon gesê het as n groter as 90 en minder as - Wel, ek dink hierdie een nie regtig saak, maar hier kan ek gesê het as n groter as 80 en minder as 90. Groter as 70, minder as 80. Dit sou ook gewerk het. [Gelag] LUCAS FREITAS: Sy is bang. LAUREN CARVALHO: Moenie bang wees nie. LUCAS FREITAS: Dit is nie dat dit verkeerd sal wees. Dit is net dat dit onnodig verbose. Soos in Rekenaarwetenskap, moet 'n mens wees so eenvoudig as moontlik so lank as wat jy het die funksie. Wil jy die lekkergoed? Publiek: Moenie dit nie nodig nie. LAUREN CARVALHO: Jy bang almal, Lucas. LUCAS FREITAS: Jammer. LAUREN CARVALHO: David het ook genoem hierdie skakel verklaring in die klas. Basies wat aangaan is die skakelaar verklaring neem 'n veranderlike. In hierdie geval, ons neem 'n heelgetal. As die heelgetal is 1, gaan ons druk, "Jy pluk 'n klein nommer. "As die heelgetal is 1," Jy pluk 'n medium-nommer. "As die heelgetal is 3, "Jy pluk 'n hoë nommer. "En ek het ook 'n standaard geval hier, maar dit is nie wat up, wat is te sleg nie. Eintlik is dit net 'n ander sintaks. Ons kon hierdie presiese geïmplementeer dieselfde ding met as en anders as state. Maar toe daar is baie van die verskillende toestande en baie van die verskillende variasies op wat jy wil te doen vir elke insette, dit is 'n opsie nie. So dit is net 'n goeie sintaksis te leer ken. Ja? Publiek: Hoekom is daar nie 'n backslash N in die eerste een? LAUREN CARVALHO: Vir daar? Daar is geen backslash n daar omdat die getint - As jy dit probeer, sal dit gee jou hierdie vinnige. Gee my 'n heelgetal tussen 1 en 3. En as ek die teenreaksie n, sou dit neem my na die volgende lyn, maar ek het net wou hulle die heelgetal te tik reg na die kolon. Jy kan sit het die teenreaksie n. Dit is nie 'n groot deal. Ja? Publiek: Vir hierdie kode, is hierdie geval een, is dat omdat dit is die eerste geval is? Omdat - LAUREN CARVALHO: Nee, nee, nee. So dit is vir my 'n heelgetal tussen 1 en 3. As n 1 is, ek druk dit. As ek vir briewe gevra het, kon ek sê gee my 'n brief tussen 'n en C. Dan sou dit die geval wees A. Publiek: [onhoorbaar]. Die saak sou net [onhoorbaar] LAUREN CARVALHO: Ja, reg. Ja? Publiek: Wat gebeur as jy wou hê meer van 'n relasionele uitdrukking? So in plaas van sê n gelyk aan 1, [onhoorbaar] n groter as 1 is in die eerste geval is? LAUREN CARVALHO: Eintlik, as ek dit nie doen nie definieer sommige van hierdie gevalle, sou dit word dra af. So eintlik, miskien is dit nie wat jy vra. LUCAS FREITAS: Ek dink sy vra of die geval was n groter as 0, geval minder as 0. LAUREN CARVALHO: Miskien is die skakelaar stelling is nie regtig wat jy wil hê te gebruik in daardie geval. LUCAS FREITAS: Die skakelaar stelling net vir die waarde, sodat jy die nagaan van die waarde is soos dit of dat. So jy kan nie eintlik sit voorwaardes. Publiek: Wat as die persoon tipes met [onhoorbaar]? LAUREN CARVALHO: Dit sou gewees het my standaard geval, wat ongelukkig jy nie kan sien nie. LUCAS FREITAS [onhoorbaar] maak hulle sien. LAUREN CARVALHO: Eintlik, weet jy wat? Kom ons gaan net om te studeer 50, en ek sal net zoom in op die skyfies op studie 50, want dit is net irriterende. So laat my eintlik gaan toestand. Dit is net gaan om te neem 'n kort rukkie. Alle regte. So, ek is jammer. Ten minste nou het ons sal in staat wees om te sien alles sonder dit af te sny. Alle regte. So as hulle in 'n 10, sou ons die standaard hier om my standaard geval, en ek wil net druk ongeldig omdat ek het hulle gevra om 'n heelgetal te betree tussen 1 en 3. Enige ander vrae? Ja? Publiek: Kom ons sê vir geval een geval drie, sê jy wou dit al die te wees dieselfde ding, so jy opgetel 'n aantal dit is nie 'n medium-nommer. In daardie geval, sou dit oorbodig? Wil jy net die teks in beide verander van hulle, of sal daar 'n paar ontslag? Is daar enige manier te kombineer [Onhoorbaar]? LAUREN CARVALHO: Daar is maniere om te kombineer hulle, maar ek dink jy kan net langs dié kombineer. So as ek nie iets te definieer vir geval twee, sou dit van toepassing op beide gevalle. O, as ek nie sit niks vir die geval een, sou dit van toepassing op beide geval een en twee. As dit sin maak. Publiek: Kan jy herhaal dat 'n mens? LUCAS FREITAS: OK. As jy basies gedoen het, soos, jy het dieselfde ding, maar jy sit nie enigiets hier, wil jy wees, hetsy vir geval een of twee geval, dit doen. Reg? En dit breek beteken dat as jy in hierdie geval, net verlaat. So dit is wat die rem beteken. So as ek net het dit gedoen, jy kyk, is dit geval een, en jy wil net dit doen. As dit was die geval twee, sou dit ook net hier te kom en dit doen. Publiek: Maar jy kan dit doen? As daar is iets vir geval twee [onhoorbaar] LAUREN CARVALHO: Ek glo nie jy kan dit doen. Ek dink nie jy kan doen om oor te slaan. Kan jy dit doen, Rob? Ek dink nie so nie. Publiek: Dit is net 'n nommer kan gaan na 'n geval, reg? Daar kan nie geval een komma twee? LUCAS FREITAS: Nee, jy kan nie. Jy kan beslis nie. LAUREN CARVALHO: Ek bedoel, die punt is dit is 'n opsie, en dit kan nie pas by jou gebruik geval, so dan moet jy sou gebruik om die as toestande. Publiek: So hoekom sou jy dit doen? Die skakelaar? LAUREN CARVALHO: Ek sou gebruik om hierdie As jy het baie omskryf - Eintlik, Lucas, is jy blokkeer. LUCAS FREITAS: Ag, jammer. LAUREN CARVALHO: As jy 'n baie gedefinieer gedrag wat jy wil hê vir elke insette, kan dit dalk 'n bietjie meer as bondige uitskryf 'n if-stelling vir elke een. Publiek: Wat beteken die breek weer beteken? LAUREN CARVALHO: Die onderbreking beteken stop. Onthou, as ek het nie hierdie breek hier, ons sou net neergeval in die volgende geval. LUCAS FREITAS: Breek beteken te kry uit die skakelaar verklaring. Want as dit is 1, ek wil om dit te druk en verlaat. Ek wil nie iets anders om te gaan. Publiek: Jy wil nie iets anders te druk. LUCAS FREITAS: Ja. Want dit is wedersyds uitsluitend. Publiek: En nie net dit gaan na die volgende geval as die eerste geval is nie waar nie? Of is dit toets al die gevalle op dieselfde tyd? LUCAS FREITAS: Nee, dit tjeks agtermekaar. Agtermekaar, ja. Nog 'n vraag, dan het ons gekry het om te beweeg sodat ons alles kan dek. Ja? Publiek: So vir die geval is, kan 'n iets gedoen behalwe net die een? Kan jy gee dit 'n reeks? LUCAS FREITAS: No LAUREN CARVALHO: Ek dink nie jy kan dit gee 'n reeks. LUCAS FREITAS: Jy kan jou nie kan nie gee dit 'n reeks. Publiek: Die saak is spesifieke [Onhoorbaar]. LUCAS FREITAS: Skakel is 'n soort van waardes. Jy doen verskillende dinge, afhangende op 'n waarde, 'n spesifieke waarde. Jy kan nie verskeidenheid nie, kan jy nie doen iets anders. Dit is net nog 'n instrument om te sien. LAUREN CARVALHO: Die meeste mense gebruik nie skakel state baie in CS50, maar dit is daar. Alle regte. So die volgende ding wat ons gaan om te praat oor die drieledige operateur. Dit is net 'n ander soort van voorwaardelike. Basies wat hier aangaan is ek vra vir 'n heelgetal is, en as n groter as 100, ek gaan om uit te druk "Hoog." As dit is nie, ek gaan om te druk "laag." So wat dit doen, is die toestand reg hier in die hakies, en jy kan soort van dink van die vraag as ek vra of dit waar is of nie. As dit waar is, ek gaan om dit te doen eers ding, en as dit is nie waar nie, ek is gaan hierdie tweede ding om te doen. Enige vrae oor die drieledige operateur? LUCAS FREITAS: Ek wil net daarop uit David is dat wanneer jy 'n toestand - LAUREN CARVALHO: Ek dink David se kyk via die lewende stroom. LUCAS FREITAS: Hy doen lewe stroom nou. So wanneer jy 'n toestand is, is jy veronderstel krulhakies te sit, net soos wat ons in 'n skakelaar verklaring hier. Ons het krulhakies hier. Vir watter omstandighede, is jy veronderstel om ook sit nie. LAUREN CARVALHO: Jy sal sien dit in die styl gids. Ons het eintlik nie die styl gids nou. Ek dink David se werk nog steeds. LUCAS FREITAS: Hy het gesê dat dit is net werk nou. LAUREN CARVALHO: O, is dit nou werk? OK. So glo vanjaar in die styl lei, selfs as jy net een lyn, jy het die te sit krulhakies in Jy hoef nie te vir die funksie van die program. En miskien moet ons net 'n break na die voorwaardes en gaan reguit die styl gids te verwyder 'n paar van hierdie dinge? LUCAS FREITAS: Ja. Het jy 'n vraag? Publiek: Nee, ek sal net wag totdat die styl gids. Publiek: Kan jy terug te gaan aan die drieledige operateur? LAUREN CARVALHO: drieledige, ja. LUCAS FREITAS: drieledige operateur basies 'n as anders stelling nie, maar in plaas van om die twee lyne te hê van kontrole 'n as en dan die anders, jy moet net een reël. So basies as ek wil 'n string te gee 'n waarde van 'n hoë of lae, en ek wil 'n hoë om te doen as n groter is as 100 of 'n lae as dit is minder, wat ek kan doen is hierdie [onhoorbaar] die string gaan wees, en dan het ek vra die program is N groter as 100? So dit is waarom ek het hierdie uitdrukking in hakies en dan die vraagteken. Ek vra, is dit groter as 100? As dit is, gaan dit hoog wees. As dit is nie, dit gaan om laag te wees. So basies wat jy dink jy vra 'n vraag, so jy sit in hakies die toestand. Dan sit jy die vraagteken want jy vra nie. En as dit waar is, is dit gaan wees in die eerste waarde [onhoorbaar] hier. As dit is nie, ek gaan om te sit die waarde wat na die kolon. Maak dit sin? Dit is ook iets wat soos 'n instrument in C, maar jy hoef nie te spesifiek gebruik. Maar CS mense gewoonlik graag wat omdat dit net spaar lyne. LAUREN CARVALHO: Dit is baie elegant. Dit het 'n baie in net een verklaring. Publiek: So het die persent teken net ongeag die resultate op die vorige lyn? LAUREN CARVALHO: O, ek is jammer. Dit persent teken is eintlik 'n plekhouer vir hierdie s. In 'n verklaring printf, jy het hierdie string hier, en dit is wat gaan druk, maar jy kan nie net sit dit is daar. Anders sou dit druk die s letterlik. So het ons 'n persent hier om te bly hierdie plek gehou word vir alles wat kom na die komma. So vir 'n string, jy het persent s. Vir 'n heelgetal, persent i. Vir 'n vlot, persent f. Jy sal sien die as ons sien meer voorbeelde. Maar miskien moet jy praat oor die styl gids vir 'n kort rukkie, nou dat dit daar is. LUCAS FREITAS: As jy na cs50.net/style, jy gaan om te sien die styl gids. Vir probleem stelle, jou telling vir die probleem stel bestaan ​​uit omvang, wat basies beteken dat as jy al gedoen die dele van die probleem stel of as jy probeer iets. Die tweede ding is korrektheid, wat middel is om jou program te doen wat dit veronderstel was om te doen, of is dit het foute, of is dit nie te doen wat dit veronderstel is om te doen. Die derde ding is ontwerp, wat beteken is jy die implementering van hierdie goed, of is gebruik jy onnodige stellings? So byvoorbeeld, as jy wil om te herhaal 'n aantal 10 keer, jy skryf van 'n lus of is jy net te doen 10 keer dieselfde verklaring, net doen kopieer en plak. So ontwerp is vir wat. En uiteindelik, jy het styl. Styl is net soos die beoordeling As jou kode lyk leesbare en soort van mooi. Dit beteken net basies is jou kode leesbaar? Sal iemand anders wat op soek was na is jou kode in staat wees om te verstaan ​​wat dit doen? Het dit kommentaar en dies meer? Kom ons praat oor die styl wat jy veronderstel is om te gebruik. Die eerste ding is kommentaar. Kommentaar is baie belangrik vir jou kode, want soms jy doen jou program, en jy weet presies wat jy wil om dit te doen wat jy nou net begin kodering, tik net 'n klomp van die C. Maar As iemand anders is op soek na is jy kode, hulle is nie van plan om in staat wees om te verstaan ​​dit, want hulle weet nie die dinge wat in jou kop, soos die pesudocode, so miskien sal hulle het 'n harde tyd te verstaan wat die kode is om te doen. So kommentaar is baie handig om te verduidelik aan iemand wat is op soek na jou kode wat dit doen, en eintlik selfs vir jou, hulle is baie handig. As jy gaan om harder en harde Psets, jy gaan om te sien dat die kode kry langer, en dan kommentaar is regtig belangrik sodat jy onthou wat elke deel van jou program doen. 'N opmerking te maak, kan jy net nie 'n streep streep en skryf dan 'n opmerking. En die hele lyn is deel van 'n opmerking, en alles wat jy skryf, dit gaan nie te wees gebruik vir jou kode. Dit is basies soos die opsteller gaan om dit te ignoreer. Is wat sin maak? Publiek: Wat doen jy weer doen 'n opmerking te skryf? LUCAS FREITAS: Dit? Die streep streep? Wanneer jy tik streep streep, wat ook al is in daardie lyn is nie van plan oorweeg moet word C. te wees Ja? Publiek: So na die kommentaar, jy net betree en begin 'n nuwe lyn? LUCAS FREITAS: Ja, presies. LAUREN CARVALHO: Die streep streep is vir 'n enkele lyn kommentaar. LUCAS FREITAS: Byvoorbeeld, hier het ons - laat my zoom in - byvoorbeeld, hier ek waarby 'n vlot, maar miskien as jy net sit dit in jou kode, soos jy het geen idee wat dit doen, soos eintlik iemand wat kyk na die kode gaan wees, soos wat die heck aan die gang is? As jy 'n opmerking te sê "skakel Fahrenheit na Celsius, dit maak baie meer sin. Jy is, soos, OK, jy is doen 'n sukses. Is wat sin maak? So is dit net iets wat mense help gereed om jou kode en ook jy in staat wees om te organiseer jou kode beter. Die tweede ding is dat jy kan doen multi-line kommentaar, so het die een kommentaar vir 'n klomp van die lyne. In plaas van om streep streep te sit, die eerste reël kommentaar, streep streep die tweede lyn, en so aan, jy kan gebruik om die streep ster. Die manier waarop jy dit doen, is dat vir die eerste reël van die kommentaar, jy gaan 'n streep star om te doen, sodat net soos dit. Net soos hier het ons die begin van 'n program, moet jy gewoonlik sit wat jy is, wat hierdie program nie, en dinge soos dat. Dit is soort van soos 'n kop vir die program. Weereens, dit is nie iets wat 'n samesteller gaan omgee nie, maar dit is belangrik om te weet wat hierdie program doen of vir ander mense om te weet wat jou program doen. So jy streep star, en dan die laaste reël jy gaan ster te doen streep in staat wees om af te sluit daardie kommentaar. So basies vir al die ander lyne, jy kan net skryf wat ook al, en dit is al wat gaan om geïgnoreer te word. En ook, net soos styl, jy sien dat elk van die lyne het 'n ster, en al die sterre is in lyn. Dit is belangrik om dinge so dat jou kode lyk mooi. Klink goed? Nou, voorwaardes. Wat Dawid het gesê dat ons moet eintlik sit in die skyfies, is dat as jy 'n soort van if-stellings of enige vorm van toestande jy moet krulhakies gebruik om te wys dat dit is wat gaan gebeur wanneer jy die toestand. Tegnies, wanneer jy 'n toestand En dan is die volgende lyn is net een line, het jy nie tegnies het nie die krulhakies te sit. Basies die opsteller sal verstaan dit in elk geval as implisiete. Maar vir CS50, vra ons julle om te sit die krulhakies net sodat jou kode is meer georganiseerde en meer leesbaar. Omdat kode kry meer as jy het nie krulhakies en so. Dit regtig slordig. LAUREN CARVALHO: Dit is presies wat Dawid net daarop gewys in my vorige skyfies. Dit werk beslis sonder die krullerige draadjies, maar vir die stilistiese redes ons gaan om dit te vra jy sit die in En wanneer jy begin hardloop style50, wat is 'n soort van die tjek vir 50 styl, sal dit jou herinner om dit te doen. LUCAS FREITAS: En 'n ander ding is onthou die krulhakies om saam te stel in elke lyn. So jy doen, byvoorbeeld, l's. Gaan na die volgende lyn, maak die krullerige stut, dan gaan jy na die volgende lyn. Inkeping, wat vier ruimtes. Dan moet jy net skryf, en dan die ander lyn, en sluit die krullerige stut. So seker wees dat beide die krullerige draadjies is in verskillende lyne. Publiek: So as hierdie kode het soos 10 anders ifs, moet dit wees 10 stelle hakies? LUCAS FREITAS: Ja, vir elkeen van hulle. Ja. So as, anders as, en so aan. Publiek: Kan jy nie Druk Tab ingekeep? LUCAS FREITAS: Ons vra jou ouens vier ruimtes te gebruik. Sommige teks editors vertaal blad as vier ruimtes outomaties. gedit nie, so jy hoef te doen ruimte ruimte ruimte ruimte. Dit is ook iets wat 'n programmeerders net oortjies, sommige programmeerders net vier ruimtes, en 'n paar ander mense ook te doen twee of drie ruimtes. Dit is net dat hier vra ons julle ouens vier ruimtes te doen. Publiek: Daar is byna beslis het op 'n manier vir gedit te wees outomaties [onhoorbaar]. Soos geen [onhoorbaar] doen dit. LUCAS FREITAS: Ja. Ek dink jy kan gaan na Instellings. Publiek: Dit maak al van daardie reeds. LUCAS FREITAS: dit nie reeds? OK. Dus net seker wees dat jy het vier ruimtes. Publiek: Het ons die krullerige te sit tussen hakies in vir loops, asook? LUCAS FREITAS: Ja. LAUREN CARVALHO: Wanneer jou vat 'n blok van die kode, net gebruik asseblief die krullerige draadjies. En voordat jy dink dat ons is net synde sticklers oor hierdie vir geen goeie Daarom, as jy ouens gaan kry tegnologie internskappe by groot maatskappye, hulle sal gee jou 'n styl gids, en hulle sal jou vertel dit is wat jou kode moet lyk. En selfs al het jy geleer om kode soos hierdie, miskien in jou internskap jy het om iets te doen heeltemal anders. Hulle het nie verwag dat jy om te voldoen om hul styl. LUCAS FREITAS: En een ding is dat jy sien hoe ek het soos x, ruimte, minder, ruimte, 0? Wanneer jy 'n operateur - dit kan wees soos plus, minus, maal, minus, groter, ongeag operateur - jy het 'n ruimte wat aan die linkerkant en die reg van die operateur. LAUREN CARVALHO: Dit is genoem binêre operande. Maak net seker dat jy altyd ruimte jou binêre operande. LUCAS FREITAS: Dit is nie 'n binêre operand. LAUREN CARVALHO: Dit is want dit neem twee. LUCAS FREITAS: O, ja. OK, die skakelaars. Eerstens, jy het om dit te sien, net soos in 'n as of anders verklaring, moet jy die krullerige stut te sit op sy eie lyn en onder die krullerige stut hier. Let daarop dat daar 'n enkele ruimte na skakelaar, net soos in as en anders Ons het 'n enkele spasie tussen dat en die hakies. So jy het om te sit. En daar is geen ruimte reg na elke van die hakies of voor die einde van die hakies. So jy sien dat dit alles saam, en ook hier. Ja? LAUREN CARVALHO: Ek dink ons nodig het om aan te beweeg. LUCAS FREITAS: So dit is deel van die styl gids wat jy vir CS50. Maak seker om te gaan na cs50.net/style en neem 'n blik op hierdie. Dit is alles baie belangrik vir jou styl telling. Laat my terug na die verklaring gaan. LAUREN CARVALHO: Ek wil eerder net gebruik style50. Ons is net gaan om te gaan reguit na loops. Alle regte. So laat ons terug na die inhoud, nou dat ons het gegaan oor die styl gids. Loops, het jy gesien dat hulle in nuuts af, en Ons gaan om te praat oor hulle in C. In 'n lus vir die, is daar drie gedeeltes aan die verklaring van hierdie lus. Jy het jou inisiëring in waar jy jou veranderlikes. Jy het jou toestand, wat om te kyk of iets ware of vals is en of die lus moet voortgaan. En jy het jou werk, wat is die opdatering van jou veranderlikes. Kom ons neem net 'n vinnige blik op sommige C-kode van hierdie lus in aksie. Wat gaan aan hier in die inisialisering, ons die opstel van i na 0. In die toestand Ons monitor of ek is minder as 10. En in die werk ons verhoog van i. So, wat sal die gevolg van dit vir lus? LUCAS FREITAS: Eintlik, die eerste van alles, julle weet nie wat ek + + is? Publiek: het met 1. LUCAS FREITAS: toegeneem met 1, ja. So, dit is dieselfde as doen ek gelyk i plus 1. En agterkom dat ons nie 'n ruimte tussen die i en die + +. So doen julle weet wat dit sal doen? Kan iemand my vertel? En miskien 'n paar lekkergoed as gevolg van wat? Publiek: [onhoorbaar] LUCAS FREITAS: OK. [Onhoorbaar] almal wys later [onhoorbaar]. Ja, dit gaan om te wys "Dit is CS50 "10 keer. LAUREN CARVALHO: Ek dink dit was in die titel van die skyfie. LUCAS FREITAS: O, ja. [Gelag] LUCAS FREITAS: dit help. LAUREN CARVALHO: So diegene is vir loops. Ons gaan 'n paar voorbeelde te sien van vir sirkelroetes later. Maar laat ons eintlik 'n blik op die tweede tipe lus jy teëkom in C, en dit is bekend as die lus. In 'n rukkie lus, jy het net 'n toestand. Die toestand word nagegaan in die begin, en as daardie toestand evalueer waar, sal die kode in die liggaam van die blok, terwyl sal voer. En die kode sal voortgaan om te voer so lank as wat toestand bly getrou. Hier is 'n voorbeeld van 'n lus in C. Ons gaan telling in te stel na 10 tot begin. Solank as wat tel is groter as 0, ons gaan hou uit te druk hierdie veranderlike hier. Ons gaan tel te Trek 'en dan gaan die toestand weer. Print, decrement, tjek die toestand weer. Hier het ons 'n voorbeeld wat betrekking op jou vraag vroeër. Ons het die persent s toe ons uit te druk 'n string, en nou dat ons uit te druk 'n int, ons het 'n persent i as ons plekhouer plaas. Die letters moet almal mooi intuïtief, is vir string, ek vir int. So as hierdie kode voer, moet jy aftel 10-0, uit te druk elke heelgetal. LUCAS FREITAS: En jy kan dink van die persent as dit voel soos 'n leë ruimte, en dan is jy om hierdie veranderlike hier in die leë ruimte. So byvoorbeeld, hier sal ek net 'n leë, en dan is ek besig om die tel net daar, die waarde van die telling. Is wat sin maak? Ek kon net nie daarvan hou printf en dan haal, tel? Sal dit werk? Publiek: No LUCAS FREITAS: Nee, want dit sal die woord "tel" eintlik druk in plaas van die druk van die waarde. Dit is hoe jy maak dit die waardes druk na die veranderlike in plaas van net die naam van die veranderlike. Enige vrae? Publiek: Hoekom het jy vir gebruik as 'n stryd met tydjie? LAUREN CARVALHO: Ek sou gebruik om 'n vir lus as ek weet presies hoeveel iterasies Ek wil my lus om te hardloop. In hierdie geval, beteken dit nie saak nie, want, Ek bedoel, ek is net probeer om te dink aan 'n baie eenvoudige voorbeeld vir hierdie skuif. Maar kom ons sê dat jy iets wil die gang te hou terwyl - LUCAS FREITAS: Byvoorbeeld, jy vra vir insette tot die persoon gee jou die reg insette. Dus, net soos terwyl die invoer is nie OK, bly vra vir dit. Of soos terwyl jy ouers gee nie jou geld, hou vra vir dit. [Gelag] LAUREN CARVALHO: Jy weet nie hoe hoeveel keer jy sal hê om dit te doen. LUCAS FREITAS: Omdat jy dit nie doen nie weet hoeveel keer dit is gaan om voort te gaan. LAUREN CARVALHO: Maar in 'n lus vir, wat jy nodig het om te weet hoeveel keer. Ja? Publiek: Net om te verduidelik, die persentasie sê dit is iets om oor te gebeur nie, die i se vir die getal, en agteroorskuisstreep n - LAUREN CARVALHO: Opdoen? Wie weet wat die backslash n beteken? Nuwe lyn, ja. Presies. LUCAS FREITAS: Jy kan dink N nuwe lyn. LAUREN CARVALHO: Nice. Publiek: Wat is wat tel Dash Dash [onhoorbaar]? LUCAS FREITAS: Telling minus minus is dieselfde ding as plus plus, maar in plaas van die verhoging, dit afneem met 1. LAUREN CARVALHO: Enige meer while lus vrae? Nee? Ag, het ons veronderstel is om te het oorgeslaan. Dit is 'n doen terwyl loop. Baie soortgelyk aan 'n lus, behalwe in hierdie geval het ons die toestand na die kode in die liggaam van die lus voer 'n keer. So het ons die kode uit te voer eerste maak nie saak wat. Toe het ons die toestand, uit te voer dit weer as die toestand is waar. Jy sal jouself vind met wanneer jy vra vir die gebruiker insette. Omdat jy altyd gaan hê om te vra een keer, en dan, afhangende van watter die toevoer van die gebruiker is, kan jy dalk te reprompt en vra weer en weer as die insette is nie wat jy verwag om dit te wees. Publiek: So dit is soos 'n vorm vir mense om te vul. LAUREN CARVALHO: Ja, presies. Jy sal vind, dink ek, in jou heel eerste Pset, jy gaan te hê gebruik om 'n goed doen lus in te samel toevoer van die gebruiker. Publiek: Afhangende van die situasie, jou terwyl sirkelroetes sal meer geneig om te hardloop dikwels as terwyl loops, soos deur een of iets? LAUREN CARVALHO: As dit die presiese - LUCAS FREITAS: Hulle moet altyd loop die presiese bedrag van tye wat jy wil dit uit te voer. Soos ons gebruik doen terwyl omdat ons regtig wou die insette ten minste een keer te kry. In terwyl loops, soms jy wil nie dit uit te voer op alle indien dit nie die geval uit te voer. So dit hang af van die ontwerp. Ek bedoel, kan jy óf gebruik doen terwyl of terwyl so lank as jou kode doen wat dit veronderstel is om te doen. LAUREN CARVALHO: Maar ek doen dink die antwoord op jou vraag is waarskynlik ja. Kom ons sê die toestand valse was. In een geval sou dit een keer te hardloop, en 'n ander geval is dit sou loop nul tye. So, ja. Enige verdere vrae? Ja? Publiek: Kan die lus toestand wees om 'n lus in terme van 'n veranderlike ander as [onhoorbaar]. LAUREN CARVALHO: Ja, dit kan enigiets wees. Waarskynlik vir die begin Psets, jy sal nie so 'n geval te ontmoet nie, maar beslis kan enigiets wees. LUCAS FREITAS: Ek dink ons hier gedoen het. LAUREN CARVALHO: Is ons? Nee? LUCAS FREITAS: Loops? Ja. LAUREN CARVALHO: Ons moet nie. Ag, het ons klaar is met loops. OK. Eintlik, want ons het al so praat veel, laat ons eintlik al navigeer oor te study.cs50.net/conditions. En jy gaan om te navigeer af om die probleme widget. Wel, eintlik, terwyl mense kry die opstel van die CS50 Studie is gaan na 'n instrument wat jou TFS sal wees gebruik om voor te berei vir die afdelings en dat julle kan gebruik as jy mis afdelings. Dit gaan 'n klomp van die skyfies te bevat, 'n paar wenke en truuks vir elke onderwerp, en 'n paar probleme praktyk met oplossings. Hoekom nie almal net 'n blik op hierdie probleem reg hier. Ek is jammer, moet ek daaraan herinner het mense skootrekenaars vandag te bring. Maar as jy nie het nie 'n skootrekenaar, dit is OK. Jy kan net stip dit neer op 'n stuk papier of kyk oor jou naaste se skouer. Kom ons probeer en skryf 'n program wat vra die gebruiker 'n raaiskoot te neem, die gemiddelde aantal kinders per gesin eenheid in die Verenigde State. Dat die getal is 2, by the way, as jy kan sien uit hierdie voorbeelde. Ons wil uit te druk gemiddelde aantal kinders per gesin in die VSA, dan is ons wil wat? Ons wil insette in te samel van die gebruiker. En dan, afhangende van wat die gebruiker se insette is, jy gaan om uit te druk óf dit is korrek of dit is verkeerd. En die heel eerste ding wat jy sal sien, as jy klik op die klein pyltjie die kern van die probleem is 'n widget sien neerskryf paar pseudokode. So jy is nie die programmering nie. Jy is net om jou idees in orde is. Is daar iemand wat wil Lucas te help kom met die regte pseudokode vir hierdie probleem? LUCAS FREITAS: Wat is die eerste ding wat dat ons waarskynlik hier moet doen? Wat dink julle nie? Publiek: [onhoorbaar] LUCAS FREITAS: Ja, OK. So, druk. Net sê die druk as die gemiddelde aantal mense? OK. Print vraag, kom ons sê. Nadat ek druk hierdie vraag, wat moet ek doen? Publiek: Kry insette. LUCAS FREITAS: Kry insette. Enigiets anders? Publiek: toestand. LUCAS FREITAS: toestand. LAUREN CARVALHO: Wat is dit toestand gaan wees? Publiek: Die aantal [onhoorbaar]. LAUREN CARVALHO: Right. LUCAS FREITAS: So wat gaan ek om te kyk in die toestand? Publiek: As dit gelyk 2. LAUREN CARVALHO: As dit gelyk 2. Presies. LUCAS FREITAS: Is daar enigiets anders wat ek moet doen? Publiek: Tel. LUCAS FREITAS: So as dit gelyk is aan 2, kom ons sê - laat my net skryf as insette gelyk 2, dan is wat ek gaan om te doen is om druk korrek is. En dan anders, ek gaan druk verkeerd. Enigiets anders? Nee? LAUREN CARVALHO: So jy - kan op die kliek nie almal het dit neer? LUCAS FREITAS: Maak dit sin? So nou, laat ons probeer om dit te kode. LAUREN CARVALHO: As jy kliek op die klein pyl, is dit eintlik spaar jou pseudokode, wat is regtig opwindend. En jy kan maak wat in kommentaar as jy wil net om jouself te herinner aan wat om te doen. LUCAS FREITAS: So byvoorbeeld, in die eerste Ek gaan om die vraag te druk, so hoe gaan ek om dit te doen, nou eintlik? printf. So printf, en die vraag is gemiddeld aantal kinders per familie in die VSA. Toe ek gaan kry toevoer van die gebruiker. So, hoe kan ek dit doen? Publiek: Kry Int. LAUREN CARVALHO: getint. LUCAS FREITAS: OK. So eerste verklaar, reg? int, kom ons noem dit n gelyk getint. En nou het die toestand. So laat my sê dat ek gaan tjek antwoord tot hier. So die eerste, indien insette, wat is n, gelyk te - hoe gaan ek dit skryf? Publiek: Gelyke gelyk. LUCAS FREITAS: Perfect. So n. En sien dat ek 'n ruimte, gelykes, gelyk, ruimte, waar is. Maar nou, wat moet ek doen? Iets baie belangrik vir styl. Die krullerige draadjies. En dan gaan ek te druk. Hoe druk ek doen? printf. Publiek: Kan dit gekapitaliseer word? LUCAS FREITAS: No Dit is veronderstel om al die klein te wees. So wat korrek is. Sou dit nie genoeg vir die printf verklaring, of ek iets mis? Publiek: New lyn. LUCAS FREITAS: New lyn, ja. En nou anders. Publiek: Is daar 'n ruimte na die printf of nie? LAUREN CARVALHO: Ons moet Gaan die styl gids. Publiek: Dit behoort nie. LUCAS FREITAS: Moet nie, OK. So anders, printf, "Dit is verkeerd." LAUREN CARVALHO: Oeps, jou lyne. LUCAS FREITAS: OK. Enigiets anders? Is dit goed lyk? LAUREN CARVALHO: Sal ons probeer om dit? LUCAS FREITAS: Ja, laat dit loop. So dit is die opstel, en dit blyk dat dit werk. Kom ons probeer om twee kinders. Dit is korrek. En nou, laat ons weer hardloop, maar nou in plaas van die plaas van twee kinders, laat ons sê dat ek gaan soos vyf te sit. Dit is verkeerd. Dus blyk dit dat dit werk. LAUREN CARVALHO: Hoekom het jy nie wys hulle Wat gebeur as jy iets vreemd, soos 'n paar letters. LUCAS FREITAS: O, ja. Kom ons maak ook seker dat. Wat as die gebruiker probeer om te mors met jou program, en hulle het net skryf, weet ek nie twee. Dit gaan weer probeer om te sê. LAUREN CARVALHO: So getint vra hulle om weer te probeer. Ons het nie het om te sorg van daardie onsself. LUCAS FREITAS: Ja. Dus, tensy ek eintlik sit 'n nommer, dit is die gang te hou my vra om weer te probeer. Publiek: Hoe het jy dit sal loop? LUCAS FREITAS: Slegs kliek die ster-knoppie. LAUREN CARVALHO: Jy moet optrek. Daar gaan jy. LUCAS FREITAS: Die ster knoppie reg daar. Ja? Publiek: Is dit vinnig [onhoorbaar] met desimale getalle te doen? LAUREN CARVALHO: Ek glo dit sal. LUCAS FREITAS: As dit doen wat? LAUREN CARVALHO: As hulle tik in 'n desimale getal, dink ek dit gaan te vinnig. LUCAS FREITAS: Kom ons kyk. LAUREN CARVALHO: Omdat dit is nie 'n int. LUCAS FREITAS: Ja. LAUREN CARVALHO: So dit is nie 'n int, Kry Int sal jou vra om weer te probeer. Publiek: So waar in die kode sou wees die desimale plek wat vra die gebruiker wat hulle het om te betree spesifiek 'n heelgetal? LAUREN CARVALHO: getint is eintlik om dit te doen vir ons. Publiek: Nee, ek bedoel as ons wou te betree [onhoorbaar] LUCAS FREITAS: Jy kan sê soos gemiddelde aantal kinders in die VSA. Ek weet nie. Ons kan sê, byvoorbeeld, "asseblief insette 'n heelgetal. " LAUREN CARVALHO: 'n heelgetal gelyk na die gemiddelde aantal. Ek bedoel, dit is net hoe jy woord om dit, reg? LUCAS FREITAS: Ja. Dit is nie deel van die werklikheid kodering. Dit is meer van soos watter jy gaan om te wil skryf in jou program. Publiek: Hoe sal ons hardloop dit as dit was eintlik in gedit [onhoorbaar]. In plaas van druk speel? LUCAS FREITAS: Ons sal eerste stel nie. Ons kan dit doen deur te doen make en die naam van die lêer. En dan dit te doen, sal ons dot streep doen en die naam van die program. Publiek: Ek dink wat ek bedoel was as wou ons die program om te reageer op hulle verkeerd is, ongeldig inskrywing, jy moet nie sit in - LUCAS FREITAS: Ons sal nie in staat wees om te doen nie omdat die kode van hierdie sê Probeer kom uit Kry Int wat 'n funksie wat reeds geïmplementeer vir ons via die CS50 biblioteek, en aangesien dit is reeds daar geïmplementeer is, het ons kan nie net [onhoorbaar]. LAUREN CARVALHO: As jy nie gebruik nie Getint, dan kan jy dit doen. LUCAS FREITAS: Ja. Maar as jy met getint, jy kan nie. Enige ander vrae? Publiek: Kan jy gegaan het met soos GetFloat en dan in staat wees om te sit dit in 'n desimale? LUCAS FREITAS: Ja. Publiek: OK. Dan moet jy net kon insette dryf 'n leeftyd - LAUREN CARVALHO: Ja. Presies dieselfde, behalwe 'n dryf in plaas van 'n int. LUCAS FREITAS: Sit dit hier en dan GetFloat daar. Publiek: As jy wil sien of gesien het - LAUREN CARVALHO: ons het nog nie daar gekry het. Publiek: - ongelykheid met doen dryf nie [onhoorbaar] Publiek: Wat beteken die kommapunte nie? LAUREN CARVALHO: Die kommapunt net beteken dat hierdie stelling is voltooi, en ons gaan om te gaan na die volgende skyfie. Publiek: So is dit nodig elke keer? LAUREN CARVALHO: Ja. Wel, OK, so nie vir hierdie toestande, want hulle is vat iets. So basies as iets wat veroorsaak dat jy dan 'n krullerige stut blok, sit nie 'n kommapunt aan die einde. LUCAS FREITAS: Maar alles anders, ja. Wanneer jy klaar is 'n verklaring, sit die kommapunt. En as jy kommapunte vergeet nie, die samesteller gaan kwaad vir jou te kry, en jy gaan te hê om te probeer om dit op te los. LAUREN CARVALHO: As ek 'n kommapunt hier, sou dit stop, en ek sou nooit uit te voer wat is binne, op die pad. So dit is een van daardie algemene foute. Publiek: Altyd uitvoering. LAUREN CARVALHO: Ja. In hierdie geval, sou ons altyd voer wat die binnekant. Publiek: Jou styl [onhoorbaar] heg wat vir jou, gedink het. LAUREN CARVALHO: O, dis waar. Publiek: [onhoorbaar] enkele lyn ding [onhoorbaar] Gehoor: Ja? Publiek: Kan jy verskeie insette in een lyn? Dus, net soos jy kan vra gebruikers twee dinge te druk? LAUREN CARVALHO: Nie gebruik - LUCAS FREITAS: No Kom ons sê dat ek wil ook hierdie heelgetal m te kry. Ek het om dit te doen in 'n ander lyn. Publiek: As jy was om te hardloop dat hoe [onhoorbaar]? Dit sou die vinnige druk daar [onhoorbaar] en dan sal jy een tree en - LAUREN CARVALHO: Wel, dit loop. Ek bedoel, daar is niks stop ons van net loop dit en sien wat sou gebeur. LUCAS FREITAS: Ek dink dit is gaan kla by ons omdat ons dit nie gebruik - LAUREN CARVALHO: Oeps. LUCAS FREITAS: Dit het gekla by ons reg nou, want ons is nie die gebruik van hierdie veranderlike, maar as ek gedoen het, byvoorbeeld, n is gelyk gelyk aan, en m is gelyk aan gelyk aan, wat sal dan gebeur in hierdie geval? Wat sou hierdie program te doen? Publiek: Ek is net wonder hoe dit sou - LAUREN CARVALHO: Sy wil net om te weet hoe dit lyk soos, dink ek, reg? So het dit een van hulle, en dan dit het die tweede een. Ek dink ons ​​moet beweeg, want ons het nog 'n Skyfie vertoning om voor te gaan - wil jy te trek wiskunde? LUCAS FREITAS: Ja, wiskunde. LAUREN CARVALHO: Gee my net 'n sekonde. Daar is 'n paar verskillende numeriese veranderlikes in C. numeriese data in C kan in verskillende tipes geklassifiseer word, en dit is die mense wat jy sal sien die meeste. En int is 'n hele aantal. Jy kan nie 'n desimale. In die toestel, neem dit 32 stukkies 'n int te stoor. 'N float kan hê desimale. Dit neem ook 32 stukkies te stoor 'n float in die toestel. 'N dubbel is 'n getal met 'n desimale punt wat neem 64 stukkies om dit te stoor, wat beteken dat jy net kan groter presisie omdat nie meer kan hê - wat noem jy dit? LUCAS FREITAS: Ja, dis meer. LAUREN CARVALHO: Meer plekke na die desimale punt. En 'n lang lang is 'n hele aantal dit neem 64 stukkies seer dit in die toestel. LUCAS FREITAS: So dit kan wees groter as ints kan wees. LAUREN CARVALHO: Die ding oor data tipes in C is dat hulle vertel wat soort van data wat jy kan stoor in jou veranderlike. Hulle vertel hoe jy kan gebruik om hierdie veranderlike in jou program. Dit is baie belangrik om net dop te hou van wat data tipe wat jy gebruik, en indien jy hoef te gooi van 'n data tipe na 'n ander, maak seker dat jy weet presies wat gebeur wanneer daardie beslissende plaasvind. En jy sal 'n voorbeeld later sien in hierdie skyfies van 'n fout wat kan voorkom. Kom ons neem 'n blik op 'n paar wiskunde in C en dink regtig versigtig, dink ek, oor wat gaan aan toe hierdie wiskunde plaasvind. In die heel eerste lyn, wat is gebeur wanneer ek verklaar x? Publiek: Jy laat x iets te wees? LAUREN CARVALHO: Ja. Wel, ek is regtig vra die bedryfstelsel stelsel vir 32 stukkies van die geheue, reg? In wat kan ek 'n int stoor, en Ek gaan dat int x te bel. LUCAS FREITAS: Eintlik gaan in die geheue en die vind van 'n plek wat 32 stukkies en gesegde, hey, ek wil hierdie ruimte, en dit gaan x genoem te word. So jy is net mooi veel bevinding 'n boks in jou geheue te winkel waardes vir x. LAUREN CARVALHO: En dan het ek inisialiseer x, wat beteken dat ek net die stoor van die waarde van 2 in daardie plek, wat stuk geheue, dat ons bedryfstelsel gevra stelsel vir. En hier wat ons doen, is ons is eintlik verklaar en initializing y in een lyn in plaas van in twee lyne soos ons gedoen het tot hier, Dit is ook 'n heeltemal fyn, Ons is toevoeging van 1 tot x, en ons is die stoor wat waarde in y. LUCAS FREITAS: So basies wat hierdie lyn nie, is dit nou bevind 'n boks vir y, en dan sy waarde, die ding wat jy gaan die binnekant van die boks te sit, is gaan die waarde van x plus 1 te wees. So het dit hierdie boks vir y. Dit raak die waarde van x, lyk hier, en sien dat dit 2. Sit dit daar, plus 1, so dit plaas 'n 3 daar. Is wat sin maak? So y sou wees 2 in hierdie geval. LAUREN CARVALHO: Alle reg, cool. Ons het 'n paar Daarbenewens, so laat ons nou dink verdeeldheid in C. Hier Ek is verklaar en initializing n float genoem antwoord en deel 1 deur 10, en dan is ek druk die antwoord tot twee desimale plekke. En let hier, in my printf verklaring, wanneer ek wil iets te druk twee desimale plekke,% 0,2 f wat ek wil gebruik. So die punt 2 net sê Ek moet twee plekke na die desimale gedruk. Nou, wat gaan gebeur As ek loop hierdie kode? Is daar iemand het 'n idee? Wat sou druk? LUCAS FREITAS: Wat is ons verwag om te kry. LAUREN CARVALHO: Wat doen ons wil hê, eerste van almal? LUCAS FREITAS [onhoorbaar] LAUREN CARVALHO: 0,1, ja. Maar wat sal druk? Publiek: [onhoorbaar] LAUREN CARVALHO: Wel, nee, eintlik. Dit is wat ek praat oor die rede waarom jy moet baie versigtig om tred te hou jou data tipes. So, wat data tipe is dit? Is 'n int, reg? Daar is geen desimaal. 10 is ook 'n int. Daar is geen desimaal. As ek deel 'n int deur 'n int, ek kry 'n int wat nie 0,1 nie, want ints kan nie 'desimale plekke, maar net 0. Omdat 'n int net kapt van die desimale plekke. LUCAS FREITAS: So wanneer jy dit doen bedrywighede met ints, gaan jy kry 'n int as die antwoord. So basies, wat die rekenaar doen, is dit verdeel 1 deur 10, en dit kry 0,1. Maar dan is dit soos, wag, dit is veronderstel 'n heelgetal te wees, sodat jy net ignoreer die 0,1, so dit is nou net 0. LAUREN CARVALHO: So wanneer ek druk hierdie uit, ek kry 0,00 eerder as 0,10. LUCAS FREITAS: Is wat sin maak? LAUREN CARVALHO: Dit is soort ongelukkige, reg? LUCAS FREITAS: So, hoe kan ons dit regmaak? LAUREN CARVALHO: Kom probeer en op te los nie. Hier is 'n voorbeeld van waar ek gooi selfs die 1 en die 10 tot dryf. So nou, 1 is nie meer 'n int. 1 is 'n float. By the way, dit is net die sintaksis vir wanneer jy wil gooi van die een data tipe na 'n ander. Jy kan net die data tipe in hakies en dat die net voorafgaan die waarde wat jy gooi. So hier, ek deel 'n float deur 'n float n float antwoord te kry. En ja, dit sal in Trouens druk 0,10. Is wat sin maak? LUCAS FREITAS: So tipe beslissende is net omskakeling van een tipe na die ander. So dryf 1 is eintlik 1,000. Nie presies nie, maar dit is iets met desimale plekke wat is eintlik 1. Is wat sin maak? Ja? Publiek: Wat gebeur as jy het float antwoord gelyk 1,0 gedeel deur 10? LAUREN CARVALHO: jy eintlik gaan om te sien dat in die volgende skyfie. Dis eintlik ons ​​volgende skuif. Dit is eintlik 'n mooier as tik gooi, dink ek. So het hierdie twee dryf net deur aard van die feit dat hulle het desimale plekke. Ja? Publiek: Wat gebeur as jy het [onhoorbaar] gedeel deur 10? LAUREN CARVALHO: Eintlik 'n float gedeel deur 'n int eintlik gee jou 'n dryf, sodat fyn sal werk. Wag, het almal verstaan ​​dit? Omdat dit gaan om 'n werklik groot deal in Pset1, eintlik. Ja? Publiek: Kan jy net vinnig gaan oor die rooi deel? LAUREN CARVALHO: Die rooi deel, ja. Lucas, wil jy? LUCAS FREITAS: OK. So onthou dat die persentasie is 'n plekhouer. Dit is soos 'n leë ruimte. So laat ons probeer om alles te verstaan wat gaan hier aan. Persent beteken dat dit 'n tydelike aanduiding. Dan het jy die f, wat beteken dat hierdie plekhouer is vir 'n float. Die laaste ding wat ons hier het is 'n 0,2, wat beteken dat ek wil twee te hê desimale plekke vir die float. As ek moes net% f, hulle sal sit 'n klomp van die desimale plekke. So ek kan net 0,2 of 0,1 of 0,5, of wat ook al, en dit gaan om dit te sit aantal desimale plekke. Die enigste ding is dat as jy soos ' 0,100 of .1,000, dit is nie eintlik gaan al daardie desimale plekke om te sit omdat dit nie genoeg geheue het dat presisie te hê. Enige ander vrae? Ja? Publiek: So dryf net toelaat om te gaan buite heelgetalle? LUCAS FREITAS: Ja. LAUREN CARVALHO: Wel, 'n float net kan jy desimale plekke te hê. LUCAS FREITAS: Dit beteken net dat jy nou kan desimale getalle. Publiek: Hoekom sal ons ooit gebruik heelgetalle? LUCAS FREITAS: Hoekom sou jy heelgetalle gebruik? Miskien as jy tel 0-10, jy wil om werklik te gebruik om 'n heelgetal. Jy hoef nie 'n float te gebruik. In sommige gevalle, kan jy dit nie doen nie moet eintlik - LAUREN CARVALHO: Miskien is jy wil nie desimale. LUCAS FREITAS: Miskien is jy dit nie doen nie wil 'n float te gebruik. LAUREN CARVALHO: Die ander ding is, onthou, beide het 'n float en 'n int Neem 32 stukkies om hulle te slaan, en miskien jy wil nie stukkies te mors op die desimale plekke. LUCAS FREITAS: Ja. Dus, net soos, net dink oor hierdie. Jy het 32 ​​stukkies vir beide 'n int en 'n float. Vir 'n int, al daardie 32 stukkies gaan na die heeltallige deel. As jy 'n float gebruik met 32 ​​stukkies, jy 'n deel van die geheue wat gebruik word vir die aantal, vir die volle getal, en die ander deel wat gebruik word vir die desimale plekke. So dit beteken dat jy nie kan kry om te baie groot getalle met dryf omdat die float is reeds met behulp van 'n baie geheue vir die desimale plekke. Ja? Publiek: Dit is die eerste antwoord, wat presies dit te doen? Is dit die opstel van die waarde van float gelyke aan daardie plekhouer te wat jy kan onthou dit in die volgende lyn? Dit sê dryf antwoord. LUCAS FREITAS: Ja. So, float antwoord beteken jy kry nou 'n bietjie emmer in die geheue wat het 'n vlot, en wat gaan genoem te word antwoord. So dit is wat float antwoord nie. En dan sê jy dat die binnekant van hierdie, gaan jy om te sit Die gevolg van hierdie. So jy gaan om te doen 1.0 gedeel deur 10.0, jy 0,1, en dan kan jy wat binne antwoord. LAUREN CARVALHO: So in een lyn, ons is verklaar en initializing hierdie float genoem antwoord. LUCAS FREITAS: Interessant genoeg, hoewel Dit is net een lyn, dit doen verskeie operasies. Dit is net 'n manier van C verhuring jy gebruik minder code. Dit is dieselfde as die drieledige operateur, hoe jy kan net nie 'n [Onhoorbaar] in een lyn. Dit is eintlik dieselfde ding doen as doen float antwoord, kommapunt, en beantwoord dan gelyk, maar in plaas van maak jy twee lyne vir wat, dit is soos 'n kortpad. Ja? Publiek: So as jy hardloop het, dit sou 0,10 wees? LUCAS FREITAS: Ja. Ja? Publiek: Is beantwoord eintlik kode, of is dit net die naam? LAUREN CARVALHO: Dit is eintlik kode. Dit is wat ons gaan ons veranderlike te noem. Publiek: So dit is net 'n naam [onhoorbaar]. LAUREN CARVALHO: Ja. Ek kon gesê het float x gelyk aan 1,0. LUCAS FREITAS: Die ding is dat die naam van die veranderlike iets wat jy gebruik. Dit is belangrik vir jou. Vir die werklike program, die enigste ding wat saak maak is die waarde wat jy het binne-in die emmer. Die rede waarom jy veranderlikes en name van veranderlikes is, sodat jy wil weet wat jy doen het met, soos watter soort data wat jy toegang op 'n tyd. Maar vir die kode self, as jy bel dit beantwoord of 'n vraag of enigiets nie, pretty much, beteken dit nie saak nie. Dit maak nie saak nie. Solank as wat jy konsekwent in elke voorkoms en dit sodat jy dit noem iets anders. Ja? Publiek: Doen die veranderlikes verder gaan as die funksie? Soos as jy 'n bracket te skep [Onhoorbaar], kan jy net [Onhoorbaar] weer beantwoord? LAUREN CARVALHO: No Publiek: [onhoorbaar] LAUREN CARVALHO: No Dit sou buite die omvang wees van hierdie spesifieke veranderlike. En eintlik, dit is soort van interessant, want wanneer ons dinge soos lusse of hierdie as voorwaardes, as jy 'n veranderlike verklaar in 'n ander stel van krullerige draadjies, Dit was regtig net bestaan binne daardie krullerige draadjies. Publiek: Een laaste opmerking oor die [onhoorbaar] dryf. Hoekom sou jy ooit wil ints te gebruik? Dit is meer van 'n kant nota as niks nie, maar jou rekenaar is aansienlik beter hanteer ints as wat dit is vir die hantering van dryf. Dit is soos 'n bevel van grootte vinniger. So as ons net hanteer net dryf, dinge sou wees om 'n baie stadiger. LAUREN CARVALHO: Eintlik, dit lyk asof daar 'n probleem met balle te wees. LUCAS FREITAS: Kind van die rede vir dat jy kan dink, is hoe in binêre jy heelgetalle kan verteenwoordig deur 0's en 1's. LAUREN CARVALHO: Dis die volgende ding. LUCAS FREITAS: OK. Awesome. LAUREN CARVALHO: Slegs hou dat denke. LUCAS FREITAS: OK, ek sal vertel later. LAUREN CARVALHO: Voor ons by watter Lucas is net sê, operateur voorrang. Dit is gesonde verstand. Julle het dit gedoen genoeg nie. So, net as iets is in hakies, dit sal eers gebeur nie. Dit is vermenigvuldiging voorrang oor Daarbenewens, aftrek, dinge soos dat. So eintlik, net nie almal wil vertel my wat nommer een eintlik evalueer aan? Publiek: 27. LAUREN CARVALHO: 27? Ja. LUCAS FREITAS: Kom ek gee kerse aan mense. LAUREN CARVALHO: Alle reg. Wat van nommer twee? Wat van nommer twee? Publiek: 22. LAUREN CARVALHO: 22, ja. Ek weet nie wat dit het. Nommer drie? Publiek: 10. LAUREN CARVALHO: 10, ja. Cool. So modulo. Lucas, wil jy modulo te verduidelik? LUCAS FREITAS: Modulo is dit operateur Dit is eintlik baie nuttig vir 'n n klomp van die probleme. As ek dit doen 55 modulo 10, wat dit doen hierdie kom ons sê wat ek wil verdeel 55 deur 10. Wat kry ek? Dit voel net soos as ek eintlik net ' doen die afdeling, wat is die eerste keer dat ek die heelgetal? Publiek: 5. LUCAS FREITAS: 5. En dan is die res 5, reg? So dit is soos 5 keer 10 plus 5. Basies, wat modulo nie, dit probeer om hierdie getal deur hierdie een, en dit sien wat die res van die afdeling. LAUREN CARVALHO: So is dit net terugkeer van die res. So nommer een is wat? 5. Nommer twee? Publiek: 3. LAUREN CARVALHO: 3. Nommer drie? 0. En vier is 1. Presies. LUCAS FREITAS: eenvoudig, reg? LAUREN CARVALHO: Hoekom het ons nie slaan hierdie net omdat ons het nie regtig tyd, en mense lyk om te verstaan. So hier is wat Lucas was net praat. LUCAS FREITAS: Nog 'n rede hoekom ek ints plaas van dryf is sou gebruik wat dryf is baie vaag. En hoekom is hulle vaag? David het gesê dat 'n heelgetal te verteenwoordig, Byvoorbeeld, ons gebruik 0's en 1's, reg? En dan moet jy basies doen om die vermenigvuldiging, doen alles wat bedrywighede te weet wat desimale getal jy het in plaas van die program nie. Wat gebeur nou as ek probeer desimale punte te sit? Eintlik, byvoorbeeld, as ek die nommer soos 3,33333? Dit voel soos 10 meer as 3. Hoe gaan ek te stoor al die 3 is dat ek na daardie? Dit is regtig moeilik, reg? Jy kan nie net vir die rekenaar, hey, ek het 'n 3 en dan doen jy wat vir ewig. Eintlik is die rekenaar is nie slim genoeg vir hierdie. So basies al jou rekenaar doen, is dat dit probeer om soveel syfers te sit as dit kan tot die geheue wat jy het. So kom ons sê dat dit gaan sê 3,3333, en dit is dit. So dit is nie in staat om werklik te druk presies wat dit float is. LAUREN CARVALHO: Ons het 'n beperkte aantal van stukkies, wat beteken dat nie elke desimale getal gaan wees kan word presies verteenwoordig. En so in hierdie voorbeeld, as ons uit te druk 0.1, ons is nou druk uit 20 plekke. LUCAS FREITAS: Net soos ek is vertel julle ouens, kan jy enige aantal sit. Maar as jy net het die twee plekke, jy kry 0,10, maar as jy sit 20 plekke, dit gaan jou te wys 'n klomp van 's, want dit is wat jy kan sit in die geheue, reg? Maar hier, tot die 0, en dan net sit dit 'n klomp van ewekansige getalle. Dit is soort van soos 'n paar - LAUREN CARVALHO: Dit is omdat ons is nie in staat om hierdie desimale verteenwoordig juis met die aantal van stukkies wat ons het. LUCAS FREITAS: En dan is die rekenaar is basies gee jou 'n asblik nommer. Dit is nie eintlik die waarde van die getal. Publiek: Dit is so na as dit kan kry [onhoorbaar] gebruik van die [onhoorbaar]. LAUREN CARVALHO: So het die implikasie van hiervoor is dat kom ons sê dat in plaas van synde 0.100014, wat ook al, Wat as dit was 0,0999 - Wel, OK. Kom ons maak dat die werklike antwoord hierdie was 0,9999999. Dit is baie naby aan 1 nie, maar dit is nie presies 1. Dit is 0,99999. Dit beteken dat as ek daardie 0,999, En ek het dit aan 'n int, ek kry 0. Ek kry nie 1. LUCAS FREITAS: want onthou, beslissende van float te int, jy moet net ignoreer al die desimale plekke. Jy moet net ignoreer. Daar is nie so iets soos afronding of loop af wanneer jy persoon geklassifiseer. Eintlik is daar hierdie funksie wat doen afronding, wat baie belangrik, maar jy dink net dat wanneer jy doen typecasting, dit is net gaan alles te verwyder. So selfs as jy het 0,99999, gaan dit om net te gee 0 as jy typeren [Onhoorbaar] 'n heelgetal. LAUREN CARVALHO: So net werklik bewus swaai punt in presisie, veral wanneer jy begin dryf te gebruik in Pset1. Maar die wandeling deur moet waarsku julle van wat as goed. LUCAS FREITAS: En eintlik is dit regtig hard, byvoorbeeld, as ek dit gedoen float antwoord 1 is gelyk aan 1,0 oor 10, en dan dryf antwoord 2 gelyk aan 10,0 oor 100.0. Hulle is dieselfde nommer, reg? 0.1, reg? 1 meer as 10 of 10 meer as 100. Maar nou as ek probeer om die gelykheid te sien, soos as antwoord 1 is gelyk te beantwoord 2, miskien is dit nie eintlik gaan dieselfde ding wees. So dryf is soort van soos dit. Hulle is soos om gelykheid.