Slide 1 - DECOM-UFOP

Propaganda
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
Download