26/01/2020, 22:03:00 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Puedes practicar LATEX con el cómodo editor de Latex online
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Scilab arreglos  (Leído 1361 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Dongatomate
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 304


Ver Perfil
« : 26/03/2017, 15:24:55 pm »

Buenas tardes, me podrán dar una mano con el siguiente problema;

Dado un vector v, su cantidad de componentes n y una posición p, desplazar todos los elementos de v un lugar
a la derecha a partir de la posición p inclusive. Después del desplazamiento, el vector tendrá duplicadas
las componentes p y (p + 1)-ésimas y se perderá el valor de su último elemento.

lo habia pensado de la siguiente manera:

//INICIO
n= input ("ingrese elementos de v: ")
p= input ("Ingrese posicion: ")
[v]=(n)
t=n   
for i=1:n
    v(i)=input ("Ingrese elem" + string(i)+": ")
end

for k = 1:n-p
    v(t)=v(t-k) //Cuando ejecuto el programa me dice indice invalido
end
v(p)=2*v(p)
v(p+1)=2*v(p+1)
clear v(n)  //¿El ultimo elemento del que habla es el n cierto?
disp ( v )

//FIN

Plantee las dudas respecto al problema en rojo. Ademas tengo algunas consultas respecto al "for"

Por lo que se es un bucle, pero siempre lo vi como un bucle que se va incrementando iteración a iteración. ¿ Se puede tomar un "paso negativo" y que ¿bucle a bucle vaya decreciendo la variable asignada al for?.

Desde ya muchas gracias!.
En línea
Luis Fuentes
el_manco
Administrador
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 45.801


Ver Perfil
« Respuesta #1 : 27/03/2017, 07:43:57 am »

Hola

Buenas tardes, me podrán dar una mano con el siguiente problema;

Dado un vector v, su cantidad de componentes n y una posición p, desplazar todos los elementos de v un lugar
a la derecha a partir de la posición p inclusive. Después del desplazamiento, el vector tendrá duplicadas
las componentes p y (p + 1)-ésimas y se perderá el valor de su último elemento.

lo habia pensado de la siguiente manera:

//INICIO
n= input ("ingrese elementos de v: ")
p= input ("Ingrese posicion: ")
[v]=(n)
t=n   
for i=1:n
    v(i)=input ("Ingrese elem" + string(i)+": ")
end

for k = 1:n-p
    v(t)=v(t-k) //Cuando ejecuto el programa me dice indice invalido
end
v(p)=2*v(p)
v(p+1)=2*v(p+1)
clear v(n)  //¿El ultimo elemento del que habla es el n cierto?
disp ( v )

//FIN

Plantee las dudas respecto al problema en rojo. Ademas tengo algunas consultas respecto al "for"

Por lo que se es un bucle, pero siempre lo vi como un bucle que se va incrementando iteración a iteración. ¿ Se puede tomar un "paso negativo" y que ¿bucle a bucle vaya decreciendo la variable asignada al for?.

No conozco al 100% la sintaxis del Scilab, pero me parece que no has entendido lo que te piede el ejercico.

Tienes que hacer programa que dado un vector, le indiques una poscición a partir de la cual cada elemento del vector tome el valor del anterior.

La frase: "Después del desplazamiento, el vector tendrá duplicadas las componentes p y (p + 1)-ésimas y se perderá el valor de su último elemento." simplemente indica un efecto secundario de tu programa; no es que te pida hacer nada adicional.

Por ejemplo si el vector es [texx](1,2,3,4,5,6)[/texx] y la posición es [texx]2[/texx], se trasnformará en [texx](1,2,2,3,4,5)[/texx].

Para ello lo troncal es plantear este bucle:

Código:
for k=n-1:-1:p
 v(k)=v(k-1)
end

El bucle va desde n-1 hasta p de forma decreciente.

Saludos.
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!