EVAP 4

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
  cout<<"\t\t\t     CICLOS TERMODINAMICOS\n\nSe dice que el ciclo termodinamico es cualquier proceso \
termodinamico en los queun sistema parte de una situacion inicial y despues de aplicar estos \
procesos\nvuelve al estado original. Cuando decimos procesos termodinamicos nos referimos a la \
variacion de las propiedades termodinamicas del sistema desde un estado\ninicial a un estado final.\
\nEstos son:\n_______________________\nº 1\tCICLO OTTO    º\nº 2\tCICLO DIESEL  º\nº 3\tCICLO BRAYTON \
º\nº 4\tCICLO CARNOT  º\nº 5\tCICLO RANKINE º \n_______________________\n";
  int opcion;
  cout<<"DIGITE EL NUMERO DEL TEMA: "; cin>>opcion; cout<<endl;
  switch(opcion)
  {
    case 1:
    {
      cout<<" CICLO OTTO\n\n Es el ciclo termodinamico ideal que se aplica en los motores de\
combustion\n interna. Se caracteriza porque todo el calor se aporta a volumen constante.\n El motor\
Otto es un motor alternativo, esto quiere decir de que se trata de un\n sistema piston-cilindro\
con valvulas de admision y escape.\n\n ADMISION\n El piston se desplaza desde el PMS hasta el PMI. \
La valvula de admision\n se encuentra abierta. El cilindro se llena con mezcla aire-combustible. \
Al\n final de la admision la valvula se cierra.\n\n COMPRESION\n Con las valvulas cerradas, el piston\
se desplaza desde el PMI al PMS. Se\n comprime la mezcla aire-combustible. En principio esta \
compresion es\n adiabatica. Cuando el piston llega al PMS, se enciende la chispa en la bujia y  se \
quema la mezcla en la camara de combustion aumentando la presion de 2 a 3.\n\n COMBUSTION\n \
Se produce la combustion de la mezcla, liberando una energia que provoca la\n expansion de los gases \
y el movimiento del piston hacia el PMI, el cual\n transmite este movimientoa la biela, y esta al \
ciguenal, desde el que se\n transmite el movimiento a las ruedas motrices mediante distintos \
sistemas, como puede ser el diferencial y las juntas homocineticas.\n\n ESCAPE\n Con la valvula de \
admision cerrada y la valvula de escape abierta, el piston se mueve hacia el PMS, expulsando los \
gases producidos durante la combustion y\n quedando preparado para empezar de nuevo el ciclo. \
En principio la presion\n dentro del cilindro es igual a la atmosferica, por lo cual el trabajo \
requerido es cero.\n________________________";
    }
    break;
    case 2:
    {
      cout<<" CICLO DIESEL\n\n El motor de combustion interna Diesel se diferencia del motor de ciclo\
 Otto de\n gasolina, por el uso de una mayor compresion del combustible para encenderlo, \n en vez de\
usar bujias de encendido. En el motor diesel, el aire se comprime\n adiabaticamente con una\
proporcion de compresion tipica entre 15 y 20.\n Esta compresion, eleva la temperatura al valor de\
encendido de la mezcla de\n combustible que se forma, inyectando gasoil una vez que el aire esta\
comprimido\n________________________";
    }
    break;
    case 3:
    {
      cout<<" CICLO BRAYTON\n\n El ciclo Brayton, tambien conocido como ciclo Joule o Froude, se\
compone de 4\n procesos internamente reversibles: compresion adiabatica (1-2)\
suministro de\n calor a presion constante (2-3), expansion adiabatica (3-4) y cesion de calor a\
 presion constante (4-1).\n\n ADMISION\n El aire frio y a presion atmosferica entrs por la boca de la turbina\n\n\
 COMPRESOR\n El aire es comprimido y dirigido hacia la camara de combustion mediante un\n compresor (movido por \
la turbina). Puesto que esta fase es muy rapida, se\n modela mediante una compresion adiabatica.\n\n\
 CAMARA DE COMBUSTION\n En la camara, el aire es calentado por la combustion del queroseno. Puesto que  la \
camara esta abierta el aire puede expandirse, por lo que el calentamiento se modela como un proceso isobarico\n\n \
TURBINA\n El aire caliente pasa por la turbina, a la cual mueve. En este paso el aire se  expande y se enfria \
rapidamente, lo que se describe mediante expansion\n adiabatica\n\n ESCAPE\n Por ultimo, el aire enfriado \
(pero a una temperatura mayor que la inicial) sale al exterior. Tecnicamente, este es un ciclo abierto ya que el \
aire que escapa\n no es el mismo que entra por la boca de la turbina, pero dado que si entra en\n la misma \
cantidad y a la misma presion, se hace la aproximacion de suponer una  recirculacion. En este modelo el \
aire de salida simplemente cede calor al\n ambiente y vuelve a entrar por la boca ya frio.\n________________________";    
    }
    break;
    case 4:
    {    
      cout<<" CICLO CARNOT\n\n Formulas\n W=n*R*(T1-T2)*Ln(Vb/Va)\n Qabs=n*R*T1*Ln(Vb/Va)\n";
      cout<<" N=W/Qabs\n Donde\n w\tTrabajo\n Qabs\tCalor Absorvido\n T\tTemperatura\n V\tVolumen\n";
      cout<<"________________________\n";
      float W,n,R,T1,T2,a,N,Va,Vb,Qabs;
      cout<<" Ingrese un valor a la variable n: ";cin>>n;
      cout<<" Ingrese un valor a la variable R: ";cin>>R;
      cout<<" Asigne un valor a la temperatura 1: "; cin>>T1;
      cout<<" Asigne un valor a la temperatura 2: "; cin>>T2;
      cout<<" Ingrese el volumen a "; cin>>Va;
      cout<<" Ingrese el volumen b "; cin>>Vb;
      a=(log(Vb/Va)/log(10));
      W=n*R*(T1-T2)*a;
      Qabs=n*R*T1*a;
      N=W/Qabs;
      cout<<"EL TRABAJO REALIZADO ES: "<<W<<endl; cout<<"EL CALOR ABSORVIDO ES: "<<Qabs<<endl;
      cout<<"EL RENDIMIENTO ES: "<<N<<endl;
    }
    break;
    case 5:
    {  
      cout<<" CICLO RANKINE\n\n FORMULAS:\n Qent=(h1-h4)*m:\n Qsal=(h2-h3)*m\n Wturb=(h1-h2)*m\n";
      cout<<"Wbomb=(h4-h3)*m\n N=(Wturb-Wbomb)/Qent\n Donde:\n Qent\t\tPOTENCIA TERMICA DE ENTRADA\n";
      cout<<"Qsal\t\tPOTENCIA TERMICA DE SALIDA\n Wturb\t\tPOTENCIA MECANICA DE LA TURBINA\n";
      cout<<"Wbomb\t\tPOTENCIA MECANICA DE LA BOMBA \n h1,h2,h3,h4\t\tENTALPIAS\n";
      cout<<"m\t\tCAUDAL MASICO\n_____________________\n";
      int m;
      float h1,h2,h3,h4,Wturb,Wbomb,Qent,Qsal,N;
      cout<<"INGRESE LA ENTALPIA 1\t";cin>>h1; cout<<"INGRESE LA ENTALPIA 2\t";cin>>h2;
      cout<<"INGRESE LA ENTALPIA 3\t";cin>>h3; cout<<"INGRESE LA ENTALPIA 4\t";cin>>h4;
      cout<<"INGRESE LA MASA ";cin>>m;  
      if (m!=0)  
      {
        Qent=(h1-h4)*m; Qsal=(h2-h3)*m; Wturb=(h1-h2)*m; Wbomb=(h4-h3)*m; N=(Wturb-Wbomb)/Qent;
        cout<<"LA POTENCIA TERMICA DE ENTRADA ES: "<<Qent<<endl;
        cout<<"LA POTENCIA TERMICA DE SALIDA ES: "<<Qsal<<endl;
        cout<<"LA POTENCIA MECANICA DE LA TURBINA ES: "<<Wturb<<endl;
        cout<<"LA POTENCIA MECANICA DE LA BOMBA ES: "<<Wbomb<<endl;
        cout<<"EL RENDIMIENTO TERMICO DEL CICLO ES: "<<N<<endl;
      }
      else
      {
        cout<<"Indeterminado INGRESE UN VALOR m<>0"<<endl;
      }
        cout<<"*****************************"<<endl;
      }
      break;
  }
  cout<<endl<<endl;
  system("pause");
  return 0;
}
https://drive.google.com/file/d/0B3RZqyBWldi1YkV4Ri1MMkJFX1k/view?usp=sharing

EVAP3-IIME-3

POTENCIA-RENDIMIENTOS-BALANCE TERMICO
La potencia desarrollada en el interior del cilindro (potencia indicada) no se transmite
íntegramente al eje motor de salida (potencia efectiva), si no que parte de esta potencia es
absorbida, o mejor dicho, perdida debido a los rozamientos de los diferentes órganos
mecánicos del motor; a esta potencia perdida es la denominada "potencia absorbida por las
resistencias pasivas".
Por tanto se cumple:
 Wi = We + Wroz
La potencia indicada se calcula si conocemos el ciclo indicado del motor.
La potencia absorbida por las resistencias pasivas se puede medir haciendo girar el motor sin
encendido mediante una fuente externa de potencia.
La potencia efectiva se puede medir colocando un freno especial en el eje de salida.
Potencia indicada
Es la potencia desarrollada por el fluido de trabajo en el interior del cilindro.
La potencia indicada es facilmente calculable, si conocemos la presión media indicada (pmi):
y está si conocemos el ciclo indicado.
Así, el trabajo indicado durante un ciclo termodinámico y en función pmi, nos viene dado
para un cilindro como:
 Wi = (∏*D^2)/4 *C* pmi
En donde :
D ->Diámetro del cilindro.
C->Carrera.
Como sabemos

