02) FAÇA UM PROGRAMA QUE PREÊNCHA UM VETOR DE 5 POSIÇÕES SENDO QUE
ESTE ACUSE QUANDO FOR DIGITADO UM NUMÉRO REPETIDO.
PROGRAM QUESTAO_02 ;
VAR V : ARRAY [1..6] OF INTEGER;
A,B,I,C : INTEGER;
BEGIN
FOR I := 1 TO 6 DO
V[I] := 0;
A := 0; B := 0;
WHILE B < 6 DO
BEGIN
WRITE('DIGITE O NUMERO DA ',B,' POSIÇÃO: ');
READ(A); WRITELN;
C := 0; I := 0;
WHILE I < 6 DO
BEGIN
I := I +1;
IF A = V[I] THEN
BEGIN
WRITELN('ESTE NÚMERO JA FOI DIGITADO');
C := 6;
END;
IF V[I] = 0 THEN
BEGIN
V[I] := A;
B := B +1;
IF B < 6 THEN
BEGIN
WRITE('DIGITE O NUMERO DA ',B,' POSIÇÃO: ');
READ(A); WRITELN;
I := 0;
END;
END;
IF C = 6 THEN
I := C;
END;
END;
FOR I := 1 TO 6 DO
WRITELN('O NÚMERO DA POSIÇÃO ',I,' É: ',V[I]);
END.
Esse so deu foi dicabeça em Galela.
ResponderExcluirQuem fez diferente posta como comentário.
Program Pzim ;
ResponderExcluirvar vt: array [1..5] of integer;
i: integer;
Begin
for i:=1 to 5 do
begin
write('Digite o ',i,' numero :: ');
readln(vt[i]);
case i of
1:begin
vt[i]:= vt[i];
i:=i;
end;
2:begin
if ((vt[i]) <> (vt[1])) then
begin
writeln('Pode continuar');
end
else
begin
writeln('Esse numero ja existe digite outro');
i:=i-1;
end;
end;
3:begin
if ((vt[i]) <> (vt[2])) and ((vt[i]) <> (vt[1])) then
begin
writeln('Pode continuar');
end
else
begin
writeln('Esse numero ja existe digite outro');
i:=i-1;
end;
end;
4:begin
if ((vt[i]) <> (vt[3])) and ((vt[i]) <> (vt[2])) and ((vt[i]) <> (vt[1]))then
begin
writeln('Pode continuar');
end
else
begin
writeln('Esse numero ja existe digite outro');
i:=i-1;
end;
end;
5:begin
if ((vt[i]) <> (vt[4])) and ((vt[i]) <> (vt[3])) and ((vt[i]) <> (vt[2])) and ((vt[i]) <> (vt[1]))then
begin
writeln('Pode continuar');
end
else
begin
writeln('Esse numero ja existe digite outro');
i:=i-1;
end;
end;
end;
end;
for i:= 1 to 5 do
begin
writeln('O numero ',i,' escolhido foi :: ',vt[i]);
end;
End.
Estou otimizando o código por enquanto é somente esse mesmo galera..vlw!!!!
GALERA EU OTIMIZEI O CODIGO FONTE E TIREI ALGUS BUGS ESTE AGORA TA RODANDO 100%.
ResponderExcluirGalera melhorei o meu 100% agora ficou melhor olha só...
ResponderExcluirProgram vetores_numeros_repetidos ;
var v: array [1..5] of integer;
numero_inicial,i,r,rep:integer;
Begin
for i:=1 to 5 do
begin
rep:=1;
while rep<>0 do
begin
write('Digite o ',i,' numero :: ');
readln(v[i]);
numero_inicial:=0;
for r:=1 to i do
begin
if ((v[i]=v[r]) and (i<>r)) then
begin
writeln('Esse numero ja existe');
numero_inicial:=1;
end;
end;
if numero_inicial=0 then
begin
rep:=0;
end;
end;
end;
for i:= 1 to 5 do
begin
writeln('O numero ',i,' escolhido foi :: ',v[i]);
end;
End.
Puta merda meu irmão, passei esse final de semana infurnado no pc para resolver esse negócio, quase que eu fico doido...Mais acabei resolvendo...esse ultrapassou os limides da concentraçao....!!!Mais valeu..!!!
ResponderExcluirGALERA EU FIZ LOUCURA ALEM DE OTIMIZAR O CODIGO EU AINDA FIZ COM QUE ELE MIM MOSTRASSE OS NUMEROS EM ORDEM CRESENTE E O CODIGO AINDA FICOU MENOR DO QUE O QUE EU TINHA POSTADO VE SÓ.
ResponderExcluirProgram Vetor_Repetido ;
var v : array[1..5] of integer;
i,a,r:integer;
Begin
for i := 1 to 5 do
begin
a := 0;
write('Digite o número na posição ',i,' ');
read(V[i]);
for r := 1 to 5 do
if V[i] = V[r] then
begin
a := a +1;
if a = 2 then
begin
writeln('Este número ja existe');
i := i - 1;
end;
end;
end;
for i := 1 to 5 do
for r := 1 to 5 do
if v[i] < V[r] then
begin
a := v[i];
v[i] := v[r];
V[r] := a;
end;
for i := 1 to 5 do
writeln(V[i]);
End.