programação computacional aula 9: meu primeiro programa em c profa. madeleine medrano...

31
Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano [email protected]

Upload: vitor-marinho-valente

Post on 07-Apr-2016

252 views

Category:

Documents


27 download

TRANSCRIPT

Page 1: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Programação Computacional Aula 9: Meu primeiro programa em C

Profa. Madeleine Medrano

[email protected]

Page 2: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Ciclo de desenvolvimento de um programa

Page 3: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Roteiro Estrutura básica de um programa em C

Função printf (saída de informação – imprime na tela)

Diversas atividades

Page 4: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Estrutura do bloco de execução principal (main)

Todo programa em C deve possuir um “bloco” com o nome de “main”

Este é o ponto onde o programa inicia O programa segue executando linha a linha a partir do “main” Veja alguns exemplos:

»Note o símbolo “ ; “ no final de cada linha »Ele é o terminador de linha / comando

Page 5: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Blocos de execução fornecido pela linguagem

Deste forma, vamos conhecer “bloco de biblioteca” para imprimir na tela

A rotina “ printf “ é fornecida pela biblioteca “ <stdio.h> “

Permite apresentar na tela os valores de qualquer tipo de dado Utiliza o mecanismo de formatação, que permite traduzir a representação

interna de variáveis para a representação ASCII que pode ser apresentada na tela.

Formato básico:

int printf(const char *restrict format, .......);

»Note que printf é uma função, pois retorna valor (int)

Page 6: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Estrutura com múltiplos blocos de execução

Seria muito complicado ler e entender um código fonte se ele fosse escrito usando apenas um bloco de execução.

Imagine um programa que realiza cadastro de cliente, fornecedor e controla as contas a receber e a pagar

Se usarmos um único bloco de execução (ex. main), seria muito complicado “encontrar” as linhas de código responsável pelo cadastro de cliente

Pensando nisso, é comum que um programa utilize múltiplos blocos de execução, onde cada bloco de execução agrupa os comandos (linhas de código) envolvidos em uma dada tarefa (algoritmo)

Veja um exemplo:

Page 7: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Estrutura com múltiplos blocos de execução

Exemplo com “blocos” p/ calcular dois tipos de áreas

Nota: Observe o operador “ , “. Usado para encadear expressões.

Page 8: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Teste de Mesa (01)

Qual o valor das variáveis em cada linha de execução?!

Page 9: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Blocos de execução fornecido pela linguagem

Algumas operações (algoritmos) são comuns para diferentes tipos de programas. Exemplos:

Abrir um arquivo do disco Algoritmo simplificado/resumido:

Verificar se o arquivo existe e se tem permissão No disco rígido, achar e ler os bits que compõe esse arquivo Copiar esses bits para a memória

Imprimir na tela. Algoritmo simplificado/resumido: Copiar um conjunto de caracteres da memória p/ a placa de vídeo Limpar o estado dos pixels que estão em uma determinada região da tela Nessa mesma porção da tela, “acender” apenas os pixels para formar cada

caractere –Desenvolver esse tipo de algoritmo não é prático

Page 10: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Blocos de execução fornecido pela linguagem

Para resolver/amenizar as linguagens fornecem alguns “blocos prontos”. (ex. Imprimir na tela)

Esse tipo de bloco de execução é conhecido como “blocos de bibliotecas”. Que são conhecidos como:

Funções de biblioteca Sempre retornam um valor (ex. inteiro) Procedimento de biblioteca Não retornam valores

Veja alguns exemplos: <complex.h> Manipular números complexos

<errno.h> Teste de códigos de erro <math.h> Funções matemáticas <stdio.h> Manipulação de entrada/saída <stdlib.h> Alocação de memória

Nota: O conjunto de bibliotecas pode variar

Page 11: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Algoritmo

Page 12: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Imprimindo apenas alguns caracteres na tela Usando a função “ printf “

