Y porfi, la próxima vez elige en GeSHi las etiquetas de C++ para que el código salga coloreado y sea más fácil de visualizar.
¡¡¡¡ Saluditos! ..... !!!!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: amchacon en 15 Marzo 2014, 12:14 PM
Que manía tienen los profesores de mezclar C y C++.
....................................
..............
#include <conio.h> <== No aconsejable por no ser estándar
#include <stdio.h> <== Sobraría usando cin.getline
...........................
gets(frase); <== No aconsejable, en su lugar, por ejemplo, usaría la que sigue
cin.getline(frase, 100, '\n');
.....................
getch(); <== No aconsejable por no ser estándar
Cita de: amchacon en 14 Marzo 2014, 22:58 PM
Bueno que no se diga, dibujare señales cuadradas.
#include <stdio.h>
int main(){
int i,j,k,l=0,cont=0,cont1=0,tam,MAX=40;
for (tam=3;tam<=15;tam++){
cont=cont1=0;
for (i=0,j=0;i<MAX-1;i++,j++){
putchar('*');
if (j==tam-1)
printf ("%*c", tam-2, ' ');
if (i%tam==0){
cont++;
j=0;
}
}
putchar ('\n');
for (k=0;k<tam;k++){
for (i=0,j=0;i<2*MAX/tam-1;i++,j++){
if (cont1==cont-1)
break;
if (j==0)
printf ("%*c", tam, '*');
else
printf ("%*c", tam-1, '*');
if (k==tam-1 && i<(2*MAX/tam-1)/2+1){
cont1++;
for (l=0;l<tam-1;l++){
putchar('*');
}
}
if (i%(tam+1)==0)
j=0;
}
putchar ('\n');
}
putchar ('\n');
}
return 0;
}
/*****************************/
#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
int main()
{
srand((unsigned) time(NULL));
int i,j,dim,dim_plus;
char tamanyo_consola[80];
printf("\nDimensi\xA2n del Tablero: ");
fflush (stdout);
scanf("%d",&dim);
printf ("\n\n");
dim_plus=dim*4+1;
int a0[dim_plus],a1[dim_plus],a2[dim_plus],a3[dim_plus];
/** linea superior **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a0[j]=218;
else if (j==dim_plus-1)
a0[j]=191;
else if ((j)%4==0 && j<dim_plus-1)
a0[j]=194;
else
a0[j]=196;
}
/** linea inferior **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a2[j]=192;
else if (j==dim_plus-1)
a2[j]=217;
else if ((j)%4==0 && j<dim_plus-1)
a2[j]=193;
else
a2[j]=196;
}
/** salto de linea... **/
/** y dibujo intermedias y laterales **/
for (j=0;j<dim_plus;j++){
if (j==0)
a1[j]=195;
else if (j==dim_plus-1)
a1[j]=180;
else if ((j)%4==0 && j<dim_plus-1)
a1[j]=197;
else
a1[j]=196;
}
/** linea lateral **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a3[j]=179;
else if (j==dim_plus-1)
a3[j]=179;
else if ((j)%4==0 && j<dim_plus-1)
a3[j]=179;
else
a3[j]=219;
}
/** imprimimos **/
sprintf(tamanyo_consola, "MODE %d,%d", dim_plus+1,2*dim+1);
system(tamanyo_consola);
/** linea superior **/
for (j=0;j<dim_plus;j++){
color (6);
printf("%c",a0[j]);
}
putchar ('\n');
for (j=0;j<dim_plus;j++){
if ((a3[j]==219) ){
color (80+rand() % (249-80));
printf("%c",32);
}
else{
color (6);
printf("%c",a3[j]);
}
}
/** salto de linea... **/
/** y dibujo intermedias y laterales **/
for (i=0;i<dim-1;i++){
putchar ('\n');
for (j=0;j<dim_plus;j++){
color (6);
printf("%c",a1[j]);
color (7);
}
putchar ('\n');
/** linea lateral **/
for (j=0;j<dim_plus;j++){
if ((a3[j]==219) ){
color (80+rand() % (249-80));
printf("%c",32);
color (7);
}
else{
color (6);
printf("%c",a3[j]);
}
}
}
putchar ('\n');
/** linea inferior **/
for (j=0;j<dim_plus;j++){
color (6);
printf("%c",a2[j]);
}
system ("pause>null");
return 0;
}
void color (int n)
{
SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}
Cita de: amchacon en 14 Marzo 2014, 01:39 AM
Huy, a mi dibujar formas en ASCII me da un dolor de cabeza... Es de los ejercicios que no puedo xD
..............................................................................
PD: El triangulo de pascal... ¿Recursivo?
#include <iostream>
#include <iomanip>
using namespace std;
int dibuja_arriba (int a,int cont);
int dibuja_abajo (int a,int cont);
int main()
{
int cont=25,a=0;
/*cout << "Introduce un numero IMPAR: "<<endl;
cin >> a;
cout <<endl ;*/
dibuja_arriba (a,cont);
cout << " ";
dibuja_abajo (cont-2,a+1);
return 0;
}
int dibuja_arriba (int a,int cont){
if (cont<=0)
return 1;
cout <<setw((cont/2)+1) << " ";
for (int i=0;i<=a;i++)
cout<< "*";
cout << endl;
dibuja_arriba (a+2,cont-2);
}
int dibuja_abajo (int a,int cont){
if (a<=0)
return 1;
for (int i=1;i<=a;i++)
cout<<"*";
cout << endl << setw(cont+2) << " ";
dibuja_abajo (a-2,cont+1);
}
Cita de: amchacon en 11 Marzo 2014, 12:44 PM.
Yo por comodidad, uso un plugin que viene en el codeblocks. Así no tengo que estar abriendo un programa cada vez.
...................................
Cita de: amchacon en 14 Marzo 2014, 01:03 AM
La eficiencia es buena, como mucho se puede mejorar creandote un vector fila y ir imprimiendo filas del tirón.
Aparte de eso. El código podría ser más claro. Y sobre todo más genérico (para cualquier tamaño del tablero).
Ah, y los pegotes se puede resolver pintandolos al reves (primero el pegote y despues el cuadrado).
/*****************************/
/*
a0=linea superior
a1=lineas intermedias
a2=linea inferior
a3=lineas laterales
218=┌ 196=─ 194=┬ 191=┐ 179=│ 195=├
197=┼ 180=┤ 192=└ 193=┴ 217=┘ 219=█
*/
/*****************************/
#include <stdio.h>
int main()
{
int i,j,dim,dim_plus;
printf("\nDimensi\xA2n del Tablero: ");
fflush (stdout);
scanf("%d",&dim);
printf ("\n\n");
dim_plus=dim*4+1;
int a0[dim_plus],a1[dim_plus],a2[dim_plus],a3[dim_plus];
/** linea superior **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a0[j]=218;
else if (j==dim_plus-1)
a0[j]=191;
else if ((j)%4==0 && j<dim_plus-1)
a0[j]=194;
else
a0[j]=196;
}
/** linea inferior **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a2[j]=192;
else if (j==dim_plus-1)
a2[j]=217;
else if ((j)%4==0 && j<dim_plus-1)
a2[j]=193;
else
a2[j]=196;
}
/** salto de linea... **/
/** y dibujo intermedias y laterales **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a1[j]=195;
else if (j==dim_plus-1)
a1[j]=180;
else if ((j)%4==0 && j<dim_plus-1)
a1[j]=197;
else
a1[j]=196;
}
/** linea lateral **/
for (j=0;j<dim_plus;j++){
if (j==0 )
a3[j]=179;
else if (j==dim_plus-1)
a3[j]=179;
else if ((j)%4==0 && j<dim_plus-1)
a3[j]=179;
else
a3[j]=219;
}
/** imprimimos **/
for (j=0;j<dim_plus;j++)
printf("%c",a0[j]);
putchar ('\n');
for (j=0;j<dim_plus;j++)
printf("%c",a3[j]);
for (i=0;i<dim-1;i++){
putchar ('\n');
for (j=0;j<dim_plus;j++)
printf("%c",a1[j]);
putchar ('\n');
for (j=0;j<dim_plus;j++)
printf("%c",a3[j]);
}
putchar ('\n');
for (j=0;j<dim_plus;j++)
printf("%c",a2[j]);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand((unsigned) time(NULL));
int a, j, k=0, f=0,cont=0;
char c[] = {"abcdefghijklmnopqrstuvwxys0123456789"};
char letra[11],codigo[11];
for(j=0; j < 11; j++)
codigo[j]='A';
do{
printf("==========================\n== Generador de codigos ==\n==========================\n\n* Ingrese 1 si quiere generar un codigo\n");
scanf("%d", &a);
if (a != 1)
printf("Necesitas ingresar el numero 1 para generar un codigo\n");
}while(a != 1);
for(j=0; j < 5; j++) {
k = rand() % 26;
letra[j] = c[k];
}
for(j=5; j < 10; j++){
f = 26 + rand() % 10;
letra[j] = c[f];
}
letra[j]='\0';
printf("%s\n", letra);
///printf("%d %s\n", j,letra);
for (j=0;j<10;j++){
j=0;
do{
k=rand ()%10;
if (codigo[j]=='A' && letra[k]!='A'){
codigo[j]=letra[k];
letra[k]='A';
j++;
}
}while (j<10);
codigo[10]='\0';
}
printf("%s\n", codigo);
return 0;
}
Cita de: rir3760 en 14 Marzo 2014, 02:32 AM
Si encuentras eso realmente molesto abre un tema sobre ello en el foro Sugerencias y dudas sobre el Foro
Un saludo