Ir para conteúdo

POWERED BY:

Arquivado

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

K999

ponteiros e registros

Recommended Posts

Boa noite!!

 

Bom senhores, Gostaria de saber se é possivel alguém me tirar uma duvida.

 

program exercicio20v2;

uses crt;

 

var

 

nome : array[1..10] of string;

i : integer;

 

 

procedure leitura;

begin

write('Digite o ',i,' nome.: ');

readln(nome);

end;

 

procedure igual;

begin

writeln(nome,' = ',nome[i+1]);

end;

 

begin

 

for i := 1 to 10 do

leitura;

 

writeln;

for i := 1 to 9 do

IF(nome = nome[i+1])then

igual;

 

writeln;

writeln('....fim...do...sistema.........');

readln();

 

end.

 

fiz esse algoritimo desse modo mas fico sem logica, pois eu defini quantos elementos tem o vetor, mas no Exercicio diz que é N valores , pesquise na net e encontrei uma possivel solução.

 

Exercicio('Dado uma ralação de N nomes, faça um algoritmo que verifique se uma determinada pessoa está neste vetor. O Nome da pessoa a ser pesquisada deverá ser lido, bem como os nomes a serem colocados no vetor.')

 

program Project1;

uses SysUtils;

type

PA = ^TA;

TA = array [0..100000] of Integer;

var

A: PA;

i, t: Integer;

 

Usando ponteiros desse modo me pareceu com bem mais logica, eu quero que esse valor N seja espeficicado pelo usuario e nisso seja declarado o vetor, Ex[1..N)....

Estou no 1 semestre de cc, e meu professor disse que só vai me ensinar a usar ponteiros no 3 semestre, então se alguem pudér me ajudar a resolver esse algoritimo do modo que falei, ia ficar muito grato.

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A melhor solução no seu caso seria usar uma lista encadeada.

Como voce não pode usar ponteiro uma solução seria ler a quantidade de dados e declarar a variável após isso.

Em C funciona em Pascal eu já não sei.

Tente algo como:

 

readln (n);

nome : array[1..n] of string

 

Outra solução seria especificar um tamanho máximo e a cada letura incremente uma variável que indicará quantas entradas foram feitas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kandrade obrigado pela dica, Ja tentei desse modo.

 

readln (n);

nome : array[1..n] of string

 

No pascal não aceita, estou pesquisando na net a solução, mas ainda não encontrei pro pascal, msm assim obragado.

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.