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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Pequeña duda Fibonacci TDA Pila en: Ayer a las 23:13
Hola, estoy en una duda con acerca de la serie de Fibonacci, me piden ingresar un numero y que me devuelva el termino de la serie 1,1,2,3,5,8.. utilizando pilas, no se me da la idea de como lo puedo hacer respetando operaciones del TDA Pila

Código
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. const int TAMPILA=32;
  7. typedef int contenedor[TAMPILA];
  8. typedef struct{
  9. contenedor datos;
  10. int cima;
  11. }tpila;
  12.  
  13. void fibonacci(int n);
  14. void init_stack(tpila &pila);
  15. void push_stack(tpila &pila, int nuevo);
  16. bool full_stack(tpila pila);
  17. bool empty_stack(tpila pila);
  18. int pop_stack(tpila &pila);
  19. int top_stack(tpila pila);
  20.  
  21. void ingreso(int n);
  22. int main()
  23. {
  24. int numero;
  25. cout << "Ingrese un numero: ";
  26. cin >> numero;
  27. fibonacci(numero);
  28. system("pause");
  29. return 0;
  30. }
  31.  
  32.  
  33. void fibonacci(int n)
  34. {
  35. tpila pila;
  36. init_stack(pila);
  37. while(n>0){
  38. //Aca pondria mi algoritmo si tuviera uno
  39. }
  40.  
  41. cout << "\nFibonacci: " << << endl;
  42. }
  43.  
  44. void init_stack(tpila &pila)
  45. {
  46. pila.cima=-1;
  47. }
  48.  
  49. void push_stack(tpila &pila, int nuevo)
  50. {
  51. if(full_stack(pila)==true){
  52. cout << "PILA LLENA" << endl;
  53. }
  54. else{
  55. pila.cima++;
  56. pila.datos[pila.cima]=nuevo;
  57. }
  58. }
  59.  
  60. bool full_stack(tpila pila)
  61. {
  62. return pila.cima==TAMPILA-1;
  63. }
  64.  
  65. bool empty_stack(tpila pila)
  66. {
  67. return pila.cima==-1;
  68. }
  69.  
  70. int pop_stack(tpila &pila)
  71. {
  72. int aux;
  73. if(empty_stack(pila)==true){
  74. aux=-1;
  75. }
  76. else{
  77. aux=pila.datos[pila.cima];
  78. pila.cima--;
  79. }
  80. return aux;
  81. }
  82.  
  83. int top_stack(tpila pila)
  84. {
  85. int aux;
  86. if(empty_stack(pila)==true){
  87. aux=-1;
  88. }
  89. else{
  90. aux=pila.datos[pila.cima];
  91. }
  92. return aux;
  93. }
  94.  
2  Programación / Programación C/C++ / Re: Ayuda con juego de adivinar palabras en: 15 Junio 2018, 23:41
Muchas gracias @PiernaDeFelipeCamiroaga, era lo que me faltaba  ;-)
3  Programación / Programación C/C++ / Re: Ayuda con mi codigo quiero verificar si un numero es palindrome porfa y gracias en: 15 Junio 2018, 23:38
Puedes invertir el numero utilizando recursividad y comprobando si el numero que ingresaste es igual al valor de retorno de la funcion recursiva , en ese caso escribir CAPICUA, caso contrario NO CAPICUA, esto para los numeros numeros enteros no hace falta que sea una cadena.

funcion invertir(n: entero, r: entero) : entero
si(n==0)
invertir <-r;
sino
r*=10;
r+=n%10;
invertir<- invertir(n/10, r);

