Está en la página 1de 52

FUNDAMENTOS DE PROGRAMACIÓN

CAPITULO 2
CLASE 2

Procesamiento de Datos
Simples

Tema: Elementos de un Programa.


Programas Simples

Procesamiento de Datos Simples


1
INSTALANDO DRSCHEME

http://www.htdp.org

Procesamiento de Datos Simples


2
DRSCHEME

En este curso se
debe usar DrScheme
como editor y
ambiente de
desarrollo.

También se conoce
como “IDE”
Integrated
Development
Environment.

Procesamiento de Datos Simples


3
DRSCHEME - VENTANAS

Ventana de
Definiciones

Ventana de
Interacción

Procesamiento de Datos Simples


4
DRSCHEME – CAMBIAR IDIOMA

En el menú herramientas,
opción Help

Interactúa con
DrScheme
en Español

Pedirá que se reinicie la


Aplicación.

Procesamiento de Datos Simples


5
DRSCHEME – ELEGIR LENGUAJE

Para que DrScheme


pueda procesar
programas, se debe
seleccionar el nivel en el
que se van a escribir
dichos programas.

Existen varios niveles,


desde Principiante hasta
Experto.

Nosotros comenzaremos
con el nivel Principiante ☺

Procesamiento de Datos Simples


6
DRSCHEME – ELEGIR LENGUAJE II

Para elegir el Lenguaje,


es necesario ir a la opción
Lenguaje del Menú,
posteriormente, elegir la
opción Seleccionar
Lenguaje…

Allí, aparecerá una


ventana con todas las
opciones posibles.

Procesamiento de Datos Simples


7
DRSHEME – OPCIONES DE LENGUAJES

Procesamiento de Datos Simples


8
DRSCHEME - LENGUAJE: ESTUDIANTE PRINCIPIANTE

Procesamiento de Datos Simples


9
DRSCHEME - EJECUTAR DEFINICIONES

El Botón “Run”
carga las
definiciones
en la ventana de
Interacción.

Procesamiento de Datos Simples


10
DRSCHEME – GUARDAR DEFINICIONES

Procesamiento de Datos Simples


11
NÚMEROS Y FUNCIONES SENCILLAS EN SCHEME

• Scheme puede ejecutar una línea de


código tan pronto como es escrita en la
ventana de interacción.

Procesamiento de Datos Simples


12
EVALUACIÓN SENCILLA

Supongamos que queremos solucionar la


siguiente expresión:

3+4*5

Parece fácil, sin embargo, se puede dar más


de una interpretación, cuál?

Procesamiento de Datos Simples


13
EVALUACIÓN SENCILLA

Supongamos que queremos solucionar la


siguiente expresión:

3+4*5

Parece fácil, sin embargo, se puede dar más


de una interpretación, cuál?
35 ó 23

Procesamiento de Datos Simples


14
EVALUACIÓN SENCILLA

Se pueden presentar diferentes


interpretaciones al pensar que la expresión
se reduce a “7 * 5” o a “3 + 20”
dependiendo de que operación ocurre
primero, lo cual puede ocasionar errores.

Cómo se puede evitar este tipo de


errores?

Procesamiento de Datos Simples


15
EVALUACIÓN SENCILLA

Se pueden adicionar paréntesis para


delimitar parte de la expresión.

3 + (4 * 5)

Por medio de lo anterior, obtenemos total


claridad. Se aprecia que primero se debe
multiplicar 4 y 5, y con ese resultado
sumarle 3.

Procesamiento de Datos Simples


16
EVALUACIÓN SENCILLA

Adicionalmente, se pueden agregar


paréntesis para la expresión completa.

(3 + (4 * 5))

Lo anterior no cambia el significado.

Procesamiento de Datos Simples


17
EVALUACIÓN SENCILLA

La ubicación de los operadores respecto a


los operandos es arbitraria .

(1 + 2)

La anterior expresión se podría escribir de la


siguiente manera: (+ 1 2) ó (1 2 +)

Procesamiento de Datos Simples


18
NOTACIÓN PREFIJA

Scheme usa notación prefija, en esta


notación la invocación de la operación
ocurre primero, seguida por los datos
argumentos.
( <operación> <datos> )
Ejemplos:
Cuál de estás
(+ 2 2) expresiones
causaría
(* 3 1) problemas en un
calculadora?
(/10 0)
(* 7 (+ 4 5))
Procesamiento de Datos Simples
19
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
3. Dividir 3 entre 42
4. Sumar los cuadrados de 3 y 4
5. Multiplicar 3 por 5
6.Dividir 5 entre 100

Procesamiento de Datos Simples


20
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5 (- 5 3)
2. Substraer 10 de la cantidad 5 menos 8
3. Dividir 3 entre 42
4. Sumar los cuadrados de 3 y 4
5. Multiplicar 3 por 5
6.Dividir 5 entre 100

Procesamiento de Datos Simples


21
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
(- ( - 5 8) 10)
3. Dividir 3 entre 42
4. Sumar los cuadrados de 3 y 4
5. Multiplicar 3 por 5
6.Dividir 5 entre 100

Procesamiento de Datos Simples


22
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
Dividir 3 entre 42 (/ 3 42)
3. Sumar los cuadrados de 3 y 4
4. Multiplicar 3 por 5
5. Dividir 5 entre 100

Procesamiento de Datos Simples


23
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
Dividir 3 entre 42
3. Sumar los cuadrados de 3 y 4
(+ (* 3 3) (* 4 4))
4. Multiplicar 3 por 5
5. Dividir 5 entre 100
Procesamiento de Datos Simples
24
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
Dividir 3 entre 42
3. Sumar los cuadrados de 3 y 4
4. Multiplicar 3 por 5 (* 3 5)
5. Dividir 5 entre 100

Procesamiento de Datos Simples


25
NOTACIÓN PREFIJA - EJERCICIOS

Escriba las siguientes expresiones en


notación prefija:
1. Substraer 3 de 5
2. Substraer 10 de la cantidad 5 menos 8
Dividir 3 entre 42
3. Sumar los cuadrados de 3 y 4
4. Multiplicar 3 por 5
5. Dividir 5 entre 100 (/ 5 100)

Procesamiento de Datos Simples


26
NOTACIÓN PREFIJA – EJERCICIOS 2

Cambie a Notación Prefija:

• ((2 + 2)*4)
• ((100/5) + (50/20))
• ((40 * 8) – (7/2))
• ((2 *2) + (3 *3) + (4 * 4))
• (1000/100)

Procesamiento de Datos Simples


27
SCHEME - ELEMENTOS

Enteros: 4, -6, 0

Números Reales: 3.14159

Fraccionarios: 1/2, 4/3

Símbolos: x, y, foo, bar


(a menudo son usados para el nombre de un
parámetro, o un nombre de función, o una variable)

Procesamiento de Datos Simples


28
SCHEME - ELEMENTOS

Símbolos predefinidos. Hay alrededor de


100 símbolos predefinidos en Scheme,
incluyendo operadores aritméticos:

+ adición
- substracción
* multiplicación
/ división

Procesamiento de Datos Simples


29
PRIMER EJEMPLO

Supongamos que queremos usar la función


predefinida “sqrt”, la cual retorna la raíz
cuadrada de su parámetro.

Por ejemplo, se puede escribir lo siguiente


en Scheme: (sqrt 4)

Se aprecia que el estilo es diferente al que


usualmente usamos en matemáticas,
“sqrt(4)”
Procesamiento de Datos Simples
30
PRIMER EJEMPLO

Igualmente se puede escribir:


(sqrt (sqrt 4))

Sin embargo, el resultado que se aprecia es:


#i1.4142135623730951

A pesar de ser el valor correcto, Qué significa“#i”?

Esta es una forma de indicar aproximación por


parte de Scheme en un cálculo.

Procesamiento de Datos Simples


31
OPERACIONES MATEMÁTICAS

Se ofrecen numerosas funciones de uso común:

(sqrt A) √A
B

(expt A B) A

(remainder A B) Residuo de la división entera A/B

Ejemplo: (remainder 23 8) 7

(log A) -> logaritmo natural de A


(sin A) -> seno de A radianes

Procesamiento de Datos Simples


32
NUESTRAS PROPIAS FUNCIONES

Empecemos con la siguiente función:

f(x) = x * x

La función determina el cuadrado de un


número, ejemplo:

f(2) = 2 * 2 = 4
f(5) = 5 * 5 = 25

Procesamiento de Datos Simples


33
VOCABULARIO SOBRE FUNCIONES

‘liga’ o asocia
el cuerpo al
Nombre de nombre y
la función parámetros

f(x) = x * x
Parámetros Cuerpo de
de la función la función

Procesamiento de Datos Simples


34
FUNCIONES

f(x) = x * x
f(2) = 2 * 2
El cuerpo de la función es “aplicado a” 2

Procesamiento de Datos Simples


35
OBSERVACIONES

Predecible, reproducible. Cada vez que


se aplica a la función 2, se obtiene el mismo
resultado.

Nada cambia en los parámetros. Cada vez


que se llama f(2), no se modifica el valor del
parámetro. Es decir “La función no altera
nada en el mundo.”

Procesamiento de Datos Simples


36
OBSERVACIONES

Composición. Se pueden componer múltiples


funciones.

f(f(2))

El llamado interno, f(2), retorna 4, así que el


llamado externo, f(), recibe 4.

La expresión en su totalidad retorna 16:


f(f(2)) f(4) 16
Procesamiento de Datos Simples
37
FUNCIONES EN SCHEME

Consideremos nuevamente a: f(x) = x * x

Se empieza por asignar un nombre a la función


