1 00:00:07,275 --> 00:00:08,980 [Powered by Google Translate] LEXI ROSS: Okay, hej, alle. 2 00:00:08,980 --> 00:00:11,930 Velkommen til det første CS50 supersection. 3 00:00:11,930 --> 00:00:13,800 Dette vil være det eneste uge af supersections. 4 00:00:13,800 --> 00:00:17,130 Efter dette, vil du være at gå til regelmæssig sektion med din 5 00:00:17,130 --> 00:00:18,530 tildelt TF. 6 00:00:18,530 --> 00:00:20,280 Men i denne uge, vi gør det på en lille smule af en anden 7 00:00:20,280 --> 00:00:23,530 format, selvom den faktiske format, hvordan det kommer til at gå 8 00:00:23,530 --> 00:00:25,950 for den næste halvanden time eller deromkring, vil er at være temmelig 9 00:00:25,950 --> 00:00:27,700 svarer til, hvad du skal se efter 10 00:00:27,700 --> 00:00:29,350 resten af ​​semesteret. 11 00:00:29,350 --> 00:00:33,630 >> Så hvad vi vil gøre, er at starte med at gå over 12 00:00:33,630 --> 00:00:35,920 sektion del af dit problem sæt. 13 00:00:35,920 --> 00:00:38,940 Så hvis du har læst over p sæt, som forhåbentlig du har, 14 00:00:38,940 --> 00:00:41,120 vil du se, at der er en del der hedder "Et udsnit af 15 00:00:41,120 --> 00:00:43,190 Spørgsmål ", og disse er beregnet til at blive væk 16 00:00:43,190 --> 00:00:44,180 over i dine afsnit. 17 00:00:44,180 --> 00:00:47,510 Så du har en fordel ved at være her i, at du kommer til 18 00:00:47,510 --> 00:00:50,680 gå over disse mere konceptuel-baserede spørgsmål. 19 00:00:50,680 --> 00:00:52,780 Og når vi gør det, vil vi gå over de sidste to 20 00:00:52,780 --> 00:00:55,070 § spørgsmål, som er mere dykke 21 00:00:55,070 --> 00:00:56,330 til kodning type spørgsmål. 22 00:00:56,330 --> 00:00:58,470 Så vi er faktisk nødt til jer tage et par 23 00:00:58,470 --> 00:01:01,040 minutter for hvert spørgsmål, så prøv at løse dem på egen hånd, og 24 00:01:01,040 --> 00:01:03,590 så vil vi komme sammen med den nye CS50 25 00:01:03,590 --> 00:01:06,670 Spaces værktøj og gå over de svar, så du har alle de 26 00:01:06,670 --> 00:01:09,130 rigtige kode til at gennemgå. 27 00:01:09,130 --> 00:01:10,790 >> Så et par meddelelser. 28 00:01:10,790 --> 00:01:12,690 Glem ikke, at der er kontortid hver nat dette 29 00:01:12,690 --> 00:01:16,500 uge i Annenberg 8 til 11, så skal du tage 30 00:01:16,500 --> 00:01:17,410 fordel for dem. 31 00:01:17,410 --> 00:01:21,660 Og også, ikke stiller til start p indstillet for sent i ugen. 32 00:01:21,660 --> 00:01:24,640 Start i aften eller i morgen aften senest. 33 00:01:24,640 --> 00:01:26,770 Du vil fortryde det, hvis du venter for længe med at starte 34 00:01:26,770 --> 00:01:27,970 og løbe ind i problemer. 35 00:01:27,970 --> 00:01:31,160 Så tag vores råd og definitivt starte tidligt. 36 00:01:31,160 --> 00:01:32,860 Dette vil være en god måde at komme i gang med 37 00:01:32,860 --> 00:01:34,450 disse afsnit spørgsmål. 38 00:01:34,450 --> 00:01:35,810 Så jeg er Lexi, ved den måde. 39 00:01:35,810 --> 00:01:36,740 Jeg er en TF. 40 00:01:36,740 --> 00:01:38,455 Og det er Dan, der er også en TF. 41 00:01:38,455 --> 00:01:38,940 DAN BRADLEY: Hej med jer. 42 00:01:38,940 --> 00:01:39,770 LEXI ROSS: Og han kommer til at blive 43 00:01:39,770 --> 00:01:41,370 startede med spørgsmålene. 44 00:01:41,370 --> 00:01:42,410 >> DAN BRADLEY: Okay. 45 00:01:42,410 --> 00:01:46,730 Så jeg har tænkt mig at bare indføre et par lille compiler 46 00:01:46,730 --> 00:01:50,350 spørgsmål, som vi kommer til at tale om og bare gå igennem 47 00:01:50,350 --> 00:01:54,550 en slags konceptuelle ideer, som vi er nødt til rent faktisk at køre 48 00:01:54,550 --> 00:01:59,120 kode, enten i et apparat eller med vores slags falske 49 00:01:59,120 --> 00:02:01,520 apparater, Run CS50 og Spaces. 50 00:02:01,520 --> 00:02:05,550 Så lad os bare se, om nogen blandt publikum har nogen idé 51 00:02:05,550 --> 00:02:07,450 om, hvad vi taler om. 52 00:02:07,450 --> 00:02:11,130 >> Så hvad er et bibliotek i forbindelse med koden? 53 00:02:11,130 --> 00:02:13,680 Nogen der har nogen idé? 54 00:02:13,680 --> 00:02:14,250 Okay. 55 00:02:14,250 --> 00:02:15,770 Sweet. 56 00:02:15,770 --> 00:02:17,876 PUBLIKUM: Like a bestand af funktioner, som en anden 57 00:02:17,876 --> 00:02:19,690 allerede er programmeret, at vi kan bygge op? 58 00:02:19,690 --> 00:02:20,230 DAN BRADLEY: Præcis. 59 00:02:20,230 --> 00:02:24,180 Så et bibliotek er en bestand af funktioner, at en anden 60 00:02:24,180 --> 00:02:27,100 har allerede programmeret, at vi ikke behøver at 61 00:02:27,100 --> 00:02:28,480 ny at gennemføre os selv. 62 00:02:28,480 --> 00:02:32,140 Så vi har ting som standard I / O-bibliotek, den 63 00:02:32,140 --> 00:02:38,720 cs50.h bibliotek, der er ting, som verden, 64 00:02:38,720 --> 00:02:41,870 Internettet, har personalet gjort, der gør vores 65 00:02:41,870 --> 00:02:43,670 liv lettere som kodere. 66 00:02:43,670 --> 00:02:46,410 Så hvordan kan du udskriver ting til en skærm? 67 00:02:46,410 --> 00:02:49,910 Jeg har ingen idé om, printf gør det for mig. 68 00:02:49,910 --> 00:02:52,290 Det er noget en anden har allerede dette er 69 00:02:52,290 --> 00:02:54,640 awesome og fungerer ganske godt. 70 00:02:54,640 --> 00:02:55,440 >> Okay. 71 00:02:55,440 --> 00:02:59,160 Så for at bruge bibliotekerne, på den anden side, men du har 72 00:02:59,160 --> 00:03:02,450 til rent faktisk at gøre nogle ekstra ting med din kode. 73 00:03:02,450 --> 00:03:07,400 Så du er nødt til at bruge ting som dette # include. 74 00:03:07,400 --> 00:03:09,190 Hvad betyder det så? 75 00:03:09,190 --> 00:03:13,010 Hvilken rolle at spille, når du har det i et program? 76 00:03:13,010 --> 00:03:15,128 PUBLIKUM: Det kan du gøre brug af de funktioner, der er 77 00:03:15,128 --> 00:03:16,040 [Uhørlig] 78 00:03:16,040 --> 00:03:19,515 bibliotek ved blot at bruge de definitioner, der allerede 79 00:03:19,515 --> 00:03:20,425 [Uhørlig] 80 00:03:20,425 --> 00:03:20,880 bibliotek. 81 00:03:20,880 --> 00:03:21,680 DAN BRADLEY: Okay. 82 00:03:21,680 --> 00:03:25,930 Det kan du trække biblioteksfunktioner ind i din kode, men 83 00:03:25,930 --> 00:03:29,320 det gør det på en måde, der er ikke helt det samme som samme 84 00:03:29,320 --> 00:03:32,020 -Lcs50, som vi vil komme til i et minut. 85 00:03:32,020 --> 00:03:36,010 Det bare lader compileren vide, at hey, der er disse 86 00:03:36,010 --> 00:03:40,550 funktioner, der vil komme op i din kode. 87 00:03:40,550 --> 00:03:44,240 Vær opmærksom på, at hvis ikke de er fuldt beskrevet i koden 88 00:03:44,240 --> 00:03:47,110 der er foran dig, er der nogle biblioteksfunktionen 89 00:03:47,110 --> 00:03:49,510 , der vil tage sig af det. 90 00:03:49,510 --> 00:03:53,010 >> Så i tilfælde af printf, som vi vil gå over et par 91 00:03:53,010 --> 00:03:56,400 gange i dag, er den standard I / O-bibliotek. 92 00:03:56,400 --> 00:04:00,010 Så mens jeg ikke definerer printf overalt i min kode nogensinde, 93 00:04:00,010 --> 00:04:05,340 standard I / O tager sig af det for mig, og jeg vil gøre # include 94 00:04:05,340 --> 00:04:13,780 stdio.h, og det vil trække i disse funktioner, som jeg 95 00:04:13,780 --> 00:04:15,400 har aldrig defineret. 96 00:04:15,400 --> 00:04:20,019 Så hvad er forskellen altså mellem dette # include 97 00:04:20,019 --> 00:04:22,320 og-lcs50? 98 00:04:22,320 --> 00:04:25,890 Hvad gør-lcs50 gøre, når jeg videregive det til den 99 00:04:25,890 --> 00:04:29,430 compiler, ligesom Dunk? 100 00:04:29,430 --> 00:04:32,670 Nogen der har nogen idé? 101 00:04:32,670 --> 00:04:34,631 Okay. 102 00:04:34,631 --> 00:04:35,605 Ja? 103 00:04:35,605 --> 00:04:39,020 PUBLIKUM: Det kan du få adgang til CS50 biblioteket? 104 00:04:39,020 --> 00:04:42,120 DAN BRADLEY: Det kan du få adgang til CS50 biblioteket i 105 00:04:42,120 --> 00:04:46,610 at den fortæller compileren, Dunk, at hey, det er her 106 00:04:46,610 --> 00:04:50,930 du rent faktisk gå for at få disse funktioner. 107 00:04:50,930 --> 00:04:55,010 Så # include siger, at der er 108 00:04:55,010 --> 00:04:58,510 disse funktioner eller andet sted. 109 00:04:58,510 --> 00:05:02,680 The-lcs50 siger, gå til denne plet i din computer - 110 00:05:02,680 --> 00:05:05,770 det er den CS50 bibliotek - 111 00:05:05,770 --> 00:05:09,990 og trække op den faktiske koden til disse funktioner. 112 00:05:13,110 --> 00:05:14,370 Giver det mening, alle? 113 00:05:14,370 --> 00:05:17,930 >> Så disse er alle ting, der er at hjælpe din compiler 114 00:05:17,930 --> 00:05:22,490 sammen med at gøre koden faktisk kører. 115 00:05:22,490 --> 00:05:23,350 Hurtig spørgsmål. 116 00:05:23,350 --> 00:05:24,870 Må folk ved, hvad en compiler er? 117 00:05:28,220 --> 00:05:29,700 God mening? 118 00:05:29,700 --> 00:05:33,160 Det er dybest set tager den skriftlige kode, som du har, 119 00:05:33,160 --> 00:05:35,380 konvertere den til binær, omdannes til maskinkode, 120 00:05:35,380 --> 00:05:39,370 så din computer kan faktisk forstå det. 121 00:05:39,370 --> 00:05:43,330 Og uden videre, vi kommer til at gå ind i den mere 122 00:05:43,330 --> 00:05:46,640 faktiske kodning øvelser, som du fyre vil have nogle sjove 123 00:05:46,640 --> 00:05:49,850 synker tænderne i, og Lexi vil gå over det. 124 00:05:49,850 --> 00:05:51,110 >> LEXI ROSS: Okay. 125 00:05:51,110 --> 00:05:51,455 Awesome. 126 00:05:51,455 --> 00:05:55,470 Så vi vil gå over to spørgsmål her. 127 00:05:55,470 --> 00:06:01,170 Så den første rent faktisk, kan du se, det er en lille smule 128 00:06:01,170 --> 00:06:03,240 small lige her, men i bund og det er beder dig om at 129 00:06:03,240 --> 00:06:04,930 skrive et program til at tage nogle brugerinput. 130 00:06:04,930 --> 00:06:09,058 Jeg er ikke sikker på, hvorfor der er en sort firkant der. 131 00:06:09,058 --> 00:06:10,000 Det er mystisk. 132 00:06:10,000 --> 00:06:12,180 Det bør være fint, selv om. 133 00:06:12,180 --> 00:06:16,000 Så det vil have dig til at tage en bruger input i Celsius, konvertere denne 134 00:06:16,000 --> 00:06:18,270 til Fahrenheit, og derefter fortælle brugeren hvad temperaturen 135 00:06:18,270 --> 00:06:19,720 ville være i Fahrenheit. 136 00:06:19,720 --> 00:06:25,530 Så du kan se et eksempel input / output sekvens her. 137 00:06:25,530 --> 00:06:28,770 Brugeren indgange - efter Celsius henviser fed til 138 00:06:28,770 --> 00:06:29,300 brugerinput. 139 00:06:29,300 --> 00:06:32,460 Så brugerindgange 100, og programmet udgange 140 00:06:32,460 --> 00:06:34,530 Fahrenheit, 212,0. 141 00:06:34,530 --> 00:06:36,700 Og en vigtig sondring i dette program er, at vi er 142 00:06:36,700 --> 00:06:41,770 vil kun have én decimal, så vi vil se, hvordan du gør 143 00:06:41,770 --> 00:06:43,020 at så godt. 144 00:06:43,020 --> 00:06:45,780 Og så en anden ting at bemærke er, at vi bruger a.out 145 00:06:45,780 --> 00:06:49,960 fordi Dunk, compileren, automatisk navngiver sit binære 146 00:06:49,960 --> 00:06:53,460 filer a.out medmindre du angiver det med en vis flag til at give 147 00:06:53,460 --> 00:06:55,410 det sit eget navn, men for nu skal vi bare skal bruge 148 00:06:55,410 --> 00:06:57,070 standard a.out. 149 00:06:57,070 --> 00:07:01,320 >> Så lad os faktisk tage et par minutter, og prøv at skrive ud 150 00:07:01,320 --> 00:07:02,570 noget kode for denne selv. 151 00:07:05,900 --> 00:07:07,380 Så det er 4:15. 152 00:07:07,380 --> 00:07:10,470 Så på 4:20, vil vi komme tilbage og - oh, højre. 153 00:07:10,470 --> 00:07:12,960 Spaces. 154 00:07:12,960 --> 00:07:13,980 Cool. 155 00:07:13,980 --> 00:07:16,500 Det er lidt ligesom det, vi kalder skelet kode i det 156 00:07:16,500 --> 00:07:19,870 Det er et skelet, men du er nødt til at udfylde kødet af 157 00:07:19,870 --> 00:07:21,590 program til rent faktisk at gøre det køre. 158 00:07:21,590 --> 00:07:25,980 Så du kan se det # include direktiver deroppe at omfatte 159 00:07:25,980 --> 00:07:28,040 CS50 og stdio. 160 00:07:28,040 --> 00:07:32,010 Jeg bemærkede i en kommentar den egentlige formel for omregning 161 00:07:32,010 --> 00:07:35,310 Celsius til Fahrenheit, hvis du ikke kan huske fra høj 162 00:07:35,310 --> 00:07:36,740 skole videnskab eller whatnot. 163 00:07:36,740 --> 00:07:38,450 Og så er det bare et skelet for 164 00:07:38,450 --> 00:07:39,450 den egentlige funktion. 165 00:07:39,450 --> 00:07:41,680 Så alt, hvad du skriver kommer til at gå her. 166 00:07:45,640 --> 00:07:50,490 Og for rent faktisk at komme til dette rum - 167 00:07:50,490 --> 00:07:56,105 så CS50 Spaces kan tilgås via denne webadresse, som Dan er 168 00:07:56,105 --> 00:08:02,505 vil skrive på tavlen, og jeg vil diktere så godt. 169 00:08:02,505 --> 00:08:12,093 DAN BRADLEY: cs50.net/spaces-- 170 00:08:12,093 --> 00:08:12,580 LEXI ROSS: / qWLc - 171 00:08:12,580 --> 00:08:13,830 Jeg er ked af, y. 172 00:08:18,806 --> 00:08:20,790 DAN BRADLEY: Y?. 173 00:08:20,790 --> 00:08:21,290 LEXI ROSS: Nej, nej, nej, nej. 174 00:08:21,290 --> 00:08:22,540 Det er fint. 175 00:08:26,088 --> 00:08:27,338 qYLcYWfg. 176 00:08:38,590 --> 00:08:41,150 Så jeg burde se alles navne slags dukker op her. 177 00:08:41,150 --> 00:08:41,350 >> Awesome. 178 00:08:41,350 --> 00:08:42,209 Det ser godt ud. 179 00:08:42,209 --> 00:08:44,700 Det betyder, at folk melder sig ind i rummet. 180 00:08:44,700 --> 00:08:46,130 Så hvis du ikke har fået en chance for at spille rundt i 181 00:08:46,130 --> 00:08:47,990 Spaces endnu, det er faktisk, hvad du skal bruge 182 00:08:47,990 --> 00:08:50,750 med dine TF'er i afsnit alt semester. 183 00:08:50,750 --> 00:08:52,810 Sådan virker det er slags alle skriver deres egen 184 00:08:52,810 --> 00:08:56,510 kode, og ingen kan se det, indtil du trykker på Gem 185 00:08:56,510 --> 00:08:59,284 knap, som jeg peger på lige nu. 186 00:08:59,284 --> 00:09:03,140 Så jeg har tænkt mig at trykke på Gem, og hvis du går alle til mit navn, 187 00:09:03,140 --> 00:09:06,670 som du bør være i stand til at se det i Folk i dette 188 00:09:06,670 --> 00:09:09,510 Space, der er Lexis Beryl Ross. 189 00:09:09,510 --> 00:09:12,790 Så hvordan det kommer til at se ud er du klikker på mit navn, og 190 00:09:12,790 --> 00:09:15,170 du kommer til at se Revision 5, som 191 00:09:15,170 --> 00:09:16,070 er den seneste revision. 192 00:09:16,070 --> 00:09:18,930 Kopier kun Revision 5 ind i jeres rum ved at klikke på det. 193 00:09:22,570 --> 00:09:23,420 >> Ok. 194 00:09:23,420 --> 00:09:27,310 Så lad os gå igennem dette problem sammen, og jeg er 195 00:09:27,310 --> 00:09:29,645 faktisk kommer til at skrive koden op her på skærmen. 196 00:09:29,645 --> 00:09:31,420 Du kan zoome ind en lille smule. 197 00:09:31,420 --> 00:09:34,300 Og så snart jeg er færdig, kan du kopiere min seneste revision 198 00:09:34,300 --> 00:09:37,930 ind i jeres rum, at hvis du vil se den endelige løsning. 199 00:09:37,930 --> 00:09:41,840 Nu Spaces har kapacitet for mig at gå ind og se nogen af 200 00:09:41,840 --> 00:09:43,910 den kode, du fyre har skrevet, men bare fordi det er 201 00:09:43,910 --> 00:09:46,470 en så stor del, og vi ikke rigtig har samme 202 00:09:46,470 --> 00:09:50,150 slags diskussioner kapaciteter som en mindre 203 00:09:50,150 --> 00:09:51,890 sektion, vi bare kommer til at gå igennem, og jeg bare 204 00:09:51,890 --> 00:09:53,140 at skrive koden. 205 00:09:53,140 --> 00:09:55,250 Men absolut stoppe mig med spørgsmål på noget tidspunkt. 206 00:09:55,250 --> 00:09:57,290 Vi vil gå igennem den slags trin for trin for at gøre 207 00:09:57,290 --> 00:10:00,032 sikker på at vi forstår de enkelte dele af, hvad der foregår her. 208 00:10:03,800 --> 00:10:06,710 Kan alle se denne tekst her? 209 00:10:06,710 --> 00:10:07,960 Er der nogen ønsker den større? 210 00:10:10,240 --> 00:10:12,860 >> Så hvad er den første ting, vi skal gøre her? 211 00:10:12,860 --> 00:10:14,840 Nå det væsentlige, da vi ønsker at få input fra 212 00:10:14,840 --> 00:10:17,460 bruger og vi ønsker det skal være sådan en god oplevelse for 213 00:10:17,460 --> 00:10:19,750 bruger, vi rent faktisk ønsker at fortælle dem, hvad vi leder efter. 214 00:10:19,750 --> 00:10:23,120 Så lad os udskrive præcis, hvad vi ønsker, danner brugeren. 215 00:10:23,120 --> 00:10:26,540 Så bare ikke gider at hæve din hånd, bare rasler det ud. 216 00:10:26,540 --> 00:10:29,210 Hvad er kommandoen til at udskrive noget på skærmen? 217 00:10:29,210 --> 00:10:30,100 PUBLIKUM: printf. 218 00:10:30,100 --> 00:10:31,247 LEXI ROSS: Awesome. 219 00:10:31,247 --> 00:10:33,393 Okay, så printf. 220 00:10:33,393 --> 00:10:34,339 >> PUBLIKUM: Hey, Lexi? 221 00:10:34,339 --> 00:10:35,589 [Uhørlig]? 222 00:10:39,080 --> 00:10:40,130 LEXI ROSS: Sure. 223 00:10:40,130 --> 00:10:43,580 Så printf, som vi har set ofte i foredrag, er det 224 00:10:43,580 --> 00:10:47,230 kommando om at udskrive noget til den standard output stream. 225 00:10:47,230 --> 00:10:52,370 Så vi vil bede brugeren om at indtaste en 226 00:10:52,370 --> 00:10:53,620 temperatur i Celsius. 227 00:10:58,180 --> 00:11:01,180 Og nu har vi faktisk ønsker at tage det input, de giver 228 00:11:01,180 --> 00:11:03,710 os og gemme den i en variabel. 229 00:11:03,710 --> 00:11:06,415 Så vi har lært lidt om typer. 230 00:11:06,415 --> 00:11:12,090 Kan nogen huske hvad type vi ønsker for en variabel 231 00:11:12,090 --> 00:11:13,170 med et decimal i det? 232 00:11:13,170 --> 00:11:13,910 PUBLIKUM: Float. 233 00:11:13,910 --> 00:11:14,180 LEXI ROSS: Float. 234 00:11:14,180 --> 00:11:15,480 Ja, awesome. 235 00:11:15,480 --> 00:11:16,510 Det er en float. 236 00:11:16,510 --> 00:11:17,760 So. 237 00:11:21,860 --> 00:11:24,953 Og hvordan skal vi - stort vink - få 238 00:11:24,953 --> 00:11:25,430 flyde fra brugeren? 239 00:11:25,430 --> 00:11:25,923 PUBLIKUM: GetFloat. 240 00:11:25,923 --> 00:11:27,173 LEXI ROSS: Yeah. 241 00:11:33,320 --> 00:11:34,730 Cool. 242 00:11:34,730 --> 00:11:38,970 Og brugeren kunne potentielt betyde, og forsøge at give os et 243 00:11:38,970 --> 00:11:41,080 negativt tal, men lad os ikke bekymre dig om, at der for dette 244 00:11:41,080 --> 00:11:41,710 problem nu. 245 00:11:41,710 --> 00:11:43,390 Du kommer til at bekymre sig om, at en lille smule mere på din 246 00:11:43,390 --> 00:11:45,570 lektier på problemet sæt. 247 00:11:45,570 --> 00:11:48,970 >> Så lad os antage at de giver os en god nummer, og nu har vi 248 00:11:48,970 --> 00:11:51,590 faktisk nødt til at konvertere denne flyde fra Celsius til 249 00:11:51,590 --> 00:11:52,400 Fahrenheit. 250 00:11:52,400 --> 00:11:56,730 Så lad os høre vores formel op her, og lad os skabe en 251 00:11:56,730 --> 00:12:00,290 ny variabel og kalder det Fahrenheit. 252 00:12:00,290 --> 00:12:01,130 Jeg studerede stavning. 253 00:12:01,130 --> 00:12:04,640 Det er lidt crazy, jeg kender. 254 00:12:04,640 --> 00:12:08,880 Og lad os regne med rækkefølgen af ​​operationer til slags gøre 255 00:12:08,880 --> 00:12:14,340 sit job her, men vi vil bruge parenteser bare for at være 256 00:12:14,340 --> 00:12:17,762 helt verbose og klar. 257 00:12:17,762 --> 00:12:24,453 Så Celsius gange 9 divideret med 5. 258 00:12:24,453 --> 00:12:26,740 Jeg har tænkt mig at zoome ud bare en lille smule, så det kan passe på 259 00:12:26,740 --> 00:12:29,390 én linje, men jeg vil zoome ind igen for dem, der ikke kan se, 260 00:12:29,390 --> 00:12:30,640 længere i ryggen. 261 00:12:38,150 --> 00:12:40,060 Ked af det. 262 00:12:40,060 --> 00:12:42,680 Strange markøren spørgsmål. 263 00:12:42,680 --> 00:12:51,688 Plus 32. 264 00:12:51,688 --> 00:12:54,780 Okay, nogen der har nogen spørgsmål om, hvordan jeg sætter i 265 00:12:54,780 --> 00:12:56,460 formlen, eller eventuelle problemer med det? 266 00:12:56,460 --> 00:12:56,700 Yeah. 267 00:12:56,700 --> 00:12:59,580 >> PUBLIKUM: Har vi brug for at sætte printf før svømmeren 268 00:12:59,580 --> 00:13:01,980 celsius, flyde Fahrenheit script linjer? 269 00:13:01,980 --> 00:13:05,910 Betyder det noget, hvilken rækkefølge de er i? 270 00:13:05,910 --> 00:13:08,580 LEXI ROSS: Så spørgsmålet var, har vi brug for printf 271 00:13:08,580 --> 00:13:11,820 før vi selv beder om svømmeren? 272 00:13:11,820 --> 00:13:13,070 Svaret er, at vi gør. 273 00:13:13,070 --> 00:13:16,830 På den måde, at markøren som brugeren får lov til at indtaste deres 274 00:13:16,830 --> 00:13:20,310 float vil ske efter det trykte c, right? 275 00:13:20,310 --> 00:13:23,480 Og det giver mening, hvis du tænker over logisk, ligesom 276 00:13:23,480 --> 00:13:26,660 du spørger brugeren et spørgsmål, og så er du 277 00:13:26,660 --> 00:13:27,800 modtager et svar. 278 00:13:27,800 --> 00:13:30,320 Så det udskriver c, og så er der en markør, så den 279 00:13:30,320 --> 00:13:32,470 Brugeren kan indtaste værdien, som vi vil se 280 00:13:32,470 --> 00:13:34,200 senere, når vi Demo. 281 00:13:34,200 --> 00:13:34,874 Ja? 282 00:13:34,874 --> 00:13:37,660 >> PUBLIKUM: Hvorfor bruger vi en flyder og ikke en dobbelt? 283 00:13:37,660 --> 00:13:40,030 LEXI ROSS: Så en dobbelt, det væsentlige, som navnet 284 00:13:40,030 --> 00:13:42,180 indebærer, giver os den dobbelte mængde 285 00:13:42,180 --> 00:13:44,040 præcision som en float. 286 00:13:44,040 --> 00:13:48,490 Men typisk i C, i dette naturligvis for en række 287 00:13:48,490 --> 00:13:50,340 grunde, vi kommer til at bruge flåd. 288 00:13:50,340 --> 00:13:53,330 Og det er virkelig alt den præcision, vi har brug for bare for 289 00:13:53,330 --> 00:13:56,200 slags grundlæggende tempera konverteringer. 290 00:13:56,200 --> 00:13:59,800 Typisk doubler er mere anvendt i Java-sproget, 291 00:13:59,800 --> 00:14:05,700 flåd er mere almindelige i C. Okay, awesome. 292 00:14:05,700 --> 00:14:06,470 >> DAN BRADLEY: En mere. 293 00:14:06,470 --> 00:14:07,530 LEXI ROSS: En mere. 294 00:14:07,530 --> 00:14:08,708 Ja? 295 00:14:08,708 --> 00:14:10,684 PUBLIKUM: Hvor vil du placere Space Bar? 296 00:14:10,684 --> 00:14:13,648 Ligesom, [uhørlig] Space Bar [uhørligt]? 297 00:14:13,648 --> 00:14:15,140 Betyder det noget? 298 00:14:15,140 --> 00:14:15,560 LEXI ROSS: Åh, nej. 299 00:14:15,560 --> 00:14:17,040 Så det gør ikke noget. 300 00:14:17,040 --> 00:14:19,910 Jeg faktisk skulle have sagt på en anden plads her. 301 00:14:19,910 --> 00:14:21,990 Men hvad betyder sagen er, at du er konsekvent 302 00:14:21,990 --> 00:14:22,960 hele din kode. 303 00:14:22,960 --> 00:14:25,510 Så hvis du beslutter at bruge en stil af afstand, så sørg for at 304 00:14:25,510 --> 00:14:27,530 holde det hele hele din kode, eller du kan få stil 305 00:14:27,530 --> 00:14:28,610 fratrukket point. 306 00:14:28,610 --> 00:14:29,822 Så konsistens er nøglen. 307 00:14:29,822 --> 00:14:31,590 DAN BRADLEY: Jeg tror, ​​han talte om det pågældende rum. 308 00:14:31,590 --> 00:14:33,190 LEXI ROSS: Åh, du taler om, at rummet? 309 00:14:33,190 --> 00:14:34,920 Ved den faktiske C? 310 00:14:34,920 --> 00:14:35,335 PUBLIKUM: Yeah. 311 00:14:35,335 --> 00:14:37,910 LEXI ROSS: Åh, så det er bare for udseende, right? 312 00:14:37,910 --> 00:14:41,280 Så på den måde, når vi kører koden, hvis vi ikke havde denne 313 00:14:41,280 --> 00:14:43,730 plads her, hvis det lignede dette, ville brugeren starte 314 00:14:43,730 --> 00:14:45,690 skrive i antallet og det ville være knust op højre 315 00:14:45,690 --> 00:14:48,800 mod tyktarmen efter C, og det ville se ud lidt 316 00:14:48,800 --> 00:14:50,770 bedre, hvis der var et mellemrum. 317 00:14:50,770 --> 00:14:52,470 Og du kan se, at en lille smule bedre, når vi faktisk 318 00:14:52,470 --> 00:14:53,970 køre denne kode, når vi får det færdigt. 319 00:14:57,060 --> 00:14:58,200 Awesome. 320 00:14:58,200 --> 00:14:59,330 Ja, endnu et spørgsmål. 321 00:14:59,330 --> 00:15:01,658 >> PUBLIKUM: Skal jeg nødt til at sætte et decimaltegn efter en af ​​de 322 00:15:01,658 --> 00:15:04,000 [Uhørlig]? 323 00:15:04,000 --> 00:15:06,770 LEXI ROSS: Så du ikke, på grund af rækkefølgen af 324 00:15:06,770 --> 00:15:07,500 operationer. 325 00:15:07,500 --> 00:15:11,020 Så fordi Fahrenheit er allerede en float, som er 326 00:15:11,020 --> 00:15:14,050 Celsius, behøver du ikke eksplicit kaste nogen af ​​disse 327 00:15:14,050 --> 00:15:15,990 andre numre som flåd, selvom der i andre 328 00:15:15,990 --> 00:15:18,180 omstændigheder, når du beskæftiger sig med int'er, kan du 329 00:15:18,180 --> 00:15:21,280 nødt til at sætte et punkt til eksplicit kastede det som en float. 330 00:15:24,160 --> 00:15:24,595 Ja? 331 00:15:24,595 --> 00:15:26,629 PUBLIKUM: Jeg var bare undrende hvis akkumulerende spørgsmål i 332 00:15:26,629 --> 00:15:29,150 disse kommandoer som GetFloat? 333 00:15:29,150 --> 00:15:30,160 LEXI ROSS: Ja, godt spørgsmål. 334 00:15:30,160 --> 00:15:33,530 Så spørgsmålet var, betyder aktivering stof i 335 00:15:33,530 --> 00:15:34,800 kommandoer som GetFloat? 336 00:15:34,800 --> 00:15:36,650 Svaret er ja, det gør det. 337 00:15:36,650 --> 00:15:39,720 Så GetFloat er, som Dan beskrev tidligere, et bibliotek 338 00:15:39,720 --> 00:15:44,000 funktion i CS50 biblioteket, og det blev skrevet som kapital 339 00:15:44,000 --> 00:15:47,360 G, hovedstaden F. Så hvis du ikke skriver det med disse hovedstæder 340 00:15:47,360 --> 00:15:50,150 der er compileren ikke kommer til at forstå, hvad 341 00:15:50,150 --> 00:15:52,750 fungerer du refererer til. 342 00:15:52,750 --> 00:15:53,130 Okay. 343 00:15:53,130 --> 00:15:53,815 Ja? 344 00:15:53,815 --> 00:15:55,446 >> PUBLIKUM: Er argument til main altid ugyldig? 345 00:15:55,446 --> 00:15:57,920 LEXI ROSS: Ja, det er en anden stor spørgsmål. 346 00:15:57,920 --> 00:16:01,850 Så den kode, du har kopieret fra min plads fejlagtigt havde 347 00:16:01,850 --> 00:16:02,500 nogle flere argumenter. 348 00:16:02,500 --> 00:16:06,530 Så spørgsmålet var, er argumentet for den primære funktion 349 00:16:06,530 --> 00:16:10,620 altid ugyldig, som i det væsentlige betyder intet? 350 00:16:10,620 --> 00:16:11,890 Svaret er nej. 351 00:16:11,890 --> 00:16:13,920 Du vil måske bemærke, at den kode, du kopierede fra min tidligere 352 00:16:13,920 --> 00:16:17,700 revision havde hvad kan ligne noget, der virkelig gør 353 00:16:17,700 --> 00:16:21,060 mening lige nu, nogle char *, argv, argc. 354 00:16:21,060 --> 00:16:23,630 Må ikke bekymre dig om det for nu, men du vil finde ud af senere 355 00:16:23,630 --> 00:16:25,060 på de gør en forskel. 356 00:16:25,060 --> 00:16:27,480 Men hvis du ikke bruger den slags ekstra funktionalitet 357 00:16:27,480 --> 00:16:28,940 som du vil lære om senere, ugyldig 358 00:16:28,940 --> 00:16:32,085 er helt fint. 359 00:16:32,085 --> 00:16:32,530 >> Ok. 360 00:16:32,530 --> 00:16:34,690 Og vi har endnu et skridt, som er at vi ønsker at 361 00:16:34,690 --> 00:16:38,840 faktisk vise brugeren, hvad det konverterede temperatur er. 362 00:16:38,840 --> 00:16:46,730 Så igen, vi kommer til at bruge printf, og lad os sige f, bare 363 00:16:46,730 --> 00:16:48,000 hensyn til sammenhængen. 364 00:16:48,000 --> 00:16:50,780 Og nu skal vi til at gøre noget lidt tricky. 365 00:16:50,780 --> 00:16:57,190 Så vi kommer til at bruge et flag, eller en særlig form for notation, 366 00:16:57,190 --> 00:17:02,510 at fortælle printf til kun udskrive én decimal. 367 00:17:02,510 --> 00:17:05,240 Og er der nogen tilfældigvis vide, hvad der kommer til at se ud 368 00:17:05,240 --> 00:17:06,810 gerne, før jeg skriver det ud? 369 00:17:06,810 --> 00:17:07,089 Ja? 370 00:17:07,089 --> 00:17:08,339 PUBLIKUM: 0,2% f? 371 00:17:10,369 --> 00:17:10,880 LEXI ROSS: Yeah, yeah. 372 00:17:10,880 --> 00:17:12,960 Så faktisk, det er virkelig tæt. 373 00:17:12,960 --> 00:17:23,520 0.01f for .01% f, og så må vi huske at medtage 374 00:17:23,520 --> 00:17:26,950 det andet argument til printf, som er variabel i sig selv, 375 00:17:26,950 --> 00:17:28,685 der er n. 376 00:17:33,690 --> 00:17:34,580 >> En sidste skridt. 377 00:17:34,580 --> 00:17:36,880 Kan nogen huske, hvad der er i vores vigtigste funktion? 378 00:17:36,880 --> 00:17:37,265 Ja, deroppe. 379 00:17:37,265 --> 00:17:38,320 PUBLIKUM: Return? 380 00:17:38,320 --> 00:17:38,840 LEXI ROSS: Præcis. 381 00:17:38,840 --> 00:17:42,030 Så da dette er de vigtigste afkast i int, vi ønsker at 382 00:17:42,030 --> 00:17:43,926 også vende tilbage i int. 383 00:17:43,926 --> 00:17:48,280 DAN BRADLEY: Procent skal være på den anden side. 384 00:17:48,280 --> 00:17:48,540 LEXI ROSS: Okay. 385 00:17:48,540 --> 00:17:49,290 Undskyld, gutter. 386 00:17:49,290 --> 00:17:50,240 Det var en fejltagelse. 387 00:17:50,240 --> 00:17:52,150 Så procent kommer før 0,01. 388 00:17:52,150 --> 00:17:54,450 Så det er% 0,01 f. 389 00:17:54,450 --> 00:17:55,970 Det er slags svært at huske. 390 00:17:55,970 --> 00:17:57,470 Mange mennesker, som mig, se bare dem op 391 00:17:57,470 --> 00:17:58,710 når vi bruger dem. 392 00:17:58,710 --> 00:17:59,340 Ja, deroppe. 393 00:17:59,340 --> 00:18:02,525 PUBLIKUM: Hvorfor er det 0,01 og ikke 0,2 eller 0,1? 394 00:18:05,710 --> 00:18:07,530 LEXI ROSS: Jeg ved det ikke, faktisk. 395 00:18:07,530 --> 00:18:08,130 Kender du? 396 00:18:08,130 --> 00:18:14,050 DAN BRADLEY: Grunden til at det er 0,01 i modsætning til 0,02, eller 397 00:18:14,050 --> 00:18:19,380 0,2, eller 0,1, er temmelig vilkårligt til den måde, hvorpå 398 00:18:19,380 --> 00:18:21,230 programmør oprindeligt designet det. 399 00:18:21,230 --> 00:18:22,200 PUBLIKUM: Det er ikke, hvad jeg mente. 400 00:18:22,200 --> 00:18:24,140 Jeg beder ikke om årsagen. 401 00:18:24,140 --> 00:18:25,378 [Uhørlig] hvorfor. 402 00:18:25,378 --> 00:18:28,800 Jeg har det skrevet som 0,2, og den leverer to - 403 00:18:28,800 --> 00:18:29,270 DAN BRADLEY: Yeah. 404 00:18:29,270 --> 00:18:30,410 Så vi var kun ønsker én. 405 00:18:30,410 --> 00:18:31,250 PUBLIKUM: Åh, Okay. 406 00:18:31,250 --> 00:18:33,270 Så du kunne 0,01 derefter. 407 00:18:33,270 --> 00:18:35,340 DAN BRADLEY: 0,1 ville sandsynligvis også virke. 408 00:18:35,340 --> 00:18:37,430 0,01 fungerer så godt. 409 00:18:37,430 --> 00:18:39,288 LEXI ROSS: Oh, kan 0 være at vise nul, hvis 410 00:18:39,288 --> 00:18:40,870 det er mindre end én. 411 00:18:40,870 --> 00:18:43,080 DAN BRADLEY: Ja, jeg tror det er rigtigt. 412 00:18:43,080 --> 00:18:49,220 Så 0,01 ville vise et nul, hvis den ikke har noget 413 00:18:49,220 --> 00:18:51,670 der ville gå der naturligt. 414 00:18:51,670 --> 00:18:55,860 Så hvis du var, siger, at sætte i 100 for Celsius, ville det 415 00:18:55,860 --> 00:19:00,230 komme ud til 212 normalt i Fahrenheit, ligesom 212 præcist. 416 00:19:00,230 --> 00:19:05,810 Hvis du har 0,01, vil det vise 212,0, som 417 00:19:05,810 --> 00:19:07,005 i modsætning til blot 212. 418 00:19:07,005 --> 00:19:07,330 LEXI ROSS: Det er rigtigt. 419 00:19:07,330 --> 00:19:13,000 Så læser det dybest set fortæller printf, udskrive et komma, 420 00:19:13,000 --> 00:19:14,760 og udskrive en 0 hvis det er nødvendigt. 421 00:19:14,760 --> 00:19:16,780 Hvis ikke, skal du udskrive den første decimal position. 422 00:19:16,780 --> 00:19:18,270 DAN BRADLEY: Og vi vil udforske nogle af dette, når vi er 423 00:19:18,270 --> 00:19:19,270 faktisk kører koden. 424 00:19:19,270 --> 00:19:20,150 LEXI ROSS: Yeah. 425 00:19:20,150 --> 00:19:21,030 PUBLIKUM: Så jeg satte 0,1. 426 00:19:21,030 --> 00:19:21,910 Det er stadig udskriver sin nul. 427 00:19:21,910 --> 00:19:23,460 DAN BRADLEY: Det er stadig udskriver sin nul? 428 00:19:23,460 --> 00:19:23,930 PUBLIKUM: Yeah. 429 00:19:23,930 --> 00:19:25,211 DAN BRADLEY: Hm, okay. 430 00:19:25,211 --> 00:19:27,666 LEXI ROSS: Cool. 431 00:19:27,666 --> 00:19:29,140 >> Ok. 432 00:19:29,140 --> 00:19:33,310 Flere spørgsmål om denne kode, før jeg kompilere og køre? 433 00:19:33,310 --> 00:19:35,380 Er der nogen se nogen bugs her først og fremmest? 434 00:19:35,380 --> 00:19:39,420 Enhver ser noget, der burde være her? 435 00:19:39,420 --> 00:19:41,920 Hvis dette var dit problem sæt, hvad der ville være her, er ikke 436 00:19:41,920 --> 00:19:44,490 der lige nu? 437 00:19:44,490 --> 00:19:45,710 Ja, godt. 438 00:19:45,710 --> 00:19:48,200 Så jeg ikke medtage kommentarer, fordi jeg leverer dem 439 00:19:48,200 --> 00:19:50,570 mundtligt, men hvis jeg skulle skrive dette i et problem sæt, jeg ville 440 00:19:50,570 --> 00:19:54,290 definitivt vil sætte kommentarer til angive, hvad jeg 441 00:19:54,290 --> 00:19:55,820 gør i det væsentlige i programmet. 442 00:19:55,820 --> 00:19:57,870 Og du vil slags få en fornemmelse for det, som du bevæger dig igennem 443 00:19:57,870 --> 00:19:59,680 semestret, den rigtige mængde af høringssvarene. 444 00:19:59,680 --> 00:20:01,520 Du ønsker ikke at være alt for ordrige og sat linjer og 445 00:20:01,520 --> 00:20:03,710 linjer af kommentarer til hver af dine linjer kode, men du 446 00:20:03,710 --> 00:20:06,720 ønsker heller ikke at være ikke verbose nok og forlader 447 00:20:06,720 --> 00:20:09,440 læseren til at forsøge at regne ud, hvad dælen 448 00:20:09,440 --> 00:20:11,595 din kode gør. 449 00:20:11,595 --> 00:20:12,770 >> Okay, cool. 450 00:20:12,770 --> 00:20:14,020 Lad os prøve at køre denne kode. 451 00:20:18,290 --> 00:20:21,650 Okay, jeg kommer til at zoome ud en lille smule. 452 00:20:21,650 --> 00:20:22,020 Cool. 453 00:20:22,020 --> 00:20:24,560 Så du vil opdage at der er en play-knappen her. 454 00:20:24,560 --> 00:20:25,994 Lad os klikke på Afspil. 455 00:20:34,915 --> 00:20:39,190 Så du vil opdage her, ligesom i spec på problemet 456 00:20:39,190 --> 00:20:43,300 indstillet, er der. / a.out. 457 00:20:43,300 --> 00:20:46,510 a.out er navnet på filen eksekverbar, som er en 458 00:20:46,510 --> 00:20:50,590 langt ord for blot en fil bestående af binær kode, 459 00:20:50,590 --> 00:20:51,710 din computer er faktisk kører. 460 00:20:51,710 --> 00:20:54,390 Så som vi forventede, vi har C her. 461 00:20:54,390 --> 00:20:56,007 Så kalde et nummer. 462 00:20:56,007 --> 00:20:58,630 PUBLIKUM: 23. 463 00:20:58,630 --> 00:21:05,090 LEXI ROSS: 23. 464 00:21:05,090 --> 00:21:06,360 DAN BRADLEY: Dit program tog for lang tid at køre. 465 00:21:06,360 --> 00:21:07,310 Bare kør den igen. 466 00:21:07,310 --> 00:21:07,700 LEXI ROSS: Oh, min dårlige. 467 00:21:07,700 --> 00:21:09,450 Okay. 468 00:21:09,450 --> 00:21:10,770 Spaces er kræsne tider. 469 00:21:10,770 --> 00:21:13,060 Det ønsker dig til at tænke på dine fødder. 470 00:21:13,060 --> 00:21:15,060 Okay, 23. 471 00:21:15,060 --> 00:21:16,256 Awesome. 472 00:21:16,256 --> 00:21:18,920 Skal alle tro dette? 473 00:21:18,920 --> 00:21:20,600 Cool, fordi det virker. 474 00:21:20,600 --> 00:21:22,670 >> Okay. 475 00:21:22,670 --> 00:21:24,280 Lad os prøve et par mere. 476 00:21:24,280 --> 00:21:25,910 Lad os prøve en kant tilfældet her. 477 00:21:25,910 --> 00:21:28,900 I datalogi, når vi taler om kant sager, vi mener 478 00:21:28,900 --> 00:21:33,640 sager til dit program til at køre, som er slags på den meget 479 00:21:33,640 --> 00:21:38,430 kanter af rimelige input eller at prøvningsresultaterne visse hjørner af 480 00:21:38,430 --> 00:21:41,680 logikken i dit program, og det giver mere mening, når vi 481 00:21:41,680 --> 00:21:43,080 gøre mere komplicerede programmer. 482 00:21:43,080 --> 00:21:45,440 Lad os prøve 0. 483 00:21:45,440 --> 00:21:45,950 Awesome. 484 00:21:45,950 --> 00:21:48,460 Vi kender alle denne. 485 00:21:48,460 --> 00:21:48,745 Cool. 486 00:21:48,745 --> 00:21:50,520 Har du flere spørgsmål om dette, før jeg flytter 487 00:21:50,520 --> 00:21:51,930 videre til næste program? 488 00:21:55,560 --> 00:21:57,160 Okay, awesome. 489 00:21:57,160 --> 00:22:00,066 Så nu vil vi - 490 00:22:00,066 --> 00:22:01,180 vil du bare bruge min computer? 491 00:22:01,180 --> 00:22:01,940 DAN BRADLEY: Ja, det er nemt nok. 492 00:22:01,940 --> 00:22:06,660 >> Okay, så kommer til at gå og snakke om at lave procentsatser. 493 00:22:06,660 --> 00:22:11,440 Så vi er væsentlige i denne næste lille øvelse, der går til 494 00:22:11,440 --> 00:22:16,020 tage to heltal input fra brugeren, håber på en 495 00:22:16,020 --> 00:22:21,250 ikke-negative tæller og en positiv nævner, og 496 00:22:21,250 --> 00:22:24,410 dybest set dele dem og udsende hvad der kommer ud som en 497 00:22:24,410 --> 00:22:25,820 procent. 498 00:22:25,820 --> 00:22:33,430 Så vi vil have det til kun at acceptere ikke-negative tællere og 499 00:22:33,430 --> 00:22:37,930 acceptere kun positive nævnere, og at spørge 500 00:22:37,930 --> 00:22:43,286 for nye, hvis det ikke har fået, hvad den ønsker. 501 00:22:43,286 --> 00:22:43,710 Okay? 502 00:22:43,710 --> 00:22:44,960 Så giv det en go. 503 00:22:48,015 --> 00:22:49,390 LEXI ROSS: Oh yeah, du ønsker at gøre det - 504 00:22:49,390 --> 00:22:51,310 oh, måske folk skal kopiere min kode. 505 00:22:51,310 --> 00:22:51,790 DAN BRADLEY: Yeah. 506 00:22:51,790 --> 00:22:52,270 LEXI ROSS: [uhørligt] 507 00:22:52,270 --> 00:22:54,994 Spaces. 508 00:22:54,994 --> 00:22:55,986 >> PUBLIKUM: Jeg har et spørgsmål. 509 00:22:55,986 --> 00:22:58,466 Hvis jeg bruger Spaces, og jeg vil gemme [uhørlig] den 510 00:22:58,466 --> 00:23:04,440 Fahrenheit konvertering, gemmer jeg det og derefter lave en ny - 511 00:23:04,440 --> 00:23:06,880 LEXI ROSS: Vi kunne bare lave en ny Space, eller du kan bare 512 00:23:06,880 --> 00:23:09,600 ønsker at kopiere og indsætte det i en tekstfil eller 513 00:23:09,600 --> 00:23:11,040 noget, så du har det. 514 00:23:11,040 --> 00:23:12,400 DAN BRADLEY: Jeg vil bare ændre mit navn. 515 00:23:12,400 --> 00:23:15,430 LEXI ROSS: Så jeg har lige reddet den seneste revision af 516 00:23:15,430 --> 00:23:20,700 tofahrenheit.c, så hvis du går ind i AAAA Lexis Beryl 517 00:23:20,700 --> 00:23:23,270 Ross, kan du gå ind og kopiere det nyeste kode, og derefter 518 00:23:23,270 --> 00:23:26,360 starte på denne nye, som jeg tror Dan kommer til at give 519 00:23:26,360 --> 00:23:30,540 nogle skelet kode for så godt. 520 00:23:30,540 --> 00:23:33,430 Okay. 521 00:23:33,430 --> 00:23:36,590 DAN BRADLEY: Den seneste revision jeg har på mine, så 522 00:23:36,590 --> 00:23:40,080 Det er helt i top denne gang, er revision 4, og 523 00:23:40,080 --> 00:23:42,050 det vil have, hvad du behøver for at komme i gang. 524 00:23:47,970 --> 00:23:49,370 LEXI ROSS: Okay, og jeg vil kopiere det til mine så godt. 525 00:23:49,370 --> 00:23:50,520 >> DAN BRADLEY: Okay. 526 00:23:50,520 --> 00:23:53,840 Jeg tror, ​​vi vil bare begynde at gå over dette, hvis 527 00:23:53,840 --> 00:23:57,470 nogen er interesseret. 528 00:23:57,470 --> 00:23:59,710 LEXI ROSS: Vi er alle interesserede. 529 00:23:59,710 --> 00:24:02,370 DAN BRADLEY: Vi vil starte ud blot ved at erklære 530 00:24:02,370 --> 00:24:08,290 visse variabler. Så vi har en tæller og af hensyn til 531 00:24:08,290 --> 00:24:13,770 nu vil jeg bare starte den med værdien -1, 532 00:24:13,770 --> 00:24:24,070 og så vil jeg oprette en gør-while-løkke. Mens - 533 00:24:24,070 --> 00:24:28,270 så når jeg ønsker det loop? 534 00:24:28,270 --> 00:24:30,250 Hvornår vil jeg have det at holde beder - 535 00:24:30,250 --> 00:24:31,761 yeah? 536 00:24:31,761 --> 00:24:34,960 PUBLIKUM: Når det er mindre end eller lig med nul. 537 00:24:34,960 --> 00:24:37,734 DAN BRADLEY: Hvorfor kan det ikke være lig med nul? 538 00:24:37,734 --> 00:24:39,526 PUBLIKUM: [uhørlig]. 539 00:24:39,526 --> 00:24:39,980 DAN BRADLEY: Yeah. 540 00:24:39,980 --> 00:24:42,590 Så for tælleren, er det bare, mens tælleren 541 00:24:42,590 --> 00:24:43,840 er mindre end nul. 542 00:24:49,570 --> 00:24:50,480 Giver det mening for folk? 543 00:24:50,480 --> 00:24:53,190 Vi holder looping mens tælleren er mindre end nul, 544 00:24:53,190 --> 00:24:58,530 holder vi beder om nye input, og holde krævende, at de 545 00:24:58,530 --> 00:24:59,520 input nye ting. 546 00:24:59,520 --> 00:25:10,436 Så jeg vil bare have en lille printf herinde, ikke-negativ 547 00:25:10,436 --> 00:25:11,686 num -. 548 00:25:17,780 --> 00:25:21,940 Og så gør vi det samme som før, medmindre vi gør en 549 00:25:21,940 --> 00:25:25,220 GetInt, bare fordi vi ønskede at gøre det som 550 00:25:25,220 --> 00:25:27,600 procentdele af int'er. 551 00:25:27,600 --> 00:25:32,010 Så tæller = GetInt. 552 00:25:36,420 --> 00:25:39,420 >> Okay, nu et par ting. 553 00:25:39,420 --> 00:25:41,030 Har jeg brug for dette -1 her? 554 00:25:41,030 --> 00:25:41,976 PUBLIKUM: [uhørlig]. 555 00:25:41,976 --> 00:25:42,449 DAN BRADLEY: Nej. 556 00:25:42,449 --> 00:25:44,814 Hvorfor ikke? 557 00:25:44,814 --> 00:25:47,440 PUBLIKUM: Fordi du får en tilfældig værdi fra brugeren. 558 00:25:47,440 --> 00:25:48,540 DAN BRADLEY: Præcis. 559 00:25:48,540 --> 00:25:53,540 Men jeg ønsker at få erklæringen herude? 560 00:25:53,540 --> 00:25:53,950 Ja. 561 00:25:53,950 --> 00:25:54,220 Hvorfor? 562 00:25:54,220 --> 00:25:56,640 PUBLIKUM: Du er nødt til at finde på ydersiden af ​​løkken. 563 00:25:56,640 --> 00:25:59,060 Ellers er du ikke vil have variablen for resten 564 00:25:59,060 --> 00:26:00,520 af programmet. 565 00:26:00,520 --> 00:26:01,270 DAN BRADLEY: Præcis. 566 00:26:01,270 --> 00:26:03,290 Scope. 567 00:26:03,290 --> 00:26:04,750 Sweet. 568 00:26:04,750 --> 00:26:05,790 Giver det mening for alle? 569 00:26:05,790 --> 00:26:07,090 PUBLIKUM: Kan du sige det en gang til? 570 00:26:07,090 --> 00:26:07,410 DAN BRADLEY: Okay. 571 00:26:07,410 --> 00:26:12,000 Så hvis jeg skulle erklære denne tælleren inde i løkken, hvis 572 00:26:12,000 --> 00:26:14,850 Jeg havde dette i stedet for tælleren er int tæller, 573 00:26:14,850 --> 00:26:17,720 og jeg sluppet af med denne helt, 574 00:26:17,720 --> 00:26:19,710 tælleren ville forsvinde. 575 00:26:19,710 --> 00:26:23,540 Det ville ikke eksistere uden for dette loop, fordi alt 576 00:26:23,540 --> 00:26:25,370 er inden for rammerne af disse krøllede parenteser. 577 00:26:28,180 --> 00:26:28,790 Give mening? 578 00:26:28,790 --> 00:26:30,460 Okay. 579 00:26:30,460 --> 00:26:34,750 >> Så for nævneren, gør vi noget nogenlunde ens, int 580 00:26:34,750 --> 00:26:39,850 nævner = - 581 00:26:39,850 --> 00:26:41,950 og jeg har ikke brug for lig - 582 00:26:41,950 --> 00:26:52,900 gøre, og for det mens i denne sag, hvad jeg vil? 583 00:26:52,900 --> 00:26:56,338 Hvilken tilstand vil jeg have det til endnu loop på? 584 00:26:56,338 --> 00:26:57,790 PUBLIKUM: Mindre end eller lig med 0. 585 00:26:57,790 --> 00:26:59,100 DAN BRADLEY: Mindre end eller lig med 0. 586 00:26:59,100 --> 00:27:04,680 Nævner <= 0. 587 00:27:10,350 --> 00:27:13,630 Glem ikke dine semikoloner, børn. 588 00:27:13,630 --> 00:27:26,950 Så vi gør det samme som før, printf en positiv 589 00:27:26,950 --> 00:27:38,920 nævner, og vi får int herfra. 590 00:27:43,240 --> 00:27:44,573 Der vi går. 591 00:27:52,461 --> 00:27:53,711 GetInt. 592 00:27:56,585 --> 00:27:57,810 Okay. 593 00:27:57,810 --> 00:28:02,360 Og så i sidste ende ønsker vi at udskrive nogle procent. 594 00:28:02,360 --> 00:28:10,282 Så for at gøre dette, hvad skal vores streng se ud? 595 00:28:10,282 --> 00:28:11,532 printf. 596 00:28:18,010 --> 00:28:20,210 Alle andre ideer om hvad jeg kan gøre her? 597 00:28:20,210 --> 00:28:20,480 Ja? 598 00:28:20,480 --> 00:28:26,204 PUBLIKUM: Måske% 0,2 [uhørlig]. 599 00:28:26,204 --> 00:28:27,454 DAN BRADLEY: Yep. 600 00:28:31,300 --> 00:28:32,170 Okay. 601 00:28:32,170 --> 00:28:41,680 Jeg starter med den første bit,% .02%%, 602 00:28:41,680 --> 00:28:42,957 citater, komma. 603 00:28:46,370 --> 00:28:48,380 Og jeg har tænkt mig at smide en ny linje i her, bare fordi jeg 604 00:28:48,380 --> 00:28:50,390 ligesom nye linjer, når jeg gør tingene på. 605 00:28:53,210 --> 00:28:57,945 Hvilken slags matematiske udtryk skal jeg have her? 606 00:28:57,945 --> 00:29:00,250 PUBLIKUM: Parenteser og flyde. 607 00:29:00,250 --> 00:29:00,620 DAN BRADLEY: Good. 608 00:29:00,620 --> 00:29:01,875 Hvorfor kan jeg ønsker at have det i float? 609 00:29:01,875 --> 00:29:03,125 PUBLIKUM: [uhørlig]. 610 00:29:05,640 --> 00:29:07,960 DAN BRADLEY: Godt, godt. 611 00:29:07,960 --> 00:29:09,210 Flyde. 612 00:29:11,236 --> 00:29:12,486 PUBLIKUM: Tæller. 613 00:29:14,640 --> 00:29:15,610 DAN BRADLEY: Tæller? 614 00:29:15,610 --> 00:29:18,596 Okay, så jeg gør float tæller. 615 00:29:18,596 --> 00:29:20,524 PUBLIKUM: Opdelt efter - 616 00:29:20,524 --> 00:29:22,142 DAN BRADLEY: Opdelt efter? 617 00:29:22,142 --> 00:29:23,480 PUBLIKUM: Nævner. 618 00:29:23,480 --> 00:29:26,290 DAN BRADLEY: Skal jeg gøre lige nævner, eller gør jeg float 619 00:29:26,290 --> 00:29:26,900 fællesnævner? 620 00:29:26,900 --> 00:29:29,410 PUBLIKUM: Just nævner. 621 00:29:29,410 --> 00:29:30,335 DAN BRADLEY: Okay. 622 00:29:30,335 --> 00:29:35,285 PUBLIKUM: Og du kan formere sig, at med 100. 623 00:29:35,285 --> 00:29:39,130 DAN BRADLEY: Og jeg ganger det med 100. 624 00:29:39,130 --> 00:29:40,560 PUBLIKUM: Og så parenteserne omkring hele udtrykket. 625 00:29:40,560 --> 00:29:41,810 DAN BRADLEY: Yep. 626 00:29:47,110 --> 00:29:48,360 >> Okay. 627 00:29:50,575 --> 00:29:52,860 Se godt? 628 00:29:52,860 --> 00:29:54,110 Lad os prøve det. 629 00:29:58,170 --> 00:30:00,800 -50. 630 00:30:00,800 --> 00:30:03,590 Godt, 50. 631 00:30:03,590 --> 00:30:08,010 0 og 100, 50%. 632 00:30:08,010 --> 00:30:10,500 Det virkede ligesom vi ønskede. 633 00:30:10,500 --> 00:30:13,510 Betyder denne kode mening at folk? 634 00:30:13,510 --> 00:30:17,600 Jeg har tænkt mig at gemme den, så du kan få en kopi af den. 635 00:30:17,600 --> 00:30:18,684 Ja? 636 00:30:18,684 --> 00:30:20,055 PUBLIKUM: Hvorfor går du ikke behøver at sætte [uhørligt]? 637 00:30:22,800 --> 00:30:24,603 DAN BRADLEY: Hvor? 638 00:30:24,603 --> 00:30:26,076 PUBLIKUM: Ligesom, når du siger nævner lig 639 00:30:26,076 --> 00:30:28,040 [Uhørlig]. 640 00:30:28,040 --> 00:30:30,630 DAN BRADLEY: Når jeg har det her? 641 00:30:30,630 --> 00:30:32,510 Hvorfor skulle jeg have int før det? 642 00:30:32,510 --> 00:30:37,120 PUBLIKUM: Fordi den anden har int før det. 643 00:30:37,120 --> 00:30:40,060 DAN BRADLEY: Nå, så det var ikke i en løkke, right? 644 00:30:40,060 --> 00:30:45,960 Så jeg erklære denne int fællesnævner over løkken, 645 00:30:45,960 --> 00:30:48,880 og jeg har ikke det i loop, fordi jeg ville være 646 00:30:48,880 --> 00:30:52,680 erklære den en masse gange, og det ville faktisk ikke bære 647 00:30:52,680 --> 00:30:54,280 over til et andet sted i programmet. 648 00:30:54,280 --> 00:30:56,520 LEXI ROSS: Ja, det vigtige ting at huske er, at 649 00:30:56,520 --> 00:30:58,530 variabler kun skal opgives én gang. 650 00:30:58,530 --> 00:31:00,570 Så forestille mig, det er ligesom at indføre en ny variabel 651 00:31:00,570 --> 00:31:04,640 ind i verden ved at kalde det int eller float eller whatnot, og 652 00:31:04,640 --> 00:31:07,170 når den er erklæret, alt hvad du behøver at gøre for at ændre det er 653 00:31:07,170 --> 00:31:10,510 bare kalde det ved dets rette navn: nævner, eller x, eller y. 654 00:31:10,510 --> 00:31:13,347 Du behøver kun at faktisk kalde det en int bare én gang. 655 00:31:13,347 --> 00:31:14,325 >> DAN BRADLEY: Yeah. 656 00:31:14,325 --> 00:31:16,770 PUBLIKUM: Kan du forklare forskellen mellem% d 657 00:31:16,770 --> 00:31:21,180 og% f, og hvis du nogensinde erklære et 658 00:31:21,180 --> 00:31:22,790 variabel som en decimal? 659 00:31:22,790 --> 00:31:25,850 DAN BRADLEY: Så% d og% f herinde? 660 00:31:28,950 --> 00:31:32,190 LEXI ROSS: Så d faktisk refererer til blot et ciffer, ikke 661 00:31:32,190 --> 00:31:33,630 decimal, der er slags forvirrende. 662 00:31:33,630 --> 00:31:36,310 Der er ingen egentlige datatype kaldet decimal, og når du 663 00:31:36,310 --> 00:31:39,750 ønsker at udskrive en int, du henvise til det som% d, eller 664 00:31:39,750 --> 00:31:44,440 %-Whatever-d. F er for float, som man skulle tro det 665 00:31:44,440 --> 00:31:49,070 ville være i, men det er faktisk d for int. 666 00:31:49,070 --> 00:31:49,420 >> DAN BRADLEY: Yep? 667 00:31:49,420 --> 00:31:52,180 PUBLIKUM: Så i det andet program, hvorfor vi ikke bare gøre 668 00:31:52,180 --> 00:31:57,764 det samme, når du siger Fahrenheit? 669 00:31:57,764 --> 00:32:00,760 Hvorfor har vi ikke sagt, gerne -? 670 00:32:00,760 --> 00:32:02,465 DAN BRADLEY: I bunden her? 671 00:32:02,465 --> 00:32:03,810 Du kunne have. 672 00:32:03,810 --> 00:32:05,900 Det ville have været helt legitimt. 673 00:32:05,900 --> 00:32:08,290 Jeg kan godt lide at gøre det på denne måde, andre mennesker kan lide at adskille 674 00:32:08,290 --> 00:32:10,450 det ud i forskellige linjer kode. 675 00:32:10,450 --> 00:32:12,290 Enten måde fungerer fint. 676 00:32:12,290 --> 00:32:12,760 Hvad sker der? 677 00:32:12,760 --> 00:32:13,700 >> PUBLIKUM: Kan du forklare, hvad%% 678 00:32:13,700 --> 00:32:14,170 [Uhørlig]? 679 00:32:14,170 --> 00:32:15,520 DAN BRADLEY: Okay, så procent, procent. 680 00:32:15,520 --> 00:32:18,520 Right, blev jeg kommer til at gå over dette. 681 00:32:18,520 --> 00:32:21,970 Den første procent kaldes en flugt karakter, og det bare 682 00:32:21,970 --> 00:32:28,730 siger ting bag dette er faktisk ikke kode. 683 00:32:28,730 --> 00:32:36,230 Så denne første procent, til højre, den% 0,02 f, alle dem% 0,02 f 684 00:32:36,230 --> 00:32:40,860 betyde noget for printf som en funktion. 685 00:32:40,860 --> 00:32:44,520 %%, Jeg ville bare have det til faktisk bare udskrive en 686 00:32:44,520 --> 00:32:45,670 procenttegn. 687 00:32:45,670 --> 00:32:47,960 Så jeg siger ikke der er noget vigtigt bag det. 688 00:32:47,960 --> 00:32:49,820 Jeg siger bare, at der er et procenttegn bag det. 689 00:32:49,820 --> 00:32:52,345 Venligst udskrive et procenttegn. 690 00:32:52,345 --> 00:32:54,010 Så procent, så en anden procent. 691 00:32:54,010 --> 00:32:56,415 PUBLIKUM: Kan du vise, hvad det ville se ud, hvis du har 692 00:32:56,415 --> 00:32:57,858 flyde baseret på en anden linje? 693 00:32:57,858 --> 00:33:01,490 DAN BRADLEY: Oh yeah, helt sikkert. 694 00:33:01,490 --> 00:33:05,730 Så jeg bliver bedt om at vise, hvad det ville se ud, hvis jeg 695 00:33:05,730 --> 00:33:10,500 havde denne float tæller, alt dette matematik, på en anden linje. 696 00:33:10,500 --> 00:33:16,200 Så float procent = - 697 00:33:20,630 --> 00:33:25,970 og jeg ville slippe af med dette og bare sætte i procent. 698 00:33:25,970 --> 00:33:29,400 Og det gør præcis de samme ting, jeg bare 699 00:33:29,400 --> 00:33:30,763 har en anden variabel. 700 00:33:30,763 --> 00:33:33,030 >> PUBLIKUM: [uhørlig]. 701 00:33:33,030 --> 00:33:34,130 DAN BRADLEY: Rul ned til hvad? 702 00:33:34,130 --> 00:33:35,512 PUBLIKUM: Så jeg kan se [uhørlig]. 703 00:33:40,380 --> 00:33:42,016 DAN BRADLEY: Hvad kan du ikke se? 704 00:33:42,016 --> 00:33:43,510 PUBLIKUM: Undskyld, jeg var [uhørlig]. 705 00:33:47,992 --> 00:33:48,490 DAN BRADLEY: Yeah. 706 00:33:48,490 --> 00:33:50,980 PUBLIKUM: Så hvis vi erstatter escape-tegnet, 707 00:33:50,980 --> 00:33:54,466 formoder, at vi ønskede at have et dollartegn i stedet, bare for 708 00:33:54,466 --> 00:33:57,780 Eksempelvis et dollartegn bag procent? 709 00:33:57,780 --> 00:33:58,510 DAN BRADLEY: Nope. 710 00:33:58,510 --> 00:34:01,400 Det er bare en dollar, bare én dollar tegn, fordi en dollar 711 00:34:01,400 --> 00:34:03,740 tegn betyder ikke noget for printf. 712 00:34:03,740 --> 00:34:07,980 Spørgsmålet var, har jeg brug for at have en flugt karakter for 713 00:34:07,980 --> 00:34:10,135 symboler som dollartegn? 714 00:34:10,135 --> 00:34:13,330 PUBLIKUM: So slags relaterede, er der andre sager, 715 00:34:13,330 --> 00:34:15,466 vi bør vide, hvornår noget som procent 716 00:34:15,466 --> 00:34:18,820 tegn kan betyde noget [uhørligt]? 717 00:34:18,820 --> 00:34:20,330 LEXI ROSS: Ja. 718 00:34:20,330 --> 00:34:24,469 Ikke nødvendigvis procent tegn, men den omvendte skråstreg, se 719 00:34:24,469 --> 00:34:26,370 hvordan vi har backlash ende her? 720 00:34:26,370 --> 00:34:29,800 Lad os sige, at vi faktisk ønskede at udskrive en modreaktion, ville vi have 721 00:34:29,800 --> 00:34:31,070 at undslippe, at - 722 00:34:31,070 --> 00:34:32,670 og det kommer til at lyde forvirrende - 723 00:34:32,670 --> 00:34:34,260 med en anden backslash. 724 00:34:34,260 --> 00:34:36,370 Så hvis vi ønskede at udskrive \ \, ville vi 725 00:34:36,370 --> 00:34:40,730 bare nødt til at skrive det, eller yderligere 726 00:34:40,730 --> 00:34:42,247 backslash, en anden flugt. 727 00:34:48,340 --> 00:34:50,774 Og en anden, hvis vi ønsker at udskrive et tilbud - så 728 00:34:50,774 --> 00:34:53,040 Dybest set noget den slags betegner noget særligt 729 00:34:53,040 --> 00:34:55,800 i en streng, ønsker vi at flygte. 730 00:34:55,800 --> 00:34:58,700 Så lad os sige, at vi rent faktisk ønsker at have et citat her, ville vi 731 00:34:58,700 --> 00:34:59,840 ønsker at gøre \ ". 732 00:34:59,840 --> 00:35:02,450 PUBLIKUM: Så det er normalt en backslash? 733 00:35:02,450 --> 00:35:03,490 DAN BRADLEY: Det er normalt en backslash. 734 00:35:03,490 --> 00:35:03,740 LEXI ROSS: Yeah. 735 00:35:03,740 --> 00:35:06,962 Af en eller anden grund i her, er det et procenttegn. 736 00:35:06,962 --> 00:35:08,212 >> PUBLIKUM: [uhørligt]? 737 00:35:11,680 --> 00:35:13,400 DAN BRADLEY: Denne fyr? 738 00:35:13,400 --> 00:35:17,570 Dette er blot for at sige, de ting, der bliver delt her er 739 00:35:17,570 --> 00:35:20,170 kommer til at blive behandlet som en svømmer af hensyn til divisionen. 740 00:35:25,110 --> 00:35:30,370 Så i tilfælde af 50 divideret med 100, hvis jeg ikke havde 741 00:35:30,370 --> 00:35:33,260 flyde der, ville det bare være 0. 742 00:35:33,260 --> 00:35:35,930 Det er alt, der ville komme ud, fordi 50 divideret med 743 00:35:35,930 --> 00:35:40,510 100, hvis du ikke herunder eventuelle decimaler, er 0. - 744 00:35:40,510 --> 00:35:43,520 og alt efter kommaet er bare afskåret fra. 745 00:35:43,520 --> 00:35:44,891 PUBLIKUM: Um, 746 00:35:44,891 --> 00:35:48,550 hvorfor gør vi ikke sætte det før nævner så godt? 747 00:35:48,550 --> 00:35:51,310 DAN BRADLEY: Så grunden til at vi ikke sætter det foran 748 00:35:51,310 --> 00:35:56,010 nævner er fordi når du dividere noget ved 749 00:35:56,010 --> 00:35:59,320 et heltal, det virker fint. 750 00:35:59,320 --> 00:36:00,630 Har et større antal på bunden 751 00:36:00,630 --> 00:36:02,790 ændrer ikke noget. 752 00:36:02,790 --> 00:36:06,120 Du kan dividere med heltal fint. 753 00:36:06,120 --> 00:36:07,250 Det bare ikke rigtig noget. 754 00:36:07,250 --> 00:36:09,053 Du kunne, ville det ikke ændre noget. 755 00:36:09,053 --> 00:36:11,368 PUBLIKUM: Så hvis du ønskede tre decimaler, ville 756 00:36:11,368 --> 00:36:13,220 du sætte procent 0,03? 757 00:36:13,220 --> 00:36:14,100 DAN BRADLEY: Yep. 758 00:36:14,100 --> 00:36:17,440 Du ville sætte% 0,03 hvis du ønskede 759 00:36:17,440 --> 00:36:20,207 tre decimaler. 760 00:36:20,207 --> 00:36:23,793 >> Publikum: og DO kommandoer, hvad er forskellen mellem 761 00:36:23,793 --> 00:36:26,330 det og bare gøre, mens på toppen? 762 00:36:26,330 --> 00:36:30,540 DAN BRADLEY: Så en gør-mens versus en while-løkke er to 763 00:36:30,540 --> 00:36:32,950 nogenlunde tilsvarende kommandoer. 764 00:36:32,950 --> 00:36:36,810 Den eneste forskel er, at du køre koden én gang, du kører 765 00:36:36,810 --> 00:36:40,510 kode inde i løkken én gang før 766 00:36:40,510 --> 00:36:42,940 gøre nogen egentlig kontrol. 767 00:36:42,940 --> 00:36:46,970 Så det er også grunden til at jeg kan sige nævner uden at give 768 00:36:46,970 --> 00:36:48,970 det et nummer. 769 00:36:48,970 --> 00:36:52,180 Så hvis jeg sagde int fællesnævner, og derefter, mens (nævner <= 770 00:36:52,180 --> 00:36:55,020 0), er det måske aldrig selv 771 00:36:55,020 --> 00:36:56,890 køre koden indeni. 772 00:36:56,890 --> 00:36:59,350 Det vil gøre, at kontrollen før - 773 00:36:59,350 --> 00:37:00,600 så her. 774 00:37:14,590 --> 00:37:19,020 Så hvis jeg havde denne while-løkke her, ville jeg have 775 00:37:19,020 --> 00:37:25,280 nævner lig, siger, -2 eller nogle tal mindre 776 00:37:25,280 --> 00:37:28,150 end eller lig med 0, så det ville faktisk prøve at køre koden 777 00:37:28,150 --> 00:37:30,130 indersiden først. 778 00:37:30,130 --> 00:37:33,190 Så generelt, du ønsker at bruge en gør-while-løkke 779 00:37:33,190 --> 00:37:37,750 i stedet for en while-løkke, når du beder om input fra brugeren 780 00:37:37,750 --> 00:37:41,820 fordi der kører koden en gang, beder om noget brugeren 781 00:37:41,820 --> 00:37:46,920 vil give dig er generelt din bedste løsning, i modsætning 782 00:37:46,920 --> 00:37:50,250 til bare tillidsfuld, hvad du putter i til at starte med. 783 00:37:50,250 --> 00:37:53,290 PUBLIKUM: Og gøre, er altid efterfulgt af et stykke tid. 784 00:37:53,290 --> 00:37:56,550 DAN BRADLEY: Gør efterfølges af nogle stykke kode, som du 785 00:37:56,550 --> 00:38:01,470 ønsker at udføre, og derefter mens nogle betingelse er. 786 00:38:01,470 --> 00:38:03,820 LEXI ROSS: Tænk på det som en kommando slags brudt op 787 00:38:03,820 --> 00:38:04,390 i to dele. 788 00:38:04,390 --> 00:38:06,836 Det er en gør-stykke tid, ikke som her er en gør, og så er jeg 789 00:38:06,836 --> 00:38:10,655 vil tilføje et stykke tid, det er bare en gør-tid. 790 00:38:10,655 --> 00:38:13,322 >> PUBLIKUM: Jeg forstår grunden til, at du bruger 791 00:38:13,322 --> 00:38:15,990 to procent tegn, men kan du forklare mig, hvorfor vi er nødt til at 792 00:38:15,990 --> 00:38:19,390 have [uhørligt]? 793 00:38:19,390 --> 00:38:22,690 DAN BRADLEY: Okay, så det ene procentpoint tegnet bare sige 794 00:38:22,690 --> 00:38:26,150 printf, her er en kommando, som jeg vil have dig til 795 00:38:26,150 --> 00:38:28,380 fyldes med en vis nummeret. 796 00:38:28,380 --> 00:38:31,750 Så jeg vil have dig til at fylde det med to decimaler og en 797 00:38:31,750 --> 00:38:35,080 flyde, og du vil finde svømmeren ved udgangen af ​​den 798 00:38:35,080 --> 00:38:37,548 kommando, det er denne procent. 799 00:38:37,548 --> 00:38:39,407 Giver det mening? 800 00:38:39,407 --> 00:38:39,894 PUBLIKUM: Yep. 801 00:38:39,894 --> 00:38:41,355 DAN BRADLEY: Okay. 802 00:38:41,355 --> 00:38:44,764 >> PUBLIKUM: Er der noget om det do-while-løkke, 803 00:38:44,764 --> 00:38:49,390 hvis betingelsen ikke er opfyldt, hvis du får en 804 00:38:49,390 --> 00:38:52,324 negativt tal for din tælleren, vil det bare holde 805 00:38:52,324 --> 00:38:57,200 spørger og vil holde beder brugeren? 806 00:38:57,200 --> 00:38:57,400 DAN BRADLEY: Yeah. 807 00:38:57,400 --> 00:39:02,230 Så hvis tilstand mens er ikke opfyldt ved udgangen af 808 00:39:02,230 --> 00:39:04,200 do-stykke tid, vil det køre tilbage til start. 809 00:39:04,200 --> 00:39:05,860 Det er bare en løkke. 810 00:39:05,860 --> 00:39:08,000 Så det er ligesom en while-løkke, at betingelsen ikke har været 811 00:39:08,000 --> 00:39:09,250 opfyldt på. 812 00:39:10,930 --> 00:39:13,740 Det bare kører en gang mere. 813 00:39:13,740 --> 00:39:14,558 Yeah. 814 00:39:14,558 --> 00:39:18,302 PUBLIKUM: Så hvis du gør dette, kan du, for din tid, 815 00:39:18,302 --> 00:39:22,430 sætte to betingelser i? 816 00:39:22,430 --> 00:39:24,452 DAN BRADLEY: Du kan. 817 00:39:24,452 --> 00:39:26,350 Det afhænger af, hvad du spørger. 818 00:39:26,350 --> 00:39:35,150 Så du kan sætte to betingelser i en while-løkke, hvis du har det 819 00:39:35,150 --> 00:39:39,470 alle inden for en form for boolesk operator, som lyder 820 00:39:39,470 --> 00:39:44,740 grimt, men det er dybest set denne nævneren er mindre end eller 821 00:39:44,740 --> 00:39:48,730 lig med nul, enten returnerer sand eller falsk, right? 822 00:39:48,730 --> 00:39:51,760 Det er enten mindre end eller lig med nul eller ikke. 823 00:39:51,760 --> 00:39:55,640 Så du kan gøre andre booleske operatorer, der vil sige, mens 824 00:39:55,640 --> 00:39:59,020 dette gælder også, eller mens dette er også forkert. 825 00:39:59,020 --> 00:40:04,630 Så det er ting som og tæller er større end 826 00:40:04,630 --> 00:40:05,770 nul, ikke? 827 00:40:05,770 --> 00:40:10,130 Det er at spørge, vil dette kun løkke, mens nævneren er mindre 828 00:40:10,130 --> 00:40:12,496 end nul, og du har en positiv tæller. 829 00:40:12,496 --> 00:40:13,700 PUBLIKUM: Og du gør de to AND, right? 830 00:40:13,700 --> 00:40:14,545 DAN BRADLEY: To AND. 831 00:40:14,545 --> 00:40:17,120 LEXI ROSS: Vi dækker det mere senere. 832 00:40:17,120 --> 00:40:20,620 >> PUBLIKUM: Hvad hvis nogen ikke sat i en positiv 833 00:40:20,620 --> 00:40:22,018 fællesnævner? 834 00:40:22,018 --> 00:40:26,410 Hvis de sat i en negativ tæller, kan du bede dem 835 00:40:26,410 --> 00:40:27,540 til, siger, sat i en ikke-negativ tæller og have 836 00:40:27,540 --> 00:40:30,460 en kommando til det? 837 00:40:30,460 --> 00:40:30,980 DAN BRADLEY: Du kunne. 838 00:40:30,980 --> 00:40:32,066 PUBLIKUM: Lige nu er det bare siger ikke-negative tæller. 839 00:40:32,066 --> 00:40:33,690 Hvad ville blive brugt til det? 840 00:40:33,690 --> 00:40:38,230 DAN BRADLEY: Så du ville have en hvis betingelse, så gerne, hvis 841 00:40:38,230 --> 00:40:42,282 tælleren er mindre end nul. 842 00:40:42,282 --> 00:40:43,960 LEXI ROSS: Du ville sandsynligvis blot ønsker at bryde det op i flere 843 00:40:43,960 --> 00:40:44,810 skridt, right? 844 00:40:44,810 --> 00:40:49,660 Så den første gang de sætter i input, vil vi bare sige at give 845 00:40:49,660 --> 00:40:50,880 os en tælleren eller whatnot. 846 00:40:50,880 --> 00:40:53,430 Og så hvis de gør noget forkert, kan dette være tilfældet 847 00:40:53,430 --> 00:40:55,570 for en while-løkke, snarere end en gør-mens, fordi vi har 848 00:40:55,570 --> 00:41:01,460 første gang vi har GetInt og derefter mens input 849 00:41:01,460 --> 00:41:04,040 er dårlig, vi ved med at spørge dem til yderligere input med en 850 00:41:04,040 --> 00:41:10,560 forskellige slags tekst, havde ligesom der ikke virker eller give os en 851 00:41:10,560 --> 00:41:12,760 ikke-negativ tæller i stedet, den slags ting. 852 00:41:17,670 --> 00:41:19,143 >> DAN BRADLEY: Ja? 853 00:41:19,143 --> 00:41:22,089 PUBLIKUM: Hvordan du fjerner de ting, [uhørligt] 854 00:41:22,089 --> 00:41:23,562 terminalen? 855 00:41:23,562 --> 00:41:25,526 LEXI ROSS: Klart. 856 00:41:25,526 --> 00:41:27,140 DAN BRADLEY: Ja, du kan ikke skrive i den. 857 00:41:27,140 --> 00:41:28,710 LEXI ROSS: Faktisk er dette ikke en reel terminal. 858 00:41:28,710 --> 00:41:31,170 Spørgsmålet var, hvordan du klart, at ting dernede? 859 00:41:31,170 --> 00:41:33,200 Svaret er, det er ikke en rigtig terminal, men lad os sige, at du 860 00:41:33,200 --> 00:41:34,450 er i en rigtig terminal. 861 00:41:42,420 --> 00:41:45,200 Ryd. 862 00:41:45,200 --> 00:41:46,450 Åh, det er en kat. 863 00:41:53,940 --> 00:41:55,190 DAN BRADLEY: [uhørligt]? 864 00:41:59,500 --> 00:42:01,120 Det er den der, ikke? 865 00:42:01,120 --> 00:42:01,790 LEXI ROSS: Nej, det er alle mine ting. 866 00:42:01,790 --> 00:42:03,040 DAN BRADLEY: [uhørlig]. 867 00:42:05,300 --> 00:42:07,912 LEXI ROSS: Der kører vi. 868 00:42:07,912 --> 00:42:08,340 DAN BRADLEY: Ja? 869 00:42:08,340 --> 00:42:10,030 >> PUBLIKUM: Er klar arbejde, hvis du har - 870 00:42:10,030 --> 00:42:12,787 gerne sige, at du kører et program [uhørlig] og det er spørger 871 00:42:12,787 --> 00:42:15,315 dig for noget, og du ikke vil. 872 00:42:15,315 --> 00:42:16,080 Hvordan du - 873 00:42:16,080 --> 00:42:17,200 DAN BRADLEY: Ctrl + C? 874 00:42:17,200 --> 00:42:17,780 LEXI ROSS: Yeah. 875 00:42:17,780 --> 00:42:20,640 Så hvis du kører et program og noget ikke at gå den 876 00:42:20,640 --> 00:42:22,410 måde du ønsker det, og du blot ønsker at afslutte det hele 877 00:42:22,410 --> 00:42:25,560 program, Control + C. Selv hvis du er på en Mac, ikke Apple + C, 878 00:42:25,560 --> 00:42:34,341 Control + C. 879 00:42:34,341 --> 00:42:35,523 PUBLIKUM: Har du har den korrekte version i 880 00:42:35,523 --> 00:42:36,820 revision i din profil? 881 00:42:36,820 --> 00:42:39,780 DAN BRADLEY: Jeg tror, ​​det er gemt, er det ikke? 882 00:42:39,780 --> 00:42:40,350 Yeah. 883 00:42:40,350 --> 00:42:41,040 LEXI ROSS: Dette er rummet. 884 00:42:41,040 --> 00:42:42,290 Yeah. 885 00:42:49,685 --> 00:42:57,496 Jeg synes det er Revision 11. 886 00:42:57,496 --> 00:42:59,468 >> DAN BRADLEY: Ja? 887 00:42:59,468 --> 00:43:02,426 PUBLIKUM: Er C gør nogen antagelser om, hvad en 888 00:43:02,426 --> 00:43:05,877 variabel er hvis du definerer en variabel, men ikke tildele 889 00:43:05,877 --> 00:43:07,590 noget til det samme? 890 00:43:07,590 --> 00:43:11,380 DAN BRADLEY: Så det vil kun acceptere int'er i at stedet. 891 00:43:11,380 --> 00:43:13,980 Så hvis du erklære den - 892 00:43:13,980 --> 00:43:16,842 PUBLIKUM: Hvis jeg bare gjorde int nævner semikolon, gør det 893 00:43:16,842 --> 00:43:18,750 antager, at det er lig med nul eller et vilkårligt antal -? 894 00:43:18,750 --> 00:43:20,210 DAN BRADLEY: Nope. 895 00:43:20,210 --> 00:43:25,920 Så hvis du ikke tildeler, siger, int fællesnævner for enhver værdi, 896 00:43:25,920 --> 00:43:28,860 det kunne være hvad som helst. 897 00:43:28,860 --> 00:43:31,150 Det er den gamle hukommelse, der var i den pågældende placering. 898 00:43:31,150 --> 00:43:34,050 Så det kunne være negativ 2 mia kunne det være positivt 899 00:43:34,050 --> 00:43:38,030 2 milliarder og det kunne være hvor som helst i mellem. 900 00:43:38,030 --> 00:43:44,170 Så hvis du faktisk kører tingene, så sørg for, at du 901 00:43:44,170 --> 00:43:46,080 tildele en værdi til variablerne. 902 00:43:46,080 --> 00:43:49,050 Dette betyder det ikke noget, fordi vi er straks 903 00:43:49,050 --> 00:43:52,580 tildele den værdi, men generelt set, ja. 904 00:44:01,660 --> 00:44:04,640 Andre spørgsmål? 905 00:44:04,640 --> 00:44:06,300 >> LEXI ROSS: Vi kan også bare tage generelle spørgsmål på dette 906 00:44:06,300 --> 00:44:10,600 punkt på foredrag materiale, s. sæt materiale, noget, du har 907 00:44:10,600 --> 00:44:15,363 undret om, dette er et godt tidspunkt at spørge dem. 908 00:44:15,363 --> 00:44:16,325 PUBLIKUM: Så i walkthroughs, Zamyla 909 00:44:16,325 --> 00:44:17,768 nævnte runde funktion. 910 00:44:17,768 --> 00:44:21,540 Ville du have noget imod at uddybe, hvordan man gennemfører det? 911 00:44:21,540 --> 00:44:22,940 LEXI ROSS: Sure, hvordan gennemføre det? 912 00:44:22,940 --> 00:44:25,700 PUBLIKUM: Hun sagde, at det var rund. 913 00:44:25,700 --> 00:44:26,580 LEXI ROSS: Oh yeah. 914 00:44:26,580 --> 00:44:29,880 Så bare så vi alle har samme ordforråd og kram, 915 00:44:29,880 --> 00:44:33,070 redskab generelt betyder faktisk skriver fra bunden. 916 00:44:33,070 --> 00:44:35,530 Og så jeg tror ikke, hun talte om slags skrivning 917 00:44:35,530 --> 00:44:36,010 den runde funktion. 918 00:44:36,010 --> 00:44:37,820 Hun sandsynligvis blot betød hvordan man bruger det. 919 00:44:37,820 --> 00:44:41,900 Implement betyder lidt ligesom at skabe. 920 00:44:41,900 --> 00:44:48,670 Så generelt en tid, hvor vi ønsker at bruge den runde funktion er jeg 921 00:44:48,670 --> 00:44:49,170 betyde, sortere af, for eksempel, 922 00:44:49,170 --> 00:44:50,260 hvis du vil runde. 923 00:44:50,260 --> 00:44:53,140 Kan du give mig en lille smule mere sammenhæng om, hvad 924 00:44:53,140 --> 00:44:53,907 problem var? 925 00:44:53,907 --> 00:44:56,192 PUBLIKUM: For at undgå unøjagtigheder i decimaler 926 00:44:56,192 --> 00:44:58,480 ved at gøre dem en flyder. 927 00:44:58,480 --> 00:44:59,020 LEXI ROSS: Yeah. 928 00:44:59,020 --> 00:45:02,770 Så spørgsmålet med flåd, at vi har sådan hentydet til, er 929 00:45:02,770 --> 00:45:04,820 at på grund af den måde, de er gemt i maskinen, 930 00:45:04,820 --> 00:45:08,700 de er ikke 100% præcis på den måde, du måske tror 931 00:45:08,700 --> 00:45:10,060 din lommeregner ville gemme dem. 932 00:45:13,560 --> 00:45:16,560 Det er svært for mig at vise et eksempel uden at vide hvad 933 00:45:16,560 --> 00:45:17,750 sammenhæng var fra. 934 00:45:17,750 --> 00:45:18,920 Jeg ved det ikke, kan du tænke på noget, Dan? 935 00:45:18,920 --> 00:45:23,120 >> DAN BRADLEY: Så hvis du beder om, siger, tal 936 00:45:23,120 --> 00:45:26,590 større end 10, og du bruger flåd, og du tilføjer en 937 00:45:26,590 --> 00:45:30,810 til en svømmer hver gang, vil det nogle gange vente, indtil du har 938 00:45:30,810 --> 00:45:34,470 fået til 12, før det vil sige, det er faktisk en række 939 00:45:34,470 --> 00:45:36,520 større end 10. 940 00:45:36,520 --> 00:45:42,530 Flyder har nogle alvorlige problemer lige mellem den 32. 941 00:45:42,530 --> 00:45:49,970 og 33. decimal, der vil gå, så er det måske 9,9999999, eller 942 00:45:49,970 --> 00:45:53,210 det kunne være 10.0000001, right? 943 00:45:53,210 --> 00:45:55,680 Det er ikke rigtigt skelne mellem de to, så hvis du er 944 00:45:55,680 --> 00:45:59,310 venter på noget større end eller lig med 10, som du måske 945 00:45:59,310 --> 00:46:03,440 ikke komme der på, hvad du synes er den 10. iteration. 946 00:46:03,440 --> 00:46:07,760 Du kan få der i det 11.. 947 00:46:07,760 --> 00:46:08,980 LEXI ROSS: Væsentlige, yeah. 948 00:46:08,980 --> 00:46:11,490 Når du looping over en masse flåd, det er når den 949 00:46:11,490 --> 00:46:13,276 upræcise ske. 950 00:46:13,276 --> 00:46:18,350 PUBLIKUM: Jeg tror, ​​så dybest set, det er ligesom på p 951 00:46:18,350 --> 00:46:24,030 indstillet, vil have dig til runde float værdi, og hvis du lægger i 952 00:46:24,030 --> 00:46:29,940 4,24 for mængden af ​​forandring, du har brug tilbage, hvis du bare gøre 953 00:46:29,940 --> 00:46:33,970 gange 100, vil det faktisk skifte til 423 - 954 00:46:33,970 --> 00:46:34,460 DAN BRADLEY: Nogle gange, ja. 955 00:46:34,460 --> 00:46:36,974 PUBLIKUM: Så jeg tror, ​​det er ligesom, hvordan kan du bruge den runde 956 00:46:36,974 --> 00:46:39,390 funktion i den konkrete kode for at gøre det, så det ikke gøre det? 957 00:46:39,390 --> 00:46:44,390 DAN BRADLEY: Så hvis du er afrunding 424 ved at multiplicere det 958 00:46:44,390 --> 00:46:48,320 med 100 og gøre det til et helt tal, vil det undertiden 959 00:46:48,320 --> 00:46:52,130 gøre den 423 på grund af denne manglende præcision. 960 00:46:52,130 --> 00:46:58,926 Og så ting, du kan gøre, er blot tilføje 0,0000003. 961 00:46:58,926 --> 00:47:00,744 PUBLIKUM: Men jeg tror faktisk, de vil 962 00:47:00,744 --> 00:47:02,400 os at bruge den runde. 963 00:47:02,400 --> 00:47:03,250 DAN BRADLEY: Den runde funktion? 964 00:47:03,250 --> 00:47:06,310 Der er sikkert en matematisk funktion, noget i 965 00:47:06,310 --> 00:47:06,996 math-bibliotek. 966 00:47:06,996 --> 00:47:07,910 PUBLIKUM: # include matematik. 967 00:47:07,910 --> 00:47:10,150 DAN BRADLEY: # include , og der er 968 00:47:10,150 --> 00:47:10,990 sandsynligvis en rund funktion. 969 00:47:10,990 --> 00:47:12,480 PUBLIKUM: Ligesom runde () -? 970 00:47:12,480 --> 00:47:13,840 LEXI ROSS: Væsentlige, fordi du ønsker at afrunde til 971 00:47:13,840 --> 00:47:14,720 nærmeste cent. 972 00:47:14,720 --> 00:47:16,440 DAN BRADLEY: Lad os trække op man-siderne. 973 00:47:16,440 --> 00:47:19,460 Så et praktisk værktøj, hvis du ikke kender - 974 00:47:19,460 --> 00:47:21,800 du trækker op terminal - 975 00:47:21,800 --> 00:47:23,670 er, hvis du går til mennesket matematik. 976 00:47:27,272 --> 00:47:29,030 LEXI ROSS: Cool. 977 00:47:29,030 --> 00:47:34,970 >> Så du kan se, så mennesket er en forkortelse for manuel, ikke mennesket, og 978 00:47:34,970 --> 00:47:37,660 det giver dig mulighed for at se op mere information om en given 979 00:47:37,660 --> 00:47:40,000 funktion eller det bibliotek, du kan beskæftige sig med. 980 00:47:40,000 --> 00:47:44,040 Så jeg lige har skrevet i mennesket matematik. 981 00:47:44,040 --> 00:47:45,290 Lad mig zoome ind 982 00:47:50,990 --> 00:47:52,610 DAN BRADLEY: Vi kan prøve at køre man rundt, også. 983 00:47:52,610 --> 00:47:55,060 LEXI ROSS: Sure. 984 00:47:55,060 --> 00:47:56,870 DAN BRADLEY: Og dette vil liste ud - 985 00:47:56,870 --> 00:48:00,640 mand matematik vil opremse alt, der er i math-biblioteket, 986 00:48:00,640 --> 00:48:02,820 som vi vil inkludere. 987 00:48:02,820 --> 00:48:04,080 Ja, vi har også runde. 988 00:48:04,080 --> 00:48:06,690 LEXI ROSS: Så jeg gjorde bare mand rundt. 989 00:48:06,690 --> 00:48:10,460 Du kan se her i synopsis, det siger # include 990 00:48:10,460 --> 00:48:16,510 , så det er lidt ligesom cs50.h, stdio.h. 991 00:48:16,510 --> 00:48:19,020 Og det ser ud som det faktisk er overbelastet, hvilket betyder 992 00:48:19,020 --> 00:48:22,930 det tager forskellige typer af argumenter, så du kan afslutte 993 00:48:22,930 --> 00:48:24,320 doubler eller flåd. 994 00:48:24,320 --> 00:48:26,740 DAN BRADLEY: Runde versus roundf. 995 00:48:26,740 --> 00:48:27,335 LEXI ROSS: Roundf. 996 00:48:27,335 --> 00:48:30,128 Har Zamyla nævne roundf versus runde? 997 00:48:30,128 --> 00:48:34,120 PUBLIKUM: I walkthrough, var det bare rund (). 998 00:48:34,120 --> 00:48:36,780 DAN BRADLEY: Okay, så hun sandsynligvis var ved hjælp af dobbelt, 999 00:48:36,780 --> 00:48:39,110 derefter, i modsætning til en svømmer. 1000 00:48:39,110 --> 00:48:43,080 Okay, så du ville ganges med 100 og derefter runde det, og 1001 00:48:43,080 --> 00:48:47,950 du ville få det antal tættest på det, jeg tror. 1002 00:48:47,950 --> 00:48:50,450 >> LEXI ROSS: Så runde returnerer funktionen integralet 1003 00:48:50,450 --> 00:48:53,760 værdi nærmest x afrunding halvvejs sager væk fra 0, 1004 00:48:53,760 --> 00:48:55,850 uanset den aktuelle afrunding retning. 1005 00:48:55,850 --> 00:49:00,160 Så det væsentlige, ville du ønsker at kun runde, når du er på 1006 00:49:00,160 --> 00:49:01,830 et heltal værdi, så du gange med 1007 00:49:01,830 --> 00:49:03,896 100 og derefter rundt. 1008 00:49:03,896 --> 00:49:05,787 Betyder det mere mening? 1009 00:49:05,787 --> 00:49:10,580 PUBLIKUM: For at bruge denne funktion i en C-fil, har du brug for 1010 00:49:10,580 --> 00:49:15,475 sætte runde float, gerne, hvis din variabel hedder q, har du 1011 00:49:15,475 --> 00:49:21,216 sætte runde (float) q, og derefter en parentes, eller kan 1012 00:49:21,216 --> 00:49:23,770 du bare sætte runde, og derefter Q i parentes? 1013 00:49:23,770 --> 00:49:27,180 DAN BRADLEY: Så hvis du prøvede at bruge denne funktion 1014 00:49:27,180 --> 00:49:33,360 faktisk, ville du tage at q, er Q en float, 1015 00:49:33,360 --> 00:49:34,995 eller hvordan er det erklærede? 1016 00:49:34,995 --> 00:49:35,980 PUBLIKUM: Q er en float. 1017 00:49:35,980 --> 00:49:39,080 DAN BRADLEY: Så hvis q er erklæret som en svømmer, ville du 1018 00:49:39,080 --> 00:49:42,150 bare tage runde, og derefter give det q. 1019 00:49:42,150 --> 00:49:45,770 Du har måske til at erklære det som en dobbelt i dette tilfælde. 1020 00:49:45,770 --> 00:49:47,170 LEXI ROSS: Ja, medmindre du ønsker at bruge roundf. 1021 00:49:47,170 --> 00:49:50,620 PUBLIKUM: Jeg kunne bare bruge roundf, og derefter q i anførselstegn? 1022 00:49:50,620 --> 00:49:53,706 DAN BRADLEY: Nej, ikke i citationstegn, bare q. 1023 00:49:53,706 --> 00:49:55,542 PUBLIKUM: Beklager, ikke i citationstegn, i parentes. 1024 00:49:55,542 --> 00:49:56,792 DAN BRADLEY: I parentes, yeah. 1025 00:50:00,330 --> 00:50:02,040 LEXI ROSS: Undskyld det var en lille smule forvirrende. 1026 00:50:02,040 --> 00:50:03,067 Flere spørgsmål? 1027 00:50:03,067 --> 00:50:04,041 >> DAN BRADLEY: Ja? 1028 00:50:04,041 --> 00:50:07,450 PUBLIKUM: Så runde kun runder til heltal? 1029 00:50:07,450 --> 00:50:08,920 LEXI ROSS: Ja. 1030 00:50:08,920 --> 00:50:11,020 DAN BRADLEY: Ja, runde kun runder til heltal. 1031 00:50:11,020 --> 00:50:13,030 PUBLIKUM: Så hvis du ønskede at have noget eksakt at 1032 00:50:13,030 --> 00:50:15,146 skulle være [hørbar] ganget med 100, og derefter 1033 00:50:15,146 --> 00:50:17,536 divideret med 100 igen, hvis du ønskede at -? 1034 00:50:20,410 --> 00:50:23,497 LEXI ROSS: Så hvis du ønskede at få det ind i en decimal form? 1035 00:50:23,497 --> 00:50:27,224 PUBLIKUM: Nå eksempel, for eksempel [uhørligt] du 1036 00:50:27,224 --> 00:50:30,732 har 1,25, og derefter [uhørlig] 1037 00:50:30,732 --> 00:50:36,100 1,24, hvis du ønsker at beholde det som 1,25, du ville 1038 00:50:36,100 --> 00:50:39,516 formere sig, at med 100, afrund det, og derefter dividere det med 100 1039 00:50:39,516 --> 00:50:41,480 igen for at få 1,25? 1040 00:50:41,480 --> 00:50:41,860 LEXI ROSS: Yeah. 1041 00:50:41,860 --> 00:50:46,770 Så spørgsmålet er, da afrunding, som manden siden 1042 00:50:46,770 --> 00:50:50,470 siger, afrundes til nærmeste heltallige værdi, betyder det 1043 00:50:50,470 --> 00:50:53,420 at man ønsker at gange med 100, skal du gøre 1044 00:50:53,420 --> 00:50:56,260 afrunding, og dividere med 100 igen til, sige, få den korrekte 1045 00:50:56,260 --> 00:50:58,750 dollars og cents værdi? 1046 00:50:58,750 --> 00:51:02,000 Og svaret er -? 1047 00:51:02,000 --> 00:51:02,160 DAN BRADLEY: Nej. 1048 00:51:02,160 --> 00:51:04,840 Jeg mener, hvis du bare får en float værdi, hvis du starter 1049 00:51:04,840 --> 00:51:08,730 med en float værdi på 1,25, er det sådan det kommer til at blive 1050 00:51:08,730 --> 00:51:10,260 fortolkes. 1051 00:51:10,260 --> 00:51:13,790 Så hvis du ganger det med 100 og derefter dividere det med 100, 1052 00:51:13,790 --> 00:51:17,130 det er stadig i gang, skal fortolkes således 1,25, eller 1053 00:51:17,130 --> 00:51:18,260 eventuelt 1,249 ... 1054 00:51:18,260 --> 00:51:19,440 .. 999. 1055 00:51:19,440 --> 00:51:21,630 LEXI ROSS: Jeg tror, ​​at spørgsmålet var ligesom, du ville 1056 00:51:21,630 --> 00:51:24,850 formere, derefter bruge runde, og derefter dele, så det er ligesom - 1057 00:51:24,850 --> 00:51:25,290 DAN BRADLEY: Yeah. 1058 00:51:25,290 --> 00:51:27,530 Jeg tror stadig ikke det ændrer noget, selv om. 1059 00:51:27,530 --> 00:51:28,000 Jeg synes det er stille. 1060 00:51:28,000 --> 00:51:30,550 LEXI ROSS: Fordi runde gør - det bruger heltal. 1061 00:51:30,550 --> 00:51:34,080 Så hvis du prøver at runde 1,25, du bare få 1. 1062 00:51:34,080 --> 00:51:36,570 Så jeg tror, ​​for at komme ligesom den ekstra præcision, 1063 00:51:36,570 --> 00:51:37,720 hvis det er det du taler om. 1064 00:51:37,720 --> 00:51:42,260 >> PUBLIKUM: Så i hvilke tilfælde bruger du runde, så? 1065 00:51:42,260 --> 00:51:44,920 DAN BRADLEY: Så i dette tilfælde, hvis du vil have, siger, at antallet 1066 00:51:44,920 --> 00:51:51,570 af cent fra $ 1,25, ville du gange med 100, rund, få 1067 00:51:51,570 --> 00:51:56,980 125, og lade det være som det, som cent, i modsætning til at forsøge at 1068 00:51:56,980 --> 00:51:58,760 konvertere den tilbage i dollars og cents. 1069 00:51:58,760 --> 00:52:02,092 LEXI ROSS: Oh yeah, yeah, helt sikkert. 1070 00:52:02,092 --> 00:52:04,948 PUBLIKUM: Hvorfor har du brug for at afrunde at [uhørligt]? 1071 00:52:07,810 --> 00:52:10,740 DAN BRADLEY: Så hvis man ganger det med 100 og derefter 1072 00:52:10,740 --> 00:52:14,060 umiddelbart konvertere det til et helt tal, der er større 1073 00:52:14,060 --> 00:52:17,950 anvendelig form, det er når du beskæftige sig med det 1074 00:52:17,950 --> 00:52:19,470 upræcist, ikke sandt? 1075 00:52:19,470 --> 00:52:26,450 Så det kan være 124.999999, og så hvis du derefter konvertere det til 1076 00:52:26,450 --> 00:52:29,480 et heltal, det bare falder alt fra det er under 1077 00:52:29,480 --> 00:52:29,930 decimaltegnet. 1078 00:52:29,930 --> 00:52:31,160 PUBLIKUM: Så det vil give dig [uhørlig]. 1079 00:52:31,160 --> 00:52:34,960 DAN BRADLEY: Præcis, i stedet for 125, som er 1080 00:52:34,960 --> 00:52:37,074 hvorfor du ønsker at afrunde. 1081 00:52:37,074 --> 00:52:38,850 >> PUBLIKUM: Beklager, kan du gentage, hvad du sagde, at du 1082 00:52:38,850 --> 00:52:40,680 bør gøre i modsætning til, hvad du ikke bør gøre? 1083 00:52:40,680 --> 00:52:40,910 DAN BRADLEY: Okay. 1084 00:52:40,910 --> 00:52:45,725 Så hvad du skal gøre er, hvis du starter med 1,25, formere 1085 00:52:45,725 --> 00:52:51,960 det med 100, og derefter rundt at hele tal, at 125 eller 1086 00:52:51,960 --> 00:52:56,420 124.9999, og få det til nærmeste hele tal. 1087 00:52:56,420 --> 00:52:58,420 PUBLIKUM: Så hvis du runde, der sætter det 1088 00:52:58,420 --> 00:52:59,920 til nærmeste heltal? 1089 00:52:59,920 --> 00:53:01,420 DAN BRADLEY: Yeah. 1090 00:53:01,420 --> 00:53:07,420 PUBLIKUM: Er der en måde at begrænse, hvis du beder om en svømmer 1091 00:53:07,420 --> 00:53:10,920 der skal indlæses, er der en måde til at begrænse, hvor mange decimal 1092 00:53:10,920 --> 00:53:13,920 steder kan du indtaste et float til? 1093 00:53:13,920 --> 00:53:16,210 LEXI ROSS: Ikke brug af CS50 gennemførelse. 1094 00:53:16,210 --> 00:53:22,560 Jeg mener, kan du tælle, hvor stor input er givet ved 1095 00:53:22,560 --> 00:53:25,020 brugeren, men det kræver en ny implementering 1096 00:53:25,020 --> 00:53:29,780 af GetFloat, og så du ikke behøver at bekymre dig om det. 1097 00:53:29,780 --> 00:53:34,850 DAN BRADLEY: Så hvis de, siger, indgang 1,256, kunne du bare 1098 00:53:34,850 --> 00:53:38,310 bruge 1,25, eller du kunne gøre 1,26. 1099 00:53:38,310 --> 00:53:40,450 Uanset hvad, jeg tror gennemførelsen siger du kan - 1100 00:53:40,450 --> 00:53:41,860 PUBLIKUM: Du kan bare have det rundt til - 1101 00:53:41,860 --> 00:53:46,860 DAN BRADLEY: Uanset hvad det vil, ja, så længe du gør 1102 00:53:46,860 --> 00:53:48,110 en slags afrunding. 1103 00:53:51,410 --> 00:53:53,950 Noget andet? 1104 00:53:53,950 --> 00:53:55,200 Behøver ikke at være om afrunding. 1105 00:54:00,886 --> 00:54:01,374 LEXI ROSS: Ja? 1106 00:54:01,374 --> 00:54:03,814 >> PUBLIKUM: Hvis vi ønsker at kontrollere, om den stil af vores 1107 00:54:03,814 --> 00:54:06,285 kode er hensigtsmæssigt eller den bedste stil 1108 00:54:06,285 --> 00:54:08,585 at det kan være, er, at den slags ting, vi ville bringe op i 1109 00:54:08,585 --> 00:54:11,460 sektion, eller på kontortid, er eller at den slags ting 1110 00:54:11,460 --> 00:54:15,582 vi kan sende privat på ting, på diskussion, og derefter 1111 00:54:15,582 --> 00:54:17,280 spørge til råds om? 1112 00:54:17,280 --> 00:54:20,400 LEXI ROSS: Så gør vi ikke, at kontortid eller på CS50 1113 00:54:20,400 --> 00:54:23,510 Diskuter, vil vi faktisk ikke klasse din p sæt i forvejen 1114 00:54:23,510 --> 00:54:26,420 for stil, men jeg tror nok den mest nyttige 1115 00:54:26,420 --> 00:54:29,800 ting du kunne gøre ville være at se på eksempler, og du 1116 00:54:29,800 --> 00:54:35,290 bør kunne finde, at i afsnitskendetegn, som bør være 1117 00:54:35,290 --> 00:54:39,290 distribueres online, samt foredrag objektglas, der 1118 00:54:39,290 --> 00:54:40,730 bør være eksempler på kode. 1119 00:54:40,730 --> 00:54:43,150 Men hvis du har individuelle spørgsmål om et bestemt 1120 00:54:43,150 --> 00:54:46,300 stil spørgsmål, absolut velkommen til at bede om, at den CS50 1121 00:54:46,300 --> 00:54:49,320 Diskuter, og kontortid, eller på din egen tid. 1122 00:54:49,320 --> 00:54:52,330 Men hvis det er mere en generel kig på min kode, er det bedst at 1123 00:54:52,330 --> 00:54:55,610 form for brug eksempler og forsøge at passe din kode til det. 1124 00:54:55,610 --> 00:54:57,560 Og jeg tror, ​​der er en style guide på - 1125 00:54:57,560 --> 00:54:58,640 DAN BRADLEY: Der er den stil guide. 1126 00:54:58,640 --> 00:54:59,830 Stilen guide er awesome. 1127 00:54:59,830 --> 00:55:03,670 Den lærer dig alt hvad du behøver, og den dækker temmelig 1128 00:55:03,670 --> 00:55:07,710 meget hver eksempel, man kender, eller i det mindste at jeg kender dem. 1129 00:55:10,750 --> 00:55:12,000 >> Noget andet? 1130 00:55:14,830 --> 00:55:15,275 Ok. 1131 00:55:15,275 --> 00:55:15,840 Cool, gutter. 1132 00:55:15,840 --> 00:55:16,440 LEXI ROSS: Hav en dejlig dag. 1133 00:55:16,440 --> 00:55:17,690 DAN BRADLEY: Tak for at komme.