Академический Документы
Профессиональный Документы
Культура Документы
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Roteiro
Simulacao de c
odigo
O comando switch
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Introducao
` vezes, acontece de programarmos um c
As
odigo, porem ele
nao faz o que esperavamos que fizesse.
Isso acontece por varios motivos, entre os quais destacam-se:
Erros de programacao: instrucoes escritas erradas.
Erros da nossa l
ogica: o conjunto de passos pensados que
parecia resolver o problema na realidade nao cobre todas as
situacoes.
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Bem simples: Existem apenas 2 passos.
Alocacao dos espacos de variaveis
Execucao de uma instrucao de cada vez.
Alocacao de mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
Ap
os executar a linha 1
Tipo
int
int
Nome divisor dividendo
Valor
?
?
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Bem simples: Existem apenas 2 passos.
Alocacao dos espacos de variaveis
Execucao de uma instrucao de cada vez.
Alocacao de mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
Ap
os executar a linha 2
Tipo
int
int
Nome divisor dividendo
Valor
?
?
float
resultado
?
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
Ap
os executar a linha 2
Tipo
int
int
Nome divisor dividendo
Valor
?
?
float
resultado
?
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
3. divisor=10; Ultimo
executado
4. dividendo=13; Pr
oximo Comando
5. resultado = dividendo / divisor;
Ap
os executar a linha 3
Tipo
int
int
Nome divisor dividendo
Valor
?
?
10
float
resultado
?
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
3. divisor=10;
4. dividendo=13; Ultimo
executado
5. resultado = dividendo / divisor; Pr
oximo
Comando
Ap
os executar a linha 4
Tipo
int
int
Nome divisor dividendo
Valor
?
?
10
13
float
resultado
?
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
3. divisor=10;
4. dividendo=13;
Ap
os executar a linha 5
Tipo
int
int
Nome divisor dividendo
Valor
?
?
10
13
float
resultado
?
1.0
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo:
1. int divisor,dividendo;
2. float resultado;
3. divisor=10;
4. dividendo=13;
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Simulacao Manual
Execucao em mem
oria:
Ex. Suponha o c
odigo (corrigido):
1. int divisor,dividendo;
2. float resultado;
3. divisor=10;
4. dividendo=13;
5. resultado = (float)dividendo / (float)divisor;
Execucao completa
Tipo
int
int
Nome divisor dividendo
Valor
?
?
10
13
float
resultado
?
1.3
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Exemplo
Faca um programa que, dado um RA, emite uma mensagem se o
aluno estiver matriculado em uma turma de MC102.
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao simples
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao multipla
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao multipla
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Exemplo 2
Faca um programa que, dado um RA, mostre o nome desse
aluno.
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao simples
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao multipla
main () {
int a;
scanf("%d", &a);
if (a == 10129)
printf("Maria C^
andida Moreira Telles\n");
if (a == 33860)
printf("Larissa Garcia Alfonsi\n");
if (a == 33967)
printf("Leonardo Kozlowiski Kenupp\n");
}
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Decisao multipla
Novamente, temos um conjunto muito grande de alunos.
Alem disso, nao podemos utilizar os operadores l
ogicos que
utilizamos anteriormente.
Podemos tentar diminuir o n
umero de testes realizados?
Uma construcao bem comum e o uso da seq
uencia if else
if:
if (<condi
ca
~o1>)
<comando>
else if (<condi
ca
~o2>)
<comando>
...
else if (<condi
ca
~oN>)
<comando>
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
O comando switch
O objetivo do comando switch e simplificar uma expressao
onde uma variavel inteira ou caracter deve fazer diferentes
operacoes dependendo exclusivamente de seu valor.
Sintaxe
switch (vari
avel inteira) {
case valor: comandos
break;
case valor: comandos
break;
}
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
O comando switch
switch(a) {
case 10129:
printf("Maria C^
andida Moreira Telles\n");
break;
case 33860:
printf("Larissa Garcia Alfonsi\n");
break;
case 33967:
printf("Leonardo Kozlowiski Kenupp\n");
break;
}
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
O comando switch
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Valor padrao
Sintaxe
switch (vari
avel inteira) {
valor: comandos break;
default: comandos
}
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Valor padrao
switch(a) {
case 10129:
printf("Maria C^
andida Moreira Telles\n");
break;
case 33860:
printf("Larissa Garcia Alfonsi\n");
break;
default:
printf("O aluno n~
ao est
a matriculado\n");
}
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Exerccios
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Exerccios
MC-102 Aula 06
Simulac
ao de c
odigo
Decis
ao simples e decis
ao m
ultipla
O comando switch
Exerccios
MC-102 Aula 06