How to use the REPITA command in this algorithm?

1

I have the following question but I could not figure out how to do it using the command REPITA :

  

Write an algorithm that requests the age of several people (USE REPEAT). Enter 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 counted).

This was one that I did very well, 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
    
asked by anonymous 02.06.2017 / 06:27

2 answers

5
  

I may sin in the exact syntax of Portugol / Visualg, but the idea is valid. I urge you to eventually slip my

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

Usage:

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 repetition evolution, this evolution needs to be controlled internally, in the code block.

In the example, the stop condition is negative age. Then, treating only the condition of the loop, it would look something 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 visualize the use of repita .

    
02.06.2017 / 06:45
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
    
20.10.2017 / 16:22