elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Devolver un arreglo o vector desde una funcion. en: 10 Junio 2016, 04:04 am
ouch, lo siento mucho, ya pude solucionarlo. No sé si algún moderador puede eliminar el tema o?.

En todo caso, dejo el código solucionado (a alguien le servirá):

Código:
#include<stdio.h>

int* ordenar_vector(int V[],int a){
  int aux=0,i,j;
  for(i=0; i<a; i++){
for(j=0; j<a-1; j++){
if(V[j]>V[j+1]){
       aux=V[j];
V[j]=V[j+1];
V[j+1]=aux;
}
}
}
return V;
  }


int main(){
int L=0;
printf("\nCuantos elementos desea que tengo el vector:");
scanf("%d",&L);
int V[L];
printf("\n\nIngrese los elementos del vector:\n");
for(int i=0;i<L;i++){
scanf("%d",&V[i]);
}

int *Z=ordenar_vector(V,L);
for(int i=0;i<L;i++){
printf("%d",Z[i]);
}

}

De igual manera, me gustaría entender ¿por qué tuve que poner el asterisco de puntero luego del int en mi función y declarar mi variable Z como puntero?
2  Programación / Programación C/C++ / Devolver un arreglo o vector desde una funcion. en: 10 Junio 2016, 03:54 am
Tengo creada una función que ordena un arreglo de forma ascendente.
Ahora necesito que esa función me regrese el arreglo ordenado para seguir usándolo en el main().

Código:
#include<stdio.h>

  int ordenar_vector(int V[],int a){
    int aux=0,i,j;
  for(i=0; i<a; i++){
for(j=0; j<a-1; j++){
if(V[j]>V[j+1]){
        aux=V[j];
V[j]=V[j+1];
V[j+1]=aux;
}
}
  }

  }


int main(){
int L=0;
printf("\nCuantos elementos desea que tengo el vector:");
scanf("%d",&L);
int V[L];
printf("\n\nIngrese los elementos del vector:\n");
for(int i=0;i<L;i++){
scanf("%d",&V[i]);
}


}

Esto no funciona simplemente poniéndole un return V al final de la función y guardar en el main() asi:
Código:
int vector_ordenado[L];
vector_ordenado=ordenar_vector(V[],L);
3  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 10 Junio 2016, 03:31 am
Me surgió un nuevo inconveniente. Creé una función para corroborar que el usuario en tiempo de ejecución no calcule por ejemplo la media antes de cargar elementos al arreglo:

Código:
int funciones::vector_vacio(vector_n V){
int z=V.n;
double suma=0;
for(int i=0;i<z;i++){
suma=suma+V.elementos[i];
}
if(suma != 0){
return 1;
}else{
return 0;
}
}

Pero cuando lo quiero aplicar a la función para hallar la media:

Código:
double funciones::media(vector_n V){
if(vector_vacio(vector_n V)==1){
int z=V.n;
double suma=0;
double media=0;
for(int i=0;i<z;i++){
suma=suma+(V.elementos[i]);
}
media=suma/z;
return media;
}else{
printf("Cargue elementos a su arreglo!!");
                return 0;
}
}

Me marca error en el argumento de vector_vacio

In static member function 'static double funciones::media(vector_n)':
[Error] expected primary-expression before 'V'

Cuando creí que todo andaba bien, apareció esto jaja, lo siento.

4  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 10 Junio 2016, 03:00 am
Genial!!

Muchas Gracias.

Saludos.
5  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 10 Junio 2016, 02:48 am
Tengo que agradecer en serio a los dos, A class_OpenGL y a AlbertoBSD. En serio Muchas Gracias.

Ahora que ya solucioné mi problema con la carga del arreglo puedo terminar de crear las funciones restantes.

Una última pregunta, ¿dónde libero la memoria?.
Al liberar la memoria se elimina lo que se haya guardado en el vector no?
6  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 21:58 pm
Cierto, me faltó tambien el [sub i]
También veo que tengo un error aquí:

Código:
for(int i=0; i<z; i++){
        scanf("%d",&vectorN.elementos[i]);
    }

Donde está "vectorN" debe también ser cambiado por "V"

Una vez solucionado esto, sigo teniendo un problema al llamar a mi función:

Código:
funciones.carga_arreglo(arreglo);


main.cpp [Error] expected unqualified-id before '.' token
7  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 21:28 pm
Si AlbertoBSD, ese era el problema, no me había dado cuenta de eso, gracias.

