terça-feira, 5 de maio de 2015

Exercícios 1-3 da lista 2

1. Escreva uma função chamada MATEMATICA que receba dois números inteiros como parâmetros. O primeiro parâmetro representa a operação que deve aplicada. Já o segundo, representa o parâmetro que será passado à operação selecionada. As operações que poderão serão realizadas são as funções implementadas nas questões 1 (Dobra)), 6 (Cubo()) e 7 (Metade()) da lista de exercícios I. Assim, as seguintes chamadas de função

matematica(1,4)
matematica(6,3)
matematica(7,4)

deverão retornar os valores 8 (dobro de 4), 9 (3 ao cubo) e 2 (metade de 2). Implemente um programa que utilize a função MATEMATICA. Este programa deve chamar todas as operações.

algoritmo "Matematica"
var
   r : real
funcao dobro (n:real):real
inicio
      n <- n*2
      retorne n
fimfuncao
funcao cubo (n:real):real
inicio
      n <- (n*n*n)
      retorne n
fimfuncao
funcao metade (n:real):real
inicio
      n <- n/2
      retorne n
fimfuncao
funcao matematica (q,n:real):real
inicio
      escolha q
              caso 1
                   n <- dobro(n)
              caso 6
                   n <- cubo(n)
              caso 7
                   n <- metade(n)
              outrocaso
                       escreval("Valor inválido")
      fimescolha
      retorne n
fimfuncao
inicio
      r <- matematica(1,4)
      escreval(r)
      r <- matematica(6,3)
      escreval(r)
      r <- matematica(7,4)
      escreval(r)
fimalgoritmo

2. Suponha um jogo de plataforma onde, cada vez que seu personagem coleta um life, sua energia é aumentada em n pontos. Suponha, ainda, que neste jogo a pontuação máxima do life do personagem é de 100 pontos. Escreva um programa que escolha, de forma aleatória, a quantidade inicial de pontos de energia que seu jogador possui (quant_de_energia) e a quantidade que será aumentada (quant_aumentada) quando o personagem pegar o life. No primeiro caso, os valores devem ser entre 0 e 100. Já no segundo, os valores devem ser entre 10 e 20.

Este programa deve possuir uma função que calcula a nova quantidade de energia após a coleta do life e este valor deve ser impresso pelo programa principal. Mas lembre-se: a quantidade de energia nunca poderá ultrapassar 100 pontos.

algoritmo "Life"
var
   qnt_energia, qnt_aumentada : inteiro
funcao life(n, r : inteiro):inteiro
inicio
      n <- n+r
      se n>100 entao
         n <- 100
      fimse
      retorne n
fimfuncao
inicio
      aleatorio 0,100
      leia (qnt_energia)
      aleatorio 10,20
      leia (qnt_aumentada)
      qnt_energia <- life (qnt_energia,ant_aumentada)
      escreva("Life: ", qnt_de_energia)
fimalgoritmo

*Me compliquei aqui por não saber como usar o comando aleatório em portugol.

3. Em programas de modelagem 3D, é comum partir de formas geométricas básicas para estruturas mais complexas. Uma dessas formas é a esfera. Em portugol, crie uma função que, dado um valor de raio, retorne o volume de uma esfera. Crie também um programa para testar esta função.

algoritmo "Esfera"
var
   raio, volume : real
funcao esfera (r:real):real
var v:real
inicio
      v <- ((((r*r*r)*3.14)*4)/3)
      retorne v
fimfuncao
inicio
      leia(raio)
      volume <- esfera (raio)
      escreva (volume)
fimalgoritmo

0 comentários:

Postar um comentário