Pages - Menu

martes, 16 de julio de 2013

Diferencias y equivalencias entre C y C++ 2/3

Continuamos con esta serie de posts donde vemos las diferencias y equivalencias entre C y C++, con objeto de entrar de lleno en la programación avanzada sin necesidad de pasar por una nueva introducción, en este post veremos entre otras cosas las sentencias de control de flujo.

Foto tomada de freedigitalphotos.net

Constantes.

Las constantes en C++ no cambian con respecto a C, se sigue utilizando la palabra Const.

Estructuras condicionales.

La estructura condicional if y switch no sufre ningún cambio con respecto a C, de tal forma que sigue su estructura y construcción.

if simple.

if (expresión)
            sentencia;

if (expresión)
{
            sentencia1;
            sentencia2;
            ....
}

if ... else.

if (expresión)
            sentencia;
else
            sentenciaelse;

if (expresión)
{
            sentencia1;
            sentencia2;
            ....
}
else
{
            sentenciaelse1;
            sentenciaelse2;
            ....
}
           
if ... else if ... else.

if (expresión)
            sentencia;
else if (expresión1)
            sentenciaelseif;
else
            sentenciaelse;

if (expresión)
{
            sentencia1;
            sentencia2;
            ....
}
else if (expresión1)
{
            sentenciaelseif1;
            sentenciaelseif2;
            ....
}
else
{
            sentenciaelse1;
            sentenciaelse2;
            ....
}

Switch.

switch (expresión)
            case valor1:
                        sentencia;
                        break;
            case valor2:
                        sentencia;
                        break;
            ….
            default:
                        Sentencia;

Estructuras iterativas.

Al igual que las estructuras de control condicionales, las iterativas no sufren ningún cambio con respecto a C.

Bucle while.

while (expresión)
{
            sentencia1;
            sentencia2;
}

Bucle for

for  (iniciación; condición; actualización)
{
            sentencia1;
            sentencia2;
}

Bucle do...while.

Do
{
            sentencia1;
            sentencia2;
}
while (expresión);

Cabe destacar algunas expresiones para el control de los bucles que son bastante interesantes:

break: Interrumpe la ejecución del bucle y se sale de él.
continue: Hace que el bucle comience su siguiente ciclo, aunque no haya terminado de ejecutarse todo el bloque.
goto etiqueta: Sitúa el flujo de ejecución del programa allí donde se haya escrito el nombre de la etiqueta, por ejemplo:

sentencia1;
if (expresión)
{
            sentencia2;
            goto nuevo;
            sentencia3;
}
sentencia4;
nuevo:
sentencia5;

De ésta forma ejecutaría sentencia1,2 y 5. La etiqueta “nuevo” termina en “:” para que se pueda diferenciar entre una etiqueta y una sentencia o instrucción.

Arrays.

A estas alturas podemos comprobar que el cambio de C a C++ en cuanto a sentencias básicas no es importante, esto es bastante bueno puesto que una vez aprendido un lenguaje de programación, los siguientes son coser y cantar en éste sentido.

Con los Arrays nos pasa absolutamente igual que con el resto de sentencias, no tienen cambios ninguno.

Estructura.

tipo nombre [longitud];

La forma de recorrerlos y operar con ellos es idéntica. Veamos un ejemplo sencillo.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int i,tabla[10];
   
    for (i=0;i<10;i++)
    {
        tabla[i]=i;
    }
   
    for (i=0;i<10;i++)
    {
        cout << tabla[i] << endl;
    }
   
    cout << endl;
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

¿Qué otras equivalencias ves entre C y C++?