# Estructura de un programa en C++

En la siguiente imagen se observa el código fuente utilizado para imprimir un mensaje en pantalla usando Codeblocks.

![Programa para imprimir un mensaje en pantalla](/files/-LP22zcePO-eK66GpOOs)

```cpp
// Primer programa en C++ para imprimir un mensaje

// Directivas de preprocesamiento
// Inclusion de librerias para utilizar metodos y funciones predefinidas
#include <iostream>

// Declaracion del espacio de nombres STD
using namespace std;

//Funcion principal del programa
int main() {

    // Uso del metodo cout para imprimir un mensaje
    cout << "Bienvenidos a la OOI!";

    //Indica la terminacion exitosa del programa
    return 0;
}

```

## Explicación de la estructura

### Comentarios

Todas las líneas que comienzan con los símbolos `//` indican un comentario. Estas líneas no tienen significado para el compilador, y no se ejecutan. Son ignoradas en el momento de compilación. Sin embargo, son útiles para el programador, quien las utiliza para entender el código y documentarlo.

***Buena práctica de programación:*** Utiliza comentarios para que tu código sea fácil de entender.

```cpp
// Primer programa en C++ para imprimir un mensaje
```

### Directivas de preprocesamiento

```cpp
#include <iostream>
```

Todas las instrucciones en C++ que comienzan con el símbolo `#` se utilizan paa indicar las directivas de preprocesamiento. Las cuáles son utilizadas por el preprocesador para realizar acciones antes de compilar.

En este caso se está incluyendo una librería. Por eso se utiliza la palabra `include`, seguido del nombre de la librería entre los símbolos `<  >`.

Una **librería** es un archivo con terminación .h, el cual **contiene métodos** ya implementados que pueden ser utilizados por el programador.

Las librerias más utilizadas en C++ son la **iostream** y **cstdio**, ambas son útiles para leer y escribir a la consola de ejecución, pues proporcionan métodos para hacerlo.

Existen otras librerías como cstring, cstdlib, algorithm, queue, stack, etc. Que se abordarán más adelante, y que tienen el poder de manejar caracteres, ordenar datos, implementar pilas y colas, etc.

Recuerda siempre incluir la librería **iostream** al principio de cada uno de tus programas para poder utilizar las instrucciones **cin** y **cout**.

### Uso de espacios de nombres

```cpp
using namespace std;
```

Esta instrucción se requiere para indicar al compilador que se están usando métodos bajo el espacio de nombres **STD,** de lo contrario el compilador no entiende los métodos.&#x20;

Para efectos de la olimpiada no es necesario entrar en detalles, simplemente recuerda incluir esta instricción en tus programas.

### Función principal

Un programa en C++ contiene métodos y funciones, los cuales se utilizan para ejecutar segmentos de código.&#x20;

La función principal se conoce como `main()` , esta función es la primera que se ejecuta al iniciar un programa.

La estructura es:

```cpp
int main() {
    
     // Conjunto de instrucciones
    
    return 0;
}
```

La sentencia `int main()` indica la declaración de la función. La palabra `int` al principio de la función indica que se espera que al terminar la función regrese un valor entero.

Los parentesis `()` despues de la palabra main indican que se está construyendo una función.

El conjunto de instrucciones que se desean ejecutar en una misma función o bloque de código está delimitado por los símbolos de llave `{}`. La llave que abre  `{` indica el inicio del cuerpo de la función, mientras que la llave que cierra `}` indica la termincación del cuerpo.

La instrucción `return 0;` indica la terminación de la función y retorna un 0. Cuando la función main de un programa retorna un 0 indica una ejecución exitosa que le dice al sistema operativo que todo está en orden.

### Instrucciones

Una instrucción en C++ se identifica por que siempre con el símbolo de `;` (punto y coma). Una instrucción indica a la computadora que se debe realizar una acción.

***Error común***: Es muy importante siempre terminar las instrucciones utilizando un `;` ya que de lo contrario se obtendrá un error de sintaxis al intentar compilar el código.

Ejemplos de instrucciones:

```cpp
// Instrucción para imprimir Hola
cout << "Hola";
// Instrucción para sumar el número 5 y 10 y asignar el resultado a x
x = 5 + 10;
// Instrucción paa declarar una variable llamada número
int numero;
```

### Indentación

Para hacer el código más legible para el programador, se recomienda indentar el código. Esto es, aplicar sangrías (tabs) al código siempre que se comience el cuerpo de una nueva función.

### Referencias

DEITEL, Harvey M y DEITEL, Paul J Cómo programar en C++. 9a ed. Pearson Educación


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ooi.gitbook.io/courses/temario/untitled/estructura-de-un-programa-en-c++.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
