• Viernes 9 de Mayo de 2025, 07:04

Mostrar Mensajes

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


Mensajes - i82maria

Páginas: 1 2 [3] 4 5
51
C/C++ / Duda De Listas Simples En C
« en: Viernes 12 de Noviembre de 2004, 21:55 »
Lo que necesito esta puesto ahora en el script de arriba, en la nueva discusion que he puesto de Error de ejecucion en memoria, si alguien quiere ayudarme, que la lea. Gracias.

52
C/C++ / Re: Alguien Sabe De Un Buen Compilador De C
« en: Viernes 12 de Noviembre de 2004, 17:59 »
Cita de: "Diodo"
Hola de nuevo  :hola:

No es que seas torpe, no se puede saber todo en esta vida, si no seria un aburrimiento, por ejemplo yo no tengo ni idea de que es eso del pvm,siento no poder ayudarte pero mis conocimientos informaticos se limitan al c/c++ algo de programcion de internet y poco mas, en realidad estoy estudiando ingenieria industrial como pone abajo en la firma  :lol:
Me ha picado la curiosidad sobre el pvm ese y buscando en google salen varias paginas que te explican que es como instalarlo etc

PVM (Parallel Virtual Machine) es un software que permite unir una serie de estaciones Unix en red y hacerlos funcionar como un solo computador en paralelo. De esta forma, grandes problemas computacionales pueden ser resueltos con un coste menor. PVM se puede obtener de forma libre en la dirección:


http://www.epm.ornl.gov/pvm

y continua .........

en esta pagina parece que lo explican bastante bien y tienen un tutorial, asi que animo y a leer

Un saludo  :kicking:
Hola  B), gracias por responderme siempre a mis preguntas. Tienes razón de todo no se puede saber, yo te agradezco el haber mirado esas pa´ginas, pero lo que realmente necesito, no es código, ni documentación del lenguaje pvm, sino una idea de que tengo que hacer una practica de pvm, y no sé de que hacerla. Te pregunte por si sabias algo, o por si eras informático. Muchas gracias de todos modos, yo estoy terminando la carrera de Ingenieria Tecnica en Informatica de Gestion.
Saludos si sabes de alguien, comentaselo, vale?.
Gracias, eres muy simpatico.

53
C/C++ / Re: Alguien Sabe De Un Buen Compilador De C
« en: Jueves 11 de Noviembre de 2004, 21:31 »
Cita de: "Diodo"
Hola  :hola:

A ver maria que te veo un poco perdidilla, cualquier compilador de c++ puede compilar c. C++ es un lenguaje creado a partir de c y por tanto lo contiene, es decir usa mucha de su sintaxis funciones etc
Ademas de que crees que es lo de cpp que acompaña al dev? c plus plus  :P

