domingo, 9 de octubre de 2011

2. Estructuras de control

EJERCICIOS PROPUESTOS EN LAS DIAPOSITIVAS.
01 - Número mayor
02 - Número positivo, negativo o cero
03 - Letra minúscula,mayúscula,dígito u operador aritmético
04 - Menú (I)
05 - Entender algoritmo (I) y (II)
06 - Suma de números positivos
07 - Divisores de un número mayor que cero
08 - Menú (II)



PRÁCTICA 3
ESTRUCTURAS DE CONTROL CONDICIONALES
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.
01 - Número mayor, menor y promedio
02 - Años bisiestos
03 - Capicúa
04 - Calculadora



PRÁCTICA 4
ESTRUCTURAS DE CONTROL ITERATIVAS.
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.
01 - Operaciones de números introducidos
02 - Fibonacci
03 - Pareja de valores (Fila,Columna)
04 - Dibujando triángulos



Secuencia
Asignación=
Entradacin >>
Salidacout <<


Selección
Simplesif
Doblesif - else
Múltiplesswitch ó if-else anidados


Iteración
Repetir con condición inicialwhile y for
Repetir con condición finaldo-while


IF-ELSE
IF-ELSE ANIDADO
SWITCH
if (expresión lógica1){
   sentencia1;
}else{
   sentencia2;
}
if (expresión lógica1){
   sentencia1;
}else if(expresión lógica2){
   sentencia2;
}else if(expresión lógica3){
   sentencia3;
}
switch (expresión lógica1){
   case valor1:
       sentencia1;
   break;
   case valor2:
       sentencia2;
   break;
   default:
       sentencia3;
   break;
}
WHILE
FOR
DO-WHILE
while (expresión lógica1){
   sentencias;
}
for (inicio contador;expresión lógica1;incremento contador){
   sentencias;
}
do{
   sentencias;
}while (expresión lógica1);




¿Diferencia entre while y do-while?

While

- Permite repetir cero o más veces

Do-while

- Permite repetir una o más veces

Equivalencias For y While (búcles inciales)
FOR
WHILE
for (valor; condición; contador){
   sentencias;
}
valor;
while (condición){
   sentencias;
   contador;
}


Traza de un programa

- Es la secuencia de estados por los que pasa un programa, es decir, el valor que va tomando las variables a medida que se va ejecutando el programa.
- La traza se lleva a cabo mediante la ejecución manual de forma secuencial de las sentencias que compone el programa.
- Se utilizan principalmente para depurar un programa.

Ejemplo:

#include<iostream>
using namespace std;
main(){
int num;
int suma;
int i;

cout << "Introduce un número mayor que cero";
cin >> num;

//calcular

suma = 0;

for (i=1; i<num; i++){
if( (num%2) != 0)
suma = suma+1;
}

cout << "Resultado: " << suma << endl;
}


numsumai
cin5
inicializa suma50
inicializa contador501
1ª iteración for511
incremento contador512
2ª iteración for532
incremento contador533
3ª iteración for563
incremento contador564
4ª iteración for5104
incremento contador5105

Os dejo mis soluciones sobre los ejercicios propuestos de este tema por si os veis muy perdidos.
Si encontráis algún fallo en el código comentadmelo por e-mail, tuenti o bien desde este blog.
También podéis participar en el foro del campus para que debatamos nuestras dudas.
Campus > Moodle > 2012-11 Programación 1 > Foro > Dudas


EJERCICIOS PROPUESTOS EN LAS DIAPOSITIVAS.

01)
/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
   
    T3. ESTRUCTURAS DE CONTROL
    **********************************************
    Número mayor
    **********************************************
    Escribe un programa que lea dos números introducidos por teclado y muestre
    un mensaje de texto en pantalla indicando cuál es el mayor.
*/
#include<iostream>
using namespace std;
int main(){
    int n1,n2;
    cout << "Introduce un número: ";
    cin >> n1;
    cout << "Introduce otro número: ";
    cin >> n2;
 
    if(n1>n2){
        cout << "El mayor es: " << n1 << endl;
    }else{
        cout << "El mayor es: " << n2 << endl;
    }
 
    system("PAUSE");
}

02)

