How to use the REPEAT command in this algorithm?

Asked

Viewed 2,734 times

3

I have the following question but could not understand how to do using the command REPITA:

Write an algorithm that asks for the age of several people (USE REPEAT). Please report the total number of people under 25 and the total number of people over 50. The program ends when age is negative (Not to be used in counting).

This was one that I made very similar, but using the command PARA...FACA:

var
 menor,idade,maior,contador:inteiro
 idade_media:real
inicio
menor <- 999
 para contador de 0 ate 9 faca
      escreva ("Idade: ")
       leia(idade)
      idade_media <- idade_media + idade
   se (idade <= menor) entao
      menor <- idade
      fimse
   se (idade>=maior) entao
      maior <- idade
      fimse
   fimpara
 idade_media <-idade_media/10
 escreval

3 answers

8


I can sin in the exact syntax of Portugol/Visualg, but the idea is valid. I ask to correct any slippage my

The repita, as well as the para is a repeat instruction.

Use :

repita
    # códigos e mais códigos vem aqui
até <<condição de parada>>

It is similar in concept to enquanto, in the sense that it does not provide structure for the evolution of repetition, this evolution needs to be controlled internally, in the code block.

In the example, the stopping condition is negative age. So, treating only the condition of the loop, it would look more or less like this:

leia(idade)
repita
    # faz os julgamentos de idade neste trecho
    leia(idade)
até idade < 0 # condição de parada: idade lida ser negativa

# imprime o relatórios dos julgamentos de idade

Note that I have removed all the rest of the logic from your question and focused only on loop control, to make it easier to view the use of repita.

2

It may be so...

    var
      menor,idade,maior,contador:inteiro
      idade_media:real
    inicio
      menor <- 999
      contador<-1
      repita
        escreva ("Idade: ")
        leia(idade)
        idade_media <- idade_media + idade
        se (idade <= menor) entao
          menor <- idade
        fimse
        se (idade>=maior) entao
          maior <- idade
        fimse
        contador=contador+1
    ate(contador=10)
    idade_media <-idade_media/10
    escreval(idade_media)
fimalgoritmo

1

Var    
   sairLoop: caracter    
   valor01, valor02: real    
Inicio    
    repita   
        escreva("Digite o primeiro valor: ")    
        leia(valor01)    
        escreva("Digite o segundo valor: ")    
        leia(valor02)    
        escreval("Resultado: ", valor01 + valor02)    
        escreval("Deseja sair?  S / N")    
        leia(sairLoop)    
    ate sairLoop <> "N"    

Browser other questions tagged

You are not signed in. Login or sign up in order to post.