terça-feira, 16 de dezembro de 2014

Árvore de Natal

Fazer no VisuAlg um programa que desenhe uma Árvore de Natal:




Há duas possibilidades de resolução:

1. Desenhar apenas a árvore que é apresentada na figura.

2. Desenhar uma árvore, com uma altura definida pelo utilizador.

Colocar a resolução num comentário a este post.

terça-feira, 9 de dezembro de 2014

Módulo 3 - Trabalho 2

Fazer um programa no VisuAlg que leia um número inteiro positivo, calcule a soma dos seus algarismos, conte o número de algarismos que o número possui e escreva o seu inverso (inversão da ordem dos algarismos que constituem o número). O programa deverá ainda dizer se o número é ou não uma capícua.

O programa deve validar se o número inserido é positivo e deverá ter uma interface baseada num menu com as seguintes opções

(1) Inserir um número
(2) Soma dos algarismos
(3) Número de algarismos
(4) Número inverso
(5) Verificar se é capícua
(6) Sair

As opções 2 a 5 devem chamar subprogramas que devolvem o resultado pretendido.

Por exemplo, o número 12321 tem 5 algarismos, a soma dos algarismos é 9 e o número inverso é igual ao número original porque é uma capícua (o número é igual lido da direita para a esquerda e da esquerda para a direita).

Cada grupo de 2 alunos coloca a resolução deste exercício na plataforma da escola (módulo3 - "Programação Estruturada" -> Trabalho 2).


quinta-feira, 4 de dezembro de 2014

Jogo "Adivinhe o Número"


Fazer no VisuAlg o programa seguinte:

O utilizador pode fazer vários jogos com o computador. Em cada jogo o utilizador tem de adivinhar um número gerado aleatoriamente pelo programa, compreendido entre 1 e 100. Existe um número máximo de tentativas para acertar no número. Por cada tentativa do utilizador, o programa indica se o número inserido pelo utilizador é maior, menor ou igual ao número gerado. O jogo termina quando o número inserido pelo utilizador for igual ao número gerado ou quando for atingido o número máximo de tentativas. No primeiro caso, o programa apresenta também o número de tentativas que foram necessárias para acertar no número gerado. 

Quando o utilizador adivinha o número, ganha o jogo e marca 1 ponto. Quando não consegue adivinhar o número, ganha o computador que marca 1 ponto.

O utilizador pode fazer vários jogos com o computador até escolher a opção para terminar o programa. Antes de começar um novo jogo pode ver as pontuações.

É necessário definir o nome do utilizador e o número máximo de tentativas permitidas.

O programa deverá ter um menu com as opções seguintes:

(1) Inserir o nome do jogador
(2) Definir o número máximo de tentativas
(3) Iniciar um novo jogo
(4) Ver pontuações
(5) Fim

Este programa é para ser resolvido por grupos de 2 alunos. Cada grupo coloca a sua resolução na plataforma da escola em Módulo 3 - Programação Estruturada -> Jogo "Adivinhe o Número".
 

Programa "Calculadora"

Fazer no VisuAlg uma calculadora para números reais que tenha as operações de soma, subtração, multiplicação e divisão. O programa deverá ter uma interface com o utilizador baseada num menu de opções:

(1) Inserir os operandos
(2) Soma
(3) Subtração
(4) Multiplicação
(5) Divisão
(6) Sair

As opções 2 a 5 devem chamar, cada um, uma função que efetue o cálculo, retornando o resultado que é escrito no programa principal. O menu de opções é definido no programa principal.

VisuAlg - Menu de Opções

Exemplo de um menu de opções para ser usado na interface de um programa. Este programa não faz nada de concreto, apenas exemplifica como deve ser a estrutura de um menu de opções.

NOTA: No VisuAlg existe o ciclo repita ... ate que é diferente do ciclo repita ... enquanto do WebPortugol.


algoritmo "menu_de_opcoes"

var
     opcao: inteiro    


     procedimento subprograma1( op1: inteiro )
     inicio
           escreval( "Escolhida a opção ", op1 )
     fimprocedimento
    
     procedimento subprograma2( op2: inteiro )
     inicio
           escreval( "Escolhida a opção ", op2 )
     fimprocedimento
    
     procedimento subprograma3( op3: inteiro )
     inicio
           escreval( "Escolhida a opção ", op3 )
     fimprocedimento
    
     procedimento subprograma4( op4: inteiro )
     inicio
           escreval( "Escolhida a opção ", op4 )
     fimprocedimento
    
inicio

      repita
            escreval( "(1) Opção 1" )
            escreval( "(2) Opção 2" )
            escreval( "(3) Opção 3" )
            escreval( "(4) Opção 4" )
            escreval( "(5) Sair" )
           
            escreva( "Insira a sua opção: " )
            leia( opcao )
           
            escolha opcao
                caso 1
                    subprograma1( opcao )
                caso 2
                    subprograma2( opcao )
                caso 3
                    subprograma3( opcao )
                caso 4
                    subprograma4( opcao )
                caso 5
                    escreval( "O menu vai terminar ..." )
                outrocaso
                    escreval( "Opção inválida!" )
            fimescolha
           
      ate opcao = 5
     
fimalgoritmo

terça-feira, 2 de dezembro de 2014

Exercício com Subprogramas - Numeração Romana

Fazer um programa no VisuAlg que dado um número entre 1 e 9 escreva a correspondente representação em numeração romana.

O programa principal deve ler o número, validar se está dentro do intervalo pretendido e em seguida chamar uma função, passando o número lido como parâmetro. A função retorna a cadeia de caracteres correspondente à representação em numeração romana. Se o número lido estiver fora do intervalo, o programa principal apresenta uma mensagem de erro.

Apresentar a resolução num comentário a este post.

Exercício com Subprogramas - Tabuada

Fazer no VisuAlg o exercício da tabuada que foi apresentado neste post.

O programa deve agora no programa principal ler o número (entre 1 e 10) e depois chamar um procedimento, passando o número lido como parâmetro, que escreve a tabuada desse número. O programa principal deve validar se o número lido está dentro do intervalo pretendido. Em caso contrário, apresenta uma mensagem de erro.

Responder com um comentário a este post.