• Sábado 22 de Febrero de 2025, 11:47

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 - pacorubio77

Páginas: 1 2 3 [4] 5 6 ... 9
76
C/C++ / Re: desarrollo de procesos
« en: Miércoles 25 de Febrero de 2009, 22:41 »
Hola quería saber si hay alguien que siguie mi tema para poner código....los procesos ya los creos,pero no se como sacar los printf...si me decís que se sigue mi tema.....pongo codigo realizado..

Espero respuesta.

77
C/C++ / Re: desarrollo de procesos
« en: Jueves 19 de Febrero de 2009, 19:44 »
Hola,sobre el caso del otro dia,,tenias razon que el argumento es la profundidad,pero si la profundidad es impar,solo creará uno..es decir...

p11           4055

p21     4056    4057    4068

p31                4058

El esquema quedaría asi,,es decir que el proceso 4057 sólo se crea un hijo.
Teniendo en cuenta el esquema del otro día,mi pregunta es ,como puedo identificarme que cree un hijo  desde el proceso que está en el medio,me refiero al proceso del medio al proceso 8543, otro proceso que está en el medio es el proceso 8546,es decir....como decir que cree hijos a partir de un proceso determinado..???
   1. p11 8541
   2. |
   3. |
   4. p21 8542 8543 8548
   5. |
   6. |
   7. p31 8544
   8. |
   9. |
  10. p41 8545 8546 8547
  11. |
  12. |
  13. p51 8549
  14. |
  15. |
  16. p61 8550 8551 8552


yo enseño el código que tengo echo...que solo creo un padre y tres hijos...y finalizo los procesos...
para que vean que estoy trabajando en ello

//en este codigo..poniendo ./pro 3, creo tres hijos a su padre....
Código: C++
  1. int main(int argc,char *argv[]){
  2.  
  3.     int pid;
  4.     //pid = fork();
  5.     int i=1;
  6.     int profundidad,estado;
  7.     //cout<<pid<<endl;
  8.        
  9.     //printf("el argumento es "<<argv[1]<<endl;
  10.     profundidad=atoi(argv[1]);
  11.     //profundidad=argv[1]+ 0;
  12.     //printf("la profundidad es %d ",profundidad);
  13.     if(profundidad > 1){
  14.  
  15.         for(i=1;i<=profundidad;i++){
  16.             //cout<<"i "<<i<<endl;
  17.             pid = fork();
  18.             if(pid==0){//el padre ha creado un hijo
  19.             printf("soy el hijo %d mi pid es %d y el de mi padre es %d ",i,getpid(),getppid());
  20.             //cout<<endl;
  21.        
  22.         //printf("soy el hijo %d .Mi pid es %d y mi ppid es %d ",i,getpid(),getppid());
  23.             sleep(20);
  24.             exit(0);
  25.             }
  26.         }
  27.  
  28.         for(i=1;i<=profundidad;i++){
  29.             wait(&estado);
  30.             printf("soy el padre con pid %d y mi hijo %d ha terminadon",getpid(),i);
  31.         }
  32.     }
  33.     else{//aqui la profundidad es 1,solo creará el padre,se llamará a partir del 2
  34.  
  35.     }
  36.  
  37. return(0);
  38. }
  39.  
  40.  


Espero ayuda..Gracias.

78
C/C++ / Re: desarrollo de procesos
« en: Martes 17 de Febrero de 2009, 10:11 »
Hola,gracias por su contestacion,pero es que no se porque los primeros hijos ,uno de ellos crea un hijo,,, y de ese hijo salen 3 hijos....el problema es que no se que diferencia hay ,metiendole el argumento 4(como es el caso que he presentado) y por ejemplo metiendo el argumento 6..(por ejemplo),.entendió el problema?,si hay algo que no entienda,comèntemelo...

Gracias.

79
C/C++ / desarrollo de procesos
« en: Lunes 16 de Febrero de 2009, 23:41 »
Hola,no se como empezar a plantear el siguiente árbol de procesos,no se que regla a seguir.el problema dice lo siguiente:

Realiza un programa llamado arbol.c o arbol.cc que reciba un argumento X,por ejemplo arbol 4,se cree el siguiente árbol


  p11        8541
                   |
                   |
  p21  8542  8543   8548
                   |
                   |
  p31         8544
                  |
                  |
 p41  8545  8546   8547


