• No se han encontrado resultados

Lenguajes de programación. Algoritmos, herramientas, programación estructurada. Aplicación a los lenguajes de programación Pascal y otros lenguajes actualizados. Lenguajes de programación orientados a objetos: características principales, objetos, clases,

N/A
N/A
Protected

Academic year: 2020

Share "Lenguajes de programación. Algoritmos, herramientas, programación estructurada. Aplicación a los lenguajes de programación Pascal y otros lenguajes actualizados. Lenguajes de programación orientados a objetos: características principales, objetos, clases,"

Copied!
51
0
0

Texto completo

(1)

Alma Mater del Magisterio Nacional

FACULTAD DE CIENCIAS

Escuela Profesional de Matemática e Informática

MONOGRAFÍA

LENGUAJES DE PROGRAMACIÓN. Algoritmos, herramientas,

programación estructurada. Aplicación a los lenguajes de Programación

Pascal y otros lenguajes actualizados. Lenguajes de programación

orientados a objetos: características principales, objetos, clases, sentencia,

estructura. Lenguaje de programación JAVA. Aplicaciones a la enseñanza

y aprendizaje de la matemática.

Examen de Suficiencia Profesional Res. N° 1151-2019-D-FAC

Presentada por:

Luis Guillermo Pinto Huaranga

Para optar al Título Profesional de Licenciado en Educación Especialidad: Matemática e Informática

(2)
(3)

Dedicatoria

(4)

Índice de contenidos

Carátula i

Hoja de firmas de Jurado ii

Dedicatoria iii

Índice de contenidos iv

Lista de figuras vi

Lista de tablas vii

Introducción viii

CAPÍTULO I. LENGUAJES DE PROGRAMACIÓN 1.1 Lenguajes de programación 9

1.2 Historia de los lenguajes de programación 10

1.3 Algoritmos 12

1.4 Herramientas para utilizar Algoritmos 13

1.5 Paradigmas de la programación 14

CAPÍTULO II. PROGRAMACIÓN ESTRUCTURADA 2.1 Programación estructurada 15

2.2 Flujos de control 15

2.3 Aplicación a los lenguajes de programación Pascal 17

CAPÍTULO III. LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS 3.1 Programación orientada a objetos 20 3.2 Lenguajes de Programación orientado a objetos 21

3.3 Conceptos fundamentales de la Programación orientada a objetos 22

3.4 Características principales de la Programación orientada a objetos 25 3.4.1 Abstracción 25

3.4.2 Encapsulamiento 25 3.4.3 Modularidad 26

(5)

CAPÍTULO IV LENGUAJE DE PROGRAMACIÓN JAVA

4.1 Lenguaje de Programación Java 27

4.2 Características del Lenguaje Java

4.2.1 Orientado a objetos 28

4.2.2 Robusto 28

4.2.3 Independiente de la Plataforma 28

4.2.4 Multitarea 28

4.3 Sentencias básicas 29

4.4 Sentencia de selección

4.4.1 Sentencia de selección IF 33

4.4.2 Sentencia de selección IF / ELSE 34

4.4.3 Sentencia de selección SWITCH 34

4.5 Sentencias repetitivas

4.5.1 Bucle FOR 35

4.5.2 Bucle WHILE 35

4.5.3 Bucle DO WHILE 36

4.6 Aplicaciones a la enseñanza y aprendizaje de la matemática 36

Aplicación Didáctica 41

Síntesis 46

Apreciación Crítica y Sugerencias 47

Referencias 48

Conclusiones 49

(6)

Lista de figuras

Figura 1. Linea de tiempo de los lenguajes de programación 11

Figura 2. Diagrama de flujo 14

Figura 3. Sentencia que muestra el flujo condicional 16

Figura 4. Sentencia que muestra el ciclo repetitivo de acuerdo a una condición

si es falsa o verdadera 16

Figura 5. Esta figura muestra los nombres de Lenguajes orientados a objetos 20

Figura 6. Entidades que representan objetos 22

Figura 7. Este gráfico muestra al objeto reloj con sus diferentes instancias 24

Figura 8. Este gráfico muestra las características de la Programación

Orientada a objetos 26

Figura 9. Este diagrama de flujo muestra todo el proceso para hallar los cálculos

solicitados de suma, resta y multiplicación 37

Figura 10. Esta figura muestra la codificación del diagrama en el programa Java 37

Figura 11. Este diagrama de flujo muestra todo el proceso de bifurcación

según una condición 38

Figura 12. Esta figura muestra la codificación del problema planteado

sobre condicionales 39

Figura 13. Esta figura muestra la codificación del problema planteado, creándose

un ciclo repetitivo, hasta cumplir una condición 40

Figura 14. Esta figura muestra la codificación del problema planteado, creándose un ciclo repetitivo, hasta cumplir una condición,

(7)

Lista de tablas

Tabla 1. Datos primitivos 29

Tabla 2. Operadores aritméticos 30

Tabla 3. Operadores aritméticos incrementales 30

Tabla 4. Operador de asignación 31

Tabla 5. Operadores combinados 31

Tabla 6. Operadores de comparación 32

Tabla 7. Operadores lógicos 32

(8)

INTRODUCCIÓN

La presente monografía trata sobre los lenguajes de programación, que son herramientas de Software que permiten al usuario de una computadora electrónica crear programas ejecutables para la realización de diversas tareas. Los dispositivos electrónicos programables en la actualidad son muy importantes en cualquier campo del saber humano. Ello no hubiera sido posible sin las instrucciones de los lenguajes de programación, que permiten dar soluciones a distintos tipos de problemas de negocios, educativos, científicos, etc. Estos lenguajes han evolucionado a través del tiempo, desde el denominado “Lenguaje Máquina”, pasando por los lenguajes “Ensambladores”, hasta llegar a los “Lenguajes de Alto Nivel”.

