Programa

Un programa de computadora es una serie de instrucciones, órdenes a la máquina, que producirán la ejecución de una determinada tarea. Es un medio para satisfacer una necesidad o cumplir un objetivo de una manera automatizada. 

Comúnmente, la palabra programa es usada de dos maneras: para describir instrucciones individuales, código fuente, creado por el programador y también describe una pieza entera de software ejecutable. Esta distinción puede causar confusión, por lo que vamos a tratar de distinguir entre el código fuente por un lado y un ejecutable por otro.

Para tener un programa ejecutable primero tenemos que tener su código fuente, es decir, del código fuente se deriva el programa ejecutable.

El Código fuente puede ser convertido en un programa ejecutable de dos formas: Interpretes convierten el código fuente en instrucciones de computadora (lenguaje máquina), y la computadora actúa con esas instrucciones inmediatamente. El JAVA es un lenguaje interpretado.

Alternativamente, los compiladores trasladan el código fuente en programas, los cuales pueden ejecutarse tiempo después.

A pesar de que se puede trabajar fácilmente con los intérpretes, la mayor parte de la programación es hecha con compiladores porque el código compilado se ejecuta más rápido. C++ es un lenguaje de compilación.

Estructura de un Programa

Un programa esta formado por la cabecera y el cuerpo del programa.

 

Cabecera

En la cabecera se incluyen a nuestro programa algunas rutinas predefinidas que hacen a la programación más sencilla, pues no tenemos que crear todo desde cero o "tratar de inventar la rueda", es muy bueno que conozcamos la mayor cantidad de librerías disponibles para que tengamos un trabajo más que sencillo y estandarizado. Un programa puede no tener cabecera pero sería demasiado simple, he aquí un ejemplo de una cabecera para un programa sencillo (usando DEV C como compilador).

#include <iostream>
using namespace std;

Cuerpo

El cuerpo del programa contiene la función principal, las funciones adicionales y las clases que se necesiten en el programa.

La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C++ es el siguiente:

int main()
{

}

Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C++ y además, es el más pequeño que se puede escribir y que se compile correctamente. En el se define la función void main, que es la que ejecuta el sistema operativo al llamar a un programa C++. La función principal (void main o int main) o cualquier otra función siempre va seguida de paréntesis.

La definición del cuerpo de la función está formada por un bloque de sentencias o instrucciones, que esta encerrado entre llaves { }.

Un programa C++ puede estar formado por diferentes módulos de código fuente. Es conveniente mantener los código fuente de un tamaño no muy grande, para que la compilación sea rápida. También, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su estructuración. Los diferentes códigos fuentes son compilados de forma separada, únicamente el código fuente que han sido modificados desde la última compilación, y después combinados con las librerías necesarias para formar el programa en su versión ejecutable.

Mecanismos de Salida

Los mecanismos de Salida son aquellos mensajes que el programa utiliza para comunicarse con el mundo exterior o con el usuario. Por ejemplo yo quiero un programa que me salude cordialmente:

1

2:
3:
4:
5:
6:

#include <iostream>

using namespace std;
int main()
{
cout<<" Hola amigo!
\n" ;
}

Con el visualizamos el mensaje Hola amigo! en la ventana del MS-DOS. Analizando el segundo ejemplo, en la primera línea 1 se indica que se tengan en cuenta las funciones y tipos definidos en la librería iostream (standard input/output) que es la cabecera. Estas definiciones se encuentran en el archivo iostream.h. Ahora, en la función main se incluye una única sentencia que llama a la función cout en la línea 5. La funcion cout es usada para desplegar flujos de salida de datos, en pocas palabras, muestra lo que queramos por pantalla, pueden ser datos, nombre, resultados, etc.

Para usar cout se debe colocar esta palabra seguida del operador < que se lo coloca dos veces, luego entre comillas dobles "" se coloca el texto que se quiere mostrar por pantalla. El símbolo \n, colocado al final del texto, indica un cambio de línea.

Caracteres especiales ASCII

Hay un grupo de símbolos, que son tratados como caracteres individuales, que especifican algunos caracteres especiales del código ASCII. Los más importantes son:

\a
\b
\f
\n
\r
\t
\v
\\
\'
\"
\OOO
\xHHH

alerta
backspace
Suministro de Papel
cambio de línea
carácter de regreso
tabulación horizontal
tabulación vertical
barra inversa
comilla simple
comilla doble
visualiza un carácter cuyo código ASCII es OOO en octal.
visualiza un carácter cuyo código ASCII es HHH en hexadecimal.

Las funciones de entrada y salida y los formatos utilizados los explicaremos con más detalle en otro capítulo.

Mecanismos de Entrada

Los mecanismos de Entrada nos permiten interacción entre el mundo exterior (Usuarios) y el programa, así el programa puede recabar información necesaria para cumplir con su meta.

Ejemplo:
Un ejemplo sencillo sería que el programa nos pregunte nuestra edad:

1

2:
3:
4:
5:
6
7
8:
9:

#include <iostream>

using namespace std;
void main()
{
int edad;
cout<<" ¿Qué edad tienes? \n" ;
cin>>edad;
cout<<"Tienes "<<edad<<" años";
}


En este ejemplo estamos usando la función cin que pertenece a la librería iostream.h, cuya función es crear un flujo de entrada de datos. Puede leer enteros, cadenas, etc. En nuestro ejemplo en la línea 5 se declara una variable de tipo entero nombrada edad.

En la línea 6 se muestra el mensaje: ¿Qué edad tienes?.

En la línea 7 se espera recibir un flujo de entrada, es decir, que el usuario escriba un valor (en este caso su edad) y al presionar ENTER este valor se almacenará en la variable edad.

