DAVID MALAN: Este é CS50, e esta é o início de uma semana. E o que nós pensamos fazer é puxar para trás a cortina de um dispositivo que muitos de vocês provavelmente já passou agora durante anos, mas talvez nunca se conhecido o que é. Portanto, este dispositivo provavelmente vai olhar familiar para a maioria de vocês até agora. [REPRODUÇÃO] -A vitória da matemática e habilidade mecânica é esta nova grande calculadora automática em Universidade de Harvard. Problemas complicados de matemática colocar através da máquina, sob forma codificada na fita são precisamente resolvido em um minuto fracção do tempo necessário para a cálculo humano. Projetado para agilizar todas as formas de pesquisa matemática e científica, o cérebro mecânico gigante vontade trabalhar para os Estados Unidos Marinha até o final da guerra. [FIM REPRODUÇÃO DE VÍDEO] DAVID MALAN: Então é isso que você vê na Centro de Ciências, que é onde essa máquina agora está alojado. Na verdade, você só vê parte dela. Apenas uma parte está actualmente em exposição, e isso é um dispositivo chamado a marca I, e foi essencialmente realmente um enorme calculadora. Ele foi sucedido pelo Mark II, e é do Mark II que realmente ter um pouco de léxico. Este é o primeiro registro de algo que está prestes a tornar-se tudo muito familiarizado com todo o decorrer do semestre - ou seja, um bug. Então, ele saiu em um ponto a Marca Dispositivo II não estava funcionando corretamente, e após uma inspeção mais próxima, houve de fato um erro - uma mariposa - que traça - interior. E desde então, nos referimos erros em programas como erros. Então, mais sobre isso mais para vir. Falando em vídeo, bem como, se não tiver, sei que é CS50 obviamente filmado. As palestras vão tipicamente logo após classe em uma espécie de pré-lançamento formato inéditos, e, em seguida, um dia ou dois depois, nós colocamos uma resolução maior ea versão de maior qualidade. Você pode recordar Vanessa, que teve a sorte de jogar com Google Vidro, que me lembrei de carregar este tempo. Então, se você quiser vir até depois da aula e jogar, eles devem trabalhar hoje. E se você gostaria de ver o que Vanessa vi no outro dia, o que você vai ver por aqui - deixe-me aumentar o volume aqui no meu laptop. [REPRODUÇÃO] -Então deixe-me esta fila é para cima. Tudo bem. Então tocar isso. Tudo bem. OK, Glass. Gravar um vídeo. Tudo bem. Vanessa? [FIM REPRODUÇÃO DE VÍDEO] DAVID MALAN: Tudo bem, então a razão que não funcionou para a maioria de vocês em Ao final da aula foi porque eu continuei para gravar uma hora desse imagens apontando para mim depois Coloquei os óculos para baixo. Então, hoje, eu vou deixá-los fora, mas graças a você Vanessa por ser um bom esporte. Enquanto isso, um par de anúncios antes de avançar hoje. Então, um, CS50 tem uma tradição de fazer o que pudermos para tentar fazer uma muito grande classe sentir menor. E para esse fim, a maioria toda sexta-feira, nos reunimos em um restaurante em praça, Fire and Ice, com 30 ou 40 de seus colegas, eu mesmo, alguns dos o corpo docente, e nós apenas ter um almoço muito casual. Nós muitas vezes convidar amigos da indústria, alunos da classe, ex-alunos da faculdade, na verdade, apenas para conversar cada aos outros, falar sobre a vida após a faculdade, vida na faculdade, e semelhantes. Então, se você gostaria de participar desta primeiro como o almoço nesta sexta-feira 13:15, de cabeça para que URL em algum ponto. O espaço é limitado, por isso vamos fazer chegar primeiro servir. Mas vamos fazer isso de novo em um recorrente base, então não se preocupe se você não isso nesse primeiro lote. Agora, em termos de recursos desde curricularly pelo curso há uma série inteira, e se você não tem puxou o site do curso já, em particular, em palestras, você verá que tudo que fizemos na semana passada está lá, tanto em vídeo e uma espécie de forma eletrônica. Mas, além dos vídeos, você vai encontrar que existem agora texto completo transcritos, por exemplo, de cada palestra. Então, se nós realmente voltar a esta tela aqui com Vanessa, e navegar para o canto inferior da tela, você vai descobrir que, na verdade, não para A palestra de sexta-feira, mas se voltar a Quarta-feira, uma vez que este recurso tem um alguns dias, você vai achar que você pode realmente puxar para cima, para melhor ou para pior, cada palavra que eu ou um voluntário no palco, disse. E mais do que isso. Você pode, na verdade, busca-lo, você pode clique em qualquer uma dessas frases, saltar ao ponto em que o vídeo, para todos e no fim do fabrico do material de todos os mais navegável. Mas se você prefere não segui-lo com tantos detalhes, você vai encontrar, por exemplo, este pequeno menu aqui para 1.5x velocidade, a velocidade de 2x, ou i f i já falam muito rápido para você, velocidade 0,75 x. Assim, percebe tudo isso é disponível lá para você. Mas, além disso, para palestras, realizar que também fazem esses recursos também disponível. Slides, exemplo de código, qualquer coisa que eu fazer no palco ou no avanço da classe, vamos postar lá para que você possa jogar junto em casa ou no Sanders. Mas o que nós também pensamos em fazer isso ano, pela primeira vez é também fornecê-lo com orientações destes exemplos. Cada vez mais, como eu já refletiu sobre o valor das palestras de CS50, eu comecei a questionar o quão útil é para Vocês se sentar lá, para mim estar aqui, e para mim falar com você, particularmente como material, o exemplos, se tornam mais complexas. Porque, invariavelmente, após um certo número de minutos, alguém vai sair da zona, e então você perca algum insight chave de alguns exemplo, e então você está essencialmente ido para o resto da classe, o que não é o melhor uso de seu tempo, ou, realmente, a nossa coletivamente como uma classe. E então o que nós pensamos em tentar fazer, particularmente para alguns dos mais exemplos complexos que eu não poderia fazer justiça em sala de aula, que não pode tenho tempo para em sala de aula, ou você pode apenas a zona durante, é que vamos produzir uma série de orientações destes exemplos para que, se você vai, para exemplo, a página de vídeo de última sexta-feira aqui com exemplos, você verá que para sexta-feira, há agora esta ligação para orientações. E o formato destes vai mudar ao longo do tempo. Por enquanto, estamos usando uma simples Lista YouTube. Mas o que eu fiz com a nossa equipe de produção depois foi percorrer cada e cada um desses exemplos, novamente, espero que apontar com muito mais clareza exatamente o que o delivery pode ser ou deveria ser de cada um. Então você vai encontrar, por exemplo, a partir do último semana, todos os exemplos scratch passamos são feitos de forma linear em que a moda. Portanto, sinta-se livre para participar ou não envolver neste material. Realmente um tema deste curso particular é que há provavelmente mais na forma de recursos que lhe poderia absorver mais o curso de um semestre. Mas isso é proposital. Era para ser assim que você, como cada aluno pode se auto-select com base em seu estilo de aprendizagem. Então, se palestras trabalhar para você, ótimo. Se secções trabalhar para você, ótimo. Se orientações para trabalhar é melhor, ótimo. Ela realmente vai ser até você para escolher quais recursos funcionam melhor para você. Finalmente, graças a um ex-aluno da Claro, nós também fornecemos uma canônica conjunto de notas escriba. Então, ao invés de ter vocês cabeças para baixo em palestras rabiscando coisas que surgem em sala de aula, nós, os pessoal, irá fornecer-lhe com o que sentir são um conjunto canônico de notas para livrá-lo de que a distração, de modo que se você está aqui e engajada, você está verdadeiramente comprometidos com o que está acontecendo, com seus colegas estão fazendo em cima palco, com o que se passa na tela, e não simplesmente escrever textualmente o que aconteceu ter sido dito. Assim, percebe todos esses recursos estão disponíveis para você. Seccionamento, em resposta a um FAQ, começará nesta quarta-feira. Nós essencialmente esperar até depois de mais outras classes são feitas para que possamos minimizar o número de alterações que precisamos fazer. Mas chegando neste fim de semana, começando Domingo, será um exemplo, um tempo de o que chamamos de super-seções. Estes serão filmados para aqueles que não podem participar e, essencialmente, o cabeças do curso vai nos atravessar alguns da porção C do curso, em direção a uma final de um conjunto de problemas, que Vai ser o nosso primeiro C com base conjunto de problemas. E estes serão apenas seções opcionais em antecipação do que vai tornar-se seções recorrentes levaram por do curso 50 plus ensinando companheiros semanal. Aos domingos ou segundas-feiras ou terças-feiras, nós têm seções 90 minutos de uma forma muito sentido tradicional, que será oportunidades para as mãos e mais revisão íntima da o material de curso. Sem mais delongas, deixe-me apresentar cabeças do curso, que são nos bastidores com me, fazendo com que tudo aconteça. Se aqueles que estão aqui hoje, poderia se juntar a mim, Rob e Lauren e José e Lucas, todos dos quais foram com o Naturalmente durante algum tempo. RJ é o terceiro membro da nossa equipe. Ele não pôde estar aqui hoje, mas ele me pediu para mostrar uma foto dele. Eu não tenho certeza que ele queria isso , mas lá está ele. E deixe-me apenas permitir que a equipe de dizer Olá e apresentar-se de modo que você começa a conhecê-los, bem como sua próprio companheiro ensino este termo. LAUREN CARVALHO: Oi. Meu nome é Lauren Carvalho. Eu sou um tutor residente em Leverett House. Eu também estou super animado para ser um TV de cabeça para CS50 este ano. CS50 é uma classe muito difícil, bem como uma classe muito grande, então se você tiver alguma dúvida, se você se sentir como você está ficando para trás, não hesite em chegar a qualquer um de nós em heads@cs50.het, ou para mim, se você Gosto de brincar com o meu ouro puppy retriever. Aqui é Lucas. LUCAS FREITAS: Ei, pessoal. Meu nome é Lucas Freitas. Eu sou um júnior [inaudível] ciência da computação e lingüística. Na verdade eu sou do Brasil, e eu também realizar estudos do leste asiático. Então, se você tem alguma dúvida sobre ciência da computação, língua ou qualquer coisa, é só me avisar. Ou CS50, especialmente. JOSEPH ONG: Oi. Eu sou Joseph. Eu sou um computador sênior estudar ciência em Elliott House. Então, vamos ver. Você vai me ver por aí carregando um destes enormes câmaras. Eu sou o residente fotógrafo pessoal para 50, bem como, e muitas vezes os alunos às vezes me confundir com um turista asiático. Então, se você me ver com uma câmera, não fuja. Apenas sorria e não se acanhe. E eu espero que você goste 50. Eu gostei muito quando eu peguei, e é por isso que eu tenho para TFing Nesses três anos. ROB BOWDEN: Oi. Eu sou Rob. Este é o meu quarto semestre com CS50. I acabou de se formar em maio. Eu estava em Kirkland. Estou animado para este semestre, e espero que também o são. DAVID MALAN: Obrigado para este ano cabeças, e assim a RJ. Então algumas notas finais sobre recursos. Um, p definir 0 já está de pé. Este só existe na norma edição, que é destinado para o elementos da classe. Começando com um conjunto de p, haverá edições de hackers da maioria dos conjuntos de problemas, que, novamente, vai cobrir o material com um pouco mais de um desafio, enquanto ainda tocando em algum dos mesmos temas. Fazer dar uma olhada no site do curso para que a especificação para p set 0. O horário de expediente, também, vai começar esta semana, hoje, amanhã, quarta-feira, e quinta-feira em várias refeições salas no campus. Confira cs50.net/ohs para o escritório horas para o curso, e perceber isso haverá oportunidades muito casual, Certamente, no início do semestre, de encontrar com o seu laptop durante as férias de cérebro. Trazer alguns amigos e conversar com o TFs do curso e CAs com qualquer perguntas que você possa ter. E eu não posso enfatizar o suficiente, mesmo para zero e 0 conjunto de problemas, não realmente nenhuma pergunta idiota. Não há aluno muito desconfortável fazer perguntas. Sinta-se livre para tirar proveito deste recurso. Ele vai estar lá recorrentemente ao longo do semestre, como vai CS50 Discutir. Esta é a discussão on-line do curso fóruns em que o endereço lá. O que nós também vamos fazer durante as aulas é também monitorar isso, graças ao equipe de professores do curso. E por isso, se você tem uma pergunta durante palestra, porque eu disse algo mal ou não em todos, por todos os meios, pergunte que em tempo real, se você tem o seu laptop ou telefone no site, e vamos fazer o nosso melhor em tempo real para responder a isso. Há dúvidas sobre CS 50? Então, um últimas notas da mina. Essa questão do SAT unsat. Como você finalizar seus cartões de estudo, se não tiver, perceber que o visão global da SAT unsat, disponível para todos os alunos, é realmente para ajudar a tomar a borda fora de um curso assim, por assim dizer, de modo que se você encontrar-se à noite, 02:00, 03:00, realmente bater sua cabeça contra a parede onde você sabe que é de 99% do o caminho para a conclusão, mas você tem tantas outras coisas para fazer, Eu acho que um uso melhor, muitas vezes, de tempo dos alunos é mover-se de fato sobre a essas outras coisas para que você possa otimizar o tempo todo. E SAT unsat é um mecanismo através do qual você pode se consolar com o fato de que 99% do caminho existe ainda muito bom. Da mesma forma, também, se você veio para o Claro, sem conhecimento prévio ou não tanto de fundo como você acha que seus colegas possam ter, a verdadeira ou falso, perceber que esta é uma oportunidade de sujar as mãos com o curso, colocar os pés na água, por assim dizer, muito parecido com que eu me fez anos atrás com aprovação / reprovação. Como eu disse na semana passada, teve o curso, como os outros, não está disponível aprovação / reprovação na época, eu provavelmente faria Não tenho nem nunca pisou em a classe, mesmo que eu fiz, cinco semanas mais tarde, mudar a minha mente, o que você pode muito bem, e passar a ou de estado graduada carta. Tudo bem. Então, nós olhamos para as coisas como esta em Sexta-feira, e nós estamos indo muito rapidamente a transição para algo que parece mais enigmática hoje. Mas é no entanto o mesma idéia fundamental. Qual foi o termo geral que usado para descrever uma peça do puzzle que se parecia com isso? Assim, uma afirmação. E você pode chamar isso de qualquer série de coisas. Mas vamos chamá-lo de um comunicado, e uma declaração apenas diz ao programa - ou, no caso de risco, o sprite - fazer alguma coisa. Diga Olá neste caso. Algo parecido com isso, em vez chamado o quê? É, portanto, uma expressão booleana. Uma expressão booleana é apenas algo o que é verdadeiro ou falso, e assim Raspe chama-los com esta forma, mas também com um ponto de interrogação para transmitir a idéia de que a resposta a esta pergunta é verdadeiro ou falso, sim ou não um, 1 ou 0. E usamos estas expressões booleanas dentro de construções como estas, que chamamos o quê? Assim, a condição ou ramo. E a condição que você vê aqui em Zero tem um pequeno espaço reservado para a parte do enigma de que forma, o propósito de que é assim que você pode arrastá-lo e soltá-lo em cima e, em seguida, ditar o programa se este Boolean expressão é verdadeira, fazer este conjunto de instruções, este conjunto de declarações, mais fazer isso outro conjunto de instruções. E lembrar que você pode ninho essas coisas. Mesmo que não há muito espaço visualmente em que parte do enigma, risco vai crescer e encolher para caber tudo peças do puzzle que você arrastar e soltar em lá, então você pode realmente Ninho e tem um garfo de três vias na estrada. If, else if, else. E você ainda pode ir além do que, nidificação mais e mais, conforme necessário. Então, finalmente, vimos construções como este, também conhecido como um circuito. E este é apenas algo que faz algo de novo e de novo e de novo. Neste caso, ele passa a ser um finito número de vezes, mas nós também viu um exemplo onde o número de vezes veio de uma variável, por isso pode mudar. E vimos também um outro bloco completamente chamado um bloco que sempre permitiu-nos fazer um loop infinitamente longo. Então, uma outra construção que zero 2.0 tem - e aqueles que mais confortável com fundo anterior são já está bem familiarizado com esta construir - essas coisas que chamamos de quê? Então, chamamos estas funções, caso contrário, conhecido como procedimentos. Há uma pequena diferença semântica, mas vamos chamá-los apenas funções. E uma função, no caso de risco, é uma peça de quebra-cabeça personalizado que você mesmo pode criar para que você tenha uma nova peça de quebra-cabeça que, neste caso, seria chamado tosse, que aparece entre todos os outros peças do puzzle disponíveis em zero. Mesmo que o MIT não inventou esta peça de quebra-cabeça, que você fez. Então a função permite que você crie novas comportamento, dar-lhe um nome de função, e em seguida, chamá-lo, por assim dizer. Realmente usá-lo em programas de novo e uma e outra vez, sem ter que esperar para alguém como MIT no caminho para inventar uma nova funcionalidade a partir do zero. Você mesmo pode construir estes quebra-cabeças pedaços de si mesmo, e depois reutilizá-los em seus próprios programas. E nós vamos ver um exemplo recorrente de que hoje em diante. Então, hoje, nós transição agora para algo mais misterioso. Contudo, no final do dia, algo mais poderosos e expressivos e mais representante do caminho que nós vamos ser em todo o semestre toda uma série de línguas - que de código ou o código fonte. E código-fonte, ao que parece, não é o que um computador normalmente funciona realmente. O código-fonte é algo como isto. Portanto, este é, de novo, talvez a mais simples programa, podemos escrever em um linguagem chamada C. Vamos começar a provocar este apart em pouco tempo, e se isso realmente se parece com grego para você agora, confie em mim. Dentro de uma semana ou duas de tempo, este vai ser tudo muito familiar e realmente bastante representativo de cada vez exemplos complexos com o qual você também se sentir mais confortável. Mas você não pode simplesmente executar este tipo de código normalmente. Você tem que transformá-lo em algo que o próprio computador entende. E assim, para isso, precisamos de algo vamos chamar um compilador. Um compilador é um programa que leva código-fonte, como você acabou de ver, como de entrada, e produz e zeros queridos como saída, caso contrário, conhecido como código-objeto. E é esses zeros e uns que pode parecer como esta que em última análise, são entendidas pelo seu Mac ou PC. Se você já ouviu a comercialização expressão Intel Inside, que apenas significa que uma companhia chamada Intel fabricou o cérebro do computador - também conhecida como a CPU, unidade central de processamento - e isso é apenas a coisa que entende padrões de zeros e uns. E assim, através da conversão de código fonte em código objeto através deste processo aqui que nós vamos fazer com um par de comandos em apenas um bit, você está criação de padrões de zeros e uns que os funcionários da Intel têm decidiu representar certas declarações. Agora, eu não sei bem o que é que por apenas olhando para esses zeros e uns. A maioria dos seres humanos nos dias de hoje não. Mas em algum lugar há um padrão de zeros e uns que representam o declaração de impressão. Em algum lugar em que poderia haver uma diferente conjunto de zeros e uns que representar a noção de sempre ou Repita 10 vezes, ou mesmo Meow, se é na verdade, um programa que pode incluir alguns sons. Assim, em breve, os seres humanos têm apenas decidiu, assim como fizemos para ASCII - para as letras do alfabeto na semana passada - os seres humanos decidiram que, mesmo padrões mais complexos de zeros e uns representar o comportamento mais complexo como imprimir ou dizendo ou miando. E assim, para hoje, e em grande parte em diante no semestre, vamos dar para certo que alguém tem figurado como fazer esse mapeamento. Mas, de acordo com essa idéia de de camadas na parte superior do trabalho de pessoas que vieram antes de nós, vai demorar para concedido o fato de que isso está acontecendo debaixo do capô. Mas estamos muito mais interessados ​​em construção de coisas que são mais interessante em cima de tudo isso. E assim, de fato, o primeiro programa que escreveu em risco era esse super simples um, Olá Mundo. E você pode pensar nisso como sendo o programa principal que rege o risco de comportamento a partir de sexta-feira passada. Hoje, vamos começar a traduzir Raspe peças do puzzle em código fonte nesta língua chamada C de modo que o que parecia ser esta a Sexta-feira, a partir de hoje em diante, é agora vai ficar assim. Reconhecidamente mais enigmática. É muito perturbador e tipo de mente entorpecente para ver todas as citações e as vírgulas e os parênteses e assim por diante. Mas se você começar a ignorar qualquer coisa que você não entendo, e realmente olhar a essência do texto branca na tela, com certeza você vê, como eu, "Olá, mundo". Que se alinha com o declaração roxo em cima, e ele se transforma que a palavra-chave principal vai alinhar conceitualmente com ao verde bandeira clicado. Assim, em outras palavras, enquanto em Scratch vamos implementar este programa Olá Mundo com essas duas peças do puzzle, em C, vamos implementá-lo com estes quatro linhas um tanto enigmáticas. Mas como mergulhar mais fundo para isso, você vai ver que cada um desses caracteres brancos na tela realmente tem algum significado importante, ea maioria dos nossos programas vão olha estruturalmente a mesma. Assim, uma declaração, para ser claro, o que parecia "say Olá mundo" na Sexta-feira vai começar a olhar gosto desta segunda-feira. printf ("Olá, mundo"). E há alguma barra invertida estranho n, há parênteses, há ponto e vírgula. Contudo, no final do dia, a tecla takeaway hoje é que tudo o que estamos fazendo está traduzindo as coisas de imagem formar a forma de texto. Assim, um ciclo que ficou assim na semana passada, vai agora olhar algo como isto. E deixe-me rejeitam, assim como no Zero, há diferentes maneiras de atingir o mesmo objetivo. Mesmo em C. Eu não estou mostrando-lhe o único maneira de fazer as coisas, mas uma maneira de traduzir isso para sempre bloco para um circuito em C. Este aqui, repita 10 vezes. Este realmente tipo de dobra o mente a primeira vez que você vê-lo. Mas para implementar que, doravante, vamos usar um loop for, por assim dizer. E, evidentemente, há uma sintaxe que é um pouco complexo, com I e igual e 0, mas uma vez que mergulhar no que de hoje em diante, você só vai para ver que isso é tudo simplesmente fazer algum aritmética básica para nos levar de 0 em até 9 ou 10, neste caso. Por fim, com as variáveis, você vai se lembrar uma variável que é uma parte de armazenamento. Bem, o que nós tivemos na esquerda lá no semana vai parecer um pouco algo como isso esta semana. Mas, novamente, mais sobre isso mais para vir. Tivemos expressões booleanas, que na semana passada, ficou assim. Esta semana em diante, eles vão começar a olhar um pouco como isso. E este é realmente um pouco reconfortante. Na verdade, é quase tão simples como os blocos verdes. Mas aqui temos, mais uma vez, uma nova sintaxe com e comercial, mas você pode talvez acho que enquanto em zero, você A dizer-N-D, aparentemente em C, estamos vai dizer comercial e comercial. Mas tudo isso vai se tornar natural, antes do tempo. Condições. Na semana passada, parecia que este da esquerda. Esta semana, à direita, é vai ficar assim. Mas, novamente, o principal argumento aqui é que como você vê as coisas como que em o direito, e especialmente se menos confortável, é uma espécie de sobre o seu cabeça, você fica um pouco sobrecarregado que Eu realmente não tenho idéia de como eu poderia possivelmente, chegar a que a partir do zero - sem trocadilhos - basta perceber que ele é realmente o mesmo idéia de que, provavelmente, me senti muito mais naturais na semana anterior. E mesmo se você não mergulhou problema set 0, ouso dizer que você vai encontrar que as peças do puzzle são bastante intuitiva, ou pelo menos tornar-se assim ao longo do tempo. Então vamos mergulhar dentro Vamos sujar as mãos aqui com Neste primeiro programa simples. E simples é, é claro, relativa. Para fazer isso, eu vou mudar telas a esse dispositivo Liguei para o CS50 aparelho. O aparelho CS50 é um pedaço de software que está sendo executado dentro de um janela no meu Mac, e você também pode executar lo em uma janela dentro do seu PC, que me permite ter exatamente o mesmo ambiente do computador como cada TF, conforme cada CA, como todos os alunos na classe. Porque o aparelho CS50 é literalmente outro sistema operacional chamado Linux - especificamente Fedora Linux - e nós, os funcionários, ter configurado o processo de instalação para este sistema de operação, de tal maneira que um, há um pequeno logotipo no CS50 meio, dois, há um menu personalizado no parte inferior, e três, pedagogicamente, nós simplificamos a interface de usuário como tanto quanto possível, de modo que, quando você primeiro arrancar essa coisa em seu próprio país Mac ou PC, você tem o mesmo meio ambiente como todos os outros, e você tem todas as ferramentas que você precisa para o curso sem ter que descobrir como instalar cada um e cada instrumento individualmente. Portanto, esta parece relativamente como Mac OS ou Windows. No canto inferior esquerdo, você essencialmente ter um menu Iniciar do tipos, ou um menu Apple. E então você tem o que nós suspeitamos vontade ser seus três ícones mais comuns. Uma delas é o Chrome. Há um browser dentro do aparelho. Dois é um programa chamado gedit, que vimos brevemente na semana passada, o que é apenas um editor gráfico. E três é um programa de terminal, que é uma janela a preto e branco a partir de passado que nos permite digitar mais comandos arcanos, mas mais poderosa em nosso teclado. Então, eu estou indo para ir em frente e clique em gedit, e tenha a certeza de que problema conjunto 1, que será lançado na sexta-feira, será orientá-lo através de todos esses mesmos passos. Repare que eu tenho uma simples interface de utilizador com três partes. À esquerda, eu tenho um grande vazio janela chamado código fonte. É onde eu estou indo para ver um resumo de qualquer código que eu escrevo. No lado direito, eu tenho um grande tab, atualmente salvos, e isso é onde meu código está indo. E no fundo, eu tenho um incorporado Janela de terminal, um preto e branco prompt no qual eu possa digitar comandos para compilar e executar meus programas - que é, fazer e executar meus programas. Então, vamos começar pelo mais simples. Deixe-me ir até Arquivo, Salvar. Eu estou indo para ir em frente e entrar em jharvard. Assim, o aparelho, independentemente daquilo seu nome é, pertence a um cara chamado John Harvard, que tem uma casa jharvard diretório dentro do qual todos os seus arquivos vai. É a sua própria cópia de sua conta, então não estamos todos compartilhando o mesmo disco rígido. Você apenas tem a ilusão do próprio John Harvard. De antemão, eu realmente Dropbox instalado. O aparelho vem com preprepared Dropbox para que, se alguma coisa der errado durante o semestre, se você tiver configurou o aparelho com um livre Conta Dropbox, todos os seus arquivos serão ser feito o backup automático para você pode facilmente recuperá-los. E eu estou indo para ir para o meu Dropbox diretório, e já está acontecendo ser algumas outras coisas lá. Mas eu estou indo para ir em frente e vá em Arquivo, Salvar. Eu estou indo para ir para jharvard, Dropbox, e aqui em cima, eu vou dar o meu programa um super simples nome, hello.c, e depois salvar. Então, eu tenho a mesma interface agora. A única coisa que mudou é o guia em cima. Então, eu estou indo muito rápido para recriar que programa a partir do desliza um momento atrás. Então, em main (void), e, em seguida, printf, "Olá, mundo", um tanto enigmática barra invertida n, próximo orçamento, feche parênteses, ponto e vírgula, e então Ctrl S para salvar. E notem como um aparte que apenas apareceu aqui no canto superior esquerdo. E isso não é útil hoje, mas será útil ao longo do tempo. Você acabou de ver, mais uma vez, um resumo das o código que você escreveu. E porque eu escrevi algo chamado principal, é por isso que a palavra principal estourou até lá. Mas, na maior parte, Não é necessário que hoje. Tudo bem, então eu digo que esta é minha primeiro programa escrito numa programação linguagem chamada C. Sabemos que a partir de sexta-feira que o que essa coisa vai fazer muito uninterestingly quando eu executá-lo é apenas mostrar - em outras palavras, para imprimir, como um computador cientista diria - Olá mundo na tela. Então, para fazer isso, você vai perceber que eu tenho para ir até aqui para meu terminal janela, e agora eu tenho um piscar rápido. Mas esta é agora uma versão de teclado meu diretório home John Harvard. É uma forma de teclado através do qual para navegar meu disco rígido. Então eu não posso digitar, na verdade, como eu fiz na semana passada fazer Olá, porque é vai dizer nenhuma regra para processar o alvo - algo está errado. Eu não sei bem o que essa mensagem meios, mas isso é porque, por padrão, quando esta janela preto e branco é abriu, eu estou dentro de John Harvard diretório home. Mas onde eu salvar esse programa? Na minha pasta Dropbox. Agora, todos nós crescemos com computadores em que basta clicar duas vezes no ícone de uma pasta, ele abre-se, e pronto. É aí que o arquivo chamado ola.c seria. Então, na verdade, vamos fazer isso. Deixe-me ir em frente e minimizar gedit assim como você faria em Windows ou Mac OS. Deixe-me ir para a casa pasta no canto superior esquerdo. Vejo aqui um monte de pastas. Aqui está a minha pasta Dropbox. As marcas de verificação significa que foi sincronizado. E há algumas coisas aqui, mas percebe que é hello.c de fato ali. E assim, Mac OS ou Windows, normalmente, Eu tinha um duplo clique disso, abre-se qualquer programa, e eu sou bom para ir. Mas agora, pelo menos a partir de hoje, nós precisa dar um passo para trás apenas para dar-lhe algumas ferramentas básicas para o seu kit ferramenta com a qual fazer mais coisas poderosas antes do tempo. Então, neste prompt, eu tenho que fazer o equivalente a clicar duas vezes no Pasta Dropbox. E para fazer isso, eu vou escrever para CD mudar de diretório, Dropbox, entrar. E agora perceber os parênteses na minha chamados pronta agora diz que eu estou em til, o pouco embaralhada símbolo no canto superior esquerdo da maioria dos teclados, / Dropbox. Este é apenas notação abreviada para dizendo humano, agora você está dentro de a pasta Dropbox, como se você tivesse clicado duas vezes sobre ele. Portanto, agora se eu ir em frente e digite make Olá, entrar, eu vejo muito enigmático comando, mas não é uma mensagem de erro, parece, e depois outro piscar rápido. E se você se lembra, sempre tão rapidamente na sexta-feira, nós fizemos isso. . / Olá. O que você está prestes a ver é o resultado da minha execução deste programa, ou, no Mac Termos de sistema operacional e PC, se eu tivesse normalmente dobrar clicar em um programa - um aplicativo. programa ou um. exe, abre-se uma janela e corridas. Digitando. / Olá é como dupla clicar em um programa para executá-lo, mas usando o meu teclado. Digite, Olá mundo. E é isso. Então, vamos provocar este para além de por isso não se sente muito parecido com o grego. So. / Significa o quê? Qualquer um que já navegou um teclado ambiente como este, o que é ponto referindo? O diretório atual. Assim, o diretório atual é apenas um sinônimo para uma pasta. Assim dizendo dot slash, eu estou dizendo, procure por um programa chamado Olá na diretório atual - na pasta atual. Em outras palavras, minha pasta Dropbox. E é por isso pressionando enter depois realmente funciona esse programa. Se eu LS agora Tipo, observe que eu vejo tudo na minha pasta Dropbox. Obtendo Started.pdf, que Dropbox dá-lhe gratuitamente, minhas fotos diretório, um diretório público e não salva Documento 1 que fiz por engano um há pouco, foo.c, que eu fiz antes hoje, e, em seguida, duas linhas - hello.c e Olá. Hello.c é o programa que eu escrevi com gedit, eo que é Olá em verde? O Olá em verde é o executável. Em outras palavras, quando eu corria esse comando há pouco - deixe-me rolar de volta no tempo - quando eu corri fazer Olá, isso é a etapa intermediária aqui. E levou hello.c como entrada - Código fonte AKA - e produziu um arquivo chamado Olá como saída, que contém todos esses zeros e uns. E é por isso que, no final, eu posso realmente executar um comando como. / Olá. Por causa da Intel Inside, meu operacional sistema Linux, abre os zeros e aqueles, alimenta-los para o cérebros de meu computador - a CPU - e que a CPU sabe, oh, aqui está um padrão de zeros e uns que diz imprimir o seguinte coisa no ecrã. Qual é a coisa seguinte? Citação unquote, "Olá mundo". Tudo bem, então um rápido resumo de algumas das estes comandos para que possamos começar levá-los para concedido. Deixe-me ir direto para o onde paramos. E você vai lembrar que tínhamos CD no nosso back-end de um momento atrás. Estes são, ouso dizer, por propósitos de hoje - talvez esta semana - os únicos comandos que talvez seja necessário digitar no comando fazer além de pedir. Então CD ficou por quê? Altere o diretório. É apenas o equivalente a duas vezes clicar em uma pasta. E como um aparte, se você receber nunca perdeu dentro de sua aparelho, de tal forma que o Dropbox - Eu quero voltar para o meu diretório jharvard - Em caso de dúvida, CD, entrar, sem nenhuma outra palavras, e ele só fecha-lo de volta para onde você começou, o que é um pouco bom atalho. Tudo bem, então agora os outros comandos. LS. Eu digitei que um momento atrás. O que você acha LS representa? Assim, a lista, certo? Voltar no dia, quando os seres humanos estavam vindo com estes comandos, eles estavam tentando ser eficiente, e sim digitar L-I-S-T enter, eles decidiu LS. Isso é bom. Isso soa bastante como lista. Vamos apenas LS tipo entrar, e que lista os arquivos ou pastas no meu pasta atual. mkdir, você provavelmente pode adivinhar. Faça diretório. Então você não ir a algum menu Arquivo e escolha Nova pasta neste ambiente. Em vez disso, você digita o espaço comando mkdir e, em seguida, o nome do filtro que você deseja criar, e isso será feito. rm, você provavelmente pode adivinhar. Remover ou excluir. Então, se você quer deletar um arquivo, você vai ver no conjunto de problemas como você pode fazer isso. E rmdir, remover o diretório. Então, novamente, eu vou tendem a voar através de algum desses detalhes, um, porque eles não são tudo isso muito divertido para passar tempo, mas dois, nós fornecê-lo em em muito maior detalhe em qualquer um dos O problema do curso define, particularmente as edições Standard, cada uma das etapas que você pode precisar digitar assim que você obtenha cada vez mais confortável com essas coisas. Mas agora deixe-me desmembrar outra coisa. Quando digitado fazer Olá um momento atrás, vimos uma sequência de comandos enigmática. Vimos, mais uma vez, fazer Olá. OK, vamos fazer isso. Eu estava prestes a cometer um erro, mas [Inaudível] agora admitir que eu estava prestes a e fazê-lo deliberadamente. O que eu fiz de errado agora? Sim, então eu não estou no Dropbox diretório, porque há um momento que eu digitado CD e apenas aperte enter. Isso me ampliada de volta para onde eu comecei, que não é o lugar onde meu arquivo é, então eu realmente preciso fazer CD Dropbox entrar, e agora eu posso fazer Olá rm inserir, remover arquivo regular Olá. Eu não sei por que é tão enigmática. Isso significa apenas que você tem certeza que deseja excluir Olá? Você pode digitar y para sim, entrar, e agora ele se foi. E agora, se eu digito fazer Olá novamente, é vai recriar meu código objeto, recriar os zeros e uns. Mas o que é o negócio com esta muito longo de comando? Bem, vamos provocar este apart em pouco tempo, mas fazer - Eu disse um pouco de mentira antes - não é um compilador. Fazer é um programa que automaticamente descobre como executar um compilador para você. Assim, o comando que você realmente deve ser execução, a fim de converter hello.c em Olá realmente parece um pouco mais como este. E Deus me livre que temos de realmente lembre-se sempre que digitar todo seqüência de comandos fora. O objetivo de fazer na vida é lembre-se que o grau de complexidade para nós e automatizar o que seria de outra forma ser passos muito tedioso. Mas eu posso aproximar disso. Então, por este cheat sheet pouco aqui, eu pode aproximar o que esse comando é fazendo simplesmente digitando bumbum, que é o nome do compilador estaremos usando este semestre. Se algum de vocês já fez iOS desenvolvimento para o iPhone ou iPad, Clang é o programa que você usou no Xcode para fazer seus apps. Clang, porém, é apenas mais um programa cujo nome pode digitar no comando solicitar, e introduzindo isso agora, Eu posso apresentar algo que é um pouco representativo de comandos para vir. Então deixe-me fazer isso manualmente. Então rm Olá, e agora percebe no caso Eu, assim como uma verificação de sanidade mental - . / Olá, o que você acha que eu deve ver se eu faço isso? Algum tipo de erro. Não há tal diretório de arquivos. De modo que um é realmente muito direta. Então, agora deixe-me limpar a tela. Controle S apenas limpa a tela para remover algumas distrações. E agora eu vou manualmente Tipo de som estridente-o Olá hello.c. Então o que é isso de fazer? Exatamente a mesma coisa que fez para fazer nós, mas eu jogar fora alguns dos as palavras supérfluas. Clang é o programa que vai tomar um arquivo c. como entrada e produzem zeros e uns como saída. Mas-o doravante chamaremos um switch ou uma bandeira. Este é apenas um jargão tecnólogo por dizer esta é uma palavra que você digitar em um prompt que de alguma forma influencia o comportamento do programa que você está executando. Então, alguém quer adivinhar que transmite-o? Output. É só alguém decidiu-o significa saída de um arquivo chamado Olá e tomar como entrada de qualquer que seja a última palavra sobre o o prompt é, hello.c, de modo que se eu acertar Entre agora, nada parece acontecer. E por incrível que pareça, neste mundo de programação, se nada acontecer, isso é provavelmente uma coisa boa porque não há nenhum erro mensagem na tela. Olá, Enter. Meu programa já executado. Mas eu posso fazer coisas estúpidas como isto. clang-o, hihihi, hello.c, entrar, e agora eu tenho um idêntico programa chamado hihihi. Ele se comporta o mesmo, mas o nome é diferente. Portanto, esta é só para dizer que se você quiser para influenciar o comportamento de uma programa, vamos cada vez mais ver coisas chamadas argumentos de linha de comando. Esta é uma linha. Você está digitando comandos. Ergo, a linha de comando. E os argumentos de linha de comando são apenas palavras ou pequenos pedaços de sintaxe que de algum modo influenciar o comportamento de programas que estão sendo executados. Tudo bem, que talvez seja a mais programa chato, podemos escrever e ver. Vamos agora fazer algo mais interessante. Deixe-me ir em frente e criar um novo arquivo. Eu estou indo para ir em frente e salvar esta em Diretório home do John Harvard como, vamos chamá-lo custom.c, para ser um pequeno programa personalizado. Eu estou indo para fazer zoom no meu top de as guias aqui e começar de novo. Incluir stdio.h padrão. Mais sobre isso em um momento. int main (void), mais em que em um momento. printf ("Olá, David"). Muito mais interessante, certo? Portanto, agora se - não por causa do meu nome, só porque ele é diferente - fazer entrar costume. Personalizado, Olá, David. Mas, mesmo que, também, é uma mentira branca. Este programa pode muito bem ser chamado David.C, porque não é costume comportamento de todo. Realmente, eu quero um programa que pede o usuário para o seu nome. Então, como posso fazer isso? Bem, deixe-me ir para cima aqui. E antes de eu usar uma declaração em Zero, antes de eu usar printf, também conhecido como uma função, deixe-me primeiro pedir ao usuário para alguma entrada. Então, para fazer isso, eu preciso fazer um par de coisas. Um, eu preciso de um lugar para armazenar o usuário nome depois que eu perguntei a ele ou por isso. O constructo que eu preciso para usar provavelmente para armazenar um valor assim? Uma variável. Portanto, ao contrário do risco, onde você acabou de obter uma boa parte do enigma, aqui, temos que usar, obviamente, palavras a nos expressar. E a partir de agora, quando você quer um palavra ou uma frase, na programação, vamos chamar isso de uma string. Assim, uma string é uma palavra ou uma frase. É uma seqüência de zero ou mais personagens, mais formalmente. E se você quiser como uma variável para existe, você tem que dizer me dar um. E a maneira pela qual você fazer isso é dizer string s vírgula, onde s pode ser qualquer coisa que você quiser. Na verdade, s é um pouco abaixo do esperado. Deixe-me ir em frente e mais chamá-lo de nome claramente. Dê-me uma string chamada nome. Mas agora, o que é a pessoa nome por padrão? Bem, se o ser humano não digitar nada no, obviamente, não vai não haver valor de nome. E acontece em C, se você não dá a um valor variável, que vai tem um valor de lixo. Ele pode ter alguns zeros aleatórios e queridos, assim que você está indo só para ver lixo, na verdade, na tela se você tentar exibi-lo. Mas eu posso consertar isso por dizer, na verdade, loja dentro do nome depois valor. A maneira como você armazenar valores em variáveis ​​é se você tem um nome de variável no à esquerda, você tem que de alguma forma colocar o que você deseja armazenar nele, à direita, e a sintaxe para o que está acontecendo para ser como se segue. Nós não vimos isso antes, mas tomar na fé por um momento que não existe outra afirmação no mundo que eu vou chamar novamente a função, e esta função é chamado obter string. E ele faz literalmente isso. De alguma forma, fica uma sequência de caracteres a partir do ser humano e, em seguida, faz alguma coisa com ele. E isso se parece com sintaxe enigmática. Normalmente, se você estiver usando o sinal de igual - você está no mundo, digamos, álgebra, e você está realmente dizendo que x é igual a 1. Aqui nós não estamos dizendo que nome igual obter string. Estamos dizendo loja em nome de qual é no lado direito desse sinal de igual. O sinal de igual representa o operador de atribuição. É a sintaxe que diz colocar o que está em do lado direito dentro do que é no lado esquerdo. Então, se string é uma nova peça de uma funcionalidade que não só faz alguma coisa - pede ao usuário para uma string - também retorna, por assim dizer. Então vamos ver o que está acontecendo acontecer aqui. Eu estou indo para ir em frente agora e zoom out, e eu estou indo para obter um par de erros na minha solicitação. Eu vou fazer tipo personalizado, digite. Uau. Um monte de erros. Tudo bem, então este é o tipo de esmagadora, certamente no início, mas despeja tudo isso muito reconhecidamente mensagens de erro enigmáticas são referindo-se a alguns padrões que vamos começar a ver ao longo do tempo. Então, isso que eu vou arrancar fora, porque é em primeiro lugar. Uso de cadeia do identificador não declarado. Isso só significa que gedit ou Clang, neste caso, não se sabe o que eu quero dizer com string. E isso é porque em C, a programação linguagem, há, na verdade, nenhuma variável do tipo string. C não sabe que existem cordas. Mas nós, CS50 pessoal, faça. E assim, antes da aula, criado um arquivo chamado CS50.h. E dentro deste arquivo - e mais sobre a sintaxe para vir - dentro desse arquivo é a definição do que eu acabei definido verbalmente como uma string. Então, simplesmente concluindo esta linha de código no meu programa, eu sou agora ensino gedit e fazer e Clang tudo em transformar o que uma string é. Eu não sei como ainda. Em poucas semanas, vamos descascar volta dessa camada. Mas, por agora, sei que isso ensina o compilador que a corda realmente é. Então, agora deixe-me esclarecer a minha Terminal aqui. Deixe-me voltar a correr fazer costume, e eu resolveram todos os problemas. Então, isso também vai ser um tema recorrente. Eu só escrevi um programa de 9 linha, e Eu ainda tinha 18 linhas de erros. Esse é um tipo de intimidação. Mas percebo que muitas vezes em cascata, tais que um pequeno erro desencadeia a confusão para o compilador, e parece muito pior do que é. Então agora um observador astuto vai saber que eu estou recebendo uma seqüência do usuário, mas eu não sou realmente fazer o que com isso? Eu não estou realmente fazendo nada com ele. Então, se eu rodar o costume de novo, vai apenas sentar lá. O que está acontecendo? Meu programa parece estar preso em que linha, você diria? Então, é realmente preso na linha 7. E nós não vimos isso antes, mas na linha 7, há, outra vez, esta declaração, se string. E ele faz o que diz. Está esperando-se agora para o ser humano para tirar a corda. Isto é completamente intuitiva para mim, o ser humano, porque eu não foi dito o que fazer. Mas deixe-me ir em frente com fé e deixe-me fingir que Rob. Enter. Esse não é o programa que eu pretendia. Então, nós temos o nosso primeiro blog. Mas vamos tentar raciocinar através porque este é o caso. Primeiro, deixe-me corrigir esse primeiro problema. Deixe-me acrescentar uma linha aqui que diz printf, qual é o seu nome? Vamos fazer perto citação, fechar parênteses. Agora, deixe-me voltar a executar o programa. Problema. Eu não estou vendo isso. Certo. Eu não recompilá-lo. Então, em uma linguagem como C, porque você alterar o código fonte não significa que você mudou seu código objeto para gerar um novo código objeto, novos zeros e uns. Você tem que recompilar. Se eu agora re-executar costume, entrar, ah, um pouco mais clara. Meu nome é Rob. Ainda buggy. E eu diria que há um par de erros agora. Isso parece horrível, francamente. Como, no mínimo, eu deveria ter um espaço lá, ou mover o cursor para a nova linha. E, na verdade, a nova linha. Isso é uma espécie de frase-chave aqui que vimos, mas não definido. A maneira em que você começa um texto para avançar para a próxima linha, você não fazer isso. Isto é confuso para o computador. Isto se parece com duas linhas separadas de código, nenhum dos quais é perfeitamente correta. Você vez tem que ser mais explícito e dizer, dá-me uma nova linha, que representar no c com barra invertida n. Portanto, há algumas dessas personagens. Barra invertida n vai corrigir isso estético. Deixe-me recompilar o programa. Deixe-me voltar a executar o meu programa. Isto parece-me melhor. Ele ainda é muito primitivo, mas também é ainda buggy. Portanto, há um - mesmo se você nunca programou antes, provavelmente você pode dar um palpite o motivo pelo qual este programa ainda é falho. O que eu preciso para fazer isso Eu não fiz ainda? Então eu tenho que realmente fazer algo com o nome. Assim como no início, você pode realmente atribuir uma variável como n ou combater, como fizemos na última semana - um valor. Mas se você não fizer nada com ele, nada vai acontecer. Tudo bem, então vamos corrigir. Deixe-me escrever a minha variável ali, e deixe-me descer aqui. Deixe-me recompilar, deixe-me re-run, Rob. Agora eu sou apenas um idiota, certo? Portanto, este não é realmente ficando me ainda mais. Mas isso foi um perfeitamente natural instinto, eu diria, certo? Se a variável é chamado de nome, e eu quer que ele vá lá, por que não eu digitá-lo lá? Bem, é claro, temos para distinguir agora entre o que é uma string? Observe que entre aspas aqui, Olá nome? Este fato em si é uma string. É difícil codificada. Não é do humano. É de mim, o programador original mas ainda é uma string. Então, se você, literalmente, escrever N-A-M-E dentro de uma corda, o que vai obter impresso? Bem, N-A-M-E. Em seu lugar, precisa dizer printf, não imprima fora literalmente nomear. Imprima o valor do nome. E para fazer isso, vamos fazer o seguinte. E isso é apenas uma convenção humana. Nós em vez dizer% s, e que significa string. E então, no final das minhas citações próximos, Eu vou colocar uma vírgula e passar um segundo argumento para esta afirmação. Vou escrever o nome lá. Então agora perceber que temos um ligeiramente nova sintaxe. Nós ainda temos dois parênteses, e a partir de agora, deixe-me dizer que o material entre parênteses representa argumentos em uma função - insumos que são de alguma forma vai para influenciar o seu comportamento. Então por essa lógica, quantos argumentos printf não parecem tomando neste momento? Assim, parece estar a tomar dois, e isso é de fato implícitas pelo vírgula aqui. Portanto, este é um argumento entre aspas. Mesmo que tenha uma vírgula nele tudo está entre aspas, o que significa é uma cadeia longa. Vírgula, nome da variável. Então, agora deixe-me afastar. Deixe-me voltar a executá-lo. Rob. Droga, o que eu fiz de errado? Tudo bem, então você tem que recompilar. Então, novamente, os erros fáceis de fazer no início e outra vez. Então, agora re-executar costume, Rob, entrar, e voila. Temos, agora, um programa personalizado. Então agora tenho um programa que usando algumas características que são dignos de nota. Um, eu estou usando CS50.h, caso contrário, conhecido como a biblioteca de CS50. E dentro da biblioteca CS50 são funções que outras pessoas escreveram - ou seja, o pessoal - para você usar e obter string é um deles. Dentro da linha 2 é stdio.h, e por que isso existe? Tome um palpite. O que existe dentro de padrão IO pai? Printf. Então printf, você não vê-lo em qualquer lugar outra na tela. Ela deve vir com o computador de alguma forma. Onde é que ela vem? É dentro - é declarada, por assim dizer, no interior da um arquivo chamado stdio.h. Agora, para essas coisas, vamos voltar para, eventualmente, porque é um pouco distraindo por agora. Isso se refere ao nosso tipo de retorno. Refere-se a um argumento. Mas para hoje, estamos focados só aqui nestas linhas. Assim, o nome string, apenas para recapitular, o que isso faz para mim? Por isso, declarou uma variável do tipo string. Por isso, está destinado a ser por palavras, não para números. Apenas como um aparte, se eu queria que seja um número, eu diria algo como int. Se eu quisesse ser um ponto flutuante valor, algo com um ponto decimal, Eu diria float. Mas, por hoje, eu acabei de dizer string. E eu tenho dado esta variável um nome de nome, mas eu poderia ter chamado qualquer coisa. Na verdade, originalmente, eu o chamei S. Isso aqui é apenas um outro comunicado. Quantos argumentos é esta declaração tomando? Então, é só tomar um, e que é simplesmente um detalhe estético exibindo algo em a tela para mim. O que é esta linha 8 fazendo em termos leigos? Está ficando um valor a partir do usuário - ou seja, uma string - eo que ele está fazendo com ele? É, essencialmente, entregando-o ao cara no lado da mão esquerda sinal de igual modo que, neste caso, o variável nome pode realmente armazená-lo. E em seguida, um outro printf exemplo de uma função. E nós dizemos para chamar uma função. Para utilizar uma função para chamar uma função. Essa coisa aparentemente toma dois argumentos. Este, vírgula, um presente. Este em si é apenas uma seqüência que contém um espaço reservado. % S significa colocar outra seqüência aqui. E assim por colocar o nome depois a vírgula, que está inserindo que coisa para mim. Então eu posso fazer outras coisas ainda. Deixe-me ir em frente agora e fazer um pouco de programa bobo, mas deixe-me apagar isso, e deixe-me criar um loop. Enquanto verdade. O símbolo é obviamente verdadeiro sempre vai ser verdade. Então, que tipo de ciclo estou induzindo por escrito uma linha como esta? Então, um loop infinito, certo? Apenas enquanto verdade. Não há nenhuma maneira eu posso mudar a palavra verdadeiro para ser qualquer outra coisa, então isso é só vai funcionar para sempre. Então, se você nunca teve realmente um programa em seu Mac ou PC que parece ter trancado, ou que está fazendo uma coisa e uma coisa, e você só não pode fazer a coisa parar a menos que você reinicie o seu computador ou puxar para cima o Gerenciador de Tarefas ou similar, aqui está um exemplo. Eu posso dizer: "Eu sou um programa de buggy." Fechar citação, feche parênteses, ponto e vírgula. Então, novamente, observar os padrões. Mesmo que alguns dos nossos sintaxe é novo, a palavra-chave tempo, a palavra-chave é verdade, Repare que eu tenho o mesmo tipo de chaves. Eu tenho um ponto e vírgula e entre parênteses. Então, agora vamos em frente e compilar isso. Faça o costume, costume. Portanto, neste ponto, você não precisa reiniciar o aparelho, certo? Então a lição aqui é fácil com dois dedos, Controle C, vamos deixar esse programa. Mas você pode ver exatamente por isso que essa coisa se repetia uma e outra vez. Eu posso fazer algo um pouco mais complexo como um teaser. Eu estou indo para ir em frente e dizer o seguinte. Para int, que é um inteiro, é apenas i um nome genérico que damos a mais variáveis ​​na programação quando você está apenas contando, é igual a 0. Deixe-me ir em frente e dizer, enquanto i é, digamos, menos de 100, i plus plus. Vamos voltar para esta sintaxe, mas isso significa apenas incrementar i novamente. E o que eu quero fazer aqui? Printf "Eu posso contar a i." Este é um programa de buggy. O que eu realmente pretendo aqui? Por cento não é, mas você não iria adivinhar isto. % D é um inteiro decimal. Comma i. Deixe-me rolar para trás. Deixe-me agora recompilar com o make. Deixe-me agora reprise com o costume. Eu posso contar realmente maldita rápido quando Eu escrevo um programa como este. Agora vamos fazer algo um pouco não intencional. Que tal vamos fazer isso enquanto eu é maior do que ou igual a 0. O que é que isto vai provocar? Então, logicamente, isso não é tão sábio, porque agora se eu reprise isso, recontagem, Agora eu posso contar muito, muito alto. Infelizmente, quase tão alto quanto eu puder contagem é de 4 bilhões de dólares, de modo que este vai demorar um pouco. Então, por que não vamos deixar isso como nossa suspense, prometendo que em Quarta-feira, vamos ver se este programa é feito. Dois, vamos apresentar como você mesmo escrever sua própria função para que muito rapidamente, até quarta-feira, nós vamos, como nós transição a partir do zero em C, começar escrever sempre cada vez mais complexo programas que fazem muito, muito mais do que isso. Vamos vê-lo em seguida. [Aplausos] COLUNA 1: Na próxima CS50, Quebra-cabeça Day foi um sucesso.