inicio
numero, resultado=0 : entero
escribir "Ingrese numero:"
leer(numero)
si(numero==invertir(numero,resultado)
escribir ("CAPICUA")
sino
escribir ("NO CAPICUA")
finsi
fin

Bueno si quieres con cadenas aca te dejo tu codigo modificado

Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. void LeerCadena(string &c)
  7. {
  8.   cout << "Ingrese numero: ";
  9.   cin >> c;
  10.   // para no ingresar se usa la cadena ejemplo
  11.   //strcpy(cad,"Sigue las ultimas noticias de #Cuenca, #Ecuador y el Mundo en @eltiempocuenca #marcandodiferencia @IGecuador\0");
  12.  
  13. }
  14. void Palindrome (string c)
  15. {
  16.      string aux;
  17.      int j=c.length()-1;
  18.      aux=c;
  19.   for(int i=0;i<c.length();i++){
  20.   if(c[i]!=aux[j]){
  21.                        break;
  22.  }
  23.  j--;
  24. }
  25.   if (j==-1)
  26.   {
  27.      printf("\n El numero es palindrome");
  28.   }
  29.   else
  30.   {
  31.      printf ("\n El numero no es palindrome");
  32.   }
  33. }
  34. int main ()
  35. {
  36.   string c;
  37.   LeerCadena (c);
  38.   Palindrome(c);
  39. }
  40.  
4  Programación / Programación C/C++ / Re: Ayuda, Arreglo de estructuras en: 14 Junio 2018, 04:41
No se lo que hay que hacer xd

Código
  1. #include <stdio.h>
  2. typedef struct beta{ float n, m, d;}dat;
  3. typedef dat alfa[3];
  4. double func(dat* x){return x[0].m;}
  5. double ff(alfa x){return x[2].m;}
  6. int main()
  7. {
  8.    dat gama[3]={{3,5,4.5},{6,7.0},{23,6.7}};
  9.    printf("%.2lf\n",func(gama));//imprime 7.0
  10.    printf("%.2lf\n",ff(gama));//imrpime 6.7
  11.    return 0;
  12. }
  13.  
5  Programación / Programación C/C++ / Ayuda con juego de adivinar palabras en: 14 Junio 2018, 04:16
Quisiera que alguien diga como tengo que hacer para que cada vez que cometo un error o acierto una letra se vaya limpiando la pantalla con system("cls") de manera correcta y se vaya como actualizando el juego del ahorcado y no mostrando todo secuencialmente como lo hace mi programa  ;-)

