Error in Visualg, I put the then and still gives error, already tried to put the condition between parentheses too

Asked

Viewed 714 times

0

    Algoritmo "semnome"
    // Disciplina  :  [Linguagem e Lógica de Programação] 
    // Professor   : Antonio Carlos Nicolodi 
    // Descrição   : Aqui você descreve o que o programa faz! (função)
    // Autor(a)    : Nome do(a) aluno(a)
    // Data atual  : 04/05/2019

Var
// Seção de Declarações das variáveis 
conf :vetor[1..19] de inteiro
nome :vetor[1..19] de caractere
lim :vetor[1..19] de inteiro
x, index, esc, i : inteiro
final : caractere

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
conf[1] <- 2
conf[2] <- 2
conf[3] <- 6
conf[4] <- 2
conf[5] <- 6
conf[6] <- 2
conf[7] <- 10
conf[8] <- 6
conf[9] <- 2
conf[10] <- 10
conf[11] <- 6
conf[12] <- 2
conf[13] <- 14
conf[14] <- 10
conf[15] <- 6
conf[16] <- 2
conf[17] <- 14
conf[18] <- 10
conf[19] <- 6
nome[1] <- "1s"
nome[2] <- "2s"
nome[3] <- "2p"
nome[4] <- "3s"
nome[5] <- "3p"
nome[6] <- "4s"
nome[7] <- "3d"
nome[8] <- "4p"
nome[9] <- "5s"
nome[10] <- "4d"
nome[11] <- "5p"
nome[12] <- "6s"
nome[13] <- "4f"
nome[14] <- "5d"
nome[15] <- "6p"
nome[16] <- "7s"
nome[17] <- "5f"
nome[18] <- "6d"
nome[19] <- "7p"
lim[1] <- 1
lim[2] <- 1
lim[3] <- 1
lim[4] <- 1
lim[5] <- 1
lim[6] <- 1
lim[7] <- 1
lim[8] <- 1
lim[9] <- 1
lim[10] <- 1
lim[11] <- 1
lim[12] <- 1
lim[13] <- 1
lim[14] <- 1
lim[15] <- 1
lim[16] <- 1
lim[17] <- 1
lim[18] <- 1
lim[19] <- 1
x <- 1
final <- " "
enquanto (1 = 1) FACA
         Escreva("Digite o número que quer distribuir: ")
         leia(esc)
         index <- 0
         enquanto (esc > 0) faca
                  enquanto lim[index + 1] < conf[index + 1] FACA
                           lim[index + 1] <- lim[index + 1] + 1
                           esc <- esc - 1
                           se (esc <= 0) ENTAO
                              fimse
                           index <- index + 1
                  para i de 0 ate 1 faca passo compr(lim[1])Faca
                              ***se lim[i] > 0 entao***
                              final <- final + nome[i] + numpcarac(lim[i]) + " "
                                senao
                                     fimse
                                fimpara
fimenquanto
fimenquanto
fimenquanto
Escreval(final)







Fimalgoritmo

1 answer

2

You make an infinite loop:

enquanto (1 = 1) FACA

but within your loop there is no test or condition for you to jump out of the loop.

This here:

se (esc <= 0) ENTAO
fimse

doesn’t make any sense.

This here:

senao
fimse

also makes no sense. If you will do nothing if Lim[i] > 0 then do not use the clause.

To initialize your Lim vector use:

para i de 1 ate 19 faca
    lim[i] <- 1
fimpara

This command is syntactically wrong:

para i de 0 ate 1 faca passo compr(lim[1])Faca

The vector index Lim part of 1 but you do:

para i de 0 ate 1 faca passo compr(lim[1])Faca

and uses i as vector index.

Browser other questions tagged

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