Instituto de Computação – UFAL
Saída de Dados
 A função printf()
 Sintaxe:
 printf(Expressão de controle, [Lista de arg...
Instituto de Computação – UFAL
Códigos de formatação
rodrigo@ic.ufal.br
 Exemplos
 printf(“A resposta é %d”, resposta);
...
Instituto de Computação – UFAL
Vamos praticar um pouco …
 Relembrando
 A estrutura de um programa em C
 Variáveis
 Ope...
Instituto de Computação – UFAL
O exemplo
 Calcular a média de três números dados
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Exercício
 Faça um programa que imprima a soma, a
diferença, o produto, a divisão e o rest...
Instituto de Computação – UFAL
Solução
main()
{
printf("%dn", 42+21);
printf("%dn", 42-21);
printf("%dn", 42*21);
printf("...
Instituto de Computação – UFAL
Exercício
 Faça um programa que leia dois valores inteiros
representando, respectivamente,...
Instituto de Computação – UFAL
Exercício :: solução
 Qual a entrada?
 Qual a saída esperada?
 Já sabe como “ir” da entr...
Instituto de Computação – UFAL
Exercício :: solução
 Escreveu o código?
 Teste
 Como testar ?
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Como testar?
 Desenvolva uma estratégia de teste com base
no problema
 O objetivo do test...
Instituto de Computação – UFAL
Como testar?
 Exemplo
 Programa para calcular a média de 03 números
 Caso de teste #1
 ...
Instituto de Computação – UFAL
Como testar?
 Teste no caso neutro
 Teste nos limites
 Teste em condições normais
 Test...
Instituto de Computação – UFAL
Voltando ao nosso exemplo
 Quais seriam bons casos de teste para o
problema de saber quant...
Instituto de Computação – UFAL
Codificou, testou …
 Seu programa está correto? Há como garantir
isso?
 Com o teste, você...
Instituto de Computação – UFAL
Que tal submetê-lo ao Huxley?
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Exemplo de solução
 Antes de prosseguir
 Você entendeu ...
 Vocabulário ?
 Estado ?
 F...
Instituto de Computação – UFAL
Relações
 Operadores utilizados para efetuar
comparações
rodrigo@ic.ufal.br
Operador Signi...
Instituto de Computação – UFAL
Relações
 Exemplos
 4 < 3
 4 == 6
 4 == 4
 3 != 2
 1 <=8
 int soma = 5;
int i = 3;
…...
Instituto de Computação – UFAL
Tabela verdade
 O ingresso custa 50 reais SE você for estudante
OU idoso
 Possibilidades
...
Instituto de Computação – UFAL
Tabela verdade
 O seguro é mais barato SE você for mulher E
tiver mais de 50 anos
 Mulher...
Instituto de Computação – UFAL
Tabela Verdade
 … e a mulher disse: “o futebol OU eu”
 Ou seja, o rapaz precisa escolher:...
Instituto de Computação – UFAL
Tabela verdade, operador E (and)
A B A and B
V V V
V F F
F V F
F F F
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Tabela verdade, operador OU (or)
A B A or B
V V V
V F V
F V V
F F F
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Tabela verdade, operador OU Exclusivo
(xor)
A B A xor B
V V F
V F V
F V V
F F F
rodrigo@ic....
Instituto de Computação – UFAL
Expressões lógicas
 Em C
 Verdadeiro é representado pelo inteiro: 1
 Falso é representad...
Instituto de Computação – UFAL
Expressões lógicas
 AND
 &&
 OR
 ||
 XOR
 ^
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Tabela verdade, operador E (&&)
A B A && B
1 1 1
1 0 0
0 1 0
0 0 0
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Tabela verdade, operador OU ( || )
A B A || B
1 1 1
1 0 1
0 1 1
0 0 0
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Tabela verdade, operador OU Exclusivo (^)
A B A ^ B
1 1 0
1 0 1
0 1 1
0 0 0
rodrigo@ic.ufal...
Instituto de Computação – UFAL
Expressões lógicas
 Operador unário
 ! (negação)
rodrigo@ic.ufal.br
A !A
1 0
0 1
Instituto de Computação – UFAL
Exercício
 Escreva um programa em C que imprima a
seguinte tabela verdade:
rodrigo@ic.ufal...
Instituto de Computação – UFAL
Como ler dados do teclado?
 Entrada de dados
 Função scanf
 Sintaxe:
 scanf(Expressao d...
Instituto de Computação – UFAL
Vamos entender o que acontece por
debaixo dos panos
rodrigo@ic.ufal.br
End. Valor
1 34
2 “O...
Instituto de Computação – UFAL
Operador de endereço: &
 Este operador indica o endereço da posição de
memória definida pa...
Instituto de Computação – UFAL
Lembrando dos códigos …
 Indica o tipo de dados esperado na entrada de dados
rodrigo@ic.uf...
Instituto de Computação – UFAL
Lendo mais de uma entrada ao de uma só vez
#include <stdio.h>
main()
{
int dia, mes, ano;
s...
Instituto de Computação – UFAL
Lendo a entrada, com alguma formatação
#include <stdio.h>
main()
{
int dia, mes, ano;
print...
Instituto de Computação – UFAL
Instrução: #include <stdio.h>
 Toda função define
 tipo de dado que ela retorna
 o ident...
Instituto de Computação – UFAL
Instrução: #include <stdio.h>
 Para que a função main() execute outra função
precisamos
 ...
Instituto de Computação – UFAL
stdio.h
 Standard Input and Output Library
 C:Arquivos de
programasCodeBlocksMinGWinclude...
Instituto de Computação – UFAL
Exercício
 Escreva um programa em C que calcule a
média de 05 números digitados pelo usuár...
Instituto de Computação – UFAL
Solução
#include <stdio.h>
main()
{
float n1, n2, n3,n4, n5;
float media;
printf("Digite 05...
Instituto de Computação – UFAL
Exercício
 Escreva um programa para inverter um número
com dois algarismos
 Exemplo:
 En...
Instituto de Computação – UFAL
Desafio
 Escreva um programa para trocar o conteúdo de
duas variáveis
rodrigo@ic.ufal.br
m...
Próximos SlideShares
Carregando em…5
×

Aula 5 - Programação 1

385 visualizações

Publicada em

Aulas da Disciplina de Programação I do Professor Rodrigo Paes, UFAL

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
385
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula 5 - Programação 1

  1. 1. Instituto de Computação – UFAL Saída de Dados  A função printf()  Sintaxe:  printf(Expressão de controle, [Lista de argumentos]);  onde Expressão de controle:  mensagens que se pretende que sejam exibidas,  códigos de formatação (indicam como o conteúdo de uma variável deve ser exibido)  códigos especiais para a exibição de alguns caracteres especiais e realização de ações que permitam formatar a saída do programa.  A Lista de argumentos é opcional pode conter  identificadores de variáveis,  expressões aritméticas ou lógicas e valores constantes. rodrigo@ic.ufal.br
  2. 2. Instituto de Computação – UFAL Códigos de formatação rodrigo@ic.ufal.br  Exemplos  printf(“A resposta é %d”, resposta);  printf(“Quatro vezes cinco é igual a %d”, 4*5 );  printf(“Esse é um numero float: %f”, 4.567); Código Elemento %c Um único caractere %d ou %i Um inteiro no sistema decimal %f Um número em ponto flutuante %s Uma cadeia de caracteres
  3. 3. Instituto de Computação – UFAL Vamos praticar um pouco …  Relembrando  A estrutura de um programa em C  Variáveis  Operadores aritméticos  Atribuição  Saída de dados através da função printf rodrigo@ic.ufal.br
  4. 4. Instituto de Computação – UFAL O exemplo  Calcular a média de três números dados rodrigo@ic.ufal.br
  5. 5. Instituto de Computação – UFAL Exercício  Faça um programa que imprima a soma, a diferença, o produto, a divisão e o resto entre os números inteiros 42 e 21 rodrigo@ic.ufal.br
  6. 6. Instituto de Computação – UFAL Solução main() { printf("%dn", 42+21); printf("%dn", 42-21); printf("%dn", 42*21); printf("%dn", 42/21); printf("%dn", 42%21); } rodrigo@ic.ufal.br
  7. 7. Instituto de Computação – UFAL Exercício  Faça um programa que leia dois valores inteiros representando, respectivamente, um valor de hora e um de minutos e informe quantos minutos se passaram deste o início do dia.  Exemplo:  valores lidos:13 15  Impressão: 795 minutos rodrigo@ic.ufal.br
  8. 8. Instituto de Computação – UFAL Exercício :: solução  Qual a entrada?  Qual a saída esperada?  Já sabe como “ir” da entrada para a saída?  Se já sabe, pode começar a escrever o código  Senão, pense mais um pouco antes de codificar rodrigo@ic.ufal.br
  9. 9. Instituto de Computação – UFAL Exercício :: solução  Escreveu o código?  Teste  Como testar ? rodrigo@ic.ufal.br
  10. 10. Instituto de Computação – UFAL Como testar?  Desenvolva uma estratégia de teste com base no problema  O objetivo do teste é achar bugs (faltas) no seu código  Você deve conhecer o resultado esperado para cada caso de teste rodrigo@ic.ufal.br
  11. 11. Instituto de Computação – UFAL Como testar?  Exemplo  Programa para calcular a média de 03 números  Caso de teste #1  Entrada: 4 6 8  Saída esperada: 6  Caso de teste #2  Entrada: 0 0 0  Saída esperada: 0  Caso de teste #3  Entrada: -4 0 7  Saída esperada: 1  Caso de teste #4  Entrada: -5 -7 – 9  Saída esperada: -7  Caso de teste #5  Entrada: 4 4 0.25  Saída esperada: 2.75 rodrigo@ic.ufal.br
  12. 12. Instituto de Computação – UFAL Como testar?  Teste no caso neutro  Teste nos limites  Teste em condições normais  Teste em condições raras rodrigo@ic.ufal.br
  13. 13. Instituto de Computação – UFAL Voltando ao nosso exemplo  Quais seriam bons casos de teste para o problema de saber quantos minutos se passaram? rodrigo@ic.ufal.br
  14. 14. Instituto de Computação – UFAL Codificou, testou …  Seu programa está correto? Há como garantir isso?  Com o teste, você não testa todas as possíveis soluções  Mas ele lhe dá uma confiança maior na sua solução  … ok, ok … acho que meu programa está correto! rodrigo@ic.ufal.br
  15. 15. Instituto de Computação – UFAL Que tal submetê-lo ao Huxley? rodrigo@ic.ufal.br
  16. 16. Instituto de Computação – UFAL Exemplo de solução  Antes de prosseguir  Você entendeu ...  Vocabulário ?  Estado ?  Fluxo ? rodrigo@ic.ufal.br
  17. 17. Instituto de Computação – UFAL Relações  Operadores utilizados para efetuar comparações rodrigo@ic.ufal.br Operador Significado > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a == Igual != Diferente
  18. 18. Instituto de Computação – UFAL Relações  Exemplos  4 < 3  4 == 6  4 == 4  3 != 2  1 <=8  int soma = 5; int i = 3; … ( soma <= i ) … rodrigo@ic.ufal.br
  19. 19. Instituto de Computação – UFAL Tabela verdade  O ingresso custa 50 reais SE você for estudante OU idoso  Possibilidades  Estudante (verdadeiro) , idoso (verdadeiro)  Estudante (verdadeiro), idoso (falso)  Estudante (falso), idoso (verdadeiro)  Estudante (falso), idoso(falso) rodrigo@ic.ufal.br
  20. 20. Instituto de Computação – UFAL Tabela verdade  O seguro é mais barato SE você for mulher E tiver mais de 50 anos  Mulher (verdadeiro) , mais de 50 anos (verdadeiro)  Mulher (verdadeiro) , mais de 50 anos (falso)  Mulher (falso) , mais de 50 anos (verdadeiro)  Mulher (falso) , mais de 50 anos (falso) rodrigo@ic.ufal.br
  21. 21. Instituto de Computação – UFAL Tabela Verdade  … e a mulher disse: “o futebol OU eu”  Ou seja, o rapaz precisa escolher:  Futebol  Mulher  Mas não os dois  Mulher (verdadeiro) , futebol (verdadeiro)  Mulher (verdadeiro) , futebol (falso)  Mulher (falso) , futebol (verdadeiro)  Mulher (falso) , futebol (falso)  OU exclusivo, ou XOR (exclusive OR) rodrigo@ic.ufal.br
  22. 22. Instituto de Computação – UFAL Tabela verdade, operador E (and) A B A and B V V V V F F F V F F F F rodrigo@ic.ufal.br
  23. 23. Instituto de Computação – UFAL Tabela verdade, operador OU (or) A B A or B V V V V F V F V V F F F rodrigo@ic.ufal.br
  24. 24. Instituto de Computação – UFAL Tabela verdade, operador OU Exclusivo (xor) A B A xor B V V F V F V F V V F F F rodrigo@ic.ufal.br
  25. 25. Instituto de Computação – UFAL Expressões lógicas  Em C  Verdadeiro é representado pelo inteiro: 1  Falso é representado pelo inteiro: 0  Na verdade, qualquer coisa diferente de 0 é considerado como verdadeiro, mas usaremos sempre 1 rodrigo@ic.ufal.br
  26. 26. Instituto de Computação – UFAL Expressões lógicas  AND  &&  OR  ||  XOR  ^ rodrigo@ic.ufal.br
  27. 27. Instituto de Computação – UFAL Tabela verdade, operador E (&&) A B A && B 1 1 1 1 0 0 0 1 0 0 0 0 rodrigo@ic.ufal.br
  28. 28. Instituto de Computação – UFAL Tabela verdade, operador OU ( || ) A B A || B 1 1 1 1 0 1 0 1 1 0 0 0 rodrigo@ic.ufal.br
  29. 29. Instituto de Computação – UFAL Tabela verdade, operador OU Exclusivo (^) A B A ^ B 1 1 0 1 0 1 0 1 1 0 0 0 rodrigo@ic.ufal.br
  30. 30. Instituto de Computação – UFAL Expressões lógicas  Operador unário  ! (negação) rodrigo@ic.ufal.br A !A 1 0 0 1
  31. 31. Instituto de Computação – UFAL Exercício  Escreva um programa em C que imprima a seguinte tabela verdade: rodrigo@ic.ufal.br Lembrem-se: • comando printf
  32. 32. Instituto de Computação – UFAL Como ler dados do teclado?  Entrada de dados  Função scanf  Sintaxe:  scanf(Expressao de controle, Lista de variaveis);  Exemplo: #include <stdio.h> main() { int anos; scanf("%d", &anos); } rodrigo@ic.ufal.br
  33. 33. Instituto de Computação – UFAL Vamos entender o que acontece por debaixo dos panos rodrigo@ic.ufal.br End. Valor 1 34 2 “O rato roeu a roupa do rei de roma” 3 34.67 4 28 5 0 6 “aula de p1” 7 4677 … 123 n anos
  34. 34. Instituto de Computação – UFAL Operador de endereço: &  Este operador indica o endereço da posição de memória definida para a variável identificada na lista de variáveis rodrigo@ic.ufal.br #include <stdio.h> main(){ int anos; scanf("%d", &anos); }
  35. 35. Instituto de Computação – UFAL Lembrando dos códigos …  Indica o tipo de dados esperado na entrada de dados rodrigo@ic.ufal.br Código Elemento %c Um único caractere %d ou %i Um inteiro no sistema decimal %f Um número em ponto flutuante %s Uma cadeia de caracteres #include <stdio.h> main(){ int anos; scanf("%d", &anos); }
  36. 36. Instituto de Computação – UFAL Lendo mais de uma entrada ao de uma só vez #include <stdio.h> main() { int dia, mes, ano; scanf("%d %d %d", &dia, &mes, &ano); printf("Você digitou: %d / %d / %d n", dia, mes, ano); } rodrigo@ic.ufal.br
  37. 37. Instituto de Computação – UFAL Lendo a entrada, com alguma formatação #include <stdio.h> main() { int dia, mes, ano; printf("Digite a data no formato DD/MM/AAAA:n"); scanf("%d/%d/%d", &dia, &mes, &ano); printf("Você digitou: %d / %d / %d n", dia, mes, ano); } rodrigo@ic.ufal.br
  38. 38. Instituto de Computação – UFAL Instrução: #include <stdio.h>  Toda função define  tipo de dado que ela retorna  o identificador da função  lista de parâmetros, com seus identificadores e seus tipos de dados;  este conjunto de elementos é chamado protótipo da função rodrigo@ic.ufal.br
  39. 39. Instituto de Computação – UFAL Instrução: #include <stdio.h>  Para que a função main() execute outra função precisamos  Que o seu protótipo seja definido antes ou no interior da função  Os protótipos das funções são reunidos em arquivos de cabeçalhos ou “header files”  O arquivo stdio.h  Sendo assim, para executarmos a função  A instrução #include <stdio.h> anexa as definições de protótipos das funções que executam ações de entrada e saída de dados rodrigo@ic.ufal.br http://www.cplusplus.com/reference/clibrary/cstdio/
  40. 40. Instituto de Computação – UFAL stdio.h  Standard Input and Output Library  C:Arquivos de programasCodeBlocksMinGWincludestdio.h  .h  Padrão para arquivos de cabeçalho rodrigo@ic.ufal.br
  41. 41. Instituto de Computação – UFAL Exercício  Escreva um programa em C que calcule a média de 05 números digitados pelo usuário  Os números podem ser inteiros ou reais (ponto flutuante) rodrigo@ic.ufal.br
  42. 42. Instituto de Computação – UFAL Solução #include <stdio.h> main() { float n1, n2, n3,n4, n5; float media; printf("Digite 05 numerosn"); scanf("%f%f%f%f%f", &n1, &n2,&n3 ,&n4 ,&n5); media = (n1 + n2 + n3 + n4 + n5) / 5; printf("A media dos 05 numeros digitados e: %fn", media); } rodrigo@ic.ufal.br
  43. 43. Instituto de Computação – UFAL Exercício  Escreva um programa para inverter um número com dois algarismos  Exemplo:  Entrada: 74  Saída: 47 rodrigo@ic.ufal.br
  44. 44. Instituto de Computação – UFAL Desafio  Escreva um programa para trocar o conteúdo de duas variáveis rodrigo@ic.ufal.br main() { int a, b; scanf("%d%d",&a,&b); printf("a=%d b=%dn",a,b); } Como está: Como deveria ser: Você pode colocar código nesses locais, mas não pode alterar nenhuma das 3 linhas que já existem

×