El presente trabajo tiene como objetivo dar a entender la enorme importancia de los lenguajes de programación, debido al creciente aumento de la Electrónica, la Tecnología, la Informática, las Telecomunicaciones, las Redes e Internet.

Hoy, en el siglo XXI, con el enfoque del Currículo Nacional basado en competencias, el perfil de egreso de un estudiante relacionado a las TIC está enfocado a que use responsablemente la tecnología y sea un instrumento de aprendizaje en toda su vida.

(9)

CAPÍTULO I

LENGUAJES DE PROGRAMACIÓN

1.1 Lenguajes de programación

Un lenguaje de programación es un sistema estructurado de comunicación, conformado por un conjunto de símbolos, reglas y palabras (léxicos, sintaxis y semántica) que permiten un

entendimiento entre el programador y la máquina.

Hablamos del conjunto de instrucciones y algoritmos, dadas por el programador, que controlan el comportamiento físico y lógico de una computadora, con el fin de indicar qué tipos de datos actúan y qué acciones tomar bajo una gama de circunstancias. La codificación de un algoritmo en un programa de computadora se denomina programación, y el algoritmo escrito en un lenguaje de programación se denomina código fuente (Joyanes, 2008).

Estos lenguajes son interpretados y validados en un proceso que se llama compilación, para que la computadora los entienda. Se clasifican en tres tipos:

El lenguaje máquina, utiliza el alfabeto binario que consta de dos únicos símbolos: 0 y 1,

(10)

indican las acciones a realizar. El lenguaje máquina es muy difícil de programar directamente. Descifrar el significado de las instrucciones es tedioso para los humanos (Hernandez, 2013).

El lenguaje ensamblador, o lenguaje de bajo nivel, contiene instrucciones en símbolos

nemotécnicos que son palabras en inglés que facilitan el desarrollo de los programas, ya que reemplazan a las instrucciones en el lenguaje binario (Joyanes, 2008).

Los lenguajes de programación de alto nivel, son instrucciones en lenguaje humano, que

se escribe para que la computadora realice acciones y operaciones específicas de acuerdo a un

algoritmo o Pseudocódigo. Ya que la computadora no reconoce las órdenes escritas en lenguaje

de alto nivel, se requiere de un programa que traduzca las instrucciones a lenguaje máquina.

Estos programas de traducción se denominaron técnicamente, compiladores (Joyanes, 2008).

1.2 Historia de los lenguajes de programación

La historia de los lenguajes de programación comienza cuando Charles Babbage trabajó en el proyecto de una “Maquina diferencial” y después la “Maquina analítica”, en el año 1842. Esta máquina alteraba sus procesos controlados por un programa. Realizaba ciclos repetitivos y también diferentes procedimientos de acuerdo a instrucciones de condición. Trabajaba con una tarjeta perforada para los procesos aritméticos, otra para las constantes numéricas y otra para procesos con la memoria de datos (Rojas, 2011).

Según el avance de la electrónica y la programación, se construye la computadora ENIAC en 1942. Esta máquina se programaba sobre la base de interruptores.

(11)

El lenguaje de programación de alto nivel PASCAL se crea en el año 1968, lenguaje que era ideal para la enseñanza de programación por su codificación fuertemente estructurada. En 1972 se crea el lenguaje C, por Dennis Ritchie, para el desarrollo del sistema operativo Linux. Hoy en día se cuenta con un sinnúmero de lenguajes enfocados a diferentes objetivos, apareciendo nuevos paradigmas, como el orientado a objetos y otros más. La siguiente figura muestra la evolución de los lenguajes de programación a lo largo del tiempo (Rojas, 2011).

Figura 1. Muestra la linea de tiempo de los lenguajes de programación, desde 1984 hasta el año 2014.

(12)

1.3 Algoritmos

Los algoritmos se definen como una serie de pasos que le indican a la computadora todas las operaciones que tiene que hacer, para dar solución a un problema o situación propuesta, en un determinado tiempo (López, 2009).

Las características que los algoritmos deben reunir son los siguientes:  Finito: Debe tener un final, después de una secuencia de operaciones.

Preciso: Cada operación debe estar definido, indicando la acción a realizar sin criterios de

interpretación.

Determinado: El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe

arrojar los mismos resultados.

Efectivo: Los pasos realizados deben ser solamente los necesarios, considerando el tiempo

que toma cada operación y el esfuerzo que se realiza.

Por otra parte, un algoritmo consta de tres fases de resolución de un problema:

1. Análisis: Es la información de partida, se determina cuál es el problema que se quiere dar solución, cuáles son los datos de entrada y cuáles los datos de salida.

2. Diseño: Es la elaboración del algoritmo.

(13)

1.4 Herramientas para utilizar Algoritmos

Existen diferentes herramientas para el diseño de algoritmos, como pueden ser:

Pseudocódigo: Es un tipo de algoritmo que utiliza el lenguaje humano, que puede ser el

inglés u otro idioma. Por ello, su escritura es fácil y flexible en sentencias complejas. Vale decir que su escritura puede ser entendida por cualquier programador al codificar en un lenguaje de programación (López, 2009).

Diagramas de flujo: Estas herramientas son representaciones gráficas de un algoritmo y

expresan las sucesivas instrucciones que se deben realizar para resolver un problema. Las operaciones de entrada de datos, proceso o salida, se representan mediante símbolos. Por ejemplo, tenemos el siguiente problema matemático: obtener la edad de un trabajador introduciendo el año de nacimiento ingresado por teclado. Para resolver tal problema, se utilizará las herramientas de Pseudocódigo y Diagrama de flujo.

Ejemplo 1: Utilizando Pseudocódigo:

Inicio

Haga anaci = 0, aact = 0, edad = 0 Mostrar “Ingrese el año de nacimiento” Captura anaci

Mostrar “Ingrese año actual” Captura aact

edad = aact - anaci

(14)

Ejemplo 2: Utilizando Diagrama de flujo:

Figura 2. Diagrama de flujo que muestra el proceso para calcular la edad. Fuente: Autoría propia

1.5 Paradigmas de la programación

En la evolución de la programación han surgido diversas técnicas de programación que se han ido adaptando a las necesidades tecnológicas e informáticas del momento. Aunque la forma de enfocar la elaboración de los programas es diferente en cada una de ellas, el objetivo es el mismo: facilitar la creación y el mantenimiento de programas informáticos.

Estas técnicas se han traducido en diferentes filosofías de creación de programas, que son los denominados paradigmas de programación. Un Paradigma de programación se define como métodos, formas de organización y estructuración de los procesos que debe realizar cualquier programa. Se tienen varios paradigmas, como los paradigmas por procedimientos o Paradigma imperativo, tales como PASCAL o el lenguaje C, el paradigma orientado a objetos como el JAVA, C++ (Joyanes, 2008).

LEER anaci, aact

edad = aact - anaci

ESCRIBIR edad

INICIO

(15)

CAPÍTULO II

PROGRAMACIÓN ESTRUCTURADA

2.1 Programación estructurada

Utiliza únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while). Con el avance del desarrollo de programas y la complejidad de los problemas a resolver, estos problemas se fueron descomponiendo en partes, creándose módulos o procedimientos con la finalidad de hacer más fácil la resolución del problema; a estos módulos en programación se les asigna un nombre y son invocados en cualquier momento que se les requiera (Joyanes, 2003).

2.2 Flujos de control

Las estructuras de control cambian la secuencia de ejecución de las sentencias de un programa de computadora. Las estructuras de control se pueden clasificar en: secuenciales, selectivas e iterativas y de control avanzadas.

Las estructuras de control secuenciales, se realizan en el orden en el que está

(16)

Las estructuras de control de selección, tienen como finalidad bifurcar el flujo de

instrucciones, seleccionando una de dos o varias alternativas de acuerdo a una condición establecida en el programa.

V F

Figura 3. Sentencia que muestra el flujo condicional.

Fuente: Autoría propia

Las estructuras de control repetitivas, permiten que se repita una instrucción o bloque de

instrucciones, hasta que se cumpla una condición establecida en el programa.

V

Figura 4. Sentencia que muestra el ciclo repetitivo de acuerdo una condición, si es falsa o verdadera. Fuente: Autoría propia

Z

X Y

X

(17)

Programación Modular: Se puede dar solución a un problema, dividiéndolo en problemas

pequeños. Este método es el que aplica la programación modular La programación top-down consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Dos tipos de módulos utiliza el lenguaje PASCAL: los procedimientos y las funciones. Es una evolución de la Programación estructurada (Joyanes, 2008).

2.3 Aplicación a los lenguajes de programación Pascal

El lenguaje de programación Pascal se creó con el propósito de hacer más fácil la enseñanza y aprendizaje del estudiante concerniente al desarrollo de programas. Niklaus Wirh, profesor suizo, fue el que creo y desarrolló el programa por el año de 1968. Utilizó el paradigma de la programación estructurada de esa época porque permitía la solución de problemas a través de las instrucciones de flujo de control y la descomposición de las tareas en módulos o procedimientos. Publicándose en 1970, llegó a ser uno de los primeros lenguajes por la forma como estructuraba los datos, creándose todo tipo de aplicaciones (Joyanes, 2006).

La estructura genérica en un programa en PASCAL es:

(18)

El primero de ellos es secuencial, el segundo usa el flujo de selección y el tercero emplea el flujo de control de iteración.

Cada ejemplo ilustra las tres estructuras básicas de la programación orientada a objetos. Cabe señalar que, conforme se fueron haciendo más complicados los problemas de programación, se fue desarrollando el concepto de programación modular.

Problema 1: Ingresar por teclado dos números y mostrar en pantalla la suma de ellos.

PROGRAM Adición; VAR

adi1, adi2, su: INTEGER; BEGIN

Write ('Ingrese por teclado el primer número '); ReadLn (adi1);

Write ('ingrese por teclado el segundo número: '); ReadLn (adi2);

su:=adi1 + adi2;

WriteLn ('La adición de los dos números es: ', su); WriteLn ('Pulse ENTER para terminar el programa'); ReadLn

END.

Problema 2: Mostrar el mensaje Aprobado o Desaprobado de un promedio de notas.

ingresado por teclado. PROGRAM mensaje; VAR

(19)

WriteLn ('PROMEDIO DE NOTAS');

Write ('Ingrese el promedio de notas del estudiante: '); ReadLn (prom);

IF prom >= 13 THEN

WriteLn ('Felicitaciones, el estudiante está aprobado', prom) ELSE

WriteLn ('El alumno está desaprobado');

Write ('Presiona ENTER para salir del programa'); END.

Problema 3: Ingresa por teclado 4 notas, calcula su promedio y muestra el resultado en pantalla.

PROGRAM promedio; var nota, resultado: integer; var prome: REAL

BEGIN clrscr;

resultado = 0; For i:= 1 to 4 do BEGIN

Write (´ingrese nota ´,i); ReadLn (nota);

resultado = resultado + nota END;

prome = resultado / 4

WriteLn ('El promedio del estudiante es: 'resultado); Write ('Presiona ENTER para salir del programa'); ReadLn

(20)

CAPÍTULO III

LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS

3.1 Programación orientada a objetos

Programar con la metodología estructurada se complicaba cuando el problema era demasiado complejo. Debido a ello, la programación fue evolucionando conceptualmente, apareciendo un nuevo paradigma al que se le denominó programación orientada a objetos, que define todas las entidades de un programa, en objetos que contienen datos (atributos) y comportamientos (métodos). Estos objetos, según características similares, se agrupan en clases (Booch, 2013).

Figura 5. Esta figura muestra los nombres de Lenguajes orientados a objetos.

(21)

Son lenguajes de programación orientados a objetos, aquellos que implementan los conceptos fundamentales, definidos por la programación orientada a objetos.

El lenguaje JAVA de Oracle, el lenguaje C++ diseñado por Bjarne Stroustrup, el lenguaje Python, el Visual Basic .NET diseñado por MICROSOFT, el JavaScript desarrollado para

páginas WEB, el PHP diseñado por Rasmus Lerdorf, el lenguaje Objective-C, son algunos de los lenguajes más utilizados en la actualidad.

3.2 Lenguajes de Programación orientado a objetos

Existen muchos lenguajes de programación orientado a objetos, como:

Simula 67: El primer lenguaje orientado a objeto. Desarrollado por los noruegos Krinsten

Nygaard y Ole-Johan Dahl, fue presentado en el año 1967. Fue el primer lenguaje que

presentó las nociones de clase y herencia jerárquica. No se admite la herencia múltiple.

Smalltalk: A principio de los años 70, en el centro de investigación "Palo Alto Xerox "

crearon Smalltalk. Fue el primer lenguaje en usar clases y objetos. A través de mensajes, los

objetos se comunican entre sí y pueden realizar varias y diferentes operaciones.

C++: Creado por Bjarne Stroustrup en 1983, permite la manipulación de objetos. C++ es un

lenguaje multiparadigma, ya que en su desarrollo se añadieron conceptos de la programación

estructurada y objetos.

Eiffel: Es un lenguaje de POO diseñado por Bertrand Meyer en 1985. Este lenguaje dispone

de diseño por contrato, que facilita la detección de errores y la depuración de códigos. Las

clases son la unidad básica, su gestión de memoria es automática y es implementada por el

(22)

Java: Es un lenguaje de programación orientado a objetos que fue creado en 1995 (es una

extensión de C++), se popularizo en 1996 por el lanzamiento comercial de su primera

versión, la JDK 1.0. Posee los conceptos de herencia polimorfismo, encapsulamiento, etc.

3.3 Conceptos fundamentales de la Programación orientada a objetos

Los objetos: Son conceptos de las cosas que vemos y sentimos de nuestro alrededor y el mundo, razonando y reflexionando sobre ellas. Los objetos pueden ser reales, como un colegio, una carta o abstractos.

El concepto fundamental, en los lenguajes de POO, es que los objetos contienen datos que pueden ser textos, números, registros, etc. Sobre estos datos y sus atributos, operan funciones o procedimientos que permiten el comportamiento del programa de acuerdo a las necesidades del usuario o programador (Ramirez, 2007).

Figura 6. Entidades que representan objetos.

Fuente: Recuperado de https://docplayer.es/56402242-Introduccion-al-paradigma-orientado-a-objetos.html

En POO, las clases de cosas que pueden ser objetos, pueden ser:  Objetos físicos:

(23)

Elementos de interfaces gráficos de usuario:

Mouse, ventanas de diálogo, objetos gráficos, menú, lista desplegable  Alimentos y animales

Pasteles, frutas, carne, animales vertebrados y animales invertebrados

Cabe mencionar que en POO todas las cosas del mundo real, dentro de un conjunto, se denominan instancias y que estas tienen las mismas características y siguen las mismas reglas. Los objetos constan de estados (atributos) y operaciones o comportamientos (métodos invocados por el mensaje). En la figura 7 se muestran ejemplos típicos de objetos.

Desde el punto de vista del mundo real, un objeto tiene dos propiedades esenciales: un estado y un comportamiento:

El estado: Son los datos asociados con el objeto, los cuales indican su situación interna en

un momento dado; por ejemplo, velocidad, calificación, color, capacidad, encendido/apagado, etc.

El comportamiento: Es la manera en la que el objeto responde a estímulos del exterior; por

ejemplo, lo que sucede cuando se oprime el botón “inicio”, lo que sucede cuando se hace un retiro de una cuenta bancaria o cuando se oprime el botón “reiniciar” en un contador.

Desde el punto de vista computacional:

Los atributos. Son los datos que pertenecen al objeto y que representan el estado de este, en

función de los valores que tienen.

Los métodos: Definen el comportamiento del objeto y son funciones que se pueden invocar

(24)

Por ejemplo, el objeto cuenta bancaria, cuyos datos contenidos son el nombre del cuentahabiente, sus apellidos, dirección, email, saldo y el tipo de cuenta, en donde se especifica si es una cuenta de crédito, débito, ahorro, etc. Además, también contiene algunas operaciones que se pueden ejecutar con la cuenta; en este ejemplo son consultar saldo, retiro, bonificación, actualizar datos y consultar datos.

Las clases: En programación, a las instancias de una clase se les llama objetos. A continuación, como ejemplo, definimos la clase Reloj. Según la sintaxis, el nombre de una clase empieza en su primera letra en mayúscula. Un reloj se caracteriza por tener tres indicadores: la hora, los minutos y los segundos; por lo tanto, los atributos de la clase Reloj son tres números enteros.

El comportamiento de este reloj está definido por las siguientes operaciones: inicializar la hora con un valor dado, incrementar la lectura actual en un segundo y obtener la hora.

Figura 7. Este gráfico muestra al objeto reloj con sus diferentes instancias.

Fuente: Recuperado de

http://www.cua.uam.mx/pdfs/revistas_electronicas/libros-electronicos/2016/2intro-poo/programacion_web.pdf

(25)

Cada objeto en la POO tiene propiedades definidas por su clase de objeto. Se dice que cada objeto es una instancia particular de alguna clase de objetos. La clase define las propiedades comunes de varios objetos. El programador especifica la clase, como lo hace con un tipo de dato compuesto, y le da un nombre; luego se pueden crear objetos tantas veces, como se requiera, de la clase creada. En la figura 7 se ilustra la creación de varios objetos reloj, para lo cual se utiliza la misma clase.

Los métodos contienen las sentencias que operan sobre el estado de los objetos. También permite que entre los objetos se puedan enviar mensajes. Primero se invoca al método del objeto y luego se procede al envío del mensaje del objeto emisor (Ramirez, 2007).

Los mensajes tienen que ver con la forma como interactúan los objetos a través de mensajes. Un objeto envía un mensaje a otro objeto, este ejecutará un método que se necesite que realice el objeto, de esta manera los objetos se comunican en el sistema informático (Ramirez, 2007).

3.4 Características principales de la Programación orientada a objetos

3.4.1 Abstracción.

Los objetos tienen cualidades, que se pueden separar sobre la base de un proceso de Abstracción mental. Conseguimos, a partir de un tema determinado, generalizar y obtener una visión global del tema. El enfoque de la POO es agrupar en clases a un grupo de objetos abstrayendo sus métodos y datos comunes. Debido a ello, en programación se facilitaría agregar o borrar un objeto (Joyanes, 2008).

3.4.2 Encapsulamiento.

(26)

usuario o programador puede acceder solamente a lo que requiere. Debido a ello, el usuario puede ser controlado internamente, evitando cualquier conflicto, por un acceso no autorizado. También permite realizar modificaciones sin afectar cómo los usuarios van a utilizar las instrucciones. Para encapsular se requiere declarar como públicas o privadas los atributos o métodos de un objeto (Ramirez, 2007).

3.4.3 Modularidad.

Una aplicación puede dividirse en subprogramas o módulos más pequeños, cada subprograma procesa las tareas encomendadas, independientemente del otro. Todos ellos se conectan entre sí, pero su compilación se puede realizar por separado.

3.4.4 Polimorfismo y herencia.

El polimorfismo define comportamientos distintos para un método. Es decir, un objeto puede comportarse diferente ante mensajes distintos, dependiendo de la interacción con otros objetos.

Figura 8. Este gráfico muestra las características de la Programación orientada a objetos.

Fuente: Recuperado de

(27)

CAPÍTULO IV

LENGUAJE DE PROGRAMACIÓN JAVA

4.1 Lenguaje de Programación Java

Java es un lenguaje de programación de propósito general orientado a objetos, sus aplicaciones se pueden ejecutar en diferentes microprocesadores y sistemas operativos, como Windows, Linux, Android, etc.

Java es un derivado del lenguaje de programación C y C++, orientado totalmente a objetos, creado en sus inicios por James Gosling, de la empresa de software Sun Microsystems.

Para que corran los programas de Java se requiere instalar la máquina virtual de Java en la computadora. Esta permite que las instrucciones de lenguaje de alto nivel, escritas en java, se conviertan a código de lenguaje máquina. Puede correr en cualquier arquitectura de hardware y sistema operativo (Sanchez, 2009).

(28)

4.2 Características del Lenguaje Java

4.2.1 Orientado a objetos.

En Java y los lenguajes de POO, cualquier dato es tratado como objeto, y para acceder a estos objetos se requiere de interfaces. Java también soporta todas las propiedades y características de la programación orientada a objetos. Un sistema de cualquier tipo en Java trabaja con clases de objetos y sus copias denominadas instancias (Sanchez, 2009).

4.2.2 Robusto.

Cuando se compila un programa, el lenguaje revisa que no se produzcan errores de código. Lo mismo sucede cuando se ejecuta. Es por ello que se debe definir claramente los métodos de los objetos, para que no se produzcan errores. La memoria también es administrada eficientemente, no permitiendo que se corrompa.

4.2.3 Independiente de la Plataforma.

Cuando se compila las instrucciones de un programa Java, se crea un archivo objeto, archivo este que es independiente, es decir, que no depende de la arquitectura de la máquina, en que el programa correrá. La ejecución de las instrucciones se podrá realizar en cualquier dispositivo programable que tenga el sistema que permite ejecutarla. Gracias a su independencia soporta arquitectura de hardware y software como el sistema Windows o Unix (Sanchez, 2009).

4.2.4 Multitarea.

(29)

4.3 Sentencias básicas

Los Identificadores, son los nombres que se les da a los elementos de un programa, como clases, variables etc. Se tiene que cumplir con ciertas reglas para nombrarlas, como que no pueden iniciar con un número, debe contener letras y números y se excluyen las palabras reservadas.

Las palabras reservadas no se pueden utilizar en un programa en Java, cada palabra reservada ya está definida y cumple un propósito específico. Los programadores no pueden usarlas para crear identificadores, ya que al compilar el programa resultaría con errores. Estas palabras inician con una letra en minúscula.

En Java se conocen como datos primitivos a los números enteros, números reales, carácter y booleano o lógico.

Tabla 1

Datos primitivos

La tabla 1. Muestra los 8 tipos de datos primitivos del lenguaje Java.

(30)

Los operadores aritméticos en Java, se utilizan para realizar operaciones de cálculo tanto para los números enteros como para los números reales.

Tabla 2

Operadores aritméticos

La tabla 2. Hace referencia a los operadores aritméticos utilizados en el lenguaje Java.

Fuente: Recuperado de https://www.arkaitzgarro.com/java/capitulo-4.html

Los operadores aritméticos incrementales, son operadores unarios que agregan o sustraen uno de sus operandos, respectivamente.

Tabla 3

Operadores aritméticos incrementales

La tabla 3. Muestra los operadores de incremento y decremento del lenguaje Java.

(31)

El operador de asignación, permite asignar un valor a una variable, el resultado de una expresión numérica o una constante. El símbolo del operador es el signo = y este asigna el valor de derecha a izquierda.

Tabla 4

Operador de asignación

La tabla 4. Muestra el operador de asignación, siendo este un operador binario.

Fuente: Recuperado de https://www.arkaitzgarro.com/java/capitulo-4.html

Los operadores combinados, permiten simplificar las instrucciones de suma, resta, multiplicación, etc. Se combina el operador aritmético con el operador asignación.

Tabla 5

Operadores combinados

La tabla 5. Muestra los operadores combinados que permite simplificar las operaciones de cálculo.

Fuente: Recuperado de https://www.arkaitzgarro.com/java/capitulo-4.html

(32)

Tabla 6

Operadores de comparación

La tabla 6. Muestra todos los operadores de comparación.

Fuente: Recuperado de https://www.arkaitzgarro.com/java/capitulo-4.html

Cuando se trabaja con datos booleanos, el resultado es un valor booleano, para ello se utilizan los operadores lógicos.

Tabla 7

Operadores lógicos

La tabla 7. Muestra los 6 operadores lógicos.

(33)

El operador de concatenación de cadenas: Une dos cadenas a más, convirtiéndose en una sola cadena. Se puede concatenar de otros tipos, el resultado de la concatenación de datos de otro tipo, pasa a ser de tipo cadena.

Tabla 8

Operador de concatenación

La tabla 8. Muestra el operador de concatenación.

Fuente: Recuperado de https://www.arkaitzgarro.com/java/capitulo-4.html

4.4 Sentencia de selección

Esas sentencias de selección controlan la forma como se ejecutan las instrucciones en el programa. Si la condición es verdad, se realizan una o un bloque de sentencias; si la condición es falsa, se realizan otras instrucciones o no se realiza ninguna y continúa con la ejecución.

4.4.1 Sentencia de selección IF.

Esta sentencia permite realizar una o varias instrucciones, solo si la condición que establece se cumple; sino, continúa la ejecución del programa.

Ejemplo:

if (nota1 < =13) {

(34)

4.4.2 Sentencia de selección IF/ELSE.

Se lee: Si la condición es verdad se ejecutan las instrucciones después del if, el else da la opción a que se ejecuten otras instrucciones si la condición es falsa.

Ejemplo:

If (apagar > 2000) {

System.out.println (“No tiene descuento”) } else

System.out.println (“Calcular el descuento”) }

4.4.3 Sentencia de selección SWITCH.

La instrucción switch evalúa una expresión, y en función a su resultado selecciona las instrucciones que serán ejecutadas.

Sintaxis

Switch (monto) {

Case 500:

System.out.println (“Obsequio: Agenda”) Break;

Case 1000:

System.out.println (“Obsequio: Perfume”) Break;

Case 1500:

System.out.println (“Obsequio: Polo”) Break

Default:

(35)

4.5 Sentencias repetitivas

4.5.1 Bucle FOR.

La sentencia se compone de varios argumentos: Se inicializa la variable, se establece la condición, se incrementa la variable y se ejecutan las instrucciones.

Ejemplo:

short incremento = 0; For (int x = 0; x < 4; x++) {

incremento += x; }

4.5.2 Bucle WHILE.

En esta instrucción, primero se pregunta, si es verdad, se realiza el primer bucle, la variable se seguirá sumando, hasta que sea falsa.

Ejemplo: short nume = 0; short x = 0; while (x < 28) {

nume += x; x++; }

4.5.3 Bucle DO WHILE.

En esta instrucción se realiza el primer bucle, luego se pregunta, si la condición es verdad; si es así, la variable se seguirá incrementando, hasta que sea falsa.

(36)

short nume = 0; short x = 0; do {

nume += x; x++;

} While (x < 28);

4.6 Aplicaciones a la enseñanza y aprendizaje de la matemática

Presento en esta sección algunos problemas y las soluciones correspondientes, tomando en cuenta las sentencias nombradas.

Problema 1: Ingresar por teclado dos valores enteros, hallar la suma, la resta y la

multiplicación de cada uno de ellos. A continuación, presento el diagrama de flujo y su codificación en Java.

Datos de Entrada: Dos valores enteros

Proceso: Efectuar la suma, resta y multiplicación de los valores enteros.

(37)

Figura 9. Este diagrama de flujo muestra todo el proceso para hallar los cálculos solicitados de suma, resta y multiplicación. Fuente: Autoría propia

(38)

Problema 2: Ingresar por teclado dos valores y mostrar cuál es el mayor de los dos. Si son

iguales, indicarlo también. Los datos de entrada son dos valores enteros.

Proceso: Comparar n1 es mayor igual a n2, si es si, preguntar si n1 es igual a n2, si es si

escribir “Números Iguales”, sino escribir n1 es mayor que n2, sino escribir n2 mayor n1.

Figura 11. Este diagrama de flujo muestra todo el proceso de bifurcación según una condición. Fuente: Autoría propia

SI

NO

(39)

Figura 12. Esta figura muestra la codificación del problema planteado sobre condicionales. Fuente: Autoría propia

Problema 3: Mostrar los números del 1 al 100 (ambos incluidos) divisibles entre 2 y 3, con

los datos de entrada : Asignar 1 a la variable num.

Proceso: Hacer mientras num sea menor igual a 100, resto de num entre 2 es igual a 0 o resto

(40)

Figura 13. Esta figura muestra la codificación del problema planteado, creándose un ciclo repetitivo, hasta cumplir una condición.

Fuente: Autoría propia

Figura 14. Esta figura muestra la codificación del problema planteado, creándose un ciclo repetitivo, hasta cumplir una condición, para ello se usa la instrucción While.

(41)

APLICACIÓN DIDÁCTICA

SESIÓN DE APRENDIZAJE

“RECONOCEMOS Y HACEMOS USO DE OPERADORES ARITMÉTICOS EN

UN LENGUAJE DE PROGRAMACIÓN, IDENTIFICANDO LOS SIGNOS”

I. DATOS INFORMATIVOS

Área : Matemática

Unidad : Me identifico con mi cole N° de Sesión : 6

Fecha : 21 – 04 - 2019 Duración : 90 minutos

Profesor : Luis Guillermo Pinto Huaranga II. PROPÓSITOS DE APRENDIZAJE

Competencia : Resuelve problemas de cantidad.

Capacidades : Comunica su comprensión sobre los números.

Campo temático : Operadores aritméticos en lenguajes de programación Java. III. ENFOQUES TRANSVERSALES

Enfoque priorizado : Búsqueda de la excelencia.

Acciones Observables : Disposición a adquirir cualidades para su mejor desempeño. IV. PROPÓSITO DE LA SESIÓN

Reconocer y hacer uso de los operadores aritméticos en el lenguaje Java. V. RECURSOS Y MATERIALES

(42)

Fundamentos de la programación (208) Madrid; Editorial Interamericana de España. Paleógrafos, plumones, cartillas, laminas, multimedia, presentación electrónica.

VI. SECUENCIA DIDÁCTICA

INICIO TIEMPO: 20

Bienvenida, explicación del objetivo de la clase y propuesta de los siguientes casos significativos.

.

A partir de las cartillas, el docente realiza las siguientes interrogantes: Enunciado 1: Dentro de 24 horas, ¿a qué temperatura se hallará el congelador?

(43)

Se explica al alumno que el propósito de la sesión de clases es reconocer y hacer uso de los operadores aritméticos en el lenguaje Java, para dar solución a problemas con números enteros.

DESARROLLO TIEMPO: 50

El docente presenta las siguientes diapositivas y explica que hay muchos casos en donde encontraremos los números negativos.

Temperatura bajo cero: En diferentes regiones del Perú se llegan a temperaturas de 10° C.; por ejemplo: Apurímac, Ayacucho y Moquegua.

Altitudes:

Usamos las palabras “sobre el nivel del mar” y “bajo el nivel del mar” cuando hablamos de la altitud de algunas regiones del Perú, cerros, lagos o lugares. Cuando decimos “a nivel del mar” nos referimos al “cero normal”.

Fechas:

(44)

Ganancias de una empresa: este gráfico representa las ganancias de una empresa. Se analizará con los estudiantes y se realizará las siguientes preguntas: ¿Qué barras representan las ganancias y que barras representan las perdidas? ¿Por qué?

Para dar significado a los operadores aritméticos en Java, el docente explica a los estudiantes sobre los operadores de suma y resta, e ingresan al programa para realizar la solución de los problemas propuestos.

A partir de la última imagen del PPT, referida a ganancias de una empresa, el docente retoma el proyecto del quiosco escolar y explica a los estudiantes que es importante prever cuáles serían las ganancias o pérdidas.

En la sesión anterior, el docente señaló como tarea que investiguen los gastos y costo de los productos a venderse en el quiosco.

Los estudiantes se organizan en grupos de trabajo (los mismos ya formados desde la sesión 1) y se entregan las fichas de trabajo, para su desarrollo.

Se realizará con el estudiante el siguiente análisis: Ingreso – Egreso = Ganancia o pérdida.

CIERRE TIEMPO: 20

Metacognición:

(45)

Evaluación:

Los estudiantes, en equipos de trabajo, presentan en un papelote una situacion de contexto real sobre números enteros y exponen.

Reforzamiento:

El docente solicita a los estudiantes elaborar los diagramas de flujo de cada enunciado. Conclusiones finales:

En muchos casos de la vida diaria se usarán tanto números enteros como números naturales. Los números enteros amplían la solución de problemas que los números naturales no pueden solucionar, como las situaciones de resta entre números de diferentes signos. Tomando en cuenta que el cero es un elemento neutro, trazo la recta numérica y escribo un número positivo y negativo.

(46)

SÍNTESIS

El tema de la presente monografía trata sobre dos paradigmas de lenguajes de programación: el estructurado y el orientado a objetos. Las diferentes categorías de lenguajes, como lenguajes de bajo nivel y de alto nivel, han permitido que el programador pueda comunicarse con la computadora e instruirla para que realice un sinfín de acciones. Desde Charles Babbage y muchos otros investigadores, la historia de los lenguajes de programación ha ido

evolucionando, desarrollándose nuevos paradigmas que buscan siempre optimizar todo el proceso de codificación de los programas. Los algoritmos permiten resolver problemas mediante una secuencia de pasos bien definidos, ayudando a la codificación posterior del programa que se quiere construir. La programación estructurada utiliza estructuras de flujo de control para la construcción de un programa: secuencial, condicional y repetitiva. Luego se hizo necesario un nuevo paradigma modular que permitía descomponer el problema en subproblemas (Módulos), de tal forma que la resolución del problema se hacía más simple de resolver. Pascal fue uno de los lenguajes que usó el paradigma de la programación

(47)

APRECIACIÓN CRÍTICA Y SUGERENCIAS

En la actualidad, la enseñanza de los lenguajes de programación en los colegios tiene que ser un proceso dinámico y continuo. El uso de las tecnologías de innovación y comunicación permite que el estudiante interactúe con estos medios electrónicos de forma natural para su desarrollo y aprendizaje. El método tradicional de enseñanza en las escuelas ya no es

apropiado, porque se basa en lo memorístico y no en la capacidad del alumno en construir su propio conocimiento.

Creo necesario que los estudiantes tengan conocimiento y dominio de lenguajes de programación, ya que les permitirá el desarrollo de habilidades tecnológicas y así afrontar nuevas competencias y exigencias de la era digital.

Enseñar al estudiante a resolver problemas matemáticos utilizando lenguajes de programación, y posteriormente desarrollo de nuevos proyectos, fomenta el pensamiento computacional, un proceso de razonamiento que estructura la mente y ordena las ideas.

Las escuelas públicas y privadas están ya inmersas en el uso y desarrollo de las TIC en sus procesos de enseñanza y aprendizaje. Lenguajes como el Scratch o el Arduino, que permiten que el estudiante aprenda y utilice conceptos de programación, ya se están implementando.

(48)

REFERENCIAS

Booch. (2013). Orientación a objetos. Pearson Education.

Grady, B. (2001). Analisis de diseño orientado a objetos con aplicaciones. Mexico: S.A. Alhambra Mexicana.

Hernandez. (2013). https://www.fdi.ucm.es. Obtenido de https://www.fdi.ucm.es/profesor/luis/fp/FP.pdf

Joyanes. (2003). Fundamentos de Programación. Libro de problemas (Segunda ed.). Interamericana de España.

Joyanes. (2006). Programación en Pascal (Cuarta ed.). Interamericana de España. Joyanes. (2008). Fundamentos de la programación. Madrid: Interamericana de España. Joyanes. (2008). Fundamentos de Programación. Algoritmos, estructura de datos y objetos.

Madrid: Interamericana de España.

Joyanes. (2018). Fundamentos de programación. Madrid: Interamericana de España S.A.U. López. (2009). Algoritmos y programación (Segunda ed.).

Ramirez. (2007). Introducción a la programación. AlfaOmega. Rojas. (26 de Agosto de 2011). muycomputerpro.com. Obtenido de

(49)

CONCLUSIONES

Los lenguajes de programación permiten comunicarnos con la computadora, sin ellos sería imposible instruirla para que realice una acción determinada y resolver problemas tan complejos que hoy en día la sociedad exige en el comercio, la industria, el ocio, etc.

A través de la historia han aparecido nuevos paradigmas y lenguajes de programación que han desarrollado su filosofía completamente o han coexistido para crear un sinnúmero de programas y aplicaciones específicos para cada tarea diferente.

La programación orientada a objetos es el nuevo paradigma que ha permitido el avance de los lenguajes de programación, ya que sus conceptos se asemejan al “mundo real”,

permitiendo un programa confiable, comprensible y eficiente en términos de tiempo de ejecución y consumo de espacio. El desarrollo de los lenguajes de programación va evolucionado, existiendo una gran gama de lenguajes y aplicaciones que hoy en día las

(50)

APÉNDICE

Anexo 1

(51)

Anexo 2

Ficha de trabajo

1. Realice el balance económico del negocio de principales productos de un quiosco escolar tomando en cuenta los ingresos y egresos semanales, según el cuadro que se muestra a continuación. De acuerdo a los resultados obtenidos, ¿será conveniente iniciar un negocio similar?

PRESUPUESTO: S/. 400

INGRESOS SEMANALES EGRESOS SEMANALES

Producto Precio por

unidad (S/) Cantidad

Total (S/) Servicios/ preparado de: Monto (S/) Refresco de

quinua 0,50 80 Agua 15

Postres de frutas 2,00 70 Energía eléctrica 20

Sándwich de

pollo 1,50 20

Pago de

personal 100

Galletas 0,50 168 Refresco de

quinua 38

Ají de gallina 2.00 50 Postres de

frutas 90

Sándwich de

pollo 20

Galletas 42

Ají de gallina 75

Total Total

a. ¿Cuál es la diferencia entre el ingreso y el egreso? ¿Qué indica el signo negativo en el resultado?

Figure

Figura 2. Diagrama de flujo que muestra el proceso para calcular la edad.   Fuente: Autoría propia
Figura 3.  Sentencia que muestra el flujo condicional.   Fuente: Autoría propia
Figura 5. Esta figura muestra los nombres de Lenguajes orientados a objetos.
Figura 6. Entidades que representan objetos.
+7

Referencias

Documento similar

Analizar, diseñar e implementar aplicaciones, ya sean en entorno web, para dispositivos móviles, videojuegos o de ámbito general, utilizando los lenguajes de programación y

Se especifica y describen los lenguajes de programación, gestor de base datos y otras herramientas de trabajo que son necesarias para el desarrollo del Subsistema Ayuda, así

Se tienen en cuenta la política de migración hacia el software libre en el ámbito nacional, las aplicaciones de los generadores de informes en los SCADA, los lenguajes de

El desarrollo de este tipo de Web es más complicado, pues requieren conocimientos específicos de lenguajes de programación así como creación y gestión de bases de datos,

Además se han descrito una serie aspectos relacionados con la información y el control de esta dentro de un sistema web, así como los lenguajes de programación, las tecnologías,

En este capítulo se realizará una comparación entre los posibles lenguajes de programación a emplearse en el desarrollo de un sistema web como el que se propone con el presente

Una vez realizado el análisis de las tecnologías y lenguajes de programación más usados en la actualidad para el desarrollo de sistemas informáticos de este

Se analizan y explican las técnicas de programación, y lenguajes usados para la implementación del sistema, así como algunas de las herramientas empleadas tales como el sistema