Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a la Programación: Algoritmos, Estructuras de Datos y Lenguajes, Resúmenes de Introducción a Ingeniería Software

Este documento proporciona una introducción completa a los conceptos básicos de la programación, incluyendo algoritmos, estructuras de datos, lenguajes de programación, desarrollo web y aplicaciones móviles. Se explica la importancia de los algoritmos en la resolución de problemas y se exploran diferentes tipos de algoritmos, como los de búsqueda y ordenamiento. También se abordan las estructuras de datos, como las listas lineales, y se analizan las estructuras selectivas y repetitivas en la programación. Una excelente herramienta para estudiantes que desean aprender los fundamentos de la programación.

Tipo: Resúmenes

2024/2025

Subido el 30/03/2025

alberto-lara-17
alberto-lara-17 🇲🇽

2 documentos

1 / 17

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Instituto Tecnológico de Boca del Río
Alumno: Luis Alberto Lara García
Materia: Software de Ingeniería Civil
Tema 4: Introducción a la programación.
Profesor: Juan Ramón Herrera Muñoz
Fecha: 05/12/202
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Introducción a la Programación: Algoritmos, Estructuras de Datos y Lenguajes y más Resúmenes en PDF de Introducción a Ingeniería Software solo en Docsity!

Instituto Tecnológico de Boca del Río

Alumno: Luis Alberto Lara García

Materia: Software de Ingeniería Civil

Tema 4 : Introducción a la programación.

Profesor: Juan Ramón Herrera Muñoz

Fecha: 05 / 12 /

Introducción La programación es un proceso mediante el cual creamos programas que son ejecutados por un sistema computacional, todo ello con el fin de resolver una tarea. Todo programa implementa un algoritmo. Un algoritmo es conjunto de acciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. La construcción de un algoritmo (y por tanto la de creación de un programa) se puede basar en varias técnicas de diseño. Lenguajes de programación. Existen diversos lenguajes de programación, cada uno con sus propias reglas y sintaxis. Algunos de los lenguajes más populares son: C++, Java, Python y JavaScript. Cada lenguaje tiene sus ventajas y desventajas, y es importante elegir uno que se adapte a las necesidades del proyecto. Algoritmos y estructuras de datos Los algoritmos son secuencias de pasos que resuelven un problema específico. Las estructuras de datos son formas de organizar y almacenar información en la memoria de una computadora. Comprender los algoritmos y las estructuras de datos es fundamental para la programación eficiente y optimizada. Lenguajes de programación web más importantes

Aplicaciones móviles y programación La programación también se utiliza para desarrollar aplicaciones móviles. Los sistemas operativos como Android e iOS ofrecen plataformas de desarrollo que permiten a los programadores crear aplicaciones para dispositivos móviles. Conocer los principios básicos de la programación móvil es beneficioso para los estudiantes de Computación e Informática. Seguridad en la programación La seguridad en la programación es un aspecto crítico a tener en cuenta. Los programadores deben ser conscientes de las vulnerabilidades y amenazas potenciales en el software que desarrollan. Esto implica aprender sobre prácticas seguras de codificación, autenticación, autorización y protección de datos. Pruebas y depuración de programas Las pruebas y la depuración son etapas importantes en el desarrollo de software. Es necesario probar y verificar el funcionamiento correcto de un programa antes de su implementación. La depuración implica identificar y corregir errores o fallos en el código. Aprender técnicas efectivas de prueba y depuración mejora la calidad del software. Herramientas y entornos de desarrollo Existen numerosas herramientas y entornos de desarrollo que facilitan la programación. IDEs como Visual Studio Code, PyCharm y Eclipse proporcionan características útiles, como resaltado de sintaxis, autocompletado y depuración integrada. Familiarizarse con estas herramientas ayuda a los estudiantes de Computación e Informática a desarrollar programas de manera más eficiente. Recursos y comunidades de programación En Internet, hay una gran cantidad de recursos y comunidades de programación que brindan apoyo y conocimientos adicionales. Foros, tutoriales en línea y plataformas de aprendizaje como Stack Overflow, GitHub y Coursera son valiosos para los estudiantes de Computación e Informática. Participar en estas

comunidades fomenta el aprendizaje continuo y la colaboración. La programación es una habilidad esencial en el campo de la Computación e Informática. En este artículo, hemos explorado los conceptos básicos de la programación, desde los lenguajes y algoritmos hasta el desarrollo web y las pruebas de software. A medida que los estudiantes se sumergen en este mundo, es importante practicar, aprender de la experiencia y mantenerse actualizado con las últimas tendencias y tecnologías. 4.2. Algoritmos. Al diseñar un programa, el desafío principal es crear y describir un procedimiento que esté completamente bien definido, que no tenga ambigüedades, y que efectivamente resuelva el problema. Así es como la programación no es tanto sobre computadores, sino sobre resolver problemas de manera estructurada. El objeto de estudio de la programación no son los programas, sino los algoritmos. Un algoritmo es un procedimiento bien definido para resolver un problema. Todo el mundo conoce y utiliza algoritmos a diario, incluso sin darse cuenta: Una receta de cocina es un algoritmo; si bien podríamos cuestionar que algunos pasos son ambiguos (¿cuánto es «una pizca de sal»? ¿qué significa «agregar a gusto»?), en general las instrucciones están lo suficientemente bien definidas para que uno las pueda seguir sin problemas. La entrada de una receta son los ingredientes y algunos datos como: ¿para cuántas personas se cocinará? El proceso es la serie de pasos para manipular los ingredientes. La salida es el plato terminado. Áreas de programación

Las tres partes de un algoritmo son: − Input (entrada). Información que damos al algoritmo con la que va a trabajar para ofrecer la solución esperada. − Proceso. Conjunto de pasos para que, a partir de los datos de entrada, llegue a la solución de la situación. − Output (salida). Resultados, a partir de la transformación de los valores de entrada durante el proceso. De este modo, un algoritmo informático parte de un estado inicial y de unos valores de entrada, sigue una serie de pasos sucesivos y llega a un estado final en el que ha obtenido una solución. Asimismo, los algoritmos presentan una serie de características comunes. Son: − Precisos. Objetivos, sin ambigüedad. − Ordenados. Presentan una secuencia clara y precisa para poder llegar a la solución. − Finitos. Contienen un número determinado de pasos. − Concretos. Ofrecen una solución determinada para la situación o problema planteados. − Definidos. El mismo algoritmo debe dar el mismo resultado al recibir la misma entrada. Tipos de algortimos Existen diversas clasificaciones de algoritmos, en función de diferentes criterios. Según su sistema de signos (cómo describen los pasos a seguir), se distingue entre algoritmos cuantitativos y cualitativos, si lo hacen a través de cálculos matemáticos o secuencias lógicas. Asimismo, si requieren o no el empleo de un ordenador para su resolución, se clasifican en computacionales y no computacionales.

Pero, si nos fijamos en su función (qué hace) y su estrategia para llegar a la solución (cómo lo hace), encontramos muchos más tipos de algoritmos. Destacamos los siguientes cinco tipos de algoritmos informáticos: Algoritmos de búsqueda Los algoritmos de búsqueda localizan uno o varios elementos que presenten una serie de propiedades dentro de una estructura de datos. Existen diversos tipos de búsquedas, entre las que sobresalen: Búsqueda secuencial. En la que se compara el elemento a localizar con cada elemento del conjunto hasta encontrarlo o hasta que hayamos comparado todos. Búsqueda binaria. En un conjunto de elementos ordenados, hace una comparación con el elemento ubicado en el medio y, si no son iguales, continúa la búsqueda en la mitad donde puede estar. Y así sucesivamente en intervalos cada vez más pequeños de elementos. Ejemplos de algoritmos de Búsqueda y Ordenamiento

