Buscar

Aula04 If else 2011

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INF01202INF01202INF01202INF01202
Algoritmos e ProgramaçãoAlgoritmos e ProgramaçãoAlgoritmos e ProgramaçãoAlgoritmos e Programação
Prof. Anderson Maciel
amaciel@inf.ufrgs.br 
Slide 1
Aula 4 – Comandos de seleção condicional
Comandos de seleção condicionalComandos de seleção condicionalçç
• Condicional Simples
if <condição>ç
<comando>
• Seleção Dupla Seleção Dupla 
if <condição>
<comando>
else < comando >
• Seleção múltiplaç m p
switch <expressão>
Slide 2
Comando condicional simplesComando condicional simples
C Linguagem algorítmica
Comando condicional simplesComando condicional simples
if ( expressão lógica )
comando ;
se < expressão lógica >
< comando >;
< expressão lógica > verdadeira expressão lógica 
falsa < comando >< comando >
Slide 3
Comando condicional simplesComando condicional simples
Ex1: Ler um valor e no caso
Algoritmo:
1. Início.
2. Ler Valor.Ex1: Ler um valor e, no caso 
de ser menor do que 10, emitir 
uma mensagem.
3. Se Valor < 10
3.1 escrever mensagem
4. Fim.
/* Lê valor e informa se maior que 10 */
#include <stdio.h> 
#include <stdlib h>#include <stdlib.h>
int main() // programa principal
{{
int val1; // declaração da variável informada
printf("Valor 1:\n"); // mensagem impressa na tela
scanf("%d", &val1); // leitura da informação digitada( ) ç g
if (val1 < 10)
printf("%d é menor que 10\n", val1); // mensagem
return 0;
}
Slide 4
}
Ex2: Processar uma venda de livros em uma livraria.
Obter código do tipo de livro vendido (A, B, C) e número de unidades. 
Preços: Tipo A: R$ 10 00Preços: Tipo A: R$ 10,00 
Tipo B: R$ 20,00
Tipo C: R$ 30,00
Calcular e informar preço a pagar. Caso tenham sido vendidas mais p ç p g
de 10 livros, emitir uma mensagem.
Algoritmo UmaVenda
{processa uma venda e avisa caso tenham sido vendidas maisde 10 unidades }
entradas: codigo {do tipo do livro}
nro_livros {vendidos}
saídas: apagar
mensagem {caso tenham sido vendidas mais de 10 unidades}
1. início se codigo = ´A´
2. ler codigo, nro_livros 
3. calcular preço a pagar
4. informar apagar
se codigo = A
apagar ← nro_livros * 10; 
se codigo = ´B´
apagar← nro livros * 20;4. informar apagar
5. se nro_livros > 10
5.1 informar “mais de 10 livros vendidos”
6 fim
apagar ← nro_livros 20; 
se codigo = ´C’ 
apagar ← nro_livros * 30; 
Slide 5
6. fim
Ex2: Processar uma venda de livros em uma livraria.
Obter código do tipo de livro vendido (A, B, C) e número de unidades. 
Preços: Tipo A: R$ 10 00Preços: Tipo A: R$ 10,00 
Tipo B: R$ 20,00
Tipo C: R$ 30,00
Calcular e informar preço a pagar. Caso tenham sido vendidas mais p ç p g
de 10 livros, emitir uma mensagem.
Algoritmo UmaVenda
{processa uma venda e avisa caso tenham sido vendidas maisde 10 unidades }{p }
entradas: codigo {do tipo do livro}
nro_livros {vendidos}
saídas: apagar
mensagem {caso tenham sido vendidas mais de 10 unidades}mensagem {caso tenham sido vendidas mais de 10 unidades}
1. início
2. ler codigo, nro_livros 
3. se codigo = ´A´
3 1 li * 103.1 apagar ← nro_livros * 10; 
4. se codigo = ´B´
4.1 apagar ← nro_livros * 20; 
5 se codigo = ´C’5 se codigo = C 
5.1 apagar ← nro_livros * 30; 
6. informar apagar
7. se nro_livros > 10
Slide 6
_
7.1 informar “mais de 10 livros vendidos”
8. fim
1. início
2. ler codigo, nro_livros 
3. se codigo = ´A´
3 1 apagar ← nro livros * 10;/* processa uma venda e avisa caso se mais de 
10 unidades vendidas foram vendidas */
#include<stdio.h>
#include<stdlib h>
3.1 apagar ← nro_livros * 10; 
4. se codigo = ´B´
4.1 apagar ← nro_livros * 20; 
5 se codigo = ´C’ 
5.1 apagar ← nro_livros * 30; #include<stdlib.h>
int main(void)
{
char codigo;
p g _ ;
6. informar apagar
7. se nro_livros > 10
7.1 informar “mais de 10 livros ven
8. fim
char codigo;
int nro_livros;
float apagar;
printf("digite o codigo do produto e número de unidades:\n");
f("% %d " & di & li ) scanf("%c %d ",&codigo, &nro_livros); 
if (codigo == 'a'|| codigo == 'A')
apagar = nro_livros*10;
if (codigo == 'b'|| codigo == 'B') if (codigo b || codigo B ) 
apagar = nro_livros*20;
if (codigo == 'c' || codigo == 'B') 
apagar = nro_livros*30;
i tf(" l ’ R$ %4 2f\ " )printf("o valor a pagar e’ R$ %4.2f\n",apagar);
if (nro_livros > 10)
printf("Foram vendidas mais de 10 unidades do tipo %c",codigo);
system("pause");
Slide 7
system( pause );
return (0);
}
LocalizaçãoLocalização de um de um pontoponto no no 
planoplano
Dados um par de valores x e y que representam Dados um par de valores x e y, que representam 
as coordenadas de um ponto no plano, determinar 
a localização do ponto: se em um quadrante, em ç p q ,
um dos eixos ou na origem.
Saída: mensagem adequada
Entradas: coordenadas x e y de um ponto– Entradas: coordenadas x e y de um ponto.
– Processamento: testes, verificando onde o par 
de valores se enquadrade valores se enquadra.
Slide 8
Eixo dos Ys
Quadrante 1
x = 0 e y ≠ 0
x > 0 e y > 0
Quadrante 2
 0 0
