Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Array, Verificação de armazenamento


Posts recomendados

Eu estava resolvendo  uns exercícios de array e não consegui entender como essa verificação acontece e porque o  ( idade:array [1..10] ) da para ser verificado no ( i: integer; ) com colchete.

Segue o código:

Program vetor ;
Var idade:array [1..10] of integer; idades, i: integer;
Begin
 for i:= 1 to 10 do
   begin
    Writeln('Digite a idade ', i); Readln(idade[i]);
        inc(idades, idade[i]);
	 end;
	Writeln('A soma das idades é: ', idades);
	writeln;
	Write ('Digite a idade que deseja verificar: '); Readln(i);
	Write ('A idade é', idade[i]);
	readln;  
End.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, AnonymousLPH disse:

Eu estava resolvendo  uns exercícios de array e não consegui entender como essa verificação acontece e porque o  ( idade:array [1..10] ) da para ser verificado no ( i: integer; ) com colchete.

Segue o código:

 

Esse código que você postou é uma resposta de algum exercício e você quer entender, ou você tem um exercício e criou esse código como sendo uma resposta?

 

Vamos lá, para tentar facilitar o entendimento, dei uma reorganizada no código de forma que o mesmo ele faça a mesma coisa que estava propondo a fazer originalmente, mas com nomes de variáveis mais objetivas..

program vetor;
var
  idades :array [1..10] of integer; //use um nome no plural
  somaIdades, //um nome que representa para que serve
  i, //usado como "padrão" para percorrer um vetor
  posicao: integer; //outra diferente, para evitar usar o "i" para outro fim que não é a do padrão
                    //e da mesma forma tem um nome para o fim que a variável foi criada!
begin
for i:= 1 to 10 do
  begin
  write  ('Digite a idade ', i, ' :'); readln(idades[i]);
  Inc(somaIdades, idades[i]); //o mesmo que somaIdades := somaIdades + idades[i]
  end;
writeln;
writeln('A soma das idades é: ', somaIdades);
writeln;
write  ('Digite a POSICAO da idade que deseja verificar: '); readln(posicao);
write  ('A idade é', idades[posicao]);
readln;
end.

obs.: o código não precisa desses comentários. Apenas inserir para deixar mais consistente os entendimentos (a ideia é que esses entendimentos sejam explícitos, sacou? é apenas para reforçar nesse contexto do tópico. No programa final, não precisará deles).

 

Então.. esse código está "lendo 10 idades e inserindo num vetor. Após está solicitando uma posição, desse vetor, e exibindo a idade que está nela". É isso que esse código faz. Se o enunciado for isso, está no caminho certo.

 

Agora, se você quer "ler 10 idades e inserir num vetor e após solicitar uma idade e retornar em que posição(ões) do vetor essa idade está", aí precisa mudar a lógica do algoritmo. É outra coisa!

 

Ou ainda o enunciado pode ser uma terceira outra coisa nada haver a ver com o código que postou.

 

RESUMINDO:

- explique melhor o que você quer;

- de qualquer forma, poste o enunciado completo do exercício para ver se satisfaz o que está sendo solicitado lá.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Simon Viegas Era isso mesmo que o enunciado queria, minha dificuldade é na parte onde se consulta uma idade... Só colocando qualquer variável entre [] que a pesquisa é feita sem erros? No exemplo ali você pôs isso 

writeln;
writeln('A soma das idades é: ', somaIdades);
writeln;
write  ('Digite a POSICAO da idade que deseja verificar: '); readln(posicao);
write  ('A idade é', idades[posicao]);
readln;
end.

// Eu também queria entender sobre esses dois "writeln;"

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
7 minutos atrás, AnonymousLPH disse:

Era isso mesmo que o enunciado queria

 

Poste o enunciado completo.

 

 

 

7 minutos atrás, AnonymousLPH disse:

minha dificuldade é na parte onde se consulta uma idade

 

Você precisa abstrair. "Consulta" é aquilo que (supostamente) o enunciado se refere a "acessar a idade de determinada posição do vetor".

 

 

 

8 minutos atrás, AnonymousLPH disse:

Só colocando qualquer variável entre [] que a pesquisa é feita sem erros? No exemplo ali você pôs isso 

 

A posição não está relacionada "a qual variável usar", mas sim "a qual valor está na variável que você passou".

 