(∏*D^2)/4 *C = V
es la cilindrada.
La total para un motor con "Z" cilindros es:
 Vtotal = Z.V
Por tanto el trabajo indicado, se puede expresar como:
 Wi = Z *V * pmi
La potencia la podemos calcular si introducimos la magnitud tiempo, a través de las r.p.m.
Para un motor de cuatro tiempos (1 ciclo termodinámico cada dos revoluciones), obtenemos,

Wi = Z *V * pmi * n/60 * 1/2 = Z * (∏*D^2)/4 *C * pmi * n/60 * 1/2
Para un motor de dos tiempos
 Wi = Z *V * pmi − n/60 = Z * (∏*D^2)/4 *C * pmi * n/60
Potencia efectiva o potencia al freno. Presión media efectiva.
La potencia efectiva, es la potencia disponible a la salida del eje motor, a diferencia de la
potencia indicada.
Es la potencia neta disponible de la máquina, también se le denomina potencia al freno, ya
que en general esta potencia se mide con un dispositivo colocado en el eje del motor y
denominado freno. Existen diversos tipos de frenos:
-Hidráulicos
-Eléctricos
-Aerodinámicos.
Todos ellos se basan en equilibrar mediante un momento de fuerzas externas medibles, el
momento en el eje producido por el motor.
Esta potencia medida mediante estos sistemas, la podemos poner en función de una
hipotética presión media efectiva (pme); para seguir en paralelismo con lo dicho con la
potencia media indicada.
Esta presión media efectiva corresponderá a la presión media que multiplicada por la
cilindrada el mismo trabajo útil efectivo, que el medido por los frenos.
 pme = We/[(∏*D^2)/4 * C]