código de longitud variable. Cuanto mayor sea la frecuencia le corresponderá un código más corto. Algoritmos probabilísticos Es una técnica que usa una fuente de aleatoriedad como parte de su lógica. Mediante un muestreo aleatorio de la entrada llega a una solución que puede no ser totalmente óptima, pero que es adecuada para el problema planteado. Se utiliza en situaciones con limitaciones de tiempo o memoria y cuando se puede aceptar una buena solución de media, ya que a partir de los mismos datos se pueden obtener soluciones diferentes y algunas erróneas. Para que sea más probable ofrecer una solución correcta, se repite el algoritmo varias veces con diferentes submuestras aleatorias y se comparan los resultados. Tipos de algoritmos probabilísticos Algoritmo de Montecarlo. Dependiendo de la entrada, hay una pequeña probabilidad de que no acierte o no llegue a una solución. Se puede reducir la probabilidad de error aumentando el tiempo de cálculo. Algoritmo de Las Vegas. Se ejecuta en un periodo de tiempo concreto. Si encuentra una solución en ese tiempo ésta será correcta, pero es posible que el tiempo se agote y no encuentre ninguna solución. 4.3. Diagramas de flujo. Un diagrama de flujo, también llamado flujograma, es la representación gráfica de procesos, sistemas o algoritmos informáticos a través de formas geométricas y flechas conectoras. Las formas normalmente indican etapas del proceso u opciones de desarrollo. Las flechas representan secuencias de tareas y la relación entre los pasos. Algoritmo voraz de Dijkstra

Las organizaciones usan diagramas de flujo para simplificar sus procesos al transmitirlos de manera visual. Cada paso del flujograma indica cuál es la siguiente acción a realizar. Al estar ordenados cronológicamente, resultan fáciles de seguir y útiles a la hora de tomar decisiones, ordenar procesos, identificar errores, etc. Por ejemplo, una empresa de software aplica un diagrama de flujo para lanzar una aplicación, los nuevos empleados para completar una tarea de manera ordenada, y el departamento de calidad para asegurarse que sus productos cumplen con los protocolos necesarios. Los diagramas de flujo tienen sus ventajas:

  • Permiten manejar el tiempo de forma eficiente. Puedes ahorrar tiempo en explicaciones extensas a tu equipo o clientes, ya que esta herramienta contiene toda la información importante sintetizada.
  • Agilizan la comunicación. Facilita la comunicación dentro de una empresa: por ejemplo, el sector de producción le envía la información necesaria al área de ventas mediante un flujograma.
  • Sirven como medio de capacitación. Las organizaciones pueden usar estos gráficos ordenados y claros para capacitar al personal de nuevo ingreso o mantener informado al equipo de trabajo sobre los procesos que se implementan.
  • Detectan problemas. Gracias a los flujogramas, puedes ver en qué etapa se encuentra el error dentro del procedimiento. Asimismo, te permite detectar los aspectos que debes mejorar o modificar: cuellos de botella, conflictos o pasos innecesarios.
  • Facilitan la gestión de documentos. Puedes documentar textos extensos de manera compacta y plasmar procesos complejos en un solo gráfico. Componentes de un diagrama de flujo

Importancia de las listas lineales para los desarrolladores Es importante que un desarrollador comprenda las ventajas de las listas lineales en programación, porque en el desarrollo de software la elección de la estructura de datos adecuada es esencial para lograr un rendimiento eficiente y cumplir con los requisitos funcionales de una aplicación. Saber cuándo y cómo utilizar listas lineales, como listas enlazadas, arrays dinámicos o pilas, entre otras, le permite a los desarrolladores seleccionar la estructura de datos más apropiada para un problema específico. Esto evita la ineficiencia y los errores que podrían surgir al elegir una estructura inadecuada. Las listas lineales, en particular las listas enlazadas, son eficientes en cuanto a uso de memoria y operaciones de inserción y eliminación. Comprender estas ventajas ayuda a los desarrolladores a optimizar el uso de recursos en sus aplicaciones, lo que es esencial, especialmente en sistemas que manejan grandes cantidades de datos. En resumen, las listas son una herramienta valiosa para cualquier desarrollador. Ofrecen flexibilidad en la manipulación de datos, eficiencia en la inserción y el uso de memoria, además de permitir mantener elementos del mismo tipo. Si bien pueden no ser la opción más eficiente en todas las situaciones de búsqueda, siguen siendo una estructura de datos versátil y esencial en la caja de herramientas de cualquier programador. 4.5. Estructuras selectivas. Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas. Las utilizamos cuando en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir. Esta toma de decisión se basa en la evaluación de una o más condiciones que nos señalarán como alternativa o consecuencia, el camino a seguir. Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una decisión, se marca el camino correspondiente a seguir, se vuelve a tomar otra decisión y así sucesivamente. Por lo que para alcanzar la solución de un problema o subproblema debemos aplicar prácticamente un árbol de decisión. Estructura selectiva doble.

Las estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas las podemos clasificar de la siguiente forma: 1.SI ENTONCES (Estructura selectiva simple) 2.SI ENTONCES / SINO (Estructura selectiva doble) 3.SI MULTIPLE (Estructura selectiva múltiple) Cabe señalar que cuando a las estructuras selectivas las aplicamos en cascada, podemos utilizar una combinación de las estructuras señaladas anteriormente en la clasificación. La estructura selectiva simple si entonces. Donde: CONDICIÓN expresa la condición a evaluar. OPERACIÓN expresa la operación o conjunto de operaciones que se van a realizar si la condición resulta verdadera. En lenguaje algorítmico: Si condición entonces Hacer operación La estructura selectiva doble si entonces/sino. Donde:

ACCION N expresa la operación o conjunto de operaciones que se van a realizar si el selector toma el valor N. ACCION N+1 expresa la operación que se va a realizar cuando se continúe con el flujo normal del diagrama. 4.6. Estructuras repetitivas Dentro de la programación estructurada existen unas instrucciones que permite que el computador realice una misma instrucción mas de una vez utilizando los mismos datos o un conjunto de datos diferentes. Estas estructuras son las instrucciones repetitivas, que permiten realizar una instrucción más de una vez, esto también, se denomina bucles o interacciones. Todas la estructuras repetitivas deben tener una variable de control que permite realizar las interacciones hasta que esta variable cumpla una condición dada. Esta variable de control puede tener dos procedimientos:

  1. Repetición controlado por contador o una condición cuantitativa.
  2. Repetición controlada por centinela o condición cualitativa. La condiciones cuantitativas o controladas por contador a veces son repeticiones definidas, porque con anterioridad se sabe cuantas veces se realizara el bucle; estas clase de condiciones deben tener una variable de control que se ira incrementado o decrementando según sea el caso, cada vez que se ejecute un bucle, hasta que cumpla un límite o una condición dada, estas variables son conocidas como variables de control o contadores. Las repeticiones controladas por centinela o cuantitativas a veces se denomina repetición indefinida porque no se sabe con anticipación cuantas veces se ve a ejecutar, este tipo de repetición se utiliza:
  • Cuando el número de repeticiones no es conocido con anticipación
  • El bucle incluye enunciados que deben obtener datos cada vez que este se ejecute; el valor de la centinela indica fin de datos.

Bibliografía

Lógica de programación. (s. f.). https://mdm.usta.edu.co/remos_downloads/oev/logica_de_programacion/temas/estruct uras_repetitivas.htm Introducción a la programación — Programación. (s. f.). http://progra.usm.cl/apunte/materia/introduccion.html Maluenda, R. (2023, 19 octubre). Qué es un algoritmo informático: características, tipos y ejemplos. Profile Software Services. https://profile.es/blog/que-es-un-algoritmo-informatico/ Lógica de programación. (s. f.-b). https://mdm.usta.edu.co/remos_downloads/oev/logica_de_programacion/temas/estruct uras_repetitivas.htm