Programacion Estructuras
Programacion Estructuras
Programacion Estructuras
ALGORITMOS
DEFINICIÓN
HISTORIA
Algoritmo proviene de Mohammed al-alkhowârizmî, matemático persa
que vivió durante el siglo IX y alcanzo gran reputación por el enunciado de
las reglas paso a paso para sumar, restar, multiplicar y dividir números
decimales; la traducción al latín del apellido en la palabra algoritmus
derivó posteriormente en algoritmo.
ALGORITMOS
Para realizar un proceso se le debe suministrar al procesador
un algoritmo adecuado.
• DISPOSITIVOS DE ENTRADA
ALGORITMOS
LENGUAJES DE PROGRAMACIÓN:
Lenguaje maquina
Lenguaje de bajo nivel (Ensamblador)
Lenguaje de nivel medio
Lenguaje de alto nivel
ALGORITMOS
TIPOS DE ALGORITMOS
Especificaciones de entrada
¿Qué datos son de entrada?
¿Cuántos datos se introducirán?
¿Cuántos son datos de entrada válidos?
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE
COMPUTADORA
Diseño del algoritmo…
Ejemplo…
Especificaciones de salida
¿Cuáles son los datos de salida?
¿Cuántos datos de salida se producirán?
¿Qué precisión tendrán los resultados?
¿Se debe imprimir una cabecera?
Codificación
Documentación
Mantenimiento
Datos Numéricos
Datos Lógicos
Datos Alfanuméricos (String)
ALGORITMOS
ALGORITMOS
EXPRESIONES
valor
ALGORITMOS
EXPRESIONES
Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
ALGORITMOS
EXPRESIONES
Operadores Aritméticos
Ejemplos:
Expresión Resultado
7/2
mod (12,7 )
4+2*5
ALGORITMOS
EXPRESIONES
Operadores Aritméticos
• Prioridad de los Operadores Aritméticos:
Operadores Aritméticos
Ejemplos:
4+2*5
23 * 2 / 5
3 + 5 * (10 - (2 + 4))
3.5 + 5.09 - 14.0 / 40
2.1 * (1.5 + 3.0 * 4.1)
ALGORITMOS
EXPRESIONES
Operadores Relacionales
Operadores Relacionales
Operadores Relacionales
Ejemplos:
Si a = 10 b = 20 c = 30
a+b>c
a-b<c
a-b=c
a*b~>c
ALGORITMOS
EXPRESIONES
Operadores Lógicos:
Estos operadores se utilizan para establecer relaciones entre
valores lógicos.
Estos valores pueden ser resultado de una expresión relacional.
Operadores Lógicos
And Y &
Or O |
Not Negación ~
ALGORITMOS
EXPRESIONES
Operadores Lógicos:
ALGORITMOS
EXPRESIONES
Operadores Lógicos:
ALGORITMOS
EXPRESIONES
Operadores Lógicos:
ALGORITMOS
IDENTIFICADORES
Ejemplo:
Nombre
Num_hrs;
Calif2
ALGORITMOS
IDENTIFICADORES
Inicio
Acción 1
Acción 2
.
.
Acción N
Fin
ALGORITMOS
Estructuras Secuenciales
Asignación: La asignación consiste, en el paso de valores o
resultados a una zona de la memoria. Dicha zona será reconocida
con el nombre de la variable que recibe el valor. La asignación se
puede clasificar de la siguiente forma:
Leer a, b
Donde “a” y “b” son las variables que recibirán los valores
Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable
que contiene un valor.
ALGORITMOS
Problemas Secuenciales
Un alumno desea saber cual será su promedio general en las tres materias
mas difíciles que cursa y cual será el promedio que obtendrá en cada una
de ellas. Estas materias se evalúan como se muestra a continuación:
ESTRUCTURAS CONDICIONALES
Simples:
Las estructuras condicionales simples se les conoce
como “Tomas de decisión”. Estas tomas de decisión
tienen la siguiente forma:
si <condición> entonces
acción(es)
fin si
ESTRUCTURAS ALGORITMICAS
Simples:
Sintaxis en MatLab
if <condición>
acción(es)
end
ESTRUCTURAS ALGORITMICAS
Simples:
Ejemplos
Un hombre desea saber cuanto dinero se genera
por concepto de intereses sobre la cantidad que
tiene en inversión en el banco. El decidirá reinvertir
los intereses siempre y cuando estos excedan a
$7000, y en ese caso desea saber cuanto dinero
tendrá finalmente en su cuenta.
ESTRUCTURAS ALGORITMICAS
Simples:
Solucion
% CÁLCULO CAPITAL FINAL % PROCESO
% **************************** % ***********************************
clc CAP=input('Ingrese el capital invertido: ');
clear PI=input('Ingrese el interes (porcentaje) :');
close all
I=PI/100;
% VARIABLES
% ******************************* IT=CAP*I;
% ENTRADA:
% --------------------------------- if IT > 7000
% CAP= CAPITAL CAPF= CAP + IT;
% PI= INTERES end
% SALIDA:
% -----------------------------------
fprintf('El capital en el banco es %6.1f\n',CAPF)
% TI=TOTAL INTERES
% CAPF=CAPITAL FINAL
% *********************************
ESTRUCTURAS ALGORITMICAS
Dobles:
Las estructuras condicionales dobles permiten elegir
entre dos opciones o alternativas posibles en función del
cumplimiento o no de una determinada condición. Se
representa de la siguiente forma:
si <condición> entonces
acción(es)
si no
acción(es)
fin-si
ESTRUCTURAS ALGORITMICAS
Dobles:
Sintaxis en MatLab
if <condición>
acción(es)
else
acción(es)
end
ESTRUCTURAS ALGORITMICAS
Dobles:
Ejemplos
Determinar si un alumno aprueba a reprueba un
curso, sabiendo que aprobará si su promedio de
tres calificaciones es mayor o igual a 3.0; reprueba
en caso contrario.
En un almacén se hace un 20% de descuento a los
clientes cuya compra supere los $100000 ¿ Cual
será la cantidad que pagara una persona por su
compra?
ESTRUCTURAS ALGORITMICAS
Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión
especializadas que permiten comparar una variable contra distintos
posibles resultados, ejecutando para cada caso una serie de
instrucciones especificas. La forma común es la siguiente:
si <condición> entonces
acción(es)
sino
si <condición> entonces
acción(es)
sino
acción(es)
fin si
fin si
ESTRUCTURAS ALGORITMICAS
Múltiples:
Ejemplos
if condición 1
declaraciones A1
elseif condición 2
declaraciones A2
elseif condición 3
declaraciones A3
:
:
elseif condición n
declaraciones An
end
ESTRUCTURAS ALGORITMICAS
Múltiples:
Ejemplos
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise, % opción por defecto
bloque3
end
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución
es necesario utilizar un mismo conjunto de acciones que se puedan
ejecutar una cantidad especifica de veces. Esta cantidad puede ser
fija (previamente determinada por el programador) o puede ser
variable (estar en función de algún dato dentro del programa).
La sintaxis es la siguiente:
for i = 1:N
Acción 1
Acción 2
.
.
.
Acción N
end
ESTRUCTURAS ALGORITMICAS
Ejemplos:
clc
clear
close all
suma=0;
for i=1:100
suma=suma+i*i;
end
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Determinado de Iteraciones (for)
Ejemplos:
Ejercicios:
clc
clear
close all
for i = 1:n
fprintf('Ingrese la calificación %1.0f',i)
calificacion = input('= ');
sum = sum + calificacion;
end
promedio = sum /n;
fprintf('Su promedio es %3.1f\n',promedio)
ESTRUCTURAS ALGORITMICAS
clc
clear
close all
for i = 1:n
fprintf('Ingrese la calificacion %1.0f',i)
calificacion = input('= ');
p=input('% de la calificacion: ');
sum = sum + calificacion*p;
end
promedio = sum;
La sintaxis es la siguiente:
while (condición)
declaración 1
declaración 2
:
:
declaración n
end
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
clc
clear
close all
i=0;
suma=0;
while i < n
i=i+1;
suma=suma+i*i;
fprintf('para i = %2.0f, suma = %3.0f\n',i,suma)
end
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
While
Ejemplo2:
num = input('Ingrese un número positivo: ');
i=0;
while i<=num
i=i+1;
disp(i)
end
ESTRUCTURAS ALGORITMICAS
Ejemplo1: calcular el volumen de las esferas de radio 1 hasta 5
clc
clear
close all
r=0;
while r < 5
r=r+1;
V=4/3*pi*r^3;
fprintf('para r = %2.0f, Volumen = %3.2f\n',r,V)
end
MATRICES EN MATLAB
OPERACIONES CON MATRICES
Los valores de los elementos de una matriz A 3X3 se indican
mediante una sentencia de la forma:
A=[3, 2, 1 ; 0, 2, 2 ; 1, 3, 4]
A=
3 2 1
0 2 2
1 3 4
OPERACIONES CON MATRICES
De la misma forma,
C=
5 4 3
OPERACIONES CON MATRICES
Definir una matriz en términos de otra
B=[3, 1 , 2]
C=[5, 4, 3]
A=[5, 4, 3;B]
A=
5 4 3
3 1 2
OPERACIONES CON MATRICES
Definir una matriz en términos de otra
B=[3, 1 , 2] A=
A=[5, 4, 3;B] 5 4 3
C=[5, 4, 3] 3 1 2
D=[2,C]
D=
2 5 4 3
OPERACIONES CON MATRICES
Se pueden cambiar los valores en una matriz, o incluir
valores Adicionales, con un numero índice para especificar
un elemento en particular.
A=
5 4 3 D=
3 1 2 2 5 4 3
D(2)=5 A(2,3)=D(2)
A=
A(6)=2 5 4 3
3 1 5
A(2,3)=2
OPERACIONES CON MATRICES
Se pueden extender los valores en un vector.
D=
2 5 4 3
D(8) = 10
D=
2 5 4 3 0 0 0 10
OPERACIONES CON MATRICES
Uso del operador dos puntos (:)
H=1:8
Regresa
H=
1 2 3 4 5 6 7 8
OPERACIONES CON MATRICES
Uso del operador dos puntos (:)
M(2,3) o M(8)
M(1,end)
M(end, end)
M(end)
OPERACIONES CON MATRICES
Funciones para crear y manipular matrices
Multiplicación de matrices
OPERACIONES CON MATRICES
División de matrices
Calcular:
- A - B + C.
A + B - C.
3A + C/2.
(A · B) /C
OPERACIONES CON MATRICES
Ejercicios de práctica
Para la siguiente matriz:
1. (A + B)T = AT + BT.
2. (AT)T = A.
3. (kA)T = kAT (si k es un escalar).
4. (AB)T = BTAT.
OPERACIONES CON MATRICES
Ejercicios de práctica
Números aleatorios:
fliplr(A)
GRAFICAS
LINEALIZACION
EJERCICIOS:
LINEALIZACION
EJERCICIOS:
LINEALIZACION
EJERCICIOS:
LINEALIZACION
EJERCICIOS:
LINEALIZACION
EJERCICIOS:
Del ejercicio anterior determine el valor correspondiente de k para cada
conjunto de valores (Cp vs t).
CURVE FITTING
ECUACIONES DIFERENCIALES
MatLab nos permite resolver ecuaciones
diferenciales.
Para ilustrar el procedimiento consideremos
una ecuación diferencial de primer orden:
dy (t )
2* y (t ) 5
dt
En MatLab la primera derivada = Dy
Segunda derivada=D2y
n-esima derivada=Dny
ECUACIONES DIFERENCIALES
Se puede resolver en MatLab con
A=dsolve(‘2*Dy+y=5’)
A=
5+exp(-1/2*t)*C1
Donde C1 es una constante
Si se tienen las condiciones iniciales
y(0)=0, se indican dentro de dsolve de la
siguiente manera:
A=dsolve(‘2*Dy+y=5’ , ‘y(0)=0’)
ECUACIONES DIFERENCIALES
Y se obtiene:
A=
5-5*exp(-1/2*t)
d2y(t)/dt2 + y(t)=4
y(t)=seno(2 ft)