Código
  1. #include <iostream>
  2. #include <string.h>
  3. #include <time.h>
  4.  
  5. using namespace std;
  6.  
  7. void inicio();
  8. void primer_error();
  9. void segundo_error();
  10. void tercer_error();
  11. void cuarto_error();
  12. void quinto_error();
  13. void jugar();
  14. void rellenar(string n);
  15. void intentos(int intento);
  16.  
  17. int main(){
  18. int opcion;
  19. srand(time(NULL));
  20. do{
  21. cout << "1. JUGAR" << endl;
  22. cout << "2. SALIR" << endl;
  23. cin >> opcion;
  24. switch(opcion){
  25. case 1: jugar(); break;
  26. case 2: cout << "HASTA LUEGO" << endl; break;
  27. default: cout << "OPCION INCORRECTA, Intente de nuevo" << endl;
  28. }
  29. }while(opcion!=2);
  30. system("pause");
  31. return 0;
  32. }
  33.  
  34. void inicio()
  35. {
  36. cout << "**********" << endl;
  37. cout << "*           " << endl;
  38. cout << "*           " << endl;
  39. cout << "*           " << endl;
  40. cout << "*           " << endl;
  41. cout << "*           " << endl;
  42. cout << "*           " << endl;
  43. }
  44.  
  45. void primer_error()
  46. {
  47. cout << "**********" << endl;
  48. cout << "*        |  " << endl;
  49. cout << "*           " << endl;
  50. cout << "*           " << endl;
  51. cout << "*           " << endl;
  52. cout << "*           " << endl;
  53. cout << "*           " << endl;
  54. }
  55.  
  56. void segundo_error()
  57. {
  58. cout << "**********" << endl;
  59. cout << "*        |  " << endl;
  60. cout << "*        O  " << endl;
  61. cout << "*           " << endl;
  62. cout << "*           " << endl;
  63. cout << "*           " << endl;
  64. cout << "*           " << endl;
  65. }
  66.  
  67. void tercer_error()
  68. {
  69. cout << "**********" << endl;
  70. cout << "*        |  " << endl;
  71. cout << "*        O  " << endl;
  72. cout << "*       /|\\" << endl;
  73. cout << "*           " << endl;
  74. cout << "*           " << endl;
  75. cout << "*           " << endl;
  76. }
  77.  
  78. void cuarto_error()
  79. {
  80. cout << "**********" << endl;
  81. cout << "*        |  " << endl;
  82. cout << "*        O  " << endl;
  83. cout << "*       /|\\" << endl;
  84. cout << "*        A  " << endl;
  85. cout << "*       / \\" << endl;
  86. cout << "*           " << endl;
  87. }
  88.  
  89. void quinto_error()
  90. {
  91. cout << "**********   " << endl;
  92. cout << "*        |   " << endl;
  93. cout << "*        O   " << endl;
  94. cout << "*       /|\\ " << endl;
  95. cout << "*        A   " << endl;
  96. cout << "*       / \\ " << endl;
  97. cout << "*            " << endl;
  98. cout << "     PERDISTE" << endl;
  99. }
  100.  
  101. void jugar()
  102. {
  103. int aleatorio;
  104. string a="OSO", b="PAYASO", c="CUADERNO";
  105.   aleatorio=rand()%3+1;
  106. switch(aleatorio){
  107. case 1: rellenar(a); break;
  108. case 2: rellenar(b); break;
  109. case 3: rellenar(c); break;
  110. }
  111. }
  112.  
  113. void rellenar(string n)
  114. {
  115. int contador=0, aux=0, aux2, MAX=n.length();
  116. char letra, contenedor[MAX];
  117. for(int i=0;i<MAX;i++){
  118. contenedor[i]='_';
  119. }
  120. inicio();
  121. while(contador<5){
  122. aux2=0;
  123. for(int j=0;j<MAX;j++){
  124. cout << contenedor[j] << " ";
  125. }
  126. cout << endl;
  127. cout << "Ingrese letra: ";
  128. cin >> letra;
  129. for(int k=0;k<MAX;k++){
  130. if(letra==n[k] && contenedor[k]=='_'){
  131. contenedor[k]=letra;
  132. aux++;
  133. break;
  134. }
  135. else{
  136. aux2++;
  137. }
  138. }
  139. if(aux==MAX){
  140. cout << "GANASTE! La palabra oculta es: " << n << endl;
  141. break;
  142. }
  143. if(aux2==MAX){
  144. contador++;
  145. intentos(contador);
  146. }
  147. }
  148. }
  149.  
  150. void intentos(int intento)
  151. {
  152. switch(intento){
  153. case 1: primer_error(); break;
  154. case 2: segundo_error(); break;
  155. case 3: tercer_error(); break;
  156. case 4: cuarto_error(); break;
  157. case 5: quinto_error(); break;
  158. }
  159. }
  160.  
  161.  
6  Programación / Programación C/C++ / Re: Ayuda con el siguiente programa en: 12 Junio 2018, 08:14
Podria ser algo asi?

Código
  1. const int DIASSEMANA=7;
  2. main(){
  3. float PROMEDIO, TEMPERATURA; short CONTADOR=0;
  4. for(int i=0;i<DIASSEMANA;i++){switch(i){ case 0: std::cout<<"Lunes    : "; std::cin>>TEMPERATURA; if(TEMPERATURA>10.0){PROMEDIO+=TEMPERATURA;CONTADOR++;}; break; ... case 6: std::cout<<"Domingo  : "; std::cin>>TEMPERATURA; if(TEMPERATURA>10.0){PROMEDIO+=TEMPERATURA;CONTADOR++;}; break;}}
  5. std::cout<<"PROMEDIO: "<<PROMEDIO/CONTADOR<<" GRADOS FAHRENHEIT"<<std::endl;
  6. }
  7.  
  8.  
