1. Libros
  2. Algoritmia - Técnicas fundamentales de programación - Ejemplos en Python (numerosos ejercicios corregidos)

Algoritmia - Técnicas fundamentales de programación Ejemplos en Python (numerosos ejercicios corregidos)

  • Acceso ilimitado 24/7
  • Todos los libros online de ENI
  • Novedades todos los meses
  • Acceso 100% online
  • Disponible
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis
  • Acceso gratuito a todos nuestros libros online durante 1 hora por toda compra
  • Consulta inmediata
  • Versión HTML online
  • Acceso ilimitado 24/7

Presentación

Este libro sobre algoritmia se dirige a cualquier persona que quiera controlar y dominar los aspectos principales de la programación. Para aprender a programar, en primer lugar es necesario entender qué es realmente un ordenador, cómo funciona y sobre todo, cómo puede hacer que los programas puedan funcionar, cómo manipula y almacena los datos y las instrucciones y cuál es su lógica. Poco a poco, a medida que se van entendiendo estos conceptos, el resto se hace evidente: variables, pruebas, condiciones, bucles, tablas, funciones, archivos, hasta las nociones más avanzadas, como la compresión de las listas y los objetos.

El lenguaje algorítmico (o la sintaxis del pseudo-código de los algoritmos), recoge lo que se usa más habitualmente en las escuelas de informática y el primer año de ingeniería. A los alumnos de estas formaciones es a quién se destina y aconseja principalmente este libro. Cuando se han adquirido las nociones principales y básicas, el lector encontrará en este libro cómo evolucionar hacia las nociones más avanzadas: hay un capítulo sobre los objetos, que abre las puertas de la programación en los lenguajes más evolucionados y potentes como C, C++ y sobre todo, Python.

Al final de cada capítulo, el autor ofrece numerosos ejercicios corregidos, que permiten consolidar sus conocimientos adquiridos.

Todos los algoritmos de este libro se escriben en Python y los códigos fuente se pueden utilizar directamente. Se pueden descargar en el sitio web www.ediciones-eni.com.


Los capítulos del libro:
Prefacio – Introducción a la algoritmia – Las variables y los operadores – Pruebas y lógica buleana – Los bucles – Las tablas y las estructuras – Los sub-programas – Los archivos – Nociones avanzadas – Un enfoque a la orientación a objetos – Ejercicios corregidos

Índice

  • Introducción a la algoritmia
    • 1. Los aspectos fundamentales de la informática
      • 1.1 Arquitectura de Von Neumann
      • 1.2 La máquina de Turing
      • 1.3 Representación interna de las instrucciones y de los datos
        • 1.3.1 El binario
        • 1.3.2 Los bytes y las palabras
        • 1.3.3 El hexadecimal
    • 2. La algoritmia
      • 2.1 Programar, es un arte
      • 2.2 Definición: el algoritmo es una receta
      • 2.3 ¿ Por qué utilizar un algoritmo ?
      • 2.4 El formalismo
        • 2.4.1 Los esquemas algorítmicos
        • 2.4.2 El algoritmo en forma de texto
      • 2.5 La complejidad
      • 2.6 Las estructuras algorítmicas
    • 3. Los lenguajes de implementación
      • 3.1 ¿ Qué lenguaje ?
      • 3.2 Clasificaciones de los lenguajes
        • 3.2.1 Alto nivel, bajo nivel
        • 3.2.2 Diversas clasificaciones
        • 3.2.3 Compilado o interpretado
      • 3.3 La máquina virtual
      • 3.4 Python
        • 3.4.1 Las ventajas
        • 3.4.2 Un primer programa Python
    • 4. Ejercicios
  • Las variables y los operadores
    • 1. La variable
      • 1.1 Principio
      • 1.2 Declaración
      • 1.3 Los tipos
        • 1.3.1 Los números
        • 1.3.2 Otros tipos numéricos
        • 1.3.3 Los caracteres
        • 1.3.4 El tipo buleano
      • 1.4 Asignación
        • 1.4.1 Asignación de valores
        • 1.4.2 Asignación de variables
      • 1.5 Introducir información y visualizarla
        • 1.5.1 La función print()
        • 1.5.2 La función input()
      • 1.6 Las constantes
    • 2. Operadores y cálculos
      • 2.1 Las asignaciones
      • 2.2 Los operadores aritméticos
      • 2.3 Los operadores buleanos
      • 2.4 Los operadores de comparación
        • 2.4.1 La igualdad
        • 2.4.2 La diferencia
        • 2.4.3 Inferior, superior
      • 2.5 El caso de las cadenas de caracteres
      • 2.6 La precedencia de los operadores
    • 3. Para ir más allá
      • 3.1 Los números negativos
      • 3.2 La representación de los números reales
      • 3.3 Las fechas
      • 3.4 Los caracteres
    • 4. Tipos y lenguajes
      • 4.1 Lenguajes tipados o no
      • 4.2 La gestión de la memoria
    • 5. Los tipos específicos de Python
      • 5.1 Las listas
      • 5.2 Las tuplas
      • 5.3 El tipo set
      • 5.4 Los diccionarios
    • 6. Ejercicios
  • Pruebas y lógica buleana
    • 1. Las pruebas y condiciones
      • 1.1 Principio
      • 1.2 ¿ Qué probar ?
      • 1.3 Pruebas SI
        • 1.3.1 Forma sencilla
        • 1.3.2 Forma compleja
      • 1.4 Pruebas anidadas
      • 1.5 Opciones múltiples
      • 1.6 Ejemplos completos
        • 1.6.1 El día siguiente a una fecha
        • 1.6.2 La validez de una fecha
        • 1.6.3 La hora en n segundos
    • 2. El álgebra buleana
      • 2.1 El origen de las pruebas
      • 2.2 Pequeños errores, grandes consecuencias
        • 2.2.1 Ariane 5
        • 2.2.2 Mars Climate Orbiter
      • 2.3 George Boole
      • 2.4 El álgebra
        • 2.4.1 Establecer una comunicación
        • 2.4.2 La verdad
        • 2.4.3 La ley Y
        • 2.4.4 La ley O
        • 2.4.5 El contrario
        • 2.4.6 Las propiedades
        • 2.4.7 Algunas funciones lógicas
        • 2.4.8 Con más de dos variables
      • 2.5 Una última precisión
    • 3. Ejercicios
  • Los bucles
    • 1. Las estructuras iterativas
      • 1.1 Definición
      • 1.2 Algunos usos sencillos
    • 2. MientrasQue
      • 2.1 Estructura general
      • 2.2 Bucles infinitos y "break"
      • 2.3 Dos ejemplos
        • 2.3.1 Una tabla de multiplicación
        • 2.3.2 Un factorial
        • 2.3.3 x a la potencia y
        • 2.3.4 Todas las tablas de multiplicación
        • 2.3.5 Introducir notas y cálculo de medias
        • 2.3.6 Cantidad monetaria
        • 2.3.7 Tres bucles
    • 3. Repetir ... Hasta
      • 3.1 Diferencias fundamentales
      • 3.2 Algunos ejemplos adaptados
        • 3.2.1 El factorial
        • 3.2.2 Los tres bucles
    • 4. Para ... Fin Para
      • 4.1 Una estructura para contar...
      • 4.2 ... pero no indispensable
      • 4.3 ¿ Qué estructura elegir ?
      • 4.4 Un trampa que debe evitar
      • 4.5 Algunos ejemplos
        • 4.5.1 De nuevo tres bucles
        • 4.5.2 El factorial
        • 4.5.3 Raíz cuadrada con precisión
        • 4.5.4 Cálculo del número PI
    • 5. Ejercicios
  • Las tablas y las estructuras
    • 1. Presentación
      • 1.1 Principio y definición
        • 1.1.1 Simplificar los variables
        • 1.1.2 Las dimensiones
        • 1.1.3 Los tipos
        • 1.1.4 Declaración
        • 1.1.5 Uso
        • 1.1.6 Las tablas dinámicas
      • 1.2 Python y las tablas
      • 1.3 Representación en memoria
        • 1.3.1 Representación lineal
        • 1.3.2 Representación por referencia
    • 2. Operaciones sencillas
      • 2.1 Búsqueda de un elemento
      • 2.2 El más grande/pequeño y la media
      • 2.3 Las tres en raya
    • 3. Algoritmos avanzados
      • 3.1 Los algoritmos de las ordenaciones
        • 3.1.1 El principio
        • 3.1.2 La ordenación por creación
        • 3.1.3 La ordenación por selección
        • 3.1.4 La ordenación de burbuja
        • 3.1.5 La ordenación por inserción
        • 3.1.6 La ordenación Shell
      • 3.2 Búsqueda por dicotomía
    • 4. Estructuras y registros
      • 4.1 Principio
      • 4.2 Declaración
        • 4.2.1 Tipo estructurado
        • 4.2.2 Registro
      • 4.3 Utilizar los registros
        • 4.3.1 Utilizar los campos
        • 4.3.2 Un registro en una estructura
        • 4.3.3 Una tabla en una estructura
      • 4.4 Las tablas de registros
        • 4.4.1 Las tablas
        • 4.4.2 Una tabla como campo
      • 4.5 ¿ Y Python ?
    • 5. Ejercicios
  • Los subprogramas
    • 1. Presentación
      • 1.1 Principio
      • 1.2 Declaración y definición
        • 1.2.1 En un algoritmo
        • 1.2.2 En Python
      • 1.3 Llamada
      • 1.4 Funciones y procedimientos
        • 1.4.1 Los procedimientos
        • 1.4.2 Las funciones
      • 1.5 Variables locales y globales
        • 1.5.1 Locales
        • 1.5.2 Globales
        • 1.5.3 Variables globales y Python
      • 1.6 Los argumentos
        • 1.6.1 Los procedimientos
        • 1.6.2 Las funciones
        • 1.6.3 Argumento y Python
        • 1.6.4 Pequeña aplicación funcional
      • 1.7 Subprogramas predeterminados
        • 1.7.1 Una elección importante
        • 1.7.2 Algunos ejemplos
      • 1.8 Último caso: las tablas
    • 2. Los subprogramas recursivos
      • 2.1 Principio
      • 2.2 Un primer ejemplo: el factorial
      • 2.3 Un ejemplo práctico: las torres de Hanoï
    • 3. Ejercicios
  • Los archivos
    • 1. Los diferentes archivos
      • 1.1 Preámbulo
      • 1.2 Problemática
      • 1.3 Definición
      • 1.4 Los formatos
        • 1.4.1 Tipos de contenidos
        • 1.4.2 El archivo binario
        • 1.4.3 El archivo de texto
        • 1.4.4 ¿ Qué formato utilizar ?
      • 1.5 Los accesos a los archivos
        • 1.5.1 Secuencial
        • 1.5.2 Acceso directo
        • 1.5.3 Indexación
        • 1.5.4 ¿ Otro ?
    • 2. Los registros
      • 2.1 Los delimitadores
      • 2.2 Longitud fija
      • 2.3 Principios de acceso
        • 2.3.1 Etapas básicas
        • 2.3.2 Identificadores de archivos y canales
        • 2.3.3 Los modos de apertura
    • 3. Archivo de texto secuencial
      • 3.1 Abrir y cerrar un archivo
      • 3.2 Leer y escribir registros
        • 3.2.1 Lectura
        • 3.2.2 Escritura
      • 3.3 Los registros estructurados
      • 3.4 Ejemplo en Python
    • 4. Los archivos binarios
      • 4.1 Nuevas instrucciones
      • 4.2 Ejemplo
    • 5. Ejercicios
  • Nociones avanzadas
    • 1. Los punteros y referencias
      • 1.1 Recordatorio sobre la memoria y los datos
        • 1.1.1 Estructura de la memoria
        • 1.1.2 Python: los límites que no lo son
        • 1.1.3 Breves ejemplos en C
      • 1.2 El puntero
        • 1.2.1 Principio y definición
        • 1.2.2 El C rey de los punteros
        • 1.2.3 Aplicaciones
      • 1.3 Notación algorítmica
        • 1.3.1 Declarar y utilizar punteros
        • 1.3.2 Asignación dinámica
      • 1.4 Python y las referencias
        • 1.4.1 Diferencias entre C y Python
        • 1.4.2 Referencias a los objetos
        • 1.4.3 Los tipos primitivos
        • 1.4.4 Referencias sobre estructuras
        • 1.4.5 La trampa en Python
    • 2. Las listas encadenadas
      • 2.1 Listas encadenadas simples
        • 2.1.1 Principio
        • 2.1.2 Creación
        • 2.1.3 Recorrido de la lista
        • 2.1.4 Búsqueda
        • 2.1.5 Añadir elemento
        • 2.1.6 Eliminación de un elemento
        • 2.1.7 Eliminar toda la lista
        • 2.1.8 Recorrido recursivo
      • 2.2 La implementación en Python
      • 2.3 Otros ejemplos de listas
        • 2.3.1 Listas circulares
        • 2.3.2 Lista de elementos ordenados
        • 2.3.3 Listas doblemente encadenadas
        • 2.3.4 Filas y pilas
    • 3. Los árboles
      • 3.1 Principio
      • 3.2 Definiciones
        • 3.2.1 Principios básicos
        • 3.2.2 Terminología
        • 3.2.3 Descripción horizontal
        • 3.2.4 Descripción vertical
        • 3.2.5 El árbol binario
      • 3.3 Recorrido de un árbol
      • 3.4 Árbol binario ordenado
        • 3.4.1 Principio
        • 3.4.2 Búsqueda de un elemento
        • 3.4.3 Añadir un elemento
        • 3.4.4 Eliminación de un nodo
    • 4. Ejercicios
  • Un enfoque a la orientación a objetos
    • 1. Principio de objeto, una noción evidente
      • 1.1 Antes de continuar
      • 1.2 Recoratorio sobre la programación procedural
        • 1.2.1 Los datos
        • 1.2.2 Las operaciones
      • 1.3 El objeto
        • 1.3.1 En la vida corriente
        • 1.3.2 En informática
      • 1.4 Clase, objetos
      • 1.5 Declaración y acceso
      • 1.6 Los métodos
      • 1.7 Ámbito de los miembros
      • 1.8 Encapsulación de los datos
      • 1.9 La herencia
        • 1.9.1 Principio
        • 1.9.2 Comercio
        • 1.9.3 Jerarquía
        • 1.9.4 Simple o múltiple
      • 1.10 El polimorfismo
        • 1.10.1 Principio
        • 1.10.2 El polimorfismo ad hoc
        • 1.10.3 El polimorfismo de herencia
        • 1.10.4 El polimorfismo paramétrico
    • 2. Manipular los objetos
      • 2.1 Los constructores
        • 2.1.1 Declaración
        • 2.1.2 Llamada implícita
        • 2.1.3 La herencia
      • 2.2 Los destructores
      • 2.3 Los miembros estáticos
      • 2.4 Clases y métodos abstractos
      • 2.5 Interfaces
    • 3. El objeto en Python
      • 3.1 Los lenguajes orientados a objetos
      • 3.2 Declaración de las clases y los objetos
      • 3.3 Herencia
      • 3.4 Interfaces
    • 4. Ejercicios
  • Ejercicios corregidos
    • 1. Introducción a la algoritmia
    • 2. Las variables y los operadores
    • 3. Pruebas y lógica buleana
    • 4. Los bucles
    • 5. Las tablas y las estructuras
    • 6. Los subprogramas
    • 7. Los archivos
    • 8. Nociones avanzadas
    • 9. Un enfoque a la orientación a objetos
    • índice

Autores

Franck EBELMás información

Director de investigación y desarrollo en seguridad informática para la empresa Serval-Concept, Franck Ebel también es responsable de la licencia CDAISI (Cyber Defensa, Anti-intrusión de los sistemas Informáticos) y enseña en el máster CDSI en la universidad de Valenciennes. Posee los certificados CEH v8 (Certifier Ethical Hacking), OSCP (Offensive Security Certified Professionnel). Domina completamente el lenguaje Python, muy utilizado en las actividades relativas a la seguridad de los sistemas de información.

Sébastien ROHAUTMás información

Después de varios años en trabajos de ingeniería de sistemas, en la actualidad Sébastien ROHAUT es responsable de operaciones de una plataforma digital de un gran grupo francés. También ha enseñado durante casi 11 años en clases preparatorias y de ingenieros. Esta rica experiencia técnica y pedagógica le permite ofrecer a los lectores un libro muy eficaz para dominar la algoritmia.

Características

  • Nivel Medio a Experto
  • Número de páginas 508 páginas
  • Publicación febrero 2019
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-01734-6
    • EAN: 9782409017346
    • Ref. ENI: RIT2PYALG
  • Nivel Medio a Experto
  • Publicación febrero 2019
    • HTML
    • ISBN: 978-2-409-01735-3
    • EAN: 9782409017353
    • Ref. ENI: LNRIT2PYALG

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (21,9 Ko)