Beruflich Dokumente
Kultur Dokumente
Programacin 1
Tabla de contenidos Introduccin a la Computacin Modelo de Computacin Organizacin de la Computadora Unidad Central de Proceso Compilacin Programacin en Pascal Ejemplo de un programa pascal Encabezado del programa Identificadores en Pascal Sintaxis de los identificadores Declaracin de variables Sintaxis de la declaracin de variables Parte algortmica Sintaxis de la parte algortmica Palabras reservadas Maysculas y minsculas Comentarios Instrucciones Constantes Asignacin Tipos en Pascal El Concepto de Tipo Clasificacin Tipos Elementales Predefinidos El tipo integer Expresiones aritmticas enteras Ejemplos de expresiones enteras El tipo real Operadores aritmticos reales Sobrecarga Coercin Coercin en asignaciones Precedencia de operadores Funciones aritmticas estndar (predefinidas) El tipo boolean El tipo char Las funciones ord y chr Ejemplos de asignaciones
Introduccin a la Computacin
Modelo de Computacin
Vemos al computador como un procesador de datos.
+------------+ | | Entrada ===> | Computador | ===> Salida | | +------------+
Organizacin de la Computadora
Dispositivos de entrada Teclado Mouse Dispositivos de salida Terminal Impresora Memoria: interna, externa. Unidad Central de Proceso (UCP)
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:
Programa Pascal (texto) +------------+ | | --->| Compilador | ---> | | Programa Ejecutable (binario)
+------------+
Programacin en Pascal
Ejemplo de un programa pascal
program Triangulo; var altura,base,area: real; begin { ingresar datos } readLn(altura,base); { calcular area } area := base * altura / 2; { mostrar resultado } writeLn(area); end.
Identificadores en Pascal
Sirven para dar nombre a los diferentes objetos que componen un programa: programa, variables, constantes, tipos, funciones, procedimientos
BNF:
identificador = letra { letra | digito }
Lenguaje Natural: Un identificador es una secuencia de caracteres alfanumricos el primero de los cules debe ser alfabtico.
Declaracin de variables
En el ejemplo:
El programa utilizar tres celdas de memoria que almacenan un nmero real (real es el tipo de las variables). En un caso ms general:
var base,altura,area opcion se_cumple i,j: carta : : : : : real; char; boolean; integer; tipo_definido_por_programador;
Diagrama
Parte algortmica
En el ejemplo:
begin { ingresar datos } readLn(altura,base); { calcular area } area := base * altura / 2; { mostrar resultado } writeLn(area); end.
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.
Maysculas y minsculas
Pascal no diferencia maysculas y minsculas cuando se trata de identificadores y palabras reservadas.
begin
= BEGIN = BeGiN
Se recomienda utilizar minsculas en lo posible y slo utilizar maysculas para resaltar ciertos identificadores.
Comentarios
Los comentarios son ignorados por el compilador. Hay dos formas:
{ bla, bla, ... }
Instrucciones
En el ejemplo tenemos 3 tipos de instrucciones: Entrada: ReadLn Asignacin: area:= base * altura / 2 Salida: WriteLn Se vern otras a lo largo del curso.
Constantes
Una constante es una celda de memoria que nunca cambia de valor. Toda constante asociado un nombre, un tipo (implcito) y un valor.
= = = =
Asignacin
Es una instruccin que permite modificar el contenido de una variable:
<identificador> := <expresin>
identificador representa la variable que va a ser asignada. expresin representa el valor que se asigna a la variable. Sus tipos deben ser compatibles.
Tipos en Pascal
El Concepto de Tipo
Los tipos permiten indicar la caracterstica de los valores (datos) manipulados en un programa. Toda variable o constante tiene asociado un tipo. Esto ocurre tambin con los operadores, las funciones estndar y las definidas por el usuario.
Poseer tipos permite detectar ciertos errores de construccin en el cdigo (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 compilacin.
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
- Nmeros enteros.
boolean char
El tipo integer
Representa nmeros enteros con o sin signo. Ejemplos: -32, 0, +123, 77. Es un tipo acotado. El mximo es maxint.
resto 198
(literal)
El tipo real
Representa nmeros "reales". Las constantes se pueden representar en notacin decimal o notacin exponencial . decimal exponencial
358.3 0.23 3.583E3 2.3e-1
Sobrecarga
El mismo smbolo es usado para denotar operaciones sobre tipos diferentes. Por ejemplo, los smbolos +, - y * denotan la suma, resta y multiplicacin tanto de enteros como de reales, respectivamente.
Coercin
Argumentos que no son del tipo requerido por una funcin u operador son convertidos al tipo correcto. Por ejemplo, es posible mezclar operandos de tipo entero y real en algunos
Por ejemplo, es posible mezclar operandos de tipo entero y real en algunos operadores aritmticos. La conversin es automtica. Ejemplos: expresin conversin 3 + 2.5 3.0 * 2 5 / 2.6 (5 + 2) / 2 3.0 + 2.5 3.0 * 2.0 5.0 / 2.6 7.0 / 2.0
Coercin en asignaciones
En una asignacin x := e el tipo de la variable x y de la expresin e debe ser el mismo. Excepcin: Es posible asignar un valor entero a una variable real. Ejemplo:
var x : Real; y : Integer; ... begin x := 4; x := y; y := 2.8 end (* equivalente x := 4.0 *) (* asignacin invlida *)
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 hay varias 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.
sqr(x)
sqrt(x)
- valor absoluto.
El tipo boolean
Constantes: true, false. Operadores:
and or
- conjuncin
- disyuncin - negacin
not
El tipo char
Cada valor del tipo char es un carcter simple. Los literales se representan entre comillas simples. Letras maysculas y minsculas: 'A' 'B' 'z' 'h' Dgitos: '0' '1' '2' '3' Smbolos: '*' '@' '&' '^'
- toma un carcter y devuelve el entero correspondiente. - toma un entero y devuelve el carcter que representa.
Ejemplos:
ord('A') es 65 y chr(65) es 'A'
La funcin ord se puede aplicar a todos los tipos ordinales (ms adelante se ver)
Ejemplos de asignaciones
var i,k : integer; x,y : real; bb : boolean; car : char; ... begin ... i:= 4; x:= 2.3; y:= 1; k:= trunc(x); y:= (y + sqr(x)) / 2; (* conversin implcita *) (* conversin explcita *)