7  Programación / Programación C/C++ / Re: Ayuda con un problema de Estructura de Datos en: 12 Junio 2018, 07:53
Gracias @NEBIRE ahora lo entiendo un poco mas, lo que no se es como mostrar pixel/color en la consola de comandos.  ;-)

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. typedef struct{
  6. int rojo;
  7. int verde;
  8. int azul;
  9. }tpixel;
  10.  
  11. void crear_pixel(tpixel &color);
  12. bool validar_pixel(tpixel color);
  13. void mostrar_pixel(tpixel color);
  14. void generar_blanco(tpixel color);
  15. void generar_negro(tpixel color);
  16.  
  17. int main()
  18. {
  19. tpixel p;
  20. crear_pixel(p);
  21. mostrar_pixel(p);
  22. generar_blanco(p);
  23. generar_negro(p);
  24. system("pause");
  25. return 0;
  26. }
  27.  
  28. void crear_pixel(tpixel &color)
  29. {
  30. do{
  31. cout << "Ingrese rojo : "; cin >> color.rojo;
  32. cout << "Ingrese verde: "; cin >> color.verde;
  33. cout << "Ingrese azul : "; cin >> color.azul;
  34. }while(validar_pixel(color)!=true);
  35. }
  36.  
  37. bool validar_pixel(tpixel color)
  38. {
  39. if((color.rojo<0 || color.rojo>255) || (color.verde<0 || color.verde>255) || (color.azul<0 || color.azul>255)){
  40. return false;
  41. }
  42. else{
  43. return true;
  44. }
  45. }
  46.  
  47. void mostrar_pixel(tpixel color)
  48. {
  49. cout << "Rojo : " << color.rojo << endl;
  50. cout << "Verde: " << color.verde << endl;
  51. cout << "Azul : " << color.azul << endl;
  52. }
  53.  
  54. void generar_blanco(tpixel color)
  55. {
  56. color.rojo=255;
  57. color.verde=255;
  58. color.azul=255;
  59. cout << "Blanco" << endl;
  60. mostrar_pixel(color);
  61. }
  62.  
  63. void generar_negro(tpixel color)
  64. {
  65. color.rojo=0;
  66. color.verde=0;
  67. color.azul=0;
  68. cout << "Negro" << endl;
  69. mostrar_pixel(color);
  70. }
  71.  
8  Programación / Programación C/C++ / Ayuda con un problema de Estructura de Datos en: 11 Junio 2018, 22:43
Necesito ayuda con la creacion de un TDA Simple,
El problema dice asi;
Definir el TDA Pixel con las siguientes operaciones;
*Crear pixel: Dado 3 valores enteros devuelve un pixel
*Validar Pixel: Dado un pixel, determinar si sus valores son correctos. Considere que los puntos asumen valores solo en el rango[0,255]
*Mostrar pixel: Muestra el valor de sus componentes
*Crear blanco: Dado un pixel genera a sus  puntos los valores apropiados para generar blanco
*Crear negro: Dado un pixel genera a sus  puntos los valores apropiados para generar negro

Implementar el TDA PIxel utilizando a) arreglos, b)registros.

No entiendo bien como y que es lo que tengo que hacer si alguien me ayuda, estare muy agradecido, cualquer ayuda , manual lo que sea me sirve desde ya muchas gracias.

