lunes, 10 de diciembre de 2007

4. Introducción a la programación.

INSTITUTO TECNOLÓGICO DE TUXTLA GUTIÉRREZ





Fundamentos de Programación




Catedrática:

Alicia González Laguna


Presentan:

Jorge Emilio del Carpio Hernández
Nestor Cuauhtemoc Entzín Gómez
Francisco Javier Abraham Herrera




Ingeniería en Sistemas Computacionales




Primer Semestre Turno Matutino





Tuxtla Gutiérrez, Chiapas; a 10 de diciembre de 2007.

4.1 Clasificación del software.

Aademás de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele con llevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido.


El software es la parte logica de computadora, que permite el manejo de los recursos y la realizacion de tareas especificas, tambien denominados programas. Se clasifica en 2 partes:

1. SOFTWARE DE SISTEMAS
2. SOFWARE DE APLICACION

1. SOFTWARE DE SISTEMAS: Son aquellos programas que permiten la administracion de la parte fisica o los recursos de la computadora, es la que interactua entre el usuario y los componentes hardware del ordenador. Se clasifican el Sistemas Operativos Monousuarios y Multiusuarios.

2.SOFTWARE DE APLICACION:Son aquellos programas que nos ayudan a tareas especificas como edicion de textos, imagenes, calculos, etc. tambien conocidos como aplicaciones.

Software de Uso General

El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario ( manuales de referencia, plantillas de teclado y demás ).

Software de aplicaciones

El software de aplicación esta diseñado y escrito para realizar tareas específicas personales, empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Todas éstas aplicacion es procesan datos (recepción de materiales) y generan información (registros de nómina). para el usuario.

Software de Aplicación, programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema específico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de cálculo y de base de datos.

4.1.1 Software del sistema.

Es un conjunto de programas que verifica que los programas se ejecuten correctamente, y administra los recursos materiales internos de la computadora.

Estos programas deben detener las siguientes características:

Eficientes, para no desperdiciar el tiempo útil de un proceso. Confiables, porque una falla crearía grandes problemas en el control de los procesos. Versátiles, para que permitan la corrección de posibles errores durante el proceso. Pequeños, para que ocupen poco estacional mora y sean poco propensos a los errores.

Este tipo de programas realizan las siguientes tareas:

Facilitan el trabajo de quienes utilizan la computadora. Administra los dispositivos periféricos del sistema informático. Mantienen el sistema archivos en los dispositivos de memoria. Apoyan a otros programas. Proteger los datos y los programas. Controlan el uso de los recursos utilizados por los distintos usuarios.

4.1.2 Software de aplicación.


Éste tipo de software son los que utilizamos en la casa escuela u oficina. Son las aplicaciones que todo usuario debe conocer. Entre los más comunes software’s de aplicación encontramos los procesadores de texto; como lo son Word, Word Pro y Word Perfect.


Software de Aplicación, programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema específico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de cálculo y de base de datos


domingo, 9 de diciembre de 2007

4.2 Conceptos de la programación.

Programación: es automatizar y definir una serie de procesos para resolver un problema y obtener un resultado final. Un programa es el conjunto de instrucciones que se le dan al ordenador para resolver un problema o tarea determinada. Consiste en proporcionar a un equipo un conjunto de instrucciones (o sentencias) que deben ser ejecutadas en orden, y que proporcionan una salida. Preparacion de los datos previos indispensables para obtener la solucion de un problema mediante las instrucciones codificadas de un ordenador. Lenguaje de Programacion Se utilizan para indicar al ordenador las acciones que ha de realizar para resolver un determinado problema. Basicamente los lenguajes de programacion se componen de ordenes (en adelante llamadas instrucciones) que es lo que en si mismo le dice al ordenador lo que tiene que hacer. Un conjunto de esas instrucciones forman el programa.

4.2.1 Definición de programa.