Ahora tengo un nuevo inconveniente en el "main.cpp", al momento de llamar a mi función creada.

A mi estructura del arreglo dinámico la renombré así:
Código:
vectorN arreglo={NULL,0};

Código:
switch(op){
case 'C':
printf("Introduzca la dimension de su conjunto de valores:");
scanf("%d",&arreglo.n);
arreglo.elementos=(int*)calloc(arreglo.n, sizeof(int));

funciones.carga_arreglo(/*Cuál sería el argumento aquí*/);

break;
8  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 16:32 pm
Por el momento tengo esto:

En el main.cpp:

Código:
case 'C':
printf("Introduzca la dimensión de su conjunto de valores:");
scanf("%d",&arreglo.n);
arreglo.elementos=(int*)calloc(arreglo.n, sizeof(int));


break;

En Calculos_estadisticos.h:

Código:
#pragma once


typedef struct vectorN{
int *elementos;
        int n;
};

typedef struct funciones{
  void carga_arreglo(vectorN V);
double media(vectorN V);
  double varianza(vectorN V);
  double desv_est(vectorN V);
 
 
 };

y ahora creando mi Calculos_estadisticos.cpp:

Código:
#include<stdio.h>
#include<math.h>
#include "Calculos_estadisticos.h"

void funciones::carga_arreglo(vectorN V){
int z=vectorN.n;
for(int i=0;i<z;i++){
scanf("%d",&vectorN.elementos);
}
}

cuando quiero guardar en z el valor de la (cantidad de elementos cargados por el usuario) me da error.
9  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 16:08 pm
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.    vectorN vector = {NULL, 0};
  6.  
  7.    fprintf(stdout, "Introduzca las dimensiones que quiera para su vector: ");
  8.    fscanf(stdin, "%u", &vector.n);
  9.    vector.elementos = calloc(vector.n, sizeof(int));
  10.  
  11.    return 0; // No olvides liberar la memoria cuando termines!
  12. }

En esta parte, vector.elementos = calloc(vector.n, sizeof(int)); por qué es necesario que ante-puesto a calloc se escriba (int*)?? Lo digo porque al usarlo así como usted escribió se produjeron errores. Luego leí ejemplos en Internet y siempre anteponen eso.

De por sí, creo que por el momento su respuesta me está ayudando mucho, le agradezco
10  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 02:58 am
Agradezco muchísimo su respuesta en serio, pero de igual manera no entiendo aún cómo hacerlo,
¿en qué archivo debo codificar el ejemplo anterior que me dio?

En el "main.cpp"; en la instrucción "switch" que corresponde a (Cargar el arreglo):
Debo pedir al usuario la cantidad de elementos que desea cargar.

Mi problema es que si no declaro la variable "arreglo" en el Calculos_estadisticos.h no puedo argumentar las funciones dentro de mi estructura.

Este sería mi archivo "main.cpp"

Código:
#include<stdio.h>
#include<ctype.h>
#include<windows.h>
#include "Calculos_estadisticos.h"

void menu(){
printf("\n\n\t\t\tC%clculos Estad%csticos.",160,161);
printf("\n\n\t1)Ingrese el tama%co y datos del arreglo   [C]",164);
printf("\n\t2)Media del arreglo                       [M]");
printf("\n\t3)Varianza del arreglo                    [V]");
printf("\n\t4)Desviaci%cn estandar del arreglo         [D]",162);
printf("\n\t5)Salir                                   [S]");
printf("\n\n\t\tIngrese una opci%cn v%clida [C-M-V-D-S]\n",162,160);
printf("\n\tOpci%cn: ",162);
}

int main(){
menu();
char op;
do{
scanf("%c",&op);
op=toupper(op);
switch(op){
case 'C':
int N;
int *a=NULL;
printf("Ingrese la cantidad de numeros del que estará compuesto el arreglo:");
scanf("%d",&N);
a=calloc(sizeof(int),N);

break;
case 'M':

break;
case 'V':

break;
case 'D':

break;
}
}while(toupper(op)!='S');
}

Este mi archivo "Calculos_vectoriales.h"
Código:
#pragma once

typedef int arreglo[*a];

typedef struct funciones{
  void carga_arreglo(arreglo V);
double media(arreglo V);
  double varianza(arreglo V);
  double desv_est(arreglo V);
 
 
 };

Por último iría mi "Calculos_estadisticos.cpp"

Código:
#include<stdio.h>
#include<math.h>
#include "Calculos_estadisticos.h"


En el que aún no tengo nada
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines