Programación en C++

Parte I. Definiciones
  • Lenguaje de Programación - "Es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas". Medio por el cual el programador específica una acción que se ejecutará en la máquina. Provee un conjunto de conceptos que el programador puede utilizar para cuando piensas acerca de lo que se puede realizar.
  • Algoritmo - es un conjunto finito de instrucciones que tiene las siguientes características:
    • precisión - los pasos se inician precisamente
    • unicidad (único) - los resultados intermedios de cada paso de la ejecución son únicamente definido y dependen únicamente de la entrada y los resultados de la etapa precedente
    • finitud (existencia de un limite) - el algoritmo se detiene después que un número finito de instrucciones se han ejecutado
    • Input (entrada) - el algoritmo recibe entrada
    • Output (salida) - el algoritmo recibe output
    • generalidad - el algoritmo se aplica a un conjunto de inputs.
  • Lenguaje de Ensamblador (Assembly Language) - remplaza las instrucciones de cadenas de bits por instrucciones simbólicas utilizando texto ordinario

assembly.jpg




Algunos Lenguajes de Programación


Prog-languages.png


prog lang.jpg



Parte II. Un poco de historia
C fue creado en 1970 por Dennis Ritchie un programador de AT&T y Bell. Es un lenguaje de programación de alto nivel. Al reescribir el sistema operativo UNIX en C, el sistema operativo se pudo instalar en diferentes plataformas. C le permitía al programador acceder el hardware tanto como se hace en el lenguaje de Assembly. Ese logro distinguió C como un lenguaje único. También se podía escribir programas portátil.. Windows 3.x fue escrito en C y la mayor parte de Windows 98 y Windows NT está escrita en C.

C++ fue creado en el 1980 por Bjarne Stroustrup en los laboratorios de AT&T y Bell. Hay diferentes compiladores tanto para C (C89/90, C99 y C11) como C++ (C++ 98, C++ 03, C++ TR1 y C++ 11). Un programa en C++ consiste de gran número de elementos: variables, funciones, clases, etc. Cada uno de ellos tiene un nombre el cual se conoce como identificador.



C++
Todos los programas de C++ comienzan su ejecución en la función llamada main( ) y termina cuando la función main( ) retorna. La función main( ) invoca funciones de bajo nivel. Toda declaración, función y variable debe ser escrita antes de ser utilizada. Una función puede tener parámetros. El que invoca la función pasa los argumentos que la función utiliza como valores para sus parámetros. Los argumentos deben ser compatibles (mismo tipo de data). No todas las funciones devuelven valores. Una función consiste de uno o más bloques de declaraciones.

Parte III. Categorías de una declaración:
  • declaración - declara una variable o función
  • definición - define una instancia de una variable y función
  • procedimiento - código ejecutable que reside dentro de la definición de una función
Ambiente de desarrollo de un programa en C++
Fase I. Crear un programa - consiste en editar un archivo con un editor. Se escribe el código fuente guardando y haciendo las correcciones
Función de main( )

funcion de main.JPG
Una función concluye su ejecución cuando su última línea termina o retorna un valor. El sistema operativo llama al main y el main retorma un valor al sistema operativo.



Parte IV. Variables
memoria.png

El valor de una variable se almacena en la memoria de la computadora. La memoria RAM al ser volátil una vez que la computadora se apague, la memoria se limpia y todo lo que estaba en memoria desaparece. Hay diferentes tipos de data que se pueden almacenar en la memoria: números enteros, números con decimales, boolean, caracteres, punteros, etc. A continuación estaré mencionando algunos tipos de data con los que estaremos trabajando.
  • char - almacena solo un byte (8 bits) equivalente a un carácter (ver código ASCII). Dentro de esta categoría existen otras variable que no serán discutidas en este momento.
  • int - almacena números enteros positivos y negativos (que no tienen decimales). Dentro de esta categoria estan: short que son 16 bits, int que es mas grande que short, long son al menos 32bits y long long que son al menos 64bits
  • float - números con decimales
  • double - números con decimales
  • bool - números boolean (0 y 1)
  • void - no almacena nada (vacío)
8-bit = 2^8
16-bit = 2^16
32-bit = 2^33
64-bit = 2^64
Existen otros tipos de variables pero no se discuten en detalle.
Declaración de variables
Las variable se pueden declarar en la misma línea si son del mismo tipo de data:
int a, b, c;
también se puedes declarar las variables cada una en una línea diferente:
int a;
int b;
int c;
Puedes asignarle un valor cuando
estés declarando la variable:
int a = 5;
Para guardar una cadena de caracteres puedes crear un array de char o utilizar el tipo de variable string. Para utilizar string debes utilizar la
librería <string>:

#include <iostream>
#include <string>


using namespace std;

