Professional Documents
Culture Documents
Introduccin a la programacin
Contenidos
Datos, algoritmos y programas.
Paradigmas de la programacin.
Lenguajes de programacin.
Herramientas y entornos para el desarrollo de programas.
Errores y calidad de los programas.
Para que el ordenador pueda realizar esta tarea necesita del hardware y software:
1. Hardware. Son todos los componentes fsicos del ordenador (parte fsica):
= UCP.
= Memoria.
= Dispositivos de almacenamiento secundario (discos, pendve, disco duro, etc.).
= Perifricos (teclados, Impresoras, monitor, etc.)
2. Software. Es un conjunto de programas que controlan el funcionamiento del ordenador
(parte lgica). Dicho software se divide en dos grandes grupos:
= Software de sistema (S.O., driver, compiladores...).
= Software de aplicacin (programas de contabilidad, programas de tratamientos de
texto, programas de gestin de base de datos, etc.).
Para que el ordenador pueda realizar una determinada tarea es necesario el uso de un programa.
Los pasos para crear un programa son:
1. Planificacin. Esta fase consiste en lo siguiente:
1.1. Conocer por encima la actividad que se quiere informatizar.
1.2. Plantear varias soluciones informticas.
Pgina 1 de 16 [Programacin]
[Introduccin a la programacin]
3.2. Indicar todos los pasos que tiene que realizar un programa con el fin de realizar una
determinada tarea (algoritmo).
4. Transformacin del algoritmo en un programa (Codificacin).
5. Compilar, enlazar y depurar.
6. Ejecucin y validacin del programa.
En este libro vamos a ver los pasos a partir del punto 3.2 para conseguir desarrollar una aplicacin.
Ejemplo
Un algoritmo para indicar lo que hay qu hacer para sumar dos nmeros (que se insertan a travs del
teclado) sera:
Inicio
Visualizar un mensaje pidiendo el primer nmero.
Capturar el dato.
Visualizar otro mensaje pidiendo el segundo nmero.
Capturar el segundo dato.
Sumar los dos nmeros.
Visualizar la suma
Fin.
package entradadatos;
import java.io.*;
class Principal
(
public static void main(String args[ ])
(
String dato1String, dato2String;
int datolInt,dato2Int, suma;
InputStreamReader flujo = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(flujo);
try
{
System.out.print(\n\n\tInserte el primer dato: );
dato1String=teclado.readLine();
Pgina 2 de 16 [Programacin]
[Introduccin a la programacin]
De esta forma, podemos enviar al ordenador las operaciones que tienen que realizar para poder sumar dos
nmeros.
2. Paradigma Declarativo: no se empieza planteando los pasos que hay que seguir para realizar
una determinada tarea, sino que se encarga de estudiar cmo funciona dicha actividad.
El paradigma declarativo puede ser: una programacin funcional, una programacin lgica
o una mezcla de ambos:
2.1. Paradigma Funcional: este paradigma consiste en el uso de funciones matemticas.
Est representado por Scheme o Haskell.
2.2. Paradigma lgico: se basa en la determinacin de una serie de reglas lgicas. Ejemplo:
prolog.
3. Paradigma Estructurado: consiste en agrupar cdigo (funciones), as como el uso de estructuras
de control. Con este tipo de programacin conseguimos reutilizar cdigo ya existente y facilitar la
lectura del programa.
4. Paradigma Orientado a Objetos: est basado en la idea de encapsular en un solo bloque los
datos y las operaciones que manejan esos datos. Ej.: C++, Java, Visual Basic .NET, etc.
Su principal ventaja es la reutilizacin de cdigos y la facilidad para hacer ciertos programas.
Puede haber otro tipo de paradigmas que se caractericen en algo especial por su forma de obtener
los programas.
Pgina 3 de 16 [Programacin]
[Introduccin a la programacin]
= Lenguajes de bajo nivel: aprovechan al mximo los recursos del ordenador donde se van a
ejecutar. Los lenguajes de ms bajo nivel son los lenguajes de mquinas. A este nivel le sigue el
lenguaje ensamblador.
Un ordenador realizar cada una de las instrucciones indicadas en un programa. Dicho programa
podr estar escrito en muchos lenguajes de programacin, pero solo hay uno que entiende el
ordenador: el lenguaje mquina.
Pgina 4 de 16 [Programacin]
[Introduccin a la programacin]
Si el programa no est escrito en dicho lenguaje, habr que hacer una traduccin para que el
ordenador lo entienda.
Segn cmo se realice dicha traduccin, se pueden dividir en dos grupos:
= Lenguajes compilados: se traducen a travs de un programa traductor llamado compilador.
Dicho programa traduce todo el cdigo al lenguaje mquina, generando un nuevo fichero ejecutable
que contiene la misma informacin que el fichero original (cdigo fuente), pero escrito en lenguaje
mquina. Si no hay cambios en el fichero original, no har falta volver a realizar de nuevo dicha
traduccin. Por ejemplo: C, Pascal, etc.
= Lenguajes interpretados: supone tener que traducir el programa cada vez que se quiera
ejecutar. A los programas que realizan dicha traduccin se les llama Intrpretes. Estos no generan un
fichero ejecutable; esta es la razn por la que hay que realizar la traduccin cada vez que se ejecute
el programa. Un ejemplo vlido sera Basic.
La ventaja de los lenguajes compilados frente a los Interpretados es que no hace falta traducir el
programa cada vez; sin embargo, su inconveniente es que no podremos ejecutar el programa hasta
que no haya ningn error. Los intrpretes van traduciendo y ejecutando instruccin a instruccin, lo
cual hace que se pueda ejecutar el programa aunque haya errores. Cuando llegue a dicha
instruccin errnea, se parar el programa.
Para obtener las ventajas de ambos tipos de lenguajes, algunos combinan estas dos tareas:
= En primer lugar se realiza la fase de compilacin traduciendo el programa fuente a un lenguaje
intermedio. Dicha traduccin se guarda en un fichero. ;
= En segundo lugar, dicho fichero es traducido al lenguaje mquina cada vez que se quiera ejecutar.
Esto equivale a la fase de interpretacin.
A este tipo de lenguajes, que trabajan de esta forma, se les llama lenguajes intermediarios. Un
ejemplo es el lenguaje Java.
En Java, los ficheros que contienen el programa fuente tienen extensin java y los ficheros que
contienen la traduccin al lenguaje intermedio son de extensin class. El lenguaje intermedio que
usa Java se llama "bytecodes".
Pgina 5 de 16 [Programacin]
[Introduccin a la programacin]
El programa traductor que se use para trabajar con Java tendr que ser capaz de llevar a cabo dicha
forma de traduccin.
Existen diferentes programas que permiten poder desarrollar programas escritos en Java. Los ms
conocidos son: Eclipse y NetBeans. A lo largo de este curso vamos a usar el programa NetBeans.
Este programa es una herramienta de desarrollo de programas, conocida como IDE (Integrated
Development Environment). Dicho programa est formado por una serie de herramientas que utilizan
los programadores para poder realizar programas informticos. Entre las muchas tareas que permite
realizar este programa estn:
= Poder escribir un programa.
= Realizar la traduccin y ejecucin.
= Indicarnos los posibles errores que tiene el programa.
= Poder realizar interfaces grficas de una forma fcil.
Descarga de Internet el programa NetBeans e instlalo.
Vamos a conocer las funciones bsicas de dicho programa y, luego, lo iremos ampliando
segn lo vayamos necesitando.
Para crear un programa escrito en Java, lo primero que hay que hacer es crear un proyecto. Para ello
hay que ir a Archivo -> Proyecto -> Nuevo -> Java -> Aplicacin Java y dar a siguiente.
En la ventana que se visualiza hay que indicar qu nombre quieres dar a tu proyecto y dnde lo
quieres guardar. Al crear un proyecto, lo que realmente habr hecho el programa es generar una
carpeta (con el nombre indicado) donde guardar todos los recursos y cdigo que contenga el
programa que vas a realizar.
En esta ventana hay dos opciones muy importantes que tener en cuenta:
= La casilla que te permite crear el mtodo main. Este mtodo es obligatorio en todo proyecto ya que
es por donde va a empezar a ejecutar el programa. Este mtodo lo puede escribir el programador o
lo puede generar el programa automticamente. El primer nombre que te indica en dicha casilla es el
nombre del paquete; el programa, por defecto, el nombre que le pone es el nombre del proyecto. Los
paquetes son diferentes carpetas que se pueden crear en un proyecto para meter los distintos
ficheros "java" que vas a Ir creando y tenerlo todo bien organizado.
El segundo nombre que te indica es el nombre de la clase (ficheros "java") donde va a meter el
mtodo main. Le da el nombre de Main. Todo cdigo en un lenguaje orientado a objetos est metido
dentro de clases.
Puedes cambiar el nombre del paquete y el nombre de la clase dnde vas a meter el mtodo main.
Te recomiendo, por ahora, que tengas esta opcin activada.
Pgina 6 de 16 [Programacin]
[Introduccin a la programacin]
= La casilla que te permite que el proyecto que ests creando sea el principal. Esto se debe a que
puedes tener muchos proyectos abiertos y el que ejecutar siempre por defecto ser el que est
establecido como proyecto principal.
Sabremos cual es el proyecto principal porque tendr su nombre en negrita.
Una vez indicados todos los datos necesarios, le das a aceptar.
Una vez creado el proyecto, ya podremos escribir cdigo y ejecutarlo.
Ejemplo
Vamos a hacer un programa que visualice el mensaje:
"Mi primer programa escrito en Java"
La instruccin en Java para visualizar este mensaje, sera:
System.out.println(Mi primer programa escrito en Java);
Ejercicio
Crea un proyecto nuevo con el nombre de "proyecto2". El nombre del paquete tiene que ser
"paquete1" y el nombre de la clase (que contienen el mtodo main) tiene que ser "Principal". Dicho
programa debe visualizar estos dos mensajes:
"Ha comenzado la ejecucin de mi Segundo programa"
"Fin del programa"
El cdigo que tienes que tener, exactamente (dentro del mtodo main), es este:
package paquete 1;
public class Principal
{
public static void main(String[] args)
{
System.out.println(Ha comenzado la ejecucin de mi Segundo programa);
System.out.println(Pin del programa);
}
}
Para llevar a cabo la traduccin y ejecucin de un programa en Java no hace falta usar un entorno de
desarrollo. Dicho programa nos facilita la tarea, pero no es imprescindible.
Con tener instalado el JDK sera suficiente. El JDK tiene dos programas fundamentales:
Pgina 7 de 16 [Programacin]
[Introduccin a la programacin]
Ejercicio
Para poder comprobar esto, vamos a hacer lo mismo que hemos hecho antes, pero desde el smbolo
del sistema y usando el JDK.
Para ello, crea un fichero (con el nombre de visualMensaje.java) con cualquier editor que permita
generar un fichero con formato de texto bsico y escribe lo siguiente:
public class Principal (
public static void main(String[] args)
I
System.out.println(Se ejecuta con el JDK);
System.out.println(Fin del programa);
I
I
Gurdalo y ejectalo (desde consola), poniendo:
javac visualMensaje.java (este programa hace la traduccin a un lenguaje intermedio;
concretamente, a bytecodes)
java visualMensaje (este programa lo ejecuta)
Ejercicio
Dado el siguiente coaigo formado por dos clases:
= La clase Principal que contienen el mtodo main, es decir, por donde se empieza a ejecutar el
programa.
= La clase Alumno.
Ejercicio (cont.)
Clase Principal
Pgina 8 de 16 [Programacin]
[Introduccin a la programacin]
Clase Alumno
void pedirDatosAlumnoC )
String edadCadena;
try
}catch(IOException e)
void visualDatosAlumnoC )
Pgina 9 de 16 [Programacin]
[Introduccin a la programacin]
System.out.println(\n\n\t\tWOMBRE: + nombre);
System.out.println(\n\t\tEDAD: + edad);
Ejercicio (cont.)
enes que llevar este cdigo al ordenador y ejecutarlo. Cada clase debe de guardarse en un , hero
con extensin "java" con el mismo nombre que la clase.
:iay que hacerlo de dos formas: i Usando el JDK (sin ayuda del NetBeans).
Solucin:
Al poner javac y el nombre de la clase que tiene el main, compilar dicha clase y la clase Alumno (ya
que, dentro de la clase Principal hace referencia a la clase Alumno, y el compilador,
automticamente, va traduciendo dichas clases)
Y se ejecutar el proyecto.
2. Usando el NetBeans. Para ello, usa el proyecto que tienes ya creado y mete el cdigo de estas
dos clases en un nuevo paquete. Llama a dicho paquete "paquete2".
Solucin:
Pgina 10 de 16 [Programacin]
[Introduccin a la programacin]
Si pulsamos al botn derecho del ratn sobre "Paquetes de Fuentes", tomamos la opcin "nuevo" y
luego "paquete java". As podremos crear un nuevo paquete (una nueva carpeta) en el proyecto con
el nombre que le indiques. Una vez creado el paquete, pulsamos el botn derecho del ratn sobre
"paquete2", tomamos la opcin "nuevo" y luego "Clase Java". As podremos crear una nueva clase y
aqu insertaremos el cdigo de una de las clases.
Cuando lo ejecutemos, ejecutar el main del otro paquete. Esto es debido a que un proyecto puede
tener varios main en diferentes clases y el programa se empezar a ejecutar por el main que lo tenga
configurado. Por ello, como en nuestro ejercicio tenemos dos main, tenemos que cambiar la
configuracin ya que no es la deseada. Para ello, vamos al men Ejecutar -> Establecer la
configuracin del proyecto -> personalizar, donde pone main Class te indica en que clase busca el
main. Si quieres que lo busque en otra clase, le das a examinar y te indica donde estn todos los
main que tiene el proyecto. Seleccionas "paquete" y "clase" donde est el main por donde quieres
que empiece la ejecucin del programa.
Nota: observa que trabajando con NetBeans, aparece al principio de cada fichero java lo siguiente:
package nombrePaquete, sin embargo, trabajando con el JDK, esto no aparece. Esto es debido a
que la instruccin package sirve para indicar en que paquete (carpeta) est metido el cdigo de dicho
fichero y; cuando trabajamos con el JDK no tenemos esos paquetes creados. Por ello, no hay que
poner esa instruccin; si lo ponemos, dara error.
Las pruebas de software (testing) son una tarea que consiste en comprobar si un programa funciona
correctamente. Es uno de los pasos que seguir en el desarrollo de un programa.
Pgina 11 de 16 [Programacin]
[Introduccin a la programacin]
Errores de codificacin
Son los llamados errores de sintaxis (errores sintcticos) o en tiempo de compilacin. Se producen
cuando se incumplen las reglas sintcticas del lenguaje, como palabras reservadas del lenguaje mal
escritas, una instruccin incompleta, etc.
Cuando se produce este tipo de error, el programa traductor te sealar la instruccin que considera
errnea y el motivo de ello. Por lo tanto, son errores muy fciles de detectar.
Ejemplo
Ejecuta este programa y comprueba que se produce un error de codificacin; Esto va a impedir que
se pueda ejecutar. Arrglalo, cambiando la palabra Syste por System.
Ejemplo
Ejecuta este programa y comprueba que se produce un error de codificacin. Ejectalo y vers que
permite dicha ejecucin hasta la instruccin que est errnea. Arrglalo para que se ejecute todo el
programa (en el tercer System por comillas delante del \n).
) // cierra main
I // cierra clase
Pgina 12 de 16 [Programacin]
[Introduccin a la programacin]
Errores de ejecucin
Son los errores que se producen durante la ejecucin del programa. Surgen cuando se trata de hacer
algo imposible o ilgico.
Por ejemplo:
= Operaciones aritmticas imposibles.
= Convertir caracteres a nmeros, etc.
Se detectan porque se para la ejecucin del programa, lanzando el error que se ha producido.
Ejemplo
Ejecuta este programa con el fin de comprobar si falla en algn momento. Para ello, inserta un cero
como divisor o inserta letras en vez de nmeros.
import java.io.*;
public class Principal {
Pgina 13 de 16 [Programacin]
[Introduccin a la programacin]
Resolver este tipo de errores ya no es tan fcil de arreglar y, a veces, de detectar. Ya veremos a lo
largo del curso como controlar este tipo de errores.
Errores lgicos
Son los que el programa traductor no te da ningn mensaje de error. Es cuando el programa no hace
lo que tiene que hacer, es decir, da un resultado, pero no es el que debera ser.
La nica manera de detectarlos es realizando un nmero suficiente de pruebas con diferentes datos
y comparando los resultados obtenidos por el programa con los obtenidos "a mano" con esos
mismos datos. Estos errores son los ms difciles de detectar.
Ejemplo
String cadnum;
int numl,num2,suma;
try
Pgina 14 de 16 [Programacin]
[Introduccin a la programacin]
suma=numl * num2;
catch(NumberFormatException e){
System.out.printlnC\n\nN'o podemos realizar la suma por no insertar datos numricos.);
}
Errores de especificacin
Son errores producidos por un mal entendimiento de cuales eran los requisito:, que deba de cumplir
el programa. .
Pgina 15 de 16 [Programacin]
[Introduccin a la programacin]
Pgina 16 de 16 [Programacin]