0% encontró este documento útil (0 votos)
64 vistas55 páginas

Dossier de Informática en Contaduría

Este documento presenta el dossier para la asignatura de Informática de la carrera de Contaduría Pública en la Universidad Salesiana de Bolivia. Incluye la presentación, competencias, contenidos mínimos oficiales y analíticos, y cinco unidades sobre programación en Java, fundamentos de programación en Java, programación modular, cadenas de caracteres y organización de archivos. El objetivo es introducir a los estudiantes a la programación y aplicar estas habilidades para resolver problemas relacionados a empresas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
64 vistas55 páginas

Dossier de Informática en Contaduría

Este documento presenta el dossier para la asignatura de Informática de la carrera de Contaduría Pública en la Universidad Salesiana de Bolivia. Incluye la presentación, competencias, contenidos mínimos oficiales y analíticos, y cinco unidades sobre programación en Java, fundamentos de programación en Java, programación modular, cadenas de caracteres y organización de archivos. El objetivo es introducir a los estudiantes a la programación y aplicar estas habilidades para resolver problemas relacionados a empresas.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática

Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Docentes: Lic. J. Carla Aguirre Montalvo


Lic. C. Flabio Beltrán

Gestión - 2013

1
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

ÍNDICE
I. PRESENTACIÓN
II. CONTENIDO O CUERPO DEL DOSSIER 4-7
2.1. CONTENIDOS MÍNIMOS OFICIALES 5
2.2. CONTENIDOS ANALÍTICOS 6
UNIDAD I. PROGRAMACIÓN EN Java 8 – 14
Concepto de Java
Modo de Diseño y Modo de Ejecución
Formularios y Controles
¿Qué es un Objeto?
¿ Qué es un Proyecto?
EL ENTORNO DE PROGRAMACIÓN Java
Descripción del modelo controlado por eventos
Cuadro de Herramientas
Terminología de Java (RESUMEN)
UNIDAD 2. FUNDAMENTOS DE LA PROGRAMACIÓN EN JAVA 15 - 33
Pasos para crear una aplicación
Convenciones para los nombres de los objetos
Estableciendo Propiedades en Tiempo de Diseño
Estableciendo Propiedades en Tiempo de Ejecución
Obteniendo Propiedades en Tiempo de Ejecución
Manejo de Formularios
Modulos de Formulario
El Cuadro Lista de Objetos
El Cuadro Lista de Eventos
La Barra de División
El Botón Ver Procedimiento
El Botón Ver Módulo Completo
Sangría
Carácter de Continuación de Línea
Comentarios
Comentarios
Tipos De Datos, Constantes y Variables
Tipos de Datos
Declaración de Variables
Constantes
OPERADORES
Estructuras de Control
Estructuras de Decisión
Estructuras de Repetición
Problemas de Aplicación

2
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

34 - 43
Unidad 3. Programación Modular

Introducción.-
Programación Modular
Tamaño de los módulos
Procedimientos y Funciones
Parámetros Valor y Parámetros Variable
Variables Locales y Variables Globales
Reglas de Ámbito
Declaración de variables
Variables utilizadas en un módulo
43 - 49
Unidad 4. LAS CADENAS DE CARACTERES

JUEGO DE CARACTERES:
DATOS DE TIPO CARÁCTER:
OPERACIONES CON CADENAS:
FUNCIONES INTRÍNSECAS
Unidad 5. Organización de Archivos 50 - 54
Introducción
Organización y acceso a archivos (File organizittion and access)
Uso del Motor de Base de Datos Microsoft Jet
Registros
BIBLIOGRAFÍA 55
ANEXOS diapositivas JAVA 56

3
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

DOSSIER INFORMÁTICA
I. PRESENTACIÓN

La asignatura Informática forma parte del tercer curso de la carrera de Contaduría Pública como
asignatura que se imparte en el tercer cuatrimestre. Como se ha mencionado anteriormente los
descriptores de dicha asignatura es: Introducción a la programación Dicha asignatura tiene una relación
clara y estrecha con la asignatura de segundo curso donde se imparten conceptos relacionados con el
diseño de algoritmos, con las expresiones empleadas, así como con el diseño, y cuyo entendimiento es
necesario para abordar con éxito la materia que nos ocupa.

Además de estas relaciones, en cursos más avanzados, existen otras asignaturas que incluyen entre sus
tópicos temas más avanzados relacionados con la programación:

1.2. Competencias

General :

Utiliza el área tecnológica operativa como herramienta en el desarrollo de programas prácticos


en lenguaje visual, manteniendo buenas relaciones interpersonales para el trabajo en equipo y
aplica la creatividad, detección de fallas, diseño y corrección de problemas oportunamente en
los programas propuestos.

Específicos :
- Diseña e implementa programas en lenguaje Java resolviendo problemas aplicados a
empresas construidas a través de estructuras algorítmicas.
- Reconoce en detalle cada una de las sentencias definidas en Java, manipulando los datos y
haciendo pruebas de control.
- Analiza e identifica los diversos comandos y controles en Java permitiendo la aplicación de
cada uno según considere conveniente en la solución del problema.

- Maneja y aplica técnicas de programación modular para optimizar las soluciones propuestas.

- Utiliza y compara la aplicación de subprogramas realizados con funciones y procedimientos


en la implementación de diferentes programas.

- Implementa y desarrolla programas utilizando funciones de manejo de cadenas y funciones


matemáticas.

- Analiza e identifica los diferentes tipos de archivos y se prepara para la implantación de


estructuras de bases de datos en Java.

4
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

1.3. Habilidades cognitivas:


 Ser capaz de utilizar funciones y procedimientos.
 Comprender y aplicar técnicas básicas de clasificación.
 Ser capaz de declarar y de manipular estructuras de programación.
 Comprender el tipo de datos “cadena”.
 Entender los operadores de entrada/salida de para el tipo “cadena” .
 Comprender las bibliotecas de funciones como medio de conseguir reutilización de software.
 Ser capaz de pasar estructuras a funciones en llamada por valor y en llamada por referencia.
 Conocer los distitos tipos de ficheros y las operaciones que se pueden realizar sobre ellos.
 Comprender el proceso de archivos de acceso secuencial.
 Entender el proceso de archivos de acceso directo.

1.4. Destrezas lingüísticas:


 Conocer la sintaxis de los programas en Java.
 Conocer la sintaxis de las cadenas y sus operadores en Java.
 Conocer la sintaxis de las órdenes en Java.
 Adquirir y utilizar la terminología usual de ficheros.

1.5. Habilidades cognitivas:


 Diferenciar los objetos y eventos utilizados en Java.
 Conocer las ventajas e inconvenientes del lenguaje de programación Java.

1.6. Dossier como política educativa?

 ¿Cuál es mi política educativa?

El alumno al iniciar el estudio de la materia debe cumplir requisitos imprescindibles, que están
establecidos bajo normas salesianas, acordes a un alumno de universidad.
 Estar inscrito formalmente en la universidad y poseer su carnet de universitario de la salesiana.
 Ser Bachiller y haber cursado el primer semestre de la carrera de contaduría pública y sistemas.
 Tener conocimientos básicos sobre el manejo de la computadora.
 Cumplir con las normas de conducta requeridas en una casa superior de estudio.
La forma de evaluación de estos aspectos deben ser considerados a través del reglamento de la
Universidad Salesiana y para reconocer los conocimientos básicos a través de la evaluación diagnóstica.

 ¿Que quiero hacer en pedagogía?

Dejo de ser el depositario de la verdad que debe transmitir a una mente, para convertirme en un miembro
del grupo con una función de guía, como un estimulador y organizador del aprendizaje, como un
supervisor de una tarea que es ejecutada fundamentalmente por otros y no únicamente por mi persona.

 ¿Cuáles son mis prioridades?

5
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Entre mis prioridades está:

 Dar cumplimiento al objetivo de la materia.

 Motivar a los alumnos para incorporar las posibilidades de las nuevas TIC´s en las actividades de
enseñanza - aprendizaje.

 En el plan de disciplina propuesto existe el empleo de técnicas de grupo que deberán ser
traducidas ha experiencias, para que puedan ser vividas como tales en la situación grupal. El
planeamiento facilita normas para organizar un plan de disciplina por unidades, respetando y
alcanzando objetivos operacionalmente definidos, evaluando los resultados.

6
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

 CONTENIDOS MÍNIMOS OFICIALES

 CONTENIDOS MÍNIMOS OFICIALES

Programación en Java - Fundamentos de la Programación en Lenguaje Java - Manejo de


Controles en Java - Programación modular – tipos de módulos (Subprograma y programa
Principal) – Manejo de Funciones Cadenas de caracteres – Organización de Archivos.
 CONTENIDOS ANALÍTICOS

UNIDADES Y

CONTENDIDO ANALÍTICO DE LA MATERIA


UNIDAD I
PROGRAMACIÓN EN LENGUAJE JAVA.

Terminología de Java - ¿Qué es un proyecto? – Pasos para crear una aplicación – Convenciones para los nombres de
objetos – Propiedades – Manejo de formularios – Creación de una aplicación - como almacenar el programa - ejecución
del programa- función msgbox - función inputbox.
UNIDAD II
FUNDAMENTOS DE LA PROGRAMACIÓN EN JAVA
Conceptos de Java – Pantalla de Java – Formulario – Diseño de la Interfaz – Comentarios - Variables y constantes -
Declaración de variables - tipos de datos - Ambitos de las variables - operadores - Establecimiento de Propiedades –
Escritura de Código- Estructuras de Control - Estructuras Repetitivas - Estructuras de control anidadas.
UNIDAD III
MANEJO DE CONTROLES EN JAVA
Control Label - Control TextBox - control CommandButton - Control CheckBox - Control Option Buton - Control
Frame - Control ListBox - Control comboBox - Control Timer- Creación de menús.
UNIDAD IV
PROGRAMACIÓN MODULAR Y ESTRUCTURADA

Revisión de Conceptos, Definición de Programación Modular, Módulo, Tamaño de modulo, Implementación de los
Módulos, Definición de Programación Estructurada, Funciones, Procedimientos. Paso de Parámetros, Paso de
Parámetros por Valor, Paso de Parámetros por referencia, Variables Globales y Locales.

UNIDAD V
LAS CADENAS DE CARACTERES

Introducción – Cadena de caracteres – Datos tipo carácter – Operaciones con cadenas – Otras funciones de cadenas

UNIDAD VI
ORGANIZACIÓN DE ARCHIVOS