Un saludito y suerte con los programas
Gracias tienes toda la razón, yo es que creia que el visual C++ no era muy bueno para compilar practicas de C. Gracias, soy una torpe. Por cierto, supongo que estudias informatica, o que eres informatico, te puedo hacer una pregunta?. Tengo que hacer una practica de pvm, y no tengo mucha idea de como empezar, si sabes algo del lenguaje, queria comentarte a ver de uqe `puedo hacerla, porque el tema es libre. Por favor contestame si sabes algo, para orientarme.
Gracias de nuevo,
saludos mjose
 :rolleyes:

54
ADA / Necesito Ayuda Sobre Pvm
« en: Jueves 11 de Noviembre de 2004, 20:48 »
Aunque este foro sea de ADA, es lo más parecido que he encontrado a PVM, por favor, si alguien conoce ese lenguaje, querria hacerle una consulta, tengo quye hacer una practica en pvm, y soy nueva en esto. Por favor,si alguien sabe algo, que me responda. Gracias
 ;)

55
C/C++ / Re: Alguien Sabe De Un Buen Compilador De C
« en: Jueves 11 de Noviembre de 2004, 14:07 »
Cita de: "Diodo"
Hola  :hola:

Yo llevo usando una version del Microsoft Visual Studio 6.0 que encontre en el kazaa, es una version light comprimida (80 mb creo), pero totalmente operativa, y de momento no me ha dado problemas.
En el emule hay cantidad de versiones de distintos tamaños, pero te aconsejo que entres en una pagina como spanishare para buscar enlaces, ya que tambien hay muchos fakes por ahi rulando.
Ni que decir tiene que solamente son copias de seguridad que deberas probar  :rolleyes:  usar durante unos dias  :lol:  y luego borrar :D  para comprarte el original  :whistling:

Por cierto, siento no poder ayudarte con lo de el randomize, ya que no se como va(busca por intenne que seguro que hay algun ejemplo), y lo de las estructuras. Estoy muy liadillo ahora con unas cuantas practicas que tengo que entregar la semana que viene.

Un saludo  :hola:
Gracias por responderme, pero insisto que lo que necesito es un compilador de C, no de C++. Y respecto al randomize, lo que quiero es que creo que esa es una manera antigua de usar los numeros aleatorios en C, quiero que se me traspase a la manera nueva, usando el rand, pero no sé como hacerlo, para que me funcione bien la practica. Me entiendes?, Eso es lo que quiero yo se q el rand se usa en C++, pero no sé como ponerlo en esta practica mia.
Gracias

56
C/C++ / Alguien Sabe De Un Buen Compilador De C
« en: Miércoles 10 de Noviembre de 2004, 18:40 »
Por favor, quisiera saber si alguien conoce algun sitio de la web, donde me pueda bajar un buen compilador de C, tengo el Dev Cpp, pero es que me da muchos probleamas. Si alguien conoce algun buen compilador bajo Windows, que me conteste, porfi, que me hace mucha falta.
Gracias
 :rolleyes:

57
C/C++ / Re: Numero Aleatorios En C
« en: Domingo 7 de Noviembre de 2004, 19:34 »
Cita de: "Diodo"
Holas  :hola:  Me alegro que te sirviera de ayuda

Si puedes adjunta el archivo cpp para echarle un vistazo, que se ven mejor los errores desde el compilador.

ht luego
Verás ayudarme en el sentido de comprender más o menos lo que dices si, pero en mi práctica insisto es de C, y no admite la libreria <cstdlib>, sino stdlib.h.
Asi que aqui te adjunto el codigo, y lo he compilado, compila pero al ejecutar es segmentation fault.

[CODE]
/*Escribir un programa para generar una matriz de 4 x 5 elementos reales,
multiplicar la primera columna por cualquier otra y mostrar la suma de los
productos. El programa debe descomponerse en subproblemas y utilizar punteros
para acceder a los elementos de la matriz*/

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


main()
{
    float **mat, *productos;
    int n;
    srand(time(NULL));
    generarMatriz(mat);
    multiplicaColumnas(mat, rand() % n, productos);
    mostrarSumaProductos(productos);
   }
   
 generarMatriz(float **m)
 {
    int i, j;
   
   m = (float**) malloc(4*5 *sizeof(float));
   //randomize();
   for(i=0; i<4; i++){
      for(j=0; j<5; j++)
        (int) *(m + i*5 +j) = rand() + rand() /100;
        }
 }
 
 multiplicaColumnas(float **m, int ncolum, float *vp)
 {
   int i;
   vp = (float *)malloc(5* sizeof(float));
   for(i=0; i<4; i++)
      // *vp++ = (*(m+ i*5)) * (*(m + i*5 + ncolum));
      vp = m[0] * m[ncolum];
      vp++;
  }
 
  mostrarSumaProductos(float *v)
  {
    int i, suma = 0;
    for(i=0; i< 4; i++)
       suma += *v;
       *v++;
   printf("%f\n", suma);
   }
   
Por favor, si puedes miramelo , gracias

58
C/C++ / Re: Acerca De Algunas Dudas En C
« en: Domingo 7 de Noviembre de 2004, 19:16 »
Cita de: "jcaz15"
Hola tengo la siguiente duda espero que alguien me pueda ayudar

Estoy tratando de hacer una programa y en una parte de este, deseo que se pueda elegir dos opciones, para ser más especifico es lo siguiente:

llego a un apartado en el que el programa dirá:

Qué tipo de viga desea calcular:
a) Simplemente apoyado-carga uniforme
b)Simplemente apoyada-carga puntual

y la verdad es que no tengo idea de como hacerlo, intenté hacer lo siguiente:

printf(" \n Programa para Calcular los Esfuerzos Cortantes y Momentos M ximos  \n \n \n");
printf(" ¨Qué tipo de carga tiene su viga?  \n \n");
printf( " a) Carga distribuida  \n");
printf( " B) Carga puntual      \n");
scanf( "%d", &tipocar);

y después, dependiendo de la opción elegida se el programa seguirá en el módulo correspondiente, pero por ejemplo ingreso la opcion b y continua con el programa como si hubiera escogido "a", es decir no me funciona..

Espero que alguien me pueda ayudar, no hacerlo, solamente  guiarme....
gracias..
Hola supongo que lo que tu necesitas es algo asi.Una sentencia de tipo switch

declaras una variable opc

char opc;
switch(opc){
   case 'a': printf("Carga uniforme\n");
   break;
  case 'b': printf("Carga puntual\n");
  break;
}

segun la opcion que elija el usuario, si elije 'a', mostrara "Carga uniforme"
y si elige 'b' mostrara "Carga Puntual".
Espero haberte ayudado en algo.
Saludos

59
C/C++ / Practica De Vectores En C++
« en: Domingo 7 de Noviembre de 2004, 19:11 »
Hola acabo de empezar a usar un poco el lenguaje C++, asi que no estoy muy puesta. Tengo que hacer una practica de vectores, con una funcion tipo menu, y en cada opcion, que haga algo, bien que muestre el vector, bien que inserte un elemento, etc, mi pregunta es que en el switch, que viene adjunto, en cada case, yo puedo crear una funcion para cada case?. Es decir, una que muestre el tamaño del vector, otra que muestre el primer elemento, lo mismo que tengo puesto en cada case, pero haciendo una funcion aparte?. Es que no sé como hacerlo.
Aqui muestro el codigo de la práctica.
[CODE]
/*Practica de vectores*/

#include <iostream>
#include <vector>    // necesario para el contenedor vector
#include <cstdlib>   //necesario para rand() y srand()

using namespace std;

int main(void)
{
vector <int> v(6);
int d1, d2;
int b;
int num;
int pos;
int bor;
char op;
int opc;


do{
cout <<"*******Practica de vectores******\n" ;

cout <<" 1. Introducir datos en el vector.\n";
cout <<" 2. Mostrar el vector.\n";
cout <<" 3  Mostrar el tamaño del vector.\n";
cout <<" 4. Mostrar el primer elemento del vector.\n";
cout <<" 5. Mostrar el ultimo elemento del vector.\n";
cout <<" 6. Añadir elementos al final del vector.\n";
cout <<" 7. Invertir el vector\n";
cout <<" 8. Ordenar el vector.\n";
cout <<" 9. BUscar un elemento en el vector\n";
cout <<" 10. INsertar un elemento en el vector.\n";
cout <<" 11. Borrar el primer elemento del vector.\n";
cout <<" 12. Borrar el ultimo elemento del vector.\n";
cout <<" 13. Borrar un elemento cualquiera del vector.\n";
cout <<" 14. Borrar el vector.\n";

cout <<" Elija una opcion.\n";
cin >> opc;




switch(opc){
     case 1: for (int i=0 ; i<v.size() ; i++) {
          cout << "Introduce un valor real ";
          cin >> v;
          cout << endl;   
      }
       break;
       
     case 2:
          for (int i=0 ; i<v.size() ; i++) cout << v << " ";
   cout << endl;

       break;
     
     case 3:    cout << "El tamaño del vector es = " << v.size() << endl;
      cout << endl;
       break;
     
     case 4:    cout << "El primer elemento = " << v.front() << " o bien "<< *(v.begin()) << endl;
      cout << endl;
       break;
       
     case 5:    cout << "El Ultimo elemento = " << v.back() << " o bien "<< *(v.end()-1) << endl;
      cout << endl;

       break;
     
     case 6:    cout << "Insertamos al final del vector el elemento:  ";
      cin >> d1;

      v.push_back(d1);

      cout << " y el  " ;
      cin >> d2;
      cout << endl;
      v.push_back(d2);
      cout << endl;
      
      cout << "Ahora el vector es: ";
      for (int i=0 ; i<v.size() ; i++) cout << v << " ";
      cout << endl;
      cout << endl;

       break;
     
     case 7:   for (vector<int>::iterator it = v.begin(); it!=v.end(); ++it)
          cout << *it << " ";
      cout << endl;   
      reverse(v.begin(),v.end());
      cout << "EL vector invertido es: ";
      cout << endl;
      cout << endl;
      for (int i=0 ; i<v.size() ; i++) cout << v << " ";
      cout << endl;
       break;
     
     case 8:    sort(v.begin(),v.end());
           cout << "EL vector ordenado es:   ";
      for (int i=0 ; i<v.size() ; i++) cout << v << " ";
      cout << endl;
      cout << endl;
       break;
     
     case 9:    cout << "Busqueda: Introduce entero a buscar ";
      cin >> b;
      cout << endl;
      if (find(v.begin(),v.end(),B)==v.end()) cout << b <<" no encontrado\n";
      else cout << b <<" encontrado\n";

     
       break;
     
     case 10:   cout << "Insertemos el ";
      cin >> num;
      cout << endl;
      cout << "en la posicion ";
      cin >> pos;
      cout << endl;
      cout << endl;
      v.insert(v.begin() + pos, num);
      for (int i=0 ; i<v.size() ; i++) cout << v << " ";
      cout << endl;
      cout << endl;
       break;
       
     case 11:   cout << "Borramos el primer elemento:  ";
      cout << endl;
      v.erase(v.begin() + 0);
      for (int i=0 ; i<v.size() ; i++) cout << v << " ";
      cout << endl;
      cout << "Tam = " << v.size() << endl;
      cout << endl;

       break;
       
     case 12:     cout << "Borramos el ultimo elemento:  ";
      cout << endl;
      v.pop_back();  //borra el ultimo elemento del vector

     
       break;
     
     case 13:
       break;

     case 14:
       break;

     default: cout << "Error salir del programa\n";
     
     
     }
     cout <<" DEsea continuar?\n";
cin >> op;
}while(op!= 's' || op != 'S');    
}





Insisto yo lo que quiero es que me digan como puedo hacer una función para cada case del programa.
Gracias, ruego respondan lo antes posible.
 :smartass:

60
C/C++ / Re: Estructuras En C
« en: Domingo 7 de Noviembre de 2004, 18:42 »
Cita de: "Diodo"
Hola :hola:

Al compilar el codigo me da 30 y pico errores , la mitad son de lo que te dice juanK que accedes a los elementos de la estructura erroneamente con -> , debes usar "." (punto), otros errores son de que no estan declaradas las funciones, pero eso es a lo mejor porque no las has pegado en el post

Si puedes adjunta el archivo cpp para verlo mejor


ht luego
Entonces según me decis, se debe usar la estructura con punto, porque no se trata de una lista?. Yo es que he usado el operador -> porque como son estructuras de tipo puntero, por eso,si alguien me podeis explicar el porqe de usar operador punto, y operador flecha en este ejemplo, Respecto a las funciones es que es un ejercicio tomado de un libro, asi que no me di cuenta de uqe las funciones no estuvieran declaradas.
Gracias
Contestadme lo antes posible. :hola:

61
C/C++ / Re: Numero Aleatorios En C
« en: Domingo 7 de Noviembre de 2004, 12:55 »
Cita de: "Diodo"
Holas  :hola:

Como veo que estas bastante preocupada con el programa ese, te he hecho un miniprograma que calcula las matrices aleatorias y las muestra por pantalla, lo he hecho pasando en las funciones variables float[4][5] en vez de puntero por que yo lo veo mas facil asi para recorrerlas

Los problemas de generar numeros , matrices o lo que sea aleatorio normalmente llevan asociados un rango de valores posibles, aunque no especificas entre que valores.Calcular valores aleatorios entre 0 y infinito no suele ser factible, asi que en el ejemplo lo he hecho con valores float entre 1,00 y 100,99 para que se vea mejor.Aunque tu puedes modificarlo a tu gusto  :comp:

En el codigo te explico mas o menos como va el asunto,aunque hay un problema a la hora de generar los numeros aleatorios ya que la velocidad del procesador es bastante mayor que la del reloj, entonces no da tiempo a generar nuevas semillas entre componente y componente de la matriz.He solucionado esto un poco chapuceramente metiendole un retardo con un for, que siempre dependera del ordenador, por eso es una chapuza, si se te ocurre otra forma mejor que lo cambies.


Código: Text
  1.  
  2.  
  3. #include &#60;stdio.h&#62;
  4. #include &#60;stdlib.h&#62;
  5. #include &#60;cstdlib&#62;  
  6. #include &#60;ctime&#62;
  7.  
  8. float generarNumeroAleatorio();
  9. void generarMatriz(float m[4][5]);
  10. void mostrarMatriz(float m[4][5]);
  11.  
  12.  
  13. void main()
  14. {
  15. do
  16. {
  17. float mat[4][5];
  18. generarMatriz(mat);
  19. mostrarMatriz(mat);
  20. printf(&#34;&#092;n&#092;n Desea generar otra matriz---SI=ENTER / NO=n&#34;);
  21. }
  22. while(getchar()!='n');
  23.  
  24. }
  25.  
  26. // GENERACION DEL NUMERO ALEATORIO
  27. // Partiendo de que se quiere un numero aleatorio float entre 1 y 100, la parte decimal
  28. // la he restringido a 2 digitos
  29.  
  30. float generarNumeroAleatorio()
  31. {
  32.   float valor,entera,decimal;// valor sera el numero decimal aleatorio final,entera la parte
  33.                              // entera del numero y decimal la parte decimal
  34.  
  35.   srand(clock());         // tomo una semilla a partir de los segundos del reloj interno
  36.                             
  37.   entera= 1 + (rand() % 100); // como rand() nos dara un numero entero del que no sabemos
  38.                               // entre que numeros estara debemos hacer %100 para restringirlo
  39.                               // entre 0 y 99, ademas le sumamos 1 a ese valor para que el
  40.                                  // numero este entre 1 y 100
  41.  
  42.   decimal= 1 + (rand() % 100); // para la parte decimal se procede igual que con la entera
  43.   decimal/=100;                // pero luego la divido por 100 para que sea decimal
  44.  
  45.   valor=entera+decimal;        // finalmente sumo las dos partes y se lo asigno a valor
  46.  
  47.   return valor;                // y lo devuelvo
  48. }
  49.  
  50.  
  51. //GENERAR UNA MATRIZ
  52.  
  53. void generarMatriz(float m[4][5])
  54. {
  55.   int i,j; //indices apra recorrer la matriz
  56.  
  57.   for(i=0; i&#60;4; i++) // recorro las filas
  58.   {
  59.     for(j=0; j&#60;5; j++) // recorro las columnas
  60.     {
  61.       float numero=generarNumeroAleatorio();  //le asigno a numero el valor aleatorio
  62.       m[i][j]=numero;   // a cada valor de la matriz un numero aleatorio
  63.                                               // que devuelve generarNumeroAleatorio()
  64.       for(int t=0;t&#60;1200000;t++)  // Retardo para darle tiempo a srand a coger otra semilla
  65.       {                           // para el siguiente numero aleatorio.UN poco chapucero¡¡¡
  66.       }                          
  67.     
  68.     }
  69.   }
  70. }
  71.  
  72. // FUNCION QUE MUESTRA LA MATRIZ EN PANTALLA
  73.  
  74. void mostrarMatriz(float m[4][5])
  75. {
  76.   int i,j;
  77.  
  78.   printf(&#34;&#092;n&#092;n&#34;);
  79.   for(i=0; i&#60;4; i++)
  80.   {
  81.     printf(&#34;(&#34;);
  82.     for(j=0; j&#60;5; j++)
  83.     {
  84.       printf(&#34;   %3.2f&#34;,m[i][j]);
  85.     }
  86.     printf(&#34; )&#34;);
  87.     printf(&#34; &#092;n&#34;);
  88.   }
  89. }
  90.  
  91.  
  92.  

Espero que te sirva de ayuda y no te lie mas........ :lol:

Un saludo y suerte :kicking:

PD: te he adjuntado el fichero cpp
Gracias me has ayudado mucho, eres muy amable, si puedes lee mi pregunta esa de las estructuras, a ver si entiendo mejor el fallo, porque es que no le entiendo.
Saludos

62
C/C++ / Re: Duda Con La Aproximacion En Un Printf
« en: Jueves 4 de Noviembre de 2004, 01:47 »
Cita de: "Ian"
Esto funciona tambien con long float?????


Help is tnk`s...
Si pero para long float en lugar de ser %f, seria %lf.
SOlo hay que cambiar eso, el resto es igual.

