Está en la página 1de 119

C L A S E S

LENGUAJE DE
PROGRAMACIÓN
(5 4 1 2 2 1)
INTRODUCCIÓN
Lenguaje de Programación

MACROCOMPETENCIA GENÉRICAS

Pensamiento
Comunicación
Crítico

ESTUDIANTE

Emprendimiento
Responsabilidad
y Trabajo en
Social
Equipo
Interdisciplinario

1/14
INTRODUCCIÓN
Lenguaje de Programación

NIVELES DE ADQUISICIÓN

Nivel 1 Saber de qué


Conocer
se trata cada MCG
Cognitivo

Nivel 2 Reconocer para qué


Valorar sirven y su importancia
en la profesión
Afectivo

Incorporar en
Nivel 3 Hacer las acciones
profesionales
Conductual

2/14
INTRODUCCIÓN
Lenguaje de Programación

PENSAMIENTO CRÍTICO

Pensamiento de orden superior autónomo y activo, que se orienta al


análisis sistemático de las necesidades del medio social y ambiental.

Integra la perspectiva personal, la de otros y la información proveniente del


medio en: el análisis de la información, la interpretación, la reflexión
acerca de la información, la evaluación de las implicancias
y consecuencias de los actos, las explicaciones de los
fenómenos y la emisión de juicios fundamentados
en pos de un propósito definido.

Comprende la observación y el uso de estándares para evaluar el


propio pensamiento,
pensamiento permitiendo la autocorrección del mismo.

3/14
INTRODUCCIÓN
Lenguaje de Programación

COMUNICACIÓN

Capacidad de expresar con claridad, coherencia y precisión las ideas,


conocimientos y sentimientos, adecuándose a diferentes contextos de
acuerdo a las características de la audiencia a la cual se dirige.

Involucra la validación de los interlocutores y la utilización de estrategias


de comunicación verbal y no verbal que permiten integrar las intenciones
del por qué decimos lo que decimos y cómo lo decimos con el fin
de mantener un diálogo crítico y constructivo.

Se manifiesta en un uso fluido de diferentes códigos y herramientas


de comunicación, orientado hacia la satisfacción de necesidades e
intereses personales y comunitarios, con responsabilidad y sentido de
ciudadanía

4/14
INTRODUCCIÓN
Lenguaje de Programación

EMPRENDIMIENTO Y TRABAJO EN EQUIPO INTERDISCIPLINARIO

Trabajar en equipo interdisciplinario para emprender e innovar en


cualquier ámbito de actividad.

Implica la capacidad para descubrir oportunidades, desafíos y entregar


respuestas innovadoras ante las propias necesidades y las necesidades de
otros, valorando la importancia del trabajo colaborativo e interdisciplinario
como herramientas necesarias para alcanzar los objetivos.

Se manifiesta en la capacidad para hacer frente a la incertidumbre, en la


capacidad para incorporarse en dinámicas de equipo que promuevan y valoren
una comunicación efectiva, el liderazgo compartido,
compartido la responsabilización y
compromiso personal con las metas con orientación a la excelencia.

Es decir, desde la interdisciplina se busca innovar y emprender para


detectar y dar respuesta efectiva a las necesidades de la sociedad
aportando lo mejor de sí en la búsqueda del bien común.

5/14
INTRODUCCIÓN
Lenguaje de Programación

RESPONSABILIDAD SOCIAL

Intención, Capacidad y obligación de responder ante la sociedad,


por acciones u omisiones profesionales que impactan al bien común

Representa un compromiso con los demás y con los principios y valores de


justicia, bien común y dignidad absoluta de la persona. Requiere de la
conciliación de la satisfacción de las propias necesidades con el
aporte a la satisfacción de las necesidades de los demás.

Se manifiesta en un actuar responsable en proyectos de distinta


índole, relacionadas con la propia competencia profesional y
académica; en orientación de las actividades individuales y colectivas
en un sentido que contribuya, desde el servicio,
servicio a generar equidad
para el desarrollo de todos; en comportamientos de cooperación,
participación, autocontrol y de compromiso ciudadano

6/14
INTRODUCCIÓN
Lenguaje de Programación

ENFRENTÁNDOSE A UN PROBLEMA

PROBLEMA RESULTADOS
¿Qué información?
INFORMACIÓN
Pensamiento
Crítico
¿Qué datos?

Responsabilidad
Comunicación Social
Pensamiento
Crítico

Trabajo en
Comunicación
Equipo
SOLUCIÓN

Responsabilidad VERIFICAR
Social Funcionamiento
ALGORITMO Resultados

DISEÑO
Entrada
Proceso CODIFICAR
Salida PROGRAMA Lenguaje

7/14
INTRODUCCIÓN
Lenguaje de Programación

ESTRUCTURA DEL COMPUTADOR

Memoria
Central Almacenamiento
Pantalla secundario

Disco duro
Teclado
Compact Disk
Mouse
Unidad Central
de Proceso Cinta Magnética
Impresoras Dispositivo
Almacenamiento
masivo

8/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN

Secuencia de instrucciones o sentencias


Permiten codificar un algoritmo
Ejecutar en el computador

SENTENCIA
Cadena de comandos,
expresiones y símbolos que
permiten ejecutar una acción

COMANDOS SINTAXIS
Definen la acción a Reglas de escritura
ejecutar del lenguaje

9/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN: Comandos Básicos

ENTRADA - SALIDA SELECTIVAS

OPERACIÓN DE LECTURA Selección de tareas


permite el ingreso de los
en función de
datos necesarios para la
ejecución del programa resultados de operaciones
aritméticas o lógicas
OPERACIÓN DE ESCRITURA
imprime la información
procesada por el programa
REPETITIVAS

OPERACIONES Permiten la iteración de una


secuencias de sentencias un
número definido de veces
Cálculos
aritméticos o lógicos

10/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN: Bajo Nivel