(define (cuadrado x)

Y se continúa adicionando el cuerpo


correspondiente.

(define (cuadrado x)
(* x x))

Procesamiento de Datos Simples


38
FUNCIONES EN SCHEME

Y finalmente, probando
> (cuadrado 3)
>9

>(cuadrado 2)
>4

>(cuadrado 4)
> 16

Procesamiento de Datos Simples


39
RECORDANDO A PITAGORAS

c
b

Procesamiento de Datos Simples


40
RECORDANDO A PITAGORAS

2 2 2
C=a+b
2
C = sqrt(a2+ b)
----------------- c
3
C=(sqrt (+ (* 3 3) (* 4 4)))
C=(sqrt (+ 9 16)) 4
C=(sqrt 25)
C=5

Se usa Notación Prefija en vez de Infija!!!

Procesamiento de Datos Simples


41
MUCHOS CÁLCULOS DE HIPOTENUSAS

c c
3
2
4 8

(sqrt (+ (* 3 3) (* 4 4))) (sqrt (+ (* 2 2) (* 8 8)))

Si requerimos trabajar con muchos triángulos, escribir la


misma expresión una y otra vez se convierte en una tarea
muy tediosa!!.

Procesamiento de Datos Simples


42
SOLUCIÓN

En matemáticas, reconocemos a las


funciones:
hipotenusa (a, b) = sqrt ( a*a + b*b )

Recuerde que "=" significa que el cuerpo


esta asociado a la función y sus parámetros.

En Scheme, se puede lograr esta asociación,


“definiendo” una función.
Procesamiento de Datos Simples
43
SOLUCIÓN

Scheme comienza así:


( define

En este punto, el Interprete de Scheme


espera el Nombre de la función que se
está definiendo.

Se usarán símbolos para el nombre de la


función. El nombre “hipotenusa” podría ser
el adecuado.
Procesamiento de Datos Simples
44
SOLUCIÓN

(define (hipotenusa lado1 lado2)

Nombre de Parámetros ó
la Función argumentos.

Hasta este momento, tenemos:

1. Un símbolo para el nombre de la funciones, y


2. Los nombres de los parámetros de la función.

El cuerpo de la función es:


(sqrt (+ (* lado1 lado1 ) (* lado2 lado2 )))

Procesamiento de Datos Simples


45
SOLUCIÓN

Finalmente, tenemos:

(define (hipotenusa lado1 lado2)


(sqrt (+ (* lado1 lado1 ) (* lado2 lado2 ))))

1. Nombre de la Función
2. Parámetros
3. Cuerpo de la Función

Procesamiento de Datos Simples


46
EL ESTILO SÍ IMPORTA!!!!

Aunque para el interprete no tenga relevancia el


estilo, como una buena práctica de programación,
nosotros siempre lo mantendremos!
Se mantendrá el mejor formato de la definición:
(define (hipotenusa lado1 lado2)
(sqrt (+
(* lado1 lado1)
(* lado2 lado2))))

Lo anterior es opuesto a:
(define (hipotenusa lado1 lado2) (sqrt (+ (* lado1 lado1) (* lado2 lado2))))

Procesamiento de Datos Simples


47
VARIABLES Y CONSTANTES

Muchas fórmulas usan variables:


2
Área del circulo: ∏r

Algunas constantes comunes como ∏ y e


tienen nombres predefinidos en Scheme.

pi y PI equivalen a 3.141592653589793
e es #i2.718281828459045

Procesamiento de Datos Simples


48
VARIABLES Y CONSTANTES

Otras constantes como velocidad_máxima


pueden definidas por Scheme:

(define velocidad_máxima 70)

Por lo general en los lenguajes de


programación no está permitido redefinir
constantes o funciones predefinidas.
Es legal (define pi 3.14)????

Procesamiento de Datos Simples


49
VARIABLES Y CONSTANTES

Podemos sustituir cualquier valor por las variables


en una expresión para determinar el resultado
actual. Área de un circulo de radio 5 es 25 ∏ = 78.5

Esta es la base de escribir una función con


variables.
(define (círculo_área radio)
(* pi (* radio radio)))

Posteriormente “llamamos” ó “ejecutamos” la


función, suministrando todos los valores necesarios
para las variables:
(círculo_área 10)

Procesamiento de Datos Simples


50
ERRORES EN SCHEME

Errores de Sintaxis
• Comparable a los errores gramaticales en los
lenguajes naturales.
• Scheme verifica que todo el código este
correctamente organizado de acuerdo a las reglas.

Errores en Tiempo de Ejecución


• Dividir por cero, por ejemplo.
• Número incorrecto de parámetros cuando se
intenta ejecutar la función. ( Error Semántico)

Procesamiento de Datos Simples


51
ERRORES EN SCHEME

Errores Lógicos
• La “gramática” es correcta, pero la solución no es
apropiada para el problema. Por ejemplo, se solicita
una función que determine el área de un cuadrado
y se realiza una función que determina la raíz
cuadrada.
(define (fred 1)
Ejemplos: (+ b 3)))
(* (7) 2)
(define (fred a)
(2 * 3) + a 3))
(/ * 3 4)
(/ 13 0) (define fred (a)
(+ a 3)))

Procesamiento de Datos Simples


52

También podría gustarte