Autor
|
Tema: Vectores y matrices en funciones en C (Leído 2,284 veces)
|
vaillo33
Desconectado
Mensajes: 9
|
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
|
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
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
vaillo33
Desconectado
Mensajes: 9
|
La cosa es que yo tengo este código(sigo abajo del 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.
|
|
|
En línea
|
|
|
|
K-YreX
|
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. #include <stdio.h> const int TAM = 100; void mostrarVector(int[], int); int main(){ int vector[TAM]; int util = 10; // se podria preguntar al usuario cuantos valores quiere ingresar for(int i = 0; i < util; i++){ } printf("\nEl contenido del array es: "); mostrarVector(vector, util); } void mostrarVector(int v[], int size){ for(int i = 0; i < size; i++) }
Ahora aprovecha las cosas que aparecen en este ejemplo para adaptarlo a tu código. Suerte PD: No utilices la librería <conio.h>, no es estándar.
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
vaillo33
Desconectado
Mensajes: 9
|
Muchas gracias por tu explicación! Ya lo entendí!!
|
|
|
En línea
|
|
|
|
ashtag
Desconectado
Mensajes: 3
|
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
|
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... )
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Uso de matrices o vectores de punteros
Programación C/C++
|
novalida
|
1
|
12,371
|
16 Marzo 2011, 01:19 am
por Don Pollo
|
|
|
vectores y matrices en C
Programación C/C++
|
howaboutno
|
6
|
3,644
|
6 Noviembre 2012, 21:41 pm
por BatchianoISpyxolo
|
|
|
ayuda con programa (matrices,vectores,funciones)
Programación C/C++
|
agusred
|
3
|
3,258
|
7 Junio 2013, 23:28 pm
por Puntoinfinito
|
|
|
Ayuda con matrices y vectores
Programación C/C++
|
ezemidget
|
4
|
2,974
|
14 Diciembre 2013, 16:23 pm
por leosansan
|
|
|
Matrices/Vectores en C
Programación C/C++
|
vaillo33
|
2
|
1,477
|
11 Enero 2019, 17:03 pm
por vaillo33
|
|