Son aquellos que utilizan cadenas de caracteres


directamente ejecutables por la máquina.
Código binario 0 y 1.

VENTAJA DESVENTAJAS
Transferencia a memoria ●
Codificación compleja
sin necesidad de traducción ●
Fiabilidad baja

Difícil verificación, actualización

Dependientes del procesador

Velocidad de ejecución
superior a cualquier otro
lenguaje

11/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN: Alto Nivel

Son los más utilizados por los programadores


ya que la estructura y sintaxis de las sentencias
es similar al lenguaje humano

VENTAJAS DESVENTAJAS

Tiempo de formación de 
Mayor tiempo para obtener
programadores corto el programa ejecutable

Escritura basada en reglas 
Mayor utilización de la memoria
sintácticas similares al 
Mayor tiempo de ejecución
lenguaje humano

Fácilmente modificables

Bajo costo de programación

Transportable

12/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN: Compilados

Programa Fuente

Compilador

Programa objeto

Enlazador
(link)

Programa
Ejecutable

13/14
INTRODUCCIÓN
Lenguaje de Programación

LENGUAJES DE PROGRAMACIÓN: Interpretados

Programa Fuente

Interprete

Traducción y Ejecución

Línea a Línea

14/14
ALGORITMOS
Micro Clase

MOTIVACIÓN

Ir al parque Calcular una pendiente

Cambiar rueda del auto

Cocer un huevo

1/16
ALGORITMOS
Micro Clase

OBJETIVO

Diseñar algoritmos para resolver problemas


utilizando el computador

2/16
ALGORITMOS
Micro Clase

DEFINICIÓN

Conjunto de instrucciones que especifican una secuencia de


operaciones a realizar para resolver un problema.

Características

Preciso Definido Finito

Se indica el orden Se obtiene el mismo Todas las secuencias de


de las instrucciones resultado cada vez que instrucciones deben conducir
paso a paso se ejecuta con los al mismo punto final
mismos datos

3/16
ALGORITMOS
Micro Clase

CONSTRUCCIÓN

Entrada Proceso Salida

Representación de algún Transforma los datos Datos procesados y


hecho, concepto o en información organizados
entidad real
Ejemplo: número, Ejemplo: Termostato, Ejemplo: resultados PSU,
palabra, corazón, pronóstico del
imagen, etc. computador, etc. tiempo, etc.

4/16
ALGORITMOS
Micro Clase

REPRESENTACIÓN

Pseudocódigo Diagrama de flujo


Independiente del lenguaje de programación


Visualización clara de la secuencia de acciones


Se utilizan palabras y símbolos normalizados
para especificar las diferentes acciones que pueden
ejecutarse en un computador

5/16
ALGORITMOS
Micro Clase

SIMBOLOGÍA

CONTROL

Acción Diagrama de flujo

Iniciar
algoritmo INICIO

Terminar
algoritmo FIN

6/16
ALGORITMOS
Micro Clase

SIMBOLOGÍA

ENTRADA - SALIDA CÁLCULOS

Acción Diagrama de flujo Acción Diagrama de flujo

Operación
Ingresar Ingresar C=5*sen(x)*(h1/Ti)
aritmética
datos Radio, Ang

Imprimir Imprimir Operación


ZL=A3 > Ang
resultados lógica
A, h1, Lr

7/16
ALGORITMOS
Micro Clase

SIMBOLOGÍA

SELECTIVA SELECTIVA

Acción Diagrama de flujo Acción Diagrama de flujo

F Expresión V Expresión
lógica numérica
Selección Repetición
lógica numérica
V1 V2 V3 V4

8/16
ALGORITMOS
Micro Clase

SIMBOLOGÍA

REPETITIVA REPETITIVA

Acción Diagrama de flujo Acción Diagrama de flujo

K > Vf F
K=Vi, Inc, Vf Expresión lógica

V
Repetición Repetición
definida condicional

9/16
ALGORITMOS
Micro Clase

PROBLEMA

INICIO

Diseñar un algoritmo, Ingresar


utilizando diagrama de flujo, C1, C2, C3
que determine el promedio
ponderado de tres notas
de certámenes. Pr=0.25*C1+0.35*C2+0.4*C3

Las ponderación son fijas:


C1 = 25% Imprimir
C2 = 35% “Promedio = “, Pr
C3 = 40%

FIN

10/16
ALGORITMOS
Micro Clase

PROBLEMA

Diseñar un algoritmo, utilizando diagrama de flujo,


que calcule
el perímetro y el área de una circunferencia
e imprima los resultados

Los datos se leen desde el teclado y los resultados se imprimen en pantalla

11/16
ALGORITMOS
Micro Clase

PROBLEMA: Análisis

¿Qué información o resultados ➔


Perímetro
se requieren? ➔
Área

¿Qué datos se necesitan para ➔


Radio
resolver el problema? ➔
Diámetro

¿Que métodos se pueden emplear ➔


Analítico
para resolver el problema? ➔
Numérico

12/16
ALGORITMOS
Micro Clase

PROBLEMA: Diseño del algoritmo


Entrada ➔
Diámetro


Proceso ➔
Evaluación analítica:
Perímetro =π⋅Diámetro

Área = π⋅Diámetro2
4


Perímetro

Salida ➔
Área

13/16
ALGORITMOS
Micro Clase

PROBLEMA: Diagrama de flujo

INICIO

Leer
D

P=3.14*D

A=3.14/4*D*D

Imprimir
“Perímetro=”,P
“Área=”,A

FIN

14/16
ALGORITMOS
Micro Clase

PROBLEMA: Ejecución y verificación

Ejecución del Programa


Resolver eventuales
errores de sintaxis

Verificación del Programa


Ejecutar el programa
idealmente con datos para
los cuales se conoce el resultado

15/16
ALGORITMOS
Micro Clase

PROBLEMA PROPUESTO

Diseñar un algoritmo, utilizando diagrama de flujo,


