Ir ao conteúdo
  • Cadastre-se

ajuda com pascal, vetor nao pode ter slot igual


Ir à solução Resolvido por GPrimo,

Posts recomendados

exercicio:

Criar um programa onde após cadastrar produtos com seu código e preço em vetores de 10 posições, realiza a busca do preço de um determinado produto por meio de seu código, considere as seguintes instruções:

·  Ao cadastrar os produtos, se um código já foi cadastrado, informe ao usuário e peça para tentar outro código;

·  Após cadastrar todos os produtos, realizar a busca até que o usuário digite código igual a 0.

 

 

estou precisando de ajuda aqui nesta parte 

·  Ao cadastrar os produtos, se um código já foi cadastrado, informe ao usuário e peça para tentar outro código;

essa parte do codigo nao sei como fazer, ja tentei de varias formas mas todas q eu tentei nao estão ficando com valores unicos dentro do vetor, agradeço a ajuda

Link para o comentário
Compartilhar em outros sites

Não sei se é exatamente isso que você quer

 

Mas você pode criar uma variável, que quando o usuário entrar com o código, você salva o valor nessa variável(ela será para verificar)

 

Depois você coloca em um (for to do) onde ele verificará todos os vetores se existe alguma variável vetor com o mesmo que o usuário entrou!

 

Espero ter ajudado!

 

GPrimo

Link para o comentário
Compartilhar em outros sites

da uma olhado no codigo tem o comentario // 1 >> e o // 2 >>

Program Pzim ;VARvet:array[1..10] of integer;i, a, k, j, x, cont:integer;Begincont:=1;   for i := 1 to 10 do   begin     //comandos     writeln( 'slot', cont ) ;      readln( a ) ;      cont:=cont+1;     k:=1;     while k=1 do     begin// 2 >> quero q ele volte aqui e teste tudo de novo            x:=1;       for j := x to 10 do       begin         //comandos         if ( a=vet[j] ) then          begin           //comandos           writeln( 'este codigo ja existe, favor mudar' ) ;           k:=1;           readln( a ) ;// 1 >>> se ele entrou aqui         end         else         k:=2;        end;     end;     vet[i]:=a;   end; End.
Link para o comentário
Compartilhar em outros sites

  • Solução

Bom, estou meio sem tempo agora, mas deu pra eu dar uma estudada no seu código!

 

Eu fui modificando algumas coisas e como faz tempo que eu mexi com pascal, talvez eu tenha errado alguma coisa.. e eu não tenho como testar..

 

Esse é o código que deve funcionar:

Program Pzim ;VARvet:array[1..10] of integer;c1,c2,en,x:integer;Begin	for c1:=1 to 10 do	begin		//comandos		writeln( 'slot', c1 ) ;		readln( en ) ;		x:=0;		while c2<=10 do		begin			//comandos			if ( en=vet[c2] ) then				x:=1;			if (( c2=10 ) And ( x=1 )) then                        begin				writeln( 'este codigo ja existe, favor mudar' ) ;				readln( en );				c2:= 1;                        end			else				c2:=c2+1		end;		vet[c1]:=a;	end;end.

Eu mudei os nomes de algumas variáveis pois eu me perdi hehe

 

Faz o teste e vê se realmente é isso que você deseja! Se você não entendeu só falar que eu explico o que eu fiz ai

 

Quando eu estiver com mais tempo(hoje mesmo) e claro, se você quiser.. eu coloco comentários para você entender melhor o código!

 

Espero ter ajudado!

 

GPrimo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...