3/13/2017
ALGORITMO ALGORITM O Un algoritmo consiste en:
UNIDAD III Estructuras Estructu ras de Control
IngLuis Barrera - IAI115 - 2017
Un conjunto de pasos que se deben obedecer obedecer al pie de la let letra ra pa para ra sol soluci ucion onar ar el pro proble blema, ma, do donde nde perm pe rmit ite e al alca canz nzar ar un re resu sult ltad ado o o re reso solve lverr un problema.
Se
busca identificar la lógica en la solución de un problema
Se utiliza para posteriormente bosquejar los detalles de un problema
El estilo de desarrollarlo es personal
1
2
IngLuis Barrera - IAI115 - 2017
Ejemlo Ejem lo 1
Instruc Ins truccio ciones nes ar araa re rear arar ar un san sand!i d!ic" c"
%ngredientes input!
Asume que deseas explicarle a una persona que n unca ha preparado un sandwich, que haga uno. Primero debes determinar de qué deseas el sandwich y los ingredientes para ese sandwich.
&os rebanadas de pan &os rebanadas de "am#n (na rebanada de queso )uatro rebanada de tomate &os ho"a de lechuga (na servilleta
Sandwich de pavooutput!
Sandwich en pan especial, con queso, "am#n, tomate y lechuga
IngLuis Barrera - IAI115 - 2017
3
*am#n
+ueso
IngLuis Barrera - IAI115 - 2017
$
Propiedades o Características de los Algoritmos Procedimiento (Algoritmo
!oloca una rebanada de pan en una servilleta "emueve el queso de la envoltura pl#stica
!oloca el queso en una rebanada de pan
conjun conj unto to de da dato tos s id&n id&nti tico cos s de entr entrad ada, a, siem si empr pre e deb ebe e de mo most strrar lo los s mi mis smo mos s resultados.
Saca dos rebanadas de jamón de la bolsa !oloca las dos rebanadas de jamón encima del queso !oloca la rebanada de tomate encima del jamón !oloca la lec$uga encima de la rebanada de tomate
!oloca !ol oca la otr otra a reb rebana anada da de pan encima encima de la $oja de la lec$uga
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
Precisión: %os pasos a seguir en el Algoritmo deben de ser precisados claramente. Determinismo: El Algoritmo, dado un
Finitud:El Algoritmo, independientemente de la complejidad complejidad del mismo debe de ser de una longitud finita.
IngLuis Barrera - IAI115 - 2017
-
1
3/13/2017
Como deen ser los algoritmos
Partes "#sicas de un Algoritmo
Algoritmo correcto! Es aquel que no tiene
errores ' adem#s $ace lo que se espera que $aga es decir, que al ejecutarlo se obtiene la información esperada. Algoritmo propio: Es aquel que cumple las siguientes caracter)sticas Posee un solo punto de entrada (inicio ' un solo punto de salida (fin. E*iste uno o m#s caminos o rutas desde el principio $asta el fin del algoritmo que se pueden seguir. +odas las instrucciones o pasos del algoritmo son ejecutables ' o e*isten ciclos infinitos.
ALGORITMO
DATO$ D% %&TRADA
IngLuis Barrera - IAI115 - 2017
pasos detallados en un castellano. A456%785 9S+(98A7%:A&5; (sando una serie de s
an?a@aprendi?a"e nos apegaremos a ciertas normas para el dise>o de los mismos, estas se tratarn en el 4ui#n o.3. (nidad %%%, 8etodologia para 6esolver Problemas A456%785 PS9(&5B)5&%=%)A&5; (samos una me?cla de lengua"e natural y un c#dig o de programaci#n espec<ico o lengua"e de programaci#n!. En el presente curso no usaremos pseudo código. A456%785 )5&%=%)A&5; 9n esta representaci#n de algoritmo, usamos un c#digo o lengua"e de programaci#n, como CAS%), PAS)A, )DD, )E, etc. (n algorit mo codiic ado se conoce como P6546A8A. 9ste tipo de algoritmo lo estudiaremos en el 4ui#n o.3 (nidad %%%.
%)emplo:
Escriba un Algoritmo para resolución de un promedio de tres notas.
/
%)emplo: Escriba un Algoritmo para la resolución de un promedio de tres notas.
. /nicio 0.
1esplegar: 2/ntroduzca El nombre del alumno2
3.
/ngresar: nombre
4.
1esplegar: 2/ntroduzca la primera nota (56 7 ' 867.7:2
9.
/ngresar: ota
.
1esplegar: 2/ntroduzca la segunda nota (56 7 ' 867.7:2
;.
/ngresar: ota0
<.
1esplegar: 2/ntroduzca la tercera nota (56 7 ' 867.7:2
=.
/ngresar: ota3
7. !alcular: promedio 6 (ota>ota0>ota3?3 . /mprimir: 2El promedio del alumno2, nombre, 2es: 2, promedio 0. @in
0
IngLuis Barrera - IAI115 - 2017
Algoritmos %s*uemati+ado
IMPR%$I'& D% R%$(LTADO$
Algoritmos &arrados
Algoritmo Narrado# os permiten la resoluci#n del problema en orma de
D% LO$ DATO$
IngLuis Barrera - IAI115 - 2017
Tipos de Algoritmos
PROC%$AMI%&TO
1F
IngLuis Barrera - IAI115 - 2017
Algoritmos Pseudocódigo
la
%)emplo:
Escriba un Algoritm o para resolución de un promedio de tres notas.
la
Inicio Conocer (ota, ota0, ota3 1esplegar: 2/ntroduzca El nombre del alumno2 /ngresar: nombre 1esplegar: 2/ntroduzca la primera nota (56 7 ' 867.7:2 /ngresar: ota 1esplegar: 2/ntroduzca la segunda nota (56 7 ' 867.7:2 /ngresar: ota0 1esplegar: 2/ntroduzca la tercera nota (56 7 ' 867.7:2 /ngresar: ota3 !alcular: promedio 6 (ota>ota0>ota3?3 /mprimir: 2El promedio del alumno2, nombre, 2es: 2, promedio Mostrar (nombre, Promedio IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
11
IngLuis Barrera - IAI115 - 2017
12
2
3/13/2017
Algoritmos Codi,icado
Conclusión de un uen Algoritmo!
%)emplo:
Escriba un Algoritmo para resolución de un promedio de tres notas.
la
(sing $-stem $tatic /oid Main0string12 arg3 4 doule nota56 nota76 nota86 Promedio
Console.9riteLine0: /ntroduzca El nombre del alumno :3 nomre ; Console.ReadLine03 Console.9riteLine0: /ntroduzca la primera nota (56 7 ' 867.7: :3 nota5 ; doule.Parse0Console.ReadLine033 Console.9riteLine0: /ntroduzca la segunda nota (56 7 ' 867.7: :3 nota7 ; doule.Parse0Console.ReadLine033 Console.9riteLine0: /ntroduzca la tercera nota (56 7 ' 867.7: :3 nota8 ; doule.Parse0Console.ReadLine033 promedio;0nota5e-03 ?
13
IngLuis Barrera - IAI115 - 2017
Dee ser e,ica+6 es decir *ue al ,inali+ar la e)ecución del algoritmo6 la solución del prolema dee ser alcan+ada de esto se otiene *ue todo uen algoritmo dee tener un paso para ,inali+ar el mismo. Las partes #sicas de todo uen algoritmo son %ntrada6 proceso - salida de datos. La e)ecución de todo algoritmo dee de ser ,actile de implementar6 es decir se dee tener acceso a todo lo *ue ste re*uiera 0datos - tecnología3.
%as Estructuras D#sicas o elementales son:
5. $ecuenciación: Se obedece una orden tras otra, sin ninguna consideración adicional.
7. $elección! Se elige una de entre dos alternativas, o una de entre varias opciones posibles.
8. Repetición! Se repiten una o varias órdenes, las veces
que sea necesario. A estas posibles acciones se les llama: Estructuras Lógicas de Control , 'a que nos indican qu& $acer en cada paso del algoritmo ' cómo $acerlo
Tipo de %structuras de Control 9structura =undamental
Asignaci#n )alculos Sumari?aci#n
9structura=undamental
SiG9ntoncesGSino
8ientras while!
9structura &erivada
&esdeGIasta =or ! IastaGque &oGwhile! Para cada uno=oreach!
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
IngLuis Barrera - IAI115 - 2017
1-
Representación Gra,ica de las %structuras de Control "#sicas
Si; Simple y &oble Si; Anidado o )olgante Seleccionar )aso; 8Hltiple
9structura =undamental
1$
Un problema se puede dividir en acciones elementales o instrucciones, usando un nCmero limitado de estructuras de control (b#sicas ' sus combinaciones que pueden servir para resolver dic$o problema.
1
IngLuis Barrera - IAI115 - 2017
9structura &erivada
IngLuis Barrera - IAI115 - 2017
%structuras de Control
Conclusión de un uen Algoritmo!
Todo algoritmo dee ser especi,icado en ,orma precisa6 mediante un n@mero ,inito de pasos. %sta propiedad trata de eliminar amigedades6 de tal ,orma *ue cual*uier persona pueda comprender - e)ecutar el algoritmo - otener el mismo resultado. Todo algoritmo tiene un @nico inicio - un @nico ,inal. %l algoritmo se dee diseBar de ,orma general6 o sea *ue dee resoler el prolema6 seg@n los datos *ue sean proporcionados.
$
1
%
IngLuis Barrera - IAI115 - 2017
1/
3
3/13/2017
Ejemlo
Estructura de Control &ecuenciales
??permite calcular el per)metro de un cuadril#ter o
Algoritmo perimetrorectangulo
La estructura secuencial es aquella en la que una instrucción sigue a otra en secuencia. Suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente.
/nicio 1esplegar: 21igite el lado: 2 variables
%eer: lado 1esplegar: 21igite el anc$o: 2 %eer: anc$o
calcular: Per)metro 6 ( lado0>(anc$o 0
e*presión
/mprimir: per)metro fin operadores
IngLuis Barrera - IAI115 - 2017
10
IngLuis Barrera - IAI115 - 2017
Estructura de Control &electi'a
Estructuras &electi'as
permiten
la decisión entre acciones alternativas, llevar a cabo una acción en base a una condición (lógica). Pueden ser simples o múltiples Se pueden utilizar de manera anidada de orma indeinida.
IngLuis Barrera - IAI115 - 2017
Si (condición entonces (lógica verdadero F. instrucciones finsi Si (condición entonces (lógica verdadero F. instrucciones Sino (caso contrario falso F instrucciones @insi
21
IngLuis Barrera - IAI115 - 2017
Ejemlo
repetición de un número determinado de sentencias en base a una condición lógica.
Se conoce tambi!n como bucle.
"s importante tener en cuenta#
/nicio desplegar: G1igite numero2 %eer numero
Si (numero?0667 desplegar: 2numero par2
Sino
fin
23
cuantas veces se repite el bucle o ciclo, cu$l es el cuerpo del mismo.
"l cuerpo del bucle lo c onstituyen#
desplegar: 2numero impar2 @insi
Ing. Luis Barrera
22
Estructura de Control (eetiti'as
Algoritmo numeroparimpar
IngLuis Barrera - IAI115 - 2017
2F
una serie de sentencias, que pueden ser de cualquier tipo, las que ser$n repetidas de acuerdo a lo que indique la condición de inalización del bucle.
IngLuis Barrera - IAI115 - 2017
2$
4
3/13/2017
Hientras (condición $acer F.. instrucciones @inImientras inicio 1esde num
07
Elementos de un Algoritmo 1) E*resiones
Fin E i nclu-e limite
%na e&presión consta de operandos y operadores, según sea el tipo de ob'etos que manipulan las e&presiones puede ser de tipo# aritm!ticas, lógicas, relacionales y a nivel de bit.
$asta 37 $acer
F. instrucciones
2) +eradores
@inIdesde Jacer F. instrucciones Hientras (condición
% n o pe ra do r es un s ím bo lo or mad o p or u no o m $s c ar ac ter es q ue permite realizar una determinada operación entre uno o m$s datos y p ro du ce u n r es ult ad o. nd ic an la s o pe ra ci on es a a pl ic ar s ob re l os operandos. (+,-,*,/,>,<, !=, <>, %)
ariale
Las e&presiones son combinación de operandos que representan constantes, variables, símbolos de operación, par!ntesis, m!todos o cómputos que devuelven un valor. "'emplos# c = a * b + 5
"epetir F JastaIque (condición IngLuis Barrera - IAI115 - 2017
x =(b+c)*d/7 2
IngLuis Barrera - IAI115 - 2017
Tipos de Operadores %istentes
2-
,ios de E*resiones ritm!ticas
*+ *-+/
(* - )+/
Lógicas (0 1 2) (verdadero) relacionales (0 1 2)33(2 1 ) (verdadero)
IngLuis Barrera - IAI115 - 2017
2
IngLuis Barrera - IAI115 - 2017
2/
Tipos de %presiones
,ios de E*resiones Se
e*trae de memoria el valor de las variables Se realiza el c#lculo Se asigna el resultado a la variable de la izquierda
1. 9xpresiones Aritmeticas 2. 9xpresiones ogicas Simple o compuesta! 3. 9xpresiones de caracter o alanumerica
E*presiones no v#lidas: A > c ; 6 d ; 6 7 IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
20
IngLuis Barrera - IAI115 - 2017
3F
5
3/13/2017
erar*uía de operadores
Construcción de %presiones Aritmticas
erar*uía de operadores !K
tiene
cuatro
clases
generales
de
operadores:
aritmticos, a niel de"IT, relacionales ' lógicos.
%os
operadores aritm&ticos funcionan igual que en ! ' !>>. El resultado de los operadores relacionales ' lógicos es un valor ool. %os operadores de cortocircuito evalCan el segundo operando solo cuando es necesario. %os operadores a nivel de D/+ no se pueden aplicar a tipos ool, ,loat, doule o decimal.
A$ora aprenderemos tanto a construir como a evaluar e*presiones aritm&ticas. Para ambas actividades debemos tener en cuenta: . El orden o reglas de jerarqu)a de los operadores 0. %os H&todos. 'a que de ello depende que elaboremos la e*presión correcta ' que evaluemos correctamente una e*presión para obtener el resultado correcto. %o que aprendamos en esta sección lo aplicaremos luego en el diseLo de las soluciones utilizando la t&cnica de algoritmos esquematizados M flujogramas
31
IngLuis Barrera - IAI115 - 2017
erar*uía de Operadores E*resiones Aritm6ticas
erar*uía de Operadores erar.u/a de +eradores etodos
+erador
Nomre
3rioridad
4
3ar6ntesis
aor
at")etodo4
etodos
-
Camios de &igno o menos unario
89 8:
ul ti l ica ci ;n 8 d i' isi on 8 (esi du o
<8 -
&umar restar
32
IngLuis Barrera - IAI115 - 2017
9
O 06
9
O 06
enor
Nota: Los paréntesis no son operadores, son símbolos de agrupación y nos sirven para indicar qué se debe realizar primero, es decir, ROMPN L! "R!R#$%! para que se evalué primero lo que est& contenido dentro de estos' Muy %mportante: Recuerde que los operadores aritméticos devuelven un valor de Aritmticos acuerdo al tipo de dato de los operadores, así: N !mbos operandos enteros, el resultado es entero N !l menos un operador real el resultado es real .
9"emplo; 592=2 5)0 9 2 = 2)5 IngLuis Barrera - IAI115 - 2017
33
erar*uía de Operadores E*resiones Aritm6ticas
erar*uía de Operadores E*resiones Aritm6ticas
O "egresa el residuo de la división O067 9.7 O 0 6 0.9 O 0 6 7.9 .9 O 0 6 .9
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
3$
IngLuis Barrera - IAI115 - 2017
3
?36
3
06
?367
3
06
O36
3.7
06
O36
3.7
0 6 .7
IngLuis Barrera - IAI115 - 2017
3-
6
3/13/2017
Construcción de %presiones Aritmticas
E*resiones Aritm6ticas
3rocedimiento ara Construir e*resiones aritm6ticas#
A continuaci#n se detallan cada uno de los pasos que se deben de seguir para construir una expresi#n aritmética. 1. &einici#n de operandos en identiicadores ya sean variables y@o constantes deinidas por el programador. 2. )onversi#n de operadores matemticos a aritméticos. 3. 6eempla ?ar las unciones matemticas a metodos por valo res asociados a las variables y@o constantes. J paréntesis si los hay. $. 9valuar expresiones.
IngLuis Barrera - IAI115 - 2017
9"emplos; )onstruir las siguiente expresiones matemticas a aritméticas;
3
IngLuis Barrera - IAI115 - 2017
%aluación de %presiones Aritmticas
%aluación de %presiones Aritmticas
3rocedimiento ara e'aluar e*resiones aritm6ticas# a continuaci#n se
detallan cada uno de los pasos que se deben de seguir para evaluar una expresi#n aritmética. 1. Sustituci#n de variables y constantes; se deben extraer de la memoria los valores actuales de las variables y constantes con nombre que apare?can al lado derecho de la lecha o signo K, es decir, reempla?ar los nombres por los valores asociados a las variables y@o constantes. 9n caso que no existan nombre de variable y de constante en la expresi#n continuar en el paso 2L 2. 6evisar S< existen expresiones encerradas entre paréntesis, éstas se evalHan primero, pero teniendo cuidado que S< existen paréntesis anidados se evalHan primero las expresiones en los paréntesis ms internos, la evaluaci#n de los paréntesis se har de i?quierda a derecha IngLuis Barrera - IAI115 - 2017
30
3. (na ve? hemos ubicado la expresi#n a evaluar, buscamos primero las unciones, si las hay las resolvemos una a una en orden de i?quierda a derecha. $. &espués de evaluar los metodos, se e"ecutan los operadores aritméticos, primero los operadores de ms alta "erarqug) ? &emana @, es decir, una operaci#n por l
CLA$% MATH
E*resiones Aritm6ticas 9"emplos; 9valuar las siguiente expresiones aritméticas;
. Q 6 9 R 3 ( 9 ( 3 > 4 O 0 0. Q 6 9 R 3 ( 9 ; O 0
3. Q 6 9 R 3 ( 39 O 0 4. Q 6 9 R 3 9. Q 6 9 R 3
Proporciona una serie de constantes ' funciones de uso mu' comCn en e*presiones aritm&ticas. Mat es una clase perteneciente al espacio de nombres $-stem. %os mtodos de la clase Mat realizan c#lculos matem#ticos b#sicos. A continuación, algunos: &omre Descripción % "epresenta la base logar)tmica natural, especificada por la constante, e.
. Q 6 0
PI
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
3/
$1
"epresenta la relación entre la longitud de la circunferencia de un c)rculo ' su di#metro, especificada por la constante . IngLuis Barrera - IAI115 - 2017
$2
7
3/13/2017
Mtodos Importante de Clase Mat
Metodos de Clase Mat ,ABLA DE $UNCI+NE& A,EA,ICA&
=unci# n 8atemticausadaen ibros
OxO bx sen x cos x tan x Rx
ex
lnx! 1Fx logx! ±
using SystemM @@Aplicaci#n corrida en https;@@dotnetiddle.net@
5bservaci#n
=unci# n 8atemtica usadaen Programaci#n
Absx! Powb,x! Sinx! )osx! 7anx! Sqrtx! 9xpx!
alor absoluto de un numero
ogx! Pow1Fx! og1Fx!
)alcula el logaritmo base e de x
public class Program public static void 8ain! double x K 1.FM double y K 2.FM double angleM double radiansM double resultM
a base y exponente pueden ser enteros o reales Q es un valor en radianes Q es un valor en radianes Q es un valor en radianes Q es un valor entero o real alo r de e elevado ala potencia x
@@ )alculate the tangent o 3F degrees. angle K 3FM radians K angle T 8ath.P%@1/F!M result K 8ath.7anradians!M )onsole.UriteineVa tangente de 3F grados es FW.V, result!M
)alcula1F elevado ala x )alcula el logaritmo base 1F de x
No aplica: o existe representaci#n, ya que una variable solo puede guardar un valor a la ve?, por lo que en estos casosse guardaelvalor positivoenuna variabley el valor negativoen otravariable.
W W
Q puede ser cualquier valor entero o real e". 2!, real e ". F.! # expresi#n aritmética e". ADC! Nota; as unciones trigonométricas solo procesan ngulos en radianes. Por lo que hay que reali?ar la conversi#n necesaria para calcular la unci#n o método trigonométrico de un ngulo dado en grados, esto aplicando una regla de tres simple usando el actor 1/F @ 3.1$1-!
IngLuis Barrera - IAI115 - 2017
$3
Otros Mtodos Importante de Clase Mat
9"emplos; )onstruir las siguiente expresiones matemticas a aritméticas;
Hat$.E
$$
E*resiones Aritm6ticas
Constantes de coma ,lotante
IngLuis Barrera - IAI115 - 2017
"egresa la base del logaritmo natural
Hat$.P/
"egresa el valor de ( 3141593)
Otros Metodos!
Hat$."ound(n
"edondea al nCmero mas cercano sin parte decimal o con una determinada precisión.
Hat$.Ha*(e*p,e*p0
Hat$.Hin(e*p,e*p0
"egresa el ma'or entre e*p ' e*p0 "egresa el menor entre e*p ' e*p0
IngLuis Barrera - IAI115 - 2017
$
IngLuis Barrera - IAI115 - 2017
$-
E*resiones Aritm6ticas con at"
E*resiones Aritm6ticas
. T 6 9 ? Po ( 3 , 0 > ( ; O ( 7 R 9 3.7 > 0 9
9"emplos; )onstruir las siguiente expresiones matemticas a aritméticas;
0. T 6 9 ? Po ( 3 , 0 > ( ; O 9 3.7 > 0 9 3. T 6 9 ? Po ( 3 , 0 > ( 0 3.7 > 0 9 4. T 6 9 ? Po ( 3 , 0 > .7 > 0 9 9. T 6 9 ? =.7 > .7 > 0 9 . T 6 7.9> .7 > 0 9
&
;. T 6 7.9> .7 > 7 <. T 6 .9 > 7 =. T 6 .9
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
$
IngLuis Barrera - IAI115 - 2017
$/
8
3/13/2017
E*resiones Aritm6ticas con at"
E*resiones Aritm6ticas con at"
%)emplo!
%uego,
sustituimos el valor de la v ariable r ' procedemos de acuerdo a las reglas antes vistas:
1. V = 4 / 3 * (PI * Pow ( 5 , 3 ) ) 2. V = 4 / 3 * (3.141593* Pow ( 5 , 3 ) 3. V = 4 / 3 * (3.141593 * 125. ) 4. V = 4 / 3 * 392.7 5. V = 1 * 392.7 . V = 392.7
IngLuis Barrera - IAI115 - 2017
Ing. Luis Barrera
$0
IngLuis Barrera - IAI115 - 2017
F
9