Pascal/Turbo Pascal - sustituir en un vector numero que se repita por -1

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

sustituir en un vector numero que se repita por -1

Publicado por gxt (4 intervenciones) el 02/07/2018 05:23:28
tengo que escribir un procedimiento que acepte como parámetro un vector que contiene números
positivos, que puede contener valores duplicados, y reemplace cada elemento repetido por
-1 . el procedimiento debe retornar el vector modificado y la cantidad de veces
que fue modificado.



lo intente con un for dentro de otro ej: en vector de 1..5 que contenga 1_2_1_3_-2 tendria que devolver
1_2_-1_3_-1 pero me termina devolviendo todos -1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

sustituir en un vector numero que se repita por -1

Publicado por David (224 intervenciones) el 04/07/2018 23:22:36
Te propongo la siguiente solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Uses CRT;
 
 
const
tope =  6;
 
t : Array[1..tope] of integer = (1,2,3,2,4,6);
 
Type
  Vector = array[1..tope] of integer;
 
 
var
  veces, i : integer;
  v : vector;
 
  Procedure ReemplazaRepes (var  v : vector; var vez : integer);
 
var
  cont,i, j : integer;
 
  begin
    cont:=0;
    vez:=0;
    for i :=1 to tope do
      for j:=1 to tope do
        if (t[i]=t[j]) and (i<>j) then
          begin
            t[j]:=-1;
 
          end;
    for i:=1 to tope do
      if t[i]=-1 then
        inc(cont);
   vez:=cont;
   end;
begin
  Writeln('El vector modificado es el siguiente: ');
  reemplazarepes(v,veces);
  for i:=1 to tope do
    writeln(t[i]);
  writeln('Modificaciones: ',veces);
  readln;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar