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.

Resolução de Exercício

Resolução do exercício do post anterior:

algoritmo "diaDaSemana"

var
    dia: inteiro
    diaDaSemana: caractere

    funcao diaSemana( d: inteiro) : caractere

    var
        ds: caractere
    inicio
        escolha d
            caso 1
                 ds <- "Domingo"
            caso 2
                 ds <- "Segunda-feira"
            caso 3
                 ds <- "Terça-feira"
            caso 4
                 ds <- "Quarta-feira"
            caso 5
                 ds <- "Quinta-feira"
            caso 6
                 ds <- "Sexta-feira"
            caso 6
                 ds <- "Sábado"
            outrocaso
                 ds <- "Valor inválido"
            fimescolha
           
            retorne ds
    fimfuncao
inicio
        escreval( "Insira um número entre 1 e 7" )
        leia( dia )
        diaDaSemana <- diaSemana( dia )
        escreval( "O dia da semana é ", diaDaSemana )
fimalgoritmo


Instrução de Seleção Múltipla (continuação)

Repetir o exercício do post anterior mas usando uma função em vez do procedimento. A função deverá devolver uma cadeia de caracteres com o nome do dia da semana.

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

 


Instrução de Seleção Múltipla

Procurar no tutorial sobre a linguagem VisuAlg (Ajuda -> A Linguagem VisuAlg) a instrução de seleção múltipla. Aplicar esta instrução na resolução do exercício seguinte:

- O programa principal lê um número compreendido entre 1 e 7, inclusive. Se o número lido estiver fora deste intervalo, o programa apresenta uma mensagem de erro.

- Dentro do programa principal, no caso de ter sido lido um número dentro do intervalo pretendido, é chamado um subprograma do tipo procedimento que recebe o número lido como parâmetro e escreve o dia da semana correspondente. Por exemplo, ao número 1 corresponde "Domingo", ao número 2, "Segunda-feira" e assim sucessivamente.

Apresentar a resolução deste exercício num comentário a este post.