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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vectores y matrices en funciones en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vectores y matrices en funciones en C  (Leído 2,284 veces)
vaillo33

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Vectores y matrices en funciones en C
« en: 13 Enero 2019, 09:04 am »

Buenos días, mi duda es la siguiente:
Al realizar un programa con diferentes funciones();, en el que no se puede utilizar variables globales, necesito utilizar un vector/matriz, que necesito ir editando y guardando en diferentes funciones, ¿los podría pasar a otra función() de alguna manera?, o ¿tendría que hacerlo todo en una misma función?, o ¿alguna otra idea?, gracias.


« Última modificación: 13 Enero 2019, 09:28 am por vaillo33 » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #1 en: 13 Enero 2019, 10:28 am »

No entiendo muy bien tu duda, pero si quieres pasar un array n-dimensional a una o más funciones claro que puedes hacerlo. Simplemente tienes que pasar en otro/s parámetro/s su tamaño para poder recorrerlo.
Si no he resuelto tu duda y me puedes explicar un poco mejor a que te refieres, intentaré ayudarte. Suerte  :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
vaillo33

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #2 en: 13 Enero 2019, 11:14 am »

La cosa es que yo tengo este código(sigo abajo del código):
Código:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
int controladorCarton1=0, final=0, bolas=0, vectorcarton1 [20], sacadas [100], numeroscarton1[100];
int contador1=0, numerosbolas[100], controladorBola=0;
char x=0x58;
void ImprimoPrincipio(void){
    printf("----------------------------\n");
    printf("Juego del bingo simplificado\n");
    printf("----------------------------\n");
}

int GeneradorNumero(void){           //Genero un numero aleatorio
    int num;

    num = rand() % 100;
    return num;
}
int Bola(void){
    int y=0, z, v;
    if(controladorBola==0){
        for(int x=0;x<100;x++){          //creo un vector con todos los numeros del 1 al 100
            numerosbolas[y]=x+1;
            y++;
            controladorBola=1;
        }
    }if(controladorBola==1){
        do{
            z=GeneradorNumero();
        }while(numerosbolas[z]==0);
        v=numerosbolas[z];
        numerosbolas[z]=0;

    }
    return v;
}

void Carton1(void){
    int y=0, z, v, bola;
    if(controladorCarton1==0){
        printf("Carton 1: \n");
        for(int x=0;x<100;x++){          //creo un vector con todos los numeros del 1 al 100
            numeroscarton1[y]=x+1;
            y++;
        }
        for(int u=0;u<20;u++){
            z=GeneradorNumero();

            do{
                z=GeneradorNumero();
            }while(numeroscarton1[z]==0);

            vectorcarton1[u]=numeroscarton1[z];
            numeroscarton1[z]=0;
            printf("%d",vectorcarton1[u]);
            v=vectorcarton1[u]/10;
            if(v<1){
                printf("  ");
            }else{
                printf(" ");
            }
            if(u==4||u==9||u==14||u==19){
                printf("\n");

            }
        }
    }else{
        printf("Bolas: ");
        bola=Bola();
        sacadas[bolas]=bola;
        for(int a=0;a<=bolas;a++){
            printf("%d ",sacadas[a]);
        }
        bolas++;
        printf("\nCarton 1:\n");
        for(int i=0;i<20;i++){
            if(vectorcarton1[i]==bola){
                vectorcarton1[i]=x;
                contador1=contador1+1;

            }
        }
        for(int j=0;j<20;j++){
            if((int(vectorcarton1[j])==88)){
                printf("%c",vectorcarton1[j]);
                printf("  ");
                if(j==4||j==9||j==14||j==19){
                    printf("\n");

                }
            }else{
                printf("%d",vectorcarton1[j]);
                v=vectorcarton1[j]/10;
                if(v<1){
                    printf("  ");
                }else{
                    printf(" ");
                }

                if(j==4||j==9||j==14||j==19){
                    printf("\n");

                }
            }
        }
        if(contador1==20){
            printf("Gana el jugador 1\n");
            final=1;
            return;

        }
    }


    controladorCarton1=1;
}

int main(void){
    srand(time(NULL));
    ImprimoPrincipio();
    Carton1();
    printf("\n");
    getchar();
    do{
        system("cls");
        ImprimoPrincipio();
        Carton1();
        getchar();
    }while(final==0);
    getchar();
    return 0;

}
Me acabo de dar cuenta que no se pueden utilizar variables globales, y no se como puedo utilzar por ejemplo: el vector numerosbolas[100], en la función Carton1, si no fuera por esa variable global que he creado, no sabría utilizarlo en otra función como Carton1 para poder leer ese vector, editarlo y guardarlo, no se si me he explicado bien. :-X
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #3 en: 13 Enero 2019, 11:32 am »

