UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA LICENCIATURA DE INGENIERÍA MECÁNICA U.A. PROGRAMACIÓN BÁSICA TEMA: METODOLOGÍA DE LA PROGRAMACIÓN María de los Ángeles Contreras Flores Agosto 2019 Contenido 1. Introducción 2. Objetivo 3. Programación, programa, algoritmo y pseudocódigo 4. Paradigma de la programación estructurada. 5. Lenguajes de programación. 6. Lenguaje C++ 7. Guión explicativo 8. Bibliografía Introducción Actualmente Nuestras actividades cotidianas se han vuelto menos complicada gracias al uso de la tecnología. A diario surgen nuevas aplicaciones como sitios webs, programas, redes sociales, juegos, y otras que a veces ni siquiera imaginamos, todas ellas nos permiten realizar una gran diversidad de actividades con un mínimo de tiempo, costo y, además, sin la necesidad de hacer desplazamientos. Todo esto se logra gracias al desarrollo de software, haciendo que aquellas personas que saben programar, tengan ventajas competitivas en su entorno profesional y laboral. Introducción Sin embargo uno de los mayores beneficios de aprender a programar, no se percibe fácilmente, porque no es algo que el ojo humano sea capaz de ver. Aprender a programar, enseña a analizar y resolver problemas de una manera lógica y razonada. La programación involucra tomar decisiones, basándose en un profundo análisis del problema a resolver. En este sentido, la programación ha cobrado un rol importante en la formación de los ingenieros porque, además de las ventajas mencionadas en el párrafo anterior, le permite realizar aplicaciones particulares para solucionar problemas propios de su disciplina. OBJETIVO Analizar problemas e integrar su solución diseñando algoritmos y una metodología de programación para aplicaciones en ingeniería. NOCIONES DE PROGRAMACIÓN. Programación, Programa, Algoritmo y Pseudocódigo ¿Qué es la Programación? Algunas definiciones son: 1. La programación informática es el proceso por medio del cual se diseña, codifica, limpia y protege el código fuente de programas computacionales. A través de la programación se dictan los pasos a seguir para la creación del código fuente de programas informáticos. De acuerdo con ellos el código se escribe, se prueba y se perfecciona. (https://conceptodefinicion.de/programacion-informatica/) 2. La programación es un proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un programa informático ¿Qué puedes hacer si aprendes a programar? Por favor espera a que cargue el video Observa con atención éste video, te ayudará a descubrir algunas ventajas de aprender a programar. ¿Qué es un programa? Este es un concepto desarrollado por Von Newman en 1946. Un programa “es un conjunto de instrucciones que sigue la computadora para alcanzar un resultado específico”. Todos los programas se encuentran escritos en un lenguaje de alto nivel (o lenguaje de programación, por ejemplo C, Pascal, Java, etc) Concepto de algoritmo Algoritmo Proviene del latín, dixit algorithmus y éste a su vez del matemático persa Muhammad Ibn Musa al-Jwarizmi, quién lo define como: “Una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema o alcanzar un resultado” Importancia de los algoritmos Observa con atención éste video, en el se explica que es un algoritmo y su importancia en la vida diaria. Pasos para construir un algoritmo Etapa 1 Etapa 3 “Análisis del problema” “Verificación del algoritmo” Etapa 2 “Construcción del algoritmo” Características de los algoritmos Preciso Definido Finito Los pasos a seguir en el No debe ser ambiguo Independientemente de (dobles algoritmo deben ser la complejidad del interpretaciones). especificados con algoritmo, siempre debe claridad. tener una longitud finita. Dado un conjunto de datos de entrada Debe tener un punto idénticos, el algoritmo particular de inicio y fin siempre debe arrojar los mismos resultados. General Debe tolerar cambios que se puedan presenter en la definición del problema. Tipos de algoritmos Computacionales No Computacionales Son desarrollados para dar solución a una diversidad de problemas y ser implementados en una computadora. Se refieren a actividades realizadas por las personas. Se escribe Inicio y Fin. Algunos ejemplos son: recetas de cocina, instructivos, etc. Se representan mediante diagramas de flujo o pseudocódigos. No se escribe ni Inicio ni Fin. Ejemplo de algoritmo En éste video se explica como realizar un algoritmo que sume dos números, observa y escucha con atención. Pseudocódigo Concepto Es la combinación del lenguaje natural (español, inglés o cualquier otro idioma), símbolos y términos usados dentro de la programación. (Corona & Ancona, 2011) Ventajas Es fácil de utilizar porque es similar al lenguaje natural. Es más sencillo de modificar que los diagramas de flujo, ya que en caso de error, no tiene que volver a dibujarse. Desarrollo En este curso todos los pseudocódigos inician con la palabra reservada principal (main) y las palabras inicio ({) y fin (}) para delimitar el bloque de instrucciones. Ejemplos de Pseudocódigo Ejemplo 2 Ejemplo 1 Pseudocódigo que obtiene el área de un triángulo rectángulo Pseudocódigo que pide ingresar el sueldo de un trabajador y su categoría, dependiendo de la categoría se le dará una bonificación en el sueldo neto a pagar PARADIGMA DE LA PROGRAMACIÓN ESTRUCTURADA Nociones de programación. ¿Qué es un paradigma? El diccionario de la Real Academia Española, define paradigma como: “1. m. Ejemplo o ejemplar. 2. m. Teoría o conjunto de teorías cuyo núcleo central se acepta sin cuestionar y que suministra la base y modelo para resolver problemas y avanzar en el conocimiento. El paradigma newtoniano.” https://dle.rae.es/?id=RpXSRZJ Paradigma de la programación estructurada Other Services Es un paradigma de programación Surgió en 1960 Refuerza Por el trabajo Böhm y Jacopini, y de la carta de Edsger Dijkstra escrita en 1968 “La sentencia goto considerada perjudicial”. El teorema del programa estructurado. Orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora Estructuras Módulos Go To Emplea tres estructuras de control: secuencia, selección e iteración Utiliza subrutinas o funciones Es innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GoTo), que podría conducir a "código espagueti" Teorema del programa estructurado El teorema es resultado de la teoría de los lenguajes de programación. Establece que toda función computable puede ser implementada en un lenguaje de programación que combine sólo tres estructuras lógicas, no importa lo complicado que sea el problema. Esas tres formas (también llamadas estructuras de control) son: Secuencial Tema Selección Iteración Ventajas de la programación estructurada La PE es un paradigma o forma de programar. 1 Es un conjunto de técnicas que desarrollan programas fáciles de escribir, verificar, leer y mantener e incluyen: 2 Diseño descendente Top-Down 3 Estructuras de datos 4 Estructuras de control 5 Programación modular Diseño Top-Down Inicio Cuerpo del programa Fin En la programación estructurada las instrucciones se ordenan o escriben de arriba hacia abajo, dando como resultado un algoritmo más sencillo de entender y corregir. Tema Estructuras de datos Entero corto (int) −32,768 𝑎 + 32,767 Entero de largo alcance (long) −2’147,483,648 𝑎 2’147,483,647 Real de precisión sencilla (float) 3.4𝑥10−38 𝑎 3.4𝑥1038 Real de doble precisión (double) Caracter (char) Tema 1.7𝑥10−308 𝑎 1.7𝑥10308 −127 𝑎 128 Símbolos del abecedario, números o caracteres especiales encerrados entre comillas simples (apóstrofo) Estructuras de control Iteración Ejecuta una o varias instrucciónes mientras una variable booleana es 'verdadera' Selección Ejecuta una de dos instrucciones según el valor de una variable booleana. Selección Ejecuta una instrucción tras otra 03 02 01 Tema Programación modular “El lenguaje C Fue diseñado como un lenguaje de programación estructurado o de programación modular. Esto permite dividir un programa en módulos en lugar de tener uno solo de gran tamaño. El programa se divide en varios módulos (pequeñas rutinas llamadas funciones), logrando con ello varios beneficios: aislar problemas, optimizar tiempo, distribuir las tareas, fácil mantenimiento, entre otros. De ésta forma C se compone de diferentes funciones y cada una realiza una función principal. Una función es, entonces, un miniprograma dentro de un programa y se caracteriza porque contienen varias sentencias bajo un solo nombre, y puede ser utilizada todas las veces que sea necesario.” (Joyanes & Zahonero, 2010) Tema Programación modular (ejemplo) Programa principal Módulo de lectura Módulo de escritura Tema Módulo de cálculos Módulo para guardar información Módulo de impresión LENGUAJES DE PROGRAMACIÓN Lenguajes de programación Concepto “Es la combinación de reglas y símbolos que permiten elabora programas de cómputo para realizer tareas o resolver problemas de manera eficiente” (Corona & Ancona, 2011) Clasificación: Lenguajes máquina Lenguajes de bajo nivel Lenguajes de alto nivel Características de los lenguajes de programación Lenguaje máquina Las instrucciones se escriben como cadenas binarias (0,1) y son entendibles por la computadora, no necesitan de un traductor para que la UCP entienda y ejecute el programa. Dependen del hardware del equipo. Lenguaje de bajo nivel (Ensambladores) Las instrucciones se escriben en códigos alfabéticos conocidos como mnemótecnicos o mnemónicos. Es un lenguaje intermedio entre el código máquina y los de alto nivel. Lenguaje de alto nivel Es un lenguaje semejante al de las personas (palabras en inglés), haciéndolo amigable y de fácil comprensión. Es el más utilizado por los programadores. Algunos ejemplos son: Basic, Pascal, Cobol, Fortran, C, entre otros. LENGUAJE C++ Lenguaje de programación estructurado Historia C es un lenguaje de programación creado por Dennis M. Ritchie en los Laboratorios Bell como evolución del lenguaje B, a su vez basado en BCPL El lenguaje C tuvo mucho auge en los años 80, comenzó a desplazar a BASIC, haciendo populares a los compiladores, además, se empezó a usar en los IBM PC. Inicio Boom 1972 1980 1979 1990 Libro Evolución Kernighan y Ritchie publican la descripción del lenguaje C en The C Programming Language, donde se señalan todas las posibilidades del lenguaje. Aún se usa como manual de referencia. Su evolución permitió generar otros lenguajes como C++ , Objetive C, Dev C++. Ha sido ejemplo para crear otros lenguajes no compatibles con C como Java, JavaScript, C. Características del lenguaje de Programación C. • Uso de gran cantidad de tipo de datos y operadores • Acceso a memoria de bajo nivel mediante el uso de punteros Permite realizar programas modulares Características • Bibliotecas que permiten utilizar funciones matemáticas y manejo de archivos • Produce código objeto optimizado • Conjunto reducido de palabras reservadas • Paso de parámetros a funciones por valor Lenguaje flexible que permite la programación estructurada Ejemplo de un programa en Dev C++ Resultados obtenidos de la ejecución del programa. Programa que inicializa un vector y acumula algunos de sus elementos dependiendo del valor del subíndice. Gracias Guión explicativo Este material ha sido desarrollado para apoyar la impartición de la asignatura de Programación Básica, con los temas de la Unidad 1 titulada “Metodología de programación”, misma que es impartida en la licenciatura de Ingeniería Mecánica de la UAEM, plan 2019. El propósito de éste trabajo, es contribuir al cumplimiento del objetivo particular que señala: “Manejar y aplicar los principios de la programación estructurada para la solución de problemas, considerando la metodología base para construir programas, enfatizando el uso de pseudocódigo”. Guión explicativo Nota: Se recomienda el uso de Power Point 2016, para la correcta visualización de este material. 38 Guión explicativo Se sugiere permitir el uso de contenido externo para visualizar los videos insertados en la presentación, en caso contrario serán bloqueados. Bibliografía 1. Corona, N. y Ancona M. (2011). Diseño de Algoritmos y su codificación en Lenguaje C. México: McGraw-Hill. 2. Cairó, Osvaldo. (2006). Fundamentos de programación. Piensa en C. Pearson-Prentice Hall. 3. Joyanes, Luis y Zahonero, Ignacio. (2010). Programación en C, C++, Java y UML. México: McGraw-Hill 4. Joyanes, Luis y Zahonero, Ignacio. Programación en C, metodología, estructura de datos y objetos. McGraw-Hill Créditos de imágenes Tiro al blanco: https://st2.depositphotos.com/3218141/5724/i/950/depositphotos_57244759-stock-photo-arrows-on-target.jpg Construcción: http://rgbsoluciones.net/images/construccion.gif Verificación: https://www.despachantesargentinos.com/img_articulos/56c91da04b8285069797313d7e415558.gif Paradigma: https://www.joselepadilla.com/wp-content/uploads/2017/03/Paradigma.png Código binario: https://www.google.com/imgres?imgurl=https%3A%2F%2Fs3.amazonaws.com%2Fs3.timetoast.com%2Fpublic%2Fuploads%2Fphotos%2F6411 272%2FLenguaje_Ensamblador.jpg&imgrefurl=https%3A%2F%2Fwww.timetoast.com%2Ftimelines%2Fhistoria-del-lenguaje-demaquina&docid=_RkJ_CXtqO945M&tbnid=TawXCX_6nZa5yM%3A&vet=10ahUKEwibmcvp3IfkAhUI0awKHcEfDEgQMwhXKAcwBw..i&w=639&h =480&bih=729&biw=1584&q=lenguaje%20m%C3%A1quina&ved=0ahUKEwibmcvp3IfkAhUI0awKHcEfDEgQMwhXKAcwBw&iact=mrc&uact=8 Ensamblador: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTR5BXb7yLL-k0IyETph26x8EzwdwSIPNcws0chaisXd_HaYCpYZw stick_figure_in_hourglass_md_wm_v2: https://content.presentermedia.com/files/animsp/00009000/9837/stick_figure_in_hourglass_md_wm_v2.gif Créditos Un agradecimiento a toda la gente que hace y permite el uso de diseños de manera libre, especialmente a Jun Akizaki- http://thepopp.com por las creativas animaciones realizadas en algunas de las diapositivas.