quinta-feira, 27 de novembro de 2014

Exercício no VisuAlg - Funções e Procedimentos

Alterar o exercício deste post usando uma função para calcular a média e um procedimento para escrever a classificação qualitativa.

Cada aluno coloca a resolução num comentário a este post.

Procedimento: Exemplo


Subprogramas


Links para documentação sobre subprogramas (VisuAlg):

Funções

Procedimentos

terça-feira, 25 de novembro de 2014

Exercício no VisuAlg

Fazer um algoritmo no VisuAlg para ler 3 notas (entre 0 e 20) de um aluno, calcular a média das 3 notas e apresentar a classificação qualitativa:

- média entre 0 e 4: Mau
- média entre 5 e 9: Medíocre
- média entre 10 e 13: Suficiente
- média entre 14 e 17: Bom
- média entre 18 e 20: Muito Bom

Exercícios Resolvidos em VisuAlg

Lista de exercícios resolvidos em VisuAlg.

Vídeo com exercícios resolvidos:


Algoritmos no VisuAlg

Instalar o ambiente de desenvolvimento em Português Estruturado VisuAlg.



Converter para o VisuAlg as três resoluções (com os ciclos enquanto, repita e para)  do exercício que está resolvido neste post.


quinta-feira, 20 de novembro de 2014

Módulo 3 - Exercício 3 (Resolução)

Resolução com ciclo para:

programa sequencia
    declaracoes
    inteiro x, n, p, max

inicio
    escreva ("\nInsira um número inteiro: ")
    leia (x)
     escreva ("\nInsira o número de valores a gerar: ")
    leia (max)

     para n<-1 ate max passo 1

        se (x mod 2 = 0) entao
            x<-x div 2
        senao
            x<-3*x+1
        fimse
        escreva( "\n", x )
    fimpara
fim

Módulo 3 - Exercício 3


O conjunto de regras seguintes permite gerar uma sequência de números:

1. Ler um número inteiro; 
2. Se for ímpar, multiplica-se por 3 e soma-se 1; 
3. Se for par, divide-se por 2. 
Repetir os passos 2 e 3 para cada número obtido. 

Fazer um programa no WebPortugol que leia o primeiro número inteiro (passo 1) e o número de vezes que os passos 2 e 3 são repetidos.

Descobrir o que é que as sequências de números gerados têm de especial.  Responder com um comentário a este post, colocando também o programa resolvido.


Resolução Módulo 3 - Exercício 2

Com um ciclo para
programa tabuada
     declaracoes
     inteiro x, n, p
inicio
     escreva("Insira o número (entre 1 e 9):")
            leia( x )
     se (x >= 1 e x <= 9) entao
          para n<-1 ate 10 passo 1
               p<-x*n
               escreva( "\n", x, " x ", n, " = ", p )
          fimpara
     senao
          escreva( "\nNúmero inválido." )   
     fimse
fim


 Com um ciclo enquanto:

programa tabuada
     declaracoes
     inteiro x, n, p
inicio
     escreva ("Insira um número entre 1 e 9: ")
     leia (x)  
     se (x>0 e x<10) entao

         n<-1
         enquanto (n<=10) faca
              
p<-x*n

               escreva( "\n", x, " x ", n, " = ", p )
               n<-n+1
          fimenquanto
     senao      

          escreva( "\nNúmero inválido." )

      fimse
fim


Com um ciclo repita:

programa tabuada
    declaracoes

    inteiro x, n, p

inicio
    escreva ("Insira um número entre 1 e 10: ")
    leia (x)
    se (x>0 e x<=10) entao 

         n<-1

         repita
              p<-x*n
             
escreva( "\n", x, " x ", n, " = ", p )
              n<-n+1

         enquanto(n<=10)

    senao      
         escreva( "\nNúmero inválido." ) 

    fimse
fim


NOTAS:
  • Os três ciclos (para, repita e enquanto) são equivalentes;
  • Qualquer ciclo para pode ser convertido num ciclo repita ou enquanto;
  • Nem todos os ciclos repita ou enquanto podem ser convertidos em ciclos para.


terça-feira, 18 de novembro de 2014

Módulo 3 - Exercício 2 (continuação)

Alterar o exercício anterior de forma a que sejam apresentadas todas as tabuadas dos números pares, compreendidos entre 2 e 20 (inclusive).

A resolução é individual. Cada aluno coloca a sua resolução num comentário a este post.

Módulo 3 - Exercício 2

Elabore um algoritmo em WebPortugol que leia um número inteiro entre 1 e 9 a apresenta a tabuada de multiplicação respetiva.

Por exemplo, se o programa ler o número 5, deverá escrever,

5 x 1  = 5
5 x 2  = 10
5 x 3  = 15 
5 x 4  = 20 
5 x 5  = 25
5 x 6  = 30
5 x 7  = 35
5 x 8  = 40
5 x 9  = 45
5 x 10 = 50     

A resolução é individual. Cada aluno coloca a sua resolução num comentário a este post.

Módulo 3 - Resolução Exercício 1

Resolução do exercício 1 em WebPortugol

programa p
    declaracoes
    inteiro n, soma
inicio
    soma<-0
    para n<-2 ate 100 passo 3
        soma <- soma + n
    fimpara
    escreva( "SOMA = ", soma )
fim


Módulo 3 - Exercício 1


Representar este algoritmo através de um fluxograma.

quinta-feira, 13 de novembro de 2014

Módulo 2 - Exercício de Revisão


Resolver este exercício, representando o algoritmo em

