Upload
jesus-parrilla
View
5
Download
0
Embed Size (px)
Citation preview
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