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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  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,764 veces)
ianmorar03

Desconectado Desconectado

Mensajes: 43



Ver Perfil
[AYUDA] piramide en c++?
« en: 18 Abril 2016, 21:34 pm »

Hola! quisiera saber como hacer una piramide en c++?
pidiendo en un char la letra o lo que quiera (en este caso un asterisco'*') y en otra pidiendo la dimension; por ejemplo si es 7 seria algo asi como:
*
**
***
****
*****
******
*******

Sin hacer uso de for, unicamente con while y sin las librerias de c(conio.h y stdio.h)


En línea

Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #1 en: 18 Abril 2016, 21:43 pm »

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.    int cols = 7,e,i;
  7.    char c = '*';    
  8.  
  9. e = 0;  
  10. while (e<cols){    
  11.            i = 0;
  12.            while (i<e){
  13.         cout << c;
  14.         i++;
  15.    }
  16.    cout << endl;
  17.    e++;
  18.    }        
  19.  
  20.    return 0;
  21. }
  22.  


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

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: [AYUDA] piramide en c++?
« Respuesta #2 en: 18 Abril 2016, 23:07 pm »

Hola te dejo el primer ejemplo hecho en C el segundo te toca a ti, es practicamente los mismo.

Si te cuesta realizar el segundo necesitas repasar nuevamente tus conceptos de programacion.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int i,j=0;
  7.    char caracter;
  8.  
  9.    printf("Ingrese un caracter \n");
  10.    scanf("%c",&caracter);
  11.  
  12.    for(i=0;i<10;i++){
  13.        for(j=0;j<i;j++){
  14.            printf("%c",caracter);
  15.        }
  16.       printf("\n");//saltamos de linea
  17.    }
  18.    //###############################################
  19.  
  20.    return 0;
  21. }
  22.  
En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
ianmorar03

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Re: [AYUDA] piramide en c++?
« Respuesta #3 en: 19 Abril 2016, 01:27 am »

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.    int cols = 7,e,i;
  7.    char c = '*';    
  8.  
  9. e = 0;  
  10. while (e<cols){    
  11.     i = 0;
  12.        while (i<e){
  13.         cout << c;
  14.         i++;
  15. }
  16. cout << endl;
  17. e++;
  18.    }        
  19.  
  20.    return 0;
  21. }
  22.  

@boctulus es lo que necesito, sin embargo no entiendo muy bien la funcion de las variables i y e en el codigo.

@crack81 muchas gracias por la respuesta, igual use tu codigo, cambiandolo a c++ y los for a while y me funciono aunque sigo con la pregunta de que es la i y la j en el codigo.
En línea

Aquellos que estan locos como para pensar que pueden cambiar el mundo , son los que lo hacen.
fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #4 en: 19 Abril 2016, 09:59 am »

Uno es el contador de las columnas horizontales y el otro el contador de los asteriscos que tiene que imprimir.

saludos.
En línea

Un byte a la izquierda.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #5 en: 19 Abril 2016, 12:38 pm »

i,j o e,i son variables de control de lazo (bucle, ciclo)

Se podria haber hecho con un solo while() si sabes cuantos caracteres esperas al final:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(void)
  5. {
  6.    int num = 5, pad, inc, row, tmp;
  7.    char c = '*';    
  8.  
  9. // cantidad de caracteres =  suma de los n primeros naturales: n(n+1)/2
  10. pad = num * (num+1) * 0.5;
  11.  
  12. inc = 0; row =1; tmp = 1;
  13. while (inc<pad){
  14. cout << c;
  15. if (tmp==row){
  16. cout << endl;
  17. tmp=0;
  18. row++;
  19. }
  20. inc++;
  21. tmp++;
  22. }
  23.  
  24.    return 0;
  25. }
  26.  


Este tipo de problemas se puden resolver con 2 bucles pero tambien con 1 bucle + 1 if() interno y seria como hacer una transformacion del mundo (x,y) al (u,v) :


(bucle externo, bucle interno) ---> (bucle externo 2, if interno)


El bucle externo no es el mismo y por tanto el if() interno no reemplaza (estoy editando mi respuesta) al bucle interno. Por esto se puede hablar de transformación en sentido matematico.


PD:  ya habia dado una respuesta......... pero no daré respuestas a ejercicios completos en otros hilos.  Me disculpo por eso.
« Última modificación: 19 Abril 2016, 15:48 pm 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 #6 en: 20 Abril 2016, 12:18 pm »

Os propongo un ejecicio:
Realizar la figura que se muestra a continuación en el ejemplo.
El programa debe aceptar un entero que representa la altura de los triangulos pequeños que forman el total.
Así, con la entrada de un 5 se consigue:
Código:
         *
        ***
       *****
      *******
     *********
    *         *
   ***       ***
  *****     *****
 *******   *******
********* *********

Con una entrada de un 3:
Código:
     *
    ***
   *****
  *     *
 ***   ***
***** *****
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #7 en: 20 Abril 2016, 17:05 pm »

Lo mas facil seria crear una matriz bidimensional de 2H*2H siendo H la altura del trinangulo, hacer una simple funcion que cree el triangulo con un caracter, y colocar el "cursor" dentro de la matriz  donde se necesite  e ir pintando cada triangulo

(sin son los llenos con asteriscos son solo 3 de ellos, si son rellenos con espacios sobre un fondo de asteriscos son mas triangulos y ni siquiera son equilateros)
« Última modificación: 20 Abril 2016, 22:06 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [AYUDA] piramide en c++?
« Respuesta #8 en: 20 Abril 2016, 18:58 pm »

Por qué no jaja

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void printWithStrings(unsigned short height, char c = '*'){
  6. int k = height*2-1;
  7. int p = k;
  8. for(int i=0; i<height; i++)
  9. cout << string(k-i, ' ') << string(i*2+1, c) << '\n';
  10. for(int i=0; i<height; i++){
  11. const string &&s = string(i*2+1, c);
  12. cout << string(k/2-i, ' ') << s << string(k-i*2, ' ') << s << '\n';
  13. }
  14. flush(cout);
  15. }
  16.  
  17. void print(unsigned short height, char c = '*'){
  18. int k = height*2-1;
  19. int p = k;
  20. char bSpace[k],
  21.  bChar[k];
  22. for(int i=0; i<k; i++){
  23. bSpace[i] = ' ';
  24. bChar[i] = c;
  25. }
  26. for(int i=0; i<height; i++){
  27. cout.write(bSpace, k-i);
  28. cout.write(bChar, i*2+1);
  29. cout << '\n';
  30. }
  31. for(int i=0; i<height; i++){
  32. cout.write(bSpace, k/2-i);
  33. cout.write(bChar, i*2+1);
  34. cout.write(bSpace, k-i*2);
  35. cout.write(bChar, i*2+1);
  36. cout << '\n';
  37. }
  38. flush(cout);
  39. }
  40.  
  41. int main(){
  42. print(5);
  43. printWithStrings(5);
  44. }

Una forma eficiente y otra menos eficiente xD
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: [AYUDA] piramide en c++?
« Respuesta #9 en: 20 Abril 2016, 19:43 pm »

Esta es mi solución:
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. void printchars(int __char, int ntimes) {
  6.    for(int i = 0; i < ntimes; ++i)
  7.        putchar(__char);
  8. }
  9.  
  10. int main()
  11. {
  12.    int N;
  13.    int nspaces;
  14.    int nasterisks;
  15.    scanf("%d", &N);
  16.  
  17.    nspaces = N * 2 - 1;
  18.  
  19.    nasterisks = 1;
  20.    for(int i = 0; i < N; ++i) {
  21.        printchars(' ', nspaces);
  22.        printchars('*', nasterisks);
  23.        --nspaces;
  24.        nasterisks += 2;
  25.        putchar('\n');
  26.    }
  27.  
  28.    nasterisks = 1;
  29.    for(int i = 0; i < N; ++i) {
  30.        printchars(' ', nspaces);
  31.        printchars('*', nasterisks);
  32.        printchars(' ', (N - i) * 2 - 1);
  33.        printchars('*', nasterisks);
  34.        --nspaces;
  35.        nasterisks += 2;
  36.        putchar('\n');
  37.    }
  38.  
  39.    return 0;
  40. }

Animaos a publicar vuestros códigos. El ejercicio es interesante.
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