Por tanto:
 We = (∏*D^2)/4 *C * pme
We = Z *V * n/60 * pme* 1/2 (4tiempos)
We = Z *V * n/60 pme (2tiempos)
La pme es un término muy útil para comparar los motores y establecer sus límites de
prestaciones.
Los valores usuales de ésta y la relación de compresión para diversos motores es:
              rcv    pme
 Normal 6.5 a 8 7.5 a 8.5

Motores a gasolina
 super 8.5 a 10.5  8.5 a 11
 motor
 normal 6 a 10.5  8 a 10
Motores Kerosene
 mot. Sobreali. 6 a 7.5 10 a 18
Motores a gas 6 a 7.5 10 a 18
Motores 4 T Diesel:
 -Inyección directa 14 a 19  6 a 10
 -Inyecc.Directa sobr. 14 a 19  9 a 12
 -Cámara turbulencia 15 a 22  6 a 9
 -Idem.Sobrec. 15 a 22  9 a 12
 -Precámara 15 a 22  6 a 12
Motores 2T Diesel:
 -Inyección directa 16 a 22  6.5 a 8.5
 -Precámara 20 a 22  5.5 a 7
Potencia absorbida por las resistencias pasivas.
Esta es la potencia perdida, es la diferencia entre la potencia indicada y la efectiva.
 Wp = Wi − We
Es la potencia que se utiliza para vencer:
a) Los rozamientos entre las partes mecánicas en movimiento.
b) La que se utiliza para el bombeo del fluido.
c) Y la utilizada para mover todos los sistemas que permiten el correcto funcionamiento del
motor(distribución, refrigeración, lubricación, etc.).
Existen dos procedimientos de medida:
-Se mide en un freno la potencia efectiva, y mediante el ciclo indicado se mide la potencia
indicada, serestan ambos valores y obtendremos la potencia absorbida por las resistencias
pasivas.
-El segundo método se basa en medir la potencia efectiva con un freno del tipo eléctrico,
después de medido se desconecta el encendido del motor y se arrastra con el freno eléctrico;
la potencia desarrollada por éste, es la potencia perdida por rozamientos.
Rendimientos.
Rendimiento termodinámico. 
Es la relación entre el trabajo del ciclo ideal y el calor aportado al mismo ciclo:
 ηt = Wideal/Q1 = Wnetoideal/Q1 = Wnetoideal/(Hu *mc)
Rendimiento indicado. 
Es la relación entre el trabajo del ciclo indicado y el trabajo del ciclo ideal.
 ηi = Wi/Wideal
Rendimiento mecánico. 
Es la relación entre el trabajo útil o efectivo medido en el eje de salida del motor y el trabajo
indicado.
 ηm = We/Wi
Rendimiento total o rendimiento efectivo. 
Es la relación entre el trabajo efectivo medido en el eje de salida del motor, y el calor
producico por el combustible consumido.
 ηe = ηtotal = We/Q1
Por lo tanto:
 ηtotal = Wideal/Q1 * Wi/Wideal * We/Wi = ηt * ηi*ηm
Curvas características.
Las curvas características son aquellas que para una determinada carga (fuerzas y momentos
que se oponen al momento realizado por el motor en el eje) y en función del número de
revoluciones del motor (velocidad), nos da una serie de parámetros característicos, como son:
a) Par motor
b) Potencia efectiva
c) Consumo específico del combustible
d) Presión media efectiva
e) Rendimiento volumétrico
Existen dos grandes familias de curvas:
- A plena carga
- A cargas parciales
Curvas a plena carga.
Las curvas características más representativas son, las del par motor, potencia efectiva y
consumo específico de combustible a plena carga.
En este caso, en el banco de pruebas se abre totalmente la válvula de mariposa, o se coloca al
máximo la inyección de combustible, y se ajusta la carga para la velocidad mínima, a dicha
velocidad se toman los datos necesarios, se ajusta de nuevo la carga en el freno para una
nueva velocidad y se repite el proceso hasta obtener las correspondientes curvas.
Curva de consumo específico.
sabemos que el rendimiento efectivo vale:
 ηe = We/Q1 = We/(mc * Hu)
Para obtener 1 unidad de trabajo We=1 el consumo, denominado específico vale:
 mc = 1/(Hu *ηe) = 1/(Hu *ηt * ηi *ηm)
Por tanto el consumo específico depende de como varía el ηi,ηm,y el ηt.
 Cm = 2 * C* n/60
El rendimiento indicado aumenta al aumentar la velocidad media del émbolo, debido a que
se reduce las pérdidas de calor y mejora la combustión por el aumento de la turbulencia, y
aumenta más rapidamente que la disminución del rendimiento mecánico en un principio, por
lo que el consumo específico disminuye hasta llegar a un mínimo, al aumentar más la
velocidad la pérdida de ηm se acentúa debido al fuerte aumento de las pérdidas mecánicas
cuando las velocidades del pistón son elevadas (Son proporcionales al cuadrado de la
velocidad del émbolo).
Curva de potencia efectiva.
Al aumentar el número de revoluciones, aumenta la potencia efectiva hasta un máximo, en
donde un aumento posterior del número de revoluciones ve disminuir la potencia, ya que
debido a la rapidez del ciclo no entra el suficiente combustible por ciclo, y netamente
decrece la potencia.(ηvolumétrico muy bajo;ηm muy bajo).
La curva de momento en el eje.
En un principio aumenta, ya que el ηi aumenta también, más rapidamente que las pérdidas
mecánicas; pero rapidamente estas incrementan con la velocidad, por lo que se llega a un
máximo, y rápidamente disminuye.
Curvas a carga parcial. 
Este tipo de curvas se toman para completar la información de funcionamiento del motor.
En general para distintas posiciones de abertura de mariposa ó de carrera de bomba de
inyección se toman los parámetros medidos en la prueba anterior, construyendose una serie
de gráficas.
Balance térmico.
Como hemos visto sólo una pequeña parte de la energía térmica del combustible quemado se
transforma en energía mecánica;el resto de la energía se reparte y dispersa en caminos
diferentes:
-El agua de refrigeración (20 a 25%).
-Los gases de escape (35%)
-Por radiación (20%)
Total perdidas 75 %
Resistencias pasivas se disipa mediante el aceite lubricante y la refrigeración y radiación.
https://drive.google.com/file/d/0B3RZqyBWldi1aFh2SmR3dngtTHc/view?usp=sharing

EVAP2-IIME-3

Librería signal

signal.h es un archivo de cabecera definido en la Blibioteca estándar de C para especificar como un programa maneja señales mientras se ejecuta. Una señal puede reportar un comportamiento excepcional en el programa (tales como la división por cero ), o una señal puede reportar algún evento asíncrono fuera del programa (como alguien está pulsando una tecla de atención interactiva en el teclado)
Una señal puede ser generada llamando a raise (para enviar una señal al proceso actual) o kill (para enviar una señal a cualquier proceso). Cada implementación define lo que genera las señales (en su caso) y en qué circunstancias las genera. Una implementación puede definir otras señales además de las que figuran en esta lista. La cabecera estándar <signal.h> pueden definir macros adicionales con nombres que empiezan con SIG para especificar los valores de señales adicionales. Todos los valores son expresiones constantes enteras >= 0.
Un manejador de la señal se puede especificar para todas las señales excepto dos (SIGKILL y SIGSTOP no puede ser atrapadas, bloqueadas o ignoradas). Un manejador de la señal es una función que el entorno de destino llama cuando se produce la señal correspondiente. El entorno de destino suspende la ejecución del programa hasta que vuelva la señal de controlador o llama a longjmp. Para una máxima portabilidad, un manejador de la señal asíncrona sólo debe:
  • hacer llamadas (que tienen éxito) a la señal de la función
  • asignar valores a los objetos de tipo volátiles sig_atomic_t
  • devolver el control a la función que la llamó
