Vous êtes sur la page 1sur 8

Aula 13

Introduo ao assunto
Determinados problemas envolvendo programao de computadores podem necessitar de
tcnicas de contagem ou temporizaes. Para este fim, um programador pode implementar um
contador ao longo de seu programa.
Contadores so trechos de programas que permitem ao computador realizar contagens,
progressivas ou regressivas, ao longo do tempo. Todo contador pode ser implementado a partir do
uso de comandos de repetio e comandos de (incremento ou decremento).
A lgica da implementao de um contador ocorre da seguinte forma: inicialmente
utilizada uma varivel para que o programa possa armazenar ao longo do tempo o valor atual da
contagem. Depois de definida a varivel, um valor inicial lhe atribudo, este valor representa o
valor onde iniciar a contagem. Alm disso, uma condio de parada utilizada junto a uma
estrutura de repetio, definindo o valor final da contagem. Por fim, ENQUANTO o valor final da
contagem no for atingido, o programa ir incrementar/decrementar o valor de contagem.
Nesta aula, a tcnica bsica de contadores ser apresentada utilizando o comando de
repetio WHILE.

Aplicao do contedo
Contadores so utilizados como controladores do nmero de vezes que um programa deve
repetir alguns contedos e como temporizadores (aguarda um tempo) para determinados problemas.
Alm do uso em programas, existem vrios outros sistemas (hardware e software) que se utilizam
contadores, como por exemplo: circuitos digitais, relgios, cronmetros entre outros.

Roteiro
Contedo
Comando incremento/decremento

O comando de incremento tem por objetivo incrementar (somar 1) o valor atual contido em
uma dada varivel. Aps a execuo deste comando a varivel ter seu valor aumentado em uma
unidade.
O comando de decremento tem objetivo similar ao comando de incremento, mas a diferena
que este decrementa (subtrai 1) o valor da varivel aps sua execuo.
Sintaxe em C++:
varivel ++;

(incremento)

varivel --;

(decremento)

Construindo contadores

A implementao de um contador segue os seguintes requisitos necessrios:

Varivel contadora

Valor inicial de contagem

Condio de parada

Passo (incremento/decremento) de contagem

Exemplo 1:
Este programa exemplifica a implementao de um contador progressivo com valor inicial 0 e
valor final 9. Realizando 10 repeties de contagem. Este programa demonstra somente os
comandos NECESSRIOS para a implementao do contador. Sendo assim, no h absolutamente
nenhum outro comando que no seja utilizado no contador.
Varivel contadora
int i;
Valor inicial de contagem
i = 0;
Condio de parada
while( i < 10)
Passo de contagem
i++;
Observe a condio de parada: ENQUANTO o valor for MENOR ao valor final, visto que o
contador progressivo.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[])
{
int i;
i = 0;
while( i < 10)
{
i++;
}
system(pause);
return EXIT_SUCCESS;
}
Exemplo 2:
Este programa exemplifica a implementao de um contador regressivo com valor inicial 10 e
valor final 0. Realizando 11 repeties de contagem.
Varivel contadora
int c;
Valor inicial de contagem

c = 10;
Condio de parada
while( c >= 0)
Passo de contagem
c--;
Observe a condio de parada: ENQUANTO o valor for MAIOR ao valor final, visto que o
contador regressivo.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[])
{
int c;
c = 10;
while( c >= 0)
{
c --;
}
system(pause);
return EXIT_SUCCESS;
}
Exemplo 3:
Este programa modifica o programa anterior fazendo com que o prprio usurio defina o valor de
contagem inicial. Neste caso, ao invs do valor ser um valor contante ao longo do programa, o
programa l este valor a partir do teclado.
Varivel contadora
int c;
Valor inicial de contagem
cin >> c;
Condio de parada
while( c >= 0)
Passo de contagem
c--;
Observe a condio de parada: ENQUANTO o valor for MAIOR ao valor final, visto que o
contador regressivo.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[])

