Presentación interactiva.
ROBERTO DEL ANGEL ALDANA MENDEZ
Created on September 1, 2024
More creations to inspire you
FACTS IN THE TIME OF COVID-19
Presentation
FOOD 1
Presentation
TANGRAM PRESENTATION
Presentation
COUNTRIES LESSON 5 GROUP 7/8
Presentation
STAGE2- LEVEL1-MISSION 2: ANIMATION
Presentation
LIBRARIES LIBRARIANS
Presentation
WORLD WILDLIFE DAY
Presentation
Transcript
Unidad 1Conceptos basicos y algoritmos
Roberto del Angel Aldana Mendez.
Ingenieria en Mecatronica
PROGRAMACION BASICA
START
Introducción
La programación básica es el punto de partida para aprender a escribir y entender códigos.Donde tenemos a disposición variedad de lenguajes de programación como por ejemplo Python, conoceremos los conceptos básicos, funciones, sintaxis básica y depuración.Recuerden ¡La practica constante te ayudara a mejorar tus habilidades y compresión!
+INFO
SOFTWARE DEL SISTEMAEl software del sistema es un conjunto de programas escritos para dar servicio a otros programas. Se caracteriza por: gran interacción con el hardware de la computadora, uso intensivo por parte de usuarios múltiples, operación concurrente que requiere la secuenciación, recursos compartidos y administración de un proceso sofisticado (Pressman, 2010).Dicho de otra manera, este software es el encargado de interactuar y gestionar los dispositivos de hardware de un sistema de cómputo (microprocesador, periféricos, dispositivos de comunicación).El Software del sistema se subdivide en tres categorías:* Sistemas operativos* Controladores de dispositivos o drivers* Herramientas de diagnóstico
1.1 Clasificación del software de: sistemas y aplicación.
Cita siempre al autor/a
- Windows
- Linux y sus diferentes distribuciones
- Mac Os
En computadoras, los sistemas operativos más comunes son:
- Solaris
- Unix
- OpenBSD
- Wave OS
- BeOS
- Android
- ios
- Windows
- Phone Symbian
- OS WatchOS
- Android Wear
Sistema operativo :
Software básico que presenta una interfaz entre los programas del computador, los dispositivos de hardware y el usuario. Todo equipo de cómputo debe tener instalado un S.O para su funcionamiento (Portalsenior, 2010).El S.O gestiona y controla las actividades de los diferentes dispositivos del equipo, tales como: microprocesador, memoria principal y secundaria, dispositivos de entrada y de salida, GPS, entre otros.El conjunto de programas que conforman el S.O. indican como usar los circuitos primarios y los dispositivos conectados al equipo de cómputo. Además, permiten la transferencia de datos entre programas y el hardware (Vasconcelos, 2018).En el mercado existen varios sistemas operativos, algunos de ellos usados en computadoras, otros en dispositivos móviles y en dispositivos inteligentes como televisores o relojes:
- Procesamiento de texto.
- Reproductores de multimedia.
- Hojas de cálculo.
- Presentaciones.
- Software educativo.
- Videojuegos.
- Navegadores para internet.
- Tiendas virtuales.
- Software Web.
- Diseño gráfico.
Software de aplicación
Este tipo de software está construido con el propósito de atender necesidades comunes de un grupo de usuarios. Es desarrollado por programadores individuales o grandes compañías productoras de software.Dentro de este grupo de software se encuentran aplicaciones como:
1.2 Definición de: Algoritmo, Lenguaje de Programación, Programa,Programación, Paradigmas de programación,Editores de texto, Compiladores e interpretes, Ejecutables, Consola de línea de comandos.
- Lenguaje natural.
- Lenguaje de programación.
- Pseudocódigo.
- Diagramas de flujo.
En el contexto matemático, los algoritmos son una serie de normas o leyes específicas que hace posible la ejecución de actividades, cumpliendo una serie de pasos continuos que no le originen dudas a la persona que realice dicha actividad. Los algoritmos se pueden expresar de diversas formas:
Algoritmo
Definición
En general, un algoritmo es un conjunto de instrucciones paso a paso que manipulan la información para encontrar la solución a un problema. De hecho, algoritmo no es específico para las computadoras y tiene sus raíces derivadas de matemáticas. Casi todas nuestras actividades cotidianas que van desde multiplicar números a la programación de vuelos se basan en un conjunto definido de reglas se realizan de manera predefinida que constituyen el proceso algorítmico. Como pseudocódigo no puede producir cualquier salida como tal, un programador Lee un pseudocódigo y traduce los pasos según una especificación de lenguaje de programación específico.
Lenguaje de programación.
Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación. Un lenguaje de programación proporciona los elementos de lenguaje necesarios que son necesarios para traducir los pasos de un pseudocódigo en formato comprensible de la máquina. En otras palabras, el lenguaje de programación proporciona el puente para hacer la transición de pseudocódigo legible por humano instrucciones legible por máquina. Las dos clasificaciones principales de lenguajes de programación son: bajo nivel de lenguaje de programación y lenguaje de programación de alto nivel.
- Los lenguajes de primera generación, o 1GL, lenguajes de bajo nivel que son lenguaje de máquina.
- Los lenguajes de segunda generación, o 2GL, lenguajes de bajo nivel que generalmente consisten en lenguajes ensamblados.
- Los lenguajes de tercera generación, o 3GL, lenguajes de alto nivel como C.
- Los lenguajes de cuarta generación, o 4GL, son idiomas que consisten en declaraciones similares a las declaraciones en un lenguaje humano. Los lenguajes de cuarta generación se usan comúnmente en la programación de bases de datos y scripts.
- Los idiomas de quinta generación, o 5GL, son lenguajes de programación que contienen herramientas visuales para ayudar a desarrollar un programa. Un buen ejemplo de un lenguaje de quinta generación es Visual Basic.
Generaciones de lenguaje de programación.
Tipos de lenguaje de programación.
Hay tres tipos de lenguaje de programación
1. Lenguaje maquina (bajo nivel)2. Lenguaje ensamblador (bajo nivel)3. Lenguaje de alto nivel
Digamos que un motor tiene un procesador y memoria principal. El motor puede rotar a la izquierda y a la derecha, y puede verificar el interruptor de encendido / apagado. Las instrucciones de la máquina son de un byte de largo y corresponden a las siguientes operaciones de la máquina.
EJEMPLO:
- El lenguaje de la máquina es una colección de dígitos binarios o bits que la computadora lee e interpreta.
- Los lenguajes de máquina son los únicos idiomas que las computadoras entienden. Aunque las computadoras las entienden fácilmente, los lenguajes de máquina son casi imposibles de usar por los humanos, ya que consisten completamente de números.
- Los idiomas de bajo nivel están más cerca del idioma utilizado por una computadora, mientras que los idiomas de alto nivel están más cerca de los idiomas humanos.
Lenguaje maquina.
- El problema es que la computadora no comprende el código ensamblador, por lo que necesitamos una forma de convertirlo a código de máquina, que la computadora sí entiende.
- Los programas de lenguaje ensamblador se traducen al lenguaje de máquina mediante un programa llamado ensamblador.
Lenguaje ensamblador.
Ejemplo:
-Lenguaje de máquina: 10110000 01100001 - Lenguaje ensamblador: mov A1, # 061h - Sentido: Mueva el valor hexadecimal 61 (97 decimal) en el registro del procesador llamado "A1".
Lenguaje de alto nivel.
*Los idiomas de alto nivel nos permiten escribir códigos de computadora usando instrucciones que se asemejan al lenguaje hablado cotidiano (por ejemplo: imprimir, si, mientras) que luego se traducen al lenguaje de máquina para ser ejecutados.* Los programas escritos en un lenguaje de alto nivel deben ser traducidos al lenguaje de máquina antes de que puedan ser ejecutados.* Algunos lenguajes de programación usan un compilador para realizar esta traducción y otros usan un intérprete.
Aspectos Clave de la Programación:
- Diseño del Algoritmo: Crear un conjunto de pasos lógicos que resuelvan un problema específico. Puede incluir diagramas de flujo, pseudocódigo, etc.
- Codificación: Escribir el código fuente en un lenguaje de programación que implemente el algoritmo diseñado.
- Pruebas: Verificar que el programa funciona correctamente mediante pruebas y corrección de errores.
- Depuración: Identificar y corregir errores o bugs en el código.
- Mantenimiento: Actualizar y mejorar el programa después de su implementación inicial para solucionar problemas, agregar nuevas funcionalidades o mejorar el rendimiento.
La programación es el proceso de diseñar, escribir, probar y mantener el código fuente de un programa. Implica una serie de actividades que van desde la planificación y diseño del algoritmo hasta la implementación y depuración del código.
2. ¿Qué es Programación?
- Instrucciones: Contiene una serie de instrucciones que definen qué operaciones realizar y en qué orden.
- Entradas y Salidas: Maneja datos de entrada y produce resultados o salidas.
- Ejecución: Se ejecuta en un entorno de ejecución, como un sistema operativo o un entorno de desarrollo integrado (IDE).
- Lenguaje de Programación: Está escrito en un lenguaje de programación que puede ser interpretado o compilado para ser ejecutado por una máquina.
Características de un programa:
1. ¿Qué es un Programa?
Un programa es una secuencia de instrucciones codificadas en un lenguaje de programación que una computadora puede interpretar y ejecutar. Los programas pueden variar en complejidad, desde simples scripts que realizan una tarea específica hasta aplicaciones complejas como sistemas operativos, navegadores web o videojuegos.
3. Programación FuncionalDescripción: La programación funcional se centra en el uso de funciones matemáticas y evita los efectos secundarios, utilizando la inmutabilidad y las funciones como ciudadanos de primera clase.Características:Funciones Puras: Las funciones no tienen efectos secundarios y siempre producen el mismo resultado para las mismas entradas.Inmutabilidad: Los datos no se modifican una vez creados.Funciones de Orden Superior: Las funciones pueden aceptar otras funciones como argumentos o devolver funciones.
2. Programación Orientada a Objetos (OOP)Descripción: La programación orientada a objetos organiza el código en "objetos" que combinan datos y métodos. En este paradigma, el foco está en los objetos y sus interacciones, en lugar de en las secuencias de instrucciones.Características:Clases y Objetos: Los datos y métodos se agrupan en clases que crean instancias conocidas como objetos.Encapsulamiento: Los detalles internos del objeto están ocultos y se accede a ellos solo a través de métodos.Herencia: Las clases pueden heredar características de otras clases.Polimorfismo: Los objetos pueden ser tratados como instancias de su clase base.
1. Programación ImperativaDescripción: En el paradigma imperativo, el enfoque se basa en dar instrucciones secuenciales para cambiar el estado del programa. Se centra en cómo hacer las cosas, describiendo paso a paso el proceso que debe seguirse.Características:Secuencia de Instrucciones: El programa se define como una serie de instrucciones que alteran el estado del sistema.Variables y Estados: Utiliza variables para mantener el estado y modifica su valor a lo largo del ejecución.
Los paradigmas de programación son enfoques distintos para escribir y organizar el código de manera que resuelvan problemas específicos de la programación. Cada paradigma ofrece un conjunto de principios y técnicas para desarrollar software y tiene sus propias ventajas y desventajas. Aquí te explico los paradigmas de programación más comunes:
- Editores de Texto Simples
- Editores de Texto para Programadores
- Editores de Texto con IDE Integrado
- Editores Basados en la Web
- Editores para la Terminal
Los editores de texto son herramientas esenciales para los programadores, ya que permiten escribir, editar y gestionar código fuente y otros tipos de texto. A lo largo de los años, los editores de texto han evolucionado, ofreciendo características y funcionalidades que facilitan el desarrollo de software. Aquí te presento una visión general de los editores de texto más populares y sus características clave.
1. Comprensión del ProblemaLeer el Enunciado: Asegúrate de entender completamente lo que se te está pidiendo. Revisa cualquier documentación o requisitos que acompañen al problema.Preguntar y Clarificar: Si hay algo que no entiendes, busca aclaraciones. Pregunta sobre cualquier ambigüedad o detalle adicional necesario.2. Definición de Entradas y SalidasEntradas: Identifica claramente los datos que el programa recibirá. ¿Qué tipo de datos son? ¿Cuál es su formato?Salidas: Determina qué resultados debe proporcionar el programa. ¿Qué formato deben tener los resultados?3. Identificación de Restricciones y RequisitosRestricciones: ¿Hay limitaciones en el tamaño de los datos, tiempo de ejecución, o uso de memoria?Requisitos: ¿Existen condiciones adicionales que deben cumplirse, como la precisión en los cálculos o el manejo de errores específicos?4. Descomposición del ProblemaDividir en Subproblemas: Rompe el problema en partes más pequeñas y manejables. Cada subproblema puede ser abordado de forma independiente.Definir Tareas: Identifica las tareas o funciones que necesitarás para resolver cada subproblema.5. Diseño del AlgoritmoElegir Algoritmos y Estructuras de Datos: Decide qué algoritmos y estructuras de datos utilizarás para resolver el problema. Considera la eficiencia y la adecuación para el problema.Crear un Algoritmo: Escribe un algoritmo detallado en pseudocódigo o diagramas de flujo que describa la solución paso a paso.6. ImplementaciónCodificación: Traducir el algoritmo a un lenguaje de programación. Asegúrate de seguir las buenas prácticas de programación y utilizar comentarios adecuados.Pruebas Iniciales: Realiza pruebas con casos básicos para verificar que el código funciona como se espera.
Análisis de problema
7. DepuraciónDetectar Errores: Usa herramientas de depuración y técnicas como la impresión de valores intermedios para encontrar y corregir errores en el código.Revisar Casos Especiales: Verifica que el código maneje correctamente los casos extremos y los valores atípicos.8. OptimizaciónMejorar el Rendimiento: Analiza el rendimiento del código y busca oportunidades para optimizarlo en términos de tiempo de ejecución y uso de memoria.Refactorización: Revisa el código para mejorar su claridad y estructura sin cambiar su funcionalidad.9. Documentación y MantenimientoDocumentar el Código: Proporciona comentarios y documentación que expliquen el propósito del código, cómo usarlo, y cómo funciona.Preparar para el Mantenimiento: Asegúrate de que el código sea fácil de entender y modificar en el futuro.
1.4 Representación de algoritmos: grafica y pseudocódigo.
Cita siempre al autor/a
Comparación y Uso
- Diagrama de Flujo: Ideal para visualizar la lógica del algoritmo de manera gráfica y es útil para entender la estructura general del flujo de control. Es particularmente útil para quienes prefieren ver el proceso paso a paso.
- Pseudocódigo: Ideal para representar la lógica del algoritmo de manera textual. Es útil para planificar el algoritmo antes de la implementación real y para comunicar la lógica a otros programadores.
2. PseudocódigoEl pseudocódigo es una forma de describir algoritmos en lenguaje natural con una sintaxis que se asemeja a los lenguajes de programación, pero sin adherirse a un lenguaje en particular. El objetivo es ser claro y comprensible, sin preocuparse por la sintaxis exacta del lenguaje de programación.
Símbolos Comunes en Diagramas de Flujo:
- Óvalo: Representa el inicio o fin del algoritmo.
- Rectángulo: Representa un proceso o acción (por ejemplo, asignar valores a variables).
- Rombo: Representa una decisión o condición (por ejemplo, una estructura if).
- Paralelogramo: Representa la entrada o salida de datos (por ejemplo, leer una entrada o mostrar un resultado).
- Flechas: Indican la dirección del flujo del control.
La representación gráfica y el pseudocódigo son dos herramientas fundamentales para diseñar algoritmos. Ambos enfoques ayudan a planificar y comunicar la lógica de un algoritmo antes de la implementación real en un lenguaje de programación. Aquí te explico ambos métodos y cómo se utilizan.1. Representación GráficaLa representación gráfica de algoritmos se realiza típicamente mediante diagramas de flujo. Los diagramas de flujo usan símbolos estándar para representar diferentes tipos de operaciones y el flujo de control del algoritmo.
1.5 Diseño de algoritmo aplicados a problemas.
Cita siempre al autor/a
1. Algoritmos de BúsquedaProblema: Búsqueda de un Elemento en una ListaDescripción: Encontrar si un elemento específico está presente en una lista.2. Algoritmos de Ordenación.3. Algoritmos de Programación Dinámica.4. Algoritmos de Grafos5. Algoritmos de Dividir y Vencer
Diseñar algoritmos para resolver problemas específicos implica seguir un enfoque sistemático para garantizar que la solución sea efectiva y eficiente. A continuación, te muestro cómo se pueden aplicar diferentes técnicas de diseño de algoritmos a problemas comunes.
1.6 Diseño algorítmico de funciones.
Cita siempre al autor/a
El diseño algorítmico de funciones implica:1. Definir claramente la tarea: Qué debe hacer la función y qué debe devolver.2. Elegir el enfoque adecuado: Decidir entre iteración, recursión, programación dinámica, etc.3. Manejar entradas y salidas: Asegurarse de que la función maneje correctamente los datos de entrada y devuelva los resultados esperados.4. Considerar la eficiencia: Optimizar la función para mejorar su rendimiento en términos de tiempo y espacio.Cada función diseñada debe cumplir con los requisitos del problema y ser lo más eficiente posible.
Conclusión
- Diseño de Funciones Básicas: Las funciones básicas son aquellas que realizan operaciones simples y no requieren manejo complejo de datos.
- 2. Diseño de Funciones con Control de Flujo: Estas funciones incluyen lógica más compleja, como bucles y decisiones.
- 3. Diseño de Funciones Recursivas: Las funciones recursivas llaman a sí mismas para resolver problemas complejos de manera más elegante.
- 4. Diseño de Funciones con Estructuras de Datos: Estas funciones manejan estructuras de datos más complejas, como listas o diccionarios.
- 5. Diseño de Funciones con Programación Dinámica: Estas funciones utilizan técnicas de programación dinámica para resolver problemas complejos de manera eficiente.
- 6. Diseño de Funciones con Optimización: Estas funciones se centran en mejorar la eficiencia de los algoritmos, tanto en términos de tiempo como de espacio.
El diseño algorítmico de funciones se refiere a cómo estructurar y definir funciones en un algoritmo para resolver un problema específico. En programación, una función es un bloque de código reutilizable que realiza una tarea específica. A continuación, te muestro cómo diseñar funciones algorítmicas para distintos tipos de problemas, incluyendo ejemplos y patrones comunes.
Gutiérrez, J., Herrera, O., Pulgarín, R. (2018). Introducción a la Programación en C. Armenia, Colombia. Editorial Elizcom. Vasconcelos S, J. (2018). Introducción a la computación. Ciudad de México, México. Grupo Editorial Patria.Pérez, Mariana . ( Última edición ) Definición de Algoritmo.