Descubre millones de libros electrónicos, audiolibros y mucho más con una prueba gratuita

Desde $11.99 al mes después de la prueba. Puedes cancelar en cualquier momento.

Aprende a programar en Python: de cero al infinito
Aprende a programar en Python: de cero al infinito
Aprende a programar en Python: de cero al infinito
Libro electrónico287 páginas2 horas

Aprende a programar en Python: de cero al infinito

Calificación: 0 de 5 estrellas

()

Leer vista previa

Información de este libro electrónico

Si tienes cero o nula experiencia en programación y quieres saber más acerca de la solución algorítmica de problemas, enfatizando en el análisis, el diseño, la implementación y la prueba de las soluciones, este libro será tu gran aliado.

Gracias a la lectura de este manual serás capaz de analizar un problema y, una vez entendido, diseñar el algoritmo que representa una solución del problema (computational thinking). Además, desarrollarás la capacidad de programar, pues los problemas planteados son de una naturaleza tal que permiten que los algoritmos diseñados puedan ser implementados por medio de un lenguaje de programación, en este caso, Python.

El libro es el resultado de muchos años de enseñanza de materias en las cuales el objetivo principal es despertar en los alumnos el gusto por resolver problemas por medio de los algoritmos. La idea de enseñar a programar debe ir más allá de enseñar un lenguaje de programación, debe desarrollar la capacidad de análisis, despertar el interés por diseñar soluciones eficaces y eficientes, promover la escritura de código agradable de leer y, por lo tanto, fácil de mantener y evolucionar, y debe convencer acerca de la fundamental importancia de probar todos los algoritmos, para garantizar que funcionan correctamente.

El manual está pensado para un público muy variado, ya que no exige tener conocimientos previos de computación o de programación: empieza con conceptos muy simples e incorpora más elementos de forma gradual. Asimismo, se ajusta muy bien a materias de ciencias de la computación dedicadas a la enseñanza del desarrollo de algoritmos y su implementación usando lenguajes de programación. Específicamente puede ser un libro de texto de las primeras materias de cualquier plan de estudios que incluya esta área del saber.

Sin duda, con interés y ganas de aprender, con este libro dominarás las bases del pensamiento algorítmico, la solución de problemas y su implementación.
IdiomaEspañol
EditorialMarcombo
Fecha de lanzamiento19 oct 2022
ISBN9788426735553
Aprende a programar en Python: de cero al infinito

Relacionado con Aprende a programar en Python

Libros electrónicos relacionados

Programación para usted

Ver más

Artículos relacionados

Comentarios para Aprende a programar en Python

Calificación: 0 de 5 estrellas
0 calificaciones

0 clasificaciones0 comentarios

¿Qué te pareció?

Toca para calificar

Los comentarios deben tener al menos 10 palabras

    Vista previa del libro

    Aprende a programar en Python - Silvia Guardati Buemo

    CAPÍTULO 1

    ALGORITMOS, DIAGRAMAS DE FLUJO Y PROGRAMAS

    Un algoritmo es un conjunto de pasos, instrucciones, procedimientos o reglas bien definidos, ordenados y finitos que permiten alcanzar un resultado o resolver un problema. Los primeros algoritmos datan del siglo noveno en Asia Central, en una región conocida como Corasmia o Jorasmia (Khwarazm en inglés), que se encuentra a lo largo de las fronteras de Turkmenistán y Uzbekistán.

    Muhammad ibn Musa al-Khwarizmi, astrónomo, geógrafo y matemático, conocido particularmente por sus contribuciones al estudio del álgebra, fue el que le dio al latín la palabra «algoritmi». Al-Khwarizmi escribió un libro en árabe sobre los números arábigos-hindús, titulado en latín Algoritmi de numero Indorum. La palabra «algorithm», derivada del latín, pasó al inglés y se difundió rápidamente.

    Illustration

    Figura 1.1. Estampilla (sello postal) emitido en la Unión Soviética en 1983, para conmemorar los 1200 años del nacimiento de Muhammad ibn Musa al-Khwarizmi.

    En la vida cotidiana aplicamos algoritmos de forma prácticamente continua. En la mayoría de los casos lo hacemos de manera automática, sin darnos cuenta de ello, porque es una actividad que hemos realizado decenas, cientos o miles de veces. Por ejemplo, cuando nos bañamos, desayunamos o, simplemente, tomamos un vaso de agua, estamos aplicando un algoritmo: un conjunto de pasos que nos permiten alcanzar un resultado específico. Por ejemplo, para tomar un vaso de agua debemos: primero buscar un vaso, luego abrir el grifo, llenar el vaso y, por último, beber el agua. Los pasos importan, y el orden en el cual se ejecutan también importa.

    Otros algoritmos que se pueden identificar muy fácilmente son los manuales de usuario para el automóvil o los electrodomésticos, las recetas de cocina, y los pasos que se siguen para calcular el promedio de una serie de números, la nómina de una empresa o para aplicar el método de Gauss para calcular un sistema de ecuaciones lineales.

    Un algoritmo es un conjunto de pasos, instrucciones, procedimientos o reglas bien definidos, ordenados y finitos que permiten alcanzar un resultado o resolver un problema.

    Algunos algoritmos pueden ser muy simples y otros muy complejos. Es obvio que existe una gran diferencia entre los pasos necesarios para preparar el desayuno, ordenar una serie de números y enviar una sonda espacial a Marte. Para algunos requerimos conocimientos simples y para otros conocimientos extensos y profundos sobre uno o varios dominios del conocimiento.

    Un algoritmo también se puede definir como un proceso específico que toma algún valor o conjunto de valores como entrada (datos) y produce un valor o un conjunto de valores como salida (resultados). Es importante señalar que el término «proceso», en el área de la ingeniería de software, es mucho más complejo, ya que implica, entre otros elementos, la entrada, la salida y las actividades que forman el algoritmo. Sin embargo, se suelen usar como sinónimos.

    Illustration

    Figura 1.2. Esquema de un algoritmo.

    Se muestra un ejemplo a continuación:

    Entrada: una secuencia de n números (temp1, temp2, temp3, …, tempn) que representan las temperaturas registradas durante el mes anterior.

    Salida: el promedio mensual de temperatura (un número).

    Algoritmo: secuencia de pasos necesarios para calcular el promedio: sumar los n números y luego dividir la suma obtenida entre n.

    Illustration

    Figura 1.3. Ejemplo: cálculo del promedio de n temperaturas.

    Los algoritmos se pueden clasificar como correctos e incorrectos. Un algoritmo es correcto si para cada instancia de entrada que recibe, termina con la salida correcta. Por otra parte, un algoritmo es incorrecto si no termina para algunas instancias de entrada o si devuelve una respuesta incorrecta.

    Un algoritmo es correcto si para cada instancia de entrada que recibe, termina con la salida correcta.

    Un algoritmo es incorrecto si no termina para algunas instancias de entrada o si devuelve una respuesta incorrecta.

    En general, todo algoritmo debe reunir estas tres características:

    •Precisión : los pasos deben ser muy claros, no debe existir ningún margen de ambigüedad.

    •Determinismo : para cada conjunto de datos de entrada siempre debe arrojar los mismos resultados.

    •Finitud : debe tener longitud finita.

    Ejemplo 1.1: Cochinita pibil

    La cochinita pibil es una comida típica de Yucatán, México, que se preparaba originalmente durante el festejo del día de los muertos (Xanal Pixan, «comida de las almas» en lenguaje maya) en la península yucateca. En época prehispánica, este platillo se preparaba con carne de faisán, jabalí o venado y se cocinaba en un horno pib (horno de tierra). En la actualidad, la carne de los animales de caza fue sustituida por carne de cerdo.

    Ingredientes para 10 personas (es la entrada del algoritmo):

    •2 hojas de plátano (banana) pasadas por el fuego para ablandarlas.

    •1.5 kg de pierna de cerdo (se puede reemplazar por bondiola o cabeza de lomo de cerdo).

    •0.5 kg de lomo de cerdo con costilla.

    •200 g de achiote (nombre botánico: Bixa Orellana, urucú en Argentina, rocú, onoto o bija en la América tropical).

    •1 taza de jugo de naranja agria (toronja) o media de vinagre blanco de manzana y media de jugo de naranja dulce.

    •¼ de cucharadita de comino en polvo.

    •1 cucharadita de orégano seco.

    •1 cucharadita de pimienta blanca en polvo.

    •½ cucharadita de pimienta negra en polvo.

    •½ cucharadita de canela en polvo.

    •3 dientes de ajo molidos o exprimidos.

    •½ cucharadita de chile piquín.

    •Sal al gusto.

    •125 g de manteca de cerdo.

    Illustration

    Figura 1.4. Tacos de cochinita pibil.

    Crédito: https://blog.seccionamarilla.com.mx/cochinita-pibil-cerdo-pelon-yaxunah-yucatan/

    Salsa para acompañarla:

    •8 rabanitos finamente picados.

    •1 cebolla morada, finamente rebanada.

    •4 chiles habaneros picados finamente.

    •¼ de taza de cilantro picado muy fino.

    •1 taza de jugo de naranja agria (toronja).

    •Sal al gusto.

    Preparación (es el algoritmo):

    Coloca la carne sobre una fuente. Disuelve el achiote en el jugo de naranja agria, agrega las especias, remueve bien y baña la carne con la mezcla. Deja marinar durante 8 horas, o de un día para otro, en la nevera. Coloca adecuadamente las hojas de plátano sobre la encimera y agrega sobre ella la carne marinada. Añade a la carne la manteca derretida. Envuelve bien la carne con las hojas. Posteriormente, tápalas con papel de aluminio y cocina en un horno a 175 grados durante una hora y media aproximadamente. Lo ideal es que la carne se pueda deshacer con las manos después de la cocción. Si tiene horno a leña, puede cocinar la carne, envuelta como se describió anteriormente, durante 10-12 horas a fuego lento (de 75 a 90 grados).

    Para la salsa hay que mezclar todos los ingredientes y dejar reposar al menos tres horas; aunque si se deja reposar toda una noche o un día completo es mejor.

    Presentación (el plato preparado es la salida del algoritmo):

    Sirve la cochinita pibil, y acompáñala con la salsa y tortillas de maíz, preferentemente recién hechas. Se puede maridar con un vino blanco afrutado, perfumado y con la acidez suficiente que dan los climas fríos.

    El diagrama de flujo es la representación gráfica de un algoritmo. Se compone principalmente de óvalos, rectángulos y rombos para definir conceptos, procesos y toma de decisiones, junto con flechas conectoras que establecen el flujo de los datos y la secuencia de las operaciones.

    Un diagrama de flujo es la representación gráfica de un algoritmo.

    En la Figura 1.5 presentamos un ejemplo de un diagrama de flujo. En este diagrama se leen dos números enteros, se calcula su promedio y se imprime el resultado.

    Illustration

    Figura 1.5. Ejemplo de diagrama de flujo.

    La idea de los diagramas de flujo fue presentada inicialmente en 1921 por Frank Gilbreth, en la Sociedad Americana de Ingenieros Mecánicos (ASME). Pero fue en la década de los 40 cuando el matemático Herman Goldstine (1913-2004), de la Universidad de Michigan en EE. UU., junto con el laureado matemático John Von Neumann —que en ese entonces se encontraba trabajando en el Proyecto Manhattan para la construcción de la primera bomba atómica—, comenzaron a utilizarlos para el desarrollo de programas informáticos. En la Figura 1.6 podemos apreciar una imagen en la que aparecen juntos Julian Bigelow, Herman Goldstine, Robert Oppenheimer y John Von Neumann.

    Cuando se elabora un diagrama de flujo parece que la tarea primordial es resolver un problema modelándolo gráficamente. Sin embargo, subyace otra labor, esencial y casi mágica: la transferencia de conocimiento tácito (está en nuestra mente y refiere al conocimiento que usamos para solucionar el problema) a conocimiento explícito. Los modelos mentales que nos formamos para resolver un problema se convierten en conceptos en el diagrama de flujo. Cuando el conocimiento se hace explícito a través del diagrama, se hace más visible y accesible tanto para el desarrollador como para otras personas.

    Este proceso es sustancial porque trasciende lo que estamos acostumbrados a realizar. Nos permite movernos desde lo invisible (el conocimiento tácito) a lo visible (el conocimiento explícito).

    Illustration

    Figura 1.6. Julian Bigelow, Herman Goldstine, Robert Oppenheimer y John Von Neumann, en el Instituto de Estudios Avanzados de Princeton (EE. UU.).

    Crédito: https://commons.wikimedia.org/w/index.php?curid=19030040.

    Una vez que tenemos el algoritmo o el diagrama de flujo, el paso siguiente es escribir el programa. Más adelante se explorará más en detalle lo que este concepto significa, pero por ahora basta con saber que un programa es la traducción del algoritmo en un conjunto de instrucciones mediante un lenguaje de programación.

    1.2.1 SÍMBOLOS DEL DIAGRAMA DE FLUJO

    Cuando uno comienza a resolver problemas y a modelarlos gráficamente mediante diagramas de flujo, observa fácilmente que estos adquieren formas diferentes. Estas diferencias se producen básicamente porque los problemas son de distinta naturaleza y para solucionarlos se realizan acciones o etapas en el proceso que implican el uso de símbolos diferentes.

    Aunque existen decenas de símbolos, con fines didácticos utilizaremos solamente los más importantes, junto con las líneas y flechas, que se usan para indicar el flujo (la secuencia lógica de pasos) en el diagrama. En la siguiente tabla se presentan los símbolos.

    Tabla 1.1. Símbolos utilizados en el diagrama de flujo.

    1.2.2 REGLAS PARA LA CONSTRUCCIÓN DEL DIAGRAMA DE FLUJO

    El diagrama de flujo es la representación gráfica del conjunto de pasos, instrucciones o reglas bien definidas que permiten alcanzar un resultado o resolver un problema. Por otra parte, para que esta representación gráfica sea considerada válida —y, por lo tanto, no exista ningún grado de ambigüedad o distorsión con el algoritmo—, los símbolos y conectores se deben colocar de la forma correcta. A continuación, se presentan las reglas que deben aplicarse para el desarrollo de los diagramas de flujo.

    1. Todo diagrama de flujo debe tener un inicio y un final.

    Illustration

    2. Las líneas que se utilizan para representar el flujo en el diagrama deben ser verticales u horizontales. No se pueden utilizar líneas oblicuas, cruzadas o curvas.

    Illustration

    3. El diagrama de flujo se construye de arriba hacia abajo y de izquierda a derecha. Además, a un símbolo no puede llegar más de un conector.

    Illustration

    4. Si el diagrama de flujo requiere más de una hoja para su construcción, es necesario utilizar los conectores adecuados y, además, enumerar las hojas correspondientes.

    5. La notación que se utiliza en el diagrama de flujo debe ser independiente del lenguaje de programación.

    6. El diagrama de flujo debe poder ser comprendido por cualquier individuo con conocimientos del tema, independientemente del idioma que hable y del lenguaje de programación que utilice para su implementación.

    Los tipos de datos que se pueden utilizar o procesar en un lenguaje de programación se clasifican en simples y estructurados.

    Los simples tienen la particularidad de que utilizan una sola casilla o celda de memoria y, por lo tanto, solo se puede hacer referencia a un valor a la vez. Dentro de los datos de tipo simple encontramos los números, tanto enteros como reales, y el tipo booleano. En la Figura 1.7 a) podemos observar un dato simple, un número entero, identificado con el nombre de edad, que ocupa una sola casilla de memoria y hace referencia a un único valor, en este caso 10.

    Los datos estructurados, por otra parte, se caracterizan por el hecho de que con un nombre se hace referencia a un grupo de celdas o casillas de memoria y, por lo tanto, pueden almacenar más de un valor. Dentro de este tipo de datos encontramos los números complejos, las cadenas de caracteres, las listas, los conjuntos, etc. En la Figura 1.7 b) podemos observar un dato estructurado que es una cadena de caracteres, identificado con el nombre de nombre_mascota, que hace referencia a un grupo de caracteres, en este caso charrúa.

    Por ahora, solo se usarán datos estructurados tipo cadenas de caracteres, llamados str en

    ¿Disfrutas la vista previa?
    Página 1 de 1