Home › Fóruns › Programação Básica › Módulo 03 – Exercício – 029
- Este tópico contém 7 respostas, 7 vozes e foi atualizado pela última vez 1 ano, 10 meses atrás por Tutora Jessica.
-
AutorPosts
-
-
12 de novembro de 2021 às 01:26 #80423Murilo França Custódio de SouzaParticipante
Segue o código para analise:
inteiro inicio_cont, fim_cont, incremento
escreva(“{ EXERCÍCIO 029 – Contagem Personalizada }\n”)
escreva(“——————————————– \n”)
escreva(“Onde começa a contagem? “)
leia(inicio_cont)
escreva(“Onde termina a contagem? “)
leia(fim_cont)
escreva(“Qual vai ser o incremento? “)
leia(incremento)
escreva(“——————————————– \n”)enquanto (inicio_cont <= fim_cont) {
escreva(inicio_cont , ” – ” )
Util.aguarde(500)
inicio_cont += incremento
}escreva(” FIM! \n”)
Minha dúvida é se por via de regra sou obrigado a usar o contador “c”, ou posso manter dessa forma como descrito acima? Lembrando que já testei todas as possibilidades e funciona normalmente.
-
12 de novembro de 2021 às 13:02 #80468IcaroFilhoModerador
Bom dia Murilo, as nomeações de variáveis são a critério do desenvolvedor ou convenção da organização. O algoritmo irá funcionar baseado na lógica, sendo assim, independe dos nomes.
-
27 de dezembro de 2021 às 16:48 #83308RENATA LIMA HOLANDAParticipante
/* Serviço militar 2.0
perguntar ano de nascimento
se ano maior que 18 – vc ja se alistou
se ano menor que 18 – se aliste em tal ano
se == 18 se aliste esse ano*/
inclua biblioteca Calendario –>c
funcao inicio()
{
escreva(“\tSERVIÇO MILITAR 2.0\n”)
escreva(“=====================================\n”)inteiro anoNascimento
inteiro anoAtual = c.ano_atual()
escreva(“Qual seu ano de nascimento ?”)
leia(anoNascimento)inteiro idade = anoAtual-anoNascimento
inteiro futuro = ( 18 – idade)
inteiro alistamento = anoAtual + futuroescreva(“Estamos em ” + anoAtual + ” Sua idade é: ” + idade + ” anos \n”)
se (idade > 18){
escreva (” Você já deve ter se alistado no no de ” + alistamento + “.” )
}senao se(idade < 18){
escreva(” Você não tem idade para se alistar. Isso vai acontecer em ” + alistamento + ” Faltam ” + futuro + ” anos.”)
}senao{
escreva(“Você tem 18 anos. Se aliste imediatamente!”)
}escreva(“\n\n”)
}
Olá, sempre que eu coloco uma idade maior que 18 tenho executar o programa duas vezes para obter o resultado completo. Isso só acontece se a idade for maior que 18. O que faço para corrigir?
-
3 de janeiro de 2022 às 09:39 #83620Tutora TaináMestre
Renata, pode ser um inconsistência do interpretador do Portugol Studio, o seu código parece estar correto.
Espero ter ajudado, qualquer dúvida estamos à disposição. 🖖
-
-
6 de novembro de 2022 às 19:47 #104450Daniela OliveiraParticipante
Fiz um pouco diferente o exercício, mas há um erro que não sei porque está acontecendo:
inteiro num1, num2, inc
escreva (“Onde começa a contagem? “)
leia (num1)
escreva (“Onde termina a contagem? “)
leia (num2)
escreva (“Qual vai ser o incremento? “)
leia (inc)}
enquanto (num1 <= num2) {
num2 = num1 + inc
escreva (num2)
{
O Portugol marca o “enquanto” e diz que “a expressão não estava esperada nesse local, remova a expressão para resolver o problema”.
Onde devo colocar o enquanto? O resto está correto?-
7 de novembro de 2022 às 08:56 #104477IcaroFilhoModerador
Bom dia Daniela,
Eu movi seu tópico pois já foi criado para este exercício.
Sempre que for fazer uma postagem no fórum, verifique se o exercício já não foi pastado, assim o fórum fica mais limpo e mais fácil para outros alunos encontrarem duvidas semelhantes ao mesmo exercício.Quanto a sua duvida, existe um
}
antes do enquanto que deve estar fechando o blocofuncao inicio()
, ai oenquanto
acaba quebrando.
Se retirar vai conseguir fazer a leitura completa.Contudo seu código entrará no que chamamos de “loop infinito” embora a condição esteja correta, o bloco do enquanto esta errado.
no seu código vc fala que deve ser executado enquanto o num1 for inferior a num2.
o seu bloco faz a operação de atribuir a num2 o valor de num1 mais o incremento.
Ou seja,
num1 sempre será inferior a num2
Para concertar vc deve fazer com que num1 receba ele mesmo mais o incremento.
num1 = num1 + inc
<u>Outras observações</u>
-
Variáveis
- Tente dar nomes mais intuitivos para facilitar a leitura como:
num1
=>inicio
|num2
=>fim
- Lembre-se que o código é escrito para outros Devs lerem também
- Tente dar nomes mais intuitivos para facilitar a leitura como:
-
Espaçamentos
- No seu código , vc esta dando espaço entre o nome da função/método e os parênteses:
leia ()
. Está é uma má pratica pois nem todas as linguagens serão tolerantes e aceitaram (<i>a maioria irá quebrar</i>)
- No seu código , vc esta dando espaço entre o nome da função/método e os parênteses:
-
Ordem de execução
- Dentro do bloco
Enquanto
, geralmente a operação de incremento fica no final do bloco -
enquanto(inicio <= fim){ // laço de repetição (inicio = num1 | fim = num2 escreva(inicio , "\n") // bloco de execução inicio = inicio + inc // incremento {
- Dentro do bloco
Caso continue com duvidas, é só postar aqui.
-
Variáveis
-
-
18 de janeiro de 2023 às 23:18 #108979Roni OliveiraParticipante
`programa
{inclua biblioteca Util –> u
funcao inicio()
{
escreva(“{ EXERCICIO 29 – CONTAGEM PERSONALIZADA }\n”)
inteiro c, fim, incescreva(“qual o n° inicial? “)
leia(c)
escreva(“onde termina a contagem? “)
leia(fim)
escreva(“qual vai ser o incremento? “)
leia(inc)escreva(“iniciou “)
enquanto(c <= fim ){
escreva(c+”-“)
c = c + inc
}
escreva(“terminou”)
}
}
Como posso usar a biblioteca Util, para utilizar a funcao tempo_decorrido() ? -
19 de janeiro de 2023 às 18:09 #109026Tutora JessicaModerador
Ola Roni, não consegui entender sua dúvida.
Nesse exercício o professor Guanabara somente utilizou a biblioteca Util para o aguarde.
(u.aguarde
)
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.