Post on 05-Nov-2015
Componentes Bsicos
Programacin 1 (InCo-FING)
2013
Contents
1 Modelo de Computacin 3
2 Organizacin de la Computadora 3
3 Unidad Central de Proceso 3
4 Compilacin 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 Declaracin de variables 6
11 Ejemplo Declaracin de Variables 6
12 Sintaxis de la declaracin de variables (BNF) 6
13 Sintaxis de la declaracin de variables (Diagrama) 7
14 Parte algortmica 7
1
15 Sintaxis de la parte algortmica 7
16 Palabras reservadas 8
17 Maysculas y minsculas 8
18 Comentarios 8
19 Instrucciones 8
20 Constantes 9
21 Asignacin 9
22 El Concepto de Tipo 9
23 Clasificacin 10
24 Tipos Elementales Predefinidos 10
25 El tipo integer 10
26 Expresiones aritmticas enteras 10
27 Ejemplos de expresiones enteras 11
28 El tipo real 11
29 Operadores aritmticos reales 11
30 Sobrecarga 12
31 Coercin 12
32 Coercin en asignaciones 12
33 Coercin. Ejemplos 12
34 Precedencia de operadores 13
2
35 Funciones aritmticas estndar (predefinidas) 13
36 El tipo boolean 13
37 El tipo char 13
38 Las funciones ord y chr 14
39 Ejemplos de asignaciones 14
1 Modelo de Computacin
Vemos al computador como un procesador de datos.
+------------+| |
Entrada ===> | Computador | ===> Salida| |+------------+
2 Organizacin 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 Aritmtica Lgica
Ejecuta operaciones aritmticas y lgicas.
4 Compilacin
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 cdigo de mquina:
+------------Q+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 sintctico
9 Sintaxis de identificadores (BNF)
BNF:
5
identificador = letra { letra | digito }
Lenguaje Natural:
Un identificador es una secuencia de caracteres alfanumricos elprimero de los cules debe ser alfabtico.
10 Declaracin de variables
En el ejemplo:
varbase,altura,area: real;
El programa utilizar tres celdas de memoria que almacenan un nmero real(real es el tipo de las variables).
11 Ejemplo Declaracin de Variables
En un caso ms 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 declaracin de variables (BNF)
BNF:
declaracion_de_variables =[ `var' declaracion_variable `;'{ declaracion_variable `;' } ] .
declaracion_variable = identificador{ ',' identificador }':' indicador_de_tipo .
6
13 Sintaxis de la declaracin de variables (Dia-grama)
Diagrama
14 Parte algortmica
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 algortmica
cuerpo = 'begin'instruccion
7
{ ';' instruccion }'end' .
Observacin: El punto y coma es un separador y no finalizador de instruccin.
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 Maysculas y minsculas
Pascal no diferencia maysculas y minsculas cuando se trata de identificadoresy palabras reservadas.
begin = BEGIN = BeGiN
Se recomienda utilizar minsculas en lo posible y slo utilizar maysculas pararesaltar ciertos identificadores.
18 Comentarios
Los comentarios son ignorados por el compilador.
Hay dos formas:
{ bla, bla, ... } (* bla, bla, ... *)
19 Instrucciones
En el ejemplo tenemos 3 tipos de instrucciones:
Entrada: ReadLn
8
Asignacin: area:= base * altura / 2 Salida: WriteLn
Se vern 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 (implcito) y un valor.
constpi = 3.1416;iva = 23;separador = ',';saludo = 'hola gente';
21 Asignacin
Es una instruccin que permite modificar el contenido de una variable:
identificador := expresion
identificador representa la variable que va a ser asignada.
expresin representa el valor que se asigna a la variable.
Sus tipos deben ser compatibles.
22 El Concepto de Tipo Los tipos permiten indicar la caracterstica de los valores (datos) manipu-
lados en un programa.
Toda variable o constante tiene asociado un tipo.
Esto ocurre tambin con los operadores, las funciones estndar y lasdefinidas por el usuario.
Poseer tipos permite detectar ciertos errores de construccin en el cdigo(chequeo de tipos).Por ejemplo:
9
3 + 4 tiene tipo correcto (integer)
3 + a tiene error de tipo
En Pascal el chequeo de tipos se hace en tiempo de compilacin.
23 Clasificacin
Los tipos segn su estructura:
elementales: cada valor es simple e indivisible. estructurados: cada valor est compuesto por varios valores.
Otra clasificacin:
estndar o predefinidos definidos por el programador
24 Tipos Elementales Predefinidos
integer Nmeros enteros.
real Nmeros reales
boolean El conjunto { true, false }
char Los caracteres: letras, dgitos, smbolos, etc.
25 El tipo integer
Representa nmeros enteros con o sin signo.Ejemplos: -32, 0, +123, 77.
Es un tipo acotado. El mximo es maxint.
26 Expresiones aritmticas enteras
Una expresin se construye mediante: constantes, variables, operadores y fun-ciones.
10
Operadores enteros
Suma: + Resta: - Multiplicacin: * Divisin: div Mdulo: mod.
27 Ejemplos de expresiones enteras a (variable) resto (constante simblica) 198 (literal) a * 2 (a + 123) div (resto - a * 2)
28 El tipo real
Representa nmeros reales.
Las constantes se pueden representar en notacin decimal o notacin exponencial.
decimal exponencial
358.3 3.583E3
0.23 2.3e-1
29 Operadores aritmticos reales
operacin smbolo
suma +
resta -
multiplicacin *
divisin /
11
30 Sobrecarga
El mismo smbolo es usado para denotar operaciones sobre tipos diferentes.
Por ejemplo, los smbolos +, - y * denotan la suma, resta y multiplicacin tantode enteros como de reales, respectivamente.
31 Coercin
Argumentos que no son del tipo requerido por una funcin u operador sonconvertidos al tipo correcto.
Por ejemplo, es posible mezclar operandos de tipo entero y real en algunosoperadores aritmticos. La conversin es automtica.
Ejemplos:
expresin conversin
3 + 2.5 3.0 + 2.5
3.0 * 2 3.0 * 2.0
5 / 2.6 5.0 / 2.6
(5 + 2) / 2 7.0 / 2.0
32 Coercin en asignaciones
En una asignacin x := e el tipo de la variable x y de la expresin e debe ser elmismo.
Excepcin: Es posible asignar un valor entero a una variable real.
33 Coercin. Ejemplos
var x : Real;y : Integer;...
beginx := 4; (* equivalente x := 4.0 *)x := y;
12
y := 2.8 (* asignacin invlida *)
end
La conversin de entero a real se realiza en forma automtica.
34 Precedencia de operadores
Para la evaluacin de expresiones aritmticas se debe seguir este orden:
1. Evaluar expresiones parentizadas
2. Aplicar operaciones de multiplicacin y divisin (*, /, 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 aritmticas estndar (predefinidas) sqr(x) - retorna el cuadrado de x. sqrt(x) - retorna la raz cuadrada de x. trunc(x), round(x) - conversin de real a entero. abs(x) - valor absoluto.
36 El tipo boolean
Constantes: true, false.
Operadores:
and - conjuncin or - disyuncin not - negacin
37 El tipo char
Cada valor del tipo char es un carcter simple.
Los literales se representan entre comillas simples.
13
Letras maysculas y minsculas: A B z h Dgitos: 0 1 2 3 Smbolos: * @ &
38 Las funciones ord y chr
Los caracteres se representan internamente en la computadora con valores enteros.Es decir que a cada carcter le corresponde un entero.
ord - toma un carcter y devuelve el entero correspondiente. chr - toma un entero y devuelve el carcter 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 funcin ord se puede aplicar a todos los tipos ordinales (ms adelante sever)
39 Ejemplos de asignaciones
vari,k : integer;x,y : real;bb : boolean;car : char;...
begin...i:= 4;x:= 2.3;y:= 1; (* conversin implcita *)k:= trunc(x); (* conversin explcita *)y:= (y + sqr(x)) / 2;x:= i + k;bb:= true;bb:= (y < x) or (3 >= k + sqrt(i));
...
14
Modelo de ComputacinOrganizacin de la ComputadoraUnidad Central de ProcesoCompilacinEjemplo de un programa pascalEncabezado del programaIdentificadores en PascalSintaxis de los identificadoresSintaxis de identificadores (BNF)Declaracin de variablesEjemplo Declaracin de VariablesSintaxis de la declaracin de variables (BNF)Sintaxis de la declaracin de variables (Diagrama)Parte algortmicaSintaxis de la parte algortmicaPalabras reservadasMaysculas y minsculasComentariosInstruccionesConstantesAsignacinEl Concepto de TipoClasificacinTipos Elementales PredefinidosEl tipo integerExpresiones aritmticas enterasEjemplos de expresiones enterasEl tipo realOperadores aritmticos realesSobrecargaCoercinCoercin en asignacionesCoercin. EjemplosPrecedencia de operadoresFunciones aritmticas estndar (predefinidas)El tipo booleanEl tipo charLas funciones ord y chrEjemplos de asignaciones