Conceptos basicos

15
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

description

Programacon Pascal-Facultad de Ing. Udelar

Transcript of Conceptos basicos

Page 1: Conceptos basicos

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

Page 2: Conceptos basicos

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

Page 3: Conceptos basicos

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

Page 4: Conceptos basicos

• 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

Page 5: Conceptos basicos

• 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

Page 6: Conceptos basicos

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

Page 7: Conceptos basicos

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

Page 8: Conceptos basicos

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

Page 9: Conceptos basicos

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

Page 10: Conceptos basicos

• 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

Page 11: Conceptos basicos

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

Page 12: Conceptos basicos

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

Page 13: Conceptos basicos

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

Page 14: Conceptos basicos

• 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

Page 15: Conceptos basicos

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