Está en la página 1de 20

FUNDAMENTOS DE PROGRAMACIN.

SEMANA 4

Fundamentos de Programacin - Semana 4


Esta semana aprenders a resolver mediante algoritmos problemas de procesamiento de datos utilizando sintaxis de JAVA.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Estructura de un algoritmo.
Los algoritmos se definen como una serie de pasos bien definidos y finitos que permiten solucionar un problema para cualquier tipo de valores. Bsicamente un algoritmo permite definir las acciones que se deben realizar para solucionar un problema. Existe una serie de acciones que acciones que se realizan para dar solucin a un problema, por ejemplo declarar variables, leer datos desde teclado, mostrar datos en una pantalla, etc. Esta serie de acciones se ordenan lgicamente para solucionar un problema. Un ejemplo de la definicin de la estructura de un algoritmo es el siguiente: 1. Leer el pedido. 2. Examinar el historial de crdito del cliente. 3. Si el cliente es solvente, entregar el pedido. 4. En caso contrario, rechazarlo. 5. Fin. Si te fijas en el ejemplo anterior, existe una serie de pasos formales para dar solucin a un problema que en el caso anterior es tomar una decisin respecto a si se entrega o no un pedido a un cliente utilizando el historial de crdito que posee.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Conceptos de variables y constantes.


Definicin de variables y constantes.
Cuando creamos software, los datos que van a ser procesados, se deben guardar de forma temporal para ser procesados por la aplicacin. El programa por lo tanto debe solicitar al sistema operativo que defina un espacio en la memoria donde guardar estos datos. Para esto los lenguajes de programacin definen una forma de reservar este espacio y es mediante la declaracin de variables y constantes. Cuando se declara una variable o una constante, se realiza el proceso de solicitar un espacio en la memoria del computador para almacenar valores que representan datos que queremos procesar. El problema surge cuando nos damos cuenta que el espacio en la memoria del computador es limitado, por lo tanto el sistema operativo para proteger la ejecucin de mltiples programas nos solicita que pidamos un espacio especfico, en funcin de lo que vamos a guardar, por ejemplo si tengo que construir un lugar para guardar mi auto, no construyo un galpn para guardar un avin, porque lo ms probable es que no ocupe todo el espacio y quede con mucho espacio sin utilizar, de la misma forma que no construyo un galpn para guardar una moto, pues lo que necesito guardar es un auto. Por lo tanto para indicar al sistema operativo cual es el espacio

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

que se debe dejar disponible para guardar datos, los lenguajes de programacin definen los tipos de datos. Un tipo de dato por lo tanto permite definir el espacio en la memoria que el sistema operativo reservar para guardar datos que sern procesados por un software. En java los tipos de datos se pueden catalogar bsicamente en dos grupos, los primitivos (o simples) y las referencias a objetos.

Primitivos
Los tipos de datos primitivos son aquellos que pueden utilizarse directamente en un programa sin necesidad de utilizar POO, dado que no son objetos, los tipos de datos primitivos grupos, los aportan un y uso ms eficiente los en el se almacenamiento de datos y pueden ser divididos en dos booleanos numricos, cuales subdividen en dos grupos, los enteros (byte, short, int, long y char) y los reales (float y double). (Importante) la declaracin de una variable utiliza la siguiente sintaxis: Tipo de dato identificador = [valor][, identificador] [=valor] ; En java los identificadores tambin tienen una norma. La forma correcta de declarar una variable es escribindola con minsculas y las maysculas slo se utilizan en la primera letra a partir de la segunda palabra si es que la hay, por ejemplo el identificador miVariable lleva la letra V con mayscula debido a que es una palabra
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

escrita

despus

de

mi

lo

mismo

sucede

con

miPrimeraVariable, donde tanto P como V van con maysculas

byte:
El byte es una variable que tiene una capacidad de 8 bits y permite almacenar un valor de tipo entero (sin decimales) entre el -128 y + 127. El siguiente ejemplo declara la variable y luego le asigna el valor de cero, cuando un valor es dado de forma inicial recibe el nombre de inicializacin de la variable. byte dia=0; (Importante) las variables pueden ser inicializadas con un valor (cero en este caso) o una expresin. Se entiende por expresin un conjunto de operadores que dan un resultado, pudiendo as declarar byte (o cualquier otro tipo de dato) de la siguiente forma: byte a = 1+1*2; tambin debes tener en cuenta que las variables numricas no inicializadas comienzan en cero.