Page 13: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Imprimindo apenas alguns caracteres na tela Usando a função “ printf “ Como mostrar o conteúdo das variáveis?

Passando ela(s) como parâmetro para a função printf e informando o formato / tipo de dado. Veja:

–Note o símbolo “ %d “ »Ele é um dos símbolos usados pela rotina printf para mostrar o conteúdo de uma variável do tipo inteiro »Vamos ver outros símbolos

Page 14: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Símbolos usados para imprimir o conteúdo de variáveis

Page 15: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

–Formatando os valores inteiros impressos na tela

Page 16: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Formatando os valores ponto flutuante impressos na tela Segue o mesmo padrão dos números inteiros, mas agora podemos formatar

a quantidade de casas após a virgula. –Veja:

–A saída na tela será: Hoje é dia 00000010.123457

Page 17: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Símbolos especiais usados pelo printf

Page 18: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Atividade - printf Qual a mensagem impressa pelos códigos abaixo?

Page 19: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Qual a mensagem impressa pelos códigos abaixo?

Page 20: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Meu primeiro programa em C

Qual a mensagem impressa pelos códigos abaixo?

•Neste, explique com suas palavras porque esses valores foram impressos.

Page 21: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

programas em C

Qual a mensagem impressa pelos códigos abaixo?

•Neste, explique com suas palavras porque esses valores foram impressos.

Page 22: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

programas em C

Qual a mensagem impressa pelos códigos abaixo?

•Neste, explique com suas palavras porque esses valores foram impressos.

Page 23: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Atividade - printf Fazer um programa em C que imprima o valor lógico de cada expressão abaixo.

Nota A = 3, B = 6 e C = 1: (A = B) E (B > C) (A <> B) OU (B < C) NÃO (A > B) (A < B) E (B > C) (A >= B) OU (B = C) NÃO (A <= B) (A > 3) E (C = 8) (A <> 2) OU (B <= 5) ((A = 3) OU (B >= 2)) E (C = 8) ((A = 3) E ((NÃO (B <= 4))) E (C = 8) ((A <> 8) OU (B = 4)) E (C > 2) (B > A) E (C <> A) (A > B) OU (B < 5)

Page 24: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Função scanf

scanf ("formatos", &var1, &var2,...) Exemplos: int i, j; float x; char c; scanf("%d", &i); scanf("%d %f", &j, &x); scanf("%c", &c); scanf("%s", nome);

Note o símbolo “ & “ usado para passar o endereço da variável e não o nome (detalhes nos próximos slides)

Page 25: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Algoritmo na linguagem C

Page 26: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Informando argumentos por referência

Até agora vimos como passar parâmetros por valor (“cópias”) O bloco não consegue alterar o valor da variável atribuído ao

bloco “chamador”. Exemplo:

–Ao final da execução qual o valor de A??

Page 27: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Informando argumentos por referência

Até agora vimos como passar parâmetros por valor O bloco não consegue alterar o valor da variável atribuído ao bloco “chamador”. E agora mudou

alguma coisa ?!?!?!?!?!?!?

Ao final da execução qual o valor de A??

Page 28: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Informando argumentos por referência

Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.

Lembre-se que um bloco pode retornar apenas um valor Então, como fazer isso?

Ao final da execução qual o valor de A??

Page 29: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Informando argumentos por referência

Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.

Lembre-se que um bloco pode retornar apenas um valor Em termos de resultado, o código deste slide e do anterior são iguais??

Ao final da execução qual o valor de A??

Page 30: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Informando argumentos por referência

Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.

Lembre-se que um bloco pode retornar apenas um valor e não mais Solução: utilizar múltiplos argumentos por referência (“ & “ e “ * “)

Ao final da execução, qual o valor das variáveis A, B e C?

Page 31: Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano madeleine@icte.uftm.edu.br madeleine@icte.uftm.edu.br

Fim da apresentação

Obrigada pela atenção