que determine
el promedio de un conjunto de valores
ingresados por teclado.

Un valor cero, como entrada, indica que se termina


el ingreso de valores.

16/16
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

EXPRESIONES ARITMÉTICAS

Operaciones Operandos Resultado

+ Suma
- Resta ENTEROS ENTERO
* Multiplicación O O
/ División REALES REAL
**, ^ Exponenciación

Reglas de Prioridad
Exponenciación: **, ^
Multiplicación, División: * /
Suma, Resta: + -

(),

1/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

EXPRESIONES LÓGICAS

Operadores Lógicos Operadores relacionales Resultado

Menor que <


NO ~ >
Mayor que
VERDADERO
Igual ==
Y && O
<= FALSO
Menor o igual
O || Mayor o igual >=

Distinto ~=

2/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

FUNCIONES INTERNAS

Valor absoluto de x abs(x)


Seno de x sin(x)
Coseno de x cos(x)
Tangente de x tan(x)
Arco seno de x asin(x)
Arco coseno de x acos(x)
Arco tangente de x atan(x)
Logaritmo natural de x log(x)
Logaritmo en base 10 de x log10(x)
Exponencial de x exp (x)
Raíz cuadrada de x sqrt(x)

3/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

OPERACIÓN DE ASIGNACIÓN

Es el modo de darle valor a las variables

Nombre de la variable = Expresión (aritmética o lógica)

La operación se ejecuta en dos pasos

Variable = Expresión

Posición de memoria Paso 1


correspondiente a la Evalúa la expresión
Variable

Paso 2
Transfiere valor Posición de memoria
temporal

4/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

OPERACIÓN DE ASIGNACIÓN

 b  b 2  4 ac
x1  siendo: a=2.9; b=8.0; c=-6.2
2a

a b c x1 temp
2.9 8.0 -6.2 0.63 0.63

Procesador

X1=(-b+sqrt(b^2-4*a*c))/(2*a)

5/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

OPERACIÓN DE ASIGNACIÓN

Evaluación: normal Evaluación: variable en expresión


X  3.0 GEO  5
Y  2.0 X  3.0
VAL1  X^ Y - Y X  X  GEO

Evaluación: intercambio de valores


A  8.2
B  3.7
ZA
A B
BZ

6/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

TIPOS DE DATOS

Numéricos Entero
Real
Simples
Carácter
No numéricos Booleano
Usuario
Tipos
de Vector
Estáticas Matriz
datos
Internas
Lista
Pila
Dinámicas
Cola
Estructuras Arbol
de datos
Secuencial
Archivos Directo
Indexado
Externas
Bases de datos

7/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMA PROPUESTO

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


determinar el mayor de dos valores ingresados por teclado.

8/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMA PROPUESTO

INICIO

LEER a, b

no si
a>b

IMPRIMIR IMPRIMIR
b es el mayor a es el mayor

FIN

9/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMA PROPUESTO

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


determinar el mayor de tres valores ingresados por teclado.

10/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMA PROPUESTO

INICIO

LEER a, b, c

no si
a>b

no b>c si no si
a>c

IMPRIMIR IMPRIMIR IMPRIMIR IMPRIMIR


c es el mayor b es el mayor c es el mayor a es el mayor

FIN

11/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMAS PROPUESTOS

Problema 1

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


determinar las raices de una ecuación de segundo grado.

Problema 2

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


determinar si un número ingresado por teclado
es entero o no entero.
(es primo o no primo)

12/13
HERRAMIENTAS DE PROGRAMACIÓN
Lenguaje de Programación

PROBLEMAS PROPUESTOS

Problema 3

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


ingresar 100 números enteros positivos y que y que imprima
el total de números pares e impares ingresados.

Problema 4

Diseñar un algoritmo, utilizando diagrama de flujo, que permita


Ingresar un año cualquiera e imprima si éste
es bisiesto o no bisiesto.
Son bisiestos todos los años múltiplos de 4,
excepto los múltiplos de 100 salvo si son múltiplos de 400.

13/13
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

INTRODUCCIÓN

Concepto de Programa

Un programa de computador es un conjunto de


instrucciones, órdenes dadas a la máquina, que
producirán la ejecución de una determinada tarea.

En esencia, un programa es
un medio para conseguir un fin.

¿Cuál es el fin?

1/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ASIGNACIÓN NUMÉRICA

Diagrama de flujo

Código Matlab
a pi/2.54 a=pi/2.54;
u 45.76a u=45.76*a;
t 4a/pi t=4*a/pi;
y 54.9 y=54.9;
C 10*cos(a)+(u+5t)/(3y) c=10*cos(a)+(u+5*t)/(3*y)
y y+1 y=y+1;

2/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ASIGNACIÓN ALFANUMÉRICA

Diagrama de flujo

Código Matlab
nombre “Pedro” nombre=‘Pedro’;
Q1 nombre Q1=nombre;

3/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

LECTURA

Diagrama de flujo
Código Matlab

Numérica
Leer Radio=input('Ingrese Radio = ');
Radio, Ang Ang=input('Ingrese Angulo = ');

Alfanumérica Leer animal=input('Ingrese animal = ','s');


animal

Color=input('Ingresar color = ','s');


Alfanumérica Leer
y numérica precio=input('Ingresar precio = ');
Color, precio

4/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESCRITURA

Diagrama de flujo
Código Matlab

IMPRIMIR fprintf(1,'\n La suma es: %f',Sum);


“La suma es:”,Sum

Diagrama de flujo

Código Matlab
IMPRIMIR
“El color es:”,P fprintf (1,'\n El color es: %s',P);

5/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SECUENCIAL

