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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 64
381  Programación / Programación C/C++ / Re: Listas enlazadas por punteros en: 3 Enero 2019, 02:18 am
Bueno si es asi, la definicion de la estructura cambiaria a:

Código
  1. typedef struct tnodo *pnodo;
  2. typedef struct tnodo{
  3. float dato;
  4. pnodo sig;
  5. };

Y modificar el modulo de crear_nodo a:
Código
  1. void crear_nodo(pnodo &nuevo, float valor)
  2. {
  3. nuevo=new tnodo;
  4. if(nuevo!=NULL){
  5. nuevo->dato=valor;
  6. nuevo->sig=NULL;
  7. }
  8. else
  9. cout<<"MEMORIA INSUFICIENTE"<<endl;
  10. }

Y crear un modulo para agregar las resistencias calculadas en una lista simplemente enlazada con 1 puntero

Código
  1. void agregar_resistencias(tlista &lista)
  2. {
  3. int n,i;
  4. float r,v,c;
  5. pnodo nuevo;
  6. cout<<"Ingrese cantidad de resistencias a calcular: ";
  7. cin>>n;
  8. for(i=1;i<=n;i++){
  9.       cout<<"Ingrese tension "<<i<<": "<<endl;
  10.       cin>>v;
  11.       cout<<"Ingrese corriente "<<i<<": "<<endl;
  12.           cin>>c;
  13.         r=(v/c);
  14.         cout<<"El resultado de la resistencia R "<<i<<" es: "<<r<<endl;
  15.         crear_nodo(nuevo,r);
  16.           if(nuevo!=NULL)
  17.       agregar_final(lista,nuevo);
  18.   }
  19. }

382  Programación / Programación C/C++ / Re: Listas enlazadas por punteros en: 3 Enero 2019, 01:59 am
Código
  1. //Lista simple con un puntero
  2. #include <iostream>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7. typedef struct tnodo *pnodo;
  8. typedef struct tnodo{
  9. int dato;//Aca tambien puede ir un tipo de dato estructurado
  10. pnodo sig;
  11. };
  12.  
  13. void iniciar_lista(pnodo &lista);
  14. void crear_nodo(pnodo &nuevo);
  15. void agregar_inicio(pnodo &lista, pnodo nuevo);
  16. void agregar_final(pnodo &lista, pnodo nuevo);
  17. void agregar_orden(pnodo &lista, pnodo nuevo);
  18. pnodo quitar_inicio(pnodo &lista);
  19. pnodo quitar_final(pnodo &lista);
  20. pnodo quitar_nodo(pnodo &lista, int buscado);
  21. bool buscar_nodo(pnodo lista, int buscado);
  22. void mostrar_lista(pnodo lista);
  23.  
  24. int main()
  25. {
  26. int opcion, buscado;
  27. pnodo milista, nuevo, eliminado;
  28. iniciar_lista(milista);
  29. do{
  30. system("cls");
  31. cout<<"1. Agregar al inicio"<<endl;
  32. cout<<"2. Agregar al final"<<endl;
  33. cout<<"3. Agregar en orden"<<endl;
  34. cout<<"4. Quitar inicio"<<endl;
  35. cout<<"5. Quitar final"<<endl;
  36. cout<<"6. Quitar nodo"<<endl;
  37. cout<<"7. Buscar nodo"<<endl;
  38. cout<<"8. Mostrar lista"<<endl;
  39. cout<<"9. Salir"<<endl;
  40. cin>>opcion;
  41. switch(opcion){
  42. case 1: crear_nodo(nuevo);
  43. if(nuevo!=NULL)
  44. agregar_inicio(milista,nuevo);
  45. break;
  46. case 2: crear_nodo(nuevo);
  47. if(nuevo!=NULL)
  48. agregar_final(milista,nuevo);
  49. break;
  50. case 3: crear_nodo(nuevo);
  51. if(nuevo!=NULL)
  52. agregar_orden(milista,nuevo);
  53. break;
  54. case 4: eliminado=quitar_inicio(milista);
  55. if(eliminado!=NULL){
  56. cout<<"Eliminado: "<<eliminado->dato<<endl;
  57. delete(eliminado);
  58. }
  59. else
  60. cout<<"NO SE PUEDE ELIMINAR, LISTA VACIA"<<endl;
  61. break;
  62. case 5: eliminado=quitar_final(milista);
  63. if(eliminado!=NULL){
  64. cout<<"Eliminado: "<<eliminado->dato<<endl;
  65. delete(eliminado);
  66. }
  67. else
  68. cout<<"NO SE PUEDE ELIMINAR, LISTA VACIA"<<endl;
  69. break;
  70. case 6: cout<<"Ingrese valor buscado: ";
  71. cin>>buscado;
  72. eliminado=quitar_nodo(milista,buscado);
  73. if(eliminado!=NULL){
  74. cout<<"Eliminado: "<<eliminado->dato<<endl;
  75. delete(eliminado);
  76. }
  77. else
  78. cout<<"NO SE PUDO ELIMINAR, VALOR NO ENCONTRADO"<<endl;
  79. break;
  80. case 7: cout<<"Ingrese valor buscado: ";
  81. cin>>buscado;
  82. if(buscar_nodo(milista,buscado)==true)
  83. cout<<"Encontrado"<<endl;
  84. else
  85. cout<<"VALOR NO ENCONTRADO"<<endl;
  86. break;
  87. case 8: mostrar_lista(milista);break;
  88. case 9: cout<<"FIN DEL PROGRAMA"<<endl;break;
  89. default: cout<<"Opcion incorrecta"<<endl;
  90. }
  91. system("pause");
  92. }while(opcion!=9);
  93. return 0;
  94. }
  95.  
  96. void iniciar_lista(pnodo &lista)
  97. {
  98. lista=NULL;
  99. }
  100.  
  101. void crear_nodo(pnodo &nuevo)
  102. {
  103. nuevo=new tnodo;
  104. if(nuevo!=NULL){
  105. cout<<"Ingrese dato: ";
  106. cin>>nuevo->dato;
  107. nuevo->sig=NULL;
  108. }
  109. else
  110. cout<<"MEMORIA INSUFICIENTE"<<endl;
  111. }
  112.  
  113. void agregar_inicio(pnodo &lista, pnodo nuevo)
  114. {
  115. if(lista==NULL)
  116. lista=nuevo;
  117. else{
  118. nuevo->sig=lista;
  119. lista=nuevo;
  120. }
  121. }
  122.  
  123. void agregar_final(pnodo &lista, pnodo nuevo)
  124. {
  125. pnodo i;
  126. if(lista==NULL)
  127. lista=nuevo;
  128. else{
  129. for(i=lista;i->sig!=NULL;i=i->sig);
  130. i->sig=nuevo;
  131. }
  132. }
  133.  
  134. void agregar_orden(pnodo &lista, pnodo nuevo)
  135. {
  136. pnodo i;
  137. if(lista==NULL)
  138. lista=nuevo;
  139. else{
  140. if(nuevo->dato<lista->dato){
  141. nuevo->sig=lista;
  142. lista=nuevo;
  143. }
  144. else{
  145. for(i=lista;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
  146. nuevo->sig=i->sig;
  147. i->sig=nuevo;
  148. }
  149. }
  150. }
  151.  
  152. pnodo quitar_inicio(pnodo &lista)
  153. {
  154. pnodo borrado;
  155. if(lista==NULL)
  156. borrado=NULL;
  157. else{
  158. borrado=lista;
  159. lista=borrado->sig;
  160. borrado->sig=NULL;
  161. }
  162. return borrado;
  163. }
  164.  
  165. pnodo quitar_final(pnodo &lista)
  166. {
  167. pnodo i, borrado;
  168. if(lista==NULL)
  169. borrado=NULL;
  170. else{
  171. if(lista->sig==NULL){
  172. borrado=lista;
  173. lista=NULL;
  174. }
  175. else{
  176. for(i=lista;(i->sig)->sig!=NULL;i=i->sig);
  177. borrado=i->sig;
  178. i->sig=NULL;
  179. }
  180. }
  181. return borrado;
  182. }
  183.  
  184. pnodo quitar_nodo(pnodo &lista, int buscado)
  185. {
  186. pnodo i, borrado;
  187. if(lista==NULL)
  188. borrado=NULL;
  189. else{
  190. if(buscado==lista->dato){
  191. borrado=lista;
  192. lista=borrado->sig;
  193. borrado->sig=NULL;
  194. }
  195. else{
  196. for(i=lista;i->sig!=NULL && buscado!=(i->sig)->dato;i=i->sig);
  197. if(i->sig!=NULL){
  198. borrado=i->sig;
  199. i->sig=borrado->sig;
  200. borrado->sig=NULL;
  201. }
  202. else
  203. borrado=NULL;
  204. }
  205. }
  206. return borrado;
  207. }
  208.  
  209. bool buscar_nodo(pnodo lista, int buscado)
  210. {
  211. pnodo i;
  212. bool encontrado=false;
  213. if(lista!=NULL){
  214. for(i=lista;i!=NULL && encontrado==false;i=i->sig)
  215. if(buscado==i->dato)
  216. encontrado=true;
  217. }
  218. return encontrado;
  219. }
  220.  
  221. void mostrar_lista(pnodo lista)
  222. {
  223. pnodo i;
  224. if(lista!=NULL){
  225. for(i=lista;i!=NULL;i=i->sig)
  226. cout<<i->dato<<"->";
  227. cout<<"NULL"<<endl;
  228. }
  229. else
  230. cout<<"LISTA VACIA"<<endl;
  231. }
  232.  
  233.  

Código
  1. //Lista simple con 2 punteros
  2. #include <iostream>
  3. #include <stdlib.h>
  4.  
  5. using namespace std;
  6.  
  7. typedef struct tnodo *pnodo;
  8. typedef struct tnodo{
  9. int dato;
  10. pnodo sig;
  11. };
  12. typedef struct tlista{
  13. pnodo inicio;
  14. pnodo final;
  15. };
  16.  
  17. void iniciar_lista(tlista &lista);
  18. void crear_nodo(pnodo &nuevo);
  19. void agregar_inicio(tlista &lista, pnodo nuevo);
  20. void agregar_final(tlista &lista, pnodo nuevo);
  21. void agregar_orden(tlista &lista, pnodo nuevo);
  22. pnodo quitar_inicio(tlista &lista);
  23. pnodo quitar_final(tlista &lista);
  24. pnodo quitar_nodo(tlista &lista, int buscado);
  25. bool buscar_nodo(tlista lista, int buscado);
  26. void mostrar_lista(tlista lista);
  27.  
  28. int main()
  29. {
  30. int opcion, buscado;
  31. tlista milista;
  32. pnodo nuevo, eliminado;
  33. iniciar_lista(milista);
  34. do{
  35. system("cls");
  36. cout<<"1. Agregar al inicio"<<endl;
  37. cout<<"2. Agregar al final"<<endl;
  38. cout<<"3. Agregar en orden"<<endl;
  39. cout<<"4. Quitar inicio"<<endl;
  40. cout<<"5. Quitar final"<<endl;
  41. cout<<"6. Quitar nodo"<<endl;
  42. cout<<"7. Buscar nodo"<<endl;
  43. cout<<"8. Mostrar lista"<<endl;
  44. cout<<"9. Salir"<<endl;
  45. cin>>opcion;
  46. switch(opcion){
  47. case 1: crear_nodo(nuevo);
  48. if(nuevo!=NULL)
  49. agregar_inicio(milista,nuevo);
  50. break;
  51. case 2: crear_nodo(nuevo);
  52. if(nuevo!=NULL)
  53. agregar_final(milista,nuevo);
  54. break;
  55. case 3: crear_nodo(nuevo);
  56. if(nuevo!=NULL)
  57. agregar_orden(milista,nuevo);
  58. break;
  59. case 4: eliminado=quitar_inicio(milista);
  60. if(eliminado!=NULL){
  61. cout<<"Eliminado: "<<eliminado->dato<<endl;
  62. delete(eliminado);
  63. }
  64. else
  65. cout<<"NO SE PUEDE ELIMINAR, LISTA VACIA"<<endl;
  66. break;
  67. case 5: eliminado=quitar_final(milista);
  68. if(eliminado!=NULL){
  69. cout<<"Eliminado: "<<eliminado->dato<<endl;
  70. delete(eliminado);
  71. }
  72. else
  73. cout<<"NO SE PUEDE ELIMINAR, LISTA VACIA"<<endl;
  74. break;
  75. case 6: cout<<"Ingrese valor buscado: ";
  76. cin>>buscado;
  77. eliminado=quitar_nodo(milista,buscado);
  78. if(eliminado!=NULL){
  79. cout<<"Eliminado: "<<eliminado->dato<<endl;
  80. delete(eliminado);
  81. }
  82. else
  83. cout<<"NO SE PUDO ELIMINAR, VALOR NO ENCONTRADO"<<endl;
  84. break;
  85. case 7: cout<<"Ingrese valor buscado: ";
  86. cin>>buscado;
  87. if(buscar_nodo(milista,buscado)==true)
  88. cout<<"Encontrado"<<endl;
  89. else
  90. cout<<"VALOR NO ENCONTRADO"<<endl;
  91. break;
  92. case 8: mostrar_lista(milista);break;
  93. case 9: cout<<"FIN DEL PROGRAMA"<<endl;break;
  94. default: cout<<"Opcion incorrecta"<<endl;
  95. }
  96. system("pause");
  97. }while(opcion!=9);
  98. return 0;
  99. }
  100.  
  101. void iniciar_lista(tlista &lista)
  102. {
  103. lista.inicio=NULL;
  104. lista.final=NULL;
  105. }
  106.  
  107. void crear_nodo(pnodo &nuevo)
  108. {
  109. nuevo=new tnodo;
  110. if(nuevo!=NULL){
  111. cout<<"Ingrese dato: ";
  112. cin>>nuevo->dato;
  113. nuevo->sig=NULL;
  114. }
  115. else
  116. cout<<"MEMORIA INSUFICIENTE"<<endl;
  117. }
  118.  
  119. void agregar_inicio(tlista &lista, pnodo nuevo)
  120. {
  121. if(lista.inicio==NULL){
  122. lista.inicio=nuevo;
  123. lista.final=nuevo;
  124. }
  125. else{
  126. nuevo->sig=lista.inicio;
  127. lista.inicio=nuevo;
  128. }
  129. }
  130.  
  131. void agregar_final(tlista &lista, pnodo nuevo)
  132. {
  133. if(lista.inicio==NULL){
  134. lista.inicio=nuevo;
  135. lista.final=nuevo;
  136. }
  137. else{
  138. lista.final->sig=nuevo;
  139. lista.final=nuevo;
  140. }
  141. }
  142.  
  143. void agregar_orden(tlista &lista, pnodo nuevo)
  144. {
  145. pnodo i;
  146. if(lista.inicio==NULL){
  147. lista.inicio=nuevo;
  148. lista.final=nuevo;
  149. }
  150. else{
  151. if(nuevo->dato<lista.inicio->dato){
  152. nuevo->sig=lista.inicio;
  153. lista.inicio=nuevo;
  154. }
  155. else{
  156. if(nuevo->dato>lista.final->dato){
  157. lista.final->sig=nuevo;
  158. lista.final=nuevo;
  159. }
  160. else{
  161. for(i=lista.inicio;i->sig!=NULL && nuevo->dato>(i->sig)->dato;i=i->sig);
  162. nuevo->sig=i->sig;
  163. i->sig=nuevo;
  164. }
  165. }
  166. }
  167. }
  168.  
  169. pnodo quitar_inicio(tlista &lista)
  170. {
  171. pnodo borrado;
  172. if(lista.inicio==NULL)
  173. borrado=NULL;
  174. else{
  175. if(lista.inicio==lista.final){
  176. borrado=lista.inicio;
  177. lista.inicio=NULL;
  178. lista.final=NULL;
  179. }
  180. else{
  181. borrado=lista.inicio;
  182. lista.inicio=borrado->sig;
  183. borrado->sig=NULL;
  184. }
  185. }
  186. return borrado;
  187. }
  188.  
  189. pnodo quitar_final(tlista &lista)
  190. {
  191. pnodo i, borrado;
  192. if(lista.inicio==NULL)
  193. borrado=NULL;
  194. else{
  195. if(lista.inicio==lista.final){
  196. borrado=lista.inicio;
  197. lista.inicio=NULL;
  198. lista.final=NULL;
  199. }
  200. else{
  201. for(i=lista.inicio;(i->sig)->sig!=NULL;i=i->sig);
  202. borrado=lista.final;
  203. lista.final=i;
  204. lista.final->sig=NULL;
  205. }
  206. }
  207. return borrado;
  208. }
  209.  
  210. pnodo quitar_nodo(tlista &lista, int buscado)
  211. {
  212. pnodo i, borrado;
  213. if(lista.inicio==NULL)
  214. borrado=NULL;
  215. else{
  216. if(lista.inicio==lista.final){
  217. if(buscado==lista.inicio->dato){
  218. borrado=lista.inicio;
  219. lista.inicio=NULL;
  220. lista.final=NULL;
  221. }
  222. else
  223. borrado=NULL;
  224. }
  225. else{
  226. if(buscado==lista.inicio->dato)
  227. borrado=quitar_inicio(lista);
  228. else{
  229. if(buscado==lista.final->dato)
  230. borrado=quitar_final(lista);
  231. else{
  232. for(i=lista.inicio;i->sig!=NULL && buscado!=(i->sig)->dato;i=i->sig);
  233. if(i->sig!=NULL){
  234. borrado=i->sig;
  235. i->sig=borrado->sig;
  236. borrado->sig=NULL;
  237. }
  238. else
  239. borrado=NULL;
  240. }
  241. }
  242. }
  243. }
  244. return borrado;
  245. }
  246.  
  247. bool buscar_nodo(tlista lista, int buscado)
  248. {
  249. pnodo i;
  250. bool encontrado=false;
  251. if(lista.inicio!=NULL){
  252. for(i=lista.inicio;i!=NULL && encontrado==false;i=i->sig)
  253. if(buscado==i->dato)
  254. encontrado=true;
  255. }
  256. return encontrado;
  257. }
  258.  
  259. void mostrar_lista(tlista lista)
  260. {
  261. pnodo i;
  262. if(lista.inicio!=NULL){
  263. for(i=lista.inicio;i!=NULL;i=i->sig)
  264. cout<<i->dato<<"->";
  265. cout<<"NULL"<<endl;
  266. }
  267. else
  268. cout<<"LISTA VACIA"<<endl;
  269. }
  270.  

Hay mas listas, simple circular, doble con 1 puntero, doble con 2 punteros, circular doble y otras que no recuerdo :D
383  Programación / Programación C/C++ / Re: Archivos en C/C++ problemas con valores de retorno en: 2 Enero 2019, 23:30 pm
¿Así funciona?

Código
  1. void cargar_docentes(parchivo docentes)
  2. {
  3. tdocente d;
  4. docentes=fopen("docentes.txt","ab+");
  5. cargar(d);
  6. fclose(docentes);
  7. if(consulta(docentes,d.legajo)==false){
  8. docentes=fopen("docentes.txt","ab");
  9. fwrite(&d,sizeof(d),1,docentes);
  10.                fclose(docentes);
  11. }else{
  12. cout<<"El numero de legajo ya existe"<<endl;
  13.        }
  14. }

saludos!



No, no funciona, saludos
384  Programación / Bases de Datos / Re: normalizacion (soy super nueva en bases de datos) en: 2 Enero 2019, 03:42 am
Desde mi punto de vista, el consejo de tu profesor de no buscar nada en internet es totalmente invalido, aconsejarle a alguien que quiere aprender algo que no busque e investigue por su cuenta sino que espere a que se lo den todo masticado y como el profesor quiere y cuando quiere...en fin...cada cual con lo suyo.
El objetivo de la normalizacion de una bd relacional es evitar la redundancia de datos y proteger la informacion, sencillo. Cuando practiques lo suficiente y/o tengas mas experiencia podras diseñar bases de datos directamente normalizadas en 2FN, 3FN o incluso FNBC dependiendo de la complejidad del problema y de tus capacidades.
Saludos y suerte
Pues si investigué, es más encontre el mismo ejercicio en internet y cuando voy a a consultar me dicen que estoy buscando de internet, que no haga eso, y bueno ellos querian que hiciera a su forma, entonces lo hice y al final aprobé la materia.
385  Programación / Desarrollo Web / Colocar mi videojuego en mi pagina web en: 2 Enero 2019, 03:17 am
Hola tengo una pagina web donde enseño programacion, y comparto mis animes favoritos, y bueno tambien he hecho un juego y quiero incluirlo en una de las paginas de mi web para cuando el usuario entre a esa pagina le salga el juego con un boton de start y cuando el usuario haga click en start que empiece el juego, el juego esta hecho en scracth y tambien en c++, Gracias  ;-)
386  Programación / Programación C/C++ / Archivos en C/C++ problemas con valores de retorno en: 2 Enero 2019, 03:04 am
Primero que nada hola, bien, tengo el siguiente programa el cual tiene un modulo de agregar un registro solamente si la clave no existe en el archivo de registros tengo lo siguiente:

Código
  1. #include <stdio.h>
  2. //EL PROBLEMA ESTA EN EL MODULO "void cargar_docentes(archivo docentes)"
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. typedef char tcad[50];
  10. typedef struct tfecha{
  11. int dia;
  12. int mes;
  13. int anyo;
  14. };
  15. typedef struct tformacion{
  16. tcad titulo;
  17. tcad facultad;
  18. tcad universidad;
  19. };
  20. typedef struct tdocente{
  21. int legajo;
  22. tcad nombre_apellido;
  23. tfecha fecha_nac;
  24. tformacion educacion;
  25. int DNI;
  26. tcad cargo;
  27. };
  28. typedef FILE *parchivo;
  29.  
  30. void cargar(tdocente &docente);
  31. void mostrar(tdocente docente);
  32. void cargar_docentes(parchivo docentes);
  33. bool consulta(parchivo docentes, int codigo);
  34. void mostrar_docentes(parchivo docentes);
  35. void busqueda(parchivo docentes, int codigo);
  36. void modificar_docente(parchivo docentes, int codigo);
  37. void eliminar_docente(parchivo docentes, int codigo);
  38. void listar_docentes_especificos(parchivo docentes, tcad buscado);
  39. void nueva_cadena(tcad &cadena);
  40.  
  41. int main()
  42. {
  43. parchivo docentes;
  44. int opcion, codigo;
  45. tcad buscado;
  46. do{
  47. system("cls");
  48. cout<<"1. Cargar docente"<<endl;
  49. cout<<"2. Consultar docente"<<endl;
  50. cout<<"3. Listar docentes"<<endl;
  51. cout<<"4. Buscar docente"<<endl;
  52. cout<<"5. Modificar docente"<<endl;
  53. cout<<"6. Eliminar docente"<<endl;
  54. cout<<"7. Listar docentes por universidad"<<endl;
  55. cout<<"8. Salir"<<endl;
  56. cin>>opcion;
  57. switch(opcion){
  58. case 1: cargar_docentes(docentes);break;
  59. case 2: cout<<"Ingrese numero de legajo: ";
  60. cin>>codigo;
  61. if(consulta(docentes,codigo)==true)
  62. cout<<"Docente encontrado"<<endl;
  63. else
  64. cout<<"Docente no encontrado"<<endl;
  65. break;
  66. case 3: mostrar_docentes(docentes);break;
  67. case 4: cout<<"Ingrese numero de legajo: ";
  68. cin>>codigo;
  69. busqueda(docentes,codigo);break;
  70. case 5: cout<<"Ingrese numero de legajo: ";
  71. cin>>codigo;
  72. modificar_docente(docentes,codigo);break;
  73. case 6: cout<<"Ingrese numero de legajo: ";
  74. cin>>codigo;
  75. eliminar_docente(docentes,codigo);break;
  76. case 7: cout<<"Ingrese universidad: ";
  77. nueva_cadena(buscado);
  78. listar_docentes_especificos(docentes,buscado);break;
  79. case 8: cout<<"FIN DEL PROGRAMA"<<endl;break;
  80. default: cout<<"Opcion incorrecta"<<endl;
  81. }
  82. system("pause");
  83. }while(opcion!=8);
  84. }
  85.  
  86. void cargar(tdocente &docente)
  87. {
  88. cout<<"Ingrese datos del docente"<<endl;
  89. cout<<"Legajo: ";
  90. cin>>docente.legajo;
  91. cout<<"Nombre y apellido: ";
  92. nueva_cadena(docente.nombre_apellido);
  93. cout<<"Fecha de nadimiento DD/MM/AA"<<endl;
  94. cin>>docente.fecha_nac.dia;
  95. cin>>docente.fecha_nac.mes;
  96. cin>>docente.fecha_nac.anyo;
  97. cout<<"Formacion academica"<<endl;
  98. cout<<"Titulo: ";
  99. nueva_cadena(docente.educacion.titulo);
  100. cout<<"Facultad: ";
  101. nueva_cadena(docente.educacion.facultad);
  102. cout<<"Universidad: ";
  103. nueva_cadena(docente.educacion.universidad);
  104. cout<<"DNI: ";
  105. cin>>docente.DNI;
  106. cout<<"Cargo: ";
  107. nueva_cadena(docente.cargo);
  108. }
  109.  
  110. void mostrar(tdocente docente)
  111. {
  112. cout<<"Datos del docente"<<endl;
  113. cout<<"Legajo: "<<docente.legajo<<endl;
  114. cout<<"Nombre y apellido: "<<docente.nombre_apellido<<endl;
  115. cout<<"Fecha de nadimiento:"<<docente.fecha_nac.dia<<"/"<<docente.fecha_nac.mes<<"/"<<docente.fecha_nac.anyo<<endl;
  116. cout<<"Formacion academica"<<endl;
  117. cout<<"Titulo: "<<docente.educacion.titulo<<endl;
  118. cout<<"Facultad: "<<docente.educacion.facultad<<endl;
  119. cout<<"Universidad: "<<docente.educacion.universidad<<endl;
  120. cout<<"DNI: "<<docente.DNI<<endl;
  121. cout<<"Cargo: "<<docente.cargo<<endl<<endl;
  122. }
  123. //EL PROBLEMA ES ESTE MODULO
  124. void cargar_docentes(parchivo docentes)
  125. {
  126. tdocente d;
  127. docentes=fopen("docentes.txt","ab+");
  128. cargar(d);
  129. fclose(docentes);
  130. if(consulta(docentes,d.legajo)==false){
  131. docentes=fopen("docentes.txt","ab");
  132. fwrite(&d,sizeof(d),1,docentes);
  133. }
  134. else
  135. cout<<"El numero de legajo ya existe"<<endl;
  136. fclose(docentes);
  137. }
  138.  
  139. bool consulta(parchivo docentes, int codigo)
  140. {
  141. tdocente d;
  142. bool encontrado=false;
  143. docentes=fopen("docentes.txt","rb");
  144. if(docentes!=NULL){
  145. while(!feof(docentes) && !encontrado){
  146. fread(&d,sizeof(d),1,docentes);
  147. if(d.legajo==codigo)
  148. encontrado=true;
  149. }
  150. }
  151. fclose(docentes);
  152. return encontrado;
  153. }
  154.  
  155. void mostrar_docentes(parchivo docentes)
  156. {
  157. tdocente d;
  158. docentes=fopen("docentes.txt","rb");
  159. if(docentes==NULL)
  160. cout<<"No se pudo abrir el archivo"<<endl;
  161. else{
  162. while(!feof(docentes)){
  163. fread(&d,sizeof(d),1,docentes);
  164. if(!feof(docentes))
  165. mostrar(d);
  166. }
  167. }
  168. fclose(docentes);
  169. }
  170.  
  171. void busqueda(parchivo docentes, int codigo)
  172. {
  173. tdocente d;
  174. bool encontrado=false;
  175. docentes=fopen("docentes.txt","rb");
  176. if(docentes==NULL)
  177. cout<<"No se pudo abrir el archivo"<<endl;
  178. else{
  179. while(!feof(docentes) && !encontrado){
  180. fread(&d,sizeof(d),1,docentes);
  181. if(d.legajo==codigo){
  182. mostrar(d);
  183. encontrado=true;
  184. }
  185. }
  186. if(encontrado==false)
  187. cout<<"Docente no encontrado"<<endl;
  188. }
  189. fclose(docentes);
  190. }
  191.  
  192. void modificar_docente(parchivo docentes, int codigo)
  193. {
  194. tdocente d;
  195. bool encontrado=false;
  196. docentes=fopen("docentes.txt","rb+");
  197. if(docentes==NULL)
  198. cout<<"No se pudo abrir el archivo"<<endl;
  199. else{
  200. while(!feof(docentes) && !encontrado){
  201. fread(&d,sizeof(d),1,docentes);
  202. if(codigo==d.legajo)
  203. encontrado=true;
  204. }
  205. if(encontrado==true){
  206. cargar(d);
  207. fseek(docentes,-sizeof(d),1);
  208. fwrite(&d,sizeof(d),1,docentes);
  209. }
  210. else
  211. cout<<"Docente no encontrado"<<endl;
  212. }
  213. fclose(docentes);
  214. }
  215.  
  216. void eliminar_docente(parchivo docentes, int codigo)
  217. {
  218. tdocente d;
  219. parchivo temporal;
  220. docentes=fopen("docentes.txt","rb");
  221. temporal=fopen("temporal.txt","wb");
  222. if(docentes==NULL){
  223. cout<<"ARCHIVO INEXISTENTE"<<endl;
  224. fclose(docentes);
  225. fclose(temporal);
  226. }
  227. else{
  228. while(!feof(docentes)){
  229. fread(&d,sizeof(d),1,docentes);
  230. if(!feof(docentes) && d.legajo!=codigo)
  231. fwrite(&d,sizeof(d),1,temporal);
  232. }
  233. fclose(docentes);
  234. fclose(temporal);
  235. if(remove("docentes.txt")==0)
  236. rename("temporal.txt","docentes.txt");
  237. else
  238. cout<<"ERROR AL ELIMINAR"<<endl;
  239. }
  240. }
  241.  
  242. void listar_docentes_especificos(parchivo docentes, tcad buscado)
  243. {
  244. tdocente d;
  245. docentes=fopen("docentes.txt","rb");
  246. if(docentes==NULL)
  247. cout<<"No se pudo abrir el archivo"<<endl;
  248. else{
  249. while(!feof(docentes)){
  250. fread(&d,sizeof(d),1,docentes);
  251. if(!feof(docentes) && strcmp(d.educacion.universidad,buscado)==0)
  252. mostrar(d);
  253. }
  254. }
  255. fclose(docentes);
  256. }
  257.  
  258. void nueva_cadena(tcad &cadena)
  259. {
  260. fflush(stdin);
  261. gets(cadena);
  262. fflush(stdin);
  263. }

Si bien no me resulta funcional lo que me enseñaron de cerrar el archivo para llamar a la funcion de busqueda que devuelve un valor logico.
Como en este caso:

Código
  1. void agregar_alumnos(parchivo alumnos)
  2. {
  3. talumno a;
  4. int cantidad;
  5. alumnos=fopen("alumnos.txt","wb");
  6. cout<<"Cuántos registros desea guardar: ";
  7. cin>>cantidad;
  8. while(cantidad>0){
  9. carga(a);
  10. fclose(alumnos);
  11. if(buscar_archivo(alumnos,a.libreta)==false){
  12. alumnos=fopen("alumnos.txt","ab");
  13. fwrite(&a,sizeof(a),1,alumnos);
  14. cantidad--;
  15. }
  16. else
  17. cout<<"La libreta ya existe"<<endl;
  18. }
  19. fclose(alumnos);
  20. }

Pero le he encontrado dos soluciones la primera es algo extraña, no me convence y es cambiar incluir un mensaje en la funcion de busqueda,
cosa que no se hace en funciones.
Es asi:
Código
  1. bool consulta(parchivo docentes, int codigo)
  2. {
  3. tdocente d;
  4. bool encontrado=false;
  5. docentes=fopen("docentes.txt","rb");
  6. if(docentes!=NULL){
  7. while(!feof(docentes) && !encontrado){
  8. fread(&d,sizeof(d),1,docentes);
  9. if(d.legajo==codigo)
  10. encontrado=true;
  11. cout<<"Encontrado: "<<encontrado<<endl;
  12. }
  13. }
  14. fclose(docentes);
  15. return encontrado;
  16. }

