Foros del Web » Programación para mayores de 30 ;) » C/C++ »

generar numeros

Estas en el tema de generar numeros en el foro de C/C++ en Foros del Web. buenas una funcion o codigo q me permita generar un numero y q me incremente en uno ejemplo q cree el 1 y el siguiente ...
  #1 (permalink)  
Antiguo 25/07/2010, 22:03
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
generar numeros

buenas una funcion o codigo q me permita generar un numero y q me incremente en uno ejemplo q cree el 1 y el siguiente el 2 hasta 6 y estos pasarlos a un txt lo veo sencilo pero no me sale el codigo gracias !!
  #2 (permalink)  
Antiguo 25/07/2010, 22:44
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: generar numeros

Si puedes poner lo que llevas hecho, sería mucho mejor
  #3 (permalink)  
Antiguo 26/07/2010, 07:50
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: generar numeros

A qeu te refieres con generar un numero?? a un numero aleatorio:

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5. int i,numero;
  6. FILE * f;
  7. srand (getpid());
  8. numero = rand ();
  9. f = fopen("miarchiv.txt","w");
  10. for(i = numero;i< numero + 6;i++)
  11.        fprintf(f,"Mi nuevo numero es: %d\n",i);
  12. fclose(f);
  13. return 0;
  14. }
  #4 (permalink)  
Antiguo 26/07/2010, 11:55
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

es de uno en uno ! supongamos q comienzo con el 1 y despues el dos hasta el 6 !lo q esta ahi es hecho en c? hace lo q te digo ? si es asi yo paso a mi codigo solo quiero ver la logica
  #5 (permalink)  
Antiguo 26/07/2010, 12:00
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

te voy a explicar bien lo q quiero me mandaron hacer un proyecto un programa q me lleve el control del mundial de formula uno esto es lo q me pide y lo q no se hacer esto

El nuevo software llevara el control de los pilotos, escuderías y tiempos obtenidos por los pilotos en cada carrera del campeonato.

Para ello almacene la información del software en 3 Archivos de texto: El primer archivo escuderias.txt deberá contener la siguiente información: Código de la escudería (debe ser generado por el sistema), nombre de la escudería, año de fundación y país sede de la escudería


lo q esta en rojo es lo q tengo dudas de como hacerlo!
  #6 (permalink)  
Antiguo 26/07/2010, 12:16
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: generar numeros

Ahora si te entendir. Lo que deberias usar es una variable estatica. Y cada vez que ingresas una escuderia le aumentas uno. Asi cada escuderia tiene su propio numero. Algo asi seria el codigo:

Código C:
Ver original
  1. int NumeroUnico()
  2. {
  3.     static int numero=0;
  4.     numero++;
  5.     return numero;
  6. }
  7.  
  8. int main()
  9. {
  10.     int i;
  11.     for (i=0; i < 6; i++)
  12.          printf("Mi nuevo numero es: %d\n",NumeroUnico());
  13.    return 0;
  14. }

Ahi lo tiene, por cada llamado a la funcion esta devolvera un numero mas. Con eso te sacas el problemas de llevar las cuentas o de usar la variables globales. Cuando ingresas en el sistema una nuieva esduderia llamas esa funcion y te va a devovler un unico numero de identificacion....

Espero que eso alla sido lo que buscabas!
  #7 (permalink)  
Antiguo 26/07/2010, 12:35
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

estoy como fastidioso pero no entiendo mucho c yo lo hago en c++ yo estoy creando funciones void tu q crees q sea mas conveniente q cree una funcion void codigo y cuando la necesite usar la nombro ?
  #8 (permalink)  
Antiguo 26/07/2010, 13:33
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: generar numeros

No se como es tu forma de trabajar.. eso depende de vos!! el unico cambio que tenes que hacer para pasarlo a C++ es cambiar el printf que en este caso es solo un ejemplo....

Con respecto a la funcion void, si la hace void nunca devuelve el numero. Por lo tanto deberia ser global y no estatica.
  #9 (permalink)  
Antiguo 26/07/2010, 13:34
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: generar numeros

entre c y c++ es casi lo mismo, te dejo el codigo en c++.(edito lo que dijo sam90)

Cita:
#include <iostream>

using namespace std;

int NumeroUnico()
{
static int numero=0;
numero++;
return numero;
}

int main()
{
int i;
for (i=0; i < 6; i++)
{
cout <<"Mi nuevo numero es: "<<NumeroUnico()<<endl;
}
system("PAUSE");
return 0;
}
no se que problema tienes con lo que dijo sam90, si sabes c++ debes manejar c.
otra cosa, tienes que saber que hay mil formas de decir lo mismo, tal vez tu lo querias hacer con un void, eso tambien es valido mientras funcione.
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #10 (permalink)  
Antiguo 26/07/2010, 13:51
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: generar numeros

volvi a leer lo que pedias y creo que querias grabar en en archivo de texto
Cita:
#include <iostream>
#include <fstream>

using namespace std;

int main() {

ofstream fichero("salida.txt", ios::out);
for(int i = 1; i <= 6; i++)
{
fichero << i;//como si usaras cout, pero esto escribe en el fichero
fichero.put('\n');//para saltarse un espacio
}
cout << "datos grabados en salida.txt" <<endl;
system("PAUSE");

return 0;
}
mas info aki http://www.cplusplus.com/reference/iostream/ofstream/
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #11 (permalink)  
Antiguo 27/07/2010, 12:52
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

gracias pana me sirvió pero intento hacer q en ese mismo archivo puede ingresar el numero del vehiculo el nombre del piloto y las de mas cosa pero no logro q me queden entre las restricciones q me piden son las q estan en rojo son las q no me salen como hacerlas .

Debe validar el ingreso de información, para así garantizar que la información almacenada en los archivos sea consistente.


A su vez debe validar el ingreso de información para asegurar la estabilidad y buen funcionamiento de la aplicación.

Se podrán registrar un máximo de 6 escuderías.

Todo piloto debe estar asociado a una escudería.

Se deberá registrar dos pilotos por escudería y año de competición.
  #12 (permalink)  
Antiguo 27/07/2010, 13:46
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

Código C++:
Ver original
  1. #include<iostream.h>
  2. #include<fstream.h>
  3. #include<stdlib.h>
  4. #include<stdio.h>
  5. #include<process.h>
  6. #include<string.h>
  7.  
  8. //estructura de la escuderia
  9. struct escuderia
  10. {
  11.     char nombre_escud[50], ano_escud[50], pais_escud[50];
  12.     int codigo_escud;
  13.  
  14. }escud;
  15. //estructura del piloto
  16. struct piloto
  17. {
  18.     char num_vehiculo[50], apellido_pil[50] , ano_pil[50] , pais_pil[50];
  19.  
  20.     int codigo_pil;
  21.  
  22. }pil;
  23.  
  24. //esstructura campeonato
  25. struct campeonato
  26. {
  27.     char ciudad_carrera[50];
  28.  
  29.     double tiempo_camp;
  30.  
  31. }camp;
  32.  
  33.  
  34. //funciones
  35. void codigo();
  36. void clave();
  37. void menu2();
  38. void menu();//menu principal
  39. void submenu1();//menu del piloto
  40. void submenu2();//menu de la escuderia
  41. void submenu3();//menu campeonato
  42. void submenu4();//menu administrador
  43. //funciones piloto
  44. void ingresar_pil();
  45. //void modificar_pil();
  46. //void eliminar_pil();
  47.  
  48. //funciones escuderia
  49. //void ingresar_escud();
  50. //void modificar_escud();
  51. //void eliminar_escud();
  52.  
  53. //funciones campeonato
  54.  
  55. //void ingresar_tiempos();
  56.  
  57. //funciones de administrador
  58.  
  59. //void generar_resp_bin();
  60. //void generar_resp_txt();
  61. //void report_pil();
  62. //void report_escud();
  63. //void report_pil_carrera();
  64. //void report_escud_carrera();
  65.  
  66. void main() {
  67.     menu();
  68. }
  69.    
  70.  
  71.  
  72. void menu(){
  73. char op[20];
  74. clave();
  75. do{
  76.  
  77.     cout<<"MENU FORMULA UNO 2010"<<endl;
  78.     cout<<"1 - Gestion de Pilotos"<<endl;
  79.     cout<<"2 - Gestion de Escuderías"<<endl;
  80.     cout<<"3 - Gestion de Campeonatos"<<endl;
  81.     cout<<"4 - Gestion de Administrador"<<endl;
  82.     cout<<"5 - Salir"<<endl;
  83.     cin>>op;
  84.  
  85.     switch(op[0])
  86.     {
  87.  
  88.     case '1':
  89.     submenu1();
  90.     break;
  91.  
  92.     case'2':
  93.    submenu2();
  94.     break;
  95.    
  96.     case'3':
  97.    submenu3();
  98.     break;
  99.    
  100.     case'4':
  101.    submenu4();
  102.     break;
  103.    
  104.     case'5':
  105.    cout<<"Salida del Sistema"<<endl;
  106.     break;
  107.  
  108.     default:
  109.     cout<<"opcion incorrecta"<<endl;
  110.         break;
  111.  
  112.     }
  113. }while(op[0]!='5');
  114. }
  115. void menu2(){
  116. char op[20];
  117.  
  118. do{
  119.  
  120.     cout<<"MENU FORMULA UNO 2010"<<endl;
  121.     cout<<"1 - Gestion de Pilotos"<<endl;
  122.     cout<<"2 - Gestion de Escuderías"<<endl;
  123.     cout<<"3 - Gestion de Campeonatos"<<endl;
  124.     cout<<"4 - Gestion de Administrador"<<endl;
  125.     cout<<"5 - Salir"<<endl;
  126.     cin>>op;
  127.  
  128.     switch(op[0])
  129.     {
  130.  
  131.     case '1':
  132.     submenu1();
  133.     break;
  134.  
  135.     case'2':
  136.    submenu2();
  137.     break;
  138.    
  139.     case'3':
  140.    submenu3();
  141.     break;
  142.    
  143.     case'4':
  144.    submenu4();
  145.     break;
  146.    
  147.     case'5':
  148.    cout<<"Salida del Sistema"<<endl;
  149.     break;
  150.  
  151.     default:
  152.     cout<<"opcion incorrecta"<<endl;
  153.         break;
  154.  
  155.     }
  156. }while(op[0]!='5');
  157. }
  158. void submenu1(){
  159. char op[20];
  160.  
  161. do{
  162.     cout<<"1 - Ingresar Piloto"<<endl;
  163.     cout<<"2 - Modificar Piloto"<<endl;
  164.     cout<<"3 - Eliminar Piloto "<<endl;
  165.     cout<<"4 - Regresar Menu Principal"<<endl;
  166.     cin>>op;
  167.  
  168.     switch(op[0])
  169.     {
  170.     case '1':
  171.         ingresar_pil();
  172.         break;
  173.  
  174.        
  175.     case '2':
  176.         //modificar_pil();
  177.         break;
  178.  
  179.        
  180.     case '3':
  181.         //eliminar_pil();
  182.         break;
  183.  
  184.        
  185.     case '4':
  186.         menu2();
  187.         break;
  188.  
  189.    default:
  190.     cout<<"opcion incorrecta"<<endl;
  191.         break;
  192.  
  193.             }
  194. }while(op[0]!='5');
  195. }
  196.  
  197.  
  198. void submenu2(){
  199. char op[20];
  200.  
  201. do{
  202.     cout<<"1 - Ingresar  Escuderia"<<endl;
  203.     cout<<"2 - Modificar Escuderia"<<endl;
  204.     cout<<"3 - Eliminar  Escuderia "<<endl;
  205.     cout<<"4 - Regresar Menu Principal"<<endl;
  206.     cin>>op;
  207.  
  208.     switch(op[0])
  209.     {
  210.     case '1':
  211.         //ingresar_escud();
  212.         break;
  213.  
  214.        
  215.     case '2':
  216.         //modificar_escud();
  217.         break;
  218.  
  219.        
  220.     case '3':
  221.         //eliminar_escud();
  222.         break;
  223.  
  224.        
  225.     case '4':
  226.         menu2();
  227.         break;
  228.  
  229.    default:
  230.     cout<<"opcion incorrecta"<<endl;
  231.         break;
  232.  
  233.             }
  234. }while(op[0]!='5');
  235. }
  236.  
  237. void submenu3(){
  238. char op[20];
  239.  
  240. do{
  241.     cout<<"1 - Ingresar  Tiempo de carrera"<<endl;
  242.     cout<<"2 - Regresar Menu Principal"<<endl;
  243.     cin>>op;
  244.  
  245.     switch(op[0])
  246.     {
  247.     case '1':
  248.         //ingresar_tiempos();
  249.         break;
  250.  
  251.     case '2':
  252.         menu2();
  253.         break;
  254.  
  255.    default:
  256.     cout<<"opcion incorrecta"<<endl;
  257.         break;
  258.  
  259.             }
  260. }while(op[0]!='2');
  261. }
  262.  
  263. void submenu4(){
  264. char op[20];
  265.  
  266. do{
  267.     cout<<"1 - Generar Respaldo "<<endl;
  268.     cout<<"2 - Generar Archivo de Texto "<<endl;
  269.     cout<<"3 - Generar Reporte de Pilotos Global  "<<endl;
  270.     cout<<"4 - Generar Reporte de Escuderías Global "<<endl;
  271.     cout<<"5 - Generar Reporte de Pilotos por Carrera "<<endl;
  272.     cout<<"6 - Generar Reporte de Escuderías por Carrera "<<endl;
  273.     cout<<"7 - Regresar Menu Principal"<<endl;
  274.     cin>>op;
  275.  
  276.     switch(op[0])
  277.     {
  278.     case '1':
  279.         //generar_resp_bin();
  280.         break;
  281.  
  282.        
  283.     case '2':
  284.         //generar_resp_txt();
  285.         break;
  286.  
  287.        
  288.     case '3':
  289.         //report_pil();
  290.         break;
  291.  
  292.        
  293.     case '4':
  294.         //report_escud();
  295.         break;
  296.      
  297.     case '5':
  298.         //report_pil_carrera();
  299.         break;
  300.  
  301.        
  302.     case '6':
  303.         //report_escud_carrera();
  304.         break;
  305.  
  306.        
  307.     case '7':
  308.         menu2();
  309.         break;
  310.    default:
  311.     cout<<"opcion incorrecta"<<endl;
  312.         break;
  313.  
  314.             }
  315. }while(op[0]!='5');
  316. }
  317.  
  318. void clave(){
  319. char contrasena[20];
  320. const char CONTRASENA[20] ="contrasena";
  321.  
  322. cout<<"ingresar clave del sistema"<<endl;
  323. cin>>contrasena;
  324.  
  325.  
  326.  
  327.  
  328. if (strcmp(CONTRASENA, contrasena) != 0)
  329. {  
  330.     menu();
  331.  
  332. }
  333.  
  334.  
  335. }
  336.  
  337. void ingresar_pil(){
  338.     int x=0;
  339. char op;
  340. ofstream fichero("salida.txt", ios::out);
  341.  
  342. if(i<=6)
  343. {
  344. for(int i = 1; i <= 6; i++)
  345. {
  346.  
  347.  
  348.  
  349.  
  350. }
  351.  
  352.  
  353. fichero << pil.codigo_pil  <<pil.num_vehiculo;          //como si usaras cout, pero esto escribe en el fichero
  354. fichero.put('\n');//para saltarse un espacio
  355.  
  356. }
  357. }
  358.  
  359. void codigo(){
  360.  
  361.  
  362. static int numero=0;
  363.     numero++;
  364.  
  365.  
  366.  
  367.  
  368. }

alli esta la estructura de mi codigo es largo por q piden muchas cosas gracias
  #13 (permalink)  
Antiguo 27/07/2010, 13:59
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: generar numeros

deberias incluir la estrustura piloto dentro de la estructiura de la escuderia

algo asi:
pil pilotos[2];
__________________
si tienes entre 18 y 20 años... entonces tienes 19 años xD
  #14 (permalink)  
Antiguo 27/07/2010, 18:08
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: generar numeros

q tal si para hacer esas restricciones leo del archivo q guardo y comparo no seria asi mas facil? pienso esa es la idea q tengo

Etiquetas: numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.