Cuando no puedas usar variables globales o aunque puedas si prefieres no usarlas ya que no es recomendable porque el código pierde seguridad, todo lo que no puedes usar en una función porque no es global, se lo pasas como parámetros. Además los vectores cuando no se usa todavía memoria dinámica se suelen crear usando una constante para el tamaño, así si luego se quiere cambiar el tamaño, basta con cambiar el valor de esa constante.

Te pongo un ejemplo bastante completo que tiene cómo pasar arrays como parámetros, cómo usar constantes y qué hacer si no vamos a usar el array entero.

Código
  1. #include <stdio.h>
  2.  
  3. const int TAM = 100;
  4.  
  5. void mostrarVector(int[], int);
  6.  
  7. int main(){
  8.    int vector[TAM];
  9.    int util = 10; // se podria preguntar al usuario cuantos valores quiere ingresar
  10.    for(int i = 0; i < util; i++){
  11.        printf("Elemento %d: ", i);
  12.        scanf("%d", &vector[i]);
  13.    }
  14.    printf("\nEl contenido del array es: ");
  15.    mostrarVector(vector, util);
  16. }
  17.  
  18. void mostrarVector(int v[], int size){
  19.    for(int i = 0; i < size; i++)
  20.        printf("%d  ", v[i]);
  21.    printf("\n");
  22. }

Ahora aprovecha las cosas que aparecen en este ejemplo para adaptarlo a tu código. Suerte :-X

PD: No utilices la librería <conio.h>, no es estándar.
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
vaillo33

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #4 en: 13 Enero 2019, 12:07 pm »

Muchas gracias por tu explicación! Ya lo entendí!! :D
En línea

ashtag

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #5 en: 15 Enero 2019, 21:46 pm »

Hola, tengo problema con la parte de aumentar la producción hasta un 50% usando vectores, ayúdenme porfavor
En una hacienda hay un hato que se compone de N vacas. Diseñe un programa que guarde en un vector la producción de leche diaria (en litros) de cada una de las vacas, además que calcule la producción total del hato diario y cual es la ubicación de la vaca que dio más leche en el día.

Si consideramos como producción normal 25 litros diarios y ninguna vaca puede producir más de 40 litros por día, cree un nuevo vector en el que se clasifique la producción según el siguiente criterio, si la producción está entre 20 y 25 litros etiqueta “PRODUCCION MEDIA”, si supera los 25 litros visualizar “ALTA PRODUCCION”, contabilice cuantas vacas tienen producción media y cuantas altas. Calcule también el promedio de la producción de las vacas.

Para incrementar la producción hasta un 50% de leche nos aconsejan implementar 2 medidas:

Realizar 3 ordeños al día, cuyo incremento hasta del 30%, con posibles valores (1,2,3) que equivalen 1=0%; 2=15% y 3=30% de incremento
Tener una dieta balanceada, hasta 20% de incremento (1,2,3) que equivalen 1=0%; 2=10% y 3=20% de incremento
Cargue los vectores de ordeños y dieta, calcule los incrementos, sume los dos incrementos y calcule el incremento proyectado de producción de leche para cada vaca y el incremento total de la hacienda ganadera.
En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Vectores y matrices en funciones en C
« Respuesta #6 en: 15 Enero 2019, 22:00 pm »

Si vas a preguntar sobre algo que no está directamente relacionado con este tema, debes abrir un tema nuevo para tu problema. Además de eso te aconsejo que pongas el código que tengas hecho para ver cómo lo llevas (ponlo entre etiquetas de código GeSHi, si lo pones...  :silbar:)
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de matrices o vectores de punteros
Programación C/C++
novalida 1 12,371 Último mensaje 16 Marzo 2011, 01:19 am
por Don Pollo
vectores y matrices en C
Programación C/C++
howaboutno 6 3,644 Último mensaje 6 Noviembre 2012, 21:41 pm
por BatchianoISpyxolo
ayuda con programa (matrices,vectores,funciones)
Programación C/C++
agusred 3 3,258 Último mensaje 7 Junio 2013, 23:28 pm
por Puntoinfinito
Ayuda con matrices y vectores
Programación C/C++
ezemidget 4 2,974 Último mensaje 14 Diciembre 2013, 16:23 pm
por leosansan
Matrices/Vectores en C
Programación C/C++
vaillo33 2 1,477 Último mensaje 11 Enero 2019, 17:03 pm
por vaillo33
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines