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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31
231  Programación / Programación C/C++ / pasar procedimientos recursivos a funciones en bst en: 6 Enero 2019, 05:38 am
Hola queria saber como puedo pasar los siguientes "prodecimientos" a funciones, en el primer algoritmo se modifica el valor de una variable pasada por referencia el cual en el main me dice la cantidad exacta de vocales de un arbol binario de busqueda

Código
  1. void contarNodosQueContenganVocales(pnodo arbol, int &vocales)
  2. {
  3. if(arbol!=NULL){
  4. switch(arbol->dato){
  5. case 'A':
  6. case 'E':
  7. case 'I':
  8. case 'O':
  9. case 'U': vocales++;
  10. }
  11. contarNodosQueContenganVocales(arbol->izq,vocales);
  12. contarNodosQueContenganVocales(arbol->der,vocales);
  13. }
  14. }

Y este  otro procedimiento cuenta la cantidad de nodos que tienen un solo hijito
Código
  1. void cantidad_nodos(arbol a, int &c)
  2. {
  3. if(a!=NULL){
  4. if((a->izq==NULL && a->der!=NULL) || (a->izq!=NULL && a->der==NULL))
  5. c++;
  6. cantidad_nodos(a->izq,c);
  7. cantidad_nodos(a->der,c);
  8. }
  9. }
:laugh:

uno por uno MAFUS
232  Programación / Programación C/C++ / Recursividad Arbol Binario y ABB en: 5 Enero 2019, 02:28 am
Hola estaba viendo mi carpeta del cole y me encontre con esto

1) Codifique un algoritmo recursivo que determine el máximo valor del árbol binario de caracteres.

He hecho esto 1 con procedimiento y me quedo asi
Código
  1. typedef struct tarbol *arbol;
  2. typedef struct tarbol{
  3. char dato;
  4. arbol izq;
  5. arbol der;
  6. };
  7.  
  8. if(a!=NULL){
  9.   m=a->dato;
  10.   maximo(a,m);
  11.   cout<<"Maximo: "<<m<<endl;
  12. }
  13.   else
  14. cout<<"Arbol vacio"<<endl;
  15.  
  16. void maximo(arbol a, char &m)
  17. {
  18.   if(a!=NULL){
  19. if(a->dato>m)
  20. m=a->dato;
  21. maximo(a->izq,m);
  22. maximo(a->der,m);
  23. }
  24. }
  25.  
Y con funcion lo hice asi:
Código
  1. //Tengo algo de dudas en esta función porque en bst funciona pero no probe en bt
  2. char maximo(pnodo a)
  3. {
  4.    if(a==NULL)
  5. return '@';
  6.    char letra=a->dato;
  7.    char izquierda=maximo(a->izq);
  8.    char derecha=maximo(a->der);
  9.    if(izquierda>letra)
  10.      letra=izquierda;
  11.    if(derecha>letra)
  12.      letra=derecha;
  13.    return letra;
  14. }

Luego la consigna dice:
2) Modofique el algoritmo del ítem anterior para que la busqueda se realice en un arbol binario de busqueda

Y ese lo hice asi:
Código
  1. char maximo(arbol a)
  2. {
  3. if(a!=NULL){
  4. if(a->der==NULL)
  5. return a->dato;
  6. else
  7. return maximo(a->der);
  8. }
  9. }
  10.  
233  Programación / Desarrollo Web / Modificar gadget en: 4 Enero 2019, 02:08 am
Hola chicos tengo una pagina web donde tengo el siguiente gadget

Código
  1. <iframe width="260" height="180" src="https://www.youtube.com/embed/0YhflLRE-DA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Lo que quiero hacer es que no solamente muestre un solo video sino que en esa sección vayan apareciendo varios videos como una lista animada mostrandome el siguiente y el siguiente y cuando el usuario seleccione uno se reproduzca y quede trabado en ese video, muchas gracias.
234  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  ;-)
235  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.  :-(
236  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:
237  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
238  Media / Diseño Gráfico / Calidad de imagen al usar Impr Pant... en: 26 Diciembre 2018, 21:55 pm
Holas queria saber si existe alguna herramienta para sacar fotos a mi pantalla  con la tecla Imp Pant sin perder la calidad de imagen,y como podria hacer estas graficas? me interesan que las flechas tengan esas curvas

Y otra cosa mas como podria hacer animaciones 3D para representar ordenamientos burbuja en arreglos, comportamiento de estructuras de datos y demas, gracias y feliz año nuevo  ;-)

239  Programación / Desarrollo Web / Etiquetas geshi en mi pagina web en: 26 Diciembre 2018, 21:10 pm
Hola a todos, estoy armando mi pagina web dedicada al anime, programacion y cocina donde enseñare programacion y quera saber como colocarle las etiquetas GesSHi a mi pagina gracias  ;-)
240  Programación / Programación C/C++ / Borrar nodos pasados por parametro valor/referencia en: 25 Diciembre 2018, 21:41 pm
Buenas chicos, me surgio una duda, como debo pasar un nodo dentro de un procedimiento si se da el caso de que quiero borrarlo ahi? por valor o referencia? A mi se me hace que por valor/referencia da lo mismo ustedes que dicen?

Código
  1. //Definicion de la estructura
  2. const int MAX=8;
  3. typedef struct tnodo *pnodo;
  4. typedef struct tnodo{
  5. int dato;
  6. pnodo sig;
  7. };
  8. typedef struct tpila{
  9. pnodo inicio;
  10. pnodo final;
  11. int contador;
  12. };
  13.  
  14. void binario(int n)
  15. {
  16. tpila pila;
  17. pnodo nuevo, eliminado;
  18. init_stack(pila);
  19. while(n>0){
  20. crear_nodo(nuevo,n%2);
  21. push_stack(pila,nuevo);//Bueno aqui llama a push_stack(estructura pila, nodo nuevo);
  22. n/=2;
  23. }
  24. cout<<"Binario: ";
  25. while(empty_stack(pila)==false){
  26. eliminado=pop_stack(pila);
  27. cout<<eliminado->dato;
  28. delete(eliminado);
  29. }
  30. cout<<endl;
  31. }
  32.  
  33. //Aca es donde me vino la duda
  34. void push_stack(tpila &pila, pnodo nuevo)//Justo aquí
  35. {
  36. if(full_stack(pila)==true){
  37. cout<<"Pila llena"<<endl;
  38. delete(nuevo);//<---Y aquí
  39. }
  40. else{
  41. if(pila.inicio==NULL){
  42. pila.inicio=nuevo;
  43. pila.final=nuevo;
  44. }
  45. else{
  46. pila.final->sig=nuevo;
  47. pila.final=nuevo;
  48. }
  49. pila.contador++;
  50. }
  51. }
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines