He conseguido hacer todas las figuras que me pedian hacer en pseudocodigo en el c++ builder y acabo de hacer el rombo pero me gustaria saber si se puede simplificar mas el codigo.
Yo he conseguido sacarlo haciendolo de esta manera.
Código C:
Ver original
#include<stdio.h> #include<conio.h> void main() { int nl,i,j,h,k,a,c1,c2; //Rombo exacto if(nl>=7) { while(nl>=7) { for(i=1;i<=4;i++) { for(j=3;j>=i;j--) { } for(h=1;h<=i;h++) { } for(k=1;k<i;k++) { } for(j=4;j>i;j--) { } } for(i=1;i<=3;i++) { for(j=1;j<=i;j++) { } for(h=3;h>=i;h--) { } for(k=2;k>=i;k--) { } for(j=1;j<=i;j++) { } } nl=nl-7; } } //Rombo no exacto if (nl<7) { c1=4; if(c1<nl) { for(i=1;i<=c1;i++) { for(j=3;j>=i;j--) { } for(h=1;h<=i;h++) { } for(k=1;k<i;k++) { } for(j=4;j>i;j--) { } } c2=nl-c1; } else { for(i=1;i<=nl;i++) { for(j=3;j>=i;j--) { } for(h=1;h<=i;h++) { } for(k=1;k<i;k++) { } for(j=4;j>i;j--) { } } c2=nl-c1; } if(c2>0) { for(i=1;i<=c2;i++) { for(j=1;j<=i;j++) { } for(h=3;h>=i;h--) { } for(k=2;k>=i;k--) { } for(j=1;j<=i;j++) { } } } } }
Lo que me piden es hacer un rombo con un numero máximo de 7 lineas, el dibujo seria asi:
- - - * - - -
- - * * * - -
- * * * * * -
* * * * * * *
- * * * * * -
- - * * * - -
- - - * - - -
Lo que yo he entendido del ejercicio es que si meto numero de lineas 8 el rombo volveria a empezar pero solo dibujando la primera linea, y asi si metiera 9, o 10, pues dibujaria otras lineas mas.
A ver si alguien saber hacerlo evitando usar el while, aunque nose si es imprescindible, voy un poco adelantado en clase y nose si exactamente me pedian eso o simplemente dibujar 1 rombo, pero ya que he conseguido sacarlo a ver si se puede depurar un poco.
Un saludo y gracias.