Finalmente en la línea 8 el programa muestra un mensaje: tienes x años. En donde x es la edad que se introdujo desde teclado.

 

Variables

Un programa necesita un medio de grabar los datos que usa. Las variables y Constantes ofrecen varias maneras para representar y manipular los datos.

Definición de variable

Una variable es un espacio para guardar información. Entrando más a detalle una variable es una ubicación en la memoria de la computadora en la cual se puede grabar un valor y por la cual se puede recuperar ese valor más tarde.

La memoria RAM de la computadora puede ser vista como una serie de pequeñas casillas, cada una de las casillas esta numerada secuencialmente, este número que se le asigna representa su dirección de memoria y su objetivo es identificarla.

Una variable reserva uno o más casillas en las cuales es posible grabar datos.

Los nombres de las variables (por ejemplo, myVariable) es una etiqueta en una sola casilla, para que se pueda encontrarla fácilmente sin saber su actual dirección de memoria.

RAM es la memoria de acceso aleatorio. Una programa cuando es ejecutado o esta corriendo, es grabado temporalmente en la memoria RAM. Todas las variables, son también, creadas en la memoria RAM. Cuando los programadores hablan de memoria, generalmente se están refiriendo a la memoria RAM.

Reservando Memoria

Se reserva memoria en el momento de definición de las variables, en este momento es donde se debe de especificar al compilador que clase de variable es: un entero (int), un caracter (char), etc. Esta información le dice al compilador cuanto de espacio debe separar o reservar, y que tipo de valor se va ha guardar en la variable.

Cada casilla de memoria tiene un byte de capacidad. Si el tipo de variable que se crea es de dos bytes te tamaño, este necesita de dos bytes de memoria, o de dos casillas. El tipo de variable (por ejemplo, entero) le dice al compilador cuanta memoria (o cuantas casillas) tiene que reservar para la variable.

Porque las computadores usan los bits y los bytes para representar los valores, y porque la memoria es medida en bytes, es importante entender y sentirse cómodo con este concepto.

Definir una Variable

Para crear una variable es preciso definirla.  En la definición de una variable se manifestando su tipo, seguida de uno o más espacios, luego se escribe el nombre de la variable y para finalizar punto y coma.

El nombre de la variable puede ser cualquier combinación de letras, claro que sin espacios. Nombres de variables aceptadas son: x, jap007, miedad.

Importante. Los nombre buenos de variables nos dice para que la variable es utilizada, usando buenos nombres se nos hace más fácil la compresión del programa. La siguiente sentencia define una variable entera llamada miedad.

int miedad;

Como practica general de programación, se debe evitar los nombres horroríficos como j23qrs o xxx y restringir los nombres de variables de una sola letra como x ó y, para valores que sean de uso rápido y no perduren en todo el programa. Se debe tratar de usar nombres extensos como miedad o contador. Algunos nombres son fáciles de entender tres semanas después en lugar de romperse la cabeza imaginándose que significan nombres cortos.

Inicializar una variable

Una vez definida una variable se debe proceder a darle un valor, es cierto que este valor puede cambiar a lo largo del programa, pero es bueno acostumbrarse a dar siempre un valor inicial a nuestras variables. Por ejemplo:

miedad = 0;
notaFinal = 0;

Asignación de un Valor

Se le puede asignar valores a una variable cuantas veces se quiera durante el programa, se le asigna un valor utilizando el operador de igualdad “=”.

Palabras Reservadas o Claves

Existen en todos los lenguajes nombres o palabras que ya están siendo usadas, y por eso se les da el nombre de palabras reservadas o claves.

Por ejemplo en el caso de C++ palabras reservadas son: int, if, const, main ...., etc. No podemos nombrar por ejemplo una variable definida por nosotros con ninguna palabra reservada porque el compilador encontraría un error.

Constantes

Las constantes son variables que contienen un valor que no cambia durante todo el programa. Una constante simbólica al igual que cualquier variable tiene un tipo y un nombre. Existen dos formas de declarar constantes en C++.

La primera es utilizando una instrucción, generalmente en la cabecera, que es como sigue:

#define Estudiantes 50

Es la forma tradicional de definir constantes, pero nótese que Estudiantes no tiene un tipo de dato. Lo que hace #define es simplemente sustituir 50 en todas las ocurrencias del programa donde aparezca Estudiantes.

La segunda forma es mucho más específica y mucho más útil y es así:

const int Estudiantes = 50;

Esta forma es mucho más ventajosa porque la constante Estudiantes tiene un tipo de dato lo que hace al código mucho más mantenible y lo previene de errores.

Expresiones

Una expresión es todo aquello que se evalúa y devuelve un valor. Existen varios tipos de expresiones de acuerdo lo que contienen.


Las expresiones aritméticas consisten de una secuencia de operadores y operandos que especifican una operación determinada. Los operandos pueden ser variables, constantes y los operadores aritméticos son (+ - * / %).
Es más sencillo pensar que una expresión aritmética es como una ecuación o una fórmula matemática.
Una expresión aritmética sencilla es:

area = base * altura ;

En la anterior línea de código, el resultado de la expresión base * altura se guarda en area.

Las expresiones lógicas también conocidas como expresiones booleanas. Están compuestas por operadores y operandos, los operadores en este caso son operadores relacionales y operadores lógicos.
Este tipo de expresiones es evaluado y devuelve un valor, la diferencia esta en que este valor sólo puede ser verdadero o falso.


Los operadores relacionales son(< > == <= >= ...).

Los operadores lógicos son (&& || & |).


Un ejemplo de expresiones lógicas es el siguiente:

if ( (nota > 70) && (nota < 90) )

En la anterior instrucción el segmento (nota > 70) && (nota < 90) devolverá 1 (verdadero) ó 0 (falso).