Matlab - Ejercicio programacion

   
Vista:

Ejercicio programacion

Publicado por Gonzalo (12 intervenciones) el 27/02/2018 21:21:28
Hola, tengo un ejercicio el cual hay una parte que no se como hacerla, les dejo el algoritmo que programe, y el espacio donde creo , que deberia ir la parte que no me sale..

Realizar un archivo de instruccion que permita el ingreso de un vector de numeros enteros ordenados de forma creciente, y un escalar entero cualquiera. Se desea conocer si el mismo se encuentra en la lista ordenada, en casi afirmativo , averiguar su posicion y en caso negativo insertarlo en la lista respetando el orden e indicar su posicion.
NO utilizar la funcion
find.


Mi algoritmo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
v=input('Ingrese vector de enteros de menor a mayor=');
t=input('Ingrese escalar entero:');
l=length(v);
 
for i=1:l
 
if v(i)==t
posicion=i;
elseif v(i)~=t && i==l
-
-
-
((((aca iria la parte de insertarlo en la lista de modo que quede ordenada))))
como hago esto, sin utilizar la funcion find?
-
-
-
end
end
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ejercicio programacion

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (4473 intervenciones) el 27/02/2018 23:05:52
1
2
3
4
5
6
7
8
9
10
clear all
v=unique(sort(round(40*rand(1,15))))
t=round(40*rand)
if isempty(v(v==t))
    v=[v(v<t) t v(v>t)]
    [~, posicion]=max(v==t)
else
    v
    [~, posicion]=max(v==t)
end

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
>> ordenados
 
v =
 
     6     7     8    10    11    13    15    16    19    26    32    35
 
 
t =
 
    39
 
 
v =
 
     6     7     8    10    11    13    15    16    19    26    32    35    39
 
 
posicion =
 
    13
 
>> ordenados
 
v =
 
    13    15    16    17    19    24    25    28    31    33    34    35    36
 
 
t =
 
    29
 
 
v =
 
    13    15    16    17    19    24    25    28    29    31    33    34    35    36
 
 
posicion =
 
     9


https://www.lawebdelprogramador.com/foros/Matlab/1644289-Ejercicio-programacion.html

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ejercicio programacion

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (4473 intervenciones) el 28/02/2018 15:30:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear all
%v=input('Ingrese vector de enteros de menor a mayor=');
v=unique(sort(round(40*rand(1,15))))
%t=input('Ingrese escalar entero:');
t=round(40*rand)
l=length(v);
 
for i=1:l
    if v(i)==t
        posicion=i;
        v
        break;
   elseif v(i)~=t && i==l
       v(i+1)=t;
       v=sort(v)
       break;
   end
end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> ordenar
 
v =
 
     3     7    12    15    17    18    19    20    25    27    31    33    37
 
 
t =
 
    32
 
 
v =
 
     3     7    12    15    17    18    19    20    25    27    31    32    33    37



Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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

Ejercicio programacion

Publicado por Gonzalo (12 intervenciones) el 28/02/2018 15:32:19
Muchas gracias! Me ha sido muy útil tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad