You are on page 1of 73

UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Capítulo VI.

Introducción a la Programación.

La computadora no solamente es una maquina que puede realizar procesos para darnos
resultados, sin que tengamos la noción exacta de las operaciones que realiza para llegar a
esos resultados. Con la computadora además de lo anterior también podemos diseñar
soluciones a la medida, de problemas específicos que se nos presenten. Mas aun, si estos
involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de
un volumen muy grande de datos. En el presente capitulo brindaremos los conceptos
elementales sobre algoritmos y programación.

El diseño de soluciones a la medida de nuestros problemas, requiere como en otras disciplinas una
metodología que nos enseñe de manera gradual, la forma de llegar a estas soluciones.
A las soluciones creadas por computadora se les conoce como programas y no son más que una
serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos
específicos. Lo anterior nos lleva al razonamiento de que un programa nos sirve para solucionar un
problema específico.
Para poder realizar programas, además de conocer la metodología mencionada, también debemos de
conocer, de manera específica las funciones que puede realizar la computadora y las formas en que
se pueden manejar los elementos que hay en la misma.
Es así que el aprender técnicas y lenguajes de programación es para que las personas utilicen al
computador como una herramienta que resuelve problemas.
El computador es una maquina que puede realizar procesos oscuros, para darnos resultados. Escribir
un programa para resolver un problema comprende varios pasos que van desde la formulación y
especificación del problema, el diseño de la solución, su implantación, prueba y documentación,
hasta la evaluación de la solución.
Los algoritmos y los diagramas de flujo brindan el conocimiento fundamental para permitir resolver
problemas computacionales mediante un razonamiento lógico y estructurado, esto no es algo nuevo
ya que es usado por el hombre de forma cotidiana, por Ej. Cuando tenemos un problema realizamos
operaciones lógicas, es decir la secuencia de pasos que nos ayudarán a resolver el problema de la
manera más fácil y adecuada, estas operaciones lógicas son los algoritmos.
En nuestra vida cotidiana empleamos algoritmos en muchas ocasiones para resolver diversos
problemas, como por Ej. Para poner una lavadora (conjunto de instrucciones pegadas en la tapa de
la máquina), para tocar música (partituras), para construir un aeroplano a escala (expresados en las
instrucciones), para hacer trucos de magia (pasos para hacer el algoritmo de la división para dos

ING.LUDMILA N.BENITEZ MONTERO 46


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
números, calcular el máximo común divisor de dos enteros positivos pertenecen al ámbito de las
matemáticas.
6.1. Datos. Los datos son un conjunto de hechos. Los reportes de ventas, cifras de los inventarios,
las notas obtenidas de los exámenes, los nombres de clientes y sus direcciones, y los informes sobre
el tiempo, son todos ejemplos de datos. Obsérvese que los datos pueden ser numéricos Ej. Las cifras
de los inventarios y las notas de los exámenes; también no numéricos, como los nombres y las
direcciones de los clientes o los dibujos, fotografías, mapas se consideran como datos.
6.2. El procesamiento de datos. Es el manejo de los datos en una forma más útil. Incluye no sólo
los cálculos numéricos, sino también, operaciones tales como la clasificación y transmisión de esos
datos de un lugar a otro. En términos generales, suponemos que estas operaciones se realizan por
medio de algún tipo de máquina o computador, aunque alguna de ellas se puede llevar a cabo en
forma manual.
6.3. Ciclo de procesamiento de datos.
Datos de Procesamiento Datos de
Entrada Salida

Fig.89 Fig.Ciclo de procesamiento

6.4. Dato e Información. Algunos textos hacen la distinción entre “datos” e “información” y esta
última es definida como datos ya procesados. Emplearemos los dos términos alternativamente.
6.5. Proceso. Es una acción, es un suceso o acontecimiento producido por un actor, tiene la
característica de una duración limitada y produce un resultado bien definido. Inicio, tiempo y un fin.
Un proceso se puede descomponer en otras acciones simples, el conjunto de acciones forman un
acontecimiento. Los procesos pueden ser secuenciales o paralelos.
Secuencial si una acción no puede empezar antes que la acción en curso este completamente
terminada, dos acciones no se ejecuta simultáneamente sino en orden secuencial, paralelo si se
ejecuta simultáneamente dos o más acciones.
6.6. Lenguajes de programación. Son los lenguajes utilizados para escribir programas de
computadoras que puedan ser entendidos por ellas, que contiene un conjunto reglas semánticas y
una sintaxis que definen a los programas. En otras palabras es un conjunto de símbolos, caracteres y
reglas (programas) que le permiten a las personas comunicarse con la computadora.
Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar
operaciones de entrada/salida, calculo, manipulación de textos, lógica/comparación y
almacenamiento/recuperación.

ING.LUDMILA N.BENITEZ MONTERO 47


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Lo lenguajes de programación permiten a las personas escribir instrucciones, en esencia, en el
idioma ingles, números y símbolos matemáticos que las computadoras pueden convertir a código
binario mediante programas denominados procesadores de lenguaje.
Los programadores utilizan lenguajes de programación para elaborar paquetes de software.
Los lenguajes de programación se clasifican en:
6.7. Lenguaje Maquina. Son aquellos cuyas instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el
programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria
mas pequeña el bit (dígito binario 0 o 1), es el lenguaje propio de la computadora, basado en la
lógica binaria, de ceros y unos (00010111) por lo que este lenguaje resulta difícil de utilizar para
las personas; ya que el programador debe introducir todos y cada uno de los comandos y datos en
forma binaria.
6.8. Lenguaje de Bajo Nivel (Ensamblador). En este lenguaje las instrucciones se escriben en
códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.
Ej. STORE, ADD o JUMP. Los lenguajes de bajo nivel permiten crear programas muy rápidos,
pero que son a menudo difíciles de aprender.
6.9. Lenguaje de Alto Nivel. Los llamados lenguajes de alto nivel son los que se emplean con
mayor frecuencia como lenguajes de programación, porque permiten expresar los algoritmos de una
manera y con un estilo fácilmente reconocible por parte de diversos programadores y usuarios;
lenguajes de programación de alto nivel como (BASIC, pascal, cobol, frotran, etc.) son aquellos en
los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los
lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.
Sin embargo, tanto los lenguajes de alto nivel como los de bajo nivel, no son entendibles
directamente por la máquina, sino que necesitan ser traducidos a instrucciones en lenguaje máquina
que entiendan las computadoras por lo que es necesario disponer de una interfase con el lenguaje
máquina para que el programa sea ejecutable. Al respecto existen dos tipos fundamentales de
interfase, que son: los compiladores y los intérpretes.
6.10. Procesadores de lenguaje. Los procesadores de lenguaje traducen las instrucciones de un
lenguaje de programación a código binario en forma similar a la que una persona bilingüe podría
traducir. El conjunto de instrucciones binarias y traducidas que la computadora puede ejecutar, es el
código objeto. Los procesadores de lenguaje pueden ser compiladores o intérpretes.
6.11. Compiladores. Un traductor que facilita la comunicación entre el programador y la
máquina, por medio de un proceso de transformación llamado compilación.

ING.LUDMILA N.BENITEZ MONTERO 48


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
De esta manera traduce un programa íntegro a lenguaje máquina antes de su ejecución, por lo cual
se ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje máquina.
El compilador es el más eficaz para la mayor parte de las máquinas, puesto que presenta la ventaja
de que cada una de las sentencias del programa es interpretada y traducida al lenguaje máquina solo
una vez.
Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un
código fuente.
El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que
falle el ordenador si no está bien diseñado.
.
COMPILACIÓN

Código Código objeto Programa


Fuente Ejecutable
Fig.90 Compilación

6.12. Un intérprete es. Es un programa que se traduce línea por línea bajo la misma plataforma.
Es Un traductor pero más lento que los compiladores ya que no producen un código objeto, sino
que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se
ejecuta. Cuando la línea se lee por segunda vez, como en el caso de los programas en que se
reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento, es
menos susceptible de provocar fallos en la computadora
6.13. Programa. Es el conjunto de instrucciones escritas de algún lenguaje de programación y que
ejecutadas resuelven un problema especifico.
Un programa define un “algoritmo”, porque constituye el conjunto de instrucciones que forman el
algoritmo (ya codificados en un lenguaje de programación) y se da a una computadora para
solucionar un problema especifico.
La programación es el proceso de planificar una secuencia de instrucciones que ha de seguir una
computadora, un programa es la secuencia de instrucciones que indican las acciones que ha de
ejecutar una computadora.
6.14. Instrucciones. Son las acciones concretas que realiza el computador, tiene una sintaxis que es
el como se escribe, y tiene una semántica que es lo que significa esa instrucción.

ING.LUDMILA N.BENITEZ MONTERO 49


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.15. Metodología para la solución de problemas por medio de computadora
1) Identificación del Problema. Esta fase está dada por el enunciado del problema, el cual requiere
una definición clara y precisa. Es importante que se conozca lo que se desea que realice la
computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente
etapa.
2) Análisis del Problema. Comprendido lo que se desea de la computadora, define:
Los datos de entrada.
Cual es la información que se desea producir (salida)
Los métodos y fórmulas que se necesitan para procesar los datos.
Pongámonos en el lugar de la computadora y analicemos que es lo que necesitamos que nos
ordenen y en que secuencia para producir los resultados esperados.
Diseña el Algoritmo realizando la secuencia ordenadas de pasos que conducen a la solución del
problema expresado en lenguaje natural, es importante que verifiques con datos la solución. El
algoritmo que vayas desarrollando puede irse refinando paulatinamente hasta obtener un algoritmo
claro, debes considerar los tres elementos que son: la entrada ¿Cuántos datos se introducen?, el
proceso ¿Cuántas operaciones o cálculos son necesarios para encontrar la solución?, salida de los
resultados ¿Cuáles son los resultados de salida?.
3) Realización del diagrama de flujo. La representación gráfica mediante una herramienta de
programación es el diagrama de flujo o pseudos código. El diagrama de flujo es la representación
grafica de un programa, una vez que este verificado se bebe pasar a la fase de codificación,
traducción del algoritmo al lenguaje de programación,
4) Codificación. La codificación es la operación de escribir la solución del problema (de acuerdo a
la lógica del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un
código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como
código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel, en este
caso java, que ha de ser completada con la ejecución y comprobación del programa en el
computador.
5) Prueba y Depuración. Los errores humanos dentro de la programación de computadoras son
muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y
eliminar errores, para dar paso a una solución sin errores se le llama depuración.
La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por
ello se debe considerar con el mismo interés y entusiasmo.
Resulta conveniente observar los siguientes principios al realizar una depuración, ya que de este
trabajo depende el éxito de nuestra solución.

ING.LUDMILA N.BENITEZ MONTERO 50


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.16. Entidades primitivas para el desarrollo de Algoritmos.
6.17. Tipos De Datos. Todos los datos tienen un tipo asociado con ellos. El tipo de dato determina
la naturaleza del conjunto de valores que puede tomar una variable.

Numéricos
Simples Lógicos
Alfanuméricos (string)
Tipos de
Datos Arreglos (Vectores, Matrices)
Estructurados Registros
(Def. por el Archivos
usuario) Apuntadores
6.18. Tipos de Datos Simples
 Datos Numéricos: Permite representar a los números enteros y los reales. Este tipo de
datos permiten realizar operaciones aritméticas comunes.
 Datos Lógicos: Son aquellos que solo pueden tener dos valores (verdad o falso) ya que
representan el resultado de una comparación entre otros datos (numéricos o
alfanuméricos).
 Datos Alfanuméricos (String): Este tipo de datos se representan encerrados entre
comillas, en una secuencia de caracteres alfanuméricos que permiten representar
valores de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es
posible representar números como alfanuméricos, pero estos pierden su propiedad
matemática, es decir no es posible hacer operaciones con ellos. Ej. “Ingeniería
Informática”
6.19. Expresiones. Una expresión puede ser una constante, una variable, una combinación de
constantes y variables separados por operadores aritméticos. Ej. sum+(a - 3)/b
Cada expresión toma un valor que se determina tomando los valores de las variables y constantes
implicadas y la ejecución de las operaciones indicadas. Una expresión consta de operadores y
operando. Según sea el tipo de datos que manipulan, se clasifican las expresiones en:

- Aritméticas
- Relaciónales
- Lógicas
6.20. Operadores Aritméticos. Los operadores aritméticos permiten la realización de operaciones
matemáticas con los valores (variables y constantes). Si ambos son enteros, el resultado es entero; si
alguno de ellos es real, el resultado es real.
Expresión Resultado
7/2 3.5
12 mod 7 5
4 +2*5 14

ING.LUDMILA N.BENITEZ MONTERO 51


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.21. Operadores Aritméticos.
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)

6.22. Prioridad de los Operadores Aritméticos.

 Todas las expresiones entre paréntesis se evalúan primero, el paréntesis mas interno se
evalúa primero.
 Dentro de una misma expresión los operadores se evalúan en el siguiente orden.
1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a
derecha.
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

6.23. Operadores Relaciónales. Se utilizan para establecer una comparación entre dos valores que
produce un resultado de verdadero o falso, los valores deben ser del mismo tipo. (Numéricos o
cadenas).
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente
= Igual

Ej.
Si a = 10 b = 20 c = 30

a-b=c Falso
a*b<>c Verdadero

6.24. Operadores Lógicos. Estos operadores se utilizan para establecer relaciones entre valores
lógicos, estos valores pueden ser resultado de una expresión relacional.
Operadores Lógicos
And Y
Or O
Not Negación

ING.LUDMILA N.BENITEZ MONTERO 52


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ej.
(a < b) and (b < c)
(10<20) and (20<30)
T and T

6.25. Identificadores. Los identificadores representan los datos de un programa (constantes,


variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar
una posición en la memoria de la computadora, que nos permite acceder a su contenido.
Ejemplo: Suma
Nota_final
Calif1

6.26. Reglas para formar un Identificador.

 Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios
en blanco.
 Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter.
 La longitud de identificadores puede ser de hasta 8 caracteres.

6.27. Constante. Una constante es un dato numérico o alfanumérico que no cambia durante la
ejecución del programa. Ej. pi = 3.1416
6.28. Variable. Las variables son nombres o símbolos que se encuentran asociados a las posiciones
de memoria donde se almacena los valores numéricos asignados a estas. Las variables pueden tener
distintos valores numéricos durante la ejecución del programa. El nombre de una variable contiene
una combinación de letras o dígitos, el primer carácter debe ser una letra. Ej. N, suma, etc.
Ej. área = pi * radio ^ 2 en este ejemplo las variables son : el radio, el área y la constate es pi
6.29. Constantes y Variables Diferenciación. Un valor que tenga la forma numeral en una
instrucción se llama constante, cuando tenga la forma de nombre se llamara variable. Así en:
SUM+10
10 es una constante y SUM es una variable.
6.30. Clasificación de las Variables

Numéricas
Por su Contenido Lógicas
Alfanuméricas (String)
Variables

De Trabajo
Por su Uso Contadores
Acumuladores

ING.LUDMILA N.BENITEZ MONTERO 53


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.31. Por su Contenido: Numericas, Logicas, Alfanumericas.

Variables Numéricas. Son aquellas en las cuales se almacenan valores numéricos, positivos o
negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo:
iva=0.15 pi=3.1416 costo=2500

Variables Lógicas. Son aquellas que solo pueden tener dos valores (cierto o falso) estos
representan el resultado de una comparación entre otros datos.
Variables Alfanuméricas. Esta formada por caracteres alfanuméricos (letras, números y
caracteres especiales). Ejemplo:
letra=’a’ apellido=’lopez’ direccion=’Av. Libertad #190’

6.32. Por su Uso: Trabajo, Contadores, Acumuladores.

Variables de Trabajo. Variables que reciben el resultado de una operación matemática


completa y que se usan normalmente dentro de un programa. Ejemplo: suma=a+b/c
Contadores. Se utilizan para llevar el control del numero de ocasiones en que se realiza una
operación o se cumple una condición. Con los incrementos generalmente de uno en uno.
Acumuladores. Forma que toma una variable y que sirve para llevar la suma acumulativa de
una serie de valores que se van leyendo o calculando progresivamente.

6.33. Técnicas de Diseño.

6.34. Top Down. Es una técnica de diseño conocida como de arriba-abajo y consiste en establecer
una serie de niveles de mayor a menor complejidad (arriba-abajo) que dan solución al problema.
Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa
jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de información.

Consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el
refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa.

La técnica de diseño Top-Down tiene como objetivos básicos:

- Simplificación del problema y de los subprogramas de cada descomposición.

- Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por
diferentes personas.

- El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su
lectura y mantenimiento.

ING.LUDMILA N.BENITEZ MONTERO 54


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.35. Bottom Up. Esta técnica tiene un diseño ascendente se refiere a la identificación de aquellos
procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su
codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato.

Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar


a integrar los subsistemas al grado tal de que el desempeño global, sea fluido. Los problemas de
integración entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta
que la programación alcanza la fecha limite para la integración total del sistema. En esta fecha, ya
se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir
aquellas delicadas interfaces, que en un principio, se ignoran.

Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como
una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno
de ellos es la duplicación de esfuerzos para accesar el software y más aun al introducir los datos.
Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el mas
serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no
fueron considerados y en consecuencia no se satisfacen.

6.36. Algoritmo. Serie de pasos organizados que describen el proceso que se debe seguir, para dar
solución a un problema específico. Durante nuestra vida, siempre trabajamos con algoritmos,
aunque lo hacemos de forma automática, inconscientemente; pero siempre seguimos ciertos pasos
para lograr un objetivo.
Los algoritmos constituyen el listado de instrucciones que indican el camino a seguir para dar
solución a un problema, podríamos decir que un algoritmo es la suma de una parte lógica mas un
parte de control, en donde la parte lógica especifica el conocimiento en la solución del problema y
la parte de control es la estrategia para solucionar el problema.
6.37. Características de los algoritmos.
 Un algoritmo no debe ser ambiguo cada camino se debe interpretar de una sola forma, con
los mismos datos o la misma situación obtendremos los mismos resultados.
 Debe tener una secuencia inicial.
 Cada paso debe indicar claramente el camino a seguir en la solución del problema.
 El algoritmo debe de ser siempre eficiente y dar una solución al problema o de lo contrario
deberá dar un mensaje que diga “no tiene solución”.
Ej. De Algoritmo Cotidiano: Diseñar un Algoritmo para leer las Páginas de un Libro.
1.-Inicio
2.-Abrir El Libro En La 1ª. Página.

ING.LUDMILA N.BENITEZ MONTERO 55


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
3.-Leer La Página.
4.- ¿Es la última que deseo Leer?
Si: Ve Al Paso 7
No: Ve Al Paso 5
5.-Pasar Ala Siguiente Página.
6.-Ve Al Paso 3
7.-Cerrar El Libro.
8.-Fin
6.38. Lectura. La lectura consiste en recibir desde un dispositivo de entrada como el teclado un
valor. Esta operación se representa en un pseudocodigo como sigue:
Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

6.39. Asignación. La asignación consiste, en el paso de valores o resultados a una zona de la


memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma:
 Simples. Consiste en pasar un valor a una variable Ej. a=15
 Contador. Consiste en usarla como un verificador del número de veces que se realiza
un proceso Ej. a=a+1 ó a++
 Acumulador. Consiste en usarla como un sumador en un proceso Ej. a=a+b
 De trabajo. Donde puede recibir el resultado de una operación matemática que
involucre muchas variables Ej. a=c+b*2/4.
6.40. Escritura Consiste en mandar por un dispositivo de salida como el monitor o impresora un
resultado o mensaje. Este proceso se representa en un pseudocodigo como sigue:

Escribe “El resultado es:”, R

Donde R es una variable que contiene un valor.

ING.LUDMILA N.BENITEZ MONTERO 56


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Problemas
1) Una persona desea invertir su capital en un banco y desea saber cuanto dinero ganara después de
un mes si el banco paga a razón de 2% mensual.
Algoritmo
Inicio
Crear variables cap_in, ganancia
Leer cap_inv
ganancia = cap_inv * 0.02
Imprimir ganancia
Fin
2) Un empleado de una tienda de juguetes recibe un sueldo base más un 15% extra por comisión de
sus ventas, el empleado desea saber cuanto dinero obtendrá por concepto de comisiones por las tres
ventas que realiza en el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y
comisiones.
Algoritmo
Inicio
Crear variables sueldob,v1,v2,v3
Leer sueldob, v1, v2, v3
total_venta = v1 + v2 + v3
com = total_venta * 0.15
total = sueldob + com
Imprimir total, com
Fin
3) Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo
de estudiantes.
Algoritmo
Inicio
Crear variables nh,nm,ta,ph,ta,pm
Leer nh, nm
ta = nh + nm
ph = nh * 100 / ta
pm = nm * 100 / ta
Imprimir ph, pm
Fin

ING.LUDMILA N.BENITEZ MONTERO 57


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
4) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber
cuanto deberá pagar finalmente por su compra.
Algoritmo
Inicio
Crear variables totalc,d,pagar,totalc,d
Leer totalc
d = totalc * 0.15
pagar = totalc - d
Imprimir pagar
Fin
5) Un universitario desea saber cual será su calificación final en la materia de Algoritmos. Dicha
calificación se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones
parciales, 30% de la calificación del examen final, 15% de la calificación de un trabajo final.
Algoritmo
Inicio
Crear variables c1,c2,c3,ef,tf,prom,parciales,efinal,tfinal,cfinal
Leer c1, c2, c3, ef, tf
prom = (c1 + c2 + c3)/3
parciales = prom * 0.55
efinal = efinal * 0.30
tfinal = tfinal* 0.15
cfinal = parciales + efinal + tfinal
Imprimir cfinal
Fin

ING.LUDMILA N.BENITEZ MONTERO 58


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.41. Diagrama de Flujo. Es la representación gráfica del algoritmo de solución del problema,
donde la serie de pasos a seguirse están indicados por cajas con instrucciones contenidas en ellas, la
secuencia en la que van a ejecutarse se indica por las flechas. Una vez que se tiene el diagrama de
flujo fácilmente se puede codificar en cualquier lenguaje de programación.
6.42. Figuras Geométricas usadas en los diagramas de flujo.
Símbolo Significado

INICIO
Inicio: Indica el inicio de nuestro diagrama de
flujo.

Final: Indica el final de nuestro diagrama de


FINAL flujo.

Entrada: Esta figura en forma de


paralelogramo inicia una operación de
entrada.
Operación. Esta figura rectangular indica un
proceso ú operación de procesamiento de
datos, calculo, etc.
Decisión: Símbolo de decisión indica la
realización de una comparación de valores.
Las líneas que salen de la figura se identifican
con los resultados de la decisión, por lo tanto
una línea será verdadera y la otra será falsa.
Conector: Conector dentro de pagina.
Representa la continuidad del diagrama dentro
de la misma página.
Dirección: Líneas de flujo o dirección.
Indican la secuencia en que se realizan las
operaciones

Decisión Múltiple: Dependiendo del


resultado de la comparación se deberá de
seguir un camino especifico.
Conector: Conector fuera de página.
Representa la continuidad del diagrama en
otra página.

Impresora: Representa una salida de


resultados mediante la impresora.

6.43. Programación Estructurada. En la década del sesenta salieron a la luz publica las "Técnicas
para mejoramiento de la productividad en programación" (en ingles Improved Programming
Technologies, abreviado IPTs), siendo la Programación Estructurada una de ellas.
Los programas computarizados pueden ser escritos con un alto grado de estructuración, lo cual les
permite ser mas fácilmente comprensibles en actividades tales como pruebas, mantenimiento y
ING.LUDMILA N.BENITEZ MONTERO 59
UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
modificación de los mismos. Mediante la programación Estructurada todas las bifurcaciones de
control de un programa se encuentran estandarizadas, de forma tal que es posible leer la
codificación del mismo desde su inicio hasta su terminación en forma continua, sin tener que saltar
de un lugar a otro del programa siguiendo el rastro de la lógica establecida por el programador,
como es la situación habitual con codificaciones desarrolladas bajo otras técnicas.
Programación Estructurada es una técnica en la cual la estructura en un programa su flujo lógico
está gobernado por tres estructuras básicas de control:
6.44. Estructuras de Control. En nuestros programas utilizamos estructuras de control, son formas
de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos
específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo a su
complejidad en:
 Estructura de control Secuencial.
 Estructura de control Selectiva.
 Estructura de control Repetitivas.
6.45. Estructura de control Secuencial. Las estructuras secuenciales están constituidas por una o
más instrucciones las cuales se ejecutan una sola vez una detrás de otra. Las tareas se suceden de tal
modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.
Una estructura secuencial se representa de la siguiente forma:

Diagrama de flujo

INICIO (Inicio del programa)

A=Integer; B=Integer; (Declaración de variables)


C=Integer;

(Lectura de datos A,B,C,D)


A,B,C

PROCESO
(Proceso)

C,B,A (Muestra de datos)

FIN (Fin del programa)

ING.LUDMILA N.BENITEZ MONTERO 60


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ejercicios Secuenciales

1. Construya un algoritmo y su diagrama de flujo para calcular e imprimir el área de un


triangulo.
Solución.
Entrada :(datos a introducir al computador)
Altura= h
Base= b
Salida: (Resultado que mostrara el computador)
Área de un triangulo cualquiera = (b*h)/2
Algoritmo
Iniciar el programa
Crear las variables
Leer de b y h
Procesar la formula A= (b*h)/2
Imprimir A
Fin del programa
INICIO (Inicio del programa)

A=Integer; b=Integer; (Declaración de variables)


h=Integer;

(Lectura de datos b,h)


b,h

A=(b*h)/2
(Proceso)

A (Muestra dato)

FIN (Fin del programa)

2. Construya un algoritmo y su diagrama de flujo dada la matricula y 3 calificaciones de un


alumno obtenidas a lo largo del semestre; imprima la matricula del alumno y el promedio
de sus calificaciones.
Solución
Entrada:(datos a introducir al computador)
M, C1, C2, C3
M es del tipo entero, representa la matricula.
C1, C2, C3 son variables del tipo real, son las calificaciones
Salida: (Resultado que mostrara el computador)
Promedio
Algoritmo
Iniciar el programa
Crear las variables
Leer M, C1, C2, C3.
Procesar al formula Promedio= (C1+C2+C3)/3
Imprimir Promedio
Fin del programa

ING.LUDMILA N.BENITEZ MONTERO 61


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN

INICIO (Inicio del programa)

M =Integer; C1=Integer; C2=Integer;


C3=Integer; Promedio=Integer;
(Declaración de variables)
h=Integer;

(Lectura de datos M, C1, C2, C3)


M, C1, C2, C3

Promedio= (C1+C2+C3)/ 3
(Proceso)

Promedio (Imprime promedio)

(Fin del programa)


FIN

3. Construya un algoritmo y su diagrama de flujo tal, que dados como datos enteros A, B
escriba el resultado de la siguiente expresión. (A+B) 4/4
Solución
Entrada:(datos a introducir al computador)
A,B
A ,B es del tipo entero.
Salida: (Resultado que mostrara el computador)
Resultado
Algoritmo
Iniciar el programa
Crear las variables
Leer A,B
Procesar al formula Resultado= (A+B)4/4
Imprimir Resultado
Fin del programa

INICIO (Inicio del programa)

A=Integer; B=Integer; (Declaración de variables)


Resultado=Integer;

(Lectura de datos A,B)


A,B

Resultado=(A+B)4/4
(Proceso)

Resultado (Imprime resultado)

FIN (Fin del programa)

ING.LUDMILA N.BENITEZ MONTERO 62


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
4. Construya un algoritmo y su diagrama de flujo tal, que dados como datos la base y la altura
de un rectángulo, calcule el perímetro y la superficie del mismo.
Solución
Entrada:(datos a introducir al computador)
Base, Altura
Base es del tipo real, que expresa la base de un rectángulo.
Altura es del tipo real, que expresa la base de un rectángulo.
Consideraciones:
Superficie=Base * Altura
Perímetro= 2 * (Base + Altura)
Salida: (Resultado que mostrara el computador)
Superficie
Perímetro
Algoritmo
Iniciar el programa
Crear las variables
Leer Base y Altura (Base y Altura).
Procesar el Perímetro del Triangulo.
Imprimir Superficie y Perímetro.
Fin del programa

INICIO (Inicio del programa)

Altura=float; Base=float; (Declaración de variables)


Superficie=float;Perímetro=float;

(Lectura de datos Base, Altura)


Base, Altura

Superficie=Base *Altura
Perímetro=2*(Base+Altura) (Proceso)

Superficie,
Perímetro (Imprime superficie y perimetro)

FIN (Fin del programa)

5. Construya un algoritmo y su diagrama de flujo tal, que dado el radio de un círculo, calcule e
imprima su área y la longitud de su circunferencia.
Solución
Entrada:(datos a introducir al computador)
Radio
Radio es de tipo real, que expresa el radio de un círculo.
Consideraciones:
Area=p*Radio2
Circunferencia=2*p*Radio
Salida: (Resultado que mostrara el computador)
Area, Circunferencia

ING.LUDMILA N.BENITEZ MONTERO 63


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Algoritmo
Iniciar el programa
Crear las variables
Leer Radio.
Procesar el Area y la Circunferencia.
Imprimir Area y Circunferencia.
Fin del programa

INICIO (Inicio del programa)

Radio=float; Area=float;
Circunferencia=float; Radio=float; (Declaración de variables)

Radio (Lectura de datos Radio)

Area=3.141592 *(Radio 2)
Circunferencia=2*3.141592* Radio
(Proceso)
Área,
Circunferencia
(Muestra dato)

FIN
(Fin del programa)

6.46. Estructuras de control Selectivas. Las estructuras de control selectivas se encuentran en la


solución algorítmicas de casi todo tipo de problemas. La utilizamos cuando en el desarrollo de la
solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un
camino alternativo a seguir.

Esta toma de decisión (expresada con un rombo) se basa en la evaluación de una o mas condiciones
que nos señalarán como alternativa o consecuencia, la rama a seguir.

Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una
decisión, se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y así
sucesivamente. Por lo que para alcanzar la solución de este problema o subproblema debemos
aplicar prácticamente un árbol de decisión.

ING.LUDMILA N.BENITEZ MONTERO 64


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Las estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas las
podemos clasificar de la siguiente forma.

 Estructura de Selección Simple


Si (condición) entonces
 Estructura de Selección Doble
Si (condición) entonces
Si no
 Estructura de Selección Múltiple Si múltiples

Señalar que cuando a la estructura selectiva las aplicamos en cascada, es posible la utilización de
una combinación de las estructuras señaladas anteriormente en la clasificación.
6.47. La estructura si entonces (Selección simple). La estructura selectiva Si entonces permite que
el flujo del diagrama siga por un camino especifico si se cumple una condición o conjunto de
condiciones. Si al evaluar la condición(o condiciones) el resultado es verdadero, entonces se
ejecutan ciertas operaciones. Luego se continúa con la secuencia normal del diagrama.

Algoritmo

Si (condición) entonces

Hacer Operación(es)

Fin-si.

Diagrama de flujo

Donde:
Condición expresa la
CONDICIÓN
condición o conjunto de
condiciones a evaluarse.
VERDADERA FALSA

Operación expresa la OPERACIÓN


operación o conjunto de
operaciones que se van a
realizar si la condición
resulta verdadera

ING.LUDMILA N.BENITEZ MONTERO 65


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.48. La estructura si entonces sino (Selección doble).
Como se puede ver la selección simple es limitada aunque muchas veces necesaria, por otro lado la
alternativa doble nos permite tomar decisiones en ambos sentidos, es decir cuando la sentencia de
comparación sea verdadera o cuando se falsa, en otras palabras cuando la respuesta de la
comparación sea verdadera se ejecutaran una o mas operaciones, así mismo si la respuesta es falsa
se ejecutaran acciones diferentes. Veamos el diagrama de flujo el cual explica mejor el concepto de
alternativa doble.

Algoritmo

Si <condición> entonces
Hacer operación 1
si no
Hacer operación 2
Fin-si

Diagrama de flujo

Donde:
Condición expresa la
VERDADERA
CONDICIÓN
FALSA condición o conjunto de
condiciones a evaluarse.
OPERACIÓN 1 OPERACIÓN 2
Operación 1 expresa la
operación o conjunto de
operaciones que se van a
realizar si la condición
resulta verdadera
Operación 2 expresa la
operación o conjunto de
operaciones que se van a
realizar si la condición
resulta verdadera

6.49. La estructura de selección Múltiple.


La estructura de selección múltiple permite que el flujo del diagrama se bifurque por varias ramas
en el punto de la toma de decisión(es), esto en función del valor que tome el selector. Así, si el
selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutara la acción 2, si toma
el valor N se realizará la acción N, y si toma un valor distinto de los valores comprendidos entre 1 y
N, se continuará con el flujo normal del diagrama realizándose las acciones N+1.

ING.LUDMILA N.BENITEZ MONTERO 66


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Algoritmo

SI (Selector) IGUAL

Valor 1: Hacer operación 1

Valor 2: Hacer operación 2

Valor N: Hacer operación N

Fin-casos.
Donde:
Diagrama de flujo
Selector es la variable o
expresión, a evaluarse, según la
cual se tomará una de las
VALOR 1 VALOR N múltiples decisiones.
SELECTOR
Acción 1 expresa la operación o
conjunto de operaciones que se
VALOR 2 van a realizar si el selector toma
el valor 1.
OPERACIÓN 1 OPERACIÓN 2 OPERACIÓN N Acción 2 expresa la operación o
conjunto de operaciones que se
van a realizar si el selector toma
el valor 2.
Acción 3 expresa la operación o
conjunto de operaciones que se
van a realizar si el selector toma
el valor 3.

ING.LUDMILA N.BENITEZ MONTERO 67


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ejercicios Condicionales

1) Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre la cantidad que
tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos excedan a
7000, y en ese caso desea saber cuanto dinero tendrá finalmente en su cuenta.
Algoritmo
Inicio
Crear variables p_inte ,cap, inte,capf
Leer p_int, cap
inte = cap * p_int
Si inte > 7000 entonces
capf = cap + inte
fin-si
Imprimir capf
fin
INICIO

inte=Integer; cap=Integer;
p_int=Integer; capfin=Integer;

p__int, cap

inte=cap*p_int

VERDADERA
inte > 700

FALSA capfin=cap+inte

capfin

FIN

ING.LUDMILA N.BENITEZ MONTERO 68


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
2) Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de
tres calificaciones es mayor o igual a 70; reprueba en caso contrario.
Algoritmo
Inicio
Crear variables calif1,calif2,calif3,Prom
Leer calif1, calif2, calif3
Prom = (calif1 + calif2 + calif3)/3
Si Prom >= 70 entonces
Imprimir “alumno aprobado”
si no
Imprimir “alumno reprobado”
Fin-si
Fin

INICIO

calif1=Integer; calif2=Integer;
calif3=Integer; Prom=Integer;

calif1,calif2,calif3

Prom= (calif1+ calif2+calif3)/3

FALSA VERDADERA
Prom >=70

‘Reprobado’ ‘Aprobado’

FIN

ING.LUDMILA N.BENITEZ MONTERO 69


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
3) En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000 ¿Cual
será la cantidad que pagara una persona por su compra?
Algoritmo
Inicio
Crear variables compra, desc, tot_pag
Leer compra
Si compra > 1000 entonces
desc = compra * 0.20
si no
desc = 0
fin-si
tot_pag = compra - desc
imprimir tot_pag
fin.
INICIO

compra=Integer; desc=Integer;
tot_pag=Integer;

