Facultad Ingeniería Departamento de Sistemas e Industrial Módulo 2 Constructores Básicos Parte A...

Post on 07-Feb-2015

4 views 0 download

Transcript of Facultad Ingeniería Departamento de Sistemas e Industrial Módulo 2 Constructores Básicos Parte A...

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

rogramación rogramación dedeomputadoreomputadoress

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Algoritmos: Constructores

Básicos

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

CONTENIDO1. Estructura de un algoritmo

2. Los datos en programación

3. Instrucciones sobre variables

4. Estructuras de control

5. Codificación de algoritmos en C++

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

ESTRUCTURA DE UN ALGORITMO

Los elementos fundamentales:

Datos. Instrucciones. Estructuras de control.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Concepto de Dato

Pieza de información simple

un número un código un hecho una edad

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte ATipo de Dato

Un conjunto es una colección ‘bien definida’ de elementos (objetos).

Las vocales

Los dígitos

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte ATipo de Dato

Todo conjunto debe tener un nombre. Z y entero R y real ASCII y caracter Booleano Cadena

Libros

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Tipo de Dato

El nombre del conjunto al que pertenece el dato constituye el tipo del mismo.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en programación Entero

son representados utilizando 2, 4 u 8 bytes.

2 bytes: rango(0 - 65536) enteros sin signo. rango(-32767 - 32768) enteros con signo.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en Programación•Reales: son representados utilizando dos esquemas:

–Punto Flotante: Real representado como un entero y un byte adicional que indica la posición del punto.–Punto Fijo: Real representado por dos enteros, una mantisa y un exponente.

12345.6789 es representado como:Mantisa = 123456789 Exponente =5pues 0.123456789*105= 12345.6789

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en Programación•Caracteres: representados en codificación ASCII, se asigna a cada carácter un valor numérico representado por un byte.

Ejemplo: el carácter ´A´ mayúscula es representado por el byte 01000001 (65 en decimal), la letra ´B´ mayúscula por el byte 66 en decimal y así sucesivamente.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en Programación Existe un código ASCII para cada carácter representable (lista utilizada en los Laboratorios), algunos ejemplos:Espacio

32 ;59 048 *42 149 a97 957

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en Programación Cadenas: secuencia de letras, números u

otros caracteres que se escriben dentro de comillas dobles.

Ejemplo: “Estoy en clase de programación”

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Booleanos : sólo pueden tomar valor falso o verdadero.

Datos en Programación

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Datos en Programación Distinciones importantes:

REAL2.0

ENTERO2

CARACTER‘X’

CADENA“X”

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AVariables

Variable : es un símbolo que permite referenciar (señalar o demarcar) un espacio en memoria en el que se puede almacenar un dato.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Nombre Tipo Estado o Valor

MEMORIA

nombre Pablito Pérezcadenasuma entero 168

Variables

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AVariables

Declaración de una variable

<variable> : <tipo>

x : real contador : entero

Ejemplos

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AVariables

El valor de una variable puede cambiar en el tiempo.

tiempo identificador valorantes saldo 500000

despues saldo 100000

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte ALiterales

Secuencia de caracteres que representa un valor concreto.

Tipos : entero: 12345, –138 real: 3465.98, –3.987 caracter: ‘a’, ‘3’ cadena: “pepito va al colegio” booleano: falso o verdadero

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AConstantes

Constante: es un símbolo que permite referenciar un espacio en memoria en el que hay un dato almacenado que NO se puede cambiar.

ayer PI 3.1416hoy PI 3.1416

MEMORIA

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AConstantes

Declaración de una constante

<nombre> = <literal>

PI = 3.1416 TAMANO_MAXIMO = 1000 MENSAJE = “Digite los datos”

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AExpresiones

Expresión: es una serie de términos (constantes, literales, variables y funciones) posiblemente agrupados mediante paréntesis y conectados mediante operadores (aritméticos como +, - y lógicos como , ), que representan un cálculo matemático.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Evaluación de expresionesEs el proceso que permite

determinar el valor de la expresión, es decir, el resultado del cálculo. Según el tipo del resultado, las expresiones se clasifican en:

Expresiones numéricas

Expresiones lógicas

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Precedencia de Operadores Orden en el que se deben llevar

a cabo las operaciones para evitar ambigüedad

3+4*5 3 +(4*5)(3+4)*5

Se debe evaluar primero el operador con mayor precedencia.

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Precedencia de OperadoresPRECEDENCIA OPERADORES

1 Paréntesis

2 - (signo menos)

3 *, / ,mod ( %)

4 (+,-)suma y resta

5 >, <, >=, <=, <>

6 ~ (Negación)

7 (Conjunción)

8 (Disyunción)

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Evaluación expresiones numéricas

(a + 5 ) * ( y+ abs (x) ) MEMORIA

a

x

5

y 8

-1

(5 + 5 ) * ( 8 + abs (-1) )

(5 + 5 ) * ( 8 + 1 )

10 * 9

90

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Expresiones lógicas

P Q ~P ~Q P Q P V Q

V V F F V V

V F F V F V

F V V F F V

F F V V F F

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Evaluación expresiones lógicas

( a + 5 < 4 ) ( b = 3 )

MEMORIA

4 a b 3

F

( 4 + 5 < 4 ) ( 3 = 3 )

( 9 < 4 ) ( 3 = 3 )

F V

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Ejemplo

-3 * a + b * c

(-3) * 5 + 3 * 9

-15 + 27

12

MEMORIA

5

a b

c 3 9

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES SOBRE VARIABLES Operaciones para modificar

variables Asignación Lectura (entrada).

Operación para mostrar el valor de las variables Escritura (salida).

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte AINSTRUCCIONES

ASIGNACIÓN Estructura

<variable> = <valor>

Nombre Operador de Asignación

ConstanteVariable oExpresión

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

ASIGNACIÓN

Representación en diagrama de flujo

variable = expresión

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLOS DE ASIGNACIÓN

Asignar un valor a las variables a y b

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLOS DE ASIGNACIÓN

a: entero

b: entero

a = 5

b = a

MEMORIA

a b

5 5

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES DE ENTRADA LECTURA

leer (variable)

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES DE ENTRADA

variable(s)

• Representación en diagrama de flujo

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Programa Teclado Memoria

XXX

a 125

a

INSTRUCCIONES DE ENTRADA

a

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES DE SALIDA ESCRITURA

escribir (variable)

150

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES DE SALIDA Representación en diagrama de flujo

Variable(s)

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

INSTRUCCIONES DE SALIDA

Pantalla

Programa

Memoria

a 125125 a

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

ESTRUCTURAS DE CONTROL Constructores que determinan el

flujo del programa

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

TIPOS DE ESTRUCTURAS

Secuencia Selección

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Diagrama de Flujo

SECUENCIA

Pseudo código

a: entero leer (a) a = a*a escribir (a)

a = a*a

a

a

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

Hallar el cuadrado de un número previamente leído

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

a, b: entero

leer (a)

b = a*a

escribir (b)

Memoria

XX

a b

1

2

3

100XX10100

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

SELECCIÓN

SiNo

Tengo un buen trabajo ?????

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

SELECCIÓN

si < condición > entonces< bloque instrucciones 1>

sino < bloque instrucciones 2>

fin_si

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Diagrama de Flujo

SELECCIÓN

Pseudo código si x > 0 entonces y = 0sino y = 1fin_si

x>0

y =1y = 0

NO

SI

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

Hallar el cuadrado o la suma de un número previamente leído,

según la condición

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

Memoria

XXX a b

XXX

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

40

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

80

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

leer (a)si a >0 entonces sino fin_siescribir (b)

80

a, b: entero

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

Memoria

XXX a b

XXX

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

-10

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

100

leer (a)si a >0 entonces b = a+a sino b = a*afin_siescribir (b)

leer (a)si a >0 entonces sino fin_siescribir (b)

100

a, b: entero

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

Dados tres números enteros, calcular el máximo

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

a b c

mayor

XXX XXX XXX

XXX

EJEMPLO (a)a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor := asino si b>=a & b>=c entonces mayor := b sino mayor := c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

Memoria

25 10

10

maximo

10

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a, b, c : entero mayor: enteroleer (a) leer (b)leer (c)si a>=b & a>=c entonces mayor = asino si b>=a & b>=c entonces mayor = b sino mayor = c fin_sifin_siescribir (“maximo”)escribir (mayor)

a b c

mayor

XXX XXX XXX

XXX

EJEMPLO (b)

Memoria

92 4

9

maximo9

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

SELECCIÓN MÚLTIPLEseleccionar <opcion> hacer caso <constante 1>:

<bloque_intrucciones 1> . . . caso <constante n>:

<bloque_intrucciones n> otrocaso:

<bloque_intrucciones>fin_seleccionar

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

EJEMPLO

Selección de una transacciónen un cajero automático

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

opcion

XXX

EJEMPLO (a)

opcion: enteroleer (opcion)seleccionar opcion de caso1: escribir (“Consignación”) caso2: escribir (“Retiro”) caso3: escribir (“Pago de Servicios”) caso4: escribir (“Cambio de Clave”) caso5: escribir (“Terminar”) otrocaso: escribir (“Terminar”)

fin_seleccionar

4Cambio de Cambio de ClaveClave

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

opcion

XXX

EJEMPLO (b)

opcion: enteroleer (opcion)seleccionar opcion de caso1: escribir (“Consignación”) caso2: escribir (“Retiro”) caso3: escribir (“Pago de Servicios”) caso4: escribir (“Cambio de Clave”) caso5: escribir (“Salir”) otrocaso: escribir(“Salir”)

fin_seleccionar

5SalirSalir

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

SEUDOCODIGO C++

Def. Variables x : tipo tipo x;

Def. Constante PI = 3.1415926 PI = 3.1415926

Asignación = =

Oper. Aritméticos

Suma + +

Resta - -

Multiplicación * *

División / /

Módulo mod %

CODIFICACIÓN DE ALGORITMOS EN C++

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Lectura leer (a) cin >>a;

Impresión escribir(a) cout << a;

Cambio de línea cambio_linea “\n”

Cad. Caracteres “cadena” "cadena"

Selección si (condición) entonces bloque_instrucciones1sino bloque_instrucciones2fin_si

if (condición) { bloque_instrucciones1;} else { bloque_instrucciones2 ;}

CODIFICACIÓN DE ALGORITMOS EN C++

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Selección Múltiple

Seleccionar(variable) de caso constante 1: bloque_instrucciones_1 . . . caso constante n: bloque_instrucciones_n

otro caso: bloque instruccionesfin_seleccionar

switch(opción){ case constante_1: { bloque_instrucciones_1; break; } . . case constante_n: { ..bloque_instrucciones_n; break; } default: { bloque_instrucciones; break; }}

CODIFICACIÓN DE ALGORITMOS EN C++

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

Comentarios /*comentario*/ /*comentario*/

Operadores Lógicos

negación ~ !

y lógico &&

o lógico ||

Oper. Relacionales

Menor que < <

Mayor que > >

Igual a = ==

Menor o igual que <= <=

Mayor o igual que >= >=

Diferente a <> !=

CODIFICACIÓN DE ALGORITMOS EN C++

Facultad Ingeniería Departamento de Sistemas e Industrial

Módulo 2Constructores Básicos Parte A

FIN

Gracias por la atención prestada