Want to make creations as awesome as this one?

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