Lenguajes de Programación 1.Introducción ● ● ● Los Lenguajes de programación son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. Se basan en un sistema de instrucciones preestablecidas que indican al ordenador lo que debe realizar. Son códigos integrados compuestos por un vocabulario, con una sintaxis y una semántica que permite elaborar infinitas secuencias válidas de tareas e instrucciones Los lenguaje de programación permiten crear programas específicos que ofrezcan solución a programas particulares Para llevar a cabo cualquier tarea, el ordenador necesita tener información sobre la tarea y un método para ejecutarla PROGRAMA: conjunto de instrucciones convenientemente ordenadas que indican al ordenador qué procesos y tareas debe seguir. Cada una de las instrucciones tiene un función específica y está escrita en un lenguaje que el ordenador entiende Los lenguajes de programación: Constituyen sistemas de palabras-órdenes (lengua o idioma), ya establecidos. Comprensibles tanto por el programador como por la máquina, Permiten desarrollar programas Clasificación de los lenguajes de programación a) Lenguajes de Alto-Bajo nivel b) Lenguajes Interpretados o Compilados c) Lenguajes clásicos, visuales y de Internet d) Por el objetivo Lenguajes interpretados o compilados ● ● ● Los LP deben traducirse (excepto el código máquina) para que sean interpretables (o inteligibles) por el ordenador. Esta traducción puede hacerse mediante: Los Lenguajes interpretados, se encargan de realizar la traducción instrucción a instrucción a la vez que se ejecuta el programa. Son más lentos, pero mejores cuando el proceso de traducción/ejecución se realiza en repetidas ocasiones, por lo que son más adecuados para principiantes. Los Lenguajes compilados traducen el programa entero y luego lo montan generando un programa ejecutable por si sólo. Una vez compilado el programa, el compilador no tiene porque estar presente, pudiéndose transportar el programa ejecutable a cualquier ordenador, sin necesidad de manejar el compilador. Lenguajes clásicos, visuales y Internet Los Lenguajes clásicos están basados en un lenguaje en el que se escribe el código necesario para realizar las operaciones que se requieren (posteriormente será traducido o compilado, generando un programa ejecutable). Los Lenguajes visuales son más avanzados y están basados en objetos. Cada entidad del programa (eventos, acciones..) es un objeto sobre el que se definen operaciones. Estos permiten almacenar los objetos (con todo su código) en una serie de librerías. Son lenguajes muy intuitivos que sustituyen las líneas de código por directas representaciones gráficas. Los Lenguajes de Internet son lenguajes específicos diseñados para la creación de páginas Web y realizar su programación (motores de búsqueda, seguridad, establecimiento de comunicaciones…). Son la última generación de lenguajes. Existen distintos tipos dependiendo del grado de especialización. Lenguajes por el objetivo Los programas pueden clasificarse por el objetivo para el que fueron creados: BASIC, PASCAL: aprendizaje de programación C y C++: programación de sistemas COBOL, RPG, Natural: gestión de empresas FORTRAN: cálculo numérico CLIPPER, ACESS, Dbase, Delphi, SQL: bases de datos Visual BASIC, Visual C: programación en Windows HTLM, JAVA, PERL: Internet (páginas Web) Lingo: programas multimedia Prolog, Lisp: Inteligencia Artificial Actividad Encuentra como mínimo 3 tipos de lenguajes de programación para cada una de las clasificaciones de los lenguajes de programación: a) Lenguajes de Alto-Bajo nivel b) Lenguajes Interpretados o Compilados c) Lenguajes clásicos, visuales y de Internet Envía por correo Metodología de la programación: aspectos básicos La programación puede ser entendida como un PROCESO DE SOLUCIÓN DE PROBLEMAS que tiene lugar en dos etapas: ● ● Obtener la solución del problema. Comprende: – un análisis detallado de la situación – la búsqueda de tácticas que conduzcan a la solución Codificar esta información en un lenguaje informático concreto El método general de programación es: 1. PROBLEMA: actividad que no sabemos cómo llevar a cabo 2. INFORME ALGORITMICO: la actividad se analiza en busca de la forma de resolución. El resultado se plasma en un informe que contiene: ● La descripción de la tarea y la enumeración de los objetivos a conseguir ● El procedimiento empleado ● Los recursos y elementos necesarios ● El algoritmo (la secuencia en la que hay que realizar cada una de las operaciones) 3. PROGRAMA: el algoritmo, traducido a un lenguaje de programación específico, se convierte en un programa que el ordenador puede ejecutar ¿Qué es un algoritmo? Un método para resolver un problema mediante una serie de pasos precisos, definidos, finitos precisos: indicar el orden de presentación de cada paso definidos: si se siguen dos veces se obtiene igual resultado finitos: tiene un número determinado de pasos Una receta de cocina puede resultar similar (en cuanto a concepto) a un algoritmo o programa Actividad Crea 3 Algoritmos con más de 10 pasos siguiendo los criterios anteriores. Envía por correo Creación de un programa Pasos comunes en la creación de un programa entendido como un proceso de resolución de problemas: 1. Análisis del problema: definición del problema. 2. Diseño del algoritmo: proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permita una posterior traducción a un lenguaje Las herramientas más utilizadas para diseñar algoritmos son: ● ● Diagramas de flujo: representación gráfica del algoritmo Pseudocódigo: las instrucciones se escriben en palabra que facilita tanto la escritura como la lectura de programas Pseudocódigo Actividad ● Realiza ahora los diagramas de flujo de los 3 algoritmos que has creado anteriormente. Para crear el diagrama sírvete de la página web: https://www.draw.io/ Creación de un programa 3.Codificación de un programa: traducción del algoritmo en un lenguaje de programación. 4.Compilación y ejecución: traducirlo al lenguaje máquina. Este proceso se realiza mediante el compilador y el sistema operativo. 5.Verificación y depuración: ejecutar el programa con una amplia variedad de datos de prueba para determinar si el programa tiene errores. La depuración es el proceso de encontrar los errores del programa y corregirlos Creación de programas a. Errores de sintaxis: uso incorrecto de las reglas del lenguaje de programación b. Errores de ejecución: se producen por instrucciones que el ordenador puede comprender pero no ejecutar (por ejemplo, dividir por cero) c. Errores lógicos: se producen en la lógica del programa. La fuente de error suele ser el diseño del algoritmo 6. Documentación y mantenimiento: descripciones de los pasos a dar en el proceso de resolución un problema ● ● Puede ser interna o externa. La documentación interna es la contenida en la línea de comandos (por ejemplo, líneas rem). La documentación externa incluye el análisis, los diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y analizar los resultados… La documentación es muy importante cuando se desea corregir posibles errores futuros o cambiar el programa. Tales cambios se denominan mantenimiento del programa. En la propia documentación dentro de los programa suelen utilizarse comentarios. En la mayoria de los lenguajes de programación como C, C++, Java... Los comentarios suelen seguir a los caracteres: ● Después de // si son de una única fila ● // Esto seria un comentario dentro de una fila ● Dentro /* y */ si son de varias fila ● /*Esto seria un comentario ● dentro de varias filas */ Operadores Son caracteres especiales que tienen un significado específico o determinado, estos indican al compilador realizar operaciones matemáticas o lógicas. Operadores Matemáticos ● - menos unuario ● - resta ● + suma ● * producto ● / división ● -- Decremento ● ++ Incremento ● % módulo ● = asignación Operadores Operadores de Relación Estos se utilizan dentro de proposiciones del tipo while, if, for; es decir, en estructuras de control . ● < : menor que ● > : mayor que ● <= : menor o igual que ● >= : mayor o igual que ● == : igual a ● != : distinto de (no igual a) Operadores Lógicos ● ! : negación ------- not ● && : y lógico ------- and ● || : o lógico -------- or Como escribir un programa en un lenguaje de programación como C El Lenguaje C se escribe a partir de un programa principal y de funciones, el programa principal también es una función (función principal), y se denomina main(), esta debe estar siempre presente y es la primera en ser llamada. ● Para hacer un programa en C, lo primero que se debe hacer es crear el programa fuente (con extensión ".c") de la siguiente manera: ● #include <stdio.h> #include <stdlib.h> int main() { int c=0; int b=0; printf("Ingrese entero"); scanf("%d",&c); b=c*c; printf("el cuadrado es %d ", b); system("PAUSE"); return 0; } Actividad ● Busca 3 entornos de programación para programar en C. Adjunta una pequeña descripción y capturas de pantalla. Ejecuta el programa anterior en un entorno de programación instalado en lliurex. Adjunta captura de pantalla (Cambia algo el texto para diferenciarlo de tus compañeros) ● Cuando se escribe el programa se recomienda usar el siguiente formato: 1. llamadas a bibliotecas 2. declaración de funciones (prototipos de funciones) 3. declaración de variables globales 4. Main() 5. { 6. declaración de variables locales 7. Sentencias 8. } 9. definición de funciones /* esto es un comentario */ #include<stdio.h> #include<stdlib.h> float num; float res, cubo(int x); main() { printf("ingrese un número "); scanf("%f",&num); res=cubo(num); printf("%f al cubo es: %f",num,res); system("PAUSE"); return 0; } float cubo(float x) {return x*x*x;} Estructura de un Programa en C p p Por lo general las bibliotecas contienen funciones creadas por el programador o entregadas con el producto. Por ejemplo las funciones de entrada y salida vienen especificadas en la biblioteca de entradas y salidas estándar stdio.h (Standar Input Ouput Header). # include <stdio.h> p Cada vez que se escribe una línea, esta debe llevar ";" al final, con lo cual el compilador entiende que llega al final de una instrucción o proposición. p Antes de usar una variable dentro de un programa, es necesario indicarle al compilador que va a ser usada, para ello se declara: p p <tipo> <lista_de_variables>; Ejemplo: Int a; Como ya es sabido, una asignación es almacenar en una variable el resultado de una operación o proceso. En "C" una asignación se representa como: p <variable> = <expresión>; p Ejemplo: p a=5; /* a la variable a se le asigna el valor 5 (constante)*/ p expo=max; /* a la variable expo se le asigna el contenido de la variable max*/ p expofin=ult+4; /* a expofin se le asigna el contenido de la variable ult sumada a la constante 4*/ Identificadores p Estos son simplemente los nombres que pueden asumir variables o constantes dentro del programa. p Existen algunas restricciones para los identificadores: - No deben ser iguales a nombres de palabras reservadas o bibliotecas. - Deben comenzar con una letra o el caracter ‘_’. - No deben tener en medio el carácter espacio. • Cuando declaro una variable la elección del tipo de dato depende del propósito para el cual voy a usar la variable. Entrada / Salida Estándar p La biblioteca (o archivo de cabecera) llamada stdio.h contiene todas las funciones de entrada y salida estándar, entre ellas las funciones printf() y scanf(). La f significa que es entrada o salida con formato. printf() p Esta es la función de salida por pantalla, su formato es el siguiente: p printf(cadena_de_control,lista_de_argumentos) p printf("a * b = %d \n", c ); p Los caracteres barra invertida (backslash) y n juntos, provocan un retorno de carro (return) en pantalla Entrada / Salida Estándar scanf() p p p Esta es la función para entrada estándar, se utiliza de un modo parecido a la anterior. scanf("%d",&numdato); %d indica que se lee con formato entero. En el ejemplo el caracter "&" se usa para indicar la dirección de memoria, es decir, "lee a un valor con formato entero y lo guarda en la dirección de memoria numdato". constantes En programación, una constante es un valor que no puede ser alterado durante la ejecución de un programa. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. Por ejemplo: El valor de pi = 3.1416 Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes. Constantes en C ● ● En C las constantes se declaran con la directiva #define, esto significa que esa constante tendrá el mismo valor a lo largo de todo el programa. El identificador de una constante así definida será una cadena de caracteres que deberá cumplir los mismos requisitos que el de una variable (sin espacios en blanco, no empezar por un dígito numérico, etc). #define PI 3.1415926 El teorema del programa estructurado, de Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes: * Secuencia * Instrucción condicional. * Iteración (bucle de instrucciones) con condición al principio. Solamente con estas tres estructuras o “patrones lógicos” se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas. El flujo de control de un programa La expresión flujo de control hace referencia al orden en el que se ejecutarán las instrucciones de un programa, desde su comienzo hasta que finaliza. El flujo normal de ejecución es el secuencial. Si no se especifica lo contrario, la ejecución de un programa empezaría por la primera instrucción e iría procesando una a una en el orden en que aparecen, hasta llegar a la última. Algunos programas muy simples pueden escribirse sólo con este flujo unidireccional. No obstante, la mayor eficacia y utilidad de cualquier lenguaje de programación se deriva de la posibilidad de cambiar el orden de ejecución según la necesidad de elegir uno de entre varios caminos en función de ciertas condiciones, o de ejecutar algo repetidas veces, sin tener que escribir el código para cada vez. El flujo de control de un programa También puede ocurrir que interese que un grupo de instrucciones se ejecute repetidamente hasta que se le indique que se detenga. Por ejemplo, calcular el promedio de notas para cada uno de los alumnos de un curso, o realizar algún cálculo con cada uno de los elementos de un vector. Para las dos situaciones planteadas existen dos soluciones: las sentencias de control selectivas y las repetitivas. Éstas permiten que el flujo secuencial del programa sea modificado. También cumplen con este objetivo las sentencias denominadas de invocación o salto. Las sentencias alternativas también son conocidas como sentencias selectivas porque permiten seleccionar uno de entre varios caminos por donde seguirá la ejecución del programa. En algunos casos esta selección viene determinada por la evaluación de una expresión lógica. Estructura de selección. Sentencias anidadas. p La sentencia de control básica es if (<condicion>) then <sentencia/s> else <sentencia/s>. En ella se evalúa una expresión condicional y si se cumple, se ejecuta la sentencia s; si no, se ejecuta la sentencia t. La segunda parte de la condición, else <t>, es opcional. if (dato2==0) then /* Se pregunta "es dato2 igual a cero" */ printf("\n LA DIVISION ES INDETERMINADA"); else { printf("\n LA DIVISION ES: %f", div); /*se ejecuta si dato <> 0*/ } Estructura de selección. Sentencias anidadas. Ejemplo: Un sensor toma (lee) la temperatura ambiente y de acuerdo al rango en que se encuentre, debe emitir un mensaje. La escala es la siguiente: Mayor que 100 “Temperatura muy alta – Mal funcionamiento” Entre 91 y 100 “Rango normal” Entre 51 y 90 “Bajo el rango normal” Menor que 50 “Muy frío – Apague el equipo” ALGORITMO Sensor INICIO LEER temperatura SI temperatura > 100 ENTONCES ESCRIBIR “Temperatura muy alta – Mal funcionamiento” SINO SI temperatura > 90 ENTONCES ESCRIBIR “Rango normal” SINO SI temperatura > 50 ENTONCES ESCRIBIR “Bajo el rango normal” SINO ESCRIBIR “Muy frío – Apague equipo” FIN-SI FIN-SI FIN-SI FIN Ejercicio: Codifica en C Estructuras de Control. Bucles En muchas ocasiones la forma más apropiada de expresar un algoritmo consiste en la repetición de una misma instrucción de manera controlada, una cantidad finita de veces determinada de antemano (al diseñar el programa) o en tiempo de ejecución (cada vez que se corre el programa). Por ejemplo, podría ser necesario diseñar un algoritmo similar al de los cajeros automáticos, que solicite una clave al usuario y bloquee el acceso en caso de no ingresar la contraseña correcta luego de tres intentos. O bien, si se desea procesar grupos de datos ingresados por teclado o leídos desde un archivo, hasta que no se encuentren más datos. Las estructuras algorítmicas que permiten realizar operaciones de este tipo se conocen con el nombre de estructuras repetitivas o iterativas. Definicion: Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan repetitivas o bucles; y se denomina iteración a la ejecución de cada repetición. Estructuras de repeticion. Bucles Ejemplo Se desea ejemplo, ingresar sucesivas sumar una lista de números que ingresa desde teclado (por edades de los alumnos de una clase). El algoritmo debería el valor y sumarlo a una variable SUMA que contenga las sumas parciales. ALGORITMO suma INICIO Suma=0 LEER número Suma = suma + número LEER número Suma = suma + número …. FIN Como podemos observar, si no utilizamos alguna instrucción de repetir, el algoritmo deberá realizar tantas lecturas y sumas como alumnos se procesen: 10, 100, 1000,... Es evidente que el método no es óptimo, pero el ejemplo sirve para identificar las instrucciones que se repiten. En este caso, el bucle está formado por las instrucciones: LEER número suma = suma + número y la cantidad de iteraciones estará relacionada con el número de alumnos que se procesen durante la ejecución. Entonces, las dos cuestiones importantes cuando se utilizan estructuras repetitivas son: ¿qué contiene el bucle? y ¿cuántas veces se repite? Las estructuras repetitivas se diferencian en la forma en que se produce la condición de fin del bucle y deberá utilizarse aquella más apropiada al problema particular de que se trate. A continuación, veremos las más usuales: Bucles ● ● ● for (para), permite hacer iteraciones controladas determinando cuanto incrementar o disminuye un valor y poniendo una condición de ruptura. break se usa comúnmente con while, para indicar el rompimiento del ciclo. continue funciona de forma algo similar a break, solo que en vez de terminar omite el código que sigue desde el punto en que es llamado y pasa a evaluar la condición directamente. La estructura PARA (for) Problema: Se desea un programa que muestre en pantalla los números pares entre 1 y 99. INICIO ESCRIBIR 2 ESCRIBIR 4 […] ESCRIBIR 96 ESCRIBIR 98 FIN Se dijo que la computadora es muy hábil para repetir tareas sencillas, como la del problema. Cuando se necesita que la computadora repita una operación, con una pequeña variación cada vez, se deben identificar las condiciones para la repetición, y expresar esta variación de una forma comprensible para la máquina. #include <stdio.h> int main() { int numero=1; int salida=0; //probar con bucle infinito y rompimiento break while (numero!=salida) { printf ("\nAdivina cual es el numero para salirme entre [-10:10 ]:"); scanf ("%d",&numero); if((numero>10)&&(numero<-10)) { printf("Te saliste del rango!\n"); } } } Ejemplo de bucle for #include <stdio.h> int main() { int i; int tabla1,tabla2; tabla1 = 2; /* Primero la tabla del dos */ tabla2 = 5; /* y a continuación la tabla del cinco*/ //analizar con i-- y hacer para que avance de a dos for (i=1;i<11;i++) { printf ("\n %2dx%2d=%3d",tabla1,i,tabla1*i); printf (" %2dx%2d=%3d",tabla2,i,tabla2*i); } printf("\n"); } ● ● Hacer un programa en c que me pida un número y le haga la sumatoria. Osea, si el numero introducido es 5 deberà de darme el resultado de sumar 1+2+3+4+5 Programación Visual: Scratch Scratch ● Vamos a crear aplicaciones con Scratch con los ejercicios colgados en la web.
© Copyright 2024