Manual
logo



Programación C++ con AGU desde 0

Estructura Básica de un Programa

Código = Datos + Instrucciones

Instrucciones

Un programa opera con datos. Se realizan una serie de operaciones con los datos. Una instrucción elemental termina con un punto y coma [;].
En C++, el final de línea no indica final de instrucción. Los dos programas siguientes son iguales:
#include <iostream>

int menor (int,int);

int main()
{
    int num1, num2;
    std::cout<<"Introduce dos números (separados por un espacio): ";
    std::cin>>num1>>num2;
    num1=menor(num1,num2);
    if (num1==0)
        std::cout<<"los números son iguales";
    else
        std::cout<<num1<<" es el menor de los dos números";
    return 0;
}
int menor (int n1, int n2)
{
 if (n1==n2) return 0;
 else
    if(n1>n2) return n2;
        else return n1;
}

#include <iostream>
int menor (int,int); int main(){    int num1, num2;    std::
        cout<<"Introduce dos números (separados por un espacio): ";    std::cin>>num1>>num2;
    num1=menor(num1,num2);    if (num1==0)        std::cout<<"los números son iguales";
        else    std::cout<<num1<<" es el menor de los dos números";    return 0;}
int menor (int n1, int n2){ if (n1==n2) return 0;
    else
       
        if(n1>n2) return n2;        else return n1;
}

No son pocas las veces, que nos aparece un error de compilación, por un punto y coma que hemos omitido (al menos en mi caso).
Ademas de las declaraciones de variables, es habitual encontrarse este tipo de instrucciones o sentencias:

Asignaciones, inicialización

Las asignaciones son una instrucción especial, que tienen a la izquierda el nombre de la variable, luego el operador de asignación [=] y a la derecha una expresión.
nombre_variable = expresión ;
Esto significa que en  el espacio de memoria asignado a nombre_variable, se introduzca el resultado de la expresión.
Esto permite comprender expresiones tal como x=x+y; muy habituales en programación y que no quieren decir que y sea igual a 2x, sino que se sume el contenido de la variable x con el contenido de la variable y, y el resultado se coloque en x. Por ejemplo, si x=20 e y=3, tras esta instrucción x = 23, y por supuesto, y= 3.
Especialmente habitual es la asignación x=x+1; que en C y C++ se puede escribir como x++;. Esto nos permite comprender el significado de C++: un paso adelante del lenguaje C.

A la primera asignación de una variable, se le denomina inicialización, no es obligatoria, pero debiera serlo. Puede realizarse la declaración y la inicialización en un sólo paso, por ejemplo:
int x= 10;// declaración e inicialización en un solo paso
es igual que:
int x; //declaración de la variable x
x=10; //inicialización

Estructuras de control

Pocos serán los programas que realices donde la ejecución siga un proceso secuencial único. Lo habitual es que muchas operaciones se repitan y otras se ejecuten o no en función de las circunstancias.
En nuestro ejemplo, si el usuario introduce dos números iguales tendremos que informarle que ambos números son iguales, mientras que si son diferentes debemos ver cual de ellos es el más pequeño.
Es una clásica instrucción de decisión:
if (expresión) código_si else código_no
si la expresión es cierta se realiza el código_si, mientras que si es falsa se ejecuta código_no.
Donde código puede representar como en el ejemplo una única instrucción,  o un bloque de código (varias instrucciones), porque lo normal es que queramos hacer varias cosas en una situación determinada. El bloque de código se realiza con los paréntesis {...}
código => instrucción;
           => { instrucción; instrucción2; intrucciónn;}

Existen estructuras de repetición (para repetir un número de veces un código determinado). Por ejemplo, el siguiente código pide la introducción de un número y luego calcula el factorial [n * (n-1)* (n-2)*...*1], ej factorial de 5 es igual a 5x4x3x2x1 . Por cierto, habría que advertir al usuario que con números elevados  el resultado no es el correcto, ya que el espacio utilizado para almacenar el número es reducido (4 bytes):
#include <iostream>
int main(){   
    int num1, total;//declaración de las variables
    //pedimos un número al usuario
    std::cout<<"Introduce un número: ";
    std::cin>>num1;
    //inicialización de total
    total=1;
    /* Inicialmente se asigna a la variable i el valor del número.
    / en cada iteración i disminuye una unidad i-- => i=i-1;
    / y se repite mientras que i sea mayor que 1, es decir hasta 2,
    / multiplicar por 1 es tonteria.
    /    Si num1 = 5, la primera vez total= 5*1 (hablando de tonterías)
    / la segunda vez, total=5*4 (20), la tercera total=20*3 (60), la cuarta
    / total=60*2 (120), la quinta i vale 1 y ya no se ejecuta la instrucción.*/
    for (int i=num1;i>1;i--) total=total*i;
    //mostramos el resultado
    std::cout<<"el factorial de "<<num1<<" es "<<total;
    return 0;
}