curso de cneucimar/cursos/mc102/2008-s02/cap01... · 2008-04-04 · – como funciona o processo de...

42
9/3/2008 17:52 1 Curso de C Introdução

Upload: hanhi

Post on 11-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 1

Curso de C

Introdução

Page 2: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 2

Curso C - IC/UNICAMP

Introdução

• Compreender:– Como funciona o processo de

desenvolvimento de um programa

– Como transformar um algoritmo em um programa executável

– A diferença entre diversas linguagens de programação e níveis de abstração

Objetivos:

>

Page 3: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 3

Curso C - IC/UNICAMP

Introdução

• Recordando Algoritmos• Linguagem de Programação• O computador• Instruções de Máquina• Níveis de Abstração• Compilação

Roteiro:

>

Page 4: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 4

Curso C - IC/UNICAMP

Algoritmos

Algoritmo: conjunto finito de instruções– Usualmente, começa com a primeira instrução– Execução seqüencial, uma instrução de cada vez,

com possibilidade de saltos para outras instruções– Instruções individuais suficientemente elementares,

ou primitivas– Sempre deve alcançar uma instrução PARE, para

terminar a execução do algoritmo.

Utiliza dados (entrada) e gera um resultado (saída)

Recordando:

>

Page 5: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 5

Curso C - IC/UNICAMP

Algoritmos

Algoritmo em PortuguêsAlgoritmo em Português

1. Leia dois números.

2. Divida o primeiro pelo segundo e guarde o resto.

3. Se o resto for diferente de 0 (zero),

então salta para passo 5

4. Escreva o segundo número e PARE.

5. Substitua o primeiro número pelo segundo.

6. Substitua o segundo número pelo resto da divisão.

7. Retorne ao passo 2.

1. Leia dois números.

2. Divida o primeiro pelo segundo e guarde o resto.

3. Se o resto for diferente de 0 (zero),

então salta para passo 5

4. Escreva o segundo número e PARE.

5. Substitua o primeiro número pelo segundo.

6. Substitua o segundo número pelo resto da divisão.

7. Retorne ao passo 2.

Início

Fim

Condição

Salto

Entrada

Saída

Exemplo: Calcular o máximo divisor comum

>

Page 6: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 6

Curso C - IC/UNICAMP

Algoritmos

– Não ambígua– Uma única operação bem definida

– Tecnologicamente viável

• Representações possíveis:

– Diagramas– Modelos matemáticos

– Linguagens de programação

• Cada instrução precisa ser:

>

Page 7: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 7

Curso C - IC/UNICAMP

Algoritmos

Algoritmo em PortuguêsAlgoritmo em Português

1. Leia dois números.

2. Divida o primeiro pelo segundo e guarde o resto.

3. Se o resto for diferente de 0 (zero),

então salta para passo 5

4. Escreva o segundo número e PARE.

5. Substitua o primeiro número pelo segundo.

6. Substitua o segundo número pelo resto da divisão.

7. Retorne ao passo 2.

1. Leia dois números.

2. Divida o primeiro pelo segundo e guarde o resto.

3. Se o resto for diferente de 0 (zero),

então salta para passo 5

4. Escreva o segundo número e PARE.

5. Substitua o primeiro número pelo segundo.

6. Substitua o segundo número pelo resto da divisão.

7. Retorne ao passo 2.

Potencialmente

ambíguo

Não é uma única

instrução bem

definida

Exemplo: Calcular o máximo divisor comum

>

Page 8: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 8

Curso C - IC/UNICAMP

Linguagem de Programação

• Diagramas• Uma linguagem específica para escrever

algoritmos• Linguagens de programação

Opções de representar algoritmos:

>

Page 9: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 9

Curso C - IC/UNICAMP

Linguagem de programação

– A linguagem de programação é um veículo para se escrever algoritmos.

• Características:

– Vocabulário restrito– Regras de sintaxe

– Recursos automáticos de verificação da sintaxe da linguagem

• Conceito:

>

Page 10: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 10

Curso C - IC/UNICAMP

Exemplo

Linguagem de ProgramaçãoLinguagem de Programação

int a, b, r;

scanf(“%d %d”, &a, &b);

do {

r = a % b;

if (r == 0) break;

a = b;

b = r;

};

printf(“O MDC é %d”, a);

return;

int a, b, r;

scanf(“%d %d”, &a, &b);