1. Fluxograma (em papel)

2. WebPortugol


terça-feira, 11 de novembro de 2014

Exercício Módulo 2 - Instruções Condicionais (2)

Escreva um algoritmo que calcule o valor do prémio de um seguro automóvel em função dos seguintes parâmetros: 

  • Preço base do seguro = 50,00€ 

  • Idade da viatura (acréscimo ao preço base):
            - Entre 6 e 10 anos = 40,00€


            - Até 5 anos = 25,00€ 

            - Entre 11 anos e 15 anos = 50,00€
            - 16 ou mais anos = 80,00€
  • Se a idade do condutor for inferior a 25 anos ou maior ou igual a 60 anos, haverá um agravamento adicional de 25€.
O algoritmo, lê a idade da viatura e a idade do condutor e apresenta o valor total do prémio do seguro.
Representar o algoritmo em:

1. Fluxograma (resolver em papel)
2. Português Estruturado - WebPortugol (colocar na plataforma - Módulo 2, Exercício Instruções Condicionais 2)

Este exercício é para ser resolvido individualmente

Exercícios com Fluxogramas (Revisão)

Representar por um fluxograma os algoritmos seguintes (cada aluno faz um dos exercícios):


quinta-feira, 6 de novembro de 2014

Exercício Módulo 2 - Trabalho para Avaliação

Considere o exercício seguinte:

1. Um posto de combustíveis vende os seus produtos, com a seguinte tabela de descontos:

Gasóleo
Até 10 litros, desconto de 1%
10 litros ou mais e menos de 20 litros, desconto de 2%
20 litros ou mais, desconto de 3%
Gasolina 95
Até 10 litros, desconto de 1,5%
10 litros ou mais e menos de 20 litros, desconto de 3%
20 litros ou mais, desconto de 4%

Escreva um algoritmo que leia o número de litros vendidos e o tipo de combustível (utilizar o carácter D para gasóleo e G para gasolina), calcule e escreva o valor a ser pago pelo cliente sabendo-se que o preço do litro do gasóleo é de 1,197€ e o da gasolina é de 1,378€.

Apresentar o algoritmo em fluxograma.

2. Fazer o algoritmo anterior no WebPortugol, acrescentando o seguinte:
  • O programa deve ler repetidamente os dados de entrada (número de litros vendidos e o tipo de combustível) para vários clientes, até ser lido um número de litros igual a 0. Por cada cliente, o programa apresenta uma mensagem com o número de litros, o tipo de combustível e o valor a pagar, por exemplo, 35 litros de gasóleo pelo preço de 40,64€.
  • Se o quantidade total de combustível, de qualquer tipo, atingir os 500 litros, o programa termina. 
  • Se for lido um número de litros negativo, o programa apresenta uma mensagem de erro e pede para inserir um novo valor.
  • Se for inserido para o tipo de combustível um carácter diferente de D ou G, o programa apresenta uma mensagem de erro e pede para inserir um novo valor.

As respostas (fluxograma + programa) deverão ser colocadas num só ficheiro (em formato PDF ou doc) e submetidas na plataforma da escola (Módulo 2 - Exercício Instruções Cíclicas). 

O nome do ficheiro tem de conter o nome do grupo

Deve ser submetida uma resposta por grupo.

terça-feira, 4 de novembro de 2014

Continuação Exercício Módulo 2 - Instruções Cíclicas (3)

Alterar o exercício do post anterior de forma a que no início do programa seja pedido o número de valores inteiros que serão lidos. Ou seja, em vez de serem 20 valores inteiros, é o utilizador que indica quantos valores devem ser lidos.


Resolução Exercício Módulo 2 - Instruções Cíclicas (3)



programa numeros
      declaracoes
      inteiro numero, soma, maior, menor, contador
      real media

inicio
      // inicializacao de variáveis
      contador <- 0
      soma <- 0
      // leitura do primeiro número
      escreva( "Insira um número inteiro: " )
      leia( numero )

      // inicializa o contador em 1
      contador <- 1

      // inicializa as variáveis maior e menor
      // como sendo iguais ao primeiro número lido
      soma  <- numero
      maior <- numero
      menor <- numero

      // inicia a leitura dos restantes números
      // (segundo número até ao vigésimo número)
      enquanto ( contador < 20 ) faca
         
           // pede para inserir um novo número
           escreva( "\nInsira um número inteiro: " )
           leia( numero )

           // aumenta o contador por cada numero lido
           contador <- contador + 1

         // acrescenta à soma o numero lido
           soma <- soma + numero

       // verifica se o numero lido é o maior
           se ( numero > maior ) entao
                maior <- numero
           senao
                // senao, verifica se é o menor
                se ( numero < menor ) entao
                       menor <- numero
                fimse
           fimse
      fimenquanto

      // calcula a média dos 20 números
      media <- soma / 20

      // escreve os resultados pretendidos
      escreva( "\nMaior numero lido: ", maior )
      escreva( "\nMenor numero lido: ", menor )
      escreva( "\nSoma dos números lidos : ", soma )
      escreva( "\nMédia dos números lidos: ", media )
fim

Exercício Módulo 2 - Instruções Cíclicas (3)

Resolver no WebPortugol o exercício seguinte:

Ler uma sequência de 20 números inteiros. Após a leitura dos 20 números, apresentar os resultados seguintes:
  • Maior número lido;
  • Menor número lido;
  • Soma de todos os números lidos;
  • Média dos 20 números lidos.
Este exercício é resolvido individualmente.