230 likes | 426 Views
Programación de Computadores Lenguaje Pascal. Sesión 1: Algoritmos Prof:Eridan Otto. Programación de Computadores Lenguaje Pascal. Sesión 1: Algoritmos. TEMARIO El Ramo Programación de Computadores Análisis y resolución de problemas Pseudocódigo Entrada y salida de datos A signación
E N D
Programación de Computadores Lenguaje Pascal Sesión 1: Algoritmos Prof:Eridan Otto
Programación de Computadores Lenguaje Pascal Sesión 1: Algoritmos • TEMARIO • El RamoProgramación de Computadores • Análisis y resolución de problemas • Pseudocódigo • Entrada y salida de datos • Asignación • Estructuras de control: Secuencia
Programación de Computadores Lenguaje Pascal El RamoProgramación de Computadores • Es un ramo básico para la mayoría de las carreras de la Universidad • Se dicta simultáneamente a distintos cursos, éste es el Paralelo 8. • Consta de 4 horas de cátedra 2 horas de ayudantía • Tiene sesiones prácticas de Laboratorio de 2 horas semanales • Evaluación • 3 certámenes (30% cada uno) • Laboratorios (10% total) • Para que estos porcentajes tengan validez deben tener sobre 55 como promedio en los certámenes y también en los laboratorios. • Fechas Importantes:
Programación de Computadores Lenguaje Pascal El RamoProgramación de Computadores • Información General • Bibliografía:K. Jensen, N. Wirth. Pascal User Manual and Report:ISO Pascal Standard. Spriger Verlag, 4 edition, 1991. • Sitio WEB del ramo:http://www.inf.utfsm.cl/~ccastro/IWI-131 • Sito WEB con las clases:http://angelfire.lycos.com/linux/eotto/ • Correo del profesor: eotto@inf.utfsm.cl • Clases : Lu 1-2, C:203 ; Mi 1-2 , C:364 • Horario de consultas : por confirmar. • Horario ayudantía:por confirmar. • Horario de laboratorios: por confirmar.
Programación de Computadores Lenguaje Pascal El RamoProgramación de Computadores Temas de la Asignatura 1. Algoritmos: análisis y resolución de problemas, pseudocódigo. 2. Estructura de un programa PASCAL: encabezado, declaraciones, cuerpo del programa. 3. Declaraciones: identificadores, definición de constantes, declaración de variables, comentarios. 4. Tipos de datos simples: tipos estándares INTEGER, REAL, BOOLEAN, CHAR. Compatibilidad de tipos, reglas de precedencia de los operadores, tipos definidos por el usuario, tipo enumerado, tipo sub-rango. 5. Sentencias básicas: asignación, entrada de datos, salida de datos. 6. Estructuras de control: secuencia, acción simple, acciones compuestas; selección, sentencias IF THEN ELSE, IF THEN, CASE OF; repetición, sentencias WHILE, REPEAT, FOR.
Programación de Computadores Lenguaje Pascal El RamoProgramación de Computadores Temas de la Asignatura 7. Subprogramas: diseño y estructura de programas, PROCEDURE, FUNCTION, parámetros por valor y por referencia, variables locales y globales. 8. Tipos de datos estructurados: ARRAY, algoritmos de búsqueda, algoritmos de ordenamiento, STRING. 9. Tipos de datos estructurados: RECORD. 10. Archivos: archivos de caracteres (texto), archivos enteros/reales, archivos de registros.
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas ¿Qué es la programación? • Es el proceso de planificar una secuencia de instrucciones que ha de seguir una computadora. • Para escribir dicha secuencia debemos seguir cierto procedimiento, que se compone de dos fases: • Fase de resolución del problema • Fase de implementación • Un problema se define como una situación en la cual un individuo desea hacer algo, pero desconoce el curso de la acción necesaria para lograr lo que quiere (Newell y Simon, 1972). • Una situación en la cual un individuo actúa con el propósito de alcanzar una meta, utilizando para ello alguna estrategia en particular (Chi y Glaser, 1983).
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas • Fase de Resolución del problema • Análisis: Comprender el problema, establecer su ámbito y las herramientas necesarias para resolverlo. • Solución general (Algoritmo): Desarrollar una secuencia lógica de pasos que resuelva el problema. • Prueba: Seguir los pasos para ver si la solución resuelve verdaderamente el problema. Fase de Implementación • Solución específica (Programa): Traducir el algoritmo a un lenguaje de programación. • Prueba: Hacer que la computadora siga las instrucciones. Comprobar los resultados y hacer las correcciones necesarias. • Uso: Utilizar el programa.
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas Resolución del problema Implementación Análisis Solución general (Algoritmo) Solución específica (Programa) Prueba Prueba Uso
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas ¿Qué es un algoritmo? Un algoritmo esencialmentes es una secuencia de pasos permitida y estructurada que permite realizar operaciones con datos, transformándolos (Ej, ordenándolos, haciendo cálculos repetitivos, obteniendo estadísticas, seleccionando, etc) para llegar al resultado. Algoritmo Resolución Problema Corresponde al proceso de construcción de un algoritmo para alcanzar la meta propuesta Corresponde a una serie de operaciones a realizar sobre los datos, lograda por medio de una adecuada combinación de instrucciones”
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas ¿Qué es un algoritmo? • Es una sucesión de acciones que hay que realizar, completamente prefijada, y su correcta ejecución lleva a una solución segura del problema como, por ejemplo, realizar una raíz cuadrada o hacer una torta. Es importante diferenciar entre el diseño mismo del algoritmo, y su ejecución ya sea realizada por una máquina o por un ser humano. Entrada Salida (resultado) Ejecución Datos Datos Manipulados Algoritmo Corresponde a una serie de operaciones realizadas sobre los datos, entregando otros datos como salida. El algoritmo “dirige” el proceso de ejecución. Problema
Programación de Computadores Lenguaje Pascal Algoritmos: Análisis y resolución de problemas Características de una algoritmo • Debe ser preciso, indicando un orden de ejecución. • Debe ser definido, es decir, debe dar el mismo resultado todas la veces que se ejecute con los mismos parámetros. • Debe ser finito, es decir, debe terminar en algún momento según un criterio de parada. Ejemplo : Encender un Automóvil 1. Poner la llave. 2. Asegurarse que la marcha está neutra. 3. Presionar el pedal del acelerador. 4. Girar la llave hasta la posición “arranque”. 5. Si el motor arranca antes de 6 seg, dejar la llave en la posición “encendido”. 6. Si el motor no arranca antes de 6 seg, volver al paso 3 (como máximo 5 veces). 7. Si el auto no parte, llevarlo al taller.
Programación de Computadores Lenguaje Pascal Algoritmos:Pseudocódigo Pseudocódigo, para poder indicar, por ejemplo, a un computador que realice alguna acción sobre los datos, se debe tener una especie de lenguaje conocido previamente por el programador y por la máquina. En este curso se verá PASCAL, pero antes, se debe entender que un algoritmo no depende del lenguaje mismo. El pseudocódigo es un lenguaje o una convención en español, que permite expresar lo que queremos que se haga para llegar a la meta. En esta clase y en la próxima se realizarán y solucionarán problemas, es decir, se diseñarán Algoritmos usando pseudocódigo. Diagramas de flujo, permiten expresar el algoritmo por medio de ciertas gráficas que ayudan a comprender mejor su mecánica.
Programación de Computadores Lenguaje Pascal Algoritmos:Pseudocódigo entrada y salida de datos Definición, dato: Es una estructura que se almacena en la “memoria” del computador y es representada Por un tipo de datos. En adelante se hablará de Variables. Definición, tipo dedato: para comenzar, antes de programar en PASCAL, usaremos sólo los siguientes tipos para variables: - ENTERO, ej: -1, 0 ,1, 1000, -253 - REAL, ej: -1.001, 1E-10, 2.35 - CARÁCTER, ej: ‘a’,’A’,’1’ - BOOLEANO: VERDADERO,FALSO • Definición, variable: es un dato que a lo largo de la ejecución del algoritmo puede ir cambiando de valores, siempre manteniendo su tipo. Ejemplos: • Contador :ENTERO (* variable de tipo ENTERO *); • raizCuadrada :REAL (* variable de tipo REAL*); • letraMinuscula :CARACTER (* variable de tipo CARACTER*); • ValorVerdad : BOOLEANO(* variable de tipo “lógico”*);
Programación de Computadores Lenguaje Pascal Algoritmos:Pseudocódigo entrada y salida de datos ¿Cómo comunicarnos con el computador? Pantalla Teclado Es el dispositivo estándar de salida de datos Es el dispositivo estándar de entrada de datos Es Instrucción en Pseudocódigo: escribir(texto,variable1,variable2,....); NOTA:las variables de tipo BOOLEANA no se pueden desplegar directamente por la pantalla Instrucción en Pseudocódigo: ingresar(texto,variable1,variable2,....); NOTA:las variables de tipo BOOLEANA no se pueden ingresar directamente por teclado
Programación de Computadores Lenguaje Pascal Algoritmos:Pseudocódigo entrada y salida de datos Ejemplo: Realizar un algoritmo que solicite ingresar por pantalla el valor aproximado de pi, un número entero que corresponde al radio de un círculo y despliegue por pantalla, del área del círculo. Valor de Pi salida Entrada Algoritmo Valor radio Valor del área ALGORITMO area; VARIABLES pi :REAL; radio:ENTERO; INICIO ingresar(‘por favor ingrese valor de pi:’,pi); ingresar(‘por favor ingrese valor del radio:’,radio); escribir(‘Area del circulo:’,pi*radio*radio); FIN. Pantalla por favor ingrese valor de pi: 3.141516 por favor ingrese valor del radio: 2 Area del circulo: 12.566 Entrada salida Teclado
Programación de Computadores Lenguaje Pascal Algoritmos:Asignación Definición, asignación:es la operación de dar valor a una variable o modificarla. Se va a representarla con el símbolo <-- ; una flecha apuntando a la izquierda. En pseudocódigo, el formato de una asignación es: nombre de la variable expresión algunos ejemplos: A 100 ; significa que a la variable A se le ha asignado el valor 100, ahora A vale 100. suma 5+10; asigna el valor 15 a la variable suma, a través de una asignación aritmética. x z + v ; asigna el valor de la suma de las variables z y v a la variable x. El resultado depende de los valores que se asignen PREVIAMENTE a z y a v Toda asignación es destructiva. Esto quiere decir que el valor que tuviera antes la variable se pierde y se reemplaza por el nuevo valor asignado, así cuando se ejecuta esta secuencia: B 25B 100B 77el valor final que toma B será 77 pues los valores 25 y 100 han sido destruidos. (o reemplazados en una parte de la memoria principal del computador)
Programación de Computadores Lenguaje Pascal Algoritmos, pseudocódigo:Asignación Cuando una variable aparece a ambos lados del símbolo de asignación como: C C + 1 Significa incremento del valor que c “ya tiene” más uno. Siempre inicializar las variables al comenzar el programa con cero u otro valor (dependiendo del problema). En una asignación, se puen hacer muchas más cosas que una suma, dependiendo del tipo de datos, se pueden combinar operadores, formando expresiones. Para ENTERO, algunos operadores son: +,- ,*, DIV,RESTO Para REAL, algunos operadores son: +,- ,*, /,REDONDEAR(),TRUNCAR() Para CARACTER, algunos operadores son: CODIGO() ,CAR() Para BOOLEANO, algunos operadores son: AND,OR,NOT Para agrupar operaciones, se usan: (,) Ejemplo: C A*(B+(C DIV D))
Programación de Computadores Lenguaje Pascal Algoritmos, pseudocódigo:Asignación Recuerdo: no se pueden asignar valores a una variable de un tipo diferente al suyo.Entonces, qué valor aparece por pantalla en el siguiente algoritmo, si se digita en teclado 20?: ALGORITMO incrementa; VARIABLES entrada,salida :ENTERO; INICIO ingresar(‘por favor ingrese valor inicial :’,entrada); salida---1; entrada----2*entrada; salida---salida + entrada; escribir(‘numero impar:’,salida); FIN.
Programación de Computadores Lenguaje Pascal Algoritmos, pseudocódigo. Estructura de control :Secuencia Diagrama de flujo para el ejemplo anterior: Inicio La ejecución un paso tras otro de un algoritmo sigue una cierta pauta o estructura, la primera a estudiar es la secuencial. Esto quiere decir que se ejecutan las instruccioneso sentencias en orden, una tras otra, empezando por la primera del algoritmo, acabando por la última. Un conjunto de instrucciones se puede agrupar en bloques, con un comienzo y un final. La estructura de control secuencia, significa que estos bloques se van ejecutando uno tras otro. Este enfoque se llama refinamiento sucesivo o enfoque estructurado de programación. Esto es, ir descomponiendo el algoritmo de acciones generales hasta llegar al nivel de instrucciones o sentencias. 20 Ingresar entrada salida---1 entrada-2*entrada salidasalida + entrada escribir salida >41 > > Fin
Programación de Computadores Lenguaje Pascal • Algoritmos, pseudocódigo. • Estructura de control :Secuencia • Ej: Desarrolle un algoritmo que entregue la edad de dos hermanos,sabiendo que el padre tiene 40 años, la diferencia de edad con el primer hijo es de 35 años, y que el segundo tiene el doble de la edad de su hermano. • Una primera aproximación al problema podría ser: • Calcular la edad del hermano menor • Calcular la edad del hermano mayor • Escribir en pantalla los resultados • A este nivel, no se ha llegado aún al pseudocódigo, solo se definen “grandes tareas” a realizar, que a su vez pueden dividirse en tareas secuenciales más simples: • Asignar a edad hermano menor : edad del padre menos la diferencia • Asignar a edad del hermano mayor : 2*(edad hermano menor) • Escribir en pantalla edad hermano menor • Escribir en pantalla edad hermano mayor • En este segundo refinamiento se aprecian ya algunas opreaciones más precisas, y cercanas a la solución. • Finalmente se formaliza el algoritmo:
Programación de Computadores Lenguaje Pascal Algoritmos, pseudocódigo. Estructura de control :Secuencia ALGORITMO edades; VARIABLES edadHermanoMay, edadHermanoMen :ENTERO; diferencia: ENTERO; INICIO Diferencia --35; edadHermanoMen --- 40 - diferencia edadHermanoMay----2* edadHermanoMen ; escribir(‘Edad hermano menor :’, edadHermanoMen ); escribir(‘Edad hermano mayor :’, edadHermanoMay ); FIN. Asignación Secuencia de inicialización Estructura de Control Secuencial Secuencia de cálculos Secuencia de salida