FUNDAMENTOS DE
PROGRAMACION
Ing. Franklin Rene Castro Castellanos
Especialista en Tecnologías
Especialista en Auditorias
Candidato a Magister en Gestión, Aplicación y
Desarrollo de Software
JUSTIFICACION
● En la asignatura de Fundamentos de
Programación se sientan las bases para que el
estudiante desarrolle el pensamiento algorítmico y
pueda aplicarlas en la generación de programas de
computadora que realicen eficientemente
procesos de cálculo.
● Estas bases de programación le serán útiles al
estudiante, en todas las asignaturas que hacen
parte del área de aplicación profesional y que
están relacionadas con programación de
computadores.
EJE TEMATICO
● Diseño de algoritmos
● Codificación de programas en lenguaje de alto
nivel
● Arreglos
CONTENIDOS TEMATICOS
● Diseño de algoritmos
● Funcionamiento básico del computador
● Definición de algoritmo
● Proceso para la construcción de algoritmos
● Construcción de algoritmos en seudocódigo y
diagramación estructurada.
● Variables, constantes y tipos de datos
● Operadores y jerarquía
● Procesos de control de flujo
● Asignación
● Condicionales
● Iterativos
CODIFICACIÓN DE PROGRAMAS EN LENGUAJE DE
ALTO NIVEL
● Fundamentos
● Historia de Java
● Componentes de la tecnología Java
● Características de Java
● Comparativa de Java con otros lenguajes de programación
● Tipos de datos
● Operadores
● Estructura básica de un programa en Java
● Entrada-salida de datos en Java por consola
● Sentencias condicionales
● Sentencias de iteración
ARREGLOS
● Declaración de un vector.
● Creación de un vector.
● Subindicación de un vector.
● Inicialización de un vector.
● Operaciones con arreglos
NOTAS Y CALIFICACIONES
Los exámenes se harán entre los días de fechas
programadas, el estudiante deberá estar preparado
para la presentación de los mismos, sin previo aviso.
ASESORIAS Y CONSULTAS
● LUNES
● MIERCOLES
● HORARIO:
Miércoles 11:30-12:30
Viernes 17:15 – 18:15
Todas requieren firma de realización.
PROYECTO INTEGRADOR
● Estar atentos a fechas de revisiones,
que hacen parte de la nota final
BIBLIOGRAFIA
Diseño de algoritmos
● Funcionamiento básico del computador
● Definición de algoritmo
● Proceso para la construcción de algoritmos
● Construcción de algoritmos en seudocódigo y
diagramación estructurada.
● Variables, constantes y tipos de datos
● Operadores y jerarquía
● Procesos de control de flujo
● Asignación
● Condicionales
● Iterativos
Funcionamiento básico del
computador
● Pregunta: ¿Cómo funciona un computador?
● ¿Qué hace posible lo que nosotros vemos y
hacemos en el?
Funcionamiento básico del computador
Microscópicos
circuitos y transistores
Reaccionan
a impulsos
eléctricos
Representados
en 1 y 0
No tiene engranajes o
partes mecánicas
Funcionamiento básico del computador
Representados en 1 y 0
Código binario Interpreta el código binario Programas (software)
DOS: Intel Athlon
Macintosh: Power PC
Aplicaciones que usan los SO
para comunicarse con el PC
PROGRAMADOR
DEFINICION DE ALGORITMO
● ¿Qué es?
● Palabras claves: Orden, lógica, secuencia,
resultado, opciones, pasos, conjunto, objetivo.
● Definición: Un algoritmo es un conjunto finito
de pasos específicos y organizados para
realizar una labor. (Realizar Ejercicio)
● ¿De que tipos hay?
Seudocódigo y diagramación estructurada.
ALGORITMOS
● Seudocódigo : Pensado para hacer mas fácil el
entender de un algoritmo, usa una mezcla de
lenguaje natural con algunas convenciones
sintácticas propias de lenguajes de programación.
● Diagramación estructurada: (N-S)Basada en la
representación grafica de procesos, lo que hace
fácil entender los flujos de información, es
conocido como Diagramas de ChapÍn, y mezcla
diagramas de flujo y Seudocodigo.
DIAGRAMAS DE FLUJO
● Es la representación grafica de un proceso, o en
nuestro caso de un algoritmo.
● Usa figuras que representan las partes que
conforman los pasos o procesos que se realizan.
● Es utilizado en varias disciplinas, como la sicología,
la ingeniería industrial, entre otros.
● Algunos símbolos de los diagramas de flujos son.
Proceso para la construcción de
algoritmos
● Seudocódigo.
Estructura a seguir en su realización:
● Cabecera.
● Programa.
● Módulo.
● Tipos de datos.
● Constantes.
● Variables.
● Cuerpo.
● Inicio.
● Instrucciones.
● Fin.
La cabecera describe el
programa y sus tipos de datos.
El cuerpo establece los pasos que
se realizan, en un lenguaje claro,
haciendo énfasis si es captura,
proceso, decisión o resultado.
Proceso para la construcción de
algoritmos
● Diagramas de flujo
Lo primero, pueden existir múltiples versiones, lo
importante es entender la simbología que se usa.
Lo segundo entender cada símbolo y su uso.
Debe definirse donde se guardan los datos.
Se debe entender plenamente el problema
INICIO
CONDICION
INGRESO
DATOS
SALIDA
DATOS
PANTALLA
PROCESO CONECTOR
SALIDA
IMPRESORA
FLUJO
Casos Diagramas de flujo
Su cumple condición
haga, de lo contrario siga
Es A o es B Haga hasta mientras se
cumpla condiciones
Proceso para la construcción de
algoritmos
● Diagramas Estructurados (Nassi-Schneiderman)
1. Entender el problema.
2. Manejar la simbología de cada caja.
3. Entender y aplicar las restricciones de información.
4. Limitarlo a un solo folio o documento.
Restricciones de información:
a. La primera caja lleva el titulo o nombre del diagrama.
b. La ultima debe ser el cuadro fin.
c. Todas la variables y funciones deben ir después del
cuadro inicio.
d. Las estructuras cíclicas deben ser visibles y claras.
PARAMETROS DIAGRAMA
ESTRUCTURADO
PARAMETROS DIAGRAMA
ESTRUCTURADO
PARAMETROS DIAGRAMA
ESTRUCTURADO
EJEMPLOS
● La lámpara. (ver apuntes)
El problema es del foco o de la lámpara y que se
debe hacer en cada caso.
MANEJANDO CICLOS
● Elevar b tantas veces n, es decir por ejemplo 24
donde 2=b n=4
INICIO
Capturo b
Capturo n
Resultado=b
Conteo=1
1) 2x2=4
2) 4x2=8
3) 8x2=16
O lo mismo
que 2x2x2x2
EXPLICACION
resultado=resultado x b
conteo=conteo+1
Conteo=n
no
resultado
EJERCICIOS DE PRACTICA EN LOS TRES
MODELOS
● Ir a clase.
● El desayuno. (3 opciones)
● La licorera. (5 opciones)
● Hacer la tarea de programación.
● Promedio de 3 notas (entre 10 y 100) validando que aprobó, si
promedio es igual o superior a 30. (ver una segunda versión que
realiza la operación hasta que decida salir)
● Presentar números hasta 100: De Uno en Uno, De Dos en Dos, Los
primos .
● Hacer un horóscopo, que varié según el día de la semana y siga
preguntando el signo hasta que decida salir.
● Representar la siguiente secuencia y proyectarlas hasta el numero
que se pida: 1,7,9,11,17,19,21,27,29
Variables, constantes y tipos de datos
Operadores y jerarquía
Procesos de control de flujo
Asignación
Condicionales
Iterativos
VARIABLE: El que recibe un valor y el mismo varia durante la ejecución del programa.
CONSTANTE: El que recibe un valor y el mismo NO cambia durante la ejecución del
programa.
TIPOS DE DATOS: Es la clase de valor que recibe la constante o variable, ejemplo haya tipos
de datos entero, dobles, flotante, booleano, cadena, carácter, array.
OPERADORES: Suma +, Resta -, Multiplicación *, División /, El residuo de la división MOD,
Porcentaje %, el paréntesis (), y pueden existir diversos operadores, a continuación se
presentan los usados en Java.
OPERADORES EN JAVA
OPERADORES DE ASIGNACION
( ) fuerzan una prioridad en la ejecución
00000000000000000000000000100001 : j = 33
00000000000000000000000010000100 : k = 33 << 2 ; k = 132
EJEMPLO
1 + 3 * 4
1 + 3 – 4
(1 + 3) * 4
result = 1 + 2
result = result – 1
result = result * 2
result = result / 2
result = result + 8
result = result % 7
16
0
13
2
2
3
4
10
3
ASIGNACION
Prácticamente lo hemos utilizado en todos los ejemplos de variables y operadores. Es
el operador de asignación.
Este aparece con un signo igual (=). Cambia el valor de la variable que está a la
izquierda por un literal o el resultado de la expresión que se encuentra a la derecha.
par = 2;
perímetro = Pi * diámetro;
En el ejemplo vemos la variable par toma el valor de 2 y perímetro el resultado de una
expresión.
CONDICIONALES
SI DE LO CONTRARIO: IF ELSE
Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control
evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la
sentencia(1) o sentencias que se encuentra a continuación.
En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta existe).
La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes
sentencias.
Sintaxis:
if (expresionLogica) {
sentencia_1;
}
o bien (con dos ramas):
if (expresionLogica) {
sentencia_1;
}
else {
sentencia_2;
}
CONDICIONALES
EN CASO DE: SWITCH
Es una sentencia condicional multiramificada o de selección múltiple:
dependiendo del valor de una variable o expresión entera permite ejecutar una
o varias sentencias de entre muchas.
Sintaxis:
switch (expresion) {
case valor_1: sentencias_1; break;
case valor_2: sentencias_2; break;
...
case valor_n: sentencias_n; break;
[default: sentencias_x;]
}
Iterativos
PARA: De un valor hasta otro valor en un conteo pre-establecido
SENTENCIA FOR
Esta sentencia se encuentra en la mayoría de los lenguajes de programación.
El bucle for se empleará cuando conocemos el número de veces que se ejecutará una
sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que
adopta la sentencia for es:
for(inicialización; condición; incremento) sentencia;
El primer término inicialización, se usa para inicializar una variable índice, que controla el
número de veces que se ejecutará el bucle. La condición representa la condición que ha
de ser satisfecha para que el bucle continúe su ejecución. El incremento representa la
cantidad que se incrementa la variable índice en cada repetición.
Ejemplo: for (int i = 0; i < 10; i++)
{
System.out.println(i);
}
Iterativos
SENTENCIA MIENTRAS “WHILE”
A la palabra reservada while le sigue una condición encerrada entre paréntesis.
El bloque de sentencias que le siguen se ejecuta siempre que la condición sea
verdadera tal como se ve en la figura. La forma general que adopta la
sentencia while es:
while (condición)
sentencia;
EJEMPLO
int i=0;
while (i<10)
{
System.out.println(i);
i++;
}
Iterativos
La sentencia do...while
Como hemos podido apreciar las sentencias for y while la condición está al principio
del bucle, sin embargo, do...while la condición está al final del bucle, por lo que el
bucle se ejecuta por lo menos una vez tal como se ve en la figura.
do marca el comienzo del bucle y while el final del mismo.
La forma general es:
Do
{
sentencia;
}while(condición);
EJEMPLO
int i=0;
do
{ System.out.println(i); i++;
}while(i < 10);
FIN PRIMERA UNIDAD
REFUERZO UNIDAD
Primera Observación Importante: Java maneja operaciones con un orden especifico
en los programas, el orden general teniendo presente todos los operadores vistos y
algunos que serán profundizados mas adelante, seria el siguiente:
Si existen de igual rango, se despejan de izquierda a derecha
ORDEN DE LAS OPERACIONES EN JAVA
Las soluciones a los siguientes problemas serian:
2-4*5= 18
i=7
i++/2= 4
(1+7) +2*5=18
1+4+5+2*5= 20
A=5 B=2
A++ * B=12
8*3/3%5=6
17++/(3+2)%3=2
Coincide con sus resultados?
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While, Switch, For según el caso del área señalada
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso
del área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONVIERTA A JAVA LOS SIGUIENTES
FLUJOS
Aplique IF, While, Do While,
Switch, For según el caso del
área señalada
CONSTRUYA LOS SIGUIENTES FLUJOS E INCLUYA
LA PRUEBA DEL MISMO
● Ingrese un numero, de 3 a N, si el numero es múltiplo de 5,
elévelo a la 3 potencia, de lo contrario sume los numero
que hay desde 1 hasta ese numero, valide previamente que
no ingresen valores menores de 3, antes de hacer cualquier
operación.
● Tome 3 valores, almacenados en A, B, C, y diga cual es el
mayor.
● Tome 2 valores, A y B, y sume todos los números impares
que existan entre esos números, ejemplo Entre 6 y 15,
existen 7,9,11,13 y seria igual a 40, valide previamente que
existan al menos 1 numero de diferencia entre A y B, de los
contrario informe que no existen números entre A y B.
Por ultimo no olvide revisar la teoría
vista en la unidad
Éxitos en su examen…. Este se realizara en la primera clase de
la semana de exámenes.
UNIDAD II
CODIFICACIÓN DE PROGRAMAS EN LENGUAJE DE
ALTO NIVEL
● Fundamentos
● Historia de Java
● Componentes de la tecnología Java
● Características de Java
● Comparativa de Java con otros lenguajes de programación
● Tipos de datos
● Operadores
● Estructura básica de un programa en Java
● Entrada-salida de datos en Java por consola
● Sentencias condicionales
● Sentencias de iteración
HISTORIA DE JAVA
Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a
principio de los años 90´s.
En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios
colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto
conocido como "El proyecto verde".
Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill
Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y
trabajó sin descanso durante 18 meses.
Intentaban desarrollar una nueva tecnología para programar la siguiente generación de
dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de
programación fácil de aprender y de usar.
En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo
encontraron inadecuado. Gosling intentó primero extender y modificar C++ resultando el
lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo
abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la
versión mas aceptada, por el roble que veía a través de la ventana de su despacho). Cuyo
trabajo fue apoyado por el proyecto verde, creado para apoyar las investigaciones hasta 1994.
HISTORIA DE JAVA
● Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento
del fenómeno mundial WEB. Al examinar las dinámicas de Internet, lo
realizado por el ex equipo verde se adecuaba a este nuevo ambiente.
● Patrick Naughton procedió a la construcción del lenguaje de programación
Java que se accionaba con un browser prototipo. El 29 de septiembre de
1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la
demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de
Java y se acepta el proyecto.
● Con el paso del tiempo HotJava se convirtió en un concepto práctico
dentro del lenguaje Java y demostró que podría proporcionar
multiplataformas para que el código pueda ser bajado y corrido del Host
del World Wide Web y que de otra forma no son seguros.
Una de las características de HotJava fue su soporte para los "applets", que
son las partes de Java que pueden ser cargadas mediante una red de trabajo
para después ejecutarlo localmente y así lograr soluciones dinámicas en
HISTORIA DE JAVA
● El 23 de mayo de 1995, en la conferencia SunWorld `95, John
Gage, de Sun Microsystems, y Marc Andreessen, cofundador y
vicepresidente de Netscape, anunciaban la versión alpha de Java,
que en ese momento solo corría en Solaris, y el hecho de que Java
iba a ser incorporado en Netscape Navigator, el navegador mas
utilizado de Internet.
● Con la segunda alpha de Java en Julio, se añade el soporte
para Windows NT y en la tercera, en Agosto, para Windows 95.
En enero de 1995 Sun formá la empresa Java Soft para dedicarse
al desarrollo de productos basados en la tecnologías Java, y así
trabajar con terceras partes para crear aplicaciones, herramientas,
sistemas de plataforma y servicios para aumentar las capacidades
del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK.
Componentes de la tecnología
Java
● Un programa en Java se compone de los
siguientes elementos:
1. Los comentarios: No son obligatorios, pero
son fundamentales para documentar un
programa.
2. Las sentencias: Son ordenes que se le dan al
programa para realizar una tarea especifica.
Componentes de la tecnología Java
3. Definición de clases: Es un conjunto de
objetos que se relacionan.
4. Definición de métodos: Conjunto de
operaciones agrupadas bajo un nombre.
5. Identificadores: Es un nombre con el cual
diferenciamos a una variable, método o una
clase.
Componentes de la tecnología Java
6. Bloques de código: Es un grupo de sentencias que
se comportan como una unidad. Un bloque de
código está limitado por las llaves de apertura { y
cierre }
7. Variables: Una variable es un nombre que se
asocia con una porción de la memoria del
ordenador, en la que se guarda el valor asignado a
dicha variable
8. Expresiones: Una expresión es todo aquello que
se puede poner a la derecha del operador asignación
=
SINTAXIS DE CADA COMPONENTE
COMENTARIOS
En Java existen tres tipos de comentarios
● Comentarios en una sola línea
//imprime un mensaje
● Comentarios de varias líneas
/* Aquí escribo el bloque de comentario*/
● Comentarios de documentación
/** Aquí escribo el bloque de comentario */
SINTAXIS DE CADA COMPONENTE
SENTENCIAS
Todas las ordenes en Java acaban con ; este carácter
separa una sentencia de la siguiente. Normalmente,
las sentencias se ponen unas debajo de otras,
aunque sentencias cortas pueden colocarse en una
misma línea.
int i=1;
import java.awt.*;
System.out.println("El primer programa");
rect.mover(10, 20);
SINTAXIS DE CADA COMPONENTE
CLASES
Las clases para ser definidas requieren un
modificador de acceso, la palabra reservada class, el
nombre o titulo de la clase y un bloque de código.
public class NombreApp{
}
SINTAXIS DE CADA COMPONENTE
METODOS
Los métodos para ser definidos requieren estar contenidos en
una clase, poseer un modificador de acceso, el nombre o
titulo del método, una lista de argumentos y un bloque de
código.
public class calculadora{
public int sumar( int A, int B){
}
SINTAXIS DE CADA COMPONENTE
IDENTIFICADORES
Un identificador es un nombre que identifica a una
variable, a un método o función miembro, a una clase.
● Todos los identificadores han de comenzar con una letra,
el carácter subrayado ( _ ) o el carácter dólar ( $ ).
● Puede incluir, pero no comenzar por un número
● No puede incluir el carácter espacio en blanco
● Distingue entre letras mayúsculas y minúsculas
● No se pueden utilizar las palabras reservadas como
identificadores
SINTAXIS DE CADA COMPONENTE
Tipo de identificador Convención Ejemplo
nombre de una clase Comienza por letra mayúscula
String, Rectangulo,
CinematicaApplet
nombre de función comienza con letra minúscula calcularArea, getValue, setColor
nombre de variable comienza por letra minúscula area, color, appletSize
nombre de constante En letras mayúsculas PI, MAX_ANCHO
IDENTIFICADORES
Hay ciertas convenciones que hacen que el programa sea más legible y que aplican a
los identificadores, pero que no afectan a la ejecución del programa. La primera y
fundamental es la de encontrar un nombre que sea significativo, de modo que el
programa sea lo más legible posible. El tiempo que se pretende ahorrar eligiendo
nombres cortos y poco significativos se pierde con creces cuando se revisa el programa
después de cierto tiempo.
SINTAXIS DE CADA COMPONENTE
BLOQUES
Los bloques { } se evidencias en la definición de
clases y métodos, pero también se pueden apreciar
en el manejo de iteraciones y condicionales
public class PrimeroApp{
public static void main(String[] args) {
System.out.println("El primer programa");
}
}
SINTAXIS DE CADA COMPONENTE
VARIABLES
Todas las variables han de declararse antes de usarlas, la
declaración consiste en una sentencia en la que figura el
tipo de dato y el nombre que asignamos a la variable.
Una vez declarada se le podrá asignar valores.
Java tiene tres tipos de variables:
● de instancia usadas para declarar atributos de un
objeto
● de clase similar al de instancia, solo que sus valores son
iguales para todos los objetos que se creen.
● Locales son las que se declaran antes de usarlas.
SINTAXIS DE CADA COMPONENTE
● Ejemplos de declaración de variables y
expresiones.
int x=0;
String nombre="Angel";
double a=3.5, b=0.0, c=-2.4;
boolean Nuevo=true;
int[] datos;
.
¿Qué es Java?
Características
La tecnología Java es un
lenguaje de programación y
una plataforma.
.
La plataforma Java 2
● Una plataforma software que se ejecuta sobre
otra plataforma hardware/software.
● La Máquina Virtual Java La interfaz de Programación
(JVM) de Aplicaciones (API)
Intérprete de Java Conjunto de clases ya desarrolladas
.
La plataforma Java 2
.
Características Principales
● Sencillo
● Orientado a objetos
● Distribuido
● Interpretado
● Robusto
● Seguro
● Arquitectura neutra
● Portable
● Altas prestaciones
● Multithread (multihilo)
● Dinámico
.
Características: Sencillo
● Elimina algunas de las características de C y C++:
● Adicionalmente Posee clase String.
● No tiene necesidad de asignar y liberar memoria (Garbage
Collector).
.
Características: Orientado a objetos
● Java trabaja con sus datos como objetos y con
interfaces a esos objetos.
● Implementa:
● Encapsulación. - Interfaces.
● Herencia simple. - Paquetes.
● Abstracción.
● Reutilización.
● Polimorfismo.
.
Características: Distribuido
● Concebido para trabajar en un entorno
conectado en red.
● En sí no es distribuido, proporciona librerías y
herramientas para que los programas puedan
ser distribuidos, que los programas corran en
varias máquinas interactuando.
.
Características: Interpretado
● Compilador tradicional
● Traslada sentencias
alto-nivel a múltiples
instrucciones.
● Creación de librerías
como resultado de
compilaciones
previas.
● Juntando, se crea
programa ejecutable.
● Intérprete de ByteCodes
● Compilador Java
Traduce código
fuente a código
intermedio.
● Interprete de Java
Virtual
Machine(JVM)
(ByteCodes
interpretados
(ejecutados))
.
Características: Robusto
● No se interrumpe fácilmente.
● Evita sobreescribir o corromper memoria
mediante punteros.
● Manejo de excepciones.
● Verificación de ByteCodes (por ejemplo no
acceso ilegal de memoria).
.
Características: Seguro
● Aplicaciones seguras ya que no acceden a
zonas delicadas de memoria o de sistema
● No existen punteros, no acceso a zonas delicadas de
memoria.
● Una applet no puede acceder al sistema, a los archivos
de la persona que lo está viendo.
.
Características: Arquitectura neutra
● Java compila el código a un fichero objeto de
formato independiente de la arquitectura de
la máquina en que se ejecutará.
● Cualquier plataforma donde exista una JVM se
puede ejecutar el código objeto
independientemente de la máquina en el que
ha sido generado.
.
Características: Arquitectura neutra
● Código fuente se compila
a un código de bytes
independientemente
de la máquina.
● Los ByteCodes se
ejecutan en una
máquina hipotética
que se implementa
por un sistema
run-time, que es
dependiente
de la máquina.
Tiempo de compilación
Tiempo de ejecución
.
Características: Arquitectura neutra
● Elementos que forman parte de arquitectura de Java sobre
una plataforma genérica.
● Dependiente del sistema:
● JVM.
● Librerías fundamentales.
● APIs de Java que
entren en contacto
directo con el hardware.
.
Características: Portable
● Más allá de la portabilidad básica por
ser de arquitectura independiente.
.
Características: Altas prestaciones
● Compiladores JIT (Just in time): Compilan en el
momento de ejecución.
● Traslada los bytecodes al
código máquina de la plataforma
según los va leyendo, realizando
cierto grado de optimización.
● JIT no pierde tiempo en
optimizar código que no se ejecutará.
.
Características: Altas prestaciones
● Se introdujo un nuevo JIT: HotSpot.
● Incluye compilador dinámico
y una máquina virtual para
Interpretar bytecodes.
● Mejor soporte para ordenadores
con varios procesadores,
mayor escalabilidad.
.
Características: Multithread
● Ejecución de varias tareas a la vez. Permite
muchas actividades simultáneas en un
programa.
● Posee una serie de clases que facilitan su
utilización.
● Mejor rendimiento interactivo y mejor
comportamiento en tiempo real.
.
Características: Dinámico
● No conecta todos los módulos que
comprenden una aplicación hasta el mismo
tiempo de ejecución.
● Las librerías nuevas o actualizadas no paralizan
la ejecución de las aplicaciones siempre que
mantengan la API anterior.
.
Características: Dinámico
● Capaz de traer automáticamente cualquier pieza que
el sistema necesite para funcionar.

Fundamentos de Programación: Conceptos y Práctica

  • 1.
    FUNDAMENTOS DE PROGRAMACION Ing. FranklinRene Castro Castellanos Especialista en Tecnologías Especialista en Auditorias Candidato a Magister en Gestión, Aplicación y Desarrollo de Software
  • 2.
    JUSTIFICACION ● En laasignatura de Fundamentos de Programación se sientan las bases para que el estudiante desarrolle el pensamiento algorítmico y pueda aplicarlas en la generación de programas de computadora que realicen eficientemente procesos de cálculo. ● Estas bases de programación le serán útiles al estudiante, en todas las asignaturas que hacen parte del área de aplicación profesional y que están relacionadas con programación de computadores.
  • 3.
    EJE TEMATICO ● Diseñode algoritmos ● Codificación de programas en lenguaje de alto nivel ● Arreglos
  • 4.
    CONTENIDOS TEMATICOS ● Diseñode algoritmos ● Funcionamiento básico del computador ● Definición de algoritmo ● Proceso para la construcción de algoritmos ● Construcción de algoritmos en seudocódigo y diagramación estructurada. ● Variables, constantes y tipos de datos ● Operadores y jerarquía ● Procesos de control de flujo ● Asignación ● Condicionales ● Iterativos
  • 5.
    CODIFICACIÓN DE PROGRAMASEN LENGUAJE DE ALTO NIVEL ● Fundamentos ● Historia de Java ● Componentes de la tecnología Java ● Características de Java ● Comparativa de Java con otros lenguajes de programación ● Tipos de datos ● Operadores ● Estructura básica de un programa en Java ● Entrada-salida de datos en Java por consola ● Sentencias condicionales ● Sentencias de iteración
  • 6.
    ARREGLOS ● Declaración deun vector. ● Creación de un vector. ● Subindicación de un vector. ● Inicialización de un vector. ● Operaciones con arreglos
  • 7.
    NOTAS Y CALIFICACIONES Losexámenes se harán entre los días de fechas programadas, el estudiante deberá estar preparado para la presentación de los mismos, sin previo aviso.
  • 8.
    ASESORIAS Y CONSULTAS ●LUNES ● MIERCOLES ● HORARIO: Miércoles 11:30-12:30 Viernes 17:15 – 18:15 Todas requieren firma de realización.
  • 9.
    PROYECTO INTEGRADOR ● Estaratentos a fechas de revisiones, que hacen parte de la nota final
  • 10.
  • 11.
    Diseño de algoritmos ●Funcionamiento básico del computador ● Definición de algoritmo ● Proceso para la construcción de algoritmos ● Construcción de algoritmos en seudocódigo y diagramación estructurada. ● Variables, constantes y tipos de datos ● Operadores y jerarquía ● Procesos de control de flujo ● Asignación ● Condicionales ● Iterativos
  • 12.
    Funcionamiento básico del computador ●Pregunta: ¿Cómo funciona un computador? ● ¿Qué hace posible lo que nosotros vemos y hacemos en el?
  • 13.
    Funcionamiento básico delcomputador Microscópicos circuitos y transistores Reaccionan a impulsos eléctricos Representados en 1 y 0 No tiene engranajes o partes mecánicas
  • 14.
    Funcionamiento básico delcomputador Representados en 1 y 0 Código binario Interpreta el código binario Programas (software) DOS: Intel Athlon Macintosh: Power PC Aplicaciones que usan los SO para comunicarse con el PC PROGRAMADOR
  • 15.
    DEFINICION DE ALGORITMO ●¿Qué es? ● Palabras claves: Orden, lógica, secuencia, resultado, opciones, pasos, conjunto, objetivo. ● Definición: Un algoritmo es un conjunto finito de pasos específicos y organizados para realizar una labor. (Realizar Ejercicio) ● ¿De que tipos hay? Seudocódigo y diagramación estructurada.
  • 16.
    ALGORITMOS ● Seudocódigo :Pensado para hacer mas fácil el entender de un algoritmo, usa una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación. ● Diagramación estructurada: (N-S)Basada en la representación grafica de procesos, lo que hace fácil entender los flujos de información, es conocido como Diagramas de ChapÍn, y mezcla diagramas de flujo y Seudocodigo.
  • 17.
    DIAGRAMAS DE FLUJO ●Es la representación grafica de un proceso, o en nuestro caso de un algoritmo. ● Usa figuras que representan las partes que conforman los pasos o procesos que se realizan. ● Es utilizado en varias disciplinas, como la sicología, la ingeniería industrial, entre otros. ● Algunos símbolos de los diagramas de flujos son.
  • 18.
    Proceso para laconstrucción de algoritmos ● Seudocódigo. Estructura a seguir en su realización: ● Cabecera. ● Programa. ● Módulo. ● Tipos de datos. ● Constantes. ● Variables. ● Cuerpo. ● Inicio. ● Instrucciones. ● Fin. La cabecera describe el programa y sus tipos de datos. El cuerpo establece los pasos que se realizan, en un lenguaje claro, haciendo énfasis si es captura, proceso, decisión o resultado.
  • 19.
    Proceso para laconstrucción de algoritmos ● Diagramas de flujo Lo primero, pueden existir múltiples versiones, lo importante es entender la simbología que se usa. Lo segundo entender cada símbolo y su uso. Debe definirse donde se guardan los datos. Se debe entender plenamente el problema INICIO CONDICION INGRESO DATOS SALIDA DATOS PANTALLA PROCESO CONECTOR SALIDA IMPRESORA FLUJO
  • 20.
    Casos Diagramas deflujo Su cumple condición haga, de lo contrario siga Es A o es B Haga hasta mientras se cumpla condiciones
  • 21.
    Proceso para laconstrucción de algoritmos ● Diagramas Estructurados (Nassi-Schneiderman) 1. Entender el problema. 2. Manejar la simbología de cada caja. 3. Entender y aplicar las restricciones de información. 4. Limitarlo a un solo folio o documento. Restricciones de información: a. La primera caja lleva el titulo o nombre del diagrama. b. La ultima debe ser el cuadro fin. c. Todas la variables y funciones deben ir después del cuadro inicio. d. Las estructuras cíclicas deben ser visibles y claras.
  • 22.
  • 23.
  • 24.
  • 25.
    EJEMPLOS ● La lámpara.(ver apuntes) El problema es del foco o de la lámpara y que se debe hacer en cada caso.
  • 26.
    MANEJANDO CICLOS ● Elevarb tantas veces n, es decir por ejemplo 24 donde 2=b n=4 INICIO Capturo b Capturo n Resultado=b Conteo=1 1) 2x2=4 2) 4x2=8 3) 8x2=16 O lo mismo que 2x2x2x2 EXPLICACION resultado=resultado x b conteo=conteo+1 Conteo=n no resultado
  • 27.
    EJERCICIOS DE PRACTICAEN LOS TRES MODELOS ● Ir a clase. ● El desayuno. (3 opciones) ● La licorera. (5 opciones) ● Hacer la tarea de programación. ● Promedio de 3 notas (entre 10 y 100) validando que aprobó, si promedio es igual o superior a 30. (ver una segunda versión que realiza la operación hasta que decida salir) ● Presentar números hasta 100: De Uno en Uno, De Dos en Dos, Los primos . ● Hacer un horóscopo, que varié según el día de la semana y siga preguntando el signo hasta que decida salir. ● Representar la siguiente secuencia y proyectarlas hasta el numero que se pida: 1,7,9,11,17,19,21,27,29
  • 28.
    Variables, constantes ytipos de datos Operadores y jerarquía Procesos de control de flujo Asignación Condicionales Iterativos VARIABLE: El que recibe un valor y el mismo varia durante la ejecución del programa. CONSTANTE: El que recibe un valor y el mismo NO cambia durante la ejecución del programa. TIPOS DE DATOS: Es la clase de valor que recibe la constante o variable, ejemplo haya tipos de datos entero, dobles, flotante, booleano, cadena, carácter, array. OPERADORES: Suma +, Resta -, Multiplicación *, División /, El residuo de la división MOD, Porcentaje %, el paréntesis (), y pueden existir diversos operadores, a continuación se presentan los usados en Java.
  • 29.
  • 30.
    OPERADORES DE ASIGNACION () fuerzan una prioridad en la ejecución 00000000000000000000000000100001 : j = 33 00000000000000000000000010000100 : k = 33 << 2 ; k = 132
  • 31.
    EJEMPLO 1 + 3* 4 1 + 3 – 4 (1 + 3) * 4 result = 1 + 2 result = result – 1 result = result * 2 result = result / 2 result = result + 8 result = result % 7 16 0 13 2 2 3 4 10 3
  • 32.
    ASIGNACION Prácticamente lo hemosutilizado en todos los ejemplos de variables y operadores. Es el operador de asignación. Este aparece con un signo igual (=). Cambia el valor de la variable que está a la izquierda por un literal o el resultado de la expresión que se encuentra a la derecha. par = 2; perímetro = Pi * diámetro; En el ejemplo vemos la variable par toma el valor de 2 y perímetro el resultado de una expresión.
  • 33.
    CONDICIONALES SI DE LOCONTRARIO: IF ELSE Es una bifurcación o sentencia condicional de una o dos ramas. La sentencia de control evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta la sentencia(1) o sentencias que se encuentra a continuación. En caso contrario, se ejecuta la sentencia (2) que sigue a else (si ésta existe). La sentencia puede constar opcionalmente de una o dos ramas con sus correspondientes sentencias. Sintaxis: if (expresionLogica) { sentencia_1; } o bien (con dos ramas): if (expresionLogica) { sentencia_1; } else { sentencia_2; }
  • 34.
    CONDICIONALES EN CASO DE:SWITCH Es una sentencia condicional multiramificada o de selección múltiple: dependiendo del valor de una variable o expresión entera permite ejecutar una o varias sentencias de entre muchas. Sintaxis: switch (expresion) { case valor_1: sentencias_1; break; case valor_2: sentencias_2; break; ... case valor_n: sentencias_n; break; [default: sentencias_x;] }
  • 35.
    Iterativos PARA: De unvalor hasta otro valor en un conteo pre-establecido SENTENCIA FOR Esta sentencia se encuentra en la mayoría de los lenguajes de programación. El bucle for se empleará cuando conocemos el número de veces que se ejecutará una sentencia o un bloque de sentencias, tal como se indica en la figura. La forma general que adopta la sentencia for es: for(inicialización; condición; incremento) sentencia; El primer término inicialización, se usa para inicializar una variable índice, que controla el número de veces que se ejecutará el bucle. La condición representa la condición que ha de ser satisfecha para que el bucle continúe su ejecución. El incremento representa la cantidad que se incrementa la variable índice en cada repetición. Ejemplo: for (int i = 0; i < 10; i++) { System.out.println(i); }
  • 36.
    Iterativos SENTENCIA MIENTRAS “WHILE” Ala palabra reservada while le sigue una condición encerrada entre paréntesis. El bloque de sentencias que le siguen se ejecuta siempre que la condición sea verdadera tal como se ve en la figura. La forma general que adopta la sentencia while es: while (condición) sentencia; EJEMPLO int i=0; while (i<10) { System.out.println(i); i++; }
  • 37.
    Iterativos La sentencia do...while Comohemos podido apreciar las sentencias for y while la condición está al principio del bucle, sin embargo, do...while la condición está al final del bucle, por lo que el bucle se ejecuta por lo menos una vez tal como se ve en la figura. do marca el comienzo del bucle y while el final del mismo. La forma general es: Do { sentencia; }while(condición); EJEMPLO int i=0; do { System.out.println(i); i++; }while(i < 10);
  • 38.
  • 39.
    REFUERZO UNIDAD Primera ObservaciónImportante: Java maneja operaciones con un orden especifico en los programas, el orden general teniendo presente todos los operadores vistos y algunos que serán profundizados mas adelante, seria el siguiente: Si existen de igual rango, se despejan de izquierda a derecha
  • 40.
    ORDEN DE LASOPERACIONES EN JAVA Las soluciones a los siguientes problemas serian: 2-4*5= 18 i=7 i++/2= 4 (1+7) +2*5=18 1+4+5+2*5= 20 A=5 B=2 A++ * B=12 8*3/3%5=6 17++/(3+2)%3=2 Coincide con sus resultados?
  • 41.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 42.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 43.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 44.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 45.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 46.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 47.
    CONVIERTA A JAVALOS SIGUIENTES FLUJOS Aplique IF, While, Do While, Switch, For según el caso del área señalada
  • 48.
    CONSTRUYA LOS SIGUIENTESFLUJOS E INCLUYA LA PRUEBA DEL MISMO ● Ingrese un numero, de 3 a N, si el numero es múltiplo de 5, elévelo a la 3 potencia, de lo contrario sume los numero que hay desde 1 hasta ese numero, valide previamente que no ingresen valores menores de 3, antes de hacer cualquier operación. ● Tome 3 valores, almacenados en A, B, C, y diga cual es el mayor. ● Tome 2 valores, A y B, y sume todos los números impares que existan entre esos números, ejemplo Entre 6 y 15, existen 7,9,11,13 y seria igual a 40, valide previamente que existan al menos 1 numero de diferencia entre A y B, de los contrario informe que no existen números entre A y B.
  • 49.
    Por ultimo noolvide revisar la teoría vista en la unidad Éxitos en su examen…. Este se realizara en la primera clase de la semana de exámenes.
  • 50.
    UNIDAD II CODIFICACIÓN DEPROGRAMAS EN LENGUAJE DE ALTO NIVEL ● Fundamentos ● Historia de Java ● Componentes de la tecnología Java ● Características de Java ● Comparativa de Java con otros lenguajes de programación ● Tipos de datos ● Operadores ● Estructura básica de un programa en Java ● Entrada-salida de datos en Java por consola ● Sentencias condicionales ● Sentencias de iteración
  • 51.
    HISTORIA DE JAVA Javaes un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principio de los años 90´s. En Diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystems, reclutó a varios colegas entre ellos James Gosling y Mike Sheridan para trabajar sobre un nuevo proyecto conocido como "El proyecto verde". Con la ayuda de otros ingenieros, empezaron a trabajar en una pequeña oficina en Sand Hill Road en Menlo Park, California. Y así interrumpió todas las comunicaciones regulares con Sun y trabajó sin descanso durante 18 meses. Intentaban desarrollar una nueva tecnología para programar la siguiente generación de dispositivos inteligentes, en los que Sun veía un campo nuevo a explorar. Crear un lenguaje de programación fácil de aprender y de usar. En un principio se consideraba C++ como lenguaje a utilizar, pero tanto Gosling como Bill Joy lo encontraron inadecuado. Gosling intentó primero extender y modificar C++ resultando el lenguaje C++ ++ - (++ - porque se añadían y eliminaban características a C++), pero lo abandonó para crear un nuevo lenguaje desde cero al que llamo Oak (roble en inglés, según la versión mas aceptada, por el roble que veía a través de la ventana de su despacho). Cuyo trabajo fue apoyado por el proyecto verde, creado para apoyar las investigaciones hasta 1994.
  • 52.
    HISTORIA DE JAVA ●Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento del fenómeno mundial WEB. Al examinar las dinámicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente. ● Patrick Naughton procedió a la construcción del lenguaje de programación Java que se accionaba con un browser prototipo. El 29 de septiembre de 1994 se termina el desarrollo del prototipo de HotJava. Cuando se hace la demostración a los ejecutivos de Sun, esta vez, se reconoce el potencial de Java y se acepta el proyecto. ● Con el paso del tiempo HotJava se convirtió en un concepto práctico dentro del lenguaje Java y demostró que podría proporcionar multiplataformas para que el código pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros. Una de las características de HotJava fue su soporte para los "applets", que son las partes de Java que pueden ser cargadas mediante una red de trabajo para después ejecutarlo localmente y así lograr soluciones dinámicas en
  • 53.
    HISTORIA DE JAVA ●El 23 de mayo de 1995, en la conferencia SunWorld `95, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión alpha de Java, que en ese momento solo corría en Solaris, y el hecho de que Java iba a ser incorporado en Netscape Navigator, el navegador mas utilizado de Internet. ● Con la segunda alpha de Java en Julio, se añade el soporte para Windows NT y en la tercera, en Agosto, para Windows 95. En enero de 1995 Sun formá la empresa Java Soft para dedicarse al desarrollo de productos basados en la tecnologías Java, y así trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje. Ese mismo mes aparece la versión 1.0 del JDK.
  • 54.
    Componentes de latecnología Java ● Un programa en Java se compone de los siguientes elementos: 1. Los comentarios: No son obligatorios, pero son fundamentales para documentar un programa. 2. Las sentencias: Son ordenes que se le dan al programa para realizar una tarea especifica.
  • 55.
    Componentes de latecnología Java 3. Definición de clases: Es un conjunto de objetos que se relacionan. 4. Definición de métodos: Conjunto de operaciones agrupadas bajo un nombre. 5. Identificadores: Es un nombre con el cual diferenciamos a una variable, método o una clase.
  • 56.
    Componentes de latecnología Java 6. Bloques de código: Es un grupo de sentencias que se comportan como una unidad. Un bloque de código está limitado por las llaves de apertura { y cierre } 7. Variables: Una variable es un nombre que se asocia con una porción de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable 8. Expresiones: Una expresión es todo aquello que se puede poner a la derecha del operador asignación =
  • 57.
    SINTAXIS DE CADACOMPONENTE COMENTARIOS En Java existen tres tipos de comentarios ● Comentarios en una sola línea //imprime un mensaje ● Comentarios de varias líneas /* Aquí escribo el bloque de comentario*/ ● Comentarios de documentación /** Aquí escribo el bloque de comentario */
  • 58.
    SINTAXIS DE CADACOMPONENTE SENTENCIAS Todas las ordenes en Java acaban con ; este carácter separa una sentencia de la siguiente. Normalmente, las sentencias se ponen unas debajo de otras, aunque sentencias cortas pueden colocarse en una misma línea. int i=1; import java.awt.*; System.out.println("El primer programa"); rect.mover(10, 20);
  • 59.
    SINTAXIS DE CADACOMPONENTE CLASES Las clases para ser definidas requieren un modificador de acceso, la palabra reservada class, el nombre o titulo de la clase y un bloque de código. public class NombreApp{ }
  • 60.
    SINTAXIS DE CADACOMPONENTE METODOS Los métodos para ser definidos requieren estar contenidos en una clase, poseer un modificador de acceso, el nombre o titulo del método, una lista de argumentos y un bloque de código. public class calculadora{ public int sumar( int A, int B){ }
  • 61.
    SINTAXIS DE CADACOMPONENTE IDENTIFICADORES Un identificador es un nombre que identifica a una variable, a un método o función miembro, a una clase. ● Todos los identificadores han de comenzar con una letra, el carácter subrayado ( _ ) o el carácter dólar ( $ ). ● Puede incluir, pero no comenzar por un número ● No puede incluir el carácter espacio en blanco ● Distingue entre letras mayúsculas y minúsculas ● No se pueden utilizar las palabras reservadas como identificadores
  • 62.
    SINTAXIS DE CADACOMPONENTE Tipo de identificador Convención Ejemplo nombre de una clase Comienza por letra mayúscula String, Rectangulo, CinematicaApplet nombre de función comienza con letra minúscula calcularArea, getValue, setColor nombre de variable comienza por letra minúscula area, color, appletSize nombre de constante En letras mayúsculas PI, MAX_ANCHO IDENTIFICADORES Hay ciertas convenciones que hacen que el programa sea más legible y que aplican a los identificadores, pero que no afectan a la ejecución del programa. La primera y fundamental es la de encontrar un nombre que sea significativo, de modo que el programa sea lo más legible posible. El tiempo que se pretende ahorrar eligiendo nombres cortos y poco significativos se pierde con creces cuando se revisa el programa después de cierto tiempo.
  • 63.
    SINTAXIS DE CADACOMPONENTE BLOQUES Los bloques { } se evidencias en la definición de clases y métodos, pero también se pueden apreciar en el manejo de iteraciones y condicionales public class PrimeroApp{ public static void main(String[] args) { System.out.println("El primer programa"); } }
  • 64.
    SINTAXIS DE CADACOMPONENTE VARIABLES Todas las variables han de declararse antes de usarlas, la declaración consiste en una sentencia en la que figura el tipo de dato y el nombre que asignamos a la variable. Una vez declarada se le podrá asignar valores. Java tiene tres tipos de variables: ● de instancia usadas para declarar atributos de un objeto ● de clase similar al de instancia, solo que sus valores son iguales para todos los objetos que se creen. ● Locales son las que se declaran antes de usarlas.
  • 65.
    SINTAXIS DE CADACOMPONENTE ● Ejemplos de declaración de variables y expresiones. int x=0; String nombre="Angel"; double a=3.5, b=0.0, c=-2.4; boolean Nuevo=true; int[] datos;
  • 74.
    . ¿Qué es Java? Características Latecnología Java es un lenguaje de programación y una plataforma.
  • 75.
    . La plataforma Java2 ● Una plataforma software que se ejecuta sobre otra plataforma hardware/software. ● La Máquina Virtual Java La interfaz de Programación (JVM) de Aplicaciones (API) Intérprete de Java Conjunto de clases ya desarrolladas
  • 76.
  • 77.
    . Características Principales ● Sencillo ●Orientado a objetos ● Distribuido ● Interpretado ● Robusto ● Seguro ● Arquitectura neutra ● Portable ● Altas prestaciones ● Multithread (multihilo) ● Dinámico
  • 78.
    . Características: Sencillo ● Eliminaalgunas de las características de C y C++: ● Adicionalmente Posee clase String. ● No tiene necesidad de asignar y liberar memoria (Garbage Collector).
  • 79.
    . Características: Orientado aobjetos ● Java trabaja con sus datos como objetos y con interfaces a esos objetos. ● Implementa: ● Encapsulación. - Interfaces. ● Herencia simple. - Paquetes. ● Abstracción. ● Reutilización. ● Polimorfismo.
  • 80.
    . Características: Distribuido ● Concebidopara trabajar en un entorno conectado en red. ● En sí no es distribuido, proporciona librerías y herramientas para que los programas puedan ser distribuidos, que los programas corran en varias máquinas interactuando.
  • 81.
    . Características: Interpretado ● Compiladortradicional ● Traslada sentencias alto-nivel a múltiples instrucciones. ● Creación de librerías como resultado de compilaciones previas. ● Juntando, se crea programa ejecutable. ● Intérprete de ByteCodes ● Compilador Java Traduce código fuente a código intermedio. ● Interprete de Java Virtual Machine(JVM) (ByteCodes interpretados (ejecutados))
  • 82.
    . Características: Robusto ● Nose interrumpe fácilmente. ● Evita sobreescribir o corromper memoria mediante punteros. ● Manejo de excepciones. ● Verificación de ByteCodes (por ejemplo no acceso ilegal de memoria).
  • 83.
    . Características: Seguro ● Aplicacionesseguras ya que no acceden a zonas delicadas de memoria o de sistema ● No existen punteros, no acceso a zonas delicadas de memoria. ● Una applet no puede acceder al sistema, a los archivos de la persona que lo está viendo.
  • 84.
    . Características: Arquitectura neutra ●Java compila el código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará. ● Cualquier plataforma donde exista una JVM se puede ejecutar el código objeto independientemente de la máquina en el que ha sido generado.
  • 85.
    . Características: Arquitectura neutra ●Código fuente se compila a un código de bytes independientemente de la máquina. ● Los ByteCodes se ejecutan en una máquina hipotética que se implementa por un sistema run-time, que es dependiente de la máquina. Tiempo de compilación Tiempo de ejecución
  • 86.
    . Características: Arquitectura neutra ●Elementos que forman parte de arquitectura de Java sobre una plataforma genérica. ● Dependiente del sistema: ● JVM. ● Librerías fundamentales. ● APIs de Java que entren en contacto directo con el hardware.
  • 87.
    . Características: Portable ● Másallá de la portabilidad básica por ser de arquitectura independiente.
  • 88.
    . Características: Altas prestaciones ●Compiladores JIT (Just in time): Compilan en el momento de ejecución. ● Traslada los bytecodes al código máquina de la plataforma según los va leyendo, realizando cierto grado de optimización. ● JIT no pierde tiempo en optimizar código que no se ejecutará.
  • 89.
    . Características: Altas prestaciones ●Se introdujo un nuevo JIT: HotSpot. ● Incluye compilador dinámico y una máquina virtual para Interpretar bytecodes. ● Mejor soporte para ordenadores con varios procesadores, mayor escalabilidad.
  • 90.
    . Características: Multithread ● Ejecuciónde varias tareas a la vez. Permite muchas actividades simultáneas en un programa. ● Posee una serie de clases que facilitan su utilización. ● Mejor rendimiento interactivo y mejor comportamiento en tiempo real.
  • 91.
    . Características: Dinámico ● Noconecta todos los módulos que comprenden una aplicación hasta el mismo tiempo de ejecución. ● Las librerías nuevas o actualizadas no paralizan la ejecución de las aplicaciones siempre que mantengan la API anterior.
  • 92.
    . Características: Dinámico ● Capazde traer automáticamente cualquier pieza que el sistema necesite para funcionar.