63
C/C++ / Re: Numero Aleatorios En C
« en: Miércoles 3 de Noviembre de 2004, 16:40 »
Cita de: "Diodo"
Hola

Ese codigo que te he puesto es de C, y creo que te deberia funcionar, sobre la funcion randomize no tengo ni idea, yo use ese codigo para un programilla y va perfectamente

Un saludo  :hola:
Gracias, es que resulta que este ejercicio es de un libro de C, de Programacion en C, y no sé si es que el modo de usar numeros aleatorios es un modo antiguo. Pero podias porfavor ayudarme a usar el modo que tu me dices en esta practica. Es que soy nueva en esto, gracias.
Saludos desde Andalucia

64
C/C++ / Re: Estructuras En C
« en: Miércoles 3 de Noviembre de 2004, 10:52 »
Cita de: "JuanK"
Aunque has declarado una estructura.. lo cierto es que la trabajas de manera atipica.. es decir cargas un puntero pero lo manejas como un array, lo cual no tienen nada de malo pero por lo menos yo noestoy acostumbrado a ese tipo de cosas, y por lo que veo tu tampoco.  :o

Si lo vas a manejar como un array entonces los miembros de la estructura no se acceden como si fuese a travez de apuntadores o sea asi:
Código: Text
  1.  
  2. lista[i]-&#62;nombre
  3.  
  4.  

Sino que hay que accederlos copn notacion de variables o sea:
Código: Text
  1.  
  2. lista[i].nombre
  3.  
  4.  

Adicional a todos estos errores al final en el ultimo printf haces esto:
Código: Text
  1.  
  2. printf(&#34;&#092;t%s &#092;n&#34;. lista-&#62;nombre);
  3.  
  4.  

No se que es lo que pretendes hacer pero creo que deberias hacer esto:
Código: Text
  1.  
  2. printf(&#34;&#092;t%s &#092;n&#34;. lista[i].nombre);
  3.  
  4.  

 :smartass:
Gracias por tu respuesta, pero entonces si mi intención era usarlos como punteros, porque me da error, al compilar. ?. Por favor, si puedes, responderme.
Gracias.
Saludos desde España

65
C/C++ / Re: Numero Aleatorios En C
« en: Martes 2 de Noviembre de 2004, 19:13 »
Cita de: "Diodo"
Hola  :hola:

Para generar un numero aleatorio con rand() tienes que hacer esto

Código: Text
  1.  
  2.  
  3. //Debes incluir estas dos librerias
  4.  
  5. #include &#60;cstdlib&#62;  
  6. #include &#60;ctime&#62;
  7.  
  8. void main()
  9. {
  10. int valor;
  11. srand(time(NULL)); // generacion de una semilla a partir de los segundos del reloj
  12. valor= 1 + (rand() % 10);  // en valor se almacena el numero aleatorio
  13. }
  14.  
  15.  
  16.  

Espero que te sirva de ayuda, un saludo  :kicking:
Verás, es que el programa es en C, asi que no me sirve eso que me has puesto.
Gracias de todos modos, el codigo es este:

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


main()
{
float **mat, *productos;
int n;
randomize();
generarMatriz(mat);
multiplicaColumnas(mat, rand() % n, productos);
mostrarSumaProductos(productos);
}

generarMatriz(float **m)
{
int i, j;

m = (float**) malloc(4*5 *sizeof(float));
randomize();
for(i=0; i<4; i++){
for(j=0; j<5; j++)
(int) *(m + i*5 +j) = rand() + rand() /100;
}
}

multiplicaColumnas(float **m, int ncolum, float *vp)
{
int i;
vp = (float *)malloc(5* sizeof(float));
for(i=0; i<4; i++)
// *vp++ = (*(m+ i*5)) * (*(m + i*5 + ncolum));
vp = m[0] * m[ncolum];
vp++;
}

mostrarSumaProductos(float *v)
{
int i, suma = 0;
for(i=0; i< 4; i++)
suma += *v;
*v++;
printf("%f\n", suma);
}

Si puedes echale un vistazo, y me dices si es que puedo suprimir el randomize,o no.Porqe es que la estoy compilando en linux, y el error, que me da es un
que dice q no reconoce randomize.
Por fa, si puedes contestame.Ah y de paso si puedes mirar lo que he puesto de las estructuras en C, es que no encuentro el fallo. y me da error de compilacion
Gracias

66
C/C++ / Re: Numero Aleatorios En C
« en: Martes 2 de Noviembre de 2004, 18:57 »
Cita de: "Diodo"
Hola  :hola:

Para generar un numero aleatorio con rand() tienes que hacer esto

Código: Text
  1.  
  2.  
  3. //Debes incluir estas dos librerias
  4.  
  5. #include &#60;cstdlib&#62;  
  6. #include &#60;ctime&#62;
  7.  
  8. void main()
  9. {
  10. int valor;
  11. srand(time(NULL)); // generacion de una semilla a partir de los segundos del reloj
  12. valor= 1 + (rand() % 10);  // en valor se almacena el numero aleatorio
  13. }
  14.  
  15.  
  16.  

Espero que te sirva de ayuda, un saludo  :kicking:
Verás, es que el programa es en C, asi que no me sirve eso que me has puesto.
Gracias de todos modos, el codigo es este:

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


main()
{
    float **mat, *productos;
    int n;
    randomize();
    generarMatriz(mat);
    multiplicaColumnas(mat, rand() % n, productos);
    mostrarSumaProductos(productos);
   }
   
 generarMatriz(float **m)
 {
    int i, j;
   
   m = (float**) malloc(4*5 *sizeof(float));
   randomize();
   for(i=0; i<4; i++){
      for(j=0; j<5; j++)
        (int) *(m + i*5 +j) = rand() + rand() /100;
        }
 }
 
 multiplicaColumnas(float **m, int ncolum, float *vp)
 {
   int i;
   vp = (float *)malloc(5* sizeof(float));
   for(i=0; i<4; i++)
      // *vp++ = (*(m+ i*5)) * (*(m + i*5 + ncolum));
      vp = m[0] * m[ncolum];
      vp++;
  }
 
  mostrarSumaProductos(float *v)
  {
    int i, suma = 0;
    for(i=0; i< 4; i++)
       suma += *v;
       *v++;
   printf("%f\n", suma);
   }
   
Si puedes echale un vistazo, y me dices si es que puedo suprimir el randomize,o no.Porqe es que la estoy compilando en linux, y el error, que me da es un
que dice q no reconoce randomize.
Por fa, si puedes contestame.
Gracias

67
C/C++ / Estructuras En C
« en: Martes 2 de Noviembre de 2004, 18:34 »
Hola tengo un problemilla, estoy haciendo un ejercicio de C, que va sobre estructura de un paciente, y al compilarlo me da error, en lista, dice que no es de tipo estructura. Yo no se donde está el problema, si alquien puede ayudarme, aquie le pongo el código.


/*Desarrolla un programa en C que use una estructra para la siguiente
informacion sobre un paciente de un hospital:nomre, direccion, fecha de
nacimiento, sexo, dia de visita y problema medico. El program deve tener una
funcion para entrada de los datos de un paciente, guardar los diversos pacientes
en un array y mostrar los pacientes cuyo dia de visita sea uno determinado.
*/
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->

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

#define TAM 200

struct paciente{
     char *nombre;
     char *direccion;
     char fecha [10];
     char sexo; //V o H
     char diavisita [10];
     char *problema;
     };
    
 main(){
     char dia [10];
    struct paciente *lista;
    tomaDatos(lista);
    printf("Intrpoduzca la fecha de la consulta: (dd/mm/aaaa) ");
    gets(dia);
    mostrarConsulta(dia, lista);
    }
    
    
    
tomaDatos(struct paciente *lista)
{
  
  int i;
  char buffer [80];
  
  lista = (struct paciente*) malloc(TAM*sizeof(struct paciente));
  printf(" Entrada de datos de los pacientes\n");
  printf("============================= ==============\n");
  for(i=0; i < TAM; i++)
  {
     printf("Nombre del paciente: \n");
     gets(buffer);
     lista[i]->nombre = malloc(strlen(buffer)+1);
     strcpy(lista[i]->nombre, buffer);
     printf("Direccion del paciente: \n");
     gets(buffer);
     lista[i]->direccion = malloc(strlen(buffer)+1);
     strcpy(lista[i]->direccion, buffer);
     printf("Fecha de nacimiento (dd/mm/aaaa): \n");
     gets(lista[i]->fecha);
     printf("Sexo del paciente:\n");
     lista[i]->sexo = getche();
     printf("Dia de visita (dd/mm/aaaa): \n");
     gets(lista[i]->diavisita);
     printf("Problema medico del paciente: \n");
     gets(buffer);
     lista[i]->problema = malloc(strlen(buffer)+1);
     strcpy(lista[i]->problema, buffer);
     printf("¿Desea continuar (S/N) \n");
     if(getchar() == 'N') return;
     }
   }
  mostrarConsulta(char *dia, struct paciente* lista)
  {
    int i;
    printf("Pacientes con visita el dia %s\n\n", dia);
    printf("====================   =====================\n");
    for(i=0; i<TAM; i++)
       if(!strcmp(dia, lista[i]->diavisita))
           printf("\t%s \n". lista->nombre);
  }

   <!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
     
Gracias espèro una respuesta lo antes posible.
Resulta que me han comentado algo asi, como q no he declarado la estructura como puntero, por eso no puedo usar las flechas, si alguien me puede decir, sobre este codigo, donde tengo el error, es q no lo veo.
Gracias, saludos desde Andalucia
Saludos

68
C/C++ / Numero Aleatorios En C
« en: Martes 2 de Noviembre de 2004, 17:58 »
Hola quisiera si alguien me puede echar una mano, es que tengo una practica e la que tengo que generar una matriz de 4 * 5 elementos, y se rellena con numeros aleatorios, pues bien, no se muy bien como funciona pero creo que es con rand().
Lo que no entiendo es poruqe se llamaa la funcion randomize().
Alguien me puede ayudar a saber como funcionan los numeros aleatorios en C.
Si alguien me puede ayudar, me vendría bien, gracias.

Verás, es que el programa es en C, asi que no me sirve eso que me has puesto.
Gracias de todos modos, el codigo es este:

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


main()
{
float **mat, *productos;
int n;
randomize();
generarMatriz(mat);
multiplicaColumnas(mat, rand() % n, productos);
mostrarSumaProductos(productos);
}

generarMatriz(float **m)
{
int i, j;

m = (float**) malloc(4*5 *sizeof(float));
randomize();
for(i=0; i<4; i++){
for(j=0; j<5; j++)
(int) *(m + i*5 +j) = rand() + rand() /100;
}
}

multiplicaColumnas(float **m, int ncolum, float *vp)
{
int i;
vp = (float *)malloc(5* sizeof(float));
for(i=0; i<4; i++)
// *vp++ = (*(m+ i*5)) * (*(m + i*5 + ncolum));
vp = m[0] * m[ncolum];
vp++;
}

mostrarSumaProductos(float *v)
{
int i, suma = 0;
for(i=0; i< 4; i++)
suma += *v;
*v++;
printf("%f\n", suma);
}

Si puedes echale un vistazo, y me dices si es que puedo suprimir el randomize,o no.Porqe es que la estoy compilando en linux, y el error, que me da es un
que dice q no reconoce randomize.
Por fa, si puedes contestame.
Gracias

69
ADA / Alguien Sabe Algo De Pvm
« en: Martes 13 de Julio de 2004, 12:51 »
Por favor, es importante, necesito si  alguien puede indicarme alguna pagina, o aolgo que tenga de pVM , engo que hacer un trabajo, y no tengo material informativo bueno.
Sé que este foro es de ADA, pero yo necesito saber si alguien me puede recomendar alguna pagina o algo, de PVM, tengo que hacer una  practica para septiembre, y no sé como empezarla.
Gracias

70
C/C++ / Re: Ayuda Uso De Matriz Tridimensional En C
« en: Sábado 19 de Junio de 2004, 14:01 »
Cita de: "i82maria"
Cita de: "Zholo"
Citar
float ***M;

**M=(float *)malloc(sizeof(float)*i);

for(j=0;j<i;j++)
{
 *M[j]=(float *)malloc(sizeof(float)*3);
 for(k=0;k<d[j].numero_anyo;k++)
  M[j][k]=(float*)malloc(sizeof(float)*5);
}

i es la cantidad de alumnos

asi obtendrias una una matriz de M[3][5]

si fuesen 10 alumnos la matriz seria M[10][3][5]

espero que me entiendas, pones los * donde estan los que te mando yo....

espero que te sirva
Gracias por tu ayuda eres un cielo.
Me está sirviendo de mucho.
Saludos Mercedes
Hola aqui estoy de nuevo, he tardado en contestarte, porque he estado muy liada con los examenes, veras aqui tengo el codigo entero de todo lo que tu me dijiste, pero no me compila bien.Por favor, si puedes ayudarme, necesito esta practica, para mi examen, tengo que comprenderla bien, y saberla hacer, y estoy super apurada.Porque me resulta de muy dificil comprension.
Gracias por todo.
Saludos Mercedes

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>



struct alumno
{

  char DNI[10];
  char nombre[25];
  char apellidos[50];
  int numero_agno;
 
 };
 
 typedef struct alumno DATOSALUMNO;
 

 
main()
{

FILE *fp;
FILE *ficbin;
DATOSALUMNO *d;
char car;
char dni[10];
int i,j,k;
char nombre[25];
char apellidos[50];
int numero_agno;


if((fp=fopen("alumnos.txt", "r"))== NULL)
{
    printf("El fichero alumnos.txt no existe\n"); //abrimos el fichero texto para lectura
   getch();
 return -1;
   
}
else
{
    i= 0;
    while(!feof(fp))//cuenta cuantos alumnos hay en el archivo
    {
        fscanf(fp, "%d %s", &j, dni); /*j sera para el numero identificativo*/
     i++; /*i cuenta las filas*/
     }
     d = (DATOSALUMNO*)malloc(sizeof(DATOSALUMNO)*i); // crea una estructura de
                                                  //tipo  puntero
                                                  //para guardar los alumnos
       
     fseek(fp, 0, SEEK_SET); //posiciona el puntero
     for(j=0; j<i; j++) //inicializa la estructura a 0
     {
          d[j].DNI[0] = '\0';
          d[j].nombre[0] = '\0';
          d[j].apellidos[0] = '\0';
          d[j].numero_agno = '\0';
     }
     i = 0; /*cuenta las filas*/
     while(!feof(fp)) //coloca los datos en la estructura
     {
         fscanf(fp, "%d %s", &j, d.DNI);
         i++;    
     }
   fclose(fp);
         
  if((ficbin =fopen("alumnos.bin", "wb"))== NULL)
 {
    printf("El fichero no se puede crear\n"); //abrimos el fichero texto para lectura
   getch();
  return -1;
}
else
{
    for(j=0;j<i;j++)//pide los datos restantes
    {
        system("clear");
        fflush(stdin);
        printf("Datos del alumnos con DNI: %s\n\n",d[j].DNI);
        printf("Introduzca los Apellidos: ");
       gets(d[j].apellidos);
      fflush(stdin);
       printf("Introduzca el Nombre: ");
         gets(d[j].nombre);
      fflush(stdin);
         printf("Introduzca el Numero de años: ");
        scanf("%d",&d[j].numero_agno);
        fflush(stdin);
    fwrite(&d, sizeof(DATOSALUMNO), 1, ficbin); /*guarda los datos en
                                                  un archivo binario*/
     }

}
fclose(ficbin);
free(d);


}



float ***M;
**M=(float *)malloc(sizeof(float) *i);

(for j= 0; j<i; j++)
{
    *M[j] = (float)malloc(sizeof(float)*3);
    for(k=0; k<d[j].numero_agno; k++)
    M[j][k]=(float*)malloc(sizeof(float)*5);
}
/*i es la cantidad de alumnos M[3][5]*/
/*M[5][2][3] seria la 4ºasignatura del 3º año del sexto alumno*/

71
C/C++ / Re: Alguien Usa El Programa Dev-cpp
« en: Jueves 10 de Junio de 2004, 17:39 »
Cita de: "Rataman"
Siento no serte mas util, pero como ya e dixo, yo suelo trabajar con ficheros d acceso directo(fwrite,fread,fseek y demas) y clarro lo mismo k estas haciendo tu yo lo haria con un planteamiento totalmente distinto, controlando el numero de registros y demas, a ver si hay suerte y ayuda alguien mas... un saludo.

P.D: Me parecio leer por ahi k eras andaluza... yo tb lo soy  :hola:  :D
Hola gracias de todos modos, si que soy andaluza, de Córdoba.
Jeje. Ya somos dos andaluces. :D

Gracias por tu ayuda, siento que no me hayas podido ayudar más porque el método que tú usas es distinto.No pasa nada.
Saludos

72
C/C++ / Re: Alguien Puede Ayudarme Con El Codigo
« en: Jueves 10 de Junio de 2004, 13:53 »
Cita de: "Zholo"
Hola

disculpa la tardanza

lo de la matriz es algo asi

M[a][c]

donde a es por el numero del alumno
donde b es por el numero de periodo(1 a 3 o sea para los indices de 0 a 2)
donde c es la nota de uno de los 5

ejemplo

M[0][0][0] //es la nota de la primera asignatura, del primer alumno, en el primer periodo
M[0][0][1]//es la nota de la segunda asignatura, del primer alumno, en el primer periodo

espero que me entiendas.


lo que podrias hacer para validar que el periodo sea de 1 a 3 es cuando te ingresen algo diferente lo pides de nuevo o quiebras el ciclo con un break
Hola muchas gracias por toda la ayuda que me estás prestando, verás he estado de examenes y por eso no podia ver lo que me mandaste con tranquilidad.
Aqui he intentdo compilarlo y no me deja, te pongo el codigo, y me dices que tal,  si es que tengo algun error. Ok?. Muchas gracias.
Mercedes.

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>



struct alumno
{

  char DNI[10];
  char nombre[25];
  char apellidos[50];
  int numero_agno;
 
 };
 
 typedef struct alumno DATOSALUMNO;
 

 
main()
{

FILE *fp;
FILE *ficbin;
DATOSALUMNO *d;
char car;
char dni[10];
int i,j;
char nombre[25];
char apellidos[50];
int numero_agno;


if((fp=fopen("alumnos.txt", "r"))== NULL)
{
    printf("El fichero alumnos.txt no existe\n"); //abrimos el fichero texto para lectura
   getch();
 return -1;
   
}
else
{
    i= 0;
    while(!feof(fp))//cuenta cuantos alumnos hay en el archivo
    {
        fscanf(fp, "%d %s", &j, dni); /*j sera para el numero identificativo*/
     i++; /*i cuenta las filas*/
     }
     d = (DATOSALUMNO*)malloc(sizeof(DATOSALUMNO)*i); // crea una estructura de
                                                  //tipo  puntero
                                                  //para guardar los alumnos
       
     fseek(fp, 0, SEEK_SET); //posiciona el puntero
     for(j=0; j<i; j++) //inicializa la estructura a 0
     {
          d[j].DNI[0] = '\0';
          d[j].nombre[0] = '\0';
          d[j].apellidos[0] = '\0';
          d[j].numero_agno = '\0';
     }
     i = 0; /*cuenta las filas*/
     while(!feof(fp)) //coloca los datos en la estructura
     {
         fscanf(fp, "%d %s", &j, d.DNI);
         i++;    
     }
   fclose(fp);
         
  if((ficbin =fopen("alumnos.bin", "wb"))== NULL)
 {
    printf("El fichero no se puede crear\n"); //abrimos el fichero texto para lectura
   getch();
  return -1;
}
else
{
    for(j=0;j<i;j++)//pide los datos restantes
    {
        system("clear");
        fflush(stdin);
        printf("Datos del alumnos con DNI: %s\n\n",d[j].DNI);
        printf("Introduzca los Apellidos: ");
       gets(d[j].apellidos);
      fflush(stdin);
       printf("Introduzca el Nombre: ");
         gets(d[j].nombre);
      fflush(stdin);
         printf("Introduzca el Numero de años: ");
        scanf("%d",&d[j].numero_agno);
        fflush(stdin);
    fwrite(&d, sizeof(DATOSALUMNO), 1, ficbin); /*guarda los datos en
                                                  un archivo binario*/
     }


fclose(ficbin);
free(d);
}

}



Por favor, mira a ver porque no me compila bien.

73
C/C++ / Re: Alguien Usa El Programa Dev-cpp
« en: Jueves 10 de Junio de 2004, 13:30 »
Cita de: "Rataman"
Hola otra vez, yo siempre k trabajo con ficheros, lo hago controlando el numero de registros y haciendolo por acceso directo, pòr eso no estoy muy puesto en lo de controlar el fin de fichero y demas. Me e dado cuenta k el problema de k se repite tu bucle esta en uno de los while -> while((car = fgetc(fp)) != '\n') debido a este bucle se repite siempre, kitande este bucle y el if k le sigue -> (if(isspace (car) == 0)) ya funciona bien en lo k a no repetir los bucles se refiere, pero claro supongo k en tu caso estas dos sentencias seran necesarias, y la verdad es k no se para k sirven. Espero k al menos te sirva de algo...  :unsure:
Veras el bucle de while((car = fgetc(fp)) = '\n') está puesto para que lea del fichero de texto. y luego si car es un espacio en blanco entonces haga todo lo que viene debajo. Yo sé que el error de que se me repitan los bucles está ahi. Pero es que no sé como ponerlo para la solucionar el problema. Si los quito no me hacen lo que quiero.
Saludos Mercedes. Gracias

74
C/C++ / Re: Ayuda Uso De Matriz Tridimensional En C
« en: Miércoles 9 de Junio de 2004, 21:37 »
Cita de: "Zholo"
Citar
float ***M;

**M=(float *)malloc(sizeof(float)*i);

for(j=0;j<i;j++)
{
 *M[j]=(float *)malloc(sizeof(float)*3);
 for(k=0;k<d[j].numero_anyo;k++)
  M[j][k]=(float*)malloc(sizeof(float)*5);
}

i es la cantidad de alumnos

asi obtendrias una una matriz de M[3][5]

si fuesen 10 alumnos la matriz seria M[10][3][5]

espero que me entiendas, pones los * donde estan los que te mando yo....

espero que te sirva
Gracias por tu ayuda eres un cielo.
Me está sirviendo de mucho.
Saludos Mercedes

75
C/C++ / Re: Alguien Usa El Programa Dev-cpp
« en: Miércoles 9 de Junio de 2004, 11:33 »
Cita de: "Rataman"
Es que no entiendo para que sirve la condicion de que sea menor de 3 años... que quieres exactamente que haga cuando es menor? En el codigo original no es k no salga del bucle, es k sale del primer while, pero no del segundo (el de feof). ¿podrias especificar lo k pretendes al controlar lo de los tres años?  ;)
Hola, ya te dije lo que significaba lo de los 3 años, por favor, contestame, que aun no me has contestado, acabo de llegar de un examen. Luego vere si me has contestado, me voy a la camal, que estoy molida.
Gracias, saludos.

Páginas: 1 2 [3] 4 5