Ir ao conteúdo

Pascal - Ordenação com Counting Sort


Bruno M. Peçanha

Posts recomendados

Postado

Galera, boa noite.

Tenho que montar para o professor uma algorítimo em Pascal que usa o método de orndenação 'Couting Sort'.

Fui pesquisando para entender como funciona e desenvolvi o algorítimo abaixo que está dando o erro: 'runtime error 201'. Quem poder dar uma analisada agradeço.

Abraço

program ordenacaoInteiros{counting sort};
uses
crt;
const
n=5;
l=5;
type
valorMax=array[1..l] of integer;
function achaMaiorElemento(vetorPrincipal:valorMax):integer;
var
j,maior,maiorRetorno: integer;
begin
maior:=vetorPrincipal[1];
for j:=2 to n do
if (vetorPrincipal[j] > maior) and (vetorPrincipal[j] < l) then
begin
maior:=vetorPrincipal[j];
end;
maiorRetorno:=maior;
end;
function ordenacaoFinal(tamanho: valorMax): integer;
var
m:integer;
begin
for m:= 1 to n+1 do
begin
tamanho[m]:=tamanho[m]+tamanho[m-1];
end;
for m:=1 to n+1 do
begin
write('Este nesta posi‡Æo: ', tamanho[m]);
readln;
end;
end;
var
i,k:integer;
vetorUm, vetorAux: valorMax;
begin //clrscr;
for i:= 1 to n do
begin
write('Digite o pr¢ximo ',i,'o valor: ');
readln(vetorUm[i]);
if vetorUm[i] > l then
begin
write(' Valor acima do limite. Ser* desconsiderado. ');
end;
writeln;
end;
for k:= 1 to achaMaiorElemento(vetorUm)+1 do
begin
vetorAux[k]:=1;
end;
ordenacaoFinal(vetorAux);
readln;
end.

  • 2 semanas depois...
Postado

Por que declara variáveis no meio do código? Isso pode ocasionar muitos erros. Você

de fato já pesquisou sobre esse erro?

Qual quer erro que você ver com o nome ''Runtime'' seria um erro de execução, logo é deduzido que algo não deixa seu programa executar, mas que algo é esse? Respondo: não existiria ninguém melhor do que ti próprio para achar o erro.

Obs: Sua dúvida foi respondida, melhor dizendo você precisava de orientação na verdade. :)

No aguardo.

Acho que isso lhe ajudará um pouco: http://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://community.freepascal.org/bboards/message%3Fmessage_id%3D154160%26forum_id%3D24082&prev=/search%3Fq%3Druntime%2Berror%2B201%26espv%3D210%26es_sm%3D93

Postado

Então, Kurumim 7, primeiramente valeu pela atenção.

Vamos lá,

Eu não declarei variáveis no meio do código, elas estão no local correto, sigo uma ordenação, sendo que a área de 'tipos' ficou um pouco grande.

Sim, pesquisei o erro, é algo relacionado ao tamanho do vetor, não entendi, pois variei as constantes para ver se resolvia e nada.

No fórum do FP, encontrei a seguinte descrição do erro:

"201 Range check error

If you compiled your program with range checking on, then you can get this error in the following cases:

An array was accessed with an index outside its declared range.

Trying to assign a value to a variable outside its range (for instance an enumerated type)."

Diz que o vetor foi acessado com índice fora do intervalo declarado e, que está tentando atribuir um valor para uma variável fora do intervalo.

Não peguei ainda, variei as constantes n e l que controlam o vetor, mas não deu certo. O pior é que tá compilando, só que conforme vou passando os valores e dou <ENTER>, no último ele dá esse erro

:(

Por que declara variáveis no meio do código? Isso pode ocasionar muitos erros. Você

de fato já pesquisou sobre esse erro?

Qual quer erro que você ver com o nome ''Runtime'' seria um erro de execução, logo é deduzido que algo não deixa seu programa executar, mas que algo é esse? Respondo: não existiria ninguém melhor do que te próprio para achar o erro.

Obs: Sua dúvida foi respondida, melhor dizendo você precisava de orientação na verdade. :)

No aguardo.

Acho que isso lhe ajudará um pouco: http://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://community.freepascal.org/bboards/message%3Fmessage_id%3D154160%26forum_id%3D24082&prev=/search%3Fq%3Druntime%2Berror%2B201%26espv%3D210%26es_sm%3D93

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!