Un poco raro bueno, y la ultima y mas clara diria yo es mantener el archivo abierto al mandar a preguntar si existe o no la clave del registro en
el archivo de registros, asi es como he logrado hacer andar este programa, pero no entiendo bien me explican?

Código
  1. void cargar_docentes(parchivo docentes)
  2. {
  3. tdocente d;
  4. docentes=fopen("docentes.txt","ab+");
  5. cargar(d);
  6. if(consulta(docentes,d.legajo)==false)
  7. fwrite(&d,sizeof(d),1,docentes);
  8. else
  9. cout<<"El numero de legajo ya existe"<<endl;
  10. fclose(docentes);
  11. }

Intenten agregar con el primer programa agregar como primer registro todos los campos en 1, no les deja pero si ponen todo 2 en los campos del registro si, me perdi muchachos ayuda.  :-(
387  Programación / Desarrollo Web / Stream de musica en blogger en: 30 Diciembre 2018, 03:27 am
Hola a todos y todas, queria saber como puedo hacer para que el usuario escuche musica de mi stream de radio y que siga escuchando aunque navege por las secciones de mi pagina tengo esto en el gadget

Código
  1. <iframe src="https://miradio.piratitajajaenseriochicos.php?"
  2.                                            scrolling="no" frameborder="0" allowtransparency="true" width="200" height="240" autoplay=true ></iframe>

Como podria hacer?  :huh:
388  Programación / Desarrollo Web / Secciones en pagina web (SOLUCIONADO) en: 29 Diciembre 2018, 23:19 pm
Hola a todos, queria saber como puedo hacer una lista de entradas en mi pagina web, tengo secciones, programacion, anime y quiero colocar entradadas en programacion por ejemplo pero que en vez de mostrarme lo ultimo que publique me liste por link a otra pagina donde ahi si se va a leer mi contenido

PROGRAMACION | ANIME
Click en Programacion->
Y que me muestre lo siguiente
1-Aprendiendo a Programar
2-Programacion
3- ... etc
Y que  al hacer click en "1-Aprendiendo a Programar" que me mande a una pagina donde redacte mi contenido muchas gracias
389  Programación / Programación C/C++ / Re: Borrar nodos pasados por parametro valor/referencia en: 27 Diciembre 2018, 18:16 pm
Haaaaaaaaaaa!!! mas claro que el agua imposible, graciasss  :laugh:
390  Programación / Programación C/C++ / Re: Borrar nodos pasados por parametro valor/referencia en: 27 Diciembre 2018, 11:13 am
No estoy del todo seguro pero si se trata de punteros creo que no es necesario pasarlo por referencia. Esto es porque un puntero contiene una dirección de memoria, no un dato como tal (variable u objeto).
Si se trata de una variable/objeto hay que pasarlo por referencia porque sino se crea una copia al pasarlo por valor y lo que modificamos es la copia, no el original. Pero al tratarse de punteros, estamos pasando una dirección de memoria, entonces aunque se cree una copia del parámetro y se trabaje sobre la copia, la copia es una dirección de memoria (la misma que el puntero original y por esto es que también funciona). Si se quiere reservar memoria sobre un puntero entonces sí hay que pasarlo por referencia.

Por otra parte el tema de que para un BST se pase por referencia es porque así evitas que la función copie todo el BST por valor. Muchas veces se aprovecha el paso por referencia cuando se trabaja con objetos de gran tamaño para evitar que se haga una copia y así ahorrar espacio en memoria. Por eso hay funciones que reciben objetos constantes por referencia, que parece una tontería ya que al ser constante no se puede modificar pero se hace sólo para evitar que la función ocupe el doble de memoria haciendo una copia del objeto. Para objetos pequeños o variables sencillas es indiferente ya que el gasto de memoria es pequeño pero también podría hacerse. Lo más común es hacer esto con objetos que son muy grandes o que son dinámicos por si llegan a ser muy grandes.

Pero son nodos, no punteros solos
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 64
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines