1 00:00:07,275 --> 00:00:08,980 [Powered by Google Translate] LEXI ROSS: Tudo bem, oi, todos. 2 00:00:08,980 --> 00:00:11,930 Bem-vindo ao supersection CS50 primeiro. 3 00:00:11,930 --> 00:00:13,800 Esta será a semana de apenas supersections. 4 00:00:13,800 --> 00:00:17,130 Após isso, você estará indo para a seção regular com o seu 5 00:00:17,130 --> 00:00:18,530 atribuído TF. 6 00:00:18,530 --> 00:00:20,280 Mas esta semana, estamos fazendo isso em um pouco de diferente 7 00:00:20,280 --> 00:00:23,530 formato, embora o formato atual, como está indo para ir 8 00:00:23,530 --> 00:00:25,950 para a próxima hora e meia mais ou menos, vai ser muito 9 00:00:25,950 --> 00:00:27,700 semelhante ao que você vai estar vendo para 10 00:00:27,700 --> 00:00:29,350 o resto do semestre. 11 00:00:29,350 --> 00:00:33,630 >> Então, o que nós vamos fazer é começar por ultrapassar o 12 00:00:33,630 --> 00:00:35,920 parte seção de seu conjunto de problemas. 13 00:00:35,920 --> 00:00:38,940 Então, se você já leu sobre o conjunto de p, o que espero que você tem, 14 00:00:38,940 --> 00:00:41,120 você verá que há uma parte chamada "secção A do 15 00:00:41,120 --> 00:00:43,190 Perguntas ", e estes são feitos para serem ido 16 00:00:43,190 --> 00:00:44,180 mais em suas seções. 17 00:00:44,180 --> 00:00:47,510 Então, você tem uma vantagem por estar aqui em que você começa a 18 00:00:47,510 --> 00:00:50,680 passar por cima dessas questões mais conceituais baseados. 19 00:00:50,680 --> 00:00:52,780 E depois de fazer isso, nós vamos passar por cima dos dois últimos 20 00:00:52,780 --> 00:00:55,070 questões de seção, que são mais mergulho 21 00:00:55,070 --> 00:00:56,330 em questões do tipo de codificação. 22 00:00:56,330 --> 00:00:58,470 Então, nós estamos realmente vai ter que vocês levar alguns 23 00:00:58,470 --> 00:01:01,040 minutos para cada questão, tentar resolvê-los por conta própria, e 24 00:01:01,040 --> 00:01:03,590 então vamos nos unir usando o novo CS50 25 00:01:03,590 --> 00:01:06,670 Espaços de ferramentas e vão sobre as respostas de modo que todos tenham a 26 00:01:06,670 --> 00:01:09,130 código correto para revisão. 27 00:01:09,130 --> 00:01:10,790 >> Assim, um par de anúncios. 28 00:01:10,790 --> 00:01:12,690 Não se esqueça de que há o horário de expediente, todas as noites esta 29 00:01:12,690 --> 00:01:16,500 semana em Annenberg 8-11, para fazer exame 30 00:01:16,500 --> 00:01:17,410 vantagem desses. 31 00:01:17,410 --> 00:01:21,660 E também, não comece a p demasiado tarde na semana. 32 00:01:21,660 --> 00:01:24,640 Comece hoje à noite ou amanhã à noite, o mais tardar. 33 00:01:24,640 --> 00:01:26,770 Você vai se arrepender se você esperar muito tempo para começar 34 00:01:26,770 --> 00:01:27,970 e executar em problemas. 35 00:01:27,970 --> 00:01:31,160 Então, ter o nosso conselho e, definitivamente, começar cedo. 36 00:01:31,160 --> 00:01:32,860 Esta vai ser uma boa maneira de começar com 37 00:01:32,860 --> 00:01:34,450 essas perguntas seção. 38 00:01:34,450 --> 00:01:35,810 Então, eu estou Lexi, por sinal. 39 00:01:35,810 --> 00:01:36,740 Eu sou um TF. 40 00:01:36,740 --> 00:01:38,455 E este é o Dan, que também é um TF. 41 00:01:38,455 --> 00:01:38,940 Dan Bradley: Ei, pessoal. 42 00:01:38,940 --> 00:01:39,770 LEXI ROSS: E ele vai ficar 43 00:01:39,770 --> 00:01:41,370 começou com as perguntas. 44 00:01:41,370 --> 00:01:42,410 >> Dan Bradley: Tudo bem. 45 00:01:42,410 --> 00:01:46,730 Então, eu estou indo apenas para introduzir um compilador pequeno casal 46 00:01:46,730 --> 00:01:50,350 questões que vamos falar e apenas passam por 47 00:01:50,350 --> 00:01:54,550 algum tipo de idéias conceituais que precisamos para realmente executar 48 00:01:54,550 --> 00:01:59,120 código, seja em um aparelho ou com o nosso tipo de falso 49 00:01:59,120 --> 00:02:01,520 aparelhos, Executar CS50 e Spaces. 50 00:02:01,520 --> 00:02:05,550 Então vamos ver se alguém na platéia tem alguma idéia 51 00:02:05,550 --> 00:02:07,450 sobre o que estamos falando. 52 00:02:07,450 --> 00:02:11,130 >> Então, o que é uma biblioteca no contexto do código? 53 00:02:11,130 --> 00:02:13,680 Alguém tem alguma idéia? 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 AUDIÊNCIA: Como um estoque de funções que alguém 57 00:02:17,876 --> 00:02:19,690 já programado que podemos construir? 58 00:02:19,690 --> 00:02:20,230 Dan Bradley: Exatamente. 59 00:02:20,230 --> 00:02:24,180 Assim, uma biblioteca é um estoque de funções que alguém 60 00:02:24,180 --> 00:02:27,100 já programados que não temos a 61 00:02:27,100 --> 00:02:28,480 re-implementar a nós mesmos. 62 00:02:28,480 --> 00:02:32,140 Portanto, temos coisas como o padrão biblioteca I / O, o 63 00:02:32,140 --> 00:02:38,720 cs50.h biblioteca, que são coisas que o mundo, a 64 00:02:38,720 --> 00:02:41,870 Internet, os funcionários fizeram o que torna nosso 65 00:02:41,870 --> 00:02:43,670 vive mais fácil como codificadores. 66 00:02:43,670 --> 00:02:46,410 Assim como você imprimir coisas para uma tela? 67 00:02:46,410 --> 00:02:49,910 Eu não tenho idéia, printf faz isso por mim. 68 00:02:49,910 --> 00:02:52,290 É algo que alguém já fez que é 69 00:02:52,290 --> 00:02:54,640 impressionante e funciona muito bem. 70 00:02:54,640 --> 00:02:55,440 >> Okay. 71 00:02:55,440 --> 00:02:59,160 Assim, o uso de bibliotecas, por outro lado, no entanto, tiver 72 00:02:59,160 --> 00:03:02,450 para realmente fazer algumas coisas extras com o seu código. 73 00:03:02,450 --> 00:03:07,400 Então, você tem que usar coisas como esta # include. 74 00:03:07,400 --> 00:03:09,190 O que isso faz? 75 00:03:09,190 --> 00:03:13,010 Qual é o papel que o jogo quando você tem isso em um programa? 76 00:03:13,010 --> 00:03:15,128 AUDIÊNCIA: Ele permite que você faça uso de todas as funções que são 77 00:03:15,128 --> 00:03:16,040 [Inaudível] 78 00:03:16,040 --> 00:03:19,515 biblioteca simplesmente usando as definições que já têm 79 00:03:19,515 --> 00:03:20,425 [Inaudível] 80 00:03:20,425 --> 00:03:20,880 biblioteca. 81 00:03:20,880 --> 00:03:21,680 Dan Bradley: Okay. 82 00:03:21,680 --> 00:03:25,930 Ele permite que você puxa funções de biblioteca no seu código, mas 83 00:03:25,930 --> 00:03:29,320 ele faz isso de uma maneira que não é exatamente a mesma como 84 00:03:29,320 --> 00:03:32,020 -Lcs50, que nós vamos chegar a um minuto. 85 00:03:32,020 --> 00:03:36,010 Ele apenas permite que o compilador saber que hey, há estes 86 00:03:36,010 --> 00:03:40,550 funções que vão surgir em seu código. 87 00:03:40,550 --> 00:03:44,240 Estar ciente de que, se não forem completamente descrito no código 88 00:03:44,240 --> 00:03:47,110 que está diante de você, há alguma função de biblioteca 89 00:03:47,110 --> 00:03:49,510 que vai cuidar dele. 90 00:03:49,510 --> 00:03:53,010 >> Assim, no caso de printf, que nós vamos passar por cima de um casal 91 00:03:53,010 --> 00:03:56,400 tempos de hoje, é a biblioteca de I / O padrão. 92 00:03:56,400 --> 00:04:00,010 Então, enquanto eu não definir printf em qualquer lugar no meu código nunca, o 93 00:04:00,010 --> 00:04:05,340 E / S padrão cuida dela para mim, e eu vou fazer # include 94 00:04:05,340 --> 00:04:13,780 stdio.h, e ele vai puxar nessas funções que eu 95 00:04:13,780 --> 00:04:15,400 não já definido. 96 00:04:15,400 --> 00:04:20,019 Então, qual é a diferença, então, entre esse # include 97 00:04:20,019 --> 00:04:22,320 e-lcs50? 98 00:04:22,320 --> 00:04:25,890 O que faz-lcs50 fazer quando eu passar para o 99 00:04:25,890 --> 00:04:29,430 compilador, como Clang? 100 00:04:29,430 --> 00:04:32,670 Alguém tem alguma idéia? 101 00:04:32,670 --> 00:04:34,631 Okay. 102 00:04:34,631 --> 00:04:35,605 Sim? 103 00:04:35,605 --> 00:04:39,020 AUDIÊNCIA: Ele permite que você acessar a biblioteca CS50? 104 00:04:39,020 --> 00:04:42,120 Dan Bradley: Ele permite que você acesse a biblioteca na CS50 105 00:04:42,120 --> 00:04:46,610 que diz o compilador Clang, que hey, este é o lugar onde 106 00:04:46,610 --> 00:04:50,930 você realmente ir para obter estas funções. 107 00:04:50,930 --> 00:04:55,010 Assim, o # include diz que há 108 00:04:55,010 --> 00:04:58,510 estas funções em algum lugar. 109 00:04:58,510 --> 00:05:02,680 O lcs50-diz, vá a este ponto em seu computador - 110 00:05:02,680 --> 00:05:05,770 que é a biblioteca CS50 - 111 00:05:05,770 --> 00:05:09,990 e puxar para cima o código real para essas funções. 112 00:05:13,110 --> 00:05:14,370 Isso faz com que todos sentido,? 113 00:05:14,370 --> 00:05:17,930 >> Então, essas são todas as coisas que são para ajudar o seu compilador 114 00:05:17,930 --> 00:05:22,490 juntamente com a fatura o código realmente executado. 115 00:05:22,490 --> 00:05:23,350 Pergunta rápida. 116 00:05:23,350 --> 00:05:24,870 As pessoas sabem que é um compilador? 117 00:05:28,220 --> 00:05:29,700 Bom senso? 118 00:05:29,700 --> 00:05:33,160 É basicamente tendo o código escrito que você tem, 119 00:05:33,160 --> 00:05:35,380 convertendo-a em binário, convertendo em código de máquina, 120 00:05:35,380 --> 00:05:39,370 para que o seu computador pode realmente entender. 121 00:05:39,370 --> 00:05:43,330 E, sem mais delongas, vamos entrar em mais 122 00:05:43,330 --> 00:05:46,640 exercícios reais de codificação que vocês vão se divertir 123 00:05:46,640 --> 00:05:49,850 afundando seus dentes, e Lexi vai passar por cima disso. 124 00:05:49,850 --> 00:05:51,110 >> LEXI ROSS: Ok. 125 00:05:51,110 --> 00:05:51,455 Impressionante. 126 00:05:51,455 --> 00:05:55,470 Então, nós estamos indo ir sobre duas questões aqui. 127 00:05:55,470 --> 00:06:01,170 Assim, o primeiro é, na verdade, você pode ver, é um pouco 128 00:06:01,170 --> 00:06:03,240 pequena aqui, mas essencialmente está pedindo para você 129 00:06:03,240 --> 00:06:04,930 escrever um programa para tomar alguma entrada do usuário. 130 00:06:04,930 --> 00:06:09,058 Eu não sei por que há um quadrado negro. 131 00:06:09,058 --> 00:06:10,000 É misterioso. 132 00:06:10,000 --> 00:06:12,180 Ele deve ser bom, no entanto. 133 00:06:12,180 --> 00:06:16,000 Então, ele quer que você dê uma entrada do usuário em Celsius, converter esse 134 00:06:16,000 --> 00:06:18,270 para Fahrenheit, e depois dizer ao usuário que a temperatura da 135 00:06:18,270 --> 00:06:19,720 Seria em graus Fahrenheit. 136 00:06:19,720 --> 00:06:25,530 Assim, você pode ver uma amostra seqüência de entrada / saída aqui. 137 00:06:25,530 --> 00:06:28,770 As entradas do usuário - depois Celsius, o negrito refere-se a 138 00:06:28,770 --> 00:06:29,300 entrada do usuário. 139 00:06:29,300 --> 00:06:32,460 Assim, o utilizador entradas 100, e as saídas do programa 140 00:06:32,460 --> 00:06:34,530 Fahrenheit, 212,0. 141 00:06:34,530 --> 00:06:36,700 E uma distinção importante neste programa é que estamos 142 00:06:36,700 --> 00:06:41,770 vai ter apenas uma casa decimal, por isso vamos ver como fazer 143 00:06:41,770 --> 00:06:43,020 isso também. 144 00:06:43,020 --> 00:06:45,780 E então outra coisa a notar é que estamos usando a.out 145 00:06:45,780 --> 00:06:49,960 porque Clang, compilador, nomeia automaticamente o seu binário 146 00:06:49,960 --> 00:06:53,460 arquivos a.out menos que você especifique o com uma bandeira para dar certo 147 00:06:53,460 --> 00:06:55,410 que seu próprio nome, mas por enquanto estamos apenas indo para usar o 148 00:06:55,410 --> 00:06:57,070 a.out padrão. 149 00:06:57,070 --> 00:07:01,320 >> Então, vamos realmente tomar alguns minutos e tentar escrever 150 00:07:01,320 --> 00:07:02,570 algum código para esta-se. 151 00:07:05,900 --> 00:07:07,380 Então, é 4:15. 152 00:07:07,380 --> 00:07:10,470 Então, às 4:20, vamos voltar e - oh, certo. 153 00:07:10,470 --> 00:07:12,960 Espaços. 154 00:07:12,960 --> 00:07:13,980 Cool. 155 00:07:13,980 --> 00:07:16,500 Este é um tipo de código que chamamos de esqueleto em que 156 00:07:16,500 --> 00:07:19,870 é um esqueleto, mas você tem que preencher a carne do 157 00:07:19,870 --> 00:07:21,590 programa para realmente fazê-lo funcionar. 158 00:07:21,590 --> 00:07:25,980 Assim você pode ver o # include directivas até lá para incluir 159 00:07:25,980 --> 00:07:28,040 CS50 e stdio. 160 00:07:28,040 --> 00:07:32,010 Notei em um comentário a fórmula real para converter 161 00:07:32,010 --> 00:07:35,310 Celsius a Fahrenheit, no caso de você não se lembra de alta 162 00:07:35,310 --> 00:07:36,740 ciência da escola ou outros enfeites. 163 00:07:36,740 --> 00:07:38,450 E então este é apenas um esqueleto para 164 00:07:38,450 --> 00:07:39,450 a verdadeira função principal. 165 00:07:39,450 --> 00:07:41,680 Então, tudo que você escreve está a ir aqui. 166 00:07:45,640 --> 00:07:50,490 E para realmente chegar a este espaço - 167 00:07:50,490 --> 00:07:56,105 assim CS50 Espaços podem ser acedidas através desta URL, que Dan é 168 00:07:56,105 --> 00:08:02,505 vai escrever no quadro, e eu vou ditar também. 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 Sinto muito, y. 172 00:08:18,806 --> 00:08:20,790 Dan Bradley: Y?. 173 00:08:20,790 --> 00:08:21,290 LEXI ROSS: Não, não, não, não. 174 00:08:21,290 --> 00:08:22,540 Isso é bom. 175 00:08:26,088 --> 00:08:27,338 qYLcYWfg. 176 00:08:38,590 --> 00:08:41,150 Então, eu deveria ver o tipo de todos os nomes de aparecer aqui. 177 00:08:41,150 --> 00:08:41,350 >> Impressionante. 178 00:08:41,350 --> 00:08:42,209 Isso parece ótimo. 179 00:08:42,209 --> 00:08:44,700 Isso significa que as pessoas estão a aderir ao espaço. 180 00:08:44,700 --> 00:08:46,130 Então, se você ainda não deu a chance de jogar em torno de 181 00:08:46,130 --> 00:08:47,990 Espaços ainda, este é realmente o que você está indo estar usando 182 00:08:47,990 --> 00:08:50,750 com seus TFs na seção de todo o semestre. 183 00:08:50,750 --> 00:08:52,810 Como funciona é tipo de toda a gente escreve sua própria 184 00:08:52,810 --> 00:08:56,510 código, e ninguém pode vê-la até que você pressione o Save 185 00:08:56,510 --> 00:08:59,284 botão, o que eu estou apontando para a direita agora. 186 00:08:59,284 --> 00:09:03,140 Então, eu estou indo para pressionar Save, e se você ir todos para o meu nome, 187 00:09:03,140 --> 00:09:06,670 que você deve ser capaz de vê-lo em pessoas neste 188 00:09:06,670 --> 00:09:09,510 Espaço, que é Lexis Beryl Ross. 189 00:09:09,510 --> 00:09:12,790 Então, como ele vai olhar é você clicar no meu nome, e 190 00:09:12,790 --> 00:09:15,170 você vai ver Revisão 5, que 191 00:09:15,170 --> 00:09:16,070 é a mais recente revisão. 192 00:09:16,070 --> 00:09:18,930 Copie apenas 5 edições em seu espaço, clicando sobre ela. 193 00:09:22,570 --> 00:09:23,420 >> Tudo bem. 194 00:09:23,420 --> 00:09:27,310 Então vamos passar por este problema em conjunto, e eu sou 195 00:09:27,310 --> 00:09:29,645 realmente vai escrever o código aqui na tela. 196 00:09:29,645 --> 00:09:31,420 Você pode ampliar um pouco. 197 00:09:31,420 --> 00:09:34,300 E então, uma vez que eu sou feito, você pode copiar a minha última revisão 198 00:09:34,300 --> 00:09:37,930 em seu espaço, se você quiser ver a solução final. 199 00:09:37,930 --> 00:09:41,840 Agora, os espaços tem capacidade para eu entrar e ver qualquer um dos 200 00:09:41,840 --> 00:09:43,910 o código que vocês têm escrito, mas apenas porque é 201 00:09:43,910 --> 00:09:46,470 uma parcela tão significativa e nós realmente não temos o mesmo 202 00:09:46,470 --> 00:09:50,150 tipo de capacidades de discussão como uma menor 203 00:09:50,150 --> 00:09:51,890 seção, nós apenas estamos indo para passar e eu só vou 204 00:09:51,890 --> 00:09:53,140 para escrever o código. 205 00:09:53,140 --> 00:09:55,250 Mas definitivamente parar-me com perguntas em qualquer ponto. 206 00:09:55,250 --> 00:09:57,290 Nós vamos passar por isso tipo de passo a passo para fazer 207 00:09:57,290 --> 00:10:00,032 certeza de que entendemos cada parte do que está acontecendo aqui. 208 00:10:03,800 --> 00:10:06,710 Qualquer pessoa pode ver este texto aqui? 209 00:10:06,710 --> 00:10:07,960 Alguém quer maior? 210 00:10:10,240 --> 00:10:12,860 >> Então, qual é a primeira coisa que vamos fazer aqui? 211 00:10:12,860 --> 00:10:14,840 Bem, essencialmente, uma vez que queremos obter dados do 212 00:10:14,840 --> 00:10:17,460 usuário e nós queremos que seja um tipo de experiência boa para o 213 00:10:17,460 --> 00:10:19,750 usuário, que, na verdade, quero dizer-lhes que estamos procurando. 214 00:10:19,750 --> 00:10:23,120 Então, vamos imprimir exatamente o que queremos formar o usuário. 215 00:10:23,120 --> 00:10:26,540 Então, só não se incomodam levantar sua mão, apenas sacudir-lo. 216 00:10:26,540 --> 00:10:29,210 Qual é o comando para imprimir algo para a tela? 217 00:10:29,210 --> 00:10:30,100 AUDIÊNCIA: printf. 218 00:10:30,100 --> 00:10:31,247 LEXI ROSS: Awesome. 219 00:10:31,247 --> 00:10:33,393 Ok, então printf. 220 00:10:33,393 --> 00:10:34,339 >> AUDIÊNCIA: Ei, Lexi? 221 00:10:34,339 --> 00:10:35,589 [Inaudível]? 222 00:10:39,080 --> 00:10:40,130 LEXI ROSS: Claro. 223 00:10:40,130 --> 00:10:43,580 Então printf, como temos visto com freqüência em aula, é o 224 00:10:43,580 --> 00:10:47,230 comando para imprimir algo para o fluxo de saída padrão. 225 00:10:47,230 --> 00:10:52,370 Então, queremos pedir ao usuário a entrada de um 226 00:10:52,370 --> 00:10:53,620 temperatura em graus Celsius. 227 00:10:58,180 --> 00:11:01,180 E agora, que realmente quer tomar a entrada que eles dão 228 00:11:01,180 --> 00:11:03,710 nós e armazená-lo em uma variável. 229 00:11:03,710 --> 00:11:06,415 Então, nós aprendemos um pouco sobre os tipos. 230 00:11:06,415 --> 00:11:12,090 Alguém pode lembrar o tipo que gostaria de uma variável 231 00:11:12,090 --> 00:11:13,170 com uma casa decimal nele? 232 00:11:13,170 --> 00:11:13,910 AUDIÊNCIA: Float. 233 00:11:13,910 --> 00:11:14,180 LEXI ROSS: Float. 234 00:11:14,180 --> 00:11:15,480 Sim, incrível. 235 00:11:15,480 --> 00:11:16,510 É uma bóia. 236 00:11:16,510 --> 00:11:17,760 Assim. 237 00:11:21,860 --> 00:11:24,953 E como é que vamos - grande dica - obter a 238 00:11:24,953 --> 00:11:25,430 flutuar do usuário? 239 00:11:25,430 --> 00:11:25,923 AUDIÊNCIA: 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 E o usuário pode potencialmente ser dizer e tentar dar-nos uma 243 00:11:38,970 --> 00:11:41,080 número negativo, mas não vamos preocupar com isso para este 244 00:11:41,080 --> 00:11:41,710 problema agora. 245 00:11:41,710 --> 00:11:43,390 Você vai se preocupar com isso um pouco mais sobre o seu 246 00:11:43,390 --> 00:11:45,570 lição de casa sobre o conjunto de problemas. 247 00:11:45,570 --> 00:11:48,970 >> Então vamos supor que eles nos dão um bom número, e agora nós 248 00:11:48,970 --> 00:11:51,590 realmente tem que converter essa bóia de Celsius para 249 00:11:51,590 --> 00:11:52,400 Fahrenheit. 250 00:11:52,400 --> 00:11:56,730 Então, vamos consultar a nossa fórmula até aqui, e vamos criar uma 251 00:11:56,730 --> 00:12:00,290 nova variável e chamá-lo de Fahrenheit. 252 00:12:00,290 --> 00:12:01,130 Eu estudei a ortografia. 253 00:12:01,130 --> 00:12:04,640 É uma espécie de loucura, eu sei. 254 00:12:04,640 --> 00:12:08,880 E vamos contar com a ordem de operações do tipo de fazer 255 00:12:08,880 --> 00:12:14,340 seu trabalho aqui, mas vamos usar parênteses apenas para ser 256 00:12:14,340 --> 00:12:17,762 completamente detalhado e claro. 257 00:12:17,762 --> 00:12:24,453 Então Celsius vezes 9 dividido por 5. 258 00:12:24,453 --> 00:12:26,740 Eu estou indo para afastar um pouco assim que este pode caber em 259 00:12:26,740 --> 00:12:29,390 uma linha, mas vou aumentar o zoom novamente para aqueles que não podem ver, 260 00:12:29,390 --> 00:12:30,640 mais na parte de trás. 261 00:12:38,150 --> 00:12:40,060 Desculpe por isso. 262 00:12:40,060 --> 00:12:42,680 Estranhos problemas de cursor. 263 00:12:42,680 --> 00:12:51,688 Plus 32. 264 00:12:51,688 --> 00:12:54,780 Ok, alguém tem alguma dúvida sobre como eu coloquei 265 00:12:54,780 --> 00:12:56,460 a fórmula, ou quaisquer problemas com isso? 266 00:12:56,460 --> 00:12:56,700 Sim. 267 00:12:56,700 --> 00:12:59,580 >> AUDIÊNCIA: Não é preciso colocar printf antes do flutuador 268 00:12:59,580 --> 00:13:01,980 celsius, fahrenheit flutuar linhas de script? 269 00:13:01,980 --> 00:13:05,910 Que importa que ordem eles estão? 270 00:13:05,910 --> 00:13:08,580 LEXI ROSS: Então, a pergunta era, precisamos printf 271 00:13:08,580 --> 00:13:11,820 antes de realmente pedir a bóia? 272 00:13:11,820 --> 00:13:13,070 A resposta é que nós fazemos. 273 00:13:13,070 --> 00:13:16,830 Dessa forma, que o cursor que o usuário recebe a sua entrada 274 00:13:16,830 --> 00:13:20,310 flutuador irá ocorrer após o c impressa, certo? 275 00:13:20,310 --> 00:13:23,480 E isso faz sentido se você pensar logicamente, como 276 00:13:23,480 --> 00:13:26,660 você está pedindo ao usuário uma pergunta, e então você está 277 00:13:26,660 --> 00:13:27,800 receber uma resposta. 278 00:13:27,800 --> 00:13:30,320 Então ele imprime c, e então há um cursor, em seguida, o 279 00:13:30,320 --> 00:13:32,470 usuário pode digitar o valor, como veremos 280 00:13:32,470 --> 00:13:34,200 mais tarde, quando o DEMO. 281 00:13:34,200 --> 00:13:34,874 Sim? 282 00:13:34,874 --> 00:13:37,660 >> AUDIÊNCIA: Por que usamos um flutuador e não um casal? 283 00:13:37,660 --> 00:13:40,030 LEXI ROSS: Então dupla a, essencialmente, como o nome 284 00:13:40,030 --> 00:13:42,180 implica, nos dá o dobro da quantidade de 285 00:13:42,180 --> 00:13:44,040 precisão como uma bóia. 286 00:13:44,040 --> 00:13:48,490 Mas geralmente em C, em curso, de uma série de 287 00:13:48,490 --> 00:13:50,340 razões, nós vamos usar carros alegóricos. 288 00:13:50,340 --> 00:13:53,330 E isso é realmente toda a precisão que precisamos apenas para 289 00:13:53,330 --> 00:13:56,200 tipo de conversão de temperatura de base. 290 00:13:56,200 --> 00:13:59,800 Normalmente, duplos são mais utilizados na linguagem Java, 291 00:13:59,800 --> 00:14:05,700 flutuadores são mais comuns em C. Tudo bem, impressionante. 292 00:14:05,700 --> 00:14:06,470 >> Dan Bradley: Mais um. 293 00:14:06,470 --> 00:14:07,530 LEXI ROSS: Mais um. 294 00:14:07,530 --> 00:14:08,708 Sim? 295 00:14:08,708 --> 00:14:10,684 AUDIÊNCIA: Onde você coloca a barra de espaço? 296 00:14:10,684 --> 00:14:13,648 Como, [inaudível] a barra de espaço [inaudível]? 297 00:14:13,648 --> 00:14:15,140 Será que isso importa? 298 00:14:15,140 --> 00:14:15,560 LEXI ROSS: Oh, não. 299 00:14:15,560 --> 00:14:17,040 Por isso, não importa. 300 00:14:17,040 --> 00:14:19,910 Na verdade, eu deveria ter colocado outro espaço aqui. 301 00:14:19,910 --> 00:14:21,990 Mas o que importa é que você é consistente 302 00:14:21,990 --> 00:14:22,960 todo o seu código. 303 00:14:22,960 --> 00:14:25,510 Então, se você decidir usar um estilo de espaçamento, certifique-se de 304 00:14:25,510 --> 00:14:27,530 mantê-la em todo o seu código inteiro, ou você pode obter o estilo 305 00:14:27,530 --> 00:14:28,610 pontos deduzidos. 306 00:14:28,610 --> 00:14:29,822 Assim, a consistência é a chave. 307 00:14:29,822 --> 00:14:31,590 Dan Bradley: Eu acho que ele estava falando sobre esse espaço. 308 00:14:31,590 --> 00:14:33,190 LEXI ROSS: Ah, você está falando sobre esse espaço? 309 00:14:33,190 --> 00:14:34,920 Pelo C real? 310 00:14:34,920 --> 00:14:35,335 AUDIÊNCIA: É. 311 00:14:35,335 --> 00:14:37,910 LEXI ROSS: Ah, então isso é só para a aparência, certo? 312 00:14:37,910 --> 00:14:41,280 Assim maneira que quando executar o código, se não tem essa 313 00:14:41,280 --> 00:14:43,730 espaço aqui, se parecia que isso, o usuário teria início 314 00:14:43,730 --> 00:14:45,690 digitando o número e seria esmagado até certo 315 00:14:45,690 --> 00:14:48,800 contra o cólon após o C, e seria um pouco 316 00:14:48,800 --> 00:14:50,770 melhor se houvesse um espaço. 317 00:14:50,770 --> 00:14:52,470 E você pode ver que um pouco melhor, uma vez que, na verdade, 318 00:14:52,470 --> 00:14:53,970 executar esse código, quando terminá-lo. 319 00:14:57,060 --> 00:14:58,200 Impressionante. 320 00:14:58,200 --> 00:14:59,330 Sim, mais uma pergunta. 321 00:14:59,330 --> 00:15:01,658 >> AUDIÊNCIA: Eu tenho que colocar um ponto decimal após um dos 322 00:15:01,658 --> 00:15:04,000 [Inaudível]? 323 00:15:04,000 --> 00:15:06,770 LEXI ROSS: Então você não, por causa da ordem de 324 00:15:06,770 --> 00:15:07,500 operações. 325 00:15:07,500 --> 00:15:11,020 Então porque Fahrenheit já é um flutuador, como é 326 00:15:11,020 --> 00:15:14,050 Celsius, você não precisa converter explicitamente qualquer um destes 327 00:15:14,050 --> 00:15:15,990 outros números como carros alegóricos, embora em outro 328 00:15:15,990 --> 00:15:18,180 circunstâncias, quando você está lidando com ints, você pode 329 00:15:18,180 --> 00:15:21,280 tem que colocar um ponto explicitamente lançá-lo como um carro alegórico. 330 00:15:24,160 --> 00:15:24,595 Sim? 331 00:15:24,595 --> 00:15:26,629 AUDIÊNCIA: Eu só queria saber se os assuntos de capitalização em 332 00:15:26,629 --> 00:15:29,150 estes comandos como GetFloat? 333 00:15:29,150 --> 00:15:30,160 LEXI ROSS: Sim, boa pergunta. 334 00:15:30,160 --> 00:15:33,530 Portanto, a questão era, não importa em capitalização 335 00:15:33,530 --> 00:15:34,800 comandos como GetFloat? 336 00:15:34,800 --> 00:15:36,650 A resposta é sim, ele faz. 337 00:15:36,650 --> 00:15:39,720 Assim GetFloat é, como Dan descreveu anteriormente, uma biblioteca 338 00:15:39,720 --> 00:15:44,000 função na biblioteca CS50, e foi escrito como capital 339 00:15:44,000 --> 00:15:47,360 G, capital F. Portanto, se você não escrever com esses capitais 340 00:15:47,360 --> 00:15:50,150 lá, o compilador não vai entender o que 341 00:15:50,150 --> 00:15:52,750 função que você está se referindo. 342 00:15:52,750 --> 00:15:53,130 Okay. 343 00:15:53,130 --> 00:15:53,815 Sim? 344 00:15:53,815 --> 00:15:55,446 >> AUDIÊNCIA: é o argumento para sempre vazio principal? 345 00:15:55,446 --> 00:15:57,920 LEXI ROSS: Sim, essa é outra grande questão. 346 00:15:57,920 --> 00:16:01,850 Assim, o código que você copiou do meu espaço engano teve 347 00:16:01,850 --> 00:16:02,500 argumentos um pouco mais. 348 00:16:02,500 --> 00:16:06,530 Portanto, a questão era, é o argumento para a função principal 349 00:16:06,530 --> 00:16:10,620 sempre vazio, o que essencialmente significa nada? 350 00:16:10,620 --> 00:16:11,890 A resposta é não. 351 00:16:11,890 --> 00:16:13,920 Você pode notar que o código copiado do meu anterior 352 00:16:13,920 --> 00:16:17,700 revisão teve o que pode parecer nada que realmente faz 353 00:16:17,700 --> 00:16:21,060 sentido agora, * alguns char, argv, argc. 354 00:16:21,060 --> 00:16:23,630 Não se preocupe com isso agora, mas você vai descobrir mais tarde 355 00:16:23,630 --> 00:16:25,060 em que eles fazem a diferença. 356 00:16:25,060 --> 00:16:27,480 Mas se você não está usando esse tipo de funcionalidade adicionada 357 00:16:27,480 --> 00:16:28,940 que você vai aprender mais tarde, nula 358 00:16:28,940 --> 00:16:32,085 é completamente bem. 359 00:16:32,085 --> 00:16:32,530 >> Tudo bem. 360 00:16:32,530 --> 00:16:34,690 E temos mais um passo, o que é que nós queremos 361 00:16:34,690 --> 00:16:38,840 realmente mostrar ao usuário o que a temperatura é convertido. 362 00:16:38,840 --> 00:16:46,730 Então, novamente, nós vamos usar printf, e vamos dizer que f, apenas 363 00:16:46,730 --> 00:16:48,000 Por razões de coerência. 364 00:16:48,000 --> 00:16:50,780 E agora vamos fazer algo um pouco complicado. 365 00:16:50,780 --> 00:16:57,190 Então, nós estamos indo para usar uma bandeira, ou um tipo especial de notação, 366 00:16:57,190 --> 00:17:02,510 para dizer printf para imprimir apenas uma casa decimal. 367 00:17:02,510 --> 00:17:05,240 E alguém por acaso sabe o que isso vai parecer 368 00:17:05,240 --> 00:17:06,810 gosto, antes que eu escreva isso? 369 00:17:06,810 --> 00:17:07,089 Sim? 370 00:17:07,089 --> 00:17:08,339 AUDIÊNCIA: f 0,2%? 371 00:17:10,369 --> 00:17:10,880 LEXI ROSS: Sim, sim. 372 00:17:10,880 --> 00:17:12,960 Então, na verdade, é realmente muito próximos. 373 00:17:12,960 --> 00:17:23,520 0.01F para f 0,01%, e então nós temos que lembrar de incluir 374 00:17:23,520 --> 00:17:26,950 o outro argumento para printf, que é a própria variável, 375 00:17:26,950 --> 00:17:28,685 que é n. 376 00:17:33,690 --> 00:17:34,580 >> Um último passo. 377 00:17:34,580 --> 00:17:36,880 Alguém pode lembrar o que está em nossa função principal? 378 00:17:36,880 --> 00:17:37,265 Sim, lá em cima. 379 00:17:37,265 --> 00:17:38,320 AUDIÊNCIA: Retorno? 380 00:17:38,320 --> 00:17:38,840 LEXI ROSS: Exatamente. 381 00:17:38,840 --> 00:17:42,030 Então, já que este é retornos principais int, queremos 382 00:17:42,030 --> 00:17:43,926 também retornar em int. 383 00:17:43,926 --> 00:17:48,280 DAN BRADLEY: Percentagem precisa estar no outro lado. 384 00:17:48,280 --> 00:17:48,540 LEXI ROSS: Ok. 385 00:17:48,540 --> 00:17:49,290 Desculpe, pessoal. 386 00:17:49,290 --> 00:17:50,240 Isso foi um erro. 387 00:17:50,240 --> 00:17:52,150 Assim, a percentagem vem antes 0,01. 388 00:17:52,150 --> 00:17:54,450 Então é 0,01% f. 389 00:17:54,450 --> 00:17:55,970 Esses são meio difícil de lembrar. 390 00:17:55,970 --> 00:17:57,470 Muitas pessoas, como eu, só procurá-los 391 00:17:57,470 --> 00:17:58,710 sempre que usá-los. 392 00:17:58,710 --> 00:17:59,340 Sim, lá em cima. 393 00:17:59,340 --> 00:18:02,525 AUDIÊNCIA: Por que é 0,01 e não 0,2 ou 0,1? 394 00:18:05,710 --> 00:18:07,530 LEXI ROSS: Eu não sei, na verdade. 395 00:18:07,530 --> 00:18:08,130 Você sabe? 396 00:18:08,130 --> 00:18:14,050 Dan Bradley: A razão é 0,01 em vez de 0,02, ou 397 00:18:14,050 --> 00:18:19,380 0.2, ou 0.1, é bastante arbitrária para a forma que o 398 00:18:19,380 --> 00:18:21,230 programador originalmente projetado. 399 00:18:21,230 --> 00:18:22,200 AUDIÊNCIA: Não foi isso que eu quis dizer. 400 00:18:22,200 --> 00:18:24,140 Eu não estou pedindo a razão. 401 00:18:24,140 --> 00:18:25,378 Razão [inaudível] por quê. 402 00:18:25,378 --> 00:18:28,800 Eu tê-lo escrito como 0.2, e oferece dois - 403 00:18:28,800 --> 00:18:29,270 Dan Bradley: Yeah. 404 00:18:29,270 --> 00:18:30,410 Então nós estávamos apenas querendo um. 405 00:18:30,410 --> 00:18:31,250 AUDIÊNCIA: Ah, ok. 406 00:18:31,250 --> 00:18:33,270 Então, você poderia 0,01 então. 407 00:18:33,270 --> 00:18:35,340 Dan Bradley: 0,1 provavelmente também funcionam. 408 00:18:35,340 --> 00:18:37,430 0,01 funciona tão bem. 409 00:18:37,430 --> 00:18:39,288 LEXI ROSS: Ah, o 0 pode ser o de mostrar zero, se 410 00:18:39,288 --> 00:18:40,870 é menor que um. 411 00:18:40,870 --> 00:18:43,080 Dan Bradley: Sim, eu acho que é certo. 412 00:18:43,080 --> 00:18:49,220 Portanto, a 0,01 mostraria um zero se ele não tem nada 413 00:18:49,220 --> 00:18:51,670 que iria para lá naturalmente. 414 00:18:51,670 --> 00:18:55,860 Então, se você fosse, digamos, colocar em 100 para Celsius, seria 415 00:18:55,860 --> 00:19:00,230 sair a 212 normalmente em Fahrenheit, como 212 exatamente. 416 00:19:00,230 --> 00:19:05,810 Se você tiver a 0,01, ele vai mostrar 212,0, como 417 00:19:05,810 --> 00:19:07,005 oposição a apenas 212. 418 00:19:07,005 --> 00:19:07,330 LEXI ROSS: Isso mesmo. 419 00:19:07,330 --> 00:19:13,000 Assim, a leitura que basicamente diz printf, imprimir um ponto decimal, 420 00:19:13,000 --> 00:19:14,760 e imprimir um 0, se necessário. 421 00:19:14,760 --> 00:19:16,780 Se não, imprimir a primeira posição decimal. 422 00:19:16,780 --> 00:19:18,270 Dan Bradley: E nós vamos explorar algumas dessas quando estamos 423 00:19:18,270 --> 00:19:19,270 na verdade, a execução do código. 424 00:19:19,270 --> 00:19:20,150 LEXI ROSS: Yeah. 425 00:19:20,150 --> 00:19:21,030 AUDIÊNCIA: Então eu coloquei 0,1. 426 00:19:21,030 --> 00:19:21,910 Ele ainda mostra sua zero. 427 00:19:21,910 --> 00:19:23,460 Dan Bradley: Ele ainda mostra sua zero? 428 00:19:23,460 --> 00:19:23,930 AUDIÊNCIA: É. 429 00:19:23,930 --> 00:19:25,211 Dan Bradley: Hm, ok. 430 00:19:25,211 --> 00:19:27,666 LEXI ROSS: Cool. 431 00:19:27,666 --> 00:19:29,140 >> Tudo bem. 432 00:19:29,140 --> 00:19:33,310 Mais perguntas sobre este código antes de compilar e executar? 433 00:19:33,310 --> 00:19:35,380 Alguém ver um erro aqui, em primeiro lugar? 434 00:19:35,380 --> 00:19:39,420 Qualquer pessoa ver algo que deveria estar aqui? 435 00:19:39,420 --> 00:19:41,920 Se este fosse o seu conjunto de problemas, o que seria aqui que não é 436 00:19:41,920 --> 00:19:44,490 lá agora? 437 00:19:44,490 --> 00:19:45,710 Sim, ótimo. 438 00:19:45,710 --> 00:19:48,200 Então, eu não incluir comentários, porque eu estou entregando-os 439 00:19:48,200 --> 00:19:50,570 por via oral, mas se eu estivesse escrevendo isso em um conjunto de problemas, eu o faria 440 00:19:50,570 --> 00:19:54,290 definitivamente quero colocar comentários para indicar o que eu sou 441 00:19:54,290 --> 00:19:55,820 fazer, no essencial, no programa. 442 00:19:55,820 --> 00:19:57,870 E você vai tipo de começar uma sensação para ela, como você se move através 443 00:19:57,870 --> 00:19:59,680 No semestre, a quantidade certa de comentar. 444 00:19:59,680 --> 00:20:01,520 Você não quer ser muito detalhado e linhas de venda e 445 00:20:01,520 --> 00:20:03,710 linhas de comentários para cada uma de suas linhas de código, mas você 446 00:20:03,710 --> 00:20:06,720 também não quero para não ser detalhado o suficiente e deixar o 447 00:20:06,720 --> 00:20:09,440 leitor a tentar descobrir o que diabos 448 00:20:09,440 --> 00:20:11,595 seu código está fazendo. 449 00:20:11,595 --> 00:20:12,770 >> Ok, legal. 450 00:20:12,770 --> 00:20:14,020 Vamos tentar executar este código. 451 00:20:18,290 --> 00:20:21,650 Ok, eu vou reduzir um pouco. 452 00:20:21,650 --> 00:20:22,020 Cool. 453 00:20:22,020 --> 00:20:24,560 Então, você vai perceber que há um botão Play aqui. 454 00:20:24,560 --> 00:20:25,994 Vamos clicar Play. 455 00:20:34,915 --> 00:20:39,190 Então, você vai notar aqui, assim como na especificação do problema 456 00:20:39,190 --> 00:20:43,300 definido, há o. / a.out. 457 00:20:43,300 --> 00:20:46,510 a.out é o nome do binário executável, o qual é um 458 00:20:46,510 --> 00:20:50,590 palavra longa para apenas um arquivo consistindo de código binário que 459 00:20:50,590 --> 00:20:51,710 o seu computador está executando. 460 00:20:51,710 --> 00:20:54,390 Assim como nós esperávamos, temos C aqui. 461 00:20:54,390 --> 00:20:56,007 Assim, chamar um número. 462 00:20:56,007 --> 00:20:58,630 AUDIÊNCIA: 23. 463 00:20:58,630 --> 00:21:05,090 LEXI ROSS: 23. 464 00:21:05,090 --> 00:21:06,360 Dan Bradley: O programa levou muito tempo para ser executado. 465 00:21:06,360 --> 00:21:07,310 Basta executá-lo novamente. 466 00:21:07,310 --> 00:21:07,700 LEXI ROSS: Oh, meu mau. 467 00:21:07,700 --> 00:21:09,450 Okay. 468 00:21:09,450 --> 00:21:10,770 Espaços é exigente, às vezes. 469 00:21:10,770 --> 00:21:13,060 Ele quer que você pense em seus pés. 470 00:21:13,060 --> 00:21:15,060 Ok, 23. 471 00:21:15,060 --> 00:21:16,256 Impressionante. 472 00:21:16,256 --> 00:21:18,920 Será que todo mundo acredita nisso? 473 00:21:18,920 --> 00:21:20,600 Legal, porque ele funciona. 474 00:21:20,600 --> 00:21:22,670 >> Okay. 475 00:21:22,670 --> 00:21:24,280 Vamos tentar mais um par. 476 00:21:24,280 --> 00:21:25,910 Vamos tentar um caso extremo aqui. 477 00:21:25,910 --> 00:21:28,900 Em ciência da computação, quando falamos sobre casos de ponta, queremos dizer 478 00:21:28,900 --> 00:21:33,640 casos para o seu programa para executar que são uma espécie de sobre o muito 479 00:21:33,640 --> 00:21:38,430 arestas de entradas razoáveis ​​ou que determinados cantos dos testes de 480 00:21:38,430 --> 00:21:41,680 a lógica em seu programa, e isso faz mais sentido quando 481 00:21:41,680 --> 00:21:43,080 fazer programas mais complicados. 482 00:21:43,080 --> 00:21:45,440 Vamos tentar 0. 483 00:21:45,440 --> 00:21:45,950 Impressionante. 484 00:21:45,950 --> 00:21:48,460 Nós todos sabemos isso. 485 00:21:48,460 --> 00:21:48,745 Cool. 486 00:21:48,745 --> 00:21:50,520 Mais perguntas sobre isso antes de eu passar 487 00:21:50,520 --> 00:21:51,930 para o programa a seguir? 488 00:21:55,560 --> 00:21:57,160 Tudo bem, impressionante. 489 00:21:57,160 --> 00:22:00,066 Então, agora, nós vamos - 490 00:22:00,066 --> 00:22:01,180 quer apenas usar meu computador? 491 00:22:01,180 --> 00:22:01,940 Dan Bradley: Sim, isso é muito fácil. 492 00:22:01,940 --> 00:22:06,660 >> Tudo bem, então indo para ir e falar sobre fazer porcentagens. 493 00:22:06,660 --> 00:22:11,440 Então estamos essencialmente, neste próximo exercício pouco, vai 494 00:22:11,440 --> 00:22:16,020 tomar duas entradas inteiras do usuário, esperando por um 495 00:22:16,020 --> 00:22:21,250 não negativo numerador e denominador positivo, e 496 00:22:21,250 --> 00:22:24,410 basicamente dividindo-os e produzir o que sai como um 497 00:22:24,410 --> 00:22:25,820 percentagem. 498 00:22:25,820 --> 00:22:33,430 Então, nós queremos que ele só aceita não-negativos e numeradores 499 00:22:33,430 --> 00:22:37,930 aceitar apenas denominadores positivos, e continuo a perguntar 500 00:22:37,930 --> 00:22:43,286 para os novos, se não tiver conseguido o que quer. 501 00:22:43,286 --> 00:22:43,710 Tudo bem? 502 00:22:43,710 --> 00:22:44,960 Então, dar um que vá. 503 00:22:48,015 --> 00:22:49,390 LEXI ROSS: Ah, sim, você quer fazer o - 504 00:22:49,390 --> 00:22:51,310 oh, talvez as pessoas devem copiar o meu código. 505 00:22:51,310 --> 00:22:51,790 Dan Bradley: Yeah. 506 00:22:51,790 --> 00:22:52,270 LEXI ROSS: [inaudível] 507 00:22:52,270 --> 00:22:54,994 Espaços. 508 00:22:54,994 --> 00:22:55,986 >> AUDIÊNCIA: Eu tenho uma pergunta. 509 00:22:55,986 --> 00:22:58,466 Se eu estou usando os espaços e quero salvar [inaudível] a 510 00:22:58,466 --> 00:23:04,440 Fahrenheit conversão, posso salvá-lo e depois fazer uma nova - 511 00:23:04,440 --> 00:23:06,880 LEXI ROSS: Nós só poderia fazer um novo espaço, ou você pode apenas 512 00:23:06,880 --> 00:23:09,600 deseja copiar e colá-lo em um arquivo de texto ou 513 00:23:09,600 --> 00:23:11,040 algo que você tem. 514 00:23:11,040 --> 00:23:12,400 Dan Bradley: Eu vou mudar meu nome. 515 00:23:12,400 --> 00:23:15,430 LEXI ROSS: Então, eu só salvou a última revisão do 516 00:23:15,430 --> 00:23:20,700 tofahrenheit.c, por isso, se você entrar em AAAA Lexis Beryl 517 00:23:20,700 --> 00:23:23,270 Ross, você pode entrar e copiar o código mais recente, e depois 518 00:23:23,270 --> 00:23:26,360 começar neste novo, que eu acho que Dan vai dar 519 00:23:26,360 --> 00:23:30,540 algum código esqueleto para bem. 520 00:23:30,540 --> 00:23:33,430 Okay. 521 00:23:33,430 --> 00:23:36,590 Dan Bradley: A última revisão que eu tenho no meu, então 522 00:23:36,590 --> 00:23:40,080 é no topo, desta vez, é Revisão 4, e 523 00:23:40,080 --> 00:23:42,050 ele vai ter o que você precisa para começar. 524 00:23:47,970 --> 00:23:49,370 LEXI ROSS: Tudo bem, e eu vou copiar isso em minha também. 525 00:23:49,370 --> 00:23:50,520 >> Dan Bradley: Tudo bem. 526 00:23:50,520 --> 00:23:53,840 Acho que estamos indo apenas para começar a ir por causa disso, se 527 00:23:53,840 --> 00:23:57,470 alguém estiver interessado. 528 00:23:57,470 --> 00:23:59,710 LEXI ROSS: Estamos todos interessados. 529 00:23:59,710 --> 00:24:02,370 Dan Bradley: Vamos começar apenas declarando 530 00:24:02,370 --> 00:24:08,290 algumas variáveis. Assim, temos um numerador, e por uma questão de 531 00:24:08,290 --> 00:24:13,770 agora, eu vou apenas começar com o valor -1, 532 00:24:13,770 --> 00:24:24,070 e então eu vou criar um laço do-while. Embora - 533 00:24:24,070 --> 00:24:28,270 Então, quando eu quero que ele loop? 534 00:24:28,270 --> 00:24:30,250 Quando é que eu quero que ele continue perguntando - 535 00:24:30,250 --> 00:24:31,761 sim? 536 00:24:31,761 --> 00:24:34,960 AUDIÊNCIA: Quando é menor ou igual a zero. 537 00:24:34,960 --> 00:24:37,734 Dan Bradley: Por que não pode ser igual a zero? 538 00:24:37,734 --> 00:24:39,526 AUDIÊNCIA: [inaudível]. 539 00:24:39,526 --> 00:24:39,980 Dan Bradley: Yeah. 540 00:24:39,980 --> 00:24:42,590 Assim, para o numerador, é só enquanto o numerador 541 00:24:42,590 --> 00:24:43,840 é menor do que zero. 542 00:24:49,570 --> 00:24:50,480 Isso faz sentido para as pessoas? 543 00:24:50,480 --> 00:24:53,190 Mantemos looping enquanto o numerador é menor que zero, 544 00:24:53,190 --> 00:24:58,530 continuamos pedindo para entrada de novo, e continuar exigindo que eles 545 00:24:58,530 --> 00:24:59,520 input coisas novas. 546 00:24:59,520 --> 00:25:10,436 Então, eu vou ter um pouco printf aqui, não negativo 547 00:25:10,436 --> 00:25:11,686 num -. 548 00:25:17,780 --> 00:25:21,940 E, então, fazer a mesma coisa de antes, exceto que fazer um 549 00:25:21,940 --> 00:25:25,220 GetInt, só porque queria fazê-lo como 550 00:25:25,220 --> 00:25:27,600 percentagens de ints. 551 00:25:27,600 --> 00:25:32,010 Então numerador = GetInt. 552 00:25:36,420 --> 00:25:39,420 >> Ok, agora algumas coisas. 553 00:25:39,420 --> 00:25:41,030 Que eu preciso disso -1 aqui? 554 00:25:41,030 --> 00:25:41,976 AUDIÊNCIA: [inaudível]. 555 00:25:41,976 --> 00:25:42,449 Dan Bradley: Não. 556 00:25:42,449 --> 00:25:44,814 Por que não? 557 00:25:44,814 --> 00:25:47,440 AUDIÊNCIA: Porque você está recebendo um valor aleatório do usuário. 558 00:25:47,440 --> 00:25:48,540 Dan Bradley: Exatamente. 559 00:25:48,540 --> 00:25:53,540 Mas eu gostaria de ter a declaração aqui? 560 00:25:53,540 --> 00:25:53,950 Sim. 561 00:25:53,950 --> 00:25:54,220 Por quê? 562 00:25:54,220 --> 00:25:56,640 AUDIÊNCIA: Você tem que encontrar o lado de fora do loop. 563 00:25:56,640 --> 00:25:59,060 Caso contrário, você não vai ter a variável para o resto 564 00:25:59,060 --> 00:26:00,520 do programa. 565 00:26:00,520 --> 00:26:01,270 Dan Bradley: Exatamente. 566 00:26:01,270 --> 00:26:03,290 Escopo. 567 00:26:03,290 --> 00:26:04,750 Sweet. 568 00:26:04,750 --> 00:26:05,790 Isso faz sentido para todos? 569 00:26:05,790 --> 00:26:07,090 AUDIÊNCIA: Você pode dizer que mais uma vez? 570 00:26:07,090 --> 00:26:07,410 Dan Bradley: Okay. 571 00:26:07,410 --> 00:26:12,000 Então, se eu fosse para declarar este numerador dentro do loop, se 572 00:26:12,000 --> 00:26:14,850 Eu tinha isso em vez de numerador sendo numerador int, 573 00:26:14,850 --> 00:26:17,720 e me livrei dessa inteiramente, 574 00:26:17,720 --> 00:26:19,710 numerador desapareceria. 575 00:26:19,710 --> 00:26:23,540 Não existiria fora desse circuito, pois tudo 576 00:26:23,540 --> 00:26:25,370 É no âmbito dessas chaves. 577 00:26:28,180 --> 00:26:28,790 Faz sentido? 578 00:26:28,790 --> 00:26:30,460 Okay. 579 00:26:30,460 --> 00:26:34,750 >> Assim, para denominador, fazemos algo bastante semelhante, int 580 00:26:34,750 --> 00:26:39,850 denominador = - 581 00:26:39,850 --> 00:26:41,950 e eu não preciso de igual - 582 00:26:41,950 --> 00:26:52,900 fazer, e por enquanto, neste caso, o que eu quero? 583 00:26:52,900 --> 00:26:56,338 Que condição é que eu quero que ele ainda laço em? 584 00:26:56,338 --> 00:26:57,790 PÚBLICO: Menos do que ou igual a 0. 585 00:26:57,790 --> 00:26:59,100 DAN BRADLEY: Menos do que ou igual a 0. 586 00:26:59,100 --> 00:27:04,680 Denominador <= 0. 587 00:27:10,350 --> 00:27:13,630 Não se esqueça, vírgulas crianças. 588 00:27:13,630 --> 00:27:26,950 Então nós fazemos a mesma coisa que antes, printf positivo 589 00:27:26,950 --> 00:27:38,920 denominador, e temos int daqui. 590 00:27:43,240 --> 00:27:44,573 Lá vamos nós. 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 E então, no final, queremos imprimir alguma porcentagem. 594 00:28:02,360 --> 00:28:10,282 Então, para fazer isso, o que deveria ser a nossa corda parece? 595 00:28:10,282 --> 00:28:11,532 printf. 596 00:28:18,010 --> 00:28:20,210 Quaisquer outras ideias do que eu posso fazer aqui? 597 00:28:20,210 --> 00:28:20,480 Sim? 598 00:28:20,480 --> 00:28:26,204 AUDIÊNCIA: Talvez 0,2% [inaudível]. 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 Vou começar com o primeiro bit,%% 0,02%, 602 00:28:41,680 --> 00:28:42,957 citações vírgula. 603 00:28:46,370 --> 00:28:48,380 E eu vou jogar uma nova linha aqui, só porque eu 604 00:28:48,380 --> 00:28:50,390 como novas linhas quando eu estou fazendo as coisas. 605 00:28:53,210 --> 00:28:57,945 Que tipo de expressão matemática que eu deveria ter aqui? 606 00:28:57,945 --> 00:29:00,250 AUDIÊNCIA: Parênteses e float. 607 00:29:00,250 --> 00:29:00,620 Dan Bradley: Ótimo. 608 00:29:00,620 --> 00:29:01,875 Por que eu quero tê-lo em float? 609 00:29:01,875 --> 00:29:03,125 AUDIÊNCIA: [inaudível]. 610 00:29:05,640 --> 00:29:07,960 Dan Bradley: Bom, bom. 611 00:29:07,960 --> 00:29:09,210 Flutuar. 612 00:29:11,236 --> 00:29:12,486 AUDIÊNCIA: Numerador. 613 00:29:14,640 --> 00:29:15,610 Dan Bradley: Numerador? 614 00:29:15,610 --> 00:29:18,596 Ok, então eu faço numerador float. 615 00:29:18,596 --> 00:29:20,524 AUDIÊNCIA: Dividido por - 616 00:29:20,524 --> 00:29:22,142 Dan Bradley: Dividido por? 617 00:29:22,142 --> 00:29:23,480 AUDIÊNCIA: Denominador. 618 00:29:23,480 --> 00:29:26,290 Dan Bradley: Eu faço apenas denominador, ou eu faço flutuador 619 00:29:26,290 --> 00:29:26,900 denominador? 620 00:29:26,900 --> 00:29:29,410 AUDIÊNCIA: Apenas denominador. 621 00:29:29,410 --> 00:29:30,335 Dan Bradley: Okay. 622 00:29:30,335 --> 00:29:35,285 AUDIÊNCIA: E você pode multiplicar por 100. 623 00:29:35,285 --> 00:29:39,130 Dan Bradley: E eu que multiplicar por 100. 624 00:29:39,130 --> 00:29:40,560 AUDIÊNCIA: E então parênteses a expressão inteira. 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 Boa aparência? 628 00:29:52,860 --> 00:29:54,110 Vamos tentar. 629 00:29:58,170 --> 00:30:00,800 -50. 630 00:30:00,800 --> 00:30:03,590 Bom, 50. 631 00:30:03,590 --> 00:30:08,010 0 e 100, 50%. 632 00:30:08,010 --> 00:30:10,500 Trabalhou apenas como queríamos. 633 00:30:10,500 --> 00:30:13,510 Será que esse código faz sentido para as pessoas? 634 00:30:13,510 --> 00:30:17,600 Vou guardá-lo de modo que você pode obter uma cópia do mesmo. 635 00:30:17,600 --> 00:30:18,684 Sim? 636 00:30:18,684 --> 00:30:20,055 AUDIÊNCIA: Por que você não precisa colocar [inaudível]? 637 00:30:22,800 --> 00:30:24,603 Dan Bradley: Onde? 638 00:30:24,603 --> 00:30:26,076 AUDIÊNCIA: Como, quando você diz que é igual denominador 639 00:30:26,076 --> 00:30:28,040 [Inaudível]. 640 00:30:28,040 --> 00:30:30,630 Dan Bradley: Quando eu tenho aqui? 641 00:30:30,630 --> 00:30:32,510 Por que eu teria int antes? 642 00:30:32,510 --> 00:30:37,120 AUDIÊNCIA: Porque o outro tem int antes. 643 00:30:37,120 --> 00:30:40,060 Dan Bradley: Bem, de modo que não estava em um loop, certo? 644 00:30:40,060 --> 00:30:45,960 Então, eu declaro este denominador int acima do loop, 645 00:30:45,960 --> 00:30:48,880 e eu não tê-lo no circuito, porque eu seria 646 00:30:48,880 --> 00:30:52,680 declará-lo um monte de vezes, e não seria realmente levar 647 00:30:52,680 --> 00:30:54,280 até em qualquer outra parte do programa. 648 00:30:54,280 --> 00:30:56,520 LEXI ROSS: Sim, a coisa importante a lembrar é que 649 00:30:56,520 --> 00:30:58,530 variáveis ​​só precisa ser declarada uma vez. 650 00:30:58,530 --> 00:31:00,570 Então, imagine como é a introdução de uma nova variável 651 00:31:00,570 --> 00:31:04,640 para o mundo, chamando-int ou float ou outros enfeites, e 652 00:31:04,640 --> 00:31:07,170 uma vez que é declarado, tudo o que você precisa fazer para mudá-lo é 653 00:31:07,170 --> 00:31:10,510 basta chamá-lo por seu nome: denominador, ou x, ou y. 654 00:31:10,510 --> 00:31:13,347 Você só precisa realmente chamá-lo de um int apenas uma vez. 655 00:31:13,347 --> 00:31:14,325 >> Dan Bradley: Yeah. 656 00:31:14,325 --> 00:31:16,770 AUDIÊNCIA: Você pode explicar a diferença entre o% d 657 00:31:16,770 --> 00:31:21,180 e f% e se você declarar uma 658 00:31:21,180 --> 00:31:22,790 variável como um decimal? 659 00:31:22,790 --> 00:31:25,850 Dan Bradley: d% e% f Então aqui? 660 00:31:28,950 --> 00:31:32,190 LEXI ROSS: Então d verdade se refere a apenas um dígito, não 661 00:31:32,190 --> 00:31:33,630 decimal, que é uma espécie de confusão. 662 00:31:33,630 --> 00:31:36,310 Não há nenhum tipo de dados real chamado decimal, e quando você 663 00:31:36,310 --> 00:31:39,750 pretende imprimir um int, você se refere a ele como d%, ou 664 00:31:39,750 --> 00:31:44,440 % O que quer-d. F é para float, que você acha que 665 00:31:44,440 --> 00:31:49,070 seria eu, mas na verdade é d para int. 666 00:31:49,070 --> 00:31:49,420 >> Dan Bradley: Sim? 667 00:31:49,420 --> 00:31:52,180 AUDIÊNCIA: Então, no outro programa, por que não acabamos de fazer 668 00:31:52,180 --> 00:31:57,764 a mesma coisa quando você está dizendo Fahrenheit? 669 00:31:57,764 --> 00:32:00,760 Por que não colocar, como -? 670 00:32:00,760 --> 00:32:02,465 Dan Bradley: Na parte inferior aqui? 671 00:32:02,465 --> 00:32:03,810 Você poderia ter. 672 00:32:03,810 --> 00:32:05,900 Ele teria sido completamente legítimo. 673 00:32:05,900 --> 00:32:08,290 Eu gosto de fazê-lo desta forma, outras pessoas gostam separando 674 00:32:08,290 --> 00:32:10,450 -lo em diferentes linhas de código. 675 00:32:10,450 --> 00:32:12,290 De qualquer maneira funciona bem. 676 00:32:12,290 --> 00:32:12,760 O que há? 677 00:32:12,760 --> 00:32:13,700 >> AUDIÊNCIA: Você pode explicar o que o%% 678 00:32:13,700 --> 00:32:14,170 [Inaudível]? 679 00:32:14,170 --> 00:32:15,520 Dan Bradley: Ok, então por cento, por cento. 680 00:32:15,520 --> 00:32:18,520 Bem, eu estava indo para ir sobre isso. 681 00:32:18,520 --> 00:32:21,970 O primeiro é chamado por cento um caractere de escape, e isso só 682 00:32:21,970 --> 00:32:28,730 diz que a coisa por trás disso não é realmente código. 683 00:32:28,730 --> 00:32:36,230 Portanto, este primeiro por cento, à direita, a 0,02% f, todos aqueles f .02% 684 00:32:36,230 --> 00:32:40,860 significar algo para printf como uma função. 685 00:32:40,860 --> 00:32:44,520 %%, Eu só queria que, na verdade, apenas imprimir um 686 00:32:44,520 --> 00:32:45,670 por cento sinal. 687 00:32:45,670 --> 00:32:47,960 Então eu não estou dizendo que não há nada de importante por trás disso. 688 00:32:47,960 --> 00:32:49,820 Eu só estou dizendo que há um sinal de porcentagem por trás dele. 689 00:32:49,820 --> 00:32:52,345 Por favor, imprima um sinal de porcentagem. 690 00:32:52,345 --> 00:32:54,010 Assim, por cento, em seguida, uma outra por cento. 691 00:32:54,010 --> 00:32:56,415 AUDIÊNCIA: Você pode mostrar o que seria se você tem 692 00:32:56,415 --> 00:32:57,858 flutuar com base em outra linha? 693 00:32:57,858 --> 00:33:01,490 Dan Bradley: Ah sim, com certeza. 694 00:33:01,490 --> 00:33:05,730 Então, eu estou sendo convidado a mostrar o que seria se eu 695 00:33:05,730 --> 00:33:10,500 tinha esse numerador float, toda a matemática isso, em outra linha. 696 00:33:10,500 --> 00:33:16,200 Assim por cento flutuador = - 697 00:33:20,630 --> 00:33:25,970 e gostaria de se livrar disso e só colocar em porcentagem. 698 00:33:25,970 --> 00:33:29,400 E está fazendo exatamente a mesma coisa, eu só 699 00:33:29,400 --> 00:33:30,763 tem outra variável. 700 00:33:30,763 --> 00:33:33,030 >> AUDIÊNCIA: [inaudível]. 701 00:33:33,030 --> 00:33:34,130 Dan Bradley: Desça até o quê? 702 00:33:34,130 --> 00:33:35,512 AUDIÊNCIA: Para que eu possa ver [inaudível]. 703 00:33:40,380 --> 00:33:42,016 Dan Bradley: O que você não pode ver? 704 00:33:42,016 --> 00:33:43,510 AUDIÊNCIA: Desculpe, eu estava [inaudível]. 705 00:33:47,992 --> 00:33:48,490 Dan Bradley: Yeah. 706 00:33:48,490 --> 00:33:50,980 AUDIÊNCIA: Então, se estamos substituindo o caractere de escape, 707 00:33:50,980 --> 00:33:54,466 suponha que queria ter um sinal de dólar em vez disso, apenas para 708 00:33:54,466 --> 00:33:57,780 exemplo, um sinal de dólar por trás por cento? 709 00:33:57,780 --> 00:33:58,510 Dan Bradley: Nope. 710 00:33:58,510 --> 00:34:01,400 É apenas um dólar, apenas um sinal de dólar, porque um dólar 711 00:34:01,400 --> 00:34:03,740 sinal não significa nada para printf. 712 00:34:03,740 --> 00:34:07,980 A questão era, que eu preciso para ter um caractere de escape para 713 00:34:07,980 --> 00:34:10,135 símbolos como cifrões? 714 00:34:10,135 --> 00:34:13,330 AUDIÊNCIA: Então tipo de relacionados, existem outros casos que 715 00:34:13,330 --> 00:34:15,466 devemos saber de quando algo como o percentual 716 00:34:15,466 --> 00:34:18,820 sinal pode significar algo [inaudível]? 717 00:34:18,820 --> 00:34:20,330 LEXI ROSS: Sim. 718 00:34:20,330 --> 00:34:24,469 Não necessariamente o sinal de porcentagem, mas a barra invertida, consulte 719 00:34:24,469 --> 00:34:26,370 como temos folga final aqui? 720 00:34:26,370 --> 00:34:29,800 Vamos dizer que, na verdade, queria imprimir uma reação, teríamos 721 00:34:29,800 --> 00:34:31,070 escapar que - 722 00:34:31,070 --> 00:34:32,670 e isso vai soar confuso - 723 00:34:32,670 --> 00:34:34,260 com outra barra invertida. 724 00:34:34,260 --> 00:34:36,370 Então, se nós quiséssemos imprimir \ \, estaríamos 725 00:34:36,370 --> 00:34:40,730 só precisa digitar isso, ou para obter informações adicionais 726 00:34:40,730 --> 00:34:42,247 barra invertida, outra fuga. 727 00:34:48,340 --> 00:34:50,774 E outra, se queremos imprimir uma citação - de modo 728 00:34:50,774 --> 00:34:53,040 basicamente qualquer coisa, esse tipo de denota algo especial 729 00:34:53,040 --> 00:34:55,800 dentro de uma cadeia, queremos escapar. 730 00:34:55,800 --> 00:34:58,700 Então, vamos dizer que nós realmente queremos ter um orçamento aqui, nós o faríamos 731 00:34:58,700 --> 00:34:59,840 quero fazer \ ". 732 00:34:59,840 --> 00:35:02,450 AUDIÊNCIA: Então, é geralmente uma barra invertida? 733 00:35:02,450 --> 00:35:03,490 Dan Bradley: Geralmente é uma barra invertida. 734 00:35:03,490 --> 00:35:03,740 LEXI ROSS: Yeah. 735 00:35:03,740 --> 00:35:06,962 Por alguma razão, aqui, é um sinal de porcentagem. 736 00:35:06,962 --> 00:35:08,212 >> AUDIÊNCIA: [inaudível]? 737 00:35:11,680 --> 00:35:13,400 Dan Bradley: Esse cara? 738 00:35:13,400 --> 00:35:17,570 Isto é só para dizer, a coisa que está sendo dividido aqui é 739 00:35:17,570 --> 00:35:20,170 vai ser tratado como um flutuador para a causa da divisão. 740 00:35:25,110 --> 00:35:30,370 Assim, no caso de 50 dividido por 100, se eu não tinha o 741 00:35:30,370 --> 00:35:33,260 flutuar lá, que seria apenas 0. 742 00:35:33,260 --> 00:35:35,930 Isso é tudo o que iria sair, porque 50 dividido por 743 00:35:35,930 --> 00:35:40,510 100, se você não está incluindo todos os decimais, é 0. - 744 00:35:40,510 --> 00:35:43,520 e tudo após o decimal é apenas truncada fora. 745 00:35:43,520 --> 00:35:44,891 AUDIÊNCIA: Hum, 746 00:35:44,891 --> 00:35:48,550 por que não colocá-lo antes denominador também? 747 00:35:48,550 --> 00:35:51,310 Dan Bradley: Então, a razão por que não colocá-lo na frente de 748 00:35:51,310 --> 00:35:56,010 denominador é porque quando você está dividindo algo por 749 00:35:56,010 --> 00:35:59,320 um número inteiro, ele funciona muito bem. 750 00:35:59,320 --> 00:36:00,630 Tendo um número maior no fundo 751 00:36:00,630 --> 00:36:02,790 não muda nada. 752 00:36:02,790 --> 00:36:06,120 Você pode dividir por números inteiros muito bem. 753 00:36:06,120 --> 00:36:07,250 Ele só não importa realmente. 754 00:36:07,250 --> 00:36:09,053 Você pode, isso não mudaria nada. 755 00:36:09,053 --> 00:36:11,368 AUDIÊNCIA: Então, se você queria três casas decimais, faria 756 00:36:11,368 --> 00:36:13,220 você colocar por cento 0,03? 757 00:36:13,220 --> 00:36:14,100 Dan Bradley: Yep. 758 00:36:14,100 --> 00:36:17,440 Você colocaria% 0,03, se você queria 759 00:36:17,440 --> 00:36:20,207 três casas decimais. 760 00:36:20,207 --> 00:36:23,793 >> Público: e fazer comandos, o que é a diferença entre 761 00:36:23,793 --> 00:36:26,330 isso e apenas fazendo enquanto no topo? 762 00:36:26,330 --> 00:36:30,540 Dan Bradley: Então, um do-while contra um loop while são dois 763 00:36:30,540 --> 00:36:32,950 comandos bastante semelhantes. 764 00:36:32,950 --> 00:36:36,810 A única diferença é que você execute o código uma vez, você corre o 765 00:36:36,810 --> 00:36:40,510 código dentro do tempo de ciclo anterior 766 00:36:40,510 --> 00:36:42,940 de fazer qualquer verificação real. 767 00:36:42,940 --> 00:36:46,970 Por isso, é também a razão que eu posso dizer, sem dar denominador 768 00:36:46,970 --> 00:36:48,970 que o número um. 769 00:36:48,970 --> 00:36:52,180 Então, se eu disse denominador int, e em seguida, enquanto (denominador <= 770 00:36:52,180 --> 00:36:55,020 0), ele nunca poderia mesmo 771 00:36:55,020 --> 00:36:56,890 executar o código dentro. 772 00:36:56,890 --> 00:36:59,350 Ela vai fazer essa verificação antes - 773 00:36:59,350 --> 00:37:00,600 por isso aqui. 774 00:37:14,590 --> 00:37:19,020 Então se eu tivesse este laço enquanto aqui, eu teria que ter 775 00:37:19,020 --> 00:37:25,280 denominador é igual, por exemplo, -2 ou um número menor 776 00:37:25,280 --> 00:37:28,150 que ou igual a 0 até que seria realmente tentar executar o código 777 00:37:28,150 --> 00:37:30,130 dentro primeiro. 778 00:37:30,130 --> 00:37:33,190 Assim, de modo geral, você quer usar um loop do-while 779 00:37:33,190 --> 00:37:37,750 em vez de um loop while quando você está pedindo a entrada do usuário 780 00:37:37,750 --> 00:37:41,820 porque a execução do código uma vez, pedindo algo que o usuário 781 00:37:41,820 --> 00:37:46,920 vai lhe dar é geralmente a melhor solução, em oposição 782 00:37:46,920 --> 00:37:50,250 apenas confiando que você colocar para começar. 783 00:37:50,250 --> 00:37:53,290 AUDIÊNCIA: E fazer é sempre seguido por um tempo. 784 00:37:53,290 --> 00:37:56,550 Dan Bradley: Faça é seguido por algum pedaço de código que você 785 00:37:56,550 --> 00:38:01,470 deseja executar, e depois, enquanto alguns condição. 786 00:38:01,470 --> 00:38:03,820 LEXI ROSS: Pense nisso como uma espécie de comando quebrado 787 00:38:03,820 --> 00:38:04,390 em duas partes. 788 00:38:04,390 --> 00:38:06,836 É um tempo-do, não como aqui é um fazer, e então eu sou 789 00:38:06,836 --> 00:38:10,655 indo para adicionar um tempo, é só um tempo-do. 790 00:38:10,655 --> 00:38:13,322 >> AUDIÊNCIA: Eu entendo a razão pela qual você está usando o 791 00:38:13,322 --> 00:38:15,990 dois sinais de porcentagem, mas você pode me explicar por que nós temos que 792 00:38:15,990 --> 00:38:19,390 tem o [inaudível]? 793 00:38:19,390 --> 00:38:22,690 Dan Bradley: Ok, então o sinal de porcentagem se está apenas dizendo 794 00:38:22,690 --> 00:38:26,150 printf, aqui é um comando que eu quero que você 795 00:38:26,150 --> 00:38:28,380 encher com um número. 796 00:38:28,380 --> 00:38:31,750 Então, eu quero que você preencha-o com duas casas decimais e um 797 00:38:31,750 --> 00:38:35,080 flutuar, e você vai encontrar a bóia no final do 798 00:38:35,080 --> 00:38:37,548 comando, é esta por cento. 799 00:38:37,548 --> 00:38:39,407 Isso faz sentido? 800 00:38:39,407 --> 00:38:39,894 AUDIÊNCIA: Yep. 801 00:38:39,894 --> 00:38:41,355 Dan Bradley: Okay. 802 00:38:41,355 --> 00:38:44,764 >> AUDIÊNCIA: Existe algo sobre o laço do-while que 803 00:38:44,764 --> 00:38:49,390 se a condição não for cumprida, se você receber um 804 00:38:49,390 --> 00:38:52,324 número negativo para o numerador, vai apenas manter 805 00:38:52,324 --> 00:38:57,200 pedindo e vai continuar fazendo o usuário? 806 00:38:57,200 --> 00:38:57,400 Dan Bradley: Yeah. 807 00:38:57,400 --> 00:39:02,230 Portanto, se a condição de quando não for cumprida, no final de 808 00:39:02,230 --> 00:39:04,200 o não-tempo, ele vai correr de volta para o início. 809 00:39:04,200 --> 00:39:05,860 É apenas um loop. 810 00:39:05,860 --> 00:39:08,000 Então, é como um loop while que a condição não tem sido 811 00:39:08,000 --> 00:39:09,250 cumprida em. 812 00:39:10,930 --> 00:39:13,740 Ele só é executado mais uma vez. 813 00:39:13,740 --> 00:39:14,558 Sim. 814 00:39:14,558 --> 00:39:18,302 AUDIÊNCIA: Então, se você estiver fazendo isso, você pode, para o seu tempo, 815 00:39:18,302 --> 00:39:22,430 colocou duas condições? 816 00:39:22,430 --> 00:39:24,452 Dan Bradley: Você pode. 817 00:39:24,452 --> 00:39:26,350 Depende do que você está pedindo. 818 00:39:26,350 --> 00:39:35,150 Então você pode colocar duas condições em um loop while se tiver 819 00:39:35,150 --> 00:39:39,470 todos dentro de algum tipo de operador booleano, o que soa 820 00:39:39,470 --> 00:39:44,740 feio, mas é basicamente esse denominador é menor ou 821 00:39:44,740 --> 00:39:48,730 igual a zero, ou retorna verdadeiro ou falso, certo? 822 00:39:48,730 --> 00:39:51,760 Ou é menor do que ou igual a zero ou não. 823 00:39:51,760 --> 00:39:55,640 Assim você pode fazer outros operadores booleanos que vai dizer enquanto 824 00:39:55,640 --> 00:39:59,020 isso também é verdadeiro, ou enquanto este também é falso. 825 00:39:59,020 --> 00:40:04,630 Por isso é coisas como numerador e é maior do que 826 00:40:04,630 --> 00:40:05,770 zero, certo? 827 00:40:05,770 --> 00:40:10,130 Isso é pedir, isso só vai loop while denominador é menor 828 00:40:10,130 --> 00:40:12,496 que zero e você tem um numerador positivo. 829 00:40:12,496 --> 00:40:13,700 AUDIÊNCIA: E você faz os dois ANDs, certo? 830 00:40:13,700 --> 00:40:14,545 Dan Bradley: Dois ANDs. 831 00:40:14,545 --> 00:40:17,120 LEXI ROSS: Nós vamos cobrir que mais tarde. 832 00:40:17,120 --> 00:40:20,620 >> AUDIÊNCIA: E se alguém não colocar em um positivo 833 00:40:20,620 --> 00:40:22,018 denominador? 834 00:40:22,018 --> 00:40:26,410 Se colocar em um numerador negativo, você pode levá-los 835 00:40:26,410 --> 00:40:27,540 para, digamos, colocar em um numerador não-negativo e tem 836 00:40:27,540 --> 00:40:30,460 um comando para isso? 837 00:40:30,460 --> 00:40:30,980 Dan Bradley: Você poderia. 838 00:40:30,980 --> 00:40:32,066 AUDIÊNCIA: Agora ele só diz não negativo numerador. 839 00:40:32,066 --> 00:40:33,690 O que seria usado para isso? 840 00:40:33,690 --> 00:40:38,230 Dan Bradley: Então você tem uma condição IF, assim como se 841 00:40:38,230 --> 00:40:42,282 numerador é menor do que zero. 842 00:40:42,282 --> 00:40:43,960 LEXI ROSS: Você provavelmente só quer dividi-lo em mais 843 00:40:43,960 --> 00:40:44,810 passos, certo? 844 00:40:44,810 --> 00:40:49,660 Assim, a primeira vez que eles colocaram na entrada, que tinha acabado de dizer dar 845 00:40:49,660 --> 00:40:50,880 nos numerador um ou outros enfeites. 846 00:40:50,880 --> 00:40:53,430 E então, se eles fazem a coisa errada, isso pode ser o caso 847 00:40:53,430 --> 00:40:55,570 para um loop while, em vez de um do-tempo, porque temos 848 00:40:55,570 --> 00:41:01,460 a primeira vez que temos a GetInt, e em seguida, enquanto que a entrada 849 00:41:01,460 --> 00:41:04,040 é ruim, continuamos pedindo-lhes para a entrada ainda mais com um 850 00:41:04,040 --> 00:41:10,560 tipo diferente de texto, como o que não deu certo ou dar-nos um 851 00:41:10,560 --> 00:41:12,760 não negativo numerador em vez disso, esse tipo de coisa. 852 00:41:17,670 --> 00:41:19,143 >> Dan Bradley: Sim? 853 00:41:19,143 --> 00:41:22,089 AUDIÊNCIA: Como você limpar o material que [inaudível] 854 00:41:22,089 --> 00:41:23,562 o terminal? 855 00:41:23,562 --> 00:41:25,526 LEXI ROSS: Limpar. 856 00:41:25,526 --> 00:41:27,140 Dan Bradley: Sim, você não pode digitar nele. 857 00:41:27,140 --> 00:41:28,710 LEXI ROSS: Na verdade, este não é um terminal real. 858 00:41:28,710 --> 00:41:31,170 A questão era como você limpar essas coisas aí embaixo? 859 00:41:31,170 --> 00:41:33,200 A resposta é que não é um terminal de verdade, mas vamos dizer que você 860 00:41:33,200 --> 00:41:34,450 estão em um terminal real. 861 00:41:42,420 --> 00:41:45,200 Limpar. 862 00:41:45,200 --> 00:41:46,450 Ah, é um gato. 863 00:41:53,940 --> 00:41:55,190 Dan Bradley: [inaudível]? 864 00:41:59,500 --> 00:42:01,120 É que uma, certo? 865 00:42:01,120 --> 00:42:01,790 LEXI ROSS: Não, isso é tudo meu. 866 00:42:01,790 --> 00:42:03,040 Dan Bradley: [inaudível]. 867 00:42:05,300 --> 00:42:07,912 LEXI ROSS: Lá vamos nós. 868 00:42:07,912 --> 00:42:08,340 Dan Bradley: Sim? 869 00:42:08,340 --> 00:42:10,030 >> AUDIÊNCIA: O trabalho claro se você tem - 870 00:42:10,030 --> 00:42:12,787 como, por exemplo executar um programa [inaudível] e ele está pedindo 871 00:42:12,787 --> 00:42:15,315 você para alguma coisa, e você não quer. 872 00:42:15,315 --> 00:42:16,080 Como você - 873 00:42:16,080 --> 00:42:17,200 Dan Bradley: Control + C? 874 00:42:17,200 --> 00:42:17,780 LEXI ROSS: Yeah. 875 00:42:17,780 --> 00:42:20,640 Então, se você estiver executando um programa e algo não está indo a 876 00:42:20,640 --> 00:42:22,410 maneira que você quer e você só quer sair do todo 877 00:42:22,410 --> 00:42:25,560 programa, Control + C. Mesmo se você estiver em um Mac, não Apple + C, 878 00:42:25,560 --> 00:42:34,341 Control + C. 879 00:42:34,341 --> 00:42:35,523 AUDIÊNCIA: Será que você tem a versão correta no 880 00:42:35,523 --> 00:42:36,820 revisão em seu perfil? 881 00:42:36,820 --> 00:42:39,780 Dan Bradley: Eu acho que ele está salvo, não é? 882 00:42:39,780 --> 00:42:40,350 Sim. 883 00:42:40,350 --> 00:42:41,040 LEXI ROSS: Este é o espaço. 884 00:42:41,040 --> 00:42:42,290 Sim. 885 00:42:49,685 --> 00:42:57,496 Eu acho que é Revisão 11. 886 00:42:57,496 --> 00:42:59,468 >> Dan Bradley: Sim? 887 00:42:59,468 --> 00:43:02,426 Platéia: C fazer suposições sobre o que um 888 00:43:02,426 --> 00:43:05,877 variável é se você definir uma variável, mas não atribua 889 00:43:05,877 --> 00:43:07,590 nada para ele imediatamente? 890 00:43:07,590 --> 00:43:11,380 Dan Bradley: Então, ele só vai aceitar ints em que local. 891 00:43:11,380 --> 00:43:13,980 Então, se você declará-lo - 892 00:43:13,980 --> 00:43:16,842 AUDIÊNCIA: Se eu apenas fiz int denominador ponto e vírgula, não é 893 00:43:16,842 --> 00:43:18,750 supor que é igual a zero ou um número qualquer -? 894 00:43:18,750 --> 00:43:20,210 Dan Bradley: Nope. 895 00:43:20,210 --> 00:43:25,920 Então, se você não atribuir, por exemplo, int denominador para qualquer valor, 896 00:43:25,920 --> 00:43:28,860 pode ser qualquer coisa. 897 00:43:28,860 --> 00:43:31,150 É a memória antiga que estava no local. 898 00:43:31,150 --> 00:43:34,050 Assim, poderia ser negativa 2000000000, pode ser positiva 899 00:43:34,050 --> 00:43:38,030 2 bilhões, e que poderia ser em qualquer lugar. 900 00:43:38,030 --> 00:43:44,170 Então, se você está realmente dirigir as coisas, certifique-se de que você 901 00:43:44,170 --> 00:43:46,080 atribuir um valor às variáveis. 902 00:43:46,080 --> 00:43:49,050 Isso, não importa, porque estamos imediatamente 903 00:43:49,050 --> 00:43:52,580 atribuindo o valor, mas de um modo geral, sim. 904 00:44:01,660 --> 00:44:04,640 Alguma outra pergunta? 905 00:44:04,640 --> 00:44:06,300 >> LEXI ROSS: Nós também podemos apenas tirar dúvidas gerais neste 906 00:44:06,300 --> 00:44:10,600 ponto no material de aula, material de p set, qualquer coisa que você 907 00:44:10,600 --> 00:44:15,363 se perguntando sobre, este é um bom momento para pedir aqueles. 908 00:44:15,363 --> 00:44:16,325 AUDIÊNCIA: Então, em orientações, Zamyla 909 00:44:16,325 --> 00:44:17,768 mencionado a função round. 910 00:44:17,768 --> 00:44:21,540 Você se importaria de elaborar sobre como implementar isso? 911 00:44:21,540 --> 00:44:22,940 LEXI ROSS: Claro, como implementar isso? 912 00:44:22,940 --> 00:44:25,700 AUDIÊNCIA: Ela disse que era redondo. 913 00:44:25,700 --> 00:44:26,580 LEXI ROSS: Ah, sim. 914 00:44:26,580 --> 00:44:29,880 Então, só assim todos nós temos o mesmo vocabulário e outras coisas, 915 00:44:29,880 --> 00:44:33,070 implementar geralmente significa realmente a escrever a partir do zero. 916 00:44:33,070 --> 00:44:35,530 E então eu não acho que ela estava falando sobre uma espécie de escrever 917 00:44:35,530 --> 00:44:36,010 a função round. 918 00:44:36,010 --> 00:44:37,820 Ela provavelmente significava apenas como usá-lo. 919 00:44:37,820 --> 00:44:41,900 Implementar significa uma espécie de como criar. 920 00:44:41,900 --> 00:44:48,670 Então, geralmente, um momento em que nós queremos usar a função round é que eu 921 00:44:48,670 --> 00:44:49,170 Quer dizer, de alguma forma, por exemplo, 922 00:44:49,170 --> 00:44:50,260 se você deseja arredondar. 923 00:44:50,260 --> 00:44:53,140 Você pode me dar contexto um pouco mais sobre o que o 924 00:44:53,140 --> 00:44:53,907 problema era? 925 00:44:53,907 --> 00:44:56,192 PÚBLICO: Para evitar as imprecisões de casas decimais 926 00:44:56,192 --> 00:44:58,480 , tornando-os um carro alegórico. 927 00:44:58,480 --> 00:44:59,020 LEXI ROSS: Yeah. 928 00:44:59,020 --> 00:45:02,770 Assim, a questão com flutuadores que nós tipo de alusão é 929 00:45:02,770 --> 00:45:04,820 que, devido à forma como eles são armazenados na máquina, 930 00:45:04,820 --> 00:45:08,700 eles não são 100% precisos no modo que você pode pensar 931 00:45:08,700 --> 00:45:10,060 sua calculadora seria armazená-los. 932 00:45:13,560 --> 00:45:16,560 É difícil para eu mostrar um exemplo sem saber o que 933 00:45:16,560 --> 00:45:17,750 o contexto era. 934 00:45:17,750 --> 00:45:18,920 Eu não sei, você pode pensar em algo, Dan? 935 00:45:18,920 --> 00:45:23,120 >> Dan Bradley: Então, se você está pedindo, por exemplo, os números de 936 00:45:23,120 --> 00:45:26,590 superior a 10 e que você está usando carros alegóricos, e você está adicionando um 937 00:45:26,590 --> 00:45:30,810 a uma bóia de cada vez, ele vai esperar até que às vezes você tem 938 00:45:30,810 --> 00:45:34,470 chegado a 12 antes de ele vai dizer que este é realmente um número 939 00:45:34,470 --> 00:45:36,520 superior a 10. 940 00:45:36,520 --> 00:45:42,530 Flutua ter alguns problemas graves, entre o 32 941 00:45:42,530 --> 00:45:49,970 e casa decimal 33, que vai, por isso pode 9,9999999, ou 942 00:45:49,970 --> 00:45:53,210 pode ser 10.0000001, certo? 943 00:45:53,210 --> 00:45:55,680 Realmente não distinguir entre os dois, por isso, se você está 944 00:45:55,680 --> 00:45:59,310 esperando que as coisas maiores ou iguais a 10, você pode 945 00:45:59,310 --> 00:46:03,440 não chegar lá com o que você acha que é a iteração 10. 946 00:46:03,440 --> 00:46:07,760 Você pode chegar lá no dia 11. 947 00:46:07,760 --> 00:46:08,980 LEXI ROSS: Essencialmente, sim. 948 00:46:08,980 --> 00:46:11,490 Quando você está looping sobre um monte de carros alegóricos, que é quando o 949 00:46:11,490 --> 00:46:13,276 imprecisões acontecer. 950 00:46:13,276 --> 00:46:18,350 AUDIÊNCIA: Eu acho que, então, basicamente, é como no p 951 00:46:18,350 --> 00:46:24,030 definido, ele quer que você arredondar o valor float, e se você colocar em 952 00:46:24,030 --> 00:46:29,940 4,24 para a quantidade de mudança que você precisa para trás, se você acabou de fazer 953 00:46:29,940 --> 00:46:33,970 100 vezes, ele vai realmente mudar em 423 - 954 00:46:33,970 --> 00:46:34,460 Dan Bradley: Às vezes, sim. 955 00:46:34,460 --> 00:46:36,974 AUDIÊNCIA: Então eu acho que é como, como você usa a rodada 956 00:46:36,974 --> 00:46:39,390 função no código real para fazê-lo para que ele não faz isso? 957 00:46:39,390 --> 00:46:44,390 Dan Bradley: Então, se você é o arredondamento 424, multiplicando-se 958 00:46:44,390 --> 00:46:48,320 por 100 e fazê-la em um número inteiro, ele será por vezes 959 00:46:48,320 --> 00:46:52,130 torná-lo por causa do que 423 imprecisão. 960 00:46:52,130 --> 00:46:58,926 E assim as coisas que você pode fazer é apenas adicionar 0,0000003. 961 00:46:58,926 --> 00:47:00,744 AUDIÊNCIA: Mas eu acho que, na verdade, eles querem 962 00:47:00,744 --> 00:47:02,400 -nos a usar a rodada. 963 00:47:02,400 --> 00:47:03,250 Dan Bradley: A função rodada? 964 00:47:03,250 --> 00:47:06,310 Há provavelmente uma função matemática, algo no 965 00:47:06,310 --> 00:47:06,996 biblioteca de matemática. 966 00:47:06,996 --> 00:47:07,910 AUDIÊNCIA: # include matemática. 967 00:47:07,910 --> 00:47:10,150 Dan Bradley: # include , e não há 968 00:47:10,150 --> 00:47:10,990 provavelmente uma função rodada. 969 00:47:10,990 --> 00:47:12,480 AUDIÊNCIA: Assim como round () -? 970 00:47:12,480 --> 00:47:13,840 LEXI ROSS: Essencialmente, porque você quer arredondar para 971 00:47:13,840 --> 00:47:14,720 o cêntimo. 972 00:47:14,720 --> 00:47:16,440 Dan Bradley: Vamos arrancar as páginas do manual. 973 00:47:16,440 --> 00:47:19,460 Assim, uma ferramenta útil, se você não sabe - 974 00:47:19,460 --> 00:47:21,800 você puxa o terminal - 975 00:47:21,800 --> 00:47:23,670 é se você vai para a matemática homem. 976 00:47:27,272 --> 00:47:29,030 LEXI ROSS: Cool. 977 00:47:29,030 --> 00:47:34,970 >> Assim você pode ver, o homem é curto para o manual, não o homem, e 978 00:47:34,970 --> 00:47:37,660 ele permite que você procure mais informações sobre qualquer dado 979 00:47:37,660 --> 00:47:40,000 função ou biblioteca que você pode estar lidando. 980 00:47:40,000 --> 00:47:44,040 Então eu digitei em matemática homem. 981 00:47:44,040 --> 00:47:45,290 Deixe-me fazer zoom in 982 00:47:50,990 --> 00:47:52,610 Dan Bradley: Podemos tentar rodada homem, também. 983 00:47:52,610 --> 00:47:55,060 LEXI ROSS: Claro. 984 00:47:55,060 --> 00:47:56,870 Dan Bradley: E isso vai listar - 985 00:47:56,870 --> 00:48:00,640 matemática homem vai listar tudo o que está na biblioteca de matemática, 986 00:48:00,640 --> 00:48:02,820 que vamos incluir. 987 00:48:02,820 --> 00:48:04,080 Sim, nós também temos rodada. 988 00:48:04,080 --> 00:48:06,690 LEXI ROSS: Então eu fiz durante todo homem. 989 00:48:06,690 --> 00:48:10,460 Você pode ver aqui na sinopse, ele diz # include 990 00:48:10,460 --> 00:48:16,510 , de modo que é tipo como cs50.h, stdio.h. 991 00:48:16,510 --> 00:48:19,020 E parece que ele realmente está sobrecarregado, o que significa 992 00:48:19,020 --> 00:48:22,930 leva diferentes tipos de argumentos, para que você possa arredondar 993 00:48:22,930 --> 00:48:24,320 duplos ou carros alegóricos. 994 00:48:24,320 --> 00:48:26,740 Dan Bradley: Round contra roundf. 995 00:48:26,740 --> 00:48:27,335 LEXI ROSS: Roundf. 996 00:48:27,335 --> 00:48:30,128 Será que Zamyla mencionar roundf contra redonda? 997 00:48:30,128 --> 00:48:34,120 AUDIÊNCIA: No passo a passo, que era apenas uma rodada (). 998 00:48:34,120 --> 00:48:36,780 Dan Bradley: Ok, então provavelmente ela estava usando o dobro, 999 00:48:36,780 --> 00:48:39,110 em seguida, em oposição a uma bóia. 1000 00:48:39,110 --> 00:48:43,080 Ok, então você pode multiplicar por 100 e depois volta, e 1001 00:48:43,080 --> 00:48:47,950 que você deseja obter o número mais próximo a ele, eu acho. 1002 00:48:47,950 --> 00:48:50,450 >> LEXI ROSS: Então, a função round retorna a integral 1003 00:48:50,450 --> 00:48:53,760 valor mais próximo a arredondamento x meias casos de distância de 0, 1004 00:48:53,760 --> 00:48:55,850 independentemente do sentido de arredondamento correntes. 1005 00:48:55,850 --> 00:49:00,160 Então, basicamente, você iria querer só volta quando estiver no 1006 00:49:00,160 --> 00:49:01,830 um valor inteiro, de modo que você multiplicar por 1007 00:49:01,830 --> 00:49:03,896 100 e depois volta. 1008 00:49:03,896 --> 00:49:05,787 Isso faz mais sentido? 1009 00:49:05,787 --> 00:49:10,580 PÚBLICO: Para usar essa função em um arquivo de C, que você precisa 1010 00:49:10,580 --> 00:49:15,475 colocar bóia redonda, como se a sua variável é chamado de q, você 1011 00:49:15,475 --> 00:49:21,216 colocar round (float) q, e então um parênteses, ou pode 1012 00:49:21,216 --> 00:49:23,770 você acabou de colocar rodada, e depois q entre parênteses? 1013 00:49:23,770 --> 00:49:27,180 Dan Bradley: Então, se você estava tentando usar esta função 1014 00:49:27,180 --> 00:49:33,360 na verdade, você terá que q, q é uma bóia, 1015 00:49:33,360 --> 00:49:34,995 ou como é que é declarada? 1016 00:49:34,995 --> 00:49:35,980 AUDIÊNCIA: Q é um float. 1017 00:49:35,980 --> 00:49:39,080 Dan Bradley: Então, se q é declarada como uma bóia, você faria 1018 00:49:39,080 --> 00:49:42,150 apenas tomar rodada, e depois dar-lhe q. 1019 00:49:42,150 --> 00:49:45,770 Você pode ter que declará-lo como um casal neste caso. 1020 00:49:45,770 --> 00:49:47,170 LEXI ROSS: Sim, a menos que você quiser usar roundf. 1021 00:49:47,170 --> 00:49:50,620 AUDIÊNCIA: eu poderia usar apenas roundf, e depois q entre aspas? 1022 00:49:50,620 --> 00:49:53,706 Dan Bradley: Não, não, entre aspas, apenas q. 1023 00:49:53,706 --> 00:49:55,542 AUDIÊNCIA: Desculpe, mas não entre aspas, entre parênteses. 1024 00:49:55,542 --> 00:49:56,792 Dan Bradley: Em parênteses, sim. 1025 00:50:00,330 --> 00:50:02,040 LEXI ROSS: Pena que foi um pouco confuso. 1026 00:50:02,040 --> 00:50:03,067 Mais alguma pergunta? 1027 00:50:03,067 --> 00:50:04,041 >> Dan Bradley: Sim? 1028 00:50:04,041 --> 00:50:07,450 AUDIÊNCIA: Então redondas rodadas apenas para inteiros? 1029 00:50:07,450 --> 00:50:08,920 LEXI ROSS: Sim. 1030 00:50:08,920 --> 00:50:11,020 Dan Bradley: Sim, redondas rodadas apenas para números inteiros. 1031 00:50:11,020 --> 00:50:13,030 AUDIÊNCIA: Então se você quer ter algo exato que 1032 00:50:13,030 --> 00:50:15,146 necessária para ser [inaudível] multiplicado por 100 e depois 1033 00:50:15,146 --> 00:50:17,536 dividido por 100 novamente se você quisesse -? 1034 00:50:20,410 --> 00:50:23,497 LEXI ROSS: Então, se você quiser colocá-lo em uma forma decimal? 1035 00:50:23,497 --> 00:50:27,224 AUDIÊNCIA: Bem, a exemplo, por exemplo, [inaudível] você 1036 00:50:27,224 --> 00:50:30,732 tem 1,25, e depois [inaudível] 1037 00:50:30,732 --> 00:50:36,100 1,24, se você queria manter isso como 1,25, você faria 1038 00:50:36,100 --> 00:50:39,516 que multiplicar por 100, em volta dela, e depois dividir por 100 1039 00:50:39,516 --> 00:50:41,480 novamente para obter 1,25? 1040 00:50:41,480 --> 00:50:41,860 LEXI ROSS: Yeah. 1041 00:50:41,860 --> 00:50:46,770 Então a questão é, uma vez que o arredondamento, como a página de homem 1042 00:50:46,770 --> 00:50:50,470 diz, é arredondado para o valor inteiro mais próximo, isso significa que 1043 00:50:50,470 --> 00:50:53,420 que alguém iria querer multiplicar por 100, faça o 1044 00:50:53,420 --> 00:50:56,260 arredondamento, e dividir por 100 novamente para, digamos, obter a correta 1045 00:50:56,260 --> 00:50:58,750 dólares e centavos de valor? 1046 00:50:58,750 --> 00:51:02,000 E a resposta é -? 1047 00:51:02,000 --> 00:51:02,160 Dan Bradley: Não. 1048 00:51:02,160 --> 00:51:04,840 Quer dizer, se você está apenas começando um valor flutuante, se você começar 1049 00:51:04,840 --> 00:51:08,730 com um valor flutuante de 1,25, é assim que vai ser 1050 00:51:08,730 --> 00:51:10,260 interpretado. 1051 00:51:10,260 --> 00:51:13,790 Então, se você multiplicar por 100 e depois dividir por 100, 1052 00:51:13,790 --> 00:51:17,130 ela ainda vai ser interpretados como 1,25, ou 1053 00:51:17,130 --> 00:51:18,260 possivelmente 1,249 ... 1054 00:51:18,260 --> 00:51:19,440 .. 999. 1055 00:51:19,440 --> 00:51:21,630 LEXI ROSS: Eu acho que a pergunta era como, faria 1056 00:51:21,630 --> 00:51:24,850 multiplicam-se, em seguida, usar rodada, em seguida, dividir, então é como - 1057 00:51:24,850 --> 00:51:25,290 Dan Bradley: Yeah. 1058 00:51:25,290 --> 00:51:27,530 Eu ainda acho que não muda nada, porém. 1059 00:51:27,530 --> 00:51:28,000 Eu acho que ainda é. 1060 00:51:28,000 --> 00:51:30,550 LEXI ROSS: Porque rodada faz - ele usa números inteiros. 1061 00:51:30,550 --> 00:51:34,080 Então, se você tentar arredondar 1,25, você começa apenas 1. 1062 00:51:34,080 --> 00:51:36,570 Então eu acho que, a fim de obter como a precisão adicional, 1063 00:51:36,570 --> 00:51:37,720 se é isso que você está falando. 1064 00:51:37,720 --> 00:51:42,260 >> AUDIÊNCIA: Então, em que casos você usa redonda, então? 1065 00:51:42,260 --> 00:51:44,920 Dan Bradley: Então, nesse caso, se você quiser, por exemplo, o número 1066 00:51:44,920 --> 00:51:51,570 de centavos de US $ 1,25, você multiplicar por 100, rodada, começa 1067 00:51:51,570 --> 00:51:56,980 125, e deixá-lo como que, como centavos, em vez de tentar 1068 00:51:56,980 --> 00:51:58,760 convertê-lo em dólares e centavos. 1069 00:51:58,760 --> 00:52:02,092 LEXI ROSS: Ah, sim, sim, com certeza. 1070 00:52:02,092 --> 00:52:04,948 AUDIÊNCIA: Por que você precisa para completar que [inaudível]? 1071 00:52:07,810 --> 00:52:10,740 Dan Bradley: Então, se você multiplicar isso por 100 e, em seguida, 1072 00:52:10,740 --> 00:52:14,060 imediatamente convertê-lo para um número inteiro, o que é o mais 1073 00:52:14,060 --> 00:52:17,950 forma útil, que é quando você lidar com isso 1074 00:52:17,950 --> 00:52:19,470 imprecisão, certo? 1075 00:52:19,470 --> 00:52:26,450 Assim, pode ser 124.999999, e por isso, se você então convertê-lo em 1076 00:52:26,450 --> 00:52:29,480 um número inteiro, só cai tudo fora que está abaixo 1077 00:52:29,480 --> 00:52:29,930 o decimal. 1078 00:52:29,930 --> 00:52:31,160 AUDIÊNCIA: Então vou te dar [inaudível]. 1079 00:52:31,160 --> 00:52:34,960 Dan Bradley: Exatamente, em vez de 125, o que é 1080 00:52:34,960 --> 00:52:37,074 por que você deseja arredondar. 1081 00:52:37,074 --> 00:52:38,850 >> AUDIÊNCIA: Desculpe, poderia repetir o que você disse 1082 00:52:38,850 --> 00:52:40,680 deve fazer ao contrário do que você não deve fazer? 1083 00:52:40,680 --> 00:52:40,910 Dan Bradley: Okay. 1084 00:52:40,910 --> 00:52:45,725 Então, o que você deve fazer é se você começar com 1,25, multiplique 1085 00:52:45,725 --> 00:52:51,960 lo por 100, e depois volta que número inteiro, que 125 ou 1086 00:52:51,960 --> 00:52:56,420 124.9999, e conseguir que o inteiro mais próximo. 1087 00:52:56,420 --> 00:52:58,420 AUDIÊNCIA: Então, se você volta, que coloca 1088 00:52:58,420 --> 00:52:59,920 para o número inteiro mais próximo? 1089 00:52:59,920 --> 00:53:01,420 Dan Bradley: Yeah. 1090 00:53:01,420 --> 00:53:07,420 AUDIÊNCIA: Existe uma maneira de limitar, se você perguntar para um flutuador 1091 00:53:07,420 --> 00:53:10,920 a ser introduzido, há uma maneira de limitar o número de casas decimais 1092 00:53:10,920 --> 00:53:13,920 lugares que você pode introduzir uma bóia para? 1093 00:53:13,920 --> 00:53:16,210 LEXI ROSS: Não utilizar a implementação do CS50. 1094 00:53:16,210 --> 00:53:22,560 Quero dizer, você pode contar como grande entrada é dada por 1095 00:53:22,560 --> 00:53:25,020 o usuário, mas isso exigiria uma nova implementação 1096 00:53:25,020 --> 00:53:29,780 de GetFloat, e assim você não precisa se preocupar com isso. 1097 00:53:29,780 --> 00:53:34,850 Dan Bradley: Então, se eles, por exemplo, a entrada de 1,256, você poderia apenas 1098 00:53:34,850 --> 00:53:38,310 usar 1,25, ou você poderia fazer 1,26. 1099 00:53:38,310 --> 00:53:40,450 De qualquer forma, eu acho que a implementação diz que você pode - 1100 00:53:40,450 --> 00:53:41,860 AUDIÊNCIA: Você pode apenas ter que arredondar para - 1101 00:53:41,860 --> 00:53:46,860 Dan Bradley: Seja o que quer, sim, desde que você faz 1102 00:53:46,860 --> 00:53:48,110 algum tipo de arredondamento. 1103 00:53:51,410 --> 00:53:53,950 Mais alguma coisa? 1104 00:53:53,950 --> 00:53:55,200 Não tem que ser sobre arredondamento. 1105 00:54:00,886 --> 00:54:01,374 LEXI ROSS: Sim? 1106 00:54:01,374 --> 00:54:03,814 >> AUDIÊNCIA: Se quiser verificar para ver se o estilo do nosso 1107 00:54:03,814 --> 00:54:06,285 código é adequado ou o melhor estilo 1108 00:54:06,285 --> 00:54:08,585 que pode ser, é que o tipo de coisa que traria em 1109 00:54:08,585 --> 00:54:11,460 seção, ou em horário de expediente, ou isso é o tipo de coisa 1110 00:54:11,460 --> 00:54:15,582 podemos postar privada sobre a coisa, em discussão, e depois 1111 00:54:15,582 --> 00:54:17,280 pedir conselhos sobre? 1112 00:54:17,280 --> 00:54:20,400 LEXI ROSS: Então nós não, no horário de expediente ou em CS50 1113 00:54:20,400 --> 00:54:23,510 Discutir, nós realmente não vai conjunto p grau o seu com antecedência 1114 00:54:23,510 --> 00:54:26,420 para o estilo, mas eu acho que provavelmente a mais útil 1115 00:54:26,420 --> 00:54:29,800 coisa que você poderia fazer seria olhar para exemplos, e você 1116 00:54:29,800 --> 00:54:35,290 deve ser capaz de descobrir que, em código de secção, a qual deve ser 1117 00:54:35,290 --> 00:54:39,290 linha distribuída, bem como as lâminas de aula, há 1118 00:54:39,290 --> 00:54:40,730 devem ser exemplos de código. 1119 00:54:40,730 --> 00:54:43,150 Mas se você tiver dúvidas individuais sobre um certo 1120 00:54:43,150 --> 00:54:46,300 questão de estilo, definitivamente, não hesite em pedir que a CS50 1121 00:54:46,300 --> 00:54:49,320 Discutir, e as horas de expediente, ou no seu próprio tempo. 1122 00:54:49,320 --> 00:54:52,330 Mas se é mais uma olhada geral no meu código, é melhor 1123 00:54:52,330 --> 00:54:55,610 tipo de exemplos de uso e tentar encaixar o seu código para isso. 1124 00:54:55,610 --> 00:54:57,560 E eu acredito que há um guia de estilo em - 1125 00:54:57,560 --> 00:54:58,640 Dan Bradley: Há o guia de estilo. 1126 00:54:58,640 --> 00:54:59,830 O guia de estilo é incrível. 1127 00:54:59,830 --> 00:55:03,670 Ela ensina-lhe tudo o que precisa, e cobre muito 1128 00:55:03,670 --> 00:55:07,710 muito cada exemplo que o homem conhece, ou pelo menos conhecido para mim. 1129 00:55:10,750 --> 00:55:12,000 >> Mais alguma coisa? 1130 00:55:14,830 --> 00:55:15,275 Tudo bem. 1131 00:55:15,275 --> 00:55:15,840 Cool, rapazes. 1132 00:55:15,840 --> 00:55:16,440 LEXI ROSS: Tenha um ótimo dia. 1133 00:55:16,440 --> 00:55:17,690 Dan Bradley: Obrigado por ter vindo.