AULA 12 - Microcontroladores - Técnico: mudanças entre as edições
imported>Fargoud |
imported>Fargoud Sem resumo de edição |
||
| Linha 240: | Linha 240: | ||
#Um certo Centro Acadêmico está tentando realizar um plebiscito para escolha do logotipo do curso, dentre 3 propostas. Faça o programa que implementa a “urna eletrônica”, a qual vai contabilizar os votos dos estudantes e professores em cada logotipo, os votos brancos e nulos; calcular os percentuais de votos válidos em cada logotipo e imprimir qual foi o logotipo vencedor. | #Um certo Centro Acadêmico está tentando realizar um plebiscito para escolha do logotipo do curso, dentre 3 propostas. Faça o programa que implementa a “urna eletrônica”, a qual vai contabilizar os votos dos estudantes e professores em cada logotipo, os votos brancos e nulos; calcular os percentuais de votos válidos em cada logotipo e imprimir qual foi o logotipo vencedor. | ||
#Faça um programa-calculadora de 4 funções, ou seja, o usuário entra com dois números e estes são somados, subtraídos, multiplicados ou divididos. | #Faça um programa-calculadora de 4 funções, ou seja, o usuário entra com dois números e estes são somados, subtraídos, multiplicados ou divididos. | ||
#Faça o programa que lê dois números inteiros e conta quantos números existem entre os dois | |||
[[ExercInstruções1 |Resposta]] | |||
#Faça o programa que lê os parâmetros A e B da reta Y = A.X + B e gera 100 pontos, entre x=0 e x=10, de 0.01 em 0.01. | |||
[[ExercInstruções2|Resposta]] | |||
----------------------- | ----------------------- | ||
[[ MCO1870321| << Página do curso]] | [[ MCO1870321| << Página do curso]] | ||
Edição das 19h33min de 10 de maio de 2017
A INSTRUÇÃO DO-WHILE
A forma geral da declaração do-while é:
do comando; while(expressão_de_teste);
A interpretação é: "Faça comando enquanto expressão_de_teste for verdadeira".
O comando do-while faz quase o mesmo que o while, com a diferença que no primeiro, o loop é executado pelo menos uma vez, já que o teste da expressão é feito no final da interação.
Ou seja, se expressão_de_teste for falsa já na primeira iteração, comando é executado uma vez e em seguida a execução continua fora do loop, na próxima linha de comando.
Caso expressão_de_teste seja verdadeira, comando será executado até que esta se torne falsa.
Exercício:
Adapte o programa do número mágico, para uso com estrutura do-while.
A INSTRUÇÃO FOR
A forma geral da declaração for é:
for(inicialização;teste;incremento) comando;
Em sua forma mais simples, inicialização é uma instrução de atribuição (p.e.: i = 0) e é sempre executada uma única vez antes do laço ser inicializado.
O teste é uma instrução condicional que controla o laço.
Comando será executado até que teste seja falso.
A expressão de incremento (ou decremento) define a maneira como a variável de controle do laço será alterada a cada iteração.
Ex:
for( i = 0; i < 5; i++) -> Para i de 0 até 4:
j++; -> incrementa j a cada interação e incrementa i
for(i = 5; i > 0; i--) -> Para i de 5 até 0:
j = j * 2; -> novo valor de j é j * 2 e decrementa i
for(;;)
{ ... } -> Loop eterno
for(i = 0; i< 5; i++) -> É equivalente a for (i = 0; i< 5; j++, i++);
j++;
Exercícios
- Faça um programa que imprima os números de 1 a 10, utilizando:
- comando while,
- comando do-while,
- comando for.
- Faça um programa que imprima os números de 0 a 9, de 2 em 2, utilizando o comando for.
- Faça um programa que imprima o fatorial de um número solicitado ao usuário, utilizando o comando while.
A INSTRUÇÃO SWITCH
A forma geral da declaração switch é:
switch (exp_int)
{ case rotulo1:
comando1
case rotulo2:
comando2
case rotulo3:
comando3
...
default:
comandon
}
* Os comandos comando1, comando2, etc e a declaração default são opcionais no bloco.
Este comando testa o valor da expressão inteira exp_int, comparando-a com rotulo1, rotulo2, etc, até encontrar um rótulo que se iguale.
Quando encontra, começa a executar de cima para baixo os comandos comando1, comando2, etc, até o final do bloco.
Se não encontra, executa o comando do bloco default, isto é, comandon.
Exemplo:
switch (i)
{ case 1: j = j + 5;
case 2:
case 3: j = j + 3;
}
Valor de i Comandos executados
1 j = j + 5; e j = j + 3;
2 ou 3 j = j + 3;
qualquer outro nenhum.
Utiliza-se a instrução break para que apenas o comando referente a cada rótulo seja executado.
Exemplo:
switch ( i )
{ case 1: j = j + 5;
break;
case 2:
case 3: j = j + 3;
break;
default: j = j+ 1;
}
Valor de i Comandos executados
1 j = j + 5;
2 ou 3 j = j + 3;
qualquer outro j = j + 1;
Exercícios
/*************************************************************************/
/**** Programa que imprime números de 1 a 10 utilizando laço do-while ****/
/************************************************************************/
#include <stdio.h>
void main(void)
{ int contador = 1;
do
{ printf("%d\n", contador);
contador++;
}
while (contador <= 10);
}
/*************************************************************************/
/*** Programa que imprime números de 1 a 10 utilizando laço for *****/
/*************************************************************************/
#include <stdio.h>
void main(void)
{ int contador;
for( contador = 1; contador <= 10; contador++)
printf("%d\n", contador);
}
/*************************************************************************/
/**** Programa que imprime números de 0 a 9, de 2 em 2 *****/
/************************************************************************/
#include <stdio.h>
void main(void)
{ int i;
for ( i = 0; i <= 9; i+=2)
printf("%d\n", i);
}
/*************************************************************************/
/***** Programa que calcula o fatorial de um número *******/
/************************************************************************/
#include <stdio.h>
#include <conio.h>
void main(void)
{ int numero, j;
char ch;
double fat=1;
for(;;)
{ fat=1;
printf("Entre com um número positivo: \n");
scanf("%d", &numero);
if(numero== 0 || numero == 1)
printf("O fatorial de %d é: %.0f\n", numero, fat);
else
{ j = numero;
while(j)
{ fat *= j;
j--;
}
printf("O fatorial de %d é: %.0f\n", numero, fat);
}
}
}
/*************************************************************************/
/*** Programa que gera a tabuada de 2 a 9 ******/
/************************************************************************/
#include <stdio.h>
void main(void)
{ int i, j, k;
printf("\n");
for (k = 0; k <= 1; k++)
{ printf("\n");
for( i = 1; i < 5; i++)
printf("TABUADA DO %3d ", i+4*k+1);
printf("\n");
for( i = 1; i <= 9; i++)
{ for( j = 2 + 4 *k; j <= 5 + 4*k; j++)
printf("%3d x %1d = %3d\t", j, i, j*i);
printf("\r");
}
}
}
/*******************************************************************/
/**** Programa da feira de frutas (uso do switch-case) ****/
/******************************************************************/
#include <stdio.h>
#include <conio.h>
void main(void)
{ int i, opcao;
printf("\n");
for(i = 1; i <= 53; i++)
printf("*");
printf("\n*****\t\tPROGRAMA DA FEIRA!!\t\t*****\n");
for(i = 1; i <= 53; i++)
printf("*");
printf("\n\n\t\t Escolha sua opção: \n");
printf("\n\n\t\t(1) Uva; \n");
printf("\n\t\t(2) Maça; \n");
printf("\n\t\t(3) Banana; \n");
printf("\n\t\t(4) Laranja; \n");
scanf("%d",&opcao);
switch(opcao)
{ case 1: printf("O cacho de uvas custa R$1.00");
break;
case 2: printf("A unidade de maças custa R$0.50");
break;
case 3: printf("O kilo de bananas custa R$0.70");
break;
case 4: printf("A duzia de laranjas custa R$0.90");
break;
default: printf("Desculpe, mas não temos esta fruta!!");
}
}
Exercícios
- Um certo Centro Acadêmico está tentando realizar um plebiscito para escolha do logotipo do curso, dentre 3 propostas. Faça o programa que implementa a “urna eletrônica”, a qual vai contabilizar os votos dos estudantes e professores em cada logotipo, os votos brancos e nulos; calcular os percentuais de votos válidos em cada logotipo e imprimir qual foi o logotipo vencedor.
- Faça um programa-calculadora de 4 funções, ou seja, o usuário entra com dois números e estes são somados, subtraídos, multiplicados ou divididos.
- Faça o programa que lê dois números inteiros e conta quantos números existem entre os dois
- Faça o programa que lê os parâmetros A e B da reta Y = A.X + B e gera 100 pontos, entre x=0 e x=10, de 0.01 em 0.01.
| << Aula 11 - Instruções IF, IF-ELSE e WHILE | AULA 12 - Microcontroladores | Aula 13 - Funções >> |
|---|