Si la señal informa de un error en el programa (y la señal no es asincrónica), el manejador de la señal puede terminala llamando a abortexit, o longjmp.
Funciones miembro
  • int raise(int sig). Envia una señal artificialmente.
  • psignal(int sig, const char *s), devuelve a stderr una cadena que representa un numero de señal. Esta en 4.3BSD, Solaris y Linux, pero no esta especificada por POSIX o SUS.
En los mismos sistemas, string.h contiene la función no estandar strsignal(int sig) que opera de la misma forma que strerror.
  • void* signal(int sig, void (*func)(int)), establece las medidas adoptadas cuando el programa recibe la señal sig. Si el valor de func es SIG_DFL, se usará el manejo por defecto para esa señal. Si el valor de func es SIG_IGN, la señal será ignorada. De lo contrario se apuntará a una función manejador de señal que se llamará cuando la señar se active.
Tipos miembro
typedef i-type sig_atomic_t
Macros miembro
  • SIG_DFL - Usado para seleccionar el manejo por defecto.
  • SIG_IGN - Usado para manejar una señal ignorándola.
  • SIG_ERR - Un numero usado para errores.
Constantes Miembro
ConstanteSignificado            Sistemas
SIGHUP             Hangup            POSIX
SIGINT            Interrupt            ANSI
SIGQUIT            Quit            POSIX
SIGILL            Illegal instruction            ANSI
SIGABRT            Abort            ANSI
SIGTRAP            Trace trap            POSIX
SIGIOT            IOT trap            4.2 BSD
SIGEMT            EMT trap            4.2 BSD
SIGINFO            Information            4.2 BSD
SIGFPE         Floating-point exception            ANSI
SIGKILL             Kill, unblock-able            POSIX
SIGBUS           Bus error            4.2 BSD
SIGSEGV      Segmentation violation            ANSI
SIGSYS  Bad argument to system call            4.2 BSD
SIGPIPE         Broken pipe            POSIX
SIGALRM          Alarm clock            POSIX
SIGTERM        Termination            ANSI
SIGUSR1       User-defined signal 1            POSIX
SIGUSR2       User-defined signal 2           POSIX
SIGCHILD      Child status has changed           POSIX
SIGCLD        Same as SIGCHLD           System V
SIGPWR      Power failure restart           System V
SIGXCPU      Exceeded CPU time           POSIX
SIGSTOP     Pause execution           POSIX
SIGCONT     Resume execution           POSIX

Librería assert

Únicamente define la macro de depuración assert.

Librería ctype

Contiene los prototipos de las funciones y macros de clasificación de caracteres.
Tabla de referencia rápida:
Función        Valores
isalnum         (A - Z o a - z) o (0 - 9)
isalpha          (A - Z o a - z)
isascii           0 - 127 (0x00-0x7F)
iscntrl           (0x7F o 0x00-0x1F)
isdigit            (0 - 9)
isgraph         Imprimibles menos ' '
islower         (a - z)
isprint          Imprimibles incluido ' '
ispunct         Signos de puntuación
isspace        espacio, tab, retorno de línea, cambio de
                   línea, tab vertical, salto de página (0x09
                   a 0x0D, 0x20).
isupper       (A-Z)
isxdigit        (0 to 9, A to F, a to f)
Funciones
tolower                 toupper
Macros
isalnum                  isalpha                      isascii                  iscntrl
isdigit                    isgraph                      islower                isprint
ispunct                  isspace                      isupper               isxdigit
toascii

Librería errno

Define constantes para los códigos de error, puedes consultarlos editando el fichero
errno.h.
Macros
errno

Librería float

Contiene parámetros de entorno, información sobre limitaciones y rangos para tipos
reales.
Nota: Algunas macros serán definidas de igual o mayor en magnitud (valor absoluto) a
los valores indicados, a excepción de la macro FLT_ROUNDS.
Macros
DBL_DIG                       DBL_EPSILON                 DBL_MANT_DIG                 DBL_MAX
DBL_MAX_10_EXP     DBL_MAX_EXP                DBL_MIN                             DBL_MIN_10_EXP
DBL_MIN_EXP            FLT_DIG                            FLT_EPSILON                      FLT_MANT_DIG
FLT_MAX                     FLT_MAX_10_EXP           FLT_MAX_EXP                   FLT_MIN
FLT_MIN_10_EXP       FLT_MIN_EXP                  FLT_RADIX                          FLT_ROUNDS
LDBL_DIG                    LDBL_EPSILON                LDBL_MANT_DIG              LDBL_MAX
LDBL_MAX_10_EXP  LDBL_MAX_EXP              LDBL_MIN                           LDBL_MIN_10_EXP
LDBL_MIN_EXP


EVAP1-IIME-3

OBJETIVO

Estudiar termodinámica, comprender la primera ley de la termodinámica

ALCANCE

Este es un trabajo de investigación puesto que se está investigando la primera ley de la termodinámica. Se desarrolló a raíz del interés que se tiene a dicho tema.

JUSTIFICACIÓN

Aplicar la primera ley de la termodinámica en la solución de problemas.

MARCO TEÓRICO

El primer principio de la termodinámica o primera ley de la termodinámica, es "La energía no se crea ni se destruye, solo se transforma"
Este enunciado supone formalmente definido el concepto de trabajo termodinámico, y sabido que los sistemas termodinámicos sólo pueden interaccionar de tres formas diferentes (interacción másica, interacción mecánica e interacción térmica). En general, el trabajo es una magnitud física que no es una variable de estado del sistema, dado que depende del proceso seguido por dicho sistema. Este hecho experimental, por el contrario, muestra que para los sistemas cerrados adiabáticos, el trabajo no va a depender del proceso, sino tan solo de los estados inicial y final. En consecuencia, podrá ser identificado con la variación de una nueva variable de estado de dichos sistemas, definida como energía interna.
Se define entonces la energía interna, U, como una variable de estado cuya variación en un proceso adiabático es el trabajo intercambiado por el sistema con su entorno:
 \Delta U = Q + \ W
Cuando el sistema cerrado evoluciona del estado inicial A al estado final B pero por un proceso no adiabático, la variación de la Energía debe ser la misma, sin embargo, ahora, el trabajo intercambiado será diferente del trabajo adiabático anterior. La diferencia entre ambos trabajos debe haberse realizado por medio de interacción térmica. Se define entonces la cantidad de energía térmica intercambiada Q (calor) como:
Q = \Delta U + W\,
Siendo U la energía interna, Q el calor y W el trabajo.Por convenio, Q es positivo si va del ambiente al sistema, o negativo si lo ha perdido el sistema y W, es positivo si lo realiza el ambiente contra el sistema y negativo si está realizado por el sistema.
Esta definición suele identificarse con la ley de la conservación de la energía y, a su vez, identifica el calor como una transferencia de energía. Es por ello que la ley de la conservación de la energía se utilice, fundamentalmente por simplicidad, como uno de los enunciados de la primera ley de la termodinámica.

PROCESO

La forma de transferencia de energía común para todas las ramas de la física y ampliamente estudiada por estas es el trabajo.Dependiendo de la delimitación de los sistemas a estudiar y del enfoque considerado, el trabajo puede ser caracterizado como mecánico, eléctrico, etc. pero su característica principal es el hecho de transmitir energía y que, en general, la cantidad de energía transferida no depende solamente de los estados iniciales y finales, sino también de la forma concreta en la que se lleven a cabo los procesos.
El calor es la forma de transferencia de un tipo de energía particular, propiamente termodinámica, que es debida únicamente a que los sistemas se encuentren a distintas temperaturas (es algo común en la termodinámica catalogar el trabajo como toda trasferencia de energía que no sea en forma de calor). Los hechos experimentales corroboran que este tipo de transferencia también depende del proceso y no sólo de los estados inicial y final.
Sin embargo, lo que los experimentos sí demuestran es que dado cualquier proceso de cualquier tipo que lleve a un sistema termodinámico de un estado A a otro B, la suma de la energía transferida en forma de trabajo y la energía transferida en forma de calor siempre es la misma y se invierte en aumentar la energía interna del sistema. Es decir, que la variación de energía interna del sistema es independiente del proceso que haya sufrido. En forma de ecuación y teniendo en cuenta el criterio de signos termodinámicos esta ley queda de la forma:
 \Delta U= \ Q + \ W\,
Así, la Primera Ley (o Primer Principio) de la termodinámica relaciona magnitudes de proceso (dependientes de este) como son el trabajo y el calor, con una variable de estado (independiente del proceso) tal como lo es la energía interna.
Sistemas cerrados
Un sistema cerrado es uno que no tiene intercambio de masa con el resto del universo termodinámico. También es conocido como masa de control. El sistema cerrado puede tener interacciones de trabajo y calor con sus alrededores, así como puede realizar trabajo a través de su frontera. La ecuación general para un sistema cerrado (despreciando energía cinética y potencial y teniendo en cuenta el criterio de signos termodinámico) es:
\Delta U = Q + W\,
donde Q es la cantidad total de transferencia de calor hacia o desde el sistema, W es el trabajo total e incluye trabajo eléctrico, mecánico y de frontera; y U es la energía interna del sistema.
Sistemas abiertos
Un sistema abierto es aquel que tiene entrada y/o salida de masa, así como interacciones de trabajo y calor con sus alrededores, también puede realizar trabajo de frontera.
La ecuación general para un sistema abierto en un intervalo de tiempo es:
Q + W + \sum_{in} m_{in} (h + \frac1 2 V^{2} + gz)_{in}-\sum_{out} m_{out} (h + \frac1 2 V^{2} + gz)_{out} = \Delta U_{sistema}
O igualmente;
Q + W + \sum_{in} m_{in} \theta_{in}-\sum_{out} m_{out} \theta_{out} = \Delta U_{sistema},
donde;
in representa todas las entradas de masa al sistema.
out representa todas las salidas de masa desde el sistema.
\theta es la energía por unidad de masa del flujo y comprende la entalpía, energía potencial y cinética: \theta = h + \frac1 2 V^{2} + gz
La energía del sistema es:
E_{sistema} = U + \frac1 2 m V^{2} + mgz
La variación de energía del sistema en el intervalo de tiempo considerado (entre t0 y t) es:
\Delta E_{sistema} = \int_{t_0}^t \frac{dE}{dt}dt
Sistemas abiertos en estado estacionario
El balance de energía se simplifica considerablemente para sistemas en estado estacionario (también conocido como estado estable). En estado estacionario se tiene \Delta E_{sistema} = 0, por lo que el balance de energía queda:
Q - W + \sum_{in} m_{in} (h + \frac1 2 V^{2} + gz)_{in}-\sum_{out} m_{out} (h + \frac1 2 V^{2} + gz)_{out} = 0
Sistema aislado
Es aquel sistema en el cual no hay intercambio ni de masa ni de energía con el exterior.

C++

https://drive.google.com/file/d/0B3RZqyBWldi1U0Vmc1hDaVlubTQ/edit?usp=sharing
https://drive.google.com/file/d/0B3RZqyBWldi1Z01NLW1waUVIeW8/edit?usp=sharing