clc
INICIO clear all
%
% Lectura de datos
LEER % ----------------
a,b a=input('Ingresar valor 1:');
b=input('Ingresar valor 2:')
%
S a+b % Cálculos
% --------
P a*b
S=a+b;
P=a*b;
IMPRIMIR %
“La suma es:”,S % Impresión de resultados
“El producto es:”,P % -----------------------
fprintf(1,'\n La suma es : %f’,S);
fprintf(1,'\n El productos es: %f’,P);
FIN %
close all

6/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURAS SELECTIVAS

Las estructuras selectivas se utilizan


para que el programa
tome decisiones a partir de la evaluación
de expresiones lógicas

Las estructuras selectivas básicas son:

- Simples

- Dobles

- Múltiples

7/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Simple

Diagrama de flujo

Código Matlab

%
Expresión F
if (Expresión lógica)
lógica
Conjunto
de
V sentencias
end
Conjunto de %
sentencias

8/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Simple

PROBLEMA 1

Desarrollar un algoritmo, utilizando diagrama de flujo,


que lea un número por consola.
Si el número ingresado es positivo, se debe imprimir
“Procesamiento positivo”
si no, el programa debe terminar su ejecución.

9/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Doble

Diagrama de flujo
Código Matlab

%
if (Expresión lógica)
V Expresión F Conjunto 1
lógica de
sentencias
else
Conjunto 2
Conjunto 1 Conjunto 2
de
de sentencias de sentencias
sentencias
end
%

10/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Doble

PROBLEMA 2

Desarrollar un algoritmo, utilizando diagrama de flujo,


que lea tres números por consola.
Si el primer número ingresado es negativo,
se debe imprimir el producto de los números ingresados
si no lo es,
se debe imprimir la suma.

11/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Múltiple

Diagrama de flujo
Código Matlab
F
Exp 1
%
V if (Exp 1)
Sentencias 1
Sentencias 1
elseif (Exp 2)
F
Sentencias 2
Exp 2 elseif (Exp n)
V Sentencias n
Sentencias 2 else
Sentencias m
end
Exp n F %
V
Sentencias n Sentencias m

12/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Múltiple

PROBLEMA 3

Diseñar un algoritmo que lea una calificación en


escala numérica de 0 a 10 y la transforme en la
equivalente en escala conceptual

0≤Nota< 5 …... insuficiente


5≤Nota< 6 …... suficiente
6≤Nota< 8 …... bueno
8≤Nota≤10 …... sobresaliente

13/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Múltiple

Diagrama de flujo Código Matlab

%
switch (Expr. arit.)
Expresión case V1
Aritmética Sentencias V1
case V2
Sentencias V2
V1 case Vn
Otro
V2 Vn Sentencias Vn
otherwise
Sentencias Sentencias Sentencias Sentencias
Sentencias Otro
V1 V2 Vn Otro
end
%

14/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Múltiple

PROBLEMA 4

Diseñar un algoritmo que escriba el nombre del


día de la semana en función del valor ingresado por teclado

Valor 1 …... lunes


Valor 2 …... martes
.
.
.
Valor 7 …... domingo

15/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Anidadas


Diagrama de flujo

F
Exp. 1
Código Matlab
V %
Sentencias 1 if (Exp. 1)
Sentencias 1
F if (Exp. 2)
Exp. 2
if (Exp. 3)
V Sentencias 3
F V else
Exp. 3 Sentencias 2
Sentencias 2 Sentencias 3 end
end
Sentencias 4
end
%
Sentencias 4

16/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Anidadas

PROBLEMA 5

Desarrollar un algoritmo, utilizando diagrama de flujo,


que lea las notas Test1, Test2, Certamen1 y Certamen2 y
determine el promedio sabiendo que la ponderación
de los Test es 15% y los certámenes es 35%.

El algoritmo debe verificar que las notas estén dentro


del rango admisible (1-7).

En caso que una nota esté fuera del rango,


el programa debe terminar su ejecución.

17/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA SELECTIVA: Anidadas

PROBLEMA 6

Desarrollar un algoritmo, utilizando diagrama de flujo,


que lea la hora en formato HH MM SS y calcule
la hora correspondiente a un segundo después.

La hora, los minutos y los segundos se ingresan


como números enteros.

18/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS

Los computadores están especialmente diseñados para realizar


aplicaciones en que una operación debe repetirse muchas veces.

Las estructuras que repiten una secuencia de instrucciones un número


determinado de veces se denominan bucles.

La repetición de una secuencia de acciones se llama ITERACIÓN

La estructura de repetición requiere de una CONDICIÓN DE SALIDA

Las estructuras repetitivas básicas son:

- Mientras
- Repetir
- Para

19/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Repetir

La secuencia se repite mientras la expresión lógica sea FALSA

Diagrama de flujo

Conjunto de
sentencias

F Expresión
Lógica

20/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Mientras

La secuencia se repite mientras la expresión lógica sea VERDADERA

Diagrama de flujo
Código Matlab

Expresión F %
Lógica while (Expresión Lógica)
V
Conjunto
de
Conjunto de sentencias
sentencias
end
%

21/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Mientras

PROBLEMA 7

Diseñar un algoritmo que encuentre el entero positivo


mayor (num), tal que la suma 1+2+3+........+ num
Sea menor que un valor ingresado por teclado (limit).

22/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Para

La secuencia se repite un número predeterminado de veces

Diagrama de flujo Código Matlab

%
for a=Vi:Inc:Vf
a > Vf
a=Vi, Inc, Vf
Conjunto
de
sentencias
Conjunto de
sentencias end
%

23/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Para

PROBLEMA 8

Diseñar un algoritmo que permita determinar la suma


de los 20 números enteros siguientes a un valor
ingresado por teclado (valing).

24/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS: Anidadas

Diagrama de flujo
Código Matlab
a > Vf %
a=Vi, Inc, Vf
for a=Vi:Inc:Vf

Sentencias 1 Sentencias 1

while (Exp. Lóg)


Exp. Lóg. F
Sentencias 2
V
end
Sentencias 2
end
%

25/26
ESTRUCTURAS DE PROGRAMACIÓN
Lenguaje de Programación

ESTRUCTURA REPETITIVAS

PROBLEMA 9

Diseñar un algoritmo que sume independientemente


los número pares y los números impares
comprendidos entre 1 y 100.

26/26
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS

Conjunto finito y ordenado de elementos homogéneos

Homogéneo Todos los elementos son del mismo tipo

Ordenado Se puede identificar cualquier elemento del arreglo

Nombre Todos los elementos tienen el mismo nombre

Variables simples Arreglo (vector)

Test1 5.3 nota(1) 5.3

Test2 4.7 nota(2) 4.7


.
.

Lab1 2.1 nota(i) 2.1


.
.
Lab12 6.0 nota(n) 6.0

1/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de lectura

Memoria

Notas
(1) 5.3
Notas(1)=input(‘……’);
Notas(2)=input(‘……’);
(2) 4.7
.
. for i=1:n
Notas(i)=input(‘……’);
(i) 2.1 end
.
.
(n) 6.0

2/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de escritura

Memoria Pantalla
Lab 1 = 5.3
Notas Lab 2 = 4.7

(1) 5.3 fprintf(1,’\n Lab 1 = %3.1f’,Notas(1));


fprintf(1,’\n Lab 2 = %3.1f’,Notas(2));
(2) 4.7
.
.

(i) 2.1
.
.
(n) 6.0

Pantalla
Lab 1 = 5.3
Lab 2 = 4.7
.
for i=1:n .
fprintf(1,’\n Lab %2.0f = %3.1f’,i,Notas(i)); Lab i = 2.1
.
end .
Lab n = 6.0

3/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de asignación

Memoria

(1) 5.3
Pantalla
(2) 4.7 Promedio = 4.9
P=0;
. for k=1:n
. P=P+Notas(k);
end
(i) 2.1
P=P/n;
. fprintf(1,’\n Promedio = %3.1f’,P);
.
(n) 6.0

4/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

clear all
clc Memoria Pantalla
% Ingrese N° de notas: _
n=input(‘Ingrese N° de notas: ’); Notas Ingrese Nota 1: _
Ingrese Nota 2: _
for i=1:n (1) .
5.3
fprintf(1,’\n Ingrese Nota %0.0f: ’,i); .
.
Notas(i)=input(‘’); (2) 4.7 Ingrese Nota n: _
end
% (3) 5.7
P=0;
for k=1:n Pantalla
(4) 2.1
P=P+Notas(k); Promedio = 5.6
end
(5) 4.1
P=P/n;
%
(6) 6.0
clc
fprintf(1,’\n Promedio = %3.1f’,P);
close all

5/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Utilizando diagrama de flujo, diseñe un algoritmo


que ordene de manera creciente las componentes
de un arreglo unidimensional A.
Utilizar el mismo arreglo para almacenar las componentes ordenadas.

Traducir el algoritmo generado a un programa en


Lenguaje Matlab.

6/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Utilizando diagrama de flujo, desarrollar un algoritmo que


permita ingresar un número entero positivo,
correspondiente a una cantidad de dinero
y calcule e imprima el desglose de moneda.
Monedas disponibles: 20000, 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1.

Traducir el algoritmo generado a un programa en


Lenguaje Matlab.

7/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES

Arreglo (matriz): Temp

(08:00) (10:00) . . . (16:00) .. ... .. (20:00)


(1,1) (1,2) (1,5) (1,7)
Rancagua
21 20 21 18
(2,1) (2,2) (2,5) (2,7)
Talca
23 23 20 15
.
.

(k,1) (k,2) (k,5) (k,7)


Concepción
17 19 20 20
.
.
(n,1) (n,2) (n,5) (n,7)
Temuco
15 18 23 18

8/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES

clear all for i=1:Nciud


clc Prom(i)=0;
% for j=1:Nvm
Nvm=7; Prom(i)=Prom(i)+Temp(i,j);
Nciud=5; end
% Prom(i)=Prom(i)/Nvm;
H(1)=8; end
for i=2:Nvm %
H(i)=H(i-1)+2; clc
end fprintf(1,’\n Ciudad ...
% Temp. Promedio’);
Ciudad(1,1:10)=‘Concepcion‘; for i=1:Nciud
Ciudad(2,1:10)=‘Penco ‘; fprintf(1,’\n %10s ...
Ciudad(3,1:10)=‘Lirquen ‘; %4.1f’,Ciudad(i,1:10),Prom(i));
Ciudad(4,1:10)=‘Tome ‘; end
Ciudad(5,1:10)=‘Dichato ‘; close all
%
for i=1:Nciud
for j=1:Nvm
Pantalla
Temp(i,j)=input(‘…’);
Ciudad Temp.Promedio
end Concepcion 20.2
end Penco 19.8
Lirquen 18.5
Tome 17.7
Dichato 19.3

9/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Desarrollar un algoritmo, utilizando diagrama de flujo,


que permita sumar dos matrices conocidas
A y B de orden nxm.

10/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Se dispone en memoria de una matriz A de


orden nxm.

Se requiere desarrollar un algoritmo que:

- Determine el promedio de cada fila


y los almacene en el vector F.

- Determine el promedio de cada columna


y los almacene en el vector C.

11/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa que lea desde consola un cierta


Cantidad de datos numéricos, hasta que se ingrese el
Valor 9999 el cual no debe ser procesado.

Se requiere determinar el valor máximo de los promedios


Correspondientes a parejas de valores sucesivos.

12/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

En un ensayo de tracción de probetas de acero,


se debe registrar la fuerza aplicada a la probeta
(variable independiente) y el alargamiento que
sufre ésta (variable dependiente).
Durante el ensayo el alargamiento se incrementa
gradualmente hasta que la probeta se rompe.

Diseñar un programa que permita leer los valores


de alargamiento y fuerza y calcule e imprima el
intervalo en el que la pendiente de la curva,
fuerza- alargamiento, es máxima.

13/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa en Matlab que permita ingresar


una matriz de orden nxm y que realice las siguientes
operaciones, según lo requiera el usuario:

Ingresar la matriz
Imprimir la matriz en pantalla
Desplazar todas las columnas una posición hacia la derecha
Desplazar todas las filas una posición hacia abajo
Desplazar todas columnas hacia la derecha y todas las filas hacia abajo

El desplazamiento es circular, es decir, a la derecha


de la última columna corresponde la primera columna
y debajo de la última fila corresponde la primera fila.

14/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa en Matlab que genere un cuadrado mágico de


orden n impar y lo muestre en pantalla.

Un cuadrado mágico se compone de los números enteros comprendidos


entre 1 y n2, tal que la suma de los términos que figuran en cada fila,
columna y diagonal son iguales.

Un método de generación consiste en situar el número 1 en el centro


de la primera fila, el número siguiente en la casilla situada por encima
y a la derecha y así sucesivamente. El cuadrado es circular, es decir,
la fila encima de la primera es la última y la columna a la derecha de
la última es la primera. En el caso que el número generado deba
situarse en un lugar ya ocupado, se debe posicionar debajo del
último número generado.

15/15
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

TÉCNICAS DE PROGRAMACIÓN

Descripción Programación Clásica Programación Moderna

Objetivo Programas de pequeña Programas de alta


y mediana complejidad complejidad

Herramienta de Diagrama de flujo Diagrama de flujo


apoyo ●
Programa ●
General

Por módulo

Producto Programa Fuente Programas Fuente



Principal

Módulos

1/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

ESTRUCTURA GENERAL

Módulo
principal

Módulo 1 Módulo 2 Módulo 3 Módulo n

Módulo 3.1
Módulo 1.1 Módulo 1.2 Módulo n.1

Módulo 3.1.1 Módulo 3.1.2


Módulo n.1.1

Módulo 3.1.2.1

2/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

CARACTERÍSTICAS

- Método flexible y potente para mejorar la productividad de programación

- El programa se divide en módulos independientes

- Los módulos se analizan, codifican, verifican en forma separada

- Los resultados de los módulos pueden ser utilizados por cualquier


módulo cuando estos entran en ejecución

3/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULOS

Conjunto de instrucciones que realizan una tarea específica.

Puede ser llamado por un programa principal u otro módulo

Un módulo siempre devuelve el control al módulo que lo llamó.

En lenguaje MATLAB los módulo se denominan: función

Comunicación:
- Variables globales y locales

- Argumentos de llamada

4/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

NOMBRE DE MÓDULOS

Se recomienda construir módulos de entre 30 y 40 instrucciones

Los nombre dependen del lenguaje:

C++ Funciones

Basic, Fortran Subrutinas

Pascal Procedimientos

Cobol Secciones

Matlab Funciones

5/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos

Programa o función que hace el llamado


a=input('.........');
........
d1=20*sin(2*pi*a);
........
........
[r1,r2,...,rn]=nombre_función(d1,d2,...dm)
area=r1*r2;
........
........

Función
function [s1,s2,...sn]=nombre_función(e1,e2,...em)
........
s1=e1*e2*pi/10.4;
........
........
sn=s2/cos(pi/2*e4);
........
........
return

6/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos

Programa.m romano.m
clc; function romano(d,z1,z2,z3)
clear all; if(d == 9)
n=input('Ingrese número: '); fprintf(1,'%s%s',z1,z3);
fprintf(1,'Equivalente romano = '); else
r=n; if(d > 4)
% Miles fprintf(1,'%s',z2);
digito=fix(r/1000); for j=1:d-5
r=rem(r,1000); fprintf(1,'%s',z1);
romano(digito,'M',' ',' '); end
% Centenas else
digito=fix(r/100); if(d == 4)
r=rem(r,100); fprintf(1,'%s%s',z1,z2);
romano(digito,'C','D','M'); else
% Decenas for j=1:d
digito=fix(r/10); fprintf(1,'%s',z1);
r=rem(r,10); end
romano(digito,'X','L','C'); end
% Unidades end
digito=r; end
romano(digito,'I','V','X'); return
close all

7/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con argumentos


3 5 7
x x x
Calcular seno(x) utilizando la serie: sen( x) = x− + −
3! 5! 7!

Programa.m seno.m
clc; function [s] = seno(a)
clear all; x=a*pi/180;
resp='s'; s=x;
while(resp == 's' || resp == 'S') for i=2:4
ang=input('Ingrese ángulo (grados) = '); n=2*i-1
[X]=seno(ang); [p]=pot(x,n);
fprintf(1,'\n Seno(%0.1f)=%0.4f',ang,X); [f]=fact(n);
resp=input('Desea ingresar otro valor [s/n]: ','s'); if(rem(i,2) == 0)
end s=s-p/f;
else
s=s+p/f;
end
pot.m fact.m end
function [p] = pot(x,n) function [f] = fact(n) return
p=1; f=1;
for i=1:n for i=1:n
p=p*x; f=f*i;
end end
return return

8/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con variables globales

Programa o función que


hace el llamado Función
a=input('.........'); function nombre_función
global r1 r2 ... rn global r1 r2 ... rn
global d1 d2 ... dm global d1 d2 ... dm
d1=20*sin(2*pi*a); ........
........ r1=d1*d2*pi/10.4;
........ ........
nombre_función ........
area=r1*r2; rn=r2/cos(pi/2*e4);
........ ........
........ ........
return

9/10
PROGRAMACIÓN ESTRUCTURADA
Lenguaje de Programación

MÓDULO: Llamada con variables globales


3 5 7
x x x
Calcular seno(x) utilizando la serie: sen( x) = x− + −
3! 5! 7!

Programa.m seno.m
clc; function seno
clear all; global ang s x n p f
global ang s x=pi/180;
resp='s'; s=x;
while(resp == 's' || resp == 'S') for i=2:4
ang=input('Ingrese ángulo (grados) = '); n=2*i-1
seno pot
fprintf(1,'\n Seno(%0.1f)=%0.4f',ang,X); fact
resp=input('Desea ingresar otro valor [s/n]: ','s'); if(rem(i,2) == 0)
end s=s-p/f;
else
s=s+p/f;
end
pot.m fact.m end
return
function pot function fact
global x p global n f
p=1; f=1;
for i=1:n for i=1:n
p=p*x; f=f*i;
end end
return return
10/10
ARCHIVOS
Lenguaje de Programación

INTRODUCCIÓN

El almacenamiento de datos en memoria es limitado:

- Tamaño
- Tiempo
- Transmisión

¿Cómo superar estas dificultades ?

Utilizar dispositivos de almacenamiento permanente


- Discos
- Cintas

1/7
ARCHIVOS
Lenguaje de Programación

Tipos de acceso

Secuencial Directo
Registro 1 Registro 1
Registro 2 Registro 2
Registro 3 Registro 3
P
Registro 4 Registro 4
R
Registro 5 Registro 5
O
Registro 6 G Registro 6
Registro 7 R Registro 7
Registro 8 A
Registro 8
Registro 9
M
A Registro 9
Registro 10 Registro 10
: :
: :
Registro n Registro n

2/7
ARCHIVOS
Lenguaje de Programación

OPERACIONES

Crear o abrir : Operación que vincula el archivo con el programa.


Se habilita las operaciones que puede efectuar el programa
sobre el archivo.

Leer: operación que permite al programa obtener datos desde el archivo.

Escribir: operación que permite al programa almacenar información


en el archivo.

Cerrar: operación que desconecta el archivo del programa.


Se deshabilita las operaciones sobre el archivo.

3/7
ARCHIVOS
Lenguaje de Programación

INTRUCCIÓN MATLAB: Crear o Abrir

Permiso:
fid=fopen(’nombre’,’permiso’) r : para leer
w : para escribir

Ejemplo
.
.
.
Ide=fopen(‘Temp.dat’,’r’);
.
.
.
Pr=fopen(‘Informe.res’,’w’);
.
.
.

4/7
ARCHIVOS
Lenguaje de Programación

INTRUCCIÓN MATLAB: Leer

A=fscanf(fid,’formato’,[nf nc]) formato : %s, %f, %d, ….


nf : número de filas de A
b=fgetl(fid) nc : número de columnas de A

Ejemplos
Variable numérica
ft=fopen(‘Temp.dat’,’r’); A= 1 2 3 4 5 6 7 8 9 10 11 12
A=fscanf(ft,’%f’)
Temp.dat
1 2 3 4 5 6 Variable numérica
7 8 9 10 ft=fopen(‘Temp.dat’,’r’); A= 1 3 5
11 12
A=fscanf(ft,’%f’,[2 3]) 2 4 6

ft=fopen(‘Temp.dat’,’r’); Variables alfanuméricas


A=fgetl(ft) A= ‘1 2 3 4 5 6’
B=fgetl(ft) B= ‘7 8 9 10’
C= ‘11 12’
C=fgetl(ft)

5/7
ARCHIVOS
Lenguaje de Programación

INTRUCCIÓN MATLAB: Escribir

fprintf(fid,’formato’,variables)

Ejemplo
zq=fopen(‘Informe.res’,’w’);
.
.
fprintf(zq,’Los resultados son:’)
for I=1:N
fprintf(zq,’\n %5.1f’,b(I));
end
.
.
.

6/7
ARCHIVOS
Lenguaje de Programación

INTRUCCIÓN MATLAB: Cerrar

fclose(fid)

Ejemplo
.
.
.
Ide=fopen(‘Temp.dat’,’r’);
.
.
.
Pr=fopen(‘Informe.res’,’w’);
.
.
.
fclose(Ide);
fclose(Pr);

7/7
MATLAB
Lenguaje de Programación

GRABAR Y RECUPERAR DATOS

Función para grabar Función para recuperar

save var load var

Archivo Recupera arreglo


var.mat var

1/17
MATLAB
Lenguaje de Programación

GRABAR Y RECUPERAR DATOS

Función para grabar Función para recuperar

save nombre var1 var2 ... load nombre

Archivo Recupera arreglos


nombre.mat var1 var2 ...

2/17
MATLAB
Lenguaje de Programación

GRABAR Y RECUPERAR DATOS

Función para grabar Función para recuperar

Load nombre.ext

Escritura manual
Editor de texto

Recupera arreglo
nombre

Archivo H=Load(‘nombre.ext’)
nombre.ext

Recupera arreglo
H

3/17
MATLAB
Lenguaje de Programación

FUNCIONES MATEMÁTICAS

Matemáticas Trigonométricas Aproximación

Q1 = abs(x) Z1 = sin(x) G1 = fix(x)


Q2 = sqrt(x) Z2 = cos(x) G2 = ceil(x)
Q3 = exp(x) Z3 = tan(x) G3 = round(x)
Q4 = log(x) R1 = rem(x1,x2)
V1 = asin(x)
Q5 = log10(x)
V2 = acos(x)
V3 = atan(x)

4/17
MATLAB
Lenguaje de Programación

FUNCIONES DE CADENAS DE CARACTERES

Convierte la cadena de caracteres p a números y los almacena


a=str2num(p) en el vector a.

Convierte los números almacenados en el vector x a una cadena


b=num2str(x) de caracteres y los almacena en el vector b .

Concatena las cadenas de caracteres almacenadas en los


c=strcat(x1,x2,..) vectores x1, x2,... y los almacena en el vector c .

Compara las cadenas de caracteres almacenadas en los


c=strcmp(f1,f2) vectores f1 y f2 . Si ambas cadenas son iguales, c=1 ,
de lo contrario c=0.

d=findstr(s1,s2) d es la posición en s1 , donde se encuentra la cadena s2 .

5/17
MATLAB
Lenguaje de Programación

GENERACIÓN DE ARREGLOS

Generación de vectores Generación de matrices Datos matriciales

x=linspace(x1,x2,n) x=zeros(n) V1=min(a)


x=zeros(m,n) V2=max(a)
x=(x1:inc:x2) V2=mean(a)
x=ones(n)
x=logspace(x1,x2,n) x=ones(m,n) r=size(a)
f=size(a,1)
x=eye(n) c=size(a,2)
x=eye(m,n)

6/17
MATLAB
Lenguaje de Programación

MANIPULADORES MATRICIALES

c = [a b ] c = [3 2 6 8 9 1 7 4 8 2 ]

a = [ 3 2 6 8 9]

b = [1 7 4 8 2]
c = [ a ;b ] c= [ 3 2 6 8 9
1 7 4 8 2 ]

{}
3
2
d = a' d= 6
8
9

7/17
MATLAB
Lenguaje de Programación

OPERACIONES POR COMPONENTES

k = f .∗g k= [ 7 16 27
16 35 18 ]
m = h∗ f ' m = [ 31 76 ]
h = [6 2 7]

f = [ 1 2 3
4 5 6 ] n = h .∗g (1,:) n = [ 42 16 63 ]

g= [ 7 8 9
4 7 3 ]
p = [h (1 :2)]' .∗g (: , 2) p= [ ] 48
14

q = f .^ 2 q= [ 1 4 9
16 25 36 ]
8/17
MATLAB
Lenguaje de Programación

GRÁFICOS 2D: Funciones

x=(0:0.1:5*pi);
y=sin(x);
plot(x,y); 1

0 .8

plot(x,y,’r’) 0 .6

0 .4

0 .2

-0 .2

-0 .4

-0 .6

-0 .8

-1
0 2 4 6 8 10 12 14 16

9/17
MATLAB
Lenguaje de Programación

GRÁFICOS 2D: Datos discretos

x=[1 3 4 5 7 10]

y=[0 6 -3 1 4 9]

plot(x,y)

plot(x,y,'go-')

plot(x,y,'g',x,y,'bo')

10/17
MATLAB
Lenguaje de Programación

GRÁFICOS 3D

x  ( 2, 2)
[x,y] = meshgrid(-2:0.25:2); mesh(x,y,z)
y  ( 2, 2)
2
y 2 )
z = x.*exp(-x.^2 – y.^2);
z  x e( x surf(x,y,z)

0.5

-0.5
2
1 2
0 1
0
-1 -1
-2 -2

11/17
MATLAB
Lenguaje de Programación

RAÍCES DE FUNCIONES

clc;
f(x)= x3 - 10x - 1 clear all;
for i=1:3
80
V=input('Entre valor aproximado: ');
60
x(i)=fzero('p1',V);
40
end
20
clc;
0 fprintf(1,'\n Las raíces son:\n');
-20 for i=1:3

-40
fprintf(1, '%7.3f\n',x(i));
end
-60
close
-80
-5 -4 -3 -2 -1 0 1 2 3 4 5

Resultados p1.m
Las raíces son: -3.111 function [y]=p1(x);
-0.100 y=x^3-10*x-1;

3.211 return

12/17
MATLAB
Lenguaje de Programación

MÍNIMO DE FUNCIONES

f(x)= x3 - 10x - 1
clc;
80
clear all;
60 Vi=input('Entre inicio de intervalo: ');
Vf=input('Entre final de intervalo : ');
40
x=fmin('p2',Vi,Vf);
20 y=p2(x);
0
clc;
fprintf(1,'\n Valor mínimo = %10.3f\n',y);
-20 fprintf(1,' en X = %10.3f\n',x)
-40
close

-60

-80
-5 -4 -3 -2 -1 0 1 2 3 4 5
p2.m

function [y]=p2(x);
Resultados y=x^3-10*x-1;
Valor mínimo = -13.172 return
en X = 1.826

13/17
MATLAB
Lenguaje de Programación

POLINOMIOS

3 2
p ( x) = x − 2 x − 8 x + 10 Ajuste de curvas

p = [ 1 −2 −8 10 ]
x y

0 0

{ }
Raíces de un polinomio 1 0.8415
3.4742 2 0.9093
r=roots(p) r = 1.1127 3 0.1411
−2.5869 4 -0.7568
5 -0.9589
6 -0.2794
Polinomio de raíces
p=poly(r) p = [ 1 −2 −8 10 ]
p=polyfit(x,y,g)

Evaluación de polinomio p=[0.09 –0.83 1.73 –0.04]


y1=polyval(p,x1)

14/17
MATLAB
Lenguaje de Programación

ECUACIONES DIFERENCIALES

Ecuación diferencial
de segundo orden x  ( x 2  1)x  x  0

x1  x  x 1  x
Cambio de variables
x 2  x  x 2  x

Sistema de ecuaciones de
x1  (1  x 22 )x1  x 2
x 2  x1
primer orden acopladas

15/17
MATLAB
Lenguaje de Programación

ECUACIONES DIFERENCIALES

Programa principal x 1  (1  x22 ) x1  x2


% x 2  x1
% Intervalo de tiempo
% de integración
Iti=[0;20];
Vdpol.m
%
% Condiciones iniciales function xpto = vdpol(t,x);
x0=[0 0.25];
xpto(1) = (1-x(2)^2)*x(1)-x(2);
%
xpto(2) = x(1);
% Integración
[t,x]=ode45('vdpol',Iti,x0); xpto = xpto’;
plot(t,x); return

16/17
MATLAB
Lenguaje de Programación

ECUACIONES DIFERENCIALES: Resultados

x
1

-1

x
-2

-3
0 2 4 6 8 10 12 14 16 18 20

17/17

También podría gustarte