question

Erro de subscrito fora do intervalo? Correção ortográfica e gramatical de uma pergunta em português brasileiro.

Por que recebo um subscrito fora do intervalo nesta linha?

LET TotIncome = TotIncome + AnIncome(N) ' total de Calc

Não consigo descobrir por que e também, gostaria de imprimir fora o CalcAverage. Não consigo descobrir o que colocar. Qualquer ajuda é bem-vinda. Obrigado!

Meu código:
DIM IDNum (1 a 14), AnIncome (1 a 14), NumPersons (1-14), PovertyLevel (1-14), TotIncome (1 a 14)

GOSUB InitializeVariables
GOSUB LoadTables
GOSUB CalcPoverty
GOSUB CalcAvg

InitializeVariables:

LET TotIncome = TotIncome + AnIncome(N) ' total de Calc
LET TotBelowPov = TotBelowPov + BelowPov(N) ' Calc total abaixo pov
LET AveIncome = TotIncome / 14 ' rendimento médio de Calc
LET PercentBelowPov = TotBelowPov / 14 100 ' Calc % abaixo do pov
Deixe AboveAve(N) = 48
Deixe PageCt = 0
Deixe IDNum = 0
Deixe NumPersons = 0

PRINT $ T1 = "pesquisa de renda página # #"
DEIXE H1$ = ""
PRINT $ H2 = "Número de identificação número de renda anual das pessoas"
PRINT $ D1 = "# # # $#, # # #. # # #"
PRINT $ ST = "/ \ # SUBTOTAL"
PRINT $ TL = "# TOTAL"
Deixe MaxLines = 30
RETORNO


Ler números na matriz


LoadTables:
PARA N = 1 A 14
LER IDNum(N), AnIncome(N), NumPersons(N)
SEGUINTE N

DADOS 2497, 12.500, 2
DADOS 3323, 13.00, 5
DADOS 4521, 18.210, 4
DADOS 6789, 8.000, 2
DADOS 5476, 6.000, 1
DADOS 4423, 16.400, 3
DADOS 6587, 25.000, 4
DADOS 3221, 10.500, 4
DADOS 5555, 15.000, 2
DADOS 0085, 19.700, 3
DADOS 3097, 20.000, 8
DADOS 4480, 23.400, 5
DADOS 0265, 19.700, 2
DADOS 8901, 13.000, 3

CalcPoverty:
SE NumPersons(N)<= 2
PovertyLevel(N) = 8000
ELSEIF NumPersons(N) > 2
PovertyLevel(N) = 8000 + (2000 (NumPersons(N) - 2))
END IF

SE AnIncome(N)< povertyLevel(n)
BelowPov(N) = 1
OUTRA COISA
BelowPov(N) = 0
END IF
RETORNO

CalcAvg:
PARA N = 1 A 14
SE AnIncome(N) > AveIncome, em seguida,
AboveAve(N) = 1
OUTRA COISA
AboveAve(N) = 0
END IF
SEGUINTE N
RETORNO

Como resolver o problema com AnIncome que seria a adição de um DIM como INTERGER para obter a média de renda?
resposta Resposta

Você está enfrentando este erro devido a um problema de indexação de array no seu código. Vamos examinar cada seção do código para entender melhor como corrigir este problema.

Código:

Vamos começar analisando o código que está causando o erro.

      
        ...
        LET TotIncome = TotIncome + AnIncome(N) ' total de Calc
        ...
      
    

O trecho acima está tentando adicionar o valor de "AnIncome(N)" a "TotIncome", usando o índice "N", que pode estar fora do intervalo permitido. Para corrigir isso, precisamos seguir as seguintes etapas:

  1. Certifique-se de que o valor de "N" está dentro do intervalo permitido para o array "AnIncome".
  2. Verifique se "AnIncome" foi devidamente inicializado com os valores corretos.

Agora, vamos examinar a seção do código responsável por inicializar e carregar os dados para o array "AnIncome".

Inicialização e Carregamento de Dados:

      
        ...
        DIM IDNum (1 to 14), AnIncome (1 to 14), NumPersons (1
        to 14), PovertyLevel (1 to 14), TotIncome (1 to 14)
        ...
        GOSUB InitializeVariables
        GOSUB LoadTables
        GOSUB CalcPoverty
        GOSUB CalcAvg
        ...
      
    

Verificamos que os dados estão sendo lidos corretamente na seção "LoadTables", e os arrays estão sendo inicializados. No entanto, precisamos garantir que "AnIncome" esteja preenchido com os valores corretos para evitar o erro de subscrito fora do intervalo.

Calculando a Média:

Além disso, na seção "CalcAvg", há uma comparação que pode estar causando problemas com a indexação do array. É importante revisar essa parte do código para garantir que a comparação está ocorrendo dentro do intervalo permitido.

Corrigindo o Erro:

Para corrigir o erro de subscrito fora do intervalo, certifique-se de que o índice "N" está dentro dos limites permitidos para o array "AnIncome" e que todos os arrays foram devidamente inicializados. Além disso, revise as comparações nas seções relevantes do código para garantir que elas ocorram dentro do intervalo adequado.

Esperamos que essas instruções ajudem a corrigir o erro de subscrito fora do intervalo no seu código.


ComentáriosComentários
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta



Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved