SlideShare a Scribd company logo
1 of 44
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
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
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
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 resto entre os
números inteiros 42 e 21
rodrigo@ic.ufal.br
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
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
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
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 teste é achar bugs (faltas) no seu
código
 Você deve conhecer o resultado esperado para
cada caso de teste
rodrigo@ic.ufal.br
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
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
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
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
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 ?
 Fluxo ?
rodrigo@ic.ufal.br
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
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
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
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
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
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.ufal.br
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
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.br
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.br
Lembrem-se:
• comando printf
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
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
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);
}
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);
}
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
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
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
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/
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
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
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
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
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

More Related Content

What's hot

Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Pacc UAB
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Pacc UAB
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de ProgramaçãoMarcos Castro
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01thomasdacosta
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 
Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Victor Martins
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programaçãoClausia Antoneli
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoRobson Ferreira
 
Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Pacc UAB
 
Introdução a linguagem LOGO
Introdução a linguagem LOGOIntrodução a linguagem LOGO
Introdução a linguagem LOGORaiza Medeiros
 
Aula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosAula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosPacc UAB
 
Dicas para maratonas de programação
Dicas para maratonas de programaçãoDicas para maratonas de programação
Dicas para maratonas de programaçãoAnderson Araújo
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03thomasdacosta
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 

What's hot (20)

Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2Aula 10 - Equivalência Java x Portugol Studio - parte 2
Aula 10 - Equivalência Java x Portugol Studio - parte 2
 
Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1Aula 8 - Repetição PARA ATÉ - parte 1
Aula 8 - Repetição PARA ATÉ - parte 1
 
Aula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu códigoAula 14 - Funções: não duplique seu código
Aula 14 - Funções: não duplique seu código
 
Maratona de Programação
Maratona de ProgramaçãoMaratona de Programação
Maratona de Programação
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01
 
Aula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetiçãoAula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetição
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
Aula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: CondicionaisAula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: Condicionais
 
Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0Tarefa 5 superlogo 3.0
Tarefa 5 superlogo 3.0
 
As cinco etapas da programação
As cinco etapas da programaçãoAs cinco etapas da programação
As cinco etapas da programação
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1Aula 8 - Validação - parte 1
Aula 8 - Validação - parte 1
 
Introduço Superlogo
Introduço SuperlogoIntroduço Superlogo
Introduço Superlogo
 
Introdução a linguagem LOGO
Introdução a linguagem LOGOIntrodução a linguagem LOGO
Introdução a linguagem LOGO
 
Aula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercíciosAula 16 - Modularização - parte 3 - exercícios
Aula 16 - Modularização - parte 3 - exercícios
 
portugol
portugolportugol
portugol
 
Dicas para maratonas de programação
Dicas para maratonas de programaçãoDicas para maratonas de programação
Dicas para maratonas de programação
 
Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03Algoritmos e Técnicas de Programação - Aula 03
Algoritmos e Técnicas de Programação - Aula 03
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 

Similar to Aula 5 - Programação 1

Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1Isaac Barros
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2Rodrigo Paes
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1Isaac Barros
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Getting Started with Python
Getting Started with PythonGetting Started with Python
Getting Started with PythonRômulo Machado
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Isaac Barros
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)Márcio Rizzatto
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 

Similar to Aula 5 - Programação 1 (20)

Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Modulo 2
Modulo 2Modulo 2
Modulo 2
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892
 
Introducao logica
Introducao logicaIntroducao logica
Introducao logica
 
Getting Started with Python
Getting Started with PythonGetting Started with Python
Getting Started with Python
 
01 logica
01 logica01 logica
01 logica
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Linguagem C - Controle de Programa
Linguagem C - Controle de ProgramaLinguagem C - Controle de Programa
Linguagem C - Controle de Programa
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 

More from Isaac Barros

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Isaac Barros
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Isaac Barros
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Isaac Barros
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Isaac Barros
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Isaac Barros
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1Isaac Barros
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Isaac Barros
 

More from Isaac Barros (7)

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1
 

Aula 5 - Programação 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. 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. 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. Instituto de Computação – UFAL O exemplo  Calcular a média de três números dados rodrigo@ic.ufal.br
  • 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. 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. 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. 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. Instituto de Computação – UFAL Exercício :: solução  Escreveu o código?  Teste  Como testar ? rodrigo@ic.ufal.br
  • 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. 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. 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. 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. 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. Instituto de Computação – UFAL Que tal submetê-lo ao Huxley? rodrigo@ic.ufal.br
  • 16. Instituto de Computação – UFAL Exemplo de solução  Antes de prosseguir  Você entendeu ...  Vocabulário ?  Estado ?  Fluxo ? rodrigo@ic.ufal.br
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Instituto de Computação – UFAL Expressões lógicas  AND  &&  OR  ||  XOR  ^ rodrigo@ic.ufal.br
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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