Programación+en+C+(cpp)


 * 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






 * Algunos Lenguajes de Programación **





**//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.
 * Parte II. Un poco de historia **

**//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.

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.
 * C++ **

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
 * 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

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 **

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. **8-bit** = 2^8 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 :
 * //** 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)
 * 16-bit** = 2^16
 * 32-bit** = 2^33
 * 64-bit** = 2^64


 * 1) include
 * 2) include

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// //}//





//** Declaraciones If **//

// Evalúa si la condición se cumple, de no cumplirse continua el código. // // Ejemplo: //

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

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

**//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






 * Ejemplos ** :




 * 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 - x 2 == 7 - 5 AND 5 ≠ 7 - 2 2 == 2 AND 5 ≠ 5 T AND F F

x == w - y OR y ≠ w - x 2 == 7 - 5 OR 5 ≠ 7 - 2 2 == 2 OR 5 ≠ 5 T OR F T

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 T F

x ≥ y AND x ≤ w 2 ≥ 5 AND 2 ≤ 7 F AND T F

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

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

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



La función de **// //** 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.

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.

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); 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)