




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Teoría Ejercicios resueltos Ejercicios propuestos
Tipo: Monografías, Ensayos
1 / 251
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































2
CARRERAS PROFESIONALES CIBERTEC
4
CARRERAS PROFESIONALES CIBERTEC
I N T R O D U C C I Ó N A L A A L G O R I T M I A 5
CIBERTEC CARRERAS PROFESIONALES
Un algoritmo es una secuencia ordenada y finita de pasos que permite resolver un problema. Puede decirse también que un algoritmo es un método para resolver un problema. El término algoritmia proviene del nombre del gran matemático árabe Al- Khorezmi, el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema de numeración hindú y el concepto del cero.
La algoritmia es un pilar fundamental de las ciencias de la computación puesto que provee métodos de solución de problemas, que serán implementados en los programas de computadora. En este sentido, un programa de computadora es la implementación de un algoritmo en un determinado lenguaje de programación. Este curso es una introducción a la algoritmia y a la programación en Java.
Este manual consta de ocho temas, los cuales serán desarrollados en 16 semanas. Se ha contemplado para ello objetivos concretos y un conjunto de actividades que serán desarrolladas en clase bajo la guía del profesor.
Finalmente, se espera que el alumno valore el material que tiene en sus manos y pueda probar los programas en la máquina.
I N T R O D U C C I Ó N A L A A L G O R I T M I A 7
CIBERTEC CARRERAS PROFESIONALES
Al finalizar la unidad, los alumnos, usando los tipos de datos adecuados y los métodos adecuados del lenguaje, declararán y asignarán variables y, transformarán expresiones aritméticas al lenguaje Java.
TEMARIO
Los alumnos responden un cuestionario de preguntas.
1
1-
8
CARRERAS PROFESIONALES CIBERTEC
Java es un lenguaje de programación de alto nivel con el que se pueden escribir programas de cualquier tipo. Se dice que es un lenguaje de alto nivel porque se asemeja más al lenguaje humano, a diferencia de los lenguajes de bajo nivel que se asemejan más al lenguaje de las computadoras (conocidos como lenguajes máquina). Los programas escritos en Java no son comprensibles en forma directa por el procesador, por lo que requieren de pasos intermedios de traducción al lenguaje del computador conocido como lenguaje máquina.
Para desarrollar un programa en Java sigue las siguientes etapas:
En esta etapa, se escriben las instrucciones del programa usando el lenguaje Java y se guarda en un archivo cuyo nombre debe terminar con la extensión .java. Así, por ejemplo, el archivo podría llamarse Saludo.java. A este programa escrito en Java se denomina código fuente y para escribirlo se puede recurrir a cualquier editor de texto.
En esta etapa, se compila el código fuente usando el compilador de Java, que es un programa denominado javac.exe , con lo que se obtiene un nuevo código conocido como código de bytes, que queda guardado en un archivo con el mismo nombre que el archivo de código fuente, pero con la extensión .class. Así, si el archivo de código fuente se denomina Saludo.java , el código de bytes quedará almacenado automáticamente en un archivo denominado Saludo.class.
En esta etapa, el código de bytes es ejecutado por la Máquina Virtual de Java (JVM, siglas en inglés de Java Virtual Machine). El código de bytes es el lenguaje de la JVM. Existe una JVM para cada plataforma (para cada sistema operativo); pero, todas las JVM pueden ejecutar el mismo código de bytes. Así, el código de bytes es independiente de la plataforma. Esto hace que los programas Java puedan ser ejecutados en cualquier máquina que disponga de una JVM. Actualmente, existe una JVM para la mayor parte de las plataformas, lo que garantiza que los programas Java sean ampliamente portables.
Figura 1.1 Compilación y ejecución de un programa Java
10
CARRERAS PROFESIONALES CIBERTEC
Para el desarrollo de programas Java usaremos el sigiuiente software:
A parte de JCreator LE existen otros Entornos Integrados de Desarrollo profesionales como es el caso de NetBeans de Sun Microsystems, JBuilder de Borland, Visual Cafe de Symantec, Eclipse de IBM, JDeveloper de Oracle, Visual Age de IBM, etc.
Los identificadores son nombres usados para identificar diversos elementos de programa como variables, constantes, métodos, clases, etc.
Para crear un identificador deben tenerse en cuenta las siguientes reglas:
Ejemplo 1.
Son válidos los siguientes identificadores:
edadMaxima edadmaxima monto_total sueldo_bruto suelbru $ganancia nota importeCompra
Note que los identificadores edadMaxima y edadmaxima no son iguales dado que M (mayúscula) no es lo mismo que m (minúscula).
Ejemplo 1.
Son inválidos los siguientes identificadores:
I N T R O D U C C I Ó N A L A A L G O R I T M I A 1 1
CIBERTEC CARRERAS PROFESIONALES
1cuenta No puede comenzar con un número monto total Contiene un carácter invalido intermedio (el espacio en blanco) premio# Contiene el carácter inválido # final No puede ser una palabra reservada continue No puede ser una palabra reservada
Se denominan palabras reservadas a aquellas palabras que tienen un significado especial dentro del lenguaje y que por lo tanto no pueden ser utilizados para otros propósitos. Así, una palabra reservada no se puede utilizar como un identificador.
En la tabla que sigue se muestran las 50 palabras reservadas del lenguaje Java. Note que todas ellas están en minúsculas.
Tabla 1.1 Palabras reservadas del lenguaje Java
abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch final interface static void char finally long strictfp volatile class float native super while const for new switch assert continue goto package synchronized enum
Se conocen como tipos de datos primitivos a los tipos de datos que forman parte del nucleo del lenguaje Java. Existen ocho tipos primitivos que se muestran en la tabla 1.
Tabla 1.2 Tipos de datos primitivos de java
Dato Tipo Bits Rango carácter char 16 0 a 65535 entero byte 8 -128 a 127 short 16 -32768 a 32767 int^32 -2147483648 a 2147483647 long 64 -9223372036854775808 a 9223372036854775807 real float 32 -3.4x10 38 a -1.4x10 -45, 1.4x10 -45^ a 3.4x10 38 double 64 -1.7x10 308 a -4.9x10 -324^ , 4.9x10 -324^ a 1.7x10 308 booleano (^) boolean 1 true, false
A parte de los tipos primitivos existen otros tipos conocidos como tipos referencia a los que se conoce también como tipos abstractos o simplemente clases. Para el manejo de cadenas de caracteres el lenguaje Java dispone del tipo referencia String.
Una variable es una localización de memoria en la que se puede almacenar un valor
I N T R O D U C C I Ó N A L A A L G O R I T M I A 1 3
CIBERTEC CARRERAS PROFESIONALES
Cualquier valor numérico decimal con parte fraccionaria es un literal real. Los literales reales se consideran de tipo double. Para especificar que un literal es de tipo float , debe añadirse, como sufijo, la letra F ó f.
Por ejemplo:
Los siguientes literales son de tipo double
1.23, 3.456, -2.0, 3.25E+12, 2.7e-5, etc.
Los siguientes literales son de tipo float
2.75f, -4.567f, 2.0F, 6.73e+2f, etc.
Para representar un literal real en notación científica se usa la letra E ó e para expresar la potencia de 10.
Por ejemplo
3.25E+12 representa a 3.25 x 10 12
2.7E-5 representa a 2.7 x 10
El signo + que acompaña al exponente es opcional.
Los únicos literales booleanos son los siguientes:
true, false
Un literal de carácter consiste de un único carácter encerrado dentro de un par de comillas simples.
'a', '1', '2', '$', etc.
Una secuencia de escape es un conjunto de caracteres
Un literal de cadena consiste de un conjunto de carácteres encerrados entre comillas dobles.
" Hola mundo " " Bienvenido a Java " " Algoritmos Computacionales " " abcde123xy " " Edad inválida " etc
14
CARRERAS PROFESIONALES CIBERTEC
Una sentencia de asignación se utiliza para asignar (almacenar) un valor a una variable. En una sentencia de asignación el valor situado a la derecha del signo igual se almacena en la variable situada a la izquierda del signo igual.
Una sentencia de asignación tiene la siguiente forma:
variable = expresión;
Donde expresión puede ser una variable, un literal o una combinación de variables, literales y operadores. La sentencia de asignación almacena en variable el valor de la expresión; para esto se requiere que expresión y variable tengan el mismo tipo de dato.
Notas
Ejemplo 1.
// Declara las variables p, q y r int p, q, r;
// Asigna el valor 2 a la variable p p = 2;
// Asigna una copia del valor de p a la variable q q = p;
// Evalúa el valor de la expresión 2p + q a la variable r* r = 2*p + q;
Una expresión aritmética es una combinación de variables, literales y operadores aritméticos.
En la tabla que sigue se muestran los operadores aritméticos del lenguaje Java.
p 2
q 2
r 6
16
CARRERAS PROFESIONALES CIBERTEC
2
2
Solución
a. e = aa + 3b*c + 2;
b. z = (a+b+2)/(aa+1) + 2a*b;
c. prom = (n1+n2+n3+n4)/4;
En la siguiente tabla se listan algunos métodos matemáticos del lenguaje Java:
Álgebra Método Java
n m Math.pow(n,^ m)
n Math.sqrt(n)
Donde n y m pueden ser de tipo int o de tipo double ; pero el resultado en ambos casos es de tipo double.
Ejemplo 1.
Escriba en Java las siguientes expresiones algebraicas:
a. ( ) (^22)
b.
( ) 3 2
7 5
Solución:
I N T R O D U C C I Ó N A L A A L G O R I T M I A 1 7
CIBERTEC CARRERAS PROFESIONALES
1.1. año nacimiento 1.2. sueldoNeto 1.3. $monto 1.4. peso - máximo 1.5. EDAD_PROMEDIO 1.6. númeroDeEmpleados 1.7. _temperatura 1.8. xy1$$$$$ 1.9. 1_abc$$ 1.10. volumen_CILINDRO
2.1. El área de un círculo.
2.2. El sexo de una persona.
2.3. La estación del año.
2.4. El importe bruto, el importe de descuento y el importe neto de una compra.
I N T R O D U C C I Ó N A L A A L G O R I T M I A 1 9
CIBERTEC CARRERAS PROFESIONALES
Al finalizar la unidad, los alumnos, empleando las etapas de desarrollo de un algoritmo y las instrucciones algorítmicas básicas, diseñarán algoritmos en pseudocódigo que resuelvan problemas que involucren instrucciones secuenciales.
TEMARIO
ACTIVIDADES
Los alumnos desarrollan algoritmos que involucren estructuras de secuencia.
2
3-
20
CARRERAS PROFESIONALES CIBERTEC
Un algoritmo es un método de solución de un problema expresado a través de un conjunto de pasos, procedimientos o acciones. Por ejemplo, es un algoritmo el conjunto de instrucciones que deben seguirse para instalar una impresora. También es un algoritmo una receta para preparar un plato de comida. Otro caso de algoritmo es el algoritmo de Euclides para la obtención del máximo comun divisor de dos números. Un programa, a su vez, es la implementación de un algoritmo mediante un lenguaje de programación de forma que sea entendible por el computador. En la figura 2.1 puede verse la relación entre problema, algoritmo y programa.
Figura 2.1 Problema, Algoritmo y Programa
El pseudocódigo es un lenguaje algorítmico informal que es una imitación de uno o más lenguajes de programación de alto nivel. Un pseudocódigo puede contener símbolos (+, -, *, /, =, etc.), términos (leer, imprimir, abrir, cerrar, etc) y estructuras de programación (si, si...sino, hacer...mientras, mientras...hacer, para...mientras).
Al contrario que los lenguajes de programación de alto nivel como Java, C, C++, Pascal, etc., no existe un conjunto de reglas que definan con precisión lo que es y lo que no es un pseudocódigo. En otras palabras, no existe un pseudocódigo estándar. Varía de un programador a otro.
La ventaja del pseudocódigo es que, su uso en la planificación de un programa, permite al programador concentrarse en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico.
Ejemplo 2.
Diseñe un algoritmo que determine el monto a pagar por la compra de cierta cantidad de unidades de un producto.
Solución:
Inicio // Declaración de variables entero cantidad real precio, montopagar
// Entrada de datos Leer precio, cantidad
// Proceso de cálculo montopagar = precio*cantidad
// Salida de resultados Imprimir montopagar Fin