/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL
    **********************************************
    Número positivo, negativo o cero
    **********************************************
    Escribe un programa que lea un número y muestre un mensaje en pantalla
    indicando si es positivo, negativo o igual a cero.
*/
#include<iostream>
using namespace std;
int main(){
    int n1;
 
    cout << "Introduce un número: ";
    cin >> n1;
 
    if(n1==0){
        cout << "Es cero" << endl;
    }else if(n1>0){
        cout << "Es positivo" << endl;
    }else if(n1<0){
        cout << "Es negativo" << endl;
    }
 
    system("PAUSE");
}


03)
/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL
    **********************************************
    Letra minúscula,mayúscula,dígito u operador aritmético
    **********************************************
    Escribe un programa que lea un carácter y visualice por pantalla un mensaje
    indicando si es una letra minúscula, una letra mayúcula, un dígito o un
    operador aritmético.
*/
#include<iostream>
using namespace std;

int main(){
 char caracter;
 cout << "Escribe: " << endl;
 cin >> caracter;
 if(caracter >= 'a' && caracter <= 'z'){
    cout << "es minúscula" << endl;       
 }else if(caracter >= 'A' && caracter <= 'Z'){
    cout << "es mayúscula" << endl;       
 }else if(caracter >= '0'){
    cout << "es dígito" << endl;       
 }else if(caracter >= '+'){
    cout << "es un operador aritmético" << endl;       
 }
 system("PAUSE");
}

04)
/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL
    **********************************************
    Menú (I)
    **********************************************
    Escribe un programa que visualice tres opciones de un menú y permita
    al usuario seleccionar una de ellas, después de lo cual deberá aparecer
    un mensaje en la pantalla que muestre la opción seleccionada o bien un
    mensaje de error si la opción es incorrecta.
*/
#include<iostream>
using namespace std;

int main(){
    char opcion;
 
    cout << "Menú\n 1- Kebap \n 2- Pizza \n 3- Hamburguesa" << endl;
    cout << "Escoge una opción del menú: ";
    cin >> opcion;
 
    switch(opcion){
        case '1':
            cout << "Has elegido Kebap" << endl;
        break;
        case '2':
            cout << "Has elegido Pizza" << endl;
        break;
        case '3':
            cout << "Has elegido Hamburguesa" << endl;
        break;
        default:
            cout << "La opción seleccionada es incorrecta" << endl;
        break;
    }
 
    system("PAUSE");
}

05)
/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL

    **********************************************
    Entender algoritmo (I)
    **********************************************

    Después de ejecutar cada uno de los siguientes fragmentos de programa.
    ¿Cuál será el valor final de la variable x en cada uno de los casos?
    (CASO A)
*/
#include<iostream>
using namespace std;

/*
    "x=31"
    "n=0"
*/

int main(){
    int x,n,z,j;
 
    x=0;
    n=16;
 
    while(n!=0){
        x=x+n;
        n=n/2;
        cout << "X vale: " << x << " N vale: " <<  n << endl;
    }
 
    system("PAUSE");
}


05.2)
/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL

    **********************************************
    Entender algoritmo (II)
    **********************************************

    Después de ejecutar cada uno de los siguientes fragmentos de programa.
    ¿Cuál será el valor final de la variable x en cada uno de los casos?
    (CASO B)
*/
#include<iostream>
using namespace std;

/*
    -Se ejecutará la primer condición
    -Se produce un búcle infinito
 
    "j=0"
    "x+j=0"
*/
int main(){
    int z,x,j;
 
    z=12;
    x=0;
 
    if((z%4)==0){
        for(j=0;j<10;j+4){
            x=x+j;
            cout << "X vale: " << x << endl;
        }
    }else{
        for(j=0;j<10;j+2){
            x=x+j;
            cout << "X vale: " << x << endl;
        }
    }
         
    system("PAUSE");
}

06)

/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL

    **********************************************
    Suma de números positivos
    **********************************************

    Escribe un programa que lea números positivos y nos muestre el valor de
    su suma y la cantidad de números leídos.
*/
#include<iostream>
using namespace std;