Short:
El short tiene una capacidad de 16 bits y permite almacenar un valor entero entre -32768 y +32767 (al igual que el entero en C). La siguiente lnea de cdigo declara e inicializa dos variables.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Int:
El tipo de dato entero tiene una capacidad de 32 bits y permite almacenar un valor entero entre -2147483648 y +2147483647.

Long:
El tipo de dato long tiene una capacidad de 64 bits y permite almacenar un valor entero entre y 9.223.372.036.854.775.808 +9.223.372.036.854.775.809

Float:
El tipo de dato float tiene una capacidad de 32 bits y permite almacenar un valor real en coma flotante (decimales) entre -3,4*10-38 hasta 3,4*1038 . Los valores expresados en float deben ir acompaados de una letra f minscula al final.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

Double:
El tipo double tiene una capacidad de 64 bits y permite almacenar un valor real entre -1,7*10-308 y +1,7*10308. El double es el tipo de dato que asume Java al escribir un real, por ello no va acompaado de ningn carcter como en el caso del float.

Boolean:
El tipo de dato booleano es utilizado para conocer el resultado de una evaluacin booleana, los dos posibles valores son true y false (verdadero y falso).

Si su valor de inicio no es especificado, el valor por defecto es false.

Char:
El tipo char, es un tipo de datos que permite almacenar un caracter, sin embargo el valor que en realidad almacena es un entero equivalente entre los valores del 0 al 127 de la tabla de caracteres ASCII, la forma de declarar un char es la siguiente:

(Importante) Para el caso de la variable letra1 el valor es el caracter a, el cual sebe ir entre comillas, sin embargo en letra2, las comillas no existen, porque no se le est asignando un carcter, el nmero 97 representa la letra a
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

en la tabla ASCII, esto significa que la variable letra1 y letra2 tienen en realidad la misma letra almacenada.

Tipo de objetos.
Los tipos de objetos incluyen todos los objetos que pueden ser instanciados a partir de las clases provenientes con java y todas las que sean desarrolladas por el programador. Si bien ambos tpicos sern vistos ms adelante, en este captulo se mostrar el String, la cual es una clase de mucha utilidad y que a veces tratada como un tipo primitivo, aunque no lo sea.

String
Un String (con su letra s mayscula) no es un tipo de dato primitivo, sin embargo se trata en este apartado debido a que su uso es muy habitual en los programas y adicionalmente se puede utilizar de la misma forma en la que se declaran los tipos primitivos. Un String es un tipo de dato que permite almacenar una cantidad de caracteres variables. Su declaracin y asignacin es de la siguiente forma:

(Importante) String, es en realidad una clase, que almacena como atributo un arreglo de caracteres. Tanto las clases como los arreglos sern estudiados con mayor detalle ms adelante. El siguiente ejemplo muestra la

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

declaracin

de

variables

bajo

el

paradigma

de

la

programacin estructurada dentro del mtodo main.

La

siguiente

imagen,

presenta

un

ejemplo

de

la

utilizacin de los tipos vistos en declaracin de atributos de nuestra clase Persona.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

(Importante) private representa el nivel de accesibilidad y ser estudiado ms adelante.

Vida y mbito de una variable


Las variables cuando son declaradas, tienen lo que se conoce como un mbito, el cual define las fronteras dentro de las cuales las variables pueden ser utilizadas. Tradicionalmente la programacin estructurada tiene dos niveles de visibilidad distintos: las variables locales y globales, sin embargo en la programacin orientada el mbito de una variable dentro de una clase es algo ms
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

complejo y ser tratado a lo largo de este manual. Las variables siempre deben ir dentro de una estructura que los contenga, para cada estructura existe un inicio y cierre de bloque que la delimita. Como ejemplo la siguiente imagen muestra una clase con su respectivo inicio y cierre de bloque.

Fjate que ahora la clase Persona posee adems un comportamiento llamado correr y descansar, los cuales tambin tienen limitado su bloque. Podemos decir entonces que la clase Persona contiene dentro un comportamiento llamado correr y descansar.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

En este caso, la variable cansancio es una variable de instancia debido a que est definida dentro de la clase, pero fuera de sus comportamientos, por ende los mtodos descansar y correr (que tambin son parte de la clase) tienen visibilidad sobre cansancio, aumentando en este caso su valor al correr y disminuyndola al descansar.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

