Anda di halaman 1dari 9

3/13/2017

ALGORITMO
Un algoritmo consiste en:
Un conjunto de pasos que se deben obedecer al pie
de la letra para solucionar el problema, donde
UNIDAD III permite alcanzar un resultado o resolver un
problema.
Estructuras de Control Se busca identificar la lgica en la solucin de un
problema
Se utiliza para posteriormente bosquejar los detalles
de un problema
El estilo de desarrollarlo es personal

1 2
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ejemplo 1

Instrucciones para preparar un sandwich Ingredientes (input)


Asume que deseas explicarle a una persona que nunca ha preparado
Dos rebanadas de pan
un sandwich, que haga uno. Primero debes determinar de qu deseas Jamn
el sandwich y los ingredientes para ese sandwich. Dos rebanadas de jamn
Una rebanada de queso
Cuatro rebanada de tomate
Queso
Sandwich de pavo(output) Dos hoja de lechuga
Una servilleta
Sandwich en pan especial, con
queso, jamn, tomate y lechuga

3 4
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Propiedades o Caractersticas de los Algoritmos


Procedimiento (Algoritmo)
Precisin: Los pasos a seguir en el Algoritmo
Coloca una rebanada de pan en una servilleta
deben de ser precisados claramente.
Remueve el queso de la envoltura plstica
Coloca el queso en una rebanada de pan Determinismo: El Algoritmo, dado un
Saca dos rebanadas de jamn de la bolsa conjunto de datos idnticos de entrada,
Coloca las dos rebanadas de jamn encima del queso siempre debe de mostrar los mismos
Coloca la rebanada de tomate encima del jamn resultados.
Coloca la lechuga encima de la rebanada de tomate Finitud: El Algoritmo, independientemente de
Coloca la otra rebanada de pan encima de la hoja de la la complejidad del mismo debe de ser de una
lechuga
longitud finita.

5 6
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 1


3/13/2017

Como deben ser los algoritmos Partes Bsicas de un Algoritmo


Algoritmo correcto: Es aquel que no tiene
errores y adems hace lo que se espera que ALGORITMO
haga; es decir, que al ejecutarlo se obtiene la
informacin esperada.
Algoritmo propio: Es aquel que cumple las
siguientes caractersticas
Posee un solo punto de entrada (inicio) y un
solo punto de salida (fin).
PROCESAMIENTO IMPRESIN
Existe uno o ms caminos o rutas desde el DATOS DE DE
principio hasta el fin del algoritmo que se DE LOS
ENTRADA DATOS RESULTADOS
pueden seguir.
Todas las instrucciones o pasos del algoritmo
son ejecutables; y
No existen ciclos infinitos.
7 8
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Tipos de Algoritmos Algoritmos Narrados


Ejemplo: Escriba un Algoritmo para la
Algoritmo Narrado: Nos permiten la resolucin del problema en forma de resolucin de un promedio de tres notas.
pasos detallados en un castellano.
1. Inicio
ALGORITMO ESQUEMATIZADO: Usando una serie de smbolos para
representar cada paso del algoritmo. A este esquema de solucin se le llama 2. Desplegar: "Introduzca El nombre del alumno"
Diagrama de Flujo o FLUJOGRAMA. Tmese en cuenta que para facilitar la 3. Ingresar: nombre
tarea de enseanza/aprendizaje nos apegaremos a ciertas normas para el 4. Desplegar: "Introduzca la primera nota (>= 0 y <=10.0):"
diseo de los mismos, estas se tratarn en el Guin No.3. Unidad III, 5. Ingresar: Nota1
Metodologia para Resolver Problemas 6. Desplegar: "Introduzca la segunda nota (>= 0 y <=10.0):"
ALGORITMO PSEUDO-CODIFICADO: Usamos una mezcla de lenguaje 7. Ingresar: Nota2
natural y un cdigo de programacin especfico (o lenguaje de
8. Desplegar: "Introduzca la tercera nota (>= 0 y <=10.0):"
programacin). En el presente curso no usaremos pseudo cdigo.
9. Ingresar: Nota3
ALGORITMO CODIFICADO: En esta representacin de algoritmo, usamos
un cdigo o lenguaje de programacin, como BASIC, PASCAL, C++, C#, etc. 10. Calcular: promedio = (Nota1+Nota2+Nota3)/3
Un algoritmo codificado se conoce como PROGRAMA. Este tipo de 11. Imprimir: "El promedio del alumno", nombre, "es: ", promedio
algoritmo lo estudiaremos en el Guin No.3 Unidad III. 12. Fin
9 10
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Algoritmos Esquematizado
Ejemplo: Escriba un Algoritmo para la Algoritmos Pseudocdigo
resolucin de un promedio de tres notas.
Ejemplo: Escriba un Algoritmo para la
resolucin de un promedio de tres notas.
Inicio
Conocer (Nota1, Nota2, Nota3)
Desplegar: "Introduzca El nombre del alumno"
Ingresar: nombre
Desplegar: "Introduzca la primera nota (>= 0 y <=10.0):"
Ingresar: Nota1
Desplegar: "Introduzca la segunda nota (>= 0 y <=10.0):"
Ingresar: Nota2
Desplegar: "Introduzca la tercera nota (>= 0 y <=10.0):"
Ingresar: Nota3
Calcular: promedio = (Nota1+Nota2+Nota3)/3
Imprimir: "El promedio del alumno", nombre, "es: ", promedio
Mostrar (nombre, Promedio)

11 12
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 2


3/13/2017

Algoritmos Codificado Conclusin de un buen Algoritmo:


Ejemplo: Escriba un Algoritmo para la Todo algoritmo debe ser especificado en
resolucin de un promedio de tres notas. forma precisa, mediante un nmero finito
Using System; de pasos. Esta propiedad trata de eliminar
ambigedades, de tal forma que cualquier
Static Void Main(string[] arg) persona pueda comprender y ejecutar el
{
double nota1, nota2, nota3, Promedio;
algoritmo y obtener el mismo resultado.
Todo algoritmo tiene un nico inicio y un
Console.WriteLine(" Introduzca El nombre del alumno"); nico final.
nombre = Console.ReadLine();
Console.WriteLine("Introduzca la primera nota (>= 0 y <=10.0):"); El algoritmo se debe disear de forma
nota1 = double.Parse(Console.ReadLine()); general, o sea que debe resolver el
Console.WriteLine("Introduzca la segunda nota (>= 0 y <=10.0):"); problema, segn los datos que sean
nota2 = double.Parse(Console.ReadLine());
Console.WriteLine("Introduzca la tercera nota (>= 0 y <=10.0):");
proporcionados.
nota3 = double.Parse(Console.ReadLine());
promedio=(nota1+nota2+nota3)/3;
Console.WriteLine(" El promedio del alumno {0} es: {1} ", nombre, promedio);
Console.ReadKey();
}
13 14
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Estructuras de Control
Conclusin de un buen Algoritmo:
Debe ser eficaz, es decir que al finalizar la Un problema se puede dividir en acciones elementales o instrucciones,
usando un nmero limitado de estructuras de control (bsicas) y sus
ejecucin del algoritmo, la solucin del combinaciones que pueden servir para resolver dicho problema.
problema debe ser alcanzada; de esto se
obtiene que todo buen algoritmo debe tener Las Estructuras Bsicas o elementales son:
un paso para finalizar el mismo. 1. Secuenciacin: Se obedece una orden tras otra, sin
Las partes bsicas de todo buen algoritmo ninguna consideracin adicional.
son Entrada, proceso y salida de datos. 2. Seleccin: Se elige una de entre dos alternativas, o una
La ejecucin de todo algoritmo debe de ser de entre varias opciones posibles.
factible de implementar, es decir se debe 3. Repeticin: Se repiten una o varias rdenes, las veces
tener acceso a todo lo que ste requiera que sea necesario.
(datos y tecnologa). A estas posibles acciones se les llama: Estructuras
Lgicas de Control, ya que nos indican qu hacer en
cada paso del algoritmo y cmo hacerlo

15 16
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Tipo de Estructuras de Control Representacin Grafica de las


Estructura Fundamental Asignacin
Estructuras de Control Bsicas
Calculos
Sumarizacin

Estructura Fundamental Si_Entonces_Sino


Estructura Derivada
Si: Simple y Doble F V
Si: Anidado o Colgante
Seleccionar Caso: Mltiple

Estructura Fundamental Mientras (while)


Estructura Derivada Desde_Hasta ( For )
Hasta_que (Do_while)
Para cada uno(Foreach)

17 18
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 3


3/13/2017

Estructura de Control Secuenciales Ejemplo


//permite calcular el permetro de un cuadriltero

La estructura secuencial es aquella en la que Algoritmo perimetrorectangulo


una instruccin sigue a otra en secuencia. Inicio
Suceden de tal modo que la salida de una es Desplegar: "Digite el lado: "
variables
la entrada de la siguiente y as Leer: lado
sucesivamente. Desplegar: "Digite el ancho: "
Leer: ancho
calcular: Permetro = (lado*2)+(ancho* 2) expresin

Imprimir: permetro
fin
operadores

19 20
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Estructura de Control Selectiva Estructuras Selectivas


permiten la decisin entre acciones alternativas, Si (condicin) entonces (lgica verdadero)
llevar a cabo una accin en base a una . instrucciones
condicin (lgica). finsi
Pueden ser simples o mltiples
Si (condicin) entonces (lgica verdadero)
Se pueden utilizar de manera . instrucciones
anidada de forma indefinida. Sino (caso contrario falso)
instrucciones
Finsi

21 22
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ejemplo Estructura de Control Repetitivas


Algoritmo numeroparimpar repeticin de un nmero determinado de sentencias en base a una
Inicio condicin lgica.
desplegar: Digite numero" Se conoce tambin como bucle.
Leer numero Es importante tener en cuenta:
Si (numero/2==0) cuantas veces se repite el bucle o ciclo,
desplegar: "numero par" cul es el cuerpo del mismo.
Sino El cuerpo del bucle lo constituyen:
desplegar: "numero impar" una serie de sentencias, que pueden ser de cualquier tipo,
Finsi las que sern repetidas de acuerdo a lo que indique la
condicin de finalizacin del bucle.
fin

23 24
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 4


3/13/2017

Mientras (condicin) hacer


.. instrucciones
Elementos de un Algoritmo
Fin_mientras inicio Fin incluye limite
1. Expresiones
Una expresin consta de operandos y operadores, segn sea el tipo
Desde num 20 hasta 30 hacer de objetos que manipulan las expresiones puede ser de tipo:
aritmticas, lgicas, relacionales y a nivel de bit.
. instrucciones
Fin_desde 2. Operadores
Un operador es un smbolo formado por uno o ms caracteres que
permite realizar una determinada operacin entre uno o ms datos y
Hacer produce un resultado. Indican las operaciones a aplicar sobre los
variable
. instrucciones operandos. (+,-,*,/,>,<, !=, <>, %)
Mientras (condicin)
Las expresiones son combinacin de operandos que representan
constantes, variables, smbolos de operacin, parntesis, mtodos o
Repetir cmputos que devuelven un valor.
Ejemplos: c = a * b + 5
Hasta_que (condicin) x =(b+c)*d/7

25 26
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Tipos de Operadores Existentes Tipos de Expresiones


Aritmticas
5+3
5*4+6 (5 * 4)+6
Lgicas
(1 > 2) (verdadero)
relacionales
(1 > 2)&&(2 > 3) (verdadero)

27 28
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Tipos de Expresiones Tipos de Expresiones


Se extrae de memoria el valor de las 1. Expresiones Aritmeticas
variables
2. Expresiones Logicas (Simple o compuesta)
Se realiza el clculo
3. Expresiones de caracter o alfanumerica
Se asigna el resultado a la variable
de la izquierda

Expresiones no vlidas:
A+c*7=d
7 = 10

29 30
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 5


3/13/2017

Jerarqua de operadores
Jerarqua de operadores Construccin de Expresiones Aritmticas
Ahora aprenderemos tanto a construir como a evaluar
expresiones aritmticas. Para ambas actividades
C tiene cuatro clases generales de operadores:
aritmticos, a nivel de BIT, relacionales y lgicos. debemos tener en cuenta:
1. El orden o reglas de jerarqua de los operadores
Los operadores aritmticos funcionan igual que en C y
C++. 2. Los Mtodos.
El resultado de los operadores relacionales y lgicos es
un valor bool. ya que de ello depende que elaboremos la expresin
Los operadores de cortocircuito evalan el segundo correcta y que evaluemos correctamente una
operando solo cuando es necesario.
expresin para obtener el resultado correcto.
Los operadores a nivel de BIT no se pueden aplicar a
tipos bool, float, double o decimal. Lo que aprendamos en esta seccin lo aplicaremos
luego en el diseo de las soluciones utilizando la
tcnica de algoritmos esquematizados - flujogramas
31 32
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Jerarqua de Operadores Jerarqua de Operadores


Jerarqua de Operadores y Metodos

Operador Nombre Prioridad Expresiones Aritmticas


() Parntesis Mayor
Math.Metodo() Metodos 5%2= ?
- Cambios de Signo o menos unario
*, /, % Multiplicacin, division, Residuo
+, - Sumar y restar Menor
Nota: Los parntesis no son operadores, son smbolos de agrupacin y nos sirven
para indicar qu se debe realizar primero, es decir, ROMPEN LA JERARQUIA para
que se evalu primero lo que est contenido dentro de estos.
Muy Importante: Recuerde que los operadores aritmticos devuelven un valor de
Aritmticos
acuerdo al tipo de dato de los operadores, as: 5%2= 1
Ambos operandos enteros, el resultado es entero
Al menos un operador real el resultado es real.

Ejemplo:
5/2=2
5.0 / 2 = 2.5
33 34
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Jerarqua de Operadores Jerarqua de Operadores


Expresiones Aritmticas Expresiones Aritmticas
1/3=? 3*2=?
% Regresa el 1/3=0 3*2=6
residuo de la divisin 1%3=? 3.0 * 2 = ?
6%2=0 1%3=1 3.0 * 2 = 6.0
5.0 % 2 = 1
2.5 % 2 = 0.5
1.5 % 2 = 1.5

35 36
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 6


3/13/2017

Construccin de Expresiones
Aritmticas Expresiones Aritmticas
Procedimiento para Construir expresiones aritmticas:
Ejemplos:
A continuacin se detallan cada uno de los pasos que se deben de seguir Construir las siguiente expresiones matemticas a aritmticas:
para construir una expresin aritmtica.
1. Definicin de operandos en identificadores ya sean variables y/o
constantes definidas por el programador.
2. Conversin de operadores matemticos a aritmticos.
3. Reemplazar las funciones matemticas a metodos por valores
asociados a las variables y/o constantes. Y parntesis si los hay.
4. Evaluar expresiones.

37 38
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Evaluacin de Expresiones Evaluacin de Expresiones


Aritmticas Aritmticas
Procedimiento para evaluar expresiones aritmticas: a continuacin se 3. Una vez hemos ubicado la expresin a evaluar, buscamos primero las
detallan cada uno de los pasos que se deben de seguir para evaluar funciones, si las hay las resolvemos una a una en orden de izquierda
una expresin aritmtica. a derecha.
1. Sustitucin de variables y constantes: se deben extraer de la memoria 4. Despus de evaluar los metodos, se ejecutan los operadores
los valores actuales de las variables y constantes con nombre que aritmticos, primero los operadores de ms alta jerarqua; tomando en
aparezcan al lado derecho de la flecha o signo =, es decir, reemplazar cuenta que los operadores que tienen igual jerarqua s evalan de
los nombres por los valores asociados a las variables y/o constantes. En izquierda a derecha.
caso que no existan nombre de variable y de constante en la expresin 5. Finalmente, se asigna el valor resultado de esta expresin a la variable
continuar en el paso 2 que aparece al lado izquierdo de la flecha.
2. Revisar S existen expresiones encerradas entre parntesis, stas se NOTA: es importante recalcar que al aplicar este procedimiento se debe
evalan primero, pero teniendo cuidado que S existen parntesis resolver la expresin (segn orden de jerarqua) evaluando una funcin
anidados se evalan primero las expresiones en los parntesis ms o una operacin a la vez (vase ejemplos en pg. 8 Semana 4), es
internos, la evaluacin de los parntesis se har de izquierda a decir, una operacin por lnea: se debe realizar los clculos uno a uno
derecha como lo hace la computadora, as se evitarn errores.
39 40
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Expresiones Aritmticas CLASE MATH