int main(){
    int contador,numero,suma;
    contador=1;
    suma=0;
 
    do{
        cout << "Introduce un número: ";
        cin >> numero;
     
        if(numero>=0){
            suma = numero + suma;
            cout << "Números leídos: " << contador << endl;
            cout << "Resultado: " << suma << endl;
        }
     
        contador++;
    }while(contador<=5);
 
    system("PAUSE");
}


07)

/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL

    **********************************************
    Divisores de un número mayor que cero
    **********************************************

    Escribe un programa que lea un número entero mayor que cero y muestre
    por pantalla todos los divisores de dicho número.
*/
#include<iostream>
using namespace std;

int main(){
    int numero,i;
 
    cout << "Introduce un número: ";
    cin >> numero;
 
    if(numero>0){
        for(i=0;i<numero;i++){
            numero = numero/2;
            cout << numero << endl;
        }
    }
 
    system("PAUSE");
     
}

08)

/* 
    Tony Del Pino Gz 
    tonydelpinogz@gmail.com
    
    T3. ESTRUCTURAS DE CONTROL

    ********************************************** 
    Menú (II)
    **********************************************

    Modifica el programa del ejercicio 4 para añadir una cuarta opción que
    sea SALIR. El programa debe mostrar el menú continuamente , después de
    que el usuario elija opción, hasta que se elija la opción 4.
*/
#include<iostream>
using namespace std;

int main(){
    char opcion;
 
    cout << "Menú\n 1- Kebap \n 2- Pizza \n 3- Hamburguesa \n 4- SALIR" << endl;
 
    do{
        cout << "Escoge una opción del menú: ";
        cin >> opcion;
     
        switch(opcion){
            case '1':
                cout << "Has elegido Kebap" << endl;
            break;
            case '2':
                cout << "Has elegido Pizza" << endl;
            break;
            case '3':
                cout << "Has elegido Hamburguesa" << endl;
            break;
            case '4':
                cout << "Fin del programa" << endl;
            break;
            default:
                cout << "La opción seleccionada es incorrecta" << endl;
            break;
        }
    }while(opcion!='4');
 
    system("PAUSE");
}


PRÁCTICA 3
ESTRUCTURAS DE CONTROL CONDICIONALES
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.

01)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 3. ESTRUCTURAS DE CONTROL CONDICIONALES

    **********************************************
    Número mayor, número menor y promedio
    **********************************************

    Implementa un algoritmo en C que lea tres números enteros y escriba un
    mensaje indicando cuál es el mayor de los 3, cuál es el menor de los 3 y
    cuál es el promedio, intentando que el número de condiciones a evaluar
    sea el mínimo.
*/
#include<iostream>
using namespace std;

int main(){
    int n1,n2,n3,promedio;
 
    cout << "Introduce un número: ";
    cin >> n1;
    cout << "Introduce otro número: ";
    cin >> n2;
    cout << "Introduce una vez más otro número: ";
    cin >> n3;
 
    // Número mayor
    if(n1>n2 && n1>n3){
        cout << "Número mayor: " << n1 << endl;
    }else if(n2>n1 && n2>n3){
        cout << "Número mayor: " << n2 << endl;  
    }else if(n3>n1 && n3>n2){
        cout << "Número mayor: " << n3 << endl;  
    }
 
    // Número menor
    if(n1<n2 && n1<n3){
        cout << "Número menor: " << n1 << endl;
    }else if(n2<n1 && n2<n3){
        cout << "Número menor: " << n2 << endl;
    }else if(n3<n1 && n3<n2){
        cout << "Número menor: " << n3 << endl;
    }
 
    // Promedio
    promedio=(n1+n2+n3)/3;
    cout << "Promedio: " << promedio << endl;
 
    system("PAUSE");
}

02)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 3. ESTRUCTURAS DE CONTROL CONDICIONALES

    **********************************************
    Años bisiestos
    **********************************************

    Implementa un algoritmo que lea una fecha (por separado el día, el mes y
    el año) y muestre un mensaje indicando si la fecha es correcta o no. Hay
    que tener en cuenta que son bisiestos los años múltiplos de 4, excepto los
    múltiplos de 100, y que sí son bisiestos los múltiplos de 400.
    En el caso de que la fecha sea correcta, deberá mostrar el día siguiente.