Noción de archivos. Archivos Secuenciales - Archivos Aleatorios - Definición de un registro- escritura de un archivo
aleatorio- lectura de un archivo aleatorio - Creación de Módulos - Control Data - Asistente para formularios.

II. CONTENIDO O CUERPO DEL DOSSIER

7
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

UNIDAD 1
PROGRAMACIÓN EN JAVA

Introducción al Desarrollo de Aplicaciones con Java


1.1. Concepto de Java

Java es un lenguaje de desarrollo de propósito general, y como tal es válido para realizar todo tipo de
aplicaciones profesionales. Entonces, ¿es simplemente otro lenguaje más? Definitivamente no.
Incluye una combinación de características que lo hacen único y está siendo adoptado por multitud
de fabricantes como herramienta básica para el desarrollo de aplicaciones comerciales de gran
repercusión.

La Herramienta “Netbeans” hace referencia al método que se utiliza para crear la Desarrollo de
Entornos Integrados (IDE). En lugar de escribir numerosas líneas de código para describir la apariencia y
la ubicación de los elementos de la interfaz, simplemente puede agregar objetos prefabricados en su lugar
dentro de la pantalla.

El lenguaje “Java” puede considerarse como una evolución del C++. La sintaxis es parecida a la de
este lenguaje, por lo que en este libro se hará referencia a dicho lenguaje frecuentemente. A pesar de
que puede considerarse como una evolución del C++ no acarrea los inconvenientes del mismo, ya
que Java fue diseñado “partiendo de cero”, es decir, no necesitaba ser compatible con versiones
anteriores de ningún lenguaje como ocurre con C++ y C. Gracias a que fue diseñado “partiendo de
cero” ha conseguido convertirse en un lenguaje orientado a objetos puro, limpio y práctico. No
permite programar mediante otra técnica que no sea la programación orientada a objetos (POO en
adelante) y, una vez superado el aprendizaje de la programación orientada a objetos, es realmente
sencillo aprender Java. ¿El lenguaje es Compilado o Interpretado? Ni una cosa ni la otra. Aunque
estrictamente hablando es interpretado, necesita de un proceso previo de compilación. Una vez
“compilado” el programa, se crea un fichero que almacena lo que se denomina bytecodes o jcode
(pseudocódigo prácticamente al nivel de código máquina). Para ejecutarlo, es necesario un
“intérprete”, la JVM (Java Virtual Machine) máquina virtual Java. De esta forma, es posible
compilar el programa en una estación UNIX y ejecutarlo en otra con Windows95 utilizando la
máquina virtual Java para Windows95. Esta JVM se encarga de leer los bytecodes y traducirlos a
instrucciones ejecutables .

Al ingresar al programa se despliega un cuadro de diálogos (figura 1) en el cual se puede


seleccionar que tipo de aplicación deseas crear, la mas utilizada es “Java Application”.

Nos iniciaremos con NETBEANS conociendo un poco el entorno de su interfaz para mayor
movilidad dentro del IDE, a lo largo de los capítulos que estaremos haciendo vamos de ir
avanzando con la complejidad de la programación.

Como ya tenemos instalado NETBEANS tendremos un icono en nuestro escritorio al cual


para acceder a NETBEANS tendremos que dar doble clic sobre el.

8
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

(FIGURA
1)

1.3.

Formularios y Controles

Controles

Formulario
(JFrameForm)

9
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Cada uno de los elementos gráficos que pueden formar parte de una aplicación típica de
Windows 95/98/XP/Seven es un tipo de control: los botones, las cajas de diálogo y de texto, las
cajas de selección desplegables, los botones de opción y de selección, las barras de
desplazamiento horizontales y verticales, los gráficos, los menús, y muchos otros tipos de
elementos son controles para Netbeans. Cada control debe tener un nombre a través del cual se
puede hacer referencia a él en el programa. proporciona nombres por defecto que el usuario
puede modificar. En el Apartado 1.2.4 se exponen algunas reglas para dar nombres a los distintos
controles. En la terminología de Netbeans se llama formulario (form) a una ventana. Un
formulario puede ser considerado como una especie de contenedor para los controles. Una
aplicación puede tener varios formularios, pero un único formulario puede ser suficiente para las
aplicaciones más sencillas. Los formularios deben también tener un nombre, que puede crearse
siguiendo las mismas reglas que para los controles.

1.4. ¿Qué es un Objeto?

Los elementos básicos (formularios y controles) de construcción de una aplicación con Java son
los objetos. Cada objeto tiene un conjunto de características y comportamiento definido y hacen
que cumpla con una función determinada en una aplicación. Los objetos pueden moverse, variar
de tamaño y personalizarse mediante la asignación de propiedades en tiempo de diseño en tiempo
de ejecución.

Propiedad: conjunto de datos que describen las características de un objeto se le conoce como
sus propiedades (color, tamaño, título, etc.). En Tiempo de Diseño, se las establece a través de la
ventana de propiedades y o durante la ejecución del programa, mediante el uso de sentencias en
el código del mismo. La sintaxi para asignar valor a una propiedad es:
Método: Sentencia especial que realiza una acción o un servicio para un objeto, dentro del
programa.
Sucesos: Hechos que son desencadenados en los formularios y controles por la acción del usuario. A
cada suceso se puede asociar un procedimiento que responda adecuadamente a la acción desencadenada.
Los sucesos son los mensajes o solicitudes que se envían a los objetos de Java.

1.5. ¿ Qué es un Proyecto?

El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones de escritorio,


aplicaciones web y aplicaciones móviles utilizando las últimas tecnologías para los
desarrolladores de software de Java. El IDE de NetBeans es un producto gratuito y sin
restricciones de uso pudiendo escribir, compilar, depurar e implementar programas en Java.

NetBeans es un proyecto open source de desarrollo escrito en Java. La plataforma NetBeans da


soporte para escritura de servlets, ayuda on-line y ayudas con el código. Usaremos la versión 6.0
de NetBeans para la construcción y diseño de las aplicaciones.

Un proyecto es una serie de archivos (módulos, formularios, etc.) que integran en su conjunto una
aplicación completa. En proyecto consta de los siguientes archivos:

1.6. EL ENTORNO DE PROGRAMACIÓN JAVA con Netbeans

10
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Figura 3.
Descripción del Entorno Netbeans con Java

Netbeans es un entorno de desarrollo integrado (IDE) que permite editar programas en java,
compilarlos, ejecutarlos, depurarlos, construir rápidamente el interfaz gráfico de una aplicación
eligiendo los componentes de una paleta, etc.

1. Barra de título
Todas las ventanas de una herramienta de programación contienen una barra de título en el cual se ve el
título de la aplicación (programa) y los botones de control de la ventana con los cuales es posible hacer que
se reduzca a un botón en la barra de tareas (tamaño mínimo), ordenar que ocupe toda la pantalla (tamaño
máximo), lograr que recupere el tamaño que tenía antes de ser la ventana máxima o mínima (restaurar) o,
simplemente, cerrar la ventana.

2. Barra de menús
En está área aparecen los menús disponibles. Cada menú contiene acciones específicas relativas al nombre
del menú.

3. Barra estandar
La barra de herramientas estándar contiene botones para las operaciones más habituales de los menús
File(Archivo), Edit(Edición), etc. New Project(Nuevo proyecto), Open Project(abrir proyecto), Save
all (guardar todo), etc. Estos botones se utilizan del mismo modo que los comandos de menú
equivalentes.

4. Ventana de proyectos, archivos y servicios


Es la ventana que va a contener el objeto activo del proyecto, los paquetes y librerias. Ademas los archivos
del proyecto y los servicios que se desean utilizar en la aplicación.

5. Ventana de navegación

11
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Esta ventana nos permite visualizar los objetos que contiene el proyecto actual agrupados por categorías

6. Ventana de edición
Es la ventana donde se va a realizar el código de los programas, el diseño de los formularios, etc.

Existen otras ventanas para edición de código (Code Editor) y para ver variables en tiempo de
ejecución con el depurador o Debugger (ventanas Immediate, Locals y Watch). Todo este
conjunto de herramientas y de ventanas es lo que se llama un entorno integrado de desarrollo o
IDE (Integrated Development Environment).

Construir aplicaciones con Java es muy sencillo: basta crear los controles en el formulario con
ayuda de la toolbox y del ratón, establecer sus propiedades con ayuda de la ventana de
propiedades y programar el código que realice las acciones adecuadas en respuesta a los eventos
o acciones que realice el usuario. A continuación, tras explicar brevemente cómo se utiliza el
Help de Java, se presentan algunos ejemplos ilustrativos. Figura 3. Entorno de programación de Java
6.0.

1.7. Descripción del modelo controlado por eventos

Para dar inicio a una aplicación de Java bajo el entorno de Netbeans se debe definir un proyecto, para ello,
seleccionas la opción del menú denominada File. Se muestra inmediatamente un menú flotante cuya primera
opción indica New Proyect, está opción la seleccionas.

Se observa que en Proyect Location se muestra la carpeta destino del proyecto. Vamos a suponer
que se quiere construir un programa que calcule el promedio de dos notas, entonces la ventana debería
quedar de la siguiente forma:

12
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Nombre del proyecto: Nombre del paquete Nombre de la clase principal:


prjPromedio pkgPromedio PromedioDeDosNotas, dentro del
paquete pkgPromedio

13
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

FUNDAMENTO
1.8. Uso de menús

MENU ARCHIVO
El menú archivo se ingresa presionando el botón izquierdo del ratón sobre la opción archivo de la barra
de menús desplegables o presionando simultáneamente las teclas ALT+A (si la versión fuese en ingles se
presiona ALT+F). Ahora vamos a examinar los mas importantes

MENU EDICION
El menú edición tiene dentro de sus opciones más importantes las siguientes:

MENU VER
Las opciones mas comunes de este menú son las siguientes:

MENU PROYECTO
Esta opción de menú es un tanto compleja ya que nos proporciona elementos que se pueden adicionar a
los proyectos o aplicaciones en el Java, se debe tener en cuenta que su uso es avanzado y al adicionar un
elemento se debe saber lo que se debe hacer, en caso contrario puede causar inestabilidad en la
aplicación que se está haciendo.

MENU DEPURAR
Aquí podemos ejecutar el programa o aplicación paso a paso (o función a función, según lo que
necesitemos), esto es muy útil para ver el comportamiento de ciertas variables, las opciones mas
importantes son:

MENU EJECUTAR
Aquí se puede ejecutar la aplicación, los mas importantes de esta opción son las siguientes:

.10. Cuadro de Herramientas o paleta de controles

La barra de objetos es la barra que se encuentra por lo general a la izquierda de la pantalla del Java, esta
es donde se encuentran todos los objetos básicos que tiene una aplicación estándar (ver figura), par poner
un objeto sobre la forma debemos de seleccionar el objeto de la barra de herramientas, luego dibujar un
cuadro en la forma, este cuadro contendrá al objeto seleccionado, otra forma es hacer doble click sobre el
objeto.

14
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

UNIDAD 2
FUNDAMENTOS DE LA PROGRAMACIÓN EN JAVA

2.1. Pasos para crear una aplicación

El proceso de creación de una aplicación Java puede descomponer en una serie de siete pasos.

1. Crear la interfaz de usuario


Usted crea una interfaz dibujando controles y objetos sobre un formulario. A fin de hacer que su código
sea más fácil de leer y depurar, debe luego asignar nombres a los objetos usando convenciones de
nombres estándar.

2. Establecer las propiedades de los objetos de la interfaz


Luego de añadir objetos al formulario, se establece las propiedades de los objetos. Puede
establecer valores iniciales ya sea usando la ventana de propiedades en tiempo de diseño o
escribiendo código para modificar las propiedades en tiempo de ejecución.

3. Escribir código para los eventos


Luego de establecer las propiedades iniciales para el formulario y cada objeto, añada el código
que se ejecutará en respuesta a los eventos. Los eventos ocurren cuando diferentes acciones
ocurren sobre un control u objeto. Por ejemplo, clic es un evento que puede ocurrir para un botón
de comando.

4. Guardar el proyecto
Cuando crea el proyecto, asegúrese de darle un nombre usando el comando Guardar Proyecto como del
menú Archivo. Guarde su proyecto frecuentemente conforme añada código. Al guardar un proyecto se
guardan cada formulario y módulo de código en el proyecto.

5. Probar y depurar la aplicación


Conforme añada código al proyecto, puede usar el comando Iniciar en la Barra de Herramientas para
ejecutar su aplicación y ver su comportamiento. También puede usar las herramientas de depuración para
verificar errores y modificar código.

6. Crear un archivo ejecutable


Al completar su proyecto, crear un archivo ejecutable usando el comando Generar [Link] del
menú Archivo.

7. Crear una aplicación de instalación


Debido a que su archivo ejecutable depende de otros archivos, tales como el archivo en tiempo de
ejecución de Java ([Link]), algunos archivos OCX y archivos DLL adicionales requeridos por
la aplicación o por los controles.

2.1.1. Convenciones para los nombres de los objetos


Los objetos deben llevar nombres con un prefijo coherente que facilite la identificación del tipo de
objeto. A continuación se ofrece una lista de convenciones recomendadas para algunos de los objetos
permitidos por Java. Los que se utilizarán en la materia como ejemplo son:

15
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Tipo de control Prefijo Ejemplo

Botón de comando btn cmdSalir


Formulario frm frmEntrada
Marco fra fraLenguaje
Menu mnn mnnArchivo
Etiqueta lbl lblMsjAyuda
Cuadro de lista lst lstCódigoDePolítica
Campo de texto txt txtApellido

Estableciendo Propiedades
Al diseñar la interfase de usuario de una aplicación Java, se deben establecer la propiedades para los
controles (objetos) creados.

Estableciendo Propiedades en Tiempo de Diseño


Algunas propiedades pueden ser establecidas en tiempo de diseño. Para establecer estas propiedades se
emplea la ventana de propiedades. Para acceder a la ventana de propiedades, oprima en botón secundario
del ratón sobre un objeto, y luego haga clic en Propiedades. También se puede obtener el mismo
resultado seleccionado el objeto y luego presionando F4.
Si selecciona varios objetos a la vez y accede a la ventana de propiedades, sólo se mostrarán las
propiedades que son comunes para todos los controles seleccionados. Cualquier cambio que se haga a
una propiedad será aplicada a todos los controles.

Estableciendo Propiedades en Tiempo de Ejecución


En tiempo de ejecución, se puede escribir código para establecer u obtener el valor de una propiedad. La
siguiente línea de código establece a negrita la fuente de un cuadro de texto llamado txtData.

[Link] = True ' Establece el texto a negrita

Este código establece la propiedad Text del cuadro de texto txtData

[Link] = "Hola mundo" 'Establece el valor del texto

Si se omite el nombre de la propiedad, se establece la propiedad predeterminada del control. La


propiedad predeterminada de un cuadro de texto es la propiedad setText().

[Link]("Se establece la propiedad Text del cuadro de texto");


[Link]( "Se establece la propiedad Caption de la etiqueta")

2.2. Manejo de Formularios

2.2.1. Modulos de Formulario


Cada formulario en su aplicación tiene un módulo de formulario asociado, estos son guardados con una
extensión de archivo FRM y contienen:
 Los valores de las propiedades para el formulario y sus controles.
 Declaración de variables en el ámbito del formulario.
 Procedimientos de evento y procedimientos generales en el ámbito del formulario.

16
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Nota: Las descripciones gráficas de un formulario y los controles sobre el formulario son almacenados
en formato binario en un archivo con extensión FRX.

Modulos Estándar
Los módulos estándar pueden contener código que es común a varios formularios en su aplicación. Este
código es por omisión público, lo cual significa que fácilmente compartido con otros módulos de código,
tales como un módulo de formulario. Estos módulos contienen declaraciones de procedimientos, tipos y
variables. No pueden almacenar procedimientos de evento por que no contienen objetos.

La Ventana de Edición
Código es un término general para todas las sentencias Java que usted escribe en una aplicación:
procedimientos de evento y procedimientos generales. El código en Java se escribe en la ventana de
Código. El editor de texto es solo un editor ASCII con colores para diferenciar las palabras claves en el
código que escribe.

2.3. La Ventana de Edición usa para escribir, mostrar y editar el código de su aplicación. Puede abrir
una ventana de código por cada módulo de su aplicación, de modo que puede fácilmente copiar y
pegar entre ellos.

17
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

2.2.9. Comentarios
El añadir documentación y comentarios a su código permite comprender mejor lo que hace el código.
Esto también ayuda a comprender el código si necesita volver a revisarlo en alguna fecha posterior. Un
comentario se inicia con el carácter (//) si el comentario es en una sola línea (/*…*/), de modo que todo
el texto que continúe a uno de estos caracteres será ignorado en la ejecución de la aplicación, el siguiente
ejemplo:

Comentario del
programa

Comentario del
paquete

Comentario de
la clase

Implementació
n del código

2. 3. Tipos De Datos, Constantes y Variables


[Link] de Datos

Un tipo de dato determina la naturaleza del dominio de valores que puede tomar una variable, las
operaciones en que puede participar y el espacio de memoria que necesita. La tabla siguiente muestra los
tipos de datos, incluyendo el tamaño de almacenamiento y el intervalo.

18
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

2.3.2. Declaración de Variables


Declarar una variable es decirle al programa algo de antemano. Se declara una variable mediante la
instrucción Tipo de Variable en Java, proporcionando un nombre a la variable, según la siguiente
sintaxis:

Tipo de Variable nombre-variable;

Las variables que se declaran en un procedimiento mediante la sentencia, sólo existen mientras se ejecuta
el procedimiento. Cuando termina el procedimiento, desaparece el valor de la variable. Además, el valor
de una variable de un procedimiento es local a dicho procedimiento; es decir, no puede tener acceso a
una variable de un procedimiento desde otro procedimiento. Estas características le permiten utilizar los
mismos nombres de variables en distintos procedimientos sin preocuparse por posibles conflictos o
modificaciones accidentales.

Un programa se refiere al valor de una variable por su nombre. Por convención, en Java, los nombres
de las variables empiezan con una letra minúscula (los nombres de las clases empiezan con una
letra mayúscula).
Un nombre de variable Java:
1. Debe ser un identificador legal de Java comprendido en una serie de caracteres Unicode.
Unicode es un sistema de codificación que soporta texto escrito en distintos lenguajes
[Link] perminte la codificación de 34.168 caracteres. Esto le permite utilizar en
sus programas Java varios alfabetos como el Japonés, el Griego, el Ruso o el Hebreo. Esto es
importante para que los programadores pueden escribir código en su lenguaje nativo.
2. No puede ser el mismo que una palabra clave o el nombre de un valor booleano (true or
false)
3. no deben tener el mismo nombre que otras variables cuyas declaraciones aparezcan en el
mismo ámbito.

Hay otras formas de declarar variables:


 Declarar una variable en la sección Declaraciones de un módulo de formulario, estándar o de clase,
en vez de un procedimiento, hace que la variable esté disponible para todos los procedimientos del
módulo.
 Declarar una variable mediante la palabra clave Public hace que esté accesible para toda la
aplicación.
 Declarar una variable local mediante la palabra clave Static conserva su valor aunque termine el
procedimiento.

[Link]
A menudo verá que el código contiene valores constantes que reaparecen una y otra vez. O puede que el
código dependa de ciertos números que resulten difíciles de recordar (números que, por sí mismos, no
tienen un significado obvio).
En estos casos, puede mejorar mucho la legibilidad del código y facilitar su mantenimiento si utiliza
constantes. Una constante es un nombre significativo que sustituye a un número o una cadena que no
varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una constante o
asignarle un valor nuevo como ocurre con una variable. Hay dos orígenes para las constantes:

 Constantes intrínsecas o definidas por el sistema proporcionadas por Java.


 Las constantes simbólicas o definidas por el usuario se declaran mediante la instrucción Final.

19
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Una instrucción Final tiene igual alcance que una declaración de variable y se le aplican las mismas
reglas, Ejemplo:

● int nota1;
● int hora_inicial;
● int nota1, nota2, nota3;
● float pi;
● double promedio;
● double precio_azucar, precio_product;
● char letra_abecedario
● char UnSimbolo

[Link]

Operadores

La tabla que se muestra a continuación presenta el conjunto de operadores que soporta Java colocados de
mayor a menor prioridad. Los operadores que aparecen sobre una misma línea tienen igual prioridad. Las
operaciones entre paréntesis se evalúan primero, ejecutándose primero los paréntesis más internos.

TIPO OPERACIÓN OPERADOR


Aritmético
Multiplicación y división *,/
Resto de una división entera %
Adición y sustracción +,-
Relacional Igual, distinto, mayor que,... = =,!=, >, >=, <,
<=
Lógicos Not (!), And (&&) , Or ( | | )

20
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Ejercicio 1.

Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de
estudiantes.

Entorno con el Usuario Propiedades a cambiar


Formulario:

lblporcenth
Txthombre

Lblporcmuj
Txtmujer

CmdCalcular
CmdSalir

Código en Java Diagrama de Flujo


public static void main(String[] args) {
//Declaración de variables
Inicio
int nh, nm, ta;
double ph, pm;
//Leer nh, nm Nh,nm
nh = [Link]([Link]());
nm = [Link] ([Link]());
ta = nh + nm; ta = nh + nm
ph = Int(nh * 100 / ta); ph = nh * 100 / ta
pm = Int(nm * 100 / ta); pm = nm * 100 / ta
//Escribir resultados ph ,pm
[Link](“”+ ph)
[Link](“”+ ph) Ph,pm
}

fin

2.4. Estructuras de Control

Las estructuras de control le permiten controlar el flujo de ejecución del programa. Tenemos dos tipos de
estructuras de control:

 Estructuras de decisión
 Estructuras de bucle

2.4.1. Estructuras de Decisión

Los procedimientos de Java pueden probar condiciones y, dependiendo de los resultados, realizar
diferentes operaciones. Entre las estructuras de decisión que acepta Java se incluyen las siguientes:

21
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

 If...Then
 If...Then...Else
 Switch

[Link]. If...Then

Use la estructura If...Then para ejecutar una o más instrucciones basadas en una condición. Puede
utilizar la sintaxis de una línea o un bloque de varias líneas:

Diagrama de Flujo Java

NO SI
Condición  If (condición) {
Sentencias

}
Bloque de
sentencias

Condición.- normalmente es una comparación, pero puede ser cualquier expresión que dé como
resultado un valor numérico. Java interpreta este valor como True o False; un valor numérico cero es
False y se considera True cualquier valor numérico distinto de cero. Si condición es True, Java ejecuta
todas las sentencias que siguen a la palabra clave Then. Puede utilizar sintaxis de una línea o de varias
líneas para ejecutar una sentencia basada en una condición, los siguientes dos ejemplos son equivalentes:

[Link]. If...Then...Else
Utilice un bloque If...The...Else para definir varios bloques de sentencias, uno de los cuales se ejecutará:

Diagrama de Flujo Java


NO SI
Condición
If (condición) {
bloque de sentencias 1
}
Bloque de
sentencias 2
Bloque de Else {
sentencias 1 bloque de sentencias 2
}

22
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

If (condición) {
bloque de sentencias 1
}
Else {
bloque de sentencias 2
}

If (condición1) {
bloque de sentencias 1}

ElseIf (condición2) {
bloque de sentencias 2 ...}
Else{
bloque de sentencias n}

Java evalúa primero condición1. Si es False, Java procede a evaluar condición2 y así sucesivamente,
hasta que encuentre una condición True. Cuando encuentra una condición True, Java ejecuta el bloque
de instrucciones correspondientes y después ejecuta el código que sigue a End If. Opcionalmente, puede
incluir un bloque de instrucciones Else, que Java ejecutará sin ninguna de las condiciones es True.

If...Then...Else If es un caso especial de If...Then...Else. Observe que puede tener cualquier número de
cláusula ElseIf o ninguna. Puede incluir una cláusula Else sin tener en cuenta si tiene o no cláusula
ElseIf.

Ejercicio 2. Hacer un algoritmo que calcule el total a pagar por la compra de camisas. Si se compran tres
camisas o mas se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas
un descuento del 10%

23
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Entorno con el Usuario Propiedades


Formulario
Caption Determinar el Total Ganado

Text1
Text “ “
Nombre Txtcantidad

Text2
Text “ “
Nombre Txtprecio

Label4
Caption “ “
Nombre lbltotal.

Button1
Nombre CmdCalcular
Caption &Calcular

Button2
Nombre CmdSalir
Caption &Salir
Programación en Java Diagrama de Flujo
public static void main(String[] args)
{//Declaración de Variables Inicio
int num_camisas, prec, tot_pag, tot_comp ;
//Leer num_camisas, prec
num_camisas, prec
num_camisas = [Link] ([Link]()) ;
prec = [Link] ([Link]()) ;
tot_comp = num_camisas * prec ; tot_comp = num_camisas * prec
If (num_camisas >= 3) {
tot_pag = tot_comp - tot_comp * 0.2 ;}
Else{
tot_pag = tot_comp - tot_comp * 0.1 ; NO num_camisas > = 3 SI
}
// Imprimir tot_pag
[Link](« « + tot_pag) ;
tot_pag = tot_comp - tot_comp * tot_pag = tot_comp - tot_comp *
} 0.10 0.20

tot_pag

fin

24
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

[Link]. Switch

Los creadores de Java trataron de hacer de este lenguaje una versión simplificada y mejorada del
lenguaje de C++. Su trabajo fue bastante bueno, pero no perfecto. Prueba de ello es esta
sentencia: está tan poco flexible como en C++.

Diagrama de Flujo Java

switch (variable_control) {
Selector
case valor1 : Grupo de sentencias1; break;
NO case valor2 : Grupo de sentencias1; break;
SI .
.
case valor3: Grupo de sentencias1; break;
Valor 1 Valor 2 Valor n
// ...
. default: statement;
. }
.
Bloque de Bloque de Bloque de
sentencias 1 sentencias 2 sentencias n

Se compara el valor de selector con sentencias_n. Si el valor coincide se ejecuta su respectivo


grupo de secuencias. Si no se encuentra ninguna coincidencia se ejecutan las sentencias de
default. Si no se pusieran los break una vez que se encontrase un valor que coincida con el
selector se ejecutarían todos los grupos de sentencias, incluida la del default.
Ha llegado el momento de justificar la crítica hecha a los creadores de Java. Este tipo de estructura
tiene sus posibilidades muy limitadas, ya que en las condiciones sólo se admite la igualdad, no
ningún otro tipo de condición (sería fácil pensar ejemplos dónde, por poner un caso, se le sacaría
partido a esta sentencia si aceptase desigualdades). Además para colmo esta comparación de
igualdad sólo admite valores tipo char o cualquier tipo de valores enteros menos long. No podemos
comparar contra reales, String.

Problemas de Aplicación

Ejercicio 1. Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le
asigna como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de acuerdo
con la sig. tabla:
Tiempo Utilidad
Menos de 1 año 5 % del salario
1 año o mas y menos de 2 años 7% del salario
2 años o mas y menos de 5 años 10% del salario
5 años o mas y menos de 10 años 15% del salario
10 años o mas 20% del salario

25
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Entorno con el Usuario Propiedades


Formulario
Caption Determinar años de Servicio

Text1
Nombre Txtsa
Text “ ”

Text2
Nombre Txtas
Text “ ”

Label4
Nombre Lbltg
Caption “ “

CommandButton1
Nombre CmdCalcular
Caption &Calcular

CommandButton2
Nombre CmdSalir
Caption &Salir

Pseudocódigo Programación en Java


Inicio public static void main(String[] args)
Leer sm, antig {
//Inicio
Si antig < 1 entonces
util = sm * 0.05 int antig, sm,X;
caso contrario //Leer sm, antig
Si (antig > = 1) and (antig < 2) entonces sm = [Link]([Link]());
util = sm * 0.07 antig = [Link]([Link]());
caso contrario switch ( antig) {
Si (antig > = 2) and (antig < 5) entonces Case 1: util = sm * 0.05; break;
util = sm * 0.10 Case 2: util = sm * 0.07; break;
caso contrario Case 3,4: util = sm * 0.1; break;
Si (antig > = 5) and (antig < 10) entonces Case 5,6,7,8,9,10 : util = sm * 0.15; break;
default: statement;
util = sm * 0.15
util = sm * 0.2;
caso contrario }
util = sm * 0.20 X= sm + util;
fin-si [Link](“ ” +X)
fin-si }
fin-si
fin-si
Imprimir util
fin

2.4.3. Estructuras de Repetición

26
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Las estructuras de repetición o bucle le permiten ejecutar una o más líneas de código repetidamente. Las
estructuras de repetición que acepta Java son:
 while
 do...while
 for

[Link]. while

Utilice el bucle while para ejecutar un bloque de sentencias un número indefinido de veces. Hay algunas
variantes en la sentencia while, pero cada una evalúa una condición numérica para determinar si continúa
la ejecución. Como ocurre con If...Then, la condición debe ser un valor o una expresión que dé como
resultado False (cero) o True (distinto de cero).
En el siguiente ejemplo de Do...Loop, las sentencias se ejecutan siempre y cuando condición sea True:
Diagrama de Flujo Java
while (condición){
Sentencias;
}
CONDICION Loop

Sentencias

Cuando Java ejecuta este bucle Do, primero evalúa condición. Si condición es False (cero), se salta
todas las sentencias. Si es True (distinto de cero) Java ejecuta las sentencias, vuelve a la instrucción
while y prueba la condición de nuevo.
Por tanto, el bucle se puede ejecutar cualquier número de veces, siempre y cuando condición sea distinta
de cero o True. Nunca se ejecutan las sentencias si condición es False inicialmente.

Otra variante de la instrucción do...while ejecuta las sentencias primero y prueba la condición después
de cada ejecución. Esta variación garantiza al menos una ejecución de sentencias:

do{
Sentencias;
}
while (condición)

27
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Diagrama de Flujo Java


do{
Sentencias;
Sentencias
}while (condición)

CONDICION

[Link]. Problemas de Aplicación

Ejercicio 1.

A continuación resolveremos el siguiente proyecto.


EJERCICIO 01
Diseñar un algoritmo que permita visualizar la tabla de multiplicar de un número entero ingresado
por teclado. Por ejemplo:
1x5=5
2 x 5 = 10
3 x 5 = 15
……
12 x 5 = 60

Para resolver este ejercicio abriremos un nuevo proyecto.


Ahora estamos listo para comenzar con la programación de este ejercicio. Antes hay que recordar
como esta resuelto en algoritmo.

algoritmo Lab06Ejercicio01
var
entero : num, producto, i
cadena: cad
inicio
Leer num
i =1
cad = ' '
si (num >0) entonces
mientras(i <=12)
producto = i * num
cad = cad, i , ' * ' , num, ' = ', producto
i =i+1
fin_mientras
Mostrar (cad)
sino
Mostrar ('Error de ingreso...!! El Numero debe ser mayor que cero')
fin_si
fin

28
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

La solución en código de este ejercicio es el siguiente:

package pkgWhile;
import [Link];
public class While {
public static void main(String[ ] args) {
int num, producto, i=1;
String cad="";

num=[Link]([Link]("Ingrese numero"));
if(num>0)
{
while(i<=12)
{
producto=num*i;
cad=cad + i + " x " + num + "
= " + producto + "\n";
i=i+1;
}
[Link](null, cad);
}
else [Link](null, "Error de ingreso..!! El numero debe
ser mayor que cero");
}
}

En este ejercicio de estructura repetitiva While nos mostrará la tabla de multiplicar de un número entero
positivo.

La explicación del programa paso a paso es el siguiente

29
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

1. Declaración de variables; en estas instrucciones también se pueden inicializar dichas


variables. Inicializamos las variables i = 1 y cad = “ ”.

2. Ingreso de los datos de entrada.

3. Esta instrucción es una condición para determinar:


3.1. Si la condición es verdadera, quiere decir que el número es positivo y se ingresa al cuerpo del if.
Luego se ejecuta el paso 4.
3.2. Si la condición es falsa se salta al paso 9.

4. Se ingresa al bucle While siempre y cuando la condición sea verdadera. Si la condición es


verdadera se sigue al paso 5, de lo contrario se pasa al paso 8.
5. En la variable producto se almacenarán los valores obtenidos del producto de num * i.
6. Esta instrucción es la mas importante porque en la variable cad almacenamos toda la tabla de
multiplicar de un número N.
6.1. Analizaremos primero esta parte del código: cad + i + " * " + num + " = " + producto, la
variable cad al comenzar el programa se le inicializo como una cadena vacia, a esta
se le concatena el valor de la variable i (De 1 a 12 dependiendo de la interación en
que se encuentra), y tambien se le concatena el símbolo *, el valor de la variable num,
el símbolo = y el valor de la variable producto obtenido en el paso 5. Formando así
una cadena de la siguiente forma, por ejemplo: 1 x 5 = 5
6.2. Esta parte de la instrucción: + "\n" significa que a la cadena obtenida se le va a
concatenar un salto de línea. Esto hace que el resultado que se va a mostrar salga
línea por línea.
6.3. Toda esta cadena concatenada se almacena en la variable cad, que nos seguirá
sirviendo en las iteraciones del bucle como repositorio de toda la tabla de multiplicar.
7. Se va incrementando el valor de la variable i, que es la que en algún momentos nos
permitirá salir del bucle While. Al terminar esta instrucción se regresa al paso 4.
8. Se muestra el valor almacenado en la variable cad, que viene hacer la tabla de multiplicar
de un número N.
9. Muestra el mensaje de “Error de ingreso..!!” por ser un número negativo y se acaba el
programa.

Comprendido el código de la estructura repetitiva While en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

[Link]. For

Los bucles Do funcionan bien cuando no se sabe cuántas veces se necesitará ejecutar las sentencias del
bucle. Sin embargo, cuando se sabe que se va a ejecutar las sentencias un número determinado de veces,
es mejor elegir el bucle For.... A diferencia del bucle Do, el bucle For utiliza una variable llamada
contador que incrementa o reduce su valor en cada repetición del bucle. La sintaxis es la siguiente:
For (expresión1 ;expresion2; expresion3){
Sentencias;
}

30
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

EJERCICIO 01
Diseñar un algoritmo que permita visualizar la tabla de multiplicar de un número entero ingresado por
teclado. Por ejemplo:
1x5=5
2 x 5 = 10
3 x 5 = 15
……
12 x 5 = 60

Para resolver este ejercicio abriremos un nuevo proyecto.


Ahora estamos listo para comenzar con la programación de este
ejercicio. Antes hay que recordar como esta resuelto en algoritmo.

algoritmo Lab06Ejercicio01
var
entero : num, producto, i
cadena: cad
inicio
Leer num
cad = ' '
si (num >0) entonces
desde i =1 hasta 12 inc 1 hacer
producto = i * num
cad = cad, i , ' * ' , num, ' = ', producto
fin_desde
Mostrar (cad)
sino
Mostrar ('Error de ingreso...!! El Numero debe ser
mayor que cero')
fin_si
fin

La solución en código de este ejercicio es el siguiente:

package pkgfor;
import [Link];

public class For {


public static void main(String[ ] args) {
int num, producto, i;
String cad="";

num=[Link]([Link]("Ingrese numero"));
if(num>0)
{
for(i=1;i<=12;i
++)
{
producto=num*i;
cad=cad + i + " x " + num + " = " + producto + "\n";
}
[Link](null, cad);

31
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

}
else
[Link](null, "Error de ingreso..!! El numero debe ser
mayor que cero");
}
}

En este ejercicio de estructura repetitiva For nos mostrará la tabla de multiplicar de un número
entero positivo.

La explicación del programa paso a paso es el siguiente

1. Declaración de variables; en estas instrucciones también se pueden inicializar dichas variables.


Inicializamos la variable cad = “ ”.
2. Ingreso de los datos de entrada.
3. Esta instrucción es una condición para determinar:
4. Si la condición es verdadera, quiere decir que el número es positivo y se ingresa al
cuerpo del if. Luego se ejecuta el paso 4.
5. Si la condición es falsa se salta al paso 8.
6. Para ingresar al bucle del For, se llevarán acabo las siguientes acciones:
7. Si es la primera vez que se ejecuta la instrucción del For, a la variable inicial de tipo
entero que se le asigna un valor; para este ejemplo: i = 1.
8. Para ingresar al bucle se evaluará la condición; para este ejemplo: i <= 12, si es verdad se ingresa y
se pasa al paso 5, de lo contrario se pasa al paso 7.
9. En la variable producto se almacenarán los valores obtenidos del producto de num * i.
10. Esta instrucción es la mas importante porque en la variable cad almacenamos toda la tabla de multiplicar
de un número N.
11. Analizaremos primero esta parte del código: cad + i + " * " + num + " = " + producto, la variable cad al
comenzar el programa se le inicializo como una cadena vacia, a esta se le concatena el valor de la
variable i (De 1 a 12 dependiendo de la interación en que se encuentra), y tambien se le concatena el
símbolo *, el valor de la variable num, el símbolo = y el valor de la variable producto obtenido en el
paso 5. Formando así una cadena de la siguiente forma, para este ejemplo: 1 x 5 = 5 }
12. sta parte de la instrucción: + "\n" significa que a la cadena obtenida se le va a concatenar un salto

32
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

de línea. Esto hace que el resultado que se va a mostrar salga línea por línea.
13. Toda esta cadena concatenada se almacena en la variable cad, que nos seguirá
sirviendo en las iteraciones del bucle como repositorio de toda la tabla de multiplicar.
14. Terminado de realizar todas las instrucciones del cuerpo del For, se pasa al paso 4
(acción 4.2) pero antes se incrementa o decrementa la variable i un valor constante,
esto depende de la instrucción del For, para este ejemplo: i++, significa que se
incrementará el valor de uno en uno.
15. Se muestra el valor almacenado en la variable cad, que viene hacer la tabla de multiplicar de un número
[Link] el mensaje de “Error de ingreso..!!” por ser un número negativo y se acaba el programa.

Comprendido el código de la estructura repetitiva For en Java, ahora pasamos a ejecutar el


programa para ver los resultados obtenidos.

33
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Unidad 3.

Programación Modular
3.1. Introducción.-
Se basa en dividir el programa en partes llamadas módulos, que se analizan y codifican de forma
independient e y que realizan una determinada tarea que será en realidad una parte del problema
total a resolver.

En todo algoritmo o programa existirá un módulo o programa principal que es al que transfiere el
control cuando comienza la ejecución del programa, y luego desde él, se va llamando al resto de
los subprogramas.

Llamar a un subprograma quiere decir transferirle el control, es decir que se comienza a ejecutar
y lo hará desde el comienzo del subprograma hasta que se termine y al terminar devuelve el
control al subprograma que lo llamó. Dentro del subprograma a su vez también puedo llamar a
otros pero en cualquier caso al final se devuelve el control al módulo que hace la llamada. El
control al programa llamado se devuelve a la instrucción siguiente a la que se hizo la llamada.

Un módulo solo tiene acceso a los módulos a los que llama y a los submódulos a los que a su vez
llaman éstos. Los resultados producidos por un módulo pueden ser utilizados por otros.

No existe un criterio fijo para determinar el tamaño, ni muy grandes ni muy pequeños, la idea
fundamental es que realicen una única cosa y muy concreta.

Los módulos o subprogramas reciben diferentes nombres según el lenguaje de programación y


según su tipo. Se llaman procedimientos y funciones, subrutinas, secciones,...

Las soluciones de un diseño descendente pueden implementarse fácilmente los lenguajes de


programas de alto nivel, como Java, (Pascal) Delphi. Estos lenguajes de programación de alto
nivel se denominan subprogramas o subalgoritmos, si se emplean desde el concepto algorítmico.
3.2. Programación Modular

Es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un
programa. En programación modular, el programa se divide en módulos (partes independientes),
cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de
otros módulos. Cada uno de estos módulos se analizan, codifican y ponen a punto por separado.

Cada programa contiene un módulo denominado programa principal que controla todo lo que
sucede; se transfiere el control de submódulos (posteriormente se denominarán subprogramas),
de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el
control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada

34
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

submódulo es demasiado compleja éste deberá romperse en otros módulos más pequeños. El
proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente
una tarea específica que ejecutar. Esta tarea puede ser entrada, salida, manipulación de datos,
control de otros módulos o alguna combinación de estos. Un módulo puede transferir
temporalmente (bifurcación) el control a otro módulo; sin embargo, cada módulo debe devolver
el control al módulo del cual se recibe originalmente el control.

Los módulos son independientes en el sentido en el que ningún módulo puede tener acceso
directo a cualquier otro módulo, con excepción del módulo al que llama y sus propios
submódulos. Sin embargo, los resultados producidos por un módulo pueden ser utilizados por
cualquier otro módulo cuando se transfiera a ellos el control.

3.3. Tamaño de los módulos

Una dificultad en la programación modular reside en la determinación del tamaño de un módulo


aunque no exista una regla fija que permita definir el tamaño estándar del módulo, una buena
aproximación es considerar módulos del tamaño físico de una página (30 o 40 líneas de
instrucciones). Evidentemente no siempre se conseguirá descomponer un problema en módulos
de este tamaño pero el programador deberá realizar esfuerzos para su diseño.

Puede no ser claro lo que debe incluirse dentro de un módulo. Desgraciadamente, no hay reglas,
pero tal como se ha dicho antes, un módulo de una o dos líneas probablemente será demasiado
corto y será mejor incorporarlo en otro módulo; los módulos grandes de 30 o más líneas
probablemente ejecutarán tareas múltiples y se deberán romper en unidades más pequeñas.

[Link] y Funciones

Los procedimientos y funciones son la base principal en la programación modular, estudiaremos aquí su
funcionamiento y su sintaxis, aunque debo recordarles que es solamente pseudocodigo. : )

3.4.1. Procedimientos

Un procedimiento es un subprograma que realiza una tarea específica. Puede recibir cero o más valores
del programa que llama y devolver cero o mas valores a dicho programa.

Un procedimiento esta compuesto de un grupo de sentencias a las que se asigna un nombre


(identificador) y constituye una unidad de programa. La tarea determinada al procedimiento se ejecuta
siempre que se encuentra el nombre del procedimiento.

La declaración indica las instrucciones a ejecutar. Su sintaxis es:


Procedimiento nombreproc (lista de par)
declaraciones locales
inicio
cuerpo del procedimiento (instrucciones)
fin.

35
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Un procedimiento es llamado en un programa o dentro de otro procedimiento directamente por su


nombre en cualquiera de las dos formas:
nombreproc
nombreproc (lista parámetros actuales)

3.4.2. Funciones

Una función es un subprograma que recibe como argumentos o parámetros, datos de tipos numérico o no
numérico, y devuelve un único resultado. Esta característica le diferencia esencialmente de un
procedimiento.

Su formato es el siguiente:
funcion nombrefuncion (p1,p2,...) : tipo a devolver
declaraciones locales
inicio
cuerpo de la función
nombrefuncion <- valor a devolver
fin

Una función es llamada por medio de su nombre, en una sentencia de asignación o en una sentencia de
salida.

Se puede llamar a una función en cualquiera de las siguientes formas:


nombrefuncion o nombrefuncion(par)
idVar <- nombrefuncion.

Una llamada a función implica los siguientes pasos:

1. A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual


(esta correspondencia se verá más tarde y se denomina llamada por valor)
2. Se ejecuta el cuerpo de acciones de la función
3. Se devuelve el valor de la función y se retorna al punto de llamada

Ejemplo:
Definición de la función y = xn(potencia n de x)

Función potencia (x,n)


Inicio
Y=1
Desde i=1 hasta abs (n) hacer
Y=y*x
Si n<0 entonces y =1y
Potencia = y
Fin_desde
Fin

Abs (n) es la función valor absoluto de n, a fin de considerar exponentes positivos o negativos .

36
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

3.5. Parámetros Valor y Parámetros Variable

Existen dos tipos de parámetros, como se indico anteriormente, que nos ayudan a transferir/recibir
información de otros subprogramas, o del programa principal, a saber: parámetros de entrada (por valor)
y parámetros de salida o de entrada/salida (variable).

3.5.1. Parámetros Valor

Son parámetros unidireccionales que se utilizan para proporcionar información a un subprograma, pero
no pueden devolver valores, al programa llamador.
Se les llama parámetros de entrada, ya que en la llamada al subprograma el valor del parámetro actual se
pasa a la variable que representa a la variable actual. Este valor puede ser modificado dentro del
subprograma pero el valor modificado no es devuelto al programa o subprograma llamador.

[Link]ámetros Variable

Se utilizan tanto para recibir como para transmitir valores entre el subprograma y el programa llamador.
Este puede actuar como parámetro de salida o de entrada/salida.
Nota:
En la notación de pseudocódigo representaré a estos parámetros anteponiendo la palabra var antes del
identificador ; ).
Este algoritmo ilustra la diferencia entre parametros valor y parametros variable, y la
correspondencia entre ellos.
Algoritmo Ejemplo_Parametros
Variables
A, B, C: enteros
procedimiento imprimir (D,E,F: enteros)
inicio
escribir ("A =", D, "B =", E, "C =", F)
fin_imprimir
procedimiento pasar (D,E: entero; var F: entero)
inicio
escribir ("Entrada al procedimiento pasar:")
imprimir (D,E,F)
F <- D * F
escribir ("Salida del procedimiento pasar:")
imprimir (D,E,F)
fin_pasar
inicio
A <- 2
B <- 3
C <- 4
escribir ("Antes de llamar al procedimiento pasar")
imprimir (A,B,C)
pasar (A,B,C)
escribir ("Despues del retorno del procedimiento pasar")

37
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

imprimir (A,B,C)
fin
La salida del programa en pantalla sería la siguiente:
Antes de llamar al procedimiento pasar
A = 2, B = 3, C = 4
Entrada al procedimiento pasar
A = 2, B = 3, C = 4
Salida del procedimiento pasar
A = 2, B = 3, C = 6
Despues del retorno del procedimiento pasar
A = 2, B = 3, C = 6

Ejemplo:

La función (signo) realiza lo siguiente: dado un número real x, si x es 0 entonces se devuelve un


0, si x es positivo, se devuelve 1, y si x es negativo, se devuelve un valor –1

La declaración de la función es:

Función signo (x)


(Valores de signo (x) +1,0,-1)
Inicio
Si x=0 entonces signo =0
Si x>0 entonces signo =1
Si x<0 entonces signo = -1
fin (signos)

Antes de llamar a la función, la variable signo, como se declara dentro del subprograma,
es local al subprograma y sólo se conoce dentro del mismo.

[Link] Locales y Variables Globales

Las variables utilizadas en un programa con subprogramas pueden ser de dos tipos: locales y globales.

3.6.1. Variables Locales

Una variable local es una variable que esta declarada dentro de un subprograma y se dice que es local al
subprograma. Una variable local solo esta disponible durante el funcionamiento del subprograma, al
terminar su función el subprograma y regresar al programa llamador, se pierde el valor que se encontraba
guardado en la variable local.

3.6.2. Variables Globales


Las variables declaradas en el programa principal se denominan variables globales. Al contrario que las
variables locales cuyos valores se pueden utilizar solo dentro del subprograma en que fueron declaradas,
las variables globales se pueden utilizar en todo el programa principal y en todos los subprogramas,
donde se haga referencia al identificador de esta variable.

38
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

3.7. Ámbito de un identificador

La mayoría de los programas tienen una estructura tipo árbol, el programa principal es la raíz y de este
penden muchas ramas (procedimientos y funciones).

Los subprogramas en los que un identificador puede ser utilizado se conocen como ámbito o alcance del
identificador, dicho de otro modo, es en esta sección donde el identificador es válido.

3.7.1. Reglas de Ámbito

1. El ámbito de un identificador es el dominio en que esta declarado. Por consiguiente un


identificador declarado en un bloque P puede ser usado en el subprograma P y en todos los
subprogramas llamados en el subprograma P.
2. Si un identificador j declarado en el procedimiento P se redeclara en algún subprograma interno
Q invocado en P, entonces el subprograma Q y todas sus invocaciones a otros subprogramas se
excluyen del ámbito de j declarado en P.

3.8. Implementación de los módulos


La programación modular se implementara según el lenguaje de programación en el caso se lo
realizara en Java.

Modulos de Formulario
Cada formulario en su aplicación tiene un módulo de formulario asociado, estos son guardados con una
extensión de archivo FRM y contienen:
 Los valores de las propiedades para el formulario y sus controles.
 Declaración de variables en el ámbito del formulario.
 Procedimientos de evento y procedimientos generales en el ámbito del formulario.

Nota: Las descripciones gráficas de un formulario y los controles sobre el formulario son almacenados
en formato binario en un archivo con extensión FRX.
Modulos Estándar
Los módulos estándar pueden contener código que es común a varios formularios en su aplicación. Este
código es por omisión público, lo cual significa que fácilmente compartido con otros módulos de código,
tales como un módulo de formulario. Estos módulos contienen declaraciones de procedimientos, tipos y
variables. No pueden almacenar procedimientos de evento por que no contienen objetos.

Funciones:

3.9. Programación en Java Ejemplos de Funciones y Procedimientos

1. Sumar dos números


import [Link];

public class Problema1 {

39
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

//Principal
public static void main(String[] args) {
//Variables
int n1,n2,s;

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Numero 1: ");
n1 = [Link]();
[Link]("Numero 2: ");
n2 = [Link]();

//Proceso
s = Sumar(n1, n2);

//Salida
[Link]("");
[Link]("Suma: " + s);
}

//Método Sumar
private static int Sumar(int Num1, int Num2) {
//Variables
int s;

//Proceso
s = Num1 + Num2;

//Salida
return s;
}

}
2. Hallar el mayor de dos números
import [Link];

public class Problema2 {


//Principal
public static void main(String[] args) {
//Variables
int n1,n2,m=0;

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Numero 1: ");
n1 = [Link]();
[Link]("Numero 2: ");
n2 = [Link]();

//Proceso
m = Mayor(n1, n2);

//Salida
[Link]("");
[Link]("Mayor: " + m);

40
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

//Método Mayor
private static int Mayor(int n1, int n2){
//Variables
int m = 0;

//Proceso
if(n1 > n2)
m = n1;

if(n2 > n1)


m = n2;

//Salida
return m;
}
}

3. Verificar si un número es par o impar


import [Link];

public class Problema3 {


//Principal
public static void main(String[] args) {
//Variables
int n;
String r[] = new String[1];

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Numero: ");
n = [Link]();

//Proceso
ParImpar(n,r);

//Salida
[Link]("");
[Link]("Resultado: " + r[0]);
}

//Método ParImpar
private static void ParImpar(int num, String res[]) {
//Variables
String r = "";

//Proceso
if(num % 2 == 0){
r = "PAR";
}else{
r = "IMPAR";
}

//Salida

41
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

res[0] = r;
}

}
4. Hallar el factorial de un número
import [Link];
public class Problema4 {
//Principal
public static void main(String[] args) {
//Variables
int n,f;

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Numero: ");
n = [Link]();

//Proceso
f = Factorial(n);

//Salida
[Link]("");
[Link]("Factorial: " + f);
}

//Método Factorial
private static int Factorial(int num) {
//Variables
int i,f;

//Proceso
f = 1;
for(i = 1; i<=num; i++)
f *= i;

//Salida
return f;
}
}

5. Hallar la cantidad de dígitos

import [Link];

public class Problema5 {


//Principal
public static void main(String[] args) {
//Variables
int n,c = 0;

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Numero : ");
n = [Link]();

42
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

//Proceso
c = CantidadDigitos(n);

//Salida
[Link]("");
[Link]("Cant. Digitos: " + c);
}
//Método CantidadDigitos
private static int CantidadDigitos(int num) {
//Variables
int c=0;

//Proceso
while(num > 0) {
num = num / 10;
c += 1;
}

//Salida
return c;
}
}

43
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Unidad 4

LAS CADENAS DE CARACTERES

4.1. JUEGO DE CARACTERES:

En principio se programaba todo con 0 y 1, pero como esto costaba mucho, apareció la necesidad
de crear un lenguaje semejante al humano para entendernos más fácilmente con la computadora,
y para ello aparecen los juegos de caracteres.

El juego de caracteres es una especie de alfabeto que usa la máquina.


Hay 2 juegos de caracteres principales:
- ASCII: El que más se usa.
- EBCDIC: Creado por IBM.
Hay 2 tipos de ASCII, el básico y el extendido.
En el ASCII básico, cada carácter se codifica con 7 bits, por lo que existen 2^7=128
caracteres.
En el ASCII extendido, cada carácter ocupa 8 bits (1 byte) por lo que existirán 2^8= 256
caracteres, numerados del 0 al 255.
En el EBCDIC, cada carácter ocupa también 8 bits.
En cualquiera de los 2 juegos, existen 4 tipos de caracteres:
- Alfabéticos: Letras mayúsculas y minúsculas.
- Numéricos: Números.
- Especiales: Todos los que no son letras y números, que vienen en el teclado.
- Control: No son imprimibles y tienen asignados caracteres especiales. Sirven para de
terminar el fin de línea, fin de texto. Van del 128 al 255.
Un juego de caracteres es una tabla que a cada número tiene asociado un número.

4. 2. CADENA DE CARACTERES:

Es un conjunto de 0 ó más caracteres. Entre estos caracteres puede estar incluido el blanco.

En pseudocódigo, el blanco es el b. Las cadenas de caracteres se delimitan con dobles comillas “


“, pero en algunos lenguajes se delimitan con ‘ ‘.

Las cadenas de caracteres se almacenan en posiciones contiguas de memoria.

La longitud de una cadena es el número de caracteres de la misma. Si hubiese algún carácter que
se utilizara como especial para señalar el fin de cadena, no se consideraría en la longitud.

Si una cadena tiene longitud 0, la llamamos cadena nula por lo que no tiene ningún carácter, pero
esto no quiere decir que no tenga ningún carácter válido, por que puede haber algún carácter
especial no imprimible que forme parte de la cadena.

44
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Una subcadena es una cadena extraída de otra.

4.3. DATOS DE TIPO CARÁCTER:


1. Constantes: Una constante de tipo cadena es un conjunto de 0 o más caracteres
encerrados entre “ “.
Si dentro de la cadena quiero poner como parte de la cadena las “, las pongo 2 veces.
Esto depende del lenguaje.
“Hola””Adios”  Hola”Adios
En algunos lenguajes hay un carácter de escape.
Una constante de tipo carácter es un solo carácter encerrado entre comillas simples.
2. Variables: Hay que distinguir entre una variable de tipo carácter y una variable de tipo
cadena, el contenido de una variable de tipo cadena es un conjunto de 0 ó más
caracteres encerrados entre “ “, mientras que una variable de tipo carácter es un solo
carácter encerrado entre ‘ ‘.

Formas de almacenamiento de cadenas en memoria:


1. Almacenamiento estático:
La longitud de la cadena se tiene que definir antes de ser usada y siempre va a tener
esa longitud, almacenándose en posiciones contiguas de memoria.
Si la cadena no ocupa todo el espacio, el resto se rellena con blancos, y esos blancos
se consideran parte de la cadena.
Esto es muy deficiente y no se usa casi en ningún lenguaje.
2. Almacenamiento semiestático:
Antes de usar la cadena, hay que declarar la longitud máxima que puede tener y ese es
el espacio que se reserva en memoria para almacenar la cadena, siempre en posiciones
contiguas.

La longitud real de la cadena durante la ejecución puede variar aunque siempre tiene
que ser menor que el máximo de la cadena.

Puesto que la cadena no tiene porque ocupar la longitud máxima, para determinar que
parte ocupa realmente esa cadena, se pueden utilizar diferentes métodos.

La diferencia entre almacenar un solo carácter en un tipo carácter o en un tipo cadena,


sería la siguiente:
C  ‘a’
C  “a”

3. Almacenamiento dinámico:
No hay que definir la longitud de la cadena antes de usarla, ni siquiera la máxima. Para
esto, se utiliza la memoria dinámica, y para establecer el número de elementos de la
cadena usaremos listas enlazadas en las que cada nodo de la lista contara un carácter de la
cadena y se enlazaría mediante punteros.
La información no tiene que estar almacenada en posiciones contiguas de
memoria.

45
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

H O L A

4.4. OPERACIONES CON CADENAS:

Al igual que con cualquier tipo de datos, podemos hacer operaciones de entrada y salida
(leer y escribir).
Var cad: cadena
Leer (cad)
Escribir (cad)
Aparte de estas instrucciones, la mayor parte de los lenguajes permiten realizar
operaciones especiales con las variables de tipo cadena.
La mayor parte de los lenguajes tienen operaciones de tratamiento de cadenas, y esas
operaciones vienen en librerías externas.

Las operaciones más usadas son:

Longitud de una cadena:


Es una función a la que se le pasa una cadena como parámetro y como resultado devuelve
su longitud.
Funcion longitud (c:cadena): entero

Comparación de cadenas:
Las cadenas se pueden comparar entre si usando los símbolos de comparación. Esto se
puede realizar porque lo que voy a comparar son los valores ASCII asociados a cada carácter.
En el caso de que se comparen 2 cadenas de diferente longitud tal que la cadena de menor
longitud tiene N caracteres y estos N caracteres coinciden con los N primeros caracteres de la
cadena más larga, se considera mayor la cadena más larga.
PEPE > PAPA
PEPES > PEPE
En la mayor parte de los lenguajes, hay una función que hace la comparación.
En C es la función strcmp (C1,C2).
Funcion comparacion (C1:cadena;C2:cadena): entero
Esta función devuelve:
- 0 si C1=C2
- Un positivo si C1 > C2
- Un negativo si C1 < C2

Concatenación:
Lo que permite es unir varias cadenas en una sola, manteniendo el orden de los caracteres
que se unen.
En pseudocódigo se usa el símbolo &: C1&C2
C1=”Hola”

46
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

C2=”Adios”
C3=C1&C2=”HolaAdios”
Procedimiento concatenacion (ent-sal C1:cadena;C2:cadena)
- Se devuelve en C1 la concatenación C1&C2.

Subcadenas:
Extrae parte de una cadena.
Se pueden usar 3 procedimientos:
Procedimiento subcadena (c:cadena;inicio:entero;longitud:entero;ent-sal s:cadena)
- Si inicio es negativo, o es mayor que longitud, se devuelve la cadena nula.
- Si inicio+longitud es mayor que el tamaño de la cadena, devuelvo desde inicio hasta
de fin de la cadena.
Procedimiento subcadena (c:cadena;inicio:entero;fin:entero;ent-sal s:cadena)
- Si fin es menor que inicio, devuelve la cadena nula.
- Si fin es mayor que la longitud de la cadena, se devuelve desde inicio hasta el fin de la
cadena.
Procedimiento subcadena (c:cadena;inicio:entero;ent-sal s:cadena)
- S va desde el inicio hasta el final de la cadena.

Inserción:
Consiste en meter una cadena dentro de otra a partir de una determinada posición.
Procedimiento insertar (ent-sal C1:cadena;C2:cadena;inicio:entero)
C1=”Pepe”
C2=”Nuria”
Insertar (C1,C2,3)= PeNuriape
- Si inicio es mayor que la longitud de C1 o inicio es menor que 0, no se inserta nada.

Borrado:
Consiste en borrar de una cadena una subcadena que forma parte de ella. Hay que dar la
posición de inicio y final de la subcadena que quiero borrar.
Procedimiento borrar (ent-sal C1:cadena;inicio:entero;fin:entero)
- Si fin es menor que inicio, o inicio es mayor que la longitud de la cadena, no se borra
nada.
Procedimiento borrar (ent-sal C1:cadena;inicio:entero;fin:entero)
C1=”Casa azul”
Borrar (C1,3,5)
C1=”Caazul”

Intercambio:
Consiste en substituir la aparición de una subcadena dentro de una cadena, por otra
subcadena. Para eso la primera subcadena tiene que aparecer en la otra.
Procedimiento intercambio (ent-sal C1:cadena;S1:cadena;S2:cadena)
C1=”Casa azul”
S1=”asa”
S2=”asita”

47
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

C1=”Casita azul”
Si S1 no está en C1, no se cambia nada.

Conversión de cadenas a números:


Es una función que se le pasa una cadena caracteres numéricos y devuelve el número
asociado.
Funcion valor (c:cadena): entero
I=”234”
Var i: entero
I= valor (C1) devuelve 234.

Conversión de números a cadenas:


Es un procedimiento al que se le pasa un número y lo convierte a una cadena.
Procedimiento conv_cad (n:entero;ent-sal c:cadena)
I=234
Conv_cad (i,C1) devuelve “234”

Función que devuelve el carácter ASCII de un número:


Funcion conv_car (n:entero): carácter

Función que devuelve el número asociado de un carácter ASCII:


Funcion ASCII (c:carácter): entero

Las cadenas van a estar almacenadas en arrays de caracteres donde el carácter de fin de
cadena es el $.
4.5. Manejo de Cadenas(Java)
6. Eliminar los espacios en blanco de una cadena

import [Link];

public class Problema6 {


//Principal
public static void main(String[] args) {
//Variables
String f1,f2;

//Entrada
Scanner teclado = new Scanner([Link]);
[Link]("Frase: ");
f1 = [Link]();

//Proceso
f2 = FraseSinEspacios(f1);

//Salida
[Link]("");
[Link]("Frase sin espacios: " + f2);
}

48
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

//Método FraseSinEspacios
private static String FraseSinEspacios(String Frase) {
//Variables
String f = "",t;
int i,p;

//Proceso
p = 0;
Frase = [Link]();
for(i = 0; i<[Link](); i++){
if([Link](i, i+1).equals(" ")) {
t = [Link](p, i);
p = i + 1;
f = f + t;
}
}

t = [Link](p, i);
f = f + t;

//Salida
return f;
}

49
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Unidad 5.

Organización de Archivos
[Link]ón

Las operaciones básicas estudiadas en el anterior capítulo, sobre ordenación, búsqueda y


fusión en este capítulo sufren un cambio importante en su concepción, derivado del hecho
físico de que los datos a procesar no caben en la memoria principal de la computadora.

5.2. Organización y acceso a archivos (File organizittion and access)


En esta parte vamos a usar el termino organización de archivos para referirnos a la estructura lógica de
los registros determinada por la manera en que se accede a ellos. La organización física del archivo en
almacenamiento secundario depende de la estrategia de agrupación y de la estrategia de asignación de
archivos.
Para seleccionar una organización de archivos hay diversos criterios que son importantes:
1. Acceso Rápido para recuperar la información

2. Fácil actualización

3. Economía de almacenamiento

4. Mantenimiento simple.

5. Fiabilidad para asegurar la confianza de los datos.


La prioridad relativa de estos criterios va a depender de las aplicaciones que va a usar el archivo.
El número de alternativas de organización de archivos que se han implementado o propuesto es
inmanejable, Incluso para un libro dedicado a los sistemas de archivos.
La mayor parte de las estructuras empleadas en los sistemas reales se encuadran en una de estas
categorías o puede implementarse como una combinación de estas:
1. Pilas (The pile)

2. Archivos secuenciales (sequential file)

3. Archivos Secuenciales indexados. (indexed sequential file)

4. Archivos indexados.(indexed file)

5. Archivos directos o de dispersión (direct, or hashed, file).

5.3. . Uso del control Data


En Java puede utilizar el control Data para crear aplicaciones de bases de datos para una gran variedad
de formatos de base de datos. El control Data interactúa con el motor de base de datos Microsoft Jet y
permite crear aplicaciones preparadas para datos con la mínima cantidad de código posible.

Vista General del Acceso a Datos


Antes de trabajar con la funcionalidad de base de datos desde Java, se debe entender las capacidades de
acceso a datos, así como, la terminología empleada.

50
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Opciones de Acceso a Datos en Java


Esta parte del curso enumera las diversas opciones que Java proporciona para acceder a datos.

5.4. . Uso del Motor de Base de Datos Microsoft Jet


Los objetos de acceso a datos – Data Access Objects (DAO) y el control Data usan el motor de base de
datos Microsoft Jet para acceder a bases de datos. El motor de base de datos Jet puede acceder a los
siguientes 3 tipos de bases de datos.

 Bases de datos Jet


Estas bases de datos son creadas y manipuladas directamente por el motor Jet. Microsoft Access y
Java emplean el mismo motor de base de datos Jet.

 Bases de datos de Método de Acceso Secuencial Indexado (ISAM)


Los formatos de estas bases de datos incluyen Btrieve, dBase, Microsoft Visual FoxPro, y Paradox.

 Bases de datos compatibles con ODBC (Open DataBase Connectivity - Conectividad Abierta de
Base de Datos)
Estas bases de datos incluyen las bases de datos cliente/servidor que conforman el estándar ODBC,
tal como Microsoft SQL Server. La mayoría de bases de datos que soportan ODBC pueden ser
accedidas empleando Java.

Otros métodos de Acceso a Datos


Los otros métodos de acceso a datos soportados por Java incluyen:

 El control Origen de Datos Remoto (Remote Data Source)


Este es un control que emplea ODBC para acceder a bases de datos ODBC tales como Microsoft
SQL Server y Oracle. El control Origen de Datos Remoto sólo está disponible en la edición
Empresarial de Java.

 Librerías ODBC
Estas librerías permiten que se llame a la interface de programación de aplicaciones (API) de ODBC
directamente y están disponibles como un producto separado.

 Librerías SQL de Java


Estas librerías proporcionan un enlace directo a Microsoft SQL Server, y están disponibles como un
producto separado.
Entendiendo los Conceptos Básicos acerca de las Bases de Datos
La mayoría de sistemas de bases de datos emplean el modelo de base de datos relacional. Este modelo
presenta los datos como una colección de tablas. Una tabla es un grupo lógico de información

51
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

relacionada. Por ejemplo, la base de datos Neptuno contiene una tabla que almacena a los empleados, y
otra almacena los pedidos de una compañía ficticia.
La base de datos [Link] es una base de datos de ejemplo incluida con Microsoft Access.

Elementos de una Tabla


La base de datos Neptuno contiene un número de tablas que agrupan la información. Estas tablas
incluyen Pedidos, Clientes, y Empleados.
En una base de datos Jet, las filas de la tabla son denominadas registros, y las columnas campos.

52
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

5.4.1. La Clave Principal

Cada tabla debe de tener una clave principal, que es un campo (o una combinación de campos) que es
único para cada registro en la tabla. Por ejemplo, el campo IdEmpleado es la clave principal para la tabla
Empleados.

Una tabla puede también tener claves foráneas, que son campos que hacen referencia a una clave
principal de otra tabla. Por ejemplo, en la base de datos Neptuno, la tabla Pedidos tiene un campo
llamado IdCliente. Este campo es una clave foránea porque hace referencia a un cliente de la tabla
Clientes. En vez de duplicar toda la información del cliente por cada pedido, sólo se ingresa la clave
principal del cliente a quien pertenece el pedido, como la clave principal es única por cada cliente, hay
un solo cliente por cada pedido, y un cliente puede tener muchos pedidos. En términos de una base de
datos, la relación entre la tabla Clientes y la tabla Pedidos es una relación del tipo uno-a-varios.

5.4.2. Registros

Un registro contiene información acerca de un solo ingreso en una tabla. Generalmente, no se desea que
dos registros en una tabla tengan los mismos datos. Por ejemplo, un registro en la tabla Empleados
contiene información acerca de un único empleado.

5.4.3. Campos

Cada campo en una tabla contiene una parte de la información. Por ejemplo, la tabla Empleados incluye
campos para el Id del empleado, Apellidos, Nombre, etc.

5.4.4. Indices

Los índices de una tabla de una base de datos son listas ordenadas que son más rápidas para las
búsquedas que las tablas en sí. Para habilitar un acceso más rápido a una base de datos, la mayoría de
bases de datos emplean uno o más índices. Por ejemplo, la tabla Empleados tiene un índice para la
columna IdEmpleado.

Introducción al JDBC
Java Database Connectivity (JDBC) es una interface de acceso a bases de datos estándar SQL
que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales. JDBC
también proporciona una base común para la construcción de herramientas y utilidades de alto nivel.

Drivers JDBC

Para usar JDBC con un sistema gestor de base de datos en particular, es necesario disponer del
driver JDBC apropiado que haga de intermediario entre ésta y JDBC. Dependiendo de varios factores,
este driver puede estar escrito en Java puro, o ser una mezcla de Java y métodos nativos JNI (Java
Native Interface).

5.4.5. ¿Qué es JDBC?

JDBC es el API para la ejecución de sentencias SQL. (Como punto de interés JDBC es una marca
registrada y no un acrónimo, no obstante a menudo es conocido como “Java Database Connectivity”).
Consiste en un conjunto de clases e interfases escritas en el lenguaje de programación Java. JDBC
suministra un API estándar para los desarrolladores y hace posible escribir aplicaciones de base de datos
usando un API puro Java.

53
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

Usando JDBC es fácil enviar sentencias SQL virtualmente a cualquier sistema de base de datos. En otras
palabras, con el API JDBC, no es necesario escribir un programa que acceda a una base de datos Sybase,
otro para acceder a Oracle y otro para acceder a Informix. Un único programa escrito usando el API JDBC
y el programa será capaz de enviar sentencias SQL a la base de datos apropiada. Y, con una aplicación
escrita en el lenguaje de programación Java, tampoco es necesario escribir diferentes aplicaciones para
ejecutar en diferentes plataformas. La combinación de Java y JDBC permite al programador escribir una
sola vez y ejecutarlo en cualquier entorno.

Java, siendo robusto, seguro, fácil de usar, fácil de entender, y descargable automáticamente desde la
red, es un lenguaje base excelente para aplicaciones de base de datos.

JDBC expande las posibilidades de Java. Por ejemplo, con Java y JDBC API, es posible publicar una
página web que contenga un applet que usa información obtenida de una base de datos remota. O una
empresa puede usar JDBC para conectar a todos sus empleados (incluso si usan un conglomerado de
máquinas Windows, Macintosh y UNIX) a una base de datos interna vía intranet. Con cada vez más y más
programadores desarrollando en lenguaje Java, la necesidad de acceso fácil a base de datos desde Java
continúa creciendo.

5.4.6. ¿Qué hace JDBC?


Simplemente JDBC hace posible estas tres cosas:

Establece una conexión con la base de datos.


Envía sentencias SQL
Procesa los resultados.

El siguiente fragmento de código nos muestra un ejemplo básico de estas tres cosas:

Connection con = [Link] (


"jdbc:odbc:wombat", "login", "password");
Statement stmt = [Link]();
ResultSet rs = [Link]("SELECT a, b, c FROM Table1"); while ([Link]()) {
int x = [Link]("a");
String s = [Link]("b");
float f = [Link]("c");
}

5.4.5. JDBC es un API de bajo nivel y una base para API’s de alto nivel. JDBC es una interfase de
bajo nivel, lo que quiere decir que se usa para „invocar‟ o llamar a comandos SQL directamente. En
esta función trabaja muy bien y es más fácil de usar que otros API‟s de conexión a bases de datos,
pero está diseñado de forma que también sea la base sobre la cual construir interfaces y
herramientas de alto nivel. Una interfase de alto nivel es „amigable‟, usa un API mas entendible o
más conveniente que luego se traduce en la interfase de bajo nivel tal como JDBC.

54
UNIVERSIDAD SALESIANA DE BOLIVIA Materia: Informática
Docente: Lic. Carla Aguirre – Lic. Flabio Beltran Carrera: CONTADURÍA PÚBLICA

IV. BIBLIOGRAFÍA
LISTADO DE TEXTOS

AUTOR OBRA LUGAR de EDIC EDITORIAL AÑO


Luis Joyanes “Fundamentos de Perú McGraw-HIll 2000
Aguilar la Programación”
Luis Joyanes “Metodología de España McGraw-HIll 1998
Aguilar la Programación”
Ricardo Marcelo “Fundamentos de Perú MACRO 2008
Villalobos la Programación
en Java”

LECTURAS COMPLEMENTARIAS
[Link]
Gane y Sarson. Análisis Estructurado de Sistemas.
Prentice-hall. 1979
Kendall y Kendall. Análisis y Diseño de Sistemas.
Prentice-hall. 2005
Langefors, B. Teoría de los Sistemas de
Información. Ed. El Ateneo. 1980
O’Brien, James A. Sistemas de Información
ANEXOS

55

También podría gustarte