Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 1: Algoritmos y variables Dr. Sergio A. Gómez

Documentos relacionados
BIENVENIDOS )أبو عبد هللا محمد بن موسى الخوارزمي ابو جعفر ) Resolución de Problemas y Algoritmos Clase 1

BIENVENIDOS. Resolución de Problemas y Algoritmos. Clase 1: algoritmos y programas

14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes

Dra. Jessica Andrea Carballido

Dra. Jessica Andrea Carballido

Prof. María Alejandra Quintero. Informática Año

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

Metodología de Desarrollo de Programas

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Titulo de hoy 25/09/2017 COLEGIO SAN ANTONIO MARIA CLARET 1

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

OBJETIVOS Y/O ALCANCES DE LA ASIGNATURA

[TEMA #2. ETAPAS Y TÉCNICAS PARA EL DESARROLLO DE PROBLEMAS CON AYUDA DEL COMPUTADOR.]

Introducción a la programación: Algoritmos

ESTRUCTURA DE ASIGNACIÓN

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

Resolución de Problemas y Algoritmos

Lenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.

Tema 2: Introducción a los Computadores

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Tema 2. Concepto de Algoritmo

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACIÓN UNIDAD I. ALGORITMOS Y PROGRAMAS. Características y elementos para construir un algoritmo

Evolución del software y su situación actual

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Unidad III: Introducción a la Programación

INTRODUCCIÓN A LA PROGRAMACIÓN

CIENCIA DE LA COMPUTACION

Conjunto de Unidades que colaboran entre si para realizar una función general y donde cada unidad efectúa un trabajo específico.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Unidad 2. Introducción Lenguajes y Compiladores

INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I

TEMA 1: Algoritmos y programas

Tema 1: Introducción a los Computadores

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

ASIGNATURA: PROGRAMACION I

7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román -

UNIVERSIDAD DE GUADALAJARA

Tecnologías en la Educación Matemática

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

Resolución de Problemas y Algoritmos

Computación I Curso 2016 Facultad de Ingeniería Universidad de la República

Computación I (CI-2125) Clase 3. Prof. Mireya Morales Primera

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

Tema: Análisis de código intermedio

21/03/2018. Variables y Constantes. Los datos de un programa están representados por variables o constantes y tienen asociado un tipo.

A l g o r i t m o s. Seguridad en Internet ALGORITMOS.

Tema 3: Resolución de problemas con computadoras 2014

Unidad de Competencia I Elementos de Competencia Requerimientos de información

Objetivo: Contenido

UNIVERSIDAD DE GUADALAJARA

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Introducción a la arquitectura de computadores

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

ESCUELA NACIONAL AUXILIARES DE ENFERMERÍA Manizales TECNOLOGÍA E INFORMÁTICA

Organización de Computadoras. Clase 6

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Estructura lógica del Sistema Computador

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Programación en Pascal Capítulo 2. Acciones Primitivas.

CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional

UNIVERSIDAD AUTÓNOMA DE CHIAPAS Facultad de Contaduría y Administración, Campus I

Principios de Computadoras II

Introducción. Tema 1. Fundamentos de informática. Universidad de Oviedo. Fundamentos de Informática. Departamento de Informática Universidad de Oviedo

UNIVERSIDAD DE LOS ANDES FACULTAD DE CIENCIAS FORESTALES Y AMBIENTALES ESCUELA DE INGENIERIA FORESTAL PROGRAMA INFORMATICA I (NV)

Proceso de información en la computadora

Dra. Jessica Andrea Carballido

Leer el pedido. Examinar ficha del cliente. Si el cliente es solvente aceptar pedido, en caso contrario rechazar pedido.

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Introducción a la Programación Orientada a Objetos

GUÍA DOCENTE ABREVIADA DE LA ASIGNATURA

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Sistemas con Microprocesadores I

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

Tema 1: Introducción a los Computadores

Horas teóricas: 2 Horas prácticas: 4 Total de Horas: 6 INTRODUCCION A LA PROGRAMACION

Universidad Autónoma del Estado de México Facultad de Medicina

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

1.2 Uso del software como una calculadora. Iniciación a los operadores y almacenamiento de datos.

PROGRAMA DETALLADO VIGENCIA TURNO UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

Computación I. Facultad de Ingeniería Universidad de la República

Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora.

GUIA 24: REPERTORIO DE INSTRUCCIONES

FUNDAMENTOS/INTRODUCCIÓN DE COMPUTADORES A - OBJETIVOS

Tema: Análisis Léxico

Fundamentos de programación. Organización de una computadora

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

Transcripción:

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 1: Algoritmos y variables Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina

Trivia Asignatura: Resolución de Problemas y Algoritmos (RPA) Profesor: Dr. Sergio Alejandro Gómez Horarios: Teoría: Lunes y jueves de 16 a 18 hs. (Aula 131 ex-38c Alem) Práctica: Lunes y jueves de 18 a 20 hs. (Aula 131 ex- 38C Alem) Asistente: Lic. Sandra Di Luca. Horarios de laboratorio: Serán indicados en la clase práctica. 2

Quiénes somos, de dónde venimos, a dónde vamos? Carreras: Licenciatura en Ciencias de la Computación Ingeniería en Sistemas de Computación (ex de Software) Ingeniería en Computación (ex de Sistemas de Computación) Requisitos para cursar: Curso de ACP aprobado. Materias de programación: Resolución de problemas y algoritmos Introducción a la programación orientada a objetos Estructuras de datos Tecnologías de programación 3

Objetivos de la materia Desarrollar habilidades para resolver problemas mediante el uso de algoritmos, que serán especificados en un lenguaje de diseño, para luego codificarlos en una computadora en el lenguaje de programación Pascal. 4

Método general de RPA PROBLEMA El programador debe comprender el fenómeno que describe el problema a resolver. DISEÑO DE SOLUCIÓN Estudiaremos cómo procesar secuencias y realizar división de problemas para diseñar soluciones. ALGORITMO Especificaremos las soluciones como algoritmos en un lenguaje de diseño PROGRAMA Codificaremos los algoritmos en programas para una computadora. Usaremos el lenguaje Pascal. PRUEBA Una vez terminado un programa debe ser verificado para ver si contiene errores. Depuración es el término usado para eliminar errores de un programa. Probaremos los programas desarrollados con trazas 5

Hacia la noción de algoritmo: Conocimientos declarativo e imperativo Conocimiento declarativo: Afirmaciones de conocimiento, hechos. Ejemplo: Problema: Cálculo de las raíces de p(x) = 3x 2 5x - 100 Solución: Las raíces de p(x) son aquellos valores reales de x tales que p(x) = 0 Nota: Es una definición pero no nos ayuda a encontrar raíces. Lo más cercano que hace es decirnos cómo testear si un x propuesto es la raíz de p(x). 6

Hacia la noción de algoritmo: Conocimientos declarativo e imperativo Conocimiento imperativo: Es una descripción de cómo hacer algo. Ejemplo: Cálculo de las raíces p(x) = ax 2 + bx + c Paso 1: = b 2 4ac Paso 2: Si <0 entonces no hay raíces reales, terminar Paso 3: Si =0 entonces hay una única raíz real y su valor es b, terminar x = 2a Paso 4: Si >0 entonces hay dos raíces reales x 1 y x 2 y sus valores son: x 1 = b + 2a x 2 = b 2a 7

Algoritmo Un algoritmo es la especificación de una secuencia de pasos u operaciones, que cuando los ejecuta un autómata, produce el resultado esperado y termina luego de una cantidad finita de tiempo. Cada paso básico (llamado primitiva) debe estar definido sin ambigüedad, y las operaciones deben ser comprensibles por el autómata que las ejecutará. Debe haber un único punto de comienzo y al menos un punto final. 8

Ejemplos de algoritmos: Criba de Eratóstenes Dado n natural, para hallar todos los números primos menores o iguales a n, hacer: Paso 1: Enumerar todos los números naturales a partir de 2 hasta n Paso 2: Buscar el primer número de la enumeración y tachar todos sus múltiplos Paso 3: si el cuadrado del mayor número no tachado supera a n, terminamos y los números no tachados son los primos, sino ir al paso 2. 9

Ejemplos de algoritmos: Cambiar lamparita quemada del techo Ejercicio: Escribir el algoritmo para cambiar una lamparita quemada usando el repertorio de primitivas presentado. Se asume que la escalera está guardada en el quincho. Repertorio de instrucciones (primitivas) disponibles: Dar luz Buscar lamparita nueva Guardar la escalera en el quincho Sacar lamparita quemada Poner escalera debajo de lámpara Ir a buscar la escalera al quincho Tirar lamparita quemada Cortar la luz Subirse a la escalera Prender lamparita nueva Bajarse de la escalera Poner lamparita nueva 10

Especificación de algoritmos Problema: Escribir un algoritmo para cargar 7 litros de agua en un recipiente Repertorio de primitivas disponibles: Agregar 10 litros de agua Agregar 1 litro de agua Sacar 2 litros de agua El algoritmo encontrado es único? Hay pasos de más? Ejercicios: a) Cargar 11 litros. b) Cargar 15 litros. 11

Prueba de un algoritmo: Traza Una traza es una simulación de la ejecución real de los pasos en la cual se lleva un registro de los movimientos realizados. Nota: Una traza no exitosa muestra la existencia de errores. Nota: Una traza exitosa no garantiza la ausencia de errores. Ejercicio: Realicemos una traza de nuestra solución. 12

Algoritmos en la vida real: Cambiar rueda pinchada Repertorio de instrucciones (primitivas) disponibles: Poner rueda de auxilio Aflojar tuercas con la llave cruz Sacar tuercas con la mano Poner el crique bajo el auto Poner tuercas con la mano Ajustar tuercas con la llave cruz Levantar auto con el crique Bajar auto con el crique Poner el crique en el baúl Sacar rueda de auxilio del baúl Sacar el crique de abajo del auto Sacar rueda pinchada Poner rueda pinchada en el baúl Ejercicio: Escribir el algoritmo usando el repertorio presentado y realizar su traza. 13

Lenguaje de diseño Usaremos una notación llamada lenguaje de diseño o castellano estructurado o pseudocódigo, que permite modelar las estructuras de control de un lenguaje de programación imperativo pero haciendo énfasis en su lectura por un humano y no por una computadora. 14

Más construcciones Primitiva adicional: hay agua en el balde = testea si hay por lo menos un litro de agua en el balde Condicional: si hay agua en el balde entonces tirar 1 litro de agua Repetición contada: Repetir 5 veces tirar 1 litro de agua Repetición condicional: Repetir mientras hay agua en el balde tirar 1 litro de agua Ejercicio: Algoritmo para multiplicar n por m usando repetición contada 15

Definiciones Computadora: Una computadora es una máquina digital y sincrónica con capacidad de cómputo aritmético y lógico, con un programa almacenado. Tipos de computadora: Dedicada (embedded, empotrada) o de propósito general. Ejemplos: reloj digital, impresora, pc, celular. Programa: Conjunto de instrucciones ejecutables 16

Arquitectura de von Neumann ENIAC: En 1942 se construyó el ENIAC (Electrical Numerical Integrator and Calculator), una computadora para hacer cálculos balísticos en la Segunda Guerra Mundial. Arquitectura de von Neumann: En los 40 s John von Neumann (1903-1957) propuso una arquitectura para construir computadoras electrónicas de propósito general. 17

Estructura de una computadora (arquitectura de Von Neumann) Unidad central de procesamiento (CPU) Memoria (datos y programas) Entrada / Salida Bus de comunicaciones 18

Arquitectura de von Neumann Memoria: Se almacenan programas y datos Procesador: Capaz de interpretar los programas almacenados en la memoria y llevar a cabo las computaciones indicadas Controlador de entrada/salida: Controla la transmisión de los datos desde y hacia la memoria Periféricos: Permiten al sistema comunicarse con usuarios y otros sistemas. 19

Principios de máquina de von Neumann 1) Ejecución de instrucciones sin solución de continuidad: Ciclo de instrucción en la CPU: i) Fetch: recuperar la próxima instrucción i de memoria de instrucciones ii) Decode: Decodificar i iii) Execute: Ejecutar i (quizá modificando datos de la memoria de datos) 2) Asignación de memoria destructiva: El almacenamiento un dato en una posición de la memoria destruye el dato ubicado allí. 20

Primitiva de asignación En un algoritmo, para cambiar el valor de un dato se usa la primitiva de asignación: <nombre de dato> <expresión que da un valor> La flecha indica el orden de la evaluación: 1. Se evalúa la expresión, se obtiene un valor y luego 2. Se modifica el valor del dato a la izquierda de. El tipo del resultado de la expresión tiene que ser compatible con el tipo del dato (se verá más adelante) 21

Expresión: Definición Una expresión está formada por operadores y operandos (ejemplo: 2 + 4) Los operadores están definidos para un tipo específico de operando y para una cantidad predeterminada de operandos (aridad). Ejemplo: El operador + está definido para dos números. El operador está definido para un número y para dos números. Tipos de operadores: Numéricos: +, -, *, / (toman números y tienen un número por resultado) Lógicos: (en las próximas clases) Relacionales: (en las próximas clases) 22

Expresiones: Sintaxis Las reglas sintácticas indican cuándo una expresión está o no correctamente escrita. Ejercicio: Son correctas estas expresiones? 1. 4 + 5 2. 4 + 3. + 4 5 4. -4 5. 4 + 5 + 6 6. 6 + 4 + 5 7. 4 ++ 5 6 8. 4 * 5 + 6 9. 4 + 5 * 6 10. 4 / 5 + 6 23

Expresiones: Precedencia de operadores Los operadores toman los valores de los operandos y obtienen un nuevo valor que es el resultado final de la expresión, o es un resultado intermedio usado en la expresión por otro operador. Ejemplo: 5 + 2 * 3 2 en qué orden se evalúa? El orden en que se evalúa la expresión depende de la precedencia de los operadores. 5 + 2 * 3 2 = 9 Los paréntesis permiten cambiar el orden de evaluación: (5 + 2) * 3 2 = 19 (5 + 2) * (3 2) = 7 24

Introducción a Pascal PROBLEMA Calcule el área de un círculo de radio 2 SOLUCIÓN Usar la fórmula Pi por radio al cuadrado ALGORITMO PROGRAMA en algún lenguaje de programación (ej: Pascal) PRUEBA radio 2 área 3.1416 * radio * radio PROGRAM AreaCirculo; CONST pi = 3.1416; VAR area,radio: REAL; BEGIN radio := 2; area := pi radio radio; END. 25

Algunos elementos de un programa en Pascal Palabras reservadas (vocabulario) Primitiva de asignación Datos constantes PROGRAM AreaCirculo; CONST pi = 3.1416; VAR area,radio: REAL; BEGIN END. Datos variables radio := 2; Tipos de datos Símbolos y operadores area := pi radio radio;

Variables y constantes en Pascal Declaración de Variables (VAR) - Se define un nombre (identificador) - y un tipo de dato asociado - su valor es variable Ejemplo: VAR radio: REAL; - Se define un nombre (identificador) Declaración - y un valor fijo asociado de - Tienen implícitamente asociado un tipo Constantes de dato dado por el valor elegido (CONST) Ejemplo: CONST Pi = 3.1416 ; cant_de_meses = 12; Definición: Un Tipo de Dato define un conjunto de valores posibles que puede tomar una variable junto con un conjunto de operaciones. 27

Constantes y Variables en Pascal Para usar datos en Pascal, hay que declararlos : Declaración de constantes: se escribe la palabra reservada CONST, y el nombre y valor de cada constante. Ejemplos: CONST Pi = 3.1416; e = 2.718281828; Se separa una de otra con punto y coma (;) Declaración de variables: se escribe la palabra reservada VAR, y luego nombre y tipo de dato de cada variable. Ejemplos: VAR superficie : REAL ; precio1, precio2, precio3: REAL; Puedo declarar varias variables del mismo tipo, separándolas con coma 28

Primitiva de asignación en Pascal En Pascal (como en muchos otros lenguajes de programación) existe una primitiva llamada asignación para cambiar o dar valor a una variable. Su forma general es una sentencia: variable := expresión que da un valor 1) se evalúa la expresión, se obtiene un valor y luego 2) se modifica el valor de la variable a la izquierda del símbolo de asignación := El tipo del resultado de la expresión tiene que ser compatible con el tipo de la variable que se quiere modificar (esto se verá en detalle en otra clase). 29

Aplicación Problema: En la Universidad se ha construido un edificio de aulas nuevas. Se desea escribir un algoritmo que calcule cuántos litros de pintura se necesitan para pintar las paredes de un aula en particular. Las aulas son rectangulares y tienen diferente largo y ancho. Sin embargo, todas tienen la misma altura (2,60m) y dos puertas iguales de 1,60m x 2m. Aunque las ventanas son todas iguales (1m x 2m), cada aula tiene una cantidad diferente. La pintura viene en latas de 4 litros y cubre por litro 8m 2. Identifique la incógnita, los datos constantes y las variables. Divida el problema en partes Haga un ejemplo con valores particulares 30

Resolución y diseño inicial Datos constantes: alto = 2,60m; puerta = 3,20m 2 ; ventanas = 2m 2 ; cubrelitro = 8m 2 ; litroslata = 4 Datos variables: ancho, largo y cant_ventanas Incógnita: Cuántos litros? Diseño (dividido en subproblemas): Calcular la superficie total (con puertas, etc.) calcular superficie a no pintar (depende de la cantidad de ventanas) calcular superficie a pintar ( depende del ancho y largo, y de lo que no se pinta) calcular cuántos litros de pintura se necesitan. 31

Ejemplo particular (prueba) Datos constantes: alto = 2,60m; puerta = 3,20m 2 ; ventanas = 2m 2 ; cubrelitro = 8m 2 ; litroslata = 4 (Ejemplo) valores particulares para las variables: ancho = 5 largo = 10 y cant_ventanas = 2 Con estos valores: Total es 2*(ancho*alto) + 2*(largo*alto) = 2*(5*2,60) + 2*(10*2,60) = 26 + 52 = 78 a no pintar es 6,40 + 2*2 = 10,40 a pintar es 78 10,40=67,60 litros a usar 67,60 / 8 = 8,45 32

Algoritmo Pintar aula Datos constantes: alto = 2,60m; puerta = 3,20m 2 ; area_ventana = 2m 2 ; cubrelitro = 8m 2 ; Datos variables: ancho; largo y cant_ventanas Algoritmo general: no_pintar 2 * puerta + area_ventana * cant_ventanas a_pintar 2*(ancho * alto) + 2*(largo * alto) no_pintar cant_litros (a_pintar / cubrelitro) Ahora veremos como hacer un programa que resuelva el problema 33

Algoritmo de la pintura implementado en Pascal Datos constantes: alto = 2,60m; puerta = 3,20m 2 ; area_ventana = 2m 2 ; cubrelitro = 8m 2 ; Datos variables: ancho; largo (número real) y cant_ventanas (número entero) PROGRAM pintura_aula; CONST alto = 2.60; puerta = 3.20; area_ventana = 2; cubrelitro = 8; VAR ancho, largo : REAL; cant_ventanas : INTEGER; BEGIN.. AQUÍ VAN LAS SENTENCIAS END. 34

PROGRAM pintura_aula; CONST alto = 2.60; puerta = 3.20; area_ventana = 2; cubrelitro = 8; litroslata = 4; VAR ancho, largo, a_no_pintar, a_pintar : REAL; cant_litros : REAL; cant_ventanas : INTEGER; BEGIN ancho := 5; largo := 10; cant_ventanas := 2; a_no_pintar := 2 * puerta + area_ventana * cant_ventanas; a_pintar := 2*(ancho*alto) + 2*(largo*alto) a_no_pintar; cant_litros := a_pintar / cubrelitro; END. 35

Sobre las presentaciones en clase El objetivo de estas presentaciones es simplemente agilizar la clase y permitir al alumno concentrarse en el tema y no estar pendiente de copiar del pizarrón Estas presentaciones serán impresas y estarán disponibles para los alumnos. No reemplazan a la clase. Son sólo una guía dentro del desarrollo de la clase, y sin ella no son casi nada. No deben tomarse como libro o un apunte, y ni siquiera como un resumen de donde estudiar. Hay muchas cosas de la clase que no están aquí: y eso es lo que el alumno debe tomar nota. 36

Datos de contacto Página web: http://cs.uns.edu.ar/~sag Cómo contactarme: En clase: Lunes y Jueves Horario de consulta: viernes 14 hs en Hall del DCIC. Email: sag@cs.uns.edu.ar (sólo para avisos urgentes y de importancia). 37

Bibliografía Grogono, Peter. Programación en Pascal. Addison Wesley, 1986. (se puede pedir en la Fotocopiadora del Cecom) Polya, G., "Cómo plantear y resolver problemas". Ed. Trillas, México, 1970. Dromey, R. "How to solve it by computer". Prentice Hall, 1982. C.A.R. Hoare Series Editor. Para bibliografía adicional, ver el programa de la materia. 38

Sumario Algoritmo Método de solución de problemas de RPA Arquitectura de von Neumann Breve introducción a Pascal: Constantes y variables numéricas Primitiva de asignación Expresiones aritméticas 39