Escolar Documentos
Profissional Documentos
Cultura Documentos
Eletrônica
Entrada e saída, condicionais: if e switch
Prof.: Hansenclever de França Bassani (Hans)
h8@cin.ufpe.br
Site da disciplina: www.cin.ufpe.br/~h8/ce
CIn.ufpe.br
Saída de Dados
• Os comandos de saída de dados são uFlizados quando
desejamos ver o resultado do processamento do nosso
programa.
• São também uFlizados para apresentar mensagens na tela,
solicitando que o usuário faça algo, como por exemplo, digitar
alguma informação.
• Os disposiFvos de saídas de dados mais comuns são: monitor,
impressora e caixas de som.
CIn.ufpe.br
Saída de Dados
• Veremos os comandos que fornecem saída de dados (texto)
para o disposiFvo de saída padrão que é a tela do computador,
na modalidade “console” ou “terminal”.
• Console ou terminal é um Fpo de interface de comunicação
com usuários (UI), na qual caracteres são exibidos
sequencialmente linha por linha.
• Em geral o número de caracteres por linha e o número de
linhas são fixos.
• Ao aFngir o final da linha o texto automaFcamente conFnua na
linha seguinte.
• Ao aFngir a úlFma linha o texto é deslocado uma linha para
cima, e abrindo espaço para uma nova linha ao final.
CIn.ufpe.br
Saída de Dados - prin>
• A função prin> disponível na biblioteca <stdio.h> é um dos
principais comandos de saída em C;
• print significa “imprimir” e o f no final significa “formatar”.
• Portanto, este comando é capaz de imprimir na saída
informações (texto e números) de forma formatada.
• A sintaxe é:
prin](“string de controle”);
• ou:
prin](“string de controle”, arg1, arg2,...);
CIn.ufpe.br
Saída de Dados - prin> - Sintaxe
• A string de controle pode conter: texto, códigos especiais e
especificadores de formatos.
• Quais são os códigos especiais que podem aparecer na string de
controle do prin]?
– São formados por uma barra inverFda (\), seguida de uma letra.
• Um código especial não é um caractere a ser impresso, mas
indica uma ação que deve ser executada pelo prin>.
CIn.ufpe.br
Saída de Dados - Códigos
Especiais
Códigos Especiais Ação
CIn.ufpe.br
Saída de Dados - Exemplos
CIn.ufpe.br
Saída de Dados – Especificadores de
Formato
• Como escrevemos textos e valores, armazenados nas nossas
variáveis, na tela do computador?
• Para isto, temos que saber mais um detalhe sobre a string de
controle, que são os especificadores de formato.
• Um especificador de formato marca o lugar e o formato de
impressão das variáveis, conFdas na lista argumentos.
• Deve haver um especificador de formato para cada variável a
ser impressa.
• Todos os especificadores de formato começam com um %.
CIn.ufpe.br
Saída de Dados – Especificadores de
Formato
%c Escrever um caractere
CIn.ufpe.br
Entrada de Dados
• Os comandos de entrada de dados são uFlizados quando
desejamos permiFr ao usuário informar um valor para um
nosso programa.
• Os disposiFvos mais comuns são: teclado, mouse, tela sensível
ao toque, scanner, dentre outros.
CIn.ufpe.br
Entrada de Dados – scanf
• A execução do comando de leitura pressupõe que os dados
serão fornecidos do meio externo (o teclado é a entrada
padrão), e serão armazenados na memória (variáveis).
• A função que faz a leitura de um dado fornecido via teclado e o
armazena em uma variável do programa é o scanf, disponível
também na biblioteca <stdio.h>.
• scan significa “ler”e o f significa “formatado”. Portanto, o
comando lê informações (texto ou números) em um formato
específico (a informação digitada deve estar neste formato).
• A sintaxe do comando é:
%c leitura de um caractere
CIn.ufpe.br
Entrada de Dados - Exemplos
CIn.ufpe.br
Entrada de Dados - Cadeia de
Caracteres
• A função scanf com %s, em muitos casos não é adequada para
ler uma cadeia de caracteres.
• O problema é que, se nesta cadeia de caractere houver um
espaço em branco, separando uma palavra da outra, ao
encontrar o espaço em branco, o scanf entende que a leitura
terminou, desprezando o restante do texto digitado.
• Além disso, ela não sabe qual o tamanho máximo que pode
armazenar na variável vetor de caracteres.
• Isto pode ser resolvido uFlizando-se a string de controle:
“%X[^\n]s”
– onde ‘X’ deve ser subsFtuído pelo tamanho do vetor de caracteres
menos 1, e “[^\n]s” informa que a leitura de caracteres deve terminar
somente ao encontrar um caractere de fim de linha ‘\n’ (enter), não ao
encontrar um espaço.
CIn.ufpe.br
Entrada de Dados - Exemplos
19 = 20-1
CIn.ufpe.br
Entrada de Dados - Cadeia de
Caracteres
CIn.ufpe.br
Condicionais
• Considere o fluxograma de exemplo:
CIn.ufpe.br
Condicionais
• O resultado da avaliação de uma expressão booleana é
verdadeiro ou falso
• Em C, NÃO existe o Fpo de dado booleano
– Falso é representado como o inteiro 0 (zero)
– Qualquer outro número diferente de zero indica verdadeiro.
• Consideremos então:
– 1: verdadeiro
– 0: falso
• Uma expressão booleana é composta de operandos booleanos
(lógicos) e operadores relacionais e/ou lógicos
CIn.ufpe.br
Condicionais
• Operadores relacionais:
CIn.ufpe.br
Condicionais
• Operadores lógicos:
– São usados para combinar comparações
– Operam sobre valores booleanos (0 ou 1)
CIn.ufpe.br
Expressões Booleanas
• Uma tabela verdade representa todas as combinações
verdadeiro-falso dos operadores lógicos:
CIn.ufpe.br
Expressões Booleanas
• Operadores lógicos e expressões:
– x && y
– x || y
– !x
• x e y são expressões booleanas;
• As expressões resultantes são booleanas, gerando verdadeiro (1) ou
falso (0), como resultado da avaliação;
• Operadores && e || são ditos short-circuited
– Operandos da direita só são avaliados, se necessário
– Existem os operadores bit a bit & e I que representam operações binárias
• Erros comuns:
– Confundir && com &
– Confundir || com |
CIn.ufpe.br
Expressões Booleanas
CIn.ufpe.br
Expressões Booleanas
1 - verdadeiro
CIn.ufpe.br
Expressões Booleanas
1 - verdadeiro
CIn.ufpe.br
Comandos Condicionais
• Um comando condicional nos permite escolher qual deve ser a
próxima instrução executada em um programa
• A execução de uma determinada instrução depende de uma
condição (expressão booleana)
• A linguagem C oferece 3 Fpos de comandos condicionais:
– if – else
– switch
– comando ternário (?:)
CIn.ufpe.br
If-else
CIn.ufpe.br
If-else
• Exemplo:
CIn.ufpe.br
If-else
• Variações:
• Omissão do else quando não há comandos para o else:
CIn.ufpe.br
If-else
• Outros exemplos:
CIn.ufpe.br
If-else
• Outros exemplos:
CIn.ufpe.br
If-else
• Comandos aninhados:
CIn.ufpe.br
If-else
• Outros exemplos de comandos if aninhados:
Há algo errado?
CIn.ufpe.br
If-else
• Outros exemplos de comandos if aninhados:
CIn.ufpe.br
O comando switch
• O comando if-else é úFl para a escolha de uma entre duas
alternaFvas;
• Quando mais de duas alternaFvas são necessárias, pode ficar
deselegante e ineficiente uFlizar vários if-else encadeados;
• Para estes casos o comando switch pode ser a melhor opção:
Para executar um switch:
• Avalia-se expressao;
• Executa-se os comandos do case cujo
rótulo é igual ao valor resultante da
expressão;
• Executa-se os comandos de default caso
o valor resultante não seja igual a
nenhum rótulo;
CIn.ufpe.br
O comando switch
• O Fpo de expressao só pode ser: int ou char;
• Os rótulos são constantes diferentes;
• Existe no máximo uma cláusula default (é opcional);
• Os Fpos dos rótulos têm que ser do mesmo Fpo de expressao;
• Vários rótulos podem estar associados ao mesmo comando;
• Os comandos break são opcionais:
– Sem o break a execução dos comandos de um
rótulo conFnua nos comandos do próximo, até
chegar ao final ou a um break.
• No exemplo ao lado:
– caso expressao seja avaliada para rotulo1, os
comandos 1 e 2 serão executados.
– caso expressao seja avaliada para rotulo2,
apenas o comando 2 será executado. CIn.ufpe.br
Exemplo de switch
• Calcular a diferença, o produto, o quociente ou a soma de dois números,
dependendo da operação escolhida e imprimir o resultado.
CIn.ufpe.br
O comando ternário de decisão (?:)
• O comando ternário (?:) é uma versão do if-else com sintaxe
mais econômica;
• Sintaxe:
(condicao ? expressao1 : expressao2)
• Lê-se:
– Caso condicao seja verdadeira: avalie e retorne como resultado
expressao1, caso contrário, avalie e retorne como resultado expressao2
CIn.ufpe.br
O comando ternário de decisão (?)
• Os exemplos abaixo são equivalentes:
CIn.ufpe.br
A`vidade 01
• Compilar e Depurar Programas
– Execute o programa abaixo passo-a-passo (depurar) e anote o valor de
cada variável em cada ponto indicado:
CIn.ufpe.br
A`vidade 02
• Variáveis, Entrada e Saída
– Faça um programa que:
1. Leia dois valores do teclado e os armazena em duas variáveis;
2. Troque o conteúdo de uma variável com a outra;
3. Imprima os valores trocados na tela;
CIn.ufpe.br
A`vidade 03
• Variáveis, Entrada e Saída
– Faça um programa que leia do teclado cinco números e imprima na tela
a soma destes cinco números. O programa só pode uFlizar 2 (duas)
variáveis.
CIn.ufpe.br
A`vidade 04
• Constantes, Variáveis, Entrada e Saída
– Faça um programa que leia do teclado o raio de uma circunferência e
imprima seu diâmetro, seu perímetro e sua área.
– Obs.: Declare a constante π
CIn.ufpe.br
A`vidade 05
• Variáveis, Entrada e Saída, Condicionais
– Faça um programa que:
1. Solicite ao usuário digitar três números reais;
2. Ler os três números digitados do teclado;
3. Imprima na tela qual o maior número digitado.
48
CIn.ufpe.br
A`vidade 06
• Variáveis, Entrada e Saída, Condicionais
– Faça um programa que leia as três notas de um aluno (entre 0 e 10) ,
calcule a média e imprima o seu conceito final, de acordo com a regra
abaixo:
• Nota maior ou igual a 9: Conceito A;
• Nota menor que 9 e maior igual a 7: Conceito: B;
• Nota menor que 7 e maior igual a 5: Conceito C;
• Nota menor que 5 e maior igual a 3: Conceito D;
• Nota menor que 3: Conceito F;
CIn.ufpe.br
A`vidade 07
• Condicionais e expressões booleanas:
– Imagine uma avó que só vai aprovar o namoro de seu neto(a), se o
pretendente esFver com mais de 25 e menos de 40 anos, for rico (renda
anual acima de R$75.000,00) e Fver boa aparência (nota acima de 7 em
uma escala de 0 a 10).
– Faça um programa para descobrir se um pretendente está apto ou não.
Ex.:
Informe a sua idade: 39
Digite o seu rendimento anual: 49000
Como atraFvo é você, em uma escala 0 - 10? 7.5
Você está autorizado a namorar: falso
CIn.ufpe.br
A`vidade 08
• Desafio:
– Faça um programa que recebe como entrada o salário bruto de um
trabalhador e sua dedução, e calcule o imposto de renda (IRPF) devido,
de acordo com a tabela abaixo.
• Obs.: O cálculo do imposto incide sobre o salário menos as deduções;
• Deve ser aplicado apenas a parte do valor que esFver dentro de cada faixa;
• Compare com o simulador da receita federal:
hep://www.receita.fazenda.gov.br/aplicacoes/atrjo/simulador/simulador.asp?FpoSimulador=M
Base de cálculo (R$) Alíquota % • Ex:
– Salário 10.000,00 deduções: 2.000,00
Até 1.787,77 isento
– Base de calculo: 8.000,00
De 1.787,78 até 2.679,29 7,5% – (2.679,29 - 1.787,77) * 7,5% = 66,86
De 2.679,30 até 3.572,43 15,0% – (3.572,43 - 2.679,29)* 15% = 133,97
De 3.572,44 até 4.463,81 22,5% – (4.463,81 - 3.572,43) * 22,5% = 200,56
– (8.000,00 - 4.463,81) * 27,5% = 972,45
Acima de 4.463,81 27,5%
– Imposto total: 1.373,84
CIn.ufpe.br