*/
#include<iostream>
using namespace std;

int main(){
    int dia,mes,anyo;
 
    cout << "Día: ";
    cin >> dia;
    cout << "Mes: ";
    cin >> mes;
    cout << "Año: ";
    cin >> anyo;
 
    if((dia<=31) && (mes<=12)){
        if((anyo%4==0)&&((anyo%100!=0)||(anyo%400==0))){
            cout << "Es bisiesto" << endl;
            cout << dia+1 << "/" << mes << "/" << anyo << endl;
        }else{
            cout << "No es bisiesto" << endl;
            cout << dia+1 << "/" << mes << "/" << anyo << endl;
        }
    }else{
        cout << "Fecha incorrecta" << endl;
    }
 
    system("PAUSE");
}

03)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 3. ESTRUCTURAS DE CONTROL CONDICIONALES

    **********************************************
    Capicúa
    **********************************************

    Implementa un algoritmo en C que pida un número entre 0 y 9.999 y diga si
    es capicúa.
    
    PLANTEAMIENTO.
    5665:
    5665/1000 = 5 (resto=665)
    665/100 = 6 (resto=65)
    65/10 = 6 (resto=5)
    5/1 = 5 (resto=0)
    Con estas cuatro operaciones se obtiene cada uno de los caracteres del
    número por separado.
    Ya sólo queda comprobar que el primer dato coincida con el cuarto y 
    el segundo con el tercero.
*/

#include<iostream>
using namespace std;

int main(){
    int n,n1,n2,n3,n4;
 
    cout << "Introduce un número del 0 al 9999: ";
    cin >> n;
 
    //Resto de la división
    n1 = n%1000;
    n2 = n1%100;
    n3 = n2%10;
    n4 = n3%1;
 
    //Cociente de la división
    n = n/1000;
    n1 = n1/100;
    n2 = n2/10;
    n3 = n3/1;
 
    //Compruebo cada valor introducido
    //cout << n << n1 << n2 << n3 << endl;
 
    //Compruebo la inversa (copicúa)
    if(n==n3 || (n==0 && n1==n3) ||
    (n==0 && n1==0 && n2==n3) ||
    (n==0 && n1==0 && n2==0 && n3==n3)){
        cout << "Si es capicúa" << endl;
    }else{
        cout << "No es capicúa" << endl;
    }

    system("PAUSE");

}


04)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    
    PRÁCTICA 3. ESTRUCTURAS DE CONTROL CONDICIONALES

    **********************************************
    Calculadora
    **********************************************

    Implementa un algoritmo en C que realice las cuatro operaciones básicas de
    una calculadora (suma,resta,multiplicación y división). El programa debe
    leer los dos números y la operación. La operación se indicará con un 
    carácter: 's' para la suma, 'r' para la resta, 'm' para la multiplicación
    y 'd' para la división.
*/
#include<iostream>
using namespace std;

int main(){
 
    char operador;
    int n1,n2;
 
    cout << "1- Teclea 's' para sumar." << endl;
    cout << "2- Teclea 'r' para restar." << endl;
    cout << "3- Teclea 'm' para multiplicar." << endl;
    cout << "4- Teclea 'd' para dividir." << endl;

    cout << "¿Qué operación deseas hacer?";
    cin >> operador;
    cout << "Introduce un número: ";
    cin >> n1;
    cout << "Introduce otro número: ";
    cin >> n2;
 
    switch(operador){
        case 's':
            cout << "Resultado: " << n1+n2 << endl;
        break;
        case 'r':
            cout << "Resultado: " << n1-n2 << endl;
        break;
        case 'm':
            cout << "Resultado: " << n1*n2 << endl;
        break;
        case 'd':
            cout << "Resultado: " << n1/n2 << endl;
        break;
        default:
            cout << "Operación no válida" << endl;
        break;
    }
 
    system("PAUSE");
 
}


PRÁCTICA 4.
ESTRUCTURAS DE CONTROL ITERATIVAS
EJERCICIOS PROPUESTOS EN LAS PRÁCTICAS.