int main ()
{
string name;
cout << "type your name: " ;
cin >> name;
cout << "Welcome " << name << "how are you?"
getchar();
getchar(); por si el command prompt se cierra
}



escape secuence.JPG



calc 2.JPG


Declaraciones If

if statement 1.png
Evalúa si la condición se cumple, de no cumplirse continua el código.
Ejemplo:
ejemplo if 1-1.png


if else.png
Evalúa si la condición se cumple, de no cumplirse ejecuta el código que se encuentra en el else.
Ejemplo: ejemplo if else.png


sintaxis if else if.png
Evalúa si alguna de las condiciones se cumple, de no cumplirse alguna de ellas ejecuta lo que haya en el else.
Ejemplo:
ejemplo if else if 2.JPG

nested if.png
If anidado (If dentro de otro if) Evalúa la condición del primer If, de cumplirse la condición, evaluará el

próximo if. Si la condición no se cumple ejecuta el código que está dentro del else. Si el primer if no es

cierto ejecutará el código que se encuentra en el else.

Ejemplo:


Tablas de Verdad - es una tabla matemática utilizada en lógica

Proposiciones - afirmación natural. Enunciado susceptible a ser cierto o falso.
Conectivos - AND (conjunción ^) OR (disyunción v) NOT (negación ¬)
Las funciones nos dice cuando una proposición es falsa o verdadera


tablas de verdad.png

operadores.png



Ejemplos:


variables.png
variables.png

  1. x == w - y AND y ≠ w - x
  2. x == w - y OR y ≠ w - x
  3. NOT(w == y + x) AND NOT(NOT(y < z))
  4. x ≥ y AND x ≤ w
  5. x ≥ y OR x ≤ w

x == w - y AND y ≠ w - x2 == 7 - 5 AND 5 ≠ 7 - 22 == 2 AND 5 ≠ 5T AND FF

x == w - y OR y ≠ w - x2 == 7 - 5 OR 5 ≠ 7 - 22 == 2 OR 5 ≠ 5T OR FT

NOT(w == y + x) AND NOT(NOT(y < z))NOT(7 == 5 + 2) AND NOT(NOT(5 < 8))NOT(7 == 7) AND NOT(NOT( T )NOT( T ) AND NOT( F )F AND TF


x ≥ y AND x ≤ w2 ≥ 5 AND 2 ≤ 7F AND TF

x ≥ y OR x ≤ w2 ≥ 5 OR 2 ≤ 7F OR T

T

Switch . . .case Statement - es parecido al elseif, hace la misma función.

switch.JPG
El switch es parecido al if aunque a veces no se puede cambiar un if a un case. En otros lenguajes el switch o case tiene más opciones.

Programa de conversión de temperatura

1.JPG

La función de <iostream> es para el flujo de data, se utiliza el cout y cin.
  • cout (console output) - el programa se comunica con el usuario (sale un mensaje en la pantalla)
  • cin (console input) - el usuario se comunica con el programa (el usuario entra data)
stdlib.h es una librería de C para gestión dinámica. En el caso del programa la utilizamos para ejecutar un comando externo system("pause"), para que la consola no se cierre al terminar la ejecución. En algunos compiladores no es necesario pero en Visual Studio 2012 debes utilizarlo para que no se cierre la pantalla de la consola. También puedes utilizar el getchar( ).

2.JPG
Comienzo con la función de main y declaro las variables que voy a estar utilizando
  • unsigned short answer - esta variable se está declarando "unsigned" para que no tenga números negativos, solo números positivos y "short" que es un entero pequeño.
  • float fah, cel, kelvin - estas tres variables son de tipo decimal y almacenarán los valores de la data que entre el usuario o los cálculos matemáticos que se ejecuten.
3.JPG

Comenzamos con un do...while. El do...while nos permite correr un bloque de código x veces. Según el menú el código correrá hasta que el usuario entre un 0 (cero). Hay diferentes formas de hacer una iteración como: la sentencia del while; corre hasta que se cumple la condición, do...while; se ejecuta una vez y luego evalúa la condición si no se cumple continua la iteración, el for-loop; parecido al los demás.Sintaxis del do...while do { iteración
(variable de control si aplica) está variable puede incrementar o disminuir dependiendo como se use.
expresiones
} while (condición);
4.JPG

El case evalúa la respuesta del usuario y dependiendo de esa respuesta será el código que ejecute. En este programa tenemos 5 posibles respuestas del usuario y default que de no cumplirse ninguna de las anteriores ejecuta el código que este dentro. El usuario entra un 6, no hay respuesta para un 6 así que ejecuta el código que se encuentra en default. Colocamos el system("pause") para una vez que termine la ejecución no se cierre la pantalla de la consola hasta que el usuario presione la tecla de "Enter"
Iteración (loop)