Top Banner
Profesores PHM/DCP Pontificia Universidad Católica de Valparaíso Facultad de Ingeniería Escuela de Ingeniería Informática “Algoritmos: Definiciones, Estructuras de Control” Asignatura INF 140 – Informática I Profesores Pamela Hermosilla Monckton Daniel Cabrera Paniagua Profesores PHM/DCP Tipos de Datos El principal objetivo de todo computador es el manejo de información o datos. Un dato es la expresión general que describe los elementos con los cuales opera un computador. Existen dos clases de tipos de datos: simples (sin estructura) y compuestos (estructurados) Los tipo de datos simples son los siguientes: Numéricos (entero, real) Lógicos (booleano) Carácter (char, string) Datos Carácter(es) Lógico Numérico Real Entero Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática INF 140 – Informática I Profesores PHM/DCP Elementos Básicos : Constantes, Variables, Identificadores y Expresiones Elemento o partida de datos cuyo valor no cambia durante el desarrollo del algoritmo (o ejecución del programa). Posición de memoria, referenciada por un identificador, que almacena un dato que permanece sin cambios durante el algoritmo (o ejecución del programa). Pueden ser de tipo: entera, real, caracter o lógica. Constante Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática INF 140 – Informática I Profesores PHM/DCP Variable Elemento o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo (o ejecución del programa). Posición de memoria, referenciada por un identificador, donde se almacena un dato que puede cambiar durante el algoritmo (o ejecución del programa). Pueden ser de tipo: entero, real, carácter o lógica. Una variable definida de un cierto tipo sólo puede tomar valores de ese tipo. Una variable posee los siguientes atributos : 1. Identificador (asignado por el programador). 2. Tipo (describe su uso). Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Informática INF 140 – Informática I
17

[Inf 140] Estructuras Repetitivas Y Selectivas (4 X Hoja)

Jul 03, 2015

Download

Business

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Facultad de Ingeniería

Escuela de Ingeniería Informática

“Algoritmos: Definiciones, Estructuras de

Control”

Asignatura

INF 140 –Inform

ática I

Profesores

Pamela Herm

osilla Monckton

Daniel Cabrera Paniagua

Profesores

PHM/DCP

Tipos de Datos

El principal objetivo de todo computador es el m

anejo de inform

ación o datos.

Un datoes la expresión general que describe los elementos con los cuales

opera un computador.

Existen dos clases de tipos de datos: simples (sin estructura)

y compuestos (estructurados)

Los tipo de datos simples son los siguientes:

Numéricos(entero, real)

Lógicos(booleano)

Carácter

(char, string)

Datos

Carácter(es)

Lógico

Numérico

Real

Entero

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Elementos Básicos : Constantes, Variables,

Identificadores y Expresiones

Elemento o partida de datos cuyo

valor no cambiadurante el desarrollo del

algoritmo (o ejecución del programa).

Posición de m

emoria, referenciada por unidentificador, que almacena un

dato que perm

anece sin cambios durante el algoritmo (o ejecución del

programa).

Pueden ser de tipo: entera, real, caractero lógica.

Constante

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Variable

Elemento o partida de datos cuyo

valor puede cambiardurante el desarrollo

del algoritmo (o ejecución del programa).

Posición de m

emoria, referenciada por unidentificador, donde se almacena

un dato que puede cambiar durante el algoritmo (o ejecución del programa).

Pueden ser de tipo: entero, real, carácter o lógica.

Una variable definida de un cierto tipo sólo puede tomar valores de ese tipo.

Una variable posee los siguientes atributos :

1.Identificador (asignado por el programador).

2.Tipo (describe su uso).

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 2: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Nombre que posee una variable o constante (ALGORITMO).

•Compuesto por un conjunto de caracteres alfanuméricos (El primero es

usualmente una letra).

•Deben ser significativos y tener relación con el objeto que representan.

•No se deben utilizar como identificadores palabras reservadas del lenguaje

de programación.

•Ejemplo :

•Nombre_Alumno, X, Edad, Sueldo_Bruto…….

Identificador

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Expresiones

Combinaciones de constantes, variables, símbolos de operación, paréntesis y

funciones especiales.

Una expresión consta de: operadoresy operandos.

Cada expresión toma un valor que se determ

ina, de acuerdo a :

•Los valores que posean las variables y constantes implicadas.

•La ejecución de las operaciones involucradas.

Según el tipo de objetos que se manipulan las expresiones se clasifican en :

•Aritméticas

•Lógicas

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Expresiones Aritm

éticas

•Análogas a las fórm

ulas matemáticas :

–Las variables y constantes (operandos) que las componen son de

tipo numérico (entero o real)

–Sus operadores son aritméticos : suma, resta, multiplicación,

división, división entera y resto.

•Ejemplo :

5 + 3 = 8

Operando

Operador

Resultado

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Tabla de operadores

Entero

Entero

Módulo o Resto

MOD

Entero

Entero

División Entera

DIV

Real

Entero/Real

División Real

/

Entero/Real

Entero/Real

Multiplicación

*

Entero/Real

Entero/Real

Resta/Cambio

Signo

-

Entero/Real

Entero/Real

Suma

+

Tipo Resultado

Tipo Operando

Significado

Operador

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 3: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Reglas de Prioridad

•Perm

iten determ

inar el orden en que se deben ejecutar las

operaciones, cuando una expresión posee m

ás de un operador.

Orden de Prioridad

•Las operaciones entre paréntesis se evalúan primero.

•Si existen paréntesis anidados, las expresiones más internas tienen

prioridad.

•Ejemplo : ((5+3)+(4+8)/2)+1

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Orden de Prioridad en Operadores Aritm

éticos

•Las operaciones aritméticas dentro de una expresión suelen seguir el

siguiente orden de prioridad :

1.

Cambio de Signo ( -)

2.

Multiplicación , División, DivisiónEntera y Resto (*, /, DIV, MOD)

3.

Suma y Resta (+,-)

•OBS :Si coinciden varios operadores de igual prioridad en una

expresión o subexpresiónencerrada entre paréntesis, el orden de

evaluación es de izquierda a derecha.

•Ejemplo :((8-7+3) + (4*6/2))

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Expresiones Lógicas

•Un segundo tipo de expresiones son las de tipo lógica, que al ser

evaluadas su resultado puede serverdadero o falso.

•Las expresiones lógicas se form

an usando :

•Operadores booleanos

•Operadores relacionales o de comparación

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Operadores Booleanos

Disyunción de P y Q

P ∨ ∨∨∨Q

∨ ∨∨∨

Conjunción de P y Q

P ∧ ∧∧∧Q

∧ ∧∧∧

Negación de p

¬ ¬¬¬p

¬ ¬¬¬

Significado

Expresión Lógica

Operador

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 4: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Tablas de Verdad

¬

¬

¬

PV

FF

V

PQ

P ∧ ∧∧∧ Q

VV

VV

FF

FV

FF

FF

PQ

P ∨ ∨∨∨ Q

VV

VV

FV

FV

VF

FF

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Operadores Relacionales

•Perm

iten comparar valores de tipo numérico, carácter o lógico, y se

usan para expresarcondicionesdentro de los algoritmos.

•Los operadores relacionales son : >, <, =, >=, <=, <>

•SINTAXIS :<expresión 1>operador relacional<expresión 2>

⇓ ⇓⇓⇓

RESULTADO : Verdadero o Falso.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Aplicación de los Operadores Relacionales

•Se aplican sobre datos de tipo: entero, real, lógico y carácter.

1.

Aplicación en valores numéricos. (CONOCIDA)

EJE

MPLO : Si A

= 3 y B = 2

•A > B (VERDADERO)

•A + B = 5 (VERDADERA)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Aplicación de los Operadores Relacionales

2.

Aplicación en valores de tipo carácter.

•Requiere de una secuencia de ordenación de los caracteres:

–Alfabética (mayúsculas y minúsculas).

–Creciente en caracteres numéricos.

–Pero si se consideran caracteres especiales, se recurre a un código

norm

alizado, por ejemplo, el código ASCII.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 5: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Tabla ASCII (Código estándar americano para el intercambio

de información ).

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP–

Aunque NO todos los computadores siguen el código norm

alizado

en su juego completo de caracteres, síson prácticamente estándar,

los códigos de los caracteres alfanuméricos más usuales:

•Caracteres especiales: # , %

, $ , ( , ) , + , -, / etc... , exigen

consultar el código de ordenación.

•Caracteres Numéricos: se encuentran en su orden natural.

(0...9)

•Caracteres Alfabéticos:

–Mayúsculas A...Z (orden alfabético).

–Minúsculas a..z siguen el criterio anterior.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Aplicación de los Operadores Relacionales

3.

Aplicación en valores de tipo lógico.

•Constante FALSO es menor que la constante VERDADERA.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

•OBS :En las expresiones lógicas se pueden m

ezclar operadores

relacionales y lógicos.

Ejemplo : ( 1>5 )

∧ ∧∧∧( 8<>9 )

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 6: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Prioridad de Operadores en Expresiones Lógicas

–Prioridad 1 : ¬ ¬¬¬

–Prioridad 2 : ∧ ∧∧∧

–Prioridad 3 : ∨ ∨∨∨

–MENOR PRIORIDAD QUE TODOS LOS OPERADORES :

Relacionales ( <, >, <=……)

–TAMBIEN SE USAN PARÉNTESIS (MAYOR PRIORIDAD QUE

TODOS)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Ejemplos

•¬4 > 6

ERROR!!!!!!

•¬( 4 > 6 ) = VER

DAD

ERO

•Si X = 7 , Z = 4

(1 < X)

∧(X < Z + 7)CU

AL ES EL VALOR DE ES

TA EXP

RES

IÓN????

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Resolución de Problemas

•3 fases básicas:

–An

álisis del Problem

a

–Diseño del A

lgoritm

o

–Co

dificación del A

lgoritm

o en un LP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Análisis del Problema

•AYUDA a tener una compresión de la

naturaleza del problema.

–PROBLEMA bien definido

→ →→→solución satisfactoria.

–Especificaciones de entrada y salida descritas con detalle.

SON REQUISITOS fundamentales para una solución eficaz.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 7: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Análisis del Problema

•El análisis del problema requiere de unaprimera lectura,para tener unaidea

general.

•Una segunda lectura

nos perm

itirá

responder las siguientes preguntas :

–¿Quédatos se necesitan para resolver el problema ? ENTRADA

–¿Quéinform

ación debe proporcionar la resolución del problema ? SALIDA

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

EJEMPLO : Análisis del Problema

•Calcular promedio de 3 Notas

Entrada : 3 Notas

Proceso: Suma aritmética de las Notas dividido por el T

otal de Notas

Salida : Promedio de Notas

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Diseño del Algoritm

o => Pseudocódigo

•Computador sólo resuelve problemas cuando : se le indican los pasos

sucesivos que debe ejecutar( ALGORITMO).

•Técnicas de Diseño :

–Diseño Descendente (DIVIDE y VENCERAS)

–Refinamiento Sucesivo (Primeros pasos INCOMPLETOS-

GENERALES)

•ALGORITMOdebe ser representado a través de alguna técnica que

perm

ita independizarlo del lenguaje de programación que se seleccionará

para codificarlo.

•La técnica de representación puede ser :

–Descriptiva(PSEUDOLENGUAJE

)

–Gráfica(Diagrama de Flujo, Diagrama de Nassi-Schneiderm

an)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Pseudocódigo

•Lenguaje de especificación form

al de algoritmos que perm

ite representar

lasestructuras de controlde la programación estructurada.

•No puede ser ejecutadopor un computador (debe ser traducido a un LP).

•Compuesto por palabras reservadas, similares a las de sus homónimos

en los lenguajes de programación que perm

iten representar acciones.

•Su escritura exige el uso de indentación.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 8: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

VENTAJAS Pseudocódigo

•Programador se CO

NCE

NTR

A en la LÓGICA y en las ES

TRUCT

URAS

DE

CONTR

OL, y no tanto en las REG

LAS SINTÁ

CTICAS

propias de los LP.

•Fácil de modificar.

•Fácil de traducir a LP.

•Orig

inalmente en Inglés , EN LA AC

TUALIDAD

en ES

PAÑOL

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

¿Cómo escribir un ALGORITMO en pseudolenguaje?

•La estructura de un algoritmo en pseudocódigoposee dos PARTES :

–Cabecera

–Bloque (Cuerpo) del A

lgoritm

o

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Cabecera

•TODO algoritmo debe comenzar con una cabecera.

•Acción simple que comienza con la palabra reservadaALGORITMO,

seguida de un identificador.

SINTAXIS :

ALGORITMO<identificador>

EJEMPLO :

ALGORITMOPromedio_de_Notas

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Cuerpo del Algoritm

o

•Es el resto del algoritmoy esta com

puesto a su vez de 2 bloqu

es :

–Bloque de Declaraciones :contiene la declaración de las constantes

y varia

bles que serán utilizadas en el algoritm

o.

–Bloque de Pasos (Acciones o Instrucciones)

: contiene las acciones

que nos perm

itirán resolver el problema, para el cual fue diseñado

el algoritmo, cada acción se escribiráen una línea independiente.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 9: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Bloque de Declaraciones : Declaración de Constantes

•Esta sección comienza con la palabra reservada CONST (abreviatura

de Constante) y su sintaxis es :

CONST

<identificador_constante_1>=<valor_1>

<identificador_constante_2>=<valor_2>

: :

<identificador_constante_N>= <valor_N>

Ejemplo :

CONST PI=3.141516

IVA=0.19

Valor determina Tipo

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Bloque de Declaraciones : Declaración de Variables

•Esta sección comienza con la palabra reservada VAR (abreviatura de

Variable) y su sintaxis es :

Var

<tipo 1>:<lista de variables (separadas por ,) >

<tipo j>

:<lista de variables (separadas por ,) >

Ejemplo :

VAR

real :x,y,z

entero :a,b,c

caracter:letra

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Bloque de Acciones : Tipos de Instrucciones

•Repertorio

de instruccionesdisponibles en cada leng

uaje de

programación es variable.

•PE

RO …

…Existen instrucciones básicas, com

unes y soportadas por

todos los leng

uajes y qu

e pu

eden ser utilizadas de form

a generalen

la escritura de un algoritmo :

–Instrucciones deInicio-Fin.

–Instrucción deAsignación.

–Instrucción deLectura.

–Instrucción deEscritura.

–Instrucciones deBifurcación.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Tipo de Instrucciones : Instrucciones

de Inicio-Fin

•La primera instrucción del bloque de acciones del algoritmo será

INICIO

y la última instrucción seráFIN.

INICIO

<acción 1>

<acción 2>

<acción 3>

:

<acción n>

FIN

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 10: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Tipo de Instrucciones : Instrucción de Asignación

•Perm

ite almacenar unvalor en unavariable.

•Operador de asignación :

← ←←←

Sintaxis :

< Identificador de Variable>

←<Valor>

•La instrucción de asignaciónse ejecuta en dos pasos :

1.

Se calcula el valoral lado derecho del operador de asignación.

2.

El valor calculado se almacena en la variable

cuyo nombre aparece

a la izquierda del operador de asignación, sustituyendo el valor

que esta tenía anteriorm

ente (instrucción DESTRUCTIVA).

<Valor> puede ser : una

constante, una variable

o el resultado de la

evaluación de una

expresión.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Tipo de Instrucciones : Instrucción de Asignación

•Ejemplos :

A← ←←←

1

B ← ←←←

A + 3

C← ←←←

B/2

Vocal ← ←←←

‘A’

•INICIALIZACIÓN DE UNA VARIABLE : Variables al ser

declaradas tienen un valor indeterm

inado

•INCOMPATIBILIDAD DE TIPOS

Varentero : A

Inicio

A ←

0

A ←

5.56

Fin

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Tipo de Instrucciones : Instrucción de Lectura

•Instrucción de Lectura o entrada de datos, perm

ite extraer uno o más

valores desde un dispositivo de entrada (teclado, unidades de disco etc...) y

almacenarlos en memoria en la(s) variable(s) indicada(s) dentro de la propia

instrucción.

•Sintaxis : Leer (< lista_de_variables> )

óLeer (< variable_1 > )

Leer (< variable_2 > )

Leer (< variable_3 > )

•¿Cuál será

el significado de la siguiente instrucción de lectura ?

Leer(edad, peso)

•Si se ingresan los valores 25 –59.3

•NO SE PUEDEN LEER DATOS DE TIPO Lógico

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Tipo de Instrucciones : Instrucción de Escritura

•Instrucción de salida o escritura de resultadosperm

ite enviar resultados

hacia dispositivos de salida(pantalla, impresora etc...).

•Los datos enviados pueden ser constantes, variables, resultados de

expresiones, m

ensajeso una m

ezcla de ellos separados en dicho caso por

comas.

•Sintaxis : Escribir (< lista_de_expresiones> )

•¿Cuál será

el significado de la siguiente instrucción de escritura ?

Escribir(“HOLA

”)

Escribir(“promedio = ”, promedio)

Escribir (“A + B “, A+B)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 11: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Calcular el promedio de 3 notas.

1. Inicio

2. Leer nota 1

3. Leer nota 2

3. Leer nota 3

4. Asignar a suma_de_notasel resultado de nota1 + nota2 + nota3

5. Asignar a promedio el resultado de suma_de_notas/ 3

6. Escribir resultado

7. Fin

Algoritm

o Calcular_Promedio

Varreal: nota1,nota2,nota3, suma_de_notas, prom

Inicio

leer(nota1)

leer(nota2)

leer(nota3)

suma_de_notas� ���

nota1 + nota2 + nota3

prom

� ���suma_de_notas / 3

escribir(“promedio es: “,prom)

Fin

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Estructuras de control

Las estructuras de controlson las que perm

iten conducir el flujo del

programa, existen dos tipos de estructuras de control las estructuras

selectivas y las estructuras repetitivas.

Estructuras selectivas

Las estructuras selectivasse utilizan para tomar decisiones lógicas, también

son llamadas estructuras de decisión o alternativas.

si <condicion>

entonces

<accion

1>

<accion

2>

<accion

n>

fin_si

Alternativa sim

ple

si (numero MOD 2 = 0)

entonces

escribir(“número es par”)

fin_si

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

si <condicion>

entonces

<accion1>

<accionn>

si_no

<accionp>

<accionz>

fin_si

Alternativa doble

si (numero MOD 2 = 0)

entonces

escribir(“número es par”)

si_noescribir(“número es impar”)

fin_si

segun_sea<expresion_E>hacer

e1: <accion1>

e2: <accion2>

e3: <accion3>

en: <accionn>

fin_si

Alternativa m

ultiple

segun_seadiaMOD 7hacer

1: escribir(“el día es Lunes”)

2: escribir(“el día es Martes”)

3: escribir(“el día es Miércoles”)

4: escribir(“el día es Jueves”)

5: escribir(“el día es Viernes”)

6: escribir(“el día es Sábado”)

0: escribir(“el día es Domingo”)

fin_si

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Estructuras selectivas anidadas

si <condicion

1>

entonces

si <condicion

2>

entonces

<accion

1>

<accion

2>

<accion

n>

fin_si

fin_si

Las

estructuras

selectivas

siy

si-sino

implican la selección de una de dos

alternativas. Es posible utilizar la instrucción

si para diseñar estructuras

de selección

que contengan más de dos alternativas.

si <condicion1>

entonces

si <condicion2>

entonces

<accion1>

.. ..

<accionn>

sino <accionp>

.. ..

<accions>

fin_si

sino si <condicion3>

entonces

<accionf>

.. ..

<accionk>

sino <accioni>

.. ..

<accionz>

fin_si

fin_si

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 12: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Ejercicio

•Desarrollar un algoritmo que calcule el

promedio simple de 3 notas, y que en

base al resultado obtenido, muestre la

situación final (aprobado-reprobado).

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Algoritm

o determ

inar_Aprobacion_Reprobacion

Varreal: nota1,nota2,nota3, suma_de_notas, prom

Inicioleer(nota1)

leer(nota2)

leer(nota3)

suma_de_notas� ���

nota1 + nota2 + nota3

prom

� ���suma_de_notas / 3

escribir (“promedio es: “,prom)

si(prom>= 40 ) entonces

escribir(“Aprobado !!! …

Felicitaciones !!!”)

sino escribir(“Ánimo, hay otra oportunidad !!! ”)

fin_si

Fin

Profesores

PHM/DCP

Estructuras repetitivas

mientras <condicion>

hacer

<accion

1>

<accion

2>

<accion

n>

fin_mientras

Mientras

mientras (i< 10)

hacer

escribir(“el número es: ”, i)

i � ���

i+1

fin_mientras

Las estructuras repetitivasse utilizan para repetir una o varias acciones un

número determ

inado de veces.

repetir

<accion

1>

<accion

2>

<accion

n>

hasta_que

<condicion>

Repetir

repetir

escribir(“el número es:”, i)

i � ���

i+1

hasta_que

(i = 10)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

desde v � ���

vi

hasta

vf

[incremento/decremento

inc

]hacer<accion

1>

<accion

2>

<accion

n>

fin_desde

Desde

Desde i � ���

1hasta 10

hacer

escribir(“el número es:”, i)

fin_desde

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 13: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Ejercicio

•Desarrollar un algoritmo que sume n

números ingresados por un usuario, y

luego muestre la suma de ellos.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Algoritm

o sumar_numeros

Varreal: nuevo_numero, suma

caracter:continuar

Iniciocontinuar� ���

‘s’

suma � ���

0mientras (continuar = ‘s’) hacer

escribir (“Ingrese un número”)

leer(nuevo_numero)

suma � ���

suma + nuevo_numero

escribir(“¿Desea continuar ingresando otro número? s = si ; n = no”)

leer(continuar)

fin_mientras

escribir(“La suma total es: “,suma)

fin

Utilizando la estructura repetitiva

“Mientras”

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Algoritm

o sumar_numeros

Varreal: nuevo_numero, suma

caracter:continuar

Iniciocontinuar� ���

‘s’

suma � ���

0repetir

escribir (“Ingrese un número”)

leer(nuevo_numero)

suma � ���

suma + nuevo_numero

escribir(“¿Desea continuar ingresando otro número? s = si ; n = no”)

leer(continuar)

hasta_que(continuar = ‘n’)

escribir(“La suma total es: “,suma)

Fin

¿Y si utilizamos la estructura

Repetir?

Profesores

PHM/DCP

Ejercicio

•Desarrolle un algoritmo que calcule el

factorial de un número X.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 14: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Análisis (1)

¿Quées el factorial de un número?

Resp: Producto que resulta de multiplicar un núm

ero

entero positivo por todos los números inferiores a él,

llegando hasta el número 1.

Ejemplos: 3! = 1 * 2 * 3 = 6

4! = 1 * 2 * 3 * 4 = 24

5! = 1 * 2 * 3 * 4 * 5 = 120

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

¿Cuáles son las entradas?

Resp: un número entero positivo.

¿Cuáles son las salidas?

Resp: un número entero positivo, producto de

multiplicaciones sucesivas.

Análisis (2)

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

¿Cuál es el proceso?

4! = 1 * 2 * 3 * 4 = 24

Análisis (3)

