
PRÓLOGO
El libro Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones nace como fruto de años de docencia en materias relacionadas: Algorítmica, Programación, Lenguaje C y Java, entre otros.Con el paso del tiempo he constatado que aprender un lenguaje de programación es relativamente sencillo y sobre este tema existen muchos y muy buenos textos. Pero aprender a programar es algo totalmente distinto, que necesita de un mayor esfuerzo y abordar el problema desde otra perspectiva. Siempre utilizo la metáfora del pianista para explicar el tándem programar/lenguaje de programación: saber tocar las notas de un piano es relativamente fácil, tan solo debemos anotar en cada una de las teclas a qué nota musical corresponde. Esto sería similar a conocer un lenguaje de programación. Es muy sencillo utilizar un if o entender la mecánica de un while.
Volviendo al piano: una vez que dominamos la relación tecla/nota, un pianista debe aprender muchas otras cosas para que aquello que está tocando suene bien; esto sería saber tocar el piano. Para saber programar, no basta saber cómo funciona una instrucción sino saber utilizarla conjuntamente con otras, en el orden y la forma adecuadas para que la aplicación que estamos creando suene bien.
Esta obra no es un libro para aprender java ni sus numerosas bibliotecas, es un libro que por medio de ejercicios resueltos, desde cero, y con la práctica facilita la asimilación de las técnicas de programación. Para aprender a programar la mejor forma es desvincular la lógica de la aplicación (cómo hacerlo) del lenguaje utilizado para implementarlo. Dicho en otras palabras: lo mejor es utilizar seudocódigo (un lenguaje teórico de alto nivel) donde no tengamos que preocuparnos por las particularidades del lenguaje de programación, ni por la rigidez de su sintaxis. El inconveniente de utilizar seudocódigo es que el lector no tiene nada tangible, nada con lo que se pueda comprobar el buen funcionamiento de la aplicación; por este motivo se ha decidido utilizar Java. Esta elección se justifica frente a otras alternativas, como el lenguaje C, que también es muy didáctico, simplemente por el hecho de que con Java podemos abstraernos un poco más, al ser un lenguaje de más alto nivel. También hay que decir que en la medida de lo posible no profundizaremos en las bibliotecas del lenguaje; en otras ocasiones esto será totalmente imposible de llevar a la práctica y hemos de trabajar con los detalles.
Para finalizar, desearía comentar que el libro se estructura como un conjunto de boletines de ejercicios que se resuelven de la forma más didáctica posible. Un programador experto seguramente encontrará soluciones mucho más elegantes y eficientes. Aquí nuestro principal objetivo es que el lector entienda qué está haciendo y por qué lo hace.
La dificultad de los boletines crece gradualmente y en cada boletín se trata un tema distinto. Una vez resueltos los ejercicios de un boletín podremos disponer de ellos para utilizarlos en posteriores boletines.
La resolución de los ejercicios no es única, y en ocasiones merece la pena ver otro enfoque distinto. Es por esto por lo que en algunos casos se han incluido varias soluciones.
Si el lector se enfrenta a la tarea de aprender a programar, este libro, junto con las clases que pueda recibir en una facultad, escuela técnica o ciclo formativo de grado superior, serán una ayuda eficaz para llevar a cabo su objetivo. Esta tarea debe tomarse sin prisas, entendiendo los detalles sutiles y dedicando mucho tiempo a la práctica.
Sevilla, octubre de 2010 Francisco M. Pérez Montes
INTRODUCCIÓN
Este libro está compuesto como una colección de boletines de ejercicios (se encuentran disponibles en el Apéndice I). En cada boletín se resuelven ejercicios con una temática común, de la siguiente forma:
Boletín 1...... Variables y condicionales
Boletín 2...... Condicionales y bucles
Boletín 3...... Bucles anidados
Boletín 4...... Tablas
Boletín 5...... Tablas n-dimensionales
Boletín 6...... Funciones
der, dejando de lado la eficiencia. Cuando existen distintas soluciones, utilizando distintos enfoques, se incluye más de una solución por ejercicio. La resolución de los ejercicios de programación, son el complemento ideal para las clases de programación impartidas en una facultas, escuela técnica o ciclo formativo de grado superior.
Otro aspecto importante es la entrada por teclado, algo primordial para poder introducir datos y probar nuestros programas. En un principio el alumno no debe tener los conocimientos necesarios para escribir el código que le proporcione dicha entrada. Algo similar ocurre en las asignaturas de programación, lo que plantea el problema de empezar a explicar código y funciones que se escapan al programador novel.
Por todo esto, se ha diseñado la clase Entrada, que permite realizar de forma transparente la entrada por teclado. Aprender a utilizarla es sencillo y proporciona una herramienta cómoda y fiable para dejar de preocuparnos por la entrada de datos. La clase Entrada se encuentra en el Apéndice II.
Boletín 1
Variables y condicionales
1. Pedir los coeficientes de una ecuación se 2º grado, y muestre sus soluciones reales. Si no existen,
debe indicarlo.
package bol01ej01;
public class Main {
public static void main(String[] args) {
double a,b,c; // coeficientes ax^2+bx+c=0
double x1,x2,d; // soluciones y determinante
System.out.println("Introduzca primer coeficiente (a):");
a=Entrada.entero();
System.out.println("Introduzca segundo coeficiente: (b):");
b=Entrada.entero();
System.out.println("Introduzca tercer coeficiente: (c):");
c=Entrada.entero();
// calculamos el determinante
d=((b*b)-4*a*c);
if(d<0)
System.out.println("No existen soluciones reales");
else{ // queda confirmar que a sea distinto de 0.
// si a=0 nos encontramos una división por cero.
x1=(-b+Math.sqrt(d))/(2*a);
x2=(-b-Math.sqrt(d))/(2*a);
System.out.println("Solución: " + x1);
System.out.println("Solución: " + x2);
}
}
}
Disfruta de todos los ejercicios descargando: Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones (PDF).
Comentarios
Publicar un comentario