01)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com



    PRÁCTICA 4. ESTRUCTURAS DE CONTROL ITERATIVAS

    **********************************************
    Operaciones de números introducidos
    **********************************************



    Implementa un programa que lea números que el usuario introduzca por
    teclado. En primer lugar el programa preguntará cuántos números se
    van a introducir. A continuación se introducirán los números. El
    programa tiene que imprimir la suma de todos los números introducidos
    e indicar cuál es el mayor y el menor de todos.
*/
#include<iostream>
using namespace std;

int main(){
    int nVeces;
    int contador;
    int numero;
    int suma;
    int nMayor,nMenor;
 
    //Acumuladores
    suma=0;
    nMayor=0;
    nMenor=0;
    //Contador
    contador=1;
 
    cout << "¿Cuántos números vas a introducir?" << endl;
    cin >> nVeces;
 
    do{
        cout << "Introduce un número:" << endl;
        cin >> numero;
     
        suma=numero+suma;
     
        if(numero>=nMayor){
            nMayor=numero;
        }
        if(numero<=nMenor){
            nMenor=numero;
        }
     
        contador++;
    }while(contador<=nVeces);
 
    cout << "La suma es: " << suma << endl;
    cout << "El menor es: " << nMenor << endl;
    cout << "El mayor es: " << nMayor << endl;

    system("PAUSE");
}


02)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com



    PRÁCTICA 4. ESTRUCTURAS DE CONTROL ITERATIVAS

    **********************************************
    Fibonacci
    **********************************************

    Escribe un programa que pida un número n por teclado e imprima los valores
    de la serie Fibonacci hasta ese número n.
    
    EJEMPLO:
    Introduce n:
    7
    0 1 1 2 3 5 8 13
    Introduce n:
    10
    0 1 1 2 3 5 8 13 21 34 55
    
    PLANTEAMIENTO:
    "a" vale 0
    "b" vale 1
    "s" vale 0 <- variable acumuladora que irá sumando la secuencia (a+b)
    Repetir "nVeces"
        Si "s" es menor que 0
            Muestra el valor de "s", es decir, 0
            Suma s=a+b, es decir, s=0+1
            Muestra el valor de "s" una vez más, es decir, el resultado de la primer suma, 1
            Por lo que en esta primer condición se mostrará por pantalla los primeros dos dígitos, "0 1"
        De lo contrario si "s" es mayor que 0
            --------------------------------------------
            s=a+b, es decir, s=0+1
            Mostramos por pantalla el valor de s, 1
            y aquí es donde empezaremos a alterar el orden de los valores para asignar la
            secuencia fibonacci:
            a que vale 0, tendrá el valor de "b", 1
            b que vale 1, tendrá el valor de "s=a+b", 1
            --------------------------------------------
            se repetirá "nVeces" cambiando los valores de la suma de a y b
            y asi es como se obtiene la secuencia Fibonacci
    Fin Repetir    
*/
#include<iostream>
using namespace std;

int main(){
    int nVeces,i;
    int a,b,s;
    a=0;
    b=1;
    s=0;
 
    cout << "Introduce n:" << endl;
    cin >> nVeces;
 
    //Sumando secuencias fibonacci
    for(i=0;i<nVeces;i++){
        if(s<=0){
            cout << s << " ";
            s=a+b;
            cout << s << " ";
        }else{
            s=a+b;
            cout << s << " ";
            a=b;
            b=s;
        }
    }
 
    system("PAUSE");
}

03)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    

    PRÁCTICA 4. ESTRUCTURAS DE CONTROL ITERATIVAS

    **********************************************
    Pareja de valores (Fila,Columna)
    **********************************************



    Implementa un programa en C que pida por teclado un número n, que deberá 
    cumplir que sea mayor que 0 y menor o igual a 9. En caso de que la entrada
    de dicho dato sea incorrecta, el programa deberá volver a solicitarlo
    hasta que sea correcto.
    Después se deberá imprimir por pantalla todas las posibles parejas de valores
    (i,j), hasta n.
    
    EJEMPLO
    Introduce n (mayor que 0 y menor igual a 9):
    10
    el valor introduce es incorrecto.
    Introduce n (mayor que 0 y menor igual a 9):
    3
    (1,1) (1,2) (1,3)
    (2,1) (2,2) (2,3)
    (3,1) (3,2) (3,3)
    
    OBSERVACIONES
    Para el comando "cout":
    \t = Salto de tabulación
    \n ó << endl; = Salto de línea
