BCC201 Introdução à Programação Prof. Reinaldo Fortes 2014/2 Como um programa é criado? Compilação por linha de comando Introdução à linguagem C 2 Como um programa é criado? 3 Quando queremos digitar um documento, recorremos a um editor de textos ◦ Word, OpenOffice, etc. Para criarmos uma imagem, recorremos a um editor de imagens ◦ Paint, Gimp, etc. Para criarmos planilhas, recorremos a um editor de planilhas eletrônicas ◦ Excel, Calc, etc. E para criarmos um programa? 4 Programas são arquivos de texto simples ◦ Então poderíamos usar qualquer editor de textos simples; ◦ Porém, existem editores específicos. Para criarmos um programas criamos um código-fonte ◦ Contém as instruções do programa na linguagem de programações escolhida; ◦ A extensão é “.c”. 5 C é uma linguagem de programação de alto nível ◦ Nos permite escrever programas usando notação semelhante a que usamos para nos comunicar. Porém, sabemos que o computador usa o sistema binário (0, 1); Torna-se necessário “traduzir” nosso programa depois de pronto para que o computador possa executá-lo. 6 Este processo de tradução é chamado de compilação ◦ Durante a compilação, também é verificado se o código-fonte possui erros de sintaxe ou semântica Os comandos estão escritos de forma correta? A estrutura dos comandos está de acordo com o exigido pela linguagem? Erros de lógica não são verificados – o algoritmo é por sua conta! 7 O programa que realiza a compilação é o compilador ◦ Diferentes compiladores para diferentes linguagens. Depois do processo de compilação, é gerado o programa-objeto ◦ Este é o programa traduzido para a linguagem de máquina; ◦ Utiliza a extensão “.o”. 8 Programas frequentemente utilizam rotinas e estruturas definidas em códigos-fonte (chamados bibliotecas) separados. O processo de ligação adiciona estes códigos-fonte “emprestados” ao programaobjeto; O programa que faz a ligação é chamado ligador ou linkeador ◦ O arquivo resultante é o programa-executável; ◦ Geralmente, usa a extensão “.exe” (no windows). 9 10 Vamos primeiro aprender a editar nossos programas ◦ Ou seja, criar arquivos fonte. Qualquer editor simples serve para criarmos nossos arquivos ◦ Porém, existem editores específicos para programação, que são mais úteis. ◦ No Windows, podemos usar o Notepad++ http://notepad-plus-plus.org/download ◦ No Ubuntu, podemos usar o Gedit. 11 Uma vez selecionado um editor, digitamos as instruções que desejamos ◦ Ou seja, o corpo do programa; ◦ Salvamos o arquivo com a extensão .c ◦ O editor vai “colorir” nosso programa, ressaltando as instruções da linguagem, de forma a melhorar a organização. 12 Salvem como SeuNome_Lab01_Exe01.c ◦ Todos os programas feitos nas aulas práticas devem obedecer esta nomenclatura [SeuNome]_Lab[número da aula]_Exe[número do exercício].c Lembrem-se de onde salvaram o arquivo! 13 Teste Digite os comandos a seguir no código que você criou em um editor. 14 Agora que criamos nosso primeiro códigofonte, vamos compilá-lo e ligá-lo; Não precisamos criar nossos próprios compiladores e ligadores ◦ Podemos escolher entre vários ◦ Utilizaremos o GCC. 15 Usaremos a interface de linha de comando para compilarmos nossos programas ◦ O que significa que não utilizaremos ambientes de desenvolvimento integrado, ou IDEs Code::Blocks; MS Visual Studio; Etc. ◦ No Ubuntu, usamos o terminal; ◦ No Windows, usamos o Prompt ou o MSYS, que simula o terminal do Linux, juntamente com o MinGW. 16 Minimalist GNU for Windows ◦ http://www.mingw.org/ Fornece um conjunto de programação Open Source; Grátis ◦ Tutorial sobre a instalação: ◦ http://www.dcc.ufrj.br/~genesio/tutoriais/mingw.html 17 GNU é um sistema operacional tipo Unix, idealizado por Richard Stallman; De onde veio este nome? ◦ GNU is Not Unix (GNU Não é Unix). 18 O mesmo criador do GNU, criou um compilador de linguagem C, chamado GCC ◦ GNU C Compiler. Com o tempo, ganhou suporte a outras linguagens, e com isso o significado da sigla mudou ◦ GNU Compiler Collection. 19 Resumindo, MinGW é um GNU que roda em Windows ◦ E tem o GCC, que usaremos como compilador. Nos laboratórios também temos o sistema operacional Ubuntu ◦ Que também possui o GCC instalado, basta acessar o terminal. O uso do GCC no Windows e Ubuntu é igual ◦ O aluno escolhe qual vai usar. 20 No terminal, acesse a pasta onde está seu código-fonte, usando o comando cd: ◦ cd pasta1/pasta2/pasta3 ◦ A barra “/” significa que uma pasta está dentro da outra Neste exemplo, pasta3 está dentro de pasta2 que está dentro de pasta1. ◦ Para verificar o conteúdo de uma pasta, utilize o comando ls: ls 21 Uma vez na pasta correta, digite o seguinte comando: ◦ gcc arquivo.c –o programa -Wall ◦ Neste exemplo, substitua o nome “arquivo” pelo nome do seu arquivo. ◦ Substitua também o nome programa pelo nome que você desejar. ◦ O “-o” significa que o programa compilado se chamará programa; ◦ O “-Wall” significa que pedimos que sejam mostrados todos os erros e avisos de compilação. 22 Se o seu programa não apresentar erros, nenhuma mensagem será apresentada pelo compilador ◦ Você já pode executar seu programa. Caso contrário, o compilador tentará te avisar onde está o erro do seu programa ◦ Será necessário corrigir o erro em seu código fonte e compilá-lo novamente. 23 24 O compilador tenta indicar em qual linha está o erro, e qual é o tipo de erro. Neste exemplo, o erro está na linha 4, e se refere à falta de ponto e vírgula. 25 Toda vez que alterarmos nossos códigos, não podemos nos esquecer de salvar antes de compilar ◦ Senão, estaremos compilando uma versão antiga de nossos programas, que não refletem as alterações realizadas. 26 Uma vez compilado, seu programa pode ser executado pelo próprio terminal ◦ Basta digitar ./ antes do nome do programa; ◦ ./programa Por enquanto, nossos programas não terão janelas, mouse e etc. Eles serão executados dentro do próprio terminal. 27 28 Lembram do arquivo SeuNome_Lab01_Exe01.c? ◦ Vamos compilá-lo e executá-lo! ◦ gcc arquivo.c –o lab01_exe01 –Wall ◦ ./lab01_exe01 ◦ Veja que agora o “programa” tem um nome específico para facilitar a identificação. 29 Abra o windows explorer (windows) e acesse a pasta que contém seu programa ◦ Verifique a existência dos arquivos “.c”, “.o” e do executável; Dê um duplo clique no ícone do arquivo “.exe” ◦ O que aconteceu? No Ubuntu, abra a Pasta Pessoal, e acesse a pasta que contém seu programa ◦ Verifique a existência do arquivo “.c” e do executável; 30 Quando compilamos um programa e encontramos erros, dizemos que houve erro em tempo de compilação; Porém, frequentemente o código é compilado perfeitamente e quando o executamos acontece algum erro ◦ O chamado erro em tempo de execução; ◦ Geralmente são erros de lógica, e não de programação em si. Obviamente, o compilador só detecta erros em tempo de compilação. Atenção, programas com erros de compilação são zerados em exercícios e provas. 31 Introdução à Linguagem C 32 Durante a década de 60, os computadores ainda estavam em um estágio de desenvolvimento ◦ Surgiam várias linguagens de programação; ◦ Duas das mais utilizadas eram ALGOL e FORTRAN. Em 1963, surge a linguagem CPL (Combined Programming Language) mais ampla que ALGOL e FORTRAN, contudo, mais difícil. 33 Em 1967, foi desenvolvida a linguagem BCPL (Basic Combined Programming Language), uma versão simplificada da CPL ◦ Criada originalmente para construir compiladores; ◦ Ainda assim possuía muitos conceitos. Em 1970, Ken Thompson criou a linguagem B ◦ BCPL- “supérfluos”; ◦ Era um pequeno subconjunto da BCPL, e era muito limitado. 34 Em 1971, Dennis Ritchie desenvolvia uma “nova linguagem B”, que, em 1973 seria batizada de linguagem C. Ken Thompson e Dennis Ritchie 35 Algumas Curiosidades: ◦ C foi desenvolvido para ajudar a desenvolver o sistema operacional Unix No qual baseia-se o sistema operacional Linux. ◦ Existem pouquíssimas arquiteturas que não possuam compiladores para a linguagem C; ◦ Existe a linguagem D Outras linguagens baseadas em C são C++, C#, Python, Perl, PHP e Go (em desenvolvimento pelo Google). 36 Este é o esqueleto do programa mais básico em C; main é uma função ◦ Porção de código com objetivo específico; ◦ Esta é a função principal; ◦ Todos programas têm; ◦ A execução do programa sempre começa por ela. 37 int significa que a função retornará um número inteiro; Os símbolos ( e ) indicam quais são os dados enviados para a função ◦ Chamados parâmetros. Os símbolos { e } delimitam o escopo da função ◦ Tudo que está entre { e } pertence à função. 38 Criem um novo código-fonte e o salvem seguindo a nomenclatura utilizada; Digitem o esqueleto básico de um programa em C; Compilem e executem; O que aconteceu? 39 Agora, troquem o nome da função main por qualquer outro nome; Compilem e executem; O que aconteceu? 40 Abram o arquivo chamado Lab1Exe1.c criado anteriormente; Substituam a frase “Bem vindo à Linguagem C” por seu nome completo; Compilem e executem. 41 Diretiva de Compilação Uma diretiva de compilação avisa ao compilador que transformações devem ser realizadas no código; Sempre começam com ‘#’; Não terminam com ‘;’; Neste caso específico, diz ao compilador que instruções da biblioteca de entrada e saída devem ser incluídas. 42 Função Principal Como vimos, a função main é a primeira no fluxo de execução de um programa; int é o tipo da função que representa “inteiro”. 43 Delimitadores Os símbolos ‘{’ e ‘}’ delimitam o início e fim do bloco de instruções da função. 44 Instrução Instrução Estas são instruções (ou comandos) em C; Sempre no final existe o símbolo ‘;’, não se esqueçam ◦ Apenas em assinaturas de funções, diretivas e instruções de desvio ou repetição não se usa ‘;’. 45 As bibliotecas mais importantes para o curso são: stdio.h ◦ #include<stdio.h> ◦ Fluxo de dados (entrada e saída). math.h ◦ #include<math.h> ◦ Operações matemáticas Trigonométricas; Hiperbólicas; Exponenciais; Logarítmicas; Arredondamento, módulo e valor absoluto. 46 stdlib.h ◦ #include<stdlib.h> ◦ Biblioteca padrão que contém funções diversas. string.h ◦ #include<string.h> ◦ Contém funções de manipulação de cadeias de caracteres. 47 A indentação de um código-fonte é o formato em que as instruções estão dispostas no arquivo ◦ Ou seja, o alinhamento das instruções. Por padrão apenas a declaração de bibliotecas e constantes, o main e suas chaves ficam alinhados à esquerda ◦ Todas as outras instruções e expressões são alinhadas mais à direita 3 espaços ou tab. 48 49 As linguagens de programação frequentemente fornecem meios para que possamos fazer “anotações” em códigos fonte, chamados comentários ◦ Elas não são instruções do programa, são “lembretes” para nós; ◦ O compilador não as leva em consideração. 50 Em C, existem duas maneiras de fazer comentários: ◦ Comentários de uma linha são identificados pelos símbolos “//”; ◦ Comentários de mais de uma linha são identificados pelos símbolos “/*” no início do comentário e “*/” ao final do comentário. 51 52 53 Perguntas? 54 FIM 55