x > 0 e y > 0
Origem
Eixo dos Xsx = 0 e y = 0
x < 0 e y > 0
 0 0
Origem
Quadrante 4Quadrante 3
x ≠ 0 e y = 0
Quadrante 4Quadrante 3
x > 0 e y <0x < 0 e y < 0
Slide 9
Passos do AlgoritmoPassos do Algoritmog mg m
• leitura dos valores de x e y.
• determinação, pela avaliação de condições, de onde o 
ponto se encontra: se em um quadrante, em um eixo 
ou na origem.
i d d é i di d l li ã d • escrita da mensagem, onde é indicada a localização do 
ponto – apenas 1 mensagem por par de valores.
Slide 10
Escrita do algoritmo em Escrita do algoritmo em 
d lid lipseudolinguagempseudolinguagem
Algoritmo LocalizaQuadranteAlgoritmo LocalizaQuadrante
Entradas: x, y (coordenadas)
Saída: mensagem (localização) 
1. início 
2. ler x , y
3 0 0 “ i ”3. se x = 0 e y = 0 escrever “ponto na origem”
4. se x > 0 e y > 0 escrever “quadrante 1”
5 etc5. etc…
(...)
9. se x ≠ 0 e y = 0 escrever “eixo dos x”y
10.fim
Slide 11
Em Em 
C:C:
/* Obtem coordenadas e informa localização */
#include <stdio.h>
#include <stdlib.h>
i t i ( )C:C: int main ( )
{
float x , y; 
printf("\n Coordenadas: x = ");p ( );
scanf("%f", &x);
printf(" e y = ");
scanf("%f", &y);
if ( x == 0 && y == 0 )if ( x 0 && y 0 )
printf("\n Ponto na origem");
if ( x > 0 && y > 0 )
printf("\n Ponto no quadrante 1");
if ( x < 0 && y > 0 )if ( x < 0 && y > 0 )
printf("\n Ponto no quadrante 2");
if ( x < 0 && y < 0 )
printf("\n Ponto no quadrante 3");
if ( x > 0 && y < 0 )
printf("\n Ponto no quadrante 4");
if ( x == 0 && y != 0 )
printf("\n Ponto no eixo dos y");printf( \n Ponto no eixo dos y );
if ( x != 0 && y == 0 )
printf("\n Ponto no eixo dos x");
printf("\n");
system("pause");
Slide 12
system( pause );
return 0;
} 
Comando Simples e CompostoComando Simples e Composto
Comando simplesComando simples
Comando Simples e CompostoComando Simples e Composto
comando;
Comando simplesComando simples
;
1 só comando
Comando compostoComando composto
{{
< comandos, separados por ponto e vírgula >
}
1 comando (bloco)
Slide 13
1 comando (bloco)
Comando condicional simples
if ( expressão lógica )
C Linguagem algorítmica
if ( expressão lógica )
{
comando1;
d
se < expressão lógica >
< comandoS >comandon;
}
< comandoS >
< expressão lógica > verdadeira expressão lógica 
falsa
< comando1 >
+ de 1
< comando2 > comando
Slide 14
Ex2: Processar uma venda de livros em uma livraria.
Obter código do tipo de livro vendido (A, B, C) e número de unidades. 
Preços: Tipo A: R$ 10 00Preços: Tipo A: R$ 10,00 
Tipo B: R$ 20,00
Tipo C: R$ 30,00
Calcular e informar preço a pagar. Se olivro for do Tipo A, dar 10% de p ç p g p ,
desconto. Caso tenham sido vendidas mais de 10 livros, emitir uma 
mensagem.
Al it U V dAlgoritmo UmaVenda
{processa uma venda e avisa caso tenham sido vendidas mais de 10 unidades }
entradas: codigo {do tipo do livro}
nro_livros {vendidos}
saídas: apagar
mensagem {caso tenham sido vendidas mais de 10 unidades}g { }
1. início
2. ler codigo, nro_livros 
3. calcular preço a pagar
se codigo = ´A´
apagar ← nro_livros * 10; 
apagar ← apagar * 0.9;
di ´B´3. calcular preço a pagar
4. informar apagar
5. se nro_livros > 10
5 1 informar “mais de 10 livros vendidos”
se codigo = ´B´
apagar ← nro_livros * 20; 
Slide 15
5.1 informar mais de 10 livros vendidos
6. fim
1. início
2. ler codigo, nro_livros 
3. se codigo = ´A´
3 1 apagar ← nro livros * 10;/* processa uma venda e avisa caso se mais de 
10 unidades vendidas foram vendidas */
#include<stdio.h>
#include<stdlib h>
3.1 apagar ← nro_livros * 10; 
3.2 apagar ← apagar * 0.9;
4. se codigo = ´B´
4.1 apagar ← nro_livros * 20; 
5. informar apagar#include<stdlib.h>
int main(void)
{
char codigo;
p g
6. se nro_livros > 10
6.1 informar “mais de 10 livros vendid
7. fim
char codigo;
int nro_livros;
float apagar;
printf("digite o codigo do produto e número de unidades:\n");
scanf("%c %d " &codigo &nro livros);scanf( %c %d ,&codigo, &nro_livros);
if (codigo == 'a'|| codigo == 'A')
{
apagar = nro_livros*10;
 * 0 9apagar = apagar * 0.9;
}
if (codigo == 'b' || codigo == 'B') 
apagar = nro livros*20;apagar nro_livros 20;
printf("o valor a pagar e’ R$ %4.2f\n",apagar);
if (nro_livros > 10)
printf("Foram vendidas mais de 10 unidades do tipo %c",codigo);
system("pause");
Slide 16
system( pause );
return (0);
}
Ex1: Fazer um programa que leia um número natural e informe se o 
número lido é par ou ímpar
Algoritmo Par ou Ímpar
número lido é par ou ímpar
Algoritmo Par ou Ímpar
{ Verifica se um valor lido do teclado é par ou ímpar }
entrada: o valor a ser testado
saídas: Mensagem de “par” ou “ímpar”saídas: Mensagem de par ou ímpar 
1. início
2. ler o valor
3. verificar se valor é par
4. se ( ehpar )
4 1 escrever ‘par’
Redundância!!!
4.1 escrever par
5 se ( não ( ehpar) )
5.1 escrever ‘ímpar’
Comando de 
seleção dupla6. fim seleção dupla
Slide 17
Comandos de seleção condicionalComandos de seleção condicionalçç
9C d l l9Condicional Simples
if (condição)
comando;comando;
• Seleção Dupla 
if (condição)if (condição)
comando;
else comando;
• Seleção múltipla
switch (variável)( )
{
expressão;
}
Slide 18
}
Comando de seleção duplaComando de seleção dupla
C
se < expressão lógica >if (expressão lógica)
Linguagem algorítmica
p g
< comando >
senão
< comando >
( p g )
comando;
else 
comando;
< expressão lógica > verdadeirafalsa
< comando >< comando >
Slide 19
1. início
2. ler o valor
3. verificar se valor é par
4 se (ehpar)
Algoritmo Par ou Ímpar
( p )
4.1 escrever ‘par’
5 se (não (ehpar))
5.1 escrever ‘ímpar’
6. fimAlgoritmo Par ou Ímpar
{ Verifica se um valor lido do teclado é par ou ímpar }
entrada: o valor a ser testado
saídas: Mensagem de “par” ou “ímpar”
1. início
2 ler o valor2. ler o valor
3. verificar se valor é par
4 se ( ehpar )
resto da divisão inteira = 0
4. se ( ehpar )
4.1 escrever ‘par’
4.2 senão 
4.2.1 escrever ‘ímpar’
6. fim
Slide 20
Algoritmo Par ou ÍmparAlgoritmo Par ou Ímpar
{ Verifica se um valor lido do teclado é par ou ímpar }
entrada: o valor a ser testado
saídas: Mensagem de “par” ou “ímpar”
1. início
2 ler o valor2. ler o valor
3. verificar se valor é par3. se (valor % 2 = 0)3.1 ehpar = 1 ( true é diferente de zero)
4 se (ehpar) 
é
3.2 senão 
3.2.1 ehpar = 0 ( false é igual a zero)
4.1 escrever ‘par’ (executa se par é verdadeiro)
4.2 senão 
escrever ‘ímpar’ (executa se par é falso)esc e e pa (executa se par é falso)
5. fim
Slide 21
// Determina se valor inteiro é par ou impar, analisando resto da divisão por 2
#include <stdio.h>
#include <stdlib.h>
int main()int main()
{
int valor, ehpar;
printf("digite o valor a ser testado\n");printf( digite o valor a ser testado\n );
scanf("%d",&valor);
if ((valor % 2) == 0) // analisa resto da divisão inteira
ehpar = 1; // verdadeirop ;
else 
ehpar = 0; // falso
if (ehpar) // equivale a (ehpar == 1) (<>0 é true)mesmo teste ( p )
printf("PAR!\n");
else 
printf("IMPAR!\n"); // ehpar == 0 - false
(" ") 
mesmo teste 
2 vezes!
system("pause"); 
return 0; 
}
Slide 22
// Determina se valor inteiro é par ou impar, analisando resto da divisão por 2
#include <stdio.h>
#include <stdlib.h>
int main()int main()
{
int valor, ehpar;
printf("digite o valor a ser testado\n");printf( digite o valor a ser testado\n );
scanf("%d",&valor);
if ((valor % 2) == 0) // analisa resto da divisão inteira
ehpar = 1; // verdadeiro// integra em um só “if”:p ;else 
ehpar = 0; // falso
if (ehpar) // equivale a (ehpar == 1) (<>0 é true)
// integra em um só if :
if ((valor % 2) == 0) // analisa resto da divisão inteira
printf("PAR!\n"); // se true
l 
( p )
printf("PAR!\n");
else 
printf("IMPAR!\n"); // ehpar == 0 - false
(" ") 
else 
printf("IMPAR!\n"); // se false
system("pause"); 
return 0; 
}
Slide 23
Ex1: Fazer um programa que leia um número natural e
informe se o número lido é par ou ímpar
// Determina se valor inteiro é par ou impar, analisando resto da divisão por 2
#include <stdio.h>
#include <stdlib.h>
int main()int main()
{
int valor, ehpar;
printf("digite o valor a ser testado\n");
Consistir valor 
informado!
printf( digite o valor a ser testado\n );
scanf("%d",&valor);
if ((valor % 2) == 0) // analisa resto da divisão inteira
printf("PAR!\n"); // se true 1 i í iprintf( PAR!\n ); // se true
else 
printf("IMPAR!\n"); // se false
1. início
2. ler o valor
3. se valor > 0
3.1 início
3 1 2 ifi l éreturn 0; 
}
3.1.2 verificar se valor é par
3.1.3 se par
3.1.3.1 escrever ‘par’
3.1.4 se não par
3 1 4 1 escrever ‘ímpar’
Slide 24
3.1.4.1 escrever ímpar’
3.1 fim
4. fim
// Determina se valor inteiro é par ou impar, analisando resto da divisão por 2
#include <stdio.h>
#include <stdlib.h>
int main()int main()
{
int valor, ehpar;
printf("digite o valor a ser testado\n");printf( digite o valor a ser testado\n );
scanf("%d",&valor);
if (valor >=0)
{ // integra em um só “if”:{ g f
if ((valor % 2) == 0) // analisa resto da divisão inteira
printf("PAR!\n"); // se true
else else 
printf("IMPAR!\n"); // se false
} 
return 0; return 0; 
}
Slide 25

Outros materiais