Conceptos basicos
LUIS DANIEL CANUL MARTINEZ
Created on August 28, 2024
More creations to inspire you
AUSSTELLUNG STORYTELLING
Presentation
HISTORY OF THE EARTH
Presentation
3 TIPS FOR AN INTERACTIVE PRESENTATION
Presentation
49ERS GOLD RUSH PRESENTATION
Presentation
INTERNATIONAL EVENTS
Presentation
THE EUKARYOTIC CELL WITH REVIEW
Presentation
INTRO INNOVATE
Presentation
Transcript
2024
Tec Lerma
Mecatronica T1B
Luis Daniel Canul Martinez
Programacion Basica y Algoritmos
9.Bibliografia
8.Conclusion
7. Diseño algorítmico de funciones
6. Diseño de algoritmos aplicados a problemas.
5.Representación de algoritmos: gráfica y pseudocódigo.
4.Análisis de problemas.
3. ¿Que es...
Indice
2. clasificacion de software
1. introducción
TEMAS
La programacion es un proceso en el que en el que se crean instrucciones para ser ejecutadas y realizar tareas especificas.Es algo fundamental en la sociedad actual ya que esta puede ser aplicada a una variedad extensa de campos de trabajo.
Subtítulo
Introduccion
El software de sistema es esencial para el funcionamiento de cualquier dispositivo informático,ya que esto los estructuran y hacen que funcionen. Sistemas Operativos: Gestionan los recursos del hardware y proporcionan servicios básicos para las aplicaciones como Windows, macOS, Linux y Android. Controladores de Dispositivos: Permiten que el sistema operativo y otros programas interactúen con el hardware. Como los controladores de impresoras, tarjetas gráficas y dispositivos USB. Herramientas de Programación: Incluyen compiladores, ensambladores y enlazadores que son esenciales para el desarrollo de software. Programas Utilitarios: Realizan tareas de mantenimiento y gestión del sistema, como antivirus, herramientas de desfragmentación y programas de copia de seguridad. Cargadores de Programas: Gestionan la carga de programas en la memoria para su ejecución.
Sistema
Clasificacion del Software
Tipos
Caracteristicas y Ventajas
El software de aplicación es un tipo de programa informático diseñado para ayudar a los usuarios a realizar tareas específicas. A diferencia del software de sistema, que gestiona los recursos del hardware y proporciona servicios básicos, el software de aplicación se centra en tareas y actividades concretas. Un ejemplo común de software de aplicación es un procesador de texto como Microsoft Word. Este programa permite a los usuarios crear, editar y guardar documentos de texto, ofreciendo herramientas como corrector ortográfico, formatos de texto, y plantillas predefinidas.
Aplicacion
Clasificacion del Software
Un algoritmo en programación es una secuencia finita y ordenada de instrucciones que una computadora sigue para resolver un problema o realizar una tarea específica. Definición: Un algoritmo de programación es como una receta de cocina que describe los pasos exactos necesarios para que la computadora logre un objetivo. Características: Secuencial: Los pasos se ejecutan en un orden específico. Claro y Preciso: Cada instrucción debe ser clara y no ambigua. Finitud: Debe tener un número finito de pasos. Ejemplos: Búsqueda: Algoritmo de búsqueda binaria para encontrar un elemento en una lista ordenada. Ordenación: Algoritmo de ordenación rápida (quicksort) para ordenar elementos en una lista. Representación: Pseudocódigo: Una forma de escribir algoritmos en un lenguaje similar al natural. Diagramas de flujo: Representación gráfica de los pasos del algoritmo.
Algoritmo
¿Que es?
Un lenguaje de programación es un conjunto de reglas y símbolos que permiten a los programadores comunicarse con una computadora para darle instrucciones y realizar tareas específicas. Definición: Es un lenguaje formal diseñado para expresar algoritmos y procesos lógicos que una computadora puede ejecutar. Componentes: Sintaxis: Conjunto de reglas que define la estructura correcta de las instrucciones.Semántica: Significado de las instruccionesy cómo se ejecutan.Tipos: Lenguajes de bajo nivel: Cercanos al lenguaje máquina, como el ensamblador. Lenguajes de alto nivel: Más cercanos al lenguaje humano, como Python, Java, y C++1.Ejemplos: Python: Conocido por su simplicidad y legibilidad. Java: Popular en aplicaciones empresariales y móviles. C++: Utilizado en sistemas operativos y aplicaciones de alto rendimiento.
Lenguaje de Programación
¿Que es?
Un programa es un conjunto de instrucciones detalladas y codificadas que una computadora sigue para realizar una tarea específica o resolver un problema. Definición: En informática, un programa es una secuencia de instrucciones escritas en un lenguaje de programación que la computadora puede interpretar y ejecutar. Componentes: Código Fuente: Las instrucciones escritas por el programador. Interfaz de Usuario: El medio visual mediante el cual los usuarios interactúan con el programa. Tipos de Programas: Aplicaciones: Programas diseñados para realizar tareas específicas, como procesadores de texto o navegadores web. Sistemas Operativos: Programas que gestionan los recursos de la computadora y proporcionan servicios a otras aplicaciones. Ejemplos: Microsoft Word: Un procesador de texto. Google Chrome: Un navegador web. Windows: Un sistema operativo
Programa
¿Que es?
La programación es el proceso de crear un conjunto de instrucciones que una computadora sigue para realizar tareas específicas. Definición: Es el acto de escribir código en un lenguaje de programación para que una computadora pueda ejecutar ciertas acciones o resolver problemas. Componentes: Código Fuente: Las instrucciones escritas por el programador. Lenguaje de Programación: El medio utilizado para escribir el código, como Python, Java, o C++. Objetivo: Facilitar la creación de programas y aplicaciones que sean eficientes, accesibles y útiles para los usuarios. Tipos de Programación: Programación Imperativa: Describe cómo se debe realizar una tarea. Programación Declarativa: Describe qué resultado se desea obtener sin especificar cómo lograrlo
Programación
¿Que es?
Tipos
Programación Orientada a Aspectos (AOP)
Programación Lógica
Programación Funcional
Programación Orientada a Objetos (OOP)
Programación Declarativa:
Programación Imperativa
Los paradigmas de programación son enfoques o estilos que definen cómo se estructura y ejecuta el código en un lenguaje de programación. Cada paradigma tiene su propia filosofía y conjunto de principios que guían la resolución de problemas y la creación de software
Paradigmas de programación
¿Que es?
Tipos
Vim
Brackets
Notepad++
Atom
Sublime Text
Visual Studio Code (VS Code)
Los editores de texto son herramientas esenciales para los programadores, ya que permiten escribir y editar código fuente de manera eficiente.
Editores de texto
¿Que es?
Los compiladores e intérpretes son herramientas fundamentales en la programación, ya que permiten traducir el código fuente escrito por los programadores a un formato que las computadoras pueden entender y ejecutar.
Compiladores e intérpretes
¿Que es?
Compiladores
Diferencias
Interpretes
Un ejecutable es un archivo que contiene un programa en un formato que una computadora puede ejecutar directamente.Un ejecutable es el resultado final de la compilación de un programa. Contiene el código máquina o bytecode que el sistema operativo o una máquina virtual puede ejecutar sin necesidad de compilación adicional.
Ejecutables
¿Que es?
Componentes
Funcionamiento
Tipos de Ejecutables
Una consola de línea de comandos, también conocida como terminal o intérprete de comandos, es una interfaz basada en texto que permite a los usuarios interactuar con el sistema operativo mediante la introducción de comandos textuales. En lugar de utilizar una interfaz gráfica de usuario (GUI), donde se hacen clics en iconos y menús, en la consola de línea de comandos se escriben comandos específicos para realizar tareas como mover archivos, instalar software o configurar el sistema. Esta interfaz es especialmente útil para tareas de administración del sistema, automatización de procesos y acceso remoto a servidores. Algunas ventajas de usar una consola de línea de comandos incluyen: Eficiencia: Permite realizar acciones rápidamente mediante comandos de texto. Automatización: Facilita la creación de scripts para automatizar tareas repetitivas. Acceso remoto: Consume menos recursos de red, ideal para administrar servidores de forma remota
Consola de línea de comandos
¿Que es?
Programacion
Analisis de problemas
El analisis en la programacion es importante,ya que esto nos permite crear y adaptar diferentes soluciones segun sean las circunstancia y condiciones
Planificación de la solución
Descomposición del problema
Implementacion
Pruebas y Depuración
Diseño del algoritmo
Comprensión del problema
pseudocodigo
Grafico
Representación de algoritmos
La representacion de algortimos es importante ya que con esto nos aseguramos de que las soluciones de un problema sean claras,eficientes y comprensibles para todos los que estan involucrados en la situacion
Algoritmos
Ramificación y acotación
Dinámica
Metaheurísticas
Divide y vencerás
No determinísticos
Determinísticos
Probabilísticos
tecnicas de diseño
Diseño de algoritmos aplicados a problemas
Algoritmos
Paralelos
Voraces
Para comenzar con el diseño de un algoritmo se debe identificar cuales son las tareas mas importantes para realizar y establecer el orden en que sera ejecutadas.Llendo desde lo general hasta los detalles.Un algoritmo debe tener una entrada(informacion que se proporciona al algoritmo,proceso o problema(operaciones y calculos necesarios para resolver el problema y una salida(respuestas y resultados dadas por el algoritmo
Algoritmos
Diseño algorítmico de funciones
El diseño algorítmico de funciones es un enfoque en la programación que permite descomponer un problema complejo en subproblemas más manejables, utilizando funciones
Modularidad
Llamada a Función
Recursividad
Funciones Estándar y Definidas por el Usuario
La programación es un proceso fundamental en la sociedad actual, ya que permite crear instrucciones para ejecutar tareas específicas. Se aplica en una amplia variedad de campos de trabajo. Es crucial para resolver problemas de manera clara, eficiente y comprensible,involucra la descomposición de problemas complejos en subproblema.Existen diferentes enfoques y técnicas, como la programación orientada a objetos, funcional y lógica, que ayudan a abordar problemas desde distintas perspectivas.Incluyen editores de texto, compiladores e intérpretes, que son esenciales para escribir, traducir y ejecutar código.
Subtítulo
Conclusion
¿Qué es una CLI? - Explicación sobre la interfaz de línea de comandos - AWS. (s. f.). Amazon Web Services, Inc. https://aws.amazon.com/es/what-is/cli/
Dise�o algor�tmico de funciones | MarcoTeorico.com. (s. f.). MarcoTeorico.com. https://www.marcoteorico.com/curso/5/fundamentos-de-programacion/335/diseno-algoritmico-de-funciones
Prezi, M. G. O. (s. f.). 2.4 DISEÑO ALGORITMICO DE FUNCIONES. prezi.com. https://prezi.com/nmfrvgyuifmj/24-diseno-algoritmico-de-funciones/
Dise�o de algoritmos aplicados a problemas | MarcoTeorico.com. (s. f.). MarcoTeorico.com. https://www.marcoteorico.com/curso/5/fundamentos-de-programacion/334/diseno-de-algoritmos-aplicados-a-problemas
Concepto y clasificación del software. (s. f.). Algor Cards. https://cards.algoreducation.com/es/content/sKylP22z/conceptos-clasificacion-software
Clasificación de software de sistemas y aplicaciones. (2017, 30 agosto). Conogasi. https://conogasi.org/articulos/clasificacion-de-software-de-sistemas-y-aplicaciones/
Vico, J. G. (2001, 16 mayo). Conceptos Básicos de Programación: Guía Completa para Principiantes en Programación Web – aprendiz de programador web. https://aprendizdeprogramadorweb.com/conceptos-basicos-de-programacion/
Muñoz, J. D. (2024, 17 marzo). Análisis de problemas y diseño de algoritmos. PLEDIN 3.0. https://plataforma.josedomingo.org/pledin/cursos/curso_cpp1/curso/u01/
Casero, A. (s. f.). Resolución de problemas algorítmicos en programación. KeepCoding Bootcamps. https://keepcoding.io/blog/problemas-algoritmicos-en-programacion/
Subtítulo
Bibliografia
Algoritmos voraces
Seleccionan los elementos más prometedores delconjunto de candidatos hasta encontrar una solución. En la mayoría de los casosla solución no es óptima.
...son ejecutables?
...paradigmas de programación?
...programación?
...una consola de línea de comandos?
...son compiladores e intérpretes?
...son editores de texto?
... un programa?
...lenguaje de Programación?
...algoritmo?
Algoritmos paralelos
Permiten la división de un problema en subproblemas deforma que se puedan ejecutar de forma simultánea en varios procesadores
Divide y vencerás
Dividen el problema en subconjuntos disjuntos obteniendo unasolución de cada uno de ellos para después unirlas, logrando así la solución alproblema completo.
Algoritmos deterministicos
El comportamiento del algoritmo es lineal: cada pasodel algoritmo tiene únicamente un paso sucesor y otro antecesor
Diseño del algoritmo
Se crea un algoritmo que describa la secuencia de pasos necesarios para resolver el problema. Esto puede incluir el uso de pseudocódigo, diagramas de flujo u otras representaciones visuales
Se realizan pruebas exhaustivas para identificar y corregir errores en el código. La depuración es una parte esencial para asegurar que el programa funcione correctamente en todas las situaciones posibles
Implementación y pruebas
Involucra varios pasos: Asignación de valores a los parámetros formales. Ejecución del cuerpo de la función. Devolución del valor de la función al punto de llamada1
Llamada a Función
Metaheurísticas
Encuentran soluciones aproximadas (no óptimas) a problemasbasándose en un conocimiento anterior (a veces llamado experiencia) de losmismos
Algunas funciones pueden llamarse a sí mismas para resolver problemas mediante técnicas como “divide y vencerás” o programación dinámica.
Recursividad
Caracteristicas
Interfaz de Usuario: Diseñado para ser intuitivo y fácil de usar.Funcionalidad Específica: Cada aplicación está diseñada para realizar tareas específicas. Actualizaciones: Frecuentemente actualizado para mejorar la funcionalidad y la seguridad. Compatibilidad: Debe ser compatible con el sistema operativo y otros software de sistema.
Ventajas
Productividad: Aumenta la eficiencia en la realización de tareas específicas.Especialización: Proporciona herramientas especializadas para diferentes necesidades. Accesibilidad: Facilita el acceso a funciones avanzadas sin necesidad de conocimientos técnicos profundos.
Dinámica
Intenta resolver problemas disminuyendo su costecomputacional aumentando el coste espacial
Es importante identificar los datos de entrada necesarios y los resultados esperados. Esto ayuda a definir los requisitos del sistema y a planificar cómo se procesarán los datos
Planificación de la solución
Tipos
- Software de Oficina: Incluye programas como procesadores de texto (Microsoft Word), hojas de cálculo (Microsoft Excel), y software de presentación (Microsoft PowerPoint).
- Software Educativo: Diseñado para facilitar el aprendizaje y la enseñanza, como plataformas de e-learning (Moodle) y aplicaciones de tutoría (Khan Academy).
- Software de Entretenimiento: Incluye videojuegos, reproductores de música y video (VLC Media Player), y aplicaciones de streaming (Netflix).
- Software de Comunicación: Facilita la comunicación entre usuarios, como clientes de correo electrónico (Microsoft Outlook), aplicaciones de mensajería instantánea (WhatsApp), y plataformas de videoconferencia (Zoom).
- Software de Gestión: Ayuda en la administración de negocios y proyectos, como software de contabilidad (QuickBooks) y herramientas de gestión de proyectos (Trello).
La programación modular permite dividir un problema en subproblemas independientes, facilitando su resolución y mantenimiento.
Modularidad
Diagrama de Flujo Un diagrama de flujo utiliza símbolos gráficos para representar los pasos de un algoritmo. Cada símbolo tiene un significado específico y las flechas indican la dirección del flujo del proceso. Símbolos Comunes Óvalo: Indica el inicio y el fin del proceso. Rectángulo: Representa una instrucción o acción. Rombo: Indica una decisión que debe tomarse. Flechas: Muestran la dirección del flujo del proceso.
Grafica
La representación gráfica de algoritmos es una herramienta poderosa para visualizar y entender el flujo de un proceso. El método más común para esta representación es el diagrama de flujo.
- Ventajas de los Diagramas de Flujo
- Visualización: Facilitan la comprensión del flujo del algoritmo.
- Comunicación: Son útiles para comunicar ideas y procesos a personas no técnicas.
- Detección de Errores: Ayudan a identificar posibles errores o ineficiencias en el algoritmo.
Definición: Un intérprete es un programa que traduce y ejecuta el código fuente línea por línea durante el tiempo de ejecución. Funcionamiento: Lee, analiza y ejecuta cada línea de código secuencialmente. No genera un archivo ejecutable independiente. Ventajas: Flexibilidad: Facilita la depuración y prueba de código, ya que los errores se pueden identificar y corregir rápidamente. Portabilidad: Los programas interpretados pueden ejecutarse en cualquier sistema que tenga el intérprete adecuado
Ramificación y acotación
Se basa en la construcción de las soluciones alproblema mediante un árbol implícito que se recorre de forma controladaencontrando las mejores soluciones
Tiempo de Ejecución: Los programas compilados suelen ser más rápidos en ejecución, mientras que los interpretados pueden ser más lentos debido a la traducción línea por línea. Proceso de Desarrollo: Los compiladores requieren un paso adicional de compilación antes de la ejecución, mientras que los intérpretes permiten la ejecución inmediata del código
Una vez identificado, el problema se descompone en partes más pequeñas y manejables. Esto facilita el enfoque en cada componente individualmente
Descomposición del problema
Algoritmos no determinísticos
El comportamiento del algoritmo tiene forma deárbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasosinmediatamente posteriores, además todas las ramas se ejecutansimultáneamente
Las funciones pueden ser predefinidas (estándar) o creadas por el usuario. Las funciones estándar son proporcionadas por el lenguaje de programación, mientras que las definidas por el usuario son creadas para resolver problemas específicos
Funciones Estándar y Definidas por el Usuario
- El primer paso es entender claramente cuál es el problema que se necesita resolver. Esto incluye definir los objetivos y las restricciones del problema
Comprensión del problema
Algoritmos probabilisticos
Algunos de los pasos de este tipo de algoritmos estánen función de valores pseudoaleatorios.
El algoritmo se traduce a un lenguaje de programación específico. Durante esta fase, se escribe el código y se realizan pruebas iniciales para asegurar que el algoritmo funciona como se espera
Implementación y pruebas
Pseudocodigo
El pseudocódigo es una herramienta poderosa para representar algoritmos de manera clara y comprensible, sin la necesidad de adherirse a la sintaxis estricta de un lenguaje de programación específico
Ventajas del Pseudocódigo Claridad: Facilita la comprensión del algoritmo sin preocuparse por la sintaxis del lenguaje de programación. Flexibilidad: Puede ser adaptado fácilmente a cualquier lenguaje de programación. Comunicación: Es útil para comunicar ideas y algoritmos a personas que no están familiarizadas con la programación.
Definición: Un compilador es un programa que traduce todo el código fuente de un proyecto de software a código máquina antes de que se ejecute. Funcionamiento: Convierte el código fuente en un archivo ejecutable que la computadora puede correr directamente. Este proceso se realiza una sola vez, y el archivo resultante puede ser ejecutado múltiples veces sin necesidad de recompilación. Ventajas: Eficiencia: Los programas compilados suelen ser más rápidos y eficientes en tiempo de ejecución. Optimización: Los compiladores pueden optimizar el código durante el proceso de compilación. Ejemplos de Lenguajes: C, C++, Rust, Go