El mbito de una variable siempre depender de del lugar donde se produzca su declaracin, por ejemplo, ya vimos que si declaramos la variable dentro de los bloques que limitan la clase persona, pero fuera de correr o descansar, la variable se denomina una variable de instancia y est disponible para todos los mtodos que la clase contenga. En el siguiente ejemplo la variable cansancio es ahora una variable declarada dentro de del comportamiento correr, esto se denomina variable local del mtodo. Para este caso la visibilidad de dicha variable son los lmites donde fue declarada, vale decir el inicio y bloque de correr, el siguiente ejemplo causa un

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

error debido a que descansar no tiene una visibilidad sobre la variable cansancio.

(Importante) las variables de instancia son capaces de mantener el valor durante toda la vida de un objeto, sin embargo las declaradas dentro de un comportamiento son creadas, utilizadas y eliminadas al finalizar la ejecucin del comportamiento que la contiene. Tambin es posible crear lmites dentro de los comportamientos correr, si bien la tcnica que se presenta en el siguiente no es muy comn, es reconocida por el lenguaje Java.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

En el segmento de cdigo anterior se muestran dos casos a considerar. En el interior del mtodo correr existe una delimitacin dentro que contiene la declaracin de una variable entera cuyo identificador es a, sin embargo al terminar el lmite donde fue declarada la variable ha
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

vuelto a ser declarada, a primera vista da la idea de que correr tiene dos variables llamadas a, pero sabemos que eso es imposible. Recordemos que el identificador de una variable debe ser nico en un mismo mbito, lo que en realidad sucede es que la variable que se declara primero tiene una vida til desde que se declara hasta el cierre de bloque en el que fue declarada, por ende al ser declarada la segunda variable llamada a, la primera ya ha sido eliminada. En descansar en cambio se produce un error debido a que se declara primero una variable entera dentro de los lmites del comportamiento descansar, lo que provoca que tambin est disponible para el mbito que existe en el interior del mtodo, por lo tanto, en el mbito interior, no es posible declarar la variable entera con el identificador a, debido a que ya existe en l.

Conversin entre tipos.


En Java existen dos tipos de conversiones, la implcita y explicita. La implcita es aquella que no necesita de alguna intervencin por parte del programador para que se lleve a cabo, siendo Java el encargado de realizarla. El ejemplo ms comn es la operacin aritmtica de dos tipos de datos distintos, en una variable de qu tipo debo almacenar el resultado entre la suma entre un float y un double?

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

La clave a la respuesta de esta pregunta no est en el resultado de la operacin, de hecho, en este caso el resultado es 6, el cual podramos asumir de forma errnea que es un resultado entero, sin embargo la clave del xito est en el tamao del resultado. Si tuvieses que construir un estacionamiento, donde se estaciona un camin gigante o un pequeo auto, pero nunca los dos al mismo tiempo, cul es el estacionamiento ms pequeo que debes construir? El del tamao del camin, pues Java hace lo mismo, el double es un valor ms grande (en bits) que el float, por ende Java siempre dar como resultado el tipo ms grande, con ello se asegura de que no exista perdida de precisin en el resultado. La conversin implcita es aplicada en la direccin de izquierda a derecha entre los datos presentados en el siguiente diagrama, lo que significa que un byte, puede almacenarse en una variable de tipo short o char o cualquiera de las 3 puede almacenarse en un int.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

La conversin explcita o tambin conocida como cast consiste en forzar la conversin entre un tipo de dato a cualquier otro (excepto desde booleanos a enteros o reales), la sintaxis para realizar una conversin explicita es la siguiente: (Tipo destino) expresin o variable A=(int)promedio; En el siguiente ejemplo, se convierte una expresin que da como resultado un float (debido a que es ms grande que un short y un long) en un entero, dando como resultado el valor de 3.

(importante) muchas veces se piensa que el resultado es 4, debido a que la suma de las tres variables da en realidad 3.8f sin embargo convertir este resultado a un entero no implica una aproximacin, sino que slo tomar la parte entera del valor resultante (tambin conocido como truncar datos) El siguiente ejemplo muestra una clase en la que el comportamiento miPeso el cual retorna los kilos de su peso sin contar los gramos.

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES