Sunteți pe pagina 1din 32

Universidad Bolivariana de Venezuela

Programa de Formacin en Informtica para la Gestin Social


Fecha ltima actualizacin: Abril 2006

Gua de Algoritmo y Programacin

Autor:
Prof. Wendy Leal
Coautores:
Prof. Alonso Salas
Prof. Alberto Parra

Maracaibo, Abril de 2006

INTRODUCCION
A lo largo de la humanidad, el hombre en su curiosidad, ha creado
ciencias que le permiten conocer y estudiar fenmenos, dentro de esta
curiosidad y para satisfacer necesidades planteadas surge la creacin de
Computadoras dando inicio a la era de la informtica.
La informtica, en sus comienzos, se utilizaba para simplificar las rutinas
tediosas y repetitivas de los operadores en el rea administrativa. Se notaron
grandes avances en el rendimiento y productividad, lo que a su vez disminuyo
los costes al automatizar los procesos.
Para automatizar un proceso se requiere conocer un conjunto de datos y
reglas que formaran parte de la informacin bsica para la creacin de un
programa. En la actualidad, los sistemas automatizados constituyen un apoyo
significativo en la vida diaria del ser humano, por esta razn se hace necesario
el aprendizaje de herramientas y tcnicas que nos permitan automatizar
procesos de manera eficiente.
Esta gua didctica formar parte de un conjunto de herramientas que
tendr como finalidad el desarrollo de destrezas y habilidades de los
estudiantes en el rea de Programacin. En este material, se encontrar
instrucciones necesarias para que los estudiantes puedan trabajar de manera
autnoma, practicando el autoaprendizaje.
Objetivo General:
Capacitar al estudiante en el desarrollo de las habilidades fundamentales de la
programacin y en las funcionalidades bsicas de un lenguaje que soporte el
paradigma orientado a objetos.
Objetivos especficos:
- Definir los Algoritmos.
- Estudiar los Fundamentos de la P.OO.
- Conocer el concepto de datos y reconocer los tipos de datos simples
(Entero, real, carcter, Lgico) y los tipos de datos estructurados
(Arreglos unidimensionales y multidimensionales).
- Identificar las estructuras elementales y tipos de operadores. Describir
las Estructuras de control (secuencia, iteracin, seleccin y bsqueda).
- Realizar operaciones elementales: lectura y escritura de datos.
- Desarrollar programas simples en un entorno de lenguaje de O.O.
- Definir la metodologa orientada a objetos, diagramas de clase y
estrategias para la resolucin de problemas.

Temario
Tema 1. Introduccin a la Prog. Orientada a Objetos y Diagramas UML
Definicin de Algoritmo.
Diagramas UML.
Partes de un Programa.
Diagramas de Flujo.
Pseudocdigo.
Definicin de Clases, Objetos, Mtodos.
Propiedades de la P.O.O. (Herencia, polimorfismo y encapsulamiento).
Manejo de la plataforma eclipse para la Programacin.
Tema 2. Tipos de Datos (simples).
Definicin y clasificacin de los tipos de datos simples.
Conocer y manipular los tipos de datos.
Verificacin y compatibilidad de los datos.
Especificar e implementar los tipos de datos (Elementales).
Tema 3. Estructuras elementales.
Conocer la estructura de seleccin desicin (IF-CASE)
Implementar la estructura de seleccin simple y compuesta en la
solucin de problemas.
Conocer las estructuras de Iteracin (FOR-WHILE-DOWHILE).
Implementar las diferentes estructuras de repeticin en la solucin de
problemas.
Reconocer las diferencias entre las estructuras de repeticin.
Implementar los diferentes tipos de estructuras.
Tema 4. Aplicaciones con Mtodos.
Identificar un mtodo.
Implementar mtodos y clases.
Conocer los diagramas de la Clase UML
Tema 4. Aplicaciones con Clases.
Identificar Herencias.
Identificar e implementar las funciones.
Identificar las acciones o procedimientos.
Implementar la herencia.
Tema 4. Aplicaciones con polimorfismo
Identificar e implementar problemas con polimorfismo.
Tema 5. Tipos de Datos (Estructurados)
Identificar e implementar el uso de arreglos.
Conocer los tipos de arreglos (Unidimensionales y Bidimensionales)
Implementar las operaciones sobre arreglos.
Proyecto Final.

Desarrollar un programa
adquiridas durante el semestre.

donde

aplique

Algoritmo y Programacin

las

competencias

Tema 1: Introduccin a la Programacin Orientada a Objetos


El Diseo de Programas es una tarea difcil y es un proceso creativo. No
existe un conjunto de reglas, ni algoritmos para indicar como escribir
programas.
Estrategias a realizar para la elaboracin de un algoritmo:

Anlisis del Problema.


Diseo del Algoritmo.
Verificacin del Algoritmo.

