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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [AYUDA] piramide en c++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] piramide en c++?  (Leído 12,765 veces)
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #10 en: 20 Abril 2016, 22:07 pm »

No se si es "eficiente" pero esta bien estructurado (a mejorar: no usar variables globales)

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6.  
  7. struct matrix {
  8. int rows,cols;
  9. char **cells;
  10. };
  11.  
  12. matrix m;
  13.  
  14. void make_board(int h,char c=' ');
  15. void put_block(int x,int y, int len, char c = '*');
  16. void triangle(int x,int y, int h, char c = '*');
  17. void render(void);
  18. void release(void);
  19.  
  20.  
  21. int main(void) {
  22. int h = 4;
  23. make_board(h);
  24. triangle(h*2-1,0,h);
  25. triangle(h-1,h,h);
  26. triangle(h*3-1,h,h);
  27. render();
  28. release();
  29.    return 0;
  30. }
  31.  
  32. void make_board(int h, char c=' ')
  33. {
  34. int i,j;
  35.  
  36. m.cols = h*4-1; m.rows = h*2;
  37. m.cells = (char**) malloc(m.cols* sizeof(char*));
  38. for (i=0; i<m.cols; i++)
  39. m.cells[i] = (char*) malloc(m.rows * sizeof(char));
  40.  
  41. for (i=0; i<m.rows; i++)
  42. for (j=0; j<m.cols; j++)
  43. m.cells[i][j]= c;
  44.  
  45. }
  46.  
  47. void release(void){ free(m.cells); }
  48.  
  49. void render(void)
  50. {
  51. int i,j;
  52. for (i=0; i<m.rows; i++){ // fila
  53. for (j=0; j<m.cols; j++) // columna
  54. cout << m.cells[i][j];
  55. cout << endl;
  56.    }
  57. }
  58.  
  59. void put_block(int x,int y, int len, char c = '*'){
  60. int ix, iy=y;
  61. for (ix=x; ix<x+len; ix++){
  62. m.cells[iy][ix] = c;
  63. }
  64. }
  65.  
  66. void triangle(int x,int y, int h, char c = '*')
  67. {
  68. int ix=x,iy,len=1;
  69. for (iy=y; iy<y+h; iy++){
  70. put_block(ix,iy,len,c);
  71. ix--;
  72. len+=2;
  73. }
  74. }
  75.  


UPDATE: hay una mini-libreria que he hecho y sirve para hacer eso mucho mas facil aun, aqui


« Última modificación: 23 Abril 2016, 01:46 am por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [AYUDA] piramide en c++?
« Respuesta #11 en: 20 Abril 2016, 23:00 pm »

Like this! Viene bien, de vez en cuánto realizar pequeños rompecabezas, hace más emocionante esta sección :D


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #12 en: 20 Abril 2016, 23:08 pm »

Venga, ahora que se reciba otro entero, que será las filas de triángulos que habrá.

Para altura 2 y 1 fila:
Código:
 *
***
Para altura 2 y 2 filas:
Código:
   *
  ***
 *   *
*** ***
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] piramide de numeros c++
Programación C/C++
sokolov123 2 26,105 Último mensaje 16 Octubre 2014, 17:31 pm
por rir3760
PIRAMIDE
Programación C/C++
mariano96 4 4,247 Último mensaje 13 Febrero 2015, 19:10 pm
por mariano96
Ayuda con Pirámide en condigo C
Programación C/C++
rafa_rdj 3 4,625 Último mensaje 29 Abril 2015, 03:59 am
por engel lex
ayuda con una pirámide
Programación C/C++
Exynoz 4 5,308 Último mensaje 3 Abril 2016, 21:53 pm
por Exynoz
piramide de numeros
Programación C/C++
mitzi 3 2,726 Último mensaje 23 Septiembre 2018, 18:09 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines