1 00:00:00,000 --> 00:00:11,375 2 00:00:11,375 --> 00:00:14,430 >> DAVID MALAN: Este é CS50, e esta é o início de uma semana. 3 00:00:14,430 --> 00:00:17,930 E o que nós pensamos fazer é puxar para trás a cortina de um dispositivo que muitos 4 00:00:17,930 --> 00:00:20,970 de vocês provavelmente já passou agora durante anos, mas talvez nunca se 5 00:00:20,970 --> 00:00:22,280 conhecido o que é. 6 00:00:22,280 --> 00:00:26,000 Portanto, este dispositivo provavelmente vai olhar familiar para a maioria de vocês até agora. 7 00:00:26,000 --> 00:00:32,972 >> [REPRODUÇÃO] 8 00:00:32,972 --> 00:00:36,150 >> -A vitória da matemática e habilidade mecânica é esta nova grande 9 00:00:36,150 --> 00:00:39,120 calculadora automática em Universidade de Harvard. 10 00:00:39,120 --> 00:00:43,220 Problemas complicados de matemática colocar através da máquina, sob forma codificada na 11 00:00:43,220 --> 00:00:47,840 fita são precisamente resolvido em um minuto fracção do tempo necessário para a 12 00:00:47,840 --> 00:00:49,090 cálculo humano. 13 00:00:49,090 --> 00:01:00,090 14 00:01:00,090 --> 00:01:04,080 >> Projetado para agilizar todas as formas de pesquisa matemática e científica, 15 00:01:04,080 --> 00:01:07,860 o cérebro mecânico gigante vontade trabalhar para os Estados Unidos 16 00:01:07,860 --> 00:01:09,180 Marinha até o final da guerra. 17 00:01:09,180 --> 00:01:18,180 18 00:01:18,180 --> 00:01:18,600 >> [FIM REPRODUÇÃO DE VÍDEO] 19 00:01:18,600 --> 00:01:21,980 >> DAVID MALAN: Então é isso que você vê na Centro de Ciências, que é onde 20 00:01:21,980 --> 00:01:23,540 essa máquina agora está alojado. 21 00:01:23,540 --> 00:01:25,910 Na verdade, você só vê parte dela. 22 00:01:25,910 --> 00:01:28,800 Apenas uma parte está actualmente em exposição, e isso é um dispositivo chamado 23 00:01:28,800 --> 00:01:31,970 a marca I, e foi essencialmente realmente um enorme calculadora. 24 00:01:31,970 --> 00:01:36,250 Ele foi sucedido pelo Mark II, e é do Mark II que realmente 25 00:01:36,250 --> 00:01:39,210 ter um pouco de léxico. 26 00:01:39,210 --> 00:01:43,780 >> Este é o primeiro registro de algo que está prestes a tornar-se tudo 27 00:01:43,780 --> 00:01:45,860 muito familiarizado com todo o decorrer do semestre - 28 00:01:45,860 --> 00:01:48,460 ou seja, um bug. 29 00:01:48,460 --> 00:01:52,030 Então, ele saiu em um ponto a Marca Dispositivo II não estava funcionando 30 00:01:52,030 --> 00:01:55,930 corretamente, e após uma inspeção mais próxima, houve de fato um erro - uma mariposa - 31 00:01:55,930 --> 00:01:56,910 que traça - 32 00:01:56,910 --> 00:01:57,610 interior. 33 00:01:57,610 --> 00:02:03,130 E desde então, nos referimos erros em programas como erros. 34 00:02:03,130 --> 00:02:05,330 Então, mais sobre isso mais para vir. 35 00:02:05,330 --> 00:02:08,919 >> Falando em vídeo, bem como, se não tiver, sei que é CS50 36 00:02:08,919 --> 00:02:09,669 obviamente filmado. 37 00:02:09,669 --> 00:02:13,330 As palestras vão tipicamente logo após classe em uma espécie de pré-lançamento 38 00:02:13,330 --> 00:02:17,240 formato inéditos, e, em seguida, um dia ou dois depois, nós colocamos uma resolução maior 39 00:02:17,240 --> 00:02:18,490 ea versão de maior qualidade. 40 00:02:18,490 --> 00:02:21,800 Você pode recordar Vanessa, que teve a sorte de jogar com Google Vidro, 41 00:02:21,800 --> 00:02:23,540 que me lembrei de carregar este tempo. 42 00:02:23,540 --> 00:02:26,450 Então, se você quiser vir até depois da aula e jogar, eles devem trabalhar hoje. 43 00:02:26,450 --> 00:02:30,816 E se você gostaria de ver o que Vanessa vi no outro dia, o que você vai ver 44 00:02:30,816 --> 00:02:35,260 por aqui - deixe-me aumentar o volume aqui no meu laptop. 45 00:02:35,260 --> 00:02:35,690 >> [REPRODUÇÃO] 46 00:02:35,690 --> 00:02:37,620 >> -Então deixe-me esta fila é para cima. 47 00:02:37,620 --> 00:02:38,070 Tudo bem. 48 00:02:38,070 --> 00:02:40,930 Então tocar isso. 49 00:02:40,930 --> 00:02:41,720 Tudo bem. 50 00:02:41,720 --> 00:02:43,470 OK, Glass. 51 00:02:43,470 --> 00:02:44,720 Gravar um vídeo. 52 00:02:44,720 --> 00:02:47,240 53 00:02:47,240 --> 00:02:48,640 >> Tudo bem. 54 00:02:48,640 --> 00:02:50,446 Vanessa? 55 00:02:50,446 --> 00:02:50,870 >> [FIM REPRODUÇÃO DE VÍDEO] 56 00:02:50,870 --> 00:02:53,485 >> DAVID MALAN: Tudo bem, então a razão que não funcionou para a maioria de vocês em 57 00:02:53,485 --> 00:02:56,540 Ao final da aula foi porque eu continuei para gravar uma hora desse 58 00:02:56,540 --> 00:02:59,505 imagens apontando para mim depois Coloquei os óculos para baixo. 59 00:02:59,505 --> 00:03:04,010 Então, hoje, eu vou deixá-los fora, mas graças a você Vanessa por ser um 60 00:03:04,010 --> 00:03:05,420 bom esporte. 61 00:03:05,420 --> 00:03:08,330 >> Enquanto isso, um par de anúncios antes de avançar hoje. 62 00:03:08,330 --> 00:03:11,120 Então, um, CS50 tem uma tradição de fazer o que pudermos para tentar fazer uma muito 63 00:03:11,120 --> 00:03:12,630 grande classe sentir menor. 64 00:03:12,630 --> 00:03:16,640 E para esse fim, a maioria toda sexta-feira, nos reunimos em um restaurante em 65 00:03:16,640 --> 00:03:20,160 praça, Fire and Ice, com 30 ou 40 de seus colegas, eu mesmo, alguns dos 66 00:03:20,160 --> 00:03:22,520 o corpo docente, e nós apenas ter um almoço muito casual. 67 00:03:22,520 --> 00:03:26,280 Nós muitas vezes convidar amigos da indústria, alunos da classe, ex-alunos da 68 00:03:26,280 --> 00:03:30,340 faculdade, na verdade, apenas para conversar cada aos outros, falar sobre a vida após a 69 00:03:30,340 --> 00:03:32,260 faculdade, vida na faculdade, e semelhantes. 70 00:03:32,260 --> 00:03:35,570 Então, se você gostaria de participar desta primeiro como o almoço nesta sexta-feira 71 00:03:35,570 --> 00:03:38,640 13:15, de cabeça para que URL em algum ponto. 72 00:03:38,640 --> 00:03:40,830 >> O espaço é limitado, por isso vamos fazer chegar primeiro servir. 73 00:03:40,830 --> 00:03:43,880 Mas vamos fazer isso de novo em um recorrente base, então não se preocupe se você não 74 00:03:43,880 --> 00:03:45,800 isso nesse primeiro lote. 75 00:03:45,800 --> 00:03:48,960 >> Agora, em termos de recursos desde curricularly pelo curso 76 00:03:48,960 --> 00:03:51,500 há uma série inteira, e se você não tem puxou o site do curso 77 00:03:51,500 --> 00:03:54,310 já, em particular, em palestras, você verá que tudo 78 00:03:54,310 --> 00:03:57,070 que fizemos na semana passada está lá, tanto em vídeo e uma espécie 79 00:03:57,070 --> 00:03:58,435 de forma eletrônica. 80 00:03:58,435 --> 00:04:01,210 Mas, além dos vídeos, você vai encontrar que existem agora texto completo 81 00:04:01,210 --> 00:04:03,290 transcritos, por exemplo, de cada palestra. 82 00:04:03,290 --> 00:04:08,260 >> Então, se nós realmente voltar a esta tela aqui com Vanessa, e navegar 83 00:04:08,260 --> 00:04:12,010 para o canto inferior da tela, você vai descobrir que, na verdade, não para 84 00:04:12,010 --> 00:04:15,060 A palestra de sexta-feira, mas se voltar a Quarta-feira, uma vez que este recurso tem um 85 00:04:15,060 --> 00:04:17,870 alguns dias, você vai achar que você pode realmente puxar para cima, para melhor ou para 86 00:04:17,870 --> 00:04:22,260 pior, cada palavra que eu ou um voluntário no palco, disse. 87 00:04:22,260 --> 00:04:23,270 E mais do que isso. 88 00:04:23,270 --> 00:04:25,700 Você pode, na verdade, busca-lo, você pode clique em qualquer uma dessas frases, saltar 89 00:04:25,700 --> 00:04:29,250 ao ponto em que o vídeo, para todos e no fim do fabrico do material de todos os 90 00:04:29,250 --> 00:04:30,620 mais navegável. 91 00:04:30,620 --> 00:04:34,550 >> Mas se você prefere não segui-lo com tantos detalhes, você vai encontrar, por 92 00:04:34,550 --> 00:04:39,710 exemplo, este pequeno menu aqui para 1.5x velocidade, a velocidade de 2x, ou i f i já 93 00:04:39,710 --> 00:04:42,100 falam muito rápido para você, velocidade 0,75 x. 94 00:04:42,100 --> 00:04:45,190 Assim, percebe tudo isso é disponível lá para você. 95 00:04:45,190 --> 00:04:49,120 >> Mas, além disso, para palestras, realizar que também fazem esses recursos 96 00:04:49,120 --> 00:04:50,530 também disponível. 97 00:04:50,530 --> 00:04:55,240 Slides, exemplo de código, qualquer coisa que eu fazer no palco ou no avanço da classe, 98 00:04:55,240 --> 00:04:58,160 vamos postar lá para que você possa jogar junto em casa ou no Sanders. 99 00:04:58,160 --> 00:05:01,280 Mas o que nós também pensamos em fazer isso ano, pela primeira vez é também 100 00:05:01,280 --> 00:05:04,240 fornecê-lo com orientações destes exemplos. 101 00:05:04,240 --> 00:05:08,120 Cada vez mais, como eu já refletiu sobre o valor das palestras de CS50, eu comecei 102 00:05:08,120 --> 00:05:11,450 a questionar o quão útil é para Vocês se sentar lá, para mim estar 103 00:05:11,450 --> 00:05:15,020 aqui, e para mim falar com você, particularmente como material, o 104 00:05:15,020 --> 00:05:17,020 exemplos, se tornam mais complexas. 105 00:05:17,020 --> 00:05:20,790 Porque, invariavelmente, após um certo número de minutos, alguém vai sair da zona, e 106 00:05:20,790 --> 00:05:24,310 então você perca algum insight chave de alguns exemplo, e então você está essencialmente 107 00:05:24,310 --> 00:05:27,720 ido para o resto da classe, o que não é o melhor uso de 108 00:05:27,720 --> 00:05:31,330 seu tempo, ou, realmente, a nossa coletivamente como uma classe. 109 00:05:31,330 --> 00:05:33,920 >> E então o que nós pensamos em tentar fazer, particularmente para alguns dos mais 110 00:05:33,920 --> 00:05:37,700 exemplos complexos que eu não poderia fazer justiça em sala de aula, que não pode 111 00:05:37,700 --> 00:05:41,560 tenho tempo para em sala de aula, ou você pode apenas a zona durante, é que vamos produzir 112 00:05:41,560 --> 00:05:45,500 uma série de orientações destes exemplos para que, se você vai, para 113 00:05:45,500 --> 00:05:51,410 exemplo, a página de vídeo de última sexta-feira aqui com exemplos, você verá que 114 00:05:51,410 --> 00:05:54,050 para sexta-feira, há agora esta ligação para orientações. 115 00:05:54,050 --> 00:05:55,780 E o formato destes vai mudar ao longo do tempo. 116 00:05:55,780 --> 00:05:58,080 Por enquanto, estamos usando uma simples Lista YouTube. 117 00:05:58,080 --> 00:06:00,980 >> Mas o que eu fiz com a nossa equipe de produção depois foi percorrer cada 118 00:06:00,980 --> 00:06:04,480 e cada um desses exemplos, novamente, espero que apontar com muito mais 119 00:06:04,480 --> 00:06:07,550 clareza exatamente o que o delivery pode ser ou deveria ser de cada um. 120 00:06:07,550 --> 00:06:10,560 Então você vai encontrar, por exemplo, a partir do último semana, todos os exemplos scratch 121 00:06:10,560 --> 00:06:12,950 passamos são feitos de forma linear em que a moda. 122 00:06:12,950 --> 00:06:15,840 Portanto, sinta-se livre para participar ou não envolver neste material. 123 00:06:15,840 --> 00:06:19,140 Realmente um tema deste curso particular é que há provavelmente mais 124 00:06:19,140 --> 00:06:21,870 na forma de recursos que lhe poderia absorver mais 125 00:06:21,870 --> 00:06:23,260 o curso de um semestre. 126 00:06:23,260 --> 00:06:23,980 >> Mas isso é proposital. 127 00:06:23,980 --> 00:06:26,990 Era para ser assim que você, como cada aluno pode se auto-select 128 00:06:26,990 --> 00:06:28,070 com base em seu estilo de aprendizagem. 129 00:06:28,070 --> 00:06:29,790 Então, se palestras trabalhar para você, ótimo. 130 00:06:29,790 --> 00:06:31,090 Se secções trabalhar para você, ótimo. 131 00:06:31,090 --> 00:06:32,930 Se orientações para trabalhar é melhor, ótimo. 132 00:06:32,930 --> 00:06:36,980 Ela realmente vai ser até você para escolher quais recursos funcionam melhor para você. 133 00:06:36,980 --> 00:06:40,380 >> Finalmente, graças a um ex-aluno da Claro, nós também fornecemos uma canônica 134 00:06:40,380 --> 00:06:41,890 conjunto de notas escriba. 135 00:06:41,890 --> 00:06:46,270 Então, ao invés de ter vocês cabeças para baixo em palestras rabiscando 136 00:06:46,270 --> 00:06:49,880 coisas que surgem em sala de aula, nós, os pessoal, irá fornecer-lhe com o que 137 00:06:49,880 --> 00:06:53,410 sentir são um conjunto canônico de notas para livrá-lo de que a distração, de modo que 138 00:06:53,410 --> 00:06:57,150 se você está aqui e engajada, você está verdadeiramente comprometidos com o que está acontecendo, 139 00:06:57,150 --> 00:07:00,110 com seus colegas estão fazendo em cima palco, com o que se passa na tela, 140 00:07:00,110 --> 00:07:03,570 e não simplesmente escrever textualmente o que aconteceu ter sido dito. 141 00:07:03,570 --> 00:07:06,730 Assim, percebe todos esses recursos estão disponíveis para você. 142 00:07:06,730 --> 00:07:09,210 >> Seccionamento, em resposta a um FAQ, começará nesta quarta-feira. 143 00:07:09,210 --> 00:07:12,050 Nós essencialmente esperar até depois de mais outras classes são feitas para que possamos 144 00:07:12,050 --> 00:07:14,420 minimizar o número de alterações que precisamos fazer. 145 00:07:14,420 --> 00:07:20,010 Mas chegando neste fim de semana, começando Domingo, será um exemplo, um tempo de 146 00:07:20,010 --> 00:07:21,360 o que chamamos de super-seções. 147 00:07:21,360 --> 00:07:23,990 Estes serão filmados para aqueles que não podem participar e, essencialmente, o 148 00:07:23,990 --> 00:07:28,880 cabeças do curso vai nos atravessar alguns da porção C do curso, 149 00:07:28,880 --> 00:07:32,330 em direção a uma final de um conjunto de problemas, que Vai ser o nosso primeiro C com base 150 00:07:32,330 --> 00:07:33,140 conjunto de problemas. 151 00:07:33,140 --> 00:07:36,240 E estes serão apenas seções opcionais em antecipação do que vai 152 00:07:36,240 --> 00:07:40,010 tornar-se seções recorrentes levaram por do curso 50 plus 153 00:07:40,010 --> 00:07:41,600 ensinando companheiros semanal. 154 00:07:41,600 --> 00:07:45,130 Aos domingos ou segundas-feiras ou terças-feiras, nós têm seções 90 minutos de uma forma muito 155 00:07:45,130 --> 00:07:48,020 sentido tradicional, que será oportunidades para as mãos e mais 156 00:07:48,020 --> 00:07:50,800 revisão íntima da o material de curso. 157 00:07:50,800 --> 00:07:53,820 >> Sem mais delongas, deixe-me apresentar cabeças do curso, que são 158 00:07:53,820 --> 00:07:57,380 nos bastidores com me, fazendo com que tudo aconteça. 159 00:07:57,380 --> 00:08:02,670 Se aqueles que estão aqui hoje, poderia se juntar a mim, Rob e Lauren e José e Lucas, todos 160 00:08:02,670 --> 00:08:05,770 dos quais foram com o Naturalmente durante algum tempo. 161 00:08:05,770 --> 00:08:08,450 RJ é o terceiro membro da nossa equipe. 162 00:08:08,450 --> 00:08:11,720 Ele não pôde estar aqui hoje, mas ele me pediu para mostrar uma foto dele. 163 00:08:11,720 --> 00:08:14,600 Eu não tenho certeza que ele queria isso , mas lá está ele. 164 00:08:14,600 --> 00:08:18,350 >> E deixe-me apenas permitir que a equipe de dizer Olá e apresentar-se de modo que 165 00:08:18,350 --> 00:08:22,260 você começa a conhecê-los, bem como sua próprio companheiro ensino este termo. 166 00:08:22,260 --> 00:08:23,490 >> LAUREN CARVALHO: Oi. 167 00:08:23,490 --> 00:08:24,740 Meu nome é Lauren Carvalho. 168 00:08:24,740 --> 00:08:26,900 Eu sou um tutor residente em Leverett House. 169 00:08:26,900 --> 00:08:31,120 Eu também estou super animado para ser um TV de cabeça para CS50 este ano. 170 00:08:31,120 --> 00:08:35,830 >> CS50 é uma classe muito difícil, bem como uma classe muito grande, então se você 171 00:08:35,830 --> 00:08:38,780 tiver alguma dúvida, se você se sentir como você está ficando para trás, não hesite em 172 00:08:38,780 --> 00:08:43,840 chegar a qualquer um de nós em heads@cs50.het, ou para mim, se você 173 00:08:43,840 --> 00:08:46,330 Gosto de brincar com o meu ouro puppy retriever. 174 00:08:46,330 --> 00:08:48,060 Aqui é Lucas. 175 00:08:48,060 --> 00:08:48,560 >> LUCAS FREITAS: Ei, pessoal. 176 00:08:48,560 --> 00:08:49,330 Meu nome é Lucas Freitas. 177 00:08:49,330 --> 00:08:51,880 Eu sou um júnior [inaudível] 178 00:08:51,880 --> 00:08:53,630 ciência da computação e lingüística. 179 00:08:53,630 --> 00:08:58,030 Na verdade eu sou do Brasil, e eu também realizar estudos do leste asiático. 180 00:08:58,030 --> 00:09:00,740 Então, se você tem alguma dúvida sobre ciência da computação, língua ou 181 00:09:00,740 --> 00:09:01,870 qualquer coisa, é só me avisar. 182 00:09:01,870 --> 00:09:05,630 Ou CS50, especialmente. 183 00:09:05,630 --> 00:09:05,880 >> JOSEPH ONG: Oi. 184 00:09:05,880 --> 00:09:06,265 Eu sou Joseph. 185 00:09:06,265 --> 00:09:11,360 Eu sou um computador sênior estudar ciência em Elliott House. 186 00:09:11,360 --> 00:09:13,500 Então, vamos ver. 187 00:09:13,500 --> 00:09:16,530 Você vai me ver por aí carregando um destes enormes câmaras. 188 00:09:16,530 --> 00:09:21,110 Eu sou o residente fotógrafo pessoal para 50, bem como, e muitas vezes os alunos 189 00:09:21,110 --> 00:09:25,140 às vezes me confundir com um turista asiático. 190 00:09:25,140 --> 00:09:29,220 >> Então, se você me ver com uma câmera, não fuja. 191 00:09:29,220 --> 00:09:32,960 Apenas sorria e não se acanhe. 192 00:09:32,960 --> 00:09:34,870 E eu espero que você goste 50. 193 00:09:34,870 --> 00:09:38,690 Eu gostei muito quando eu peguei, e é por isso que eu tenho para TFing 194 00:09:38,690 --> 00:09:41,164 Nesses três anos. 195 00:09:41,164 --> 00:09:41,570 >> ROB BOWDEN: Oi. 196 00:09:41,570 --> 00:09:42,550 Eu sou Rob. 197 00:09:42,550 --> 00:09:46,240 Este é o meu quarto semestre com CS50. 198 00:09:46,240 --> 00:09:47,430 I acabou de se formar em maio. 199 00:09:47,430 --> 00:09:49,650 Eu estava em Kirkland. 200 00:09:49,650 --> 00:09:53,670 Estou animado para este semestre, e espero que também o são. 201 00:09:53,670 --> 00:09:56,650 >> DAVID MALAN: Obrigado para este ano cabeças, e assim a RJ. 202 00:09:56,650 --> 00:09:59,910 203 00:09:59,910 --> 00:10:02,310 >> Então algumas notas finais sobre recursos. 204 00:10:02,310 --> 00:10:04,090 Um, p definir 0 já está de pé. 205 00:10:04,090 --> 00:10:06,620 Este só existe na norma edição, que é destinado para o 206 00:10:06,620 --> 00:10:07,610 elementos da classe. 207 00:10:07,610 --> 00:10:10,940 Começando com um conjunto de p, haverá edições de hackers da maioria dos conjuntos de problemas, 208 00:10:10,940 --> 00:10:14,660 que, novamente, vai cobrir o material com um pouco mais de um desafio, enquanto 209 00:10:14,660 --> 00:10:17,400 ainda tocando em algum dos mesmos temas. 210 00:10:17,400 --> 00:10:21,400 Fazer dar uma olhada no site do curso para que a especificação para p set 0. 211 00:10:21,400 --> 00:10:25,140 >> O horário de expediente, também, vai começar esta semana, hoje, amanhã, quarta-feira, 212 00:10:25,140 --> 00:10:27,670 e quinta-feira em várias refeições salas no campus. 213 00:10:27,670 --> 00:10:32,140 Confira cs50.net/ohs para o escritório horas para o curso, e perceber isso 214 00:10:32,140 --> 00:10:34,430 haverá oportunidades muito casual, Certamente, no início do 215 00:10:34,430 --> 00:10:37,190 semestre, de encontrar com o seu laptop durante as férias de cérebro. 216 00:10:37,190 --> 00:10:40,500 Trazer alguns amigos e conversar com o TFs do curso e CAs com qualquer 217 00:10:40,500 --> 00:10:41,750 perguntas que você possa ter. 218 00:10:41,750 --> 00:10:45,320 >> E eu não posso enfatizar o suficiente, mesmo para zero e 0 conjunto de problemas, não 219 00:10:45,320 --> 00:10:47,110 realmente nenhuma pergunta idiota. 220 00:10:47,110 --> 00:10:51,200 Não há aluno muito desconfortável fazer perguntas. 221 00:10:51,200 --> 00:10:53,940 Sinta-se livre para tirar proveito deste recurso. 222 00:10:53,940 --> 00:10:56,430 Ele vai estar lá recorrentemente ao longo do semestre, 223 00:10:56,430 --> 00:10:57,840 como vai CS50 Discutir. 224 00:10:57,840 --> 00:11:00,900 Esta é a discussão on-line do curso fóruns em que o endereço lá. 225 00:11:00,900 --> 00:11:04,490 >> O que nós também vamos fazer durante as aulas é também monitorar isso, graças ao 226 00:11:04,490 --> 00:11:05,580 equipe de professores do curso. 227 00:11:05,580 --> 00:11:08,390 E por isso, se você tem uma pergunta durante palestra, porque eu disse algo 228 00:11:08,390 --> 00:11:11,690 mal ou não em todos, por todos os meios, pergunte que em tempo real, se você tem o seu 229 00:11:11,690 --> 00:11:15,700 laptop ou telefone no site, e vamos fazer o nosso melhor em tempo real para 230 00:11:15,700 --> 00:11:17,410 responder a isso. 231 00:11:17,410 --> 00:11:21,500 >> Há dúvidas sobre CS 50? 232 00:11:21,500 --> 00:11:23,930 Então, um últimas notas da mina. 233 00:11:23,930 --> 00:11:25,530 Essa questão do SAT unsat. 234 00:11:25,530 --> 00:11:28,550 Como você finalizar seus cartões de estudo, se não tiver, perceber que o 235 00:11:28,550 --> 00:11:32,360 visão global da SAT unsat, disponível para todos os alunos, é realmente 236 00:11:32,360 --> 00:11:36,350 para ajudar a tomar a borda fora de um curso assim, por assim dizer, de modo que se você 237 00:11:36,350 --> 00:11:40,510 encontrar-se à noite, 02:00, 03:00, realmente bater sua cabeça contra 238 00:11:40,510 --> 00:11:43,960 a parede onde você sabe que é de 99% do o caminho para a conclusão, mas você 239 00:11:43,960 --> 00:11:47,510 tem tantas outras coisas para fazer, Eu acho que um uso melhor, muitas vezes, de 240 00:11:47,510 --> 00:11:51,260 tempo dos alunos é mover-se de fato sobre a essas outras coisas para que você possa 241 00:11:51,260 --> 00:11:52,780 otimizar o tempo todo. 242 00:11:52,780 --> 00:11:56,950 E SAT unsat é um mecanismo através do qual você pode se consolar com o fato de 243 00:11:56,950 --> 00:12:00,530 que 99% do caminho existe ainda muito bom. 244 00:12:00,530 --> 00:12:03,790 >> Da mesma forma, também, se você veio para o Claro, sem conhecimento prévio ou 245 00:12:03,790 --> 00:12:07,960 não tanto de fundo como você acha que seus colegas possam ter, a verdadeira 246 00:12:07,960 --> 00:12:13,210 ou falso, perceber que esta é uma oportunidade de sujar as mãos 247 00:12:13,210 --> 00:12:16,590 com o curso, colocar os pés na água, por assim dizer, muito parecido com que eu me 248 00:12:16,590 --> 00:12:18,500 fez anos atrás com aprovação / reprovação. 249 00:12:18,500 --> 00:12:21,850 Como eu disse na semana passada, teve o curso, como os outros, não está disponível 250 00:12:21,850 --> 00:12:25,090 aprovação / reprovação na época, eu provavelmente faria Não tenho nem nunca pisou em 251 00:12:25,090 --> 00:12:28,310 a classe, mesmo que eu fiz, cinco semanas mais tarde, mudar a minha mente, o que você 252 00:12:28,310 --> 00:12:32,400 pode muito bem, e passar a ou de estado graduada carta. 253 00:12:32,400 --> 00:12:32,990 >> Tudo bem. 254 00:12:32,990 --> 00:12:37,380 Então, nós olhamos para as coisas como esta em Sexta-feira, e nós estamos indo muito rapidamente 255 00:12:37,380 --> 00:12:39,890 a transição para algo que parece mais enigmática hoje. 256 00:12:39,890 --> 00:12:42,300 Mas é no entanto o mesma idéia fundamental. 257 00:12:42,300 --> 00:12:45,540 Qual foi o termo geral que usado para descrever uma peça do puzzle 258 00:12:45,540 --> 00:12:47,690 que se parecia com isso? 259 00:12:47,690 --> 00:12:48,510 >> Assim, uma afirmação. 260 00:12:48,510 --> 00:12:50,020 E você pode chamar isso de qualquer série de coisas. 261 00:12:50,020 --> 00:12:51,870 Mas vamos chamá-lo de um comunicado, e uma declaração 262 00:12:51,870 --> 00:12:53,200 apenas diz ao programa - 263 00:12:53,200 --> 00:12:55,290 ou, no caso de risco, o sprite - 264 00:12:55,290 --> 00:12:56,520 fazer alguma coisa. 265 00:12:56,520 --> 00:12:58,430 Diga Olá neste caso. 266 00:12:58,430 --> 00:13:01,450 >> Algo parecido com isso, em vez chamado o quê? 267 00:13:01,450 --> 00:13:03,560 É, portanto, uma expressão booleana. 268 00:13:03,560 --> 00:13:07,380 Uma expressão booleana é apenas algo o que é verdadeiro ou falso, e assim Raspe 269 00:13:07,380 --> 00:13:10,530 chama-los com esta forma, mas também com um ponto de interrogação para transmitir a 270 00:13:10,530 --> 00:13:14,510 idéia de que a resposta a esta pergunta é verdadeiro ou falso, sim ou não 271 00:13:14,510 --> 00:13:15,910 um, 1 ou 0. 272 00:13:15,910 --> 00:13:19,290 >> E usamos estas expressões booleanas dentro de construções como estas, que 273 00:13:19,290 --> 00:13:21,010 chamamos o quê? 274 00:13:21,010 --> 00:13:22,460 Assim, a condição ou ramo. 275 00:13:22,460 --> 00:13:25,600 E a condição que você vê aqui em Zero tem um pequeno espaço reservado para a 276 00:13:25,600 --> 00:13:28,260 parte do enigma de que forma, o propósito de que é assim que você pode 277 00:13:28,260 --> 00:13:32,670 arrastá-lo e soltá-lo em cima e, em seguida, ditar o programa se este Boolean 278 00:13:32,670 --> 00:13:36,410 expressão é verdadeira, fazer este conjunto de instruções, este conjunto de declarações, 279 00:13:36,410 --> 00:13:39,320 mais fazer isso outro conjunto de instruções. 280 00:13:39,320 --> 00:13:41,270 >> E lembrar que você pode ninho essas coisas. 281 00:13:41,270 --> 00:13:44,170 Mesmo que não há muito espaço visualmente em que parte do enigma, risco 282 00:13:44,170 --> 00:13:47,820 vai crescer e encolher para caber tudo peças do puzzle que você arrastar e soltar em 283 00:13:47,820 --> 00:13:51,410 lá, então você pode realmente Ninho e tem um garfo de três vias na estrada. 284 00:13:51,410 --> 00:13:53,870 If, else if, else. 285 00:13:53,870 --> 00:13:58,100 E você ainda pode ir além do que, nidificação mais e mais, conforme necessário. 286 00:13:58,100 --> 00:14:02,520 >> Então, finalmente, vimos construções como este, também conhecido como um circuito. 287 00:14:02,520 --> 00:14:05,690 E este é apenas algo que faz algo de novo e de novo e de novo. 288 00:14:05,690 --> 00:14:09,250 Neste caso, ele passa a ser um finito número de vezes, mas nós também 289 00:14:09,250 --> 00:14:12,890 viu um exemplo onde o número de vezes veio de uma variável, por isso 290 00:14:12,890 --> 00:14:13,690 pode mudar. 291 00:14:13,690 --> 00:14:16,910 E vimos também um outro bloco completamente chamado um bloco que sempre 292 00:14:16,910 --> 00:14:19,590 permitiu-nos fazer um loop infinitamente longo. 293 00:14:19,590 --> 00:14:23,300 >> Então, uma outra construção que zero 2.0 tem - e aqueles que mais 294 00:14:23,300 --> 00:14:26,330 confortável com fundo anterior são já está bem familiarizado com esta 295 00:14:26,330 --> 00:14:27,080 construir - 296 00:14:27,080 --> 00:14:29,910 essas coisas que chamamos de quê? 297 00:14:29,910 --> 00:14:32,540 Então, chamamos estas funções, caso contrário, conhecido como procedimentos. 298 00:14:32,540 --> 00:14:35,030 Há uma pequena diferença semântica, mas vamos chamá-los apenas funções. 299 00:14:35,030 --> 00:14:39,950 >> E uma função, no caso de risco, é uma peça de quebra-cabeça personalizado que 300 00:14:39,950 --> 00:14:43,670 você mesmo pode criar para que você tenha uma nova peça de quebra-cabeça que, neste 301 00:14:43,670 --> 00:14:47,190 caso, seria chamado tosse, que aparece entre todos os outros 302 00:14:47,190 --> 00:14:48,730 peças do puzzle disponíveis em zero. 303 00:14:48,730 --> 00:14:52,010 Mesmo que o MIT não inventou esta peça de quebra-cabeça, que você fez. 304 00:14:52,010 --> 00:14:57,600 >> Então a função permite que você crie novas comportamento, dar-lhe um nome de função, e 305 00:14:57,600 --> 00:14:59,200 em seguida, chamá-lo, por assim dizer. 306 00:14:59,200 --> 00:15:04,690 Realmente usá-lo em programas de novo e uma e outra vez, sem ter que esperar 307 00:15:04,690 --> 00:15:08,600 para alguém como MIT no caminho para inventar uma nova funcionalidade a partir do zero. 308 00:15:08,600 --> 00:15:12,460 Você mesmo pode construir estes quebra-cabeças pedaços de si mesmo, e depois reutilizá-los 309 00:15:12,460 --> 00:15:13,600 em seus próprios programas. 310 00:15:13,600 --> 00:15:17,520 E nós vamos ver um exemplo recorrente de que hoje em diante. 311 00:15:17,520 --> 00:15:20,960 >> Então, hoje, nós transição agora para algo mais misterioso. 312 00:15:20,960 --> 00:15:24,350 Contudo, no final do dia, algo mais poderosos e expressivos e mais 313 00:15:24,350 --> 00:15:28,110 representante do caminho que nós vamos ser em todo o semestre toda uma série 314 00:15:28,110 --> 00:15:28,800 de línguas - 315 00:15:28,800 --> 00:15:30,800 que de código ou o código fonte. 316 00:15:30,800 --> 00:15:34,720 E código-fonte, ao que parece, não é o que um computador 317 00:15:34,720 --> 00:15:37,400 normalmente funciona realmente. 318 00:15:37,400 --> 00:15:39,860 O código-fonte é algo como isto. 319 00:15:39,860 --> 00:15:43,010 >> Portanto, este é, de novo, talvez a mais simples programa, podemos escrever em um 320 00:15:43,010 --> 00:15:46,670 linguagem chamada C. Vamos começar a provocar este apart em pouco tempo, e se 321 00:15:46,670 --> 00:15:49,260 isso realmente se parece com grego para você agora, confie em mim. 322 00:15:49,260 --> 00:15:54,040 Dentro de uma semana ou duas de tempo, este vai ser tudo muito familiar e realmente 323 00:15:54,040 --> 00:15:57,780 bastante representativo de cada vez exemplos complexos com o qual você 324 00:15:57,780 --> 00:15:59,870 também se sentir mais confortável. 325 00:15:59,870 --> 00:16:03,100 >> Mas você não pode simplesmente executar este tipo de código normalmente. 326 00:16:03,100 --> 00:16:06,750 Você tem que transformá-lo em algo que o próprio computador entende. 327 00:16:06,750 --> 00:16:09,840 E assim, para isso, precisamos de algo vamos chamar um compilador. 328 00:16:09,840 --> 00:16:13,910 Um compilador é um programa que leva código-fonte, como você acabou de ver, como 329 00:16:13,910 --> 00:16:17,680 de entrada, e produz e zeros queridos como saída, caso contrário, 330 00:16:17,680 --> 00:16:19,210 conhecido como código-objeto. 331 00:16:19,210 --> 00:16:23,190 E é esses zeros e uns que pode parecer como esta que 332 00:16:23,190 --> 00:16:26,310 em última análise, são entendidas pelo seu Mac ou PC. 333 00:16:26,310 --> 00:16:30,050 >> Se você já ouviu a comercialização expressão Intel Inside, que apenas 334 00:16:30,050 --> 00:16:32,800 significa que uma companhia chamada Intel fabricou o 335 00:16:32,800 --> 00:16:34,130 cérebro do computador - 336 00:16:34,130 --> 00:16:37,270 também conhecida como a CPU, unidade central de processamento - 337 00:16:37,270 --> 00:16:39,640 e isso é apenas a coisa que entende padrões 338 00:16:39,640 --> 00:16:40,880 de zeros e uns. 339 00:16:40,880 --> 00:16:46,330 E assim, através da conversão de código fonte em código objeto através deste processo aqui 340 00:16:46,330 --> 00:16:49,130 que nós vamos fazer com um par de comandos em apenas um bit, você está 341 00:16:49,130 --> 00:16:53,070 criação de padrões de zeros e uns que os funcionários da Intel têm 342 00:16:53,070 --> 00:16:56,000 decidiu representar certas declarações. 343 00:16:56,000 --> 00:16:58,810 >> Agora, eu não sei bem o que é que por apenas olhando para 344 00:16:58,810 --> 00:16:59,890 esses zeros e uns. 345 00:16:59,890 --> 00:17:01,420 A maioria dos seres humanos nos dias de hoje não. 346 00:17:01,420 --> 00:17:04,900 Mas em algum lugar há um padrão de zeros e uns que representam o 347 00:17:04,900 --> 00:17:06,349 declaração de impressão. 348 00:17:06,349 --> 00:17:10,460 Em algum lugar em que poderia haver uma diferente conjunto de zeros e uns que 349 00:17:10,460 --> 00:17:16,940 representar a noção de sempre ou Repita 10 vezes, ou mesmo Meow, se é 350 00:17:16,940 --> 00:17:20,000 na verdade, um programa que pode incluir alguns sons. 351 00:17:20,000 --> 00:17:24,390 >> Assim, em breve, os seres humanos têm apenas decidiu, assim como fizemos para ASCII - 352 00:17:24,390 --> 00:17:27,480 para as letras do alfabeto na semana passada - os seres humanos decidiram que, mesmo 353 00:17:27,480 --> 00:17:32,200 padrões mais complexos de zeros e uns representar o comportamento mais complexo 354 00:17:32,200 --> 00:17:35,650 como imprimir ou dizendo ou miando. 355 00:17:35,650 --> 00:17:38,640 E assim, para hoje, e em grande parte em diante no semestre, vamos dar para 356 00:17:38,640 --> 00:17:41,820 certo que alguém tem figurado como fazer esse mapeamento. 357 00:17:41,820 --> 00:17:45,560 Mas, de acordo com essa idéia de de camadas na parte superior do trabalho de pessoas 358 00:17:45,560 --> 00:17:49,340 que vieram antes de nós, vai demorar para concedido o fato de que isso está acontecendo 359 00:17:49,340 --> 00:17:50,300 debaixo do capô. 360 00:17:50,300 --> 00:17:53,840 Mas estamos muito mais interessados ​​em construção de coisas que são mais 361 00:17:53,840 --> 00:17:55,880 interessante em cima de tudo isso. 362 00:17:55,880 --> 00:17:58,900 >> E assim, de fato, o primeiro programa que escreveu em risco era esse super simples 363 00:17:58,900 --> 00:18:00,600 um, Olá Mundo. 364 00:18:00,600 --> 00:18:05,100 E você pode pensar nisso como sendo o programa principal que rege o risco de 365 00:18:05,100 --> 00:18:07,280 comportamento a partir de sexta-feira passada. 366 00:18:07,280 --> 00:18:11,510 >> Hoje, vamos começar a traduzir Raspe peças do puzzle em 367 00:18:11,510 --> 00:18:16,040 código fonte nesta língua chamada C de modo que o que parecia ser esta a 368 00:18:16,040 --> 00:18:20,230 Sexta-feira, a partir de hoje em diante, é agora vai ficar assim. 369 00:18:20,230 --> 00:18:21,860 Reconhecidamente mais enigmática. 370 00:18:21,860 --> 00:18:25,010 É muito perturbador e tipo de mente entorpecente para ver todas as citações 371 00:18:25,010 --> 00:18:27,760 e as vírgulas e os parênteses e assim por diante. 372 00:18:27,760 --> 00:18:32,350 >> Mas se você começar a ignorar qualquer coisa que você não entendo, e realmente olhar 373 00:18:32,350 --> 00:18:35,960 a essência do texto branca na tela, com certeza você vê, como eu, 374 00:18:35,960 --> 00:18:40,360 "Olá, mundo". Que se alinha com o declaração roxo em cima, e ele se transforma 375 00:18:40,360 --> 00:18:44,790 que a palavra-chave principal vai alinhar conceitualmente com ao verde 376 00:18:44,790 --> 00:18:46,350 bandeira clicado. 377 00:18:46,350 --> 00:18:49,820 >> Assim, em outras palavras, enquanto em Scratch vamos implementar este programa Olá Mundo 378 00:18:49,820 --> 00:18:53,360 com essas duas peças do puzzle, em C, vamos implementá-lo com estes 379 00:18:53,360 --> 00:18:55,510 quatro linhas um tanto enigmáticas. 380 00:18:55,510 --> 00:18:58,130 Mas como mergulhar mais fundo para isso, você vai ver que cada um desses 381 00:18:58,130 --> 00:19:02,730 caracteres brancos na tela realmente tem algum significado importante, 382 00:19:02,730 --> 00:19:05,880 ea maioria dos nossos programas vão olha estruturalmente a mesma. 383 00:19:05,880 --> 00:19:08,980 Assim, uma declaração, para ser claro, o que parecia "say Olá mundo" na 384 00:19:08,980 --> 00:19:12,020 Sexta-feira vai começar a olhar gosto desta segunda-feira. 385 00:19:12,020 --> 00:19:15,250 printf ("Olá, mundo"). 386 00:19:15,250 --> 00:19:17,700 E há alguma barra invertida estranho n, há parênteses, há 387 00:19:17,700 --> 00:19:18,490 ponto e vírgula. 388 00:19:18,490 --> 00:19:21,950 >> Contudo, no final do dia, a tecla takeaway hoje é que tudo o que estamos fazendo 389 00:19:21,950 --> 00:19:25,710 está traduzindo as coisas de imagem formar a forma de texto. 390 00:19:25,710 --> 00:19:28,820 Assim, um ciclo que ficou assim na semana passada, vai agora olhar 391 00:19:28,820 --> 00:19:30,140 algo como isto. 392 00:19:30,140 --> 00:19:33,020 >> E deixe-me rejeitam, assim como no Zero, há diferentes maneiras de 393 00:19:33,020 --> 00:19:34,110 atingir o mesmo objetivo. 394 00:19:34,110 --> 00:19:38,860 Mesmo em C. Eu não estou mostrando-lhe o único maneira de fazer as coisas, mas uma maneira de 395 00:19:38,860 --> 00:19:43,230 traduzir isso para sempre bloco para um circuito em C. 396 00:19:43,230 --> 00:19:44,980 >> Este aqui, repita 10 vezes. 397 00:19:44,980 --> 00:19:47,580 Este realmente tipo de dobra o mente a primeira vez que você vê-lo. 398 00:19:47,580 --> 00:19:49,860 Mas para implementar que, doravante, vamos usar um 399 00:19:49,860 --> 00:19:51,990 loop for, por assim dizer. 400 00:19:51,990 --> 00:19:56,150 E, evidentemente, há uma sintaxe que é um pouco complexo, com I e 401 00:19:56,150 --> 00:19:59,740 igual e 0, mas uma vez que mergulhar no que de hoje em diante, você só vai 402 00:19:59,740 --> 00:20:04,260 para ver que isso é tudo simplesmente fazer algum aritmética básica para nos levar de 0 403 00:20:04,260 --> 00:20:07,720 em até 9 ou 10, neste caso. 404 00:20:07,720 --> 00:20:11,570 >> Por fim, com as variáveis, você vai se lembrar uma variável que é uma parte de armazenamento. 405 00:20:11,570 --> 00:20:14,290 Bem, o que nós tivemos na esquerda lá no semana vai parecer um pouco 406 00:20:14,290 --> 00:20:15,920 algo como isso esta semana. 407 00:20:15,920 --> 00:20:17,870 Mas, novamente, mais sobre isso mais para vir. 408 00:20:17,870 --> 00:20:20,700 >> Tivemos expressões booleanas, que na semana passada, ficou assim. 409 00:20:20,700 --> 00:20:23,370 Esta semana em diante, eles vão começar a olhar um pouco como isso. 410 00:20:23,370 --> 00:20:24,890 >> E este é realmente um pouco reconfortante. 411 00:20:24,890 --> 00:20:27,680 Na verdade, é quase tão simples como os blocos verdes. 412 00:20:27,680 --> 00:20:31,115 Mas aqui temos, mais uma vez, uma nova sintaxe com e comercial, mas você pode 413 00:20:31,115 --> 00:20:35,390 talvez acho que enquanto em zero, você A dizer-N-D, aparentemente em C, estamos 414 00:20:35,390 --> 00:20:37,070 vai dizer comercial e comercial. 415 00:20:37,070 --> 00:20:39,650 Mas tudo isso vai se tornar natural, antes do tempo. 416 00:20:39,650 --> 00:20:40,680 >> Condições. 417 00:20:40,680 --> 00:20:42,610 Na semana passada, parecia que este da esquerda. 418 00:20:42,610 --> 00:20:44,800 Esta semana, à direita, é vai ficar assim. 419 00:20:44,800 --> 00:20:48,560 Mas, novamente, o principal argumento aqui é que como você vê as coisas como que em 420 00:20:48,560 --> 00:20:51,950 o direito, e especialmente se menos confortável, é uma espécie de sobre o seu 421 00:20:51,950 --> 00:20:54,950 cabeça, você fica um pouco sobrecarregado que Eu realmente não tenho idéia de como eu poderia 422 00:20:54,950 --> 00:20:58,420 possivelmente, chegar a que a partir do zero - 423 00:20:58,420 --> 00:20:59,500 sem trocadilhos - 424 00:20:59,500 --> 00:21:05,300 basta perceber que ele é realmente o mesmo idéia de que, provavelmente, me senti muito mais 425 00:21:05,300 --> 00:21:06,760 naturais na semana anterior. 426 00:21:06,760 --> 00:21:10,960 E mesmo se você não mergulhou problema set 0, ouso dizer que você vai encontrar 427 00:21:10,960 --> 00:21:13,790 que as peças do puzzle são bastante intuitiva, ou pelo menos 428 00:21:13,790 --> 00:21:16,050 tornar-se assim ao longo do tempo. 429 00:21:16,050 --> 00:21:16,990 >> Então vamos mergulhar dentro 430 00:21:16,990 --> 00:21:20,760 Vamos sujar as mãos aqui com Neste primeiro programa simples. 431 00:21:20,760 --> 00:21:22,410 E simples é, é claro, relativa. 432 00:21:22,410 --> 00:21:25,190 Para fazer isso, eu vou mudar telas a esse dispositivo Liguei para o 433 00:21:25,190 --> 00:21:26,150 CS50 aparelho. 434 00:21:26,150 --> 00:21:29,700 O aparelho CS50 é um pedaço de software que está sendo executado dentro de um 435 00:21:29,700 --> 00:21:33,920 janela no meu Mac, e você também pode executar lo em uma janela dentro do seu PC, que 436 00:21:33,920 --> 00:21:38,720 me permite ter exatamente o mesmo ambiente do computador como cada TF, conforme 437 00:21:38,720 --> 00:21:40,940 cada CA, como todos os alunos na classe. 438 00:21:40,940 --> 00:21:44,590 Porque o aparelho CS50 é literalmente outro sistema operacional 439 00:21:44,590 --> 00:21:45,410 chamado Linux - 440 00:21:45,410 --> 00:21:47,160 especificamente Fedora Linux - 441 00:21:47,160 --> 00:21:51,320 e nós, os funcionários, ter configurado o processo de instalação para este 442 00:21:51,320 --> 00:21:55,200 sistema de operação, de tal maneira que um, há um pequeno logotipo no CS50 443 00:21:55,200 --> 00:21:59,240 meio, dois, há um menu personalizado no parte inferior, e três, pedagogicamente, 444 00:21:59,240 --> 00:22:02,570 nós simplificamos a interface de usuário como tanto quanto possível, de modo que, quando você 445 00:22:02,570 --> 00:22:05,540 primeiro arrancar essa coisa em seu próprio país Mac ou PC, você tem o mesmo 446 00:22:05,540 --> 00:22:08,280 meio ambiente como todos os outros, e você tem todas as ferramentas que você precisa 447 00:22:08,280 --> 00:22:11,390 para o curso sem ter que descobrir como instalar cada um e 448 00:22:11,390 --> 00:22:13,280 cada instrumento individualmente. 449 00:22:13,280 --> 00:22:15,840 >> Portanto, esta parece relativamente como Mac OS ou Windows. 450 00:22:15,840 --> 00:22:18,760 No canto inferior esquerdo, você essencialmente ter um menu Iniciar do 451 00:22:18,760 --> 00:22:20,280 tipos, ou um menu Apple. 452 00:22:20,280 --> 00:22:23,700 E então você tem o que nós suspeitamos vontade ser seus três ícones mais comuns. 453 00:22:23,700 --> 00:22:24,460 Uma delas é o Chrome. 454 00:22:24,460 --> 00:22:26,460 Há um browser dentro do aparelho. 455 00:22:26,460 --> 00:22:29,970 >> Dois é um programa chamado gedit, que vimos brevemente na semana passada, o que é 456 00:22:29,970 --> 00:22:31,310 apenas um editor gráfico. 457 00:22:31,310 --> 00:22:35,350 E três é um programa de terminal, que é uma janela a preto e branco a partir de 458 00:22:35,350 --> 00:22:39,860 passado que nos permite digitar mais comandos arcanos, mas mais poderosa em 459 00:22:39,860 --> 00:22:40,660 nosso teclado. 460 00:22:40,660 --> 00:22:44,220 Então, eu estou indo para ir em frente e clique em gedit, e tenha a certeza de que problema 461 00:22:44,220 --> 00:22:48,520 conjunto 1, que será lançado na sexta-feira, será orientá-lo através de todos esses mesmos passos. 462 00:22:48,520 --> 00:22:51,730 >> Repare que eu tenho uma simples interface de utilizador com três partes. 463 00:22:51,730 --> 00:22:54,990 À esquerda, eu tenho um grande vazio janela chamado código fonte. 464 00:22:54,990 --> 00:22:58,930 É onde eu estou indo para ver um resumo de qualquer código que eu escrevo. 465 00:22:58,930 --> 00:23:01,990 No lado direito, eu tenho um grande tab, atualmente salvos, e isso é 466 00:23:01,990 --> 00:23:03,510 onde meu código está indo. 467 00:23:03,510 --> 00:23:06,780 E no fundo, eu tenho um incorporado Janela de terminal, um preto e branco 468 00:23:06,780 --> 00:23:12,060 prompt no qual eu possa digitar comandos para compilar e executar meus programas - que 469 00:23:12,060 --> 00:23:14,110 é, fazer e executar meus programas. 470 00:23:14,110 --> 00:23:15,170 >> Então, vamos começar pelo mais simples. 471 00:23:15,170 --> 00:23:17,700 Deixe-me ir até Arquivo, Salvar. 472 00:23:17,700 --> 00:23:20,530 Eu estou indo para ir em frente e entrar em jharvard. 473 00:23:20,530 --> 00:23:24,320 Assim, o aparelho, independentemente daquilo seu nome é, pertence a um cara chamado 474 00:23:24,320 --> 00:23:28,250 John Harvard, que tem uma casa jharvard diretório dentro do qual todos os seus 475 00:23:28,250 --> 00:23:29,100 arquivos vai. 476 00:23:29,100 --> 00:23:31,640 É a sua própria cópia de sua conta, então não estamos todos compartilhando 477 00:23:31,640 --> 00:23:33,530 o mesmo disco rígido. 478 00:23:33,530 --> 00:23:35,580 Você apenas tem a ilusão do próprio John Harvard. 479 00:23:35,580 --> 00:23:38,350 >> De antemão, eu realmente Dropbox instalado. 480 00:23:38,350 --> 00:23:42,600 O aparelho vem com preprepared Dropbox para que, se alguma coisa der errado 481 00:23:42,600 --> 00:23:45,950 durante o semestre, se você tiver configurou o aparelho com um livre 482 00:23:45,950 --> 00:23:48,950 Conta Dropbox, todos os seus arquivos serão ser feito o backup automático para você 483 00:23:48,950 --> 00:23:50,430 pode facilmente recuperá-los. 484 00:23:50,430 --> 00:23:53,980 E eu estou indo para ir para o meu Dropbox diretório, e já está acontecendo 485 00:23:53,980 --> 00:23:55,530 ser algumas outras coisas lá. 486 00:23:55,530 --> 00:24:02,090 >> Mas eu estou indo para ir em frente e vá em Arquivo, Salvar. 487 00:24:02,090 --> 00:24:05,930 Eu estou indo para ir para jharvard, Dropbox, e aqui em cima, eu vou 488 00:24:05,930 --> 00:24:10,590 dar o meu programa um super simples nome, hello.c, e depois salvar. 489 00:24:10,590 --> 00:24:11,810 Então, eu tenho a mesma interface agora. 490 00:24:11,810 --> 00:24:14,190 A única coisa que mudou é o guia em cima. 491 00:24:14,190 --> 00:24:17,170 Então, eu estou indo muito rápido para recriar que programa a partir do 492 00:24:17,170 --> 00:24:19,060 desliza um momento atrás. 493 00:24:19,060 --> 00:24:25,690 >> Então, em main (void), e, em seguida, printf, "Olá, mundo", um tanto enigmática 494 00:24:25,690 --> 00:24:29,920 barra invertida n, próximo orçamento, feche parênteses, ponto e vírgula, e 495 00:24:29,920 --> 00:24:32,030 então Ctrl S para salvar. 496 00:24:32,030 --> 00:24:34,860 E notem como um aparte que apenas apareceu aqui no canto superior esquerdo. 497 00:24:34,860 --> 00:24:37,490 E isso não é útil hoje, mas será útil ao longo do tempo. 498 00:24:37,490 --> 00:24:40,160 Você acabou de ver, mais uma vez, um resumo das o código que você escreveu. 499 00:24:40,160 --> 00:24:43,320 E porque eu escrevi algo chamado principal, é por isso que a palavra principal estourou 500 00:24:43,320 --> 00:24:44,030 até lá. 501 00:24:44,030 --> 00:24:46,610 Mas, na maior parte, Não é necessário que hoje. 502 00:24:46,610 --> 00:24:51,130 >> Tudo bem, então eu digo que esta é minha primeiro programa escrito numa programação 503 00:24:51,130 --> 00:24:54,620 linguagem chamada C. Sabemos que a partir de sexta-feira que o que essa coisa vai fazer 504 00:24:54,620 --> 00:24:58,450 muito uninterestingly quando eu executá-lo é apenas mostrar - 505 00:24:58,450 --> 00:25:01,270 em outras palavras, para imprimir, como um computador cientista diria - 506 00:25:01,270 --> 00:25:03,310 Olá mundo na tela. 507 00:25:03,310 --> 00:25:06,800 Então, para fazer isso, você vai perceber que eu tenho para ir até aqui para meu terminal 508 00:25:06,800 --> 00:25:09,250 janela, e agora eu tenho um piscar rápido. 509 00:25:09,250 --> 00:25:15,480 Mas esta é agora uma versão de teclado meu diretório home John Harvard. 510 00:25:15,480 --> 00:25:19,610 É uma forma de teclado através do qual para navegar meu disco rígido. 511 00:25:19,610 --> 00:25:25,380 >> Então eu não posso digitar, na verdade, como eu fiz na semana passada fazer Olá, porque é 512 00:25:25,380 --> 00:25:27,230 vai dizer nenhuma regra para processar o alvo - 513 00:25:27,230 --> 00:25:27,950 algo está errado. 514 00:25:27,950 --> 00:25:31,690 Eu não sei bem o que essa mensagem meios, mas isso é porque, por padrão, 515 00:25:31,690 --> 00:25:35,350 quando esta janela preto e branco é abriu, eu estou dentro de John Harvard 516 00:25:35,350 --> 00:25:36,160 diretório home. 517 00:25:36,160 --> 00:25:39,180 Mas onde eu salvar esse programa? 518 00:25:39,180 --> 00:25:40,440 Na minha pasta Dropbox. 519 00:25:40,440 --> 00:25:43,110 >> Agora, todos nós crescemos com computadores em que basta clicar duas vezes 520 00:25:43,110 --> 00:25:45,610 no ícone de uma pasta, ele abre-se, e pronto. 521 00:25:45,610 --> 00:25:48,280 É aí que o arquivo chamado ola.c seria. 522 00:25:48,280 --> 00:25:49,470 Então, na verdade, vamos fazer isso. 523 00:25:49,470 --> 00:25:51,610 >> Deixe-me ir em frente e minimizar gedit assim como você faria em 524 00:25:51,610 --> 00:25:52,990 Windows ou Mac OS. 525 00:25:52,990 --> 00:25:56,160 Deixe-me ir para a casa pasta no canto superior esquerdo. 526 00:25:56,160 --> 00:25:57,620 Vejo aqui um monte de pastas. 527 00:25:57,620 --> 00:25:58,870 Aqui está a minha pasta Dropbox. 528 00:25:58,870 --> 00:26:00,770 As marcas de verificação significa que foi sincronizado. 529 00:26:00,770 --> 00:26:04,040 E há algumas coisas aqui, mas percebe que é hello.c 530 00:26:04,040 --> 00:26:04,960 de fato ali. 531 00:26:04,960 --> 00:26:08,050 >> E assim, Mac OS ou Windows, normalmente, Eu tinha um duplo clique disso, abre-se 532 00:26:08,050 --> 00:26:10,220 qualquer programa, e eu sou bom para ir. 533 00:26:10,220 --> 00:26:13,370 Mas agora, pelo menos a partir de hoje, nós precisa dar um passo para trás apenas para 534 00:26:13,370 --> 00:26:16,960 dar-lhe algumas ferramentas básicas para o seu kit ferramenta com a qual fazer mais 535 00:26:16,960 --> 00:26:18,980 coisas poderosas antes do tempo. 536 00:26:18,980 --> 00:26:22,280 >> Então, neste prompt, eu tenho que fazer o equivalente a clicar duas vezes no 537 00:26:22,280 --> 00:26:23,560 Pasta Dropbox. 538 00:26:23,560 --> 00:26:29,900 E para fazer isso, eu vou escrever para CD mudar de diretório, Dropbox, entrar. 539 00:26:29,900 --> 00:26:36,100 E agora perceber os parênteses na minha chamados pronta agora diz que eu estou em 540 00:26:36,100 --> 00:26:38,470 til, o pouco embaralhada símbolo no canto superior esquerdo da 541 00:26:38,470 --> 00:26:40,860 maioria dos teclados, / Dropbox. 542 00:26:40,860 --> 00:26:45,200 Este é apenas notação abreviada para dizendo humano, agora você está dentro de 543 00:26:45,200 --> 00:26:48,650 a pasta Dropbox, como se você tivesse clicado duas vezes sobre ele. 544 00:26:48,650 --> 00:26:54,610 >> Portanto, agora se eu ir em frente e digite make Olá, entrar, eu vejo muito enigmático 545 00:26:54,610 --> 00:26:57,450 comando, mas não é uma mensagem de erro, parece, e depois 546 00:26:57,450 --> 00:26:59,020 outro piscar rápido. 547 00:26:59,020 --> 00:27:04,470 E se você se lembra, sempre tão rapidamente na sexta-feira, nós fizemos isso. . / Olá. 548 00:27:04,470 --> 00:27:10,000 >> O que você está prestes a ver é o resultado da minha execução deste programa, ou, no Mac 549 00:27:10,000 --> 00:27:14,310 Termos de sistema operacional e PC, se eu tivesse normalmente dobrar clicar em um programa - um aplicativo. 550 00:27:14,310 --> 00:27:17,620 programa ou um. exe, abre-se uma janela e corridas. 551 00:27:17,620 --> 00:27:21,920 Digitando. / Olá é como dupla clicar em um programa para executá-lo, mas 552 00:27:21,920 --> 00:27:23,280 usando o meu teclado. 553 00:27:23,280 --> 00:27:25,410 >> Digite, Olá mundo. 554 00:27:25,410 --> 00:27:26,150 E é isso. 555 00:27:26,150 --> 00:27:29,150 Então, vamos provocar este para além de por isso não se sente muito parecido com o grego. 556 00:27:29,150 --> 00:27:31,370 >> So. / Significa o quê? 557 00:27:31,370 --> 00:27:34,120 Qualquer um que já navegou um teclado ambiente como este, o que é ponto 558 00:27:34,120 --> 00:27:36,690 referindo? 559 00:27:36,690 --> 00:27:37,800 O diretório atual. 560 00:27:37,800 --> 00:27:41,320 >> Assim, o diretório atual é apenas um sinônimo para uma pasta. 561 00:27:41,320 --> 00:27:46,230 Assim dizendo dot slash, eu estou dizendo, procure por um programa chamado Olá na 562 00:27:46,230 --> 00:27:47,250 diretório atual - 563 00:27:47,250 --> 00:27:48,540 na pasta atual. 564 00:27:48,540 --> 00:27:50,480 Em outras palavras, minha pasta Dropbox. 565 00:27:50,480 --> 00:27:54,220 E é por isso pressionando enter depois realmente funciona esse programa. 566 00:27:54,220 --> 00:27:58,790 >> Se eu LS agora Tipo, observe que eu vejo tudo na minha pasta Dropbox. 567 00:27:58,790 --> 00:28:02,000 Obtendo Started.pdf, que Dropbox dá-lhe gratuitamente, minhas fotos 568 00:28:02,000 --> 00:28:05,450 diretório, um diretório público e não salva Documento 1 que fiz por engano um 569 00:28:05,450 --> 00:28:09,730 há pouco, foo.c, que eu fiz antes hoje, e, em seguida, duas linhas - 570 00:28:09,730 --> 00:28:12,090 hello.c e Olá. 571 00:28:12,090 --> 00:28:17,280 >> Hello.c é o programa que eu escrevi com gedit, eo que é Olá em verde? 572 00:28:17,280 --> 00:28:20,920 573 00:28:20,920 --> 00:28:22,940 O Olá em verde é o executável. 574 00:28:22,940 --> 00:28:27,020 Em outras palavras, quando eu corria esse comando há pouco - deixe-me rolar 575 00:28:27,020 --> 00:28:28,040 de volta no tempo - 576 00:28:28,040 --> 00:28:32,400 quando eu corri fazer Olá, isso é a etapa intermediária aqui. 577 00:28:32,400 --> 00:28:34,410 E levou hello.c como entrada - 578 00:28:34,410 --> 00:28:39,910 Código fonte AKA - e produziu um arquivo chamado Olá como saída, que 579 00:28:39,910 --> 00:28:42,510 contém todos esses zeros e uns. 580 00:28:42,510 --> 00:28:47,640 E é por isso que, no final, eu posso realmente executar um comando como. / Olá. 581 00:28:47,640 --> 00:28:53,310 Por causa da Intel Inside, meu operacional sistema Linux, abre os zeros 582 00:28:53,310 --> 00:28:55,820 e aqueles, alimenta-los para o cérebros de meu computador - 583 00:28:55,820 --> 00:28:56,580 a CPU - 584 00:28:56,580 --> 00:29:00,460 e que a CPU sabe, oh, aqui está um padrão de zeros e uns que diz 585 00:29:00,460 --> 00:29:02,800 imprimir o seguinte coisa no ecrã. 586 00:29:02,800 --> 00:29:04,450 >> Qual é a coisa seguinte? 587 00:29:04,450 --> 00:29:07,650 Citação unquote, "Olá mundo". 588 00:29:07,650 --> 00:29:12,100 >> Tudo bem, então um rápido resumo de algumas das estes comandos para que possamos começar 589 00:29:12,100 --> 00:29:13,350 levá-los para concedido. 590 00:29:13,350 --> 00:29:15,550 Deixe-me ir direto para o onde paramos. 591 00:29:15,550 --> 00:29:22,230 E você vai lembrar que tínhamos CD no nosso back-end de um momento atrás. 592 00:29:22,230 --> 00:29:24,880 Estes são, ouso dizer, por propósitos de hoje - 593 00:29:24,880 --> 00:29:29,010 talvez esta semana - os únicos comandos que talvez seja necessário digitar no comando 594 00:29:29,010 --> 00:29:30,580 fazer além de pedir. 595 00:29:30,580 --> 00:29:34,510 >> Então CD ficou por quê? 596 00:29:34,510 --> 00:29:35,180 Altere o diretório. 597 00:29:35,180 --> 00:29:38,010 É apenas o equivalente a duas vezes clicar em uma pasta. 598 00:29:38,010 --> 00:29:41,320 E como um aparte, se você receber nunca perdeu dentro de sua 599 00:29:41,320 --> 00:29:43,430 aparelho, de tal forma que o Dropbox - 600 00:29:43,430 --> 00:29:45,420 Eu quero voltar para o meu diretório jharvard - 601 00:29:45,420 --> 00:29:50,490 Em caso de dúvida, CD, entrar, sem nenhuma outra palavras, e ele só fecha-lo de volta 602 00:29:50,490 --> 00:29:53,110 para onde você começou, o que é um pouco bom atalho. 603 00:29:53,110 --> 00:29:54,840 >> Tudo bem, então agora os outros comandos. 604 00:29:54,840 --> 00:29:55,660 LS. 605 00:29:55,660 --> 00:29:56,840 Eu digitei que um momento atrás. 606 00:29:56,840 --> 00:29:59,500 O que você acha LS representa? 607 00:29:59,500 --> 00:30:00,470 >> Assim, a lista, certo? 608 00:30:00,470 --> 00:30:03,300 Voltar no dia, quando os seres humanos estavam vindo com estes comandos, eles 609 00:30:03,300 --> 00:30:07,180 estavam tentando ser eficiente, e sim digitar L-I-S-T enter, eles 610 00:30:07,180 --> 00:30:08,470 decidiu LS. 611 00:30:08,470 --> 00:30:09,080 Isso é bom. 612 00:30:09,080 --> 00:30:10,420 Isso soa bastante como lista. 613 00:30:10,420 --> 00:30:13,870 Vamos apenas LS tipo entrar, e que lista os arquivos ou pastas no meu 614 00:30:13,870 --> 00:30:15,000 pasta atual. 615 00:30:15,000 --> 00:30:17,530 >> mkdir, você provavelmente pode adivinhar. 616 00:30:17,530 --> 00:30:18,440 Faça diretório. 617 00:30:18,440 --> 00:30:22,010 Então você não ir a algum menu Arquivo e escolha Nova pasta neste ambiente. 618 00:30:22,010 --> 00:30:27,410 Em vez disso, você digita o espaço comando mkdir e, em seguida, o nome do filtro 619 00:30:27,410 --> 00:30:29,850 que você deseja criar, e isso será feito. 620 00:30:29,850 --> 00:30:32,380 >> rm, você provavelmente pode adivinhar. 621 00:30:32,380 --> 00:30:33,480 Remover ou excluir. 622 00:30:33,480 --> 00:30:36,740 Então, se você quer deletar um arquivo, você vai ver no conjunto de problemas como você 623 00:30:36,740 --> 00:30:37,240 pode fazer isso. 624 00:30:37,240 --> 00:30:39,510 E rmdir, remover o diretório. 625 00:30:39,510 --> 00:30:42,320 >> Então, novamente, eu vou tendem a voar através de algum desses detalhes, um, porque 626 00:30:42,320 --> 00:30:46,010 eles não são tudo isso muito divertido para passar tempo, mas dois, nós fornecê-lo em 627 00:30:46,010 --> 00:30:48,720 em muito maior detalhe em qualquer um dos O problema do curso define, particularmente 628 00:30:48,720 --> 00:30:52,370 as edições Standard, cada uma das etapas que você pode precisar digitar assim 629 00:30:52,370 --> 00:30:54,830 que você obtenha cada vez mais confortável com essas coisas. 630 00:30:54,830 --> 00:30:57,430 >> Mas agora deixe-me desmembrar outra coisa. 631 00:30:57,430 --> 00:31:02,580 Quando digitado fazer Olá um momento atrás, vimos uma sequência de comandos enigmática. 632 00:31:02,580 --> 00:31:04,805 Vimos, mais uma vez, fazer Olá. 633 00:31:04,805 --> 00:31:07,640 634 00:31:07,640 --> 00:31:08,520 OK, vamos fazer isso. 635 00:31:08,520 --> 00:31:11,840 Eu estava prestes a cometer um erro, mas [Inaudível] agora admitir que eu estava prestes a 636 00:31:11,840 --> 00:31:14,400 e fazê-lo deliberadamente. 637 00:31:14,400 --> 00:31:15,810 >> O que eu fiz de errado agora? 638 00:31:15,810 --> 00:31:18,680 639 00:31:18,680 --> 00:31:21,060 Sim, então eu não estou no Dropbox diretório, porque há um momento que eu 640 00:31:21,060 --> 00:31:22,720 digitado CD e apenas aperte enter. 641 00:31:22,720 --> 00:31:25,480 Isso me ampliada de volta para onde eu comecei, que não é o lugar onde meu arquivo 642 00:31:25,480 --> 00:31:31,720 é, então eu realmente preciso fazer CD Dropbox entrar, e agora eu posso fazer Olá rm 643 00:31:31,720 --> 00:31:34,060 inserir, remover arquivo regular Olá. 644 00:31:34,060 --> 00:31:35,200 Eu não sei por que é tão enigmática. 645 00:31:35,200 --> 00:31:37,600 Isso significa apenas que você tem certeza que deseja excluir Olá? 646 00:31:37,600 --> 00:31:41,510 Você pode digitar y para sim, entrar, e agora ele se foi. 647 00:31:41,510 --> 00:31:46,010 >> E agora, se eu digito fazer Olá novamente, é vai recriar meu código objeto, 648 00:31:46,010 --> 00:31:47,460 recriar os zeros e uns. 649 00:31:47,460 --> 00:31:51,070 Mas o que é o negócio com esta muito longo de comando? 650 00:31:51,070 --> 00:31:53,960 Bem, vamos provocar este apart em pouco tempo, mas fazer - 651 00:31:53,960 --> 00:31:55,500 Eu disse um pouco de mentira antes - 652 00:31:55,500 --> 00:31:56,880 não é um compilador. 653 00:31:56,880 --> 00:32:00,350 Fazer é um programa que automaticamente descobre como executar um 654 00:32:00,350 --> 00:32:02,060 compilador para você. 655 00:32:02,060 --> 00:32:07,490 >> Assim, o comando que você realmente deve ser execução, a fim de converter hello.c 656 00:32:07,490 --> 00:32:11,240 em Olá realmente parece um pouco mais como este. 657 00:32:11,240 --> 00:32:15,900 E Deus me livre que temos de realmente lembre-se sempre que digitar todo 658 00:32:15,900 --> 00:32:17,280 seqüência de comandos fora. 659 00:32:17,280 --> 00:32:21,360 O objetivo de fazer na vida é lembre-se que o grau de complexidade para 660 00:32:21,360 --> 00:32:24,470 nós e automatizar o que seria de outra forma ser passos muito tedioso. 661 00:32:24,470 --> 00:32:26,040 >> Mas eu posso aproximar disso. 662 00:32:26,040 --> 00:32:29,960 Então, por este cheat sheet pouco aqui, eu pode aproximar o que esse comando é 663 00:32:29,960 --> 00:32:33,960 fazendo simplesmente digitando bumbum, que é o nome do compilador estaremos 664 00:32:33,960 --> 00:32:35,170 usando este semestre. 665 00:32:35,170 --> 00:32:38,500 Se algum de vocês já fez iOS desenvolvimento para o iPhone ou iPad, 666 00:32:38,500 --> 00:32:42,930 Clang é o programa que você usou no Xcode para fazer seus apps. 667 00:32:42,930 --> 00:32:46,360 Clang, porém, é apenas mais um programa cujo nome pode digitar no comando 668 00:32:46,360 --> 00:32:49,210 solicitar, e introduzindo isso agora, Eu posso apresentar algo que é um 669 00:32:49,210 --> 00:32:52,410 pouco representativo de comandos para vir. 670 00:32:52,410 --> 00:32:53,910 Então deixe-me fazer isso manualmente. 671 00:32:53,910 --> 00:32:59,240 >> Então rm Olá, e agora percebe no caso Eu, assim como uma verificação de sanidade mental - 672 00:32:59,240 --> 00:33:03,180 . / Olá, o que você acha que eu deve ver se eu faço isso? 673 00:33:03,180 --> 00:33:04,060 Algum tipo de erro. 674 00:33:04,060 --> 00:33:05,110 Não há tal diretório de arquivos. 675 00:33:05,110 --> 00:33:06,740 De modo que um é realmente muito direta. 676 00:33:06,740 --> 00:33:08,110 >> Então, agora deixe-me limpar a tela. 677 00:33:08,110 --> 00:33:11,370 Controle S apenas limpa a tela para remover algumas distrações. 678 00:33:11,370 --> 00:33:17,160 E agora eu vou manualmente Tipo de som estridente-o Olá hello.c. 679 00:33:17,160 --> 00:33:18,890 Então o que é isso de fazer? 680 00:33:18,890 --> 00:33:23,820 Exatamente a mesma coisa que fez para fazer nós, mas eu jogar fora alguns dos 681 00:33:23,820 --> 00:33:25,430 as palavras supérfluas. 682 00:33:25,430 --> 00:33:28,570 >> Clang é o programa que vai tomar um arquivo c. como entrada e produzem 683 00:33:28,570 --> 00:33:30,110 zeros e uns como saída. 684 00:33:30,110 --> 00:33:35,120 Mas-o doravante chamaremos um switch ou uma bandeira. 685 00:33:35,120 --> 00:33:39,080 Este é apenas um jargão tecnólogo por dizer esta é uma palavra que você digitar em um prompt 686 00:33:39,080 --> 00:33:42,590 que de alguma forma influencia o comportamento do programa que você está executando. 687 00:33:42,590 --> 00:33:47,180 Então, alguém quer adivinhar que transmite-o? 688 00:33:47,180 --> 00:33:47,840 >> Output. 689 00:33:47,840 --> 00:33:52,670 É só alguém decidiu-o significa saída de um arquivo chamado Olá e tomar como 690 00:33:52,670 --> 00:33:56,440 entrada de qualquer que seja a última palavra sobre o o prompt é, hello.c, de modo que se eu acertar 691 00:33:56,440 --> 00:33:58,930 Entre agora, nada parece acontecer. 692 00:33:58,930 --> 00:34:02,010 E por incrível que pareça, neste mundo de programação, se nada acontecer, 693 00:34:02,010 --> 00:34:03,980 isso é provavelmente uma coisa boa porque não há nenhum erro 694 00:34:03,980 --> 00:34:05,350 mensagem na tela. 695 00:34:05,350 --> 00:34:07,190 Olá, Enter. 696 00:34:07,190 --> 00:34:08,670 Meu programa já executado. 697 00:34:08,670 --> 00:34:14,517 >> Mas eu posso fazer coisas estúpidas como isto. clang-o, hihihi, hello.c, 698 00:34:14,517 --> 00:34:18,590 entrar, e agora eu tenho um idêntico programa chamado hihihi. 699 00:34:18,590 --> 00:34:20,739 Ele se comporta o mesmo, mas o nome é diferente. 700 00:34:20,739 --> 00:34:23,360 >> Portanto, esta é só para dizer que se você quiser para influenciar o comportamento de uma 701 00:34:23,360 --> 00:34:25,909 programa, vamos cada vez mais ver coisas chamadas 702 00:34:25,909 --> 00:34:27,739 argumentos de linha de comando. 703 00:34:27,739 --> 00:34:28,639 Esta é uma linha. 704 00:34:28,639 --> 00:34:29,580 Você está digitando comandos. 705 00:34:29,580 --> 00:34:30,969 Ergo, a linha de comando. 706 00:34:30,969 --> 00:34:35,690 E os argumentos de linha de comando são apenas palavras ou pequenos pedaços de sintaxe que 707 00:34:35,690 --> 00:34:40,840 de algum modo influenciar o comportamento de programas que estão sendo executados. 708 00:34:40,840 --> 00:34:44,639 >> Tudo bem, que talvez seja a mais programa chato, podemos escrever e ver. 709 00:34:44,639 --> 00:34:46,670 Vamos agora fazer algo mais interessante. 710 00:34:46,670 --> 00:34:49,420 Deixe-me ir em frente e criar um novo arquivo. 711 00:34:49,420 --> 00:34:53,139 Eu estou indo para ir em frente e salvar esta em Diretório home do John Harvard como, 712 00:34:53,139 --> 00:34:58,670 vamos chamá-lo custom.c, para ser um pequeno programa personalizado. 713 00:34:58,670 --> 00:35:01,920 Eu estou indo para fazer zoom no meu top de as guias aqui e começar de novo. 714 00:35:01,920 --> 00:35:03,730 >> Incluir stdio.h padrão. 715 00:35:03,730 --> 00:35:04,990 Mais sobre isso em um momento. 716 00:35:04,990 --> 00:35:08,240 int main (void), mais em que em um momento. 717 00:35:08,240 --> 00:35:09,490 printf ("Olá, David"). 718 00:35:09,490 --> 00:35:12,810 719 00:35:12,810 --> 00:35:14,560 Muito mais interessante, certo? 720 00:35:14,560 --> 00:35:20,690 >> Portanto, agora se - não por causa do meu nome, só porque ele é diferente - 721 00:35:20,690 --> 00:35:24,950 fazer entrar costume. 722 00:35:24,950 --> 00:35:26,780 Personalizado, Olá, David. 723 00:35:26,780 --> 00:35:28,020 Mas, mesmo que, também, é uma mentira branca. 724 00:35:28,020 --> 00:35:30,850 Este programa pode muito bem ser chamado David.C, porque não é costume 725 00:35:30,850 --> 00:35:31,880 comportamento de todo. 726 00:35:31,880 --> 00:35:35,080 Realmente, eu quero um programa que pede o usuário para o seu nome. 727 00:35:35,080 --> 00:35:36,320 >> Então, como posso fazer isso? 728 00:35:36,320 --> 00:35:38,520 Bem, deixe-me ir para cima aqui. 729 00:35:38,520 --> 00:35:42,960 E antes de eu usar uma declaração em Zero, antes de eu usar printf, 730 00:35:42,960 --> 00:35:47,600 também conhecido como uma função, deixe-me primeiro pedir ao usuário para alguma entrada. 731 00:35:47,600 --> 00:35:49,690 >> Então, para fazer isso, eu preciso fazer um par de coisas. 732 00:35:49,690 --> 00:35:53,360 Um, eu preciso de um lugar para armazenar o usuário nome depois que eu perguntei a ele ou 733 00:35:53,360 --> 00:35:54,510 por isso. 734 00:35:54,510 --> 00:36:00,120 O constructo que eu preciso para usar provavelmente para armazenar um valor assim? 735 00:36:00,120 --> 00:36:00,910 Uma variável. 736 00:36:00,910 --> 00:36:05,130 >> Portanto, ao contrário do risco, onde você acabou de obter uma boa parte do enigma, aqui, temos que 737 00:36:05,130 --> 00:36:07,620 usar, obviamente, palavras a nos expressar. 738 00:36:07,620 --> 00:36:11,510 E a partir de agora, quando você quer um palavra ou uma frase, na programação, 739 00:36:11,510 --> 00:36:13,090 vamos chamar isso de uma string. 740 00:36:13,090 --> 00:36:14,990 Assim, uma string é uma palavra ou uma frase. 741 00:36:14,990 --> 00:36:18,170 É uma seqüência de zero ou mais personagens, mais formalmente. 742 00:36:18,170 --> 00:36:22,520 >> E se você quiser como uma variável para existe, você tem que dizer me dar um. 743 00:36:22,520 --> 00:36:27,490 E a maneira pela qual você fazer isso é dizer string s vírgula, onde s pode ser 744 00:36:27,490 --> 00:36:28,740 qualquer coisa que você quiser. 745 00:36:28,740 --> 00:36:30,510 Na verdade, s é um pouco abaixo do esperado. 746 00:36:30,510 --> 00:36:33,250 Deixe-me ir em frente e mais chamá-lo de nome claramente. 747 00:36:33,250 --> 00:36:36,570 Dê-me uma string chamada nome. 748 00:36:36,570 --> 00:36:40,180 >> Mas agora, o que é a pessoa nome por padrão? 749 00:36:40,180 --> 00:36:42,930 Bem, se o ser humano não digitar nada no, obviamente, não vai 750 00:36:42,930 --> 00:36:44,310 não haver valor de nome. 751 00:36:44,310 --> 00:36:48,120 E acontece em C, se você não dá a um valor variável, que vai 752 00:36:48,120 --> 00:36:49,180 tem um valor de lixo. 753 00:36:49,180 --> 00:36:51,650 Ele pode ter alguns zeros aleatórios e queridos, assim que você está indo só para ver 754 00:36:51,650 --> 00:36:54,570 lixo, na verdade, na tela se você tentar exibi-lo. 755 00:36:54,570 --> 00:36:59,800 >> Mas eu posso consertar isso por dizer, na verdade, loja dentro do nome 756 00:36:59,800 --> 00:37:01,400 depois valor. 757 00:37:01,400 --> 00:37:09,240 A maneira como você armazenar valores em variáveis ​​é se você tem um nome de variável no 758 00:37:09,240 --> 00:37:13,370 à esquerda, você tem que de alguma forma colocar o que você deseja armazenar nele, à direita, e 759 00:37:13,370 --> 00:37:17,650 a sintaxe para o que está acontecendo para ser como se segue. 760 00:37:17,650 --> 00:37:22,120 >> Nós não vimos isso antes, mas tomar na fé por um momento que não 761 00:37:22,120 --> 00:37:26,270 existe outra afirmação no mundo que eu vou chamar novamente a função, 762 00:37:26,270 --> 00:37:28,310 e esta função é chamado obter string. 763 00:37:28,310 --> 00:37:29,670 E ele faz literalmente isso. 764 00:37:29,670 --> 00:37:34,680 De alguma forma, fica uma sequência de caracteres a partir do ser humano e, em seguida, 765 00:37:34,680 --> 00:37:36,380 faz alguma coisa com ele. 766 00:37:36,380 --> 00:37:38,410 >> E isso se parece com sintaxe enigmática. 767 00:37:38,410 --> 00:37:40,880 Normalmente, se você estiver usando o sinal de igual - você está no mundo, digamos, 768 00:37:40,880 --> 00:37:43,740 álgebra, e você está realmente dizendo que x é igual a 1. 769 00:37:43,740 --> 00:37:46,570 Aqui nós não estamos dizendo que nome igual obter string. 770 00:37:46,570 --> 00:37:51,270 Estamos dizendo loja em nome de qual é no lado direito 771 00:37:51,270 --> 00:37:52,400 desse sinal de igual. 772 00:37:52,400 --> 00:37:55,030 O sinal de igual representa o operador de atribuição. 773 00:37:55,030 --> 00:37:58,240 É a sintaxe que diz colocar o que está em do lado direito dentro do que é 774 00:37:58,240 --> 00:37:59,090 no lado esquerdo. 775 00:37:59,090 --> 00:38:03,040 Então, se string é uma nova peça de uma funcionalidade que não só faz 776 00:38:03,040 --> 00:38:03,670 alguma coisa - 777 00:38:03,670 --> 00:38:05,000 pede ao usuário para uma string - 778 00:38:05,000 --> 00:38:08,500 também retorna, por assim dizer. 779 00:38:08,500 --> 00:38:10,690 >> Então vamos ver o que está acontecendo acontecer aqui. 780 00:38:10,690 --> 00:38:14,300 Eu estou indo para ir em frente agora e zoom out, e eu estou indo para obter um par de 781 00:38:14,300 --> 00:38:15,780 erros na minha solicitação. 782 00:38:15,780 --> 00:38:18,750 Eu vou fazer tipo personalizado, digite. 783 00:38:18,750 --> 00:38:19,230 Uau. 784 00:38:19,230 --> 00:38:20,500 Um monte de erros. 785 00:38:20,500 --> 00:38:23,120 >> Tudo bem, então este é o tipo de esmagadora, certamente no início, mas 786 00:38:23,120 --> 00:38:27,220 despeja tudo isso muito reconhecidamente mensagens de erro enigmáticas são 787 00:38:27,220 --> 00:38:30,700 referindo-se a alguns padrões que vamos começar a ver ao longo do tempo. 788 00:38:30,700 --> 00:38:32,600 Então, isso que eu vou arrancar fora, porque é em primeiro lugar. 789 00:38:32,600 --> 00:38:35,700 Uso de cadeia do identificador não declarado. 790 00:38:35,700 --> 00:38:39,400 >> Isso só significa que gedit ou Clang, neste caso, não se sabe 791 00:38:39,400 --> 00:38:40,780 o que eu quero dizer com string. 792 00:38:40,780 --> 00:38:43,880 E isso é porque em C, a programação linguagem, há, na verdade, 793 00:38:43,880 --> 00:38:47,750 nenhuma variável do tipo string. 794 00:38:47,750 --> 00:38:49,810 C não sabe que existem cordas. 795 00:38:49,810 --> 00:38:52,260 >> Mas nós, CS50 pessoal, faça. 796 00:38:52,260 --> 00:38:57,080 E assim, antes da aula, criado um arquivo chamado CS50.h. 797 00:38:57,080 --> 00:39:00,060 E dentro deste arquivo - e mais sobre a sintaxe para vir - 798 00:39:00,060 --> 00:39:03,730 dentro desse arquivo é a definição do que eu acabei definido 799 00:39:03,730 --> 00:39:05,340 verbalmente como uma string. 800 00:39:05,340 --> 00:39:09,100 Então, simplesmente concluindo esta linha de código no meu programa, eu sou agora 801 00:39:09,100 --> 00:39:14,620 ensino gedit e fazer e Clang tudo em transformar o que uma string é. 802 00:39:14,620 --> 00:39:15,475 >> Eu não sei como ainda. 803 00:39:15,475 --> 00:39:17,110 Em poucas semanas, vamos descascar volta dessa camada. 804 00:39:17,110 --> 00:39:20,340 Mas, por agora, sei que isso ensina o compilador que a 805 00:39:20,340 --> 00:39:22,020 corda realmente é. 806 00:39:22,020 --> 00:39:24,230 >> Então, agora deixe-me esclarecer a minha Terminal aqui. 807 00:39:24,230 --> 00:39:28,530 Deixe-me voltar a correr fazer costume, e eu resolveram todos os problemas. 808 00:39:28,530 --> 00:39:30,210 Então, isso também vai ser um tema recorrente. 809 00:39:30,210 --> 00:39:34,190 Eu só escrevi um programa de 9 linha, e Eu ainda tinha 18 linhas de erros. 810 00:39:34,190 --> 00:39:35,650 Esse é um tipo de intimidação. 811 00:39:35,650 --> 00:39:39,260 Mas percebo que muitas vezes em cascata, tais que um pequeno erro desencadeia 812 00:39:39,260 --> 00:39:43,070 a confusão para o compilador, e parece muito pior do que é. 813 00:39:43,070 --> 00:39:47,460 >> Então agora um observador astuto vai saber que eu estou recebendo uma seqüência do 814 00:39:47,460 --> 00:39:51,460 usuário, mas eu não sou realmente fazer o que com isso? 815 00:39:51,460 --> 00:39:53,570 Eu não estou realmente fazendo nada com ele. 816 00:39:53,570 --> 00:40:01,240 Então, se eu rodar o costume de novo, vai apenas sentar lá. 817 00:40:01,240 --> 00:40:03,380 O que está acontecendo? 818 00:40:03,380 --> 00:40:07,990 Meu programa parece estar preso em que linha, você diria? 819 00:40:07,990 --> 00:40:09,860 >> Então, é realmente preso na linha 7. 820 00:40:09,860 --> 00:40:13,600 E nós não vimos isso antes, mas na linha 7, há, outra vez, esta 821 00:40:13,600 --> 00:40:14,650 declaração, se string. 822 00:40:14,650 --> 00:40:15,930 E ele faz o que diz. 823 00:40:15,930 --> 00:40:18,480 Está esperando-se agora para o ser humano para tirar a corda. 824 00:40:18,480 --> 00:40:22,230 Isto é completamente intuitiva para mim, o ser humano, porque eu não foi dito 825 00:40:22,230 --> 00:40:23,040 o que fazer. 826 00:40:23,040 --> 00:40:27,320 >> Mas deixe-me ir em frente com fé e deixe-me fingir que Rob. 827 00:40:27,320 --> 00:40:28,500 Enter. 828 00:40:28,500 --> 00:40:30,930 Esse não é o programa que eu pretendia. 829 00:40:30,930 --> 00:40:32,350 Então, nós temos o nosso primeiro blog. 830 00:40:32,350 --> 00:40:34,390 >> Mas vamos tentar raciocinar através porque este é o caso. 831 00:40:34,390 --> 00:40:36,940 Primeiro, deixe-me corrigir esse primeiro problema. 832 00:40:36,940 --> 00:40:44,690 Deixe-me acrescentar uma linha aqui que diz printf, qual é o seu nome? 833 00:40:44,690 --> 00:40:47,700 Vamos fazer perto citação, fechar parênteses. 834 00:40:47,700 --> 00:40:51,350 >> Agora, deixe-me voltar a executar o programa. 835 00:40:51,350 --> 00:40:51,760 Problema. 836 00:40:51,760 --> 00:40:54,690 Eu não estou vendo isso. 837 00:40:54,690 --> 00:40:54,930 >> Certo. 838 00:40:54,930 --> 00:40:55,990 Eu não recompilá-lo. 839 00:40:55,990 --> 00:40:59,800 Então, em uma linguagem como C, porque você alterar o código fonte não significa 840 00:40:59,800 --> 00:41:03,170 que você mudou seu código objeto para gerar um novo código objeto, 841 00:41:03,170 --> 00:41:04,330 novos zeros e uns. 842 00:41:04,330 --> 00:41:05,590 Você tem que recompilar. 843 00:41:05,590 --> 00:41:10,300 Se eu agora re-executar costume, entrar, ah, um pouco mais clara. 844 00:41:10,300 --> 00:41:11,890 Meu nome é Rob. 845 00:41:11,890 --> 00:41:12,760 Ainda buggy. 846 00:41:12,760 --> 00:41:14,170 >> E eu diria que há um par de erros agora. 847 00:41:14,170 --> 00:41:15,450 Isso parece horrível, francamente. 848 00:41:15,450 --> 00:41:18,980 Como, no mínimo, eu deveria ter um espaço lá, ou mover o 849 00:41:18,980 --> 00:41:20,330 cursor para a nova linha. 850 00:41:20,330 --> 00:41:21,370 >> E, na verdade, a nova linha. 851 00:41:21,370 --> 00:41:24,660 Isso é uma espécie de frase-chave aqui que vimos, mas não definido. 852 00:41:24,660 --> 00:41:28,560 A maneira em que você começa um texto para avançar para a próxima linha, 853 00:41:28,560 --> 00:41:29,480 você não fazer isso. 854 00:41:29,480 --> 00:41:31,070 Isto é confuso para o computador. 855 00:41:31,070 --> 00:41:33,830 Isto se parece com duas linhas separadas de código, nenhum dos quais 856 00:41:33,830 --> 00:41:35,010 é perfeitamente correta. 857 00:41:35,010 --> 00:41:39,380 Você vez tem que ser mais explícito e dizer, dá-me uma nova linha, que 858 00:41:39,380 --> 00:41:41,810 representar no c com barra invertida n. 859 00:41:41,810 --> 00:41:43,230 >> Portanto, há algumas dessas personagens. 860 00:41:43,230 --> 00:41:45,080 Barra invertida n vai corrigir isso estético. 861 00:41:45,080 --> 00:41:49,640 862 00:41:49,640 --> 00:41:50,870 Deixe-me recompilar o programa. 863 00:41:50,870 --> 00:41:52,300 Deixe-me voltar a executar o meu programa. 864 00:41:52,300 --> 00:41:53,520 >> Isto parece-me melhor. 865 00:41:53,520 --> 00:41:56,960 Ele ainda é muito primitivo, mas também é ainda buggy. 866 00:41:56,960 --> 00:41:58,090 Portanto, há um - 867 00:41:58,090 --> 00:42:01,680 mesmo se você nunca programou antes, provavelmente você pode dar um palpite 868 00:42:01,680 --> 00:42:04,960 o motivo pelo qual este programa ainda é falho. 869 00:42:04,960 --> 00:42:08,540 O que eu preciso para fazer isso Eu não fiz ainda? 870 00:42:08,540 --> 00:42:10,450 >> Então eu tenho que realmente fazer algo com o nome. 871 00:42:10,450 --> 00:42:14,190 Assim como no início, você pode realmente atribuir uma variável como n ou 872 00:42:14,190 --> 00:42:16,150 combater, como fizemos na última semana - um valor. 873 00:42:16,150 --> 00:42:18,930 Mas se você não fizer nada com ele, nada vai acontecer. 874 00:42:18,930 --> 00:42:20,210 >> Tudo bem, então vamos corrigir. 875 00:42:20,210 --> 00:42:23,670 Deixe-me escrever a minha variável ali, e deixe-me descer aqui. 876 00:42:23,670 --> 00:42:29,120 Deixe-me recompilar, deixe-me re-run, Rob. 877 00:42:29,120 --> 00:42:30,540 Agora eu sou apenas um idiota, certo? 878 00:42:30,540 --> 00:42:33,280 >> Portanto, este não é realmente ficando me ainda mais. 879 00:42:33,280 --> 00:42:35,850 Mas isso foi um perfeitamente natural instinto, eu diria, certo? 880 00:42:35,850 --> 00:42:39,340 Se a variável é chamado de nome, e eu quer que ele vá lá, por que não eu 881 00:42:39,340 --> 00:42:40,200 digitá-lo lá? 882 00:42:40,200 --> 00:42:42,210 >> Bem, é claro, temos para distinguir agora 883 00:42:42,210 --> 00:42:44,070 entre o que é uma string? 884 00:42:44,070 --> 00:42:47,060 Observe que entre aspas aqui, Olá nome? 885 00:42:47,060 --> 00:42:48,960 Este fato em si é uma string. 886 00:42:48,960 --> 00:42:49,820 É difícil codificada. 887 00:42:49,820 --> 00:42:50,690 Não é do humano. 888 00:42:50,690 --> 00:42:54,020 É de mim, o programador original mas ainda é uma string. 889 00:42:54,020 --> 00:42:58,300 >> Então, se você, literalmente, escrever N-A-M-E dentro de uma corda, o que vai 890 00:42:58,300 --> 00:42:59,120 obter impresso? 891 00:42:59,120 --> 00:43:03,660 Bem, N-A-M-E. Em seu lugar, precisa dizer printf, não imprima 892 00:43:03,660 --> 00:43:04,870 fora literalmente nomear. 893 00:43:04,870 --> 00:43:06,680 Imprima o valor do nome. 894 00:43:06,680 --> 00:43:08,410 >> E para fazer isso, vamos fazer o seguinte. 895 00:43:08,410 --> 00:43:09,800 E isso é apenas uma convenção humana. 896 00:43:09,800 --> 00:43:14,990 Nós em vez dizer% s, e que significa string. 897 00:43:14,990 --> 00:43:19,810 E então, no final das minhas citações próximos, Eu vou colocar uma vírgula e 898 00:43:19,810 --> 00:43:23,790 passar um segundo argumento para esta afirmação. 899 00:43:23,790 --> 00:43:25,970 Vou escrever o nome lá. 900 00:43:25,970 --> 00:43:27,960 >> Então agora perceber que temos um ligeiramente nova sintaxe. 901 00:43:27,960 --> 00:43:32,320 Nós ainda temos dois parênteses, e a partir de agora, deixe-me dizer que o material 902 00:43:32,320 --> 00:43:36,830 entre parênteses representa argumentos em uma função - 903 00:43:36,830 --> 00:43:39,730 insumos que são de alguma forma vai para influenciar o seu comportamento. 904 00:43:39,730 --> 00:43:43,010 Então por essa lógica, quantos argumentos printf não parecem 905 00:43:43,010 --> 00:43:45,450 tomando neste momento? 906 00:43:45,450 --> 00:43:48,370 >> Assim, parece estar a tomar dois, e isso é de fato implícitas 907 00:43:48,370 --> 00:43:49,570 pelo vírgula aqui. 908 00:43:49,570 --> 00:43:51,640 Portanto, este é um argumento entre aspas. 909 00:43:51,640 --> 00:43:54,540 Mesmo que tenha uma vírgula nele tudo está entre aspas, o que significa 910 00:43:54,540 --> 00:43:56,230 é uma cadeia longa. 911 00:43:56,230 --> 00:43:58,280 Vírgula, nome da variável. 912 00:43:58,280 --> 00:44:00,680 >> Então, agora deixe-me afastar. 913 00:44:00,680 --> 00:44:02,240 Deixe-me voltar a executá-lo. 914 00:44:02,240 --> 00:44:03,490 Rob. 915 00:44:03,490 --> 00:44:06,520 Droga, o que eu fiz de errado? 916 00:44:06,520 --> 00:44:07,920 >> Tudo bem, então você tem que recompilar. 917 00:44:07,920 --> 00:44:11,030 Então, novamente, os erros fáceis de fazer no início e outra vez. 918 00:44:11,030 --> 00:44:15,280 Então, agora re-executar costume, Rob, entrar, e voila. 919 00:44:15,280 --> 00:44:17,110 Temos, agora, um programa personalizado. 920 00:44:17,110 --> 00:44:21,660 >> Então agora tenho um programa que usando algumas características 921 00:44:21,660 --> 00:44:22,520 que são dignos de nota. 922 00:44:22,520 --> 00:44:27,850 Um, eu estou usando CS50.h, caso contrário, conhecido como a biblioteca de CS50. 923 00:44:27,850 --> 00:44:33,050 E dentro da biblioteca CS50 são funções que outras pessoas escreveram - 924 00:44:33,050 --> 00:44:33,980 ou seja, o pessoal - 925 00:44:33,980 --> 00:44:36,620 para você usar e obter string é um deles. 926 00:44:36,620 --> 00:44:41,310 >> Dentro da linha 2 é stdio.h, e por que isso existe? 927 00:44:41,310 --> 00:44:42,070 Tome um palpite. 928 00:44:42,070 --> 00:44:46,200 O que existe dentro de padrão IO pai? 929 00:44:46,200 --> 00:44:46,940 Printf. 930 00:44:46,940 --> 00:44:49,600 Então printf, você não vê-lo em qualquer lugar outra na tela. 931 00:44:49,600 --> 00:44:51,870 Ela deve vir com o computador de alguma forma. 932 00:44:51,870 --> 00:44:54,870 Onde é que ela vem? 933 00:44:54,870 --> 00:44:57,660 É dentro - é declarada, por assim dizer, no interior da 934 00:44:57,660 --> 00:44:59,890 um arquivo chamado stdio.h. 935 00:44:59,890 --> 00:45:02,670 >> Agora, para essas coisas, vamos voltar para, eventualmente, porque é um pouco 936 00:45:02,670 --> 00:45:03,930 distraindo por agora. 937 00:45:03,930 --> 00:45:05,490 Isso se refere ao nosso tipo de retorno. 938 00:45:05,490 --> 00:45:07,660 Refere-se a um argumento. 939 00:45:07,660 --> 00:45:10,230 Mas para hoje, estamos focados só aqui nestas linhas. 940 00:45:10,230 --> 00:45:13,280 >> Assim, o nome string, apenas para recapitular, o que isso faz para mim? 941 00:45:13,280 --> 00:45:16,940 942 00:45:16,940 --> 00:45:19,560 Por isso, declarou uma variável do tipo string. 943 00:45:19,560 --> 00:45:22,630 Por isso, está destinado a ser por palavras, não para números. 944 00:45:22,630 --> 00:45:25,530 Apenas como um aparte, se eu queria que seja um número, eu diria 945 00:45:25,530 --> 00:45:26,560 algo como int. 946 00:45:26,560 --> 00:45:29,740 Se eu quisesse ser um ponto flutuante valor, algo com um ponto decimal, 947 00:45:29,740 --> 00:45:30,600 Eu diria float. 948 00:45:30,600 --> 00:45:32,640 Mas, por hoje, eu acabei de dizer string. 949 00:45:32,640 --> 00:45:35,940 >> E eu tenho dado esta variável um nome de nome, mas eu poderia 950 00:45:35,940 --> 00:45:37,240 ter chamado qualquer coisa. 951 00:45:37,240 --> 00:45:39,340 Na verdade, originalmente, eu o chamei S. 952 00:45:39,340 --> 00:45:41,050 >> Isso aqui é apenas um outro comunicado. 953 00:45:41,050 --> 00:45:44,170 Quantos argumentos é esta declaração tomando? 954 00:45:44,170 --> 00:45:47,890 Então, é só tomar um, e que é simplesmente um detalhe estético 955 00:45:47,890 --> 00:45:49,610 exibindo algo em a tela para mim. 956 00:45:49,610 --> 00:45:54,750 O que é esta linha 8 fazendo em termos leigos? 957 00:45:54,750 --> 00:45:57,320 >> Está ficando um valor a partir do usuário - ou seja, uma string - 958 00:45:57,320 --> 00:45:58,770 eo que ele está fazendo com ele? 959 00:45:58,770 --> 00:46:02,450 É, essencialmente, entregando-o ao cara no lado da mão esquerda 960 00:46:02,450 --> 00:46:07,100 sinal de igual modo que, neste caso, o variável nome pode realmente armazená-lo. 961 00:46:07,100 --> 00:46:10,020 >> E em seguida, um outro printf exemplo de uma função. 962 00:46:10,020 --> 00:46:11,870 E nós dizemos para chamar uma função. 963 00:46:11,870 --> 00:46:13,870 Para utilizar uma função para chamar uma função. 964 00:46:13,870 --> 00:46:15,640 Essa coisa aparentemente toma dois argumentos. 965 00:46:15,640 --> 00:46:18,100 Este, vírgula, um presente. 966 00:46:18,100 --> 00:46:20,910 >> Este em si é apenas uma seqüência que contém um espaço reservado. 967 00:46:20,910 --> 00:46:23,860 % S significa colocar outra seqüência aqui. 968 00:46:23,860 --> 00:46:27,360 E assim por colocar o nome depois a vírgula, que está inserindo 969 00:46:27,360 --> 00:46:29,420 que coisa para mim. 970 00:46:29,420 --> 00:46:31,300 >> Então eu posso fazer outras coisas ainda. 971 00:46:31,300 --> 00:46:36,820 Deixe-me ir em frente agora e fazer um pouco de programa bobo, mas deixe-me apagar isso, 972 00:46:36,820 --> 00:46:38,880 e deixe-me criar um loop. 973 00:46:38,880 --> 00:46:41,390 Enquanto verdade. 974 00:46:41,390 --> 00:46:45,210 O símbolo é obviamente verdadeiro sempre vai ser verdade. 975 00:46:45,210 --> 00:46:49,830 Então, que tipo de ciclo estou induzindo por escrito uma linha como esta? 976 00:46:49,830 --> 00:46:51,070 >> Então, um loop infinito, certo? 977 00:46:51,070 --> 00:46:52,090 Apenas enquanto verdade. 978 00:46:52,090 --> 00:46:56,210 Não há nenhuma maneira eu posso mudar a palavra verdadeiro para ser qualquer outra coisa, então isso é 979 00:46:56,210 --> 00:46:57,310 só vai funcionar para sempre. 980 00:46:57,310 --> 00:46:59,960 Então, se você nunca teve realmente um programa em seu Mac ou PC que parece 981 00:46:59,960 --> 00:47:02,480 ter trancado, ou que está fazendo uma coisa e uma coisa, e você só 982 00:47:02,480 --> 00:47:05,500 não pode fazer a coisa parar a menos que você reinicie o seu computador ou puxar para cima o 983 00:47:05,500 --> 00:47:08,360 Gerenciador de Tarefas ou similar, aqui está um exemplo. 984 00:47:08,360 --> 00:47:14,340 >> Eu posso dizer: "Eu sou um programa de buggy." Fechar citação, feche 985 00:47:14,340 --> 00:47:15,780 parênteses, ponto e vírgula. 986 00:47:15,780 --> 00:47:17,010 Então, novamente, observar os padrões. 987 00:47:17,010 --> 00:47:21,440 Mesmo que alguns dos nossos sintaxe é novo, a palavra-chave tempo, a palavra-chave é verdade, 988 00:47:21,440 --> 00:47:23,590 Repare que eu tenho o mesmo tipo de chaves. 989 00:47:23,590 --> 00:47:25,890 Eu tenho um ponto e vírgula e entre parênteses. 990 00:47:25,890 --> 00:47:28,000 >> Então, agora vamos em frente e compilar isso. 991 00:47:28,000 --> 00:47:29,630 Faça o costume, costume. 992 00:47:29,630 --> 00:47:32,690 993 00:47:32,690 --> 00:47:36,660 Portanto, neste ponto, você não precisa reiniciar o aparelho, certo? 994 00:47:36,660 --> 00:47:39,925 Então a lição aqui é fácil com dois dedos, Controle C, 995 00:47:39,925 --> 00:47:41,230 vamos deixar esse programa. 996 00:47:41,230 --> 00:47:45,430 Mas você pode ver exatamente por isso que essa coisa se repetia uma e outra vez. 997 00:47:45,430 --> 00:47:48,080 >> Eu posso fazer algo um pouco mais complexo como um teaser. 998 00:47:48,080 --> 00:47:49,600 Eu estou indo para ir em frente e dizer o seguinte. 999 00:47:49,600 --> 00:47:55,210 Para int, que é um inteiro, é apenas i um nome genérico que damos a mais 1000 00:47:55,210 --> 00:47:59,500 variáveis ​​na programação quando você está apenas contando, é igual a 0. 1001 00:47:59,500 --> 00:48:08,640 Deixe-me ir em frente e dizer, enquanto i é, digamos, menos de 100, i plus plus. 1002 00:48:08,640 --> 00:48:10,240 Vamos voltar para esta sintaxe, mas isso significa apenas 1003 00:48:10,240 --> 00:48:12,270 incrementar i novamente. 1004 00:48:12,270 --> 00:48:14,200 >> E o que eu quero fazer aqui? 1005 00:48:14,200 --> 00:48:21,130 Printf "Eu posso contar a i." Este é um programa de buggy. 1006 00:48:21,130 --> 00:48:22,450 O que eu realmente pretendo aqui? 1007 00:48:22,450 --> 00:48:25,220 1008 00:48:25,220 --> 00:48:30,940 >> Por cento não é, mas você não iria adivinhar isto. % D é um inteiro decimal. 1009 00:48:30,940 --> 00:48:32,720 Comma i. 1010 00:48:32,720 --> 00:48:34,340 Deixe-me rolar para trás. 1011 00:48:34,340 --> 00:48:37,170 >> Deixe-me agora recompilar com o make. 1012 00:48:37,170 --> 00:48:39,280 Deixe-me agora reprise com o costume. 1013 00:48:39,280 --> 00:48:42,410 Eu posso contar realmente maldita rápido quando Eu escrevo um programa como este. 1014 00:48:42,410 --> 00:48:45,480 >> Agora vamos fazer algo um pouco não intencional. 1015 00:48:45,480 --> 00:48:51,220 Que tal vamos fazer isso enquanto eu é maior do que ou igual a 0. 1016 00:48:51,220 --> 00:48:53,630 O que é que isto vai provocar? 1017 00:48:53,630 --> 00:49:01,030 Então, logicamente, isso não é tão sábio, porque agora se eu reprise isso, recontagem, 1018 00:49:01,030 --> 00:49:05,050 Agora eu posso contar muito, muito alto. 1019 00:49:05,050 --> 00:49:08,850 Infelizmente, quase tão alto quanto eu puder contagem é de 4 bilhões de dólares, de modo que este vai 1020 00:49:08,850 --> 00:49:10,140 demorar um pouco. 1021 00:49:10,140 --> 00:49:13,440 >> Então, por que não vamos deixar isso como nossa suspense, prometendo que em 1022 00:49:13,440 --> 00:49:15,650 Quarta-feira, vamos ver se este programa é feito. 1023 00:49:15,650 --> 00:49:19,260 Dois, vamos apresentar como você mesmo escrever sua própria função para que muito 1024 00:49:19,260 --> 00:49:22,930 rapidamente, até quarta-feira, nós vamos, como nós transição a partir do zero em C, começar 1025 00:49:22,930 --> 00:49:25,880 escrever sempre cada vez mais complexo programas que fazem muito, 1026 00:49:25,880 --> 00:49:27,070 muito mais do que isso. 1027 00:49:27,070 --> 00:49:28,766 Vamos vê-lo em seguida. 1028 00:49:28,766 --> 00:49:31,580 >> [Aplausos] 1029 00:49:31,580 --> 00:49:34,690 >> COLUNA 1: Na próxima CS50, Quebra-cabeça Day foi um sucesso. 1030 00:49:34,690 --> 00:49:39,690