Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Abanda_9

#1
Programación C/C++ / Re: Recursividad
29 Mayo 2010, 04:09 AM
A ver, aqui os dejo hasta donde he podido llegar. Se que me falta lo mas importante, pero no consigo tenerlo...

No se si estoy cometiendo alguna locura con el codigo, asi que si hay algun error muy grave perdonadme T_T

-------------------

He hecho un fichero con varios modulos:
El primero se llama ordenacion y he puesto lo siguiente (lo he probado y funciona bien)---


#include <stdio.h>
#include <stdlib.h>
#include "burbujamejorada.h"

//Cabecera: burbuja_mejorado(E/S vect:v, E entero: n)
//Precondicion: n>0 y n pertence a los numeros naturales. V es un vector de n elementos.
//Postcondicion: Vector v con los elementos ordenados ascendentemente.

void burbuja_mejorado(int *vector, int tam)
{
     int i,j,aux,no_interc;
     i=0;
     do{
         no_interc=1;
         for(j=0;j<tam-i-1;j++){
                      if(vector[j]>vector[j+1]){
                                      aux=vector[j+1];
                                      vector[j+1]=vector[j];
                                      vector[j]=aux;
                                      no_interc=0;}}
         i++;
     }while(no_interc==1);
}
     

Otro modulo que genere un vector aleatorio (que tambien funciona correctamente)----

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "generar_vector.h"


int generar_vector_aleatorio(int *vector,int tam){
    int i;
    srand(time());
    for(i=0;i<tam;i++)
                      {
                      vector=rand();
                      }
                      }


Otro módulo con el vector ya ordenado crecientemente (este no se si funciona porque no me ha dado tiempo a comprobarlo):

#include <stdio.h>
#include <stdlib.h>
#include "vector_creciente.h"


vector_creciente(int vector, int tam)

{
int aux,i ;

generar_vector_aleatorio(vector,tam);
burbuja_mejorada(vector,tam);

for(i=0;i<tam;i++){
                   vector[aux]=vector[tam-i];
                   vector[tam-i]=vector;
                   vector=vector[aux];
                   }
                   }
                   


Y ahora, me centro en el principal, no se si hacer una funcion a parte ni como podria ser o si hay alguna manera mas facil... ni idea :( :::


#include <stdio.h>
#include <stdlib.h>
#include "principal.h"

int main(){
    int vector,tam,cont;
   
    printf("tamaño del vector");
    scanf("%i",&tam);
   
    vector= (int*) malloc (tam*sizeof(int));
           
    vector_creciente(vector,tam);
   

Desde aqui ya no se como seguir... ni siquiera se como expresarlo de otra manera T_T o si hay alguna forma muchisimo más rapida que esta...
#2
Programación C/C++ / Recursividad
28 Mayo 2010, 21:04 PM
Hola!! soy nueva en el foro y no entiendo muy bien la programacion...la actividad en la cual tengo dudas es en la siguiente:


Dado un vector ordenado crecientemente A[1...n], n>=1, diseña un algoritmo que calcule de forma recursiva la longitud de la escalera más larga, es decir, la longitud de la secuencia más larga de valores consecutivos que se encuentre en A.


No tengo el codigo porque ni siquiera se que poner ya que el tema de recursividad se me da bastante mal, asi que agradeceria que alguien me explicara el codigo paso a paso para futuras actividades...

Gracias de antemano!!