1 00:00:00,000 --> 00:00:07,170 2 00:00:07,170 --> 00:00:09,100 >> LUCAS FREITAS: OK, eu acho agora estamos ao vivo. 3 00:00:09,100 --> 00:00:11,220 Bem-vindo ao CS50 Supersection. 4 00:00:11,220 --> 00:00:12,880 Estamos menos confortável. 5 00:00:12,880 --> 00:00:13,870 Meu nome é Lucas Freitas. 6 00:00:13,870 --> 00:00:16,230 Sou um CS50 Cabeça TFs. 7 00:00:16,230 --> 00:00:17,523 Este é Lauren. 8 00:00:17,523 --> 00:00:19,002 >> LAUREN CARVALHO: Oi, eu sou Lauren. 9 00:00:19,002 --> 00:00:21,330 Eu também sou chefe TF para CS50. 10 00:00:21,330 --> 00:00:24,730 >> LUCAS FREITAS: Hoje nós apenas estamos indo para dar uma visão geral de tudo o que você 11 00:00:24,730 --> 00:00:28,440 caras aprenderam em uma semana, espero que para dar a vocês uma boa 12 00:00:28,440 --> 00:00:32,580 sentido para o que você deve saber para definir um problema. 13 00:00:32,580 --> 00:00:34,120 >> Anúncios apenas um casal. 14 00:00:34,120 --> 00:00:36,490 Primeiro de tudo, o horário de expediente. 15 00:00:36,490 --> 00:00:41,580 Horário de atendimento estão acontecendo de segunda-feira a quinta-feira em diferentes casas em 16 00:00:41,580 --> 00:00:43,450 Annenberg cada dia. 17 00:00:43,450 --> 00:00:46,680 Eles são um recurso muito bom para você caras que estão por vir e fazer perguntas, e 18 00:00:46,680 --> 00:00:49,470 falar com TFs e até troca idéias com outros alunos. 19 00:00:49,470 --> 00:00:55,420 Então não se esqueça de usar esse recurso em seu favor. 20 00:00:55,420 --> 00:00:59,790 >> A segunda coisa é o CS50 Appliance. 21 00:00:59,790 --> 00:01:01,390 Para o último [inaudível] 22 00:01:01,390 --> 00:01:04,180 Vocês não tem que realmente ter um aparelho. 23 00:01:04,180 --> 00:01:06,910 Você acabou de fazer tudo em seu computador pessoal. 24 00:01:06,910 --> 00:01:10,330 Mas para este problema, você realmente tem ter uma máquina virtual, por isso não 25 00:01:10,330 --> 00:01:14,680 Certifique-se de baixar o CS50 Appliance e configurá-lo. 26 00:01:14,680 --> 00:01:18,670 >> E a terceira coisa é ter a certeza de iniciar o conjunto de problemas o mais rápido possível apenas 27 00:01:18,670 --> 00:01:22,740 porque é muito mais fácil encontrar ajudar quando você está no 28 00:01:22,740 --> 00:01:23,730 no início da semana. 29 00:01:23,730 --> 00:01:27,540 Porque as pessoas tendem a esperar até que o último segundo para iniciar o conjunto de problemas, 30 00:01:27,540 --> 00:01:29,730 e, em seguida, você vai para o horário de expediente, e há um monte de gente. 31 00:01:29,730 --> 00:01:33,020 Onde se você ir na segunda-feira, você vai para ver que você pode falar para TFS 32 00:01:33,020 --> 00:01:35,870 praticamente durante toda a noite, e eles vão ser mais do que 33 00:01:35,870 --> 00:01:37,790 prazer em ajudá-lo. 34 00:01:37,790 --> 00:01:40,720 >> LAUREN CARVALHO: Posso parar por apenas um segundo? 35 00:01:40,720 --> 00:01:43,330 Toda a gente foi capaz de baixar o CS50 Appliance? 36 00:01:43,330 --> 00:01:44,255 As pessoas têm tentado? 37 00:01:44,255 --> 00:01:47,120 >> LUCAS FREITAS: Para baixar, pelo forma, você pode obter instruções de 38 00:01:47,120 --> 00:01:48,045 cs50.net/appliance. 39 00:01:48,045 --> 00:01:48,817 >> LAUREN CARVALHO: Certo. 40 00:01:48,817 --> 00:01:53,120 E ele faz demorar um pouco para o nosso administradores de sistemas para que você obtenha uma licença 41 00:01:53,120 --> 00:01:55,450 chave, de modo que se inscrever para o avaliação gratuita em primeiro lugar. 42 00:01:55,450 --> 00:01:59,080 Dessa forma, você vai tê-lo por 30 dias, e depois esperar por sua chave de licença 43 00:01:59,080 --> 00:02:02,650 que deve dar-lhe a você por um ano. 44 00:02:02,650 --> 00:02:04,100 >> LUCAS FREITAS: Primeiro de tudo, vamos falar um pouco 45 00:02:04,100 --> 00:02:06,180 sobre o CS50 Appliance. 46 00:02:06,180 --> 00:02:10,770 O CS50 Appliance é realmente um virtuais máquina que você vai 47 00:02:10,770 --> 00:02:15,040 executado em seu próprio computador, que é basicamente executando outro computador 48 00:02:15,040 --> 00:02:16,010 dentro de seu próprio computador. 49 00:02:16,010 --> 00:02:16,800 O que é muito legal. 50 00:02:16,800 --> 00:02:19,420 E, na verdade, ele é usado em todos os lugares. 51 00:02:19,420 --> 00:02:23,150 As pessoas que a tecnologia iria saber que isto é usado o tempo todo. 52 00:02:23,150 --> 00:02:23,250 você? 53 00:02:23,250 --> 00:02:26,200 Pode ter vários computadores em um único dispositivo. 54 00:02:26,200 --> 00:02:27,760 >> Vamos realmente dar uma olhada no Appliance. 55 00:02:27,760 --> 00:02:32,680 56 00:02:32,680 --> 00:02:36,640 Quando você vai para o aparelho após registrar, você vai ter que 57 00:02:36,640 --> 00:02:42,035 colocar o seu nome e login para Harvard de modo que você pode obter todos os cadastrados. 58 00:02:42,035 --> 00:02:46,570 Você vai ver basicamente apenas um papel de parede, e, em seguida, Home and Trash, 59 00:02:46,570 --> 00:02:48,980 e, em seguida, esses pequenos ícones. 60 00:02:48,980 --> 00:02:51,930 Este três ícones são realmente o mais coisas importantes que você pode ter em 61 00:02:51,930 --> 00:02:53,000 O seu aparelho. 62 00:02:53,000 --> 00:03:00,270 >> O primeiro é o gedit, que é um texto editor, como o bloco de notas ou como 63 00:03:00,270 --> 00:03:01,440 qualquer tipo de editor de texto. 64 00:03:01,440 --> 00:03:09,750 É apenas algo que usamos para escrever código e, em seguida, fazer coisas com ele. 65 00:03:09,750 --> 00:03:11,770 >> A segunda coisa que nós temos aqui é Chrome. 66 00:03:11,770 --> 00:03:13,910 Então, se você precisar usar a internet no aparelho, que é 67 00:03:13,910 --> 00:03:15,030 o que você pode usar. 68 00:03:15,030 --> 00:03:22,000 >> E a terceira coisa é o terminal, que é realmente muito doce. 69 00:03:22,000 --> 00:03:26,420 As pessoas geralmente são uma espécie de medo de o terminal, porque é este mesmo 70 00:03:26,420 --> 00:03:32,320 aplicação à moda antiga, em que você basicamente só digitar tudo com 71 00:03:32,320 --> 00:03:32,940 seu teclado. 72 00:03:32,940 --> 00:03:34,730 Não há muita interação com o mouse. 73 00:03:34,730 --> 00:03:39,780 Mas, na verdade, o terminal faz coisas muito boas. 74 00:03:39,780 --> 00:03:43,990 >> Primeiro de tudo, vamos apenas passar por alguns comandos que você 75 00:03:43,990 --> 00:03:48,765 pode utilizar no terminal. 76 00:03:48,765 --> 00:03:51,995 >> LAUREN CARVALHO: E sinta-se livre para parar nos se você tiver alguma dúvida. 77 00:03:51,995 --> 00:03:52,830 >> LUCAS FREITAS: Yeah. 78 00:03:52,830 --> 00:04:01,950 Assim, o primeiro comando que temos para o terminal é ls. 79 00:04:01,950 --> 00:04:06,450 ls significa, basicamente, lista tudo, tudo os arquivos e todos os diretores, 80 00:04:06,450 --> 00:04:09,540 que eu tenho no lugar que eu estou em. 81 00:04:09,540 --> 00:04:15,200 Então, se eu fizer ls aqui, eu vou ver que eu tenho alguns diretórios. 82 00:04:15,200 --> 00:04:18,670 Eu tenho o desktop, as transferências, os registos e os vhosts. 83 00:04:18,670 --> 00:04:21,260 Essas são em azul, porque eles são todos os diretórios. 84 00:04:21,260 --> 00:04:24,160 >> Então você tem alguns outros arquivos. 85 00:04:24,160 --> 00:04:27,840 Você tem como Olá e hello.c, que são apenas arquivos, e eles estão em 86 00:04:27,840 --> 00:04:28,910 cores diferentes. 87 00:04:28,910 --> 00:04:33,960 Portanto, este é um comando muito importante apenas você pode ver quais são os arquivos 88 00:04:33,960 --> 00:04:37,690 e diretórios que você tem no diretório que 89 00:04:37,690 --> 00:04:39,410 você está no terminal. 90 00:04:39,410 --> 00:04:44,580 Quando você vê jharvard @ aparelho e em seguida, o pequeno símbolo de lá, o 91 00:04:44,580 --> 00:04:49,185 til, isso apenas significa que essa é a diretório que você está no momento. 92 00:04:49,185 --> 00:04:52,970 >> LAUREN CARVALHO: Então digitando ls é quase como clicar na pasta 93 00:04:52,970 --> 00:04:57,380 que está listado ali mesmo, na Mostra você todo o conteúdo que estão 94 00:04:57,380 --> 00:04:58,886 dentro dessa pasta. 95 00:04:58,886 --> 00:05:04,232 >> AUDIÊNCIA: Existe texto após o ola.c? 96 00:05:04,232 --> 00:05:10,070 >> LAUREN CARVALHO: Ah, você não pode ver isso, porque é azul. 97 00:05:10,070 --> 00:05:12,490 >> LUCAS FREITAS: Diz toras e VHosts. 98 00:05:12,490 --> 00:05:14,450 >> LAUREN CARVALHO: Esses são apenas outras pastas. 99 00:05:14,450 --> 00:05:16,890 Sinto muito, é realmente difícil de ver. 100 00:05:16,890 --> 00:05:19,090 Talvez se apagou as luzes? 101 00:05:19,090 --> 00:05:23,002 Colton, você quer tentar e encontrar o interruptor de luz? 102 00:05:23,002 --> 00:05:24,960 Desculpe por isso. 103 00:05:24,960 --> 00:05:25,675 Eu não penso nisso. 104 00:05:25,675 --> 00:05:27,340 >> LUCAS FREITAS: Mas é basicamente - 105 00:05:27,340 --> 00:05:30,310 sim, se pudesse - 106 00:05:30,310 --> 00:05:32,278 >> LAUREN CARVALHO: Zoom em sua tela. 107 00:05:32,278 --> 00:05:34,738 >> LUCAS FREITAS: Eu não têm essa característica. 108 00:05:34,738 --> 00:05:35,988 >> LAUREN CARVALHO: [inaudível]. 109 00:05:35,988 --> 00:05:39,528 110 00:05:39,528 --> 00:05:40,001 OK. 111 00:05:40,001 --> 00:05:44,270 Bem, há apenas um monte de recursos naturais luz nesta sala também. 112 00:05:44,270 --> 00:05:48,726 >> LUCAS FREITAS: Vamos supor que há dois outros diretórios lá. 113 00:05:48,726 --> 00:05:49,780 >> LAUREN CARVALHO: Basta ter connosco. 114 00:05:49,780 --> 00:05:54,200 Esta é a única parte que você vai estar a olhar para o terminal. 115 00:05:54,200 --> 00:06:00,160 >> LUCAS FREITAS: O próximo comando é basicamente talvez você queira organizar 116 00:06:00,160 --> 00:06:01,080 seus arquivos - 117 00:06:01,080 --> 00:06:05,015 por exemplo, todos os seus arquivos em um C diretório, mas você não tem um 118 00:06:05,015 --> 00:06:07,180 diretório apenas para arquivos C ainda. 119 00:06:07,180 --> 00:06:11,590 Basicamente você pode criar um diretório utilizando o terminal, bem como, o que é 120 00:06:11,590 --> 00:06:15,670 a mesma coisa que o botão direito e dizendo Nova Pasta. 121 00:06:15,670 --> 00:06:20,640 O comando é fazer diretório, que é mkdir, então basicamente "fazer" e 122 00:06:20,640 --> 00:06:21,260 "Diretório". 123 00:06:21,260 --> 00:06:22,680 >> E então você pode colocar o nome do diretório. 124 00:06:22,680 --> 00:06:32,490 Vamos dizer que eu queria ser chamado, Eu não sei, vamos dizer pset1 Fazer 125 00:06:32,490 --> 00:06:33,900 isso, acabei de criar um diretório. 126 00:06:33,900 --> 00:06:35,910 Vamos verificar se ele está lá. 127 00:06:35,910 --> 00:06:40,870 Então, se eu fizer ls, e agora vejo logs e então pset1 e VHosts. 128 00:06:40,870 --> 00:06:44,360 Então, eu tenho o novo diretório lá. 129 00:06:44,360 --> 00:06:46,670 >> E, depois que você tem um novo diretório, talvez você deseja navegar 130 00:06:46,670 --> 00:06:51,760 para ele, para que o próximo comando deste cd, que apenas significa, basicamente, ir a um 131 00:06:51,760 --> 00:06:53,400 diretório específico. 132 00:06:53,400 --> 00:06:58,377 Então, se eu quiser ir para pset1, Eu posso apenas fazer cd pset1. 133 00:06:58,377 --> 00:07:01,550 >> LAUREN CARVALHO: cd significa mudança diretório, [inaudível] capaz de 134 00:07:01,550 --> 00:07:02,230 lembre-se que. 135 00:07:02,230 --> 00:07:05,460 >> LUCAS FREITAS: E agora você vê que em vez de apenas ter jharvard 136 00:07:05,460 --> 00:07:09,150 aparelho, tenho jharvard aparelho, e depois pset1, porque está mostrando 137 00:07:09,150 --> 00:07:14,150 me onde estou neste computador. 138 00:07:14,150 --> 00:07:17,510 >> Agora, se eu quiser voltar para a diretório que foi antes de este, eu 139 00:07:17,510 --> 00:07:22,950 pode fazer um ponto cd ponto, o que significa apenas ir para o diretório que eu era antes, 140 00:07:22,950 --> 00:07:26,290 como o pai deste diretório, basicamente. 141 00:07:26,290 --> 00:07:30,460 E agora eu vejo que eu sou volta para jharvard. 142 00:07:30,460 --> 00:07:36,050 >> A próxima coisa que eu posso fazer isso é rm, que é remover o arquivo. 143 00:07:36,050 --> 00:07:39,590 Por exemplo, vamos primeiro fazer ls para ver o que eu tenho aqui. 144 00:07:39,590 --> 00:07:41,790 Tenho Olá e hello.c. 145 00:07:41,790 --> 00:07:43,780 Vamos dizer que eu queira removê-los. 146 00:07:43,780 --> 00:07:48,280 Eu posso fazer rm Olá. 147 00:07:48,280 --> 00:07:52,770 Vai dizer "remover arquivo regular Olá? "E eu digo" sim ". E agora, se eu 148 00:07:52,770 --> 00:07:56,410 ls fazer, eu vejo que é não está mais lá. 149 00:07:56,410 --> 00:07:59,700 >> Se eu tentar usar rm para um diretório, porém, isso não vai 150 00:07:59,700 --> 00:08:00,800 para deixá-lo fazer qualquer coisa. 151 00:08:00,800 --> 00:08:02,960 Vai dizer, hey, você Não é possível remover um diretório. 152 00:08:02,960 --> 00:08:08,100 Portanto, temos esta outra vir chamado rmdir, que apenas significa, basicamente, 153 00:08:08,100 --> 00:08:09,800 remover o diretório. 154 00:08:09,800 --> 00:08:12,842 Posso, por exemplo, remover pset1. 155 00:08:12,842 --> 00:08:15,770 E se eu fizer ls, eu não tem mais. 156 00:08:15,770 --> 00:08:18,430 >> Qualquer dúvida sobre isso? 157 00:08:18,430 --> 00:08:20,200 Não? 158 00:08:20,200 --> 00:08:20,595 Sim? 159 00:08:20,595 --> 00:08:23,954 >> AUDIÊNCIA: É importante que você deixe um espaço depois - sempre que 160 00:08:23,954 --> 00:08:26,540 começar a escrever algo em? 161 00:08:26,540 --> 00:08:26,830 >> LUCAS FREITAS: Yeah. 162 00:08:26,830 --> 00:08:32,080 Se eu fizer como CD eo diretório, Eu tenho que colocar um espaço. 163 00:08:32,080 --> 00:08:33,350 O espaço que você está falando? 164 00:08:33,350 --> 00:08:34,979 >> LAUREN CARVALHO: O espaço entre cd e [inaudível]. 165 00:08:34,979 --> 00:08:37,710 >> LUCAS FREITAS: Sim, você vai ter que colocar os espaços porque é o cd 166 00:08:37,710 --> 00:08:42,770 comando e, em seguida, a próxima seqüência que você tipo é basicamente o diretório. 167 00:08:42,770 --> 00:08:45,020 Então, é como um argumento. 168 00:08:45,020 --> 00:08:45,360 Sim? 169 00:08:45,360 --> 00:08:47,952 >> AUDIÊNCIA: Quando você lista, todos aqueles são diretórios diferentes, certo? 170 00:08:47,952 --> 00:08:50,125 >> LUCAS FREITAS: Sim, eles estão no diretório. 171 00:08:50,125 --> 00:08:53,524 >> AUDIÊNCIA: Qual é a diferença entre os diretórios? 172 00:08:53,524 --> 00:08:55,390 >> LUCAS FREITAS: Eles são apenas diferentes pastas. 173 00:08:55,390 --> 00:08:57,366 Diretório é uma pasta em seu computador. 174 00:08:57,366 --> 00:08:58,120 >> AUDIÊNCIA: Abrir pasta. 175 00:08:58,120 --> 00:09:00,140 >> LUCAS FREITAS: Sim, é apenas uma pasta aberta. 176 00:09:00,140 --> 00:09:03,400 >> LAUREN CARVALHO: aqui, os que estão em azul são reais 177 00:09:03,400 --> 00:09:07,107 diretórios que você pode entrar e em seguida, ver um monte de coisas que são 178 00:09:07,107 --> 00:09:10,248 dentro disso, o que é lamentável porque você não pode ler o 179 00:09:10,248 --> 00:09:11,290 aqueles em azul. 180 00:09:11,290 --> 00:09:16,166 E os em branco são apenas arquivos que estão dentro do diretório atual. 181 00:09:16,166 --> 00:09:17,870 >> LUCAS FREITAS: Então diretórios são pastas. 182 00:09:17,870 --> 00:09:18,810 Os outros são arquivos. 183 00:09:18,810 --> 00:09:22,810 >> AUDIÊNCIA: Qual é o comando para redefini-la ou para limpá-la? 184 00:09:22,810 --> 00:09:23,650 LUCAS FREITAS: Para limpar? 185 00:09:23,650 --> 00:09:24,362 LAUREN CARVALHO: Para limpar? 186 00:09:24,362 --> 00:09:27,985 LUCAS FREITAS: Eu acho que que é "clara". É. 187 00:09:27,985 --> 00:09:32,370 Então você acabou de digitar claro se sua tela é muito bagunçado. 188 00:09:32,370 --> 00:09:33,700 Alguma outra pergunta? 189 00:09:33,700 --> 00:09:36,720 E você vai aprender um monte de outras comandos apenas naturalmente durante o 190 00:09:36,720 --> 00:09:38,405 semestre, porque eles são muito úteis. 191 00:09:38,405 --> 00:09:42,380 192 00:09:42,380 --> 00:09:46,155 >> Então, agora vamos falar sobre a compilação. 193 00:09:46,155 --> 00:09:51,510 194 00:09:51,510 --> 00:09:54,730 Nós conversamos sobre pseudocódigo e código-fonte e código-objeto. 195 00:09:54,730 --> 00:09:59,020 E há um monte de códigos, e talvez Vocês estão confusos sobre isso. 196 00:09:59,020 --> 00:10:02,190 Vamos falar um pouco sobre o que acontece quando você está escrevendo um programa, 197 00:10:02,190 --> 00:10:06,620 e você compilá-lo, e torna-se um arquivo executável. 198 00:10:06,620 --> 00:10:10,190 Essas são todas as palavras que vocês provavelmente já ouviu falar, e talvez você não esteja 199 00:10:10,190 --> 00:10:12,130 realmente certo o que está acontecendo. 200 00:10:12,130 --> 00:10:15,540 >> Digamos, por exemplo, que eu quero escrever um programa que diz "Olá". O 201 00:10:15,540 --> 00:10:19,670 primeira coisa que vem em sua mente é você meio que tentar pensar em como você está 202 00:10:19,670 --> 00:10:23,000 vai fazer isso em sua mente, e provavelmente você está pensando em Inglês ou 203 00:10:23,000 --> 00:10:25,550 outra língua, como naturais língua, provavelmente. 204 00:10:25,550 --> 00:10:28,770 E então você pensa, bem, se eu quiser, por exemplo, escrever um programa que 205 00:10:28,770 --> 00:10:32,630 diz "Olá", eu iria iniciar um programa, Vou imprimir Olá, e então eu vou 206 00:10:32,630 --> 00:10:35,270 sair do programa. 207 00:10:35,270 --> 00:10:36,350 Este é pseudocódigo. 208 00:10:36,350 --> 00:10:41,740 Isto é basicamente só você está tentando chegar a uma seqüência de eventos 209 00:10:41,740 --> 00:10:46,510 que você vai fazer para ser capaz de escrever um programa. 210 00:10:46,510 --> 00:10:49,610 >> Então você tem o código-fonte, e o código de fonte não precisa 211 00:10:49,610 --> 00:10:53,240 ser especificamente em C. Estamos falando sobre o código-fonte em C, porque isso é 212 00:10:53,240 --> 00:10:56,760 a língua que está aprendendo, mas é claro código pode ser praticamente qualquer 213 00:10:56,760 --> 00:10:59,160 linguagem de programação que você tem. 214 00:10:59,160 --> 00:11:01,230 Mais tarde, no semestre, você vai para aprender outros idiomas. 215 00:11:01,230 --> 00:11:03,230 Isso é também o código-fonte. 216 00:11:03,230 --> 00:11:07,380 >> Por exemplo, aqui, esta é a minha fonte código, e então eu estou incluindo um 217 00:11:07,380 --> 00:11:10,170 biblioteca, e então eu começo principal, e, em seguida, imprimir. 218 00:11:10,170 --> 00:11:14,510 E Laura vai falar um pouco pouco sobre tudo isso. 219 00:11:14,510 --> 00:11:16,190 Portanto, este é o código fonte. 220 00:11:16,190 --> 00:11:19,590 >> E o que é o código de objeto? 221 00:11:19,590 --> 00:11:22,500 O objeto é um monte de zeros e queridos, basicamente. 222 00:11:22,500 --> 00:11:27,680 O que acontece é que você tem inicialmente pseudocódigo, que é tudo em Inglês. 223 00:11:27,680 --> 00:11:29,020 E eu quero dizer, você entende isso. 224 00:11:29,020 --> 00:11:31,260 Provavelmente seus amigos entender lo, ea maioria das pessoas 225 00:11:31,260 --> 00:11:32,560 entender a idéia. 226 00:11:32,560 --> 00:11:36,770 Mas os computadores são realmente mudo, e eles não entendem Inglês, então você 227 00:11:36,770 --> 00:11:41,320 ter traduzir isso em alguma coisa, geralmente traduzido em alguns 228 00:11:41,320 --> 00:11:42,460 linguagem de programação. 229 00:11:42,460 --> 00:11:46,840 >> E você pode pensar em uma programação linguagem como como uma espécie de linguagem 230 00:11:46,840 --> 00:11:50,970 que informe o seu computador como de falar e de entender. 231 00:11:50,970 --> 00:11:54,160 Você está basicamente escrevendo algo em uma linguagem que ambos você e seu 232 00:11:54,160 --> 00:11:55,190 computador entende. 233 00:11:55,190 --> 00:11:56,470 Esse é o código fonte. 234 00:11:56,470 --> 00:12:00,580 Então, indo forma pseudocódigo a fonte código, é até você. 235 00:12:00,580 --> 00:12:03,130 É basicamente você está fazendo o seu programa. 236 00:12:03,130 --> 00:12:06,740 >> Mas o problema é que o computador nem sequer 237 00:12:06,740 --> 00:12:08,360 entender a linguagem de programação. 238 00:12:08,360 --> 00:12:10,320 Ele não entende código fonte de todo. 239 00:12:10,320 --> 00:12:12,520 Na verdade, só entende zeros e uns. 240 00:12:12,520 --> 00:12:16,570 Então nós temos esta coisa muito mágica chamada um compilador, que basicamente é 241 00:12:16,570 --> 00:12:19,755 vai ser a fonte de chamada que você escreveu em uma linguagem tanto a você 242 00:12:19,755 --> 00:12:25,320 e seu computador falar, e agora você está vai transformar isso em 243 00:12:25,320 --> 00:12:26,270 zeros e uns. 244 00:12:26,270 --> 00:12:30,860 Então, basicamente o que o compilador faz é ele recebe o código fonte, neste caso C, 245 00:12:30,860 --> 00:12:34,100 ele vai transformá-lo em zeros e aqueles que o computador 246 00:12:34,100 --> 00:12:37,440 entende e pode fazer uma arquivo executável fora dele. 247 00:12:37,440 --> 00:12:40,900 >> Será que isso faz sentido? 248 00:12:40,900 --> 00:12:45,300 Você pode apenas pensar no compilador como algum tipo de tradutor que esteja 249 00:12:45,300 --> 00:12:50,280 ajudá-lo a explicar para o computador exatamente o que é suposto fazer. 250 00:12:50,280 --> 00:12:52,310 >> Mas como faço para compilar. 251 00:12:52,310 --> 00:12:59,680 Vamos voltar para o aparelho, e vamos dizer que eu estou fazendo esse programa. 252 00:12:59,680 --> 00:13:04,220 Primeiro vou criar um diretório aqui, e eu vou chamá-lo 253 00:13:04,220 --> 00:13:11,130 "Prática". Agora vou para navegar para o diretório, por isso, a prática cd. 254 00:13:11,130 --> 00:13:13,210 Agora eu estou dentro de prática. 255 00:13:13,210 --> 00:13:16,860 >> Agora eu quero começar gedit, então como é que eu faço isso? 256 00:13:16,860 --> 00:13:21,920 I ou pode clicar aqui, ou eu posso apenas literalmente digitar "gedit", e que vai 257 00:13:21,920 --> 00:13:24,290 para abrir para mim. 258 00:13:24,290 --> 00:13:28,100 >> Agora eu vou escrever o meu programa, de modo exatamente o que eu escrevi no slide. 259 00:13:28,100 --> 00:13:30,360 Estou declarando uma biblioteca. 260 00:13:30,360 --> 00:13:35,440 Estou fazendo int main, nula. 261 00:13:35,440 --> 00:13:39,180 E agora eu estou fazendo printf, Olá. 262 00:13:39,180 --> 00:13:46,530 263 00:13:46,530 --> 00:13:50,170 Agora estou indo para salvar este. 264 00:13:50,170 --> 00:13:53,665 Deixe-me colocar em prática, e Vou chamar essa hello.c. 265 00:13:53,665 --> 00:13:57,710 266 00:13:57,710 --> 00:13:59,590 Então, agora ele está salvo. 267 00:13:59,590 --> 00:14:03,250 >> Se eu quiser compilá-lo, eu realmente pode fazê-lo em dois lugares diferentes. 268 00:14:03,250 --> 00:14:07,090 Ou eu posso fazê-lo em uma janela de terminal, por isso esta grande, ou você pode 269 00:14:07,090 --> 00:14:09,860 usar gedit que realmente tem um janela de terminal aqui. 270 00:14:09,860 --> 00:14:17,890 Assim, você pode muito convenientemente apenas fazer seu código, e então você pode simplesmente digitar 271 00:14:17,890 --> 00:14:20,670 tudo o que aqui, e tentar compilá-lo. 272 00:14:20,670 --> 00:14:23,450 >> Então, como faço para compilar o código? 273 00:14:23,450 --> 00:14:27,495 A maneira mais fácil que temos é usando fazer, o que é uma função que 274 00:14:27,495 --> 00:14:29,590 vai, basicamente, a compilar o código. 275 00:14:29,590 --> 00:14:34,170 Você apenas tem que dizer fazer Olá, assim "Fazer" eo nome do programa. 276 00:14:34,170 --> 00:14:35,420 >> Opa. 277 00:14:35,420 --> 00:14:38,250 278 00:14:38,250 --> 00:14:39,280 Isso é estranho. 279 00:14:39,280 --> 00:14:41,738 >> LAUREN CARVALHO: Você pode [inaudível]? 280 00:14:41,738 --> 00:14:45,182 281 00:14:45,182 --> 00:14:45,990 >> LUCAS FREITAS: Desculpe. 282 00:14:45,990 --> 00:14:49,960 Eu não salvá-lo no diretório certo. 283 00:14:49,960 --> 00:14:52,130 Venha para a prática, e agora salvá-lo como hello.c. 284 00:14:52,130 --> 00:14:54,750 Sinto muito. 285 00:14:54,750 --> 00:14:56,250 Agora ele está salvo. 286 00:14:56,250 --> 00:14:58,300 >> Deixe-me só fazer ls e ser certeza de que ele está aqui. 287 00:14:58,300 --> 00:14:59,460 OK, agora é aqui. 288 00:14:59,460 --> 00:15:05,930 Portanto, agora se eu fizer Olá, ele cospe um monte de coisas, mas depois só dá 289 00:15:05,930 --> 00:15:08,870 me uma outra linha para o terminal, que significa que foi bem sucedida. 290 00:15:08,870 --> 00:15:13,160 Portanto, agora se eu fizer um ls novamente, eu realmente ver este arquivo em verde, que é a 291 00:15:13,160 --> 00:15:15,470 arquivo executável. 292 00:15:15,470 --> 00:15:21,700 >> E então se eu quiser para executá-lo, tudo o que Eu tenho que fazer é barra dot Olá. 293 00:15:21,700 --> 00:15:25,830 Vai dizer Olá bem aqui, então é exatamente o que eu estou pedindo a ele. 294 00:15:25,830 --> 00:15:29,620 >> Não é mais uma forma de compilar, que está usando bumbum. 295 00:15:29,620 --> 00:15:35,740 Clang é apenas um compilador que nós temos, e é um pouco mais detalhado para 296 00:15:35,740 --> 00:15:36,390 compilá-lo. 297 00:15:36,390 --> 00:15:40,180 Mas ele funciona muito bem. 298 00:15:40,180 --> 00:15:46,810 Então, se eu fizer bumbum, e depois-o, em seguida, o nome que eu quero dar para 299 00:15:46,810 --> 00:15:50,400 o arquivo executável, então vamos dizer que "Olá". E, em seguida, o arquivo que eu quero 300 00:15:50,400 --> 00:15:53,460 para compilar, hello.c. 301 00:15:53,460 --> 00:15:55,900 Ele também vai compilar. 302 00:15:55,900 --> 00:15:59,020 E você tem o arquivo aqui, e Eu posso apenas executá-lo também. 303 00:15:59,020 --> 00:16:00,610 Assim, ambos funcionam. 304 00:16:00,610 --> 00:16:03,270 >> Será que isso faz sentido? 305 00:16:03,270 --> 00:16:06,020 Alguma pergunta? 306 00:16:06,020 --> 00:16:09,020 >> AUDIÊNCIA: Você pode zoom daqui a pouco? 307 00:16:09,020 --> 00:16:09,913 >> LUCAS FREITAS: Desculpe? 308 00:16:09,913 --> 00:16:11,135 >> AUDIÊNCIA: Zoom in? 309 00:16:11,135 --> 00:16:13,310 >> LAUREN CARVALHO: Eu acho que você pode apenas comandar plus. 310 00:16:13,310 --> 00:16:14,295 >> LUCAS FREITAS: Comanda o quê? 311 00:16:14,295 --> 00:16:16,060 >> LAUREN CARVALHO: Command plus. 312 00:16:16,060 --> 00:16:17,000 >> LUCAS FREITAS: Não. 313 00:16:17,000 --> 00:16:19,350 >> LAUREN CARVALHO: Ah, isso não é indo para o trabalho, porque - 314 00:16:19,350 --> 00:16:25,548 é porque nós definir a resolução por isso. 315 00:16:25,548 --> 00:16:27,450 >> LUCAS FREITAS: Eu não acho que podemos zoom in 316 00:16:27,450 --> 00:16:30,852 317 00:16:30,852 --> 00:16:34,130 Sim, não podemos ampliar. 318 00:16:34,130 --> 00:16:36,200 Você tem outra pergunta? 319 00:16:36,200 --> 00:16:36,680 Desculpe. 320 00:16:36,680 --> 00:16:39,170 >> AUDIÊNCIA: Você pode repetir bumbum? 321 00:16:39,170 --> 00:16:40,630 >> LUCAS FREITAS: O bumbum? 322 00:16:40,630 --> 00:16:44,190 Clang é a mesma coisa que fazer, mas o diferença é que primeiro eu vou 323 00:16:44,190 --> 00:16:48,460 escrever tinido, que é o comando, então eu vou fazer -0, tudo, o que é 324 00:16:48,460 --> 00:16:51,680 apenas o que nós vamos aprender mais tarde, como uma bandeira. 325 00:16:51,680 --> 00:16:54,440 Então, só acho que você sempre tem que colocar-o. 326 00:16:54,440 --> 00:16:58,690 >> E então, em primeiro lugar, você vai colocar o nome do arquivo executável, 327 00:16:58,690 --> 00:17:00,680 basicamente o arquivo que você está vai criar. 328 00:17:00,680 --> 00:17:06,430 Então eu posso dizer, por exemplo, e hello2 em seguida, o arquivo que eu quero para compilar, 329 00:17:06,430 --> 00:17:07,800 que é o arquivo c.. 330 00:17:07,800 --> 00:17:09,240 Então, isso é hello.c. 331 00:17:09,240 --> 00:17:10,871 Será que isso faz sentido? 332 00:17:10,871 --> 00:17:12,635 >> AUDIÊNCIA: Olá quê? 333 00:17:12,635 --> 00:17:13,076 O que é isso? 334 00:17:13,076 --> 00:17:15,960 >> LUCAS FREITAS: Hello.c. 335 00:17:15,960 --> 00:17:19,849 E se eu compilá-lo, e se Eu ls, eu também tenho um 336 00:17:19,849 --> 00:17:22,010 hello2 que eu só compilado. 337 00:17:22,010 --> 00:17:26,339 E se eu tentar executá-lo, ele vai fazer exatamente a mesma coisa que Olá, 338 00:17:26,339 --> 00:17:27,089 basta imprimir Olá. 339 00:17:27,089 --> 00:17:31,660 >> AUDIÊNCIA: Como é para o make você pode colocar hello.c depois? 340 00:17:31,660 --> 00:17:33,880 >> LUCAS FREITAS: No make, você não tem que colocar o. c. 341 00:17:33,880 --> 00:17:36,140 No make, você acabou de dizer o nome do programa. 342 00:17:36,140 --> 00:17:37,750 Você não tem que dizer. C. 343 00:17:37,750 --> 00:17:39,020 Mas para bumbum, você deve. 344 00:17:39,020 --> 00:17:44,040 >> AUDIÊNCIA: Com clang você também tem que adicionar o [inaudível] 345 00:17:44,040 --> 00:17:44,480 >> LAUREN CARVALHO: Yeah. 346 00:17:44,480 --> 00:17:46,180 Então, você também tem que biblioteca. 347 00:17:46,180 --> 00:17:51,170 >> LUCAS FREITAS: Sim, isso é algo vamos usar mais tarde. 348 00:17:51,170 --> 00:17:54,850 Isso é chamado de ligação, e eu acho que nós somos vamos falar sobre isso mais tarde. 349 00:17:54,850 --> 00:17:55,930 Outra pergunta? 350 00:17:55,930 --> 00:17:59,927 >> AUDIÊNCIA: Você coloca um tinido barra dot? 351 00:17:59,927 --> 00:18:01,060 >> LUCAS FREITAS: Não. 352 00:18:01,060 --> 00:18:06,040 A barra de ponto é apenas para abrir o arquivo executável. 353 00:18:06,040 --> 00:18:09,440 Então bumbum, você acabou de escrever "bumbum", e então o se você deseja abrir o 354 00:18:09,440 --> 00:18:12,640 arquivo executável que você acabou de compilado, então você dot 355 00:18:12,640 --> 00:18:13,780 corte e do nome. 356 00:18:13,780 --> 00:18:15,100 Será que isso faz sentido? 357 00:18:15,100 --> 00:18:18,635 358 00:18:18,635 --> 00:18:22,435 >> AUDIÊNCIA: Se você fosse apenas mudança [Inaudível] para Olá mundo, não é 359 00:18:22,435 --> 00:18:23,870 tem que recompilar? 360 00:18:23,870 --> 00:18:24,750 >> LUCAS FREITAS: Yeah. 361 00:18:24,750 --> 00:18:36,650 se eu quero dizer, por exemplo ", Olá lá, "Eu só pode salvá-lo agora, e eu 362 00:18:36,650 --> 00:18:38,020 apenas compilá-lo novamente. 363 00:18:38,020 --> 00:18:41,910 Então deixe-me fazer um make Olá. 364 00:18:41,910 --> 00:18:48,490 E se eu fizer Olá, ele vai dizer "Olá". Faz sentido? 365 00:18:48,490 --> 00:18:50,280 Alguma outra pergunta? 366 00:18:50,280 --> 00:18:54,384 >> AUDIÊNCIA: Você tem de incluir o padrão I / O para coordenar o trabalho? 367 00:18:54,384 --> 00:18:55,480 >> LUCAS FREITAS: Yeah. 368 00:18:55,480 --> 00:18:58,050 O padrão de I / O é basicamente a biblioteca que tem um 369 00:18:58,050 --> 00:19:00,050 implementação de printf. 370 00:19:00,050 --> 00:19:03,450 371 00:19:03,450 --> 00:19:06,910 Assim que coisa certa no superior inclui stdio. 372 00:19:06,910 --> 00:19:11,920 Isso é, incluindo uma biblioteca basicamente tem um monte de diferente 373 00:19:11,920 --> 00:19:13,260 ferramentas que você pode usar. 374 00:19:13,260 --> 00:19:13,480 um? 375 00:19:13,480 --> 00:19:17,820 Deles é que printf é uma função que, basicamente, impressão 376 00:19:17,820 --> 00:19:21,290 mensagens na tela. 377 00:19:21,290 --> 00:19:23,200 >> Alguma outra pergunta? 378 00:19:23,200 --> 00:19:24,700 Não? 379 00:19:24,700 --> 00:19:25,060 OK. 380 00:19:25,060 --> 00:19:31,620 Então, agora vamos falar sobre - 381 00:19:31,620 --> 00:19:33,948 >> LAUREN CARVALHO: Vamos apenas ir para o guia de estilo. 382 00:19:33,948 --> 00:19:35,896 Você quer apenas encontrá-lo aqui? 383 00:19:35,896 --> 00:19:37,880 >> LUCAS FREITAS: Então nós vamos para falar sobre o estilo. 384 00:19:37,880 --> 00:19:47,006 385 00:19:47,006 --> 00:19:50,430 >> LAUREN CARVALHO: Oh, David não terminou. 386 00:19:50,430 --> 00:19:51,230 OK. 387 00:19:51,230 --> 00:19:53,870 Por que não vamos voltar a estilo bem no final? 388 00:19:53,870 --> 00:19:56,220 Tem sido realmente atualizada enquanto falamos. 389 00:19:56,220 --> 00:19:56,810 >> LUCAS FREITAS: Yeah. 390 00:19:56,810 --> 00:19:58,300 Vamos caminho para David para concluir isso. 391 00:19:58,300 --> 00:20:07,150 392 00:20:07,150 --> 00:20:08,600 >> LAUREN CARVALHO: Pode vamos mudar de fato? 393 00:20:08,600 --> 00:20:14,920 394 00:20:14,920 --> 00:20:17,200 >> Então, eu espero que todos tem sido desfrutando de risco. 395 00:20:17,200 --> 00:20:21,950 Infelizmente, é hora de afastar-se dessa - 396 00:20:21,950 --> 00:20:25,280 infelizmente é hora de se afastar a partir desses blocos de programação bonitas 397 00:20:25,280 --> 00:20:28,530 para C. Mas, felizmente, todo o programação constrói que você tem 398 00:20:28,530 --> 00:20:32,370 vindo a trabalhar com em Scratch são diretamente traduzíveis para C, e estamos 399 00:20:32,370 --> 00:20:35,130 vai começar a aprender sobre alguns deles agora. 400 00:20:35,130 --> 00:20:39,200 Vamos primeiro falar sobre as condições de em expressões booleanas. 401 00:20:39,200 --> 00:20:41,944 >> Este está sendo executado em reserva energia da bateria. 402 00:20:41,944 --> 00:20:43,912 >> LUCAS FREITAS: Como é que não está funcionando? 403 00:20:43,912 --> 00:20:47,850 404 00:20:47,850 --> 00:20:48,010 OK. 405 00:20:48,010 --> 00:20:50,256 Você vai lá, eu estou indo para obter o - 406 00:20:50,256 --> 00:20:53,700 407 00:20:53,700 --> 00:20:57,390 >> LAUREN CARVALHO: Então, as condições são importantes porque nos permitem 408 00:20:57,390 --> 00:21:00,588 introduzir lógica em nossos programas. 409 00:21:00,588 --> 00:21:04,620 Aqui está um exemplo de uma condição dentro de um programa C. 410 00:21:04,620 --> 00:21:06,130 Vamos observar como este - 411 00:21:06,130 --> 00:21:11,324 Portanto, esta condição bloco aqui, este instrução printf não executará 412 00:21:11,324 --> 00:21:14,860 a menos que a condição dentro do parênteses, n maior do que 0, 413 00:21:14,860 --> 00:21:16,800 avaliada como verdadeira. 414 00:21:16,800 --> 00:21:20,780 >> Agora, todas as condições dentro f declarações são expressões booleanas 415 00:21:20,780 --> 00:21:22,970 o que significa que há são apenas duas opções. 416 00:21:22,970 --> 00:21:26,856 Eles nem poderia avaliar a verdade, ou eles podem avaliar como falsa. 417 00:21:26,856 --> 00:21:33,174 Então, aqui, o que faz sentido, certo? n maior que 0, significa que ele é um positivo 418 00:21:33,174 --> 00:21:41,160 número, o que significa que ele imprime out "você escolheu um número positivo." 419 00:21:41,160 --> 00:21:44,630 >> Há muitas expressões booleanas que pode formar o estado de uma 420 00:21:44,630 --> 00:21:47,190 declaração de inicialização. 421 00:21:47,190 --> 00:21:48,520 Temos a menos de. 422 00:21:48,520 --> 00:21:50,950 Isto é menos do que ou igual a. 423 00:21:50,950 --> 00:21:52,200 Este é apenas um engraçado [inaudível]. 424 00:21:52,200 --> 00:21:54,800 425 00:21:54,800 --> 00:22:01,630 Se quiser que o printf a ocorrer se for maior do que ou igual a 0, então 426 00:22:01,630 --> 00:22:03,345 você escolheria isso. 427 00:22:03,345 --> 00:22:07,750 Assim, a igualdade só acrescenta direita após o sinal de maior que. 428 00:22:07,750 --> 00:22:12,030 >> Igual igual, o que é diferente do apenas um sinal de igual, igual igual 429 00:22:12,030 --> 00:22:16,430 na verdade, significa que tudo o que de no lado esquerdo desta é o mesmo que 430 00:22:16,430 --> 00:22:20,610 o que está no lado direito desta onde um sinal de igual é o quê? 431 00:22:20,610 --> 00:22:23,333 O que é apenas um sinal de igualdade? 432 00:22:23,333 --> 00:22:24,275 Cessão. 433 00:22:24,275 --> 00:22:25,985 >> LUCAS FREITAS: Quem disse isso? 434 00:22:25,985 --> 00:22:27,170 Isso é doce? 435 00:22:27,170 --> 00:22:27,370 Oh, não. 436 00:22:27,370 --> 00:22:27,885 Desculpe. 437 00:22:27,885 --> 00:22:28,210 Desculpe. 438 00:22:28,210 --> 00:22:30,400 Você quer chegar doces. 439 00:22:30,400 --> 00:22:31,510 Oh, OK! 440 00:22:31,510 --> 00:22:33,046 Três pessoas ficam doces! 441 00:22:33,046 --> 00:22:37,393 >> LAUREN CARVALHO: Então este aqui é o operador estrondo anterior 442 00:22:37,393 --> 00:22:40,240 o sinal de igual, o que é não igual. 443 00:22:40,240 --> 00:22:46,560 Então, se isso foi dentro do meu estado, o corpo da condição seria 444 00:22:46,560 --> 00:22:49,615 executar somente se o que estiver em a esquerda não é o mesmo que 445 00:22:49,615 --> 00:22:52,540 o que está no lado direito. 446 00:22:52,540 --> 00:22:57,680 >> Eu também posso ter apenas o ponto de exclamação. 447 00:22:57,680 --> 00:23:01,250 Na verdade, vamos ver em um recurso deslizar como isso seria usado. 448 00:23:01,250 --> 00:23:03,830 >> LUCAS FREITAS: Alguma pergunta? 449 00:23:03,830 --> 00:23:06,450 Não? 450 00:23:06,450 --> 00:23:10,460 >> LAUREN CARVALHO: Nós podemos combiná-las Expressões booleanas para a construção de mais 451 00:23:10,460 --> 00:23:12,500 instruções condicionais complicados. 452 00:23:12,500 --> 00:23:19,680 Então, aqui, se o que estiver à esquerda lado das barras duplas ou 453 00:23:19,680 --> 00:23:23,160 tudo o que está no lado direito da as barras duplas avaliada como verdadeira, 454 00:23:23,160 --> 00:23:25,700 então vamos imprimir inválido. 455 00:23:25,700 --> 00:23:29,503 E então, aqui em baixo, se qualquer de no lado esquerdo dos dois 456 00:23:29,503 --> 00:23:33,480 ampersands e qualquer de à direita lado dos dois e comercial 457 00:23:33,480 --> 00:23:37,470 avaliada como verdadeira, então vamos imprimir válido. 458 00:23:37,470 --> 00:23:42,195 As barras duplas são chamadas de lógica Operador OR os ampersands duplos são 459 00:23:42,195 --> 00:23:44,190 chamado o operador lógico AND. 460 00:23:44,190 --> 00:23:44,648 Sim? 461 00:23:44,648 --> 00:23:47,850 >> AUDIÊNCIA: São aqueles apenas minúsculas l's? 462 00:23:47,850 --> 00:23:48,620 >> LAUREN CARVALHO: Não. 463 00:23:48,620 --> 00:23:50,890 Eles são, na verdade - 464 00:23:50,890 --> 00:23:55,134 você sabe a reação, como acima de sua tecla Return? 465 00:23:55,134 --> 00:23:56,585 Você vê isso? 466 00:23:56,585 --> 00:23:57,940 >> LUCAS FREITAS: É realmente um bar. 467 00:23:57,940 --> 00:24:02,100 >> LAUREN CARVALHO: É, na verdade, apenas dois bares. 468 00:24:02,100 --> 00:24:05,724 >> AUDIÊNCIA: Você pode usar o igual para igual cordas? 469 00:24:05,724 --> 00:24:07,000 >> LUCAS FREITAS: Não. 470 00:24:07,000 --> 00:24:09,130 Nós vamos aprender mais tarde algo sobre isso. 471 00:24:09,130 --> 00:24:10,735 >> LAUREN CARVALHO: Há uma função que você pode usar. 472 00:24:10,735 --> 00:24:12,644 Mas você não tem que preocupam-se que apenas ainda. 473 00:24:12,644 --> 00:24:15,530 474 00:24:15,530 --> 00:24:18,270 >> E se eu dar a este programa o número 5? 475 00:24:18,270 --> 00:24:20,850 O que irá imprimir? 476 00:24:20,850 --> 00:24:22,100 >> AUDIÊNCIA: [inaudível] 477 00:24:22,100 --> 00:24:27,780 478 00:24:27,780 --> 00:24:28,275 válido. 479 00:24:28,275 --> 00:24:29,770 >> LAUREN CARVALHO: Válido? 480 00:24:29,770 --> 00:24:30,135 É. 481 00:24:30,135 --> 00:24:34,092 Eu não sei quem começou isso. 482 00:24:34,092 --> 00:24:35,036 >> [Risos] 483 00:24:35,036 --> 00:24:37,990 >> LAUREN CARVALHO: Isso é meio assustador [inaudível]. 484 00:24:37,990 --> 00:24:40,900 >> AUDIÊNCIA: Então o casal e, isso apenas significa que e? 485 00:24:40,900 --> 00:24:41,740 >> LAUREN CARVALHO: Yeah. 486 00:24:41,740 --> 00:24:46,160 Assim, o número 5 é tanto maior do que 0 e menor do que 100. 487 00:24:46,160 --> 00:24:48,970 >> AUDIÊNCIA: Por que seria um? 488 00:24:48,970 --> 00:24:51,350 >> LAUREN CARVALHO: um comercial é realmente algo diferente, e é 489 00:24:51,350 --> 00:24:53,390 um operador bit a bit, o que você vai aprender sobre mais tarde. 490 00:24:53,390 --> 00:24:58,250 Mas é algo que realmente funciona com os bits de um determinado número. 491 00:24:58,250 --> 00:25:00,872 >> LUCAS FREITAS: Só acho que eles não tem que se preocupar com isso por enquanto. 492 00:25:00,872 --> 00:25:04,590 >> LAUREN CARVALHO: Eu acho que é, provavelmente, chegando na próxima semana. 493 00:25:04,590 --> 00:25:06,420 >> LUCAS FREITAS: Alguma outra pergunta? 494 00:25:06,420 --> 00:25:07,990 Não? 495 00:25:07,990 --> 00:25:12,480 >> LAUREN CARVALHO: Então nós vimos que um ele bloquear pode ficar sozinho, mas pode 496 00:25:12,480 --> 00:25:15,370 também ser combinado com outra pessoa e bloco. 497 00:25:15,370 --> 00:25:18,880 Portanto, neste caso, se n for maior do que 0, vamos imprimir "Você 498 00:25:18,880 --> 00:25:23,855 escolheu um número positivo. "else, ou seja, se for 0 ou se é menos 499 00:25:23,855 --> 00:25:27,170 que 0, vamos imprimir, "Você escolheu um número negativo." 500 00:25:27,170 --> 00:25:30,390 >> O interessante aqui é que estes são exclusivas uma da outra. 501 00:25:30,390 --> 00:25:33,940 Nunca vai ser um caso em que esta e esta 502 00:25:33,940 --> 00:25:35,544 tanto pode imprimir. 503 00:25:35,544 --> 00:25:38,190 504 00:25:38,190 --> 00:25:41,030 >> Tenho certeza que você trabalhou com o if / else caixa em risco, por isso deve ser 505 00:25:41,030 --> 00:25:42,392 bastante familiar. 506 00:25:42,392 --> 00:25:42,874 Sim? 507 00:25:42,874 --> 00:25:48,522 >> AUDIÊNCIA: Será que precisamos de espaço entre Cont n igual GetInt então no espaço 508 00:25:48,522 --> 00:25:49,460 if? 509 00:25:49,460 --> 00:25:51,565 Como usamos uma linha de [inaudível] 510 00:25:51,565 --> 00:25:52,790 >> LAUREN CARVALHO: Ah, o espaço aqui? 511 00:25:52,790 --> 00:25:56,742 >> AUDIÊNCIA: Como aquele, mas o dobro do espaço. 512 00:25:56,742 --> 00:25:58,718 Não, ir para cima. 513 00:25:58,718 --> 00:25:59,706 Sobe. 514 00:25:59,706 --> 00:26:00,610 >> LUCAS FREITAS: Apenas a linha? 515 00:26:00,610 --> 00:26:01,140 >> AUDIÊNCIA: Yeah. 516 00:26:01,140 --> 00:26:02,870 >> LUCAS FREITAS: Apenas a linha em branco? 517 00:26:02,870 --> 00:26:03,270 >> AUDIÊNCIA: Yeah. 518 00:26:03,270 --> 00:26:04,070 >> LAUREN CARVALHO: Linha em branco? 519 00:26:04,070 --> 00:26:04,470 Não. 520 00:26:04,470 --> 00:26:06,320 Isso é apenas uma coisa estilística. 521 00:26:06,320 --> 00:26:09,360 >> LUCAS FREITAS: É como às vezes você acabou de pular algumas linhas assim 522 00:26:09,360 --> 00:26:12,330 que o código não se parece com um enorme bloco de texto. 523 00:26:12,330 --> 00:26:15,800 >> LAUREN CARVALHO: Eu acho que o que aconteceu era que tínhamos um comentário aqui, mas eu 524 00:26:15,800 --> 00:26:18,220 levou-o para fora de modo que vocês teriam para pensar sobre o código, em vez 525 00:26:18,220 --> 00:26:19,920 do que apenas ler o meu comentário. 526 00:26:19,920 --> 00:26:24,170 Em geral, o espaçamento não vai realmente afectar a forma como o programa é executado. 527 00:26:24,170 --> 00:26:26,070 É mais uma coisa estilística. 528 00:26:26,070 --> 00:26:29,460 E quando temos a guia de estilo atualizado e pronto para ir até o final de 529 00:26:29,460 --> 00:26:33,260 supersection, vamos falar sobre isso mais. 530 00:26:33,260 --> 00:26:34,660 >> Há algo de errado com este programa, certo? 531 00:26:34,660 --> 00:26:38,980 Porque 0 não é realmente um número negativo. 532 00:26:38,980 --> 00:26:40,270 Então, vamos ver se podemos resolver isso. 533 00:26:40,270 --> 00:26:45,710 534 00:26:45,710 --> 00:26:48,370 >> Você provavelmente pode imaginar com isso, diz, certo? 535 00:26:48,370 --> 00:26:52,850 Se n for maior que 0, nós imprimimos ", Você escolheu um número positivo. "Então mais 536 00:26:52,850 --> 00:26:57,340 se n for menor que 0 ", você escolheu um número negativo. "else:" Você pegou 537 00:26:57,340 --> 00:27:01,040 0. " 538 00:27:01,040 --> 00:27:06,030 >> Agora, o interessante é que isso pode durar para sempre. 539 00:27:06,030 --> 00:27:10,020 Você pode ter um bloco if, else if um bloco, outro bloco else if, else if, 540 00:27:10,020 --> 00:27:14,790 else if, else if, else, basicamente contanto que você quiser. 541 00:27:14,790 --> 00:27:17,110 E quando construído como este, estes são todos que vão ser 542 00:27:17,110 --> 00:27:19,206 exclusiva de cada outro. 543 00:27:19,206 --> 00:27:19,650 Sim? 544 00:27:19,650 --> 00:27:24,130 >> AUDIÊNCIA: Então, por que você não pode apenas usar outro, se em vez de [inaudível]? 545 00:27:24,130 --> 00:27:26,990 >> LAUREN CARVALHO: Neste caso, sim eu poderia utilizar outro se, e seria 546 00:27:26,990 --> 00:27:29,190 absolutamente bem, porque o condições em si são 547 00:27:29,190 --> 00:27:30,600 exclusiva de cada outro. 548 00:27:30,600 --> 00:27:33,560 Mas, se as condições não foram exclusivos uns dos outros, isto iria 549 00:27:33,560 --> 00:27:37,596 forçá-los a nunca tanto avaliar, se isso faz sentido. 550 00:27:37,596 --> 00:27:44,195 >> AUDIÊNCIA: Nesse caso, poderíamos ninho o segundo, se no primeiro caso? 551 00:27:44,195 --> 00:27:46,160 >> LAUREN CARVALHO: Se - o que você quer dizer? 552 00:27:46,160 --> 00:27:49,660 >> AUDIÊNCIA: Se as duas condições não são mutuamente excludentes? 553 00:27:49,660 --> 00:27:54,700 >> LAUREN CARVALHO: Se as condições não são mutuamente excludentes? 554 00:27:54,700 --> 00:27:58,000 Mas você quer apenas um deles para correr? 555 00:27:58,000 --> 00:28:00,260 >> AUDIÊNCIA: Você quer apenas se em vez de outra pessoa. 556 00:28:00,260 --> 00:28:01,020 >> LAUREN CARVALHO: Yeah. 557 00:28:01,020 --> 00:28:03,630 Há sempre vai ser lotes de maneiras que você pode fazer isso. 558 00:28:03,630 --> 00:28:06,600 Você pode definitivamente ninho deles. 559 00:28:06,600 --> 00:28:10,390 E você vai ver em um futuro slide que você pode ter vários ifs, apenas um 560 00:28:10,390 --> 00:28:11,680 após o outro. 561 00:28:11,680 --> 00:28:14,840 Mas esta é uma maneira de logicamente organizar o fluxo de seu programa. 562 00:28:14,840 --> 00:28:18,000 >> LUCAS FREITAS: E há mais uma coisa, é que você perguntou sobre a colocação de 563 00:28:18,000 --> 00:28:20,110 se e, em seguida, uma outra se. 564 00:28:20,110 --> 00:28:25,240 Isso funciona perfeitamente, mas é ruim projeto, porque, basicamente, se você 565 00:28:25,240 --> 00:28:29,320 verifique primeiro se, e você percebe que o número é maior que 0, é 566 00:28:29,320 --> 00:28:30,660 pode simplesmente terminar o programa. 567 00:28:30,660 --> 00:28:33,080 Você não tem que verificar se é menor do que 0, certo? 568 00:28:33,080 --> 00:28:37,510 >> Mas se você se se, ele vai verificar ambos, enquanto que, se eu faço se outra pessoa é, 569 00:28:37,510 --> 00:28:39,260 ele vai verificar se que é maior do que 0. 570 00:28:39,260 --> 00:28:43,500 Se for, ele não vai sequer olhar nas outras linhas do código. 571 00:28:43,500 --> 00:28:48,560 Então você está basicamente verificando-lo como duas vezes desnecessariamente, então é por isso que 572 00:28:48,560 --> 00:28:50,750 fazer se else if. 573 00:28:50,750 --> 00:28:52,350 Alguma outra pergunta? 574 00:28:52,350 --> 00:28:56,547 >> AUDIÊNCIA: Então a funcionalidade do outro, se é o mesmo que 575 00:28:56,547 --> 00:28:57,790 se fosse apenas se? 576 00:28:57,790 --> 00:28:58,470 >> LAUREN CARVALHO: Não. 577 00:28:58,470 --> 00:29:02,720 Você está realmente indo para ver no meu próximo deslizar um exemplo em que ele pode 578 00:29:02,720 --> 00:29:03,270 ser diferente. 579 00:29:03,270 --> 00:29:05,690 Neste caso, é quase o mesmo. 580 00:29:05,690 --> 00:29:10,190 581 00:29:10,190 --> 00:29:15,410 >> Então, aqui, nós temos um exemplo de múltipla if, eo 582 00:29:15,410 --> 00:29:20,020 funcionalidade não é a mesma como se eu tivesse acabado de dizer se 583 00:29:20,020 --> 00:29:23,120 mais, se mais, se outra coisa. 584 00:29:23,120 --> 00:29:26,970 Vamos pensar sobre o que iria imprimir se eu digitar o número 95 585 00:29:26,970 --> 00:29:27,715 para este programa. 586 00:29:27,715 --> 00:29:29,764 >> AUDIÊNCIA: [inaudível] 587 00:29:29,764 --> 00:29:31,102 >> LAUREN CARVALHO: E então? 588 00:29:31,102 --> 00:29:32,340 >> AUDIÊNCIA: [inaudível] 589 00:29:32,340 --> 00:29:33,680 >> LAUREN CARVALHO: Yeah. 590 00:29:33,680 --> 00:29:37,430 Portanto, neste caso, essas condições são não excluem mutuamente um do outro. 591 00:29:37,430 --> 00:29:41,040 E porque não há nada que impeça essa condição de avaliar se esta 592 00:29:41,040 --> 00:29:44,730 um já tem, eles são apenas tudo vai imprimir. 593 00:29:44,730 --> 00:29:46,222 Então como eu poderia resolver isso? 594 00:29:46,222 --> 00:29:47,608 >> AUDIÊNCIA: else ifs? 595 00:29:47,608 --> 00:29:48,910 >> LAUREN CARVALHO: Você pode usar else ifs. 596 00:29:48,910 --> 00:29:50,590 Eu poderia mudar a ordem desses, certo? 597 00:29:50,590 --> 00:29:53,800 Se eu fiz isso primeiro? 598 00:29:53,800 --> 00:29:55,120 Bem, na verdade, não. 599 00:29:55,120 --> 00:29:57,100 Isso não funcionaria por 95. 600 00:29:57,100 --> 00:29:58,490 >> LUCAS FREITAS: Não, apenas os else ifs. 601 00:29:58,490 --> 00:30:01,720 >> LAUREN CARVALHO: O else ifs teria fixado isso. 602 00:30:01,720 --> 00:30:07,050 Será que esclarecer a confusão entre ifs e mais ifs? 603 00:30:07,050 --> 00:30:11,480 >> AUDIÊNCIA: Eu só queria te perguntar, se Usou else if, que iria parar? 604 00:30:11,480 --> 00:30:11,840 >> LAUREN CARVALHO: Certo. 605 00:30:11,840 --> 00:30:13,330 Então, só que desta primeira. 606 00:30:13,330 --> 00:30:16,535 Se eu digitar o número 95, só que desta teria impresso, e nunca 607 00:30:16,535 --> 00:30:17,934 teria progredido para o resto. 608 00:30:17,934 --> 00:30:22,570 >> LUCAS FREITAS: Apenas tipo de pensar lo como se isso acontecer, faça isso. 609 00:30:22,570 --> 00:30:26,990 O resto é como se não, cheque para isso, e, em seguida, fazer isso. 610 00:30:26,990 --> 00:30:28,690 Então, como eles são todos mutuamente exclusivo. 611 00:30:28,690 --> 00:30:30,270 Você não pode entrar em dois sobre aqueles. 612 00:30:30,270 --> 00:30:32,800 613 00:30:32,800 --> 00:30:37,630 >> AUDIÊNCIA: Você pode usar uma lógica E para essa situação? 614 00:30:37,630 --> 00:30:39,370 >> LAUREN CARVALHO: Yeah. 615 00:30:39,370 --> 00:30:41,400 Essa é outra maneira que pudéssemos ter corrigido este problema. 616 00:30:41,400 --> 00:30:43,470 Estamos poderia ter definido varia, certo? 617 00:30:43,470 --> 00:30:49,410 Então, eu poderia ter dito, se n é maior do que 90 e menos do que - 618 00:30:49,410 --> 00:30:52,135 bem, eu acho que isso não faz muito importa, mas aqui eu poderia ter dito se 619 00:30:52,135 --> 00:30:53,960 n é superior a 80 e inferior a 90. 620 00:30:53,960 --> 00:30:55,570 Mais do que 70, menos do que 80. 621 00:30:55,570 --> 00:30:59,077 Isso também teria funcionado. 622 00:30:59,077 --> 00:30:59,891 >> [Risos] 623 00:30:59,891 --> 00:31:00,980 >> LUCAS FREITAS: Ela está com medo. 624 00:31:00,980 --> 00:31:02,070 >> LAUREN CARVALHO: Não tenha medo. 625 00:31:02,070 --> 00:31:04,570 >> LUCAS FREITAS: Não é que estará errada. 626 00:31:04,570 --> 00:31:08,630 É que é desnecessariamente detalhado. 627 00:31:08,630 --> 00:31:13,480 Como em ciência da computação, deve-se ser tão simples quanto possível contanto 628 00:31:13,480 --> 00:31:14,730 você tem a funcionalidade. 629 00:31:14,730 --> 00:31:16,725 630 00:31:16,725 --> 00:31:17,835 Você quer o doce? 631 00:31:17,835 --> 00:31:19,084 >> AUDIÊNCIA: Não precisa. 632 00:31:19,084 --> 00:31:20,340 >> LAUREN CARVALHO: Você está assustando todos, Lucas. 633 00:31:20,340 --> 00:31:21,590 >> LUCAS FREITAS: Desculpe. 634 00:31:21,590 --> 00:31:24,650 635 00:31:24,650 --> 00:31:29,510 >> LAUREN CARVALHO: David também mencionou estes instrução switch em sala de aula. 636 00:31:29,510 --> 00:31:33,180 Basicamente o que está acontecendo é o interruptor declaração leva uma variável. 637 00:31:33,180 --> 00:31:35,760 Neste caso, nós estamos levando um número inteiro. 638 00:31:35,760 --> 00:31:39,220 >> Se o inteiro for 1, vamos imprimir ", você escolheu uma pequena 639 00:31:39,220 --> 00:31:42,000 número. "Se o inteiro é 1," Você escolheu um número médio. "Se o 640 00:31:42,000 --> 00:31:45,730 inteiro é 3 ", você escolheu um alto número. "E eu também tinha um caso padrão 641 00:31:45,730 --> 00:31:50,020 aqui em baixo, mas ele não está mostrando se, o que é muito ruim. 642 00:31:50,020 --> 00:31:53,120 643 00:31:53,120 --> 00:31:55,360 >> Basicamente, este é apenas outra sintaxe. 644 00:31:55,360 --> 00:31:58,640 Poderíamos ter implementado este exato mesma coisa com o caso e else if 645 00:31:58,640 --> 00:31:59,390 declarações. 646 00:31:59,390 --> 00:32:05,530 Mas quando há muitos diferente condições e os lotes de diferentes 647 00:32:05,530 --> 00:32:10,350 variações sobre o que você quer fazer para cada entrada, esta é uma opção. 648 00:32:10,350 --> 00:32:13,262 Por isso, é apenas uma boa sintaxe saber. 649 00:32:13,262 --> 00:32:15,099 Sim? 650 00:32:15,099 --> 00:32:21,380 >> AUDIÊNCIA: Por que não há uma barra invertida n na primeira? 651 00:32:21,380 --> 00:32:23,340 >> LAUREN CARVALHO: Para lá em cima? 652 00:32:23,340 --> 00:32:27,600 Não há nenhuma barra invertida n lá em cima porque o GetInt - 653 00:32:27,600 --> 00:32:30,140 se você tentar fazer isso, ele vai dar-lhe esta pergunta. 654 00:32:30,140 --> 00:32:32,290 Dê-me um número inteiro entre 1 e 3. 655 00:32:32,290 --> 00:32:35,550 E se eu colocar a reação n, seria leve-me para a próxima linha, mas eu só 656 00:32:35,550 --> 00:32:38,690 queria que eles digite o número inteiro logo após os dois pontos. 657 00:32:38,690 --> 00:32:40,120 Você poderia ter colocado a reação n. 658 00:32:40,120 --> 00:32:42,374 Não é um grande negócio. 659 00:32:42,374 --> 00:32:43,288 Sim? 660 00:32:43,288 --> 00:32:50,525 >> AUDIÊNCIA: Para este código, é este caso, é que por causa 661 00:32:50,525 --> 00:32:51,760 é o primeiro caso? 662 00:32:51,760 --> 00:32:52,260 Porque - 663 00:32:52,260 --> 00:32:53,400 >> LAUREN CARVALHO: Não, não, não. 664 00:32:53,400 --> 00:32:56,480 Portanto, esta é me dar um inteiro entre 1 e 3. 665 00:32:56,480 --> 00:32:59,070 Se n é 1, imprimo isso. 666 00:32:59,070 --> 00:33:02,740 Se eu tivesse perguntado para as cartas, eu poderia ter disse me dê uma letra entre A 667 00:33:02,740 --> 00:33:04,935 e C. Então, isso seria caso A. 668 00:33:04,935 --> 00:33:05,910 >> AUDIÊNCIA: [inaudível]. 669 00:33:05,910 --> 00:33:08,090 O caso seria apenas [inaudível] 670 00:33:08,090 --> 00:33:11,260 >> LAUREN CARVALHO: Sim, certo. 671 00:33:11,260 --> 00:33:11,550 Sim? 672 00:33:11,550 --> 00:33:14,861 >> AUDIÊNCIA: E se você queria ter mais de uma expressão relacional? 673 00:33:14,861 --> 00:33:17,645 Então, ao invés de dizer n igual a 1, [inaudível] 674 00:33:17,645 --> 00:33:21,050 n é superior a 1, no primeiro caso? 675 00:33:21,050 --> 00:33:26,630 >> LAUREN CARVALHO: Na verdade, se eu não fizer definir alguns destes casos, este seria 676 00:33:26,630 --> 00:33:28,500 ser levar para baixo. 677 00:33:28,500 --> 00:33:30,680 Então, na verdade, talvez isso não é o que você está pedindo. 678 00:33:30,680 --> 00:33:36,240 >> LUCAS FREITAS: Eu acho que ela está perguntando se caso n foi maior que 0, caso 679 00:33:36,240 --> 00:33:37,150 menos do que 0. 680 00:33:37,150 --> 00:33:39,210 >> LAUREN CARVALHO: Talvez o interruptor declaração não é realmente o que você quer 681 00:33:39,210 --> 00:33:39,880 para utilizar neste caso. 682 00:33:39,880 --> 00:33:42,420 >> LUCAS FREITAS: A instrução switch é Apenas para o valor, então você está verificando de 683 00:33:42,420 --> 00:33:45,370 o valor é como isso ou aquilo. 684 00:33:45,370 --> 00:33:47,025 Então você não pode realmente colocar condições. 685 00:33:47,025 --> 00:33:50,988 686 00:33:50,988 --> 00:33:55,920 >> AUDIÊNCIA: E se a pessoa tipos com [inaudível]? 687 00:33:55,920 --> 00:33:58,240 >> LAUREN CARVALHO: Isso teria sido meu caso padrão, que infelizmente 688 00:33:58,240 --> 00:33:58,910 você não pode ver. 689 00:33:58,910 --> 00:34:02,240 >> LUCAS FREITAS: [inaudível] fazê-los ver. 690 00:34:02,240 --> 00:34:03,690 >> LAUREN CARVALHO: Na verdade, Você sabe o que? 691 00:34:03,690 --> 00:34:07,795 Vamos apenas estudar 50, e eu vou apenas ampliar as lâminas sobre estudo 692 00:34:07,795 --> 00:34:10,610 50, porque este é apenas irritante. 693 00:34:10,610 --> 00:34:14,938 Então deixe-me realmente ir para estado. 694 00:34:14,938 --> 00:34:17,860 Isso só vai demorar um pouco. 695 00:34:17,860 --> 00:34:26,940 696 00:34:26,940 --> 00:34:27,840 >> Tudo bem. 697 00:34:27,840 --> 00:34:29,590 Então, eu sinto muito. 698 00:34:29,590 --> 00:34:33,625 Pelo menos agora nós vamos ser capazes de ver tudo sem ele cortando. 699 00:34:33,625 --> 00:34:36,230 700 00:34:36,230 --> 00:34:36,969 Tudo bem. 701 00:34:36,969 --> 00:34:43,800 >> Então, se eles colocaram em um 10, que seria padrão aqui ao meu caso padrão, e eu 702 00:34:43,800 --> 00:34:46,510 seria apenas imprimir inválido porque eu pediu-lhes para entrar um inteiro 703 00:34:46,510 --> 00:34:49,460 entre 1 e 3. 704 00:34:49,460 --> 00:34:50,650 Alguma outra pergunta? 705 00:34:50,650 --> 00:34:51,081 Sim? 706 00:34:51,081 --> 00:34:57,590 >> AUDIÊNCIA: Vamos dizer que para o caso de um, caso três, digamos que você queria que fosse todo o 707 00:34:57,590 --> 00:35:00,950 mesma coisa, então você escolheu um número isso não é um número médio. 708 00:35:00,950 --> 00:35:03,840 Nesse caso, seria redundante? 709 00:35:03,840 --> 00:35:08,371 Será que você apenas muda o texto em ambos os deles, ou haveria alguma 710 00:35:08,371 --> 00:35:08,617 redundância? 711 00:35:08,617 --> 00:35:11,920 Existe alguma maneira de combinar [Inaudível]? 712 00:35:11,920 --> 00:35:15,810 >> LAUREN CARVALHO: Há maneiras de combiná-los, mas eu acredito que você pode 713 00:35:15,810 --> 00:35:18,730 só combinar os adjacentes. 714 00:35:18,730 --> 00:35:22,250 Então, se eu não definir nada para o caso de dois, isso seria 715 00:35:22,250 --> 00:35:24,130 aplicam-se a ambos os casos. 716 00:35:24,130 --> 00:35:28,110 Oh, se eu não colocar qualquer coisa para o caso um, isso aplica-se tanto 717 00:35:28,110 --> 00:35:30,620 caso um e dois. 718 00:35:30,620 --> 00:35:33,616 Se isso faz sentido. 719 00:35:33,616 --> 00:35:35,872 >> AUDIÊNCIA: Você pode repetir esse? 720 00:35:35,872 --> 00:35:36,670 >> LUCAS FREITAS: OK. 721 00:35:36,670 --> 00:35:39,950 Se você fez, basicamente, como, você tem a mesma coisa, mas você não colocar 722 00:35:39,950 --> 00:35:46,820 qualquer coisa aqui, você seria tanto para caso um ou dois casos, fazer isso. 723 00:35:46,820 --> 00:35:47,930 Certo? 724 00:35:47,930 --> 00:35:54,010 E esta pausa significa que se você chegar neste caso, basta sair. 725 00:35:54,010 --> 00:35:55,030 Então é isso que o freio significa. 726 00:35:55,030 --> 00:35:59,755 Então, se eu só fiz isso, você olha, é caso um, e você teria apenas que fazer isso. 727 00:35:59,755 --> 00:36:02,110 Se fosse caso duas, que também faria apenas vir aqui e fazer isso. 728 00:36:02,110 --> 00:36:03,544 >> AUDIÊNCIA: Mas você pode fazê-lo? 729 00:36:03,544 --> 00:36:05,140 Se há algo para caso dois [inaudível] 730 00:36:05,140 --> 00:36:07,095 >> LAUREN CARVALHO: Eu não acredito você pode fazer isso. 731 00:36:07,095 --> 00:36:09,380 Eu não acho que você pode pular ao redor. 732 00:36:09,380 --> 00:36:11,070 Você pode fazer isso, Rob? 733 00:36:11,070 --> 00:36:13,300 Acho que não. 734 00:36:13,300 --> 00:36:16,548 >> AUDIÊNCIA: Então, apenas um número pode ir atrás de um caso, certo? 735 00:36:16,548 --> 00:36:21,410 Não pode haver um caso, vírgula, dois? 736 00:36:21,410 --> 00:36:21,970 >> LUCAS FREITAS: Não, você não pode. 737 00:36:21,970 --> 00:36:25,085 Você definitivamente não pode. 738 00:36:25,085 --> 00:36:28,770 >> LAUREN CARVALHO: Eu quero dizer, o ponto é esta é uma opção, e isso não pode 739 00:36:28,770 --> 00:36:31,940 se encaixam no seu caso de uso, por isso, então você usaria a se condições. 740 00:36:31,940 --> 00:36:33,906 >> AUDIÊNCIA: Então, por que você faria isso? 741 00:36:33,906 --> 00:36:34,314 O switch? 742 00:36:34,314 --> 00:36:38,540 >> LAUREN CARVALHO: Eu usaria esse Se você tem muito definido - 743 00:36:38,540 --> 00:36:39,730 Na verdade, Lucas, é que você está bloqueando. 744 00:36:39,730 --> 00:36:40,982 >> LUCAS FREITAS: Oh, desculpe. 745 00:36:40,982 --> 00:36:44,200 >> LAUREN CARVALHO: Se você tem muito comportamentos definidos que você deseja para 746 00:36:44,200 --> 00:36:48,105 cada entrada, isso pode ser um pouco mais conciso do que escrever para fora 747 00:36:48,105 --> 00:36:49,530 uma instrução if para cada um. 748 00:36:49,530 --> 00:36:51,210 >> AUDIÊNCIA: O que faz o quebrar dizer de novo? 749 00:36:51,210 --> 00:36:53,180 >> LAUREN CARVALHO: A ruptura significa parar. 750 00:36:53,180 --> 00:36:56,860 Lembre-se, se eu não tivesse essa pausa aqui, teríamos acabado de cair para baixo 751 00:36:56,860 --> 00:36:58,110 para o caso seguinte. 752 00:36:58,110 --> 00:37:00,820 >> LUCAS FREITAS: Quebra significa para obter fora da instrução switch. 753 00:37:00,820 --> 00:37:03,400 Porque se é um, eu quero imprimir este e sair. 754 00:37:03,400 --> 00:37:04,640 Eu não quero para verificar qualquer outra coisa. 755 00:37:04,640 --> 00:37:05,790 >> AUDIÊNCIA: Você não quer imprimir mais nada. 756 00:37:05,790 --> 00:37:06,730 >> LUCAS FREITAS: Yeah. 757 00:37:06,730 --> 00:37:08,260 Porque é mutuamente exclusivos. 758 00:37:08,260 --> 00:37:11,378 >> AUDIÊNCIA: E será que isso só proceder para o caso seguinte, se o primeiro caso 759 00:37:11,378 --> 00:37:11,850 não é verdade? 760 00:37:11,850 --> 00:37:14,120 Ou será que testar todos os casos ao mesmo tempo? 761 00:37:14,120 --> 00:37:16,300 >> LUCAS FREITAS: Não, verifica sequencialmente. 762 00:37:16,300 --> 00:37:18,070 Sequencialmente, sim. 763 00:37:18,070 --> 00:37:21,840 Só mais uma pergunta, então nós temos que seguir em frente, para que possamos cobrir tudo. 764 00:37:21,840 --> 00:37:22,300 Sim? 765 00:37:22,300 --> 00:37:25,280 >> AUDIÊNCIA: Assim, para o caso, poderia ter feito algo além de apenas um? 766 00:37:25,280 --> 00:37:27,680 Você poderia dar-lhe um alcance? 767 00:37:27,680 --> 00:37:28,580 >> LUCAS FREITAS: Não. 768 00:37:28,580 --> 00:37:29,900 >> LAUREN CARVALHO: Eu não acho que você pode dar um intervalo. 769 00:37:29,900 --> 00:37:31,430 >> LUCAS FREITAS: Você não pode você não pode dar-lhe um intervalo. 770 00:37:31,430 --> 00:37:33,190 >> AUDIÊNCIA: O caso é específico [Inaudível]. 771 00:37:33,190 --> 00:37:34,840 >> LUCAS FREITAS: Mudar é uma espécie de valores. 772 00:37:34,840 --> 00:37:38,400 Você está fazendo coisas diferentes, dependendo em um valor, um valor específico. 773 00:37:38,400 --> 00:37:41,050 Você não pode fazer intervalo, você não pode fazer mais nada. 774 00:37:41,050 --> 00:37:43,055 É apenas mais uma ferramenta para ver. 775 00:37:43,055 --> 00:37:46,570 >> LAUREN CARVALHO: A maioria das pessoas não usam trocar declarações muito na CS50, 776 00:37:46,570 --> 00:37:48,760 mas está lá. 777 00:37:48,760 --> 00:37:49,920 >> Tudo bem. 778 00:37:49,920 --> 00:37:53,870 Portanto, a próxima coisa que vamos falar sobre o operador ternário. 779 00:37:53,870 --> 00:37:56,650 Este é apenas um outro tipo de condicional. 780 00:37:56,650 --> 00:38:01,460 Basicamente o que está acontecendo aqui é que eu sou pedindo um número inteiro, e, se n é 781 00:38:01,460 --> 00:38:05,550 superior a 100, eu estou indo para imprimir "Alto". Se não for, eu vou 782 00:38:05,550 --> 00:38:07,010 imprimir "baixo". 783 00:38:07,010 --> 00:38:11,230 >> Então o que ele está fazendo é a condição é aqui entre parênteses, e você 784 00:38:11,230 --> 00:38:13,550 pode tipo de pensar a questão como eu estou perguntando se 785 00:38:13,550 --> 00:38:15,030 isso é verdade ou não. 786 00:38:15,030 --> 00:38:18,485 Se for verdade, eu vou fazer isso primeiro coisa, e se isso não é verdade, eu sou 787 00:38:18,485 --> 00:38:20,020 vai fazer esta segunda coisa. 788 00:38:20,020 --> 00:38:23,520 789 00:38:23,520 --> 00:38:27,960 >> Qualquer dúvida sobre o operador ternário? 790 00:38:27,960 --> 00:38:30,880 >> LUCAS FREITAS: Só quero observar a partir de David é que sempre que você tem um 791 00:38:30,880 --> 00:38:33,346 condição - 792 00:38:33,346 --> 00:38:35,690 >> LAUREN CARVALHO: Eu acho que o David de assistindo através da transmissão ao vivo. 793 00:38:35,690 --> 00:38:37,210 >> LUCAS FREITAS: Ele está fazendo fluxo de vida agora. 794 00:38:37,210 --> 00:38:41,730 Assim, sempre que você tem uma condição, você é deveria colocar chaves, 795 00:38:41,730 --> 00:38:45,320 assim como nós temos em um interruptor declaração aqui. 796 00:38:45,320 --> 00:38:46,750 Temos chaves aqui. 797 00:38:46,750 --> 00:38:49,560 Para quaisquer condições, você está deveria também colocar isso. 798 00:38:49,560 --> 00:38:50,820 >> LAUREN CARVALHO: Você vai ver isso no guia de estilo. 799 00:38:50,820 --> 00:38:52,900 Nós realmente não tem o guia de estilo agora. 800 00:38:52,900 --> 00:38:53,930 Eu acho que David ainda está funcionando. 801 00:38:53,930 --> 00:38:55,100 >> LUCAS FREITAS: Ele disse que é só trabalhar agora. 802 00:38:55,100 --> 00:38:56,120 >> LAUREN CARVALHO: Ah, é trabalhando agora? 803 00:38:56,120 --> 00:38:57,520 OK. 804 00:38:57,520 --> 00:39:02,060 Então, aparentemente, este ano, no estilo guiar, mesmo se você tiver apenas uma linha, 805 00:39:02,060 --> 00:39:06,040 você tem que colocar os chaves pol 806 00:39:06,040 --> 00:39:09,480 Você não precisa necessariamente para o funcionalidade do programa. 807 00:39:09,480 --> 00:39:12,210 E talvez devêssemos fazer uma pausa depois as condições e ir direto 808 00:39:12,210 --> 00:39:14,620 com o guia de estilo para limpar algumas dessas coisas? 809 00:39:14,620 --> 00:39:15,010 >> LUCAS FREITAS: Yeah. 810 00:39:15,010 --> 00:39:15,775 Você tem uma pergunta? 811 00:39:15,775 --> 00:39:17,580 >> AUDIÊNCIA: Não, eu vou esperar até o guia de estilo. 812 00:39:17,580 --> 00:39:19,578 >> AUDIÊNCIA: Você poderia voltar ao operador ternário? 813 00:39:19,578 --> 00:39:23,360 >> LAUREN CARVALHO: ternário, sim. 814 00:39:23,360 --> 00:39:29,010 >> LUCAS FREITAS: Operador ternário é basicamente uma declaração se mais, mas 815 00:39:29,010 --> 00:39:33,590 em vez de ter que tem as duas linhas de verificar se um e depois o 816 00:39:33,590 --> 00:39:36,600 outra coisa, você só tem uma linha. 817 00:39:36,600 --> 00:39:40,930 Então, basicamente, se eu quiser dar uma string um valor de alta ou baixa, e I 818 00:39:40,930 --> 00:39:46,270 quer fazer um elevado se n for maior do que 100 ou baixo, se é menor, o que posso fazer 819 00:39:46,270 --> 00:39:47,730 é esse [inaudível] 820 00:39:47,730 --> 00:39:53,060 a corda vai ser, e então eu perguntar o programa é n maior que 100? 821 00:39:53,060 --> 00:39:55,750 >> Então é por isso que eu tenho essa expressão em parênteses e depois 822 00:39:55,750 --> 00:39:56,580 o ponto de interrogação. 823 00:39:56,580 --> 00:39:59,110 Eu estou pedindo é maior que 100? 824 00:39:59,110 --> 00:40:02,310 Se for, ele vai ser alto. 825 00:40:02,310 --> 00:40:03,850 Se não for, vai ser baixa. 826 00:40:03,850 --> 00:40:07,310 >> Então, basicamente, o que você acha que você perguntar uma pergunta, então você coloca entre parênteses 827 00:40:07,310 --> 00:40:08,620 a condição. 828 00:40:08,620 --> 00:40:11,160 Então você colocar o ponto de interrogação porque você está perguntando isso. 829 00:40:11,160 --> 00:40:15,240 E se isso for verdade, ele vai ser no primeiro valor [inaudível] aqui. 830 00:40:15,240 --> 00:40:18,176 Se não for, eu vou colocar o valor que é depois dos dois pontos. 831 00:40:18,176 --> 00:40:21,580 Será que faz sentido? 832 00:40:21,580 --> 00:40:24,730 >> É também algo que é como um ferramenta em C, mas você não tem que 833 00:40:24,730 --> 00:40:25,700 especificamente usá-lo. 834 00:40:25,700 --> 00:40:29,890 Mas as pessoas geralmente gostam de CS que porque ele só salva linhas. 835 00:40:29,890 --> 00:40:31,050 >> LAUREN CARVALHO: É muito elegante. 836 00:40:31,050 --> 00:40:32,951 Ele faz muito em apenas uma declaração. 837 00:40:32,951 --> 00:40:36,077 >> AUDIÊNCIA: Então o sinal de porcentagem é apenas independentemente dos resultados obtidos em 838 00:40:36,077 --> 00:40:36,799 a linha anterior? 839 00:40:36,799 --> 00:40:38,260 >> LAUREN CARVALHO: Oh, eu sinto muito. 840 00:40:38,260 --> 00:40:42,670 Este sinal de porcentagem é realmente um espaço reservado para este s. 841 00:40:42,670 --> 00:40:46,160 Em uma instrução printf, você tem esta corda aqui, que é o que vai 842 00:40:46,160 --> 00:40:48,440 imprimir, mas você não pode simplesmente colocar isso é lá dentro. 843 00:40:48,440 --> 00:40:50,290 Caso contrário, ele iria imprimir os s, literalmente. 844 00:40:50,290 --> 00:40:54,070 Então nós colocamos um por cento aqui para manter este lugar realizada por qualquer 845 00:40:54,070 --> 00:40:57,590 vem depois da vírgula. 846 00:40:57,590 --> 00:40:59,470 >> Assim, por uma corda, você tem cento s. 847 00:40:59,470 --> 00:41:00,950 Para um inteiro, por cento i. 848 00:41:00,950 --> 00:41:03,330 Para um float, por cento f. 849 00:41:03,330 --> 00:41:06,960 Você vai ver aqueles como nós ver mais exemplos. 850 00:41:06,960 --> 00:41:09,230 Mas talvez você devesse falar sobre o guia de estilo para um pouco de tempo, agora 851 00:41:09,230 --> 00:41:10,480 que é para cima. 852 00:41:10,480 --> 00:41:21,040 853 00:41:21,040 --> 00:41:24,010 >> LUCAS FREITAS: Se você vai para cs50.net/style, você vai ver 854 00:41:24,010 --> 00:41:25,760 o guia de estilo. 855 00:41:25,760 --> 00:41:32,420 Para conjuntos de problemas, a sua pontuação para o conjunto de problemas é composto por escopo, 856 00:41:32,420 --> 00:41:35,510 o que basicamente significa que se você fez tudo as partes do conjunto de problemas ou se você 857 00:41:35,510 --> 00:41:37,170 tentou alguma coisa. 858 00:41:37,170 --> 00:41:41,120 A segunda coisa é a correção, que meios é o seu programa fazendo o que 859 00:41:41,120 --> 00:41:44,520 deveria estar fazendo, ou não tem bugs, ou é não fazer o que 860 00:41:44,520 --> 00:41:45,620 que é suposto fazer. 861 00:41:45,620 --> 00:41:51,420 >> A terceira coisa é o projeto, o que significa Você está implementando esta bem, ou são 862 00:41:51,420 --> 00:41:54,520 Você está usando declarações desnecessárias? 863 00:41:54,520 --> 00:41:59,400 Assim, por exemplo, se você deseja repetir um número 10 vezes, você está escrevendo um 864 00:41:59,400 --> 00:42:03,040 loop ou você está apenas fazendo 10 vezes a mesma declaração, apenas fazendo 865 00:42:03,040 --> 00:42:04,060 copiar e colar. 866 00:42:04,060 --> 00:42:05,760 Assim projeto é para isso. 867 00:42:05,760 --> 00:42:07,420 >> E, finalmente, você tem estilo. 868 00:42:07,420 --> 00:42:12,000 Estilo é como julgar se o seu código é 869 00:42:12,000 --> 00:42:14,050 legível e tipo de bonito. 870 00:42:14,050 --> 00:42:16,520 Ela só significa basicamente é o seu código legível? 871 00:42:16,520 --> 00:42:20,560 Será que alguém que estava à procura são seu código ser capaz de entender o que 872 00:42:20,560 --> 00:42:21,250 que está fazendo? 873 00:42:21,250 --> 00:42:25,360 Será que ela tem comentários e assim por diante? 874 00:42:25,360 --> 00:42:30,430 >> Vamos falar sobre o estilo que você deveria usar. 875 00:42:30,430 --> 00:42:32,200 A primeira coisa é comentários. 876 00:42:32,200 --> 00:42:35,280 Comentários são muito importantes para o seu código, porque às vezes você está fazendo 877 00:42:35,280 --> 00:42:38,750 seu programa, e você sabe exatamente o que você quer fazer assim que você acabou de começar 878 00:42:38,750 --> 00:42:43,120 codificação, basta digitar um monte de C. Mas se alguém está olhando são você 879 00:42:43,120 --> 00:42:47,500 código, eles não vão ser capazes de compreendê-lo, porque eles não sabem 880 00:42:47,500 --> 00:42:51,420 as coisas que estão na sua cabeça, como o pesudocode, talvez por isso eles vão 881 00:42:51,420 --> 00:42:53,970 têm dificuldade de entender o que o código está fazendo. 882 00:42:53,970 --> 00:42:57,900 >> Assim comentários são realmente úteis para explicar para alguém que está olhando 883 00:42:57,900 --> 00:43:00,880 seu código o que está fazendo, e na verdade, até mesmo para você, 884 00:43:00,880 --> 00:43:01,880 eles são muito úteis. 885 00:43:01,880 --> 00:43:05,740 Como você vai para a Série de Exercícios mais duras e difíceis, você vai ver que o código fica 886 00:43:05,740 --> 00:43:10,590 mais longos, e, em seguida, os comentários são realmente importante para que você lembre-se que cada 887 00:43:10,590 --> 00:43:13,320 parte de seu programa faz. 888 00:43:13,320 --> 00:43:16,920 >> Para colocar um comentário, você pode apenas fazer uma slash slash e em seguida, escrever um comentário. 889 00:43:16,920 --> 00:43:21,250 E toda a linha é parte de um comentário, e tudo o que você escrever, 890 00:43:21,250 --> 00:43:24,550 não vai ser usado para o seu código. 891 00:43:24,550 --> 00:43:27,993 É basicamente como o compilador vai ignorar isso. 892 00:43:27,993 --> 00:43:29,290 Será que isso faz sentido? 893 00:43:29,290 --> 00:43:31,710 >> AUDIÊNCIA: O que você faz de novo para escrever um comentário? 894 00:43:31,710 --> 00:43:33,260 >> LUCAS FREITAS: Este? 895 00:43:33,260 --> 00:43:36,020 A barra barra? 896 00:43:36,020 --> 00:43:39,810 Sempre que você digitar barra barra, seja qual for é nessa linha não vai 897 00:43:39,810 --> 00:43:42,260 para ser considerado como C. Sim? 898 00:43:42,260 --> 00:43:45,910 >> AUDIÊNCIA: Assim, após o comentário, você só entrar e começar uma nova linha? 899 00:43:45,910 --> 00:43:47,120 >> LUCAS FREITAS: Sim, exatamente. 900 00:43:47,120 --> 00:43:50,010 >> LAUREN CARVALHO: A barra barra é para comentários única linha. 901 00:43:50,010 --> 00:43:52,910 >> LUCAS FREITAS: Por exemplo, aqui nós temos - 902 00:43:52,910 --> 00:43:54,160 deixe-me aproximar - 903 00:43:54,160 --> 00:43:56,530 904 00:43:56,530 --> 00:44:01,180 por exemplo, aqui eu estou declarando uma bóia, mas talvez se você apenas colocar este 905 00:44:01,180 --> 00:44:04,980 em seu código, como você não tem idéia o que isso está fazendo, como na verdade 906 00:44:04,980 --> 00:44:06,950 alguém que está olhando para este código vai ser, tipo, o que o 907 00:44:06,950 --> 00:44:09,190 diabos está acontecendo? 908 00:44:09,190 --> 00:44:12,890 >> Se você colocar um comentário dizendo que "converter Fahrenheit para Celsius, faz muito 909 00:44:12,890 --> 00:44:13,450 mais sentido. 910 00:44:13,450 --> 00:44:15,480 Você é, tipo, OK, você está fazendo uma conversão. 911 00:44:15,480 --> 00:44:16,730 Será que isso faz sentido? 912 00:44:16,730 --> 00:44:19,860 913 00:44:19,860 --> 00:44:24,960 Portanto, é apenas algo que ajuda as pessoas pronto seu código e também fazer 914 00:44:24,960 --> 00:44:28,290 Você seria capaz de organizar seu código melhor. 915 00:44:28,290 --> 00:44:33,080 >> A segunda coisa é que você pode fazer Comentários de várias linhas, por isso tem um 916 00:44:33,080 --> 00:44:34,850 comentar para um grupo de linhas. 917 00:44:34,850 --> 00:44:38,880 Em vez de ter que colocar barra barra, os comentários de primeira linha, barra barra, 918 00:44:38,880 --> 00:44:43,590 a segunda linha, e assim por diante, é pode usar a estrela barra. 919 00:44:43,590 --> 00:44:46,330 A maneira que você faz isso é que, para o primeira linha do comentário, você está 920 00:44:46,330 --> 00:44:49,650 vai fazer uma estrela estrela barra, assim sem mais nem menos. 921 00:44:49,650 --> 00:44:56,900 Assim como aqui temos o início de um programa, você costuma colocar quem você 922 00:44:56,900 --> 00:44:59,530 são, o que este programa faz, e coisas assim. 923 00:44:59,530 --> 00:45:01,900 É como uma espécie de cabeçalho para o programa. 924 00:45:01,900 --> 00:45:04,540 >> Mais uma vez, não é algo que um compilador vai se preocupam, mas 925 00:45:04,540 --> 00:45:07,570 é importante para você saber o que esta programa faz ou para outras pessoas 926 00:45:07,570 --> 00:45:09,960 para saber o que o programa está fazendo. 927 00:45:09,960 --> 00:45:17,480 Então você cortar star star, e então o última linha que você vai fazer estrela 928 00:45:17,480 --> 00:45:22,250 cortar para poder fechar esse comentário. 929 00:45:22,250 --> 00:45:26,140 Então, basicamente, para todas as outras linhas, você pode apenas escrever o que quer, e isso 930 00:45:26,140 --> 00:45:27,390 tudo vai ser ignorado. 931 00:45:27,390 --> 00:45:32,920 932 00:45:32,920 --> 00:45:37,780 >> E também, assim como o estilo, você vê que cada uma das linhas tem uma estrela, e todos 933 00:45:37,780 --> 00:45:39,380 as estrelas estão alinhadas. 934 00:45:39,380 --> 00:45:41,605 Estas são coisas importantes para que o código parece bem. 935 00:45:41,605 --> 00:45:42,855 Parece bom? 936 00:45:42,855 --> 00:45:45,320 937 00:45:45,320 --> 00:45:47,290 >> Agora, as condições. 938 00:45:47,290 --> 00:45:52,240 O que David estava dizendo que deveríamos realmente colocar nos slides, é que 939 00:45:52,240 --> 00:45:55,810 quando você tem qualquer tipo de if ou qualquer tipo de condições, 940 00:45:55,810 --> 00:46:00,700 você deve usar chaves para mostrar que isso é o que ia acontecer 941 00:46:00,700 --> 00:46:02,730 quando você tem a condição. 942 00:46:02,730 --> 00:46:07,560 Tecnicamente, quando você tem uma condição e, em seguida, a próxima linha é apenas um 943 00:46:07,560 --> 00:46:12,110 linha, você não tem tecnicamente para colocar as chaves. 944 00:46:12,110 --> 00:46:16,930 >> Basicamente o compilador entenderia de qualquer maneira, como implícito. 945 00:46:16,930 --> 00:46:21,100 Mas para CS50, pedimos a vocês para colocar as chaves apenas para que o seu 946 00:46:21,100 --> 00:46:24,560 código é mais organizada e mais legível. 947 00:46:24,560 --> 00:46:28,200 Porque esse código fica mais tempo se não têm chaves e tal. 948 00:46:28,200 --> 00:46:29,150 Fica realmente confuso. 949 00:46:29,150 --> 00:46:31,410 >> LAUREN CARVALHO: Isso é exatamente o que David apenas destacou 950 00:46:31,410 --> 00:46:33,000 em meus slides anteriores. 951 00:46:33,000 --> 00:46:36,690 Ele definitivamente funciona sem o crespo suspensórios, mas por razões estilísticas 952 00:46:36,690 --> 00:46:38,840 vamos pedir que você colocar aqueles dentro 953 00:46:38,840 --> 00:46:42,400 >> E quando você começar a correr style50, que é uma espécie de cheque para 50 954 00:46:42,400 --> 00:46:44,860 estilo, ele irá lembrá-lo de fazer isso. 955 00:46:44,860 --> 00:46:49,710 >> LUCAS FREITAS: E outra coisa é lembre-se de colocar as chaves junto 956 00:46:49,710 --> 00:46:50,610 em cada linha. 957 00:46:50,610 --> 00:46:52,490 Então você faz, por exemplo, l's. 958 00:46:52,490 --> 00:46:56,910 Vá para a próxima linha, abra o crespo cinta, depois de ir para a próxima linha. 959 00:46:56,910 --> 00:46:59,560 Recuo, que é quatro espaços. 960 00:46:59,560 --> 00:47:03,570 Então você escreve o que quer, em seguida, outra linha, e fechar a chaveta. 961 00:47:03,570 --> 00:47:06,870 Então não se esqueça que tanto os cacheados chaves estão em diferentes linhas. 962 00:47:06,870 --> 00:47:11,548 >> AUDIÊNCIA: Então, se esse código tinha como 10 else ifs, este deve 963 00:47:11,548 --> 00:47:13,040 ser de 10 conjuntos de suportes? 964 00:47:13,040 --> 00:47:14,610 >> LUCAS FREITAS: Sim, para cada um deles. 965 00:47:14,610 --> 00:47:14,930 É. 966 00:47:14,930 --> 00:47:17,980 Assim, se, mais se, e assim por diante. 967 00:47:17,980 --> 00:47:21,990 >> AUDIÊNCIA: Você pode não pressione Tab para recuar? 968 00:47:21,990 --> 00:47:25,350 >> LUCAS FREITAS: Nós estamos pedindo para você caras para usar quatro espaços. 969 00:47:25,350 --> 00:47:30,060 Alguns editores de texto guia traduzir como quatro espaços automaticamente. 970 00:47:30,060 --> 00:47:34,850 gedit não acontecer, então você tem que fazer espaço espaço espaço espaço. 971 00:47:34,850 --> 00:47:37,920 Isto também é algo que alguns programadores só fazer guias, alguns 972 00:47:37,920 --> 00:47:40,560 programadores só fazem quatro espaços, e algumas outras pessoas até mesmo fazer 973 00:47:40,560 --> 00:47:41,900 dois ou três espaços. 974 00:47:41,900 --> 00:47:44,040 É que aqui estamos pedindo vocês para fazer quatro espaços. 975 00:47:44,040 --> 00:47:47,556 >> AUDIÊNCIA: Há quase definitivamente Tem que ser um caminho para a gedit 976 00:47:47,556 --> 00:47:48,645 automaticamente [inaudível]. 977 00:47:48,645 --> 00:47:50,480 Como não [inaudível] faz isso. 978 00:47:50,480 --> 00:47:51,150 >> LUCAS FREITAS: Yeah. 979 00:47:51,150 --> 00:47:53,165 Eu acho que você pode ir a Configurações. 980 00:47:53,165 --> 00:47:55,270 >> AUDIÊNCIA: Já faz tudo isso. 981 00:47:55,270 --> 00:47:56,410 >> LUCAS FREITAS: Já faz? 982 00:47:56,410 --> 00:47:56,890 OK. 983 00:47:56,890 --> 00:48:00,854 Então, basta ter certeza de que você tem quatro espaços. 984 00:48:00,854 --> 00:48:05,880 >> AUDIÊNCIA: Nós temos que colocar o crespo suportes em loops também? 985 00:48:05,880 --> 00:48:07,470 >> LUCAS FREITAS: Sim. 986 00:48:07,470 --> 00:48:11,610 >> LAUREN CARVALHO: Sempre que o seu encapsulamento de um bloco de código, apenas 987 00:48:11,610 --> 00:48:13,570 Por favor use as chaves. 988 00:48:13,570 --> 00:48:18,040 E antes que você pense que estamos apenas sendo sticklers sobre este sem uma boa 989 00:48:18,040 --> 00:48:23,450 razão, se vocês não ir para obter estágios de tecnologia em grandes empresas, 990 00:48:23,450 --> 00:48:26,020 eles vão te dar um guia de estilo, e eles vão te dizer isso é o que o seu 991 00:48:26,020 --> 00:48:27,220 código precisa ser parecida. 992 00:48:27,220 --> 00:48:31,120 E mesmo que você aprendeu a um código como este, talvez em seu estágio 993 00:48:31,120 --> 00:48:32,680 você vai ter que fazer alguma coisa completamente diferente. 994 00:48:32,680 --> 00:48:35,115 Eles esperam que você se conformar ao seu estilo. 995 00:48:35,115 --> 00:48:39,800 >> LUCAS FREITAS: E mais uma coisa é que você percebe como eu tenho como x, 996 00:48:39,800 --> 00:48:42,290 espaço, menos espaço, 0? 997 00:48:42,290 --> 00:48:44,640 Sempre que você tem um operador - 998 00:48:44,640 --> 00:48:50,490 ele pode ser como mais, menos, vezes, menos, maior, qualquer que seja operador - 999 00:48:50,490 --> 00:48:57,560 você tem que colocar um espaço no lado esquerdo e à direita do operador. 1000 00:48:57,560 --> 00:49:00,570 >> LAUREN CARVALHO: Esses são chamados operandos binários. 1001 00:49:00,570 --> 00:49:03,720 Apenas certifique-se sempre espaço os seus operandos binários. 1002 00:49:03,720 --> 00:49:05,465 >> LUCAS FREITAS: Este é não um operando binário. 1003 00:49:05,465 --> 00:49:07,010 >> LAUREN CARVALHO: Isso é porque é preciso dois. 1004 00:49:07,010 --> 00:49:08,260 >> LUCAS FREITAS: Ah, sim. 1005 00:49:08,260 --> 00:49:13,340 1006 00:49:13,340 --> 00:49:14,590 >> OK, os switches. 1007 00:49:14,590 --> 00:49:18,180 1008 00:49:18,180 --> 00:49:23,390 Primeiro, você tem que ver que, assim como em uma instrução se, ou então, você tem 1009 00:49:23,390 --> 00:49:28,280 para colocar a chaveta em sua própria linha e sob a chaveta aqui. 1010 00:49:28,280 --> 00:49:32,240 Note-se que existe um único espaço após a ligação, assim como em if e else 1011 00:49:32,240 --> 00:49:35,360 tivemos um único espaço entre isso e os parênteses. 1012 00:49:35,360 --> 00:49:36,610 Então, você tem que colocar isso. 1013 00:49:36,610 --> 00:49:40,380 1014 00:49:40,380 --> 00:49:48,270 >> E não há espaço para a direita depois de cada dos parênteses ou antes do final 1015 00:49:48,270 --> 00:49:49,080 dos parênteses. 1016 00:49:49,080 --> 00:49:52,612 Então você vê que é tudo em conjunto, e também gosto aqui. 1017 00:49:52,612 --> 00:49:53,940 >> Sim? 1018 00:49:53,940 --> 00:49:58,040 >> LAUREN CARVALHO: Eu acho que precisamos seguir em frente. 1019 00:49:58,040 --> 00:50:02,340 >> LUCAS FREITAS: Então, isso faz parte do guia de estilo que você tem para CS50. 1020 00:50:02,340 --> 00:50:06,520 Certifique-se de ir para cs50.net/style e dar uma olhada nisso. 1021 00:50:06,520 --> 00:50:09,250 Estes são todos muito importantes para a sua pontuação estilo. 1022 00:50:09,250 --> 00:50:12,740 1023 00:50:12,740 --> 00:50:15,670 >> Deixe-me voltar para o comunicado. 1024 00:50:15,670 --> 00:50:17,070 >> LAUREN CARVALHO: Eu prefiro basta usar style50. 1025 00:50:17,070 --> 00:50:18,920 Nós apenas estamos indo para ir direto para laços. 1026 00:50:18,920 --> 00:50:27,580 1027 00:50:27,580 --> 00:50:28,300 Tudo bem. 1028 00:50:28,300 --> 00:50:33,720 >> Então, vamos voltar para o conteúdo, agora que passamos ao longo do guia de estilo. 1029 00:50:33,720 --> 00:50:37,220 Loops, você já viu-los em risco, e vamos falar sobre eles em 1030 00:50:37,220 --> 00:50:39,210 C. 1031 00:50:39,210 --> 00:50:44,400 >> Em um loop for, há três porções à 1032 00:50:44,400 --> 00:50:45,440 declaração deste loop. 1033 00:50:45,440 --> 00:50:49,040 Você tem a sua inicialização em que você definir suas variáveis. 1034 00:50:49,040 --> 00:50:52,160 Você tem a sua condição, que são verificação para ver se algo é 1035 00:50:52,160 --> 00:50:54,670 verdadeiro ou falso e se a loop deve continuar. 1036 00:50:54,670 --> 00:50:59,390 E você tem a sua atualização, o que está atualizando suas variáveis. 1037 00:50:59,390 --> 00:51:05,310 >> Vamos dar uma rápida olhada em algumas Código C deste loop for em ação. 1038 00:51:05,310 --> 00:51:08,860 O que está acontecendo é aqui no inicialização, estamos definindo i para 0. 1039 00:51:08,860 --> 00:51:11,820 Na condição estamos verificando se i é inferior a 10. 1040 00:51:11,820 --> 00:51:14,982 E na atualização estamos incrementando i. 1041 00:51:14,982 --> 00:51:20,490 Então, o que irá resultar da esse loop? 1042 00:51:20,490 --> 00:51:24,344 >> LUCAS Freitas: Na verdade, antes de tudo, Vocês sabem o que eu + + é? 1043 00:51:24,344 --> 00:51:25,850 >> AUDIÊNCIA: Aumento em 1. 1044 00:51:25,850 --> 00:51:26,870 >> LUCAS FREITAS: Aumento de 1, sim. 1045 00:51:26,870 --> 00:51:30,020 Portanto, esta é a mesma coisa que fazendo i é igual a i + 1. 1046 00:51:30,020 --> 00:51:35,890 E note que não temos um espaço entre o eu eo + +. 1047 00:51:35,890 --> 00:51:37,600 >> Então, vocês sabem o que isso vai fazer? 1048 00:51:37,600 --> 00:51:39,060 Alguém pode me dizer? 1049 00:51:39,060 --> 00:51:41,463 E talvez conseguir alguns doces por causa disso? 1050 00:51:41,463 --> 00:51:42,912 >> AUDIÊNCIA: [inaudível] 1051 00:51:42,912 --> 00:51:44,850 >> LUCAS FREITAS: OK. 1052 00:51:44,850 --> 00:51:45,400 [Inaudível] 1053 00:51:45,400 --> 00:51:47,450 todo mundo mostrar mais tarde [inaudível]. 1054 00:51:47,450 --> 00:51:49,565 Sim, ele vai mostrar "Este CS50 é "10 vezes. 1055 00:51:49,565 --> 00:51:52,150 >> LAUREN CARVALHO: Eu acho que foi no título do slide. 1056 00:51:52,150 --> 00:51:53,830 >> LUCAS FREITAS: Ah, sim. 1057 00:51:53,830 --> 00:51:54,670 >> [Risos] 1058 00:51:54,670 --> 00:51:56,790 >> LUCAS FREITAS: Isso ajuda. 1059 00:51:56,790 --> 00:51:58,370 >> LAUREN CARVALHO: Então, essas são para loops. 1060 00:51:58,370 --> 00:52:03,200 Nós vamos ver mais alguns exemplos de loops mais tarde. 1061 00:52:03,200 --> 00:52:06,510 Mas vamos realmente ter um olhar para o segundo tipo de circuito que você vai encontrar 1062 00:52:06,510 --> 00:52:08,920 em C, e é chamado o loop while. 1063 00:52:08,920 --> 00:52:11,120 >> Em um loop while, você tem só tenho uma condição. 1064 00:52:11,120 --> 00:52:14,790 A condição é verificada no começando, e se essa condição 1065 00:52:14,790 --> 00:52:18,450 avaliada como verdadeira, então o código dentro o corpo do bloco, enquanto 1066 00:52:18,450 --> 00:52:20,380 será executado. 1067 00:52:20,380 --> 00:52:23,000 E o código continuará executar, enquanto que 1068 00:52:23,000 --> 00:52:24,450 condição permanecer verdadeira. 1069 00:52:24,450 --> 00:52:28,350 1070 00:52:28,350 --> 00:52:33,320 >> Aqui está um exemplo de um loop while em C. Vamos definir a contagem de 10 a 1071 00:52:33,320 --> 00:52:34,580 começar. 1072 00:52:34,580 --> 00:52:41,800 Enquanto a contagem for maior do que 0, vamos continuar a imprimir este 1073 00:52:41,800 --> 00:52:43,360 variável aqui. 1074 00:52:43,360 --> 00:52:47,080 Nós vamos diminuir contagem e em seguida, verificar novamente a condição. 1075 00:52:47,080 --> 00:52:51,370 Imprimir, decremento, cheque a condição de novo. 1076 00:52:51,370 --> 00:52:54,530 >> Aqui temos um exemplo que se refere a sua pergunta anterior. 1077 00:52:54,530 --> 00:52:57,340 Tivemos a porcentagem s quando estávamos imprimir uma string, e agora que 1078 00:52:57,340 --> 00:53:03,420 estamos imprimindo um int, temos um por cento i como o nosso espaço reservado em seu lugar. 1079 00:53:03,420 --> 00:53:09,250 As cartas devem ser todos bastante intuitivo, é para a corda, eu para int. 1080 00:53:09,250 --> 00:53:15,400 >> Portanto, se esse código é executado, você deve contagem regressiva 10-0, imprimindo 1081 00:53:15,400 --> 00:53:15,925 cada inteiro. 1082 00:53:15,925 --> 00:53:19,460 >> LUCAS FREITAS: E você pode pensar no por cento, uma vez que se sente como um espaço em branco 1083 00:53:19,460 --> 00:53:23,960 espaço, e, em seguida, você está colocando esta aqui variável em que o espaço em branco. 1084 00:53:23,960 --> 00:53:27,640 Assim, por exemplo, aqui vou ter apenas um espaço em branco, e então eu estou colocando o 1085 00:53:27,640 --> 00:53:30,262 contar ali mesmo, o valor da contagem. 1086 00:53:30,262 --> 00:53:32,710 Será que isso faz sentido? 1087 00:53:32,710 --> 00:53:35,860 >> Eu poderia apenas fazer como printf e, em seguida, cita, contam? 1088 00:53:35,860 --> 00:53:36,840 Será que isso funciona? 1089 00:53:36,840 --> 00:53:37,980 >> AUDIÊNCIA: Não. 1090 00:53:37,980 --> 00:53:41,190 >> LUCAS FREITAS: Não, porque ele vai realmente imprimir a palavra "contar" 1091 00:53:41,190 --> 00:53:42,850 em vez de imprimir o valor. 1092 00:53:42,850 --> 00:53:46,080 Isto é como você faz imprimir os valores para a variável em vez de 1093 00:53:46,080 --> 00:53:47,670 apenas o nome da variável. 1094 00:53:47,670 --> 00:53:48,530 Alguma pergunta? 1095 00:53:48,530 --> 00:53:53,060 >> AUDIÊNCIA: Por que você usa para como uma oposição ao tempo? 1096 00:53:53,060 --> 00:53:56,130 >> LAUREN CARVALHO: Eu usaria um para loop se eu sei exatamente quantos 1097 00:53:56,130 --> 00:53:59,520 iterações que eu quero meu loop para executar. 1098 00:53:59,520 --> 00:54:02,810 Neste caso, não importa, porque, Quer dizer, eu estava apenas tentando 1099 00:54:02,810 --> 00:54:05,310 pensar em um realmente simples exemplo para este slide. 1100 00:54:05,310 --> 00:54:09,990 Mas vamos dizer que você quer algo manter-se ir embora - 1101 00:54:09,990 --> 00:54:14,480 >> LUCAS FREITAS: Por exemplo, você está pedindo para a entrada até que a pessoa 1102 00:54:14,480 --> 00:54:15,370 dá-lhe a entrada à direita. 1103 00:54:15,370 --> 00:54:19,720 Assim como quando a entrada não é OK, continuo a perguntar para ele. 1104 00:54:19,720 --> 00:54:22,920 Ou como quando você estiver pais não dão dinheiro, continuo a perguntar para ele. 1105 00:54:22,920 --> 00:54:23,430 >> [Risos] 1106 00:54:23,430 --> 00:54:25,390 >> LAUREN CARVALHO: Você não sabe como muitas vezes você vai ter que fazê-lo. 1107 00:54:25,390 --> 00:54:27,292 >> LUCAS FREITAS: Porque você não faz sei quantas vezes isso é 1108 00:54:27,292 --> 00:54:28,010 vai continuar. 1109 00:54:28,010 --> 00:54:30,397 >> LAUREN CARVALHO: Mas em um loop for, você precisa saber quantas vezes. 1110 00:54:30,397 --> 00:54:33,640 1111 00:54:33,640 --> 00:54:33,860 Sim? 1112 00:54:33,860 --> 00:54:38,520 >> AUDIÊNCIA: Só para esclarecer, o percentual diz que isso é algo sobre a 1113 00:54:38,520 --> 00:54:42,415 acontecer, nos is para o número inteiro, ea barra invertida n - 1114 00:54:42,415 --> 00:54:43,910 >> LAUREN CARVALHO: Meios? 1115 00:54:43,910 --> 00:54:45,820 Quem sabe o que a barra invertida n significa? 1116 00:54:45,820 --> 00:54:47,770 Nova linha, sim. 1117 00:54:47,770 --> 00:54:48,130 Exatamente. 1118 00:54:48,130 --> 00:54:50,500 >> LUCAS FREITAS: Você pode pensar de n como nova linha. 1119 00:54:50,500 --> 00:54:52,258 >> LAUREN CARVALHO: Nice. 1120 00:54:52,258 --> 00:54:55,775 >> AUDIÊNCIA: O que é que a contagem traço traço [inaudível]? 1121 00:54:55,775 --> 00:55:00,240 >> LUCAS FREITAS: Contagem menos negativo é a mesma coisa que plus plus, mas 1122 00:55:00,240 --> 00:55:02,160 em vez de aumentar, está diminuindo em 1. 1123 00:55:02,160 --> 00:55:04,720 1124 00:55:04,720 --> 00:55:07,185 >> LAUREN CARVALHO: Qualquer mais enquanto questões de loop? 1125 00:55:07,185 --> 00:55:09,460 Não? 1126 00:55:09,460 --> 00:55:13,910 Oh, nós deveríamos ter ignorado isso. 1127 00:55:13,910 --> 00:55:14,950 >> Este é um do loop while. 1128 00:55:14,950 --> 00:55:18,950 Muito semelhante a um loop while, exceto em Neste caso, verifique a condição após 1129 00:55:18,950 --> 00:55:23,430 o código no corpo do loop é executado uma vez. 1130 00:55:23,430 --> 00:55:27,170 Por isso, executar o código primeiro, não importa o quê. 1131 00:55:27,170 --> 00:55:31,956 Então, verifique o estado, execute novamente se a condição for verdadeira. 1132 00:55:31,956 --> 00:55:35,450 1133 00:55:35,450 --> 00:55:38,950 >> Você vai encontrar-se com isso quando você está pedindo a entrada do usuário. 1134 00:55:38,950 --> 00:55:42,080 Porque você sempre vai ter que perguntar uma vez, e, em seguida, dependendo do que 1135 00:55:42,080 --> 00:55:46,570 a entrada do usuário é, você pode ter que Reprompt e perguntar novamente e novamente se 1136 00:55:46,570 --> 00:55:50,670 a entrada não era o que você esperava que fosse. 1137 00:55:50,670 --> 00:55:53,610 >> AUDIÊNCIA: Então, é como uma forma para as pessoas a preencher. 1138 00:55:53,610 --> 00:55:56,010 >> LAUREN CARVALHO: Sim, exatamente. 1139 00:55:56,010 --> 00:55:59,720 Você vai encontrar, penso eu, em seu primeiro Pset, você vai ter que 1140 00:55:59,720 --> 00:56:04,010 usar um loop fazer bem para coletar entrada do usuário. 1141 00:56:04,010 --> 00:56:08,728 >> AUDIÊNCIA: Dependendo da situação, seus loops, enquanto tendem a correr mais 1142 00:56:08,728 --> 00:56:12,805 frequentemente do que enquanto loops, como por uma ou outra coisa? 1143 00:56:12,805 --> 00:56:14,080 >> LAUREN CARVALHO: Se é o exato - 1144 00:56:14,080 --> 00:56:17,400 >> LUCAS FREITAS: Eles devem sempre ser executado a quantidade exata de vezes que você 1145 00:56:17,400 --> 00:56:19,130 quero que ele seja executado. 1146 00:56:19,130 --> 00:56:23,860 Como usamos fazer enquanto, porque nós realmente queria ter a entrada de pelo menos uma vez. 1147 00:56:23,860 --> 00:56:27,220 Em loops tempo, às vezes você não quer para executá-lo em tudo, se não é 1148 00:56:27,220 --> 00:56:28,540 o caso de executar. 1149 00:56:28,540 --> 00:56:31,300 Por isso, depende do projeto. 1150 00:56:31,300 --> 00:56:35,900 Quero dizer, você pode fazer enquanto uso ou enquanto o tempo que o seu código faz isso 1151 00:56:35,900 --> 00:56:36,905 que é suposto fazer. 1152 00:56:36,905 --> 00:56:38,470 >> LAUREN CARVALHO: Mas eu faço acho que a resposta à sua 1153 00:56:38,470 --> 00:56:40,540 pergunta é provavelmente sim. 1154 00:56:40,540 --> 00:56:42,190 Vamos dizer que a condição era falsa. 1155 00:56:42,190 --> 00:56:45,498 Em um caso, seria executado uma vez, e outro caso ele seria executado zero vezes. 1156 00:56:45,498 --> 00:56:47,370 Então, sim. 1157 00:56:47,370 --> 00:56:49,260 >> Mais alguma pergunta? 1158 00:56:49,260 --> 00:56:50,320 Sim? 1159 00:56:50,320 --> 00:56:56,443 >> AUDIÊNCIA: Pode a condição de ser um laço loop for em termos de uma outra variável 1160 00:56:56,443 --> 00:56:57,385 que [inaudível]. 1161 00:56:57,385 --> 00:57:01,700 >> LAUREN CARVALHO: Sim, pode ser qualquer coisa. 1162 00:57:01,700 --> 00:57:06,420 Provavelmente para as Série de Exercícios começo, você não terá de encontrar esse caso, mas 1163 00:57:06,420 --> 00:57:09,878 definitivamente ele pode ser qualquer coisa. 1164 00:57:09,878 --> 00:57:12,680 >> LUCAS FREITAS: Eu acho que estamos a fazer aqui. 1165 00:57:12,680 --> 00:57:13,290 >> LAUREN CARVALHO: somos? 1166 00:57:13,290 --> 00:57:13,480 Não? 1167 00:57:13,480 --> 00:57:13,870 >> LUCAS FREITAS: Loops? 1168 00:57:13,870 --> 00:57:14,600 É. 1169 00:57:14,600 --> 00:57:16,280 >> LAUREN CARVALHO: Não devemos ser. 1170 00:57:16,280 --> 00:57:17,760 Oh, estamos a fazer com loops. 1171 00:57:17,760 --> 00:57:19,250 OK. 1172 00:57:19,250 --> 00:57:23,180 >> Na verdade, porque nós temos falado tão muito, vamos de fato todos navegar 1173 00:57:23,180 --> 00:57:28,950 sobre a study.cs50.net/conditions. 1174 00:57:28,950 --> 00:57:34,460 E você está indo para navegar para baixo para os problemas widgets. 1175 00:57:34,460 --> 00:57:39,090 Bem, na verdade, ao passo que as pessoas estão ficando esta configuração, o Estudo CS50 é 1176 00:57:39,090 --> 00:57:42,620 vai ser uma ferramenta que seus TFs vontade usar para se preparar para as seções e que 1177 00:57:42,620 --> 00:57:45,230 Vocês podem usar se você perder seções. 1178 00:57:45,230 --> 00:57:48,980 Vai conter um monte de slides, algumas dicas e truques para cada 1179 00:57:48,980 --> 00:57:54,030 tema, e alguns problemas práticos com soluções. 1180 00:57:54,030 --> 00:57:57,200 >> Por que nem todo mundo basta dar uma olhada para este problema aqui. 1181 00:57:57,200 --> 00:58:01,630 1182 00:58:01,630 --> 00:58:04,790 >> Me desculpe, eu deveria ter lembrado pessoas para trazer laptops hoje. 1183 00:58:04,790 --> 00:58:07,050 Mas se você não tem um laptop, isso é OK. 1184 00:58:07,050 --> 00:58:10,140 Você pode apenas anotar isso para baixo em uma pedaço de papel ou olhar por cima 1185 00:58:10,140 --> 00:58:12,890 o ombro de seu vizinho. 1186 00:58:12,890 --> 00:58:16,380 >> Vamos tentar escrever um programa que solicita ao usuário para dar um palpite, o 1187 00:58:16,380 --> 00:58:19,250 número médio de filhos por família unidade nos Estados Unidos. 1188 00:58:19,250 --> 00:58:22,265 Esse número é 2, a propósito, como você pode ver a partir destes exemplos. 1189 00:58:22,265 --> 00:58:24,770 1190 00:58:24,770 --> 00:58:29,030 >> Queremos imprimir número médio de filhos por família em os EUA, então nós 1191 00:58:29,030 --> 00:58:31,080 quer o que? 1192 00:58:31,080 --> 00:58:35,480 Queremos coletar entrada a partir do utilizador. 1193 00:58:35,480 --> 00:58:41,290 E, em seguida, dependendo do que o usuário de entrada é, você está indo para imprimir 1194 00:58:41,290 --> 00:58:44,850 ou isso é correto ou isso é incorreto. 1195 00:58:44,850 --> 00:58:48,040 >> E a primeira coisa que você vai Veja, se você clicar na pequena seta no 1196 00:58:48,040 --> 00:58:52,190 a parte inferior da ferramenta é um problema local para anotar alguns pseudocódigo. 1197 00:58:52,190 --> 00:58:53,340 Então você não está programando ainda. 1198 00:58:53,340 --> 00:58:56,740 Você só está recebendo o seu idéias em ordem. 1199 00:58:56,740 --> 00:58:59,620 >> Alguém quer ajudar Lucas venha com o direito 1200 00:58:59,620 --> 00:59:01,270 pseudocódigo para este problema? 1201 00:59:01,270 --> 00:59:04,900 >> LUCAS FREITAS: Qual é a primeira coisa que provavelmente deve fazer aqui? 1202 00:59:04,900 --> 00:59:07,010 O que vocês acham? 1203 00:59:07,010 --> 00:59:08,260 >> AUDIÊNCIA: [inaudível] 1204 00:59:08,260 --> 00:59:12,060 1205 00:59:12,060 --> 00:59:13,290 >> LUCAS FREITAS: Sim, OK. 1206 00:59:13,290 --> 00:59:16,610 Então, de impressão. 1207 00:59:16,610 --> 00:59:19,480 Basta dizer a impressão que essa média número de pessoas? 1208 00:59:19,480 --> 00:59:20,470 OK. 1209 00:59:20,470 --> 00:59:23,450 Imprimir pergunta, vamos dizer. 1210 00:59:23,450 --> 00:59:25,951 Depois de imprimir a esta pergunta, o que devo fazer? 1211 00:59:25,951 --> 00:59:27,875 >> AUDIÊNCIA: Obter entrada. 1212 00:59:27,875 --> 00:59:30,690 >> LUCAS FREITAS: Obter entrada. 1213 00:59:30,690 --> 00:59:32,864 Mais alguma coisa? 1214 00:59:32,864 --> 00:59:34,114 >> AUDIÊNCIA: Condition. 1215 00:59:34,114 --> 00:59:36,770 1216 00:59:36,770 --> 00:59:38,980 >> LUCAS FREITAS: Condition. 1217 00:59:38,980 --> 00:59:41,325 >> LAUREN CARVALHO: O que é que condição vai ser? 1218 00:59:41,325 --> 00:59:43,550 >> AUDIÊNCIA: O número de [inaudível]. 1219 00:59:43,550 --> 00:59:44,440 >> LAUREN CARVALHO: Certo. 1220 00:59:44,440 --> 00:59:46,945 >> LUCAS FREITAS: Então o que é que eu vou o check-in a condição? 1221 00:59:46,945 --> 00:59:48,750 >> AUDIÊNCIA: Se é igual a 2. 1222 00:59:48,750 --> 00:59:50,640 >> LAUREN CARVALHO: Se é igual a 2. 1223 00:59:50,640 --> 00:59:51,890 Exatamente. 1224 00:59:51,890 --> 00:59:58,340 1225 00:59:58,340 --> 01:00:00,140 >> LUCAS FREITAS: Há algo de outra coisa que eu deveria fazer? 1226 01:00:00,140 --> 01:00:01,390 >> AUDIÊNCIA: Contagem. 1227 01:00:01,390 --> 01:00:05,184 1228 01:00:05,184 --> 01:00:08,110 >> LUCAS FREITAS: Então, se é igual a 2, digamos - 1229 01:00:08,110 --> 01:00:14,250 1230 01:00:14,250 --> 01:00:17,960 deixe-me escrever se a entrada é igual a a 2, então o que eu vou 1231 01:00:17,960 --> 01:00:23,665 fazer é imprimir correta. 1232 01:00:23,665 --> 01:00:26,230 1233 01:00:26,230 --> 01:00:31,826 E depois o resto, eu vou para imprimir incorreta. 1234 01:00:31,826 --> 01:00:34,600 1235 01:00:34,600 --> 01:00:37,720 Mais alguma coisa? 1236 01:00:37,720 --> 01:00:38,670 Não? 1237 01:00:38,670 --> 01:00:40,500 >> LAUREN CARVALHO: Então você pode clicar no - 1238 01:00:40,500 --> 01:00:42,290 que todo mundo tem esse baixo? 1239 01:00:42,290 --> 01:00:44,680 >> LUCAS FREITAS: Será que faz sentido? 1240 01:00:44,680 --> 01:00:46,226 Então, agora vamos tentar este código. 1241 01:00:46,226 --> 01:00:50,140 >> LAUREN CARVALHO: Se você clicar no pouco seta, ele realmente salva seu 1242 01:00:50,140 --> 01:00:51,900 pseudocódigo, que é realmente emocionante. 1243 01:00:51,900 --> 01:00:56,480 E você pode fazer aqueles comentários em se você quer apenas para se lembrar de 1244 01:00:56,480 --> 01:00:57,075 o que fazer. 1245 01:00:57,075 --> 01:01:01,555 >> LUCAS FREITAS: Então, por exemplo, primeiro Vou imprimir a pergunta, então 1246 01:01:01,555 --> 01:01:05,930 como é que eu vou fazer isso, na verdade? 1247 01:01:05,930 --> 01:01:07,050 printf. 1248 01:01:07,050 --> 01:01:12,130 Então printf, ea questão é média número de filhos por 1249 01:01:12,130 --> 01:01:14,110 família em os EUA. 1250 01:01:14,110 --> 01:01:19,070 1251 01:01:19,070 --> 01:01:21,790 >> Então eu vou ficar entrada do usuário. 1252 01:01:21,790 --> 01:01:29,050 1253 01:01:29,050 --> 01:01:31,324 Então, como posso fazer isso? 1254 01:01:31,324 --> 01:01:32,200 >> AUDIÊNCIA: Obter Int. 1255 01:01:32,200 --> 01:01:33,076 >> LAUREN CARVALHO: GetInt. 1256 01:01:33,076 --> 01:01:33,890 >> LUCAS FREITAS: OK. 1257 01:01:33,890 --> 01:01:35,220 Então, primeiro declarar, certo? 1258 01:01:35,220 --> 01:01:39,300 int, vamos chamá-lo n é igual a GetInt. 1259 01:01:39,300 --> 01:01:42,610 1260 01:01:42,610 --> 01:01:44,670 >> E agora a condição. 1261 01:01:44,670 --> 01:01:49,250 Então deixe-me dizer que eu vou para cá resposta cheque. 1262 01:01:49,250 --> 01:01:57,290 Então, em primeiro lugar, se a entrada, que é N, é igual a - como é que eu vou escrever isso? 1263 01:01:57,290 --> 01:01:58,480 >> AUDIÊNCIA: Igual igual. 1264 01:01:58,480 --> 01:02:00,000 >> LUCAS FREITAS: Perfeito. 1265 01:02:00,000 --> 01:02:00,670 Então n. 1266 01:02:00,670 --> 01:02:04,600 E note que eu faço um espaço, é igual, é igual, o espaço, é verdade. 1267 01:02:04,600 --> 01:02:06,930 E agora o que devo fazer? 1268 01:02:06,930 --> 01:02:08,820 Algo muito importante para o estilo. 1269 01:02:08,820 --> 01:02:10,070 As chaves. 1270 01:02:10,070 --> 01:02:16,570 1271 01:02:16,570 --> 01:02:17,795 >> E então eu vou imprimir. 1272 01:02:17,795 --> 01:02:19,790 Como faço para imprimir? 1273 01:02:19,790 --> 01:02:22,500 printf. 1274 01:02:22,500 --> 01:02:24,568 >> AUDIÊNCIA: Poderia ser capitalizados? 1275 01:02:24,568 --> 01:02:27,166 1276 01:02:27,166 --> 01:02:28,380 >> LUCAS FREITAS: Não. 1277 01:02:28,380 --> 01:02:31,000 É suposto estar em minúsculas. 1278 01:02:31,000 --> 01:02:32,250 Então, isso é correto. 1279 01:02:32,250 --> 01:02:40,990 1280 01:02:40,990 --> 01:02:44,870 >> Será que isso é suficiente para o printf declaração, ou estou faltando alguma coisa? 1281 01:02:44,870 --> 01:02:46,265 >> AUDIÊNCIA: Nova linha. 1282 01:02:46,265 --> 01:02:50,220 >> LUCAS FREITAS: Nova linha, sim. 1283 01:02:50,220 --> 01:02:51,250 E agora outra coisa. 1284 01:02:51,250 --> 01:02:57,290 >> AUDIÊNCIA: Existe um espaço após o printf, ou não? 1285 01:02:57,290 --> 01:03:00,820 >> LAUREN CARVALHO: Devemos verificar o guia de estilo. 1286 01:03:00,820 --> 01:03:02,260 >> AUDIÊNCIA: Não deve ser. 1287 01:03:02,260 --> 01:03:03,510 >> LUCAS FREITAS: Não deve ser, OK. 1288 01:03:03,510 --> 01:03:05,820 1289 01:03:05,820 --> 01:03:13,605 Então, o resto, printf, "Isso está incorreto." 1290 01:03:13,605 --> 01:03:17,105 >> LAUREN CARVALHO: Oops, suas citações. 1291 01:03:17,105 --> 01:03:17,950 >> LUCAS FREITAS: OK. 1292 01:03:17,950 --> 01:03:18,600 Mais alguma coisa? 1293 01:03:18,600 --> 01:03:20,770 Será que uma boa aparência? 1294 01:03:20,770 --> 01:03:21,890 >> LAUREN CARVALHO: Vamos tentar? 1295 01:03:21,890 --> 01:03:23,190 >> LUCAS FREITAS: Sim, vamos executá-lo. 1296 01:03:23,190 --> 01:03:25,880 1297 01:03:25,880 --> 01:03:29,070 Portanto, é a compilação, e Parece que ele funciona. 1298 01:03:29,070 --> 01:03:31,465 Vamos tentar dois filhos. 1299 01:03:31,465 --> 01:03:34,110 Isso é correto. 1300 01:03:34,110 --> 01:03:37,300 E agora vamos executar de novo, mas agora, em vez de colocar duas crianças, vamos 1301 01:03:37,300 --> 01:03:40,990 dizer que eu vou colocar como cinco. 1302 01:03:40,990 --> 01:03:41,515 Isso é incorreto. 1303 01:03:41,515 --> 01:03:42,670 Assim, parece que ele funciona. 1304 01:03:42,670 --> 01:03:44,160 >> LAUREN CARVALHO: Por que você não mostrar-lhes o que acontece se você colocar algo 1305 01:03:44,160 --> 01:03:45,055 estranho, como algumas letras. 1306 01:03:45,055 --> 01:03:45,790 >> LUCAS FREITAS: Ah, sim. 1307 01:03:45,790 --> 01:03:47,430 Vamos também verificar isso. 1308 01:03:47,430 --> 01:03:51,170 E se o usuário está tentando bagunça com o seu programa, e eles só 1309 01:03:51,170 --> 01:03:57,430 escrever, eu não sei dois. 1310 01:03:57,430 --> 01:03:58,320 Vai dizer repetição. 1311 01:03:58,320 --> 01:04:00,780 >> LAUREN CARVALHO: Então GetInt está pedindo-lhes para tentar novamente. 1312 01:04:00,780 --> 01:04:02,115 Nós não temos que cuidar do que nós mesmos. 1313 01:04:02,115 --> 01:04:02,750 >> LUCAS FREITAS: Yeah. 1314 01:04:02,750 --> 01:04:06,853 Então, a menos que eu realmente colocar um número, é vai continuar me pedindo para tentar novamente. 1315 01:04:06,853 --> 01:04:08,330 >> AUDIÊNCIA: Como você se executá-lo? 1316 01:04:08,330 --> 01:04:10,570 >> LUCAS FREITAS: Basta clicar este botão estrela. 1317 01:04:10,570 --> 01:04:11,940 >> LAUREN CARVALHO: Você deve subir. 1318 01:04:11,940 --> 01:04:13,320 Lá você vai. 1319 01:04:13,320 --> 01:04:15,550 >> LUCAS FREITAS: A estrela botão direito lá. 1320 01:04:15,550 --> 01:04:16,040 Sim? 1321 01:04:16,040 --> 01:04:19,960 >> AUDIÊNCIA: Será que pedir [inaudível] com números decimais também? 1322 01:04:19,960 --> 01:04:21,235 >> LAUREN CARVALHO: Eu acredito que sim. 1323 01:04:21,235 --> 01:04:22,660 >> LUCAS FREITAS: Se ele faz o que? 1324 01:04:22,660 --> 01:04:24,990 >> LAUREN CARVALHO: Se eles tipo em um número decimal, eu acho 1325 01:04:24,990 --> 01:04:25,880 ele vai pedir. 1326 01:04:25,880 --> 01:04:26,586 >> LUCAS FREITAS: Vamos ver. 1327 01:04:26,586 --> 01:04:28,360 >> LAUREN CARVALHO: Porque não é um int. 1328 01:04:28,360 --> 01:04:32,056 1329 01:04:32,056 --> 01:04:33,442 >> LUCAS FREITAS: Yeah. 1330 01:04:33,442 --> 01:04:37,370 >> LAUREN CARVALHO: Então, não é um int, Seja Int irá pedir-lhe para tentar novamente. 1331 01:04:37,370 --> 01:04:40,795 >> AUDIÊNCIA: Então, onde nesse código seria a casa decimal que solicita ao 1332 01:04:40,795 --> 01:04:46,005 usuário que ele tem que entrar um inteiro especificamente? 1333 01:04:46,005 --> 01:04:48,480 >> Lauren CARVALHO: GetInt é realmente fazendo isso para nós. 1334 01:04:48,480 --> 01:04:50,600 >> AUDIÊNCIA: Não, quero dizer, se quiséssemos para entrar [inaudível] 1335 01:04:50,600 --> 01:04:55,070 >> LUCAS FREITAS: Você pode dizer como média número de crianças em os EUA. 1336 01:04:55,070 --> 01:04:56,120 Eu não sei. 1337 01:04:56,120 --> 01:05:01,761 Podemos dizer, por exemplo, "Por favor, introduzir um número inteiro. " 1338 01:05:01,761 --> 01:05:04,270 >> LAUREN CARVALHO: Um inteiro igual ao número médio. 1339 01:05:04,270 --> 01:05:06,190 Quero dizer, é apenas como você palavra, certo? 1340 01:05:06,190 --> 01:05:06,520 >> LUCAS FREITAS: Yeah. 1341 01:05:06,520 --> 01:05:08,420 Isto não faz parte de codificação, na verdade. 1342 01:05:08,420 --> 01:05:11,000 É mais como tudo o que você vai querer 1343 01:05:11,000 --> 01:05:13,987 escrever em seu programa. 1344 01:05:13,987 --> 01:05:17,723 >> AUDIÊNCIA: Como teríamos executá-lo se estava realmente em gedit [inaudível]. 1345 01:05:17,723 --> 01:05:19,130 Em vez de pressionar o jogo? 1346 01:05:19,130 --> 01:05:21,180 >> LUCAS FREITAS: Vamos primeiro compilá-lo. 1347 01:05:21,180 --> 01:05:25,080 Podemos fazê-lo, fazendo make eo nome do arquivo. 1348 01:05:25,080 --> 01:05:29,896 E, em seguida, executá-lo, vamos fazer corte de ponto e o nome do programa. 1349 01:05:29,896 --> 01:05:36,588 >> AUDIÊNCIA: Eu acho que o que eu quis dizer foi se queríamos que o programa para responder a 1350 01:05:36,588 --> 01:05:42,010 seu, entrada inválida incorreta, você não deve colocar em - 1351 01:05:42,010 --> 01:05:45,710 >> LUCAS FREITAS: Nós não será capaz de fazer isso porque o código esta diz 1352 01:05:45,710 --> 01:05:50,350 repetir trata de Get Int, que é um função que já é implementado 1353 01:05:50,350 --> 01:05:55,790 para nós através da biblioteca CS50, e desde ele já está implementado lá, nós 1354 01:05:55,790 --> 01:05:58,340 não pode simplesmente [inaudível]. 1355 01:05:58,340 --> 01:06:00,780 >> LAUREN CARVALHO: Se você não usar GetInt, então você pode fazer isso. 1356 01:06:00,780 --> 01:06:01,490 >> LUCAS FREITAS: Yeah. 1357 01:06:01,490 --> 01:06:03,750 Mas se você estiver usando GetInt, você não pode. 1358 01:06:03,750 --> 01:06:05,427 Alguma outra pergunta? 1359 01:06:05,427 --> 01:06:12,938 >> AUDIÊNCIA: Você poderia ter ido com como GetFloat e, em seguida, ser capaz de colocar 1360 01:06:12,938 --> 01:06:14,381 lo em um decimal? 1361 01:06:14,381 --> 01:06:15,343 >> LUCAS FREITAS: Yeah. 1362 01:06:15,343 --> 01:06:15,824 >> AUDIÊNCIA: OK. 1363 01:06:15,824 --> 01:06:19,210 Então você só poderia entrada flutuar A é igual - 1364 01:06:19,210 --> 01:06:19,950 >> LAUREN CARVALHO: Yeah. 1365 01:06:19,950 --> 01:06:22,740 Exatamente o mesmo, exceto um flutuar em vez de um int. 1366 01:06:22,740 --> 01:06:27,372 >> LUCAS FREITAS: Basta colocá-lo aqui e, em seguida, GetFloat lá. 1367 01:06:27,372 --> 01:06:29,795 >> AUDIÊNCIA: Como você vai ver ou ter visto - 1368 01:06:29,795 --> 01:06:31,327 >> LAUREN CARVALHO: temos não chegou lá ainda. 1369 01:06:31,327 --> 01:06:36,490 >> AUDIÊNCIA: - fazendo com desigualdade flutuadores não [inaudível] 1370 01:06:36,490 --> 01:06:40,290 >> AUDIÊNCIA: O que as vírgulas significam? 1371 01:06:40,290 --> 01:06:43,220 >> LAUREN CARVALHO: O ponto e vírgula apenas significa que esta declaração seja completa, 1372 01:06:43,220 --> 01:06:45,030 e nós estamos indo para ir para o próximo slide. 1373 01:06:45,030 --> 01:06:47,040 >> AUDIÊNCIA: Então é necessário todas as vezes? 1374 01:06:47,040 --> 01:06:48,330 >> LAUREN CARVALHO: Yeah. 1375 01:06:48,330 --> 01:06:53,130 Bem, OK, então não para essas condições, porque eles são 1376 01:06:53,130 --> 01:06:54,090 encapsular algo. 1377 01:06:54,090 --> 01:07:00,290 Então, basicamente, se algo está causando que você crie uma chaveta 1378 01:07:00,290 --> 01:07:03,000 bloco, não coloque um ponto e vírgula no final. 1379 01:07:03,000 --> 01:07:04,200 >> LUCAS FREITAS: Mas tudo outra coisa, sim. 1380 01:07:04,200 --> 01:07:06,670 Quando você termina um comunicado, colocar o ponto e vírgula. 1381 01:07:06,670 --> 01:07:10,380 E se você esquecer ponto e vírgula, a compilador vai ficar com raiva de você, 1382 01:07:10,380 --> 01:07:12,640 e você vai ter para tentar consertá-lo. 1383 01:07:12,640 --> 01:07:16,520 >> LAUREN CARVALHO: Se eu colocar um ponto e vírgula aqui, que iria parar com isso, e eu 1384 01:07:16,520 --> 01:07:18,780 nunca iria começar a executar o que é no interior, por sinal. 1385 01:07:18,780 --> 01:07:21,113 Portanto, é um daqueles erros comuns. 1386 01:07:21,113 --> 01:07:22,390 >> AUDIÊNCIA: Sempre execução. 1387 01:07:22,390 --> 01:07:22,950 >> LAUREN CARVALHO: Yeah. 1388 01:07:22,950 --> 01:07:25,860 Neste caso, teríamos sempre executar o que está dentro. 1389 01:07:25,860 --> 01:07:29,050 >> AUDIÊNCIA: Seu estilo [inaudível] anexar que para você, pensei. 1390 01:07:29,050 --> 01:07:29,802 >> LAUREN CARVALHO: Ah, isso é verdade. 1391 01:07:29,802 --> 01:07:34,298 >> AUDIÊNCIA: [inaudível] único coisa de linha [inaudível] 1392 01:07:34,298 --> 01:07:35,286 >> AUDIÊNCIA: Sim? 1393 01:07:35,286 --> 01:07:37,756 >> AUDIÊNCIA: Você pode ter várias insumos em uma linha? 1394 01:07:37,756 --> 01:07:41,214 Então, como você pode pedir que os usuários para imprimir duas coisas? 1395 01:07:41,214 --> 01:07:42,530 >> LAUREN CARVALHO: Não usar - 1396 01:07:42,530 --> 01:07:44,520 >> LUCAS FREITAS: Não. 1397 01:07:44,520 --> 01:07:47,040 Vamos dizer que eu também quero para obter este número inteiro m. 1398 01:07:47,040 --> 01:07:49,558 Eu tenho que fazê-lo em uma linha diferente. 1399 01:07:49,558 --> 01:07:54,992 >> AUDIÊNCIA: Se você fosse para executar que, como [inaudível]? 1400 01:07:54,992 --> 01:07:59,438 Seria imprimir o prompt lá [inaudível] 1401 01:07:59,438 --> 01:08:00,940 e então você entre com um e - 1402 01:08:00,940 --> 01:08:01,840 >> LAUREN CARVALHO: Bem, executá-lo. 1403 01:08:01,840 --> 01:08:04,365 Quero dizer, não há nada nos impede de apenas executá-lo e ver o que 1404 01:08:04,365 --> 01:08:06,610 iria acontecer. 1405 01:08:06,610 --> 01:08:08,080 >> LUCAS FREITAS: Eu acho que é vai reclama para nós 1406 01:08:08,080 --> 01:08:08,977 porque não estamos usando - 1407 01:08:08,977 --> 01:08:09,751 >> LAUREN CARVALHO: Oops. 1408 01:08:09,751 --> 01:08:12,580 >> LUCAS FREITAS: Ele queixou-se a nós para a direita agora, porque nós não estamos usando este 1409 01:08:12,580 --> 01:08:21,640 variável, mas se eu tivesse, por exemplo, n é igual é igual a, e m é igual 1410 01:08:21,640 --> 01:08:26,849 igual a, então o que será acontecer neste caso? 1411 01:08:26,849 --> 01:08:28,830 O que este programa faz? 1412 01:08:28,830 --> 01:08:30,330 >> AUDIÊNCIA: Eu só estou querendo saber como seria - 1413 01:08:30,330 --> 01:08:31,550 >> LAUREN CARVALHO: Ela só quer saber como fica 1414 01:08:31,550 --> 01:08:34,189 como, penso eu, certo? 1415 01:08:34,189 --> 01:08:36,819 Por isso, levou um deles, e, em seguida, que levou o segundo. 1416 01:08:36,819 --> 01:08:41,279 1417 01:08:41,279 --> 01:08:43,069 >> Acho que devemos seguir em frente, porque temos mais uma 1418 01:08:43,069 --> 01:08:44,689 Apresentação de slides para ir antes - 1419 01:08:44,689 --> 01:08:46,269 você quer puxar para cima de matemática? 1420 01:08:46,269 --> 01:08:47,558 >> LUCAS FREITAS: Sim, de matemática. 1421 01:08:47,558 --> 01:09:00,033 1422 01:09:00,033 --> 01:09:02,206 >> LAUREN CARVALHO: Dar me apenas um segundo. 1423 01:09:02,206 --> 01:09:07,390 1424 01:09:07,390 --> 01:09:14,260 >> Há alguns numérica diferente variáveis ​​em dados numéricos em C. C 1425 01:09:14,260 --> 01:09:18,130 podem ser classificadas em diferentes tipos, e estes são os que você vai 1426 01:09:18,130 --> 01:09:19,570 ver com mais freqüência. 1427 01:09:19,570 --> 01:09:20,910 >> E int é um número inteiro. 1428 01:09:20,910 --> 01:09:23,189 Você não pode ter nenhum decimais. 1429 01:09:23,189 --> 01:09:27,754 No aparelho, é preciso 32 bits para armazenar um int. 1430 01:09:27,754 --> 01:09:30,450 >> Uma flutuação pode ter decimais. 1431 01:09:30,450 --> 01:09:34,330 Ele também leva 32 bits para armazenar uma bóia no Appliance. 1432 01:09:34,330 --> 01:09:42,270 >> A dupla é um número com um decimal ponto que tem 64 bits para armazená-lo, 1433 01:09:42,270 --> 01:09:44,470 o que significa que você pode apenas ter maior precisão, porque 1434 01:09:44,470 --> 01:09:46,426 você pode ter mais - 1435 01:09:46,426 --> 01:09:47,785 o que você chama isso? 1436 01:09:47,785 --> 01:09:48,640 >> LUCAS FREITAS: Sim, isso é muito mais. 1437 01:09:48,640 --> 01:09:52,140 >> LAUREN CARVALHO: Mais lugares depois do ponto decimal. 1438 01:09:52,140 --> 01:09:57,140 E há muito tempo é um número inteiro que leva 64 bits para 1439 01:09:57,140 --> 01:09:58,395 ela ferida no Appliance. 1440 01:09:58,395 --> 01:10:00,278 >> LUCAS FREITAS: Então ele pode ser maior do que inteiros podem ser. 1441 01:10:00,278 --> 01:10:03,320 1442 01:10:03,320 --> 01:10:08,380 >> LAUREN CARVALHO: A coisa sobre dados tipos em C é que eles dizem o que 1443 01:10:08,380 --> 01:10:11,050 tipo de dados que você pode armazenar em sua variável. 1444 01:10:11,050 --> 01:10:15,860 Dizem-lhe como você pode usar esta variável no seu programa. 1445 01:10:15,860 --> 01:10:19,650 É muito importante para apenas acompanhar de que tipo de dados você está usando, e se 1446 01:10:19,650 --> 01:10:23,070 você precisa fazer para converter de um tipo de dados para outro, certifique-se de que você sabe 1447 01:10:23,070 --> 01:10:25,250 exatamente o que acontece quando essa fundição ocorre. 1448 01:10:25,250 --> 01:10:28,520 E você vai ver um exemplo mais tarde sobre nestas lâminas de 1449 01:10:28,520 --> 01:10:31,490 erro que pode ocorrer. 1450 01:10:31,490 --> 01:10:35,300 >> Vamos dar uma olhada em algumas de matemática em C e pensar com muito cuidado, eu acho, 1451 01:10:35,300 --> 01:10:38,470 sobre o que está acontecendo quando esta matemática está ocorrendo. 1452 01:10:38,470 --> 01:10:43,552 Na primeira linha, o que é acontecendo quando eu declaro x? 1453 01:10:43,552 --> 01:10:48,921 >> AUDIÊNCIA: Você está permitindo que x para ser alguma coisa? 1454 01:10:48,921 --> 01:10:49,700 >> LAUREN CARVALHO: Yeah. 1455 01:10:49,700 --> 01:10:54,040 Bem, eu estou realmente fazendo a operação sistema de 32 bits de memória, certo? 1456 01:10:54,040 --> 01:10:57,890 Em que posso armazenar um int, e Eu vou ligar para o que int x. 1457 01:10:57,890 --> 01:11:01,370 >> LUCAS FREITAS: ir Basicamente na memória e encontrar um lugar que tem 32 1458 01:11:01,370 --> 01:11:05,290 bits e ditado, hey, eu quero que esse espaço, e ele vai ser chamado x. 1459 01:11:05,290 --> 01:11:08,590 Então você é apenas praticamente descoberta uma caixa em sua memória para 1460 01:11:08,590 --> 01:11:10,440 armazenar valores para x. 1461 01:11:10,440 --> 01:11:13,980 >> LAUREN CARVALHO: E então eu inicializar x, o que significa que eu só armazenar o 1462 01:11:13,980 --> 01:11:20,270 valor de 2 naquele lugar, que pedaço de memória, que pedimos operacional 1463 01:11:20,270 --> 01:11:21,860 sistema para. 1464 01:11:21,860 --> 01:11:25,090 E aqui o que estamos fazendo é na verdade estamos declarando e 1465 01:11:25,090 --> 01:11:29,060 inicializar y em uma linha, em vez de em duas linhas, como fizemos até aqui, 1466 01:11:29,060 --> 01:11:33,960 que também é um perfeitamente bem, estamos adicionando 1 para x, e nós estamos armazenando que 1467 01:11:33,960 --> 01:11:34,950 valor em y. 1468 01:11:34,950 --> 01:11:39,360 >> LUCAS FREITAS: Então, basicamente o que este linha faz, ele encontra agora uma caixa para y, 1469 01:11:39,360 --> 01:11:41,990 e, em seguida, o seu valor, a única coisa que você vai colocar dentro da caixa, é 1470 01:11:41,990 --> 01:11:43,800 vai ser o valor de x mais 1. 1471 01:11:43,800 --> 01:11:45,850 Por isso, tem essa caixa para y. 1472 01:11:45,850 --> 01:11:49,980 Ela recebe o valor de x, parece aqui, e ver que é 2. 1473 01:11:49,980 --> 01:11:53,035 Colocá-lo lá, mais 1, então coloca uma 3 lá. 1474 01:11:53,035 --> 01:11:54,290 Será que isso faz sentido? 1475 01:11:54,290 --> 01:11:55,780 Então y seria 2 neste caso. 1476 01:11:55,780 --> 01:11:58,993 1477 01:11:58,993 --> 01:12:00,770 >> LAUREN CARVALHO: Tudo bem, legal. 1478 01:12:00,770 --> 01:12:06,010 Vimos alguns disso, então vamos agora pensar sobre a divisão em C. Aqui eu sou 1479 01:12:06,010 --> 01:12:11,490 declarar e inicializar um float chamada resposta e dividindo 1 por 10, 1480 01:12:11,490 --> 01:12:14,860 e então eu estou imprimindo a resposta com duas casas decimais. 1481 01:12:14,860 --> 01:12:18,800 E note aqui, na minha declaração printf, quando eu quiser imprimir algo para dois 1482 01:12:18,800 --> 01:12:25,600 casas decimais,% .2 f é o que eu quero usar. 1483 01:12:25,600 --> 01:12:28,880 1484 01:12:28,880 --> 01:12:31,760 Assim, o ponto 2 é apenas dizer Eu preciso de dois lugares após a 1485 01:12:31,760 --> 01:12:34,980 decimal impresso. 1486 01:12:34,980 --> 01:12:38,740 >> Agora, o que vai acontecer se eu executar esse código? 1487 01:12:38,740 --> 01:12:40,500 Alguém tem uma idéia? 1488 01:12:40,500 --> 01:12:42,721 O que imprimir? 1489 01:12:42,721 --> 01:12:45,010 >> LUCAS FREITAS: Quais são nós esperando para começar. 1490 01:12:45,010 --> 01:12:46,810 >> LAUREN CARVALHO: O que fazer queremos, em primeiro lugar? 1491 01:12:46,810 --> 01:12:48,871 >> LUCAS FREITAS: [inaudível] 1492 01:12:48,871 --> 01:12:51,120 >> LAUREN CARVALHO: 0,1, sim. 1493 01:12:51,120 --> 01:12:52,325 Mas o que vai imprimir? 1494 01:12:52,325 --> 01:12:53,275 >> AUDIÊNCIA: [inaudível] 1495 01:12:53,275 --> 01:12:56,760 >> LAUREN CARVALHO: Bem, não, na verdade. 1496 01:12:56,760 --> 01:13:01,400 Isto é o que eu estava falando sobre o porquê você precisa manter o controle muito cuidadoso de 1497 01:13:01,400 --> 01:13:02,550 seus tipos de dados. 1498 01:13:02,550 --> 01:13:05,000 Então, que tipo de dados é isso? 1499 01:13:05,000 --> 01:13:06,250 É um int, certo? 1500 01:13:06,250 --> 01:13:07,600 Não há nenhuma casa decimal. 1501 01:13:07,600 --> 01:13:08,770 10 também é um int. 1502 01:13:08,770 --> 01:13:09,930 Não há nenhuma casa decimal. 1503 01:13:09,930 --> 01:13:15,770 >> Se eu dividir um int por um int, recebo uma int que não é de 0,1, porque ints 1504 01:13:15,770 --> 01:13:18,630 não pode ter casas decimais, mas apenas 0. 1505 01:13:18,630 --> 01:13:21,005 Porque um int apenas trunca fora das casas decimais. 1506 01:13:21,005 --> 01:13:24,280 >> LUCAS FREITAS: Então sempre que você fizer operações com inteiros, você vai 1507 01:13:24,280 --> 01:13:25,990 obter um int como resposta. 1508 01:13:25,990 --> 01:13:28,930 Então, basicamente, o que o computador está a fazer, é se divide por 1 1509 01:13:28,930 --> 01:13:31,520 10, e fica 0,1. 1510 01:13:31,520 --> 01:13:34,870 Mas, então, é como se, espere, este é deve ser um número inteiro, então você apenas 1511 01:13:34,870 --> 01:13:37,045 ignorar a 0,1, por isso é agora apenas 0. 1512 01:13:37,045 --> 01:13:41,782 >> LAUREN CARVALHO: Então, quando eu imprimir este fora, eu recebo 0,00 em vez de 0,10. 1513 01:13:41,782 --> 01:13:44,075 >> LUCAS FREITAS: Será que faz sentido? 1514 01:13:44,075 --> 01:13:45,530 >> LAUREN CARVALHO: Isso é meio de pena, certo? 1515 01:13:45,530 --> 01:13:47,290 >> LUCAS FREITAS: Então, como podemos resolver isso? 1516 01:13:47,290 --> 01:13:48,620 >> LAUREN CARVALHO: Vamos tentar corrigir isso. 1517 01:13:48,620 --> 01:13:51,570 1518 01:13:51,570 --> 01:13:54,810 Aqui está um exemplo de onde eu sou realmente lançar a 1 1519 01:13:54,810 --> 01:13:56,650 e de 10 a flutua. 1520 01:13:56,650 --> 01:13:58,800 Então, agora, um não é mais um int. 1521 01:13:58,800 --> 01:14:00,020 1 é um float. 1522 01:14:00,020 --> 01:14:02,590 By the way, esta é apenas a sintaxe para quando você quer para lançar a partir de um 1523 01:14:02,590 --> 01:14:03,410 Tipo de dados para outro. 1524 01:14:03,410 --> 01:14:07,140 Você pode simplesmente colocar o tipo de dados em parênteses e tem que apenas preceder 1525 01:14:07,140 --> 01:14:10,860 o valor que você está lançando. 1526 01:14:10,860 --> 01:14:15,800 >> Então, aqui, eu estou dividindo um carro alegórico por uma bóia para obter uma resposta float. 1527 01:14:15,800 --> 01:14:19,535 E sim, esta seria, em fato imprimir 0,10. 1528 01:14:19,535 --> 01:14:20,470 Será que isso faz sentido? 1529 01:14:20,470 --> 01:14:24,110 >> LUCAS FREITAS: Então tipo casting é apenas a conversão de um tipo para outro. 1530 01:14:24,110 --> 01:14:29,460 Assim flutuar 1 é realmente 1,000. 1531 01:14:29,460 --> 01:14:33,400 Não é exatamente isso, mas é algo com casas decimais 1532 01:14:33,400 --> 01:14:34,715 que é, na verdade, um. 1533 01:14:34,715 --> 01:14:35,960 Será que isso faz sentido? 1534 01:14:35,960 --> 01:14:36,260 Sim? 1535 01:14:36,260 --> 01:14:40,990 >> AUDIÊNCIA: E se você fez resposta flutuador é igual a 1,0 dividido por 10? 1536 01:14:40,990 --> 01:14:43,940 >> LAUREN CARVALHO: Você está realmente acontecendo ver que no próximo slide. 1537 01:14:43,940 --> 01:14:47,150 Isso é realmente o nosso muito próximo slide. 1538 01:14:47,150 --> 01:14:50,740 Esta é realmente uma mais agradável do que digite casting, eu acho. 1539 01:14:50,740 --> 01:14:53,470 Assim, estes dois são apenas carros alegóricos natureza do facto de eles 1540 01:14:53,470 --> 01:14:54,926 têm casas decimais. 1541 01:14:54,926 --> 01:14:55,300 Sim? 1542 01:14:55,300 --> 01:14:57,670 >> AUDIÊNCIA: E se você fez [inaudível] 1543 01:14:57,670 --> 01:14:59,480 dividido por 10? 1544 01:14:59,480 --> 01:15:02,270 >> LAUREN CARVALHO: Na verdade uma bóia dividido por um int na verdade, dá-lhe uma 1545 01:15:02,270 --> 01:15:03,670 flutuar, de modo que iria funcionar bem. 1546 01:15:03,670 --> 01:15:08,070 1547 01:15:08,070 --> 01:15:09,120 >> Espere, que todo mundo entende isso? 1548 01:15:09,120 --> 01:15:12,720 Porque é que isto vai ser realmente uma grande negócio em Pset1, na verdade. 1549 01:15:12,720 --> 01:15:13,130 Sim? 1550 01:15:13,130 --> 01:15:14,762 >> AUDIÊNCIA: Você poderia apenas rapidamente passar por cima da parte vermelha? 1551 01:15:14,762 --> 01:15:16,380 >> LAUREN CARVALHO: A parte vermelha, sim. 1552 01:15:16,380 --> 01:15:17,250 Lucas, você quer? 1553 01:15:17,250 --> 01:15:18,020 >> LUCAS FREITAS: OK. 1554 01:15:18,020 --> 01:15:20,570 Então lembre-se que o percentual é um espaço reservado. 1555 01:15:20,570 --> 01:15:22,150 É como um espaço em branco. 1556 01:15:22,150 --> 01:15:26,240 Então, vamos tentar entender tudo que está acontecendo aqui. 1557 01:15:26,240 --> 01:15:28,170 Percentual significa que é um espaço reservado. 1558 01:15:28,170 --> 01:15:33,640 Então você tem a f, o que significa que esse espaço reservado é para um float. 1559 01:15:33,640 --> 01:15:38,870 A última coisa que nós temos aqui é uma 0,2, o que significa que eu quero ter dois 1560 01:15:38,870 --> 01:15:42,410 casas decimais para a bóia. 1561 01:15:42,410 --> 01:15:48,510 >> Se eu tivesse% f, que ele vai colocar um monte de casas decimais. 1562 01:15:48,510 --> 01:15:54,170 Então eu só posso colocar 0,2 ou 0,1 ou 0,5, ou o que quer, e vai colocar isso 1563 01:15:54,170 --> 01:15:55,950 número de casas decimais. 1564 01:15:55,950 --> 01:15:59,950 A única coisa é que se você colocar como .100 Ou .1,000, não é, na verdade, 1565 01:15:59,950 --> 01:16:04,200 vai colocar todas essas casas decimais porque não tem memória suficiente 1566 01:16:04,200 --> 01:16:06,432 ter essa precisão. 1567 01:16:06,432 --> 01:16:07,955 >> Alguma outra pergunta? 1568 01:16:07,955 --> 01:16:08,450 Sim? 1569 01:16:08,450 --> 01:16:12,970 >> AUDIÊNCIA: Então flutuar apenas permite você ir além inteiros? 1570 01:16:12,970 --> 01:16:13,720 >> LUCAS FREITAS: Sim. 1571 01:16:13,720 --> 01:16:17,345 >> LAUREN CARVALHO: Bem, uma bóia apenas permite que você tenha casas decimais. 1572 01:16:17,345 --> 01:16:20,460 >> LUCAS FREITAS: Significa apenas que você agora pode ter números decimais. 1573 01:16:20,460 --> 01:16:25,728 >> AUDIÊNCIA: Por que nós sempre usar inteiros? 1574 01:16:25,728 --> 01:16:27,870 >> LUCAS FREITAS: Por que você usa números inteiros? 1575 01:16:27,870 --> 01:16:31,810 Talvez se você está contando de 0 a 10, você quer usar realmente um inteiro. 1576 01:16:31,810 --> 01:16:33,370 Você não precisa usar um float. 1577 01:16:33,370 --> 01:16:35,430 Em algumas situações, você não tem que efectivamente - 1578 01:16:35,430 --> 01:16:37,040 >> LAUREN CARVALHO: Talvez você Não quero decimais. 1579 01:16:37,040 --> 01:16:38,600 >> LUCAS FREITAS: Talvez você não quer usar um float. 1580 01:16:38,600 --> 01:16:42,660 >> LAUREN CARVALHO: A outra coisa é, lembre-se, tanto colocar uma bóia e um int 1581 01:16:42,660 --> 01:16:46,170 ter 32 bits para armazená-los, e talvez você não quer desperdiçar bits no 1582 01:16:46,170 --> 01:16:48,062 casas decimais. 1583 01:16:48,062 --> 01:16:49,750 >> LUCAS FREITAS: Yeah. 1584 01:16:49,750 --> 01:16:51,910 Assim como, basta pensar sobre isso. 1585 01:16:51,910 --> 01:16:55,200 Você tem 32 bits, tanto para um int e um float. 1586 01:16:55,200 --> 01:16:59,400 Para um int, todos os 32 bits ir para a parte inteira. 1587 01:16:59,400 --> 01:17:03,460 Se você usar um carro alegórico com 32 bits, você ter parte dessa memória que está sendo usado 1588 01:17:03,460 --> 01:17:06,820 para o número, para o número inteiro, e outro ser utilizado para o 1589 01:17:06,820 --> 01:17:08,300 casas decimais. 1590 01:17:08,300 --> 01:17:12,370 Então isso significa que você não pode chegar a números muito grandes com flutuadores porque 1591 01:17:12,370 --> 01:17:16,020 o flutuador já está usando um monte de memória para as casas decimais. 1592 01:17:16,020 --> 01:17:17,014 Sim? 1593 01:17:17,014 --> 01:17:21,487 >> AUDIÊNCIA: Essa primeira resposta, exatamente o que ele está fazendo? 1594 01:17:21,487 --> 01:17:25,214 É a definição do valor do flutuador igual ao espaço reservado para que você possa 1595 01:17:25,214 --> 01:17:26,954 recuperá-lo na próxima linha? 1596 01:17:26,954 --> 01:17:28,942 Diz flutuar resposta. 1597 01:17:28,942 --> 01:17:29,770 >> LUCAS FREITAS: Yeah. 1598 01:17:29,770 --> 01:17:37,200 Então, a resposta flutuar significa que você está recebendo agora um pouco balde na memória que 1599 01:17:37,200 --> 01:17:40,050 tem um float, e isso vai para ser chamado resposta. 1600 01:17:40,050 --> 01:17:42,040 Então é isso que faz flutuar resposta. 1601 01:17:42,040 --> 01:17:44,720 >> E então você diz que dentro de isso, você está indo para colocar 1602 01:17:44,720 --> 01:17:46,470 o resultado deste. 1603 01:17:46,470 --> 01:17:52,610 Então você vai fazer 1,0 dividido por 10.0, você recebe 0,1, e, em seguida, você coloca 1604 01:17:52,610 --> 01:17:53,490 que dentro de resposta. 1605 01:17:53,490 --> 01:17:57,540 >> LAUREN CARVALHO: Então, em uma linha, estamos declarar e inicializar este flutuador 1606 01:17:57,540 --> 01:18:00,070 chamado resposta. 1607 01:18:00,070 --> 01:18:04,470 >> LUCAS FREITAS: Curiosamente, embora Esta é apenas uma linha, que está fazendo 1608 01:18:04,470 --> 01:18:05,570 várias operações. 1609 01:18:05,570 --> 01:18:08,800 É apenas uma forma de deixar C você usa menos código. 1610 01:18:08,800 --> 01:18:12,310 É a mesma coisa que o ternário operador, como você pode apenas fazer uma 1611 01:18:12,310 --> 01:18:13,810 [Inaudível] em uma linha. 1612 01:18:13,810 --> 01:18:18,860 Ele está realmente fazendo a mesma coisa que fazendo resposta float, ponto e vírgula, e 1613 01:18:18,860 --> 01:18:23,060 então resposta é igual a esta, mas em vez de fazendo você fazer duas linhas para que, 1614 01:18:23,060 --> 01:18:24,160 é como um atalho. 1615 01:18:24,160 --> 01:18:24,520 Sim? 1616 01:18:24,520 --> 01:18:27,929 >> AUDIÊNCIA: Então, se você executou isso, seria de 0,10? 1617 01:18:27,929 --> 01:18:30,120 >> LUCAS FREITAS: Sim. 1618 01:18:30,120 --> 01:18:30,530 Sim? 1619 01:18:30,530 --> 01:18:34,540 >> AUDIÊNCIA: É realmente responder código, ou é apenas o nome? 1620 01:18:34,540 --> 01:18:36,010 >> LAUREN CARVALHO: Este é, na verdade, o código. 1621 01:18:36,010 --> 01:18:37,750 Isso é o que vamos para nomear nossa variável. 1622 01:18:37,750 --> 01:18:39,770 >> AUDIÊNCIA: Então é só um nome [inaudível]. 1623 01:18:39,770 --> 01:18:40,270 >> LAUREN CARVALHO: Yeah. 1624 01:18:40,270 --> 01:18:44,670 Eu poderia ter dito float x é igual a 1.0. 1625 01:18:44,670 --> 01:18:47,160 >> LUCAS FREITAS: A coisa é que o nome da variável é 1626 01:18:47,160 --> 01:18:48,400 algo que você usa. 1627 01:18:48,400 --> 01:18:49,690 É importante para você. 1628 01:18:49,690 --> 01:18:52,660 Para o programa atual, a única coisa o que importa é o valor que você 1629 01:18:52,660 --> 01:18:55,570 tem dentro do balde. 1630 01:18:55,570 --> 01:18:59,270 A razão pela qual você tem variáveis ​​e nomes de variáveis ​​é assim que você sabe 1631 01:18:59,270 --> 01:19:01,910 o que você está lidando, como que tipo de dados você está 1632 01:19:01,910 --> 01:19:03,040 acesso de cada vez. 1633 01:19:03,040 --> 01:19:07,580 Mas para o próprio código, se você chamar ele responde ou pergunta ou qualquer coisa, 1634 01:19:07,580 --> 01:19:09,530 muito bonito, não importa. 1635 01:19:09,530 --> 01:19:10,060 Não importa. 1636 01:19:10,060 --> 01:19:12,910 Contanto que você for consistente em todos os ocorrência e assim que você chamá-lo 1637 01:19:12,910 --> 01:19:13,620 outra coisa. 1638 01:19:13,620 --> 01:19:14,880 Sim? 1639 01:19:14,880 --> 01:19:17,208 >> AUDIÊNCIA: Faça as variáveis ir além da função? 1640 01:19:17,208 --> 01:19:20,902 Como se você fosse criar um suporte [Inaudível], você poderia apenas 1641 01:19:20,902 --> 01:19:21,806 [Inaudível] responder de novo? 1642 01:19:21,806 --> 01:19:22,550 >> LAUREN CARVALHO: Não. 1643 01:19:22,550 --> 01:19:23,300 >> AUDIÊNCIA: [inaudível] 1644 01:19:23,300 --> 01:19:24,200 >> LAUREN CARVALHO: Não. 1645 01:19:24,200 --> 01:19:26,930 Isso seria fora do escopo desta variável particular. 1646 01:19:26,930 --> 01:19:29,940 E na verdade, esse é o tipo de interessante, porque quando temos 1647 01:19:29,940 --> 01:19:33,010 coisas como loops ou estes se condições, se você declarar uma variável 1648 01:19:33,010 --> 01:19:36,330 dentro de um outro conjunto de chaves, realmente só existe 1649 01:19:36,330 --> 01:19:39,800 dentro dessas chaves. 1650 01:19:39,800 --> 01:19:43,088 >> AUDIÊNCIA: Uma última nota sobre os carros alegóricos [inaudível]. 1651 01:19:43,088 --> 01:19:46,076 Por que você nunca quer usar ints? 1652 01:19:46,076 --> 01:19:49,562 Esta é mais uma nota lateral que nada, mas o computador é 1653 01:19:49,562 --> 01:19:53,048 significativamente melhor em lidar com ints do que é flutuadores de manuseio. 1654 01:19:53,048 --> 01:19:55,040 É como uma ordem de magnitude mais rápido. 1655 01:19:55,040 --> 01:20:00,360 Então, se nós apenas manuseados somente carros alegóricos, as coisas seriam muito mais lento. 1656 01:20:00,360 --> 01:20:03,080 >> LAUREN CARVALHO: Na verdade, não parece a ser um problema com os flutuadores. 1657 01:20:03,080 --> 01:20:06,400 >> LUCAS FREITAS: Kind of a razão para disso, você pode pensar, é como em binário 1658 01:20:06,400 --> 01:20:08,480 você pode representar inteiros colocando 0 e 1 do. 1659 01:20:08,480 --> 01:20:09,980 >> LAUREN CARVALHO: Isso é a próxima coisa. 1660 01:20:09,980 --> 01:20:10,480 >> LUCAS FREITAS: OK. 1661 01:20:10,480 --> 01:20:10,740 Incrível. 1662 01:20:10,740 --> 01:20:11,480 >> LAUREN CARVALHO: Apenas mantenha esse pensamento. 1663 01:20:11,480 --> 01:20:13,800 >> LUCAS FREITAS: OK, eu vou dizer-lhe mais tarde. 1664 01:20:13,800 --> 01:20:16,920 >> LAUREN CARVALHO: Antes de chegarmos ao que Lucas estava dizendo, o operador 1665 01:20:16,920 --> 01:20:17,420 precedência. 1666 01:20:17,420 --> 01:20:18,220 Este é o senso comum. 1667 01:20:18,220 --> 01:20:20,830 Vocês têm feito isso bastante. 1668 01:20:20,830 --> 01:20:24,705 Assim, apenas se algo está entre parênteses, isso vai acontecer primeiro. 1669 01:20:24,705 --> 01:20:27,970 É a multiplicação tem precedência mais além, 1670 01:20:27,970 --> 01:20:30,330 subtração, coisas desse tipo. 1671 01:20:30,330 --> 01:20:34,700 Então, na verdade, apenas alguém quiser me diga o número um, na verdade, 1672 01:20:34,700 --> 01:20:36,674 avalia? 1673 01:20:36,674 --> 01:20:37,638 >> AUDIÊNCIA: 27. 1674 01:20:37,638 --> 01:20:39,090 >> LAUREN CARVALHO: 27? 1675 01:20:39,090 --> 01:20:39,550 É. 1676 01:20:39,550 --> 01:20:41,975 >> LUCAS FREITAS: Deixe-me dar doces para as pessoas. 1677 01:20:41,975 --> 01:20:42,850 >> LAUREN CARVALHO: Tudo bem. 1678 01:20:42,850 --> 01:20:44,100 E sobre o número dois? 1679 01:20:44,100 --> 01:20:46,880 1680 01:20:46,880 --> 01:20:48,340 E sobre o número dois? 1681 01:20:48,340 --> 01:20:49,280 >> AUDIÊNCIA: 22. 1682 01:20:49,280 --> 01:20:50,680 >> LAUREN CARVALHO: 22, sim. 1683 01:20:50,680 --> 01:20:51,570 Eu não sei quem começou isso. 1684 01:20:51,570 --> 01:20:52,694 Número três? 1685 01:20:52,694 --> 01:20:54,050 >> AUDIÊNCIA: 10. 1686 01:20:54,050 --> 01:20:55,300 >> LAUREN CARVALHO: 10, sim. 1687 01:20:55,300 --> 01:20:58,150 1688 01:20:58,150 --> 01:20:58,490 Legal. 1689 01:20:58,490 --> 01:21:01,280 Assim módulo. 1690 01:21:01,280 --> 01:21:03,700 Lucas, você quer explicar modulo? 1691 01:21:03,700 --> 01:21:07,150 >> LUCAS FREITAS: Modulo é este operador que é, na verdade, muito útil para uma 1692 01:21:07,150 --> 01:21:09,470 monte de problemas. 1693 01:21:09,470 --> 01:21:15,270 Se eu fizer 55 módulo 10, o que faz isso vamos dizer que eu quero 1694 01:21:15,270 --> 01:21:16,970 dividir 55 por 10. 1695 01:21:16,970 --> 01:21:18,240 O que eu ganho? 1696 01:21:18,240 --> 01:21:21,380 Ela se sente como se eu estou realmente apenas fazendo a divisão, o que é o 1697 01:21:21,380 --> 01:21:22,450 primeira vez que eu tenho o número inteiro? 1698 01:21:22,450 --> 01:21:23,190 >> AUDIÊNCIA: 5. 1699 01:21:23,190 --> 01:21:24,080 >> LUCAS FREITAS: 5. 1700 01:21:24,080 --> 01:21:26,230 E, em seguida, o restante é de 5, certo? 1701 01:21:26,230 --> 01:21:29,250 Então, é como 5 vezes 10 mais 5. 1702 01:21:29,250 --> 01:21:35,570 Basicamente, o módulo faz, ele tenta dividir esse número por este, e 1703 01:21:35,570 --> 01:21:37,440 ele vê o que é o resto da divisão. 1704 01:21:37,440 --> 01:21:40,080 >> LAUREN CARVALHO: Então é só devolve o resto. 1705 01:21:40,080 --> 01:21:41,920 Assim, o número um é o quê? 1706 01:21:41,920 --> 01:21:42,560 5. 1707 01:21:42,560 --> 01:21:43,336 Número dois? 1708 01:21:43,336 --> 01:21:44,150 >> AUDIÊNCIA: 3. 1709 01:21:44,150 --> 01:21:44,934 >> LAUREN CARVALHO: 3. 1710 01:21:44,934 --> 01:21:46,240 Número três? 1711 01:21:46,240 --> 01:21:47,190 0. 1712 01:21:47,190 --> 01:21:48,410 E quatro é 1. 1713 01:21:48,410 --> 01:21:48,665 Exatamente. 1714 01:21:48,665 --> 01:21:49,915 >> LUCAS FREITAS: Simples, não é? 1715 01:21:49,915 --> 01:21:54,270 1716 01:21:54,270 --> 01:21:56,560 >> LAUREN CARVALHO: Por que não vamos pular esta só porque nós realmente não tenho 1717 01:21:56,560 --> 01:21:59,780 tempo, e as pessoas parecem entender. 1718 01:21:59,780 --> 01:22:03,330 Então aqui está o que Lucas era apenas falando. 1719 01:22:03,330 --> 01:22:08,030 >> LUCAS FREITAS: Outra razão pela qual eu usaria inteiros em vez de flutuadores é 1720 01:22:08,030 --> 01:22:10,840 flutuadores que são muito imprecisas. 1721 01:22:10,840 --> 01:22:12,720 E por que são imprecisas? 1722 01:22:12,720 --> 01:22:17,140 David disse que para representar um inteiro, por exemplo, usamos 0 e 1723 01:22:17,140 --> 01:22:17,810 1, certo? 1724 01:22:17,810 --> 01:22:22,370 E então você basicamente fazer o multiplicação, fazer todos aqueles 1725 01:22:22,370 --> 01:22:30,000 operações de saber o número decimal você tem em vez do binário. 1726 01:22:30,000 --> 01:22:33,040 >> O que acontece agora se eu tentar para colocar os pontos decimais? 1727 01:22:33,040 --> 01:22:37,680 Na verdade, por exemplo, se eu tiver o número como 3,33333? 1728 01:22:37,680 --> 01:22:40,250 Parece que mais de 3 10. 1729 01:22:40,250 --> 01:22:44,950 Como é que eu vou guardar todo o 3 É que eu tenho depois disso? 1730 01:22:44,950 --> 01:22:47,120 É realmente difícil, certo? 1731 01:22:47,120 --> 01:22:49,580 Você não pode simplesmente dizer ao computador, hey, eu tenho um 3, e 1732 01:22:49,580 --> 01:22:50,520 então você fazer isso para sempre. 1733 01:22:50,520 --> 01:22:52,810 Na verdade, o computador não é inteligente o suficiente para isso. 1734 01:22:52,810 --> 01:22:58,300 >> Então, basicamente, todo o seu computador faz é que tenta colocar o maior número de dígitos como 1735 01:22:58,300 --> 01:23:00,950 ele pode até a memória que você tem. 1736 01:23:00,950 --> 01:23:05,890 Então, vamos dizer que ele vai dizer 3.3333, e é isso. 1737 01:23:05,890 --> 01:23:10,690 Portanto, não é capaz de realmente expressar precisamente o que é bóia. 1738 01:23:10,690 --> 01:23:13,240 >> LAUREN CARVALHO: Nós temos um número finito de bits, o que significa que não 1739 01:23:13,240 --> 01:23:17,910 cada número decimal vai ser capaz de ser representado com precisão. 1740 01:23:17,910 --> 01:23:24,910 E assim, neste exemplo, se estivermos imprimir 0,1, agora estamos impressão 1741 01:23:24,910 --> 01:23:26,475 fora 20 lugares. 1742 01:23:26,475 --> 01:23:30,250 >> LUCAS FREITAS: Assim como eu estava dizendo vocês, você pode colocar qualquer número. 1743 01:23:30,250 --> 01:23:36,520 Mas, se você acabou de fazer os dois lugares, você deseja obter 0,10, mas se você colocar 20 1744 01:23:36,520 --> 01:23:43,630 lugares, ele vai te mostrar um monte 's de porque isso é o que você pode colocar 1745 01:23:43,630 --> 01:23:45,720 na memória, certo? 1746 01:23:45,720 --> 01:23:48,800 >> Mas aqui, até o 0, e depois é só colocá-lo um 1747 01:23:48,800 --> 01:23:50,030 monte de números aleatórios. 1748 01:23:50,030 --> 01:23:52,590 Este é tipo como alguns - 1749 01:23:52,590 --> 01:23:56,190 >> LAUREN CARVALHO: Isso é porque nós somos não é capaz de representar este decimal 1750 01:23:56,190 --> 01:23:58,320 precisamente com o número de bits que têm. 1751 01:23:58,320 --> 01:23:59,730 >> LUCAS FREITAS: E então o computador é basicamente 1752 01:23:59,730 --> 01:24:01,470 dando-lhe um número de lixo. 1753 01:24:01,470 --> 01:24:04,530 Este não é, na verdade, o valor do número. 1754 01:24:04,530 --> 01:24:08,242 >> AUDIÊNCIA: É o mais perto que ele pode ficar [inaudível] 1755 01:24:08,242 --> 01:24:09,613 usando o [inaudível]. 1756 01:24:09,613 --> 01:24:12,685 1757 01:24:12,685 --> 01:24:18,830 >> LAUREN CARVALHO: Então, a implicação isso é que vamos dizer que em vez de 1758 01:24:18,830 --> 01:24:27,680 sendo 0.100014, seja qual for, e se fosse 0,0999 - 1759 01:24:27,680 --> 01:24:30,470 Bem, OK. 1760 01:24:30,470 --> 01:24:38,280 Vamos fingir que a resposta real para isso foi 0,9999999. 1761 01:24:38,280 --> 01:24:40,740 Isso é muito próximo de 1, mas não é exatamente 1. 1762 01:24:40,740 --> 01:24:42,840 É 0,99999. 1763 01:24:42,840 --> 01:24:48,140 >> Isso significa que, se eu tomar essa 0,999, e eu o lancei para um int, eu recebo 0. 1764 01:24:48,140 --> 01:24:49,460 Eu não entendo 1. 1765 01:24:49,460 --> 01:24:53,050 >> LUCAS FREITAS: Porque lembre-se, fundição de float para int, você só 1766 01:24:53,050 --> 01:24:54,880 ignorar todas as casas decimais. 1767 01:24:54,880 --> 01:24:56,400 Você simplesmente ignorá-los. 1768 01:24:56,400 --> 01:25:00,170 Não há tal coisa como o arredondamento para cima ou correr para baixo quando você estereotipado. 1769 01:25:00,170 --> 01:25:03,310 Na verdade, não é esta função que faz o arredondamento, o que é muito 1770 01:25:03,310 --> 01:25:08,840 importante, mas você só acho que quando você faz typecasting, é apenas 1771 01:25:08,840 --> 01:25:09,720 vai apagar tudo. 1772 01:25:09,720 --> 01:25:13,970 Assim, mesmo se você tiver 0,99999, vai apenas para dar 0 se typecast 1773 01:25:13,970 --> 01:25:14,800 [Inaudível] um número inteiro. 1774 01:25:14,800 --> 01:25:17,480 >> LAUREN CARVALHO: Então, basta ser realmente consciente ponto de flutuante em precisão, 1775 01:25:17,480 --> 01:25:20,410 especialmente quando você começa utilizar flutuadores em Pset1. 1776 01:25:20,410 --> 01:25:22,790 Mas a caminhada através deveria avisá-lo de que tão bem. 1777 01:25:22,790 --> 01:25:26,100 >> LUCAS FREITAS: E na verdade, é realmente difícil, por exemplo, se eu fiz 1778 01:25:26,100 --> 01:25:31,570 resposta flutuador 1 é igual a 1,0 sobre 10, e depois flutuar resposta 2 1779 01:25:31,570 --> 01:25:35,540 é igual a 10,0 sobre 100,0. 1780 01:25:35,540 --> 01:25:36,890 Eles são o mesmo número, certo? 1781 01:25:36,890 --> 01:25:38,540 0,1, certo? 1782 01:25:38,540 --> 01:25:41,700 1 mais de 10 ou 10 mais de 100. 1783 01:25:41,700 --> 01:25:46,360 Mas agora, se eu tentar ver a igualdade, como se a resposta 1 é igual a responder 2, 1784 01:25:46,360 --> 01:25:49,300 talvez ele não está realmente acontecendo ser a mesma coisa. 1785 01:25:49,300 --> 01:25:50,720 Assim carros alegóricos são do tipo assim. 1786 01:25:50,720 --> 01:25:51,970 Eles são como fazer a igualdade. 1787 01:25:51,970 --> 01:25:55,136