La resolucin del problema se expresara en un algoritmo: paso a paso para


solucionar un problema dado.
Para obtener una solucin mediante una computadora se debe traducir el
algoritmo a un lenguaje de computador (Pascal, Basic, Cobol, Fortran, etc) .
Analisis del Problema:
Se compone de tres partes
Definicin del Problema
Datos de Entrada.
Datos de Salida.
Def. Algoritmo: secuencia de pasos exento de ambigedades que lleva a
la solucin de un problema.
Ejemplos sencillos:
Una persona ha trabajado 38 horas en una semana dada y gana a
razn de 1200 bs. La Hora. La tasa de impuestos del estado es del 15.5 % de
su paga bruta. Se desea saber es la paga bruta, el descuento por impuesto y la
paga neta del trabajador.
La informacin dada es:
Horas trabajadas: 38
Impuestos:
15.5 %
Paga/Hora:
1200 Bs.
CON ESTOS DATOS SE DEBE OBTENER TODA LA INFORMACION
SOLICITADA
Los Algoritmos deben cumplir con las siguientes caractersticas:

A ) Un algoritmo debe ser preciso e indicar el orden de realizacin de cada


paso.
B ) Un algoritmo debe estar definido, si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
C ) Un algoritmo debe estar finito, si se sigue un algoritmo se debe terminar en
algn momento.
Un programa debe constar de tres partes:
Entrada (Informacin dada al algoritmo)
Procesos (Clculos necesarios para encontrar la solucin del problema)
Salida (Respuesta dada por el algoritmo).
Diagramas de Flujo:
Un diagrama de Flujo utiliza smbolos estndar y en el que cada paso
del algoritmo se visualiza dentro del smbolo adecuado y el orden en que estos
pasos se ejecutan se indica conectndolos con flechas llamadas lneas de flujo
porque indican el flujo lgico del programa.
Como alternativa al diagrama de flujo surgi el pseudo cdigo que es un
lenguaje algortmico similar al espaol o al ingles pero ms conciso y que
permite una redaccin rpida del algoritmo

Inicio / Fin

Proceso

Estructuras de decisin

Conector

Entrada/Salida

Cabecera del Programa:


La cabecera de un programa o algoritmo consta de las siguientes partes:

Nombre del programa o algoritmo


Declaraciones de constantes, variables y tipos de datos definidos por el
usuario.
Declaraciones de subprogramas (su situacin en el programa depende
en el programa depende del lenguaje)
Algoritmo nombre_del_algoritmo (Identificador)
Const
constante1 = valor1
constante2 = valor2
Var
Lista de variables1: real
Lista de variables2: entero
Lista de variables3: lgica
Lista de variables4: carcter
Inicio
<Acciones>
Fin

Ejemplo:
Algoritmo Media
Const
Pi = 3.141592
Var
Numero, MEDIA, SUMA
CONTADOR, N
NOMBRE, DIRECCION
Inicio
<acciones>
Fin

: real
: entera
: caracter

Breve Historia de los Lenguajes de Programacin


Un programa, es una secuencia de instrucciones que permiten a un
ordenador procesar una informacin conocida como datos de entrada (input)
para producir una informacin de salida (output) o resultados.

Esas instrucciones pertenecen a un lenguaje de programacin determinado.


Los lenguajes pueden ser de alto o bajo nivel. En los de bajo nivel las
instrucciones son simples y cercanas al funcionamiento de la mquina, como
por ejemplo el cdigo mquina y el ensamblador. En los lenguajes de alto nivel
hay un alto grado de abstraccin y el lenguaje es ms prximo a los humanos,
como por ejemplo Pascal, Cobol o Java .
Los lenguajes deben ser traducidos al cdigo entendido por la mquina
para poder ser ejecutados. Segn que esta traduccin se realice en tiempo de
diseo o en tiempo de ejecucin los lenguajes se llaman compilados o
interpretados.

Lenguajes de bajo nivel


Cdigo mquina
Ensamblador
Lenguajes de medio nivel
BCPL
C
Lenguajes de alto nivel
Ada
ALGOL
BASIC
Clipper
Cobol
C++
FORTH
Fortran
Haskell
Informix 4gl
Java
Lexico (con cdigos en castellano o sinnimos en otros idiomas)
Lisp
Logo
Modula
Pascal
Prolog
RPG
Visual Basic
Programacin Orientada a Objetos
Actualmente una de las reas ms candentes en la industria y en el
mbito acadmico es la orientacin a objetos. La orientacin a objetos promete
mejoras de amplio alcance en la forma de diseo, desarrollo y mantenimiento
del software ofreciendo una solucin a largo plazo a los problemas y
preocupaciones que han existido desde el comienzo en el desarrollo de

software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es dificil


de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas.
El concepto de programacin orientada a objetos (OOP) no es nuevo,
lenguajes clsicos como SmallTalk se basan en ella. Dado que la OOP. se basa
en la idea natural de la existencia de un mundo lleno de objetos y que la
resolucin del problema se realiza en trminos de objetos, un lenguaje se dice
que est basado en objetos si soporta objetos como una caracterstica
fundamental del mismo.
El elemento fundamental de la OOP es, como su nombre lo indica, el
objeto. Podemos definir un objeto como un conjunto complejo de datos y
programas que poseen estructura y forman parte de una organizacin.
Definiciones de la P.O.O.:
1. Un programa orientado a objetos es una coleccin de clases. Necesitar
una funcin principal que cree objetos y comience la ejecucin mediante
la invocacin de sus funciones miembro.
2. La programacin Orientada a objetos (POO) es una forma especial de
programar, ms cercana a como expresaramos las cosas en la vida real
que otros tipos de programacin. Con la POO tenemos que aprender a
pensar las cosas de una manera distinta, para escribir nuestros
programas en trminos de objetos, propiedades y mtodos.
3. La programacin orientada a objetos, intenta simular el mundo real a
travs del significado de objetos que contiene caractersticas y
funciones. Los lenguajes orientados a objetos se clasifican como
lenguajes de quinta generacin. Como su mismo nombre indica, la
programacin orientada a objetos se basa en la idea de un objeto, que
es una combinacin de variables locales y procedimientos llamados
mtodos que juntos conforman una entidad de programacin.
Elementos de la Programacin Orientada a Objetos en Java
Clase: Es una estructura de datos que permite describir las caractersticas
(atributos) y comportamiento (mtodos) de los objetos.
Sintaxis 1:
alcance class NombreClase
{
atributos
mtodos
objetos
}
Sintaxis 2:
alcance class NombreClase
{

atributos
mtodos
public static void main(String [ ]arg)
{
declaraciones locales;
bloque de sentencias;
.
.
.
} // fin del mtodo principal
} // fin de la clase
nota: El alcance se refiere al nivel de encapsulamiento de la clase, es decir, si
esta es pblica, protegida o privada.
Atributos: Son las caractersticas que tendrn los objetos al momento de ser
creados. Para acceder al atributo de un objeto es utilizado el operador punto
( . ).
Ejemplo: nombreObjeto.nombreAtributo
Declaracin de atributos:
Sintaxis:
alcance tipo nombreAtributo;
alcance tipo nombreAtributo1, nombreAtributo2, , nombreAtributoN;
Ejemplo:
public String nombre;
protected float salario, descuentos;
private float bono;
Objeto: Es una instancia de clase, la cual consiste en una entidad de computo.
Con sus propias caractersticas (atributos) y comportamiento (mtodos). Todo
objeto para ser creado debe pertenecer a un tipo de clase especfica, la palabra
reservada new debe utilizarse para la creacin del objeto. Un objeto puede ser
creado utilizando el mtodo constructor o el mtodo constructor nulo.
Sintaxis 1:
NombreClase nombreObjeto = new NombreMetodoConstructor(parmetros);
Ejemplo:
Nomina empleado1 = new Nomina(Alvaro Snchez,11294755,800000);
Nomina empleado2 = new Nomina(nomb,ced,salario);

Sintaxis 2:
NombreClase nombreObjeto = new NombreMetodoConstructorNulo();
Ejemplo:
Nomina empleado3 = new Nomina();
Mtodo: Son un conjunto de instrucciones asociadas a un identificador que
permite realizar una tarea especfica.
Sintaxis:
alcance acceso tipo nombreMetodo(lista de parmetros)
{
declaraciones locales;
bloque de sentencias;
.
.
.
return expresin;
}
alcance = nivel de encapsulamiento.
acceso = Por omisin el mtodo se considera de objetos, al colocar la palabra
reservada static seria considerado un mtodo de clase.
tipo = Tipo de dato a devolver por el mtodo, por omisin se asume entero
(int).
nombreMetodo = Identificador vlido.
lista de parmetros = Argumentos que recibirn valores cada vez que se
realice una llamada (envi de mensaje) al mtodo, se debe especificar el tipo
de dato que recibir cada argumento, por omisin se asume entero (int).
declaraciones locales = variables o constantes que solo podrn ser utilizadas
dentro del mtodo.
Bloque de sentencias = Conjunto de instrucciones que se ejecutan cada vez
que se realice una llamada (envio de mensaje) al mtodo.
return = palabra reservada utilizada para que el mtodo pueda devolver un
valor, si el mtodo es de tipo void la palabra reservada return no se coloca.

expresin = Puede ser una expresin aritmtica, una variable, entre otros.
nota: El acceso se refiere a si el mtodo va ser de objetos o de clase, es decir,
si para llamar (enviar un mensaje) al mtodo se debe realizar mediante un
objeto o simplemente con el nombre del mtodo.
Ejemplo de mtodo de clase:
public static double calcularImpuesto(double monto)
{
return monto*0.15;
}
En el ejemplo anterior para llamar al mtodo calcularImpuesto solo hay que
enviar el mensaje: calcularImpuesto(parmetro).
Ejemplo de mtodo de objeto:
protected float calcularSalario(int horas)
{
float salario=0;
salario=horas * 8520.5;
if(horas>44)
salario=horas * 12850.5;
return salario;
}
En el ejemplo anterior para llamar al mtodo calcularSalario hay que enviar el
mensaje de la siguiente manera: nombreObjeto.calcularImpuesto(parmetro).

Mtodo constructor: Este permite crear objeto e inicializar algunos de sus


atributos, siempre deben tener el mismo nombre de la clase. Es importante
acotar que los mtodos constructores no son heredados.
Sintaxis:
NombreClase(lista de parmetros)
{
nombreAtributo1 = nombreParametro1;
nombreAtributo2 = nombreParametro2;
.
.
.
.

nombreAtributoN = nombreParametroN;
}
Ejemplo 1:
Nomina(String nomb,String ced)
{
nombre = nomb;
cedula = ced;
}
Ejemplo 2:
Nomina(String nomb,String ced, double salary)
{
nombre = nomb;
cedula = ced;
salario = salary;
}
Mtodo constructor nulo: Este permite crear objeto sin inicializar atributos,
debe tener el mismo nombre de la clase. En caso de que no exista en el
programa el mtodo constructor y el mtodo constructor nulo, este ltimo es
proporcionado implcitamente. Es importante indicar que el mtodo constructor
nulo no es heredable.
Sintaxis:
NombreClase()
{ }
Ejemplo:
Nomina()
{ }
Herencia: Permite crear nuevas clases partiendo de clases ya existentes,
heredando de esta manera los atributos y mtodos pblicos (public) o
protegidos (protected) de la clase ya existente, esto con el propsito de
minimizar el tiempo de desarrollo de una aplicacin, es decir, la finalidad es
reutilizar el cdigo de programas ya existentes. En ningn caso los atributos y
mtodos privados (private) podrn ser heredados, de igual manera de una
clase definida como privada no podrn crearse nuevas clases. En java la
herencia es simple, es decir, solo se podrn heredar atributos y mtodos de
una sola clase.

Sintaxis:
alcance class NombreClaseNueva extends NombreClaseExsitente
{
.
.
.
.
.
}
Ejemplo:
protected class Empleado
{
//atributos
public String nombre, cedula, direccion, telefono, cargo;
protected double salario, descuentoSSO, descuentoAH;
// metodos
public double calcularDesceuntoSSO(double salary)
{
return salary * 2 / 100;
}
public double calcularDesceuntoAH(double salary)
{
return salary * 1 / 100;
}
.
.
.
.
.
} // fin de la clase
protected class EmpleadoUniversitarioDocente extends Empleado
{
//Atributos
protected String profesion;
private double bono;
// mtodos

public double CalcularSalario(int horas, float valorHora)


{
double salary=0;
salary = horas * valorHora;
return salary;
}
public double CalcularBono(double salary)
{
double bono=0;
if(salary<=800000)
bono= salary * 2.5 / 100;
else
bono= salary * 3.8 / 100;
return bono;
}
.
.
.
.
.
} // fin de la clase
Encapsulamiento: Se utiliza para ocultar los atributos y mtodos de una clase
e inclusive a la clase misma, de manera tal que slo puedan ser accezadas por
ciertos objetos.
public: Las clases, atributos y mtodos pblicos podrn ser accesados por
cualquier objeto de cualquier clase. Adems, en caso de aplicar herencia estos
atributos y mtodos sern heredados.
protected: Las clases, atributos y mtodos protegidos podrn ser accesados
por los objetos pertenecientes a su misma clase y por los objetos
pertenecientes a su misma familia o jerarqua de clases. En ningn caso los
atributos y mtodos protegidos de una clase podrn ser accesados por objetos
que no pertenezcan a la misma familia o jerarqua de clases. En caso de
aplicar herencia los mtodos y atributos protegidos sern heredados.
private: Las clases privadas son definidas como clases finales por lo tanto
estas no pueden ser extendidas, es decir, no se pueden crear nuevas clases de

una clase privada. Los atributos y mtodos privados no pueden ser heredados,
es decir, solo podrn ser accesados por los objetos pertenecientes a su misma
clase.
Nota: En caso que se omita el alcance o nivel de encapsulamiento para la clase
atributo o mtodo estos sern definidos por defecto como package (paquete),
es decir, que esa clase, atributos o mtodos podrn ser accesados por objetos
del mismo paquete o jerarqua de paquetes
Polimofismo: Consiste en mtodos que tiene distinta forma pero devuelven un
mismo resultado. Ejemplo: podramos tener mtodos para calcular el salario de
obreros, docentes, personal administrativo, entre otros, evidentemente el
conjunto de instrucciones de cada mtodo ser diferente debido a que cada
uno de estos tipos de empleados se les cancela tomando en cuenta diferentes
criterios, aunque el resultado que arrojara cada uno de estos mtodos siempre
ser el mismo, es decir, el salario devengado por el empleado.
Ejemplo:
public float calcularSalario()
{
.
.
.
return salario;
}
public float calcularSalario(float horas)
{
.
.
.
return salario;
}
public double calcularSalario(float horas, flota valorHora)

{
.
.
.
return salario;
}
UML
El Lenguaje de Modelamiento Unificado (UML - Unified Modeling
Language) es un lenguaje grfico para visualizar, especificar y documentar
cada una de las partes que comprende el desarrollo de software. UML entrega
una forma de modelar cosas conceptuales como lo son procesos de negocio y
funciones de sistema, adems de cosas concretas como lo son escribir clases
en un lenguaje determinado, esquemas de base de datos y componentes de
software reusables.
Modelo de Clases
Un diagrama de clases sirve para visualizar las relaciones entre las
clases que involucran el sistema, las cuales pueden ser asociativas, de
herencia, de uso y de contenimiento.
Un diagrama de clases esta compuesto por los siguientes elementos:

Clase: atributos, mtodos y visibilidad.


Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso.

Elementos

Clase
Es la unidad bsica que encapsula toda la informacin de un Objeto (un
objeto es una instancia de una clase). A travs de ella podemos modelar
el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).
En UML, una clase es representada por un rectngulo que posee tres
divisiones:

En donde:

o
o
o

Superior: Contiene el nombre de la Clase


Intermedio: Contiene los atributos (o variables de instancia) que
caracterizan a la Clase (pueden ser private, protected o public).
Inferior: Contiene los mtodos u operaciones, los cuales son la
forma como interacta el objeto con su entorno (dependiendo de
la visibilidad: private, protected o public).

Ejemplo:
Una Cuenta Corriente que posee como caracterstica:
o

Balance

Puede realizar las operaciones de:


o
o
o

Depositar
Girar
y Balance

El diseo asociado es:

Ejercicios: (Para el Estudiante)


1.- Quitar una bombilla fundida de un techo.
2.- Escribir un algoritmo para:
a) Sumar dos nmeros enteros.
b) Restar dos nmeros enteros.
c) Multiplicar dos nmeros enteros.
d) Dividir un nmero entero por otro.
3.- Escribir un algoritmo que lea tres nmeros enteros porsitivos y muestre cual
es el mayor.
4.- Escribir un algoritmo que calcule la superficie de un triangulo.
5.- Calcular el salario de un trabajador a partir de la lectura del nombre, horas
trabajadas y precio de la hora.
6.- Calcular el Salario semanal de los empleados de una empresa, sabiendo
que estas se calculan en base a las horas semanales trabajadas y de acuerdo
a un precio especificado por cada hora. Si se pasan de 40 horas semanales se
pagaran a razn de 1000bs. La hora ordinaria de lo contrario se pagan a
800bs.
Tema 2: Tipos de Datos

Que es una dato?


Unidad Mnima de Informacin. (Dato, Informacin, Conocimiento.)
Los datos son los objetos sobre los que opera una computadora. Los
tipos de datos que manipulan las computadoras se dividen en:

Simples.
Estructurados.
Definidos por el Usuario.

Los datos simples se clasifican en los siguientes tipos:


Numricos. (Enteros y reales)
Lgicos. (Cierto verdadero (true) y falso (false))
Carcter. Los datos de tipo carcter son los que puede interpretar la
computadora: Alfabticos (A, B, C, D, E, . ,Z, c,,z), dgitos (0,1,..,8,9),
especiales($,*,>, =, <,.). Un dato tipo carcter es solo un carcter.
Los caracteres se organizan en cadenas. Una cadena de caracteres es
una secuencia o serie de caracteres validos encerrados entre caracteres
especiales denominados delimitadores y que suelen ser comillas o dobles
comillas
12 de octubre de 1492
12 de octubre de 1492
Datos estructurados:

Cadenas(String)
Vectores y matrices(arrays)
Registros(record)

Definidos por el Usuario (Enumerado)


Un tipo enumerado es un conjunto de datos que conservan un orden, tal
que cada elemento tiene sucesor y predecesor, excepto el primero que no tiene
predecesor y el ltimo que no tiene sucesor. Se suelen definir en las cabeceras
de los programas, en una seccin de definicin de tipos.
Tipo Arcoiris
= (blanco, amarillo, rojo, azul, violeta, gris)
Automviles = (BMW, Fiat, Opel, Peugeot, Saab, Volkswagen)
Identificadores y Palabras reservadas: cuando se escriben programas de
computadoras en un lenguaje de alto nivel se necesita utilizar nombres para
identificar a los objetos que se desea manipular: variables, constantes,
procedimientos, funciones, etc.

Palabras Reservadas: son palabras clave y propias de un lenguaje de


programacin que constituyen la base de las sentencias, funciones,
expresiones y rdenes.
int, char, string, if, for
Constantes: son datos cuyo valor no cambia durante la ejecucin del
programa. Ej. PI = 3.1416;
Variables: son objetos que pueden cambiar su cambiar su valor durante la
ejecucin del programa. Para nombrar variables se utilizan identificadores que
deben seguir las reglas de formacin.
Nombres de Variables

Significado

Horas
Paga_mes

Horas Trabajadas
Salario mensual

Tipos de Datos en Java


Los tipos de datos que soporta Java son los siguientes:
Enteros:
int
byte
short
long
Nmeros en coma flotante (reales):
float
double
Caracteres:
char
Lgicos:
boolean
Enteros
Los enteros son adecuados para aplicaciones que empleen datos numricos
sin parte fraccionaria.
Java dispone de cuatro tipos de datos enteros:
byte: emplea 8 bits, el rango de valores representables es 128 .. +127.
Resulta especialmente til en bucles.
short: emplea 16 bits, el rango de valores representables es 32768 ..
+32767. Resulta til para realizar aritmtica de enteros (no demasiado
grandes).

int: emplea 32 bits, el rango de valores representables es 2147483648 .. +


2147483647. Resulta til para realizar aritmtica de enteros en general.
long: emplea 64 bits, el rango de valores representables es enorme!! til para
aritmtica de enteros grandes (pe. factorial)
Java siempre realiza las operaciones aritmticas con enteros de tipo int a
no ser que se empleen enteros long.
Reales
Java dispone de dos tipos de datos reales:
float: emplea 32 bits , el rango de valores representables es 3,4E-38
3,4E38
double: emplea 64 bits , el rango de valores representables es 1,7E-308
1,7E308
Carcter:
Un carcter es cualquier elemento de un conjunto de smbolos predefinidos o
alfabeto.
Los lenguajes de programacin, tradicionalmente, empleaban 8 bits para este
tipo lo cual les permita representar caracteres del ASCII extendido.
Java fue diseado para poder admitir caracteres de cualquier alfabeto; para ello
fue adaptado al estndar UNICODE. De esta forma un carcter Java emplea 16
bits.
Las constantes carcter en Java pueden indicarse entre comillas simples,
mediante su cdigo UNICODE o mediante su cdigo numrico:
a equivale a \u0061, a 97, a 0x61 y a 0141
A equivale a \u0041, a 65, a 0x41 y a 0101
Existen caracteres que no se pueden escribir de una forma normal y precisan
secuencias de escape, por ejemplo:
La comilla simple: \
El salto de lnea: \n
El tabulador: \t
Y otros...
Valores lgicos
El tipo de dato bolean admite nicamente dos valores:
Verdadero (true)
Falso (false)
Posteriormente veremos qu expresiones dan como resultado valores
lgicos.

Operadores Aritmticos (,*, /, +, -, div(\), mod*)


Operador

*,/
+,div(\),mod*

Orden
(mayor)

(menor)

Operacin
Potenciacin
Multiplicacin, Divisin
Suma, resta
Divisin, modulo

Operaciones Aritmticas:
Las variables y constantes pueden ser procesadas utilizando
operaciones y funciones adecuadas a sus tipos. En esta seccin
examinaremos las operaciones que se utilizan con datos numricos.
Ejemplo:
8+5
Tema 3. Estructuras Elementales
Estructura de Seleccin Simple SI
La estructura de seleccin simple permite ejecutar una accin o un grupo
de acciones slo si se cumple una determinada condicin. si la condicin es
verdadera se ejecuta la accin acciona; en caso contrario, no se hace nada.
Diagrama de Flujo

Pseudocdigo (accin simple)


SI(condicion)
acciona
Pseudocdigo
SI(condicion)

(accin

compuesta)

{
acciona2
.
accionan
}

Cdigo en Java
If(condicion)
{

.
.
.
.

acciona1

Por ejemplo, si se desea cambiar el signo de un nmero nicamente en caso


que sea negativo, podemos escribir:
SI( numero < 0 )
numero = -1 * numero

En java
If(numero < 0 )
numero = -1 * numero

Si el nmero no es negativo, simplemente esta estructura se pasara por alto y


se continuara en la siguiente instruccin despus del SI.
Estructura de Seleccin Doble SI SINO
La estructura de seleccin doble permite seleccionar una ruta de dos rutas
posibles en base a la verdad o falsedad de una condicin.
si la condicin es verdadera, se ejecuta la accin A; en caso contrario, se
ejecuta la accin B.
Pseudocdigo
simple)

(accin

SI(condicion)
acciona
SINO
accionb

Pseudocdigo(accin
compuesta)

Diagrama de Flujo

En java

SI(condicion){
acciona1
acciona2
.
.
.
accionan
}
SINO{
accionb1
accionb2
.
.
.
accionbn
}

If(condicion)
acciona
else
accionb

Por ejemplo, la siguiente estructura de seleccin doble determina si una


persona es mayor o menor de edad:
SI(edad>=18)
estado = "Mayor de edad"
SINO
estado = "Menor de edad"
En Java
If(edad>=18)
estado = "Mayor de edad"
else
estado = "Menor de edad"

Esto imprime "Mayor de edad" si la persona tiene 18 aos ms e imprime


"Menor de edad" si la persona tiene menos de 18 aos. En cualquiera de los
casos, despus de efectuar la impresin, se ejecutar la primera instruccin
que sigue a la estructura SI...SINO.

Estructura de Seleccin Doble en Cascada SI-SINO-SI


La estructura de seleccin doble en cascada esta formada por varias
estructuras de seleccin doble SI-SINO puestas una a continuacin de otra de
forma que a un SI-SINO le sigue otro SI-SINO.
En la estructura de seleccin doble en cascada, las condiciones se evalan en
orden descendente, pasando de una condicin a otra si la condicin anterior
resulta falsa. En el momento que se encuentra una condicin verdadera, se
efecta la accin correspondiente a dicha condicin y se corta el resto de la
estructura. Si todas las condiciones resultan falsas, se efecta la accin
correspondiente al ltimo SINO, que se considera como la accin por defecto.

Pseudo cdigo ( Forma 1 )


SI(condicion1)
accion1
SINO
SI(condicion2)
accion2
SINO

SI(condicion3)
accion3
.
.
.
SINO
acciondefecto

Pseudo cdigo ( Forma 2 )


SI(condicion1)
accion1
SINO
SI(condicion2)

SINO SI(condicion3)
accion3
.
.
.
SINO
acciondefecto

accion2

En java
if(condicion1)
accion1
else
if(condicion2)
accion2
else
accion3
.
.
.
else
acciondefecto

if(condicion3)

Por ejemplo, la siguiente estructura de seleccin doble en cascada determina el


signo de un nmero entre positivo, negativo o cero:
SI(n>0)
signo="Positivo"
SINO
SI(n<0)

signo="Negativo"
SINO
signo = "Cero"

En java
if(n>0)
signo="Positivo"
else
if(n<0)
signo="Negativo"
else
signo = "Cero"
Usando el otro formato tendramos:
SI(n>0)
signo="Positivo"
SINO
SI(n<0)
signo="Negativo"
SINO
signo = "Cero"

En java
if(n>0)
signo="Positivo"
else
if(n<0)

signo="Negativo"

signo = "Cero"

else

Estructura de Seleccin Mltiple


Por ejemplo, la siguiente estructura de seleccin mltiple determina el nombre
de la estacin del ao conociendo el nmero de la estacin (1 para Primavera,
2 para Verano, 3 para Otoo y 4 para Invierno) :
SEGUN(numeroEstacion){
CASO 1

: nombreEstacion = "Primavera"

CASO 2

: nombreEstacion = "Verano"

CASO 3

: nombreEstacion = "Otoo"

DEFECTO : nombreEstacion = "Invierno"

}
En Java
switch(numeroEstacion){
case 1

: nombreEstacion = "Primavera"

case 2

: nombreEstacion = "Verano"

case 3

: nombreEstacion = "Otoo"

default : nombreEstacion = "Invierno"


}

Ejercicios
1:- En una playa de estacionamiento cobran S/. 2.5 por hora o fraccin. Disee
un algoritmo que determine cuanto debe pagar un cliente por el
estacionamiento de su vehculo, conociendo el tiempo de estacionamiento en
horas y minutos.
Algoritmo 1
INICIO
// Declaracin de variables
ENTERO horas, minutos
REAL pago
// Entrada de datos
LEER horas, minutos
// Si hay alguna fraccin de hora, incrementa las horas a pagar en
una unidad
SI( minutos > 0 )

horas = horas + 1

// Determina el importe a pagar


pago = horas * 2.5
// Salida de resultados
IMPRIMIR pago

FIN
Algoritmo 2
INICIO
// Declaracin de variables
ENTERO horas, minutos, horasPagar
REAL pago
// Entrada de datos
LEER horas, minutos
// Determina el nmero de horas a pagar
SI( minutos > 0 )
horasPagar = horas + 1
SINO
horasPagar = horas
// Determina el importe a pagar
pago = horasPagar * 2.5
// Salida de resultados
IMPRIMIR pago
FIN

2:- Disee un algoritmo que determine si un nmero es o no es, par positivo.


INICIO
// Declaracin de variables
REAL numero
CADENA tipoNumero
// Entrada de datos
LEER numero
// Determina si el nmero es o no es, par positivo
SI( (numero%2==0) && (numero>0) )
tipoNumero = "El nmero es par positivo"

SINO
tipoNumero = "El nmero no es par positivo"
// Salida de resultados
IMPRIMIR tipoNumero
FIN

3:- Disee un algoritmo que lea tres nmeros y determine el nmero mayor.
INICIO
// Declaracin de variables
REAL numero1, numero2, numero3, numeroMayor
// Entrada de datos
LEER numero1, numero2, numero3
// Determina el mayor
numeroMayor = numero1
SI( numero2 > numeroMayor )
numeroMayor = numero2
SI( numero3 > numeroMayor )
numeroMayor = numero3
// Salida de resultados
IMPRIMIR mayor
FIN

4.- Una tienda ha puesto en oferta la venta al por mayor de cierto producto,
ofreciendo un descuento del 15% por la compra de ms de 3 docenas y 10%
en caso contrario. Adems por la compra de ms de 3 docenas se obsequia
una unidad del producto por cada docena en exceso sobre 3. Disee un
algoritmo que determine el monto de la compra, el monto del descuento, el
monto a pagar y el nmero de unidades de obsequio por la compra de cierta
cantidad de docenas del producto.
INICIO
// Declaracin de variables
REAL montopag, montocom, montodes, precio
ENTERO docenas, obsequio
// Entrada de datos

LEER docenas, precio


// Determina el monto de la compra
montocom = docenas*precio
// Determina el monto del descuento y el obsequio
SI( docenas > 3 ){
montodes = 0.15*montocom
obsequio = docenas-3
}
SINO{
montodes = 0.10*montocom
obsequio = 0
}
// Determina el monto a pagar
montopag = montocom montodes
// Salida de resultados
IMPRIMIR montocom, montodes, montopag, obsequio
FIN

5:- Disee un algoritmo que lea un nmero de tres cifras si el numero tiene mas
de tres cifras debe mostrar un mensaje q diga numero invalido.
SI(numero >= 100 && numero <= 999 )

6.-Una compaa dedicada al alquiler de automviles cobra un monto fijo de


$30 para los primeros 300 km de recorrido. Para ms de 300 km y hasta 1000
km, cobra un monto adicional de $ 0.15 por cada kilmetro en exceso sobre
300. Para ms de 1000 km cobra un monto adicional de $ 0.10 por cada
kilmetro en exceso sobre 1000. Los precios ya incluyen el 18% del impuesto
general a las ventas, IGV. Disee un algoritmo que determine el monto a pagar
por el alquiler de un vehculo y el monto incluido del impuesto.
INICIO
// Declaracin de variables
REAL kilomrec, montopag, montoigv, montofijo = 30, igv = 0.18
// Entrada de datos

LEER kilomrec
// Determina el monto a pagar
SI( kilomrec <= 300 )
montopag = montofijo
SINO SI( kilomrec <= 1000 )
montopag = montofijo + 0.15*(kilomrec-300)
SINO
montopag = montofijo + 0.15*700 + 0.10*(kilomrec-1000)
// Determina el monto del impuesto
montoigv = igv*montopag /(1+igv)
// Salida de resultados
IMPRIMIR montopag, montoigv
FIN

7.- El promedio de prcticas de un curso se calcula en base a cuatro prcticas


calificadas de las cuales se elimina la nota menor y se promedian las tres notas
ms altas. Disee un algoritmo que determine la nota eliminada y el promedio
de prcticas de un estudiante.
INICIO
// Declaracin de variables

REAL pc1, pc2, pc3, pc4, pcmenor, promedio


// Entrada de datos

LEER pc1, pc2, pc3, pc4


// Determina la nota menor

pcmenor = pc1
SI( pc2 < pcmenor )
pcmenor = pc2
SI( pc3 < pcmenor )
pcmenor = pc3

SI( pc4 < pcmenor )


pcmenor = pc4
// Determina el promedio

promedio = (pc1 + pc2 + pc3 + pc4 - pcmenor )/3


// Salida de resultados

IMPRIMIR promedio, pcmenor


FIN

Material consultado para la elaboracin de la Gua:


Metodologa de la Programacin de Lus Joyanes Aguilar.
Manual de Programacin Java 2 de Lus Joyanes Aguilar y Matilde
Fernndez.
http://www.dcc.uchile.cl/~psalinas/uml/casosuso.html
http://www.euitio.uniovi.es/~ip/3.PDF

S-ar putea să vă placă și