2* 6

24*

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Algoritm

o calcular_factorial

Varentero:numero, contador, factorial

Inicio

factorial � ���

1escribir (“Ingrese número para calcular factorial”)

leer(numero)

desde contador � ���

factorial + 1hastanumero

factorial � ���

factorial * contador

fin_desde

escribir (“Factorial es: ”,factorial)

Fin

Page 15: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Estructuras repetitivas anidadas

Asícomo las instrucciones selectivas (de condición) se pueden anidar, de

igual form

a se pueden anidar estructuras de selección, es posible insertar un

bucle dentro de otro

mientras <condicion1>

hacer

mientras <condicion2>

hacer

<accion

1>

<accion

2>

<accion

n>

fin_mientras

fin_mientras

desde v � ���

vi

hasta

vf hacer

desde w � ���

wj

hasta

wg hacer

<accion

1>

<accion

2>

<accion

n>

fin_desde

fin_desde

repetir

repetir

<accion

1>

<accion

2>

<accion

n>

hasta_que

<condicion2>

hasta_que

<condicion1>

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Estructuras repetitivas anidadas (continuación)

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

mientras <condicion1>

hacer

repetir

<accion

1>

<accion

2>

<accion

n>

hasta_que

<condicion2>

fin_mientras

repetir

mientras <condicion-i>

hacer

<accion

1>

<accion

2>

<accion

n>

fin_mientras

hasta_que

<condicion-j>

Profesores

PHM/DCP

Ejercicio

•Desarrolle un algoritmo que perm

ita

calcular el promedio de ncantidad de

notas, para m

cantidad de asignaturas.

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Algoritmo calcular_promedios

Varentero:nota, suma_de_notas, contador_notas, prom

carácter:nombre_asignatura, continuar, nueva_nota

Inicio

continuar � ���

‘s’

mientras (continuar = ‘s’) hacer

escribir (“Ingrese nombre de la asignatura”)

leer(nombre_asignatura)

suma_de_notas� ���

0contador_notas� ���

0repetir

escribir (“Ingrese nota:”)

leer(nota)

suma_de_notas� ���

suma_de_notas+ nota

contador_notas� ���

contador_notas+ 1

escribir(“¿Desea ingresar una nueva nota? s = si ; n = no”)

leer(nueva_nota)

hasta_que(nueva_nota= ‘n’)

prom

� ���suma_de_notas/ contador_notas

escribir(“Asignatura: ”, nombre_asignatura)

escribir (“Promedio: “,prom)

escribir(“¿Desea ingresar una nueva asignatura? s = si ; n = no”?”)

leer(continuar)

fin_mientras

fin

Page 16: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Diagramas de Flujo

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Terminal

Inicio o final de

un algoritm

o

Entrada/Salida

Lectura de valores y

escritura de

mensajes

Decisión

Implica elección

entre secuencias

alternativas.

Proceso

Proceso diferente

de los procesos E/S

y Decisiones

Profesores

PHM/DCP

Estructuras de Control: Diagrama de Flujo

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Secuencia

Selección

Iteración

Profesores

PHM/DCP

Estructuras de Control:

Diagramas de Nassi-Schneiderman

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Profesores

PHM/DCP

Ejercicio

•Desarrollar un diagrama de flujo que

perm

ita calcular el promedio simple de 3

notas, y que en base al resultado

obtenido, muestre la situación final

(aprobado-reprobado).

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Page 17: [Inf 140]   Estructuras Repetitivas Y Selectivas (4 X Hoja)

Profesores

PHM/DCP

Pontificia Universidad Católica de Valparaíso

Escuela de Ingeniería Informática

INF 140 –Informática I

Inicio

Fin

Leer NOTA1,

NOTA2, NOTA3

SUMA_NOTAS

NOTA1 + NOTA2 + NOTA3

PROM

SUMA_NOTAS/ 3

escribir PROM

PROM >= 40

escribir

“Aprobado !”

escribir “ánimo, hay

otra oportunidad ! ”