compra

VERDADERA
FALSA
compra >1000

desc =0 desc =compra*0.20

tot_pag= compra - desc


calif2+calif3)/3
tot_pag

FIN

ING.LUDMILA N.BENITEZ MONTERO 70


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
4) Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja mas de 40 horas se le paga $16 por cada una de las primeras 40 horas y $20 por cada hora
extra.
Algoritmo
Inicio
Crear variables ht,he,ss
Leer ht
Si ht > 40 entonces
he = ht - 40
ss = he * 20 + 40 * 16
si no
ss = ht * 16
Fin-si
Imprimir ss
Fin
INICIO

ht=Integer; he=Integer;
ss=Integer;

ht

VERDADERA
FALSA
ht >40

ss=ht*16 he=ht-40
ss=he*20+40*16

ss

FIN

ING.LUDMILA N.BENITEZ MONTERO 71


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
5) Que lea dos números y los imprima en forma ascendente
Algoritmo
Inicio
Crear variables num1,num2
Leer num1, num2
Si num1 < num2 entonces
Imprimir num1, num2
si no
Imprimir num2, num1
fin-si
fin

INICIO

num1=Integer; num2=Integer;

num1,num2

FALSA VERDADERA
num1<num2

num2,num1 num1,num2

FIN

ING.LUDMILA N.BENITEZ MONTERO 72


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6) Una persona enferma, que pesa 70 kg, se encuentra en reposo y desea saber cuantas calorías
consume su cuerpo durante todo el tiempo que realice una misma actividad. Las actividades que
tiene permitido realizar son únicamente dormir o estar sentado en reposo. Los datos que tiene son
que estando dormido consume 1.08 calorías por minuto y estando sentado en reposo consume 1.66
calorías por minuto.
Algoritmo
Inicio
Crear variables act,tiemp,cg
Leer act, tiemp
Si act = “dormido” entonces
cg = 1.08 * tiemp
si no
cg = 1.66 * tiemp
fin-si
Imprimir cg
Fin

INICIO

act=char; tiempo=double;
cg=Integer;

act,tiempo

VERDADERA
FALSA
act=’dormido’

cg=1.66*tiempo cg=1.08*tiempo

cg

FIN

ING.LUDMILA N.BENITEZ MONTERO 73


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
7) Hacer un algoritmo que imprima el nombre de un articulo, clave, precio original y su precio con
descuento. El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si la
clave es 02 el descuento en del 20% (solo existen dos claves).
Algoritmo
Inicio
Crear variables nomb,cve,prec_orig,prec_desc
Leer nomb, cve, prec_orig
Si cve = 01 entonces
prec_desc = prec_orig - prec_orig * 0.10

si no
prec_desc = prec_orig - prec_orig * 0.20
fin-si
Imprimir nomb, cve, prec_orig, prec_desc
Fin
INICIO

nomb=char; cve=int;
prec_orig=double;

nomb,cve,prec_orig

VERDADERA
FALSA
cve=01

prec_des=prec_org-prec_orig*0.2 prec_des=prec_orig-prec_orig*0.10

nomb,cve,prec_orig,prec_des

FIN

ING.LUDMILA N.BENITEZ MONTERO 74


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
8) 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%.
Algoritmo
Inicio
Crear variables num_camisas, prec,tot_pag,tot_comp
Leer num_camisas, prec
tot_comp = num_camisas * prec
Si num_camisas > = 3 entonces
tot_pag = tot_comp - tot_comp * 0.20
si no
tot_pag = tot_comp - tot_comp * 0.10
fin-si
Imprimir tot_pag
Fin
INICIO

prec=double; num_camisas=int;
tot_comp=double;tot_pag=double;

num_camisas,prec

tot_comp=num_camisas*prec

FALSA VERDADERA
num_camisas>=3

tot_pag=tot_comp+tot_comp*0.10 tot_pag=tot_comp+tot_comp*0.20

tot_pag

FIN

ING.LUDMILA N.BENITEZ MONTERO 75


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
9) Una empresa quiere hacer una compra de varias piezas de la misma clase a una fabrica de
refacciones. La empresa, dependiendo del monto total de la compra, decidirá que hacer para pagar
al fabricante.
Si el monto total de la compra excede de $500 000 la empresa tendrá la capacidad de
invertir de su propio dinero un 55% del monto de la compra, pedir prestado al banco un 30% y el
resto lo pagara solicitando un crédito al fabricante.
Si el monto total de la compra no excede de $500 000 la empresa tendrá capacidad de
invertir de su propio dinero un 70% y el restante 30% lo pagara solicitando crédito al fabricante.
El fabricante cobra por concepto de intereses un 20% sobre la cantidad que se le pague a crédito.
Algoritmo
Inicio
Crear las variables costopza, numpza, totcomp, cantinv, préstamo, crédito, int
Leer costopza, numpza
totcomp = costopza * numpza
Si totcomp > 500 000 entonces
cantinv = totcomp * 0.55
préstamo = totcomp * 0.30
crédito = totcomp * 0.15
si no
cantinv = totcomp * 0.70
crédito = totcomp * 0.30
préstamo = 0
fin-si
int = crédito * 0.20
Imprimir cantinv, préstamo, crédito,inte
Fin

INICIO

costopza=Integer;;numpza=Integer;
totcomp=Integer; inte=Integer;

costopza,numpza

totcomp= costopza*numpza

FALSA VERDADERA
totcomp>500000

cantinv=totcomp*0.70 cantinv=totcomp*0.55
credito=totcomp*030 prestamo=totcomp*0.30
prestamo=0 credito=totcomp*015

inte=credito*0.20

cantinv,prestamo,credito,inte

FIN

ING.LUDMILA N.BENITEZ MONTERO 76


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
10) Ingresar un número y decir si éste es cero, par o impar.
Algoritmo
Inicio
Crear variable N, B
Leer N
Si N=0 entonces
Imprimir “El numero ingresado es cero”
si no
B=TRUC(N/2)*2
Si N=B entonces
Imprimir “El numero ingresado es par”
si no
Imprimir “El numero ingresado es impar”
Fin-si
INICIO
Fin

N=Integer; B=Integer;

FALSA N=0 VERDADERA

B=TRUC(N/2))* 2 “El número


ingresado es
CERO”

FALSA VERDADERA
N=B

“El número “El número


ingresado es ingresado es
IMPAR” PAR”

FIN

ING.LUDMILA N.BENITEZ MONTERO 77


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.50. La estructura While.
La instrucción while ejecuta un bucle mientras se cumple una condición dada inmediatamente
después del while. Veamos el diagrama de flujo el cual explica mejor el concepto.

Algoritmo

MIENTRAS (CONDICIÓN)

HACER PROCESO

FIN DE CONDICIÓN.

Diagrama de flujo

Condición tiene un valor


inicial verdadero entonces se
CONDICIÓN FALSA ejecuta, existe un enunciado
dentro del ciclo que afecte la
VERDADERA condición evitando que el ciclo
PROCESO
se ejecute indefinidamente.
Proceso expresa la operación o
conjunto de operaciones que se
van a realizar si la condición
resulta verdadera.

ING.LUDMILA N.BENITEZ MONTERO 78


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ejercicios
1) Dado un numero N positivo imprimir la sumatoria.
Algoritmo
INICIO
Inicio
Crear las variables N,SUM,R
Leer valor de N. N=Integer; SUM=Integer;
MIENTRAS (N >0) HACER R= Integer;
R=N %10;
N=INT(N/10);
SUM=SUM+R ; N
Fin-m
Imprimir SUM N >0 FALSA
Fin
VERDADERA

R=N MOD10
N=TRUC(N/10)
SUM=SUM+R

SUM

FIN

2) Obtener el promedio de calificaciones de un grupo de n alumnos.


Algoritmo
INICIO
Inicio
Crear las variables N,NC,nota,promedio,suma
N=Integer; NC=Integer; promedio=double
Leer valor de N. nota= Integer; Suma=Integer;
NC=N
MIENTRAS (N >0) HACER
N
Leer nota
suma=suma+nota
N=N-1 NC=N
Fin-m
FALSA
promedio=suma/NC N >0
Imprimir promedio
Fin VERDADERA

nota

suma=suma+nota
N=N-1

promedio=suma/NC

promedio

FIN

ING.LUDMILA N.BENITEZ MONTERO 79


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
3) Dado un numero N positivo, visualizar un mensaje el numero de veces del numero
introducido.
Algoritmo
Inicio
Crear variables.
Leer N
MIENTRAS (N >0) HACER
Imprimir mensaje;
N=N-1
Fin-m
Fin del programa

INICIO

N=Integer;

FALSA
N >0
VERDADERA

‘PROGRAM ACION’

N=N - 1

FIN

4) Dado un numero N positivo, desplegar el numero de veces que se repite el ultimo digito.
Algoritmo.
Inicio
Crear las variables.
Ingresa valor de N.
U = N MOD 10
MIENTRAS (N >0) HACER
A=N MOD 10;
Si U = =A entonces
C=C+1
N=TRUC(N/10)
fin-si
Imprimir C
Fin

ING.LUDMILA N.BENITEZ MONTERO 80


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
INICIO

N=Integer; A=Integer;
B= Integer; C=Integer;

U=N MOD 10

N >0

VERDADERA
A=N MOD 10

VERDADERA
U==A

FALSA C=C+1

N = TRUC(N/ 10)

FALSA

FIN

5) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la
semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por
comisiones de sus ventas. El gerente de su compañía desea saber cuanto dinero obtendrá en la
semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando
en cuenta su sueldo base y sus comisiones.
Algoritmo
Inicio
Crear las variables sueldo,n,comision,totalsueldo
sueldo=500
Leer valor de n.
MIENTRAS (n >0) HACER
Leer v1
Leer v2
Leer v3
comision=(v1+v2+v3)*0.10
Imprimir comision
totalsueldo=sueldo+comision
Imprimir totalsueldo
n=n-1
Fin-m
Fin

ING.LUDMILA N.BENITEZ MONTERO 81


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
INICIO

sueldo=double;n=Integer; comision=double;
totalsueldo=double;

sueldo=500

VERDADERA
n >0

V1

V2

V3

comision=(v1+v2+v3)*0.10

comision

totalsueldo=sueldo+comercio
n=n-1

totalsueldo

FALSA

FIN

6) En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran
en ella. El salario se obtiene de la siguiente forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja mas de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25 por cada hora
extra.
Algoritmo
Inicio
Crear las variables salario, n, horas, extra
Leer valor de n.
MIENTRAS (n >0) HACER
Leer horas
Si horas <=40 entonces
salario=horas*20;
sino
extra=horas-40;
salario=(40*20)+(extra*25)
fin-si
Imprimir salario
Fin-m
Fin

ING.LUDMILA N.BENITEZ MONTERO 82


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN

INICIO

salario=double;n=Integer;
horas=double; extra=double;

VERDADERA FALSA
n >0

horas

VERDADERA
horas<=40

FALSA
salario=horas*20

extra=horas-40
salario=(horas*20)+(extra*25)
n=n-1

salario

FIN

ING.LUDMILA N.BENITEZ MONTERO 83


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.51. Ciclos con un Número Determinado de Iteraciones (Hacer-Para)
Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de
esta estructura es la siguiente:
Algoritmo
Hacer para (Indicación de variable; Condición; Incremento)
Hacer operación(es)
Fin-para.

Diagrama de flujo

Condición la evaluación de
esta condición permite definir
FOR cuando termina la ejecución
del ciclo.
Proceso expresa la operación o
PROCESO conjunto de operaciones que se
van a realizar si la condición
resulta verdadera.

ING.LUDMILA N.BENITEZ MONTERO 84


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ejercicios
1) Introducir un número entero positivo, imprimir un mensaje el numero de veces de
introducido el numero.
Algoritmo
Inicio
Crear las variables, N, I
Leer N
for(I=1;I<=N;I+1)
Imprimir ‘bucle’, I INICIO
Fin
N=Integer; I=Integer;

I=1; I<=N; I+1

‘bucle’, I

FIN

2) Dado un número positivo, imprimir los números pares.


Algoritmo
Inicio
Crear las variables N, I, V
Leer de N
for(I=1;I<=N;I+1)
INICIO
V=V+2
Imprimir V
Fin N=Integer; I=Integer;
V=Integer

I=1; I<=N; I+1

V=V+2

FIN

ING.LUDMILA N.BENITEZ MONTERO 85


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
3) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño
Estructurado de Algoritmos.
Algoritmo
Inicio
Crear variables Sum, Nom,calif,prom
INICIO
Leer Nom
Hacer para c = 1 a 7
Leer calif Sum=Integer; Nom=String; Calif=Integer;
Prom=Integer; I= Integer;
Sum = Sum + calif
Fin-para
prom = Sum /7 Nom
Imprimir prom
Fin. I=1; I<=7; I+1

Calif

Sum=Sum + Calif

prom=Sum / 7

prom

FIN

4) Leer 10 números y obtener su cubo y su cuarta.


Algoritmo
Inicio
Crear variables I, num
Hacer para I = 1 a 10
Leer num INICIO
cubo = num * num * num
cuarta = cubo * num
num=Integer; cubo=Integer;
Imprimir cubo, cuarta cuarta=Integer; I= Integer;
Fin-para
Fin.
I=1; I<=10; I+1

num

cubo=num*num*num
cuarta=cubo*num

cubo, cuarta

FIN

ING.LUDMILA N.BENITEZ MONTERO 86


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
5) Leer 10 números e imprimir solamente los números positivos
Algoritmo
Crear variables I, num
Inicio
Hacer para I = 1 a 10
Leer num
Si num > 0 entonces
Imprimir num
fin-si
Fin-para
Fin.

INICIO

num=Integer; I= Integer;

I=1; I<=10; I+1

num

num > 0
num

FIN

ING.LUDMILA N.BENITEZ MONTERO 87


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros.
Inicio
Crear las variables cn, cp, cneg, I, num
Hacer para I = 1 a 20
Leer num
Sin num = 0 entonces
cn = cn + 1
si no
Si num > 0 entonces INICIO
cp = cp + 1
si no
cneg = cneg + 1 num=0; cp=0; I=0; cn=0;
Fin-si cneg=0;

Fin-si
Fin-para I=1; I<=20; I+1
Imprimir cn, cp, cneg
Fin.
num

num=0

cn= cn+1
num >0

cneg=cneg+1 cp=cp+1

cn,cp,cneg

FIN

ING.LUDMILA N.BENITEZ MONTERO 88


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
7) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.
Algoritmo
Inicio INICIO
Crear las variables I, num, pos
Hacer para I = 1 a 15
num=Integer; pos=Integer; I=Integer;
Leer num
pos = num * -1
Imprimir num, pos I=1; I<=15; I+1
Fin-para
Fin.
num

pos=num*1

num, pos

FIN

8) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un


algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo.

Algoritmo INICIO
Inicio
Crear las variables I, calif, media,sum, baja = 9999 I, calif ,media,sum=Integer; baja=Integer;
Hacer para I = 1 a 40
Leer calif I=1; I<=40; I+1
sum = sum + calif
Si calif < baja entonces calif
baja = calif
sum=sum+calif
fin-si
Fin-para
media = sum / 2
calif<baja
Imprimir media, baja
Fin baja=calif

media=suma/2

media,baja

FIN

ING.LUDMILA N.BENITEZ MONTERO 89


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
9) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el
multiplicando, el multiplicador y el producto.
Algoritmo
Inicio
Crear variables num, resul, I
Leer num
Hacer para I = 1 a 10
resul = num * I
Imprimir num, “ * “, I, “ = “, resul
Fin-para
fin.
INICIO

num=Integer; resul=Integer;
I= Integer;

num

I=1; I<=10; I+1

resul=num*I

num,’*’,I,’=’,resul

FIN

10) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de


un día desde las 0:00:00 horas hasta las 23:59:59 horas
Algoritmo
Inicio
Crear variables h,m,s
Hacer para h = 1 a 23 INICIO
Hacer para m = 1 a 59
Hacer para s = 1 a 59 h=Integer; m=Integer; s=Integer;
Imprimir h, m, s
Fin-para h=1; I<=23; I+1
Fin-para
Fin-para m=1; I<=59; I+1
fin.
s=1; I<=59; I+1

h, m,s

FIN

ING.LUDMILA N.BENITEZ MONTERO 90


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Capítulo VII.

Programación en Java

Java es un lenguaje de programación muy potente por los beneficios que proporciona,
donde podemos crear todo tipo de aplicaciones, cualquier programa escrito en Java es
orientado a objetos. En este capitulo del texto, se exponen fundamentos de la programación
en Java.

Java realiza una programación dirigida a Objetos, donde es preciso crear y manipular objetos,
adoptando una forma de pensar orientado a objetos.
La programación dirigida a objetos tiene como principal característica la abstracción Ej.: No
pensamos en el computador como miles de piezas que se conectan, la fuente, el disco duro, los
circuitos, como creamos un fichero, como el sistema operativo accede a la memoria; todo lo
contrario lo pensamos en la computadora como un objeto de ayuda que utilizamos para diferentes
actividades como escribir un texto, escuchar música, imprimir, programar, etc.
Todo esto de la abstracción se puede aplicar en la construcción de programas y establecer una
relación jerárquica entre un conjunto de objetos que realizan una determinada tarea a petición de
otros objetos mediante mensajes.
7.1. Conceptos básicos.
7.2. Clases, Objetos y métodos.
Entenderemos a un objeto como una entidad programa que contiene datos y todos aquellos
procedimientos que manipulan esos datos. Antes de crear un objeto debemos definir su estructura y
funcionalidad que es en sí la clase del objeto, es decir todo objeto pertenece a una clase y las clases
constituyen la base de la programación dirigida a objetos, ya que ellas son las plantillas para la
creación de objetos.
La relación entre clase y objeto es equivalente por Ej.: el concepto de una persona engloba un
conjunto de propiedades comunes a los seres humanos: mamífero, inteligente, altura, peso, nombre
y que posee una serie de funciones nacer, morir, comer, respirar, pensar, etc. A partir de esta clase
persona podemos obtener individuos concretos (personas), conocidos como objetos o instancias de
la clase persona. Cada objeto tendrá unos valores concretos para las propiedades anteriores nombre:
Luisa altura: 1,65 m Peso: 66Kg.

ING.LUDMILA N.BENITEZ MONTERO 91


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
La realidad según los métodos orientados a objetos
Se trata de captar la realidad tal cual es

Labrador.perro Nombre Objeto


¡Soy
¿Variables? orientado a ¿Métodos?
(Atributos) objetos! (Funciones)
edad ladrar
raza comer clase perro Nombre de la clase
color dormir ladrar, comer, dormir Métodos (funciones)
edad, raza, color Atributos (datos)

¡Objetos! = características + comportamiento

Se denominan miembros de la clase las variables y funciones; las variables se conocen como
atributos o variables de la clase, que determinan el estado interno del objeto y las funciones se
llaman métodos de la clase, cada vez que se crea un objeto contendrá las variables y los métodos de
la clase.
Toda clase al menos debe tener un método, que puede ser definido como público ó privado; estos
últimos solo pueden ser utilizados por la propia clase, cualquier otro código que no es miembro de
la clase no puede acceder a un método o variable privada y al conjunto de métodos públicos este
permite la comunicación entre objetos.
7.3. Herencia. La herencia es la propiedad por la cual unos objetos se pueden construir a partir de
otros. Si una clase sólo recibe propiedades de otra clase lo llamamos herencia simple; si una clase
recibe propiedades de más de una clase entonces hablamos de herencia múltiple.
7.4. Polimorfismo. Es la característica por la cual una operación puede ser interpretada de formas
diferentes por diferentes objetos.
Ahora empecemos por crear, compilar y ejecutar programas para ambientarnos en la programación
con el lenguaje Java.
7.5. Primer programa en Java.
Los programas Java normalmente pasan por cinco fases antes de ejecutarse. Estas son: editar,
compilar, cargar, verificar y ejecutar.

ING.LUDMILA N.BENITEZ MONTERO 92


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
La fase 1: consiste en editar un archivo, esto se hace con un programa editor como lo es el bloc de
notas, ahí tecleamos el código, a continuación lo guardaremos, los nombres de archivo de los
programas en Java terminan siempre con la extensión .java
Hola.java
/* Primer programa de prueba.
El archivo que contiene el código se llama Hola.java */
class Hola{
public static void main(String[]Args){ // llama al método main
System.out.println("Hola ...soy Java");
}
}
Como podemos ver en el programa, el nombre de la clase definida también se llama Hola. En Java,
todo código tiene que estar dentro de una clase y, por convenio, el nombre de la clase tiene que
coincidir con el nombre del fichero que contiene el código el programa. Debido a que Java
diferencia las mayúsculas de las minúsculas hay que asegurarse que el fichero y la clase tengan el
mismo nombre y que coincidan las mayúsculas. Este convenio, aunque pueda parecer arbitrario,
facilita el mantenimiento y la organización de los programas.
La fase 2: el programador emite el comando javac para compilar el programa, donde el compilador
Java traduce el programa Java a códigos bytes que serán interpretados durante la fase de ejecución.
Si desea compilar un programa llamado Hola.java teclee:
javac Hola.java
Si se compila correctamente, se produce un archivo llamado Hola.class que será interpretado en la
fase de ejecución.
La fase 3: se llama carga donde es necesario colocarlo en la memoria, esto lo hace un cargador de
clases que toma el archivo .class y lo transfiere a la memoria. El cargador de clases comienza a
cargar archivos .class con el comando:
java Hola
Invoca al interprete java para el programa Hola y hace que el cargador de clases cargue la
información empleada en el programa Hola y antes que el interprete pueda ejecutar los códigos de
bytes, estos son verificados por el verificador de códigos de bytes en la fase4, esto asegura que los
códigos son válidos y que no violan las restricciones de seguridad de Java. En la fase 5 se interpreta
el programa un código de byte a la vez. En caso de que se imprimiera un mensaje de error. El
programador regresaría a la fase de edición, hace las correcciones y pasaría otra vez por las demás
fases para que funcione el programa.