No código original, tem a variável "i" que é do tipo integer. Ela recebe um número "qualquer":

11 horas atrás, AnonymousLPH disse:

Write ('Digite a idade que deseja verificar: '); Readln(i);

 

e depois o programa vai utilizar esse valor para "posicionar o vetor":

 

11 horas atrás, AnonymousLPH disse:

Write ('A idade é', idade[i]);

 

Em relação ao programa no computador, não existem relações entre as variáveis... a relação que existe é para nós programadores e para o clientes.

 

Você pode usar qualquer coisa que seja um número ali para posicionar o vetor. Ex.:

nome := 3;
Write ('A idade é', idade[nome]); //vai exibir o valor que está na posicao 3 do vetor

ou

Write ('A idade é', idade[Green]); //Green vale 2, logo equivale a idade[2]

 

 

 

17 minutos atrás, AnonymousLPH disse:

// Eu também queria entender sobre esses dois "writeln;"

 

É o mesmo que:

writeln('');

Não vai imprimir algo, e vai descer o cursor (onde indica onde vai sair o caractere) para a próxima linha, ou seja: serve simplesmente para pular uma linha.

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
4 minutos atrás, AnonymousLPH disse:

e ao final mostre a soma de todas as idades digitadas e onde o usuário possa verificar os dados digitados apenas uma vez.

 

A parte de "mostrar a soma de todas idades", ok. Mas o que seria "e onde o usuário possa verificar os dados digitados apenas uma vez". Precisa entender o que seria isso.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
37 minutos atrás, AnonymousLPH disse:

@Simon Viegas Seria , verificar a idade que esta no "" ou "[Posição]"

 

@AnonymousLPH, seria interessante ter a definição do que precisa. Por exemplo, citar "[Posição]" está já na tentativa de implementação do que foi previamente definido...  O enunciado poderia ser algo assim:

 

Faça um algoritmo utilizando vetores, onde se receba e armazene a idade de 10 pessoas e ao final mostre a soma de todas as idades digitadas e onde o usuário possa verificar a idade que está em uma determinada posição do vetor (apenas uma vez).

 

Entende? o enunciado é o que foi pedido... daí, precisam-se entender o que quer de fato, e a partir daí implementar uma solução que atenda ele.

 

Se no caso é isso mesmo... "quer a idade de uma determinada posição do vetor". Seu código está certo.

 

Só para reforçar:

 

15 horas atrás, AnonymousLPH disse:

	Write ('Digite a idade que deseja verificar: '); Readln(i);
	Write ('A idade é', idade[i]);

 

O código está lendo um "número" e está posicionando o vetor na posição que corresponde a esse número.

 

Utilizar "i" não tem qualquer relação com a leitura das idades lá em cima... não existe uma "amarração técnica" em as variáveis... variáveis são variáveis e pronto. A "coerência" delas é apenas uma abstração nossa.

 

Lá apenas foi aproveitado que essa variável "i" "não é mais utilizada no momento" e passou a utilizar ela para outro fim (que não é percorrer o vetor com um for).

 

Adendo: um detalhe importante aí é que, se digitar um valor fora da faixa de 1 a 10 (do vetor), vai dar pau. Mas é por aí mesmo.

Link para o comentário
Compartilhar em outros sites

@Simon Viegas Entendi :D, uma pergunta, aliás várias hahah.

 Você trabalha como programador? fez faculdade? tem como trabalhar sem faculdade? você programa em quais linguagem, estou entrando nesse mundo agora, sem rumo, estou sendo autodidata, nem conclui o ensino médio, estou no 3 ano.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, AnonymousLPH disse:

@Simon Viegas Entendi :D, uma pergunta, aliás várias hahah.

 Você trabalha como programador? fez faculdade? tem como trabalhar sem faculdade? você programa em quais linguagem, estou entrando nesse mundo agora, sem rumo, estou sendo autodidata, nem conclui o ensino médio, estou no 3 ano.

 

Não trabalho especificamente como programador, mas exerço uma função que envolve programação. Em relação a dicas sobre essas áreas, creio que não tenha muito a te ajudar.

 

De a depender, você poderia dar uma pesquisada no fórum.. tem bastante postagem sobre o tema, ou mesmo criar uma tópico próprio.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...