Autor
|
Tema: [AYUDA] piramide en c++? (Leído 12,764 veces)
|
ianmorar03
Desconectado
Mensajes: 43
|
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
Mensajes: 219
HardForo.com
|
#include <iostream> using namespace std; int main(void) { int cols = 7,e,i; char c = '*'; e = 0; while (e<cols){ i = 0; while (i<e){ cout << c; i++; } cout << endl; e++; } return 0; }
|
|
« Ú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
Mensajes: 222
|
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. #include <stdio.h> #include <stdlib.h> int main() { int i,j=0; char caracter; printf("Ingrese un caracter \n"); for(i=0;i<10;i++){ for(j=0;j<i;j++){ } printf("\n");//saltamos de linea } //############################################### return 0; }
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
ianmorar03
Desconectado
Mensajes: 43
|
#include <iostream> using namespace std; int main(void) { int cols = 7,e,i; char c = '*'; e = 0; while (e<cols){ i = 0; while (i<e){ cout << c; i++; } cout << endl; e++; } return 0; }
@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
|
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
Mensajes: 219
HardForo.com
|
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: #include <iostream> using namespace std; int main(void) { int num = 5, pad, inc, row, tmp; char c = '*'; // cantidad de caracteres = suma de los n primeros naturales: n(n+1)/2 pad = num * (num+1) * 0.5; inc = 0; row =1; tmp = 1; while (inc<pad){ cout << c; if (tmp==row){ cout << endl; tmp=0; row++; } inc++; tmp++; } return 0; }
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
Mensajes: 1.603
|
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: * *** ***** ******* ********* * * *** *** ***** ***** ******* ******* ********* ********* Con una entrada de un 3: * *** ***** * * *** *** ***** *****
|
|
|
En línea
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
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
Mensajes: 3.412
ASMático
|
Por qué no jaja #include <iostream> using namespace std; void printWithStrings(unsigned short height, char c = '*'){ int k = height*2-1; int p = k; for(int i=0; i<height; i++) cout << string(k-i, ' ') << string(i*2+1, c) << '\n'; for(int i=0; i<height; i++){ const string &&s = string(i*2+1, c); cout << string(k/2-i, ' ') << s << string(k-i*2, ' ') << s << '\n'; } flush(cout); } void print(unsigned short height, char c = '*'){ int k = height*2-1; int p = k; char bSpace[k], bChar[k]; for(int i=0; i<k; i++){ bSpace[i] = ' '; bChar[i] = c; } for(int i=0; i<height; i++){ cout.write(bSpace, k-i); cout.write(bChar, i*2+1); cout << '\n'; } for(int i=0; i<height; i++){ cout.write(bSpace, k/2-i); cout.write(bChar, i*2+1); cout.write(bSpace, k-i*2); cout.write(bChar, i*2+1); cout << '\n'; } flush(cout); } int main(){ print(5); printWithStrings(5); }
Una forma eficiente y otra menos eficiente xD
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Esta es mi solución: #include <stdlib.h> #include <stdio.h> #include <string.h> void printchars(int __char, int ntimes) { for(int i = 0; i < ntimes; ++i) } int main() { int N; int nspaces; int nasterisks; nspaces = N * 2 - 1; nasterisks = 1; for(int i = 0; i < N; ++i) { printchars(' ', nspaces); printchars('*', nasterisks); --nspaces; nasterisks += 2; } nasterisks = 1; for(int i = 0; i < N; ++i) { printchars(' ', nspaces); printchars('*', nasterisks); printchars(' ', (N - i) * 2 - 1); printchars('*', nasterisks); --nspaces; nasterisks += 2; } return 0; }
Animaos a publicar vuestros códigos. El ejercicio es interesante.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] piramide de numeros c++
Programación C/C++
|
sokolov123
|
2
|
26,105
|
16 Octubre 2014, 17:31 pm
por rir3760
|
|
|
PIRAMIDE
Programación C/C++
|
mariano96
|
4
|
4,247
|
13 Febrero 2015, 19:10 pm
por mariano96
|
|
|
Ayuda con Pirámide en condigo C
Programación C/C++
|
rafa_rdj
|
3
|
4,625
|
29 Abril 2015, 03:59 am
por engel lex
|
|
|
ayuda con una pirámide
Programación C/C++
|
Exynoz
|
4
|
5,308
|
3 Abril 2016, 21:53 pm
por Exynoz
|
|
|
piramide de numeros
Programación C/C++
|
mitzi
|
3
|
2,726
|
23 Septiembre 2018, 18:09 pm
por MAFUS
|
|