Ejemplo de ejecución:
$ arbol 4
Soy el proceso padre (11): mi pid es 8541
Soy el proceso 21: mi pid es 8542. Mis padres son: 8541
Soy el proceso 22: mi pid es 8543. Mis padres son: 8541
Soy el proceso 23: mi pid es 8548. Mis padres son: 8541
Soy el proceso 31: mi pid es 8544. Mis padres son: 8543, 8541
Soy el proceso 41: mi pid es 8545. Mis padres son: 8544, 8543, 8541
Soy el proceso 42: mi pid es 8546. Mis padres son: 8544, 8543, 8541
Soy el proceso 43: mi pid es 8547. Mis padres son: 8544, 8543, 8541
/*Tras un intervalo de n segundos aparecerá */
Soy 41 (8545) y muero
Soy 42 (8546) y muero
Soy 43 (8547) y muero
Soy 31 (8544) y muero
Soy 21 (8542) y muero
Soy 22 (8543) y muero
Soy 23 (8548) y muero
Soy 11 (8541) y muero



No puedo señalarlo,pero 8542,8543,8548 son hijos de 8541  y 8545,8546 y 8547 son hijos de 8544   ,los número no tienen porque ser estos,solo lo pongo a modo de orientacion,pero es que no se el proceso a seguir....

Me podeis ayudar a entender,como empezar el desarrollo?

Espero respuesta.
Gracias.

80
C/C++ / c++ y gestion de procesos
« en: Domingo 15 de Febrero de 2009, 18:14 »
hola,soy un novato en c++ y gestion de procesos,la cuestion es que no entiendo lo que me pide este problema,es decir,no entiendo la regla a seguir para construir el siguiente gráfico,lo adjunto como imagen...para que veais y me ayudeis a establecer unas reglas a seguir,porque el enunciado no lo entiendo bien...

Agradecería ayuda.
Muchas gracias.

81
ADA / soy nuevo y principiante en Ada
« en: Viernes 6 de Febrero de 2009, 12:32 »
Hola,mirar consiste en que tengo que saber lanzar una excepcion,y no se como lanzarla,por ejemplo Constraint_Error,pero tengo lo siguiente:

Código: Text
  1. WITH Ada.Text_IO;USE Ada.Text_IO;
  2. WITH Ada.Integer_Text_IO;use Ada.Integer_Text_IO;
  3.  
  4. procedure excep is
  5.    SUBTYPE Temperatura IS Integer RANGE 0..100;
  6.    Num: Integer;
  7.    tam:Integer:=2 ;  
  8. begin
  9. -- Leer la temperatura del sensor y calcular su valor
  10.    Put ("introduzca un numero");  
  11.    Ada.Integer_Text_IO.Get(num);
  12.       Ada.Text_IO.Put("el numero leido es : ");
  13.       Ada.Integer_Text_IO.Put(Item=>Num,width=>tam);
  14. exception
  15. -- manejador para Constraint_Error
  16.    when CONSTRAINT_ERROR =>Put("hola a todos");
  17. end excep;
  18.  
  19.  

pero no se como sacar constraint Error,porque tengo que meter un dato de tipo temperatura...verdad?
Perdonen mi ignorancia,pero es que estoy empezando...

Espero que me ayuden a lanzar la excepcion,y a partir de ahi ya sabré yo sacarlas..

Gracias.

82
ADA / Re: soy nuevo en Ada,estoy empezando,tengo dudas
« en: Lunes 2 de Febrero de 2009, 11:52 »
Gracias por la contestacion,pero si yo pongo

Código: Text
  1.  
  2. with Ada.Text_Io; use Ada.Text_IO;
  3. PROCEDURE Hola_Mundo IS
  4.    
  5. BEGIN
  6.    Put_Line("Hola mundo");
  7.    subprograma2;
  8.    
  9.    
  10.    
  11. END Hola_Mundo;
  12.    
  13.  

ahi me dice que subprograma 2 no está definido,y con razon,ya que lo tengo echo en otro .adb,donde tengo que definirlo?

83
ADA / soy nuevo en Ada,estoy empezando,tengo dudas
« en: Domingo 1 de Febrero de 2009, 20:37 »
Hola.yo tengo echos dos procedimientos uno que es Hola_mundo y otro llamado subprograma2,teniendo :

procedure Subprograma2 is
begin
   Ada.Text_Io.Put_Line(“Soy Subprograma2”);
end Subprograma2;    

Me piden que incluya la llamada desde el cuerpo del procedimiento Hola_Mundo al nuevo procedimiento Subprograma2.

yo entiendo que es llamar al procedimiento Subprograma2 desde el procedimiento Hola_mundo,estoy en lo cierto? pero no se como realizar esa llamada...

