Este documento presenta los contenidos de un curso introductorio de Matlab. Incluye temas como los tipos de datos básicos como enteros, reales, complejos y lógicos, operaciones con arrays, gráficos, estructuras de control, funciones y recursividad. También cubre temas como el ciclo de vida del software, debug y un proyecto final.
Tema 7: Funciones de orden superior en HaskellJosé A. Alonso
Se estudian las funciones de orden superior en Haskell, fundamentalmente map, filter y foldr.
Este es el 7º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
Tema 11: Aplicaciones de la programación funcional con HaskellJosé A. Alonso
Se presenta tres casos de estudio de la programación funcional con Haskell: el problema del concurso "Cifras y letras", el problema de las reinas y la sucesión de Hamming.
Este es el 8º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m-10/temas.html
Se presentan las estrategias de computación perezosa e impaciente y se muestra cómo Haskell usa la perezosa lo que permite trabajar con objetos infinitos. También se muestra cómo puede hacerse evaluaciones estrictas en Haskell.
Este es el 10º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m-10/temas.html
Tema 7: Funciones de orden superior en HaskellJosé A. Alonso
Se estudian las funciones de orden superior en Haskell, fundamentalmente map, filter y foldr.
Este es el 7º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
Tema 11: Aplicaciones de la programación funcional con HaskellJosé A. Alonso
Se presenta tres casos de estudio de la programación funcional con Haskell: el problema del concurso "Cifras y letras", el problema de las reinas y la sucesión de Hamming.
Este es el 8º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m-10/temas.html
Se presentan las estrategias de computación perezosa e impaciente y se muestra cómo Haskell usa la perezosa lo que permite trabajar con objetos infinitos. También se muestra cómo puede hacerse evaluaciones estrictas en Haskell.
Este es el 10º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m-10/temas.html
Tema 6: Definiciones por recursión en Haskell José A. Alonso
Se presentan los patrones de recursión en Haskell: recursión sobre los números naturales, sobre listas, recursión sobre varios argumentos, recursión múltiple y recursión mutua. También se presenta reglas heurísticas para definir funciones por recursión.
Este es el 6º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
I1M2011-T4: Definición de funciones en HaskellJosé A. Alonso
Se presentan los patrones básicos de definición de funciones en Haskell: por composición, con condicionales, con guardas y con equiparación de patrones.
Este es el 4º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
CIRCUITOS DIGITALES CI Unid II Simplificacion de Funciones Logicas Boole y M...AVINADAD MENDEZ
Circuitos Digitales, Algebra de Boole, Leyes de Morgan, Simplificacion mediante el Algebra de Boole y sus propiedades,
Simplificacion mediante los Mapas de Karnaugh
Tema 6: Definiciones por recursión en Haskell José A. Alonso
Se presentan los patrones de recursión en Haskell: recursión sobre los números naturales, sobre listas, recursión sobre varios argumentos, recursión múltiple y recursión mutua. También se presenta reglas heurísticas para definir funciones por recursión.
Este es el 6º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
I1M2011-T4: Definición de funciones en HaskellJosé A. Alonso
Se presentan los patrones básicos de definición de funciones en Haskell: por composición, con condicionales, con guardas y con equiparación de patrones.
Este es el 4º tema del curso de introducción a Haskell. El código y los restantes temas se encuentran en http://www.cs.us.es/~jalonso/cursos/i1m/temas.html
CIRCUITOS DIGITALES CI Unid II Simplificacion de Funciones Logicas Boole y M...AVINADAD MENDEZ
Circuitos Digitales, Algebra de Boole, Leyes de Morgan, Simplificacion mediante el Algebra de Boole y sus propiedades,
Simplificacion mediante los Mapas de Karnaugh
Introducción a las variables numéricas y de tipo String. Es la segunda de una serie de nueve presentaciones para introducir al mundo de JAVA a alumnos de secundaria.
2. Contenidos del curso
• Entorno Matlab.
• Tipos de datos básicos.
• Funciones y operaciones con arrays.
• Notación “:” y array slice.
• Operaciones lógicas.
• Operaciones matemáticas.
• Gráficos.
• Miscelánea.
• Ciclo de vida del software.
• Tipos de datos.
• Estructuras de control.
• Descomposición funcional y diseño descendente.
• Funciones.
• Recursividad.
• Debug.
• Proyecto Final.
Matlab CLI
Programación en Matlab
3. Tipos de datos básicos
• Matlab reconoce varios tipos de datos, en esta
sección presentaremos los básicos o
primitivos, más adelante veremos tipos de
datos más complejos.
• Entero: 23
• Real: -18.566
• Complejo: 23.1 + 34.8i
• Infinito : Inf
• NaN: Not a Number
4. Enteros(1)
• Según la resolución o tamaño de palabra que
escojamos podemos tener varios tipos de
rango para codificar los enteros.
• Con signo 8 bits: [-27
,27
-1]
>> x = int8(5)
x =5
>> x = int8(145)
x =127
5. Enteros(2)
• Con signo 16 bits: [-215
,215
-1]
• Con signo 32 bits: [-231
,231
-1]
• Con signo 64 bits: [-263
,263
-1]
>> x = int16(145)
x =5
>> x = int16( 33000 )
x =32767
6. Enteros(3)
• Sin signo 8 bits: [0 ,28
-1]
• Sin signo 16 bits: [0 ,216
-1]
• Sin signo 32 bits: [0 ,232
-1]
64
>> x = uint8(257)
x =255
>> x = uint8(-3)
x =0
>> x = uint8(1.9)
x = 2
7. Enteros(4)
• Para saber el valor máximo y mínimo de cada
tipo de entero podemos consultar a través de
las funciones intmax, intmin
>> intmax('uint8')
ans =255
>> intmin('int32')
ans =-2147483648
>> intwarning('on')
>> x = int8(234)
Warning: Out of range value converted to intmin('int8') or intmax('int8').
x =127
>> intwarning('off')
>> flag = intwarning('query')
8. Enteros(5)
• Funciones para trabajar con enteros: ceil,
class, floor, isinteger, isa, isnumeric, round.
>> ceil(1.2)
ans =2
>> class(single(0))
ans =single
>> floor(3.7)
ans =3
¿>> isinteger(4)
ans =0
>> isinteger(int16(4))
ans =1 ?
9. Enteros(6)
>> isnumeric(pi)
ans =1
>> isnumeric(true)
ans =0
>> isnumeric('test')
ans =0
>> round(1.2)
ans =1
>> round(1.5)
ans =2
>> round(1.9)
ans =2
>> isa(false,'logical')
ans =1
10. Flotantes(1)
• Matlab tienes dos tipos diferentes de números
flotantes, los de doble precisión y los de
simple precisión, por defecto Matlab usa
flotantes de doble precisión.
>> x = 1;
>> whos x
Name Size Bytes Class Attributes
x 1x1 8 double
>> isfloat(x)
ans =1
11. Flotantes(2)
• También podemos saber los valores máximos
y mínimos que podemos codificar con tipos de
datos flotantes con las funciones realmax y
realmin.
>> realmax('single')
ans =3.4028e+038
>> realmax('double')
ans =1.7977e+308
>> realmin('single')
ans =1.1755e-038
>> realmin('double')
ans =2.2251e-308
12. Booleanos(1)
• El tipo de datos booleano puede tomar dos
valores, cierto o falso.
• Las variables booleanas se pueden operar
mediante operadores lógicos (~, &&, ||)
• La comparación numérica puede devolver un
valor lógico (<, <=, >, >=, ==, ~= ).
• Hay funciones que devuelven un valor lógico.
>> isfinite(inf)
ans =0;
13. Booleanos(2)
• Los operadores lógicos siguen las reglas de las
tablas de la verdad de cada operador.
Encontrar la tabla de la verdad de (&&, ||)
>> true && false
ans =0
>> true || false
ans =1
>> ~true
ans =0
>> (isnumeric('test') || true) && true
ans =1
14. Booleanos(3)
• Regla de Demorgan: (Demostración conjuntos)
¬(A + B) = (¬A)·(¬B)
¬(A · B) = (¬A)+(¬B)
• Usamos las tablas de la verdad cuando
queremos evaluar todos los posibles valores
de una expresión:
F = (A + B) -> ¬A
• Dada una tabla de la verdad podemos
encontrar su expresión algebraica mediante la
expresión canónica de suma de productos.
15. Booleanos(4)
• Cuando una expresión es verdadera para
todos los posibles valores de sus variables lo
llamamos tautología.
P + ¬P
A->A
(P->Q)·(Q->R)->(P->R)
• Ojo avizor: A+A = A, A·A = A, A·1=A, A+0=A
¿ Cómo se puede simplificar la expresión:
¬P·(Q + ¬Q) ?
16. Booleanos(5)
• Otra forma de representar una función o
expresión booleana: F = Σ3(0,2,3,4,7) =
Π3(1,2,6)
• Encuentre la expresión algebraica de F.
• El amo del bar “el tropezón” está cansado que sus órdenes lleguen con errores a cocina,
luego pasa que a los que han pedido una ensalada les traen un codillo. Las quejas de los
comensales ya han llegado a la Generalitat y don Anselmo está desesperado. Buscando
soluciones, una consultora Americana le pretende vender un sistema de comunicaciones
entre la barra y la cocina por una millonada. Para ello le han dicho que codificarán sus 30
platos de la carta en un código binario de 4 bits con un bit de paridad par y que serán capaces
con este esquema de detectar incluso dos errores de transmisión. Don Anselmo conocedor
de las capacidades del departamento de psiquiatría nos ha escrito para ver si puede confiar
en ellos. Qué le decimos?