- Libros
- Algoritmia - De las bases a la programación orientada a objetos en Java (con ejercicios y correcciones)
Algoritmia De las bases a la programación orientada a objetos en Java (con ejercicios y correcciones)
Presentación
Todos los lenguajes de programación tienen sus propias particularidades, pero cuando un programador crea un nuevo programa, la primera etapa es siempre la misma: pensar en el encadenamiento de las distintas acciones que la máquina tiene que realizar. El objetivo de este libro es enseñarle a comprender y crear los algoritmos que permiten el funcionamiento de un programa..
Para ello, después de una introducción general a la algoritmia, aprenderá las bases de la programación utilizando pseudocódigo: variables, condicionales, bucles, tablas, procesos y funciones.
A continuación, presentamos los conceptos de la programación orientada a objetos (la de la mayoría de los lenguajes actuales), que utilizan la algoritmia y cómo programar orientado a objetos con Java. Así, aprenderá a crear clases y sus instancias, asociaciones entre ellas, a usar la noción de herencia, de clases abstractas y de interfaces. Será capaz de tratar las excepciones y de seguir los bugs de sus aplicaciones.
Con el objetivo de comprender mejor el funcionamiento de la programación, en el último capítulo se trata la organización de la memoria.
Para ayudarle a practicar y alcanzar el dominio de la algoritmia y de Java, se proponen ejercicios con sus correcciones en pseudocódigo, así como sus implementaciones en Java.
La mayoría de los algoritmos de este libro están implementados en Java y las fuentes, que se pueden utilizar directamente, están disponibles para descarga en www.ediciones-eni.com.
¡Nuevo! Rondas de preguntas disponibles con la versión online.
¡Ronda de preguntas
incluida en
la versión online !
Para ello, después de una introducción general a la algoritmia, aprenderá las bases de la programación utilizando pseudocódigo: variables, condicionales, bucles, tablas, procesos y funciones.
A continuación, presentamos los conceptos de la programación orientada a objetos (la de la mayoría de los lenguajes actuales), que utilizan la algoritmia y cómo programar orientado a objetos con Java. Así, aprenderá a crear clases y sus instancias, asociaciones entre ellas, a usar la noción de herencia, de clases abstractas y de interfaces. Será capaz de tratar las excepciones y de seguir los bugs de sus aplicaciones.
Con el objetivo de comprender mejor el funcionamiento de la programación, en el último capítulo se trata la organización de la memoria.
Para ayudarle a practicar y alcanzar el dominio de la algoritmia y de Java, se proponen ejercicios con sus correcciones en pseudocódigo, así como sus implementaciones en Java.
La mayoría de los algoritmos de este libro están implementados en Java y las fuentes, que se pueden utilizar directamente, están disponibles para descarga en www.ediciones-eni.com.
¡Nuevo! Rondas de preguntas disponibles con la versión online.
¡Ronda de preguntas
incluida en
la versión online !
- Ponga a prueba sus conocimientos al final de cada capítulo
- Evalúe sus competencias
Índice
-
Introducción a la algoritmia
- 1. Introducción
- 2. Los algoritmos fuera del dominio de la informática
- 3. Los objetivos de la algoritmia
- 3.1 El diseño
- 3.2 La complejidad
- 3.3 La posibilidad de cálculo
- 3.4 La corrección
- 4. Las representaciones posibles para un algoritmo informático
- 4.1 Diagramas de flujo
- 4.2 El pseudo-código
-
El pseudocódigo
- 1. La estructura del algoritmo
- 2. Los comentarios
- 3. La declaración de variables
- 3.1 ¿ Qué es una variable ?
- 3.2 Los tipos
- 3.3 La declaración de una variable
- 4. La asignación de un valor
- 5. La declaración de una constante
- 6. Las operaciones
- 6.1 Las operaciones aritméticas
- 6.1.1 Las cuatro operaciones aritméticas más comunes
- 6.1.2 La división entera y su resto
- 6.1.3 Los operadores de asignación combinados con un operador aritmético
- 6.1.4 La suma y la resta
- 6.1.5 La prioridad de ejecución de los cálculos
- 6.2 Los operadores de comparación
- 6.2.1 La igualdad
- 6.2.2 La diferencia
- 6.2.3 Mayor que y menor que
- 6.3 Los operadores booleanos
- 6.3.1 El operador y
- 6.3.2 El operador o
- 6.3.3 El operador no
- 6.1 Las operaciones aritméticas
- 7. La consola
- 7.1 La escritura de mensajes de usuario
- 7.2 La entrada de valores por el usuario
- 8. La generación de números aleatorios
- 9. Herramientas para escribir pseudocódigo y Java
- 9.1 Usar Notepad++ para escribir pseudocódigo
- 9.2 Los entornos de desarrollo integrado
- 10. Ejercicios
- 10.1 Valores de las variables
- 10.2 ¿ Qué se muestra ?
- 10.3 ¿ Qué hace ?
- 10.4 Velocidad media
- 11. Solución a los ejercicios
- 11.1 Valores de las variables
- 11.2 ¿ Qué se muestra ?
- 11.3 ¿ Qué hace ?
- 11.4 Velocidad media
-
Los condicionales
- 1. Presentación
- 2. La estructura de control Si (forma simple)
- 3. La estructura de control Si (forma doble)
- 4. Estructuras de control anidadas
- 5. La estructura de control Según
- 6. El operador ternario ? :
- 7. Ejercicios
- 7.1 El tiempo
- 7.2 El tiempo versión 2
- 7.3 El nombre del mes
- 7.4 El tiempo de cocción
- 7.5 La nómina
- 8. Solución de los ejercicios
- 8.1 El tiempo
- 8.2 El tiempo versión 2
- 8.3 El nombre del mes
- 8.4 El tiempo de cocción
- 8.5 La nómina
-
Los bucles
- 1. Presentación
- 2. La estructura de control Para
- 3. La estructura de control MientrasQue
- 4. La estructura de control Repetir
- 5. La elección del bucle más adecuado
- 6. Los bucles anidados
- 7. Ejercicios
- 7.1 La nota media (versión 1)
- 7.2 La nota media (versión 2)
- 7.3 La nota media (versión 3)
- 7.4 Adivine en qué número estoy pensando
- 7.5 Ahora tengo que encontrarlo yo
- 7.6 ¿ Qué hace este algoritmo ?
- 7.7 Visualización de citas de películas (versión 1)
- 7.8 Visualización de citas de películas (versión 2)
- 7.9 Escribir un múltiplo de tres
- 7.10 Arte ASCII 1
- 7.11 Arte ASCII 2
- 8. Soluciones de los ejercicios
- 8.1 La nota media (versión 1)
- 8.2 La nota media (versión 2)
- 8.3 La nota media (versión 3)
- 8.4 Adivine en qué número estoy pensando
- 8.5 Ahora tengo que encontrarlo yo
- 8.6 ¿ Que hace este algoritmo ?
- 8.7 Visualización de citas de películas (versión 1)
- 8.8 Visualización de citas de películas (versión 2)
- 8.9 Escribir un múltiplo de tres
- 8.10 Arte ASCII 1
- 8.11 ASCII Art 2
-
Las tablas
- 1. Presentación
- 2. La declaración de una tabla
- 3. El uso de una tabla
- 4. Recorrer una tabla
- 5. Las tablas: un tipo de referencia
- 6. Las tablas multidimensionales
- 7. Ejercicios
- 7.1 Despegue inmediato
- 7.2 Número de ocurrencias
- 7.3 Nota media (versión 4)
- 7.4 Máquina de votar
- 7.5 Palíndromo
- 7.6 ¿ Qué hace ?
- 7.7 Matriz
- 7.8 Micro guerra de barcos
- 7.9 Tres en raya
- 8. Solución de los ejercicios
- 8.1 Despegue inmediato
- 8.2 Número de ocurrencias
- 8.3 Nota media (versión 4)
- 8.4 Máquina de votar
- 8.5 Palíndromo
- 8.6 ¿ Qué hace ?
- 8.7 Matriz
- 8.8 Micro guerra de barcos
- 8.9 Tres en raya
-
Los procedimientos y funciones
- 1. Presentación
- 2. La declaración de un subalgoritmo
- 2.1 Declaración de un procedimiento
- 2.2 Declaración de una función
- 3. La llamada a un subalgoritmo
- 3.1 La llamada a un procedimiento
- 3.2 La llamada a una función
- 4. La transmisión de información entre un subalgoritmo y el algoritmo llamador
- 4.1 Las constantes globales
- 4.2 El paso de argumentos
- 4.2.1 El paso de argumentos de tipos por valor
- 4.2.2 El paso de argumentos de tipos por referencia
- 4.3 El retorno de una función
- 5. La recursividad
- 6. Ejercicios
- 6.1 Es el mayor
- 6.2 Micro guerra de barcos (versión 2)
- 6.3 Una tabla y funciones
- 6.4 El juego del rebaño de ovejas
- 6.5 Taller de arte ASCII
- 7. Soluciones a los ejercicios
- 7.1 Es el mayor
- 7.2 Micro guerra de barcos (version 2)
- 7.3 Una tabla y funciones
- 7.4 El juego del rebaño de ovejas
- 7.5 Taller de arte ASCII
-
La programación orientada a objetos
- 1. Presentación
- 1.1 ¿ Qué es la programación orientada a objetos ?
- 1.2 El interés de la programación orientada a objetos
- 2. Las nociones de clase e instancia
- 3. La declaración de una clase
- 4. Los atributos de instancia
- 5. Las constantes
- 6. Los métodos de instancia
- 6.1 La declaración de un método de instancia
- 6.2 Los métodos Getters y Setters
- 6.3 La sobrecarga de métodos
- 7. La creación de una instancia
- 7.1 La declaración y la instanciación de una variable de tipo de clase
- 7.2 Las tablas de instancias
- 8. Los constructores
- 8.1 El constructor por defecto
- 8.2 Los constructores
- 8.3 La sobrecarga de constructores
- 9. Los atributos de clase
- 10. Los métodos de clase
- 10.1 La declaración de un método de clase
- 10.2 La llamada a un método de clase
- 10.3 Resumen de los métodos de clase respecto a los métodos de instancia
- 11. Las instancias: un tipo por referencia
- 12. Ejercicios
- 12.1 Los dados
- 12.2 Los clientes
- 12.3 Micro guerra de barcos (versión 3)
- 12.4 Micro guerra de barcos (versión 4)
- 13. Soluciones a los ejercicios
- 13.1 Los dados
- 13.2 Los clientes
- 13.3 Micro guerra de barcos (versión 3)
- 13.4 Micro guerra de barcos (versión 4)
- 1. Presentación
-
Las relaciones entre las clases
- 1. Presentación
- 2. El uso de una clase por otra clase
- 3. Las asociaciones
- 4. La herencia
- 4.1 La noción de herencia
- 4.2 La declaración de la herencia
- 4.3 Los constructores y la herencia
- 4.3.1 El constructor por defecto
- 4.3.2 Definir un constructor
- 4.4 La sustitución de métodos
- 4.5 El transtipado
- 4.5.1 El transtipado ascendente
- 4.5.2 El transtipado descendente
- 4.5.3 El transtipado y los métodos sustituidos
- 5. La creación de instancias por método de clase en Java
- 5.1 La encapsulación de los constructores
- 5.2 Un nombre diferente para los creadores de instancia
- 5.3 El retorno de un subtipo
- 6. Ejercicios
- 6.1 La guerra de dados
- 6.2 Los clientes (versión 2)
- 7. Soluciones de los ejercicios
- 7.1 La guerra de dados
- 7.2 Los clientes (versión 2)
-
Los elementos abstractos
- 1. Las clases abstractas
- 2. Los métodos abstractas
- 2.1 La declaración de métodos abstractos
- 2.2 La implementación de un método abstracto
- 2.3 La llamada a los métodos abstractos
- 3. Las interfaces
- 3.1 La declaración de una interfaz
- 3.2 La implementación de una interfaz
- 3.3 El transtipado y las interfaces
- 3.4 Los métodos por defecto en Java
- 4. Ejercicios
- 4.1 El alquiler de bicis
- 4.1.1 Las clases y sus atributos
- 4.1.2 Los métodos
- 4.1.3 Las normas
- 4.2 Velocidad media versión plurilingüe
- 4.1 El alquiler de bicis
- 5. Soluciones a los ejercicios
- 5.1 El alquiler de ciclos
- 5.1.1 Las clases y sus atributos
- 5.1.2 Los métodos
- 5.1.3 El código
- 5.2 Velocidad media versión plurilingüe
- 5.1 El alquiler de ciclos
-
Los errores y las excepciones
- 1. Presentación
- 2. Los errores detectados durante la compilación
- 3. Los errores detectados durante la ejecución
- 3.1 Los errores irrecuperables
- 3.1.1 La saturación de la pila de llamadas a métodos
- 3.1.2 La saturación de la memoria
- 3.1.3 Soluciones
- 3.2 Las excepciones en algoritmia
- 3.3 Las excepciones en Java
- 3.3.1 Cuando se genera una excepción
- 3.3.2 Categorías de excepciones
- 3.3.3 La propagación de una excepción
- 3.3.4 El tratamiento de una excepción
- 3.3.5 Los tratamientos a realizar en todos los casos
- 3.4 Las excepciones personalizadas en Java
- 3.1 Los errores irrecuperables
- 4. Ejercicios
- 4.1 El cálculo de la raíz cuadrada
- 4.2 La calculadora en Java
- 4.2.1 Creación de una clase DesbordaCapacidadExcepcion
- 4.2.2 Creación de la clase de utilidad Operacion
- 4.2.3 Creación de la calculadora
- 5. Soluciones a los ejercicios
- 5.1 El cálculo de la raíz cuadrada
- 5.2 La calculadora en Java
- 5.2.1 Creación de una clase DesbordaCapacidadExcepcion
- 5.2.2 Creación de la clase de utilidad Operacion
- 5.2.3 Creación de la calculadora
-
La memoria
- 1. Presentación
- 2. Las bases
- 2.1 Los números enteros
- 2.1.1 Las bases utilizadas en informática
- 2.1.2 Notación
- 2.1.3 La conversión de una base a la base diez
- 2.1.4 La conversión de la base diez a otra base
- 2.2 Los números reales
- 2.2.1 La conversión de una base a la base diez
- 2.2.2 La conversión de la base diez a otra base
- 2.1 Los números enteros
- 3. Los números enteros
- 3.1 Los bytes
- 3.1.1 Los bits y los bytes
- 3.1.2 Los múltiplos
- 3.2 Los enteros naturales
- 3.3 Los enteros relativos
- 3.1 Los bytes
- 4. Los números reales
- 4.1 La forma normalizada
- 4.2 La norma IEEE-754
- 4.2.1 La codificación del signo
- 4.2.2 La codificación del exponente
- 4.2.3 La codificación de la mantisa
- 4.2.4 Todo en conjunto
- 4.2.5 Los valores particulares
- 5. Los caracteres
- 5.1 El código ASCII
- 5.2 Las páginas nacionales o ASCII extendido
- 5.3 Unicode
- 5.3.1 UTF-32
- 5.3.2 UTF-16
- 5.3.3 UTF-8
- 5.4 Las operaciones con caracteres
- 5.4.1 El incremento y el decremento
- 5.4.2 El cambio de tipo
- 5.4.3 La suma y la resta
- 5.4.4 La comparación
- 6. Las diferentes zonas de memoria
- 6.1 El stack
- 6.2 El Heap
- 6.3 Las instancias y las tablas
- 6.3.1 Las instancias
- 6.3.2 Las instancias y la herencia
- 6.3.3 Las tablas
- 6.3.4 Las operaciones con las instancias y las tablas
- 6.4 El paso de argumentos
- 6.4.1 El paso de argumentos de tipos por valor
- 6.4.2 El paso de argumentos de tipos por referencia
- 6.5 El retorno de una función
- 6.5.1 El retorno de un tipo por valor
- 6.5.2 El retorno de un tipo por referencia
- 6.6 El recolector de basura
- 7. Ejercicios
- 7.1 Conversión de una base a otra
- 7.1.1 Convertir los siguientes valores a base 10
- 7.1.2 Convertir los siguientes valores a base 2 y a base 16
- 7.1.3 Convertir los siguientes valores a base 16
- 7.1.4 Convertir los siguientes valores a base 2
- 7.1.5 Convertir los siguientes valores a base 10
- 7.1.6 Convertir los siguientes valores a base 2
- 7.2 Algoritmo de conversión
- 7.3 Codificación de valores en byte, short y int
- 7.3.1 ¿ Cómo se codifican los siguientes valores en byte ?
- 7.3.2 ¿ Cómo se codifican los siguientes valores en short ?
- 7.3.3 ¿ Cómo se codifican los siguientes valores en int ?
- 7.4 Codificación de valores en float
- 7.4.1 ¿ Qué valores se han codificado por los siguientes bytes ?
- 7.4.2 ¿ Cómo se han codificado los siguientes valores en float ?
- 7.5 Unicode
- 7.1 Conversión de una base a otra
- 8. Corrección de los ejercicios
- 8.1 Conversión de una base en otra
- 8.1.1 Convertir los siguientes valores a base 10
- 8.1.2 Convertir los siguientes valores a base 2 y a base 16
- 8.1.3 Convertir los siguientes valores a base 16
- 8.1.4 Convertir los siguientes valores a base 2
- 8.1.5 Convertir los siguientes valores a base 10
- 8.1.6 Convertir los siguientes valores a base 2
- 8.2 Algoritmo de conversión
- 8.3 Codificación de valores en byte, short y int
- 8.3.1 ¿ Cómo se codifican los siguientes valores en byte ?
- 8.3.2 ¿ Cómo se codifican los siguientes valores en short ?
- 8.3.3 ¿ Cómo se codifican los siguientes valores en int ?
- 8.4 Codificación de valores en float
- 8.4.1 ¿ Qué valores han codificado por los bytes siguientes ?
- 8.4.2 ¿ Cómo se han codificado los siguientes valores en float ?
- 8.5 Unicode
- 8.5.1 UTF-8
- 8.5.2 UTF-32
- 8.5.3 UTF-16
- 8.1 Conversión de una base en otra
- índice
Autor
Hervé BOISGONTIERMás información
Hervé BOISGONTIER ha trabajado para las Universidades de Orsay y de Estrasburgo en el desarrollo de aplicaciones en distintos lenguajes de programación y en proyectos de tratamiento de imágenes y de realidad virtual. Siendo hoy formador de distintos lenguajes de programación, propone al lector un libro realmente eficaz y cargado con toda su pedagogía para aprender la algoritmia con el lenguaje Java.
Características
- Nivel Medio a Experto
- Número de páginas 429 páginas
- Publicación noviembre 2020
- Encuadernación rústica - 17 x 21 cm
- ISBN: 978-2-409-02882-3
- EAN: 9782409028823
- Ref. ENI: RITJALG
- Nivel Experto a Medio
- Publicación noviembre 2020
- HTML
- ISBN: 978-2-409-02883-0
- EAN: 9782409028830
- Ref. ENI: LNRITJALG
Descargas
- Descargar los ejemplos del libro (135 Ko)