Me podeis ayudar?
Espero respuesta.

84
C/C++ / este makefile está completo?
« en: Jueves 8 de Enero de 2009, 01:44 »
Hola,mirar,estoy compilando dos archivos,un .h y un .cc pero me parece que no estoy haciendo un makefile completo,ya que he cambiado cosas y no me coge los fallos,el makefile que tengo echo es el siguiente:
Código: Text
  1. OPC=-g
  2. COMP=g++
  3.  
  4. all: afi2afd
  5. afi2afd: afi2afd.o
  6.     $(COMP) $(OPC) afi2afd.o -o afi2afd
  7. afi2afd.o: afi2afd.cc afi2afd.h
  8.     $(COMP) $(OPC) -c afi2afd.cc
  9. clean:
  10.     rm -f $(OBJ)
  11.     rm -f afi2afd
  12.  
  13.  

Me gustaría que me dijeraís si está completo, y si no lo está decirme las líneas para hacerlo más completo.

Un saludo,espero respuesta.

85
C/C++ / algoritmo para identificar que dos vectores son iguales
« en: Viernes 26 de Diciembre de 2008, 11:35 »
Hola,me gustaría que alguien me dijese algún algoritmo que identifique si dos vectores son iguales,es decir que si mete
v1[]={5,6,2} y v2[]={5,2,6},me diga que son iguales, alguien tiene por ahi algúno a mano?

86
C/C++ / compilar con el valgrind,
« en: Lunes 15 de Diciembre de 2008, 13:59 »
Hola,a todos,necesitaría una ayuda,necesito que mi memoria de mi programa quede totalmente liberada,para comprobarlo,utilizo el valgrind, es decir tengo un fichero main,que compilo valgrind ./main,y me sale la memoria que aún no se encuentra liberada,yo lo que quiero saber ,donde está esa memoria sin liberar,y quiero que alguien me diga la opcion de como compilarlo para que me salgan las lineas de las zonas de memoria donde no la tengo liberada,espero que me ayudeis.un saludo

Espero respuesta.Gracias.

87
C/C++ / tamaño de un vector
« en: Miércoles 3 de Diciembre de 2008, 19:45 »
Hola a todos,existe alguna función que nos diga el tamaño de un vector de enteros?

88
C/C++ / Re: me dais una idea para leer el fichero?
« en: Martes 2 de Diciembre de 2008, 18:58 »
eso no es válido,porque cuando lees con fic,luego no puedes leer la linea,,,si la puedes leer la linea ,pero no lo hace de la forma deseada,es decir,,,si haces

fic<<pal;

gelinte(fic,linea);

while(!fic.eof()){

getline(fic,linea);
}

no hace lo deseado...

Muchas gracias de todas formas

89
C/C++ / me dais una idea para leer el fichero?
« en: Lunes 1 de Diciembre de 2008, 16:55 »
Hola,yo tengo ahora el siguiente problema,yo tengo un fichero que se puede presentar de la siguiente manera:

2 #
1 a 3
4 !
4 b 9

cuando yo leo el fichero lo hago de la siguiente manera:

 fic>>ori;
 fic>>simb;
 fic>>des;

while (!fic.eof()){
       fic>>ori;
       fic>>simb;
       fic>>des;
  //hago aqui otras cosas que no vienen al caso
}

pero mi pregunta es que de esta forma tendré problemas al leer 2 # o 4 ! pq solo tiene dos caracteres,no tendré problemas al leer 4 b 9 ó 1 a 3. como puedo el caso que cuando lea la linea con dos haga una cosa y cuando este'con tres haga otra?

un saludo,espero respuesta.

90
C/C++ / hacer un vector un registros,mientras lees fichero?
« en: Jueves 27 de Noviembre de 2008, 13:37 »
Hola,mirar yo tengo en un fichero lo siguiente:

1 b c
2 a b
....

cada linea es un registro
struct Tregistro{
       int origen;
        char simbolo;
       int destino;
};

y ahora quiero segun vaya leyendo ir metiendo en mi vector de registros Tregistro vector[100];

en la linea vector=aux....creo que está el error,el codigo es el siguiente:

Código: Text
  1. struct Tregistro{
  2.     int origen;
  3.     char simbolo;
  4.     int destino;
  5.  
  6. };
  7. Tregistro vector[100];
  8.  
  9. void LeerFichero(char fichero[]){
  10.  
  11.     fstream fic;
  12.     string linea;
  13.     Tregistro aux;  
  14.     int i=0;
  15.     fic.open(fichero,ios::in);
  16.    
  17.     if(!fic){
  18.  
  19.         cout<<"error,apertura del fichero"<<endl;
  20.     }
  21.     else{
  22.         //cout<<"aqui"<<endl;
  23.         //getline(fic,linea);
  24.         //cout<<linea<<endl;
  25.         fic.read((char*)&aux,sizeof(Tregistro));
  26.         while(!fic.eof()){
  27.             vector[i]=aux;
  28.             //cout<<"y aqui"<<endl;
  29.             cout<<vector[0].origen<<endl;
  30.             //getline(fic,linea);
  31.             //cout<<linea<<endl;
  32.             fic.read((char*)&aux,sizeof(Tregistro));
  33.         i++;    
  34.         }
  35.        
  36.     }
  37.     fic.close();
  38. }
  39.  
  40.  

me podeis ayudar???
un saludo,gracias.

91
C/C++ / Re: como paso de int a string en c++??
« en: Miércoles 26 de Noviembre de 2008, 00:21 »
como uso sprintf? me podrias poner un ejemplo???
Muchas gracias.

92
C/C++ / Re: como paso de int a string en c++??
« en: Martes 25 de Noviembre de 2008, 21:35 »
el compilador es gcc 4.1.2 ,en c++

93
C/C++ / Re: como paso de int a string en c++??
« en: Martes 25 de Noviembre de 2008, 20:48 »
el codigo en el que me pone que itoa no esta definido es el siguiente:me oone el siguiente error

‘itoa’ no se declaró en este ámbito


Código: Text
  1. #include<iostream>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9.  
  10.     int numero=569;
  11.     string snumero;
  12.     //char cnumero[4];
  13.  
  14.    
  15.     cout<<"introduce un numero "<<endl;
  16.     cin>>numero;
  17.    
  18.     itoa(numero,snumero,10);
  19.     //snumero=string(numero);
  20.     cout<<"el numero introducido es el string "<<snumero;
  21. }
  22.  

me puedes ayudar???

94
C/C++ / como paso de int a string en c++??
« en: Martes 25 de Noviembre de 2008, 19:15 »
Hola estoy haciendo una prueba con itoa,pero me dice que no lo tengo definido,yo tengo lo siguiente:

Código: Text
  1. int main(){
  2.  
  3.     int numero;
  4.     string snumero;
  5.     char cnumero[255];
  6.     cout<<"introduce un numero "<<endl;
  7.     cin>>numero;
  8.     itoa(numero,snumero,10);
  9.     //snumero=string(numero);
  10.     cout<<"el numero introducido es el string "<<snumero;
  11. }
  12.  

Me dice alguien otra forma???Gracias.

95
C/C++ / Re: no encuentro error en el paso de parametros,
« en: Domingo 9 de Noviembre de 2008, 21:21 »
Pero eso no es solucion,si esta como const se tiene que quedar como const,lo he arreglado poniendo esto de la siguiente manera:
medicos[pos]->addPaciente((Paciente *)&p);

Pero no se el por què,,,me puedes ayudar,????

96
C/C++ / Re: no encuentro error en el paso de parametros,
« en: Domingo 9 de Noviembre de 2008, 18:07 »
Gracias por la contestacion,pero sigue dando fallo aunque ponga medicos[pos]->addPaciente(&p);
sigo investigando,un saludo,espero respuesta.Gracias.

97
C/C++ / no encuentro error en el paso de parametros,
« en: Domingo 9 de Noviembre de 2008, 12:01 »
Hola,se que fallo en el paso de parámetros,tengo el siguiente método:

void Especialidad::asignarMedico(const Paciente &p){

   int pos;
   pos=MenorCarga();
   medicos[pos]->addPaciente(p);
}

que como veis utilizo addPaciente(p),pero claro la implementacion de este método es:

void Medico::addPaciente(Paciente *p){

   pacientes.push_back(p);
}

y su prototipo es:

void addPaciente(Paciente *p);

Se que el error esta cuando hago medicos[pos]->addPaciente(p),como le indico que p tiene que ser un puntero?

98
C/C++ / Re: hola amigos
« en: Domingo 9 de Noviembre de 2008, 03:16 »
Código: Text
  1. #
  2. #  
  3. # #include"stdio.h"
  4. # int buscar_elemento(int arr[],int num,int elem);//prototipo  de la funcion
  5. # int array[],resultado,i,encontrado=0;
  6. # int num,elemento;
  7. # char opcion;
  8. #  int main()
  9. # {
  10. #  
  11. #   printf("cuantos elementos contendra el array :");
  12. #   scanf("%d",&num);
  13. #   for(i=0;i<num;i++)
  14. #   {
  15. #     printf("introduzca el elemento %d : ",i);                      
  16. #     scanf("t%d",&array[i]);
  17. #    
  18. #    }
  19. #  
  20. #  
  21. #   do //realizamos el do-while para que cuando no ponga s/S salga del programa
  22. #     {  
  23. #  encontrado=0;//para poner a 0,porque si no como encontrado=1,siempre te dira que lo ha encontrado
  24. #     printf("digite el elemento a buscar :");
  25. #    
  26. #     scanf("%d",&elemento);
  27. #    encontrado= buscar_elemento(array,num,elemento);//FIJATE QUE AQUI YA CAMBIO
  28. #     if (encontrado!=0) //si nos da algo distinto a 0 es que ha ido bien
  29. #     {
  30. #         printf("El numero %d si existe en el arraynn",elemento);
  31. #         printf("encontrado = %d",encontrado);
  32. #         printf("n");
  33. #     }
  34. #     else //si nos da 0 es que no ha encontrado el numero
  35. #     {
  36. #         printf(" el elemento %d noooo  se encuentra en el arraynn",elemento);
  37. #         printf("encontrado = %d",encontrado);
  38. #         printf("n");
  39. #      }
  40. #      
  41. #     printf("Desea buscar otro numero? S/N: ");
  42. #     scanf("%s", &opcion);
  43. #    
  44. #  
  45. # }while(opcion=='s' || opcion=='S');
  46. #  
  47. # }
  48. #  
  49. #  int buscar_elemento(int arr[],int num,int elem)
  50. #    {  
  51.              //PERO SOBRE TODO FIJATE AQUI,ESPERO QUE ESTE SEA EL FALLO
  52. #                  encontrado=0;    //lo pones asi,para que si no lo encuentra ,salgo con valor,si no lo pones saldrá con el último valor
  53. #    
  54. #      for(i=0;i<num;i++)                        
  55. #         {
  56. #            if (arr[i]==elem)
  57. #             {
  58. #                 encontrado=1;
  59. #                
  60. #                 break;//no es aconsejable poner break,pondria i=num,COMO NUM SE LO ASIGNAS A i fuerzas a salir del for,es más estetico,
  61. #             }
  62. #    
  63. #         }
  64. #     return(encontrado);
  65. #        
  66. #     }
  67.  

99
C/C++ / Re: hola amigos
« en: Domingo 9 de Noviembre de 2008, 03:08 »
Fijate en tu funcion buscar,la primera vez que entras bien,pero cuando encuentras un numero,pones encontrado=1,quiere decir que lo has encontrado,pero cuando vuelves a entrar a esa funcion,encontrado sigue estando a 1,por lo que quiere decir que siempre te dirá lo mismo, es decir ,lo puedes solucionar poniendo el encontrado a 0,es decir encontrado=0,al inicio de la funcion buscar,eso te resolveria el problema.

100
C/C++ / Re: problema con orden lexicografico
« en: Sábado 8 de Noviembre de 2008, 18:23 »
Hola,me parece que tengo una dudilla sobre el mismo tema,si tengo el siguiente codigo;

Código: Text
  1. #include<string>
  2. #include<iostream>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. int main(){
  8.  
  9. string nombre1,nombre2;
  10.  
  11. cout<<"introduce nombre1 ";
  12. getline(cin,nombre1);
  13. cout<<"introduce nombre2 ";
  14. getline(cin,nombre2);
  15.  
  16. cout<<nombre1.length()<<endl;
  17. char nombre1car[nombre1.length()];
  18. char nombre2car[nombre2.length()];
  19. strcpy(nombre1car,nombre1.c_str());
  20. cout<<nombre1car<<endl;
  21. strcpy(nombre2car,nombre2.c_str());
  22.  
  23. cout<<strlen(nombre1car)<<endl;
  24.  
  25. int l=strcmp(nombre1car,nombre2car);
  26. if(l<0) cout<<"nombre1 es menor que nombre2"<<endl;
  27. else cout<<"nombre1 es mayor que nombre2"<<endl;
  28. }
  29.  
  30.  

sobre todo quiero saber que si la asignacion a la cadena de caracteres del tamaño lo estoy haciendo bien:
char nombre1car[nombre1.length()];
char nombre2car[nombre2.length()];

porque no me acuerdo si tengo que tener en cuenta el ,lo pregunto para no tener errores de segmentacion.

me podeis ayudar????

Páginas: 1 2 3 [4] 5 6 ... 9