1 00:00:00,000 --> 00:00:07,170 2 00:00:07,170 --> 00:00:09,100 >> LUCAS FREITAS: OK, jeg gætte nu er vi bor. 3 00:00:09,100 --> 00:00:11,220 Velkommen til CS50 Supersection. 4 00:00:11,220 --> 00:00:12,880 Vi er mindre behagelige. 5 00:00:12,880 --> 00:00:13,870 Mit navn er Lucas Freitas. 6 00:00:13,870 --> 00:00:16,230 Jeg er en CS50 hoved TFs. 7 00:00:16,230 --> 00:00:17,523 Det er Lauren. 8 00:00:17,523 --> 00:00:19,002 >> LAUREN CARVALHO: Hej, jeg hedder Lauren. 9 00:00:19,002 --> 00:00:21,330 Jeg er også chef TF til CS50. 10 00:00:21,330 --> 00:00:24,730 >> LUCAS FREITAS: I dag skal vi bare at give et overblik over hvad alt hvad du 11 00:00:24,730 --> 00:00:28,440 fyre har lært i uge et, forhåbentlig om at give jer en god 12 00:00:28,440 --> 00:00:32,580 mening for hvad du bør vide for problemet indstillet en sådan. 13 00:00:32,580 --> 00:00:34,120 >> Bare et par annonceringer. 14 00:00:34,120 --> 00:00:36,490 Først og fremmest, kontortid. 15 00:00:36,490 --> 00:00:41,580 Kontortid sker fra mandag til torsdag i forskellige huse i 16 00:00:41,580 --> 00:00:43,450 Annenberg hver dag. 17 00:00:43,450 --> 00:00:46,680 De er en meget god ressource for dig fyre til at komme og stille spørgsmål, og 18 00:00:46,680 --> 00:00:49,470 tale til TFS og endda udveksle ideer med andre studerende. 19 00:00:49,470 --> 00:00:55,420 Så sørg for at bruge denne ressource i din favør. 20 00:00:55,420 --> 00:00:59,790 >> Den anden ting er den CS50 Appliance. 21 00:00:59,790 --> 00:01:01,390 For den sidste [uhørligt] 22 00:01:01,390 --> 00:01:04,180 du fyre ikke har til rent faktisk at har et apparat. 23 00:01:04,180 --> 00:01:06,910 Du skal bare gjorde alt i din personlige computer. 24 00:01:06,910 --> 00:01:10,330 Men for at dette problem, du rent faktisk har at have en virtuel maskine, så 25 00:01:10,330 --> 00:01:14,680 Sørg for at hente CS50 Appliance og sætte det op. 26 00:01:14,680 --> 00:01:18,670 >> Og den tredje ting er at være sikker på at starte problem indstillet ASAP bare 27 00:01:18,670 --> 00:01:22,740 fordi det er meget lettere at finde hjælpe, når du er i 28 00:01:22,740 --> 00:01:23,730 begyndelsen af ​​ugen. 29 00:01:23,730 --> 00:01:27,540 Fordi folk har en tendens til at vente, indtil sidste sekund for at starte problemet sæt, 30 00:01:27,540 --> 00:01:29,730 og så skal du gå til kontortid, og der er en masse mennesker. 31 00:01:29,730 --> 00:01:33,020 Hvor hvis du går på mandag, er du nødt at se, at du kan tale med TFs 32 00:01:33,020 --> 00:01:35,870 temmelig meget for hele natten, og de vil være mere end 33 00:01:35,870 --> 00:01:37,790 glade for at hjælpe dig. 34 00:01:37,790 --> 00:01:40,720 >> LAUREN CARVALHO: Kan jeg bare stoppe du for bare en sekund? 35 00:01:40,720 --> 00:01:43,330 Har alle været i stand til at hente Den CS50 Appliance? 36 00:01:43,330 --> 00:01:44,255 Har folk prøvet? 37 00:01:44,255 --> 00:01:47,120 >> LUCAS FREITAS: For at downloade, ved måde, kan du få vejledning på 38 00:01:47,120 --> 00:01:48,045 cs50.net/appliance. 39 00:01:48,045 --> 00:01:48,817 >> LAUREN CARVALHO: Right. 40 00:01:48,817 --> 00:01:53,120 Og det tager lidt tid for vores systemadministrator for at få dig en licens 41 00:01:53,120 --> 00:01:55,450 nøgle, så meld dig til gratis prøveversion først. 42 00:01:55,450 --> 00:01:59,080 På den måde har du det i 30 dage, og derefter vente på din licens nøgle 43 00:01:59,080 --> 00:02:02,650 der bør give det til dig i et år. 44 00:02:02,650 --> 00:02:04,100 >> LUCAS FREITAS: Først og fremmest, Lad os snakke lidt 45 00:02:04,100 --> 00:02:06,180 om CS50 Appliance. 46 00:02:06,180 --> 00:02:10,770 Den CS50 Appliance er faktisk en virtuel maskine, som du vil 47 00:02:10,770 --> 00:02:15,040 køre i din egen computer, som er dybest set kører en anden computer 48 00:02:15,040 --> 00:02:16,010 inde i din egen computer. 49 00:02:16,010 --> 00:02:16,800 Hvilket er temmelig cool. 50 00:02:16,800 --> 00:02:19,420 Og faktisk det bruges overalt. 51 00:02:19,420 --> 00:02:23,150 Folk, der til tech ville vide, at dette bruges hele tiden. 52 00:02:23,150 --> 00:02:23,250 dig? 53 00:02:23,250 --> 00:02:26,200 Kan have flere computere i én enhed. 54 00:02:26,200 --> 00:02:27,760 >> Lad os faktisk tage et kig ved Appliance. 55 00:02:27,760 --> 00:02:32,680 56 00:02:32,680 --> 00:02:36,640 Når du går til Appliance efter registrering, er du nødt til at 57 00:02:36,640 --> 00:02:42,035 sætte dit navn og log ind på Harvard så vi kan få dig alle registreret. 58 00:02:42,035 --> 00:02:46,570 Du kommer til at se dybest set bare et tapet, og derefter hjem og papirkurven, 59 00:02:46,570 --> 00:02:48,980 og så disse små ikoner. 60 00:02:48,980 --> 00:02:51,930 Denne tre ikoner er faktisk den mest vigtige ting, du kan have i 61 00:02:51,930 --> 00:02:53,000 din Appliance. 62 00:02:53,000 --> 00:03:00,270 >> Den første er gedit, hvilket er en tekst redaktør, ligesom Notesblok eller lignende 63 00:03:00,270 --> 00:03:01,440 enhver form for tekst editor. 64 00:03:01,440 --> 00:03:09,750 Det er bare noget, som vi bruger til at skrive kode og derefter gøre ting med det. 65 00:03:09,750 --> 00:03:11,770 >> Den anden ting, som vi har her er Chrome. 66 00:03:11,770 --> 00:03:13,910 Så hvis du har brug for at bruge internettet i Appliance, der er 67 00:03:13,910 --> 00:03:15,030 hvad du kan bruge. 68 00:03:15,030 --> 00:03:22,000 >> Og den tredje ting er terminalen, som faktisk er meget sød. 69 00:03:22,000 --> 00:03:26,420 Folk normalt er slags bange for terminalen, fordi det er denne meget 70 00:03:26,420 --> 00:03:32,320 gammeldags ansøgning, hvor du bare dybest set skrive alt med 71 00:03:32,320 --> 00:03:32,940 dit tastatur. 72 00:03:32,940 --> 00:03:34,730 Der er ikke en masse interaktion med din mus. 73 00:03:34,730 --> 00:03:39,780 Men faktisk terminalen gør meget gode ting. 74 00:03:39,780 --> 00:03:43,990 >> Først og fremmest, lad os bare gå igennem nogle kommandoer, som du 75 00:03:43,990 --> 00:03:48,765 kan bruge i terminalen. 76 00:03:48,765 --> 00:03:51,995 >> LAUREN CARVALHO: Og velkommen til at stoppe os, hvis du har spørgsmål. 77 00:03:51,995 --> 00:03:52,830 >> LUCAS FREITAS: Ja. 78 00:03:52,830 --> 00:04:01,950 Så den første kommando, at vi har for terminalen er ls. 79 00:04:01,950 --> 00:04:06,450 ls dybest set betyder liste alt, alt filer og alle de direktører, 80 00:04:06,450 --> 00:04:09,540 at jeg har på det sted, at jeg er på. 81 00:04:09,540 --> 00:04:15,200 Så hvis jeg gør ls her, jeg kommer til at se at jeg har nogle mapper. 82 00:04:15,200 --> 00:04:18,670 Jeg har på skrivebordet, downloads, logs, og vhosts. 83 00:04:18,670 --> 00:04:21,260 Det er i blå, fordi de er alle mapper. 84 00:04:21,260 --> 00:04:24,160 >> Så har du nogle andre filer. 85 00:04:24,160 --> 00:04:27,840 Du har ligesom goddag og hello.c, som er blot filer, og de er i 86 00:04:27,840 --> 00:04:28,910 forskellige farver. 87 00:04:28,910 --> 00:04:33,960 Så dette er en meget vigtig kommando bare du kan se, hvad er de filer, 88 00:04:33,960 --> 00:04:37,690 og mapper, som du har i den mappe, der 89 00:04:37,690 --> 00:04:39,410 du er på i terminalen. 90 00:04:39,410 --> 00:04:44,580 Når du ser jharvard @ apparat og så lille symbol der, 91 00:04:44,580 --> 00:04:49,185 tilde, det betyder blot, at det er mappe, at du er i øjeblikket. 92 00:04:49,185 --> 00:04:52,970 >> LAUREN CARVALHO: Så skrive ls er næsten som at klikke på mappen 93 00:04:52,970 --> 00:04:57,380 der er opført lige dér, i den viser du alt indhold, der er 94 00:04:57,380 --> 00:04:58,886 inden for denne mappe. 95 00:04:58,886 --> 00:05:04,232 >> PUBLIKUM: Er der tekst efter hello.c? 96 00:05:04,232 --> 00:05:10,070 >> LAUREN CARVALHO: Åh, kan du ikke se, at fordi det er blå. 97 00:05:10,070 --> 00:05:12,490 >> LUCAS FREITAS: Der står logs og vhosts. 98 00:05:12,490 --> 00:05:14,450 >> LAUREN CARVALHO: Det er bare andre mapper. 99 00:05:14,450 --> 00:05:16,890 Undskyld, det er virkelig svært at se. 100 00:05:16,890 --> 00:05:19,090 Måske hvis vi slukkede lyset? 101 00:05:19,090 --> 00:05:23,002 Colton, du ønsker at prøve og finde den lyskontakt? 102 00:05:23,002 --> 00:05:24,960 Undskyld. 103 00:05:24,960 --> 00:05:25,675 Jeg tænkte ikke over det. 104 00:05:25,675 --> 00:05:27,340 >> LUCAS FREITAS: Men det er dybest set - 105 00:05:27,340 --> 00:05:30,310 yeah, hvis du kunne - 106 00:05:30,310 --> 00:05:32,278 >> LAUREN CARVALHO: Zoom på din skærm. 107 00:05:32,278 --> 00:05:34,738 >> LUCAS FREITAS: Jeg gør ikke har denne funktion. 108 00:05:34,738 --> 00:05:35,988 >> LAUREN CARVALHO: [uhørligt]. 109 00:05:35,988 --> 00:05:39,528 110 00:05:39,528 --> 00:05:40,001 OK. 111 00:05:40,001 --> 00:05:44,270 Tja, der er bare en masse af naturligt lys i dette rum så godt. 112 00:05:44,270 --> 00:05:48,726 >> LUCAS FREITAS: Lad os bare antage, at Der er to andre biblioteker der. 113 00:05:48,726 --> 00:05:49,780 >> LAUREN CARVALHO: Bare huske med os. 114 00:05:49,780 --> 00:05:54,200 Dette er den eneste del, som du vil kigge på terminalen. 115 00:05:54,200 --> 00:06:00,160 >> LUCAS FREITAS: Den næste kommando er dybest set måske du ønsker at organisere 116 00:06:00,160 --> 00:06:01,080 dine filer - 117 00:06:01,080 --> 00:06:05,015 for eksempel alle dine C-filer i ét directory-men du ikke har en 118 00:06:05,015 --> 00:06:07,180 mappe bare for C-filer endnu. 119 00:06:07,180 --> 00:06:11,590 Du kan stort set oprette en mappe ved hjælp af terminalen samt, som er 120 00:06:11,590 --> 00:06:15,670 det samme som at højreklikke og siger Ny mappe. 121 00:06:15,670 --> 00:06:20,640 Kommandoen lave mappen, som er mkdir, så dybest set "gøre" og 122 00:06:20,640 --> 00:06:21,260 "Bibliotek". 123 00:06:21,260 --> 00:06:22,680 >> Og så kan du sætte den navnet på den mappe. 124 00:06:22,680 --> 00:06:32,490 Lad os sige, at jeg ønskede at blive kaldt, Jeg ved det ikke, lad os sige pset1 Doing 125 00:06:32,490 --> 00:06:33,900 dette, jeg netop oprettet en mappe. 126 00:06:33,900 --> 00:06:35,910 Lad os lige tjekke, at det er der. 127 00:06:35,910 --> 00:06:40,870 Så hvis jeg gør ls, nu kan jeg se logs, og så pset1 og derefter vhosts. 128 00:06:40,870 --> 00:06:44,360 Så jeg har den nye mappe der. 129 00:06:44,360 --> 00:06:46,670 >> Og så når du har et nyt bibliotek, måske du ønsker at navigere 130 00:06:46,670 --> 00:06:51,760 ind i det, så den næste kommando denne cd, som netop betyder egentlig gå til en 131 00:06:51,760 --> 00:06:53,400 bestemt mappe. 132 00:06:53,400 --> 00:06:58,377 Så hvis jeg ønsker at gå til pset1, Jeg kan bare gøre cd pset1. 133 00:06:58,377 --> 00:07:01,550 >> LAUREN CARVALHO: cd står for forandring mappe, [uhørligt] i stand til at 134 00:07:01,550 --> 00:07:02,230 huske. 135 00:07:02,230 --> 00:07:05,460 >> LUCAS FREITAS: Og nu kan du se, at i stedet for bare at have jharvard 136 00:07:05,460 --> 00:07:09,150 apparat, jeg har jharvard apparat, og derefter pset1, fordi det viser 137 00:07:09,150 --> 00:07:14,150 mig, hvor jeg er i denne computer. 138 00:07:14,150 --> 00:07:17,510 >> Nu, hvis jeg ønsker at gå tilbage til mappe, der var før denne, jeg 139 00:07:17,510 --> 00:07:22,950 kan gøre en cd prik prik, hvilket betyder bare gå til den mappe, som jeg var før, 140 00:07:22,950 --> 00:07:26,290 ligesom moderselskab for dette mappe, dybest set. 141 00:07:26,290 --> 00:07:30,460 Og nu ser jeg, at jeg er tilbage til jharvard. 142 00:07:30,460 --> 00:07:36,050 >> Den næste ting, jeg kan gøre det er rm, som er at fjerne en fil. 143 00:07:36,050 --> 00:07:39,590 For eksempel, lad os først gøre ls at se, hvad jeg har her. 144 00:07:39,590 --> 00:07:41,790 Jeg har goddag og hello.c. 145 00:07:41,790 --> 00:07:43,780 Lad os sige, at jeg ønsker at fjerne dem. 146 00:07:43,780 --> 00:07:48,280 Jeg kan gøre rm hej. 147 00:07:48,280 --> 00:07:52,770 Det kommer til at sige "fjerne almindelig fil hej "Og jeg siger" ja ". Og nu, hvis jeg 148 00:07:52,770 --> 00:07:56,410 gøre ls, jeg kan se, at det er der ikke mere. 149 00:07:56,410 --> 00:07:59,700 >> Hvis jeg forsøger at bruge rm for en mappe, selv, er det ikke kommer 150 00:07:59,700 --> 00:08:00,800 at lade dig gøre noget. 151 00:08:00,800 --> 00:08:02,960 Det kommer til at sige, hey, du kan ikke fjerne en mappe. 152 00:08:02,960 --> 00:08:08,100 Så vi har dette andet komme kaldt rmdir, som netop dybest set betyder 153 00:08:08,100 --> 00:08:09,800 fjerne mappe. 154 00:08:09,800 --> 00:08:12,842 Jeg kan for eksempel fjerne pset1. 155 00:08:12,842 --> 00:08:15,770 Og hvis jeg gør ls, det gør jeg ikke have det længere. 156 00:08:15,770 --> 00:08:18,430 >> Eventuelle spørgsmål vedrørende denne? 157 00:08:18,430 --> 00:08:20,200 Nej? 158 00:08:20,200 --> 00:08:20,595 Ja? 159 00:08:20,595 --> 00:08:23,954 >> PUBLIKUM: Er det vigtigt, at du lader et mellemrum efter - når du 160 00:08:23,954 --> 00:08:26,540 begynde at skrive noget i? 161 00:08:26,540 --> 00:08:26,830 >> LUCAS FREITAS: Ja. 162 00:08:26,830 --> 00:08:32,080 Hvis jeg gør gerne cd og den mappe, Jeg nødt til at sætte et mellemrum. 163 00:08:32,080 --> 00:08:33,350 Hvad plads taler du om? 164 00:08:33,350 --> 00:08:34,979 >> LAUREN CARVALHO: Mellemrummet mellem cd og [uhørligt]. 165 00:08:34,979 --> 00:08:37,710 >> LUCAS FREITAS: Ja, er du nødt til sætte rum, fordi cd er 166 00:08:37,710 --> 00:08:42,770 kommando, og derefter den næste streng, du type er dybest set den mappe. 167 00:08:42,770 --> 00:08:45,020 Så det er ligesom et argument. 168 00:08:45,020 --> 00:08:45,360 Ja? 169 00:08:45,360 --> 00:08:47,952 >> PUBLIKUM: Når du liste alle dem er forskellige mapper, right? 170 00:08:47,952 --> 00:08:50,125 >> LUCAS FREITAS: Ja, de er i kataloget. 171 00:08:50,125 --> 00:08:53,524 >> PUBLIKUM: Hvad er forskellen blandt de mapper? 172 00:08:53,524 --> 00:08:55,390 >> LUCAS FREITAS: De er bare forskellige mapper. 173 00:08:55,390 --> 00:08:57,366 Bibliotek er en mappe i din computer. 174 00:08:57,366 --> 00:08:58,120 >> PUBLIKUM: Åbn mappe. 175 00:08:58,120 --> 00:09:00,140 >> LUCAS FREITAS: Ja, det er blot en åben mappe. 176 00:09:00,140 --> 00:09:03,400 >> LAUREN Carvalho: Over her, dem der er i blå er faktiske 177 00:09:03,400 --> 00:09:07,107 mapper, som du kan komme ind og så se en masse ting, der er 178 00:09:07,107 --> 00:09:10,248 inden for denne, hvilket er uheldigt fordi du ikke kan faktisk læse 179 00:09:10,248 --> 00:09:11,290 dem i blåt. 180 00:09:11,290 --> 00:09:16,166 Og dem i hvid er blot filer der er inden for den aktuelle mappe. 181 00:09:16,166 --> 00:09:17,870 >> LUCAS FREITAS: Så biblioteker er mapper. 182 00:09:17,870 --> 00:09:18,810 De andre er filer. 183 00:09:18,810 --> 00:09:22,810 >> PUBLIKUM: Hvad er kommandoen nulstille den eller for at slette det? 184 00:09:22,810 --> 00:09:23,650 LUCAS FREITAS: For at fjerne? 185 00:09:23,650 --> 00:09:24,362 LAUREN CARVALHO: For at fjerne? 186 00:09:24,362 --> 00:09:27,985 LUCAS FREITAS: Jeg tror det er "klar". Ja. 187 00:09:27,985 --> 00:09:32,370 Så du bare skrive klart, om din skærm er for rodet. 188 00:09:32,370 --> 00:09:33,700 Andre spørgsmål? 189 00:09:33,700 --> 00:09:36,720 Og du vil lære en masse andre kommandoer bare naturligt under 190 00:09:36,720 --> 00:09:38,405 semester, fordi de er meget nyttige. 191 00:09:38,405 --> 00:09:42,380 192 00:09:42,380 --> 00:09:46,155 >> Så lad os nu snakke om kompilering. 193 00:09:46,155 --> 00:09:51,510 194 00:09:51,510 --> 00:09:54,730 Vi talte om pseudokode og kildekoden og objekt kode. 195 00:09:54,730 --> 00:09:59,020 Og der er en masse koder, og måske du fyre er forvirret over det. 196 00:09:59,020 --> 00:10:02,190 Lad os snakke lidt om, hvad sker, når du skriver et program, 197 00:10:02,190 --> 00:10:06,620 og du kompilere det, og det bliver en eksekverbar fil. 198 00:10:06,620 --> 00:10:10,190 De er alle ord, du fyre sikkert hørt, og måske er du ikke 199 00:10:10,190 --> 00:10:12,130 helt sikker på hvad der foregår. 200 00:10:12,130 --> 00:10:15,540 >> Lad os sige, for eksempel, at jeg ønsker at skrive et program, der siger "hej." Den 201 00:10:15,540 --> 00:10:19,670 første ting, der kommer i dit sind er du slags prøv at tænke på, hvordan du er 202 00:10:19,670 --> 00:10:23,000 kommer til at gøre det i dit sind, og du sandsynligvis tænker på engelsk eller 203 00:10:23,000 --> 00:10:25,550 et andet sprog, som naturligt sprog, sandsynligvis. 204 00:10:25,550 --> 00:10:28,770 Og så du tror, ​​ja, hvis jeg vil, for eksempel skrive et program, 205 00:10:28,770 --> 00:10:32,630 siger "hej," Jeg vil starte et program, Jeg vil udskrive hej, og så vil jeg 206 00:10:32,630 --> 00:10:35,270 afslutte programmet. 207 00:10:35,270 --> 00:10:36,350 Dette er pseudokode. 208 00:10:36,350 --> 00:10:41,740 Dette er netop grunden du forsøger at komme op med en sekvens af hændelser 209 00:10:41,740 --> 00:10:46,510 at du kommer til at gøre for at være stand til at skrive et program. 210 00:10:46,510 --> 00:10:49,610 >> Så har du kildekoden, og kildekoden ikke behøver at 211 00:10:49,610 --> 00:10:53,240 specifikt være i C. Vi taler om source kode i C, fordi det er 212 00:10:53,240 --> 00:10:56,760 det sprog, vi er ved at lære, men selvfølgelig kode kan være stort set enhver 213 00:10:56,760 --> 00:10:59,160 programmeringssprog, som du har. 214 00:10:59,160 --> 00:11:01,230 Senere i semestret, er du nødt til at lære andre sprog. 215 00:11:01,230 --> 00:11:03,230 Det er også kildekode. 216 00:11:03,230 --> 00:11:07,380 >> For eksempel er her, det er min kilde kode, og så er jeg også en 217 00:11:07,380 --> 00:11:10,170 bibliotek, og derefter starter jeg main, og derefter udskrive jeg. 218 00:11:10,170 --> 00:11:14,510 Og Laura kommer til at snakke lidt lidt om alt dette. 219 00:11:14,510 --> 00:11:16,190 Så dette er kildekoden. 220 00:11:16,190 --> 00:11:19,590 >> Og hvad er formålet kode? 221 00:11:19,590 --> 00:11:22,500 Objektet er en flok nuller og dem, dybest set. 222 00:11:22,500 --> 00:11:27,680 Hvad der sker, er du i første omgang har pseudokode, som er alle på engelsk. 223 00:11:27,680 --> 00:11:29,020 Og jeg mener, du forstår det. 224 00:11:29,020 --> 00:11:31,260 Sandsynligvis dine venner forstå det, og de fleste mennesker ville 225 00:11:31,260 --> 00:11:32,560 forstå ideen. 226 00:11:32,560 --> 00:11:36,770 Men computere er virkelig dumme, og de forstår ikke engelsk, så du 227 00:11:36,770 --> 00:11:41,320 har omsætte det til noget, oversættes normalt ind i nogle 228 00:11:41,320 --> 00:11:42,460 programmeringssprog. 229 00:11:42,460 --> 00:11:46,840 >> Og du kan tænke på et programmeringssprog sprog som lidt ligesom et sprog 230 00:11:46,840 --> 00:11:50,970 at du fortæller din computer hvordan at tale og forstå. 231 00:11:50,970 --> 00:11:54,160 Du er dybest set at skrive noget i et sprog, som både du og dine 232 00:11:54,160 --> 00:11:55,190 computer forstå. 233 00:11:55,190 --> 00:11:56,470 Det er kildekoden. 234 00:11:56,470 --> 00:12:00,580 Så går formular pseudokode til kilden kode, er det op til dig. 235 00:12:00,580 --> 00:12:03,130 Det er dybest set du laver dit program. 236 00:12:03,130 --> 00:12:06,740 >> Men problemet er, at computer ikke engang 237 00:12:06,740 --> 00:12:08,360 forstå programmeringssprog. 238 00:12:08,360 --> 00:12:10,320 Det betyder ikke forstår kildekode overhovedet. 239 00:12:10,320 --> 00:12:12,520 Det faktisk bare forstår nuller og ettaller. 240 00:12:12,520 --> 00:12:16,570 Så vi har det meget magiske ting kaldet en compiler, som dybest set er 241 00:12:16,570 --> 00:12:19,755 kommer til at få den kilde, kaldet, at du skrev i et sprog, som både du 242 00:12:19,755 --> 00:12:25,320 og computeren tale, og nu er du kommer til at omdanne det i 243 00:12:25,320 --> 00:12:26,270 nuller og ettaller. 244 00:12:26,270 --> 00:12:30,860 Så dybest set, hvad compileren gør, er det får kildekode, i dette tilfælde C, 245 00:12:30,860 --> 00:12:34,100 det kommer til at omdanne det til nuller og dem, som computeren 246 00:12:34,100 --> 00:12:37,440 forstår og kan gøre en eksekverbar fil ud af det. 247 00:12:37,440 --> 00:12:40,900 >> Giver det mening? 248 00:12:40,900 --> 00:12:45,300 Du kan bare tænke på compiler som en slags oversætter, der er 249 00:12:45,300 --> 00:12:50,280 hjælper du forklare til computeren præcis, hvad det er meningen at gøre. 250 00:12:50,280 --> 00:12:52,310 >> Men hvordan kan jeg kompilere. 251 00:12:52,310 --> 00:12:59,680 Lad os gå tilbage til apparatet, og lad os sige, at jeg gør dette program. 252 00:12:59,680 --> 00:13:04,220 Først vil jeg oprette en mappe her, og jeg har tænkt mig at kalde det 253 00:13:04,220 --> 00:13:11,130 "Praksis". Nu vil jeg til at navigere til den mappe, så cd praksis. 254 00:13:11,130 --> 00:13:13,210 Nu er jeg inde i praksis. 255 00:13:13,210 --> 00:13:16,860 >> Nu vil jeg starte gedit, så hvordan gør jeg det? 256 00:13:16,860 --> 00:13:21,920 Jeg kan enten klikke her, eller jeg kan bare bogstaveligt skrive "gedit", og det kommer 257 00:13:21,920 --> 00:13:24,290 til at åbne for mig. 258 00:13:24,290 --> 00:13:28,100 >> Nu vil jeg til at skrive mit program, så præcis, hvad jeg skrev i diaset. 259 00:13:28,100 --> 00:13:30,360 Jeg erklære et bibliotek. 260 00:13:30,360 --> 00:13:35,440 Jeg gør int main, ugyldig. 261 00:13:35,440 --> 00:13:39,180 Og nu jeg gør printf, hej. 262 00:13:39,180 --> 00:13:46,530 263 00:13:46,530 --> 00:13:50,170 Nu vil jeg til at redde dette. 264 00:13:50,170 --> 00:13:53,665 Lad mig sige det i praksis, og Jeg har tænkt mig at kalde denne hello.c. 265 00:13:53,665 --> 00:13:57,710 266 00:13:57,710 --> 00:13:59,590 Så nu er det gemt. 267 00:13:59,590 --> 00:14:03,250 >> Hvis jeg ønsker at kompilere det, jeg faktisk kan gøre det på to forskellige steder. 268 00:14:03,250 --> 00:14:07,090 Jeg kan enten gøre det på en terminal vindue, så dette store, eller du kan 269 00:14:07,090 --> 00:14:09,860 bruge gedit, der rent faktisk har en terminal vindue lige her. 270 00:14:09,860 --> 00:14:17,890 Så kan du meget bekvemt lige gøre din kode, og så kan du bare skrive 271 00:14:17,890 --> 00:14:20,670 hvad her, og prøv at kompilere det. 272 00:14:20,670 --> 00:14:23,450 >> Så hvordan kan jeg kompilere kode? 273 00:14:23,450 --> 00:14:27,495 Den nemmeste måde, at vi har er ved hjælp af gøre, hvilket er en funktion, 274 00:14:27,495 --> 00:14:29,590 er dybest set vil kompilere din kode. 275 00:14:29,590 --> 00:14:34,170 Du skal bare nødt til at sige gøre hej, så "Gøre" og navnet på programmet. 276 00:14:34,170 --> 00:14:35,420 >> Ups. 277 00:14:35,420 --> 00:14:38,250 278 00:14:38,250 --> 00:14:39,280 Dette er akavet. 279 00:14:39,280 --> 00:14:41,738 >> LAUREN CARVALHO: Kan du [uhørligt]? 280 00:14:41,738 --> 00:14:45,182 281 00:14:45,182 --> 00:14:45,990 >> LUCAS FREITAS: Undskyld. 282 00:14:45,990 --> 00:14:49,960 Jeg havde ikke gemme den i rigtige bibliotek. 283 00:14:49,960 --> 00:14:52,130 Kom til praksis, og nu gemme det som hello.c. 284 00:14:52,130 --> 00:14:54,750 Undskyld. 285 00:14:54,750 --> 00:14:56,250 Nu er det gemt. 286 00:14:56,250 --> 00:14:58,300 >> Lad mig bare gøre ls og være sikker på, at det er her. 287 00:14:58,300 --> 00:14:59,460 OK, nu er det her. 288 00:14:59,460 --> 00:15:05,930 Så nu, hvis jeg gør hej, det spytter en masse ting, men så er det bare giver 289 00:15:05,930 --> 00:15:08,870 mig en anden linje for terminalen, som betyder, at det var en succes. 290 00:15:08,870 --> 00:15:13,160 Så nu, hvis jeg gør en ls igen, jeg faktisk se denne fil i grøn, hvilket er den 291 00:15:13,160 --> 00:15:15,470 eksekverbar fil. 292 00:15:15,470 --> 00:15:21,700 >> Og så hvis jeg vil køre det, alt det Jeg skal gøre er at dot skråstreg hej. 293 00:15:21,700 --> 00:15:25,830 Det kommer til at sige goddag lige her, så det er præcis, hvad jeg beder den til. 294 00:15:25,830 --> 00:15:29,620 >> Der er endnu en måde at kompilere, der bruger klang. 295 00:15:29,620 --> 00:15:35,740 Dunk er bare en compiler, vi har, og det er en lille smule mere detaljeret for 296 00:15:35,740 --> 00:15:36,390 kompilere det. 297 00:15:36,390 --> 00:15:40,180 Men det virker lige så godt. 298 00:15:40,180 --> 00:15:46,810 Så hvis jeg gør klang, og så-o, og derefter det navn, jeg ønsker at give til 299 00:15:46,810 --> 00:15:50,400 den eksekverbare fil, så lad os sige "Hello". Og så den fil, jeg vil 300 00:15:50,400 --> 00:15:53,460 at kompilere, hello.c. 301 00:15:53,460 --> 00:15:55,900 Det er også kommer til at kompilere. 302 00:15:55,900 --> 00:15:59,020 Og du har filen her, og Jeg kan bare udføre det så godt. 303 00:15:59,020 --> 00:16:00,610 Så både af dem arbejde. 304 00:16:00,610 --> 00:16:03,270 >> Giver det mening? 305 00:16:03,270 --> 00:16:06,020 Eventuelle spørgsmål? 306 00:16:06,020 --> 00:16:09,020 >> PUBLIKUM: Kan du zoome i en lille smule? 307 00:16:09,020 --> 00:16:09,913 >> LUCAS FREITAS: Undskyld? 308 00:16:09,913 --> 00:16:11,135 >> PUBLIKUM: Zoom ind? 309 00:16:11,135 --> 00:16:13,310 >> LAUREN CARVALHO: Jeg tror, ​​du kan bare kommandere plus. 310 00:16:13,310 --> 00:16:14,295 >> LUCAS FREITAS: kommando hvad? 311 00:16:14,295 --> 00:16:16,060 >> LAUREN CARVALHO: Command plus. 312 00:16:16,060 --> 00:16:17,000 >> LUCAS FREITAS: Nej. 313 00:16:17,000 --> 00:16:19,350 >> LAUREN CARVALHO: Åh, det er ikke kommer til at arbejde, fordi - 314 00:16:19,350 --> 00:16:25,548 er det fordi vi indstille opløsningen for denne ting. 315 00:16:25,548 --> 00:16:27,450 >> LUCAS FREITAS: Jeg gør ikke tror, ​​vi kan zoome ind 316 00:16:27,450 --> 00:16:30,852 317 00:16:30,852 --> 00:16:34,130 Ja, vi kan ikke zoome. 318 00:16:34,130 --> 00:16:36,200 Har du har et andet spørgsmål? 319 00:16:36,200 --> 00:16:36,680 Undskyld. 320 00:16:36,680 --> 00:16:39,170 >> PUBLIKUM: Kan du gentage clang? 321 00:16:39,170 --> 00:16:40,630 >> LUCAS FREITAS: Den klang? 322 00:16:40,630 --> 00:16:44,190 Dunk er det samme som mærke, men det Forskellen er, at jeg først har tænkt mig 323 00:16:44,190 --> 00:16:48,460 at skrive klang, som er kommandoen, så jeg har tænkt mig at gøre -0, alt, der er 324 00:16:48,460 --> 00:16:51,680 lige, hvad vi kommer til at lære senere som et flag. 325 00:16:51,680 --> 00:16:54,440 Så bare tror, ​​at du altid nødt til at sætte-o. 326 00:16:54,440 --> 00:16:58,690 >> Og så først, er du nødt til at sætte navnet på den eksekverbare fil, 327 00:16:58,690 --> 00:17:00,680 dybest set den fil, du kommer til at skabe. 328 00:17:00,680 --> 00:17:06,430 Så jeg kan sige, for eksempel, hello2 og derefter den fil, jeg ønsker at kompilere, 329 00:17:06,430 --> 00:17:07,800 som er. c fil. 330 00:17:07,800 --> 00:17:09,240 Så det er hello.c. 331 00:17:09,240 --> 00:17:10,871 Giver det mening? 332 00:17:10,871 --> 00:17:12,635 >> PUBLIKUM: Hej hvad? 333 00:17:12,635 --> 00:17:13,076 Hvad er det? 334 00:17:13,076 --> 00:17:15,960 >> LUCAS FREITAS: Hello.c. 335 00:17:15,960 --> 00:17:19,849 Og hvis jeg kompilere det, og hvis Jeg kan ls, jeg har også en 336 00:17:19,849 --> 00:17:22,010 hello2 at jeg lige har kompileret. 337 00:17:22,010 --> 00:17:26,339 Og hvis jeg prøver at køre det, det kommer til at gør præcis det samme som hej, 338 00:17:26,339 --> 00:17:27,089 bare udskrive hej. 339 00:17:27,089 --> 00:17:31,660 >> PUBLIKUM: Hvordan kommer til make du kan sætte hello.c efter? 340 00:17:31,660 --> 00:17:33,880 >> LUCAS FREITAS: I fabrikat, du behøver ikke at sætte. ca. 341 00:17:33,880 --> 00:17:36,140 I fabrikat, du bare sige det navn på programmet. 342 00:17:36,140 --> 00:17:37,750 Du behøver ikke at sige. Ca. 343 00:17:37,750 --> 00:17:39,020 Men for klang, du skal. 344 00:17:39,020 --> 00:17:44,040 >> PUBLIKUM: Med clang har du også nødt til at tilføje [uhørligt] 345 00:17:44,040 --> 00:17:44,480 >> LAUREN CARVALHO: Ja. 346 00:17:44,480 --> 00:17:46,180 Så du også nødt til biblioteket. 347 00:17:46,180 --> 00:17:51,170 >> LUCAS FREITAS: Ja, det er noget vi kommer til at bruge senere. 348 00:17:51,170 --> 00:17:54,850 Det kaldes sammenkædning, og jeg tror, ​​vi er kommer til at tale om det senere. 349 00:17:54,850 --> 00:17:55,930 Et andet spørgsmål? 350 00:17:55,930 --> 00:17:59,927 >> PUBLIKUM: Har du sat en prik skråstreg klang? 351 00:17:59,927 --> 00:18:01,060 >> LUCAS FREITAS: Nej. 352 00:18:01,060 --> 00:18:06,040 Prikken skråstreg er bare at åbne den eksekverbare fil. 353 00:18:06,040 --> 00:18:09,440 Så klang, du bare skrive "klang", og så hvis du ønsker at åbne 354 00:18:09,440 --> 00:18:12,640 eksekverbar fil, du lige kompileret, så du dot 355 00:18:12,640 --> 00:18:13,780 skråstreg og navnet. 356 00:18:13,780 --> 00:18:15,100 Giver det mening? 357 00:18:15,100 --> 00:18:18,635 358 00:18:18,635 --> 00:18:22,435 >> PUBLIKUM: Hvis du skulle bare forandring [Uhørligt] til goddag verden, gør du 359 00:18:22,435 --> 00:18:23,870 skal kompilere det? 360 00:18:23,870 --> 00:18:24,750 >> LUCAS FREITAS: Ja. 361 00:18:24,750 --> 00:18:36,650 hvis jeg ønsker at sige, for eksempel, "hello der, "Jeg kan bare gemme det nu, og jeg 362 00:18:36,650 --> 00:18:38,020 bare kompilere det igen. 363 00:18:38,020 --> 00:18:41,910 Så lad mig gøre en make hej. 364 00:18:41,910 --> 00:18:48,490 Og hvis jeg gør hej, det kommer til at sige "Hej der." Giver mening? 365 00:18:48,490 --> 00:18:50,280 Andre spørgsmål? 366 00:18:50,280 --> 00:18:54,384 >> PUBLIKUM: Har du nødt til at medtage standard I / O til at koordinere arbejdet? 367 00:18:54,384 --> 00:18:55,480 >> LUCAS FREITAS: Ja. 368 00:18:55,480 --> 00:18:58,050 Standard I / O er dybest set det bibliotek, der har en 369 00:18:58,050 --> 00:19:00,050 implementering for printf. 370 00:19:00,050 --> 00:19:03,450 371 00:19:03,450 --> 00:19:06,910 Så ting lige på top omfatter stdio. 372 00:19:06,910 --> 00:19:11,920 Det er herunder et bibliotek, dybest set har en masse forskellige 373 00:19:11,920 --> 00:19:13,260 værktøjer, som du kan bruge. 374 00:19:13,260 --> 00:19:13,480 en? 375 00:19:13,480 --> 00:19:17,820 Af dem er printf der er en funktion der dybest set udskrives 376 00:19:17,820 --> 00:19:21,290 beskeder til skærmen. 377 00:19:21,290 --> 00:19:23,200 >> Andre spørgsmål? 378 00:19:23,200 --> 00:19:24,700 Nej? 379 00:19:24,700 --> 00:19:25,060 OK. 380 00:19:25,060 --> 00:19:31,620 Så lad os nu snakke om - 381 00:19:31,620 --> 00:19:33,948 >> LAUREN CARVALHO: Lad os bare gå til den stil guide. 382 00:19:33,948 --> 00:19:35,896 Ønsker du at bare finde det herinde? 383 00:19:35,896 --> 00:19:37,880 >> LUCAS FREITAS: Så vi vil at tale om stil. 384 00:19:37,880 --> 00:19:47,006 385 00:19:47,006 --> 00:19:50,430 >> LAUREN CARVALHO: Åh, David ikke færdig. 386 00:19:50,430 --> 00:19:51,230 OK. 387 00:19:51,230 --> 00:19:53,870 Hvorfor vi ikke kommer tilbage til stil i slutningen? 388 00:19:53,870 --> 00:19:56,220 Det er faktisk blevet opdateret som vi taler. 389 00:19:56,220 --> 00:19:56,810 >> LUCAS FREITAS: Ja. 390 00:19:56,810 --> 00:19:58,300 Lad os vejen for David at afslutte det. 391 00:19:58,300 --> 00:20:07,150 392 00:20:07,150 --> 00:20:08,600 >> LAUREN CARVALHO: Can vi skifter faktisk? 393 00:20:08,600 --> 00:20:14,920 394 00:20:14,920 --> 00:20:17,200 >> Så jeg håber, at alle har været nyder Scratch. 395 00:20:17,200 --> 00:20:21,950 Desværre, er det tid til bevæge sig væk fra det - 396 00:20:21,950 --> 00:20:25,280 desværre er det tid til at flytte væk fra disse smukke blokprogrammering 397 00:20:25,280 --> 00:20:28,530 på C. Men heldigvis, alle af programmering konstruerer, at du har 398 00:20:28,530 --> 00:20:32,370 arbejdet med i Scratch er direkte overføres til et C, og vi er 399 00:20:32,370 --> 00:20:35,130 kommer til at begynde at lære om nogle af dem lige nu. 400 00:20:35,130 --> 00:20:39,200 Lad os først tale om forhold i boolske udtryk. 401 00:20:39,200 --> 00:20:41,944 >> Dette kører på reserve batteristrøm. 402 00:20:41,944 --> 00:20:43,912 >> LUCAS FREITAS: Hvordan er der ikke fungerer? 403 00:20:43,912 --> 00:20:47,850 404 00:20:47,850 --> 00:20:48,010 OK. 405 00:20:48,010 --> 00:20:50,256 Du går der, jeg kommer til at få det - 406 00:20:50,256 --> 00:20:53,700 407 00:20:53,700 --> 00:20:57,390 >> LAUREN CARVALHO: So betingelser vigtige, fordi de tillader os at 408 00:20:57,390 --> 00:21:00,588 introducere logik ind i vores programmer. 409 00:21:00,588 --> 00:21:04,620 Her er et eksempel på en betingelse inden for et C-program. 410 00:21:04,620 --> 00:21:06,130 Lad os bemærke, hvordan dette - 411 00:21:06,130 --> 00:21:11,324 Så denne betingelse blok lige her, dette printf erklæring vil ikke udføre 412 00:21:11,324 --> 00:21:14,860 medmindre betingelsen i parenteser, n er større end 0, 413 00:21:14,860 --> 00:21:16,800 evalueres til sand. 414 00:21:16,800 --> 00:21:20,780 >> Nu er alle betingelserne inden f udsagn er boolske udtryk, 415 00:21:20,780 --> 00:21:22,970 hvilket betyder, at der er kun to muligheder. 416 00:21:22,970 --> 00:21:26,856 De kunne enten evalueres til sand, eller de kan evalueres til falsk. 417 00:21:26,856 --> 00:21:33,174 Så her, så det giver mening, ikke? n større end 0, betyder, at det er en positiv 418 00:21:33,174 --> 00:21:41,160 nummer, hvilket betyder, at det vil udskrive out "du valgte et positivt tal." 419 00:21:41,160 --> 00:21:44,630 >> Der er masser af boolske udtryk som kan danne tilstand med en 420 00:21:44,630 --> 00:21:47,190 init erklæring. 421 00:21:47,190 --> 00:21:48,520 Vi har mindre end. 422 00:21:48,520 --> 00:21:50,950 Dette er mindre end eller lig med. 423 00:21:50,950 --> 00:21:52,200 Dette er blot en sjov [uhørligt]. 424 00:21:52,200 --> 00:21:54,800 425 00:21:54,800 --> 00:22:01,630 Hvis du vil have den printf at opstå, hvis det er større end eller lig med 0, så 426 00:22:01,630 --> 00:22:03,345 du ville vælge dette. 427 00:22:03,345 --> 00:22:07,750 Så den lige netop tilføjer ret efter større end tegn. 428 00:22:07,750 --> 00:22:12,030 >> Lig lige, som er forskellig fra kun et lighedstegn svarende lig 429 00:22:12,030 --> 00:22:16,430 betyder faktisk, at uanset hvad der er på den venstre side af denne er den samme som 430 00:22:16,430 --> 00:22:20,610 hvad der er på den højre side af denne hvor man lighedstegn er hvad? 431 00:22:20,610 --> 00:22:23,333 Hvad er blot ét lighedstegn? 432 00:22:23,333 --> 00:22:24,275 Overdragelse. 433 00:22:24,275 --> 00:22:25,985 >> LUCAS FREITAS: Hvem sagde det? 434 00:22:25,985 --> 00:22:27,170 Er det slik? 435 00:22:27,170 --> 00:22:27,370 Åh, nej. 436 00:22:27,370 --> 00:22:27,885 Undskyld. 437 00:22:27,885 --> 00:22:28,210 Undskyld. 438 00:22:28,210 --> 00:22:30,400 Man både får slik. 439 00:22:30,400 --> 00:22:31,510 Åh, OK! 440 00:22:31,510 --> 00:22:33,046 Tre mennesker får slik! 441 00:22:33,046 --> 00:22:37,393 >> LAUREN CARVALHO: Så denne ene lige her er bang operatør foregående 442 00:22:37,393 --> 00:22:40,240 lighedstegnet, så det er ikke lig med. 443 00:22:40,240 --> 00:22:46,560 Så hvis dette var inden for min tilstand, kroppen af ​​den tilstand ville 444 00:22:46,560 --> 00:22:49,615 udføre, hvis hvad er i venstre er ikke det samme som 445 00:22:49,615 --> 00:22:52,540 hvad der er til højre. 446 00:22:52,540 --> 00:22:57,680 >> Jeg kan også have den helt udråbstegn. 447 00:22:57,680 --> 00:23:01,250 Faktisk vil vi se på en funktion glide hvordan dette ville blive anvendt. 448 00:23:01,250 --> 00:23:03,830 >> LUCAS FREITAS: Eventuelle spørgsmål? 449 00:23:03,830 --> 00:23:06,450 Nej? 450 00:23:06,450 --> 00:23:10,460 >> LAUREN CARVALHO: Vi kan kombinere disse Boolske udtryk til at konstruere mere 451 00:23:10,460 --> 00:23:12,500 indviklede betingede udsagn. 452 00:23:12,500 --> 00:23:19,680 Så her, hvis hvad er til venstre side af dobbelte søjler eller 453 00:23:19,680 --> 00:23:23,160 hvad der er på den højre side af de dobbelte søjler evalueres til sand, 454 00:23:23,160 --> 00:23:25,700 så vil vi udskrive ugyldigt. 455 00:23:25,700 --> 00:23:29,503 Og derefter ned her, hvis uanset s på venstre side af de to 456 00:23:29,503 --> 00:23:33,480 ampersands og hvad der nu er til højre side af de to-tegn 457 00:23:33,480 --> 00:23:37,470 evalueres til sand, så vi vil printe ud gyldig. 458 00:23:37,470 --> 00:23:42,195 De dobbelte stænger kaldes logiske OR operatør dobbelt-tegn er 459 00:23:42,195 --> 00:23:44,190 kaldes logisk OG operatør. 460 00:23:44,190 --> 00:23:44,648 Ja? 461 00:23:44,648 --> 00:23:47,850 >> PUBLIKUM: Er de bare lavere sag l's? 462 00:23:47,850 --> 00:23:48,620 >> LAUREN CARVALHO: Nej. 463 00:23:48,620 --> 00:23:50,890 De er faktisk - 464 00:23:50,890 --> 00:23:55,134 du kender bagslag, ligesom over din Return tasten? 465 00:23:55,134 --> 00:23:56,585 Kan du se det? 466 00:23:56,585 --> 00:23:57,940 >> LUCAS FREITAS: Det er faktisk en bar. 467 00:23:57,940 --> 00:24:02,100 >> LAUREN CARVALHO: Det er faktisk blot to barer. 468 00:24:02,100 --> 00:24:05,724 >> PUBLIKUM: Kan du bruge lige lige for strygere? 469 00:24:05,724 --> 00:24:07,000 >> LUCAS FREITAS: Nej. 470 00:24:07,000 --> 00:24:09,130 Vi kommer til at lære senere noget om det. 471 00:24:09,130 --> 00:24:10,735 >> LAUREN CARVALHO: Der er en funktion som du kan bruge. 472 00:24:10,735 --> 00:24:12,644 Men du behøver ikke at bange for, at netop yet. 473 00:24:12,644 --> 00:24:15,530 474 00:24:15,530 --> 00:24:18,270 >> Hvad hvis jeg giver dette program nummer 5? 475 00:24:18,270 --> 00:24:20,850 Hvad vil udskrive? 476 00:24:20,850 --> 00:24:22,100 >> PUBLIKUM: [uhørligt] 477 00:24:22,100 --> 00:24:27,780 478 00:24:27,780 --> 00:24:28,275 gyldig. 479 00:24:28,275 --> 00:24:29,770 >> LAUREN CARVALHO: Gyldigt? 480 00:24:29,770 --> 00:24:30,135 Ja. 481 00:24:30,135 --> 00:24:34,092 Jeg ved ikke, hvem der fik det. 482 00:24:34,092 --> 00:24:35,036 >> [Latter] 483 00:24:35,036 --> 00:24:37,990 >> LAUREN CARVALHO: Det er lidt skræmmende [uhørligt]. 484 00:24:37,990 --> 00:24:40,900 >> PUBLIKUM: Så det dobbelte, og det betyder bare, og? 485 00:24:40,900 --> 00:24:41,740 >> LAUREN CARVALHO: Ja. 486 00:24:41,740 --> 00:24:46,160 Så nummer 5 er både større end 0 og mindre end 100. 487 00:24:46,160 --> 00:24:48,970 >> PUBLIKUM: Hvorfor ville det være en? 488 00:24:48,970 --> 00:24:51,350 >> LAUREN CARVALHO: One-tegn er faktisk noget andet, og det er 489 00:24:51,350 --> 00:24:53,390 en bitvise operatør, som du vil lære om senere. 490 00:24:53,390 --> 00:24:58,250 Men det er noget, der faktisk fungerer med bit med et givet tal. 491 00:24:58,250 --> 00:25:00,872 >> LUCAS FREITAS: Tænk de ikke at bekymre dig om det for nu. 492 00:25:00,872 --> 00:25:04,590 >> LAUREN CARVALHO: Jeg synes det er sandsynligvis kommer op i næste uge. 493 00:25:04,590 --> 00:25:06,420 >> LUCAS FREITAS: Andre spørgsmål? 494 00:25:06,420 --> 00:25:07,990 Nej? 495 00:25:07,990 --> 00:25:12,480 >> LAUREN CARVALHO: Så vi har set, at en det blokere kan stå alene, men det kan 496 00:25:12,480 --> 00:25:15,370 også blive parret med og ellers blok. 497 00:25:15,370 --> 00:25:18,880 Så i dette tilfælde, hvis n er større end 0, vi kommer til at udskrive "Du 498 00:25:18,880 --> 00:25:23,855 plukket et positivt tal. "andet, hvilket betyder, hvis det er 0, eller hvis det er mindre 499 00:25:23,855 --> 00:25:27,170 end 0, vi kommer til at udskrive, "Du valgte et negativt tal." 500 00:25:27,170 --> 00:25:30,390 >> Det interessante her er, at disse er eksklusive hinanden. 501 00:25:30,390 --> 00:25:33,940 Der er aldrig vil være et tilfælde hvor denne og dette 502 00:25:33,940 --> 00:25:35,544 både kan printe ud. 503 00:25:35,544 --> 00:25:38,190 504 00:25:38,190 --> 00:25:41,030 >> Jeg er sikker på, du har arbejdet med, hvis / andet Box i Scratch, så det bør være 505 00:25:41,030 --> 00:25:42,392 . temmelig velkendt 506 00:25:42,392 --> 00:25:42,874 Ja? 507 00:25:42,874 --> 00:25:48,522 >> PUBLIKUM: Har vi brug for plads mellem int n er lig GetInt derefter plads i 508 00:25:48,522 --> 00:25:49,460 hvis erklæring? 509 00:25:49,460 --> 00:25:51,565 Ligesom vi bruger en linje [uhørligt] 510 00:25:51,565 --> 00:25:52,790 >> LAUREN CARVALHO: Åh, den plads her? 511 00:25:52,790 --> 00:25:56,742 >> PUBLIKUM: Ligesom det, men du fordoble plads. 512 00:25:56,742 --> 00:25:58,718 Nej, gå op. 513 00:25:58,718 --> 00:25:59,706 Gå op. 514 00:25:59,706 --> 00:26:00,610 >> LUCAS FREITAS: Bare linjen? 515 00:26:00,610 --> 00:26:01,140 >> PUBLIKUM: Ja. 516 00:26:01,140 --> 00:26:02,870 >> LUCAS FREITAS: Bare den tomme linje? 517 00:26:02,870 --> 00:26:03,270 >> PUBLIKUM: Ja. 518 00:26:03,270 --> 00:26:04,070 >> LAUREN CARVALHO: Blank linje? 519 00:26:04,070 --> 00:26:04,470 Nej. 520 00:26:04,470 --> 00:26:06,320 Det er bare et stilistisk ting. 521 00:26:06,320 --> 00:26:09,360 >> LUCAS FREITAS: Det er ligesom nogle gange du bare springe nogle linjer, så 522 00:26:09,360 --> 00:26:12,330 at koden ikke ligner en stor blok af tekst. 523 00:26:12,330 --> 00:26:15,800 >> LAUREN CARVALHO: Jeg tror, ​​hvad der skete var, at vi havde en kommentar her, men jeg 524 00:26:15,800 --> 00:26:18,220 tog det ud, så du fyre ville have at tænke på koden snarere 525 00:26:18,220 --> 00:26:19,920 end lige læst min kommentar. 526 00:26:19,920 --> 00:26:24,170 I almindelighed afstand vil ikke rigtig påvirke den måde, dit program kører. 527 00:26:24,170 --> 00:26:26,070 Det er mere af en stilistisk ting. 528 00:26:26,070 --> 00:26:29,460 Og når vi har den stil guide opdateret og klar til at gå i slutningen af 529 00:26:29,460 --> 00:26:33,260 supersection, vi vil tale om det mere. 530 00:26:33,260 --> 00:26:34,660 >> Der er noget galt med dette program, ikke? 531 00:26:34,660 --> 00:26:38,980 Fordi 0 er ikke rigtig et negativt tal. 532 00:26:38,980 --> 00:26:40,270 Så lad os se om vi kan løse det. 533 00:26:40,270 --> 00:26:45,710 534 00:26:45,710 --> 00:26:48,370 >> Du kan sikkert forestille med dette, siger, ikke? 535 00:26:48,370 --> 00:26:52,850 Hvis n er større end 0, vi udskriver "Du plukket et positivt tal. "Så ellers 536 00:26:52,850 --> 00:26:57,340 hvis n er mindre end 0, "Du valgte en negativt tal. "andet," Du valgte 537 00:26:57,340 --> 00:27:01,040 0 ". 538 00:27:01,040 --> 00:27:06,030 >> Nu interessante er, at dette kunne blive ved for evigt. 539 00:27:06,030 --> 00:27:10,020 Du kan have en hvis blok, et andet, hvis blok, en anden else if blok, ellers hvis 540 00:27:10,020 --> 00:27:14,790 ellers hvis ellers hvis ellers, dybest set så længe du ønsker. 541 00:27:14,790 --> 00:27:17,110 Og når konstrueret som dette, disse er alle kommer til at være 542 00:27:17,110 --> 00:27:19,206 udelukker hinanden. 543 00:27:19,206 --> 00:27:19,650 Ja? 544 00:27:19,650 --> 00:27:24,130 >> PUBLIKUM: Så hvorfor kan du ikke bare bruge anden, hvis i stedet for [uhørligt]? 545 00:27:24,130 --> 00:27:26,990 >> LAUREN CARVALHO: I dette tilfælde, ja jeg kunne bruge en anden, hvis og det ville være 546 00:27:26,990 --> 00:27:29,190 helt fint, fordi betingelser selv er 547 00:27:29,190 --> 00:27:30,600 udelukker hinanden. 548 00:27:30,600 --> 00:27:33,560 Men hvis betingelserne ikke var eksklusiv af hinanden, vil dette 549 00:27:33,560 --> 00:27:37,596 tvinge dem til aldrig begge vurdere, hvis det giver mening. 550 00:27:37,596 --> 00:27:44,195 >> PUBLIKUM: I så fald kunne vi reden det andet, hvis det første, hvis? 551 00:27:44,195 --> 00:27:46,160 >> LAUREN CARVALHO: Hvis - hvad mener du? 552 00:27:46,160 --> 00:27:49,660 >> PUBLIKUM: Hvis de to betingelser udelukker ikke hinanden? 553 00:27:49,660 --> 00:27:54,700 >> LAUREN CARVALHO: Hvis betingelserne udelukker ikke hinanden? 554 00:27:54,700 --> 00:27:58,000 Men du vil kun én af dem til at køre? 555 00:27:58,000 --> 00:28:00,260 >> PUBLIKUM: Du vil bare hvis i stedet for andet. 556 00:28:00,260 --> 00:28:01,020 >> LAUREN CARVALHO: Ja. 557 00:28:01,020 --> 00:28:03,630 Der er altid vil være masser måder, du kan gøre dette. 558 00:28:03,630 --> 00:28:06,600 Du kan helt sikkert reden dem. 559 00:28:06,600 --> 00:28:10,390 Og du vil se i en fremtidig dias, du kan have flere hvis'er, blot én 560 00:28:10,390 --> 00:28:11,680 efter den anden. 561 00:28:11,680 --> 00:28:14,840 Men dette er en måde logisk organisere strømmen af ​​dit program. 562 00:28:14,840 --> 00:28:18,000 >> LUCAS FREITAS: Og der er en mere ting er, at du spurgte om at sætte 563 00:28:18,000 --> 00:28:20,110 hvis og derefter en anden, hvis. 564 00:28:20,110 --> 00:28:25,240 Det ville fungere perfekt, men det er dårligt design, fordi dybest set, hvis du 565 00:28:25,240 --> 00:28:29,320 kontrollere først, hvis, og du bemærker, at nummeret er større end 0, du 566 00:28:29,320 --> 00:28:30,660 kan bare afslutte programmet. 567 00:28:30,660 --> 00:28:33,080 Du behøver ikke at kontrollere, om det er mindre end 0, right? 568 00:28:33,080 --> 00:28:37,510 >> Men hvis du, hvis, hvis det kommer til at kontrollere begge, mens hvis jeg gøre, hvis andre er, 569 00:28:37,510 --> 00:28:39,260 det kommer til at kontrollere, om det er større end 0. 570 00:28:39,260 --> 00:28:43,500 Hvis det er, er det ikke kommer til at selv se på de andre linjer i koden. 571 00:28:43,500 --> 00:28:48,560 Så du dybest set at kontrollere det som to gange unødigt, så det er derfor vi 572 00:28:48,560 --> 00:28:50,750 gøre, hvis ellers hvis. 573 00:28:50,750 --> 00:28:52,350 Andre spørgsmål? 574 00:28:52,350 --> 00:28:56,547 >> PUBLIKUM: Så funktionaliteten af andet, hvis er den samme som 575 00:28:56,547 --> 00:28:57,790 hvis det var bare om? 576 00:28:57,790 --> 00:28:58,470 >> LAUREN CARVALHO: Nej. 577 00:28:58,470 --> 00:29:02,720 Du er faktisk kommer til at se i min næste glide et eksempel, hvor det kan 578 00:29:02,720 --> 00:29:03,270 være anderledes. 579 00:29:03,270 --> 00:29:05,690 I dette tilfælde er det næsten det samme. 580 00:29:05,690 --> 00:29:10,190 581 00:29:10,190 --> 00:29:15,410 >> Så her har vi et eksempel på flere hvis udsagn, og 582 00:29:15,410 --> 00:29:20,020 funktionalitet er ikke det samme som om jeg lige havde sagt, hvis 583 00:29:20,020 --> 00:29:23,120 ellers hvis ellers hvis ellers. 584 00:29:23,120 --> 00:29:26,970 Lad os bare tænke over, hvad der ville udskrive ud af, om jeg indtaste nummeret 95 585 00:29:26,970 --> 00:29:27,715 i dette program. 586 00:29:27,715 --> 00:29:29,764 >> PUBLIKUM: [uhørligt] 587 00:29:29,764 --> 00:29:31,102 >> LAUREN CARVALHO: Og hvad så? 588 00:29:31,102 --> 00:29:32,340 >> PUBLIKUM: [uhørligt] 589 00:29:32,340 --> 00:29:33,680 >> LAUREN CARVALHO: Ja. 590 00:29:33,680 --> 00:29:37,430 Så i dette tilfælde, er disse betingelser er ikke gensidigt udelukker hinanden. 591 00:29:37,430 --> 00:29:41,040 Og fordi der er intet stoppe denne betingelse fra at vurdere, om dette 592 00:29:41,040 --> 00:29:44,730 man allerede har, de er bare alle kommer til at printe ud. 593 00:29:44,730 --> 00:29:46,222 Så hvordan kan jeg løse dette? 594 00:29:46,222 --> 00:29:47,608 >> PUBLIKUM: else hvis'er? 595 00:29:47,608 --> 00:29:48,910 >> LAUREN CARVALHO: Du kan bruge ellers hvis'er. 596 00:29:48,910 --> 00:29:50,590 Jeg kunne ændre rækkefølgen af disse, right? 597 00:29:50,590 --> 00:29:53,800 Hvis jeg gjorde dette ene først? 598 00:29:53,800 --> 00:29:55,120 Tja, faktisk, nej. 599 00:29:55,120 --> 00:29:57,100 Det ville ikke fungere for 95. 600 00:29:57,100 --> 00:29:58,490 >> LUCAS FREITAS: Nej, bare de ellers hvis'er. 601 00:29:58,490 --> 00:30:01,720 >> LAUREN CARVALHO: Den ellers IFS ville have fastsat dette. 602 00:30:01,720 --> 00:30:07,050 Betyder at rydde op i forvirringen mellem IFS og ellers hvis'er? 603 00:30:07,050 --> 00:30:11,480 >> PUBLIKUM: Jeg ville bare spørge dig, hvis du har brugt andet, hvis, vil det stoppe? 604 00:30:11,480 --> 00:30:11,840 >> LAUREN CARVALHO: Right. 605 00:30:11,840 --> 00:30:13,330 Så kun denne første. 606 00:30:13,330 --> 00:30:16,535 Hvis jeg kom ind i nummer 95, men denne ville have trykt ud, og det aldrig 607 00:30:16,535 --> 00:30:17,934 ville have nået til det andet. 608 00:30:17,934 --> 00:30:22,570 >> LUCAS FREITAS: Lige slags tænker på det, som om det sker, skal du gøre dette. 609 00:30:22,570 --> 00:30:26,990 Det andet er ligesom hvis ikke, kontrol til dette, og derefter gøre det. 610 00:30:26,990 --> 00:30:28,690 Så ligesom de alle er gensidigt eksklusiv. 611 00:30:28,690 --> 00:30:30,270 Du kan ikke komme ind i to over dem. 612 00:30:30,270 --> 00:30:32,800 613 00:30:32,800 --> 00:30:37,630 >> PUBLIKUM: Kan man bruge en logisk Og for den situation? 614 00:30:37,630 --> 00:30:39,370 >> LAUREN CARVALHO: Ja. 615 00:30:39,370 --> 00:30:41,400 Det er en anden måde, at vi kunne har løst dette problem. 616 00:30:41,400 --> 00:30:43,470 Vi kunne have defineret spænder, right? 617 00:30:43,470 --> 00:30:49,410 Så jeg kunne have sagt, hvis n er større end 90 og mindre end - 618 00:30:49,410 --> 00:30:52,135 Nå, jeg tror denne ikke rigtig noget, men her kunne jeg have sagt, hvis 619 00:30:52,135 --> 00:30:53,960 n er større end 80 og mindre end 90. 620 00:30:53,960 --> 00:30:55,570 Større end 70, er mindre end 80 år. 621 00:30:55,570 --> 00:30:59,077 Det ville også have virket. 622 00:30:59,077 --> 00:30:59,891 >> [Latter] 623 00:30:59,891 --> 00:31:00,980 >> LUCAS FREITAS: Hun er bange. 624 00:31:00,980 --> 00:31:02,070 >> LAUREN CARVALHO: Må ikke være bange. 625 00:31:02,070 --> 00:31:04,570 >> LUCAS FREITAS: Det er ikke at det vil være forkert. 626 00:31:04,570 --> 00:31:08,630 Det er bare, at det er unødvendigt verbose. 627 00:31:08,630 --> 00:31:13,480 Ligesom i datalogi, bør man være så enkel som muligt, så længe 628 00:31:13,480 --> 00:31:14,730 du har funktionaliteten. 629 00:31:14,730 --> 00:31:16,725 630 00:31:16,725 --> 00:31:17,835 Vil du have slik? 631 00:31:17,835 --> 00:31:19,084 >> PUBLIKUM: Har ikke brug for det. 632 00:31:19,084 --> 00:31:20,340 >> LAUREN CARVALHO: Du skræmmer alle, Lucas. 633 00:31:20,340 --> 00:31:21,590 >> LUCAS FREITAS: Undskyld. 634 00:31:21,590 --> 00:31:24,650 635 00:31:24,650 --> 00:31:29,510 >> LAUREN CARVALHO: David også nævnt disse skifter erklæring i klassen. 636 00:31:29,510 --> 00:31:33,180 Dybest set, hvad der foregår, er kontakten sætning tager en variabel. 637 00:31:33,180 --> 00:31:35,760 I dette tilfælde tager vi et heltal. 638 00:31:35,760 --> 00:31:39,220 >> Hvis heltal er 1, vil vi udskrive, "Du valgte en lille 639 00:31:39,220 --> 00:31:42,000 nummer. »Hvis tal er 1," Du plukket en mellemlang tal. "Hvis 640 00:31:42,000 --> 00:31:45,730 heltal er 3, "Du valgte en høj nummer ". Og jeg havde også en standard sag 641 00:31:45,730 --> 00:31:50,020 hernede, men det er ikke at vise op, hvilket er for dårligt. 642 00:31:50,020 --> 00:31:53,120 643 00:31:53,120 --> 00:31:55,360 >> Dybest set er dette blot en anden syntaks. 644 00:31:55,360 --> 00:31:58,640 Vi kunne have gennemført denne eksakt samme med hvis og andet, hvis 645 00:31:58,640 --> 00:31:59,390 udsagn. 646 00:31:59,390 --> 00:32:05,530 Men når der er masser af forskellige betingelser og masser af forskellige 647 00:32:05,530 --> 00:32:10,350 variationer på hvad du vil gøre for hver indgang, er dette en mulighed. 648 00:32:10,350 --> 00:32:13,262 Så det er bare en god syntaks at vide. 649 00:32:13,262 --> 00:32:15,099 Ja? 650 00:32:15,099 --> 00:32:21,380 >> PUBLIKUM: Hvorfor er der ikke en omvendt skråstreg n i den første? 651 00:32:21,380 --> 00:32:23,340 >> LAUREN CARVALHO: For deroppe? 652 00:32:23,340 --> 00:32:27,600 Der er ingen backslash n deroppe fordi GetInt - 653 00:32:27,600 --> 00:32:30,140 hvis du forsøger dette, vil det give dig denne prompt. 654 00:32:30,140 --> 00:32:32,290 Giv mig et helt tal mellem 1 og 3. 655 00:32:32,290 --> 00:32:35,550 Og hvis jeg sætter modreaktion n, ville det tage mig til næste linje, men jeg bare 656 00:32:35,550 --> 00:32:38,690 ville have dem til at skrive heltal lige efter kolon. 657 00:32:38,690 --> 00:32:40,120 Du kunne have sat bagslag n. 658 00:32:40,120 --> 00:32:42,374 Det er ikke en big deal. 659 00:32:42,374 --> 00:32:43,288 Ja? 660 00:32:43,288 --> 00:32:50,525 >> PUBLIKUM: Til denne kode, er dette tilfælde, er, at fordi 661 00:32:50,525 --> 00:32:51,760 det er den første sag? 662 00:32:51,760 --> 00:32:52,260 Fordi - 663 00:32:52,260 --> 00:32:53,400 >> LAUREN CARVALHO: Nej, nej, nej. 664 00:32:53,400 --> 00:32:56,480 Så dette er at give mig et heltal mellem 1 og 3. 665 00:32:56,480 --> 00:32:59,070 Hvis n er 1, jeg udskrive denne. 666 00:32:59,070 --> 00:33:02,740 Hvis jeg havde bedt om breve, jeg kunne have sagde giv mig et bogstav mellem A 667 00:33:02,740 --> 00:33:04,935 og C. Så dette ville være tilfældet A. 668 00:33:04,935 --> 00:33:05,910 >> PUBLIKUM: [uhørligt]. 669 00:33:05,910 --> 00:33:08,090 Sagen ville bare [uhørligt] 670 00:33:08,090 --> 00:33:11,260 >> LAUREN CARVALHO: Ja, rigtigt. 671 00:33:11,260 --> 00:33:11,550 Ja? 672 00:33:11,550 --> 00:33:14,861 >> PUBLIKUM: Hvad hvis du ønskede at have mere af en relationel udtryk? 673 00:33:14,861 --> 00:33:17,645 Så i stedet for at sige n er lig med 1, [uhørligt] 674 00:33:17,645 --> 00:33:21,050 n er større end 1 i den første sag? 675 00:33:21,050 --> 00:33:26,630 >> LAUREN CARVALHO: Faktisk, hvis jeg ikke definere nogle af disse tilfælde ville dette 676 00:33:26,630 --> 00:33:28,500 skal bære ned. 677 00:33:28,500 --> 00:33:30,680 Så faktisk, måske er det ikke hvad du spørger. 678 00:33:30,680 --> 00:33:36,240 >> LUCAS FREITAS: Jeg tror, ​​hun spørger, om sagen var n større end 0, sag 679 00:33:36,240 --> 00:33:37,150 mindre end 0. 680 00:33:37,150 --> 00:33:39,210 >> LAUREN CARVALHO: Måske kontakten erklæring er ikke rigtig, hvad du ønsker 681 00:33:39,210 --> 00:33:39,880 til brug i denne sag. 682 00:33:39,880 --> 00:33:42,420 >> LUCAS FREITAS: Den switch-statement er bare for værdi, så du tjekker af 683 00:33:42,420 --> 00:33:45,370 værdien er ligesom dette eller hint. 684 00:33:45,370 --> 00:33:47,025 Så kan du faktisk ikke sætte betingelser. 685 00:33:47,025 --> 00:33:50,988 686 00:33:50,988 --> 00:33:55,920 >> PUBLIKUM: Hvad hvis personen typer med [uhørligt]? 687 00:33:55,920 --> 00:33:58,240 >> LAUREN CARVALHO: Det ville have været min standard tilfælde, som desværre 688 00:33:58,240 --> 00:33:58,910 du ikke kan se. 689 00:33:58,910 --> 00:34:02,240 >> LUCAS FREITAS: [uhørligt] gøre dem se. 690 00:34:02,240 --> 00:34:03,690 >> LAUREN CARVALHO: Faktisk ved du hvad? 691 00:34:03,690 --> 00:34:07,795 Lad os bare gå for at studere 50, og jeg vil bare zoome ind på dias på undersøgelse 692 00:34:07,795 --> 00:34:10,610 50, fordi det er bare irriterende. 693 00:34:10,610 --> 00:34:14,938 Så lad mig faktisk gå til tilstand. 694 00:34:14,938 --> 00:34:17,860 Det er bare at tage lidt tid. 695 00:34:17,860 --> 00:34:26,940 696 00:34:26,940 --> 00:34:27,840 >> Ok. 697 00:34:27,840 --> 00:34:29,590 Så jeg er ked af det. 698 00:34:29,590 --> 00:34:33,625 Mindst nu vi vil være i stand til at se alt uden at afskære. 699 00:34:33,625 --> 00:34:36,230 700 00:34:36,230 --> 00:34:36,969 Ok. 701 00:34:36,969 --> 00:34:43,800 >> Så hvis de sætter i en 10, ville vi som standard her til min standard sag, og jeg 702 00:34:43,800 --> 00:34:46,510 ville bare udskrive ugyldig, fordi jeg bedt dem om at indtaste et heltal 703 00:34:46,510 --> 00:34:49,460 mellem 1 og 3. 704 00:34:49,460 --> 00:34:50,650 Andre spørgsmål? 705 00:34:50,650 --> 00:34:51,081 Ja? 706 00:34:51,081 --> 00:34:57,590 >> PUBLIKUM: Lad os sige, for tilfælde af en sag tre, siger du ville have det til at være alle de 707 00:34:57,590 --> 00:35:00,950 samme ting, så du valgte en række det er ikke et medium tal. 708 00:35:00,950 --> 00:35:03,840 I så fald ville det være overflødigt? 709 00:35:03,840 --> 00:35:08,371 Vil du bare ændre teksten i både af dem, eller vil der være nogle 710 00:35:08,371 --> 00:35:08,617 redundans? 711 00:35:08,617 --> 00:35:11,920 Er der nogen måde at kombinere [Uhørligt]? 712 00:35:11,920 --> 00:35:15,810 >> LAUREN CARVALHO: Der er måder at kombinere dem, men jeg tror du kan 713 00:35:15,810 --> 00:35:18,730 kun kombinere hosliggende. 714 00:35:18,730 --> 00:35:22,250 Så hvis jeg ikke definere noget i tilfælde to, vil dette 715 00:35:22,250 --> 00:35:24,130 gælder for begge tilfælde. 716 00:35:24,130 --> 00:35:28,110 Åh, hvis jeg ikke sætte noget til sagen en, ville dette gælde for både 717 00:35:28,110 --> 00:35:30,620 tilfælde et og to. 718 00:35:30,620 --> 00:35:33,616 Hvis det giver mening. 719 00:35:33,616 --> 00:35:35,872 >> PUBLIKUM: Kan du gentage det en? 720 00:35:35,872 --> 00:35:36,670 >> LUCAS FREITAS: OK. 721 00:35:36,670 --> 00:35:39,950 Hvis du gjorde dybest set, ligesom, du har de samme ting, men du behøver ikke sætte 722 00:35:39,950 --> 00:35:46,820 noget her, ville du være enten Hvis en eller tilfælde to, gøre dette. 723 00:35:46,820 --> 00:35:47,930 Right? 724 00:35:47,930 --> 00:35:54,010 Og denne pause betyder, at hvis du får i dette tilfælde bare lade. 725 00:35:54,010 --> 00:35:55,030 Så det er hvad bremsen betyder. 726 00:35:55,030 --> 00:35:59,755 Så hvis jeg bare gjorde det, du ser, er det tilfælde en, og du vil bare gøre dette. 727 00:35:59,755 --> 00:36:02,110 Hvis det var tilfældet to, ville det også bare komme her og gøre det. 728 00:36:02,110 --> 00:36:03,544 >> PUBLIKUM: Men du kan gøre det? 729 00:36:03,544 --> 00:36:05,140 Hvis der er noget for tilfælde to [uhørligt] 730 00:36:05,140 --> 00:36:07,095 >> LAUREN CARVALHO: Jeg tror ikke på du kan gøre det. 731 00:36:07,095 --> 00:36:09,380 Jeg tror ikke, du kan springe rundt. 732 00:36:09,380 --> 00:36:11,070 Kan du gøre det, Rob? 733 00:36:11,070 --> 00:36:13,300 Det tror jeg ikke. 734 00:36:13,300 --> 00:36:16,548 >> PUBLIKUM: Så kun ét nummer kan gå efter en sag, right? 735 00:36:16,548 --> 00:36:21,410 Der kan ikke være tilfældet et, komma, to? 736 00:36:21,410 --> 00:36:21,970 >> LUCAS FREITAS: Nej, det kan du ikke. 737 00:36:21,970 --> 00:36:25,085 Du kan bestemt ikke. 738 00:36:25,085 --> 00:36:28,770 >> LAUREN CARVALHO: Jeg mener, pointen er dette er en mulighed, og det er ikke måske 739 00:36:28,770 --> 00:36:31,940 passer til din use case, så du derefter ville bruge, hvis forholdene. 740 00:36:31,940 --> 00:36:33,906 >> PUBLIKUM: Så hvorfor skulle du gøre det? 741 00:36:33,906 --> 00:36:34,314 Kontakten? 742 00:36:34,314 --> 00:36:38,540 >> LAUREN CARVALHO: Jeg vil bruge dette hvis du har meget definerede - 743 00:36:38,540 --> 00:36:39,730 faktisk, Lucas, er du blokerer. 744 00:36:39,730 --> 00:36:40,982 >> LUCAS FREITAS: Åh, undskyld. 745 00:36:40,982 --> 00:36:44,200 >> LAUREN CARVALHO: Hvis du har meget definerede adfærd, du ønsker til 746 00:36:44,200 --> 00:36:48,105 hver indgang, kan dette være en lidt mere kortfattet end at skrive ud 747 00:36:48,105 --> 00:36:49,530 en if-sætning for hver enkelt. 748 00:36:49,530 --> 00:36:51,210 >> PUBLIKUM: Hvad gør pause betyder igen? 749 00:36:51,210 --> 00:36:53,180 >> LAUREN CARVALHO: Pausen betyder stoppe. 750 00:36:53,180 --> 00:36:56,860 Husk, at hvis jeg ikke havde denne pause her, ville vi lige har faldet ned 751 00:36:56,860 --> 00:36:58,110 ind i det næste tilfælde. 752 00:36:58,110 --> 00:37:00,820 >> LUCAS FREITAS: Break midler til at få ud af switch-statementet. 753 00:37:00,820 --> 00:37:03,400 For hvis det er 1, vil jeg at udskrive denne og forlade. 754 00:37:03,400 --> 00:37:04,640 Jeg ønsker ikke at kontrollere noget andet. 755 00:37:04,640 --> 00:37:05,790 >> PUBLIKUM: Du ønsker ikke at udskrive noget andet. 756 00:37:05,790 --> 00:37:06,730 >> LUCAS FREITAS: Ja. 757 00:37:06,730 --> 00:37:08,260 Fordi det er gensidigt udelukkende. 758 00:37:08,260 --> 00:37:11,378 >> PUBLIKUM: Og betyder det kun fortsætte til næste tilfældet, hvis det første tilfælde 759 00:37:11,378 --> 00:37:11,850 er ikke sandt? 760 00:37:11,850 --> 00:37:14,120 Eller er det teste alle de tilfælde, på samme tid? 761 00:37:14,120 --> 00:37:16,300 >> LUCAS FREITAS: Nej, det kontrol sekventielt. 762 00:37:16,300 --> 00:37:18,070 Sekventielt, ja. 763 00:37:18,070 --> 00:37:21,840 Endnu et spørgsmål, så er vi nødt til at videre, så vi kan dække alt. 764 00:37:21,840 --> 00:37:22,300 Ja? 765 00:37:22,300 --> 00:37:25,280 >> PUBLIKUM: Så for sagen, kunne have gjort noget udover bare den ene? 766 00:37:25,280 --> 00:37:27,680 Kunne du give det en rækkevidde? 767 00:37:27,680 --> 00:37:28,580 >> LUCAS FREITAS: Nej. 768 00:37:28,580 --> 00:37:29,900 >> LAUREN CARVALHO: Jeg tror ikke, kan du give det et område. 769 00:37:29,900 --> 00:37:31,430 >> LUCAS FREITAS: Du kan du ikke kan ikke give det et område. 770 00:37:31,430 --> 00:37:33,190 >> PUBLIKUM: Sagen er specifik [Uhørligt]. 771 00:37:33,190 --> 00:37:34,840 >> LUCAS FREITAS: Switch er en slags værdier. 772 00:37:34,840 --> 00:37:38,400 Du laver forskellige ting, afhængigt på en værdi, en bestemt værdi. 773 00:37:38,400 --> 00:37:41,050 Du kan ikke gøre for rækkevidde, kan du ikke gøre noget andet. 774 00:37:41,050 --> 00:37:43,055 Det er bare endnu et værktøj til at se. 775 00:37:43,055 --> 00:37:46,570 >> LAUREN CARVALHO: De fleste mennesker ikke bruger skifte udsagn meget i CS50, 776 00:37:46,570 --> 00:37:48,760 men det er der. 777 00:37:48,760 --> 00:37:49,920 >> Ok. 778 00:37:49,920 --> 00:37:53,870 Så den næste ting vi kommer til at snakke om, er den ternære operatør. 779 00:37:53,870 --> 00:37:56,650 Dette er blot en anden type betinget. 780 00:37:56,650 --> 00:38:01,460 Dybest set, hvad der foregår her, er jeg beder om et tal, og hvis n er 781 00:38:01,460 --> 00:38:05,550 større end 100, jeg har tænkt mig at udskrive "Høj". Hvis det ikke er, vil jeg 782 00:38:05,550 --> 00:38:07,010 udskrive "lav". 783 00:38:07,010 --> 00:38:11,230 >> Så hvad det gør, er betingelsen er lige her i parentes, og du 784 00:38:11,230 --> 00:38:13,550 kan slags tænke på spørgsmålet da jeg spørger, om 785 00:38:13,550 --> 00:38:15,030 dette er sandt eller ej. 786 00:38:15,030 --> 00:38:18,485 Hvis det er sandt, vil jeg gøre det først ting, og hvis det ikke er sandt, jeg er 787 00:38:18,485 --> 00:38:20,020 kommer til at gøre denne anden ting. 788 00:38:20,020 --> 00:38:23,520 789 00:38:23,520 --> 00:38:27,960 >> Eventuelle spørgsmål om ternære operatør? 790 00:38:27,960 --> 00:38:30,880 >> LUCAS FREITAS: Blot ønsker note fra David er, at når du har en 791 00:38:30,880 --> 00:38:33,346 betingelse - 792 00:38:33,346 --> 00:38:35,690 >> LAUREN CARVALHO: Jeg gætter Davids ser via live stream. 793 00:38:35,690 --> 00:38:37,210 >> LUCAS FREITAS: Han laver life stream lige nu. 794 00:38:37,210 --> 00:38:41,730 Så når du har en tilstand, du formodes at sætte krøllede parenteser, 795 00:38:41,730 --> 00:38:45,320 ligesom vi har i en switch erklæring her. 796 00:38:45,320 --> 00:38:46,750 Vi har krøllede parenteser her. 797 00:38:46,750 --> 00:38:49,560 For uanset betingelser, er du formodes også at sætte det. 798 00:38:49,560 --> 00:38:50,820 >> LAUREN CARVALHO: Du vil se dette i stil guide. 799 00:38:50,820 --> 00:38:52,900 Vi behøver faktisk ikke have den styleguide lige nu. 800 00:38:52,900 --> 00:38:53,930 Jeg tror Davids stadig arbejder. 801 00:38:53,930 --> 00:38:55,100 >> LUCAS FREITAS: Han sagde, at det er bare at arbejde nu. 802 00:38:55,100 --> 00:38:56,120 >> LAUREN CARVALHO: Åh, er det til at virke nu? 803 00:38:56,120 --> 00:38:57,520 OK. 804 00:38:57,520 --> 00:39:02,060 Så tilsyneladende dette år i den stil guide, selv hvis du bare har en linje, 805 00:39:02,060 --> 00:39:06,040 you got at sætte dem krøllede parenteser i. 806 00:39:06,040 --> 00:39:09,480 Du behøver ikke nødvendigvis at for funktionaliteten af ​​programmet. 807 00:39:09,480 --> 00:39:12,210 Og måske skulle vi bare tage en pause efter de betingelser og gå lige 808 00:39:12,210 --> 00:39:14,620 til den stil guide for at rydde op på nogle af disse ting? 809 00:39:14,620 --> 00:39:15,010 >> LUCAS FREITAS: Ja. 810 00:39:15,010 --> 00:39:15,775 Har du et spørgsmål? 811 00:39:15,775 --> 00:39:17,580 >> PUBLIKUM: Nej, jeg vil bare vente indtil den stil guide. 812 00:39:17,580 --> 00:39:19,578 >> PUBLIKUM: Kan du gå tilbage til den ternære operatør? 813 00:39:19,578 --> 00:39:23,360 >> LAUREN CARVALHO: Ternary, ja. 814 00:39:23,360 --> 00:39:29,010 >> LUCAS FREITAS: Ternary operatør er dybest set en hvis ellers erklæring, men 815 00:39:29,010 --> 00:39:33,590 i stedet for at skulle have de to linjer at kontrollere en hvis og derefter 816 00:39:33,590 --> 00:39:36,600 andet, du bare har én linje. 817 00:39:36,600 --> 00:39:40,930 Så dybest set, hvis jeg ønsker at give en streng en værdi på høj eller lav, og jeg 818 00:39:40,930 --> 00:39:46,270 ønsker at gøre en høj, hvis n er større end 100 eller lav, hvis det er mindre, hvad jeg kan gøre 819 00:39:46,270 --> 00:39:47,730 er dette [uhørligt] 820 00:39:47,730 --> 00:39:53,060 strengen vil være, og så er jeg spørger programmet er n større end 100? 821 00:39:53,060 --> 00:39:55,750 >> Så det er derfor, jeg har dette udtryk i parentes og derefter 822 00:39:55,750 --> 00:39:56,580 spørgsmålstegnet. 823 00:39:56,580 --> 00:39:59,110 Jeg beder det større end 100? 824 00:39:59,110 --> 00:40:02,310 Hvis det er, går det at være høj. 825 00:40:02,310 --> 00:40:03,850 Hvis det ikke er, går det at være lav. 826 00:40:03,850 --> 00:40:07,310 >> Så dybest set, hvad du synes er du spørger et spørgsmål, så du lægger i parentes 827 00:40:07,310 --> 00:40:08,620 tilstanden. 828 00:40:08,620 --> 00:40:11,160 Så kan du sætte spørgsmålstegn fordi du spørger det. 829 00:40:11,160 --> 00:40:15,240 Og hvis dette er sandt, vil det være i den første værdi [uhørligt] her. 830 00:40:15,240 --> 00:40:18,176 Hvis det ikke er, vil jeg sætte værdi, der er efter kolon. 831 00:40:18,176 --> 00:40:21,580 Giver det mening? 832 00:40:21,580 --> 00:40:24,730 >> Det er også noget, der er som en værktøj i C, men du behøver ikke at 833 00:40:24,730 --> 00:40:25,700 specifikt bruge det. 834 00:40:25,700 --> 00:40:29,890 Men CS folk normalt kan lide at fordi det bare sparer linjer. 835 00:40:29,890 --> 00:40:31,050 >> LAUREN CARVALHO: Det er meget elegant. 836 00:40:31,050 --> 00:40:32,951 Det gør en masse i bare én sætning. 837 00:40:32,951 --> 00:40:36,077 >> PUBLIKUM: Så procenttegn er bare uanset resultater på 838 00:40:36,077 --> 00:40:36,799 den foregående linje? 839 00:40:36,799 --> 00:40:38,260 >> LAUREN CARVALHO: Åh, jeg er ked af det. 840 00:40:38,260 --> 00:40:42,670 Denne procent tegn er faktisk pladsholder for denne s. 841 00:40:42,670 --> 00:40:46,160 I en printf erklæring, du har fået denne snor her, hvilket er, hvad der kommer til at 842 00:40:46,160 --> 00:40:48,440 udskrive, men du kan ikke bare sætte dette er derinde. 843 00:40:48,440 --> 00:40:50,290 Ellers ville det udskrive ud s bogstaveligt. 844 00:40:50,290 --> 00:40:54,070 Så vi sætter en procent her til at holde dette sted holdt uanset 845 00:40:54,070 --> 00:40:57,590 kommer efter kommaet. 846 00:40:57,590 --> 00:40:59,470 >> Så for en streng, har du fået procent sek. 847 00:40:59,470 --> 00:41:00,950 For et heltal, procent i. 848 00:41:00,950 --> 00:41:03,330 For en svømmer, procent f.. 849 00:41:03,330 --> 00:41:06,960 Du vil se dem, som vi se flere eksempler. 850 00:41:06,960 --> 00:41:09,230 Men måske skulle du snakke om stil guide for en stund, nu 851 00:41:09,230 --> 00:41:10,480 at det er op. 852 00:41:10,480 --> 00:41:21,040 853 00:41:21,040 --> 00:41:24,010 >> LUCAS FREITAS: Hvis du går til cs50.net/style, du kommer til at se 854 00:41:24,010 --> 00:41:25,760 den stil guide. 855 00:41:25,760 --> 00:41:32,420 For problemet sæt, din score for problem sæt består af omfang, 856 00:41:32,420 --> 00:41:35,510 som dybest set betyder, at hvis du gjorde alt de dele af problemet, der er, eller hvis du 857 00:41:35,510 --> 00:41:37,170 forsøgt noget. 858 00:41:37,170 --> 00:41:41,120 Den anden ting er korrekthed, som middel er dit program gør, hvad den 859 00:41:41,120 --> 00:41:44,520 skulle gøre, eller gør det har fejl, eller er det ikke gør, hvad 860 00:41:44,520 --> 00:41:45,620 det er meningen at gøre. 861 00:41:45,620 --> 00:41:51,420 >> Den tredje ting er design, hvilket betyder er du gennemføre dette godt, eller er 862 00:41:51,420 --> 00:41:54,520 du bruge unødvendige udsagn? 863 00:41:54,520 --> 00:41:59,400 Så for eksempel, hvis du ønsker at gentage et nummer 10 gange, skriver du et 864 00:41:59,400 --> 00:42:03,040 for loop eller er du bare gør 10 gange den samme erklæring, bare gør 865 00:42:03,040 --> 00:42:04,060 kopiere og indsætte. 866 00:42:04,060 --> 00:42:05,760 Så design er for det. 867 00:42:05,760 --> 00:42:07,420 >> Og endelig har du stil. 868 00:42:07,420 --> 00:42:12,000 Style er ligesom at dømme hvis din kode ser 869 00:42:12,000 --> 00:42:14,050 læsbar og slags smuk. 870 00:42:14,050 --> 00:42:16,520 Det bare dybest set betyder er din kode læsbar? 871 00:42:16,520 --> 00:42:20,560 Ville en anden, der var på udkig er din kode være i stand til at forstå, hvad 872 00:42:20,560 --> 00:42:21,250 det gør? 873 00:42:21,250 --> 00:42:25,360 Har det har kommentarer og lignende? 874 00:42:25,360 --> 00:42:30,430 >> Lad os tale om den stil, du skulle bruge. 875 00:42:30,430 --> 00:42:32,200 Den første ting er kommentarer. 876 00:42:32,200 --> 00:42:35,280 Kommentarer er meget vigtigt for din kode, fordi nogle gange du laver 877 00:42:35,280 --> 00:42:38,750 dit program, og du ved præcis, hvad du ønsker at gøre, så du bare begynde 878 00:42:38,750 --> 00:42:43,120 kodning, bare skrive op en flok C. Men hvis en anden leder er du 879 00:42:43,120 --> 00:42:47,500 kode, er de ikke kommer til at være i stand til forstå det, fordi de ikke kender 880 00:42:47,500 --> 00:42:51,420 de ting, der er i dit hoved, ligesom den pesudocode, så måske vil de 881 00:42:51,420 --> 00:42:53,970 har en hård tid at forstå hvad koden gør. 882 00:42:53,970 --> 00:42:57,900 >> Så kommentarer er virkelig nyttigt at forklare til nogen, der kigger på 883 00:42:57,900 --> 00:43:00,880 din kode, hvad det gør, og faktisk selv for dig, 884 00:43:00,880 --> 00:43:01,880 de er meget nyttige. 885 00:43:01,880 --> 00:43:05,740 Som du gå til hårdere og hårde Psets, du kommer til at se, at koden bliver 886 00:43:05,740 --> 00:43:10,590 længere tid, og så kommentarer er virkelig vigtigt, så du kan huske, hvad hver 887 00:43:10,590 --> 00:43:13,320 del af dit program gør. 888 00:43:13,320 --> 00:43:16,920 >> For at sætte en kommentar, kan du bare gøre en skråstreg skråstreg og derefter skrive en kommentar. 889 00:43:16,920 --> 00:43:21,250 Og hele linjen er en del af en kommentar, og uanset hvad du skriver ned, 890 00:43:21,250 --> 00:43:24,550 det kommer ikke til at være bruges til din kode. 891 00:43:24,550 --> 00:43:27,993 Det er dybest set ligesom oversætteren kommer til at se bort fra dette. 892 00:43:27,993 --> 00:43:29,290 Giver det mening? 893 00:43:29,290 --> 00:43:31,710 >> PUBLIKUM: Hvad gør du igen at skrive en kommentar? 894 00:43:31,710 --> 00:43:33,260 >> LUCAS FREITAS: dette? 895 00:43:33,260 --> 00:43:36,020 Skråstregen skråstreg? 896 00:43:36,020 --> 00:43:39,810 Når du skriver slash slash, uanset er i denne linje ikke vil 897 00:43:39,810 --> 00:43:42,260 anses for at være C. Ja? 898 00:43:42,260 --> 00:43:45,910 >> PUBLIKUM: Så efter den kommentar, du bare ind og starte en ny linje? 899 00:43:45,910 --> 00:43:47,120 >> LUCAS FREITAS: Ja, præcis. 900 00:43:47,120 --> 00:43:50,010 >> LAUREN CARVALHO: Den skråstreg skråstreg er for enkelt kommentarer linjer. 901 00:43:50,010 --> 00:43:52,910 >> LUCAS FREITAS: For eksempel, her har vi - 902 00:43:52,910 --> 00:43:54,160 lad mig zoome ind - 903 00:43:54,160 --> 00:43:56,530 904 00:43:56,530 --> 00:44:01,180 for eksempel, her er jeg erklære en float, men måske hvis du bare sætte dette 905 00:44:01,180 --> 00:44:04,980 i din kode, ligesom du har ingen idé hvad det gør, ligesom faktisk 906 00:44:04,980 --> 00:44:06,950 en person, der ser på denne kode bliver, som, hvad 907 00:44:06,950 --> 00:44:09,190 dælen foregår der? 908 00:44:09,190 --> 00:44:12,890 >> Hvis du sætter en kommentar siger "konvertere Fahrenheit til Celsius, det gør meget 909 00:44:12,890 --> 00:44:13,450 mere mening. 910 00:44:13,450 --> 00:44:15,480 Du er ligesom, OK, du er laver en konvertering. 911 00:44:15,480 --> 00:44:16,730 Giver det mening? 912 00:44:16,730 --> 00:44:19,860 913 00:44:19,860 --> 00:44:24,960 Så det er bare noget, der hjælper folk klar din kode og også gøre 914 00:44:24,960 --> 00:44:28,290 du være i stand til at organisere din kode bedre. 915 00:44:28,290 --> 00:44:33,080 >> Den anden ting er, at du kan gøre multi-line kommentarer, så har én 916 00:44:33,080 --> 00:44:34,850 kommentar til en flok af linjer. 917 00:44:34,850 --> 00:44:38,880 I stedet for at skulle sætte skråstreg skråstreg, Den første linje kommentarer, skråstreg skråstreg, 918 00:44:38,880 --> 00:44:43,590 den anden linje, og så videre, du kan bruge skråstreg stjerne. 919 00:44:43,590 --> 00:44:46,330 Den måde, du gør det er, at for den første linje af den kommentar, er du 920 00:44:46,330 --> 00:44:49,650 kommer til at gøre en skråstreg stjerne stjerne, så ligesom det. 921 00:44:49,650 --> 00:44:56,900 Ligesom her har vi i starten af et program, du plejer at lægge, hvem du 922 00:44:56,900 --> 00:44:59,530 er, hvad dette program gør, og den slags. 923 00:44:59,530 --> 00:45:01,900 Det er lidt ligesom en header for programmet. 924 00:45:01,900 --> 00:45:04,540 >> Igen, det er ikke noget, at en compiler vil bekymre sig om, men 925 00:45:04,540 --> 00:45:07,570 er det vigtigt for dig at vide, hvad dette Programmet gør, eller for andre mennesker 926 00:45:07,570 --> 00:45:09,960 at vide, hvad dit program gør. 927 00:45:09,960 --> 00:45:17,480 Så du behøver slash stjerne stjerne, og derefter sidste linje, du kommer til at gøre stjerne 928 00:45:17,480 --> 00:45:22,250 slash at være i stand til at lukke denne kommentar. 929 00:45:22,250 --> 00:45:26,140 Så dybest set for alle de andre linjer, du kan bare skrive hvad, og dette 930 00:45:26,140 --> 00:45:27,390 er alle kommer til at blive ignoreret. 931 00:45:27,390 --> 00:45:32,920 932 00:45:32,920 --> 00:45:37,780 >> Og også, ligesom stil, du se, at hver linje har en stjerne, og alle 933 00:45:37,780 --> 00:45:39,380 stjernerne er justeret. 934 00:45:39,380 --> 00:45:41,605 Det er vigtige ting, så at din kode ser temmelig. 935 00:45:41,605 --> 00:45:42,855 Lyder godt? 936 00:45:42,855 --> 00:45:45,320 937 00:45:45,320 --> 00:45:47,290 >> Nu betingelser. 938 00:45:47,290 --> 00:45:52,240 Hvad David sagde, at vi skulle faktisk sat i disse dias, er, at 939 00:45:52,240 --> 00:45:55,810 når du har nogen form for hvis udsagn eller nogen form for betingelser, 940 00:45:55,810 --> 00:46:00,700 du skal bruge krøllede parenteser for at vise, at dette er, hvad der kommer til at ske 941 00:46:00,700 --> 00:46:02,730 når du har den betingelse. 942 00:46:02,730 --> 00:46:07,560 Teknisk, når du har en tilstand og derefter den næste linie er blot en 943 00:46:07,560 --> 00:46:12,110 linje, behøver du ikke teknisk har at sætte de krøllede parenteser. 944 00:46:12,110 --> 00:46:16,930 >> Dybest set compiler ville forstå det alligevel som implicit. 945 00:46:16,930 --> 00:46:21,100 Men for CS50, beder vi jer til at sætte de krøllede parenteser bare så din 946 00:46:21,100 --> 00:46:24,560 kode er mere organiseret og mere læsevenlig. 947 00:46:24,560 --> 00:46:28,200 Fordi denne kode bliver længere, hvis du ikke har krøllede parenteser og sådan. 948 00:46:28,200 --> 00:46:29,150 Det bliver virkelig rodet. 949 00:46:29,150 --> 00:46:31,410 >> LAUREN CARVALHO: Dette er præcis hvad David netop påpeget 950 00:46:31,410 --> 00:46:33,000 i mine tidligere dias. 951 00:46:33,000 --> 00:46:36,690 Det helt fungerer uden krøllede seler, men for stilistiske årsager 952 00:46:36,690 --> 00:46:38,840 vi vil bede om, at du sætter dem i. 953 00:46:38,840 --> 00:46:42,400 >> Og når du begynder at køre style50, som er form for check 50 for 954 00:46:42,400 --> 00:46:44,860 stil, vil det minde dig om at gøre dette. 955 00:46:44,860 --> 00:46:49,710 >> LUCAS FREITAS: Og en anden ting er husk at sætte de krøllede parenteser sammen 956 00:46:49,710 --> 00:46:50,610 i hver linje. 957 00:46:50,610 --> 00:46:52,490 Så du gør det, for eksempel L's. 958 00:46:52,490 --> 00:46:56,910 Gå til næste linje, skal du åbne krøllede klampe, så skal du gå til næste linje. 959 00:46:56,910 --> 00:46:59,560 Fordybning, hvilket er fire rum. 960 00:46:59,560 --> 00:47:03,570 Så kan du skrive hvad, så en anden linje, og luk klammeparentes. 961 00:47:03,570 --> 00:47:06,870 Så vær sikker på, at både de krøllede seler er i forskellige linjer. 962 00:47:06,870 --> 00:47:11,548 >> PUBLIKUM: Så hvis denne kode havde ligesom 10 ellers hvis'er, bør dette 963 00:47:11,548 --> 00:47:13,040 være 10 sæt af beslag? 964 00:47:13,040 --> 00:47:14,610 >> LUCAS FREITAS: Ja, for hver af dem. 965 00:47:14,610 --> 00:47:14,930 Ja. 966 00:47:14,930 --> 00:47:17,980 Så hvis ellers hvis, og så videre. 967 00:47:17,980 --> 00:47:21,990 >> PUBLIKUM: Kan du ikke trykke på Tab for at indrykke? 968 00:47:21,990 --> 00:47:25,350 >> LUCAS FREITAS: Vi beder dig fyre til at bruge fire rum. 969 00:47:25,350 --> 00:47:30,060 Nogle teksteditorer oversætte fane som fire rum automatisk. 970 00:47:30,060 --> 00:47:34,850 gedit ikke gør det, så er du nødt til gøre space space space space. 971 00:47:34,850 --> 00:47:37,920 Det er også noget, at nogle programmører kun gøre faner, nogle 972 00:47:37,920 --> 00:47:40,560 programmører kun gøre fire rum, og nogle andre mennesker endda gøre 973 00:47:40,560 --> 00:47:41,900 to eller tre rum. 974 00:47:41,900 --> 00:47:44,040 Det er bare, at her vi beder jer at gøre fire rum. 975 00:47:44,040 --> 00:47:47,556 >> PUBLIKUM: Der er næsten helt sikkert nødt til at være en måde for gedit til 976 00:47:47,556 --> 00:47:48,645 automatisk [uhørligt]. 977 00:47:48,645 --> 00:47:50,480 Ligesom ingen [uhørligt] gør det. 978 00:47:50,480 --> 00:47:51,150 >> LUCAS FREITAS: Ja. 979 00:47:51,150 --> 00:47:53,165 Jeg tror, ​​du kan gå til Indstillinger. 980 00:47:53,165 --> 00:47:55,270 >> PUBLIKUM: Det allerede gør alt dette. 981 00:47:55,270 --> 00:47:56,410 >> LUCAS FREITAS: det allerede gør? 982 00:47:56,410 --> 00:47:56,890 OK. 983 00:47:56,890 --> 00:48:00,854 Så bare være sikker på, at du har fire rum. 984 00:48:00,854 --> 00:48:05,880 >> PUBLIKUM: Har vi nødt til at sætte det krøllede parentes i efter sløjfer så godt? 985 00:48:05,880 --> 00:48:07,470 >> LUCAS FREITAS: Ja. 986 00:48:07,470 --> 00:48:11,610 >> LAUREN CARVALHO: Når din indkapsling af en blok af kode, bare 987 00:48:11,610 --> 00:48:13,570 skal du bruge de krøllede parenteser. 988 00:48:13,570 --> 00:48:18,040 Og før du tror, ​​at vi bare være sticklers om dette uden god 989 00:48:18,040 --> 00:48:23,450 grund, hvis du fyre går på at få tech praktikophold hos store virksomheder, 990 00:48:23,450 --> 00:48:26,020 de vil give dig en stil vejledning, og de vil fortælle dig det er, hvad din 991 00:48:26,020 --> 00:48:27,220 kode for at se ud. 992 00:48:27,220 --> 00:48:31,120 Og selvom du har lært at kode som dette, måske i din praktik 993 00:48:31,120 --> 00:48:32,680 du bliver nødt til at gøre noget helt anderledes. 994 00:48:32,680 --> 00:48:35,115 De forventer du at være i overensstemmelse til deres stil. 995 00:48:35,115 --> 00:48:39,800 >> LUCAS FREITAS: Og en ting mere, er som bemærker du, hvordan jeg har ligesom x, 996 00:48:39,800 --> 00:48:42,290 plads, mindre, plads, 0? 997 00:48:42,290 --> 00:48:44,640 Når du har en operatør - 998 00:48:44,640 --> 00:48:50,490 Det kan være som plus, minus, gange, mindre, større, uanset operatør - 999 00:48:50,490 --> 00:48:57,560 du nødt til at sætte en plads på venstre og til højre for føreren. 1000 00:48:57,560 --> 00:49:00,570 >> LAUREN CARVALHO: Det er kaldet binære operander. 1001 00:49:00,570 --> 00:49:03,720 Bare sørg for at du altid plads ud af dine binære operander. 1002 00:49:03,720 --> 00:49:05,465 >> LUCAS FREITAS: Dette er ikke en binær operand. 1003 00:49:05,465 --> 00:49:07,010 >> LAUREN CARVALHO: Det er fordi det tager to. 1004 00:49:07,010 --> 00:49:08,260 >> LUCAS FREITAS: Åh, ja. 1005 00:49:08,260 --> 00:49:13,340 1006 00:49:13,340 --> 00:49:14,590 >> OK, kontakterne. 1007 00:49:14,590 --> 00:49:18,180 1008 00:49:18,180 --> 00:49:23,390 Først skal du nødt til at se, at ligesom i en hvis ellers erklæring, du har 1009 00:49:23,390 --> 00:49:28,280 at sætte klammeparentes på sin egen linje og under klammeparentes her. 1010 00:49:28,280 --> 00:49:32,240 Bemærk, at der er et enkelt mellemrum efter kontakt, ligesom i hvis og ellers 1011 00:49:32,240 --> 00:49:35,360 Vi havde en enkelt plads mellem det, og parenteserne. 1012 00:49:35,360 --> 00:49:36,610 Så du er nødt til at sætte det. 1013 00:49:36,610 --> 00:49:40,380 1014 00:49:40,380 --> 00:49:48,270 >> Og der er ikke plads lige efter hver af parenteser eller inden 1015 00:49:48,270 --> 00:49:49,080 af parenteser. 1016 00:49:49,080 --> 00:49:52,612 Så du kan se, at det er alle sammen, og også gerne op her. 1017 00:49:52,612 --> 00:49:53,940 >> Ja? 1018 00:49:53,940 --> 00:49:58,040 >> LAUREN CARVALHO: Jeg tror vi nødt til at flytte på. 1019 00:49:58,040 --> 00:50:02,340 >> LUCAS FREITAS: Så dette er en del af stil guide, som du har til CS50. 1020 00:50:02,340 --> 00:50:06,520 Sørg for at gå til cs50.net/style og tage et kig på dette. 1021 00:50:06,520 --> 00:50:09,250 Disse er alle meget vigtige til din stil score. 1022 00:50:09,250 --> 00:50:12,740 1023 00:50:12,740 --> 00:50:15,670 >> Lad mig gå tilbage til den erklæring. 1024 00:50:15,670 --> 00:50:17,070 >> LAUREN CARVALHO: Jeg vil hellere bare bruge style50. 1025 00:50:17,070 --> 00:50:18,920 Vi vil bare gå lige til sløjfer. 1026 00:50:18,920 --> 00:50:27,580 1027 00:50:27,580 --> 00:50:28,300 Ok. 1028 00:50:28,300 --> 00:50:33,720 >> Så lad os komme tilbage til indholdet, nu at vi har gået over styleguide. 1029 00:50:33,720 --> 00:50:37,220 Loops, har du set dem i Scratch, og vi kommer til at tale om dem i 1030 00:50:37,220 --> 00:50:39,210 C. 1031 00:50:39,210 --> 00:50:44,400 >> I en for-løkke, der er tre portioner til 1032 00:50:44,400 --> 00:50:45,440 angivelse af denne for-løkke. 1033 00:50:45,440 --> 00:50:49,040 Du har fået din initialisering i som du sætter dine variabler. 1034 00:50:49,040 --> 00:50:52,160 Du har fået din tilstand, som er kontrol for at se, om noget er 1035 00:50:52,160 --> 00:50:54,670 sandt eller falsk, og om loop bør fortsætte. 1036 00:50:54,670 --> 00:50:59,390 Og du har fået din opdatering, som opdaterer dine variabler. 1037 00:50:59,390 --> 00:51:05,310 >> Lad os bare tage et hurtigt kig på nogle C-koden i denne for-løkken i aktion. 1038 00:51:05,310 --> 00:51:08,860 Hvad foregår der er her i initialisering, vi sætte i til 0. 1039 00:51:08,860 --> 00:51:11,820 I den tilstand, vi tjekker om jeg er mindre end 10. 1040 00:51:11,820 --> 00:51:14,982 Og i opdateringen er vi forøgelse i. 1041 00:51:14,982 --> 00:51:20,490 Så hvad vil medføre dette for loop? 1042 00:51:20,490 --> 00:51:24,344 >> LUCAS FREITAS: Faktisk først og fremmest, tror du fyre vide, hvad jeg + + er? 1043 00:51:24,344 --> 00:51:25,850 >> PUBLIKUM: steg med 1. 1044 00:51:25,850 --> 00:51:26,870 >> LUCAS FREITAS: steget med 1, ja. 1045 00:51:26,870 --> 00:51:30,020 Så dette er det samme som laver jeg lig i plus 1. 1046 00:51:30,020 --> 00:51:35,890 Og bemærk, at vi ikke har en plads mellem I og + +. 1047 00:51:35,890 --> 00:51:37,600 >> Så tror du fyre ved, hvad det vil gøre? 1048 00:51:37,600 --> 00:51:39,060 Kan nogen fortælle mig? 1049 00:51:39,060 --> 00:51:41,463 Og måske få noget slik på grund af det? 1050 00:51:41,463 --> 00:51:42,912 >> PUBLIKUM: [uhørligt] 1051 00:51:42,912 --> 00:51:44,850 >> LUCAS FREITAS: OK. 1052 00:51:44,850 --> 00:51:45,400 [Uhørligt] 1053 00:51:45,400 --> 00:51:47,450 vise alle, senere [uhørligt]. 1054 00:51:47,450 --> 00:51:49,565 Ja, det kommer til at vise "Dette er CS50 "10 gange. 1055 00:51:49,565 --> 00:51:52,150 >> LAUREN CARVALHO: Jeg tror det var i titlen på diaset. 1056 00:51:52,150 --> 00:51:53,830 >> LUCAS FREITAS: Åh, ja. 1057 00:51:53,830 --> 00:51:54,670 >> [Latter] 1058 00:51:54,670 --> 00:51:56,790 >> LUCAS FREITAS: Det hjælper. 1059 00:51:56,790 --> 00:51:58,370 >> LAUREN CARVALHO: Så dem er efter sløjfer. 1060 00:51:58,370 --> 00:52:03,200 Vi kommer til at se nogle flere eksempler af efter sløjfer senere. 1061 00:52:03,200 --> 00:52:06,510 Men lad os faktisk tage et kig på anden type af sløjfe, som du vil støde på 1062 00:52:06,510 --> 00:52:08,920 i C, og det hedder while-løkken. 1063 00:52:08,920 --> 00:52:11,120 >> I en while-løkke, du har lige fået en betingelse. 1064 00:52:11,120 --> 00:52:14,790 Betingelsen er markeret i begynder, og hvis denne betingelse 1065 00:52:14,790 --> 00:52:18,450 evalueres til sand, så koden i krop, mens blokken 1066 00:52:18,450 --> 00:52:20,380 vil udføre. 1067 00:52:20,380 --> 00:52:23,000 Og koden vil fortsætte med at udføre, så længe der 1068 00:52:23,000 --> 00:52:24,450 betingelsen forbliver sandt. 1069 00:52:24,450 --> 00:52:28,350 1070 00:52:28,350 --> 00:52:33,320 >> Her er et eksempel på en while-løkke i C. Vi kommer til at sætte tæller til 10 til 1071 00:52:33,320 --> 00:52:34,580 begynde med. 1072 00:52:34,580 --> 00:52:41,800 Så længe tællingen er større end 0, vi kommer til at holde udskrive dette 1073 00:52:41,800 --> 00:52:43,360 variabel her. 1074 00:52:43,360 --> 00:52:47,080 Vi kommer til at formindske tæller og derefter kontrollere tilstanden igen. 1075 00:52:47,080 --> 00:52:51,370 Print, formindske, kontrol tilstanden igen. 1076 00:52:51,370 --> 00:52:54,530 >> Her har vi et eksempel, der relaterer på dit spørgsmål tidligere. 1077 00:52:54,530 --> 00:52:57,340 Vi havde procent s da vi var udskrive en streng, og nu, 1078 00:52:57,340 --> 00:53:03,420 vi udskrive en int, vi har en procent i som vores pladsholder stedet for. 1079 00:53:03,420 --> 00:53:09,250 Bogstaverne bør alle være temmelig intuitiv, S for streng, i for int. 1080 00:53:09,250 --> 00:53:15,400 >> Så hvis denne kode henretter, bør du tælle ned fra 10 til 0, udskrivning ud 1081 00:53:15,400 --> 00:53:15,925 hvert heltal. 1082 00:53:15,925 --> 00:53:19,460 >> LUCAS FREITAS: Og du kan tænke på procent så det føles som en tom 1083 00:53:19,460 --> 00:53:23,960 plads, og så er du sætte dette variabel her i det tomme rum. 1084 00:53:23,960 --> 00:53:27,640 Altså for eksempel, her vil jeg lige har en tom, og så er jeg sætte 1085 00:53:27,640 --> 00:53:30,262 tælle lige der, den værdi af optællingen. 1086 00:53:30,262 --> 00:53:32,710 Giver det mening? 1087 00:53:32,710 --> 00:53:35,860 >> Kunne jeg bare gøre ligesom printf og derefter citerer, tælle? 1088 00:53:35,860 --> 00:53:36,840 Ville det fungere? 1089 00:53:36,840 --> 00:53:37,980 >> PUBLIKUM: Nej. 1090 00:53:37,980 --> 00:53:41,190 >> LUCAS FREITAS: Nej, fordi det vil faktisk udskrive ordet "count" 1091 00:53:41,190 --> 00:53:42,850 stedet for at udskrive værdien. 1092 00:53:42,850 --> 00:53:46,080 Dette er, hvordan du gør det udskrive værdierne mod den variable i stedet for 1093 00:53:46,080 --> 00:53:47,670 blot navnet på variablen. 1094 00:53:47,670 --> 00:53:48,530 Eventuelle spørgsmål? 1095 00:53:48,530 --> 00:53:53,060 >> PUBLIKUM: Hvorfor bruger du til som en modsætning til mens? 1096 00:53:53,060 --> 00:53:56,130 >> LAUREN CARVALHO: Jeg ville bruge en til loop, hvis jeg ved præcis, hvor mange 1097 00:53:56,130 --> 00:53:59,520 iterationer, jeg ønsker mit loop til at køre. 1098 00:53:59,520 --> 00:54:02,810 I dette tilfælde betyder det ikke noget, fordi, Jeg mener, jeg prøver bare at 1099 00:54:02,810 --> 00:54:05,310 tænke på en meget simpel eksempel på dette dias. 1100 00:54:05,310 --> 00:54:09,990 Men lad os sige, at du vil have noget til at holde ud, mens - 1101 00:54:09,990 --> 00:54:14,480 >> LUCAS FREITAS: For eksempel, er du beder om input, indtil personen 1102 00:54:14,480 --> 00:54:15,370 giver dig den rigtige indgang. 1103 00:54:15,370 --> 00:54:19,720 Så ligesom mens indgangen er ikke OK, holde beder om det. 1104 00:54:19,720 --> 00:54:22,920 Eller som, mens du er forældre ikke giver dig penge, holde beder om det. 1105 00:54:22,920 --> 00:54:23,430 >> [Latter] 1106 00:54:23,430 --> 00:54:25,390 >> LAUREN CARVALHO: Du ved ikke, hvordan mange gange er du nødt til at gøre det. 1107 00:54:25,390 --> 00:54:27,292 >> LUCAS FREITAS: Fordi du ikke gøre vide, hvor mange gange der er 1108 00:54:27,292 --> 00:54:28,010 kommer til at holde i gang. 1109 00:54:28,010 --> 00:54:30,397 >> LAUREN CARVALHO: Men i en for-løkke, du har brug for at vide, hvor mange gange. 1110 00:54:30,397 --> 00:54:33,640 1111 00:54:33,640 --> 00:54:33,860 Ja? 1112 00:54:33,860 --> 00:54:38,520 >> PUBLIKUM: Bare for at afklare, procent siger, at det er noget om at 1113 00:54:38,520 --> 00:54:42,415 ske, i'erne for heltal, og backslash n - 1114 00:54:42,415 --> 00:54:43,910 >> LAUREN Carvalho: Midler? 1115 00:54:43,910 --> 00:54:45,820 Hvem ved, hvad det backslash n betyder? 1116 00:54:45,820 --> 00:54:47,770 Ny linje, ja. 1117 00:54:47,770 --> 00:54:48,130 Præcis. 1118 00:54:48,130 --> 00:54:50,500 >> LUCAS FREITAS: Du kan tænke n som ny linje. 1119 00:54:50,500 --> 00:54:52,258 >> LAUREN CARVALHO: Nice. 1120 00:54:52,258 --> 00:54:55,775 >> PUBLIKUM: Hvad er det tæller dash dash [uhørligt]? 1121 00:54:55,775 --> 00:55:00,240 >> LUCAS FREITAS: Count minus minus er det samme som plus plus, men 1122 00:55:00,240 --> 00:55:02,160 stedet for at øge, det er faldende med 1. 1123 00:55:02,160 --> 00:55:04,720 1124 00:55:04,720 --> 00:55:07,185 >> LAUREN CARVALHO: Enhver mere mens loop spørgsmål? 1125 00:55:07,185 --> 00:55:09,460 Nej? 1126 00:55:09,460 --> 00:55:13,910 Åh, vi skulle har sprunget over. 1127 00:55:13,910 --> 00:55:14,950 >> Dette er en gør mens løkke. 1128 00:55:14,950 --> 00:55:18,950 Meget lig en while-løkke, undtagen i dette tilfælde har vi kontrollere tilstanden efter 1129 00:55:18,950 --> 00:55:23,430 koden i kroppen af loop udfører én gang. 1130 00:55:23,430 --> 00:55:27,170 Så vi udføre koden først uanset hvad. 1131 00:55:27,170 --> 00:55:31,956 Så tjek vi den betingelse, udføre det igen, hvis betingelsen er sand. 1132 00:55:31,956 --> 00:55:35,450 1133 00:55:35,450 --> 00:55:38,950 >> Du vil finde dig selv at bruge dette, når du beder om brugerens input. 1134 00:55:38,950 --> 00:55:42,080 Fordi du altid er nødt til at bede gang, og derefter afhængigt af, hvad 1135 00:55:42,080 --> 00:55:46,570 brugerinput er, at du måske nødt til at reprompt og spørge igen og igen, hvis 1136 00:55:46,570 --> 00:55:50,670 input var ikke, hvad du forventes det at være. 1137 00:55:50,670 --> 00:55:53,610 >> PUBLIKUM: Så det er ligesom en formular for folk til at udfylde. 1138 00:55:53,610 --> 00:55:56,010 >> LAUREN CARVALHO: Ja, præcis. 1139 00:55:56,010 --> 00:55:59,720 Du kan finde, tror jeg, i din allerførste PSET, du nødt til at 1140 00:55:59,720 --> 00:56:04,010 bruge en gør godt løkke til at indsamle input fra brugeren. 1141 00:56:04,010 --> 00:56:08,728 >> PUBLIKUM: Afhængigt af situationen, at din mens loops vil være tilbøjelige til at køre mere 1142 00:56:08,728 --> 00:56:12,805 ofte end mens loops, som af en eller noget? 1143 00:56:12,805 --> 00:56:14,080 >> LAUREN CARVALHO: Hvis det er det nøjagtige - 1144 00:56:14,080 --> 00:56:17,400 >> LUCAS FREITAS: De bør altid køre det nøjagtige beløb af gange, at du 1145 00:56:17,400 --> 00:56:19,130 vil have den til at køre. 1146 00:56:19,130 --> 00:56:23,860 Ligesom vi bruger gøre, mens fordi vi virkelig ønskede at få input mindst én gang. 1147 00:56:23,860 --> 00:56:27,220 I mens loops, undertiden du ikke ønsker at udføre det på alle, hvis det ikke er 1148 00:56:27,220 --> 00:56:28,540 sagen til at udføre. 1149 00:56:28,540 --> 00:56:31,300 Så det afhænger af udformningen. 1150 00:56:31,300 --> 00:56:35,900 Jeg mener, kan du enten bruge gøre, mens eller mens så længe din kode gør det 1151 00:56:35,900 --> 00:56:36,905 det er meningen at gøre. 1152 00:56:36,905 --> 00:56:38,470 >> LAUREN CARVALHO: Men jeg gør tror, ​​at svaret på dit 1153 00:56:38,470 --> 00:56:40,540 Spørgsmålet er sandsynligvis ja. 1154 00:56:40,540 --> 00:56:42,190 Lad os sige tilstand var falsk. 1155 00:56:42,190 --> 00:56:45,498 I et tilfælde ville det løbe én gang, og et andet tilfælde ville det løbe nul gange. 1156 00:56:45,498 --> 00:56:47,370 Så, ja. 1157 00:56:47,370 --> 00:56:49,260 >> Har du flere spørgsmål? 1158 00:56:49,260 --> 00:56:50,320 Ja? 1159 00:56:50,320 --> 00:56:56,443 >> PUBLIKUM: Kan løkken betingelsen være en for loop i form af en anden variabel 1160 00:56:56,443 --> 00:56:57,385 end [uhørligt]. 1161 00:56:57,385 --> 00:57:01,700 >> LAUREN CARVALHO: Ja, Det kan være alt. 1162 00:57:01,700 --> 00:57:06,420 Sandsynligvis for begyndelsen Psets, du vil ikke have at støde på sagen, men 1163 00:57:06,420 --> 00:57:09,878 absolut det kan være hvad som helst. 1164 00:57:09,878 --> 00:57:12,680 >> LUCAS FREITAS: Jeg tror vi er færdige her. 1165 00:57:12,680 --> 00:57:13,290 >> LAUREN CARVALHO: Er vi? 1166 00:57:13,290 --> 00:57:13,480 Nej? 1167 00:57:13,480 --> 00:57:13,870 >> LUCAS FREITAS: Loops? 1168 00:57:13,870 --> 00:57:14,600 Ja. 1169 00:57:14,600 --> 00:57:16,280 >> LAUREN CARVALHO: Vi skal ikke være. 1170 00:57:16,280 --> 00:57:17,760 Åh, vi er gjort med sløjfer. 1171 00:57:17,760 --> 00:57:19,250 OK. 1172 00:57:19,250 --> 00:57:23,180 >> Faktisk, fordi vi har talt så meget, lad os faktisk alle navigere 1173 00:57:23,180 --> 00:57:28,950 over til study.cs50.net/conditions. 1174 00:57:28,950 --> 00:57:34,460 Og du kommer til at navigere ned til problemerne widget. 1175 00:57:34,460 --> 00:57:39,090 Tja, faktisk, mens folk bliver dette sat op, CS50 Study er 1176 00:57:39,090 --> 00:57:42,620 kommer til at være et værktøj, dine TFs vil bruge til at forberede sig til sektioner, og at 1177 00:57:42,620 --> 00:57:45,230 du fyre kan bruge, hvis du går glip af sektioner. 1178 00:57:45,230 --> 00:57:48,980 Det kommer til at indeholde en masse af dias, nogle tips og tricks til hver 1179 00:57:48,980 --> 00:57:54,030 emne, og nogle praksis problemer løsninger. 1180 00:57:54,030 --> 00:57:57,200 >> Hvorfor ikke alle bare tage et kig på dette problem lige her. 1181 00:57:57,200 --> 00:58:01,630 1182 00:58:01,630 --> 00:58:04,790 >> Undskyld, jeg skulle have mindet folk at bringe laptops i dag. 1183 00:58:04,790 --> 00:58:07,050 Men hvis du ikke har en bærbar computer, det er OK. 1184 00:58:07,050 --> 00:58:10,140 Du kan bare notere det ned på et stykke papir eller kigge over 1185 00:58:10,140 --> 00:58:12,890 din nabos skulder. 1186 00:58:12,890 --> 00:58:16,380 >> Lad os prøve at skrive et program, der beder brugeren om at tage et gæt, den 1187 00:58:16,380 --> 00:58:19,250 gennemsnitlige antal børn pr familie enhed i USA. 1188 00:58:19,250 --> 00:58:22,265 Dette antal er 2, ved den måde, som du kan se fra disse eksempler. 1189 00:58:22,265 --> 00:58:24,770 1190 00:58:24,770 --> 00:58:29,030 >> Vi ønsker at udskrive gennemsnitlige antal børn pr familie i USA, så vi 1191 00:58:29,030 --> 00:58:31,080 ønsker at hvad? 1192 00:58:31,080 --> 00:58:35,480 Vi ønsker at samle input fra brugeren. 1193 00:58:35,480 --> 00:58:41,290 Og derefter afhængigt af, hvad brugeren input er, du vil udskrive 1194 00:58:41,290 --> 00:58:44,850 enten dette er korrekt eller det er forkert. 1195 00:58:44,850 --> 00:58:48,040 >> Og det allerførste ting, du vil se, hvis du klikker på den lille pil ved 1196 00:58:48,040 --> 00:58:52,190 bunden af ​​problemet widget er en spot at notere ned nogle pseudokode. 1197 00:58:52,190 --> 00:58:53,340 Så du ikke programmering endnu. 1198 00:58:53,340 --> 00:58:56,740 Du er bare at få din ideer i orden. 1199 00:58:56,740 --> 00:58:59,620 >> Er der nogen der ønsker at hjælpe Lucas komme op med den rigtige 1200 00:58:59,620 --> 00:59:01,270 pseudokode for dette problem? 1201 00:59:01,270 --> 00:59:04,900 >> LUCAS FREITAS: Hvad er den første ting at vi sandsynligvis skal gøre her? 1202 00:59:04,900 --> 00:59:07,010 Hvad tror du fyre tror? 1203 00:59:07,010 --> 00:59:08,260 >> PUBLIKUM: [uhørligt] 1204 00:59:08,260 --> 00:59:12,060 1205 00:59:12,060 --> 00:59:13,290 >> LUCAS FREITAS: Yeah, OK. 1206 00:59:13,290 --> 00:59:16,610 Så print. 1207 00:59:16,610 --> 00:59:19,480 Bare sige print dette gennemsnit Antallet af mennesker? 1208 00:59:19,480 --> 00:59:20,470 OK. 1209 00:59:20,470 --> 00:59:23,450 Print spørgsmål, lad os sige. 1210 00:59:23,450 --> 00:59:25,951 Når jeg udskriver dette spørgsmål, hvad skal jeg gøre? 1211 00:59:25,951 --> 00:59:27,875 >> PUBLIKUM: Få input. 1212 00:59:27,875 --> 00:59:30,690 >> LUCAS FREITAS: Få input. 1213 00:59:30,690 --> 00:59:32,864 Noget andet? 1214 00:59:32,864 --> 00:59:34,114 >> PUBLIKUM: Betingelse. 1215 00:59:34,114 --> 00:59:36,770 1216 00:59:36,770 --> 00:59:38,980 >> LUCAS FREITAS: Betingelse. 1217 00:59:38,980 --> 00:59:41,325 >> LAUREN CARVALHO: Hvad er det betingelse kommer til at være? 1218 00:59:41,325 --> 00:59:43,550 >> PUBLIKUM: Antallet af [uhørligt]. 1219 00:59:43,550 --> 00:59:44,440 >> LAUREN CARVALHO: Right. 1220 00:59:44,440 --> 00:59:46,945 >> LUCAS FREITAS: Så hvad skal jeg at kontrollere i den tilstand? 1221 00:59:46,945 --> 00:59:48,750 >> PUBLIKUM: Hvis det er lig 2. 1222 00:59:48,750 --> 00:59:50,640 >> LAUREN CARVALHO: Hvis det er lig 2. 1223 00:59:50,640 --> 00:59:51,890 Præcis. 1224 00:59:51,890 --> 00:59:58,340 1225 00:59:58,340 --> 01:00:00,140 >> LUCAS FREITAS: Er der noget andet, som jeg skal gøre? 1226 01:00:00,140 --> 01:00:01,390 >> PUBLIKUM: Tæl. 1227 01:00:01,390 --> 01:00:05,184 1228 01:00:05,184 --> 01:00:08,110 >> LUCAS FREITAS: Så hvis det er lig med 2, lad os sige - 1229 01:00:08,110 --> 01:00:14,250 1230 01:00:14,250 --> 01:00:17,960 lad mig lige skrive, hvis input er lig til 2, så hvad jeg har tænkt mig 1231 01:00:17,960 --> 01:00:23,665 gøre er at printe korrekt. 1232 01:00:23,665 --> 01:00:26,230 1233 01:00:26,230 --> 01:00:31,826 Og så ellers, jeg har tænkt mig at udskrive forkert. 1234 01:00:31,826 --> 01:00:34,600 1235 01:00:34,600 --> 01:00:37,720 Noget andet? 1236 01:00:37,720 --> 01:00:38,670 Nej? 1237 01:00:38,670 --> 01:00:40,500 >> LAUREN CARVALHO: Så du kan klikke på - 1238 01:00:40,500 --> 01:00:42,290 Har alle det ned? 1239 01:00:42,290 --> 01:00:44,680 >> LUCAS FREITAS: Giver det mening? 1240 01:00:44,680 --> 01:00:46,226 Så lad os nu prøve at kode dette. 1241 01:00:46,226 --> 01:00:50,140 >> LAUREN CARVALHO: Hvis du klikker på det lille pil, det faktisk gemmer dit 1242 01:00:50,140 --> 01:00:51,900 pseudokode, som er virkelig spændende. 1243 01:00:51,900 --> 01:00:56,480 Og du kan gøre dem i kommentarer, hvis du ønsker bare at minde dig selv om 1244 01:00:56,480 --> 01:00:57,075 hvad de skal gøre. 1245 01:00:57,075 --> 01:01:01,555 >> LUCAS FREITAS: Altså for eksempel, første Jeg har tænkt mig at udskrive spørgsmål, så 1246 01:01:01,555 --> 01:01:05,930 hvordan skal jeg gøre det, egentlig? 1247 01:01:05,930 --> 01:01:07,050 printf. 1248 01:01:07,050 --> 01:01:12,130 Så printf, og spørgsmålet er gennemsnitlige antallet af børn pr 1249 01:01:12,130 --> 01:01:14,110 familie i USA. 1250 01:01:14,110 --> 01:01:19,070 1251 01:01:19,070 --> 01:01:21,790 >> Så jeg har tænkt mig at få input fra brugeren. 1252 01:01:21,790 --> 01:01:29,050 1253 01:01:29,050 --> 01:01:31,324 Så hvordan kan jeg gøre det? 1254 01:01:31,324 --> 01:01:32,200 >> PUBLIKUM: Get Int.. 1255 01:01:32,200 --> 01:01:33,076 >> LAUREN CARVALHO: GetInt. 1256 01:01:33,076 --> 01:01:33,890 >> LUCAS FREITAS: OK. 1257 01:01:33,890 --> 01:01:35,220 Så først erklære, right? 1258 01:01:35,220 --> 01:01:39,300 int, lad os kalde det n er lig GetInt. 1259 01:01:39,300 --> 01:01:42,610 1260 01:01:42,610 --> 01:01:44,670 >> Og nu den betingelse. 1261 01:01:44,670 --> 01:01:49,250 Så lad mig sige, at jeg har tænkt mig til her afkrydsningsfeltet svar. 1262 01:01:49,250 --> 01:01:57,290 Så det første, hvis input, som er n, lig til - hvordan skal jeg skrive det? 1263 01:01:57,290 --> 01:01:58,480 >> PUBLIKUM: Lige lige. 1264 01:01:58,480 --> 01:02:00,000 >> LUCAS FREITAS: Perfect. 1265 01:02:00,000 --> 01:02:00,670 Så n. 1266 01:02:00,670 --> 01:02:04,600 Og bemærk, at jeg gør et rum, lig, lig, plads, sandt. 1267 01:02:04,600 --> 01:02:06,930 Og nu, hvad skal jeg gøre? 1268 01:02:06,930 --> 01:02:08,820 Noget meget vigtigt for stil. 1269 01:02:08,820 --> 01:02:10,070 De krøllede parenteser. 1270 01:02:10,070 --> 01:02:16,570 1271 01:02:16,570 --> 01:02:17,795 >> Og så har jeg tænkt mig at udskrive. 1272 01:02:17,795 --> 01:02:19,790 Hvordan udskriver jeg? 1273 01:02:19,790 --> 01:02:22,500 printf. 1274 01:02:22,500 --> 01:02:24,568 >> PUBLIKUM: Kunne det kapitaliseres? 1275 01:02:24,568 --> 01:02:27,166 1276 01:02:27,166 --> 01:02:28,380 >> LUCAS FREITAS: Nej. 1277 01:02:28,380 --> 01:02:31,000 Det er meningen at være med små bogstaver. 1278 01:02:31,000 --> 01:02:32,250 Så det er korrekt. 1279 01:02:32,250 --> 01:02:40,990 1280 01:02:40,990 --> 01:02:44,870 >> Ville det være tilstrækkeligt for printf erklæring, eller er jeg mangler noget? 1281 01:02:44,870 --> 01:02:46,265 >> PUBLIKUM: Ny linje. 1282 01:02:46,265 --> 01:02:50,220 >> LUCAS FREITAS: Ny linje, ja. 1283 01:02:50,220 --> 01:02:51,250 Og nu andet. 1284 01:02:51,250 --> 01:02:57,290 >> PUBLIKUM: Er der et rum efter printf eller nej? 1285 01:02:57,290 --> 01:03:00,820 >> LAUREN CARVALHO: Vi bør kontrollere den stil guide. 1286 01:03:00,820 --> 01:03:02,260 >> PUBLIKUM: Det bør ikke være. 1287 01:03:02,260 --> 01:03:03,510 >> LUCAS FREITAS: Bør ikke være OK. 1288 01:03:03,510 --> 01:03:05,820 1289 01:03:05,820 --> 01:03:13,605 Så andet printf "Det er forkert." 1290 01:03:13,605 --> 01:03:17,105 >> LAUREN CARVALHO: Ups, din citater. 1291 01:03:17,105 --> 01:03:17,950 >> LUCAS FREITAS: OK. 1292 01:03:17,950 --> 01:03:18,600 Noget andet? 1293 01:03:18,600 --> 01:03:20,770 Ser det godt ud? 1294 01:03:20,770 --> 01:03:21,890 >> LAUREN CARVALHO: Skal vi prøve det? 1295 01:03:21,890 --> 01:03:23,190 >> LUCAS FREITAS: Ja, lad os køre den. 1296 01:03:23,190 --> 01:03:25,880 1297 01:03:25,880 --> 01:03:29,070 Så det er kompilering, og det lader til, at det fungerer. 1298 01:03:29,070 --> 01:03:31,465 Lad os prøve to børn. 1299 01:03:31,465 --> 01:03:34,110 Det er korrekt. 1300 01:03:34,110 --> 01:03:37,300 Og lad os nu køre igen, men nu i stedet lægge to børn, lad os 1301 01:03:37,300 --> 01:03:40,990 sige, at jeg har tænkt mig at sætte ligesom fem. 1302 01:03:40,990 --> 01:03:41,515 Det er forkert. 1303 01:03:41,515 --> 01:03:42,670 Så det lader til, at det virker. 1304 01:03:42,670 --> 01:03:44,160 >> LAUREN CARVALHO: Hvorfor tager du ikke vise dem hvad sker der hvis du lægger noget 1305 01:03:44,160 --> 01:03:45,055 weird, ligesom nogle breve. 1306 01:03:45,055 --> 01:03:45,790 >> LUCAS FREITAS: Åh, ja. 1307 01:03:45,790 --> 01:03:47,430 Lad os også kontrollere, at. 1308 01:03:47,430 --> 01:03:51,170 Hvad hvis brugeren forsøger at rod med dit program, og de bare 1309 01:03:51,170 --> 01:03:57,430 skrive, ved jeg ikke to. 1310 01:03:57,430 --> 01:03:58,320 Det kommer til at sige retry. 1311 01:03:58,320 --> 01:04:00,780 >> LAUREN CARVALHO: So GetInt beder dem om at prøve igen. 1312 01:04:00,780 --> 01:04:02,115 Vi havde ikke til at tage sig af at os selv. 1313 01:04:02,115 --> 01:04:02,750 >> LUCAS FREITAS: Ja. 1314 01:04:02,750 --> 01:04:06,853 Så medmindre jeg faktisk sat et tal, er det kommer til at holde beder mig om at prøve igen. 1315 01:04:06,853 --> 01:04:08,330 >> PUBLIKUM: Hvordan har du køre det? 1316 01:04:08,330 --> 01:04:10,570 >> LUCAS FREITAS: Bare klik denne stjerne knap. 1317 01:04:10,570 --> 01:04:11,940 >> LAUREN CARVALHO: Du skal gå op. 1318 01:04:11,940 --> 01:04:13,320 Værsgo. 1319 01:04:13,320 --> 01:04:15,550 >> LUCAS FREITAS: Stjernen knappen lige der. 1320 01:04:15,550 --> 01:04:16,040 Ja? 1321 01:04:16,040 --> 01:04:19,960 >> PUBLIKUM: Er det bede [uhørligt] med decimaltal også? 1322 01:04:19,960 --> 01:04:21,235 >> LAUREN CARVALHO: Jeg tror, ​​det vil. 1323 01:04:21,235 --> 01:04:22,660 >> LUCAS FREITAS: Hvis det gør hvad? 1324 01:04:22,660 --> 01:04:24,990 >> LAUREN CARVALHO: Hvis de skriver i et decimaltal, tror jeg 1325 01:04:24,990 --> 01:04:25,880 det kommer til at bede. 1326 01:04:25,880 --> 01:04:26,586 >> LUCAS FREITAS: Lad os se. 1327 01:04:26,586 --> 01:04:28,360 >> LAUREN CARVALHO: Fordi det er ikke en int. 1328 01:04:28,360 --> 01:04:32,056 1329 01:04:32,056 --> 01:04:33,442 >> LUCAS FREITAS: Ja. 1330 01:04:33,442 --> 01:04:37,370 >> LAUREN CARVALHO: Så det det er ikke en int, Få Int vil bede dig om at prøve igen. 1331 01:04:37,370 --> 01:04:40,795 >> PUBLIKUM: Så hvor i koden ville være decimaler, der beder 1332 01:04:40,795 --> 01:04:46,005 bruger, at de har til at indtaste et heltal specifikt? 1333 01:04:46,005 --> 01:04:48,480 >> LAUREN CARVALHO: GetInt er faktisk at gøre det for os. 1334 01:04:48,480 --> 01:04:50,600 >> PUBLIKUM: Nej, jeg mener, hvis vi ønskede at indtaste [uhørligt] 1335 01:04:50,600 --> 01:04:55,070 >> LUCAS FREITAS: Du kan sige som gennemsnit Antallet af børn i USA. 1336 01:04:55,070 --> 01:04:56,120 Det ved jeg ikke. 1337 01:04:56,120 --> 01:05:01,761 Vi kan sige, for eksempel, "Please input et heltal. " 1338 01:05:01,761 --> 01:05:04,270 >> LAUREN CARVALHO: Et heltal lige til det gennemsnitlige antal. 1339 01:05:04,270 --> 01:05:06,190 Jeg mener, det er bare hvordan du ord det, right? 1340 01:05:06,190 --> 01:05:06,520 >> LUCAS FREITAS: Ja. 1341 01:05:06,520 --> 01:05:08,420 Det er ikke del af faktisk kodning. 1342 01:05:08,420 --> 01:05:11,000 Det er mere ligesom hvad du vil ønsker at 1343 01:05:11,000 --> 01:05:13,987 skrive i dit program. 1344 01:05:13,987 --> 01:05:17,723 >> PUBLIKUM: Hvordan ville vi have kørt det, hvis det var faktisk i gedit [uhørligt]. 1345 01:05:17,723 --> 01:05:19,130 I stedet for at trykke på play? 1346 01:05:19,130 --> 01:05:21,180 >> LUCAS FREITAS: Vi vil først kompilere det. 1347 01:05:21,180 --> 01:05:25,080 Vi kan gøre det ved at gøre make og navnet på filen. 1348 01:05:25,080 --> 01:05:29,896 Og så at køre det, vil vi gøre dot skråstreg og navnet på programmet. 1349 01:05:29,896 --> 01:05:36,588 >> PUBLIKUM: Jeg gætte, hvad jeg mente var, hvis vi ønskede program til at reagere på 1350 01:05:36,588 --> 01:05:42,010 deres forkert, ugyldig indtastning, du bør ikke sætte i - 1351 01:05:42,010 --> 01:05:45,710 >> LUCAS FREITAS: Vi vil ikke være i stand til at gør det, fordi koden dette siger 1352 01:05:45,710 --> 01:05:50,350 prøv igen kommer fra Få Int., som er en funktion, der er implementeret 1353 01:05:50,350 --> 01:05:55,790 for os via CS50 bibliotek, og siden det er allerede implementeret der, vi 1354 01:05:55,790 --> 01:05:58,340 kan ikke bare [uhørligt]. 1355 01:05:58,340 --> 01:06:00,780 >> LAUREN CARVALHO: Hvis du ikke bruger GetInt, så kan du gøre det. 1356 01:06:00,780 --> 01:06:01,490 >> LUCAS FREITAS: Ja. 1357 01:06:01,490 --> 01:06:03,750 Men hvis du bruger GetInt, kan du ikke. 1358 01:06:03,750 --> 01:06:05,427 Andre spørgsmål? 1359 01:06:05,427 --> 01:06:12,938 >> PUBLIKUM: Kunne du have gået med lignende GetFloat og så være i stand til at sætte 1360 01:06:12,938 --> 01:06:14,381 det i en decimal? 1361 01:06:14,381 --> 01:06:15,343 >> LUCAS FREITAS: Ja. 1362 01:06:15,343 --> 01:06:15,824 >> PUBLIKUM: OK. 1363 01:06:15,824 --> 01:06:19,210 Derefter skal du bare kunne indtaste float a ligemænd - 1364 01:06:19,210 --> 01:06:19,950 >> LAUREN CARVALHO: Ja. 1365 01:06:19,950 --> 01:06:22,740 Præcis det samme, bortset fra en flyde i stedet for en int. 1366 01:06:22,740 --> 01:06:27,372 >> LUCAS FREITAS: Bare sætte det her og derefter GetFloat der. 1367 01:06:27,372 --> 01:06:29,795 >> PUBLIKUM: Som du vil se eller har set - 1368 01:06:29,795 --> 01:06:31,327 >> LAUREN CARVALHO: Vi har ikke fået endnu. 1369 01:06:31,327 --> 01:06:36,490 >> PUBLIKUM: - gøre ulighed med flåd ikke [uhørligt] 1370 01:06:36,490 --> 01:06:40,290 >> PUBLIKUM: Hvad betyder de semikolon betyder? 1371 01:06:40,290 --> 01:06:43,220 >> LAUREN CARVALHO: Den semikolon bare betyder, at denne erklæring er færdig, 1372 01:06:43,220 --> 01:06:45,030 og vi kommer til at gå videre til næste dias. 1373 01:06:45,030 --> 01:06:47,040 >> PUBLIKUM: Så det er nødvendigt hver gang? 1374 01:06:47,040 --> 01:06:48,330 >> LAUREN CARVALHO: Ja. 1375 01:06:48,330 --> 01:06:53,130 Nå, OK, så ikke for sådanne forhold, fordi de er 1376 01:06:53,130 --> 01:06:54,090 indkapsle noget. 1377 01:06:54,090 --> 01:07:00,290 Så dybest set, hvis noget er årsag at du derefter oprette en klammeparentes 1378 01:07:00,290 --> 01:07:03,000 blok, ikke sætte et semikolon i slutningen. 1379 01:07:03,000 --> 01:07:04,200 >> LUCAS FREITAS: Men alt andet, ja. 1380 01:07:04,200 --> 01:07:06,670 Når du er færdig med en erklæring, sætte semikolon. 1381 01:07:06,670 --> 01:07:10,380 Og hvis du glemmer semikoloner, den compiler kommer til at blive vred på dig, 1382 01:07:10,380 --> 01:07:12,640 og du kommer til at have at forsøge at løse det. 1383 01:07:12,640 --> 01:07:16,520 >> LAUREN CARVALHO: Hvis jeg sætter et semikolon her, ville det stoppe dette, og jeg 1384 01:07:16,520 --> 01:07:18,780 ville aldrig komme til at udføre, hvad der er inde, ved den måde. 1385 01:07:18,780 --> 01:07:21,113 Så det er en af ​​disse fælles bugs. 1386 01:07:21,113 --> 01:07:22,390 >> PUBLIKUM: Altid udfører. 1387 01:07:22,390 --> 01:07:22,950 >> LAUREN CARVALHO: Ja. 1388 01:07:22,950 --> 01:07:25,860 I dette tilfælde, ville vi altid udføre, hvad der er indeni. 1389 01:07:25,860 --> 01:07:29,050 >> PUBLIKUM: Din stil [uhørligt] vedhæfte det for dig, troede. 1390 01:07:29,050 --> 01:07:29,802 >> LAUREN CARVALHO: Åh, det er sandt. 1391 01:07:29,802 --> 01:07:34,298 >> PUBLIKUM: [uhørligt] single line ting [uhørligt] 1392 01:07:34,298 --> 01:07:35,286 >> PUBLIKUM: Ja? 1393 01:07:35,286 --> 01:07:37,756 >> PUBLIKUM: Kan du har flere input i en linje? 1394 01:07:37,756 --> 01:07:41,214 Så ligesom du kan bede brugere at udskrive to ting? 1395 01:07:41,214 --> 01:07:42,530 >> LAUREN CARVALHO: Ikke brug - 1396 01:07:42,530 --> 01:07:44,520 >> LUCAS FREITAS: Nej. 1397 01:07:44,520 --> 01:07:47,040 Lad os sige, at jeg også ønsker at få denne heltal m.. 1398 01:07:47,040 --> 01:07:49,558 Jeg er nødt til at gøre det i en anden linje. 1399 01:07:49,558 --> 01:07:54,992 >> PUBLIKUM: Hvis du skulle køre det, hvordan [uhørligt]? 1400 01:07:54,992 --> 01:07:59,438 Det ville udskrive prompt der [uhørligt] 1401 01:07:59,438 --> 01:08:00,940 og så ville du indtaster et og - 1402 01:08:00,940 --> 01:08:01,840 >> LAUREN CARVALHO: Jamen, køre den. 1403 01:08:01,840 --> 01:08:04,365 Jeg mener, der er intet stoppe os fra bare kører det og se, hvad 1404 01:08:04,365 --> 01:08:06,610 ville ske. 1405 01:08:06,610 --> 01:08:08,080 >> LUCAS FREITAS: Jeg synes det er gå til klager på os 1406 01:08:08,080 --> 01:08:08,977 fordi vi ikke bruger - 1407 01:08:08,977 --> 01:08:09,751 >> LAUREN CARVALHO: Ups. 1408 01:08:09,751 --> 01:08:12,580 >> LUCAS FREITAS: Det beklagede på os lige nu, fordi vi ikke bruger denne 1409 01:08:12,580 --> 01:08:21,640 variabel, men hvis jeg gjorde, for eksempel, n er lig lig med, og m er lig med 1410 01:08:21,640 --> 01:08:26,849 lig med, så hvad vil ske i dette tilfælde? 1411 01:08:26,849 --> 01:08:28,830 Hvad ville dette program gøre? 1412 01:08:28,830 --> 01:08:30,330 >> PUBLIKUM: Jeg er bare undrende hvordan det ville - 1413 01:08:30,330 --> 01:08:31,550 >> LAUREN CARVALHO: Hun vil bare have at vide, hvordan det ser ud 1414 01:08:31,550 --> 01:08:34,189 ligesom, tror jeg, ikke? 1415 01:08:34,189 --> 01:08:36,819 Så det tog en af ​​dem, og derefter det tog den anden. 1416 01:08:36,819 --> 01:08:41,279 1417 01:08:41,279 --> 01:08:43,069 >> Jeg synes, vi skal komme videre, fordi vi har en mere 1418 01:08:43,069 --> 01:08:44,689 Slide Show for at gå før - 1419 01:08:44,689 --> 01:08:46,269 ønsker du at trække op matematik? 1420 01:08:46,269 --> 01:08:47,558 >> LUCAS FREITAS: Yeah, matematik. 1421 01:08:47,558 --> 01:09:00,033 1422 01:09:00,033 --> 01:09:02,206 >> LAUREN CARVALHO: Give mig bare et sekund. 1423 01:09:02,206 --> 01:09:07,390 1424 01:09:07,390 --> 01:09:14,260 >> Der er et par forskellige numerisk variabler i C. Numeriske data i C 1425 01:09:14,260 --> 01:09:18,130 kan inddeles i forskellige typer, og det er dem, du vil 1426 01:09:18,130 --> 01:09:19,570 se de mest ofte. 1427 01:09:19,570 --> 01:09:20,910 >> Og int er et helt tal. 1428 01:09:20,910 --> 01:09:23,189 Du kan ikke have nogen decimaler. 1429 01:09:23,189 --> 01:09:27,754 I Appliance, det tager 32 bit til at gemme en int. 1430 01:09:27,754 --> 01:09:30,450 >> En svømmer kan have decimaler. 1431 01:09:30,450 --> 01:09:34,330 Det tager også 32 bits til at lagre en svømmer i Appliance. 1432 01:09:34,330 --> 01:09:42,270 >> En dobbelt er et tal med en decimal , som tager 64 bits til at gemme det, 1433 01:09:42,270 --> 01:09:44,470 hvilket betyder, at du bare kan have større præcision fordi 1434 01:09:44,470 --> 01:09:46,426 du kan få mere - 1435 01:09:46,426 --> 01:09:47,785 hvad kalder du det? 1436 01:09:47,785 --> 01:09:48,640 >> LUCAS FREITAS: Ja, det er mere. 1437 01:09:48,640 --> 01:09:52,140 >> LAUREN Carvalho: Flere steder efter kommaet. 1438 01:09:52,140 --> 01:09:57,140 Og en lang lang er et helt tal der tager 64 bits til 1439 01:09:57,140 --> 01:09:58,395 øm det i Appliance. 1440 01:09:58,395 --> 01:10:00,278 >> LUCAS FREITAS: Så det kan være større end int'er kan være. 1441 01:10:00,278 --> 01:10:03,320 1442 01:10:03,320 --> 01:10:08,380 >> LAUREN CARVALHO: De ting om data typer i C er, at de fortæller dig, hvad 1443 01:10:08,380 --> 01:10:11,050 slags data du kan gemme i din variabel. 1444 01:10:11,050 --> 01:10:15,860 De fortæller dig, hvordan du kan bruge dette variabel i dit program. 1445 01:10:15,860 --> 01:10:19,650 Det er meget vigtigt at bare holde styr af, hvad datatype, du bruger, og hvis 1446 01:10:19,650 --> 01:10:23,070 du behøver at kaste fra en datatype til en anden, så sørg for at du kender 1447 01:10:23,070 --> 01:10:25,250 præcis, hvad der sker, når der støbningen finder sted. 1448 01:10:25,250 --> 01:10:28,520 Og du vil se et eksempel senere on i disse lysbilleder af en 1449 01:10:28,520 --> 01:10:31,490 fejl, der kan forekomme. 1450 01:10:31,490 --> 01:10:35,300 >> Lad os tage et kig på nogle matematik i C og synes virkelig grundigt, tror jeg, 1451 01:10:35,300 --> 01:10:38,470 om, hvad der foregår, når denne matematik finder sted. 1452 01:10:38,470 --> 01:10:43,552 I den allerførste linje, hvad er sker, når jeg erklærer x? 1453 01:10:43,552 --> 01:10:48,921 >> PUBLIKUM: Du tillader x at være noget? 1454 01:10:48,921 --> 01:10:49,700 >> LAUREN CARVALHO: Ja. 1455 01:10:49,700 --> 01:10:54,040 Nå, jeg virkelig beder operativsystemet system til 32 bit hukommelse, right? 1456 01:10:54,040 --> 01:10:57,890 I hvilke kan jeg gemme en int, og Jeg har tænkt mig at kalde det int x. 1457 01:10:57,890 --> 01:11:01,370 >> LUCAS FREITAS: Dybest set går i hukommelsen og at finde et sted, der har 32 1458 01:11:01,370 --> 01:11:05,290 bits og sige, hey, jeg vil have dette rum, og det kommer til at hedde x. 1459 01:11:05,290 --> 01:11:08,590 Så du er bare temmelig meget fund en boks i din hukommelse til 1460 01:11:08,590 --> 01:11:10,440 lagre værdier for x. 1461 01:11:10,440 --> 01:11:13,980 >> LAUREN CARVALHO: Og så jeg initialisere x, hvilket betyder, at jeg bare gemme 1462 01:11:13,980 --> 01:11:20,270 værdi på 2 i stedet, at bid hukommelse, at vi bad drift 1463 01:11:20,270 --> 01:11:21,860 system. 1464 01:11:21,860 --> 01:11:25,090 Og hernede, hvad vi gør, er Vi er faktisk erklære og 1465 01:11:25,090 --> 01:11:29,060 initialisering y på en linje i stedet for i to linjer som vi gjorde op her, 1466 01:11:29,060 --> 01:11:33,960 der er også et helt fint, vi er tilsætte 1 til x, og vi opbevaring at 1467 01:11:33,960 --> 01:11:34,950 værdi i y. 1468 01:11:34,950 --> 01:11:39,360 >> LUCAS FREITAS: Så dybest set, hvad dette linje gør, det finder nu en boks til y, 1469 01:11:39,360 --> 01:11:41,990 og derefter sin værdi, de ting, du kommer til at sætte inde i kassen, er 1470 01:11:41,990 --> 01:11:43,800 vil være den værdi af x plus 1. 1471 01:11:43,800 --> 01:11:45,850 Så det har denne boks for y. 1472 01:11:45,850 --> 01:11:49,980 Det bliver værdien af ​​x, ser her, og se, at det er 2. 1473 01:11:49,980 --> 01:11:53,035 Sætte det der, plus 1, så det sætter en 3 der. 1474 01:11:53,035 --> 01:11:54,290 Giver det mening? 1475 01:11:54,290 --> 01:11:55,780 Så y ville være 2 i dette tilfælde. 1476 01:11:55,780 --> 01:11:58,993 1477 01:11:58,993 --> 01:12:00,770 >> LAUREN CARVALHO: Okay, cool. 1478 01:12:00,770 --> 01:12:06,010 Vi så nogle kommer, så lad os nu tænke om division i C. Her er jeg 1479 01:12:06,010 --> 01:12:11,490 erklære og initialisere en svømmer kaldet svar og dividere 1 med 10, 1480 01:12:11,490 --> 01:12:14,860 og så jeg udskrive svaret til to decimaler. 1481 01:12:14,860 --> 01:12:18,800 Og bemærk her, i mit printf erklæring, når jeg ønsker at udskrive noget til to 1482 01:12:18,800 --> 01:12:25,600 decimaler,% .2 f er hvad jeg ønsker at bruge. 1483 01:12:25,600 --> 01:12:28,880 1484 01:12:28,880 --> 01:12:31,760 Så pointen 2 bare at sige Jeg har brug for to pladser efter 1485 01:12:31,760 --> 01:12:34,980 decimal udskrives. 1486 01:12:34,980 --> 01:12:38,740 >> Nu, hvad der kommer til at ske hvis jeg køre denne kode? 1487 01:12:38,740 --> 01:12:40,500 Er der nogen der har en idé? 1488 01:12:40,500 --> 01:12:42,721 Hvad ville udskrive? 1489 01:12:42,721 --> 01:12:45,010 >> LUCAS FREITAS: Hvad er vi forventer at få. 1490 01:12:45,010 --> 01:12:46,810 >> LAUREN CARVALHO: Hvad gør Vi ønsker først og fremmest? 1491 01:12:46,810 --> 01:12:48,871 >> LUCAS FREITAS: [uhørligt] 1492 01:12:48,871 --> 01:12:51,120 >> LAUREN CARVALHO: 0,1, ja. 1493 01:12:51,120 --> 01:12:52,325 Men hvad vil udskrive? 1494 01:12:52,325 --> 01:12:53,275 >> PUBLIKUM: [uhørligt] 1495 01:12:53,275 --> 01:12:56,760 >> LAUREN CARVALHO: Nå, nej, faktisk. 1496 01:12:56,760 --> 01:13:01,400 Dette er, hvad jeg talte om, hvorfor du nødt til at holde meget omhyggelig styr på 1497 01:13:01,400 --> 01:13:02,550 dine datatyper. 1498 01:13:02,550 --> 01:13:05,000 Så hvad datatype er det? 1499 01:13:05,000 --> 01:13:06,250 Er en int, right? 1500 01:13:06,250 --> 01:13:07,600 Der er ingen decimal. 1501 01:13:07,600 --> 01:13:08,770 10 er også en int. 1502 01:13:08,770 --> 01:13:09,930 Der er ingen decimal. 1503 01:13:09,930 --> 01:13:15,770 >> Hvis jeg deler en int med en int, får jeg en int, som ikke er 0,1, fordi int'er 1504 01:13:15,770 --> 01:13:18,630 kan ikke have decimaler, men blot 0. 1505 01:13:18,630 --> 01:13:21,005 Fordi en int bare afkorter off decimaler. 1506 01:13:21,005 --> 01:13:24,280 >> LUCAS FREITAS: Så når du gør operationer med int'er, du kommer til at 1507 01:13:24,280 --> 01:13:25,990 få en int som svaret. 1508 01:13:25,990 --> 01:13:28,930 Så dybest set, hvad computeren gør, er det skel 1 ved 1509 01:13:28,930 --> 01:13:31,520 10, og det får 0.1. 1510 01:13:31,520 --> 01:13:34,870 Men så er det ligesom, vent, det er formodes at være et heltal, så du bare 1511 01:13:34,870 --> 01:13:37,045 ignorere den 0,1, så det er nu bare 0. 1512 01:13:37,045 --> 01:13:41,782 >> LAUREN CARVALHO: Så når jeg udskriver denne ud, jeg får 0,00 i stedet for 0,10. 1513 01:13:41,782 --> 01:13:44,075 >> LUCAS FREITAS: Giver det mening? 1514 01:13:44,075 --> 01:13:45,530 >> LAUREN CARVALHO: Det er lidt uheldige, right? 1515 01:13:45,530 --> 01:13:47,290 >> LUCAS FREITAS: Så hvordan kan vi løse dette? 1516 01:13:47,290 --> 01:13:48,620 >> LAUREN Carvalho: Lad os forsøge at løse det. 1517 01:13:48,620 --> 01:13:51,570 1518 01:13:51,570 --> 01:13:54,810 Her er et eksempel på, hvor jeg faktisk støbning af 1 1519 01:13:54,810 --> 01:13:56,650 og 10 til flåd. 1520 01:13:56,650 --> 01:13:58,800 Så nu, 1 er ikke længere en int. 1521 01:13:58,800 --> 01:14:00,020 1 er en svømmer. 1522 01:14:00,020 --> 01:14:02,590 Af den måde, det er bare syntaksen for når du ønsker at kaste fra en 1523 01:14:02,590 --> 01:14:03,410 datatype til en anden. 1524 01:14:03,410 --> 01:14:07,140 Du kan bare sætte den datatype i parenteser og har det bare forud 1525 01:14:07,140 --> 01:14:10,860 den værdi, du støbning. 1526 01:14:10,860 --> 01:14:15,800 >> Så her, jeg dividere en svømmer ved en flyder for at få en float svar. 1527 01:14:15,800 --> 01:14:19,535 Og ja, det ville i Faktisk udskrive 0.10. 1528 01:14:19,535 --> 01:14:20,470 Giver det mening? 1529 01:14:20,470 --> 01:14:24,110 >> LUCAS FREITAS: Så typen støbning er bare konvertere fra den ene type til den anden. 1530 01:14:24,110 --> 01:14:29,460 Så flyde 1 er faktisk 1,000. 1531 01:14:29,460 --> 01:14:33,400 Ikke ligefrem det, men det er noget med decimaler 1532 01:14:33,400 --> 01:14:34,715 der er faktisk 1. 1533 01:14:34,715 --> 01:14:35,960 Giver det mening? 1534 01:14:35,960 --> 01:14:36,260 Ja? 1535 01:14:36,260 --> 01:14:40,990 >> PUBLIKUM: Hvad hvis du gjorde float svar lig 1,0 divideret med 10? 1536 01:14:40,990 --> 01:14:43,940 >> LAUREN CARVALHO: Du er faktisk går at se, at i det næste dias. 1537 01:14:43,940 --> 01:14:47,150 Det er faktisk vores meget næste dias. 1538 01:14:47,150 --> 01:14:50,740 Dette er faktisk et pænere end skriv støbning, tror jeg. 1539 01:14:50,740 --> 01:14:53,470 Så disse to er flåd blot ved arten af ​​den kendsgerning, at de 1540 01:14:53,470 --> 01:14:54,926 have decimaler. 1541 01:14:54,926 --> 01:14:55,300 Ja? 1542 01:14:55,300 --> 01:14:57,670 >> PUBLIKUM: Hvad hvis du gjorde [uhørligt] 1543 01:14:57,670 --> 01:14:59,480 divideret med 10? 1544 01:14:59,480 --> 01:15:02,270 >> LAUREN CARVALHO: Faktisk en float divideret med en int faktisk giver dig en 1545 01:15:02,270 --> 01:15:03,670 flyde, så det ville fungere fint. 1546 01:15:03,670 --> 01:15:08,070 1547 01:15:08,070 --> 01:15:09,120 >> Vent, er alle forstå dette? 1548 01:15:09,120 --> 01:15:12,720 Da dette vil være en rigtig big deal i Pset1, faktisk. 1549 01:15:12,720 --> 01:15:13,130 Ja? 1550 01:15:13,130 --> 01:15:14,762 >> PUBLIKUM: Kan du lige hurtigt gå over den røde del? 1551 01:15:14,762 --> 01:15:16,380 >> LAUREN CARVALHO: Den røde del, ja. 1552 01:15:16,380 --> 01:15:17,250 Lucas, vil du? 1553 01:15:17,250 --> 01:15:18,020 >> LUCAS FREITAS: OK. 1554 01:15:18,020 --> 01:15:20,570 Så husk, at den procentvise er en pladsholder. 1555 01:15:20,570 --> 01:15:22,150 Det er ligesom en tom plads. 1556 01:15:22,150 --> 01:15:26,240 Så lad os prøve at forstå alt , der foregår her. 1557 01:15:26,240 --> 01:15:28,170 Procent betyder, at det er en pladsholder. 1558 01:15:28,170 --> 01:15:33,640 Så har du f, hvilket betyder, at denne pladsholder er for en float. 1559 01:15:33,640 --> 01:15:38,870 Den sidste ting, som vi har her er en .2, Hvilket betyder, at jeg vil have to 1560 01:15:38,870 --> 01:15:42,410 decimaler for svømmeren. 1561 01:15:42,410 --> 01:15:48,510 >> Hvis jeg bare havde% f, de vil sætte en flok af decimaler. 1562 01:15:48,510 --> 01:15:54,170 Så jeg kan bare sætte .2 eller .1 eller .5 eller uanset hvad, og det kommer til at sætte det 1563 01:15:54,170 --> 01:15:55,950 Antallet af decimaler. 1564 01:15:55,950 --> 01:15:59,950 Det eneste er, at hvis du sætter ligesom .100 Eller .1,000, er det faktisk ikke 1565 01:15:59,950 --> 01:16:04,200 kommer til at sætte alle disse decimaler fordi det ikke har nok hukommelse 1566 01:16:04,200 --> 01:16:06,432 at have denne præcision. 1567 01:16:06,432 --> 01:16:07,955 >> Andre spørgsmål? 1568 01:16:07,955 --> 01:16:08,450 Ja? 1569 01:16:08,450 --> 01:16:12,970 >> PUBLIKUM: Så flyder bare tillader dig til at gå ud over heltal? 1570 01:16:12,970 --> 01:16:13,720 >> LUCAS FREITAS: Ja. 1571 01:16:13,720 --> 01:16:17,345 >> LAUREN CARVALHO: Nå, en float bare tillader dig at have decimaler. 1572 01:16:17,345 --> 01:16:20,460 >> LUCAS FREITAS: Det betyder bare, at du nu kan have decimaltal. 1573 01:16:20,460 --> 01:16:25,728 >> PUBLIKUM: Hvorfor skulle vi nogensinde bruge heltal? 1574 01:16:25,728 --> 01:16:27,870 >> LUCAS FREITAS: Hvorfor skulle du bruger heltal? 1575 01:16:27,870 --> 01:16:31,810 Måske hvis du tælle fra 0 til 10, du ønsker at bruge faktisk et heltal. 1576 01:16:31,810 --> 01:16:33,370 Du behøver ikke at bruge en float. 1577 01:16:33,370 --> 01:16:35,430 I nogle situationer, du ikke har rent faktisk - 1578 01:16:35,430 --> 01:16:37,040 >> LAUREN CARVALHO: Måske har du ikke ønsker decimaler. 1579 01:16:37,040 --> 01:16:38,600 >> LUCAS FREITAS: Måske har du ikke gøre ønsker at bruge en flyder. 1580 01:16:38,600 --> 01:16:42,660 >> LAUREN CARVALHO: Den anden ting er, husk, både sætte en float og en int 1581 01:16:42,660 --> 01:16:46,170 tage 32 bit til at gemme dem, og måske du ikke ønsker at spilde bits på 1582 01:16:46,170 --> 01:16:48,062 decimaler. 1583 01:16:48,062 --> 01:16:49,750 >> LUCAS FREITAS: Ja. 1584 01:16:49,750 --> 01:16:51,910 Så ligesom, bare tænke over dette. 1585 01:16:51,910 --> 01:16:55,200 Du har 32 bit til både en int og en svømmer. 1586 01:16:55,200 --> 01:16:59,400 For en int, alle disse 32 bits gå til heltal. 1587 01:16:59,400 --> 01:17:03,460 Hvis du bruger en float med 32 bits, du har en del af denne hukommelse, der bruges 1588 01:17:03,460 --> 01:17:06,820 for antallet for hele tal, og den anden del, der benyttes til 1589 01:17:06,820 --> 01:17:08,300 decimaler. 1590 01:17:08,300 --> 01:17:12,370 Så det betyder, at du ikke kan komme til et meget stort antal med flåd fordi 1591 01:17:12,370 --> 01:17:16,020 svømmeren er allerede bruge en masse hukommelse for de decimaler. 1592 01:17:16,020 --> 01:17:17,014 Ja? 1593 01:17:17,014 --> 01:17:21,487 >> PUBLIKUM: Det første svar, hvad der præcist er det at gøre? 1594 01:17:21,487 --> 01:17:25,214 Er det at sætte værdien af ​​float lige til denne pladsholder for at du kan 1595 01:17:25,214 --> 01:17:26,954 huske det i næste linje? 1596 01:17:26,954 --> 01:17:28,942 Den siger flyde svar. 1597 01:17:28,942 --> 01:17:29,770 >> LUCAS FREITAS: Ja. 1598 01:17:29,770 --> 01:17:37,200 Så float svar betyder, at du får nu en lille spand i den hukommelse, der 1599 01:17:37,200 --> 01:17:40,050 holder en float, og der kommer at blive kaldt svar. 1600 01:17:40,050 --> 01:17:42,040 Så det er, hvad float svar gør. 1601 01:17:42,040 --> 01:17:44,720 >> Og så siger du, at indersiden af dette, er du nødt til at sætte 1602 01:17:44,720 --> 01:17:46,470 resultatet af denne. 1603 01:17:46,470 --> 01:17:52,610 Så du kommer til at gøre 1,0 divideret med 10,0, får du 0,1, og så skal du sætte 1604 01:17:52,610 --> 01:17:53,490 at indersiden af ​​svar. 1605 01:17:53,490 --> 01:17:57,540 >> LAUREN CARVALHO: Så i én linje, er vi erklære og initialisere denne float 1606 01:17:57,540 --> 01:18:00,070 kaldt svar. 1607 01:18:00,070 --> 01:18:04,470 >> LUCAS FREITAS: interessant, selvom Dette er blot én linje, det gør 1608 01:18:04,470 --> 01:18:05,570 flere operationer. 1609 01:18:05,570 --> 01:18:08,800 Det er bare en måde at C udlejning du bruger mindre kode. 1610 01:18:08,800 --> 01:18:12,310 Det er det samme som den ternære operatør, hvordan man bare kan gøre en 1611 01:18:12,310 --> 01:18:13,810 [Uhørligt] på én linje. 1612 01:18:13,810 --> 01:18:18,860 Det er faktisk gør det samme som laver float svar, semikolon, og 1613 01:18:18,860 --> 01:18:23,060 så svaret er lig med det, men i stedet for gør du gøre to linjer til det, 1614 01:18:23,060 --> 01:18:24,160 det er ligesom en genvej. 1615 01:18:24,160 --> 01:18:24,520 Ja? 1616 01:18:24,520 --> 01:18:27,929 >> PUBLIKUM: Så hvis du kørte dette, det ville være 0,10? 1617 01:18:27,929 --> 01:18:30,120 >> LUCAS FREITAS: Ja. 1618 01:18:30,120 --> 01:18:30,530 Ja? 1619 01:18:30,530 --> 01:18:34,540 >> PUBLIKUM: Er besvare faktisk kode, eller er det bare det navn? 1620 01:18:34,540 --> 01:18:36,010 >> LAUREN CARVALHO: Denne er faktisk kode. 1621 01:18:36,010 --> 01:18:37,750 Dette er, hvad vi vil at navngive vores variabel. 1622 01:18:37,750 --> 01:18:39,770 >> PUBLIKUM: Så er det bare et navn [uhørligt]. 1623 01:18:39,770 --> 01:18:40,270 >> LAUREN CARVALHO: Ja. 1624 01:18:40,270 --> 01:18:44,670 Jeg kunne have sagt float x lig 1,0. 1625 01:18:44,670 --> 01:18:47,160 >> LUCAS FREITAS: Sagen er, at navnet på den variabel er 1626 01:18:47,160 --> 01:18:48,400 noget, som du bruger. 1627 01:18:48,400 --> 01:18:49,690 Det er vigtigt for dig. 1628 01:18:49,690 --> 01:18:52,660 For selve programmet, det eneste at forhold, er den værdi, du 1629 01:18:52,660 --> 01:18:55,570 har indersiden af ​​spanden. 1630 01:18:55,570 --> 01:18:59,270 Grunden til at du har variable og navne på variabler, så du ville vide 1631 01:18:59,270 --> 01:19:01,910 hvad du har med at, ligesom hvilken slags data, du er 1632 01:19:01,910 --> 01:19:03,040 adgang ad gangen. 1633 01:19:03,040 --> 01:19:07,580 Men for selve koden, hvis du ringer det besvare eller spørgsmål eller noget, 1634 01:19:07,580 --> 01:19:09,530 temmelig meget, det gør ikke noget. 1635 01:19:09,530 --> 01:19:10,060 Det betyder ikke noget. 1636 01:19:10,060 --> 01:19:12,910 Så længe du er konsekvent i hver forekomst det, og så kalder du det 1637 01:19:12,910 --> 01:19:13,620 noget andet. 1638 01:19:13,620 --> 01:19:14,880 Ja? 1639 01:19:14,880 --> 01:19:17,208 >> PUBLIKUM: Har variabler gå ud over den funktion? 1640 01:19:17,208 --> 01:19:20,902 Ligesom hvis du skulle oprette et beslag [Uhørligt], kan du bare 1641 01:19:20,902 --> 01:19:21,806 [Uhørligt] svare igen? 1642 01:19:21,806 --> 01:19:22,550 >> LAUREN CARVALHO: Nej. 1643 01:19:22,550 --> 01:19:23,300 >> PUBLIKUM: [uhørligt] 1644 01:19:23,300 --> 01:19:24,200 >> LAUREN CARVALHO: Nej. 1645 01:19:24,200 --> 01:19:26,930 Det ville være uden for rækkevidde af denne variabel. 1646 01:19:26,930 --> 01:19:29,940 Og faktisk, det er lidt interessant, for når vi har 1647 01:19:29,940 --> 01:19:33,010 ting som sløjfer eller disse, hvis betingelser, hvis du erklærer en variabel 1648 01:19:33,010 --> 01:19:36,330 inden andet sæt krøllede parenteser, det virkelig kun eksisterer 1649 01:19:36,330 --> 01:19:39,800 inden for disse krøllede parenteser. 1650 01:19:39,800 --> 01:19:43,088 >> PUBLIKUM: En sidste bemærkning om de [uhørligt] flåd. 1651 01:19:43,088 --> 01:19:46,076 Hvorfor ville du nogensinde ønsker at bruge ints? 1652 01:19:46,076 --> 01:19:49,562 Dette er mere en side bemærkning end noget, men din computer er 1653 01:19:49,562 --> 01:19:53,048 betydeligt bedre til at håndtere reklamationer end det er at håndtere flåd. 1654 01:19:53,048 --> 01:19:55,040 Det er ligesom en rækkefølge størrelsesorden hurtigere. 1655 01:19:55,040 --> 01:20:00,360 Så hvis vi bare kun behandles flåd, ting ville være meget langsommere. 1656 01:20:00,360 --> 01:20:03,080 >> LAUREN CARVALHO: Faktisk synes der at være et problem med flåd. 1657 01:20:03,080 --> 01:20:06,400 >> LUCAS FREITAS: Kind af årsagen til , at du kan tænke, er, hvordan i binær 1658 01:20:06,400 --> 01:20:08,480 du kan repræsentere heltal ved at sætte 0'er og 1'er. 1659 01:20:08,480 --> 01:20:09,980 >> LAUREN CARVALHO: Det er den næste ting. 1660 01:20:09,980 --> 01:20:10,480 >> LUCAS FREITAS: OK. 1661 01:20:10,480 --> 01:20:10,740 Awesome. 1662 01:20:10,740 --> 01:20:11,480 >> LAUREN CARVALHO: Just holde den tanke. 1663 01:20:11,480 --> 01:20:13,800 >> LUCAS FREITAS: OK, jeg vil fortælle dig senere. 1664 01:20:13,800 --> 01:20:16,920 >> LAUREN CARVALHO: Før vi kommer til det, Lucas var bare at sige, operatør 1665 01:20:16,920 --> 01:20:17,420 forrang. 1666 01:20:17,420 --> 01:20:18,220 Det er sund fornuft. 1667 01:20:18,220 --> 01:20:20,830 I gutter har gjort dette nok. 1668 01:20:20,830 --> 01:20:24,705 Så bare hvis noget er i parentes, det vil ske først. 1669 01:20:24,705 --> 01:20:27,970 Det er multiplikation forrang i Desuden 1670 01:20:27,970 --> 01:20:30,330 subtraktion, ting som. 1671 01:20:30,330 --> 01:20:34,700 Så faktisk, bare nogen der ønsker at fortælle mig, hvad nummer man faktisk 1672 01:20:34,700 --> 01:20:36,674 evalueres til? 1673 01:20:36,674 --> 01:20:37,638 >> PUBLIKUM: 27.. 1674 01:20:37,638 --> 01:20:39,090 >> LAUREN CARVALHO: 27? 1675 01:20:39,090 --> 01:20:39,550 Ja. 1676 01:20:39,550 --> 01:20:41,975 >> LUCAS FREITAS: Lad mig give slik til folk. 1677 01:20:41,975 --> 01:20:42,850 >> LAUREN CARVALHO: Okay. 1678 01:20:42,850 --> 01:20:44,100 Hvad med nummer to? 1679 01:20:44,100 --> 01:20:46,880 1680 01:20:46,880 --> 01:20:48,340 Hvad med nummer to? 1681 01:20:48,340 --> 01:20:49,280 >> PUBLIKUM: 22.. 1682 01:20:49,280 --> 01:20:50,680 >> LAUREN CARVALHO: 22, ja. 1683 01:20:50,680 --> 01:20:51,570 Jeg ved ikke, hvem der fik det. 1684 01:20:51,570 --> 01:20:52,694 Nummer tre? 1685 01:20:52,694 --> 01:20:54,050 >> PUBLIKUM: 10.. 1686 01:20:54,050 --> 01:20:55,300 >> LAUREN CARVALHO: 10, ja. 1687 01:20:55,300 --> 01:20:58,150 1688 01:20:58,150 --> 01:20:58,490 Fedt. 1689 01:20:58,490 --> 01:21:01,280 Så modulo. 1690 01:21:01,280 --> 01:21:03,700 Lucas, vil du forklare modulo? 1691 01:21:03,700 --> 01:21:07,150 >> LUCAS FREITAS: Modulo er denne operatør det er faktisk meget nyttigt for en 1692 01:21:07,150 --> 01:21:09,470 bundt af problemer. 1693 01:21:09,470 --> 01:21:15,270 Hvis jeg gør 55 modulo 10, hvad den gør dette lad os sige, at jeg ønsker at 1694 01:21:15,270 --> 01:21:16,970 dele 55 af 10. 1695 01:21:16,970 --> 01:21:18,240 Hvad får jeg? 1696 01:21:18,240 --> 01:21:21,380 Det føles ligesom hvis jeg faktisk bare gør divisionen, hvad er 1697 01:21:21,380 --> 01:21:22,450 første gang, at jeg fik heltal? 1698 01:21:22,450 --> 01:21:23,190 >> PUBLIKUM: 5. jan. 1699 01:21:23,190 --> 01:21:24,080 >> LUCAS FREITAS: 5.. 1700 01:21:24,080 --> 01:21:26,230 Og så resten er 5, right? 1701 01:21:26,230 --> 01:21:29,250 Så det er ligesom 5 gange 10 plus 5. 1702 01:21:29,250 --> 01:21:35,570 Dybest set, hvad modulo betyder, den forsøger at dividere dette tal med denne ene, og 1703 01:21:35,570 --> 01:21:37,440 det ser, hvad er resten af divisionen. 1704 01:21:37,440 --> 01:21:40,080 >> LAUREN CARVALHO: Så det bare returnerer resten. 1705 01:21:40,080 --> 01:21:41,920 Så nummer et er hvad? 1706 01:21:41,920 --> 01:21:42,560 5.. 1707 01:21:42,560 --> 01:21:43,336 Nummer to? 1708 01:21:43,336 --> 01:21:44,150 >> PUBLIKUM: 3.. 1709 01:21:44,150 --> 01:21:44,934 >> LAUREN CARVALHO: 3.. 1710 01:21:44,934 --> 01:21:46,240 Nummer tre? 1711 01:21:46,240 --> 01:21:47,190 0. 1712 01:21:47,190 --> 01:21:48,410 Og fire er 1.. 1713 01:21:48,410 --> 01:21:48,665 Præcis. 1714 01:21:48,665 --> 01:21:49,915 >> LUCAS FREITAS: Simpel, right? 1715 01:21:49,915 --> 01:21:54,270 1716 01:21:54,270 --> 01:21:56,560 >> LAUREN CARVALHO: Hvorfor vi ikke springe dette bare fordi vi ikke rigtig har 1717 01:21:56,560 --> 01:21:59,780 tid, og folk synes at forstå. 1718 01:21:59,780 --> 01:22:03,330 Så her er hvad Lucas var bare taler om. 1719 01:22:03,330 --> 01:22:08,030 >> LUCAS FREITAS: En anden grund til, at jeg ville bruge int'er stedet for flåd er 1720 01:22:08,030 --> 01:22:10,840 at flåd er meget upræcise. 1721 01:22:10,840 --> 01:22:12,720 Og hvorfor er de upræcis? 1722 01:22:12,720 --> 01:22:17,140 David sagde, at repræsentere et heltal, for eksempel, bruger vi 0'er og 1723 01:22:17,140 --> 01:22:17,810 1, ikke? 1724 01:22:17,810 --> 01:22:22,370 Og så skal du stort set gøre det multiplikation, gør alle de 1725 01:22:22,370 --> 01:22:30,000 operationer for at vide, hvad decimaltal du har i stedet for binære. 1726 01:22:30,000 --> 01:22:33,040 >> Hvad sker der nu hvis jeg prøver at sætte decimaler? 1727 01:22:33,040 --> 01:22:37,680 Faktisk, for eksempel, hvis jeg har det tal som 3,33333? 1728 01:22:37,680 --> 01:22:40,250 Det føles som 10 over 3. 1729 01:22:40,250 --> 01:22:44,950 Hvordan skal jeg nu til at gemme alle de 3 er, at jeg har efter det? 1730 01:22:44,950 --> 01:22:47,120 Det er virkelig svært, ikke? 1731 01:22:47,120 --> 01:22:49,580 Du kan ikke bare fortælle computeren, hey, jeg har en 3, og 1732 01:22:49,580 --> 01:22:50,520 så du gør det for evigt. 1733 01:22:50,520 --> 01:22:52,810 Faktisk er computeren ikke smart nok for dette. 1734 01:22:52,810 --> 01:22:58,300 >> Så dybest set alle dine computer gør, er at det forsøger at sætte så mange cifre som 1735 01:22:58,300 --> 01:23:00,950 det kan op til den hukommelse, som du har. 1736 01:23:00,950 --> 01:23:05,890 Så lad os sige, at det kommer til at sige 3,3333, og det er det. 1737 01:23:05,890 --> 01:23:10,690 Så det er ikke i stand til rent faktisk at udtrykke præcist, hvad der flyder er. 1738 01:23:10,690 --> 01:23:13,240 >> LAUREN CARVALHO: Vi har et endeligt antal bit, hvilket betyder, at ikke 1739 01:23:13,240 --> 01:23:17,910 hver decimaltal vil være kunne være repræsenteret præcist. 1740 01:23:17,910 --> 01:23:24,910 Og så i dette eksempel, hvis vi er udskrive 0.1, er vi nu udskrivning 1741 01:23:24,910 --> 01:23:26,475 ud 20 steder. 1742 01:23:26,475 --> 01:23:30,250 >> LUCAS FREITAS: Ligesom jeg fortalte gutter, kan du sætte et vilkårligt antal. 1743 01:23:30,250 --> 01:23:36,520 Men hvis du lige gjorde de to steder, du ville få 0,10, men hvis du lægger 20 1744 01:23:36,520 --> 01:23:43,630 steder, det kommer til at vise dig et bundt af 's, fordi det er, hvad du kan sætte 1745 01:23:43,630 --> 01:23:45,720 i hukommelsen, right? 1746 01:23:45,720 --> 01:23:48,800 >> Men lige her, op til 0, og så bare sætte det et 1747 01:23:48,800 --> 01:23:50,030 flok tilfældige tal. 1748 01:23:50,030 --> 01:23:52,590 Det er lidt ligesom nogle - 1749 01:23:52,590 --> 01:23:56,190 >> LAUREN CARVALHO: Det er fordi vi er ikke i stand til at repræsentere denne decimal 1750 01:23:56,190 --> 01:23:58,320 netop med nummeret bits vi har. 1751 01:23:58,320 --> 01:23:59,730 >> LUCAS FREITAS: Og så computer er dybest set 1752 01:23:59,730 --> 01:24:01,470 giver dig en papirkurv nummer. 1753 01:24:01,470 --> 01:24:04,530 Dette er faktisk ikke værdien af ​​nummeret. 1754 01:24:04,530 --> 01:24:08,242 >> PUBLIKUM: Det er så tæt som det kan få [uhørligt] 1755 01:24:08,242 --> 01:24:09,613 bruge [uhørligt]. 1756 01:24:09,613 --> 01:24:12,685 1757 01:24:12,685 --> 01:24:18,830 >> LAUREN CARVALHO: Så konsekvenserne af dette er, at lad os sige at i stedet for 1758 01:24:18,830 --> 01:24:27,680 være 0.100014, uanset hvad, hvad nu hvis det var 0,0999 - 1759 01:24:27,680 --> 01:24:30,470 godt, OK. 1760 01:24:30,470 --> 01:24:38,280 Lad os lade som den faktiske svar til dette var 0,9999999. 1761 01:24:38,280 --> 01:24:40,740 Det er meget tæt på 1, men det er ikke ligefrem 1.. 1762 01:24:40,740 --> 01:24:42,840 Det er 0,99999. 1763 01:24:42,840 --> 01:24:48,140 >> Det betyder, at hvis jeg tager det 0.999, og jeg kastede det til en int, får jeg 0. 1764 01:24:48,140 --> 01:24:49,460 Jeg kan ikke få 1. 1765 01:24:49,460 --> 01:24:53,050 >> LUCAS FREITAS: Fordi huske, støbning fra float til int, skal du bare 1766 01:24:53,050 --> 01:24:54,880 ignorere alle de decimaler. 1767 01:24:54,880 --> 01:24:56,400 Du skal bare ignorere dem. 1768 01:24:56,400 --> 01:25:00,170 Der er ikke sådan noget som oprunding eller kører ned, når du typecast. 1769 01:25:00,170 --> 01:25:03,310 Faktisk er der denne funktion, gør afrunding, som er meget 1770 01:25:03,310 --> 01:25:08,840 vigtigt, men du bare tror, ​​at når du gør typecasting, det er bare 1771 01:25:08,840 --> 01:25:09,720 ved at slette alt. 1772 01:25:09,720 --> 01:25:13,970 Så selv hvis du har 0,99999, går det at bare give 0, hvis du typecast 1773 01:25:13,970 --> 01:25:14,800 [Uhørligt] et heltal. 1774 01:25:14,800 --> 01:25:17,480 >> LAUREN CARVALHO: Så bare være rigtig klar af floating point i præcision, 1775 01:25:17,480 --> 01:25:20,410 især når du starter at bruge flåd i Pset1. 1776 01:25:20,410 --> 01:25:22,790 Men gåtur gennem bør advare dig om, at så godt. 1777 01:25:22,790 --> 01:25:26,100 >> LUCAS FREITAS: Og faktisk er det virkelig hårdt, for eksempel, hvis jeg gjorde 1778 01:25:26,100 --> 01:25:31,570 float svar 1 er lig med 1,0 i 10, og derefter flyde svar 2 1779 01:25:31,570 --> 01:25:35,540 lig 10,0 løbet 100,0. 1780 01:25:35,540 --> 01:25:36,890 De er de samme tal, right? 1781 01:25:36,890 --> 01:25:38,540 0,1, right? 1782 01:25:38,540 --> 01:25:41,700 1 i løbet af 10 eller 10 over 100. 1783 01:25:41,700 --> 01:25:46,360 Men nu, hvis jeg forsøger at se lighed, ligesom hvis svar 1 er lig besvare 2, 1784 01:25:46,360 --> 01:25:49,300 måske er det faktisk ikke går at være det samme. 1785 01:25:49,300 --> 01:25:50,720 Så flåd er lidt ligesom det. 1786 01:25:50,720 --> 01:25:51,970 De er ligesom at gøre ligestilling. 1787 01:25:51,970 --> 01:25:55,136