terça-feira, 1 de maio de 2012

Maratona de Programação - Parte 1

Resolução dos 3 primeiros problemas:


1.    Elabore um algoritmo que calcule várias vezes a área de um circulo, onde o dado de entrada é o raio. O algoritmo deve perguntar se o usuário quer continuar ou não calculando áreas de outros círculos.


Algoritmo


PROGRAMA_AREACIRCUNFERENCIAS
    DECLARE area, raio, pi: NUMERICO
    DECLARE op: LITERAL
INICIO
    op ← 's'
    pi ← 3,1415
    ENQUANTO (op = 's')
                           LEIA(raio)
                           area ← pi * (raio * raio)
                           ESCREVA(area)
                           ESCREVA("Deseja continuar (s/n)?")
                           LEIA(op)
    FIMENQUANTO
FIM


Código em C++


2.    Elabore um algoritmo que determine o menor valor de um conjunto de dados passados pelo teclado. O algoritmo para quando for digitado -1;


Algoritmo


PROGRAMA_MENORVALOR
    DECLARE valor, menorvalor: NUMERICO
INICIO
    LEIA(valor)
    menorvalor ← valor
    ENQUANTO (valor ≠ -1)
                           LEIA(valor)
                           SE (valor < menorvalor)
                           ENTAO menorvalor ← valor
    FIMENQUANTO
    ESCREVA(menorvalor)
FIM


Código em C++


3.    Suponha que a população do Brasil seja menor que a população da França (entrada via teclado) e que o Brasil tenha taxa de crescimento anual de 4% ao ano e a França de 2%. Dado um ano (via teclado) calcule o ano em que a população do Brasil será maior que a da França.


Algoritmo


PROGRAMA_CRESCIMENTOPOPULACIONAL
    DECLARE ano, franca, brasil: NUMERICO
INICIO
    LEIA(ano)
    LEIA(brasil)
    LEIA(franca)
    ENQUANTO (brasil < franca)
                           brasil ← brasil + (0,04 * brasil)
                           franca ← franca + (0,02 * franca)
                           ano ← ano + 1
    FIMENQUANTO
    ESCREVA(ano)
FIM


Código em C++


Observação: Se você, assim como eu, não se contentou com o "suponha..." do enunciado, pode-se criar uma estrutura SE para possibilitar que a população Francesa inicial seja maior que a Brasileira. Confira:


Código em C++


Note também que na implementação eu alterei um pouco o cabeçalho, porém o efeito é o mesmo.

Nenhum comentário:

Postar um comentário