do {

r = a % b;

if (r == 0) break;

a = b;

b = r;

};

printf(“O MDC é %d”, a);

return;

Início

Entrada

Saída

Fim

Símbolos específicos

de operações

Palavra chave

Regra: ponto-e-virgula

após cada operação

Exemplo: Calcular o máximo divisor comum

>

Page 11: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 11

Curso C - IC/UNICAMP

O Computador

• Realiza processamentosobre dados armazenadosno computador.

• Executa operações matemáticas e lógicas sobre dados.

• Recebe dados do meio externo (entrada)

• Apresenta os resultados para o meio externo (saída)

Armazenamento

Processamento

Entrada Saída

Teclado, mouse,

rede, scanner,

webcam, câmera

digital...

Monitor,

impressora,

caixa de som

memória, fitas,

discos, CDs

Conceito:

>

Page 12: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 12

Curso C - IC/UNICAMP

O Computador

• Representam primitivas operações sobre dados.

• Em formato digital próprio (código de máquina)

Entrada Saída

Armazenamento

Processamento

dados resultados

instruções

O computador é uma máquina rápida e eficiente

para simular algoritmos!

O computador é uma máquina rápida e eficiente

para simular algoritmos!

Instruções de Máquina:

>

Page 13: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 13

Curso C - IC/UNICAMP

O Computador

Instruções de MáquinaInstruções de Máquina

IN ax

IN bx

divisao:

MOV dx, 0

DIV bx

CMP dx, 0

JE fim

MOV ax, bx

MOV bx, dx

JMP divisao

fim:

OUT bx

HLT

IN ax

IN bx

divisao:

MOV dx, 0

DIV bx

CMP dx, 0

JE fim

MOV ax, bx

MOV bx, dx

JMP divisao

fim:

OUT bx

HLT

Início

Entrada

Saída

Fim

Condição

Salto

Detalhes do computador:

Controle de circuito eletrônico

Descrição detalhista

Representação pouco

intuitiva

Exemplo: Calcular o máximo divisor comum

>

Page 14: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 14

Curso C - IC/UNICAMP

Níveis de Abstração

• Português:– Fácil, intuitivo– Computador não entende– Ambíguo, mal definido

• Linguagem de Máquina:– Complexo e trabalhoso– Única forma aceita pelo

computador– Preciso, bem definido– Envolve detalhes específicos

do computador, irrelevantes para o algoritmo

Português

Ling. Programação

Instrução Computador

Linguagem de Máquinaco

mp

lex

idad

e

abstração

Dois casos extremos:

>

Page 15: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 15

Curso C - IC/UNICAMP

Níveis de Abstração

– Descrição precisa do algoritmo– Independente do computador– Nível de complexidade

intermediário!Português

Ling. Programação

Instrução Computador

Linguagem de Máquinaco

mp

lex

idad

e

abstração

Objetivos:

>

Linguagem de programação

Page 16: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 16

Curso C - IC/UNICAMP

Construção do Programa

• Passo 1: Elaborar um algoritmo• Passo 2: Reescrever o algoritmo em C• Passo 3: Acionar o compilador

CompiladorProgramador

AlgoritmoPrograma

C

Programa

Executável

>

Page 17: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 17

Curso C - IC/UNICAMP

Construção do Programa

• Passo 4: Testar o programaErros? Verificar programa em CContinuam erros? Verificar o algoritmo!

CompiladorProgramador

AlgoritmoPrograma

C

Programa

Executável

Erros?

>

Page 18: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 18

Curso de C

Primeiro Programa

Page 19: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 19

Curso C - IC/UNICAMP

Primeiro Programa

• Compreender:– O modelo genérico usado para escrever

programas na linguagem C

Objetivos:

>

Page 20: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 20

Curso C - IC/UNICAMP

Primeiro Programa

• O primeiro programa em C• Estrutura do código fonte

– Comentários

– Diretivas de compilador– Procedimento principal

• Estilo do código fonte

Roteiro:

>

Page 21: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 21

Curso C - IC/UNICAMP

Exemplo

// PrimeirosPassos.c: Nosso primeiro programa em C

#include <stdio.h> // mais um comentario

#include <stdlib.h>

int main(int argc, char* argv[]) {

printf("O primeiro programa lhe deseja um bom dia!");

return 0;

}

O Programa “Bom Dia”:

>

Page 22: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 22

Curso C - IC/UNICAMP

Estrutura do Código Fonte

// PrimeirosPassos.c

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

Comentários

Diretivas de

compilador

Procedimento

principal

InstruçãoInstrução

Pontuação

>

Page 23: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 23

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Texto ignorado pelo compilador• Documentação útil para descrever trechos do algoritmo• Possível em qualquer posição do código fonte• Duas formas para comentários:

• Uma linha: // Comentário ...

• Várias linhas: /* Comentário...

mais comentários ... */

// PrimeirosPassos.c: Nosso primeiro programa em C

/* PrimeirosPassos.c: Nosso primeiro programa em C */

/* PrimeirosPassos.c:

Nosso primeiro programa em C */

Comentários:

>

Page 24: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 24

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Informam outros arquivos que devem ser consultados antes de compilar

• Definem parâmetros utilizados pelo compilador• Colocadas no início do código fonte

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

Diretivas de Compilador:

>

Page 25: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 25

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Seqüência de instruções• Pontuação: ponto-e-vírgula termina instruções

• Chaves agrupam instruções relacionadas

int main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

Procedimento principal:

>

Page 26: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 26

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Siga sempre o seguinte esqueleto:

Procedimento principal:

int main(int argc, char* argv[]) {

...

Algoritmo

...

return 0;

}

Obrigatório

Obrigatório

>

Page 27: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 27

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Linhas em branco são ignoradasint main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

int main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

(recomendado)

(permitido)

Práticas interessantes:

>

Page 28: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 28

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• Espaços e tabulações são ignoradas

int main(int argc, char* argv[]) {

printf("bom dia!"); return 0;

}(permitido,

mais confuso)

int main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

(recomendado)

Práticas interessantes:

>

Page 29: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 29

Curso C - IC/UNICAMP

Estrutura do Código Fonte

• De preferência, uma instrução por linha

int main(int argc, char* argv[]) {

printf("bom dia!"); return 0;

}

(permitido,

mais confuso)

int main(int argc, char* argv[]) {

printf("bom dia!");

return 0;

}

(recomendado)

Práticas interessantes:

>

Page 30: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 30

Curso C

Primeiro Programa no

Microsoft Visual Studio .net

Page 31: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 31

Curso C - IC/UNICAMP

Primeiro Programa

• Aprender a:– Usar o Visual Studio para escrever, salvar e

compilar seu programa

Objetivos:

>

Page 32: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 32

Curso C - IC/UNICAMP

Primeiro Programa

• Criar um novo projeto• Escrever o programa• Compilar• Executar

Roteiro:

>

Page 33: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 33

Curso C - IC/UNICAMP

Primeiro Programa

• Criar um projeto para cada programa!• Um projeto contém:

– Arquivos em Linguagem de Programação– Configuração– Programa compilado

• Projeto: – tipo e recursos disponíveis:– Interface Gráfica– Ferramentas adicionais de programação

Projeto Visual Studio:

>

Page 34: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 34

Curso C - IC/UNICAMP

Primeiro Programa

1

2 3

Criar projeto:

>

Page 35: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 35

Curso C - IC/UNICAMP

1

2

3

Primeiro Programa

Escolher tipo de projeto:

>

Page 36: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 36

Curso C - IC/UNICAMP

Primeiro Programa

Configurar projeto:

>

Page 37: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 37

Curso C - IC/UNICAMP

Primeiro Programa

Configurar projeto:

1 2

3

>

Page 38: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 38

Curso C - IC/UNICAMP

Primeiro Programa

Adicionar arquivo de código fonte:

1

2

3

>

Page 39: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 39

Curso C - IC/UNICAMP

Primeiro Programa

Adicionar arquivo de código fonte:

1

2

>

Page 40: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 40

Curso C - IC/UNICAMP

Primeiro Programa

Abrir o arquivo que armazenará o código fonte:

1. Duplo-clicar sobre o nome do arquivo: “main.c”

2. O conteúdo do arquivo émostrado na tela.

Editar código fonte:

>

Page 41: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 41

Curso C - IC/UNICAMP

Primeiro Programa

>

Page 42: Curso de Cneucimar/cursos/MC102/2008-s02/Cap01... · 2008-04-04 · – Como funciona o processo de ... – Regras de sintaxe ... – Usar o Visual Studio para escrever,

9/3/2008 17:52 42

Curso C - IC/UNICAMP

Primeiro Programa

Executar:

>