Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a la Algoritmia, Monografías, Ensayos de Ingeniería Infórmatica

Teoría Ejercicios resueltos Ejercicios propuestos

Tipo: Monografías, Ensayos

2016/2017

Subido el 20/12/2017

yover-santiago-jara
yover-santiago-jara 🇵🇪

4.4

(5)

1 documento

1 / 251

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Introducción a la
Algoritmia
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Introducción a la Algoritmia y más Monografías, Ensayos en PDF de Ingeniería Infórmatica solo en Docsity!

Introducción a la

Algoritmia

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

Presentación

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

INTRODUCCIÓN AL LENGUAJE JAVA

LOGRO DE LA UNIDAD DE APRENDIZAJE

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

  1. El lenguaje Java.
  2. Etapas de desarrollo de un programa Java.
  3. Tipos de programas Java
  4. Software para el desarrollo de programas Java.
  5. Identificadores.
  6. Palabras reservadas.
  7. Tipos de datos primitivos.
  8. Variables primitivas.
  9. Literales.
  10. Sentencias de asignación.
  11. Expresiones aritméticas.

ACTIVIDADES

Los alumnos responden un cuestionario de preguntas.

Unidad de Aprendizaje

1

SEMANA

1-

8

CARRERAS PROFESIONALES CIBERTEC

1. EL LENGUAJE JAVA

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.

2. ETAPAS DE DESARROLLO DE UN PROGRAMA JAVA

Para desarrollar un programa en Java sigue las siguientes etapas:

2.1 Edición

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.

2.2 Compilación

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.

2.3 Ejecución

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

4. SOFTWARE PARA EL DESARROLLO DE PROGRAMAS JAVA

Para el desarrollo de programas Java usaremos el sigiuiente software:

  • Java SE Development Kit (JDK), que contiene el compilador, la JVM y a las librerías del lenguaje. El JDK puede ser descargado de la página de Sun Microsystems cuya dirección es http://java.sun.com
  • JCreator LE, que es un Entorno Integrado de Desarrollo (IDE, siglas del inglés Integrated Development Environment ) que permite editar, compilar y ejecutar programas Java. Para la compilación y ejecución se requiere tener instalado el JDK. JCreator LE puede ser descargado de la página de Xinox Software cuya dirección es http://www.jcreator.com

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.

5. IDENTIFICADORES

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:

  • Debe comenzar con una letra, un símbolo de subrayado () o un símbolo de dólar ($). Los siguientes caracteres pueden ser letras, dígitos, símbolos de subrayado () o símbolos de dólar ($).
  • No puede ser una palabra reservada del lenguaje.
  • Las mayúsculas y minúsculas se consideran diferentes

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

6. PALABRAS RESERVADAS

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

7. TIPOS DE DATOS PRIMITIVOS

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.

8. VARIABLES PRIMITIVAS

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

9.2 Literales reales

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.

9.3 Literales booleanos

Los únicos literales booleanos son los siguientes:

true, false

9.4 Literales de carácter

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

9.5 Literales de Cadena

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

10. SENTENCIAS DE ASIGNACION

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

  • La asignación tiene carácter destructivo. Esto es, la variable que recibe la asignación pierde su valor actual de forma irrecuperable
  • Una variable de tipo double puede recibir la asignación de un valor de tipo int. Esta es una excepción a la regla. En ese caso el valor de tipo int se convierte automáticamente al tipo double antes de ser asignado.
  • Es un error de sintáxis tratar de asignar un valor de tipo double a una variable de tipo int.

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;

11. EXPRESIONES ARITMETICAS

Una expresión aritmética es una combinación de variables, literales y operadores aritméticos.

11.1 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

n n n n

c prom

ab

a

a b

b z

a e a bc

Solución

a. e = aa + 3b*c + 2;

b. z = (a+b+2)/(aa+1) + 2a*b;

c. prom = (n1+n2+n3+n4)/4;

11.3 Métodos matemáticos

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)

a b

b

e a a b

b.

( ) 3 2

7 5

a b

a b

e

Solución:

a. e =Math.pow(a,7)+Math.pow(a+bb,4)+Math.sqrt( 2 +b)/(aa+b*b);

b. e =Math.pow(a+Math.pow(b,7),5)/Math.pow(a+b*b,1/3.0);

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

Problemas propuestos

  1. Ponga un aspa al costado de los identificadores válidos.

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

  1. Declare variables adecuadas para almacenar los siguientes datos:

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.


  1. Escriba las siguientes expresiones algebraicas en el lenguaje Java:

3.1. x

c d

a b

ab

d

c

ab

z +

= +^2 +

ab

a b

e a

e

c

a b

a b

abc

e

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

ESTRUCTURAS DE SECUENCIA

LOGRO DE LA UNIDAD DE APRENDIZAJE

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

  1. Introducción.
  2. Algoritmo.
  3. Pseudocódigo.
  4. Instrucciones algorítmicas básicas.
  5. Estructuras de secuencia.

ACTIVIDADES

Los alumnos desarrollan algoritmos que involucren estructuras de secuencia.

Unidad de Aprendizaje

APRENDIZAJE

2

SEMANA

3-

20

CARRERAS PROFESIONALES CIBERTEC

1. ALGORITMO

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

2. PSEUDOCODIGO

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