Código
  1. #include <iostream>
  2. #include <string.h>
  3. #include <fstream>
  4.  
  5. using namespace std;
  6.  
  7. typedef struct{
  8. int rojo;
  9. int azul;
  10. int verde;
  11. }tpixel;
  12.  
  13. const int x=255, y=255;
  14.  
  15. void crear_pixel(tpixel &color);
  16. bool validar_pixel(tpixel color);
  17. void mostrar_pixel(tpixel color);
  18. void generar_blanco();
  19. void generar_negro();
  20.  
  21. int main()
  22. {
  23. tpixel color_pixel;
  24. crear_pixel(color_pixel);
  25. mostrar_pixel(color_pixel);
  26. generar_blanco();
  27. generar_negro();
  28. system("pause");
  29. return 0;
  30. }
  31.  
  32. void crear_pixel(tpixel &color)
  33. {
  34. do{
  35. cout << "Ingrese rojo : "; cin >> color.rojo;
  36. cout << "Ingrese verde: "; cin >> color.verde;
  37. cout << "Ingrese azul : "; cin >> color.azul;
  38. }while(validar_pixel(color)!=true);
  39. }
  40.  
  41. bool validar_pixel(tpixel color)
  42. {
  43. if((color.rojo<0 || color.rojo>255) || (color.verde<0 || color.verde>255) || (color.azul<0 || color.azul>255)){
  44. return false;
  45. }
  46. else{
  47. return true;
  48. }
  49. }
  50.  
  51. void mostrar_pixel(tpixel color)
  52. {
  53. cout << "Rojo : " << color.rojo << endl;
  54. cout << "Verde: " << color.verde << endl;
  55. cout << "Azul : " << color.azul << endl;
  56. }
  57.  
  58. void generar_blanco()
  59. {
  60. ofstream img("picture.ppm");
  61. img << "P3" << endl;
  62. img << x << " " << y << endl;
  63. img << "255" << endl;
  64. for(int i=0; i<x; i++){
  65. for(int k=0; k<y; k++){
  66. int r=x%255;
  67. int g=y%255;
  68. int b=y*x%255;
  69. img << r << " " << g << " " << b << endl;
  70. }
  71. }
  72. system("open picture.ppm");
  73. }
  74.  
  75. void generar_negro()
  76. {
  77.  
  78. }
  79.  
  80.  
  81.  
9  Programación / Programación C/C++ / Re: Ayuda con programa que determine los numeros primos en un rango a,b en C en: 10 Junio 2018, 22:00
Usted habia especificado que todo el programa debia hacerse con ciclo while y una funcion.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. bool primo(int n);
  6.  
  7. int main()
  8. {
  9. int v_inicial, v_final;
  10. cout << "Ingrese valor inicial: "; cin >> v_inicial;
  11. cout << "Ingrese valor final  : "; cin >> v_final;
  12. while(v_inicial<=v_final){
  13. if(primo(v_inicial)==true){
  14. cout << v_inicial << " ";
  15. }
  16. v_inicial++;
  17. }
  18. cout << endl;
  19. system("pause");
  20. return 0;
  21. }
  22.  
  23. bool primo(int n)
  24. {
  25. int i=1, cont=0;
  26. while(i<=n){
  27. if(n%i==0){
  28. cont++;
  29. }
  30. i++;
  31. }
  32. if(cont==2){
  33. return true;
  34. }
  35. else{
  36. return false;
  37. }
  38. }
  39.  

10  Programación / Programación C/C++ / Re: dándole vueltas a un problemilla c++ necesito un poco de ayuda en: 10 Junio 2018, 20:07
Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=10;
  7. typedef char tarreglo[MAX];
  8.  
  9. void cargar_arreglo(tarreglo &n, int &ocupado);
  10. void mostrar_arreglo(tarreglo n, int ocupado);
  11. void calcular_parejas(tarreglo n, int ocupado);
  12.  
  13. int main()
  14. {
  15. tarreglo palabra;
  16. int lleno=0;
  17. cargar_arreglo(palabra, lleno);
  18. mostrar_arreglo(palabra, lleno);
  19. calcular_parejas(palabra, lleno);
  20. system("pause");
  21. return 0;
  22. }
  23.  
  24. void cargar_arreglo(tarreglo &n, int &ocupado)
  25. {
  26. for(int i=0; i<MAX; i++){
  27. cout << "Ingrese caracter(0 para finalizar): ";
  28. cin >> n[i];
  29. if(n[i]=='0'){
  30. break;
  31. }
  32. ocupado++;
  33. }
  34. }
  35.  
  36. void mostrar_arreglo(tarreglo n, int ocupado)
  37. {
  38. for(int i=0; i<ocupado; i++){
  39. cout << n[i];
  40. }
  41. cout << endl;
  42. }
  43.  
  44. void calcular_parejas(tarreglo n, int ocupado)
  45. {
  46. int parejas=0;
  47. for(int i=0; i<ocupado; i++){
  48. if(n[i]==n[i+1]){
  49. parejas++;
  50. i++;
  51. }
  52. }
  53. cout << "Parejas: " << parejas << endl;
  54. }
  55.  
Páginas: [1] 2
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines