Está en la página 1de 171

Instituto Tecnolgico De Len

SISTEMAS Y COMPUTACIN

CONCEPTOS BASICOS

POR:

Ing. Jos. Mara Francisco Cabrera Gutirrez


Len, Gto. A 23 de Agosto 2010

TEMARIO
1. 2. 3. 4. CONCEPTOS BSICOS SOLUCIN DE PROBLEMAS AUXILIADOS POR LA COMPUTADORA. TCNICAS PARA LA FORMULACIN DE ALGORITMOS ENTIDADES PRIMITIVAS PARA LA CONSTRUCCIN DE INSTRUCCIONES. 5. LENGUAJE DE PROGRAMACION JAVA. 6. ARREGLOS. 7. MODULARIDAD

Introduccin Descripcin bsica de un sistema de cmputo.


Esta seccin tiene como finalidad dar una breve resea de las partes principales de un sistema de cmputo a un nivel bsico, que permita al usuario un mayor entendimiento de los conceptos que se trataran a lo largo del tutorial.

Sistema de cmputo.
Le llamamos sistema de cmputo a la configuracin completa de una computadora, incluyendo las unidades perifricas y la programacin de sistemas que la hacen un aparato til y funcional para un fin determinado.

Procesador Computadora.
Es un dispositivo aparato electrnico que procesa informacin y realiza calculos usando la aritmetica bsica a gran velocidad, precisin y confiabilidad

Esta parte es conocida tambin como unidad central de procesamiento o CPU formada a su vez por la unidad de control, la unidad aritmtica y lgica almacenamiento primario. Sus funciones consisten en leer y escribir contenidos de las celdas de memoria, llevar y traer datos entre celdas de memoria y registros especiales y decodificar y ejecutar las instrucciones de un programa. El procesador cuenta con una serie de celdas de memoria que se utilizan con mucha frecuencia y que, por ende, forman parte de la CPU. Estas celdas son conocidas con el nombre de registros. Un procesador puede tener una docena o dos de estos registros. La unidad aritmtica y lgica de la CPU realiza las operaciones relacionadas con los clculos numricos y simblicos. Tpicamente estas unidades slo tienen capacidad de efectuar operaciones muy elementales como: suma y resta de dos nmeros de punto fijo, multiplicacin y divisin de punto fijo, manipulacin de bits de los registros y comparacin del contenido de dos registros. Las computadoras personales pueden clasificarse por lo que se conoce como tamao de palabra, esto es, la cantidad de bits que el procesador puede manejar a la vez.

Memoria Central.
Es un conjunto de celdas (actualmente fabricadas con semiconductores) usadas para procesos generales, tales el almacenamiento de programas y el almacenamiento de datos . Cada una de las celdas debe contener un valor numrico y tienen la propiedad de ser direccinables, esto es, que se pueden distinguir una de otra por medio de un nmero nico o direccin para cada celda. El nombre genrico de estas memorias es Random Access Memory (Memoria de acceso aleatorio) o RAM por sus siglas en ingls. La principal desventaja de este tipo de memoria es que los circuitos integrados pierden la informacin que tienen almacenada cuando se interrumpe la alimentacin elctrica. Esto lleva a la creacin de memorias cuya informacin no se pierda cuando se apaga el sistema. Estas memorias reciben el nombre de Read Only Memory (Memoria de solo lectura) o ROM.

Unidades de Entrada y Salida.


Para que una computadora nos sea til es necesario que el procesador se comunique al exterior por medio de interfaces que permiten la entrada y la salida de datos del procesador y la memoria. Haciendo uso de estas comunicaciones es posible introducir datos para su procesamiento y la posterior visualizacin de los datos ya procesados. Algunas de las unidades de entrada mas comunes son teclados, lectoras de tarjetas (ya en desuso), mouse, etc. Las unidades de salida ms comunes son las terminales de vdeo y las impresoras.

Unidades de Memoria Auxiliar.


Como la memoria central de una computadora es costosa y, considerando las aplicaciones actuales, muy limitada, surge entonces la necesidad de crear sistemas de almacenamiento de informacin prcticos y econmicos. Adems, la memoria central pierde su contenido al apagarse la mquina, por lo que no es conveniente utilizarla para almacenamiento permanente de datos. Estos y otros inconvenientes dan lugar a la creacin de unidades perifricas de memoria que reciben el nombre de almacenamiento secundario (memoria auxiliar o secundaria). De estas unidades perifricas las ms comunes son las cintas y los discos magnticos. La informacin almacenada en estos medios magnticos recibe el nombre de archivo. Un archivo est formado por un nmero variable de registros, generalmente de tamao fijo; los registros pueden contener datos o programas.

Software
En trminos de computacin es todo aquel proceso o programa que utiliza los recursos de la computadora para lograr el objetivo trazado por su diseador o programador.

UNIDAD I
CONCEPTOS BSICOS
ARQUITECTURA DE LA COMPUTADORA
CPU Unidad de Control PC

Unidad Aritmtica Lgica AC

Dispositivo de entrada Escribir Leer Almacenamiento Primario

Dispositivo de Salida

Almacenamiento Secundario

Lneas de transmisin de datos Lneas de comunicacin 6

1) La Unidad de control tiene tres funciones bsicas: 1. Leer e interpretar instrucciones del programa. 2. Dirigir la operacin de los componentes internos del procesador 3. Controlar el flujo de programas y datos hacia y desde la RAM. Un programa se debe cargar primero a la RAM antes de que se pueda ejecutar. Durante la ejecucin, la primera de una secuencia de instrucciones del programa se transfiere de la RAM a la UC, donde el decodificador, la decodifica es decir, la interpreta. 2) La Unidad Aritmtica Lgica, realiza todos los clculos (+,-,*, /) y todas las operaciones lgicas (comparaciones). 3) El Almacenamiento Primario. Es el espacio donde se guarda el programa que va a ejecutar la computadora y los datos que va a procesar el programa, o sea de forma temporal en la memoria RAM. 4) El Almacenamiento Secundario. Tiene capacidad ilimitada, es menos costoso y se guardan los programas de forma permanente, algunos de estos son: unidades de disco magntico, unidades de cinta magntica, disco de lser ptico. 5) Dispositivos de entrada. Proporcionan los medios por los cuales los datos son transmitidos a la computadora. Ejemplos: tarjetas perforadas, teletipos y pantallas de tubos de rayos catdicos (CRT) con teclado. 6) Dispositivos de Salida. Los dispositivos de salida permiten mostrar los datos. Ejemplo: impresoras, pantalla. Programa. Es un conjunto de instrucciones expresadas en forma ambigedades para resolver un problema. lgica, es decir sin

7) PC. Contador del Programa. Est en la unidad de control e indica el nmero de celda de memoria que contiene la instruccin que en ese momento se est ejecutando. 8) AC. Acumulador. Est en la unidad lgica aritmtica y almacena los resultados parciales.

SISTEMAS DE NUMERACIN Y LAS COMPUTADORAS. Las primeras computadoras se diseaban basndose en el sistema de numeracin decimal. Este planteamiento hizo que el desarrollo de las capacidades lgicas de la computadora fuera innecesariamente complicado y no utilizaba los recursos con eficiencia. (Por ejemplo, se necesitaban 10 bulbos al vaco para representar un dgito decimal. Un programa especial traduce el sistema decimal al binario en la entrada y el sistema binario al decimal en la salida. En condiciones normales, un programador slo ver entradas y salidas decimales. Sin embargo, en su momento, ste deber manejar largas y confusas sucesiones de 1 y 0 en forma de un volcado de memoria. Esto es como una fotografa instantnea del contenido del almacenamiento primario (bits apagados y bits encendidos) en un momento determinado. Para reducir, por lo menos en parte, la confusin de ver slo 1 y 0 en la salida, el sistema de numeracin Hexadecimal (de base 16) se usa como una simbologa sucinta para presentar el contenido binario tanto del almacenamiento primario como el almacenamiento secundario, pero no confundir, por que las computadoras no operan ni trabajan con el sistema Hexadecimal.

Ejemplo 38C070 38C0A0 38C0D0 38C100 29306294 D06E0610 12C44E0 FF0098E0 4580623F 12114770 607011E D08012EE D20DD0AA 6202D203 41818001 47806310 6229640 D09F629D 44F06076 D27CF000 8CECCC04 4120D121 9640D112 480D06A 88F00010 45B06236 455062DA 48 800000004 5820D120 94BFD112 D06C

Esto es un volcado de memoria Hexadecimal. Cada uno de los renglones es una representacin Hexadecimal del contenido del almacenamiento primario. La primera columna de nmeros a partir de la izquierda consiste en direcciones del almacenamiento. Cada par de dgitos hexadecimales representa los ocho bits de un byte. La direccin del primer byte (29) del volcado de memoria es 0038C070 en el sistema Hexadecimal ( 00000000001110001100000001110000 en el sistema binario). Se puede 8

apreciar cunto espacio se ahorra presentando volcados de memoria en el sistema Hexadecimal en vez de presentarlas en el sistema binario.

Almacenamiento Primario (Memoria Principal, RAM) Direccin 0 1 Celda2 o localidad de memoria 5

Contenido

10

11

10

Por qu usar sistema de numeracin binaria para las operaciones aritmticas en la computadora?
SISTEMA DE NUMERACIN DECIMAL 0*0=0 0*1=0 0*2=0 0*3=0 0*4=0 0*5=0 0*6=0 0*7=0 0*8=0 0*9=0 10 1*0=0 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 9 2*0=0 2*1=2 2*2=4 2*3=6 2*4=8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 8 3 *0 = 0 3 *1 = 3 3 *2 = 6 3 *3 = 9 3 *4 = 12 3 *5 = 15 3 *6 = 18 3 *7 = 21 3 *8 = 24 3 *9 = 27 7 <- Nmero de combinaciones

Total de combinaciones diferentes por las tablas de multiplicar 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 55 Total de combinaciones diferentes por las tablas de sumar 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 55 SISTEMA DE NUMERACIN BINARIO 0*0=0 0*1=0 1*1=1 0+0=0 0+1=1 1 + 1 = 10

Total de combinaciones diferentes por las tablas de multiplicar = 3 Total de combinaciones diferentes por las tablas de sumar REGLA: LAS REGLAS ARITMETICAS SON UNIVERSALES NO DEPENDEN DEL SISTEMA DE NUMERACION QUE SE USE DECIMAL 9 1 10 BINARIO 1 +1 10 OCTAL 7 +1 10 MAGNITUDES
&&&&&&&&&& && &&&&&&&& &&&&&&&&&&&&&&&&

=3

HEXADECIMAL F +1 10

11

Sistemas de Numeracin Sistema Decimal Binario Octal Hexadecimal Base 10 2 8 16 Dgitos 0,1,2,3,4,5,6,7,8,9 0,1 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F No. de Dgitos 10 2 8 16 Dgito Mayor 9 1 7 F

Tabla de Equivalencias de los Sistemas de Numeracin Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Binario 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10

12

Conversiones entre Sistemas de Numeracin DECIMAL A BINARIO 76d = ? Residuo 76 | 38 | 0 19 | 0 9|1 4|1 2|0 1| 0

76d = 1001100b

BINARIO A DECIMAL 1001100b = ?

2+ 0 2

4 0 4+

8+ 1 9

19 1 18+

38+ 0 38

76 0 76+

1001100b = 76d

13

Conversiones entre Sistemas de Numeracin BINARIO A OCTAL Regla: Se separa la cantidad en grupos de tres bits de derecha a izquierda. Ejemplo: 10110101111b = ? 10 2 110 6 101 5 111 7

10110101111b = 2657o

OCTAL A BINARIO 3164o = ? Ejemplo: 3 11 1 001 6 110 4 100

3164 o = 11001110100b

14

Conversiones entre Sistemas de Numeracin BINARIO A HEXADECIMAL Regla: Se separa la cantidad en grupos de tres bits de derecha a izquierda. Ejemplo: 10110101111b = ? 101 5 1010 1111 A F

10110101111b = 5AFh

HEXADECIMAL A BINARIO E3A5 x = 1110001110100101b E 3 A 5 1110 0011 1010 0101 E3A5 x = 1110001110100101b

15

Conversiones entre Sistemas de Numeracin DECIMAL A OCTAL 348d = ? 348 28 4 8 43 3 8 5

348d = 534o

OCTAL A DECIMAL 534o = ? 5 * 8 = 40 + 3 = 43 * 8 = 344 +4 = 348 534o = 348d

16

Conversiones entre Sistemas de Numeracin DECIMAL A HEXADECIMAL 367d = ? 367 47 15 16 22 6 16 1

367d = 16Fx

HEXADECIMAL A DECIMAL 16Fx = ? 16Fx = 1 * 16 = 16 + 6 = 22 * 16 = 352 + 15 = 367

17

BIT : BINARY DIGIT BIT : DIGITO BINARIO (1,0)

Cul es el tamao ptimo de celda con respecto a Bits?


TAMAO DE CELDA LOCALIDAD DE MEMORIA PROPUESTO

Bits en la celda 1 bit


0 A 1 B

2 bits
00 01 10 11 A B C D 000 001 010 100 011 101 110 111

3 bits
A B C D E F G H

Nmero de combinaciones = 2bits/celda


El nmero optimo de bits por celda = 27= 128 combinaciones diferentes . Porque el nmero de caracteres diferentes que existen son: 10 dgitos: 0,1,2,3,4,5,6,7,8,9,0 27 letras maysculas: A, B, C, D, E, F, G, H, I, J ....X,Y, Z 27 letras minsculas: a,b,c,d,e,f,g,h,i,j .........................x,y,z 14 signos de puntuacin; , ; : . ! ? _ 23 especiales: |#$%&/()\*+[]{}@^~ >< 101 caracteres diferentes

18

Sin embargo, se decidi usar 8 bits por celda; basndose en el concepto de decimal empacado, como se muestra.

19

CODIGO EBCDIC
(CODIGO BINARIO)

0 1 2 3 4 5 6 7 8 9

111 1 111 1 111 1 111 1 111 1 111 1 111 1 111 1 111 1 111 1

000 0 000 1 001 0 001 1 010 0 010 1 011 0 011 1 100 0 100 1

20

36 11110011
DECIMAL

11110110
EMPACADO

00110110 36

58 11110101 11111000

01011000 58

21

Dando a origen al concepto de BYTE.

Unidad de capacidad unidad de medida de la memoria

1 BYTE = 8 bits
- Bit: digito binario ( 1 0) (Estado electrnico de encendido y apagado) Byte: es una combinacin de 8 bits.

Generndose 256 combinaciones diferentes y por lo tanto se pueden representar 256 caracteres diferentes.
-------- BYTE OPTIMO ------1 1 0 0 0 1 1

N =1 S

N =0 S

22

BYTE = 8 bits

1Kbyte = 1Mbyte = 1Gbyte = 1Tbyte = 1Pbyte = 1Ebyte = 1Zbyte = 1Ybyte =

210 Bytes = 1,024 Bytes 220 Bytes = 1,048,576 Bytes 230 Bytes = 1,073,741,824 Bytes 240 Bytes = 1,099,511,627,776 Bytes 250 Bytes = 1,024 TBytes 260 Bytes = 1,024 PBytes 270 Bytes = 1,024 EBytes 280 Bytes = 1,024 ZBytes

23

Cdigos de almacenamiento de Caracteres en memoria: ASCII (Cdigo Texto) EBCDIC (Cdigo Binario) ASCII: Generalmente se pronuncia aski, es un acrnimo de American Standard Code for Information Interchange, cdigo de intercambio estandar americano. Este cdigo asigna a las letras del alfabeto, a los dgitos decimales del 0 al 9 y a varios smbolos adicionales un nmero binario de 8 bits. De esta forma cada letra, dgito o carcter especial ocupa un byte en la memoria de la computadora. El cdigo ASCII es principalmente utilizado en la memoria para representar texto. EBCDIC: Extended Binary Coded Decimal Interchange Code Cdigo de intercambio decimal codificado en binario extendido. Se usa para realizar clculos numricos.

24

Cdigos

Carcter Dgito 0 1 2 3 4 5 6 7 8 9

ASCII 00110000 (48) 00110001 (49) 00110010 (50) 00110011 (51) 00110100 (52) 00110101 (53) 00110110 (54) 00110111 (55) 00111000 (56) 00111001 (57)

EBCDIC 11110000 11110001 11110010 11110011 11110100 11110101 11110110 11110111 11111000 11111001

25

UNIDAD II SOLUCIN DE PROBLEMAS USANDO LA COMPUTADORA COMO HERRAMIENTA

Qu es un Algoritmo?
Es una sucesin de pasos realizados en forma lgica, es decir, exentos de ambigedades para realizar una tarea. Un algoritmo tiene que ser un reflejo del tipo de programacin que se est utilizando.

PROBLEMA

Fase de Diseo

Fase Ardua No recomendable

ALGORITMO

SOLUCIN VA COMPUTADOR

Fase de Implementacion

LAS FASES PARA LA SOLUCIN DE PROBLEMAS USANDO LA COMPUTADORA COMO HERRAMIENTA:

1. Fase de Diseo 2. Fase de Implementacin

26

Desarrollo de las Dos Fases:

Fase de Diseo
Anlisis del problema

Fase de Implementacin
Codificacin del Algoritmo; Construccin del Programa

Diseo del Algoritmo

Ejecucin del Programa

Validacin del Programa Validacin del Algoritmo

Aplicacin del Programa

Nota: Todos los pasos a seguir en la Fase de Diseo, estn realizados por una persona, o sea, el programador. En la Fase de implementacin, el primer paso de arriba hacia abajo esta hecho por una persona, el segundo paso, por la computadora y el tercero y cuarto paso, esta hecho tanto por el programador como por la computadora.

27

El Anlisis del Problema consta de los siguientes pasos Anlisis del Programa

Descripcin del Problema

Datos de Entrada

Datos de Salida (Resultados)

Existen tres tipos de errores programacin Errores de Sintaxis o El analizador sintctico es una ayuda para resolver este tipo de errores. Errores de Lgica. o Se localizan haciendo pruebas de escritorio a travs del anlisis de resultados parciales y/o finales. Errores en Tiempo de Ejecucin o Son los ms difciles de localizar, dependen de una mala interpretacin del alcance o poder de una instruccin o del tipo de dato, inclusive del hardware y/o de la plataforma.

28

UNIDAD III TCNICAS PARA LA FORMULACIN DE ALGORITMOS

Pagina sobre la Iniciacin al diseo de algortmos www.desarrolloweb.com/manuales/67/


Instructivos Manual de Operacin Recetas de Cocina

Descripcion Narrada

Tcnicas para La Formulacin Pseudo cdigo De Algoritmos


Diagrama de flujo

29

BLOQUE

Int a,b,c Float x,y A

Smbolos de los diagramas de flujo para Algoritmos FUNCIN DESCRIPCIN DISPOSITIVOS QUE INTERVIENEN Declaracin de Reserva las celdas de Almacenamiento variables memoria que requieran primario cada una de las variables indicadas Lectura de Dato A Transferir el valor Dispositivo de entrada desde el dispositivo de Y almacenamiento entrada (teclado) a la primario celda de memoria asignada a la variable A. Escritura de A Transferir el valor Dispositivo de salida y almacenado en la celda almacenamiento de memoria asignada a primario la variable A al dispositivo estndar de salida (pantalla). Ejecuta las operaciones Almacenamiento aritmticas que se primario y unidad hayan a la derecha del lgica Aritmtica signo igual y el resultado almacnalo en la celda de memoria asignada a la variable que se haya a la izquierda del signo igual.

A=C+B

Calculo (instruccin aritmtica, sentencia de asignacin)

Inicio, Fin

Inicio del programa, as como el fin del programa Flujo del procesamiento

30

Con qu tipo de instrucciones puedo almacenar un valor en una celda?


Va sentencia de lectura y por sentencia de asignacin (instruccin aritmtica).

31

Estructuras para el Diseo de Algoritmos


1.Secunciales (lineales). 2.Condicionales (toma de decisiones). 3.Repetitivas (cclicas)

32

ALGORITMO PARA LA SUMA DE DOS NMEROS ESTRUCTURA SECUENCIAL DIAGRAMA DE FLUJO

INICIO

real num1, num2, suma

num1, num2

Suma = num1 + num2

Suma

FIN

33

ALGORITMO PARA LA SUMA DE DOS NMEROS ESTRUCTURA SECUENCIAL PSEUDOCODIGO

inicio declarar real: num1, num2, suma leer num1 leer num2 suma= num1 + num2 escribir suma fin

34

MEMORIA PRIMARIA Direccin Inicio 3 Leer num2 Contenido Fin suma 11 9 6 Suma = num1+ num2 num1 7 7 0 1 Declarar num1, num2, Leer num1 suma como real 4 Escribir suma num2 4 8 2 Celda o localidad de memoria 5

10

11

35

Qu es un Programa? Es una serie de instrucciones o sentencias ejecutadas de forma lgica, exenta de ambigedades, para resolver un problema y para escribir las instrucciones se pueden usar cualquiera de los siguientes lenguajes de alto nivel

LENGUAJES
Fortran PROG.FOR Cobol Basic PROG.CBL PROG.BAS

Pascal PROG.PAS C C++ PROG.C PROG.CPP

JAVA PROG.JAVA

36

UNIDAD IV ENTIDADES PRIMITIVAS PARA LA CONSTRUCCIN DE INSTRUCCIONES


Tipos de instrucciones o Sentencias Para Construir Programas
1) 2) 3) 4) Lectura de datos (entrada) Escritura de datos (salida) Procesamiento (instrucciones aritmticas, sentencia de asignacin) Estructuras de Control a. Condicionales (toma de decisiones) b. Repetitivas (cclicas)

37

Instrucciones Aritmticas
Variable = expresin aritmtica Signo de asignacin En una instruccin aritmtica se ejecutan los clculos indicados en la expresin aritmtica, y el resultado se almacena en la celda de memoria, que corresponde a la variable que de hall a la izquierda del sido igual (=) Operadores Aritmticos Elementos de las instrucciones Aritmticas Variables Constantes Funciones matemticas

Que es una variable?


Una variable es un espacio (Celda de Memoria que podemos reservar) al cual se le puede asignar diferentes valores segn nos convenga pero uno a la vez. En nuestro curso utilizaremos cuatro tipos bsicos de variables: numricas, caracteres, cadenas y lgicas (boleanas) ms adelante veremos sus caractersticas. Piensa que segn que tipo de lenguaje estemos utilizando para implementar nuestro cdigo pueden existir muchos tipos de variables diferentes.

Reglas para construir con propiedad nombres de variables


1. Debern usarse caracteres alfanumricos. 2. Deber comenzar con una letra minscula un guin bajo ( _ ) signo de pesos ( $ ). 3. Deber contener no mas de 65536 caracteres. 4. Deber usar nombres de variables que indiquen la tarea de la variable en el programa.

38

Precedencia o jerarqua de los operadores aritmticos OPERADORES PRECEDENCIA ARITMTICOS - monario 1ra * / % 2da + 3ra = 4ta
La Precedencia, es el orden en el que se ejecutan los clculos, en una expresin aritmtica. Los operndos pueden ser variables y constantes. Los operndos son separados por operadores aritmticos.

39

REGLAS PARA USAR LOS OPERADORES ARITMTICOS. 1. Cuando dos operadores tienen la misma precedencia, se ejecuta primero el que este ms cerca del signo igual. 2. Cuando dos operndos son del mismo tipo, la operacin se har de acuerdo al tipo de operndos. Es decir, si los operndos son enteros, la operacin ser entera y es consecuencia si con reales, la operacin ser real. 3. Cuando los operndos son de diferente tipo, la operacin se har de acuerdo al tipo de la variable que ocupe ms bytes de memoria. 4. Para modificar el tipo de la operacin se usar el modo cast (el molde para modificar el tipo de operacin) no modificando el tipo de los datos 5. Los parntesis rompen la precedencia de los operadores. 6. Los parntesis se ejecutan iniciando desde el ms interno y el que este ms cerca del signo igual.

40

OPERADORES ARITMTICOS DE ASIGNACIN.

+= -= *= /= %=

a = a + 8; b = b 9; p = p * (n-3); z = z / 10; r = r % 5;

a + = 8; b - = 9; p * = (n-3); z / = 10; r %= 5;

OPERADORES MONARIOS ARITMTICOS.

Incremento: ++ cont = cont + 1; cont ++; ++cont; Decremento: - cont = cont 1; --cont; cont - -;

41

Tipos de Datos Primitivos

Entero Numricos Real

Datos

Carcter Booleano (Lgico)

42

ESTRUCTURAS CONDICIONALES Se usa una estructura condicional para modificar el flujo del procesamiento de un programa de acuerdo al valor falso o verdadero de la condicin.
UNA RAMA SIMPLE DOS RAMAS ANIDADAS ESTRUCTURAS CONDICIONALES CONDICION COMPUESTA ANIDADAS SELECCIN MULTIPLE SIMPLE

43

Estructuras Condicionales Simples

V Sent 1

Condici n

Condicin F V Sent 1 F Sent 2

Sent 2

Sent 3

UNA RAMA if (condicin) Sentencia 1; Sentencia 2;

DOS RAMAS if (condicin) Sentencia 1; else Sentencia 2; Sentencia 3; if (condicin) Sentencia 1; else { Sentencia 2; Sentencia 3; } Sentencia 4;

if (condicin) { Sentencia 1; Sentencia 2; Sentencia 3; } Sentencia 4;

44

Condicin
Operando1 Operador de relacin Operando 2

Operando

Operadores de Relacin > < >= <= == != (DIFERENTE)

Constantes (8 > 3) Variables (T != 20) Expresiones Aritmticas (Q3 = = P*Q-8)

Combinaciones de operndos para construir condiciones


Variable Variable Variable <Operador de Relacin > <Operador de Relacin > <Operador de Relacin > Constante Variable Expresin Aritmtica Constante Variable Expresin Aritmtica

Expresin Aritmtica <Operador de Relacin > Expresin Aritmtica <Operador de Relacin > Expresin Aritmtica <Operador de Relacin >

45

Estructuras Condicionales Anidadas

Cond 1 Sent5

Cond 2 Cond 3 Sent1 Sent2 Sent3 Cond 4 Sent4

Sent6

If (Cond1) If (Cond2 ) If (Cond3) Sent1 Else Sent2 Else If Cond4 Sent3 Else Sent4 Else Sent5 Sent6

46

CONDICIN COMPUESTA. Es la unin de dos o ms condiciones a travs operador es lgicos

Condicin 1
Operador lgico

[Operador lgico]
Smbolos

Condicin 2
precedencia

No Y O

! && ||

1 2 3

47

TABLA DE VERDAD Para los Valores de las Condiciones Compuestas

C1
V V F F

C2
V F V F

C1&&C2
V F F F

C1| |C2
V V V F

!C1
F F V V

!C2
F V F V

En consecuencia, se construir una condicin compuesta ligando las condiciones con: 1. El operador Y (&&) cuando las condiciones deben de cumplirse necesariamente, para que se ejecute la rama de verdadero, de acuerdo a la lgica del programa. 2. El operador O (||) cuando una condicin es equivalente a la otra, es decir que una puede sustituir a la otra y basta que una de ellas se cumpla para que se ejecute la rama de verdadero, de acuerdo a la lgica del programa.

48

Estructuras Condicionales de Seleccin Multiple Las estructuras de seleccin multiple estn controladas por variables selectoras. Para que ejecute una rama de la estructura de seleccin mltiple, el valor de la variable selectora debe ser exactamente igual al valor de la etiqueta de esa rama. Si ningn valor de las etiquetas es igual al valor actual de la variable selectora, se ejecutara la rama de falso. En la estructura de seleccin mltiple puede o no usarse la rama de falso. Toda variable selectora puede ser nicamente del tipo entero o tipo carcter.
Inicio

int o char, variable selectora

Variable selectora

Variable selectora Etiq 2 Sent1 Sent2 Etiq 3 Sent3 Etiq 4 Sent4 Etiq 5 Sent5 Etiq 6 Sent6 Etiq Sent7 7 Falso error

fin

Variable selectora es de tipo ordinal y puede ser: Dato tipo entero Dato tipo carcter

49

UNIDAD IV
ESTRUCTURAS REPETITIVAS.
(CICLOS, BUCLES, RIZOS)

Un ciclo en programacin, es segmento de cdigo que se ejecuta ms de una vez repetidamente. Las estructuras cclicas que existen son: 1. While 2. Do-while 3. For Para el control de un ciclo durante su ejecucin existen dos tcnicas: 1. Por tarea de valor lmite. 2. Por centinela bandera. Se dice que un ciclo est controlado por tcnica por tarea cuando se conoce de antemano el nmero de veces que el ciclo se ejecutar. Se dice que un ciclo est controlado por tcnica por centinela cuando NO se conoce de antemano el nmero de veces que el ciclo se ejecutar. Existen tambin ciclos que son controlados por la combinacin de la tcnica por tarea y por la tcnica por centinela. Normalmente se combinan estas tcnicas para hacer ms eficiente la ejecucin del programa.

50

ESTRUCTURA WHILE.

INICIO Variable de control del ciclo Inicializacin de la variable que controla el ciclo (antes del ciclo)
Valor Lmite

Cont = 1

Cuer po del ciclo

Cont < =3
V F

Condicin del control del ciclo Fin Tarea a realizar en el ciclo

Hola

Cont ++

Actualizacin o modificacin de la variable que controla el ciclo.

CARACTERSTICAS: 1. La condicin va al principio del cuerpo del ciclo. 2. Existe la posibilidad de que NO se ejecute ninguna vez el cuerpo del ciclo.

51

ESTRUCTURA

DO WHILE.

Inicio

Cont =1

Hola

Cont = Cont +1
Cont < =3 F V

Fin

CARACTERSTICAS: 1. La condicin va al final del cuerpo del ciclo. 2. Existe la posibilidad de 1que se ejecute al menos una vez el cuerpo del ciclo.

52

Tcnicas en las que se sugiere se use la estructura do while 1. Tcnica de validacin


a. Sin mensaje b. Con mensaje

Validar significa aceptar durante el proceso de lectura


solamente valores en un intervalo dado (Caso 1) o valores especficos (Caso 2). Para el primer caso:
Aceptar solamente valores de calificaciones en el intervalo 0 a 100 en una variable de tipo entero.

Para el segundo caso:


El aceptar solamente el carcter s o el carcter n en una variable tipo caracter.

2. Tcnica de repeticin de un programa o de un mtodo

53

Tcnica de validacin sin mensaje


Ejemplo: Validar una calificacin en el intervalo de 0 a 100 durante un proceso de lectura.

Calif
Calif<0 o Calif>100 V F

Haz Leer Calificacin Mientras que (Calificacin < 0 o Calificacin >100)

54

Tcnica de validacin con mensaje

Calif

Calif<0 o Calif>100 F

V Mensaje

Calif<0 o Calif>100

Haz Leer calificacin Si (calificacin < 0 o calificacin >100) Escribir (Calificacin no valida debe ser de 0 a 100) Mientras que (calificacin < 0 o calificacin >100 )

55

Tcnica de validacin sin mensaje


Ejemplo: Validar que como respuesta reciba una s o una n.

Resp

Resp!= s y Resp!= n

Haz Leer respuesta Mientras que (respuesta != s y respuesta !=n)

56

Tcnica de validacin con mensaje

Resp

Resp != s y Resp != n

V Mensaje

Resp!= s y Resp !=n

Haz Leer respuesta Si (respuesta != s y respuesta !=n)) Escribir (respuesta debe ser s o n ) Mientras que (respuesta != s y respuesta !=n)

57

Tcnica de repeticin de la ejecucin de un programa o de un mtodo

CUERPO DEL PROGRAMA


Resp

Resp ==s
V F

Haz // Repeticin de programa {CUERPO DEL PROGRAMA} Haz // Validacin de respuesta Leer respuesta Si (respuesta != s o respuesta !=n)) Escribir (respuesta debe ser s o n ) Mientras que (respuesta != s o respuesta !=n) Mientras que (respuesta == s )
58

ESTRUCTURA FOR. Inicio

Cont=0 Cont<n

Fin

V Cont= Cont+1

Hola

CARACTERSTICAS: 1. El ciclo for es el ciclo while con tcnica por tarea. 2. El ciclo for contiene en forma empaquetada las tres sentencias bsicas que sirven para la ejecucin del ciclo. 3. Comnmente se usa cuando se realizan ciclos en los que se aplican la tcnica por tarea.

59

TCNICAS PARA EL CONTROL DE CICLOS. 1. Por Tarea (valor lmite) 2. Por Centinela (Bandera) 3. Por combinacin de ambas Se usa la tcnica para el control de un ciclo por tarea cuando se sabe a priori el nmero de veces que se va a ejecutar el ciclo. Se usa una tcnica para controlar el ciclo por centinela cuando desconozco desde antes el nmero de veces que se ejecutar el ciclo. Se usa una estructura while cuando existe una posibilidad dentro de la lgica del programa que la tarea del ciclo no se ejecute alguna vez.

- Toda variable Centinela Bandera sirve para detectar si el flujo del procesamiento paso por alguna rama de una condicin dada y dependiendo del valor de la variable Centinela Bandera se decidir cual rama de esa condicin debe ejecutarse. - Toda variable Centinela Bandera debe ser de tipo lgico y solamente puede tomar dos valores: true y false a esos valores se les conoce como valores Centinela Bandera. Toda variable Centinela de inicializarse ya sea con true con false.
60

CICLOS ANIDADOS.

INICIO

n<1

Cont = 0 Hola

Cont = Cont + 1

cont < n

Resp

Resp!=s&&Resp!=n

Resp = = s

Fin 61

ARREGLOS Disear un programa que capture una coleccin de calificaciones, calcule el promedio as como contabilice el nmero de calificaciones que se encuentren arriba del promedio, el nmero de calificaciones abajo del promedio y el nmero que se sean iguales al promedio. Calcular tambin los porcentajes de esas estadsticas, as como validar la calificacin. Se usan arreglos cuando se necesita acceder nuevamente a los datos. Manipular ms de una vez a una coleccin de datos. Un arreglo es una coleccin de datos del mismo tipo identificados bajo un mismo nombre de variable CARACTERISTICAS 1. A los datos en un arreglo se les denomina elementos del arreglo 2. Para identificar o acceder a un elemento se usara el nombre del arreglo, as como la posicin del elemento en el arreglo 3. A la posicin del elemento en el arreglo se le denomina ndice del arreglo el cual deber ser de tipo entero y puede estar representado por un valor, una variable o una expresin aritmtica. 4. Todo arreglo tendr un tamao fsico (MX), el cual indica el numero mximo de elementos que se podrn almacenar en ese momento en el arreglo a0 a1 a2 a3 a4 a5 a6 a7 a8

MX = 9

5. Tambin tendr un tamao lgico (tam) el cual indica el nmero de elementos actualmente almacenados. En consecuencia el tamao lgico jams deber ser mayor al tamao fsico y si as fuere provocara una interrupcin anormal del programa.

62

1.- TIPOS DE ARREGLOS CON RESPECTO A DIMENSIONES 1.1 unidimensionales 1.2 bidimensionales 1.3 tridimensionales .. . . 1.4 n dimensionales 2.- TIPOS DE ARREGLOS CON RESPECTO A LA CONCURRENCIA 2.1 nicos 2.2 Paralelos 3.- TIPOS DE ARREGLOS RESPECTO A TIPOS DE DATOS 3.1 Numricos 3.1.1 Enteros byte short int long 3.1.2 Reales float double 3.2 Caracteres char 3.3 Cadenas String 4.- TIPOS DE ARREGLOS CON RESPECTO A OCURRENCIAS (APARICIONES) 4.2 Con datos repetidos 4.2 Sin datos repetidos 5.- TIPOS DE ARREGLOS CON RESPECTO A ORDENAMIENTO 5.1 Sin datos ordenados 5.2 Con datos ordenados

63

OPERACIONES BASICAS CON ARREGLOS 1. Lectura 2. Escritura 3. Asignacin 4. Bsqueda 5. Insercin 6. Eliminacin 7. Actualizacin 8. Ordenamiento

64

UNIDAD VII PROGRAMACION MODULAR


Un Modulo es un segmento de cdigo que realiza una tarea especifica. Al programar con mdulos se usa la tcnica divide y vencers. Los mdulos pueden ser, genricamente hablando: Mdulos de Lectura (Capturar). Mdulos de Escritura (Mostrar). Mdulos de Clculos. Mdulos de Procesamiento.

65

UNIDAD V LENGUAJE DE PROGRAMACIN JAVA


Un programa tiene que escribirse en un lenguaje entendible por la computadora el cual se llama lenguaje ensamblador (lenguaje maquina) escrito en ceros y unos pero esta operacin es demasiado laboriosa, compleja y tediosa. Por lo que se crearon lenguajes de alto nivel ms cercanos al entendimiento humano tales como:

Fortran PROG.FOR Cobol Basic Pascal C C++ JAVA PROG.CBL PROG.BAS PROG.PAS PROG.C PROG.CPP PROG.JAVA

66

Al escribir un programa en un lenguaje de alto nivel programa fuente, se requiere transformarlo en un programa ejecutable (lenguaje maquina: ceros y unos) y para ello se debe usar un traductor. A los programas traductores se les llaman intrpretes o compiladores. Existiendo entre ellos diferencias. Un interprete no genera un programa escrito en lenguaje maquina sino que traduce en ese momento la instruccin que se va a ejecutar. Este proceso hace que la ejecucin sea lenta pero tiene la ventaja que el interprete es mas pequeo que un compilador. En consecuencia, un compilador traduce el

Programa escrito en un lenguaje de alto nivel

Compilador

Programa escrito en lenguaje maquina

.
Programa fuente en un programa ejecutable

67

Que es JAVA? JAVA lenguaje de programacin de alto nivel con el que se pueden escribir tanto programas convencionales como programas para Internet. Es un lenguaje con las siguientes caractersticas: 1. Interpretado 2. Sencillo 3. Orientado a objetos 4. Distribuido 5. Robusto 6. Seguro 7. Arquitectura neutra 8. Alto rendimiento 9. Multihilo 10. Dinmico

68

Java, desarrollado por Sun Microsystems en 1995, es un magnifico y completo lenguaje de programacin orientado a objetos, diseado para distribuir contenidos a travs de la red. Permite operar de forma independiente de la plataforma de hardware o de software. Al contrario de todo programa o aplicacin que queda atado al hardware y al sistema operativo. Por ejemplos: Una aplicacin de WINDOWS solo funcionar en plataforma WINTEL (Windows y procesador Intel). Una aplicacin creada para MAC solo funcionar para la plataforma MAC OS o IMAC. Una aplicacin creada para UNIX solo funcionar para la plataforma UNIX. Etc.

69

JAVA, por el contrario es poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo que permite que cualquier aplicacin desarrollada por JAVA quede ligada a JAVA independiente mente de la plataforma. Esta concepcin queda establecida en el concepto de Maquina Virtual de Java: JVM (Java Virtual Machine). JVM es un software que interpreta instrucciones en BYTECODE para cualquier maquina sobre la que est corriendo y que permite una vez que este instalado, que una misma aplicacin pueda funcionar en un PC o una MAC sin tener que hacer algn ajuste software. As, lo que hace JAVA en combinacin con esta MAQUINA VIRTUAL es funcionar como HARDWARE y como SISTEMA OPERATIVO VIRTUAL emulando en software, una PC UNIVERSAL. Al instalar JAVA, ste actuar como una capa de abstraccin entre el PROGRAMA y el SISTEMA OPERATIVO, otorgando una total independencia de lo que haya por debajo. Es decir, cualquier aplicacin funcionar en cualquier mquina e incluso en cualquier dispositivo. Una de las ventajas de JAVA sobre otros lenguajes de programacin es independiente de la plataforma tanto en cdigo fuente como en binario. Esto quiere decir que el cdigo producido por el traductor de JAVA puede transportarse a cualquier plataforma (INTEL, SPARC, MOTOROLA, Etc.) que tenga instalada una maquina virtual java y ejecutarse.
70

JAVA es lo ms cercano a un lenguaje a un LENGUAJE de COMPUTACN UNIVERSAL.

71

Segn lo expuesto, Java incluye dos elementos: un Compilador y un Intrprete. El Compilador produce un cdigo de bytes ( BYTECODE), escrito en UNICODE, que se almacena en un archivo para ser ejecutado por el Intrprete JAVA denominado maquina virtual de JAVA.
Programa escrito en JAVA Cdigo en Bytes ByteCode

Compilador

Maquina Virtual JAVA

72

Para facilitar el diseo del programa se usan Entornos de Desarrollo Integrados (Integrated Development Environment, IDE) como NetBeans, JCreator o Jgrasp. Bsicamente, todo Entorno de Desarrollo Integrado contiene: Editor Compilador o Interprete Analizador Sintctico Ayuda Por que JAVA es importante para INTERNET ? INTERNET ha ayudado a posicionar a JAVA en la cima del mundo de la programacin y a su vez JAVA ha tenido un profundo impacto en INTERNET. La razn es que JAVA extiende el universo de los OBJETOS que se mueven libremente en el CIBER ESPACIO que forma la red de INTERNET. En una red existen dos grandes categoras de objetos que se transmiten entre las computadoras conectadas: Informacin PASIVA. Ejemplo, los correos electrnicos. Informacin DINMICA. Ejemplo programas auto ejecutables que son agentes activos en la computadora cliente.

Estos PROGRAMAS DINMICOS presentan serios problemas de SEGURIDAD y PORTABILIDAD. JAVA ha resuelto gran cantidad de problemas con un nuevo modelo de programa llamado el APPLET. Entonces, JAVA puede crear dos tipos de programas: APLICACIONES (programas tipo stand alone) y APPLETS. Una APLICACIN es un programa que se ejecuta en SU computadora bajo el sistema operativo de SU computadora. En esencia, es un programa similar al creado al utilizar C, C++ PASCAL.
73

Un APPLET es una aplicacin diseada para ser transmitida por INTERNET y ejecutada por un NAVEGADOR WEB compatible con JAVA. Un APPLET es un pequeo programa JAVA, descargado dinmicamente por la red, tal como una IMAGEN, un archivo MUSICAL, o un VIDEOCLIP que es un programa inteligente que reacciona dinmicamente a entradas y cambios de usuario. En conclusion, la ejecucin de programas en Java tiene muchas posibilidades: 1. Ejecucin como aplicacin independiente (Stand-alone Application). 2. La ejecucin como applet, 3. La ejecucin como servlet, etc. La ejecucin como aplicacin independiente es anloga a los programas desarrollados con otros lenguajes. Un applet es una aplicacin especial que se ejecuta dentro de un navegador o browser (por ejemplo Netscape Navigator o Internet Explorer) al cargar una pgina HTML desde un servidor Web. El applet se descarga desde el servidor y no requiere instalacin en el ordenador donde se encuentra el browser. Un servlet es una aplicacin sin interface grfica que se ejecuta en un servidor de Internet.

74

JAVA como lenguaje de ITERNET

Computadora Local
Sistema Operativo
Navegador JAVA

Computador Servidor

JAVA Virtual Machine

Cdigo nativo de JAVA

75

Terminologa en JAVA
JVM Java Virtual machine JDK Java Development Kit, viene incluido con l, paquetes de libreras que contienen miles de clases.

SDK Software Development Kit, contiene: Las clases que se requieren para desarrollar programas JAVA Herramientas de compilacin, ejecucin y depuracin de cdigo. SDK Software Development Kit, viene con: Un compilador controlado por lnea de ordenes (JAVAC) Una copia de JVM, el motor que corre cdigos de byte (BYTECODE) compilados adecuados para la plataforma WINDOWS, UNIX, LINUX, etc. de su computadora (JAVA)

JIT Just In Time, es un compilador de JAVA que traduce por completo el programa y convirtindolo en ejecutable. La principal ventaja de SDK es su carcter gratuito, autorizado y actualizado. Su principal desventaja es que proporciona slo herramientas de desarrollo estilo lnea de rdenes en vez de un entorno grfico de programa visual. El lenguaje evoluciona rpidamente y el mejor lugar para consultar las ltimas versiones y actualizaciones del mismo se encuentran en el sitio Web de Internet de Sun

www.sun.com www.javasoft.com

76

ESQUEMA UML BASICO DE UNA CLASE

[<Acceso> ] <Nombre de la clase>

Declaracin de variables de instancia


< Acceso 1 > <Tipo 1> < Nombre de la variable 1 >; < Acceso 2 > <Tipo 2> < Nombre de la variable 2 >; .. < Acceso n > <Tipo n> < Nombre de la variable n >;

Mtodos de Instancia
< Acceso 1 >< Nombre del mtodo 1 >( argumentos): valor de retorno > < Acceso 2 > < Nombre del mtodo 2 >( argumentos): valor de retorno > < Acceso 3 > < Nombre del mtodo 3>( argumentos): valor de retorno >

Acceso a una propiedad Acceso es una caracterstica de los atributos, propiedades (variables) de una clase. Esa caracterstica permite acceder, usar, o modificar el valor almacenada en su respectiva celda de memoria. Acceso a un mtodo Acceso es una caracterstica de los mtodos que permite o no acceder, invocar o llamar a ejecutar un mtodo de un objeto a travs de otros objetos, va envo de mensajes.

77

Tipos de Accesos: 1. Privado (-) private Un miembro de una clase declarado privado puede ser accedido por un objeto de esa clase slo desde los mtodos de esa clase. Esto significa que no puede ser accedido por los mtodos de cualquier otra clase, incluidas las subclases. 2. Publico (+) public Un miembro de una clase declarado pblico puede ser accedido por un objeto de esa clase en cualquier parte de la aplicacin donde el objeto en cuestin sea accesible. 3. Protegido ( ) protected Un miembro de una clase declarado protegido se comporta exactamente igual que uno privado para los mtodos de cualquier otra clase, excepto para los mtodos de las clases del mismo paquete o de sus subclases con independencia del paquete a que pertenezcan, para las que se comporta como un miembro pblico. 4. Por defecto ( ) Un miembro de una clase declarado por defecto se comporta exactamente igual que uno privado para los mtodos de cualquier otra clase, excepto para los mtodos de las clases del mismo paquete.

Derechos de acceso entre clases

Restricciones Esta Clase Subclases public si si protected si si private si no por defecto si no

Paquete si si no si

General si no no no

78

Definicin de una Clase [<Acceso>] class CUnaClase { Declaracin de Variables de instancia

< acceso > <tipo_1> variable_1 ; < acceso > <tipo_2> variable_2; . . . .
< acceso > <tipo_n> variable_n ; Definicin de los mtodos de instancia < acceso > <valor de retorno> mtodo_1 (parmetros)

{
Declaracin de variables locales Cdigo del mtodo_1

}
< acceso > <valor de retorno> mtodo_2 (parmetros )

{
Declaracin de variables locales Cdigo del mtodo_2

} {

. .

. .

< acceso > <valor de retorno> mtodo_n (parmetros) Declaracin de variables locales Cdigo del mtodo _n

} }

79

ESTRUCTURA DE UN PROGRAMA EN JAVA El programa realiza la suma de dos nmeros


/* * Programa No. 1 * Suma de dos Nmeros Diseado por Jos Mara Francisco Cabrera Gutirrez Instituto Tecnlogico de len Ingeniera en Sistemas Computacionales Asesor Jos Mara Francisco Cabrera Gutirrez len, Gto. a 23 de Febrero de 2010 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * >>>> Algoritmo <<<<< INICIO Declarar real num1, num2, suma leer num1, num2 suma = num1 + num2 escribir suma FIN >>>>> Esquema UML de la clase clase CSuma //Atributos - real num1 - real num2 - real suma //Costructores + CSuma()// Por defecto + CSuma( real n1, real n2) // Mtodo de la clase + vacio sumar() // Mtodos de asignacion + vacio asignarNum1(real n1) + vacio asignarNum2(real n2) 80

* // Mtodo de obtencion() * + real obtenerSuma() * * */ class CSumaDosNums{ //Atributos private double num1; private double num2; private double suma; //Costructores public CSuma(){// Por defecto } public CSuma( double n1, double n2){ num1=n1; num2=n2; suma =0.0; } // Mtodo de la clase public void sumar(){ suma = num1 + num2; } // Mtodos de asignacion public void asignarNum1(double n1){ num1=n1; } public void asignarNum2(double n2){ num2=n2; } // Mtodo de obtencion() public double obtenerSuma(){ return suma; } }// Fin de la clase CSuma

81

El cdigo de esta clase deber ser almacenado en el archivo CSumaDosNums.java

82

Definicin de la Clase de prueba [<Acceso>] class Clase Prueba

public static void main(String[] argumentos)


{

Instanciar las clases creando los objetos Declaracin de variables locales Invocacin a los mtodos (envo de mensajes)

[ variable = ] objeto. mtodo_1 (parmetros); [ variable = ] objeto. mtodo_2 (parmetros); [ variable = ] objeto. mtodo_3 (parmetros);

. . . .
}

. . . .

[ variable= ] objeto. mtodo_n (parmetros)

83

import java.util.Scanner; class SumaDosNums{// Clase de prueba para la clase CSumaDosNums public static void main(String[] arg){ double num1=0.0; double num2=0.0; double suma=0.0; String cad=; // Objeto auxiliar System.out.println(\n\tPrograma para sumar dos numeros\n); CSumaDosNums operacion; // Crear la referencia al objeto llamado operacion operacion = new CSumaDosNums(); // Crea el objeto de la clase CSumaDosNums y ejecuta el constructor cad=leer(Introduce el numero 1 > ); num1 =Double.parseDouble(cad);//Convierte la secuencia de caracteres almacenada en la cadena en valor tipo doble cad=leer(Introduce el numero 2 > );//Convierte la secuencia de caracteres almacenada en la cadena en valor tipo doble num2 =Double.parseDouble(cad); operacion.asignarNum1(num1);// Mensaje al objeto operacion para que ejecute el mtodo operacion.asignarNum2(num2);// Mensaje al objeto operacion para que ejecute el mtodo operacion.sumar();// Mensaje al objeto operacion para que ejecute el mtodo suma = operacion.obtenerSuma();// Mensaje al objeto operacion para que ejecute el mtodo escribir( num1 + + + num2 + = + suma); }//Fin del main()

84

public static String leer (String msj){// Mtodo para leer una cadena Scanner scan = new Scanner(System.in); System.out.print(msj); String cadena = scan.nextLine(); return cadena; } public static void escribir ( String msj){// Mtodo escribir el contenido de la cadena msj System.out.println(\n\t + msj); } }

El cdigo de esta clase deber ser almacenado en el archivo SumaDosNums.java

85

import java.util.Scanner; class SumaDosNumsOtra{// Otra CSumaDosNums

Clase de prueba para la clase

public static void main(String[] arg){ double num1=0.0; double num2=0.0; double suma=0.0; String cad=; // Objeto auxiliar System.out.println(\n\tPrograma para sumar dos numeros\n); cad=leer(Introduce el numero 1 > ); num1 =Double.parseDouble(cad);//Convierte la secuencia de caracteres almacenada en la cadena en valor tipo doble cad=leer(Introduce el numero 2 > ); num2 =Double.parseDouble(cad); //Convierte la secuencia de caracteres almacenada en la cadena en valor tipo doble CSumaDosNums operacion; // Crear la referencia al objeto llamado operacion operacion = new CSumaDosNums(num1,num2); // Crea el objeto de la clase CSumaDosNums y ejecuta el constructor operacion.sumar();// Mensaje al objeto operacion para que ejecute el mtodo suma = operacion.obtenerSuma();// Mensaje al objeto operacion para que ejecute el mtodo escribir( num1 + + + num2 + = + suma); }//Fin del main()

86

public static String leer (String msj){// Mtodo para leer una cadena Scanner scan = new Scanner(System.in); System.out.print(msj); String cadena = scan.nextLine(); return cadena; } public static void escribir ( String msj){// Mtodo escribir el contenido de la cadena msj System.out.println(\n\t + msj); } }

El cdigo de esta clase deber ser almacenado en el archivo SumaDosNumsOtra.java

87

Teora sobre mtodos y otros conceptos.


1. Al disear una clase, sta solamente debe contener los mtodos se refieren a: i. Clculos aritmticos ii. Procesos para manipular datos tales como: a. Bsquedas b. Actualizaciones c. Inserciones d. Eliminaciones e. Ordenamientos, etc. 2. Los mtodos de lectura o escritura de atributos (datos) deben implementarse en la clase de prueba. No olvidar que la clase de prueba es usualmente, lo que conocemos como programa en cualquier otro lenguaje. 3. Los mtodos para ejecutarse, deben formar parte de un objeto (mtodos de instancia) o pertenecen a una clase (mtodos de clase). 4. Un mtodo de instancia en aquel que solamente se puede invocar, llamar o usar a travs de un objeto de la clase que contiene ese mtodo. Ejemplos: operacion.asignarNum1(), operacin.asignarNum2(), operacion.obtenerSuma(), operacion.sumar(), etc.

88

5. Un mtodo de clase es aquel que se puede invocar, llamar o usar a travs de la clase sin necesidad de instanciarla es decir crear un objeto. Ejemplos: Double.parseDouble(), Math.pow(), etc.

6. Para identificar si mtodo es de clase, en la definicin del mtodo debe estar precedido por la palabra reservada static. Los mtodos de instancia no contienen en su definicin la palabra reservada static. 7. No existen mtodos hurfanos es decir, que se llamen, invoquen o usen sin pertenecer a una clase. 8. Los mtodos deben formar parte de un objeto (mtodos de instancia) o pertenecen a una clase (mtodos de clase). 9. La nica excepcin son los mtodos estticos que se hayan en la clase de prueba que para invocarse, para llamarse o para usarse no estn precedidos por un objeto o una clase. 10. Todas las clases deben iniciar con mayscula y los atributos, objetos y mtodos en minsculas.

89

Para una mejor asesora por Internet


Con el propsito de poder asesorarlos ms eficientemente, solamente arreglar aquellos programas que cumplan con los siguientes requisitos: Al principio de la clase diseada, deber contener 1. Nmero de programa: 2. El enunciado del programa. 3. Diseado por 4. Materia 5. Grupo 6. Asesor Ing. Jos Mara Francisco Cabrera Gutirrez 7. Fecha Ejemplo: /* Programa No. 3 Enunciado: En una compaa pagan a los empleados de acuerdo a las horas trabajadas por semana y reciben un incremento de 0.35% del pago semanal por cada ao de antigedad. Disear un programa que lea las horas trabajadas por semana, el pago por hora y los aos trabajados, calcular y mostrar el pago semanal con y sin incremento. Diseado por: Juan Compilador del Algoritmo Materia Fundamentos de Programacin Grupo C Asesor: Ing. Jos Mara Francisco Cabrera Gutirrez Len, Gto. A 13 de octubre de 2008 */
90

Esquema para probar una clase diseada

Clase diseada

Mensajes

Clase de Prueba

91

92

Objeto 1

Mtodos Atributos

Mensajes

Mtodos

Atributos

Objeto 2 Esquema de un programa de aplicacin con los Objetos que usa para su implementacin

93

objeto_1= New CClase_1( )

objeto_3= New CClase_3( )

Programa De Aplicacin
objeto_2= New CClase_2( ) objeto_4= New CClase_4( )

94

95

Secuencia \n \t \b \r \f \a \ \

ASCII CR+LF HT BS CR FF BEL

Secuencias de escape

Definicin Lnea nueva


Tabulador horizontal

Retroceso Retorno de Carro


Alimentacin pagina

Alerta, pitido Comilla simple Comilla doble

96

Palabras reservadas en JAVA

abstract static interface false byte synchronized finally null for match throws package goto const try implements import do volatile instanceof

else boolean strictfp long final switch case this operador future generic transient private protected continue default return inner double widefp

int extends break super native new float cast throw outer char class true if public var void rest short while

97

COMENTARIOS Hay dos formatos para escribir comentarios Comentario en una sola lnea // Ejemplo: // Este es un comentario en una linea Comentarios en varias lneas /*...*/ Ejemplo:

/*
Instituto Tecnolgico de Len Programa ...... Enunciado ..... Diseado por .... Materia ... Grupo .... Carrera ... Semestre ..... Asesorado por .... Fecha ....

*/

98

Signos de puntuacin y separadores

! |

% [

$ ]

& \

* ;

) _

<

+ >

= ?

{ ,

} .

^ /

99

Paquetes Un paquete es un conjunto de clases, lgicamente relacionadas entre s, agrupadas bajo un nombre. Por ejemplo, el paquete java.io agrupa las clases que permiten a un programa realizar la entrada y salida de informacin. Incluso un paquete puede contener otros paquetes.

Java lang io util applet net awt Predeterminado Otros paquetes

100

El paquete java.lang contiene las clases que son el ncleo de java. 1. System 2. String 3. Integer 4. Math 5. Etc.

El paquete java.io contiene las clases que son usadas para entrada y salida. 1. BufferedReader 2. InputStreamReader 3. FileInputStream 4. FileOutputStream 5. etc.

1. 2. 3. 4. 5.

El paquete java.util guarda diversas clases de utilidad. Date Random StringTockenizer Scanner etc.

El paquete java.applet suministra clases para crear applets. El paquete java.awt suministra clases para interfaces grficos.

101

La declaracin import Con esta declaracin se especifican las clases de los paquetes que van a utilizar en un programa. La declaracin tiene dos formatos: import nombrePaquete.nombreClase; Especifica la clase que se va a utilizar. import nombrePaquete.*; Especifica que estn disponibles todas las clases del paquete. Al incorporar las clases de ms de un paquete puede ocurrir que haya nombres de clases iguales; para que no haya ambigedad, hay que preceder el nombre de la del paquete al nombre de la clase. Por ejemplo si hubiera alguna colisin con la clase Random, para crear un objeto se escribir: Java.util.Random aleatorio = new java.util.Random();

102

Proteccin de una clase La proteccin de una clase determina la relacin que tiene con otras clases de otros paquetes. Niveles de proteccin: 1) De Paquete, solamente puede ser usado por las clases de ese paquete. 2) Publico, puede ser usado por cualquier clase de otro paquete. Qu se entiende por utilizar? Que la clase puede crear objetos de otra clase y manipularlos usando sus mtodos. Por omisin una clase tiene nivel de paquete y si se desea que tenga el nivel pblico debe calificarse la clase anteponindole la palabra reservada public. Por ejemplo la clase System del paquete java.lang es publica por eso se ha podido utilizar en el ejercicio anterior. Los tipos de datos en JAVA son tipos primitivos tipos referenciados Tipos primitivos Tipos numricos Tipos enteros

byte short int long char


Tipos reales

(1 byte) ( 2 bytes) (4 bytes) ( 8 bytes) (2 bytes) ( 4 bytes) ( 8 bytes)

float double
Tipo Boolean (lgico)

103

Tipo char byte short int long float double boolean

Tamao en bytes 2 1 2 4 8 4 8 1 bit

Rango (mnimos...mximos) 0 a 216- 1 -27 a +27-1 -215 a +215-1 -231 a +231-1 -263 a +263-1 +-3.4 x10 +-38 a +- 3.4x10+-38 +-1.7 x10 +-308 a +- 1.7x10+-308

Precisin en dgitos

De 5 a 6 De 15 a 16 false o true

CONVERSION ENTRE TIPOS DE DATOS byte short int long float double

char

Expansin Contraccin

104

mbito o Alcance de una variable El mbito o alcance de una variable es el segmento de cdigo donde una variable en visible, es decir la parte del programa donde la variable puede ser manipulada en una sentencia a travs de: 1. Usado el valor almacenado 2. Modificado el valor almacenado

EL mbito de una variable puede ser sobre: 1. Toda la clase, para este caso son los atributos o propiedades o variables de instancia. 2. Un mtodo, para este caso son las variables locales que se declaran dentro del mtodo. 3. Un bloque de cdigo, para este caso son las variables que se declaran dentro de un bloque el cual es especificado por llaves {}

Declaracin de Constantes Simblicas Ejemplo 1: final static PI= 3.141592654; S la constante PI es declarada dentro de la clase y podr ser vista (usada) por cualquier mtodo. Ejemplo 2: Final ACELERACIONGRAVEDAD = 9.8; S la constante es usada solamente dentro del mtodo que fue declarada y nunca dentro de otro mtodo. En consecuencia no deber incluirse la palabra reservada static.

105

Modificador Static En java existen dos tipos de mtodos: 1. Mtodos de Instancia Para ser usados debe de instanciarse la clase, crear el objeto para que a travs de l se usen los mtodos. 2. Mtodos de Clase Para ser usados no se requiere instanciar la clase y en consecuencia no se encuentra asociado a ningn objeto. Fragmento de cdigo que usa ambos tipos de mtodos String cad = new String (Se inicializa la cadena con este texto); // Invocacin al mtodo de instancia length() int n = cad.length(); // Invocacin del mtodo de clase valueOf() String cadN= String.valoeOf(n);

106

As como existen mtodos de clase existen constantes de clase y variables de clase. Definicin de un mtodo de clase: < acceso> static <valor retorno> mtodo (argumentos) Definicin de una constante de clase < acceso> static final <tipo dato> variable = valor; Definicin de una variable de clase < acceso> static <tipo dato> variable;

107

Tipos referenciados Las clases Las interfaces Los arreglos

108

EXCEPCIONES
El lenguaje JAVA incorpora soporte para manejar situaciones anmalas, conocidas como excepciones, que pueden ocurrir durante la ejecucin de un programa. Con el sistema de manipulacin de excepciones de JAVA, un programa puede comunicar eventos inesperados a un contexto de ejecucin ms capacitado para responder a tales eventos anormales. Estas excepciones son manejadas por cdigos fuera del flujo normal del control del programa. Las excepciones proporcionan una manera limpia de verificar errores; esto es, sin abarrotar el cdigo bsico de una aplicacin. Es decir, sin afectar el cdigo esencial del programa que permite resolver un problema. El manejo de excepciones ofrece una forma de separar explcitamente el cdigo que maneja los errores del cdigo bsico de una aplicacin, hacindola ms legible, lo que desemboca en un buen estilo de programacin. La sintaxis es como se presenta: try

{ }

// Cdigo de una aplicacin

{ } { } . . . { }

catch ( ClaseDeExcepcion e)

// Cdigo para el tratamiento de esta excepcin

catch ( OtraClaseDeExcepcion e)

// Cdigo para el tratamiento de esta excepcin

catch ( AlgnOtraClaseDeExcepcion e)

// Cdigo para el tratamiento de esta excepcin

109

Bsicamente, el esquema anterior dice que s el cdigo de una aplicacin no puede realizar una operacin, se espera que lance una excepcin que ser tratada por el cdigo correspondiente para esa clase de excepcin, en su defecto por JAVA. Algunas de las excepciones ms comunes ArithmeticException Una operacin aritmtica excepcional ha ocurrido. Por ejemplo una divisin por cero. ArrayIndexOutOfBoundsException Una matriz fue accedida con un ndice ilegal, es decir fuera de los lmites permitidos. NullPointerException Se intent utilizar la constante null donde se requera un objeto. NumberFormatException Se intent convertir una cadena con caracteres diferentes a dgitos y/o punto decimal en un nmero.

110

Qu es lo que ocurri entonces, cuando durante la ejecucin de un programa se lanz una excepcin? Lo ms probable es que el programa dej de funcionar. JAVA visualiz un mensaje acerca de lo ocurrido.

S esto, NO lo deseamos deberemos de aprender a como manejar excepciones. Las excepciones en JAVA son objetos de clases derivadas de la clase Throwable definida en el paquete java.lang. As, cuando se lanza una excepcin de la clase ArithmeticException y automticamente JAVA crea un objeto de esta clase.

111

Jerarqua de las clases de excepcin que se haya en el paquete java.lang

Throwable Exception RuntimeException ClassNotFoundException IOException EOFException Error

Un objeto de la clase Error se crea cuando ha ocurrido un problema serio que involucra a la maquina virtual de JAVA por lo que una aplicacin normal no suele manipular este tipo de excepcin. La clase Exception conre las excepciones que una aplicacin normal puede manipular. Tiene varias subclases entre las que destacan RuntimeException e IOException. La clase RuntimeException cubre las excepciones ocurridas al ejecutar operaciones sobre los datos que manipula la aplicacin. Son Excepciones que se lanzan durante la ejecucin. En contraposicin a las que se lanzan por causas no dependientes de la maquina virtual de JAVA, como sucedera cuando no se pudiera leer de un fichero del disco. 112

Son ejemplos de excepciones de este tipo ArithmeticException o NUllPointerException. Este tipo de excepciones pertenece al paquete java.lang. La clase IOException cubre las excepciones ocurridas al ejecutar las operaciones de entrada o salida. Este grupo de excepciones pertenece al paquete java.io Las excepciones que se lanzan durante la ejecucin son excepciones implcitas y se corresponden con las subclases RuntimeException y Error. Se dice que son implcitas porque son lanzadas por la maquina virtual de JAVA y por lo tanto, los mtodos implementados en las aplicaciones no tienen que declarar que las lanzan, y aunque lo hicieran, cualquier otro mtodo que los invoque no est obligado a manejarlas. El resto de las excepciones, como las que corresponden con las subclases de IOException, son excepciones explicitas; esto significa, que si se quieren manipular, los mtodos implementados en las aplicaciones tienen que declarar que las lanzan y en este caso, cualquier otro mtodo que los invoque est obligado en manejarlas. El compilador Java nunca obliga a manejar una excepcin de la clase ArithmeticException pero s una excepcin de la clase IOException. S en una aplicacin invocamos el mtodo read() de la clase BufferedReader tiene la obligacin de lanzar una excepcin de la clase IOException.

113

COMO MANEJAR EXCEPCIONES Cuando un mtodo se encuentra con una anomala que no puede resolver, lo lgico es que lance (throw) una excepcin, esperando que quien lo llam directa o indirectamente la captura (catch) y maneje esa anomala. S la excepcin no se captura, el programa finalizar automticamente. Ejemplo Import java.io.*; Public class Leer { public static String datoStr(); { String cadena = ; try { // definir el flujo entrada InputStreamReader flujoEntrada; flujoEntrada =InputSreamReader(System.in); BufferedReader scan; scan = new BufferedReader(flujoEntrada); cadena = scan.readLine(); } catch ( IOException error) { System.err.println(Error: + error.getMessage()); } return cadena; // devuelve la cadena tecleada } // Fin del mtodo datoStr() } // Fin de la clase Leer

114

Las palabras try y catch trabajan conjuntamente y pueden traducirse as: Poner a prueba un segmento de cdigo por si se lanzara una excepcin: Si se ejecuta satisfactoriamente seguir con la ejecucin de la aplicacin. En caso contrario Capturar la excepcin lanzada y manejarla. LANZAR UNA EXCEPCION Lanzar una excepcin equivale a crear un objeto de la clase excepcin para manipularlo fuera del flujo normal de ejecucin de la aplicacin. Para lanzar una excepcin se utiliza la palabra throw y para crear un objeto, new. Por ejemplo, volviendo al mtodo datoStr() de la clase Leer, s ocurre un error cuando se ejecuta el mtodo readLine() se supone que ste mtodo ejecutar la sentencia similar a la siguiente: If (error) trow new IOException();

115

Esta sentencia lanza una excepcin de la clase IOException lo que implica crear un objeto de esta clase. Un objeto de stos contiene toda la informacin acerca de la excepcin, incluyendo su tipo y el estado del sistema cuando el error ocurri. CATURAR UNA EXCEPCION Una vez lanzada la excepcin, el sistema es responsable de encontrar a alguien que la capture con el objetivo de manipularla. El conjunto de esos alguien es el conjunto de mtodos especificados en la pila de llamadas hasta que ocurri el error. Por ejemplo, considere la siguiente aplicacin, que invoca al mtodo datoStr() de la clase Leer

116

Public class Prueba

public static void main(String[] arg)

{
String cadena; Cadena = Leer.datoStr();

} }
Cuando se ejecute esta aplicacin y se invoque al mtodo datoStr(), la pila de llamadas crecer como se observa en la siguiente figura.

BufferedReader.readLine( )

Leer.dato

Prueba.main()

117

S al ejecutarse el mtodo readLine() ocurriera un error ste


mtodo lanzara una excepcin de la clase IOException que interrumpira el flujo normal de la ejecucin. Despus el sistema buscara en la pila de llamadas hacia abajo y comenzando con el propio mtodo que produjo el error, un mtodo que implemente un manejador que pueda capturar la excepcin. S el sistema descendiendo por la pila de llamadas, no encuentra este manejador, el programa terminara.

118

Para implementar un manejador para una clase de excepcin: 1. Encerrar el cdigo que pueda lanzar una excepcin en un bloque try. Refirindonos al ejercicio de la clase Leer tenemos: try { // definir el flujo entrada

InputStreamReader flujoEntrada; flujoEntrada =InputSreamReader(System.in); BufferedReader scan; scan = new BufferedReader(flujoEntrada); cadena = scan.readLine(); } 2. Escribir un bloque catch capaz de capturar la excepcin lanzada. En la clase Leer el mtodo datoStr() tiene un bloque match capaz de capturar excepciones de la clase IOException y de sus subclases catch ( IOException error) { System.err.println(Error: + error.getMessage()); }

119

En este manejador se observa parmetro error que referencia al objeto que se cre cuando se lanz la excepcin capturada. Para manipularla, adems de escribir el cdigo que consideremos adecuado, dispondremos de la funcionalidad proporcionada por la clase IOException, y a la cual podemos acceder a travs de objeto error. Por ejemplo, el mtodo getMessage() devuelve una cadena con informacin acerca de la excepcin ocurrida.

120

Clase Formatter Un objeto de la clase Formatter es un interprete para cadenas de formato utilizadas con el mtodo printf() para dar formato de salida. El soporte que proporciona esta clase permite: Mostrar los nmeros, justificados y alineados. Mostrar las cadenas, justificadas y alineadas.

%[indice$][flags][ancho][.precisin]tipo Una especificacin de formato siempre comienza con %

ndice

Es un nmero entero que indica la posicin del argumento en la lista de los argumentos args.

El primer argumento esta referenciado por 1$, el segundo por 2$, as sucesivamente.

121

flags

significado

Justificado a la izquierda, dentro del ancho especificado. Por defecto la justificacin se hace a la derecha. Antepone el signo + o el signo al valor de salida.

Rellena la salida con ceros no significativos (a la izquierda) hasta alcanzar el ancho mnimo especificado. Antepone un espacio en blanco al valor de salida s es positivo. Cuando se utiliza con la especificacin de formato o, x X, anteponerse al valor de salida 0, 0x 0X respectivamente.

Blanco

122

Ancho

Mnimo nmero de posiciones para la salida. S el valor a escribir ocupa ms posiciones que las especificadas, el ancho es incrementado e lo necesario.

Precisin El significado depende del tipo de salida.

123

Tipo Carcter
d

es uno de los siguientes caracteres, entre otros: Salida


entero con signo en base 10 entero sin signo base 16 valor con signo de la forma [-]ddddd.dddd valor con signo de la forma [-]ddddd e[+-]dddd valor con signo de la forma [-]ddddd E[+-]dddd valor con signo, en formato f e (el que sea ms compacto en valor y precisin dado) valor con signo, en formato f E (el que sea ms compacto en valor y precisin dado) un solo carcter, correspondiente al byte menos significativo. Escribir una cadena de caracteres. o t Prefijo para el formato de una fecha o una hora

entero sin signo base 8

x X f e E g G c S T

124

La precisin, en funcin del tipo tiene el siguiente significado:

E, e, f

G, g s

Especifica el nmero de dgitos que se tienen que escribir despus del punto decimal. Por defecto es 6 y el valor es redondeado. Especfica el mximo nmero de dgitos significativos. Por defecto es 6. Especfica el nmero mximo de caracteres que se escribirn. Los caracteres que excedan este nmero, se ignoran.

125

Algunos de los formatos empleados para mostrar la fecha y hora son:


Smbolo Significado Y ao y ao m mes del ao d da del mes l hora(1 a 12) p am pm H hora(0 a 24) M minutos S segundos A da de la semana alfabtica a da de la semana alfabtica B mes del ao b mes del ao j da del ao z zona horaria Ejemplo: Calendar c = Calendar.getInstance(); System.out.printf (Son las %1$tH:%1$tM del %tA %1$td de %1$tB de %1$tB de %1$tY, c); El resultado ser de la forma: Son las 14:55 del viernes 17 de agosto de 2007 Presentacin numrica numrica numrica numrica numrica alfabtica numrica numrica numrica sbado sb alfabtica alfabtica numrica numrica Ejemplo 2007 07 08 20 10 pm 21 45 59

Agosto Ago 223 +0100

126

ARREGLOS Disear un programa que capture una coleccin de calificaciones, calcule el promedio as como contabilice el nmero de calificaciones que se encuentren arriba del promedio, el nmero de calificaciones abajo del promedio y el nmero que se sean iguales al promedio. Calcular tambin los porcentajes de esas estadsticas, as como validar la calificacin. Se usan arreglos cuando se necesita acceder nuevamente a los datos. Manipular ms de una vez a una coleccin de datos. Un arreglo es una coleccin de datos del mismo tipo identificados bajo un mismo nombre de variable CARACTERISTICAS 6. A los datos en un arreglo se les denomino elementos del arreglo 7. Para identificar o acceder a un elemento se usara el nombre del arreglo, as como la posicin del elemento en el arreglo 8. A la posicin del elemento en el arreglo se le denomina ndice del arreglo el cual deber ser de tipo entero y puede estar representado por un valor, una variable o una expresin aritmtica. 9. Todo arreglo tendr un tamao fsico (Mx), el cual indica el numero mximo de elementos que se podrn almacenar en ese momento en el arreglo a0 a1 a2 a3 a4 a5 a6 a7 a8

MX = 8

10. Tambin tendr un tamao lgico (TAM),el cual indica el nmero de elementos actualmente almacenados. En consecuencia el tamao lgico jams deber ser mayor al tamao fsico y si as fuere provocara una interrupcin anormal del programa.

127

1.- TIPOS DE ARREGLOS CON RESPECTO A DIMENSIONES 1.1 unidimensionales 1.2 bidimensionales 1.3 tridimensionales .. . . 1.4 n dimensionales 2.- TIPOS DE ARREGLOS CON RESPECTO A LA CONCURRENCIA 2.1 nicos 2.2 Paralelos 3.- TIPOS DE ARREGLOS RESPECTO A TIPOS DE DATOS 3.1 Numricos 3.1.1 Enteros 3.1.2 Sencillos 3.1.3 Dobles 3.1.4 Moneda 3.2 Caracteres 3.3 Cadenas 3.4 Estructuras (Registros). 4.- TIPOS DE ARREGLOS CON RESPECTO A OCURRENCIAS (APARICIONES) 4.1 Con datos repetidos 4.2 Sin datos repetidos 5.- TIPOS DE DATOS CON RESPECTO A ORDENAMIENTO 5.1 Sin datos ordenados 5.2 Con datos ordenados OPERACIONES BASICAS CON ARREGLOS 1. Lectura 2. Escritura 3. Asignacin 4. Bsqueda 5. Insercin 6. Eliminacin 7. Actualizacin 8. Ordenamiento

UNIDAD VII
128

PROGRAMACION MODULAR
Un Modulo es un segmento de cdigo que realiza una tarea especifica. Al programar con mdulos se usa la tcnica divide y vencers; Los mdulos pueden ser, genricamente hablando: Mdulos de Lectura (Capturar). Mdulos de Escritura (Mostrar). Mdulos de Clculos. Mdulos de Procesamiento.

129

HERENCIA
CLASES DERIVADAS

La herencia es la relacion que existe entre dos clases, en la que una clase denominada clase derivada subclase clase hija se crea a partir de otra ya existente, denominada clase base superclase clase padre .
Ejemplos:

Clases Base

Empleado

Figura

Programador

Tringulo

Clases Derivadas

130

La clase base y la clase derivada tienen cdigo y datos en comn, de modo que si se crea la clase derivada de modo independiente, se duplicara mucho lo que ya se ha escrito para la clase base. Java usa el mecanismo de extensin ( extends ) que permite crear clases derivadas o clases que son la extensin de otra clase, de modo que la nueva clase hereda todos los miembros datos y los mtodos que pertenecen a la clase ya existente. Formato: class nombre_clase_derivada extends nombre_clase_base Regla: La palabra reservada extends produce que todos los miembros no privados (private) en la clase base sean heredados en la clase derivada.

Clases Base (SuperClases)

Empleado

Figura

Programador

Tringulo

Clases Derivadas (SubClases)

131

class Programador extends Empleado { public miembro publico // miembros publicos private miembro privado //miembros privados }

class Triangulo extends Figura { public miembro publico // miembros publicos protected miembro protegido // miembros protegidos }

Los miembros indicados arriba pertenecen a la nueva clase y podr acceder a los miembros de la clase base que estn declarados en su mbito o visibilidad como public o como protected solamente.

132

Otro ejemplo Prestamo

PagoFijo
abstract class Prestamo

PagoVariable

Hipoteca

{
protected float capital; protected float tasaInteres;

public Prestamo (float c, float t) // Constructor { : }


abstract public int crearTablaPagos ( float[][] tabla);

133

class PagoFijo extends Prestamo

{
private float pago // cantidad mensual a pagar por el cliente public PagoFijo (float p, float c, float t) // Constructor public int crearTablaPagos ( float[][] tabla)

{ : } }
class Hipoteca extends Prestamo

{
private float pago // cantidad mensual a pagar por el cliente private int numRecibos; private int recibosPor Ao; public PagoFijo (float p, int nr, int na, float c, float t); // Constructor public int crearTablaPagos ( float[][] tabla)

{ : } }

134

Los miembros private de la clase base son los nicos que no hereda la clase derivada, no se puede acceder a ellos desde la clase derivada. Los miembros con visibilidad public, protected o la visibilidad por defecto (entre las clases del mismo package) se incorporan a la clase derivada con la misma categora de visibilidad que tienen en la clase base.
Cabe recordar que al declarar en la clase el modificador public como prefijo indica que la clase es visible en otros paquetes. package personas; public class Persona { // Miembros de la clase } La clase Persona se puede utilizar en otros paquetes: package empresa; import personas.*; class Becario extends Persona { // Miembros de la clase }

135

Archivos y Flujos
Un archivo en general es un medio para almacenar informacin por lo tanto un archivo en una computadora es un medio electronico para almacenar informacin. Un flujo (Stream), llamado tambien flujo de bits, es el medio electronico que establece la conexin (pipe) entre las celdas del almacenamiento primario y el archivo guardado en el almacenamiento secundario.

136

TIPOS DE ARCHIVOS DE ACUERDO A SU FUNCION Y ALMACENAMIENTO. Bsicamente existen tres tipos de archivos: 1. ARCHIVOS PARA MANIPULAR CARACTERES 2. ARCHIVOS DE ACCESO SECUENCIAL 3. ARCHIVOS DE ACCESO ALEATORIO

OPERACIONES CON ARCHIVOS 1. Abrir el archivo Se establece la tuberia (pipe) para el flujo (stream) de bits. 2. Leer del archivo Se transfieren flujo de bits del archivo que se haya en el amacenamiento secundario a celdas de memoria que se hayan en el almacenamiento primario. 3. Escribir en el archivo Se transfieren flujo de bits de las celdas de memoria que se hayan en el almacenamiento primario al archivo que se haya en el amacenamiento secundario. 4. Aadir al archivo Se transfieren flujo de bits de las celdas de memoria que se hayan en el almacenamiento primario al FINAL del archivo que se haya en el amacenamiento secundario. 5. Cerrar el archivo Se cierra la tubera (pipe) del flujo de bits.

137

Un flujo (stream) es una abstraccin que se refiere a un flujo o corriente de datos que fluyen entre un origen o fuente (productor) y un destino o sumidero (consumidor). Entre el origen y el destino debe existir una conexin o canal (pipe) por la que circulen los datos. La apertura de un archivo establece: La conexin del programa con el dispositivo que tiene el archivo. El canal que comunica el archivo con el programa que van a fluir la secuencia de datos.

138

Abrir un archivo supone crear un objeto y quedar asociado con el flujo. Al comenzar la ejecucin de un programa JAVA se crean automticaticamente tres objetos flujo. Estos son objetos definidos en la clase System: 1. System.in; Objeto entrada estndar, permite la entrada de flujo de bytes desde el teclado. 2. System.out; Objeto de salida estndar; permite al programa la salida de datos por pantalla. 3. System.err; Objeto de salida estndar; permite al programa la salida de errores por pantalla.

139

FLUJOS: JERARQUIA DE CLASES


Todo el proceso de entrada y de salida en JAVA se hace a travs de flujos (stream). En los programas hay que crear objetos stream. En el paquete java.io se encuentran todas las clases stream necesarias para dar entrada/salida a los programas. Los flujos de 1. Datos 2. Caracteres 3. Bytes Se pueden clasificar en 1. Flujos de entrada (Input Stream) 2. Flujos de salida (Output Stream) Para ello JAVA declara dos clases que derivan directamente de la clase Object 1. InputStream 2. OutputStream Ambas son clases abstractas que declaran mtodos que deben de refinirse en sus clases derivadas:

140

1. InputStream es la clase base de todas las clases definidas para el flujo (stream) de entrada 1. FileInputStream 2. ByteArrayInputStream 3. PipeInputStream 4. SecuenceInputStream 5. StringBufferInputStream 6. FilterInputStream 2. OutputStream es la clase base de todas las clases definidas para el flujo (stream) de salida 1. FileOutputStream 2. ByteOutputStream 3. PipeOutputStream 4. FilterOutputStream

141

ARCHIVOS PARA MANIPULAR CARACTERES

La Clase FileInputStream
La clase FileInputStream se usan para leer bytes desde un archivo. Proporciona operaciones bsicas para leer un byte una secuencia de bytes. Se muestran algunos de los mtodos ms importantes de esta clase, todos son public, es importante tener en cuenta la excepcin que puede lanzar para cuando se invoquen se haga un tratamiento de excepcin.
FileInputStream (String nombre) throws FileNotFoundException;

Crea un objeto inicializado con el nombre de archivo como argumento.


FileInputStream (File nombre) throws FileNotFoundException;

Crea un objeto inicializado con el objeto archivo como argumento.


int read( ) throws IOException; Lee un byte del flujo asociado. Devuelve -1 si alcanza el fin de archivo. int read( byte [ ] s ) throws IOException; Lee una secuencia de bytes del flujo y se almacena en el arreglo s. Devuelve -1 si alcanza el fin de archivo bien el nmero de bytes leidos.

142

int read( byte [ ] s, int org, int len ) throws IOException; Lee una secuencia de bytes del flujo y se almacena en el arreglo s desde la posicin org y un mximo de len bytes.asociado. Devuelve -1 si alcanza el fin de archivo bien el nmero de bytes leidos.

143

La Clase FileOutputStream
La clase FileOutputStream se usan para escribir bytes en un archivo. Proporciona operaciones bsicas para escribir un byte una secuencia de bytes. Se muestran algunos de los mtodos ms importantes de esta clase, todos son public, es importante tener en cuenta la excepcin que puede lanzar para cuando se invoquen se haga un tratamiento de excepcin.
FileOutputStream (String nombre) throws FileNotFoundException;

Crea un objeto inicializado con el nombre de archivo como argumento.


FileOutputStream (String nombre, Boolean sw) throws FileNotFoundException;

Crea un objeto inicializado con el nombre de archivo como argumento. En el caso de que sw= true los bytes escritos se aaden al final del archivo.
FileOutputStream (File nombre) throws FileNotFoundException;

Crea un objeto inicializado con el objeto archivo como argumento.


FileOutputStream (File nombre, Boolean sw)) throws FileNotFoundException;

Crea un objeto inicializado con el objeto archivo como argumento. . En el caso de que sw= true los bytes escritos se aaden al final del archivo.

144

void write( byte a ) throws IOException; Escribe el byte a del flujo asociado. void write( byte [ ] s) throws IOException; Escribe el arreglo s de bytes en el flujo. int write( byte [ ] s, int org, int len ) throws IOException; Escribe el arreglo s de bytes desde la posicin org y un mximo de len bytes en el flujo.

145

ARCHIVOS DE ACCESO SECUENCIAL


Son aquellos que permiten almacenar no solamente caracteres sino tambin datos de tipo numrico, de tipo cadena (String) y de tipo lgico (boolean). La Clase DataInputStream La clase de entrada DataInputStream, filtra una secuencia de bytes, los organiza para poder realizar lectura de datos primitivos directamente: char, byte, short, int, long, float, double y bolean. En objeto de esta clase, lee un flujo de entrada de bajo nivel (flujo de bytes) al que est asociado. La asociacin se realiza al crear el objeto. El constructor tiene como argumento el objeto flujo de entrada. As por ejemplo, si el archivo jmf.dat va a ser ledo se ha de crear un objeto FileInputStream y a continuacin un objeto DataInputStream: FileInputStream fis = new FileInputStream(jmf.dat); DataInputStream dis = new DataInputStream(fis); A continuacin se describen algunos de los mtodos ms importantes de esta clase, todos tienen visibilidad public, y adems no se puede redefinir, ya que estn declarados como final.

146

Public DataInputStream (FileInputStream fis) Crea un objeto asociado con cualquier objeto de entrada pasado como argumento. Public final bolean readBoolean () throws IOException Devuelve el valor de tipo boolean leido. Public final bolean readByte () throws IOException Devuelve el valor de tipo byte leido. Public final bolean readShort () throws IOException Devuelve el valor de tipo short leido. Public final bolean readInt () throws IOException Devuelve el valor de tipo int leido. Public final bolean readLong () throws IOException Devuelve el valor de tipo long leido. Public final bolean readFloat () throws IOException Devuelve el valor de tipo float leido. Public final bolean readDouble () throws IOException Devuelve el valor de tipo double leido. Public final bolean readChar () throws IOException Devuelve el valor de tipo byte leido. Public final bolean readUTF () throws IOException Devuelve una cadena que se escribi en formato UTF.
147

Public final bolean readLine () throws IOException Devuelve la cadena leda hasta el final de la lnea. La Clase DataOutputStream
El archivo que se va a leer tiene que haber sido escrito por un flujo de la clase DataOutputStream. Esta clase tiene que estar asociada a un flujo de bytes, pero de salida. La finalidad de la clase es escribir en el flujo asociado, datos de tipo primitivo. Para crear un objeto de sta clase, previamente tiene que estar creado el objeto flujo de bytes con el que se va a asociar. Por ejemplo, el archivo jmf.dat para ser creado tienen que instanciar las clases. FileOutputStream fos = new FileOutputStream (jmf.dat); DataOutputStream dos = new DataOutputStream (fos);

A continuacin se describen algunos de los mtodos ms importantes de esta clase, todos tienen visibilidad public, y adems no se puede redefinir, ya que estn declarados como final.

148

Public DataOutputStream (FileOutputStream fis) Crea un objeto asociado con cualquier objeto de entrada pasado como argumento. Public final bolean writeBoolean (boolean v) throws IOException Escribe el dato boolean v. Public final bolean writeByte (byte v) throws IOException Escribe el dato byte v. Public final bolean writeShort (short v) throws IOException Escribe el dato short v. Public final bolean writeInt (int v) throws IOException Escribe el dato int v. Public final bolean writeLong (long v) throws IOException Escribe el dato long v. Public final bolean readFloat (float v) throws IOException Escribe el dato float v. Public final bolean writeDouble (double v) throws IOException Escribe el dato double v. Public final bolean writeChar (char v) throws IOException Escribe el dato char v.

149

Public final bolean writeUTF (String cad) throws IOException Escribe la cadena en formato UTF. Public final int size() throws IOException Devuelve el tamao del flujo.

150

ARCHIVOS DE ACCESO ALEATORIO


Hasta ahora, hemos trabajado con ficheros de acuerdo al siguiente esquema: 1. Abrir el archivo 2. Leer del archivo 3. Escribir en el archivo 4. Aadir al archivo 5. Cerrar el archivo Pero no hemos ledo o escrito a partir de una determinada posicin dentro del archivo. Esto es importante cuando necesitamos modificar algunos de los valores contenidos en el archivo o cuando necesitamos extraer una parte concreta dentro del archivo. El paquete java.io contiene la clase RandomAccessFile la que proporciona las capacidades que permiten este tipo de acceso directo. Adems, un flujo de esta clase permite realizar tanto operaciones de lectura como de escritura sobre el archivo vinculado con el mismo. Esta clase se deriva directamente Object, e implementa las interfaces DataInput y DataOutput Un archivo accedido aleatoriamente es comparable a un arreglo unidimensional. En un arreglo unidimensional para acceder a uno de sus elementos utilizando un ndice. En un archivo accedido aleatoriamente el ndice es substituido por un puntero de lectura o escritura (L/E). Dicho puntero es situado automticamente al principio del archivo cuando se abre para leer y/o escribir. Por lo tanto, una operacin de lectura o de escritura comienza en la posicin donde est el puntero dentro del fichero; finalmente, su

151

posicin coincidir justo a continuacin del ltimo byte ledo o escrito.

152

La clase RandomAccessFile
Un flujo de esta clase permite acceder directamente a cualquier posicin dentro del fichero vinculado con l. Proporciona dos constructores: RandomAccessFile (String nombre_fichero, String modo) RandomAccessFile (File objeto_File, String modo) El primer constructor abre un flujo vinculado con el fichero especificado por nombre_fichero, mientras que el segundo hace lo mismo, pero a partir de un objeto File. El argumento modo puede ser: r rw read Solo permiten realizar operaciones de lectura. read/write Se pueden realizar operaciones de lectura y de escritura sobre el fichero.

153

As mismo, la clase RandomAccessFile provee, adems de los mtodos de las interfaces DataInput y DataOutput, los mtodos: public long getFilePointer() throws IOException Este mtodo devuelve la posicin actual en bytes del puntero L/E en el fichero. Este puntero marca siempre la posicin donde se iniciar la siguiente operacin de lectura o de escritura en el archivo. public long length() throws IOException Este mtodo devuelve la longitude del archive en bytes. public void seek(long pos) throws IOException Y este mtodo, mueve el puntero de L/E a una nueva posicin desplazada pos bytes del principio del archivo. No se permiten desplazamientos negativos.

154

Archivos y Flujos Un flujo (stream) es una abstraccin que se refiere a un flujo o corriente de datos que fluyen entre un origen o fuente (productor) y un destino o sumidero (consumidor). Entre el origen y el destino debe existir una conexin o canal (pipe) por la que circulen los datos. La apertura de un archivo establece: La conexin del programa con el dispositivo que tiene el archivo. El canal que comunica el archivo con el programa que van a fluir la secuencia de datos.

155

Abrir un archivo supone crear un objeto y quedar asociado con el flujo. Al comenzar la ejecucin de un programa JAVA se crean automticticamente tres objetos flujo. Estos son objetos definidos en la clase System: 1. System.in; Objeto entrada estndar, permite la entrada de flujo de bytes desde el teclado. 2. System.out; Objeto de salida estndar; permite al programa la salida de datos por pantalla. 3. System.err; Objeto de salida estndar; permite al programa la salida de errores por pantalla.

156

FLUJOS: JERARQUIA DE CLASES Todo el proceso de entrada y de salida en JAVA se hace a travs de flujos (stream). En los programas hay que crear objetos stream. En el paquete java.io se encuentran todas las clases stream necesarias para dar entrada/salida a los programas. Los flujos de 4. Datos 5. Caracteres 6. Bytes Se pueden clasificar en 3. Flujos de entrada (Input Stream) 4. Flujos de salida (Output Stream) Para ello JAVA declara dos clases que derivan directamente de la clase Object 3. InputStream 4. OutputStream Ambas son clases abstractas que declaran mtodos que deben de refinirse en sus clases derivadas:

157

3. InputStream es la clase base de todas las clases definidas para el flujo (stream) de entrada 1. FileInputStream 2. ByteArrayInputStream 3. PipeInputStream 4. SecuenceInputStream 5. StringBufferInputStream 6. FilterInputStream OutputStream es la clase base de todas las clases definidas para el flujo (stream) de salida 5. FileOutputStream 6. ByteOutputStream 7. PipeOutputStream 8. FilterOutputStream

158

TIPOS DE ARCHIVOS DE ACUERDO A SU FUNCION Y ALMACENAMIENTO. Bsicamente existen tres tipos de archivos: 4. ARCHIVOS PARA MANIPULAR CARACTERES 5. ARCHIVOS DE ACCESO SECUENCIAL 6. ARCHIVOS DE ACCESO ALEATORIO

159

ARCHIVOS PARA MANIPULAR CARACTERES La Clase FileInputStream La clase FileInputStream se usan para leer bytes desde un archivo. Proporciona operaciones bsicas para leer un byte una secuencia de bytes. Se muestran algunos de los mtodos ms importantes de esta clase, todos son public, es importante tener en cuenta la excepcin que puede lanzar para cuando se invoquen se haga un tratamiento de excepcin. FileInputStream (String nombre) throws FileNotFoundException; Crea un objeto inicializado con el nombre de archivo como argumento. FileInputStream (File nombre) throws FileNotFoundException; Crea un objeto inicializado con el objeto archivo como argumento. int read( ) throws IOException; Lee un byte del flujo asociado. Devuelve -1 si alcanza el fin de archivo. int read( byte [ ] s ) throws IOException; Lee una secuencia de bytes del flujo y se almacena en el arreglo s. Devuelve -1 si alcanza el fin de archivo bien el nmero de bytes leidos. int read( byte [ ] s, int org, int len ) throws IOException; Lee una secuencia de bytes del flujo y se almacena en el arreglo s desde la posicin org y un mximo de len bytes.asociado. Devuelve -1 si alcanza el fin de archivo bien el nmero de bytes leidos.

160

La Clase FileOutputStream La clase FileOutputStream se usan para escribir bytes en un archivo. Proporciona operaciones bsicas para escribir un byte una secuencia de bytes. Se muestran algunos de los mtodos ms importantes de esta clase, todos son public, es importante tener en cuenta la excepcin que puede lanzar para cuando se invoquen se haga un tratamiento de excepcin. FileOutputStream (String nombre) throws FileNotFoundException; Crea un objeto inicializado con el nombre de archivo como argumento. FileOutputStream (String nombre, Boolean sw) throws FileNotFoundException; Crea un objeto inicializado con el nombre de archivo como argumento. En el caso de que sw= true los bytes escritos se aaden al final del archivo. FileOutputStream (File nombre) throws FileNotFoundException; Crea un objeto inicializado con el objeto archivo como argumento. void write( byte a ) throws IOException; Escribe el byte a del flujo asociado. void write( byte [ ] s) throws IOException; Escribe el arreglo s de bytes en el flujo. int write( byte [ ] s, int org, int len ) throws IOException; Escribe el arreglo s de bytes desde la posicin org y un mximo de len bytes en el flujo.

161

ARCHIVOS DE ACCESO SECUENCIAL Son aquellos que permiten almacenar no solamente caracteres sino tambien datos de tipo numerico, de tipo cadena (String) y de tipo logico (boolean). La Clase DataInputStream La clase de entrada DataInputStream, filtra una secuencia de bytes, los organiza para poder realizar lectura de datos primitivos directamente: char, byte, short, int, long, float, double y bolean. En objeto de esta clase, lee un flujo de entrada de bajo nivel (flujo de bytes) al que est asociado. La asociacin se realiza al crear el objeto. El constructor tiene como argumento el objeto flujo de entrada. As por ejemplo, si el archivo jmf.dat va a ser ledo se ha de crear un objeto FileInputStream y a continuacin un objeto DataInputStream: FileInputStream fis = new FileInputStream(jmf.dat); DataInputStream dis = new DataInputStream(fis); A continuacin se describen algunos de los mtodos ms importantes de esta clase, todos tienen visibilidad public, y adems no se puede redefinir, ya que estn declarados como final.

162

Public DataInputStream (FileInputStream fis) Crea un objeto asociado con cualquier objeto de entrada pasado como argumento. Public final bolean readBoolean () throws IOException Devuelve el valor de tipo boolean leido. Public final bolean readByte () throws IOException Devuelve el valor de tipo byte leido. Public final bolean readShort () throws IOException Devuelve el valor de tipo short leido. Public final bolean readInt () throws IOException Devuelve el valor de tipo int leido. Public final bolean readLong () throws IOException Devuelve el valor de tipo long leido. Public final bolean readFloat () throws IOException Devuelve el valor de tipo float leido. Public final bolean readDouble () throws IOException Devuelve el valor de tipo double leido. Public final bolean readChar () throws IOException Devuelve el valor de tipo byte leido. Public final bolean readUTF () throws IOException Devuelve una cadena que se escribi en formato UTF. Public final bolean readLine () throws IOException Devuelve la cadena leda hasta el final de la linea. La Clase DataOutputStream El archivo que se va a leer tiene que haber sido escrito por un flujo de la clase

DataOutputStream. Esta clase tiene que estar asociada a un flujo de bytes, pero de
salida. La finalidad de la clase es escribir en el flujo asociado, datos de tipo primitivo. Para crear un objeto de sta clase, previamente tiene que estar creado el objeto flujo de bytes con el que se va a asociar. Por ejemplo, el archivo jmf.dat para ser creado tienen que instanciar las clases. FileOutputStream fos = new FileOutputStream (jmf.dat); DataOutputStream dos = new DataOutputStream (fos); A continuacin se describen algunos de los mtodos ms importantes de esta clase, todos tienen visibilidad public, y adems no se puede redefinir, ya que estn declarados como final.

163

Public DataOutputStream (FileOutputStream fis) Crea un objeto asociado con cualquier objeto de entrada pasado como argumento. Public final bolean writeBoolean (boolean v) throws IOException Escribe el dato boolean v. Public final bolean writeByte (byte v) throws IOException Escribe el dato byte v. Public final bolean writeShort (short v) throws IOException Escribe el dato short v. Public final bolean writeInt (int v) throws IOException Escribe el dato int v. Public final bolean writeLong (long v) throws IOException Escribe el dato long v. Public final bolean writeFloat (float v) throws IOException Escribe el dato float v. Public final bolean writeDouble (double v) throws IOException Escribe el dato double v. Public final bolean writeChar (char v) throws IOException Escribe el dato char v.

164

Public final bolean writereadUTF (String cad) throws IOException Escribe la cadena en formato UTF. Public final int size() throws IOException Devuelve el tamao del flujo.

165

ARCHIVOS DE ACCESO ALEATORIO Hasta ahora, hemos trabajado con ficheros de acuerdo al siguiente esquema: 6. Abrir el archivo 7. Leer del archivo 8. Escribir en el archivo 9. Aadir al archivo 10. Cerrar el archivo Pero no hemos ledo o escrito a partir de una determinada posicin dentro del archivo. Esto es importante cuando necesitamos modificar algunos de los valores contenidos en el archivo o cuando necesitamos extraer una parte concreta dentro del archivo. El paquete java.io contiene la clase RandomAccessFile la que proporciona las capacidades que permiten este tipo de acceso directo. Adems, un flujo de esta clase permite realizar tanto operaciones de lectura como de escritura sobre el archivo vinculado con el mismo. Esta clase se deriva directamente Object, e implementa las interfaces DataInput y DataOutput Un archivo accedido aleatoriamente es comparable a un arreglo unidimensional. En un arreglo unidimensional para acceder a uno de sus elementos utilizando un ndice. En un archivo accedido aleatoriamente el ndice es substituido por un puntero de lectura o escritura (L/E). Dicho puntero es situado automticamente al principio del archivo cuando se abre para leer y/o escribir. Por lo tanto, una operacin de lectura o de escritura comienza en la posicin donde est el puntero dentro del fichero; finalmente, su posicin coincidir justo a continuacin del ltimo byte ledo o escrito. La clase RandomAccessFile Un flujo de esta clase permite acceder directamente a cualquier posicin dentro del fichero vinculado con l. Proporciona dos constructores: RandomAccessFile (String nombre_fichero, String modo) RandomAccessFile (File objeto_File, String modo) El primer constructor abre un flujo vinculado con el fichero especificado por nombre_fichero, mientras que el segundo hace lo mismo, pero a partir de un objeto File. El argumento modo puede ser:

r rw

read Solo permiten realizar operaciones de lectura. read/write Se pueden realizar operaciones de lectura y de escritura sobre el fichero.

166

As mismo, la clase RandomAccessFile provee, adems de los mtodos de las interfaces DataInput y DataOutput, los mtodos: public long getFilePointer() throws IOException Este metdo devuelve la posicion actual en bytes del puntero L/E en el fichero. Este puntero marca siempre la posicin donde se iniciar la siguiente operacin de lectura o de escritura en el archivo. public long length() throws IOException Este mtodo devuelve la longitude del archive en bytes. public void seek(long pos) throws IOException Y este mtodo, mueve el puntero de L/E a una nueva posicin desplazada pos bytes del principio del archivo. No se permiten desplazamientos negativos.

167

168

Applet

Qu son? Un applet es un componente de una aplicacin que se ejecuta en el contexto de otro programa, por ejemplo un navegador web. El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrin, mediante un plugin, o en aplicaciones como telfonos mviles que soportan el modelo de programacin por applets. En palabras de sus creadores Sun developer Network:
An applet is a program written in the Java programming language that can be included in a HTML page, much in the same way an image is included in a page. When you use a Java technology-enabled browser to view a page that contains an applet, the applets code is transferred to your system and executed by the browsers Java Virtual Machine (JVM). Un applet es un programa escrito en lenguaje programador Java que puede ser incluido en una pagina HTML, y mucho de la misma manera se incluye una imagen en una pgina. Al utilizar una tecnologa Java del navegador para ver una pgina que contiene un applet, el cdigo del applet se transfiere a su sistema y es ejecutado por el navegador Java Virtual Machine (JVM). A diferencia de un programa, un applet no puede ejecutarse de manera independiente, ofrece informacin grfica y a veces interacta con el usuario, tpicamente carece de sesin y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una funcin muy especfica que carece de uso independiente. El trmino fue introducido en Apple Script en 1993. Ejemplos comunes de applets son las Java applets y las animaciones Flash. Otro ejemplo es el Windows Media Player utilizado para desplegar archivos de video incrustados en los navegadores como el Internet Explorer. Otros plugins permiten mostrar modelos 3D que funcionan con una applet. Por otra parte, la diferencia entre una aplicacin JAVA y un applet radica en cmo se ejecutan. Para cargar una aplicacin JAVA se utiliza el intrprete de JAVA (pcGRASP de Auburn University, Visual J++ de Microsoft, Forte de Sun de Visual Caf). En cambio, un applet se puede cargar y ejecutar desde cualquier explorador que soporte JAVA (Netscape, Internet Explorer de Windows, Mozilla Firefox...etc.). JavaApplet (applet de Java) Un applet Java es un applet escrito en el lenguaje de programacin Java. Los applets de Java pueden correr en un navegador web utilizando la Java virtual machine (JVM), o en el AppletViewer de Sun. Entre sus caractersticas podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. 169

no pueden escribir archivos), a menos que uno mismo le d los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario comn, lo cual juega en contra de uno de los objetivos de los Java applets: proporcionar una forma fcil de ejecutar aplicaciones desde el navegador web. En Java un applet (Subprograma), es un programa que puede inscrustarse en un documento HTML; es decir en una pagina Web, Cuando un Navegador carga una pagina Web que contiene un Applet, este se descarga en el navegador Web y comienza a ejecutarse esto nos permite crear programas que cualquier usuario puede ejecutar con tan solo cargar la pagina Web en su navegador. Ventajas La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Java script, incluso independientes del sistema operativo del ordenador donde se ejecutan. Adems, Java es ms potente que Java script, por lo que el nmero de aplicaciones de los applets podr ser mayor. Desventajas Como desventajas en relacin con Java script cabe sealar que los applets son ms lentos de procesar y que tienen espacio muy delimitado en la pgina donde se ejecutan, es decir, no se mezclan con todos los componentes de la pgina ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc. fuentes

http://java.sun.com/applets/ http://es.wikipedia.org/wiki/Applet_Java http://es.wikipedia.org/wiki/Applet http://www.desarrolloweb.com/articulos/731.php http://www.proinf.net/curso/Java/curso2006/avanzado/ m3ch3.pdf

170

BIBLIOGRAFA INTRODUCCIN A LAS CIENCIAS COMPUTACIONALES TREMBLAY McGRAW-HILL. METODOLOGIA DE LA PROGRAMACIN JOYANES AGUILAR McGRAW-HILL. FUNDAMENTOS DE PROGRAMACION (CD) LUIS JOYANES AGUILAR LUIS RODRIGUEZ BAENA MC GRAW HILL PROGRAMACION ORIENTADA A OBJETOS (CD) FRANCISCO JAVIER CEBALLOS COMPUTEC RA-MA JAVA 2 Curso de programacin FRANCISCO JAVIER CEBALLOS ALFAOMEGA RA-MA PROGRAMACIN EN JAVA 5.0 JAMES COHOON JACK DAVISON MC GRAW HILL PROGRAMACIN EN JAVA 2 (RECOMENDADO) LUIS JOYANES AGUILAR/ IGNACIO ZAHONERO MARTNEZ MC GRAW HILL

171

También podría gustarte