Un programa es un conjunto de instrucciones u ordenes basadas en un lenguaje de programacion que una computadora interpreta para resolver un problema o una funcion especifica. 1.- Es la relacion ordenada de actividades, en informatica se le conoce como la serie codificada de instrucciones. 3. Redaccion de un algoritmo en un lenguaje de programacion. 4. Conjunto de instrucciones ordenadas correctamente que permiten realizar una tarea o trabajo específico. 5. Toda secuencia de instrucciones o indicaciones destinadas a ser utilizadas, directa o indirectamente, en un sistema informático para realizar una función o una terea o para obtener un resultado determinado, cualquiera que fuere su forma de expresión y fijación. 6. Conjunto secuenciado de instrucciones que quedan escritas en un lenguaje determinado con unos fines específicos. Aunque en el lenguaje común con frecuencia se denomina programa al sistema operativo, la diferencia estriba, precisamente, en la especificidad de aquél frente al carácter de gestión global de éste. La palabra software engloba ambos.


4.2.2 Definición de programación.

Se conoce como programación de computadoras a la implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa. Mientras que un algoritmo se ejecuta en una máquina abstracta que no tiene limitaciones de memoria o tiempo, un programa se ejecuta en una máquina real, que sí tiene esas limitaciones. El lenguaje de programación puede ser de alto nivel o bajo nivel, en función del grado de abstracción.


4.2.3 Definición de lenguaje de programación.

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas web).
Un lenguaje de programación permite a uno o más programadores especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Lexico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.



4.3.1 Definición.

Un dato puede definirse como la unidad minima de informacion o bit, puede ser un caracter una palabra, etc.

Tipo Sintaxis/Ambito Ejemplos/Declaración Tipos de Datos Entero Base decimal [ej. 1234] Base octal [ej. 01234] Base hexadecimal [ej. 0xF10] byte [−128 a 127] short [−32768 a 32767] int [−2147483648 a 2147483647] long [−9223372036854775808 a 9223372036854775807] int variable; byte variable; short variable; long variable; int i1,i2; Coma Flotante float [32 bits, precisión simple; 3,4E-38 a 3,4E38] double [64 bits, precisión doble; 1,7E-308 a 1,7E308] float fvar=3,1416; fvar=6.5E-5; double dvar=3.1416d; dvar=6.5E-5d; Booleano true [valor cierto] false [valor falso] Boolean llave=false; llave=true; Carácter char [carácter alfanumérico] char letra=’a’; letra=’b’; Cadena String [Matriz de caracteres; realmente se trata de una clase, que encapsula las operaciones de gestión de caracteres] String s; s=new String(); // declaración conjunta String s=new String(); // con inicialización String s=“cadena”; // forma alternativa String s; s=“cadena”; Matrices array [puede ser de varias dimensiones] char c[]; // forma alternativa char[] c; // declarar amplitud c=new char[10]; // declaración conjunta char c[]=new char[10]; // multidimensional int i[][]; // declarar amplitud i=new int[10][15]; // declaración conjunta int i[][]=new int[10][15] Caracteres Especiales \ [continúa en la línea siguiente] \n [nueva línea] \t [tabulador horizontal] \b [retroceso] \r [retorno de carro] \f [salto de página] \\ [carácter \] \’ [comilla simple] \” [comilla doble] \udddd [carácter unicode]


4.3.2 Tipos de datos.

Simples:

Son todos aquellos que abarcan una sola casilla de memoria como los boleanos, enteros, flotantes, etc.

Estructurales:

Arreglos de cadenas, pilas o estructuras, abarcan mas de una casilla de memoria.

TABLA COMUN DE TIPOS DE DATOS


















TIPORANGOBYTES
E N T E R O S
Entero−32,768 a 32,7672
Entero sin signo0 a 65,5352
Corto−32,768 a 32,7672
Corto sin signo0 a 65,5352
Largo entero−2,147,483,648 a 2,147,483,2954
Largo sin signo0 a 4,294,967,2954
C A R A C T E R
Caracter−128 a 1271
Caracter sin signo0 a 2551
DE PUNTO FLOTANTE
Flotante3.4−38 a 3.4384
Doble1.7−308 a 1.73088
Largo doble3.4−4932 a 3.44932 10


Primitivos:

No tienen “descomposición”, están predefinidos en el lenguaje.

Tipos compuestos:

Aparte de los anteriores, C++ soporta tipos compuestos (también denominados tipos-clase). Son compuestos o agregados de tipos básicos, por esta razón se les denomina también tipos agregados o abstractos ADTs (“Abstract data types”). El “material” de que están compuestos son los tipos básicos, bien en estado “puro” o en sus diversas “adaptaciones”. El proceso es recursivo, de forma que un tipo complejo puede contener miembros que son a su vez tipos complejos y así sucesivamente.

Desde el punto de vista semántico la gramática C++ establece como tipos compuestos (“Compound types”) los siguientes:

Arreglos.

Matrices de objetos de cualquier tipo.

Funciones, que aceptan parámetros de ciertos tipos y devuelven void u objetos (o referencias a objetos) de cierto tipo.

Punteros a-void; punteros a-objetos, o punteros a-función (incluyendo miembros estáticos de clases) de un tipo determinado.

Punteros a miembros no-estáticos de clases (que señalan miembros de un tipo determinado dentro de objetos de una clase determinada).

Referencias a objetos o funciones de un tipo determinado.

Clases.

Uniones.

Tambien existen tipos de datos definidos por el usuario que varian sus sintaxis segun el lenguaje de programación.

4.3.3 Identificadores.

Es el nombre utilizado para referenciar variables, constantes, tipos, funciones y otros objetos definidos por el usuraio.

Un identificador puede tener uno o mas caracteres (letras, digitos y caracter de subrayado), siendo significativos los primeros 32.

El primer caracter debe ser una letra o un simbolo de _.

Se consideran caracteres distintos las mayusculas y las minusculas.

Se recomienda poner identificadores representativos.

Cuando un identificador se asocia a una entidad concreta entonces es el “nombre” de dicha entidad, y en adelante la representa en el programa. Por supuesto puede ocurrir que varios identificadores se refieran a una misma entidad (polimorfismo).

Sintaxis general: tipo nombre_identificador;

Ejemplo: objeto x;

4.3.4 Almacenamiento Direccionamiento y Representacion en Memoria

Supongamos que la memoria utilizada tiene un tamaño de 4 Gigabytes y por tanto sus direcciones se representan con 32 bits. Las direcciones de memoria son números naturales en el rango [0, 232 - 1]. Pero este número natural es susceptible de ser almacenado él mismo en memoria. Es decir, se puede almacenar la representación binaria de una dirección de memoria en la propia memoria. Al tener un tamaño de 32 bits o 4 bytes, se utilizan para ello cuatro posiciones de memoria consecutivas.

Una dirección de memoria, por tanto, se puede considerar de dos formas posibles: o como una dirección de una celda de memoria, o como un número natural susceptible de ser manipulado como tal. Supóngase que en la posición de memoria 0×00000100 se encuentra almacenado el número entero de 32 bits 0×0153F2AB y que en la posición 0×00000200 se debe almacenar la dirección de dicho número. Para ello se almacena, a partir de la posición 0×00000200 el número 0×00000100 utilizando los cuatro bytes a partir de esa posición y se hace en orden creciente de significación al utilizar el esquema little endian.

Tras almacenar la dirección de memoria de un dato en la posición 0×00000200, ¿es posible obtener de nuevo el número 0×0153F2AB? La respuesta es afirmativa, pero no de forma inmediata, se debe obtener de memoria primero los cuatro bytes almacenados en la posición 0×00000200 y utilizarlos como una dirección de memoria de donde obtener los cuatro bytes contenidos en la posición 0×00000100. El acceso a este último dato se ha realizado de forma indirecta, es decir, mediante un acceso previo a memoria para obtener la dirección del dato final. Utilizando la notación funcional de operaciones sobre memoria, el acceso al dato se logra ejecutando Lectura(Lectura(0×00000200)).



4.3.5 Sistema de numeración binaria y hexadecimal.

