Escolar Documentos
Profissional Documentos
Cultura Documentos
Entrada
int main ( )
{
int nota;
printf("\nNota (0 a 10): ");
scanf("%d", ¬a);
if (nota < 0 || nota > 10) // elimina notas inválidas
printf(“Nota inválida!\n”);
else
if (nota < 6)
printf("\nReprovado\n");
else // sobraram aprovados!
if (nota <= 9)
printf("\nAprovado\n");
else // só sobrou nota = 10
printf("\nAprovado com louvor\n");
return 0;
}
else
3 Resultado –2
4 Inalterado
if (codigo == 3 || codigo == 5) 5 Resultado –2
resultado = resultado – 2; 6
7
2* (Resultado +1)
Inalterado
else 8 0
if (codigo == 6)
9 0
10 0
resultado = 2 * (resultado + 1); 11 123
else
if (codigo > 7 && codigo < 11)
resultado = 0;
else
if (codigo == 11)
resultado = 123;
else
if (codigo < 1 || codigo > 11)
printf(“código inválido!”);
break; 9
10
0
0
case 11: resultado = 123; 11 123
break;
default: printf(“Codigo informado invalido!”); // não precisa break
}
Informações adicionais:
1. conversão Celsius – Fahrenheit:
1º F = (9 / 5)º C + 32
2. conversão Polegadas – Milímetros:
1 pol = 24.5 mm
int main()
{
float val_lido, val_conv; // valores reais: lido e informado
int op; // opção dos menus
int main()
{
float val_lido, val_conv; // valores reais: lido e informado
int op; // opção dos menus
switch(op)
{
case 1: ... // opção: conversão de temperaturas
case 2: ... // opção: conversão de medidas
case 3: //avisa encerramento por solicitação
printf (“ Opção selecionada: encerrar programa.”);
break;
default:
printf (“ Opção inválida!”); // avisa o erro
}
return(0);
}
Desvantagens
• Serve como alternativa para casos em que sejam testadas
apenas igualdades envolvendo expressões int, long (long integer)
ou char.
• Não pode testar intervalos!!
(if...else é mais abrangente!!)
Vantagens
O código produzido é mais claro.
A lógica fica mais evidente.
Algoritmo UmConceito
/* Informa se um aluno foi ou não aprovado, a
partir da média informada */
entrada: média
saída: ‘Aprovado’ ou ‘Reprovado’
1. início
2. ler média
3. se média >= 6,0 Processar apenas 1
escrever ‘Aprovado’ aluno?
senão
escrever ‘Reprovado’
4. fim.
http://www.youtube.com/watch?v=X6sOzEQn-Ng&feature=related
Estruturas de repetição
25 INF 01202 - Prof. Marcelo Walter – Aula 07
Comandos de repetição (loop)
Objetivo: repetir comando (ou bloco de comandos)
um número finito de vezes
Controle da repetição
contagem:
• repetir um determinado número de vezes
teste:
• repetir enquanto uma condição não for atingida
• repetir até uma condição ser atingida
• enquanto ......
C Linguagem algorítmica
for (expressão 1; expressão 2; expressão3)
comando;
para (inicialização(ões);
condição;
incremento(s)/decremento(s))
comando
inicializações
condição V
comando
?
F
incremento
Para uso no
comando for
com
caracteres.O
valor ASCII
de cada
caracter é
utilizado nas
comparações
int main ( )
{
char letra;
for (letra = 'A'; letra <= 'z'; letra++) // A até z: sequência não contínua
printf("%3c", letra);
printf("\n\nCaractere da tabela ASCII apos a ultima minuscula: %c\n", letra);
return 0;
}
int main ( )
{
int i;
for (i = 97; i <= 122; i++) // 97 e 122 codigos das minusculas
printf("%3c", i);
// valor de i apos a execucao do laco eh 123, que corresponde a {
printf("\n\nCaractere da tabela ASCII apos a ultima minuscula: %c\n", i);
return 0;
}
Qual a idade
média do
público dos
shows do
U2? Ou da
Maria
Bethânia?
int main ( )
{
int soma_idades, idade, contador;
float media_idades;
Se o for
soma_idades = 0; // inicializa acumulador em 0
controlar for (contador = 1; contador <= 5; contador ++)
mais de uma {
instrução, printf("informe idade %d :", contador); // utiliza contador
as chaves scanf ("%d", &idade);
são // vai acumulando idades lidas
obrigatórias soma_idades = soma_idades + idade;
}
// cast, para resultado ser real
media_idades = (float) soma_idades/5;
printf("\nA media das 5 idades lidas eh %.2f.\n", media_idades);
return 0;
}
Conteúdo da variável
de controle
return 0;
}
44 INF 01202 - Prof. Marcelo Walter – Aula 07
Execução:
Iremos
trocar este
for (contador = 1; contador <= 5; contador ++) valor fixo
{ por uma
printf("informe idade %d :", contador); constante
scanf ("%d", &idade); que pode
if (idade < 18) ser
conta_menos_de_18++; // incrementa 1 no contador facilmente
// vai acumulando idades lidas modificada
soma_idades = soma_idades + idade; em todo o
} programa
ao mesmo
tempo
Sintaxe:
#define IDENTIFICADOR valor
ATENÇÃO:
entre identificador e valor não colocar nada além de espaços !
Exemplo:
#define NRALUNOS 10
Ação:
• Na compilação, o identificador é substituído no programa pelo
valor indicado.
Vantagens:
• Flexibilidade de alteração de limites
• Segurança contra enganos de digitação de valores
Importante:
Recomenda-se fortemente escrever o identificador em
MAIÚSCULAS!
48 INF 01202 - Prof. Marcelo Walter – Aula 07
Declaração e uso de constantes
return 0;
}
#define LIMITE 5
int main ( )
{
int indice;
float nota , soma = 0;
Constantes
simbólicas:
Não podem
ser ser LIMITE = 7;
alteradas scanf(“%d”,&LIMITE);
por
atribuição ou
leitura. O pré-compilador troca a linha
por:
LIMITE = 7;
scanf(“%d”,&7);