CAPÍTULO 1: INTRODUCCIÓN A LA PROGRAMACIÓN 1.1

Anuncio
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca CAPÍTULO 1: INTRODUCCIÓN A LA PROGRAMACIÓN Estimado(a) estudiante, iniciamos el estudio de la asignatura abordando temas
fundamentales que se requiere conocer dentro del maravilloso mundo de la
programación; teniendo claro que la actividad de crear programas es un
ejercicio mental que se debe cultivar a través de la práctica. Apoyado, en
etapas iniciales, de estrategias adicionales como: diagramas de flujo y
pseudocódigo.
Muchas personas consideran que la programación es un arte, en donde muchos
son los llamados, pero pocos los elegidos. En nuestra experiencia personal,
podemos afirmar que no es un arte, sino una técnica que todos podemos
aprender, pero que exige de nosotros dedicación y sobre todo constancia.
La estrategia que tomaremos para aprender a programar es resolver muchos
problemas a través de la implementación de programas en pseudocódigo, pero,
con el afán de que no se convierta en una actividad “aburrida”, asociaremos lo
aprendido (en pseudocódigo) con la construcción de nuestros primeros
programa usando Java y NetBeans.
Esta estrategia les permitirá a ustedes, no solamente aprender un lenguaje de
programación, sino que también contarán con un mecanismo de comprobación
del correcto funcionamiento de sus programas escritos en pseudocódigo;
porque un lenguaje de programación no dejará pasar algún error que podemos
haber cometido y que en papel es difícil de encontrar.
Comencemos revisando los conceptos básicos de programación porque las
dificultades que suelen presentarse en temas más avanzados surgen por la falta
de comprensión de los principios básicos de la materia.
1.1 Conceptos básicos de programación Iniciamos el desarrollo de la materia y es necesario, como en toda actividad del
conocimiento, fundamentar nuestras acciones analizando una serie de
conceptos básicos, en este caso particular, de Programación. Estos conceptos se
desarrollan en el Capítulo 1 del texto básico.
Los invitamos a analizar los conceptos generales que menciona
el texto básico en las páginas 20 a la 24. Es necesario poner
énfasis en la Figura 1.1 “Diagrama que describe la organización
funcional de una computadora”, en donde se describe la
organización funcional de un computador, ya que ella les
ayudará a entender como funcionan los diferentes programas
que se ejecutan en un computador. Los demás conceptos son
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca ya conocidos y de uso cotidiano.
Desde la página 24 hasta el final del capítulo se analizan los conceptos más
importantes para la materia y posiblemente para la carrera. Los conceptos son:
Programa, lenguaje de programación y sus características (que nos ayudan a
comprender los diferentes tipos de error que se presentan cuando se
programa), programación y características de un buen programa (ponga
especial énfasis en este listado ya que eso buscamos – elaborar buenos
programas), el proceso de programación y el algoritmo. No es necesario que
memorice los conceptos, es necesario que los entienda y los pueda explicar con
sus propias palabras y términos.
Es necesario llamar su atención y profundizar en la explicación de un par de
conceptos, empezando por el apartado 2 “Análisis del problema” del proceso de
programación (página 27 del texto básico). En la materia de Lógica de la
programación se explica como a través de la identificación de 3 elementos se
puede resolver un problema: entrada (materia prima), proceso y salida
(información); aunque posiblemente el orden de ejecución que muestra el texto
básico es diferente, son los mismos conceptos que usted ya domina, y que
también los aplicará en esta materia.
Observe como construir un programa va más allá del hecho de escribirlo, se
incluyen acciones previas y posteriores al proceso de escribir un programa
(paso 4 de la lista que se muestra en el texto básico). En esta materia se
ejecutaran los pasos 1, 2, 3 y 4 dejando de lado los últimos ya que ellos
implican otras acciones que se encuentran fuera del alcance de la materia.
Otro de los conceptos que detallaremos un poco más es el de algoritmo (página
29 del texto básico) y sobre todo en su diferencia con el concepto de programa
(página 24 básico) ya que en principio generan cierta confusión por su
similitud; pero la clave para poder diferenciarlos es su
“proximidad” al
computador. Un programa está mucho más pegado a un computador ya que es
un conjunto de instrucciones que un computador puede ejecutar; mientras que
las instrucciones de un algoritmo no pueden ser ejecutadas por un computador.
Generalmente se usan algoritmos como paso previo a la creación de un
programa, inclusive existen algoritmos no computacionales.
Avancemos y ahora centremos nuestra atención en las páginas 30 y 31 del
texto básico, existen 2 ejercicios que debe analizarlos, aunque les puedan
parecer triviales, ellos nos muestran como elaborar un algoritmo y nos
proporcionan nociones básicas de una estructura de control que poseen los
lenguajes de programación, los ciclos repetitivos (Revisar la nota de la página
33 en el texto básico).
Recuerden
que
dentro
de
la
materia
vamos
a
resolver
problemas
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca computacionales, por lo tanto vamos a continuar nuestro estudio analizando los
elementos que permiten resolver un problema y expresar la solución en
pseudocódigo.
1.2 Elementos para solucionar problemas en pseudocódigo Acuda nuevamente al texto básico y realice una lectura
comprensiva del Capítulo 2 “Elementos para solucionar
problemas en pseudocódigo”, a partir de la página 35 hasta la
47. Revise detalladamente las explicaciones que ahí se hacen.
¿Qué le pareció la lectura? ¿Comprendió? Si es así avancemos y repasemos
ciertos elementos de la lectura anterior.
Los elementos que nos permitirán diseñar algoritmos son: las estructuras de
datos, los datos numéricos enteros y reales, datos carácter, cadena de
caracteres; las operaciones primitivas elementales: declaraciones de variables,
constantes y tipos, lectura de datos (entrada), escritura de datos (salida);
operaciones aritméticas fundamentales (sumar, restar, multiplicar y dividir) y
las estructuras de control. En el texto básico se explica, muy bien, el uso a
través de pseudocódigo, mientras que aquí, en la guía, lo haremos con código
Java. Es necesario recordarles que es importante que primero se entienda el
pseudocódigo, por lo que les invitamos a leer por completo el capítulo 2 del
texto básico y luego se pase a esta sección de la guía para encontrar algunas
explicaciones adicionales y sobre todo la relación con Java.
Analicemos el primer elemento, las estructuras de datos y veamos su
equivalente en el lenguaje de programación Java.
1.2.1 Estructura de datos Recurra una ocasión más al texto básico y revise el apartado en la página 36.
Ahí se exponen la fundamentación teórica relacionada con el pseudocódigo,
mientras que aquí vamos a desarrollar los conceptos relacionados con Java.
La siguiente imagen sintetiza los tipos de datos que posee Java.
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Ilustración 1 Tipos de datos en Java
Los últimos rectángulos (empezando desde abajo hacia arriba) muestran los
nombres de los tipos de datos en Java, mientras que los intermedios muestran
los nombres que usa el texto básico.
Si observamos los tipos de datos enteros, vemos que existen una gran cantidad
de tipos de datos, la diferencia está en la cantidad de bytes que cada tipo de
dato usa para su representación interna, lo que implica que cada uno de ellos
trabaje con un segmento de los números enteros así por ejemplo, el tipo byte
comprende desde el -128 hasta el 127. El tipo de dato byte es el más pequeño
y el long es el más grande. Igual sucede con los tipos de datos reales, la única
diferencia son los bytes que utilizan cada uno de ellos.
Una observación final, vemos como dentro de los tipos de datos enteros se
incluye el tipo de dato carácter, pero en el texto básico ese tipo de dato puede
ser una letra, un número o un símbolo especial ¿por qué la diferencia? Dentro
de Java un tipo carácter (char) se representa como un número entero, luego
veremos algunos ejemplos prácticos que nos ayudarán a despejar esta y
cualquier duda.
Generalmente en Java, cuando se trabaja con números enteros se usa el tipo
int, mientras que para números reales se usa double, para empezar esta bien
y por ahora, no nos preocuparemos demasiado en la selección del mejor tipo
de dato. Es decir que cuando estemos “traduciendo” un programa en
pseudocódigo a lenguaje Java el tipo de dato entero corresponderá a int y el
tipo de dato real corresponderá a double.
Es necesario que revise con detalle los apartados 2.1.2 “Variables” y 2.1.3
“Constantes” del texto básico en especial el tema de las variables ya que son
elementos esenciales en la construcción de programas (en pseudocódigo o
cualquier lenguaje de programación). Una vez hecha la lectura trate de
responder en sus propias palabra a la pregunta ¿cuál es la principal diferencia
entre una variable y una constante?
La siguiente ilustración muestra como se hacen las declaraciones en Java,
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca primer punto del tema 2.2 “Operaciones primitivas elementales”, página 39 del
texto básico.
Ilustración 2 Declaraciones en Java
En la imagen anterior se muestra un programa escrito en Java. El programa
tiene otros elementos a los que se menciona en el texto básico, pero es
importante mostrarlos para conocer la ubicación de las declaraciones de las
constantes (línea 16), tipos (líneas 18-20), objetos (línea 24) y variables (líneas
26 y 27).
También podemos observar como existen líneas de código que empiezan con //
(líneas 15, 17, 23 y 25) a estas líneas se las denomina comentarios y su
propósito es documentar un programa. Existen otros tipos de comentarios que
los iremos estudiando más adelante.
Podemos observar también como existen diferencias entre el pseudocódigo y el
código Java. Así tenemos que para la declaración de variables primero se ubica
el tipo de dato, luego el nombre o identificador de la variable. De la misma
manera existe una marcada diferencia entre la declaración en pseudocódigo
para las constantes y tipos (que en Java se denominan enumeraciones).
Mientras que la declaración de objetos, en pseudocódigo y Java son iguales.
Entre Java y el pseudocódigo no solamente existen diferencias, ya que si
analizamos las reglas para asignar nombres a las variables, página 37 del texto
básico, las 4 reglas se aplican de igual manera a los nombres de las variables
en Java, aunque para la regla número 4, el conjunto de palabras reservadas en
Java es mucho más amplia.
Una palabra reservada (generalmente en Inglés) tiene un significado especial
para el lenguaje de programación y que el programador no puede usar en
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca ninguna de las declaraciones que haga.
Otros elementos fundamentales para elaborar programas son el ingreso y la
escritura o salida de datos. Para explicar como se hace el ingreso y salida de
datos en Java, usaremos un programa que pide al usuario que ingrese su
nombre, edad y estatura, presentando como salida los mismos datos. En la
Ilustración 3 puede observar un programa sencillo que muestra como trabajar
con la entrada y salida de datos.
Ilustración 3 Entrada y escritura (salida) de datos en Java
Si revisan los programas Java que se encuentran en el CD del texto básico,
encontrarán que para las tareas de lectura y salida de datos se usan otros
mecanismos. Les recomendamos usar los mecanismos expuestos en este
documento, ya que son sencillos, fáciles de aprender y recordar; y son mucho
más actuales que los usados en el texto básico.
Analizando la imagen anterior, podemos ver que: para realizar el ingreso de
datos, necesitamos declarar un objeto del tipo Scanner, línea 22; luego y tal
como se muestra en la página 43 del texto básico, debemos solicitar el ingreso
de los datos (líneas 25, 29 y 32) a través de mensajes impresos en pantalla.
Una buena práctica de programación es solicitar el ingreso de los valores para
las variables de una en una y no en un solo mensaje, como muchas veces se
hace en el texto básico.
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca La lectura de datos se podría decir que es asignar el valor que ingresa el
usuario a una variable; y en Java se lo hace como se muestra en las líneas 27,
30 y 33. Vemos también que para cada tipo de dato existe una forma diferente
de leerlo, así que next() lee cadenas de caracteres (String en Java);
nextInt() lee valores enteros (int en Java) y nextDouble() lee valores reales
(double en Java).
Es importante señalar que para hacer uso de la clase Scanner es necesario
indicarle al compilador de Java en donde se encuentra dicha clase. Esto se logra
con el código que se encuentra en la línea 15, por ahora no entraremos en
detalles.
Para la escritura de datos o también denominada salida, en Java se usa el
método printf, si analizamos las líneas 36 y 37 vemos como se realiza la
escritura. Podemos decir que el método printf tiene 2 partes. La primera, todo
lo encerrado entre comillas dobles, es el texto a mostrar. La segunda parte que
es una lista de variables separadas por comas.
Veamos una imagen de la ejecución del programa.
Ilustración 4 Ejecución del programa que muestra la Ilustración 2
En la sentencia System.out.printf que se muestra en la línea 36 de la
Ilustración 3 Entrada y escritura (salida) de datos en Java, lo encerrado entre comillas
dobles, podemos ver que existen elementos como: %s, %d y %f, dichos
elementos señalan las posiciones que ocuparan los valores de las variables.
Pero ¿por qué %s, %d y %f? Porqué son variables de diferente tipo de dato,
entonces %s se usa para mostrar variables tipo String (cadena de caracteres),
%d para mostrar variables tipo int (entero) y %f para mostrar variables tipo
double (real). También podemos ver un elemento \n, este se conoce como
secuencia de escape y cuando se ejecute el programa, será reemplazado por un
salto de línea. Existen otras secuencias de escape, una de las más usadas es
\t, que será reemplazado por un tabulador hacia la derecha.
La segunda parte muestra las variables cuyos valores reemplazarán los
elementos %s, %d y %f. Es importante ubicar las variables en el mismo
orden en el que se dispusieron el o los elementos que empiezan por %, sino es
así podemos encontrarnos con resultados inesperados o con errores,
especialmente porque cada elemento que inicia con % representa un tipo de
dato diferente, como se mencionó anteriormente.
No existe ninguna relación en el orden de lectura de los datos y el orden que
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca ocupan en la escritura o salida. El orden depende exclusivamente de las
necesidades del programa.
Hasta aquí hemos cubierto el primer capítulo de nuestra materia y lo hicimos
analizando conceptos generales de computación, para luego analizar conceptos
básicos de programación y relacionarlos con el lenguaje de programación Java.
Finalmente los invitamos a revisar los Anexos A – Cómo Instalar Java y
NetBeans; y Anexo B - Cómo crear nuestro primer programa en NetBeans.
Para ampliar el tema expuesto, le proponemos que lea detenidamente el
siguiente material.
Material adicional:
En el CD que se adjuntó en la guía didáctica (programación-en-javai\Contenidos\LecturaObligatoria\), revisar el archivo:
1-Introducción.pdf – Hasta el punto 1.1
Una vez estudiado el capítulo es necesario comprobar que ha asimilado lo
explicado hasta ahora, por lo que proponemos que realice la siguiente
autoevaluación. Recuerde que las respuestas a todas las autoevaluaciones las
puede encontrar en las secciones finales de la guía didáctica.
Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).
Descargar