Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. ALGORITMOS DEFINICIÓN: Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema. Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programación. Programa: Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que expresa un algoritmo y que puede ser ejecutado en un computador. CLASIFICACIÓN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos: Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x. Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalación de un equipo de sonido. Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un tesoro. Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o instrucciones involucran cálculos numéricos. Ejemplo: Solución de una ecuación de segundo grado. CARACTERÍSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes características: 1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer. 2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos. 3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada. 4. Puede tener cero o más elementos de entrada. 5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones. PARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes: · Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. · Proceso, es la secuencia de pasos para ejecutar el algoritmo. · Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo. TÉCNICAS DE REPRESENTACIÓN: Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son: 1 Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. 2 · Diagramación libre (Diagramas de flujo). · Diagramas Nassi-Shneiderman. · Pseudocódigo. · Lenguaje natural (español, inglés, etc.). · Fórmulas matemáticas. Variable Una variable es un símbolo que representa un elemento o cosa no especificada de un conjunto dado. Dicho conjunto es llamado conjunto universal de la variable, universo o variar de la variable, y cada elemento del conjunto es un valor de la variable. Sea x una variable cuyo universo es el conjunto {1,3,5,7,9,11,13}; entonces x puede tener cualquiera de esos valores: 1,3,5,7,9,11,13. En otras palabras x puede reemplazarse por cualquier entero positivo impar menor que 14. Por esta razón, a menudo se dice que una variable es un reemplazo de cualquier elemento de su universo. Una variable es un elemento de una fórmula, proposición o algoritmo que puede adquirir o ser sustituido por un valor cualquiera (siempre dentro de su universo). Los valores que una variable es capaz de recibir, pueden estar definidos dentro de un rango, y/o estar limitados por razones o condiciones de pertenencia, al universo que les corresponde (en estos casos, el universo de la variable pasa a ser un subconjunto de un universo mayor, el que tendría sin las restricciones). En muchos usos, lo contrario de una variable es una constante. También puede considerarse a las constantes como caso particular de variables, con un universo unitario (con un solo elemento), ya que sólo pueden tener un valor, y no pueden modificarlo. Constante Lo contrario de una variable es una constante. También puede considerarse a las constantes como caso particular de variables, con un universo unitario (con un solo elemento), ya que sólo pueden tener un valor, y no pueden modificarlo. Lenguaje de programación Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación. Ejemplo: Realizar el ALGORITMO de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo.. Programa; área variables: BASE, ALTURA, AREA son número enteros Algoritmo: escribir “Introduzca la base y la altura” leer BASE, ALTURA calcular AREA = BASE * ALTURA escribir “El área del rectángulo es “AREA Finprograma Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. Ejemplo: Realizar el algoritmo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas. Programa: SumaProducto variables: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros Algoritmo: escribir “Introduzca las notas” leer NOTA1,NOTA2 calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2 escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma Ejemplo: Realizar el algoritmo de un programa que permita saber si un número es mayor, menor o igual a cero. Programa: ComparaNúmeros variables: NUMERO es un número entero Algoritmo: Escribir “Introduzca un número “ leer NUMERO SI NUMERO>0 ENTONCES escribir “El número introducido es positivo” SI NO SI NUMERO<0 ENTONCES escribir “El número introducido es negativo” SI NO escribir “El número es cero” FINSI FINSI Finprograma 3 Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. 4 Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada x y escriba el resultado en algún dispositivo de salida: ALGORITMO lee_tres_vertices ENTRADA: las coordenadas (x,y) de tres puntos SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha. VARIABLES: i:entera x,y: real INICIO PARA i=1 HASTA 3 CON INCREMENTO +1 ESCRIBE "Abscisa del punto número ", i LEER x ESCRIBE "Ordenada del punto número ", i LEER Y ESCRIBE "El punto es (" x+3","y")" FIN_PARA FIN El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes. program lee_tres_vertices; var x,y:real; i:integer; begin for i:=1 to 3 do begin write ('Abscisa del punto número ',i); readln(x); write ('Ordenada del punto número ',i); readln(y); writeln (' El punto es (',x+3,',',y,')'); end; end; Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado. programa suma_divisibles variables natural : divisor, suma, contador, número inicio programa divisor leer ‘Introduce el divisor: ’ suma 0 contador 0 para número desde 1 hasta 1000 hacer si divisor divide a número entonces suma suma + número contador contador + 1 fin si si contador = 10 entonces interrumpir fin si fin para escribir ‘La suma es’, suma fin programa Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. Diagramas de flujo: Símbolos ejemplos: <===Este símbolo representa salida 5 Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. Observa detenidamente y estudia que proceso realiza este diagrama de flujo. Desarrolla diagrama de flujo y algoritmo de: a) calculo de área de rectángulo b) calculo de suma de los números de 1 a 100 c) ecuación de segundo grado 6 Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. ejemplo: en clases explicaremos con más detalles y desarrollaremos más ejemplos para luego entrar a la programación en Python 7 Colegio Arrayanes Introducción a la Programación Prof.: Héctor Pérez U. Ejemplo de programa en Python que calcula promedio de notas de un alumno. Se ingresa nombre alumno y cantidad de notas a promediar: resp="s" while (resp!="n"): print("ingresa nombre alumno") nomb=input() print ("ingresa numero de notas a promediar") numNot=input() numNot=int(numNot) suma=0 for i in range (1, numNot+1): print ("ingresa nota:",i) nota=input() nota=float(nota) suma=suma+nota prome= suma / numNot print ("hola: ",nomb) print("tu promedio = ",prome) print (" ") print ("otro alumno s/n") resp=input() 8