Вы находитесь на странице: 1из 116

PROGRAMACIÓN

ALGORITMOS
DEFINICIÓN

•Conjunto finito de instrucciones o pasos que sirven para ejecutar una


tarea o resolver un problema.
•Una secuencia ordenada de pasos que conduce a la solución de un
problema concreto, sin ambigüedad alguna, en un tiempo finito.
•Formula para la resolución de un problema.
•Método para resolver un problema.

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.

PROGRAMA: Es el conjunto de instrucciones escritas de algún


lenguaje de programación y que ejecutadas secuencialmente
resuelven un problema especifico.

A la actividad de expresar un algoritmo en forma de programa se llama


programación.

• DISPOSITIVOS DE ENTRADA
• DISPOSITIVOS DE SALIDA
ALGORITMOS
LENGUAJES DE PROGRAMACIÓN:

Es un conjunto de símbolos, caracteres y reglas (programas) que le


permiten a las personas comunicarse con la computadora.

Conjunto de instrucciones que nos permiten realizar operaciones de


entrada/salida, calculo, manipulación de textos, lógica/comparación
y almacenamiento/recuperación.

Lenguaje maquina
Lenguaje de bajo nivel (Ensamblador)
Lenguaje de nivel medio
Lenguaje de alto nivel
ALGORITMOS

TIPOS DE ALGORITMOS

Cualitativos: Son aquellos en los que se


describen los pasos utilizando palabras.

Cuantitativos: Son aquellos en los que se


utilizan cálculos numéricos para definir los pasos
del proceso.
ALGORITMOS
Lenguajes Algorítmicos: Es una serie de símbolos y
reglas que se utilizan para describir de manera explícita un
proceso.

Tipos de Lenguajes Algorítmicos:

Gráficos: Es la representación gráfica de las operaciones


que realiza un algoritmo (diagrama de flujo).

No Gráficos: Representa en forma descriptiva las


operaciones que debe realizar un algoritmo
(pseudocódigo).
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Dos fases pueden ser identificadas en el proceso de creación de un


programa:
•Fase de resolución del problema.
•Fase de implementación (realización) en un lenguaje de
programación.

La fase de resolución del problema implica la perfecta comprensión


del problema, el diseño de una solución conceptual y la
especificación del método de resolución detallando las acciones a
realizar mediante un algoritmo.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Definición del Problema: Esta fase está dada por el


enunciado del problema, el cual requiere una definición
clara y precisa (no debe ser ambigua). Es importante
que se entienda perfectamente lo que pretendemos que
haga la computadora para poder continuar con la
siguiente etapa.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO
DE COMPUTADORA

Análisis del Problema: Una vez que se ha comprendido lo


que se desea que la computadora haga, la etapa de análisis
es muy importante ya que en ésta se identifican tres factores
indispensables:

1. Qué información se necesita para obtener el resultado


deseado (datos de entrada).
2. Qué información se desea producir (datos de salida).
3. Los métodos y fórmulas que se necesitan para procesar
los datos y producir esa salida.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO
DE COMPUTADORA

Diseño del algoritmo. Secuencia ordenada de pasos, sin


ambigüedades, que conducen a la solución de un problema dado y
puede ser expresado en lenguaje natural. por ejemplo el castellano.

Todo algoritmo debe ser:


•Preciso. Indicando el orden de realización de cada uno de los pasos.
•Definido. Si se sigue el algoritmo varias veces proporcionándole los
mismos datos, se deben obtener siempre los mismos resultados.
•Finito. Al seguir el algoritmo, éste debe terminar en algún momento, es
decir tener un número finito de pasos.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Diseño del algoritmo…

Para diseñar un algoritmo se debe comenzar por identificar las


tareas más importantes para resolver el problema y
disponerlas en el orden en el que han de ser ejecutadas. Los
pasos en esta primera descripción de actividades deberán ser
refinados, añadiendo más detalles a los mismos e incluso,
algunos de ellos, pueden requerir un refinamiento adicional antes
de que podamos obtener un algoritmo claro, preciso y completo.
Este método de diseño de los algoritmos en etapas, yendo de los
conceptos generales a los de detalle a través de refinamientos
sucesivos, se conoce como método descendente (top-down).
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO
DE COMPUTADORA

Diseño del algoritmo…


En un algoritmo se deben de considerar tres partes:
• Entrada. Información dada al algoritmo.
• Proceso. Operaciones o cálculos necesarios para encontrar la solución
del problema.
• Salida. Respuestas dadas por el algoritmo o resultados finales de los
cálculos.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO
DE COMPUTADORA

Diseño del algoritmo…

Ejemplo: suponer que desea desarrollar un algoritmo que calcule la


superficie de un rectángulo proporcionándole su base y altura. Lo
primero que deberá hacer es plantearse y contestar a las siguientes
preguntas:

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?

El algoritmo en el primer diseño se podrá representar con los siguientes


pasos:
Paso 1. Entrada desde periférico de entrada, por ejemplo teclado, de base y
altura.
Paso 2. Cálculo de la superficie, multiplicando la base por la altura.
Paso 3. Salida por pantalla de base, altura y superficie.
ALGORITMOS

METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS


POR MEDIO DE COMPUTADORA

Diseño del algoritmo…

El lenguaje algorítmico debe ser independiente de cualquier


lenguaje de programación particular, pero fácilmente
traducible a cada uno de ellos. Alcanzar estos objetivos
conducirá al empleo de métodos normalizados para la
representación de algoritmos, tales como los diagramas de
flujo o pseudocódigo.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Codificación

La codificación es la operación de escribir la solución del problema


(de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en
una serie de instrucciones detalladas, en un código reconocible por
la computadora. La serie de instrucciones detalladas se le conoce
como código fuente, el cual se escribe en un lenguaje de
programación o lenguaje de alto nivel.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE
COMPUTADORA

Prueba y depuración . Proceso de identificar y eliminar errores, para dar


paso a una solución sin errores.

La depuración o prueba resulta una tarea tan creativa como el mismo


desarrollo de la solución, por ello se debe considerar con el mismo interés
y entusiasmo.

Una vez que se ha terminado de escribir un algoritmo es necesario


comprobar que realiza las tareas para las que se ha diseñado y produce el
resultado correcto y esperado. El modo más normal de comprobar un
algoritmo es mediante su ejecución manual, usando datos significativos
que abarquen todo el posible rango de valores y anotando en una hoja de
papel las modificaciones que se producen en las diferentes fases hasta la
obtención de los resultados.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Documentación

Es la guía o comunicación escrita es sus variadas formas, ya sea en


enunciados, procedimientos, dibujos o diagramas.

A menudo un programa escrito por una persona, es usado por otra.


Por ello la documentación sirve para ayudar a comprender o usar un
programa o para facilitar futuras modificaciones (mantenimiento).
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO
DE COMPUTADORA
Documentación…
Se divide en tres partes: Interna, Externa y Manual del Usuario.
Interna: Son los comentarios o mensaje que se añaden al código fuente
para hacer mas claro el entendimiento de un proceso.
Externa: Se define en un documento escrito los siguientes puntos:
Descripción del Problema
Nombre del Autor
Algoritmo (diagrama de flujo o pseudocodigo)
Diccionario de Datos
Código Fuente (programa)
Manual del Usuario: Describe paso a paso la manera como
funciona el programa, con el fin de que el usuario obtenga el resultado
deseado.
ALGORITMOS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR
MEDIO DE COMPUTADORA

Mantenimiento

Se lleva acabo después de terminado el programa, cuando se


detecta que es necesario hacer algún cambio, ajuste o
complementación al programa para que siga trabajando de manera
correcta. Para poder realizar este trabajo se requiere que el
programa este correctamente documentado.
ALGORITMOS
TIPOS DE DATOS

Todos los datos tienen un tipo asociado con ellos. Un dato


puede ser un simple carácter, tal como ‘b’, un valor entero tal
como 35. El tipo de dato determina la naturaleza del conjunto
de valores que puede tomar una variable.

Datos Numéricos
Datos Lógicos
Datos Alfanuméricos (String)
ALGORITMOS
EXPRESIONES
Las expresiones son combinaciones de constantes, variables,
símbolos de operación, paréntesis y nombres de funciones
especiales. Por ejemplo:
a+(b+3)/c
Una expresión consta de operadores y operandos. Según sea el
tipo de datos que manipulan, se clasifican las expresiones en:

- Aritméticas
- Relaciónales
- Lógicas
ALGORITMOS
EXPRESIONES

Operadores: Son elementos que relacionan de forma diferente, los


valores de una o mas variables y/o constantes. Es decir, los
operadores nos permiten manipular valores.

Operadores Aritméticos: Los operadores aritméticos permiten la


realización de operaciones matemáticas con los valores (variables y
constantes). Pueden ser utilizados con tipos de datos enteros o
reales. Si ambos son enteros, el resultado es entero; si alguno de
ellos es real, el resultado es real.
Operando (Operador) Operando

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:

Todas las expresiones entre paréntesis se evalúan primero. Las


expresiones con paréntesis anidados se evalúan de dentro a fuera, el
paréntesis mas interno se evalúa primero.
Dentro de una misma expresión los operadores se evalúan en el siguiente
orden.
1. ^ (Exponenciación)
2. *, /, mod (Multiplicación, división, modulo)
3.+, - (Suma y resta)

Los operadores en una misma expresión con igual nivel de prioridad se


evalúan de izquierda a derecha.
ALGORITMOS
EXPRESIONES

Operadores Aritméticos

Prioridad de los 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

•Se utilizan para establecer una relación entre dos valores.


•Compara estos valores entre si y esta comparación produce un
resultado de certeza o falsedad (verdadero o falso).
•Los operadores relaciónales comparan valores del mismo tipo
(numéricos o cadenas)
•Tienen el mismo nivel de prioridad en su evaluación.
•Los operadores relaciónales tiene menor prioridad que los
aritméticos.
ALGORITMOS
EXPRESIONES

Operadores Relacionales

> Mayor que


< Menor que
>= Mayor o igual que
<= Menor o igual que
~= Diferente
== Igual
ALGORITMOS
EXPRESIONES

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

Los identificadores representan los datos de un programa (constantes,


variables, tipos de datos). Un identificador es una secuencia de caracteres
que sirve para identificar una posición en la memoria de la computadora,
que nos permite accesar a su contenido.

También se puede utilizar para dar nombre a funciones o procedimientos.

Ejemplo:
Nombre
Num_hrs;
Calif2
ALGORITMOS
IDENTIFICADORES

Reglas para formar un Identificador


- Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben
contener espacios en blanco.
- Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después
del primer carácter.
- La longitud de identificadores puede ser de hasta 8 caracteres. Se permiten
mas caracteres, pero no es recomendable.
- Debe resultar significativo, que dé una idea de la información que almacena.
- No podrá coincidir con palabras reservadas, propias del lenguaje algorítmico.
- MatLab distingue mayúsculas de minúsculas (viene de C).
- Es usual escribir variables en minúscula, dejando las mayúsculas para las
constantes. En los casos de nombres compuestos se suele poner la inicial de
la segunda palabra en mayúscula.
ALGORITMOS
ALGORITMOS
ALGORITMOS

Recomendaciones para el diseño de Diagramas de Flujo

•Se deben se usar solamente líneas de flujo horizontales y/o


verticales.
•Se debe evitar el cruce de líneas utilizando los conectores.
•Se deben usar conectores solo cuando sea necesario.
•No deben quedar líneas de flujo sin conectar.
•Se deben trazar los símbolos de manera que se puedan leer
de arriba hacia abajo y de izquierda a derecha.
•Todo texto escrito dentro de un símbolo deberá ser escrito
claramente, evitando el uso de muchas palabras.
ALGORITMOS

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma)


que se emplea, dentro de la programación estructurada, para realizar el diseño
de un programa. En esencial, el pseudocódigo se puede definir como un
lenguaje de especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un algoritmo para


dar solución a un problema determinado. El pseudocodigo utiliza palabras
que indican el proceso a realizar.

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel.


Permite representar en forma fácil operaciones repetitivas complejas.
Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de
programación.
Si se siguen las reglas se puede observar claramente los niveles que tiene cada
operación.
ESTRUCTURAS ALGORITMICAS
ALGORITMOS
Estructuras Secuenciales

La estructura secuencial es aquella en la que una acción (instrucción)


sigue a otra en secuencia. Las tareas se suceden de tal modo que la
salida de una es la entrada de la siguiente y así sucesivamente
hasta el fin del proceso. Una estructura secuencial se representa
de la siguiente forma:

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:

• Simples: Consiste en pasar un valor constate a una variable


(a=15)
• Contador: Consiste en usarla como un verificador del numero de
veces que se realiza un proceso (a=a+1)
• Acumulador: Consiste en usarla como un sumador en un proceso
(a=a+b)
• De trabajo: Donde puede recibir el resultado de una operación
matemática que involucre muchas variables (a=c+b*2/4).
ALGORITMOS
Estructuras Secuenciales

- Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el


teclado) un valor. Esta operación se representa en un pseudocodigo como sigue:

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

- Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o


impresora) un resultado o mensaje. Este proceso se representa en un
pseudocodigo como sigue:

Escribe “El resultado es:”, R

Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable
que contiene un valor.
ALGORITMOS
Problemas Secuenciales

Suponga que un individuo desea invertir su capital en un banco y desea


saber cuanto dinero ganará después de un mes si el banco paga a razón
de 2% mensual.

Un vendedor recibe un sueldo base mas un 10% extra por comisión de


sus ventas, el vendedor desea saber cuanto dinero obtendrá por concepto
de comisiones por las tres ventas que realiza en el mes y el total que
recibirá en el mes tomando en cuenta su sueldo base y comisiones.

Un alumno desea saber cual será su calificación final en la materia de


Algoritmos. Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% de la calificación del examen final.
15% de la calificación de un trabajo final.
Problemas Secuenciales
Un maestro desea saber que porcentaje de hombres y que porcentaje de
mujeres hay en un grupo de estudiantes.

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:

La calificación de Matemáticas se obtiene de la sig. manera:


Examen 90%
Promedio de tareas 10%
En esta materia se pidió un total de tres tareas.
La calificación de Física se obtiene de la sig. manera:
Examen 80%
Promedio de tareas 20%
En esta materia se pidió un total de dos tareas.
La calificación de Química se obtiene de la sig. manera:
Examen 85%
Promedio de tareas 15%
En esta materia se pidió un promedio de tres tareas.
ESTRUCTURAS ALGORITMICAS

ESTRUCTURAS CONDICIONALES

Las estructuras condicionales comparan una variable contra


otro(s) valor(es), para que en base al resultado de esta
comparación, se siga un curso de acción dentro del
programa. Cabe mencionar que la comparación se puede
hacer contra otra variable o contra una constante, según se
necesite. Existen dos tipos básicos, las simples y las
múltiples.
ESTRUCTURAS ALGORITMICAS

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

Leer tres números diferentes e imprimir el numero mayor de los tres

Determinar la cantidad de dinero que recibirá un trabajador por


concepto de las horas extras trabajadas en una empresa, sabiendo
que cuando las horas de trabajo exceden de 40, el resto se
consideran horas extras y que estas se pagan al doble de una hora
normal cuando no exceden de 8; si las horas extras exceden de 8 se
pagan las primeras 8 al doble de lo que se pagan las horas normales
y el resto al triple.
ESTRUCTURAS ALGORITMICAS
Múltiples:
Instrucción elseif : Con esta declaración se puede evaluar un mayor
numero de condiciones
La sintaxis es:

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

Calcular la utilidad que un trabajador recibe en el reparto anual de


utilidades, si este se le asigna como un porcentaje de su salario
mensual, que depende de su antigüedad en la empresa de acuerdo
con la sig. tabla:
Tiempo Utilidad
Menos de 1 año 5 % del salario
1 año o mas y menos de 2 años 7% del salario
2 años o mas y menos de 5 años 10% del salario
5 años o mas y menos de 10 años 15% del salario
10 años o mas 20% del salario
ESTRUCTURAS ALGORITMICAS
Múltiples:
Ejercicio

Una frutería ofrece las manzanas con descuento según la siguiente


tabla:

NUM. DE KILOS COMPRADOS % DESCUENTO


0-2 0%
2.01 - 5 10%
5.01 - 10 15%
10.01 en adelante 20%

Determinar cuanto pagará una persona que compre manzanas es esa


frutería.
ESTRUCTURAS ALGORITMICAS
SENTENCIA SWITCH

La sentencia switch realiza una función análoga a un conjunto de if...elseif


concatenados. Su forma general es la siguiente:

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).

Ciclos con un Numero Determinado de Iteraciones (for)

Ciclos con un Numero Indeterminado de Iteraciones (while)


ESTRUCTURAS ALGORITMICAS
ESTRUCTURAS ALGORITMICAS
ESTRUCTURAS CÍCLICAS

Contador: Consiste en usarla como un verificador


del numero de veces que se realiza un proceso
(a=a+1).

Acumulador: Consiste en usarla como un sumador


en un proceso (a=a+b).
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Determinado de Iteraciones (for)

Son aquellos en que el número de iteraciones se conoce antes de


ejecutarse el ciclo. La sintaxis es la siguiente:

for variable = expresión


declaración 1
declaración 2
declaración 3
end

En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo
se repite hasta que la variable de control llegue al limite superior.
ESTRUCTURAS ALGORITMICAS
Ejemplos:

Efectuar la suma del cuadrado de los 100 primeros


enteros

%SUMA DE LOS PRIMEROS 100 ENTEROS

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:

Efectuar la suma de los 100 primeros enteros

Sumar los enteros pares entre 1 y 10

Elaborar un programa para encontrar la suma de los K


primeros números enteros.
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Determinado de Iteraciones (for)

Ejercicios:

Calcular el promedio de un alumno que tiene 7 calificaciones en la


materia de Diseño Estructurado de Algoritmos.

Leer 15 números negativos y convertirlos a positivos e imprimir


dichos números.
ESTRUCTURAS ALGORITMICAS
Calcular el promedio de un alumno que tiene 7 calificaciones en la
materia de Diseño Estructurado de Algoritmos.

clc
clear
close all

n=input('Ingrese el numero de calificaciones: ');


sum=0;

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

n=input('Ingrese el numero de calificaciones: ');


sum=0;

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;

fprintf('Su promedio es %3.1f\n',promedio)


ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Indeterminado de Iteraciones (while)

Son aquellos en que el numero de iteraciones no se conoce con


exactitud, ya que esta dado en función de un dato dentro del
programa.

while: es una estructura que repetirá un proceso durante “N”


veces, donde “N” puede ser fijo o variable. Para esto, la
instrucción se vale de una condición que es la que debe cumplirse
para que se siga ejecutando. Cuando la condición ya no se
cumple, entonces ya no se ejecuta el proceso.
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Indeterminado de Iteraciones (while)

While. La sintaxis es la siguiente:

while condición
declaración 1
declaración 2
:
:
declaración n
end
ESTRUCTURAS ALGORITMICAS
Estructuras Cíclicas
Ciclos con un Numero Indeterminado de Iteraciones (while)
%SUMA DE LOS PRIMEROS 100 ENTEROS

clc
clear
close all

n=input('Ingrese el limite de números enteros a sumar: ');

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
Ciclos con un Numero Indeterminado de Iteraciones (while)

While

Ejemplo1: calcular el volumen de las esferas de radio 1 hasta 5

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]

donde los tres primeros números, separados por comas (,),


son los elementos de la primera fila de la matriz. El signo
punto y coma (;) indica que comienza la segunda fila, cuyos
elementos se separan de nuevo por comas, y así
sucesivamente. La sentencia anterior corresponde a la
matriz:
A=
3 2 1
0 2 2
1 3 4
OPERACIONES CON MATRICES
De la misma forma,

B=[3; 1 ; 2] representa un vector columna (matriz 3x1)


B=
3
1
2

C=[5, 4, 3] un vector fila (matriz 1x3)

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 (:)

El operador dos puntos es un operador muy poderoso para


definir nuevas matrices y modificar las existentes.

H=1:8
Regresa
H=
1 2 3 4 5 6 7 8
OPERACIONES CON MATRICES
Uso del operador dos puntos (:)

El operador dos puntos también se puede usar para extraer


datos de las matrices, una característica que es muy útil en
análisis de datos. Cuando en una matriz se usan dos puntos
como referencia en lugar de un numero índice especifico, los
dos puntos representan toda la fila o columna.

M=[1 2 3 4 5;2 3 4 5 6;3 4 5 6 7]

Se puede extraer la columna 1 de la matriz M con el comando

X= M(:,1) “Todas la filas en la columna 1”


Z= M(1,:) “Fila 1, Todas las columnas ”
OPERACIONES CON MATRICES
Uso del operador dos puntos (:)

El operador dos puntos también se puede usar para


significar “desde fila_hasta fila” o “desde columna_hasta
columna”

W=M(2:3,:) “filas 2 a 3, todas las columnas”

Si queremos extraer solo los cuatro números en la esquina


inferior derecha de la matriz M,

W=M(2:3,4:5) “filas 2 a 3, en las columnas 4 a 5”


OPERACIONES CON MATRICES
Uso del operador dos puntos (:)

Para encontrar el valor en la fila 2, columna 3, usar los


siguientes comandos:

M(2,3) o M(8)

Puede usar la palabra “end” para identificar la fila o columna


final en una matriz, incluso si no se sabe que tan grande es.

M(1,end)
M(end, end)
M(end)
OPERACIONES CON MATRICES
Funciones para crear y manipular matrices

zeros(m) crea una matriz de m x m de ceros


zeros(m,n) crea una matriz de m x n de ceros
ones(m) crea una matriz de m x m de unos
ones(m,n) crea una matriz de m x n de unos
diag(A) extrae la diagonal de una matriz
magic(m) crea una matriz mágica de m x m

inv(A) o A^-1 inversa de la matriz A


A’ transpuesta de la matriz A
det(A) determinante de la matriz A
OPERACIONES CON MATRICES
Suma de matrices
OPERACIONES CON MATRICES
Resta de matrices
OPERACIONES CON MATRICES

Multiplicación de matrices
OPERACIONES CON MATRICES

División de matrices

La división de matrices se define como el producto del


numerador multiplicado por la matriz inversa del
denominador. Es decir, sean las matrices A y B tal que
A/B = AB-1:
 
Si una matriz está dividida entre un escalar, todos los
términos de la matriz quedarán divididos por ese escalar.
OPERACIONES CON MATRICES
Algunas funciones internas de MatLab

sqrt(x) raíz cuadrada.


log(x) logaritmo natural.
log10(x) logaritmo en base 10.
size(x) determina el numero de filas y columnas en
una matriz.
abs(x) valor absoluto.
exp(x) calcula el valor de ex , donde e es la base para
logaritmos naturales.
round(x) redondea al entero mas cercano.
fix(x) redondea (o trunca) al entero mas cercano
hacia cero.
ceil(x) redondea x al entero mas cercano hacia
infinito positivo.
OPERACIONES CON MATRICES
Algunas funciones internas de MatLab

factor(x) encuentra los factores primos .


gcd(x) encuentra el máximo común denominador.
lcm(x) encuentra el mínimo común múltiplo.
rats(x) representa x como fracción.
factorial(x) encuentra el valor de x factorial.
primes(x) encuentra todos los números primos menores
que x.
isprime(x) verifica si x es numero primo. Si lo es, la
función regresa 1; sino lo es, regresa 0.
mean(x) calcula el valor medio de un vector x.
median(x) encuentra la mediana de los elementos de un
vector x.
OPERACIONES CON MATRICES
Ejercicios de práctica
Cree variables MatLab para representar las siguientes matrices
y úselas en los ejercicios que siguen:
5 8 3 22
a=[12 17 3 6] b= 1 2 3 c= 17
2 4 6 4

1.Asigne a la variable X1 el valor en la segunda columna de la matriz a.


2.Asigne a la variable X2 la tercera columna de la matriz b.
3.Asigne a la variable X3 la tercera fila de la matriz b.
4.Asigne a la variable X4 los valores en la matriz b a lo largo de la diagonal.
5.Asigne a la variable X5 los primeros tres valores de la matriz a y todos los valores
en la matriz b como la segunda a la cuarta filas.
6.Asigne a la variable X6 los valores en la matriz c como la primera columna, los
valores en la matriz b como las columnas 2, 3 y 4, y los valores en la matriz a como
la ultima fila.
7.Asigne a la variable X7 el valor del elemento 8 en la matriz b, use el esquema de
identificación de numero de índice sencillo.
8.Convierta la matriz b en un vector columna llamado X8.
OPERACIONES CON MATRICES
Ejercicios de práctica
Sean las siguientes 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:

Verificar si cumple las siguientes propiedades:

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:

rand(n): regresa una matriz n x n. Cada valor en la matriz es un


número aleatorio entre 0 y 1.

rand(m,n): regresa una matriz m x n.

Para crear un conjunto de 100 números distribuidos de manera


homogénea entre 0 y 5, primero crear un conjunto sobre el rango
por defecto y luego multiplicar por 5 para expandir el rango a 0-5.
OPERACIONES CON MATRICES
Ejercicios aplicado
Las tasas de reacción química son proporcionales a una constante
de tasa k que cambia con la temperatura de acuerdo con la
ecuación de Arrhenius
k=koe-Q/RT

Para cierta reacción


Q=8000 (cal/mol)
R=1.987 (cal/mol K)
ko=1200 (1/min)

Encuentre los valores de k para cada temperatura desde 100 K


hasta 500 K, en incrementos de 10 K. cree una tabla con sus
resultados.
OPERACIONES CON MATRICES
Para encontrar la diagonal de inferior izquierda
a superior derecha, primero se tiene que voltear
la matriz y luego encontrar la diagonal.
Para esto utilizar:

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)

Si necesitan calcular la transformada de laplace


y su inversa, se procede:
L=laplace(A), y se obtiene
L=
5/s/(2*s+1)
ECUACIONES DIFERENCIALES
Pueden reorganizar ingresando el siguiente
comando
pretty(L), y obtenemos:
5
-----------
s (2 s + 1)

Si requiere calcular la transformada inversa de


laplace, digite:
T=ilaplace(L)
ECUACIONES DIFERENCIALES
Ejercicios:

d2y(t)/dt2 + y(t)=4

d2y(t)/dt2 + 3dy(t)/dt + 2y(t)=5

d2y(t)/dt2 + 2dy(t)/dt + 5y(t)=3

d3y(t)/dt3 + 3*d2y(t)/dt2 + 3dy(t)/dt + y(t)=2


GUIDE
Uso de graficas

Realizar una interface grafica conteniendo una


grafica de una función.

y(t)=seno(2  ft)

Donde f es la frecuencia de la función seno


GUIDE
Abrimos GUI en la ventana de MatLab.
Agregamos el botón Axes (graficas), 3 Edit Text
4 Static Text y un Radio Button.
Modificamos la propiedad String de los Static
Text de la siguiente manera:
Rango de tiempo
Tiempo inicial
Tiempo final
Frecuencia
GUIDE
Para el Radio Button, las propiedades String y Tag las cambiamos
a Rejilla.
Para los Edit Text la propiedad String la borramos para dejarla en
blanco y el Tag lo modificamos a lo siguiente:
Tinicial
Tfinal
Frecuencia
Editamos los callbacks de nuestro GUI
El único que editaremos es el callback del Edit Text cuyo Tag es
frecuencia y que contiene la frecuencia de la función seno. El
procedimiento es:
GUIDE
- Obtener el rango de la grafica que va desde tiempoi a tiempof.
-Obtener la frecuencia del seno.
-Graficar la función con plot.
Las instrucciones son:
1.Obtener los rangos de tiempo que escribimos en la propiedad
string de los Edit Text del rango de tiempo.
t1=str2num(get(handles.tiempoi, ‘string’));
t2=str2num(get(handles.tiempof, ‘string’));
2.Formamos el vector de tiempo con 200 puntos
t=linspace(t1,t2,200);
3.Obtenemos el valor de la frecuencia
frec=str2num(get(handles.frecuencia, ‘string’));
GUIDE
4. Graficamos la función
y=sin(2*pi*frec*t);
plot(t,y);
5. Verificamos si queremos la rejilla o no
Rejilla=get(handles.rejilla1, ‘value’);
if Rejilla==1
grid
end

Вам также может понравиться