Post on 17-Jan-2016
description
Componentes Básicos
Programación 1
August 14, 2014
Contents
1 Modelo de Computación 3
2 Organización de la Computadora 3
3 Unidad Central de Proceso 3
4 Compilación 4
5 Ejemplo de un programa pascal 4
6 Encabezado del programa 4
7 Identificadores en Pascal 5
8 Sintaxis de los identificadores 5
9 Sintaxis de identificadores (BNF) 5
10 Declaración de variables 6
11 Ejemplo Declaración de Variables 6
12 Sintaxis de la declaración de variables (BNF) 6
13 Sintaxis de la declaración de variables (Diagrama) 7
14 Parte algorítmica 7
1
15 Sintaxis de la parte algorítmica 7
16 Palabras reservadas 8
17 Mayúsculas y minúsculas 8
18 Comentarios 8
19 Instrucciones 9
20 Constantes 9
21 Asignación 9
22 El Concepto de Tipo 9
23 Clasificación 10
24 Tipos Elementales Predefinidos 10
25 El tipo integer 10
26 Expresiones aritméticas enteras 11
27 Ejemplos de expresiones enteras 11
28 El tipo real 11
29 Operadores aritméticos reales 11
30 Sobrecarga 12
31 Coerción 12
32 Coerción en asignaciones 12
33 Coerción. Ejemplos 13
34 Precedencia de operadores 13
2
35 Funciones aritméticas estándar (predefinidas) 13
36 El tipo boolean 13
37 El tipo char 14
38 Las funciones ord y chr 14
39 Ejemplos de asignaciones 14
1 Modelo de Computación
Vemos al computador como un procesador de datos.
+------------+| |
Entrada ===> | Computador | ===> Salida| |+------------+
2 Organización de la Computadora
• Dispositivos de entrada
– Teclado– Mouse
• Dispositivos de salida
– Terminal– Impresora
• Memoria: interna, externa.• Unidad Central de Proceso (UCP)
3 Unidad Central de Proceso
Unidad de Control:
• Carga instrucciones en memoria (programa)
3
• Ejecuta las instrucciones
Unidad Aritmética Lógica
• Ejecuta operaciones aritméticas y lógicas.
4 Compilación
Lenguajes de alto nivel: pascal, java, C, etc.
La computadora no “entiende” los lenguajes de alto nivel.
Un compilador es un programa que traduce a código de máquina:
+------------+Programa | | ProgramaPascal --->| Compilador | ---> Ejecutable(texto) | | (binario)
+------------+
5 Ejemplo de un programa pascal
1 program Triangulo;2 var3 altura,base,area: real;4 begin5
6 { ingresar datos }7 readLn(altura,base);8
9 { calcular area }10 area := base * altura / 2;11
12 { mostrar resultado }13 writeLn(area)14 end.
6 Encabezado del programa
El encabezado del programa tiene la siguiente forma:
4
• program identificador ;
• program es una palabra reservada de Pascal.
• identificador es un nombre que elige el programador.
7 Identificadores en Pascal
Sirven para dar nombre a los diferentes objetos que componen un programa:
• programa,• variables,• constantes,• tipos,• funciones,• procedimientos
8 Sintaxis de los identificadores
Diagrama sintáctico
Figure 1: Identificador
9 Sintaxis de identificadores (BNF)
BNF:
5
identificador = letra { letra | digito }
Lenguaje Natural:
Un identificador es una secuencia de caracteres alfanuméricos elprimero de los cuáles debe ser alfabético.
10 Declaración de variables
En el ejemplo:
varbase,altura,area: real;
El programa utilizará tres celdas de memoria que almacenan un número real(real es el tipo de las variables).
11 Ejemplo Declaración de Variables
En un caso más general:
varbase,altura,area : real;opcion : char;se_cumple : boolean;i,j : integer;carta : tipo_definido_por_programador;
El valor de una variable puede ser modificado en el transcurso del programa.
12 Sintaxis de la declaración de variables (BNF)
BNF:
declaracion_de_variables =[ ‘var’ declaracion_variable ‘;’{ declaracion_variable ‘;’ } ] .
declaracion_variable = identificador{ ’,’ identificador }’:’ indicador_de_tipo .
6
13 Sintaxis de la declaración de variables (Dia-grama)
Diagrama
Figure 2: decvar
14 Parte algorítmica
En el ejemplo:
begin{ ingresar datos }readLn(altura,base);{ calcular area }area := base * altura / 2;{ mostrar resultado }writeLn(area);
end.
Es una secuencia de instrucciones separadas por punto y coma.
15 Sintaxis de la parte algorítmica
cuerpo = ’begin’
7
instruccion{ ’;’ instruccion }’end’ .
Observación: El punto y coma es un separador y no finalizador de instrucción.
16 Palabras reservadas
Son palabras que Pascal utiliza con un significado especial.
No pueden ser utilizadas como identificadores.
Algunas palabras reservadas:
• var, program, begin, end, const, type.
17 Mayúsculas y minúsculas
Pascal no diferencia mayúsculas y minúsculas cuando se trata de identificadoresy palabras reservadas.
• begin = BEGIN = BeGiN
Se recomienda utilizar minúsculas en lo posible y sólo utilizar mayúsculas pararesaltar ciertos identificadores.
18 Comentarios
Los comentarios son ignorados por el compilador.
Hay dos formas:
• { bla, bla, ... }• (* bla, bla, ... *)
8
19 Instrucciones
En el ejemplo tenemos 3 tipos de instrucciones:
• Entrada: ReadLn• Asignación: area:= base * altura / 2• Salida: WriteLn
Se verán otras a lo largo del curso.
20 Constantes
Una constante es una celda de memoria que nunca cambia de valor.
Toda constante asociado un nombre, un tipo (implícito) y un valor.
constpi = 3.1416;iva = 22;separador = ’,’;saludo = ’hola gente’;
21 Asignación
Es una instrucción que permite modificar el contenido de una variable:
identificador := expresion
identificador representa la variable que va a ser asignada.
expresión representa el valor que se asigna a la variable.
Sus tipos deben ser compatibles.
22 El Concepto de Tipo
• Los tipos permiten indicar la característica de los valores (datos) manipu-lados en un programa.
• Toda variable o constante tiene asociado un tipo.
9
• Esto ocurre también con los operadores, las funciones estándar y lasdefinidas por el usuario.
• Poseer tipos permite detectar ciertos errores de construcción en el código(chequeo de tipos).Por ejemplo:
3 + 4 tiene tipo correcto (integer)3 + ‘a’ tiene error de tipo
• En Pascal el chequeo de tipos se hace en tiempo de compilación.
23 Clasificación
• Los tipos según su estructura:
– elementales: cada valor es simple e indivisible.– estructurados: cada valor está compuesto por varios valores.
• Otra clasificación:
– estándar o predefinidos– definidos por el programador
24 Tipos Elementales Predefinidos
integer Números enteros.real Números realesboolean El conjunto { true, false }char Los caracteres: letras, dígitos, símbolos, etc.
25 El tipo integer
Representa números enteros con o sin signo.Ejemplos: -32, 0, +123, 77.
Es un tipo acotado. El máximo es maxint.
10
26 Expresiones aritméticas enteras
Una expresión se construye mediante: constantes, variables, operadores y fun-ciones.
Operadores enteros
• Suma: +• Resta: -• Multiplicación: *• División: div• Módulo: mod.
27 Ejemplos de expresiones enteras
• a (variable)• resto (constante simbólica)• 198 (literal)• a * 2• (a + 123) div (resto - a * 2)
28 El tipo real
Representa números “reales”.
Las constantes se pueden representar en notación decimal o notación exponencial.
decimal exponencial
358.3 3.583E2
0.23 2.3e-1
29 Operadores aritméticos reales
operación símbolo
suma +
resta -
11
operación símbolo
multiplicación *
división /
30 Sobrecarga
El mismo símbolo es usado para denotar operaciones sobre tipos diferentes.
Por ejemplo, los símbolos +, - y * denotan la suma, resta y multiplicación tantode enteros como de reales, respectivamente.
31 Coerción
Argumentos que no son del tipo requerido por una función u operador sonconvertidos al tipo correcto.
Por ejemplo, es posible mezclar operandos de tipo entero y real en algunosoperadores aritméticos. La conversión es automática.
Ejemplos:
expresión conversión
3 + 2.5 3.0 + 2.53.0 * 2 3.0 * 2.05 / 2.6 5.0 / 2.6(5 + 2) / 2 7.0 / 2.0
32 Coerción en asignaciones
En una asignación x := e el tipo de la variable x y de la expresión e debe ser elmismo.
Excepción: Es posible asignar un valor entero a una variable real.
12
33 Coerción. Ejemplos
var x : Real;y : Integer;...
beginx := 4; (* equivalente x := 4.0 *)x := y;
y := 2.8 (* asignación inválida *)
end
La conversión de entero a real se realiza en forma automática.
34 Precedencia de operadores
Para la evaluación de expresiones aritméticas se debe seguir este orden:
1. Evaluar expresiones parentizadas
2. Aplicar operaciones de multiplicación y división (*, /, div, mod). Si hayvarias en secuencia, entonces evaluarlas de izquierda a derecha.
3. Aplicar operaciones de suma y resta (+, -). Si hay varias en secuencia,entonces evaluarlas de izquierda a derecha.
35 Funciones aritméticas estándar (predefinidas)
• sqr(x) - retorna el cuadrado de x.• sqrt(x) - retorna la raíz cuadrada de x.• trunc(x), round(x) - conversión de real a entero.• abs(x) - valor absoluto.
36 El tipo boolean
Constantes: true, false.
Operadores:
13
• and - conjunción• or - disyunción• not - negación
37 El tipo char
Cada valor del tipo char es un carácter simple.
Los literales se representan entre comillas simples.
• Letras mayúsculas y minúsculas: ’A’ ’B’ ’z’ ’h’• Dígitos: ’0’ ’1’ ’2’ ’3’• Símbolos: ’*’ ’@’ ’&’ ’ˆ’
38 Las funciones ord y chr
Los caracteres se representan internamente en la computadora con valores enteros.Es decir que a cada carácter le corresponde un entero.
• ord - toma un carácter y devuelve el entero correspondiente.• chr - toma un entero y devuelve el carácter que representa.
Ejemplos:
• ord(‘A’) es 65 y chr(65) es ‘A’• ord(‘B’) es 66 y chr(66) es ‘B’• ord(‘0’) es 48 y chr(48) es ‘0’• ord(‘1’) es 49 y chr(49) es ‘1’
La función ord se puede aplicar a todos los tipos ordinales (más adelante severá)
39 Ejemplos de asignaciones
vari,k : integer;x,y : real;bb : boolean;
14
car : char;...
begin...i:= 4;x:= 2.3;y:= 1; (* conversión implícita *)k:= trunc(x); (* conversión explícita *)y:= (y + sqr(x)) / 2;x:= i + k;bb:= true;bb:= (y < x) or (3 >= k + sqrt(i));
...
15