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
Blogue de Programação de Sistemas Informáticos da Turma TGP2, 2014/2015
Mostrar mensagens com a etiqueta webportugol. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta webportugol. Mostrar todas as mensagens
quinta-feira, 20 de novembro de 2014
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.
Etiquetas:
instruções cíclicas,
webportugol
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:
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.
Etiquetas:
instruções cíclicas,
webportugol
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.
Etiquetas:
instruções cíclicas,
webportugol
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.
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.
Etiquetas:
instruções cíclicas,
webportugol
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
programa p
declaracoes
inteiro n, soma
inicio
soma<-0
para n<-2 ate 100 passo 3
soma <- soma + n
fimpara
escreva( "SOMA = ", soma )
fim
Etiquetas:
instruções cíclicas,
webportugol
quinta-feira, 13 de novembro de 2014
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€
- 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.
Etiquetas:
Fluxogramas,
instruções condicionais,
webportugol
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.
Etiquetas:
Fluxogramas,
instruções cíclicas,
instruções condicionais,
webportugol
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.
Etiquetas:
instruções cíclicas,
webportugol
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
Etiquetas:
instruções cíclicas,
webportugol
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:
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.
Etiquetas:
instruções cíclicas,
webportugol
quinta-feira, 30 de outubro de 2014
Exercício Módulo 2 - Instruções Cíclicas (2)
Resolver no WebPortugol o exercício que já foi apresentado neste post, com as alterações seguintes:
- O programa deve pedir ao utilizador para inserir o nome;
- No final deve apresentar uma mensagem do género:
- O programa pede sucessivamente os dados de entrada (nome, peso e altura) até ser lido, para um utilizador, um peso e uma altura iguais a 0.
Etiquetas:
instruções cíclicas,
instruções condicionais,
webportugol
Resolução Exercício Módulo 2 - Instruções Cíclicas
Pares e ímpares com ciclo repita...enquanto
programa
pares_e_impares
declaracoes
inteiro x, r
inicio
repita
escreva( "\nInsira um número:
" )
leia( x )
se (x != 0 ) entao
r <- x mod 2
se (r = 0) entao
escreva( "\n", x,
" é par" )
senao
escreva( "\n", x,
" é ímpar" )
fimse
fimse
enquanto( x != 0 )
fim
Pares e ímpares com ciclo enquanto...faça
programa
pares_e_impares
declaracoes
inteiro x, r
inicio
escreva( "\nInsira um número: " )
leia( x )
enquanto( x != 0 ) faca
r <- x mod 2
se (r = 0) entao
escreva( "\n", x,
" é par" )
senao
escreva( "\n", x,
" é ímpar" )
fimse
escreva( "\nInsira um número:
" )
leia( x )
fimenquanto
fim
Etiquetas:
instruções cíclicas,
instruções condicionais,
webportugol
Exercício Módulo 2 - Instruções Cíclicas
Fazer no WebPortugol o algoritmo seguinte:
Ler repetidamente um número até ser lido o número 0. Para cada número diferente de 0, indica se é par ou ímpar.
A resolução no Scratch é
Ler repetidamente um número até ser lido o número 0. Para cada número diferente de 0, indica se é par ou ímpar.
A resolução no Scratch é
Etiquetas:
instruções cíclicas,
instruções condicionais,
Scratch,
webportugol
terça-feira, 28 de outubro de 2014
Exercício Módulo 2 - Instruções Condicionais (Continuação)
Alterar o algoritmo em Português Estruturado do post anterior de forma a que seja lido inicialmente o nome do funcionário. Por exemplo, se o funcionário tiver 20 anos, for solteiro e se chamar António Santos, o programa no WebPortugol deverá apresentar no final a mensagem,
O funcionário António Santos pertence à Categoria 1
O programa deverá ainda validar o estado civil, ou seja, só aceita os caracteres 'C' ou 'S'. No caso de ser inserido outro carácter, o programa apresenta a mensagem Estado civil inválido!
As respostas (fluxograma + programa) deverão ser colocadas num só ficheiro (em formato PDF) e submetidas na plataforma da escola (Módulo 2 - Exercício Instruções Condicionais). Deve ser submetida uma resposta por grupo.
As respostas (fluxograma + programa) deverão ser colocadas num só ficheiro (em formato PDF) e submetidas na plataforma da escola (Módulo 2 - Exercício Instruções Condicionais). Deve ser submetida uma resposta por grupo.
Etiquetas:
Fluxogramas,
webportugol
Exercício Módulo 2 - Instruções Condicionais (Resolução)
programa categorias
declaracoes
caracter estado
inteiro idade
cadeia categoria
inicio
escreva( "Insira o estado civil (S ou C):
" )
leia( estado )
escreva( "\nInsira a idade: " )
leia( idade )
se
(estado = 'S') entao
se( idade < 25 ) entao
categoria <- "categoria
1"
senao
categoria <- "categoria
2"
fimse
senao
se( idade < 34 ) entao
categoria <- "categoria
3"
senao
categoria <- "categoria
4"
fimse
fimse
escreva( "\n", categoria )
fim
Etiquetas:
instruções condicionais,
webportugol
Exercício Módulo 2 - Instruções Condicionais
Desenvolver um algoritmo para resolver o problema seguinte:
O algoritmo deverá ler um carácter, representando o estado civil, e um número inteiro, representando a idade do funcionário.
Cada aluno, individualmente resolve este problema, representando o algoritmo nas formas seguintes:
O algoritmo deverá ler um carácter, representando o estado civil, e um número inteiro, representando a idade do funcionário.
Cada aluno, individualmente resolve este problema, representando o algoritmo nas formas seguintes:
- Fluxograma (usando o Gliffy ou o SmartDraw);
- Programa em Português Estruturado no WebPortugol.
Etiquetas:
Fluxogramas,
webportugol
terça-feira, 21 de outubro de 2014
Exercício no WebPortugol
Fazer um programa para verificar se 3 valores reais podem ser as medidas dos lados
de um triângulo.
Resolver no WebPortugol e colocar a resolução num comentário a este post.
Cada aluno responde individualmente.
Etiquetas:
exercícios,
triângulos,
webportugol
Exemplo WebPortugol
Exemplo em Português Estruturado no WebPortugol
As instruções devem ser escritas conforme o exemplo, colocando espaços à esquerda para indicar a hierarquia de instruções.
Por exemplo,
escreva( "\nMaior do que 0" )
deve ser escrito mais para a direita para se perceber que está associado à instrução da linha anterior (se (x>0) entao).
O símbolo \n significa uma mudança de linha.
As instruções devem ser escritas conforme o exemplo, colocando espaços à esquerda para indicar a hierarquia de instruções.
Por exemplo,
escreva( "\nMaior do que 0" )
deve ser escrito mais para a direita para se perceber que está associado à instrução da linha anterior (se (x>0) entao).
O símbolo \n significa uma mudança de linha.
Etiquetas:
exemplo,
webportugol
Subscrever:
Mensagens (Atom)