ING.LUDMILA N.BENITEZ MONTERO 93


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
7.6. Análisis del primer programa de ejemplo.
A continuación examinaremos con detalle cada parte del programa. El programa comienza con las
siguientes líneas:
/* Primer programa de prueba.
El archivo que contiene el código se llama Hola.java */
Java permite introducir comentarios en el programa, el contenido del comentario quiere decir que es
ignorado por el compilador y que me permite tener varias líneas de longitud. El segundo tipo es
para una sola línea.
// llama al método main
La siguiente línea de código
class Hola{
Esta línea utiliza la palabra reservada class que se escribe para darle un nombre a la clase. Hola es
un identificador que da nombre a la clase. La definición de la clase completa, estarán encerrada
entre una llave de apertura { y la correspondiente llave de cierre }.
La siguiente línea de código
public static void main(String[]Args){
Esta línea el programa empezara a ejecutar el método main, en particular es el que lanza todo el
programa al interprete, por eso tuvimos que definirlo y es publico para que esa clase miembro sea
utilizada por el código que este fuera de la clase en la que esta declarada. Todas las aplicaciones
java comienzan su ejecución llamando el método main() y se lo declara de tipo void, para indicar
que no es una función sino un procedimiento y se lo define como estático porque es invocado
directamente, no desde un objeto. Este calificador indica que será ejecutado sin necesidad de crear
ningún objeto, es un método de clase, el método main recibe un arreglo de strings args como unico
argumento.
Cualquier información que necesitemos pasar a un método es recibida por variables especificadas
dentro del conjunto de paréntesis que siguen al nombre del método. Estas variables se llaman
parámetros. Aunque un método no necesite parámetros, es necesario poner los paréntesis vacíos. El
parámetro String args[] es una matriz de instancias de las clase String (cadena). Las matrices son
conjuntos de objetos similares. En este caso, args recibe los argumentos presentes en la línea de
órdenes cuando se ejecute el programa aunque aquí no se hace uso de información.
El ultimo carácter de esta línea es la llave de apertura { que indica el comienzo del cuerpo del
metodo main(). Todo el código de un método estará entre la llave de apertura { y la correspondiente
llave de cierre }.

ING.LUDMILA N.BENITEZ MONTERO 94


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
El metodo main() es el lugar de inicio para que el intérprete comience. Un programa complejo
tendrá decenas de clases y solo una de ellas necesitará tener este método para que comience el
programa (excepto si creamos applets)
La siguiente línea de código ocurre dentro del metodo main( )
System.out.println("Hola ...soy Java");
Esta línea visualiza por pantalla la cadena “Hola…soy Java” seguida por un carácter de nueva línea.
La salida la realiza el método println() que imprime la cadena que se le pasa a como parámetro. La
línea comienza con System.out donde System es una clase predefinida que permite el acceso al
sistema y out es el flujo de salida que esta conectado a la consola.
La sentencia println() termina con un punto y coma(;). Todas las sentencias en Java terminan en
punto y coma. La primera llave de cierre } termina el metodo main( ) y la última llave de cierre }
termina la definición de la clase Hola.
7.7. Salida por pantalla.
La instrucción println es el principal mecanismo de salida de Java, se coloca una cadena de salida
estándar System.out aplicando el metodo println, se usa la misma sintaxis para producir la salida de
cualquier entidad ya sea un entero, un número en coma flotante, una cadena o un valor de cualquier
otro tipo.
7.8. Compilación y ejecución de programas.
Para compilar el programa Hola ejecutamos el compilador javac
C:\> javac Hola.java
El compilador crea el fichero llamado hola.class que contiene el codigo binario conocido como
bytecode, compilado del programa. El código binario es la representación intermedia del programa,
que contiene las intrucciones que el interprete de Java ejecutara. La salida de javac no es código que
pueda ser ejecutado directamente.
Para ejecutar el programa, necesitamos usar el interprete de Java, llamado java. Eso se consigue
pasándole el nombre de la clase Hola como argumento en la línea de órdenes.
C:\> java Hola
Cuando se ejecuta el programa, se obtiene el siguiente resultado.
C:\> Hola … soy Java
Cuando se compila código fuente de Java, cada clase individualmente es colocada en un archivo
que tiene el mismo nombre de la clase y la extensión .class. Si los ficheros fuentes tiene el mismo
nombre que la clase que contienen coincidirán con el nombre de los ficheros.class. Al ejecutar el
interprete de Java, realmente se especifica el nombre de la clase que se quiere ejecutar.

ING.LUDMILA N.BENITEZ MONTERO 95


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
7.9. Un segundo programa en Java.
En el siguiente programa mostraremos como se declara una variable, como se le asigna un valor y
muestra un mensaje por pantalla. Una variable es una zona de memoria que el programa puede
asignar un valor.
/* Este es otro ejemplo breve.
El archivo debe llamarse Espcien.java*/
class Espcien {
public static void main(String[]Args){
int N=100; // declara una variable llamada N y se asigna el valor de 100
System.out.println("El valor de N es:"+N);
N=N*2;
System.out.println("El valor de N *2 es:"+N);
}
}
La primera línea del programa es:
int N=100; // declara una variable llama N
Esta línea declara una variable entera llamada N, a continuación presentamos la forma básica de una
declaración de variable: tipo identificador;
El tipo indica el tipo de variable que está siendo declarada y el identificador es el nombre de la
variable. Si se quiere declarar más de una variable del mismo tipo, se puede utilizar una lista de
nombres de variables separados por la (,) como se muestra en el siguiente ejemplo: int ancho,
alto, n;
Java define algunos tipos de datos, entre los que están son los enteros, caracteres y coma flotante.
La palabra int indica que se trata de un tipo entero N y el operador de asignación es un signo igual
sencillo (=) que asigna a la variable N el valor de 100.
System.out.println("El valor de N es:"+N);
En esta sentencia, el signo más (+) hace que el valor de N sea añadido a la cadena que le precede y
la cadena resultante se visualice. Utilizando el operador ‘+’, podemos encadenar tantos elementos
como queramos dentro de una sentencia println( ).
La siguiente línea de código asigna a N el doble de su valor. Se utiliza el operador ‘*’ para indicar
la multiplicación. Cuando esta línea se ejecute, N tendrá el valor de 20.
N=N*2;
Aquí mostramos las dos líneas siguientes:
System.out.print("El valor de N *2 es:");
System.out.println(N);
El método print( ) es utilizado para visualizar la cadena “El valor de N *2 es”. La cadena no esta
seguida por una línea nueva. Esto significa que cuando se genere la siguiente salida aparecerá en la

ING.LUDMILA N.BENITEZ MONTERO 96


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
misma línea. El método print( ) es igual que println ( ), excepto que no pone el carácter de línea
nueva después de cada llamada. En la llamada a println( ) solo aparece la variable N, ambos
métodos pueden ser utilizados para visualizar valores de cualquiera de los tipos Java.
7.10. Entrada y salida por Terminal. La E/S por Terminal con formato se lleva a cabo mediante
readline y println. La entrada estándar es System.in y la salida estándar es System.out.
7.11. Identificadores.
Un identificador es un nombre que identifica a una variable, como nombre de la clase, método o
función. Todos los lenguajes tienen ciertas reglas para componer los identificadores:
 Todos los identificadores han de comenzar con una letra en mayúsculas o minúsculas, el
carácter subrayado ( _ ) o el carácter dólar ( $ ).
 Puede incluir, pero no comenzar por un número.
 No puede incluir el carácter espacio en blanco
 Distingue entre letras mayúsculas y minúsculas
 No se pueden utilizar las palabras reservadas como identificadores
Es importante el encontrar un nombre que sea significativo, de modo que el programa sea lo más
legible posible. El tiempo que se pretende ahorrar eligiendo nombres cortos y poco significativos se
pierde con creces cuando se revisa el programa después de cierto tiempo.
Como ejemplos de identificadores válidos se citan los siguientes:
Temperatura N $prueba mi_variable
Entre los nombres de variables no válidos:
2temperatura temperatura-alta Mi/variable
Por convenio, se ha aceptado que los identificadores de clases empiecen en mayúscula y en
minúscula los métodos. Las variables que no pueden modificar su valor(constantes) suelen
escribirse completamente en mayúscula.
7.12. Variables y valores. Un programa maneja valores, estos valores el programa los guarda en
variables. Una variable guarda un único valor.
 La variable debe tener un nombre que permite referirse a la misma.
 La variable tiene un tipo que permite conocer que dato se guarda en dicha variable.
 Un rango de valores
Ej. Indica que una variable tienen un nombre y pertenece a un tipo.
int suma;
Se declara una variable con el nombre suma, donde el tipo de valores que se pueden guardar son
números enteros. Una vez que se declare la variable ya se puede utilizar en el programa poniendo su

ING.LUDMILA N.BENITEZ MONTERO 97


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
nombre. Siempre que utilices el nombre de una variable es como si pusieses el valor de dicha
variable.
El operador de asignación es el carácter igual se lo utiliza para asignar un valor a la variable Ej.
suma=1;
donde se indica el nombre de la variable, el carácter igual(=), y cualquier expresión o cálculo que se
desee cuyo resultado se vaya a guardar en la variable, es importante recordar que el tipo de valor
que este a la derecha debe coincidir con el tipo que puede guardar la variable.
La variable suma guardara el valor 2 si a continuación se ejecuta la instrucción.
suma=2;
Una variable sólo puede guardar un valor, por lo que una vez que se ha guardado el valor 2 ya se ha
perdido el anterior.
Si a continuación el programa ejecuta:
suma=2+3+4;
el valor de suma a partir de este momento seria 9, cualquier valor anterior ya no existiría. Los
cálculos a la derecha del igual se denomina expresión.
Declaremos otra variable:
final int CONSTANTE=3;
La primera variable se llama con y es del tipo entero a la vez que se declara se le asigna un valor
inicial, tambien tiene una palabra reservada adelante que final al ponerla adelante indica que esa
variable ya no puede cambiar su valor, es decir no se puede asignar un valor, convirtiéndose esta en
una constante, y se debe colocar en mayúscula. Toma en cuenta que cuando declares variables
utilices nombres significativos con los que sea fácil saber para qué sirven cuando alguien lea el
programa.
7.13. Tipos primitivos. Java dispone de ocho tipos primitivos de variables: un tipo para almacenar
valores true y false (boolean); un tipo para almacenar caracteres (char), y 6 tipos para guardar
valores numéricos, cuatro tipos para enteros (byte, short, int y long) y dos para valores reales de
punto flotante (float y double).
Tipo de variable Descripción
Boolean. 1 byte .Valores true y false
Char Char 2 bytes. Unicode. Comprende el código ASCII
Byte 1 byte. Valor entero entre -128 y 127
Short 2 bytes. Valor entero entre 32768 y 32767
Int 4 4 bytes. Valor entero entre -2.147.483.648 y 2.147.483.647
Long 8 bytes. Valor entre -9.223.372.036.854.775.808 y
9.223.372.036.854.775.807
Float 4 bytes (entre 6 y 7 cifras decimales equivalentes). De -3.402823E38 a -
1.401298E-45 y de 1.401298E-45 a 3.402823E38

ING.LUDMILA N.BENITEZ MONTERO 98


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Double 8 bytes (unas 15 cifras decimales equivalentes). De -1.79769313486232E308
a
-4.94065645841247E-324 y de 4.94065645841247E-324 a
1.79769313486232E308
7.14. Operadores en Java.
7.15. Operadores aritméticos
Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas
habituales: suma (+), resta (-), multiplicación (*), división (/) y resto de la división (%).
Recuerda que las operaciones entre enteros siempre devuelven un número entero, por lo que el
resultado 5/2 es 2, el resultado 5/10 es cero, el resultado 3%2 es 1.
7.16. Operadores de asignación.
Los operadores de asignación permiten asignar
Operador Utilización Expresión
un valor a una variable. El operador de
equivalente
asignación es el operador igual (=). La forma += op1 += op2 op1 = op1 + op2
general de las sentencias de asignación con este -= op1 -= op2 op1 = op1 - op2

operador es: variable = expresión; *= op1 *= op2 op1 = op1 * op2

Java dispone de otros operadores de asignación. /= op1 /= op2 op1 = op1 / op2

Se trata de versiones abreviadas del operador (=) %= op1 %= op2 op1 = op1 % op2

que realizan operaciones “acumulativas” sobre


una variable. Tabla: Operadores de asignación
7.17. Operador condicional:
Este operador, tomado de C/C++, permite realizar bifurcaciones condicionales sencillas. Su forma
general es la siguiente: booleanExpression ? res1 : res2 donde se evalúa booleanExpression y se
devuelve res1 si el resultado es true y res2 si el resultado es false. Es el único operador ternario
(tres argumentos) de Java. Como todo operador que devuelve un valor puede ser utilizado en una
expresión. Por ejemplo las sentencias: x=1 ; y=10; z = (x<y)?x+3:y+8; asignarían a z el valor 4, es
decir x+3.
7.18. Operadores incrementales
Se dispone del operador incremento (++) y decremento (--). El operador (++) incrementa en una
unidad la variable a la que se aplica, mientras que (--) la reduce en una unidad. Estos operadores se
pueden utilizar de dos formas:
1. Precediendo a la variable (por ejemplo: ++i). En este caso primero se incrementa la variable y
luego se utiliza (ya incrementada) en la expresión en la que aparece.
2. Siguiendo a la variable (por ejemplo: i++). En este caso primero se utiliza la variable en la
expresión (con el valor anterior) y luego se incrementa.

ING.LUDMILA N.BENITEZ MONTERO 99


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
7.19. Operadores lógicos
Los operadores lógicos se utilizan para construir expresiones lógicas, combinando valores lógicos
(true y/o false) o los resultados de los operadores relacionales. Debe notarse que en ciertos casos el
segundo operando no se evalúa porque ya no es necesario (si ambos tienen que ser true y el primero
es false, ya se sabe que la condición de que ambos sean true no se va a cumplir). Esto puede traer
resultados no deseados y por eso se han añadido los operadores (&) y (|) que garantizan que los dos
operandos se evalúan siempre.
Operador Nombre Utilización Resultado

&& AND op1 && op2 true si op1 y op2 son true. Si op1 es false ya
no se evalúa op2
|| OR op1 || op2 true si op1 u op2 son true. Si op1 es true ya
no se evalúa op2
! negación ! op true si op es false y false si op es true
& AND op1 & op2 true si op1 y op2 son true. Siempre se evalúa
op2
| OR op1 | op2 true si op1 u op2 son true. Siempre se evalúa
op2

Tabla: Operadores lógicos de Java.


6.20. Operador de concatenación de cadenas de caracteres.
El operador más (+) se utiliza también para concatenar cadenas de caracteres. Por ejemplo, para
escribir una cantidad con un rótulo y unas unidades puede utilizarse la sentencia:
System.out.println("El total asciende a " + result + " unidades");
donde el operador de concatenación se utiliza dos veces para construir la cadena de caracteres que
se desea imprimir por medio del método println(). La variable numérica result es convertida
automáticamente por Java en cadena de caracteres para poderla concatenar. En otras ocasiones se
deberá llamar explícitamente a un método para que realice esta conversión.
6.21. Estructuras de programación.
Las estructuras de programación o estructuras de control permiten tomar decisiones y realizar un
proceso repetidas veces. Son los denominados bifurcaciones y bucles. En la mayoría de los
lenguajes de programación, este tipo de estructuras son comunes en cuanto a concepto, aunque su
sintaxis varía de un lenguaje a otro.

ING.LUDMILA N.BENITEZ MONTERO 100


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.22. Sentencias o expresiones.
Una expresión es un conjunto variables unidos por operadores. Son órdenes que se le dan al
computador para que realice una tarea determinada.
Una sentencia es una expresión que acaba en punto y coma (;). Se permite incluir varias sentencias
en una línea, aunque lo habitual es utilizar una línea para cada sentencia. Por ejemplo:
i = 0; j = 5; x = i + j;// Línea compuesta de tres sentencias.
6.23. Estructuras de Control - “if-else”.
El flujo de instrucciones depende de una condición o valor booleano.
if (cond)
sentencias1;
else
sentencias2;
6.24. Estructuras de Control - Bucles - “while”.
Se ejecuta una serie de sentencias mientras se cumpla una condición.
while (condición) {
Sentencias; };
6.25. Estructuras de Control - Bucles - “for”.
Incluye inicialización de variables, verificación de condición de permanencia en el bucle y
actualización de variables.
for (inicialización; condición; actualización) {
sentencias;
};
6.26. Bloques de código.
Un bloque de código está limitado por las llaves de apertura { y cierre }. Una vez que un bloque de
código ha sido creado, se convierte en una unidad lógica. Ej. Bloques de código tenemos la
definición de una clase, la definición de una función miembro, una sentencia iterativa for, etc.
Ej. if (x<y){ //inicio del bloque
x=y;
y=0;
}// fin del bloque
Si ‘x’ es menor que ‘y’, se ejecutarán las dos sentencias del bloque que forman una unidad lógica y
una sentencia no puede ejecutarse sin que la otra también se ejecute. Cuando se necesite unir
lógicamente dos o más sentencias, se creara un bloque de código.

ING.LUDMILA N.BENITEZ MONTERO 101


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.27.Comentarios.
Un comentario es un texto adicional que se añade al código para explicar su funcionalidad.
Comentarios de múltiples líneas: comienza con /* y termina con */. Cualquier cosa comprendida
entre estos dos símbolos es ignorada por el compilador, este puede contener varias líneas de
longitud.
Comentario de una línea: comienza // y termina al final de la línea. Se suele utilizar para realizar
breves descripciones.
Comentario de documentación: comienza con /** y termina con */. Se utiliza para generar un
archivo HTML que documente el programa.
/*--------------------------------|
| (C) Ludmila N.Benitez Montero |
| Programa: programa1.java |
|---------------------------------*/
6.28. Identificadores.
Los identificadores nombran variables, funciones, clases y objetos..Comienzan con una letra, ‘_’ o
‘$’. Se distinguen las mayúsculas de las minúsculas y no hay longitud máxima. Ej. :
– nombre_usuario
– Nombre_Usuario
– _variable_del_sistema
6.29. Declaración e Instanciación de Objetos
Hay tres formas:
1. Forma Universal:
clase objeto=new Clase();
Integer var=new Integer(); // declaración e instancia junta.
2. Forma Orientada a Objetos::
Integer in;
in=new Integer(58); // Se separa la declaración y la instancia.
3. Forma Desechable: no lleva referencia del nombre, es como un efecto solamente.
new miObjeto(),
new String();
6.30. Diseñar Clases, Métodos y Variables.
Existen 3 formas de diseñar un programa dependiendo de la complejidad del programa.
Modo Main, modo Objeto y Constructor y modo Objeto y Método.
6.31. Modo Main.
class Mayor
{ public statis void main (String arg[])
{
int a=12,b=13, c=5, d=4, m, n, o;

ING.LUDMILA N.BENITEZ MONTERO 102


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
System.out.println(“prueba ”+a);
m=Math.max(a,b);
n=Math.max(c,d);
o=Math.max(m,n);
System.out.println(“mayor “+o);
System.out.println(Math.max( Math.max(a,b) , Math.max(c,d) );
} }
6.32. Constructor. Es un método del mismo nombre de la clase y se utiliza normalmente para
inicializar a las variables.
Modo Objeto y Constructor:
class Mayor
{ int a,b,c,d;
Mayor(int x, int y,int z, int d)
{ a=x; b=y; c=z; this.d=d; }
public static void main (String arg[])
{ Mayor m=new Mayor(12,13,4,5);
System.out.printl(Math.max(Math.max(a,b),Math.max(c,d)));
}
}
Public: se define como la única clase de ese tipo, y si se define “public” deberá ser igual que el
nombre del archivo, si no marcará error.
6.33. Modo Objeto y Método.
public class Mayor
{ calcula (int a, int b, int c, int d)
{ int r=(Math.max(Math.max(a,b),Math.max(c,d)));
return r;
}
public static void main (String arg[])
{ int a=12, b=14, c=15, d=8;
Mayor ma;
ma=new Mayor();
System.out.println(“El mayor es: “+ma.calcula(a,b,c,d));
}
}
6.33.Packages e Imports.
Packages: es un grupo de clases compiladas que se utilizan posteriormente con un import.
Para crear el propio Package se pondrá al inicio del programa Pakage(nombre).

ING.LUDMILA N.BENITEZ MONTERO 103


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Los packages mas comunes son:
import java.AWT; //ventanas
import java.io; //archivos
import java.util; //utilerías
import java.Applet; //aplicaciones de Internet
import java.Graphics; //gráficos
import java.NET; //usa protocolos de red TCP/IP
6.34. Arrays.
Los arrays o arreglos permiten agrupar datos usando u mismo idetificador. Los elementos de un
array se pueden acceder a cada elemento usando subíndices.Los valores para el número de
elementos deben ser constantes, y se pueden usar tantas dimensiones como queramos, limitado solo
por la memoria disponible, al momento de codificar el algoritmo.
Cuando se utiliza una dimensión se dice vectores, cuando se usan dos o mas, de tablas o matrices.
Los arrays de Java (vectores, matrices, hiper-matrices de más de dos dimensiones) se tratan como
objetos de una clase predefinida. Algunas de sus características más importantes de los arrays:
1. Los arrays se crean con el operador new seguido del tipo y número de elementos.
2. Se puede acceder al número de elementos de un array con la variable miembro implícita length
(por ejemplo, vect.length).
3. Se accede a los elementos de un array con los corchetes [] y un índice que varía de 0 a length-1.
4. Se pueden crear arrays de objetos de cualquier tipo. En principio un array de objetos es un array
de referencias que hay que completar llamando al operador new.
5. Los elementos de un array se inicializan al valor por defecto del tipo correspondiente (cero para
valores numéricos, el carácter nulo para char, false para boolean, null para Strings y para
referencias).
6. Como todos los objetos, los arrays se pasan como argumentos a los métodos por referencia.
7. Se pueden crear arrays anónimos (por ejemplo, crear un nuevo array como argumento actual en
la llamada a un método).
6.35. Inicialización de arrays.
1. Los arrays se pueden inicializar con valores entre llaves {...} separados por comas.
2. También los arrays de objetos se pueden inicializar con varias llamadas a new dentro de unas
llaves {...}.
4. Creación de una referencia a un array.
double[] x; // preferible
double x[];
5. Creación del array con el operador new:

ING.LUDMILA N.BENITEZ MONTERO 104


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
x = new double[100];
6. Las dos etapas 4 y 5 se pueden unir en una sola:
double[] x = new double[100];
6.36. Vectores.
Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el nombre de
longitud o tamaño del vector.

Vec[1] 2
Vec[2] 4
Vec[3]
Vec[4]
6
1
0

Para manejar colecciones de objetos del mismo tipo estructurados en una sola variable se utilizan
los vectores. En Java, los vectores son en realidad objetos y por lo tanto se puede llamar a sus
métodos. Existen dos formas equivalentes de declarar vectores en Java:
1) tipo nombre[ ];
2) tipo [ ] nombre;
Ejemplo:
int vector1[], vector2[];
int[] otroVector;
Los vectores, al igual que las demás variables pueden ser inicializados en el momento de su
declaración. En este caso, no es necesario especificar el número de elementos máximo reservado .Se
reserva el espacio justo para almacenar los elementos añadidos en la declaración.
Ejemplo:
String Días[]={”Lunes”,”Martes”,”Miércoles”,”Jueves”,”Viernes”,”Sábado”,”Domingo”};
Una simple declaración de un vector no reserva espacio en memoria, a excepción del caso anterior,
en el que sus elementos obtienen la memoria necesaria para ser almacenados. Para reservar la
memoria hay que llamar explícitamente a un constructor new de la siguiente forma:
También se puede indicar el número de elementos durante su declaración:
Ejemplo:
int vector[] = new int[5];
Para hacer referencia a los elementos particulares del vector, se utiliza el identificador del vector
junto con el índice del elemento entre corchetes. El índice del primer elemento es el cero ( 0 ) y el
del último, el número de elementos menos uno.
Ejemplo:

ING.LUDMILA N.BENITEZ MONTERO 105


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
j = vector[0];
A continuación se presentan algunos ejemplos de creación de arrays:
// crear un array de 10 enteros, que por defecto se inicializan a cero
int v[] = new int[10];
// crear arrays inicializando con determinados valores
int v[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
String dias[] = {"lunes", "martes", "miercoles", "jueves","viernes", "sabado", "domingo"};
// array de 5 objetos
MiClase listaObj[] = new MiClase[5]; // de momento hay 5 referencias a null
for( i = 0 ; i < 5;i++)
listaObj[i] = new MiClase(...);
// array anónimo
obj.metodo(new String[]={"uno", "dos", "tres"});
Para obtener el número de elementos de un vector en tiempo de ejecución se accede al atributo de la
clase vector length. No olvidemos que los vectores en Java son tratados como un objeto.
class Array1 {
public static void main (String argumentos[]) {
String colores[] = {"Rojo","Verde","Azul","Amarillo","Negro"};
int i;
for (i=0;i<colores.length;i++)
System.out.println(colores[i]);
}
}
El ejemplo anterior produce la siguiente salida por pantalla:
Rojo
Verde
Azul
Amarillo
Negro

ING.LUDMILA N.BENITEZ MONTERO 106


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
6.37. Matrices.
Mat [M,N]
Fila o
1,1 1,2 1,3 1,4
Renglon
2,1 2,2 2,3 2.4
[M]
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Columna
[N]

Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el numero de filas


o reglones y “N” el numero de columnas. En Java una matriz es un vector de vectores fila, o más en
concreto un vector de referencias a los vectores fila. Con este esquema, cada fila podría tener un
número de elementos diferente. Una matriz se puede crear directamente en la forma:
int [][] mat = new int[3][4]; o bien se puede crear de modo dinámico dando los siguientes pasos:
1. Crear la referencia indicando con un doble corchete que es una referencia a matriz,
int[][] mat;
2. Crear el vector de referencias a las filas,
mat = new int[nfilas][];
3. Reservar memoria para los vectores correspondientes a las filas,
for (int i=0; i<nfilas; i++);
mat[i] = new int[ncols];
A continuación se presentan algunos ejemplos de creación de arrays bidimensionales:
// crear una matriz 3x3
// se inicializan a cero
double mat[][] = new double[3][3];
int [][] b = {{1, 2, 3},
{4, 5, 6}, // esta coma es permitida
};
int c = new[3][]; // se crea el array de referencias a arrays
c[0] = new int[5];
c[1] = new int[4];
c[2] = new int[8];
En el caso de una matriz b, b.length es el número de filas y b[0].length es el número de columnas
(de la fila 0). Por supuesto, los arrays bidimensionales pueden contener tipos primitivos de
cualquier tipo u objetos de cualquier clase.

ING.LUDMILA N.BENITEZ MONTERO 107


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
Ejercicios
1) Desplegar el rango de números de tipo bytes.
class imprimirByte {
public void main(String[] args) {
for (byte b = -128; b <= 127; b++) {
System.out.println(b);
}
}
}
2) Desplegar el máximo común denominador de dos números.
class Mcd {
public static void main (String[] args) {
int x= 15;
int y= 24;
while (x!=y)
{
if (x>y)
x= x-y;
else
y= y-x;
}
System.out.println("El MCD es "+x);
}
}
3) Desplegar el factorial de un número
class Fact {
public static void main (String[] args) {
int n= 6;
int f= 1; // También puede ser double
for (int i= 1; i<= n; i++)
f= f*i;
System.out.println("El factorial de "+n+" es "+f);
}
}