{
int c;
cout << \nValor inicial da contagem : ;
cin >> c;
while( c >= 0)
{
cout << c << \n;
c --;
}
system(pause);
return EXIT_SUCCESS;
}
Exemplo 4:
Neste programa um contador usado para implementar um relgio de contagem progressiva,
apresentando minutos e segundos. A lgica implementada descrita a partir da seguinte forma:
Um contador implementado realizando contagens progressiva entre 0 a 3600, sendo este
incremento a cada 1 segundo (observe o comando _sleep). O contador representa o valor
acumulado em segundos do relgio.
Para o clculo do formato minutos : segundos utilizada o princpio de converso j conhecido:
1 min = 60 segundos.
Ou seja, para encontrar o valor em minutos, basta dividir o contador por 60 e o resto da diviso
representa os segundos que passaram. Exemplo:
contador = 140;
minutos = 140 / 60 = 2 (diviso inteira)
segundos = 140 % 60 = 20 (resto da diviso entre 140 e 60).
Deste modo com o valor convertido, o programa apresenta o horrio no formato minuto :
segundos.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[])
{

int segundos, minutos, contador;


contador = 0;
while( contador < 3600)
{
minutos = contador / 60;
segundos = contador % 60;
cout << minutos << : << segundos;
_sleep(1000);
contador++;
system(cls);
}
system(pause);
return EXIT_SUCCESS;
}

Sntese
Tipo

Comando

Sintaxe em C/C++

Exemplos de utilizao

Expresses Combinaes entre variveis, constantes e operadores

Relacionais

Aritmticos

Condicional

if( expresso )

if( a == 0)

Varivel

tipo identificador

int a, variavel;

Escrita

cout

cout << Texto a ser impresso;

Leitura

cin

cin >> variavel;

Soma

resultado = a + b;

Subtrao

resultado = temp 10;

Multiplica
o

area = lado*lado;

Diviso

metade = valor/2;

Atribuio

entrada = 10;

Parnteses

()

resultado = (a + b) *2;

Igual a

==

a == 5

Diferente de

!=

b != 10

Maior que

>

10 > n1

Menor que

<

n1 < 3

Maior ou
igual

>=

n1 >= n2

Menor ou
igual

<=

k <= a

Repetio Lao

while( expresso )

while( k >= 0)

Exerccios extras
Observao : Lembre-se dos tipos de dados (int, float, double).
Importante: na linguagem C/C++ no existe operador para potenciao, ou seja, um nmero
elevado ao quadrado deve ser escrito como um produto. Exemplo:
A expresso
y =x 2 ,
na matemtica
y = x*x;
em C/C++.
1) Faa um contador que conte de 0 a 100.
2) Faa um contador que conte de 1000 a 0 regressivamente.
3) Faa um programa em que o usurio digita o valor final da contagem e este deve contar de 0 at
este valor de maneira progressiva. Enquanto o valor final for menor que 0, o programa deve
solicitar um novo valor.
4) Faa um programa em que o usurio digita o valor inicial e o valor final da contagem.
5) Usando o operador resto da diviso (%) faa um programa que mostre na tela todos os mltiplos
de 5 no intervalo entre 0 a 100, use um contador para este fim.
6) Faa um programa que represente uma bomba, ele deve comear em um tempo de 1 minuto e
decrementar at 0, quando o valor for menor que zero, o programa deve imprimir na tela
BOOOM!!!
7) Use o comando _sleep para criar um temporizador de apresente a mensagem
AGUARDE
A cada 2 segundos repetindo a impresso 10 vezes.
8) Faa um programa que conte progressivamente de 0 at 1000 e depois regressivamente
novamente de 1000 at 0.
9) Exiba a tabuada do 6 na tela usando o comando WHILE. Use um contador de 0 a 10 para este
fim.

10) Usando um contador para o tempo, crie um programa que calcule a posio (x) de um mvel,
cuja posio inicial zero, a cada instante. O programa deve ler o valor da velocidade e calcular a
nova posio segundo a frmula:

x=vt
A funo acima calcula a posio x de um mvel no tempo t que partiu da posio 0.

Anotaes

Vous aimerez peut-être aussi