Skip to main content

REVISTA SOFTWARE DE SISTEMAS

Page 1

IXTAPALUCA

software de Sistemas PROGRAMACIÓN

LA REVISTA PARA AMANTES DE LA PROGRAMACIÓN

ALUMNO: MIGUEL ALEXIS MENDEZ FAJARDO PROF: ALINE YETZAL RAMÍREZ MARTÍNEZ

También puedes leer online en https://issuu.com/alexisystem/docs/software_de_sistemas

PT1

Revista Mensual 12/01/2024

$40.00

AÑO 24 No. 0001


PUBLICIDAD

¡TENEMOS UNA OPCIÓN PARA TI!

BUSCANOS EN NUESTRA PÁGINA OFICIAL

https://upemex.edu.mx/


13 DE ENERO DE 2024- SOFTWARE DE SISTEMAS

INTRODUCCIÓN

INTRODUCCIÓN ienvenidos a la primera edición de nuestra

revista

dedicada

a

la

programación y proyectos con Arduino. Sumérgete

en

tecnología,

el

fascinante

donde

la

mundo

de

la

creatividad

se

encuentra con el código. Exploraremos

innovadores

compartiremos inspirar

a

proyectos

conocimientos

la

comunidad

de

y

para

entusiastas

de Arduino. ¡Prepárate

para

descubrir

las

infinitas

posibilidades que ofrece este fascinante universo

de

la

programación

proyectos con Arduino!

y

los


REVISTA DE PROGRAMADORES

software de Sistemas

SUMARIO

1

¿Qué tanto sabes de pag 5-6 programación?

8

Algoritmos y pag 21-22 Estructura de Datos

9

Diagramas de Flujopag 23-24

2

Importancia de la Programación

3

Habilidades básicas del pensamiento para programar

4

Pensamiento Lógico pag 13-14 para Programar

5

Lógica Proposicionalpag 15-16

12

6

Inferencia Lógica pag 17-18

13

7

pag 7-8

pag 9-12

Proposiciones Lógicas

pag 19-20

10 11

Simbología de los Diagramas de Flujo

pag 25-26

Pseudocódigo pag 27-28

Lenguaje de Programación y sus Niveles pag 29-30

14

Procesadores de Texto pag 31-32 para Editores de Código

Tipos de Lenguaje de pag 33-34 Programación


REVISTA DE PROGRAMADORES

software de Sistemas

SUMARIO

15

pag 35-36

22

Entorno de Desarrollo pag 37-38 en Python

23

16 17 18 19 20 21

Metodologías de Programación

Programas Orientada a pag 39-40 Objetos

Operadores Aritméticos Variables

Constantes

Condicionales

pag 41-42

pag 33-44

pag 45-46

pag 47-48

Bucles

¡VAMOS A EXPERIMENTAR!

pag 49-50

pag 51-65

Prender y Apagar un Led. Calabaza de Hallowen. Semáforo Cuatro semáforos. Bote de Basura con Servomotor y Sensor de Proximidad. Carrito Controlado por Bluetooth en Arduino. Árbol de Navidad con Arduino. Tirar los Dados. Cronómetro.


¿QUE TANTO SABES DE PROGRAMACIÓN?

5


1. ¿Cuál de las siguientes opciones describe mejor la programación? a) Creación de hardware. b) Instrucciones para realizar una tarea. c) Manipulación de objetos físicos. d) Proceso de diseño gráfico.

6. ¿Qué representa la función "void" en la declaración de una función en muchos lenguajes de programación? a) No devuelve ningún valor b) Variable global c) Valor constante d) Ciclo infinito

2. En programación, ¿qué es una variable? a) Un valor constante. b) Una ubicación de memoria con un nombre asociado. c) Un tipo de bucle. d) Una función predefinida.

7. ¿Cuál es el propósito de un array o matriz en programación? a) Almacenar múltiples valores bajo un solo nombre b) Crear funciones personalizadas c) Definir variables globales d) Controlar el flujo del programa

3. ¿Cuál es el propósito principal de un bucle "for"? a) Declarar variables. b) Repetir un bloque de código un número específico de veces. c) Tomar decisiones basadas en condiciones. d) Definir funciones.

8. ¿Cuál de las siguientes opciones describe mejor el término "compilador"? a) Traduce código fuente a lenguaje máquina antes de la ejecución b) Ejecuta el código línea por línea en tiempo real c) Crea interfaces de usuario gráficas d) Organiza el código en funciones

4. En términos de programación, ¿qué significa "debugging"? a) Crear código nuevo. b) Corregir errores en el código. c) Mejorar la velocidad de ejecución. d) Optimizar el diseño visual.

9. En programación orientada a objetos, ¿qué es la herencia? a) Repetir un bloque de código b) Compartir características entre clases c) Declarar variables globales d) Definir funciones recursivas

5. ¿Cuál es la función de instrucción "if" en programación? a) Repetir un bloque de código. b) Declarar una variable. c) Tomar decisiones basadas condiciones. d) Definir funciones matemáticas.

la

en

10. ¿Cuál es el propósito de la función "setup" en Arduino? a) Definir funciones matemáticas b) Declarar variables c) Inicializar configuraciones iniciales d) Crear interfaces de usuario gráficas 6


La Importancia de la Programación

El rol de la programación en los últimos sesenta años ha sido crucial para comprender la evolución que ha tenido la sistematización de tareas y el manejo de la información que hoy en día damos como un hecho. Tiene como principal función el hecho de conseguir que innumerables trabajos que antes ejercíamos de forma manual y con un alto costo sean ejecutados por un ordenador con un ahorro significativo de tiempo. por otro lado, dada la increíble cantidad de información que hoy en día se maneja para distintas tareas, la programación es una herramienta de enorme valor porque permite bucear en la misma con muchísima facilidad. ¿QUÉ IMPORTANCIA TIENE EL APRENDER A PROGRAMAR? "Porque programar enseña a pensar". Se dice "que la programación es como un segundo lenguaje en la era digital. Es una habilidad que permitirá a todos los niños y jóvenes a convertirse en la nueva generación de innovadores y líderes”. "Y como cualquier lenguaje, la programación puede ser aprendida a edades tempranas con resultados extraordinarios".

7

"Los estudiantes que aprendan a programar estarán mejor preparados para la revolución tecnológica que se extiende por todas las culturas y derriba fronteras. El futuro demandará no solo programadores, sino profesionales que dominen el pensamiento computacional y lo sepan llevar a los campos de la medicina, la biología, el diseño y las artes. Además, la enseñanza de la programación a edades tempranas derriba preconceptos de género y anima a las chicas a pensar también en la posibilidad de estudiar carreras técnicas". Sin duda alguna, los beneficios que otorga aprender a programar no solo se reflejan en el mundo digital, sino también en la solución de problemas de la vida cotidiana. ”Todos en el país deberían aprender a programar un ordenador... porque eso te enseña a pensar.” –Steve Jobs. PARA MAYOR INFORMACIÓN ESCANÉAME


8

Qué tanto aprendiste?


Habilidades Básicas del Pensamiento para Programar

1.La actitud del programador es vital, pero las habilidades lo son más. Tener la actitud no es lo mismo que ser competente, y existe un cierto conjunto de herramientas básicas que debes dominar antes de convertirte en programador o que cualquiera pueda llamarte así. 1. Aprende informática básica. Si no se conocen los conceptos de ordenador, hardware, software y sus clasificaciones, datos, información, sus unidades de medida y los diferentes medios de almacenamiento de datos entre otros conceptos, es muy difícil comprender en qué se fundamenta la programación. Es como querer conducir un auto sin haber tomado un curso básico de manejo. 2. Aprende cómo usar aplicaciones y el sistema operativo. El saber emplear el sistema operativo y las aplicaciones de oficina es de muchísima utilidad. Los programadores dominan ampliamente estos tipos de software y los utilizan como herramientas en su trabajo y como componentes dentro de sus soluciones. Como parte de tu aprendizaje de la programación debes conocer las facilidades y limitaciones del software básico de la PC para explotar al máximo sus capacidades en tu propio beneficio y de los demás. Si no sabes cómo usarlo te verás seriamente limitado en tu aprendizaje de la programación y en la creación de soluciones.

9

3. Consigue un inglés funcional. Un gran porcentaje de documentos y artículos técnicos, libros de texto, la ayuda y la interfaz de muchos programas no tienen una versión traducida al español, y una gran cantidad de foros técnicos, páginas web y recursos de la Internet en general usan o tienen el inglés como idioma de trabajo. Por esas y muchas otras razones que tienen que ver con tu preparación y tu futuro como profesional, debes poseer al menos un inglés básico funcional, con un buen dominio del vocabulario técnico informático. 4. Aprende matemáticas. Sí, es importante conocer matemática para aprender a programar, pero no significa que debas conocer matemática avanzada como el cálculo, el análisis, las series de Fourier o la matemática cuántica. A menos que estés interesado en los gráficos, los videojuegos y las aplicaciones científicas donde el tener habilidades especiales con los números definitivamente es muy importante, en general lo único que necesitas saber es aritmética básica, álgebra, geometría y lógica y teoría de conjuntos. Lo importante es que debes sentirte cómodo con los conceptos, las operaciones básicas, las fórmulas y el razonamiento deductivo que implican estas materias.


Habilidades Básicas del Pensamiento para Programar 5. Aprende teoría de programación y a desarrollar algoritmos. El dominio de la teoría es fundamental en cualquier campo, más aún si ese campo implica mucha teoría aplicada como lo es el de la programación. Pero además de ello, para aprender a programar es sumamente importante el saber estructurar soluciones a problemas mediante el diseño y la escritura de algoritmos. Esta es una habilidad clave para el aprendizaje de la programación. 6. Obtén el compilador de un lenguaje y aprende a programar en él. El paso más importante que cualquier novato puede dar, camino a adquirir las habilidades de un programador es obtener una copia de un compilador de algún lenguaje de programación, instalarlo en una PC y aprender a programar en él. Te recomiendo empezar con Python. Está limpiamente diseñado, bien documentado, es gratuito y relativamente sencillo para los principiantes. A pesar de lo anterior no deja de ser un lenguaje poderoso, flexible y apropiado para grandes proyectos 7. Aprende otros lenguajes de programación. Después que aprendas Python y/o Pascal debes estudiar C, el lenguaje oficial de los sistemas operativos tipo Unix y la Internet. C no es un buen lenguaje para iniciar el aprendizaje de la programación con él puesto que emplea una sintaxis muy escueta, lo que lo hace muy propenso a errores que pueden requerir mucho tiempo detectar y eliminar para un principiante. Aunque es un lenguaje muy portátil, flexible, ampliamente utilizado y encima muy eficiente y económico con el uso de los recursos del computador, para llegar a dominarlo se requiere mucho tiempo y conocimientos que sólo pueden adquirirse al aprender a programar en un lenguaje didáctico y sencillo como Python o Pascal.

PARA MAYOR INFORMACIÓN ESCANÉAME

8. Aprende cómo usar la Web y a escribir en HTML ¿Cómo puede ayudarte la Web a ser un programador? Para empezar está repleta de manuales y tutoriales sobre lenguajes de programación que puedes descargar o imprimir; cientos de foros donde se dan cita miles de programadores para discutir aspectos técnicos sobre lenguajes y programación, así como brindar ayuda a quienes la soliciten; miles de sitios de programas, utilidades y recursos que puedes descargar para ayudarte en tu aprendizaje, tales como compiladores, editores, herramientas, librerías, código fuente, trucos técnicos y procedimientos prácticos sobre casi cualquier cosa relacionada con la programación. En la mayoría de los casos, empero, debes poseer una cuenta de correo electrónico para comunicarte con los demás, suscribirte gratuitamente a sitios web, participar en foros o simplemente utilizarlo para descargar recursos. 9. Obtén conocimientos básicos sobre hardware. Si eres un principiante, el no saber mucho sobre requisitos técnicos no debería preocuparte. Irás adquiriendo esos conocimientos y esta experiencia de forma gradual y a medida en que los vayas necesitando. No es preciso que lo sepas todo y que lo sepas ya, así que no te desalientes. Al contrario, esta carencia debería ser otro de tus alicientes para complementar tu formación como programador, puesto que entre mayores conocimientos y experiencia poseas serás considerado mucho más valioso como programador.

10


Qué tanto aprendiste? 1. Identificación de Patrones: • Al analizar un conjunto de datos, observo __________________________ que me ayudan a entender la estructura. 2. Resolución de Problemas: • Frente a un error en mi código, aplico un enfoque sistemático para ________________________ y encontrar una solución. 3. Abstracción: • Al diseñar una nueva función, me concentro en los detalles esenciales y utilizo _____________________________ para simplificar la implementación. 4. Algoritmia: • Para mejorar la eficiencia de mi programa, desarrollo ________________ claros que describen pasos específicos para realizar una tarea. 5. Pensamiento Lógico: • Al enfrentarme a una toma de decisiones en mi código, aplico _______________________________ para garantizar un flujo lógico y coherente. Respuestas: 1. algoritmos 2. identificar el origen del problema, diagnosticar 3. estructuras recurrentes o tendencias 4. razonamiento lógico 5. niveles de abstracción

11


12


Pensamiento Lógico para Programar La lógica en programación implica el razonamiento y la capacidad de desglosar un problema en pasos lógicos y secuenciales que una computadora pueda entender y ejecutar. Si quieres ser un programador competente y resolver problemas de manera eficiente, necesitarás mejorar esta habilidad. ¿Qué es exactamente programación?

la

lógica

de

Lógica es la técnica utilizada para desarrollar instrucciones en una secuencia para lograr determinado objetivo. Es la organización y planificación de instrucciones en un algoritmo, con el objetivo de tornar visible la implementación de un programa o software. Lógica de programación en la rutina diaria Creamos este ejemplo para mostrar la importancia de escribir la secuencia correcta de las acciones, y para entrenar el razonamiento. Eso es algo que ya utilizas en la vida cotidiana sin percibirlo Detente y piensa un momento en tu rutina al despertar. Si lo escribes en un papel verás que es más compleja de lo que parece, pero la ejecución es automática. Imagina entonces comenzar a pensar en lo que podría ser variable y constante en esa rutina. Este es un excelente ejercicio para entrenar la lógica de programación y el uso de algoritmos.

13

PARA MAYOR INFORMACIÓN ESCANÉAME

¿Qué es un algoritmo en lógica de programación? El algoritmo es la propia secuencia de instrucciones para la ejecución de una tarea. De una forma más simple, el algoritmo es una receta o ruta que indica todos los procedimientos necesarios para realizar algo o resolver un problema. La información en un algoritmo no puede ser redundante o subjetiva. Tiene que ser clara y detallada para que la computadora interprete correctamente.


14

Qué tanto aprendiste?

PENSAMIENTO LOGICO PARA PROGRAMAR


Lógica Proposicional Lo que es la lógica proposicional también se conoce como lógica matemática o lógica simbolice. Se trata del estudio de las lógicas proposicionales o sentencias lógicas, en donde se intenta evaluar la verdad y su nivel absoluto. Se relaciona con la matemática, ya que utiliza símbolos que, a través de tablas de la verdad, indican lo verdadero y lo falso. También llamada lógica de enunciados: toma como elemento básico las frases declarativas simples o proposiciones. Su estructura está dada por:

Es un sistema formal cuyos elementos más simples representan proposiciones, y cuyas constantes lógicas, llamadas conectivas lógicas, representan operaciones sobre proposiciones, capaces de formar otras proposiciones de mayor complejidad. La lógica proposicional trata con sistemas lógicos que carecen de cuantificadores, o variables interpretables como entidades. En lógica proposicional si bien no hay signos para variables de tipo entidad, sí existen signos para variables proposicionales (es decir, que pueden ser interpretadas como proposiciones con un valor de verdad definido), de ahí el nombre proposicional. La lógica proposicional incluye además de variables interpretables como proposiciones simples signos para conectivas lógicas, por lo que dentro de este tipo de lógica puede analizarse la inferencia lógica de proposiciones a partir de proposiciones, pero sin tener en cuenta la estructura interna de las proposiciones más simples.

15 PARA MAYOR INFORMACIÓN ESCANÉAME


Qué tanto aprendiste?

16


Inferencia Lógica

En programación, la inferencia lógica se refiere al proceso de deducir conclusiones lógicas o resultados basados en un conjunto de reglas o condiciones establecidas en el código. La inferencia lógica se utiliza para extraer información o realizar decisiones fundamentadas a partir de premisas lógicas y condiciones específicas.

En el contexto de programación, esto podría implicar la aplicación de estructuras condicionales (como if-else), el análisis de datos para llegar a ciertas conclusiones, o la deducción de resultados basados en reglas predefinidas. Por ejemplo, al tener una función que evalúa si un número es par o impar, la inferencia lógica implicaría deducir el resultado (par o impar) basándose en el valor de entrada y las reglas lógicas aplicadas en la función. 1. En resumen, la inferencia lógica en programación se refiere a la capacidad del programa para razonar y llegar a conclusiones basadas en la lógica y las condiciones especificadas en el código.

AQUÍ TIENES ALGUNOS PROGRAMACIÓN:

EJEMPLOS

DE

INFERENCIA

LÓGICA

EN

1. *DETERMINAR SI UN NÚMERO ES POSITIVO O NEGATIVO:* PYTHON DEF ES_POSITIVO_O_NEGATIVO(NUMERO): IF NUMERO > 0: RETURN "POSITIVO" ELIF NUMERO < 0: RETURN "NEGATIVO" ELSE: RETURN "CERO"

2. *CLASIFICACIÓN DE UN ESTUDIANTE SEGÚN CALIFICACIONES:* PYTHON DEF CLASIFICAR_ESTUDIANTE(CALIFICACION): IF CALIFICACION >= 90: RETURN "A" ELIF CALIFICACION >= 80: RETURN "B" ELIF CALIFICACION >= 70: RETURN "C" ELSE: RETURN "REPROBADO"

3. *VALIDACIÓN DE ACCESO BASADA EN CREDENCIALES:* PYTHON DEF VALIDAR_CREDENCIALES(USUARIO, CONTRASENA): USUARIOS_REGISTRADOS = ["USUARIO1", "USUARIO2", "USUARIO3"] CONTRASENAS_REGISTRADAS = ["CLAVE1", "CLAVE2", "CLAVE3"] IF USUARIO IN USUARIOS_REGISTRADOS AND CONTRASENA == CONTRASENAS_REGISTRADAS[USUARIOS_REGISTRADOS.INDEX(USUAR IO)]: RETURN "ACCESO CONCEDIDO" ELSE: RETURN "CREDENCIALES INVÁLIDAS"

ESTOS EJEMPLOS DEMUESTRAN CÓMO LA INFERENCIA LÓGICA SE UTILIZA PARA TOMAR DECISIONES O EXTRAER CONCLUSIONES BASADAS EN LAS CONDICIONES ESPECIFICADAS EN EL CÓDIGO.

PARA MAYOR INFORMACIÓN ESCANÉAME

17


18

Qué tanto aprendiste?


PROPOSICIONES LÓGICAS

Las proposiciones lógicas son afirmaciones que pueden ser evaluadas como verdaderas o falsas. Se utilizan como bloques fundamentales en la lógica proposicional para representar información en un formato que pueda ser procesado por sistemas lógicos y algoritmos. Las proposiciones pueden combinarse mediante el uso de conectivos lógicos, como la negación (\(\neg\)), la conjunción (\(\land\)), la disyunción (\(\lor\)), la implicación (\ (\rightarrow\)), y el bicondicional (\ (\leftrightarrow\)), permitiendo la creación de expresiones más complejas y reglas lógicas. La lógica proposicional es esencial en programación, matemáticas y diversas disciplinas donde la inferencia y el razonamiento lógico son fundamentales. Aquí tienes algunos ejemplos para ilustrar proposiciones lógicas:

1. *PROPOSICIÓN SIMPLE:* - \( P \): "HOY ES MARTES." 2. *NEGACIÓN:* - \( \NEG P \): "HOY NO ES MARTES." 3. *CONJUNCIÓN:* - \( P \LAND Q \): "HOY ES MARTES Y ESTÁ SOLEADO." 4. *DISYUNCIÓN:* - \( P \LOR Q \): "HOY ES MARTES O MAÑANA ES MIÉRCOLES." 5. *IMPLICACIÓN:* - \( P \RIGHTARROW Q \): "SI HOY ES MARTES, ENTONCES MAÑANA ES MIÉRCOLES." 6. *BICONDICIONAL:* - \( P \LEFTRIGHTARROW Q \): "HOY ES MARTES SI Y SOLO SI MAÑANA ES MIÉRCOLES." Estos ejemplos muestran cómo las proposiciones lógicas y los conectivos pueden representar diferentes situaciones y relaciones lógicas. iones basadas en las condiciones especificadas en el código.

PARA MAYOR INFORMACIÓN ESCANÉAME

19


20

1. ¿Cuál es la característica fundamental de una proposición lógica? a) Es una pregunta. b) Puede ser verdadera o falsa c) Siempre es incierta. 2. Si \( p \) es la proposición "Hace sol" y \( q \) es "Voy a la playa", ¿Cómo se representaría "No hace sol" utilizando lógica proposicional? a) \( p \land q \) b) \( \neg p \) c) \( \neg q \) 3. ¿Qué conectivo lógico se utiliza para expresar "Hace sol o llueve"? a) \( \lor \) b) \( \land \) c) \( \neg \) 4. Si \( p \) es "Estudiaré para el examen" y \( q \) es "Obtendré una buena calificación", ¿cómo se expresaría "Si estudio, entonces obtendré una buena calificación"? a) \( p \land q \) b) \( p \rightarrow q \) c) \( \neg p \) 5. ¿Cuál es la proposición contraria de "Mañana es sábado"? a) Mañana no es sábado. b) Mañana es domingo. c) Hoy es sábado.

).

5. Si \( p \rightarrow q \) es verdadero y \( q \rightarrow r \) es verdadero, entonces \( p \rightarrow r \) es verdadero. ( ).

4. \( p \land \neg p \) es siempre falso. (

3. \( p \lor \neg p \) es siempre verdadero. ( ).

2. \( \neg (p \land q) \) es equivalente a \( \neg p \lor \neg q \). ( ).

1. \( p \rightarrow q \) es verdadero si \( p \) es falso. ( ).

Indica si las siguientes afirmaciones son verdaderas (V) o falsas (F).

Qué tanto aprendiste?


ALGORITMOS Y ESTRUCURA DE DATOS Los algoritmos son conjuntos de instrucciones paso a paso diseñados para realizar una tarea específica. Pueden ser vistos como recetas que guían la solución de un problema. La eficiencia de un algoritmo se mide en términos de tiempo y espacio. Por otro lado, las estructuras de datos son formas de organizar y almacenar datos para facilitar su manipulación. Ejemplos incluyen listas, pilas y colas. La elección de la estructura de datos adecuada impacta en la eficiencia del programa y la velocidad de acceso a la información. 1. La combinación eficiente de algoritmos y estructuras de datos es esencial para desarrollar software optimizado. Los algoritmos resuelven problemas y las estructuras de datos facilitan la gestión de la información, trabajando juntos para lograr soluciones efectivas en programación.

*Algoritmos:* 1. *Búsqueda binaria:* Eficiente para encontrar un elemento en una lista ordenada al dividir el conjunto de búsqueda a la mitad en cada paso. 2. *Ordenamiento de burbuja:* Un algoritmo simple que ordena elementos comparándolos y realizando intercambios iterativos hasta que la lista esté ordenada. *Estructuras de datos:* 1. *Listas enlazadas:* Una colección de nodos, donde cada nodo tiene un valor y un enlace al siguiente nodo. Útil para inserciones y eliminaciones eficientes. 2. *Pilas:* Una estructura de datos tipo LIFO (Last In, First Out) donde el último elemento añadido es el primero en ser retirado. 3. *Árboles binarios:* Estructura jerárquica donde cada nodo tiene, como máximo, dos hijos. Ampliamente utilizado en algoritmos de búsqueda y organización de datos. La elección de algoritmos y estructuras de datos depende del problema a resolver y de los requisitos de eficiencia para cada situación.

PARA MAYOR INFORMACIÓN ESCANÉAME

21


22

Qué tanto aprendiste?


DIAGRAMA DE FLUJO Un diagrama de flujo es una representación gráfica de un proceso o algoritmo, utilizado para ilustrar de manera visual la secuencia de pasos o acciones que deben seguirse. Este método de visualización es ampliamente utilizado en programación, ingeniería, y otros campos para diseñar, analizar y documentar procesos. Características Principales: 1. Símbolos Estándar: Utiliza símbolos estándar para representar diferentes tipos de acciones, decisiones, entrada/salida, etc. 2. Conexiones Flechas: Las flechas indican la dirección del flujo, es decir, la secuencia de ejecución de los pasos. 3. Inicio y Fin: Se inicia con un símbolo que representa el inicio del proceso y termina con un símbolo que indica su finalización. 4. Decisiones: Utiliza rombos para representar decisiones o bifurcaciones en el flujo del proceso. 5. Proceso: Emplea rectángulos para describir pasos o procesos específicos.

VENTAJAS: - Claridad Visual: Facilita la comprensión y comunicación de procesos de manera visual y fácil de entender. - Documentación: Sirve como herramienta de documentación para describir lógica, pasos y decisiones en un algoritmo o procedimiento. - Detección de Problemas: Permite identificar posibles problemas o mejoras en el diseño de procesos. APLICACIONES COMUNES: - Programación: Para representar algoritmos y procesos lógicos. - Ingeniería: En el diseño de sistemas y procesos. - Negocios: Para modelar y optimizar flujos de trabajo. En resumen, los diagramas de flujo son una herramienta gráfica esencial para representar de manera visual y comprensible los pasos y decisiones en cualquier proceso o algoritmo.

PARA MAYOR INFORMACIÓN ESCANÉAME

23


¿Qué es un diagrama de flujo en programación? A. Una representación visual de la secuencia de pasos en un proceso. B. Una lista de instrucciones escrita en código fuente. C. Un tipo de variable en programación. 2. ¿Cuál es el propósito principal de un diagrama de flujo? A. Representar datos en forma gráfica. B. Mostrar la estructura de un programa. C. Visualizar la secuencia de pasos en un proceso. 3. ¿Qué forma se utiliza para representar una operación o instrucción en un diagrama de flujo? A. Rectángulo. B. Diamante. C. Círculo. 4. En un diagrama de flujo, ¿qué forma se utiliza para representar una decisión o condición? A. Rectángulo. B. Diamante. C. Círculo. 5. ¿Cómo se representa el inicio y el fin de un programa en un diagrama de flujo? A. Con un rectángulo. B. Con un círculo.

1.

Palabras a encontrar: 1. DIAGRAMA 2. FLUJO 3. PROCESO 4. ENTRADA 5. SALIDA 6. CONDICION 7. INSTRUCCION

AGDIAGRAMADLKI CXOLPCEORLSEOD EOEQALZENLEOERI NDYZFLUOERIDMO ONESIOEOPSIRTUI EVEKFIRUCGDORE LTMTEUEFLUJCPR OSEPROCESOMNV ICOTIOIIYRPUKOD SPMCMEUQRSRTG

DIAGRAMA DE FLUJO

24


SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO Los diagramas de flujo utilizan una variedad de símbolos estandarizados para representar distintos elementos y acciones dentro de un proceso. Cada símbolo tiene un significado específico, facilitando la comprensión visual de los pasos y decisiones en un algoritmo o procedimiento. Aquí tienes una breve descripción de algunos de los símbolos más comunes: 1. Terminador (Óvalo): - Representa el inicio o fin del proceso. Es el punto de inicio y término del diagrama. 2. Proceso (Rectángulo): - Indica una acción o proceso específico que ocurre en el flujo del programa. 3. Entrada/Salida (Paralelogramo): - Representa operaciones de entrada (lectura de datos) o salida (resultados, impresiones). 4. Decisión (Rombos): - Utilizado para representar puntos de decisión en el flujo del proceso. Se toma una decisión basada en una condición dada.

5. Conector (Círculo pequeño): - Indica la conexión entre partes separadas del diagrama y reduce la confusión en diagramas complejos. 6. Flecha de Conexión: - Las flechas indican la dirección del flujo, mostrando la secuencia de ejecución de los pasos. Ejemplo: Un diagrama de flujo típicamente comienza con un óvalo para indicar el inicio, seguido de una secuencia de rectángulos para representar procesos, rombos para decisiones, paralelogramos para entrada/salida, y finalmente, una flecha de conexión para indicar la dirección del flujo.

En resumen, la simbología en los diagramas de flujo proporciona una representación gráfica estándar y comprensible, facilitando la visualización y análisis de procesos y algoritmos.

PARA MAYOR INFORMACIÓN ESCANÉAME

25


SIMBOLOGIA DE LOS DIAGRAMAS DE FLUJO

26


PSEUDOCÓDIGO El pseudocódigo es un método intermedio entre el lenguaje humano y el de programación, utilizado para describir algoritmos de manera clara y comprensible antes de ser traducidos a un lenguaje de programación específico. No sigue una sintaxis rigurosa y se enfoca en la lógica del algoritmo. Aquí hay algunos aspectos clave:

ESTRUCTURAS BÁSICAS EN PSEUDOCÓDIGO:

CARACTERÍSTICAS PRINCIPALES:

EJEMPLO: Pseudocódigo para calcular el promedio de tres números:

1. Legibilidad: Escrito de manera similar al lenguaje humano para facilitar la comprensión. 2. Flexibilidad: No está sujeto a reglas estrictas de sintaxis como un lenguaje de programación. 3. Abstracción: Se centra en la lógica del algoritmo, ignorando detalles específicos de implementación.

- Secuencia: Pasos ordenados de ejecución. - Selección (IF): Decisiones basadas en condiciones. - Iteración (FOR, WHILE): Repetición de bloques de código.

INICIO // Entrada de datos LEER numero1 LEER numero2 LEER numero3 // Proceso: Calcular el promedio suma = numero1 + numero2 + numero3 promedio = suma / 3 // Salida de resultado ESCRIBIR "El promedio es:", promedio FIN

27

PARA MAYOR INFORMACIÓN ESCANÉAME

En este ejemplo, el pseudocódigo describe de manera clara y sencilla el proceso de entrada, cálculo y salida para obtener el promedio de tres números. Este enfoque es útil para planificar y diseñar algoritmos antes de pasar a la implementación en un lenguaje de programación específico.


Completa las siguientes oraciones con las opciones proporcionadas: 1. En pseudocódigo, la palabra reservada utilizada para iniciar una estructura condicional es ________. a) BEGIN b) IF c) START d) LOOP 2. El operador utilizado para comparar dos valores en una estructura condicional es ________. a) AND b) OR c) NOT d) == 3. Para repetir un bloque de código hasta que se cumpla una condición en pseudocódigo, se utiliza la estructura ________. a) IF-ELSE b) WHILE c) FOR d) SWITCH 4. La palabra reservada utilizada para indicar el final de una estructura condicional en pseudocódigo es ________. a) END b) DONE c) FINISH d) CLOSE Palabras a encontrar: 1. LEER 2. PARA 3. LOOP 4. SI 5. FIN 6. CONDICION 7. ESTRUCTURA 8. SWITCH

PCXRLSNPOT QUENLEERAS UPARATLOOP SIALUAVIDE DOFINICOND OFINDESTRU CTURARETUR OSWITCHYME

PSEUDOCÓDIGO

28


LENGUAJE DE PROGRAMACIÓN Y SUS NIVELES Los lenguajes de programación son herramientas que permiten a los programadores comunicarse con las computadoras y darles instrucciones. Estos lenguajes se clasifican en diferentes niveles según su cercanía con la arquitectura de la máquina y la abstracción proporcionada. Aquí hay un resumen de los niveles principales:

2. Lenguajes de Nivel Medio:

1. Lenguajes de Bajo Nivel:

Ejemplos: C.

Características: - Cercanos a la arquitectura de la máquina. - Requieren un mayor entendimiento de la hardware. - Mayor control sobre recursos. Ejemplos: Ensamblador.

Características: - Proporcionan un equilibrio entre la abstracción y el control. - Más legibles y portables que los lenguajes de bajo nivel. - Ejemplos de instrucciones más abstractas.

3. Lenguajes de Alto Nivel: Características: - Muy abstractos, distantes de la arquitectura de la máquina. - Se centran en la productividad y la claridad del código. - Mayor portabilidad entre plataformas. Ejemplos: Python, Java, JavaScript. 4. Lenguajes de Muy Alto Nivel (VHLL): Características: - Extremadamente abstractos y orientados a tareas específicas. - Facilitan la programación en dominios particulares. - Minimizan la necesidad de detalles de bajo nivel. Ejemplos: - SQL (para bases de datos), HTML (para desarrollo web).

PARA MAYOR INFORMACIÓN ESCANÉAME

29

Cada nivel de lenguaje de programación ofrece diferentes grados de control y abstracción, permitiendo a los programadores elegir según las necesidades específicas del proyecto y su preferencia en cuanto a nivel de detalle. La elección del lenguaje adecuado también puede depender de consideraciones como la eficiencia, la portabilidad y la facilidad de mantenimiento del código.


1. Los lenguajes de programación de bajo nivel están más cercanos al hardware y son más difíciles de aprender para los humanos. Ejemplos de lenguajes de bajo nivel son: a) Python b) Assembly c) Java 2. Un lenguaje de programación de alto nivel se caracteriza por: a) Ser cercano al código máquina. b) Ser fácil de entender y usar por los humanos. c) Estar diseñado para programar microcontroladores. 3. Ejemplos de lenguajes de programación de alto nivel incluyen: a) C++ b) Ensamblador c) Fortran 4. Un lenguaje de programación de bajo nivel como Assembly se utiliza comúnmente para: a) Desarrollar aplicaciones web. b) Programar microcontroladores y dispositivos embebidos. c) Crear interfaces de usuario gráficas. 5. C++ es un ejemplo de un lenguaje de programación que se sitúa en el nivel: a) Alto nivel b) Bajo nivel c) Medio nivel HTML y CSS son ejemplos de lenguajes de programación de ____ nivel. a) Bajo b) Alto c) Medio 2. En la programación de sistemas embebidos, a menudo se utilizan lenguajes de programación de ____ nivel. a) Alto b) Bajo c) Medio 3. Un lenguaje de programación que se encuentra entre alto y bajo nivel, a menudo utilizado para el desarrollo de sistemas operativos, es _____. a) Python b) Assembly c) C++ 4. Java es conocido por ser un lenguaje de programación de ____ nivel y por su portabilidad. a) Alto b) Bajo c) Medio 5. PHP, un lenguaje de scripting utilizado para desarrollo web, se clasifica como de ____ nivel. a) Alto b) Bajo c) Medio

1.

LENGUAJE DE PROGRAMACIÓN Y SUS NIVELES

30


PROCESADORES DE TEXTO PARA EDITORES DE CÓDIGO Los procesadores de texto para editores de código son herramientas esenciales en el desarrollo de software, ofreciendo funciones avanzadas para facilitar la escritura, edición y gestión de código fuente. Aquí se presenta un resumen de sus características clave:

FUNCIONES AVANZADAS:

FUNCIONES BÁSICAS:

5. Depuración Integrada: Permite establecer puntos de interrupción y realizar seguimiento y análisis del código paso a paso. 6. Control de Versiones: Integración con sistemas de control de versiones como Git para un seguimiento eficiente de cambios.

1. Resaltado de Sintaxis: Colorea diferentes partes del código según su función para mejorar la legibilidad.

7. Extensiones y Plugins: Ofrece la capacidad de personalizar y extender la funcionalidad del editor mediante plugins.

2. Auto-completado: Proporciona sugerencias y completa automáticamente fragmentos de código.

Ejemplos Populares:

3. Navegación por Código: Facilita la navegación rápida entre archivos, funciones y clases. 4. Gestión de Proyectos: Organiza y gestiona proyectos completos, permitiendo la navegación fácil entre archivos y carpetas.

Visual Studio Code: Desarrollado por Microsoft, es un editor de código de código abierto con una amplia variedad de extensiones. Sublime Text: Un editor de código rápido y eficiente que admite múltiples cursores y tiene una interfaz intuitiva. Atom: Desarrollado por GitHub, es un editor de código de código abierto altamente personalizable. Vim y Emacs: Editores de texto altamente configurables y potentes, preferidos por usuarios avanzados.

En resumen, los procesadores de texto para editores de código son herramientas esenciales para programadores, proporcionando un entorno eficiente y personalizable para la escritura y gestión de código fuente. La elección del editor a menudo depende de las preferencias personales y las necesidades específicas del desarrollo de software.

31

PARA MAYOR INFORMACIÓN ESCANÉAME


Completa las oraciones con la opción correcta: 1. ______ es un editor de código fuente de código abierto desarrollado por Microsoft y es ampliamente utilizado en el desarrollo web. a) Atom b) Sublime Text c) Visual Studio Code 2. Uno de los atractivos de ______ es su velocidad y ligereza, siendo un editor de texto avanzado utilizado para la edición de código fuente. a) Notepad b) Sublime Text c) Visual Studio 3. El atajo de teclado común para abrir una nueva pestaña en muchos editores de código es _____. a) Ctrl + N b) Ctrl + O c) Ctrl + T 4. El editor de texto _______ es conocido por su interfaz simple y su presencia en la mayoría de los sistemas operativos Unix y Linux. a) Visual Studio Code b) Nano c) Emacs 5. ______ es un editor de texto para programadores que ofrece muchas funciones avanzadas y es personalizable mediante complementos. a) Vim b) Notepad++ c) Visual Studio

PROCESADORES DE TEXTO PARA EDITORES DE CÓDIGO

32


TIPOS DE LENGIAJE DE PROGRAMACIÓN Los lenguajes de programación se clasifican en diferentes tipos según sus características y aplicaciones específicas. Aquí se presenta un resumen de los tipos principales:

7. Lenguajes de Programación Interpretados: No requieren compilación previa y son ejecutados línea por línea. Ejemplos: Python, JavaScript.

1. Lenguajes de Bajo Nivel:

8. Lenguajes de Programación Compilados: Requieren compilación previa para código ejecutable. Ejemplos: C, C++.

Se acercan a la arquitectura de la máquina. Requieren un conocimiento más profundo del hardware. Ejemplos: Ensamblador. 2. Lenguajes de Nivel Medio: Equilibran abstracción y control. Más legibles y portables que los de bajo nivel. Ejemplos: C. 3. Lenguajes de Alto Nivel: Altamente abstractos, distantes de la arquitectura de la máquina. Se centran en la productividad y claridad del código. Ejemplos: Python, Java, JavaScript.

9. Lenguajes de Programación de Scripting: Diseñados para la automatización de tareas. Ejemplos: Python, Bash. Cada tipo de lenguaje tiene sus propias ventajas y desventajas, y la elección depende del contexto, los requisitos del proyecto y las preferencias del programador. La diversidad en los tipos de lenguajes permite abordar una amplia gama de problemas en el desarrollo de software.

4. Lenguajes de Muy Alto Nivel (VHLL): Extremadamente abstractos y orientados a tareas específicas. Minimizan la necesidad de detalles de bajo nivel. Ejemplos: SQL (para bases de datos), HTML (para desarrollo web). 5. Lenguajes de Programación Funcional: Se centran en funciones matemáticas y expresiones. Ejemplos: Haskell, Lisp. 6. Lenguajes de Programación Orientados a Objetos: Organizan el código en objetos y clases. Ejemplos: Java, Python, C#.

33

generar

PARA MAYOR INFORMACIÓN ESCANÉAME


Completa las oraciones con la opción correcta: 1. ______ es un editor de código fuente de código abierto desarrollado por Microsoft y es ampliamente utilizado en el desarrollo web. a) Atom b) Sublime Text c) Visual Studio Code 2. Uno de los atractivos de ______ es su velocidad y ligereza, siendo un editor de texto avanzado utilizado para la edición de código fuente. a) Notepad b) Sublime Text c) Visual Studio 3. El atajo de teclado común para abrir una nueva pestaña en muchos editores de código es _____. a) Ctrl + N b) Ctrl + O c) Ctrl + T 4. El editor de texto _______ es conocido por su interfaz simple y su presencia en la mayoría de los sistemas operativos Unix y Linux. a) Visual Studio Code b) Nano c) Emacs 5. ______ es un editor de texto para programadores que ofrece muchas funciones avanzadas y es personalizable mediante complementos. a) Vim b) Notepad++ c) Visual Studio

Tipos de Lenguajes de Programación 1. Alto Nivel 2. Bajo Nivel 3. Intermedio 4. Scripting

Descripciones A. Lenguajes cercanos al código máquina, utilizados para la programación de sistemas y hardware. B. Diseñados para ser fáciles de entender y usar por los humanos, proporcionando abstracciones más altas. C. Una combinación de características de lenguajes de alto y bajo nivel. D. Lenguajes utilizados para la automatización de tareas, con énfasis en la simplicidad y velocidad de desarrollo.

REALCIONA LAS COLUMNAS

TIPOS DE LENGIAJE DE PROGRAMACIÓN

34


METODOLOGIA DE PROGRAMACIÓN

Las metodologías de programación son enfoques sistemáticos y estructurados para el desarrollo de software, que guían el proceso desde la concepción de la idea hasta la entrega del producto final. Aquí se presenta un resumen de algunas metodologías destacadas: 1. Modelo en Cascada: Características: Fases secuenciales y lineales. Planificación detallada desde el principio. Ventajas: Estructura clara. Documentación completa. Desventaja: Poca flexibilidad ante cambios. 2. Metodologías Ágiles (Scrum, Kanban): Características: Adaptabilidad y entrega iterativa. Enfoque en la colaboración y retroalimentación. Ventajas: Flexibilidad para cambios. Mejora continua Desventajas: Requiere una comunicación sólida.

5. Desarrollo Dirigido por Modelos (MDD): Características: Utiliza modelos visuales para generar código. Enfocado en la abstracción y la reutilización. Ventajas: Facilita la consistencia. Aumenta la eficiencia. Desventajas: Curva de aprendizaje. 6. Lean Programming: Características: Minimiza el desperdicio y maximiza el valor. Se centra en la eficiencia y la entrega continua. Ventajas: Optimización de recursos. Mejora la productividad. Desventajas: Puede ser difícil aplicar en todos los contextos.

la

Cada metodología tiene sus propias ventajas y desventajas, y la elección dependerá de los requisitos específicos del proyecto, las preferencias del equipo y la naturaleza del desarrollo de software.

3. Desarrollo Guiado por Pruebas (TDD): Características: Se escriben pruebas antes del código. Centrado en la funcionalidad y calidad. Ventajas: Mejora la calidad del código. Facilita el mantenimiento. Desventajas: Requiere una práctica constante. 4. Programación Extrema (XP): Características: Desarrollo rápido y frecuentes entregas. Colaboración estrecha entre equipos. Ventajas: Respuestas rápidas a cambios. Mejora la comunicación. Desventajas: Requiere un equipo altamente colaborativo.

PARA MAYOR INFORMACIÓN ESCANÉAME

35


METODOLOGIA DE PROGRAMACIÓN Completa las oraciones con la opción correcta: 1. La metodología ___ se centra en la entrega rápida y frecuente de software mediante iteraciones cortas y colaboración constante con el cliente. a) Cascada b) Ágil c) Espiral 2. ___ es una metodología de desarrollo de software que se basa en la planificación detallada y secuencial de las fases del proyecto. a) Ágil b) Cascada c) Prototipado. 3. La metodología ___ enfatiza la adaptabilidad y la flexibilidad, permitiendo ajustes durante todo el ciclo de desarrollo. a) Incremental b) Cascada c) Ágil

36


ENTORNO DE DESARROLLO EN PYTHON

El entorno de desarrollo en Python se refiere al conjunto de herramientas y configuraciones que facilitan la creación, prueba y mantenimiento de proyectos en este lenguaje de programación. Aquí se presenta un resumen de los aspectos clave: 1. Interprete de Python: Python utiliza un enfoque interpretado, permitiendo ejecutar código línea por línea. Facilita el desarrollo interactivo y la depuración. 2. Entornos Virtuales: Permite crear entornos aislados proyectos específicos. Evita conflictos de dependencias proyectos.

para entre

3. Gestores de Paquetes: pip: Herramienta estándar para instalar y gestionar paquetes de Python. Anaconda: Un gestor de paquetes y entorno para ciencia de datos con Python. 4. IDEs y Editores de Texto: PyCharm: Un IDE popular con funciones avanzadas como resaltado de sintaxis, depuración, y soporte para pruebas. Visual Studio Code: Un editor de código ligero y extensible con integración para Python. Jupyter Notebooks: Herramienta interactiva para combinación de código, texto y visualizaciones.

6. Herramientas de Pruebas: unittest: Módulo estándar para escribir y ejecutar pruebas unitarias. pytest: Framework de pruebas externo que simplifica la escritura de pruebas. 7. Sistemas de Control de Versiones: Git: Ampliamente utilizado para el control de versiones. GitHub, GitLab, Bitbucket: Plataformas populares para alojar proyectos Git. 8. Documentación: Sphinx: Herramienta para la generación de documentación. Fomenta la creación de documentación clara y legible. 9. Entornos en la Nube: AWS, Azure, Google Cloud:* Ofrecen servicios en la nube para implementar aplicaciones Python. Heroku:* Plataforma que facilita la implementación de aplicaciones web Python. En resumen, el entorno de desarrollo en Python cuenta con una amplia variedad de herramientas y opciones que se adaptan a las necesidades específicas de los proyectos. La elección de estas herramientas dependerá del tipo de desarrollo y las preferencias del programador.

5. Frameworks: Django: Para desarrollo web con énfasis en la simplicidad y la velocidad. Flask: Un framework más ligero para aplicaciones web, flexible y modular.

PARA MAYOR INFORMACIÓN ESCANÉAME

37


ENTORNO DE DESARROLLO EN PYTHON cuestionario de 5 preguntas sobre el entorno de desarrollo en Python: 1. ¿Cuál es un entorno de desarrollo popular para Python que ofrece características como autocompletado, depuración y administración de entornos virtuales? a) Atom b) Visual Studio c) PyCharm d) Sublime Text 2. ¿Qué comando se utiliza para crear un nuevo entorno virtual en Python usando la herramienta de línea de comandos? a) create env b) make venv c) virtualenv d) python -m venv 3. ¿Qué función cumple el archivo requirements.txt en un proyecto de Python? a) Almacena el código fuente del proyecto. b) Especifica los requisitos y dependencias del proyecto. c) Contiene la documentación del proyecto. d) Define las variables de entorno del proyecto. 4. ¿Qué comando se utiliza para instalar un paquete externo en un entorno virtual de Python? a) install package b) pip install c) add package d) python -m package 5. En un entorno de desarrollo, ¿cuál es la función principal de un sistema de control de versiones como Git? a) Administrar entornos virtuales. b) Seguir el historial de cambios en el código fuente. c) Depurar el código. d) Crear interfaces de usuario gráficas.

38


PROGRAMACIÓN ORIENTADA A OBJETOS

La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en la conceptualización y manipulación de "objetos", que son instancias de clases. Aquí se presenta un resumen de sus conceptos fundamentales: 1. Clases y Objetos: Clases: Definen la estructura y el comportamiento de un objeto. Objetos: Instancias específicas de una clase que encapsulan datos y funciones. 2. Encapsulamiento: Oculta los detalles internos de una clase y solo muestra lo que es necesario. Proporciona control de acceso a atributos y métodos.

3. Herencia: Permite a una clase heredar propiedades y métodos de otra. Facilita la reutilización de código y la organización jerárquica.

7. Mensajes y Comunicación: Los objetos se comunican enviándose mensajes entre sí. Facilita la interacción y colaboración entre objetos. 8. Ejemplo Básico: python class Coche: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def acelerar(self): print(f"{self.marca} {self.modelo} acelerando.") mi_coche = Coche("Toyota", "Corolla") mi_coche.acelerar() En resumen, la Programación Orientada a Objetos organiza el código alrededor de entidades (objetos) que interactúan entre sí, proporcionando una estructura modular, reutilizable y fácil de entender. Los conceptos de clases, herencia, polimorfismo y encapsulamiento son fundamentales para este enfoque y ofrecen una manera efectiva de modelar y abordar problemas complejos en programación.

4. Polimorfismo: Permite que un objeto pueda tomar diferentes formas según el contexto. Facilita la implementación de interfaces y la flexibilidad en el diseño. 5. Abstracción: Simplifica un objeto a sus características y funciones esenciales. Enfoca la atención en lo relevante para un contexto específico. 6. Métodos y Atributos: Métodos: Funciones asociadas a una clase. Atributos: Variables asociadas a una clase.

PARA MAYOR INFORMACIÓN ESCANÉAME

39


PROGRAMACIÓN ORIENTADA A OBJETOS Ejercicio: 1. En POO, un objeto es una instancia de una _____ . a) Clase b) Método c) Variable d) Función 2. Un atributo en una clase representa _____. a) Una acción realizada por la clase. b) Un valor que caracteriza la instancia de la clase. c) Un método específico de la clase. d) Una variable local de la clase. 3. En Python, el método especial utilizado para inicializar objetos es _____. a) initialize() b) init() c) start() d) __init__() 4. El concepto de herencia en POO permite _____. a) Ocultar la implementación interna de una clase. b) Compartir atributos y métodos entre clases. c) Limitar el acceso a ciertos atributos. d) Crear instancias de una clase. 5. ¿Qué palabra clave se utiliza para referirse a la instancia actual dentro de un método de una clase en Python? a) self b) this c) instance d) object

40


OPERADORES ARITMÉTICOS Los operadores aritméticos son símbolos matemáticos que se utilizan en programación para realizar operaciones entre variables o valores numéricos. Los operadores aritméticos comunes incluyen: Suma (+): Se utiliza para sumar dos valores. Resta (-): Realiza la resta entre dos valores. Multiplicación (*): Multiplica dos valores. División (/): Divide el primer valor entre el segundo. Módulo (%): Devuelve el residuo de la división entre dos valores. Incremento (++) y Decremento (--): Aumenta o disminuye en uno el valor de una variable, respectivamente. Operadores de asignación compuestos (+=, -=, =, /=): Realizan la operación indicada y asignan el resultado a la variable.

EJEMPLO a=5 b=2 # Operadores aritméticos simples suma = a + b resta = a - b multiplicacion = a * b division = a / b modulo = a % b # Incremento y decremento a += 1 # Incrementa a en 1 b -= 1 # Decrementa b en 1 # Resultados print("Suma:", suma) print("Resta:", resta) print("Multiplicación:", multiplicacion) print("División:", division) print("Módulo:", modulo) print("Incremento de a:", a) print("Decremento de b:", b) Estos operadores son esenciales para realizar cálculos y manipulación de variables en programación.

PARA MAYOR INFORMACIÓN ESCANÉAME

41


OPERADORES ARITMÉTICOS ARMULTIPLICACION RESUMENRRERENUAT SAUMESTSUTRESUAD AEECONDICIONALDI RORESTARAICORICO RENEEDIVISIONTNA ADIISUMARSSATECA CIOOADICIONALOIO COMOERROCENTAJER IOSIROACENOMONSR OSDOCOIDAMODULOO Palabras a encontrar: 1. SUMA 2. RESTA 3. MULTIPLICACION 4. DIVISION 5. MODULO 6. INCREMENTO 7. DECREMENTO 8. CONDICIONAL 9. PORCENTAJE 42


VARIABLES Las variables son nombres simbólicos que representan espacios de almacenamiento para datos en programas de computadora. Algunos conceptos clave sobre variables incluyen: Declaración de variables: Se realiza asignando un nombre a un espacio de memoria y especificando el tipo de datos que contendrá. Por ejemplo, en muchos lenguajes de programación, puedes declarar una variable así: pythonCopy code edad = 25 Tipos de datos: Las variables pueden almacenar diferentes tipos de datos, como enteros, decimales, cadenas de texto, booleanos, entre otros. El tipo de datos determina la naturaleza de la información que puede contener la variable. pythonCopy code nombre = "Juan" salario = 1500.50 es_estudiante = False

Convenciones de nomenclatura: Es común seguir ciertas convenciones al nombrar variables, como utilizar nombres descriptivos y seguir un formato consistente. Por ejemplo, en Python, se recomienda el formato snake_case (palabras en minúsculas separadas por guiones bajos) para nombres de variables. pythonCopy code nombre_completo = "Ana García". Alcance de las variables: El alcance de una variable se refiere a la región del programa donde la variable puede ser utilizada. Variables locales están limitadas a la función o bloque donde fueron declaradas, mientras que las variables globales pueden ser accesibles desde cualquier parte del programa. Estos conceptos son fundamentales para entender cómo se almacenan y manipulan datos en un programa y cómo las variables juegan un papel clave en este proceso.

Asignación de valores: Las variables pueden cambiar su valor durante la ejecución del programa. Puedes asignar un nuevo valor simplemente utilizando el nombre de la variable. pythonCopy code edad = 25 edad = 26 Uso de variables en expresiones: Puedes utilizar variables en expresiones matemáticas u operaciones, lo que permite manipular datos de manera dinámica. pythonCopy code a=5 b=2 suma = a + b

43

PARA MAYOR INFORMACIÓN ESCANÉAME


VARIABLES Completa las oraciones con la opción correcta: 1. En programación, una variable es un espacio de almacenamiento que tiene un nombre y un _____. a) Color asignado b) Tipo de dato c) Peso específico 2. El proceso de reservar espacio en memoria para una variable se conoce como _____. a) Inicialización b) Asignación c) Declaración 3. En muchos lenguajes de programación, el signo igual (=) se utiliza para _____. a) Comparar valores b) Asignar valores a variables c) Incrementar valores 4. El nombre de una variable en programación debe seguir ciertas reglas, como comenzar con una letra o un _____. a) Número b) Carácter especial c) Espacio en blanco 5. ¿Cuál de las siguientes es una práctica común para nombrar variables en estilo snake_case? a) camelCase b) PascalCase c) kebab-case

44


CONSTANTES Las constantes son valores que no cambian durante la ejecución de un programa. Algunos aspectos clave sobre las constantes incluyen: Declaración de constantes: Se realiza asignando un valor fijo a un nombre simbólico durante la fase de desarrollo del programa. A diferencia de las variables, el valor de una constante no puede ser modificado después de la asignación inicial. pythonCopy code PI = 3.14159 LONGITUD_MAXIMA = 100 Convenciones de nomenclatura: Al igual que con las variables, se suelen seguir convenciones de nomenclatura al nombrar constantes. Los nombres suelen escribirse en mayúsculas, y las palabras pueden separarse con guiones bajos para mejorar la legibilidad. pythonCopy code

Beneficios: El uso de constantes mejora la legibilidad del código y facilita el mantenimiento, ya que los valores importantes están centralizados y son fáciles de identificar y modificar si es necesario. pythonCopy code DIAS_EN_SEMANA = 7 HORAS_EN_DIA = 24 horas_en_semana = HORAS_EN_DIA

*

Alcance de las constantes: Al igual que las variables, el alcance de una constante puede ser local o global, dependiendo de cómo se defina en el programa. En resumen, las constantes son valores invariables utilizados para representar información fija y significativa en un programa, mejorando la claridad del código y permitiendo cambios globales con facilidad.

VELOCIDAD_LUZ = 299792458 Uso de constantes: Se utilizan para representar valores fijos y significativos en un programa, como constantes matemáticas, tamaños máximos, valores límite, etc. Esto facilita la comprensión del código y permite realizar cambios globales al ajustar solo el valor de la constante. pythonCopy code radio_circulo = 5 area_circulo = PI * (radio_circulo ** 2)

PARA MAYOR INFORMACIÓN ESCANÉAME

45

DIAS_EN_SEMANA


CONSTANTES Completa las oraciones con la opción correcta: 1. Una constante en programación es un valor que no cambia durante la ejecución del programa y se define utilizando la palabra clave ____. a) constant b) define c) const d) value 2. En algunos lenguajes de programación, las constantes se escriben en mayúsculas para distinguirlas de las variables. Esto se conoce como notación ____. a) camelCase b) PascalCase c) UPPERCASE d) snake_case 3. ¿Cuál es el propósito principal de utilizar constantes en un programa? a) Permitir que el valor cambie durante la ejecución. b) Mejorar la legibilidad del código. c) Facilitar la inicialización de variables. d) Evitar el cambio accidental del valor. 4. En algunos lenguajes, se pueden definir constantes utilizando la palabra clave ____ en lugar de const. a) define b) final c) let d) constant 5. Una constante puede ser inicializada en el momento de su definición o en una sección especial llamada ____. a) initial b) setup c) initialization d) const_block 46


CONDICIONALES Las estructuras condicionales son elementos fundamentales en la programación que permiten tomar decisiones basadas en ciertas condiciones. Algunos aspectos clave sobre condicionales incluyen:

Anidamiento: Puedes anidar estructuras condicionales dentro de otras para manejar situaciones más complejas. pythonCopy code if condicion_1:

Declaración if: La declaración if se utiliza para ejecutar un bloque de código si una condición especificada es verdadera. La sintaxis básica es:

if condicion_2:

pythonCopy code if condicion:

else: # Bloque de código si la condicion_1 es falsa

Declaración else: Puedes usar la declaración else para especificar un bloque de código que se ejecutará si la condición en el if es falsa. pythonCopy code if condicion:

Ternary operator (operador ternario): Algunos lenguajes de programación, como Python, permiten el uso de un operador ternario para expresar condicionales de manera más concisa.

else: Declaración elif: La declaración elif (abreviatura de "else if") se utiliza para evaluar múltiples condiciones en secuencia. Se ejecuta el bloque de código asociado a la primera condición verdadera. pythonCopy code if condicion_1:

else:

pythonCopy code resultado = "par" if numero % 2 == 0 else "impar" Estas estructuras condicionales permiten que los programas tomen decisiones dinámicamente, ejecutando diferentes bloques de código según las condiciones establecidas.

elif condicion_2: else: Operadores de comparación: Las condiciones en las declaraciones if se construyen utilizando operadores de comparación como == (igual), != (no igual), < (menor que), > (mayor que), <= (menor o igual que), >= (mayor o igual que), entre otros. pythonCopy code if edad >= 18: print("Eres mayor de edad.") else: print("Eres menor de edad.")

47

PARA MAYOR INFORMACIÓN ESCANÉAME


CONDICIONALES CAOFBMJIPLEEDIAS IFSTATEMENTSNKEA TICONDITIONALSOC ELIFTGREATERWIDT LEOSPNEALCMETUCF SREPEATEDGUNMAOV EQUALSOBSMLESSYM DORFETURNLOOPSER 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

Palabras a encontrar: CONDICIONALES IF ELSE ELIF STATEMENTS BOOLEAN GREATER LESS EQUALS REPEATED RETURN LOOPS

48


BUCLES Los bucles, también conocidos como ciclos, son estructuras que permiten la repetición de un bloque de código hasta que se cumple una condición específica. Hay dos tipos principales de bucles: bucles for y bucles while.

BUCLE WHILE:

BUCLE FOR:

pythonCopy code

Sintaxis básica: El bucle for se utiliza para iterar sobre una secuencia (como una lista, tupla, cadena de texto, etc.) y ejecutar un bloque de código para cada elemento. pythonCopy code for elemento in secuencia: Función range(): La función range() es comúnmente utilizada en bucles for para generar secuencias numéricas. pythonCopy code for i in range(5): Bucles anidados: Puedes anidar bucles for para iterar sobre múltiples dimensiones o secuencias. pythonCopy code for i in range(3): for j in range(2):

Sintaxis básica: El bucle while se utiliza para repetir un bloque de código mientras una condición sea verdadera.

while condicion: Incremento o decremento: Es común utilizar variables que se incrementan o decrementan en el bloque de código del bucle while para eventualmente hacer que la condición sea falsa y salir del bucle. pythonCopy code contador = 0 while contador < 5: contador += 1 Uso con precaución: Debe tenerse cuidado al usar bucles while para evitar bucles infinitos si la condición nunca se vuelve falsa. Control de bucles: Se pueden utilizar palabras clave como break para salir prematuramente del bucle, y continue para pasar a la siguiente iteración sin ejecutar el resto del código en el bucle. pythonCopy code while True: if condicion_de_salida: break

PARA MAYOR INFORMACIÓN ESCANÉAME

49

Los bucles son fundamentales para la implementación de la repetición y la iteración en la programación, permitiendo que un conjunto de instrucciones se ejecute varias veces de manera eficiente.


BUCLES Completa las oraciones con la opción correcta: 1. Un bloque de código es un conjunto de instrucciones agrupadas entre _____. a) Comillas b) Llaves { } c) Paréntesis ( ) d) Corchetes [ ] 2. En Python, la indentación se utiliza para indicar el inicio y fin de un _____. a) Comentario b) Bloque de código c) Variable d) Operador 3. ¿Cuál es el propósito principal de utilizar bloques de código en programación? a) Mejorar la velocidad de ejecución del programa. b) Organizar y estructurar el código. c) Reducir la cantidad de líneas de código. d) Aumentar la complejidad del programa. 4. En lenguajes como C++ o Java, los bloques de código se delimitan con _____. a) Paréntesis ( ) b) Llaves { } c) Corchetes [ ] d) Menos (-) 5. ¿Qué sucede si las llaves que delimitan un bloque de código no están correctamente emparejadas en muchos lenguajes de programación? a) El programa se ejecuta más rápido. b) Se produce un error de sintaxis. c) El código sigue funcionando normalmente. d) Se mejora la legibilidad del código.

50


¡VÁMOS A EXPERIMENTAR!

51


PRENDER Y APAGAR UN LED En esta práctica, exploramos la electrónica necesaria para controlar la iluminación de LEDs mediante la programación del IDE de Arduino. Antes de continuar, es esencial descargar e instalar el software IDE de Arduino. Además, utilizamos el programa TinkerCAD, que ayuda a visualizar el circuito que construiremos.

MATERIALES 1. Dos LEDs, de diferentes colores. 2. Dos resistencias de 220 Ω. 3. Una tarjeta Arduino. 4. Un cable USB impresora. 5. Un computador. 6. Cables para el montaje del circuito. 7. Un protoboard.

DIAGRAMA

Implementación del algoritmo 1 en el simulador TinkerCad:

53


CALABAZA DE HALLOWEN Le damos un instructivo para un proyecto que realiza las siguientes funciones: intermitente, gritando, arduino calabaza de Halloween. Es muy divertido, consiste en conocimientos de soldadura y es ideal para aprender sobre sensores y salida de luz MATERIALES 1. una calabaza, tenemos uno de tamaño medio. Si usted compra una más grande, el altavoz y USB power pack sólo podría caber a la derecha, que es un plus 2. una fuente de alimentación USB, cualquier persona es realmente fino 3. un accionado altavoz con conector de 3,5 mm, como un JamBox 4. un BareConductive touchboard 5. un anillo de NeoPixel, elegí un anillo de 12 x, 1 capacitor de 1000uF y un resistor de 470 Ohm 6. un Sensor de distancia ultrasónico, HC-SR04 o similar 7. algunos cables de puente 1.- Para detectar la proximidad de un individuo tenemos varias opciones. Yo he optado por un sensor de ultrasonidos HC-SR04. Quizá no sea lo más óptimo pero es lo que tenía más a mano. También necesitaremos un par de LEDs con sus respectivas resistencias de 1K y un pequeño altavoz o speaker (cuidado, no lo he probado, pero me temo que con un piezoeléctrico no funcione bien). La idea es que cuando alguien se acerque a la calabaza, emita un sonido digitalizado y encienda sus dos ojos (LEDs). 2.- El altavoz se conecta a tierra y al pin 11, el sensor de ultrasonidos a los pines 9 y 10 (además de a VCC y GND), y finalmente, he usado los pines 2 y 3 para controlar el encendido de los LEDs. El programa para Arduino es el siguiente. #include <PCM.h> #define MIN_DISTANCIA 30 int echo = 9; // Pin para echo int trigger = 10; // Pin para trigger int ojo1 = 2; // leds para los ojos int ojo2 = 3; unsigned long tiempoRespuesta; unsigned long distancia; const unsigned char sample[] PROGMEM = { 126, 124, 123, 123, 123, 124, 124, 124, 124, ... }; void setup() { pinMode(trigger, OUTPUT); pinMode(echo, INPUT); pinMode(ojo1, OUTPUT); pinMode(ojo2, OUTPUT); } void loop() {

digitalWrite(trigger, HIGH); // Enviamos pulso de 10 microsegundos delayMicroseconds(10); digitalWrite(trigger, LOW); tiempoRespuesta = pulseIn(echo, HIGH); // Y esperamos pulso de vuelta distancia = tiempoRespuesta/58; // Calculo de distancia en cm if (distancia < MIN_DISTANCIA) { digitalWrite(ojo1, HIGH); digitalWrite(ojo2, HIGH); startPlayback(sample, sizeof(sample)); delay(5000); digitalWrite(ojo1, LOW); digitalWrite(ojo2, LOW); } }

En este caso dejaremos el acceso a un video donde podrán ver el funcionamiento completo del proyecto

54


SEMÁFORO Simular un semáforo es uno de los clásicos en la iniciación de los proyectos de Arduino. Aquí vamos a mostrar como puedes montar un semáforo sencillo MATERIALES 1. Arduino Uno. 2. Protoboard. 3. Cables. 4. Un led rojo, un led amarillo y uno verde. 5. 3 resistencias de 220 Ω

1. Para el montaje del esquema colocamos los leds rojo, amarillo y verde en la protoboard, teniendo en cuenta que los vamos a conectar a los pines digitales 10, 9 y 8 de la placa de Arduino UNO. Comprobaremos que la patilla larga del LED está conectada al voltaje positivo, mientras que la pata corta está conectada a la resistencia. 2. El código es sencillo: se crea una variable donde almacenar el tiempo de espera. En la función setup() indicamos que los pines 10, 9 y 8 funcionarán como salida. 3. -Lo siguiente será encender el led correspondiente, con un valor HIGHT, y apagarlo cuando queramos, cambiando el valor a LOW. Primero, el rojo estará encendido; cuando el semáforo se ponga verde, el rojo se apagará; y antes de volver a rojo, se encenderá el amarillo y se apagará el verde.

4.- El código completo es el siguiente: // Semáforo sencillo en Arduino int tiempoEspera = 5000; void setup(){ pinMode(10, OUTPUT); // Rojo pinMode(9, OUTPUT); // Amarillo pinMode(8, OUTPUT); // Verde } void loop() { digitalWrite(10, HIGH); // rojo encendido delay(tiempoEspera); digitalWrite(8, HIGH); // verde encendido digitalWrite(10, LOW); // rojo apagado delay(tiempoEspera); digitalWrite(9, HIGH); // amarillo encendido digitalWrite(8, LOW); // verde apagado delay(1000); digitalWrite(9, LOW); // amarillo apagado }

55

Agregare enlace a TINKERCAD para simular el funcinamiento


CUATRO SEMÁFOROS Desarrollaremos el proyecto anterior un poco mas complejo esta vez se trata de un simple controlador de semáforo de 4 vías MATERIALES 1. 4 led rojo, 2. 4 led amarillo 3. 4 led verde 4. protoboard 5. Arduino UNO 6. Cable para circuitos

INSTRUCTIVO 1. Procederemos a armar el circuito como se muestra en la imagen. 2. Realizaremos el código para que nuestro semáforo funcione correctamente.

// void setup() { pinMode(1, OUTPUT); pinMode(4, OUTPUT); pinMode(8, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); }

Agregare enlace a TINKERCAD para simular el funcinamiento

void loop() { digitalWrite(1, HIGH); digitalWrite(4, HIGH); digitalWrite(8, HIGH); digitalWrite(11, HIGH); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(11, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(13, HIGH); digitalWrite(6, HIGH); digitalWrite(4, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(5, HIGH); digitalWrite(6, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(5, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(10, HIGH); digitalWrite(4, HIGH); digitalWrite(8, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(9, HIGH); digitalWrite(10, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(9, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(3, HIGH); digitalWrite(8, HIGH); digitalWrite(1, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(3, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(2, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(2, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(13, LOW); }

56


BOTE DE BASURA CON SERVOMOTOR Y SENSOR DE PROXIMIDAD Desarrollaremos el proyecto anterior un poco mas complejo esta vez se trata de un simple controlador de semáforo de 4 vías MATERIALES Ahora solo agregamos el código para controlar el 1. Arduino UNO servomotor 2. Sensor de ultrasonido #include <Servo.h> 3. Cables Macho Hembra int Trig = 9; 4. Cables Macho Macho int Echo = 8; 5. Servo motor Servo servo1; 6. Una caneca void setup() 7. Tabla en triplo o PVC espumado para hacer la tapa. {

INSTRUCTIVO 1. Por un lado se necesitará una placa Arduino UNO; un sensor de ultrasonido y un servomotor. Nos descargamos el código del proyecto y lo insertamos en la placa Arduino, luego conectamos el sensor que hemos colocado en la tapa del cubo de basura a la placa Arduino y también el servomotor en la parte trasera para que abra la tapa cuando nos acerquemos. También necesitaremos una fuente de alimentación, algo que podremos sustituir con un cable de corriente con su correspondiente adaptador.

Serial.begin(9600); pinMode(Trig,OUTPUT); pinMode(Echo,INPUT); pinMode(13,OUTPUT); servo1.attach(2); servo1.write(0); } void loop() { long duracion; long distancia;

//Estamos haciendo un disparo limpio digitalWrite(Trig,LOW); delayMicroseconds(4); digitalWrite(Trig,HIGH); delayMicroseconds(10); digitalWrite(Trig,LOW); duracion = pulseIn(Echo,HIGH); duracion = duracion/2; distancia = duracion/29; Serial.println(distancia); delay(100); if(distancia >= 5 && distancia <= 30){ servo1.write(90); digitalWrite(13,HIGH); delay(5000); servo1.write(0); } if(distancia > 30){ servo1.write(0); digitalWrite(13,LOW); } }

Agregare enlace a TINKERCAD para simular el funcinamiento

57


CARRITO CONTROLADO POR BLUETOOTH EN ARDUINO

Para poder realizar el proyecto utilizamos los componentes electrónicos proporcionados por la docente a cargo del módulo de aprendizaje. MATERIALES 1. MÓDULO BLUETOOTH HC-05. 2. ARDUINO UNO R3 3. CONTROLADOR DE MOTORES L298N 4. MOTOREDUCTORES DE 500 RPM 5. RUEDA LOCA 6. PROTOBOARD 7. DIODO LED 8. RESISTENCIA DE 220 OHM 9. BATERIA LIPO DE 7,4 V

58


CARRITO CONTROLADO POR BLUETOOTH EN ARDUINO CÓDIGO int motor1PWM = 9; // PWM int motor1Dir1 = 8; // Dirección 1 int motor1Dir2 = 7; // Dirección 2 // Definición de pines del motor derecho int motor2PWM = 10; // PWM int motor2Dir1 = 11; // Dirección 1 int motor2Dir2 = 12; // Dirección 2 void setup() { Serial.begin(9600); pinMode(motor1PWM, OUTPUT); pinMode(motor1Dir1, OUTPUT); pinMode(motor1Dir2, OUTPUT); pinMode(motor2PWM, OUTPUT); pinMode(motor2Dir1, OUTPUT); pinMode(motor2Dir2, OUTPUT); } void loop() { if (Serial.available() > 0) { char command = Serial.read(); handleBluetoothCommand(command); } } void handleBluetoothCommand(char command) { switch (command) { case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'S': stopMotors(); break; default: break; } }

void forward() { digitalWrite(motor1Dir1, HIGH); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 255); digitalWrite(motor2Dir1, HIGH); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 255); } void backward() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, HIGH); analogWrite(motor1PWM, 255); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, HIGH); analogWrite(motor2PWM, 255); } void left() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, HIGH); analogWrite(motor1PWM, 200); digitalWrite(motor2Dir1, HIGH); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 200); } void right() { digitalWrite(motor1Dir1, HIGH); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 200); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, HIGH); analogWrite(motor2PWM, 200); } void stopMotors() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 0); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 0);

59


ÁRBOL DE NAVIDAD CON ARDUINO Para poder realizar el proyecto utilizamos los componentes electrónicos proporcionados por la docente a cargo del módulo de aprendizaje. MATERIALES 1. SENSOR HC-SR04 (SENSOR ULTRASÓNICO) 2. ARDUINO UNO 3. SERVOMOTOR 4. PROTOBOARD 5. 15 PIEZAS DE DIODO LED 6. CAUTIN 7. POWER BANK

60


ÁRBOL DE NAVIDAD CON ARDUINO RESULTADO

CÓDIGO

61


TIRAR LOS DADOS En este proyecto aprenderemos a crear un dado electrónico con la ayuda de arduino y 6 LED’s. Al presionar el interruptor, se ejecutará el programa y los LED’s se encenderán de forma consecutiva de izquierda a derecha y de derecha a izquierda y dejará encendido, de forma aleatoria cierto número de LED’s. En el monitor serie también podremos ver este resultado de forma numérica.

MATERIALES

El esquema anterior lo realizamos utilizando la aplicación en línea TinKerCAD. ahí mismo puedes hacer la simulación antes de realizar el montaje del circuito. PinOUT: LED1 -> PIN2 LED2 -> PIN3 LED3 -> PIN4 LED5 -> PIN6 LED6 -> PIN7 Interruptor -> PIN9

Agregare enlace a TINKERCAD para simular el funcinamiento

62


TIRAR LOS DADOS CÓDIGO iEn el monitor serie se verá el número arrojado y coincidirá con el número de led encendidos PIN OUT Interruptor -> PIN9 LED -> 2-7 */ // configurar 1 si estamos depurando #define DEBUG 0 // 6 pines digitales consecutivos para los LED int first = 2; int second = 3; int third = 4; int fourth = 5; int fifth = 6; int sixth = 7; // pin para el interruptor de botón int button = 9; // valor para comprobar el estado del interruptor de botón int pressed = 0; void setup() { // set all LED pins to OUTPUT for (int i=first; i<=sixth; i++) { pinMode(i, OUTPUT); } // establece el pin del botón en INPUT pinMode(button, INPUT); // inicializar la semilla aleatoria por ruido del pin analógico 0 (debe estar desconectado) randomSeed(analogRead(0)); // si estamos depurando, conéctese al serial #ifdef DEBUG Serial.begin(9600); #endif } void buildUpTension() { // ilumina los LED de izquierda a derecha y hacia atrás para aumentar la tensión // mientras espera que se lancen los dados // de izquierda a derecha for (int i=first; i<=sixth; i++) { if (i!=first) { digitalWrite(i-1, LOW); } digitalWrite(i, HIGH); delay(100

63

); } // right to left for (int i=sixth; i>=first; i--) { if (i!=sixth) { digitalWrite(i+1, LOW); } digitalWrite(i, HIGH); delay(100); } } void showNumber(int number) { digitalWrite(first, HIGH); if (number >= 2) { digitalWrite(second, HIGH); } if (number >= 3) { digitalWrite(third, HIGH); } if (number >= 4) { digitalWrite(fourth, HIGH); } if (number >= 5) { digitalWrite(fifth, HIGH); } if (number == 6) { digitalWrite(sixth, HIGH); } } int throwDice() { // get a random number in the range [1,6] int randNumber = random(1,7); #ifdef DEBUG Serial.println(randNumber); #endif return randNumber; } void setAllLEDs(int value) { for (int i=first; i<=sixth; i++) { digitalWrite(i, value); } } void loop() { // si se presiona el botón - tira los dados pressed = digitalRead(button); if (pressed == HIGH) { // remove previous number setAllLEDs(LOW); buildUpTension(); int thrownNumber = throwDice(); showNumber(thrownNumber); } }


CRONÓMETRO Explicaremos cómo crear un cronómetro mediante Arduino UNO y una serie de componentes electrónicos de una manera muy sencilla. Este cronómetro constará de 2 pulsadores, uno para reiniciar el conteo y otro para pausarlo cuando creamos conveniente. Además se incluye un display LCD 1602 con comunicación I2C, con el que se muestra el tiempo transcurrido en formato HH:MM:SS.

MATERIALES Arduino UNO Rev.3 Cable USB tipo A-B Módulo LCM 1602 I2C V1 Display 16×2 LCD 1602 2 Pulsadores 2 Resistencias de 10KΩ Protoboard Cables de conexión

64


CRONÓMETRO

Agregare enlace a TINKERCAD para simular el funcinamiento

65


IXTAPALUCA


Turn static files into dynamic content formats.

Create a flipbook
REVISTA SOFTWARE DE SISTEMAS by ALEXIS MANCILLA - Issuu