*/
#include<iostream>
using namespace std;

int main(){
    int n;
    int i,j;
 
    do{
        cout << "Introduce un número (mayor que 0 y menor igual a 9): ";
        cin >> n;
     
        // Parejas de valores de (i,j)
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++){
                cout << "(" << i << "," << j << ")";
                cout << "\t";
            }
            cout << endl;
        }
     
        if(!(n>0 && n<=9)){
            cout << "El valor introducido es incorrecto" << endl;
        }
    }while(!(n>0 && n<=9));
 
    system("PAUSE");
}



4)

/*
    Tony Del Pino Gz
    tonydelpinogz@gmail.com
    

    PRÁCTICA 4. ESTRUCTURAS DE CONTROL ITERATIVAS

    **********************************************
    Dibujando triángulos
    **********************************************



    Implementa un programa que visualice en pantalla cada una de las siguientes
    figuras, preguntando al usuario el número de filas n que deben tener las 
    figuras (En el ejemplo mostrado, n=6). Ten en cuenta que la solución que
    propongas debe contener sentencias de salida por pantalla en las que se
    impriman exclusivamente uno solo de los siguientes caracteres:
        blanco ' '
        aterísco '*'
        y letra 'o'
    
    1)
    ******
    *ooo*
    *oo*
    *o*
    **
    *
    
    2)
    o****o
     *****
      ****
       ***
        **
         o
    
    3)
         *
        *o*
       *o*o*
      *o*o*o*
     *o*o*o*o*
    *o*o*o*o*o*
    
    "Recomendación: Resuelve primero el ejercicio sin distinguir en las
    figuras los caracteres '*' y 'o', es decir, dibuja sólo cada figura con el 
    caracter '*'. Después modifica tu solución inicial para incluir también
    en las figuras el caracter 'o'.
*/
#include<iostream>
using namespace std;

int main(){
    int n,i,j,espacios;
    int blancos;
 
    cout << "TRIÁNGULOS. ";
    cout << "Rectángulos y equilátero" << endl;
    cout << "Introduce número de filas:" << endl;
    cin >> n;

    //Triángulo rectángulo #01
    for(i=0;i<=n;i++){
        for(j=i;j<n;j++){
            //Compruebo caracter
            if(i>=1 && (j>i && j<n-1)) {
                cout << "o";
            }else{
                cout << "*";
            }
        }
        cout << endl;
    }

    //Triángulo rectángulo #02
    for(i=0;i<=n;i++){
        for(espacios=1;espacios<=i;espacios++){
            cout << " ";
        }
        for(j=i;j<n;j++){
            //Compruebo caracter
            if((i==0 && (j==0 || j==n-1)) || i>=n-1){
                cout << "o";
            }else{
                cout << "*";
            }
        }
        cout << endl;
    }

    //Triángulo equilátero
    for(i=1;i<=n;i++){
        for(espacios=1;espacios<=n-i;espacios++){
            cout << " ";
        }
        for(j=1;j<=2*i-1;j++){
            //Compruebo caracter
            if((i>=2 && i<=n) && j%2==0){
                cout << "o";
            }else{
                cout << "*";
            }
        }
        cout << endl;
    }
 
    /* Sólo con el carácter '*'


    //Triángulo rectángulo #01
    for(i=0;i<=n;i++){
        for(j=i;j<n;j++){
            cout << "*";
        }
        cout << endl;
    }
    
    //Triángulo rectángulo #02
    for(i=0;i<=n;i++){
        for(espacios=1;espacios<=i;espacios++){
            cout << " ";
        }
        for(j=i;j<n;j++){
            cout << "*";
        }
        cout << endl;
    }
    
    //Triángulo equilátero
    for(i=1;i<=n;i++){
        for(espacios=1;espacios<=n-i;espacios++){
            cout << " ";
        }
        for(j=1;j<=2*i-1;j++){
            cout << "*";
        }
        cout << endl;
    }
    
    */
 
    system("PAUSE");
}











No hay comentarios:

Publicar un comentario