Ejemplos: Proporciona una serie de constantes y
Evaluar las siguiente expresiones aritmticas:
funciones de uso muy comn en
1. X=53*(5*(3+4)%2) expresiones aritmticas.
2. X=53*(5*7%2) Math es una clase perteneciente al espacio
3. X = 5 3 * ( 35 % 2 ) de nombres System. Los mtodos de la
4. X=53*1 clase Math realizan clculos matemticos
5. X=53 bsicos. A continuacin, algunos:
Nombre Descripcin
6. X=2 E Representa la base logartmica natural, especificada por la constante, e.
Representa la relacin entre la longitud de la circunferencia de un crculo y su
PI
dimetro, especificada por la constante .

41 42
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 7


3/13/2017

Metodos de Clase Math Mtodos Importante de Clase Math


TABLA DE FUNCIONES MATEMATICAS
Funcin Matemtica usada en Funcin Matemtica usada en Observacin using System; //Aplicacin corrida en https://dotnetfiddle.net/
Libros Programacin

|x| Abs(x) Valor absoluto de un numero public class Program


La base y exponente pueden ser enteros o reales
{
bx Pow(b,x) public static void Main()
sen x Sin(x) X es un valor en radianes {
cos x Cos(x) X es un valor en radianes double x = 1.0;
double y = 2.0;
tan x Tan(x) X es un valor en radianes
double angle;
x Sqrt(x) X es un valor entero o real double radians;
Valor de e elevado a la potencia x
double result;
ex Exp(x)
ln(x) Log(x) Calcula el logaritmo base e de x // Calculate the tangent of 30 degrees.
10x Pow10(x) Calcula 10 elevado a la x angle = 30;
radians = angle * (Math.PI/180);
log(x) Log10(x) Calcula el logaritmo base 10 de x
result = Math.Tan(radians);
No aplica: No existe representacin, ya que una variable solo puede guardar un valor a la vez, por lo que en estos Console.WriteLine("La tangente de 30 grados es {0}.", result);
casos se guarda el valor positivo en una variable y el valor negativo en otra variable.
}
X puede ser cualquier valor entero o real (ej. 2), real (ej. 0.5) expresin aritmtica (ej. A+B)
}
Nota: Las funciones trigonomtricas solo procesan ngulos en radianes. Por lo que hay que realizar la conversin necesaria para calcular la
funcin o mtodo trigonomtrico de un ngulo dado en grados, esto aplicando una regla de tres simple usando el factor 180 / 3.1416)

43 44
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Otros Mtodos Importante de


Clase Math Expresiones Aritmticas
Constantes de coma flotante
Ejemplos:
Math.E Construir las siguiente expresiones matemticas a aritmticas:
Regresa la base del logaritmo natural
Math.PI
Regresa el valor de (3 141593)
Otros Metodos:
Math.Round(n)
Redondea al nmero mas cercano sin parte decimal o con una determinada
precisin.
Math.Max(exp1,exp2)
Regresa el mayor entre exp1 y exp2
Math.Min(exp1,exp2)
Regresa el menor entre exp1 y exp2

45 46
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Expresiones Aritmticas Expresiones Aritmticas con Math


Ejemplos: 1. Y = 5 / Pow ( 3 , 2 ) + ( 7 % ( 10 5 ) * 3.0 ) + 2 * 5
Construir las siguiente expresiones matemticas a aritmticas: 2. Y = 5 / Pow ( 3 , 2 ) + ( 7 % 5 * 3.0 ) + 2 * 5
3. Y = 5 / Pow ( 3 , 2 ) + ( 2 * 3.0 ) + 2 * 5
4. Y = 5 / Pow ( 3 , 2 ) + 6.0 + 2 * 5
5. Y = 5 / 9.0 + 6.0 + 2 * 5
6. Y = 0.56+ 6.0 + 2 * 5
S
7. Y = 0.56+ 6.0 + 10
8. Y = 6.56 + 10
9. Y = 16.56

47 48
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 8


3/13/2017

Expresiones Aritmticas con Math


Expresiones Aritmticas con Math
Ejemplo: Luego, sustituimos el valor de la variable r y
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.0 )
4. V = 4 / 3 * 392.70
5. V = 1 * 392.70
6. V = 392.70

49 50
Ing Luis Barrera - IAI115 - 2017 Ing Luis Barrera - IAI115 - 2017

Ing. Luis Barrera 9

Anda mungkin juga menyukai