El sistema binario es el que usan los ordenadores, que es como si sólo tuvieran un dedo, su unidad básica de memoria, el bit, sólo puede tomar dos valores, inactivo o activo, y se codifican como 0 y 1, respectivamente. Los ordenadores se quedan sin dedos enseguida, en cuanto tienen que contar más de uno, así que añaden más dígitos. Por ejemplo, veamos el número binario 10110. Estamos en base 2, así que el número se calcula así: 0 * 2^0 + 1 * 2^1 + 1 * 2^2 + 0 * 2^3 + 1 * 2^4 = 2 + 4 + 16 = 22 (decimal) Este tipo de numeración resulta muy útil cuando cada bit puede significar cosas diferentes para un ordenador. El sistema hexadecimal, que es el rey de los sistemas de numeración, al menos en lo que respecta a los ordenadores. Usa 16 dígitos, los archiconocidos 0 a 9 y para los otros seis se usan las letras A, B, C, D, E y F, que tienen valores 10, 11, 12, 13, 14 y 15, respectivamente. Se usan indistintamente mayúsculas y minúsculas. Por ejemplo, un número hexadecimal 4F3D: 13 * 16^0 + 3 * 16^1 + 15 * 16^2 + 4 * 16^3 = 13 + 3 * 16+ 15 * 256 + 4 * 4096 = 20285 Este sistema de numeración tiene muchas ventajas: • La conversión entre binario y hexadecimal es tan simple como en octal, la única diferencia es que los bits se agrupan de cuatro en cuatro. 0000 es 0, 0001 es 1, 0010 es 2 … 1111 es F. • El byte, es la unidad de memoria más usada por los ordenadores y agrupa ocho bits. Para codificar un número de 8 bits sólo se necesitan dos dígitos hexadecimales. El mayor número expresable por un byte, 11111111(binario), equivale a 255(decimal) y a FF(hexadecimal). • Y para palabras de dos bytes (16 bits), se usan sólo cuatro dígitos hexadecimales. (El número 16 aparece mucho cuando se habla de ordenadores.) • Para 32 bits: 8 dígitos hexadecimales, y sucesivamente. Con la práctica podrás hacer conversiones de hexadecimal a binario de memoria: 3E equivale a 00111110


4.4 Operadores, operandos y expresiones.

OPERADORES: ES EL SÍMBOLO QUE ASIGNA YA SEA UNA OPERACIÓN O UNA RELACIÓN ENTRE LOS OPERANDOS, DE LOS CUALES HABLAREMOS MAS TARDE, LOS OPERANDOS SE CLASIFICAN EN 3 GRUPOS DISTINTOS:

A) ARITMÉTICOS
B) RELACIONES
C) LÓGIOS
OPERADORES ARITMÉTICOS

COMO SU NOMBRE LO INDICA SON AQUELLOS QUE REALIZAN OPERACIONES O CÁLCULOS ARITMÉTICOS, LOS CUALES SON: SUMA(+), RESTA(-), MULTIPLICACIÓN(*), DIVISIÓN REAL(/), DIVISIÓN ENTERA(DIV), RESIDUO(MOD), EXPONENCIACIÓN(^). POR EJEMPLO:
a) 15+7=22
b) 77-76=1
c) 2*1=2
d) 4 DIV 2=2
e) 10 MOD 2=0

OPERADORES RELACIONALES

ESTAS TE PERMITEN HACER COMPARACIONES DE VALORES DE TIPO NUMÉRICO Y DE TIPO CARÁCTER, SIRVEN PARA EXPRESAR LAS CONDICIONES EN LOS ALGORITMOS PARA ASI PROPORCIONAR RESULTADOS LÓGICOS.

TIPOS DE OPERADORES RELACIONALES

  • > MAYOR QUE
  • <>
  • > = MAYOR O IGUAL QUE
  • < = MENOR O IGUAL QUE
  • < > DIFERENTE
  • = IGUAL

EJEMPLOS:

SI A = 10, B = 20, C = 30

EJEMPLOS NO LÓGICOS:

A <>


OPERADORES LÓGICOS
ESTOS OPERADORES SE UTILIZAN PARA ESTABLECER RELACIONES ENTRE VALORES LÓGICOS. ESTOS VALORES PUEDEN SER RESULTADO DE UNA EXPRESIÓN RELACIONAL.


TIPOS DE OPERADORES LÓGICOS


AND Y
OR O
NOT NEGACIÓN

4.5 Prioridad de operadores, evaluación de expresiones.

Determina el orden en que habrán de realizarse las operaciones en una expresión determinada. Para obtener la prioridad se deben conocer las siguientes reglas:

Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados (interiores unos a otros), las expresiones más internas se evalúan primero.

Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden de prioridad.

En caso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.

Cuando se desea realizar una operación con baja prioridad por adelantado, debe agruparse a los operandos involucrados.

4 + 12 /2 = 10 (sin agrupar)
(4 + 12) /2 = 8 (con agrupador)


Ejemplo:

Obtener los resultados de las expresiones:
-4 * 7 + 2 ^ 3 / 4 - 5

Solución:
-4 *7 + 2 ^ ¾ -5
Resulta:
-4 * 7+ 8/4 -5
-28 + 8/4 -5
-28 + 2 - 5
-26 - 5
-31


Los paréntesis tienen prioridad sobre el resto de las operaciones.

A * (B+3) La constante 3 se suma primero al valor de B, después este resultado se multiplica por el valor de A.

(A*B) +3 A y B Se multiplican primero y a continuación se suma 3.

A + (B/C) + D Esta expresión equivale a A+ B/C + D



OperadorPrioridad
^Alta
*,/,DivMedia
+,-,ModBaja
RelacionalesMuy baja

4.6 Estructura básica de un programa.

Estructura básica de un programa en C

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:

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 main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves {}.

Un programa algo más complicado es el siguiente:

include<stdio.h>
include<conio.h>
void main( )
{
clrscr();
printf(“Hola mundo.\n”);
getch();
}

Con el visualizamos el mensaje Hola mundo. en el terminal. En la primera línea indica que se tengan en cuenta las funciones y tipos definidos en la librería stdio (standard input/output). Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la función main se incluye una única sentencia que llama a la función printf. Esta toma como argumento una cadena de caracteres, que se imprimen van encerradas entre dobles comillas “ “. El símbolo \n indica un cambio de línea.

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 Alerta
\b Espacio atrás
\f Salto de página
\n Salto de línea
\r Retorno de carro
\t Tabulación horizontal
\v Tabulación vertical
\\ Barra invertida
\’ Comilla simple
\” Comillas dobles
\OOO Visualiza un carácter cuyo código ASCII es OOO en octal
\xHHH Visualiza un carácter cuyo código ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes módulos o fuentes. Es conveniente mantener los fuentes 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 fuentes son compilados de forma separada, únicamente los fuentes 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.

Como los lenguajes han cambiado de c a java(que es un derivado de c y c++) para aquellos que apenas empezamos en java un primer programa seria:

import java.io.*;
class primero{
public static void main(){
system.out.println(“Hola mundo.”);
}
}

4.7 Proceso de creación de un ejecutable.

En Java, en principio, no se pueden crear autoejecutables ya que este es un lenguaje multiplataforma y los archivos autoejecutables son dependientes de la plataforma. Esto provoca que tengamos que usar la consola para ejecutar nuestros programas; lo que supone un gran inconveniente para usuarios sobre todo acostumbrados a los entornos gráficos. Existen varias soluciones para este asunto. Aquí se explican tres de ellas. La primera es la de crear ejecutables dependientes de la plataforma ; la segunda permite hacer más fácil la ejecución en cada plataforma sin impedir su ejecución en otra plataforma; la tercera es válida para cualquier plataforma y aporta otras muchas posibilidades. Podemos crear un ejecutable de la plataforma de varias maneras: Podemos usar traducir el código java a código C con Toba o J2C. De esta forma sólo nos queda compilar el código C para crear el ejecutable. Toba es un proyecto libre cuyo desarrollo ha quedado estancado cuando Java iba por la versión 1.1, pero podemos descargarlo todavía desde su página web. Existe un compilador que además de permitirnos, como cualquier otro compilador, crear bytecodes a partir de ficheros .java, nos da la posibilidad de compilar el fuente (archivos .java) para obtener un ejecutable de la plataforma y también permite crear un ejecutable de la plataforma a partir del bytecode. De esta forma el código obtenido es mucho más rápido. El programa se llama GJC y forma parte la familia de compiladores GCC del proyecto GNU que se desarrolla bajo la GPL (General Public License). Si lo que queremos es crear un archivo ejecutable .exe (para plataforma Windows) y prescindir de la cualidad de multiplataforma de este lenguaje, lo que hay que hacer es conseguir un programa que realice esta tarea. Esto lo hacen algunas IDE’s y el programa Jto Exe. Al crear un .exe lo que hacemos es sustituir los archivos de clase de Java, al contrario que la siguiente opción que complementa y no sustituye. En particular el programa Jto Exe necesita de la máquina virtual de Java para poder ejecutar el programa de modo seguiremos necesitando instalar la JVM al contrario que las dos opciones anteriores.