Autor
|
Tema: Programa de Concurso de Programacion (Leído 7,862 veces)
|
¡Micronet!
Desconectado
Mensajes: 159
|
Aqui pongo este problema... que lo quiero resolver entre todos, por que para ese entonces no entendi como hacerlo, espero me puedan ayudar a comprender este programa en C++, ya que en eso lo hare saludos... Mi Unico Objetivo es aprender... Lo que no entiendo es que hacer en ese programa... alguien me lo podria explicar porfavor, para ponerme a trabajar en el
|
|
« Última modificación: 27 Diciembre 2010, 05:30 am por ¡Micronet! »
|
En línea
|
"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
|
|
|
ghastlyX
Ex-Staff
Desconectado
Mensajes: 1.900
|
Básicamente, te piden que dada una secuencia de números encuentres la longitud de la subsecuencia consecutiva creciente más larga y digas en qué posición empieza si no lo he entendido mal.
El problema es fácil, ya que además te permiten hacerlo cuadráticamente, dado que la longitud de la secuencia te dicen que como mucho será 1000.
|
|
|
En línea
|
|
|
|
¡Micronet!
Desconectado
Mensajes: 159
|
Básicamente, te piden que dada una secuencia de números encuentres la longitud de la subsecuencia consecutiva creciente más larga y digas en qué posición empieza si no lo he entendido mal.
okai ... mañana empiezo con este programa... y publico mi programa , espero sea posible que me puedan ayudar en el transcurso... se que a lo mejor es un programa basico pero me mantiene ocupado programando jejeje Lh: No hagas doble post utiliza el botón modificar. Graciasusando el ejemplo... numero 7 son 7 numeros que se agregan... de los cuales son: 3,1, 4,1, 5,9,2 tengo en mente que la secuencia es la siguiente: 3 + 1 = 4 (S=3 (ORIGEN)) 4 + 1 = 5 (P=4 (FIN)) ¿por que? porque el siguiente numero no da la suma correcta 1 + 5 = 9 (Error) #include <iostream> using namespace std; int main(){ int p=0,i,v[6]; int origen,fin,sum; cout<<"Dame una secuencia de 7 numeros"<<endl; for(i=0;i<6;i++){ cin>>p;cout<<endl; v[i]=p; p=0; } origen= v[0]; for(i=0;i<6;i++){ cout<<v[i]<<" "; }cout<<endl; for(i=0;i<6;i++){ sum=v[i]+v[i+1]; if(v[i+2] == sum){ fin=v[i+1]; } i+=1; } cout<<endl<<"Origen(S): "<<origen<<" Final(P) "<<fin; return 0; }
Gracial daniel666... *Suponiendo que estoy bienHice este programa... el cual por obvias razones me arrojara basura... mis dudas suponiendo que estoy viendo bien el problema.... como solucionaria lo que me arroja de basura (osease...que no se pase del limite de mi vector) ¿? y como hago que mi vector sea dinamico ¿? (por que si lo noto en el problema es un numero infinito) *Si estoy mal desde el inicioAlguien me puede explicar con mas detalle el problema ¿? :S... para poder resolverlo mejor... :S
|
|
« Última modificación: 30 Diciembre 2010, 21:13 pm por Littlehorse »
|
En línea
|
"La Tarea No Se Hace, Pero No Indica Que No Se Ayude Al Estudiante"
|
|
|
negux
Desconectado
Mensajes: 63
|
para que usas la matriz deberia de ser un arreglo no? int v[6];
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
para que usas la matriz deberia de ser un arreglo no? int v[6]; Está usando un arreglo, no una matriz.
|
|
|
En línea
|
|
|
|
xassiz~
|
Está usando un arreglo, no una matriz.
¿No es lo mismo vector, arreglo, matriz, array?
|
|
|
En línea
|
|
|
|
Ferno
Desconectado
Mensajes: 375
|
¿No es lo mismo vector, arreglo, matriz, array? Arreglo = vector = array (arreglo en inglés). Matriz es un arreglo de arreglos, es decir, de dos dimensiones. Es un arreglo, el cual cada elemento es de tipo arreglo. Al hacer esto, es análogo a decir que formaste una tabla o una matriz.
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
No, no es lo mismo. vector es propio de notación matemática, aunque también es aplicable aquí. Matriz es diferente de arreglo o array.
|
|
|
En línea
|
|
|
|
|
08l00D
Desconectado
Mensajes: 168
|
y como hago que mi vector sea dinamico ¿? (por que si lo noto en el problema es un numero infinito) justamente con memoria dinamica... lo que podrias hacer es declarar el array como un puntero al tipo de dato que quieras usar y con el operador new le asignas la cantidad de memoria que precises... despues el identificador que usaste para declarar el puntero lo podes usar como si enrealidad fuera un array... es decir indexandolo con los operadores [ y ].. o sino usando aritmetica de punteros.. puntero + i... *(puntero + i) con respecto a tu problema pienso que lo estas planteando mal... el algoritmo no seria asi..el problema te deci que encuentres la subsecuencia creciente mas grande..osea de un array de enteros cual es la secuencia de menor a mayor mas grande... Como dice el ejercicio P se refiere al numero en el que empieza esa subsecuencia... y S se refiere a la longitud de esa subsecuencia NO al elemento con el que termina... es decir a la cantidad de elementos que conforman esa subsecuencia... tengo en mente que la secuencia es la siguiente: 3 + 1 = 4 (S=3 (ORIGEN)) 4 + 1 = 5 (P=4 (FIN)) ¿por que? porque el siguiente numero no da la suma correcta 1 + 5 = 9 (Error)
El planteamiento esta mal por que el programa no te pide que busques el cumplimiento de una sucesion de patrones.... mira te pongo el ejemplo de como seria la subsecuencia de esa secuencia que pusiste: secuencia: 3,1,4,1,5,9,2 subsecuencia maxima: 3,4,5,9 (como ves cuenta de 4 elementos, S es igual a 4) p: 3 s: 4 tambien hay otra subsecuencia maxima empezando por el elemento nº 2 1,4,5,9 la implementacion del algoritmo no es muy compleja... si entendiste lo que puse vas a poder hacerlo facilmente.. cualquier duda pregunta...
|
|
« Última modificación: 31 Diciembre 2010, 06:58 am por 08l00D »
|
En línea
|
|
|
|
|
|