ING.LUDMILA N.BENITEZ MONTERO 108


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
4) Desplegar texto invertido
class Invertir {
public static void main (String[] args) {
String s= "Este es el string a invertir";
String inv= ""; // El resultado invertido
for (int i=0; i<s.length(); i++)
inv= s.substring(i,i+1) + inv;
System.out.println(inv);
Consola.esperar();
}
}
5) Desplegar un número
class despcien{
public static void main(String[]Args){
int n=100;
System.out.println("Este es el:"n);
}
}
6) En esta usamos 2 métodos para definir si es par y la sumatoria del número desplegar.
class Parsuma{
public static boolean par(int x){
boolean es par;
if (x%2==0){
//vemos si al dividir por 2 el resto es igual a 0
espar=true; // si es asi es par es verdadero
}
else{
espar=false; //sino es par es falso
}
return espar; //devolvemos el valor booleano ( Verdadero o Falso )
}
public static int sumatoria(int x){
int i;
int suma = 0;
for (i=1;i<=x;i++){

ING.LUDMILA N.BENITEZ MONTERO 109


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
suma = suma+i; //Sumamos todos los numeros desde 1 hasta x
}
return suma;
}
//Menu
public static void main(String args[]){
int numero=(int)(Math.random()*15); //obtenemos un numero entero entre 0 y 15
boolean verdadero = par(numero);
if (verdadero) {
System.out.println("El Numero: " +numero+" es par. ");
System.out.println("Y la Sumatoria desde 1 hasta "+numero+" es "+(sumatoria(numero)));
}
else {
System.out.println("El Numero: " +numero+" es impar. ");
System.out.println("Y la Sumatoria desde 1 hasta "+numero+" es "+(sumatoria(numero)));
}
7) Ingresar texto y desplega el mismo.
import java.io.*;
class Lector{
public static void main(String args[]) throws IOException {
BufferedReader lee = new BufferedReader (new InputStreamReader(System.in));
System.out.println("Ingresa la palabra a mostrar");
String linea = lee.readLine();
System.out.println("La sentencia escrita es : " +linea);
}
}
8) Desplega si el numero es primo o no es primo
class Primo{
public static boolean Primo(int x){
boolean pr=true ;
int divisor=(int)(x/2);
while (divisor>1){
if (x%divisor==0){
pr=false;
System.out.println(x%divisor);
break;
}
divisor=divisor-1;

ING.LUDMILA N.BENITEZ MONTERO 110


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
}
return pr;
}
public static void main(String args[]){
int numero=(int)(Math.random()*100);
boolean sies=Primo(numero);
if (sies){
System.out.println("El numero "+numero+" es primo");
}
else{
System.out.println("El numero "+numero+" NO es primo");
}

}
}
9) En esta usamos 4 métodos: cargar,invertir,desplegar y sumar un vector.
class vectores{
int array[];
public void cargar(int n)throws java.io.IOException{
Reads re=new Reads();
array=new int[100];
System.out.println("Introducir valores al vector:");
for(int i=0;i<=n-1;i++){
int r=re.readint();
array[i]=r;
}
}
public void invertir(int n){
int m=n/2; int j=n-1; int aux=0;
for(int i=0;i<m;i++)
{
aux=array[i];
array[i]=array[j];
array[j]=aux;
j=j-1;
}
for(int i=0;i<n;i++){
System.out.print(array[i]+",");
}System.out.println();

ING.LUDMILA N.BENITEZ MONTERO 111


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
}
public void desplegar(int n){
for(int i=0;i<n;i++){
System.out.print(array[i]+",");
}
System.out.println();
}
public int sumar(int n){
int sum=0;
for(int i=0;i<n;i++){
sum=sum+array[i];
}
return sum;
}

class probador
{
public static void main(String[]args) throws java.io.IOException
{ int n;
Reads re=new Reads();
vectores vec=new vectores();
System.out.println("Introduzca el tamaño del vector");
x=re.readint();vec.cargar(n);
System.out.println("vector ingresado:");
vec.desplegar(n);
System.out.println("vector invertido:");
vec.invertir(n);
System.out.println("La suma del vector es:"+vec.sumar(n));
}
}
10) En esta usamos 4 métodos: cargar,desplegar,sumar de una matriz.
class matriz{
double mat[][];

ING.LUDMILA N.BENITEZ MONTERO 112


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
double sum[];
public static void cargar(int f, int c)throws java.io.IOException{
Reads re=new Reads();
mat=new double[100][100];
System.out.println("Introducir los elementos de la matriz");
for(int i=0;i<=f-1;i++){
for(int j=0;j<=c-1;j++){
int r=re.readint();
mat[i][j]=r;}
}
}
public void desplegar(int f, int c){
for(int i=0;i<=f;i++){
for(int j=0;j<=c;j++){
System.out.print("|"+mat[i][j]);}
System.out.println();
}
}
public double[] sumafilas(int f,int c){
sum=new double[100];
sum[0]=0;
for(int i=0;i<f;i++){
for(int j=0;j<c;j++){
sum[i]=sum[i]+mat[i][j];}
} return sum;}
public double[] sumacolumnas(int f,int c){
sum=new double[100];
sum[0]=0;
for(int i=0;i<c;i++){
for(int j=0;j<f;j++){
sum[i]=sum[i]+mat[j][i];}
} return sum;
}}

class probador{

ING.LUDMILA N.BENITEZ MONTERO 113


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
public static void main(String[]args)throws java.io.IOException{
Reads re=new Reads();
matriz mat=new matriz(); int f=0;int c=0;
System.out.println("Introducir el numero de filas");
f=re.readint();
System.out.println("Introducir el numero de columnas");
c=re.readint();
mat.cargar(f,c);
System.out.println("Matriz desplegada");
mat.desplegar(f,c);
System.out.println("La suma de las filas es");
for(int i=0;i<f;i++){
System.out.println(mat.sumafilas(f,c)[i]);}
System.out.println("La suma de las columnas es");
for(int j=0;j<f;j++){
System.out.println(mat.sumafilas(f,c)[j]);}
}
}
10. Operaciones con matrices: Suma, resta, multiplicacion, traspuesta, multiplicacion por un escalar.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class program {
public static void main(String args []) {
BufferedReader cin = new BufferedReader (new InputStreamReader (System.in));
String option = " ";
int opt = 0;
double escalar = Math.PI;
double [][]a_1 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
matrix a = new matrix(a_1);
double [][]b_1 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
matrix b = new matrix(b_1);
// menu
System.out.println("*******************************************\n"+
"* ¿ Qué operación deseas hacer ? *\n"+

ING.LUDMILA N.BENITEZ MONTERO 114


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
"* *\n"+
"* 1. Suma de matrices *\n"+
"* 2. Resta de matrices *\n"+
"* 3. Multiplicación de matrices *\n"+
"* 4. Traza de una matriz *\n"+
"* 5. Transpuesta de una matriz *\n"+
"* 6. Multiplicación por un escalar *\n"+
"* *\n"+
"*******************************************");
// end menu
try {
option = cin.readLine();
}
catch (IOException e) {};
opt = Integer.parseInt(option);

//
if (opt == 1) {
matrix r = matrix_operations.plus(a,b);
System.out.println( " El resulatdo es: "+ r );
}
else if (opt == 2) {
matrix r = matrix_operations.minus(a,b);
System.out.println( " El resulatdo es: "+ r );
}
else if (opt == 3) {
matrix r = matrix_operations.multiplication(a,b);
System.out.println( " El resulatdo es: "+ r );
}
else if (opt == 4) {
double r = matrix_operations.trace(a);
System.out.println( " El resulatdo es: "+ r );
}
else if (opt == 5) {
matrix r = matrix_operations.transpouse(a);
System.out.println( " El resulatdo es: "+ r );
}

ING.LUDMILA N.BENITEZ MONTERO 115


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
else if (opt == 6) {
matrix r = matrix_operations.escalar_multiplication(a,escalar);
System.out.println( " El resulatdo es: "+ r );
}
}
}

//operaciones
public class matrix_operations {
public static matrix plus(matrix a, matrix b) {
matrix result = new matrix (a.n);
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < a.n; j++) {
result.x[i][j] = a.x[i][j] + b.x[i][j];
}
}
return result;
}
public static matrix minus(matrix a, matrix b) {
matrix result = new matrix (a.n);
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < a.n; j++) {
result.x[i][j] = a.x[i][j] - b.x[i][j];
}
}
return result;
}
public static matrix multiplication(matrix a, matrix b) {
matrix result = new matrix (a.n);
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < a.n; j++) {
result.x[i][j] = a.x[i][j] * b.x[j][i];
}
}
return result;

ING.LUDMILA N.BENITEZ MONTERO 116


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
}
public static matrix transpouse (matrix a) {
matrix result = new matrix (a.n);
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < a.n; j++) {
result.x[i][j] = a.x[j][i];
}
}
return result;
}
public static matrix escalar_multiplication(matrix a, double alfa) {
matrix result = new matrix (a.n);
for (int i = 0; i < a.n; i++) {
for (int j = 0; j < a.n; j++) {
result.x[i][j] = a.x[i][j] * alfa;
}
}
return result;
}
public static double trace (matrix a) {
double result = 0;
for (int i = 0; i < a.n; i++) {
result = result + a.x[i][i];
}
return result;
}
}
//constructor
public class matrix {
public int n; // Create n field
public double [ ][ ]x; // Create x field
Create matrix(int) constructor
public matrix(int n) {
this.n = n;
x = new double [n][n];

ING.LUDMILA N.BENITEZ MONTERO 117


UNIVERSIDAD AUTONOMA JUAN MISAEL SARACHO

PROGRAMACIÓN
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
x[i][j] = 0.0;
}
}
}
public matrix(double[ ][ ] y) {
this.x = y;
n = y.length;
}
public String toString ( ) {
String text = "\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
text += "\t" + (double)Math.round(1000 * x[i][j])/1000;
}
text += "\n";
}
text += "\n";
return text;
}
// End toString method

ING.LUDMILA N.BENITEZ MONTERO 118

You might also like