clase1_print.pdf

14

Click here to load reader

Transcript of clase1_print.pdf

  • 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