Este documento introduce el lenguaje de programación C. Explica la arquitectura de un computador y diferentes sistemas operativos. Luego describe los diferentes tipos de lenguajes de programación, incluyendo lenguajes de máquina, de bajo nivel, de nivel intermedio y de alto nivel. Finalmente, se enfoca en el lenguaje C, su historia, características y cómo crear un programa simple en C usando un entorno de desarrollo integrado.
Alvarez (2023) - Teoría de la Elasticidad usando Matlab y Maxima - volumen 1 ...Diego Andrés Alvarez Marín
https://repositorio.unal.edu.co/handle/unal/84682
Este libro acerca la teoría de la elasticidad al estudiante de pregrado de Ingeniería Civil o Mecánica, mediante la introspección física-matemática y la deducción paso a paso de cada una de las ecuaciones fundamentales de la elasticidad. De hecho, lo que el libro clásico de Timoshenko y Goodier trata en sesenta páginas aquí se desglosa en cerca de trescientas. Todo esto con miras a dar al estudiante una fundamentación sólida para posteriores cursos sobre el método de los elementos finitos, la mecánica computacional o la plasticidad. La presente obra recoge la experiencia docente de más de doce años del autor; su escritura se llevó a cabo con la retroalimentación permanente de los estudiantes. El texto hace uso del programa libre de álgebra simbólica Maxima, para deducir la mayoría de las ecuaciones complejas, y presenta códigos de Matlab que sirven para ilustrar numéricamente los ejemplos. La traducción de estos códigos a Python se encuentra en la página web del autor, en formato Jupyter Notebooks. Asimismo, el contenido se complementa con videos de su autoría, disponibles en YouTube.
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
07 - Tipos de datos definidos por el programador en lenguaje C: struct, typed...Diego Andrés Alvarez Marín
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...Diego Andrés Alvarez Marín
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación y los códigos fuente, dirijase a:
http://programaciondecomputadoresunalmzl.wikispaces.com/codigos_y_diapositivas
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación, dirijase a:
http://probestunalmzl.wikispaces.com/temario
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Si quiere descargar la presentación, dirijase a:
http://probestunalmzl.wikispaces.com/temario
Le agradecería si me reporta los errores que encuentre en la diapositiva (daalvarez arroba unal punto edu punto co)
Repaso de teoría de conjuntos
Fenómenos determinísticos vs. fenómenos aleatorios
Definición de probabilidad
Interpretación frecuentista y Bayesiana de la probabilidad
Espacio muestral, eventos
Sigma-álgebra
Medida de probabilidad, definición, propiedades
Axiomas de Kolmogorov
Probabilidad conjunta, marginal, condicional
Eventos independientes
Teorema de las probabilidades totales, teorema de Bayes
Técnicas de conteo: factorial, permutación, combinatoria
Qué es la estadística?
Qué es la teoría de probabilidades?
Qué es la estadística descriptiva?
Qué es la estadística inferencial
------------------------------------------------------------
Definiciones básicas
Medidas de tendencia no central
Medidas de tendencia central
Medidas de dispersión
Momentos
Representación gráfica de la información
Histogramas
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Los desafíos de calidad de software que nos trae la IA y los LLMsFederico Toledo
En esta charla, nos sumergiremos en los desafíos emergentes que la inteligencia artificial (IA) y los Large Language Models (LLMs) traen al mundo de la calidad del software y el testing. Exploraremos cómo la integración, uso o diseño de modelos de IA plantean nuevos retos, incluyendo la calidad de datos y detección de sesgos, sumando la complejidad de probar algo no determinístico. Revisaremos algunas propuestas que se están llevando adelante para ajustar nuestras tareas de testing al desarrollo de este tipo de sistemas, incluyendo enfoques de pruebas automatizadas y observabilidad.
Los desafíos de calidad de software que nos trae la IA y los LLMs
01 - Introducción al lenguaje C
1. 1
01 – Introducción al lenguaje C
Diego Andrés Alvarez Marín
Profesor Asociado
Universidad Nacional de Colombia
Sede Manizales
2. Arquitectura de un computador
● Procesador (CPU, memoria caché)
● Buses de datos (son las flechas en el dibujo)
● Memoria (de corto y largo plazo)
● Periféricos (entrada, salida)
3. Sistemas operativos
● Microsoft Windows
● GNU/Linux (y su hijo Android)
● Mac OS X
● iOS
● Unix
● Solarix
● FreeBSD
● BlackBerry OS
4. Estadísticas a Junio 2013 con respecto al uso de
sistemas operativos en los 500 computadores
más poderosos del planeta
Fuente: http://top500.org/statistics/list/
6. ¿Quiere instalar GNU/Linux?
Si está interesado en instalar GNU/Linux, le
recomiendo instalar la distribución Linux Mint (con
el escritorio KDE):
http://www.linuxmint.com/
Se recomienda hacerlo inicialmente dentro de
una máquina virtual:
https://www.youtube.com/results?search_query=install+linux+mint+14+virtualbox
8. Lenguajes de programación
● De máquina: unos y ceros que entiende el
procesador
● De bajo nivel: es aquel en el que sus
instrucciones ejercen un control directo sobre el
hardware y están condicionados por la
estructura física de la computadora que lo
soporta.
● De nivel intermedio
● De alto nivel: expresan los algoritmos de una
manera adecuada a la capacidad cognitiva
humana, en lugar de a la capacidad ejecutora
de las máquinas.
9. Lenguaje de máquina
Lenguaje de máquina del Intel 8088. El código de
máquina en hexadecimal se resalta en rojo, el
equivalente en lenguaje assembler en magenta, y las
direcciones de memoria donde se encuentra el código,
en azul. Abajo se ve un texto en hexadecimal y ASCII.
10. Lenguaje de bajo nivel
Ventajas:
● Máximo aprovechamiento de los recurso de la
máquina.
● Máxima velocidad posible.
● Mínima portabilidad (depende de la máquina)
Desventajas:
● Requiere de la máxima atención y de una organización
estructurada en base a los planos del hardware y del
objetivo del software.
● Largo tiempo de desarrollo
● Difícil encontrar errores
14. Lenguajes de alto nivel
Ventajas
● Genera un código más sencillo y comprensible.
● Escribir un código válido para diversas máquinas y,
posiblemente, sistemas operativos.
Inconvenientes
● Reducción de velocidad al ceder el trabajo de bajo
nivel a la máquina.
● Algunos requieren que la máquina cliente posea una
determinada plataforma.
15. Lenguaje de alto nivel
Visual Basic for Applications: Alt+F11 en MS EXCEL
16. Lenguaje C
● Desarrollado por Dennis Ritchie en AT&T Bell
Labs entre 1969 y 1973
● Es el lenguaje de programación más utilizado
en la actualidad:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
● Muy rápido, eficiente, fácil
● Permite el acceso de bajo nivel a la máquina
pero permite programación de alto nivel
18. Historia del lenguaje C
1973: invención por Dennis Ritchie
1978: primera especificación (K&R C: Dennis
Ritchie and Brian Kernighan)
1989: aparece el ANSI C (standard ANSI C89: el
más usado en la actualidad)
1990: ANSI C adoptado por la ISO (standard
C90). Nota C89 y C90 son los mismos
1999: standard ISO C99
No está completamente implementado en muchos
compiladores
2011: standard ISO C11
19. Características del lenguaje C
● Pocas palabras clave (27+5+5+7)
● Utilizado para desarrollar sistemas operativos
● Utilizado para programar desde
microcontroladores hasta supercomputadores
● Lenguaje compilado
● Lenguaje de nivel medio-bajo
● Permite el acceso “bajo” a la memoria del
computador
K&R C89 C99 C11
22. Lenguaje C vs otros lenguajes
● Es un subconjunto de C++ y de Objective-C
● Influenció: C#, Java, Perl, PHP, Python
http://en.wikipedia.org/wiki/List_of_C-based_programming_languages
Carece de:
● excepciones
● chequeo de rangos
● colección de basura (garbage collection)
● programación orientada a objetos
23. ¿Por qué C y
no MATLAB?
Tomado de: http://xkcd.com/409/
24. Creando código en C
● Se utiliza cualquier editor de texto
● Extensión .c para los archivos fuente
● Extensión .h para los archivos encabezado
25. Compiladores
Un compilador es un programa que permite
traducir el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel
inferior (típicamente lenguaje de máquina).
De esta manera un programador puede diseñar
un programa en un lenguaje mucho más cercano
a como piensa un ser humano, para luego
compilarlo a un programa más manejable por una
computadora.
26. Compiladores de lenguaje C
● GNU compiler collection: gcc (MinGW,
Cygwin)
● Intel C++ compiler
● Open Watcom
● (Borland) Turbo C
● Microsoft Visual C++ (solo soporta el C89)
Y muchos otros:
http://en.wikipedia.org/wiki/Category:C_compilers
Utilizaremos el gcc
en el curso
27. El compilador MinGW
http://mingw.org/
● Es una versión nativa para Windows del
compilador GNU Compiler Collection (GCC)
● Este es el compilador que viene por defecto
en el Code::Blocks
● Se debe tener en cuenta que es un
compilador de 32 bits
● Su variante para 64 bits es el MinGW-64, el
cual se puede descargar de:
http://mingw-w64.sourceforge.net/
28. Lenguaje interpretado
vs
Lenguaje compilado
Los lenguajes compilados son lenguajes de alto
nivel en los que el código fuente se traduce a
lenguaje de máquina para una ejecución rápida.
Ejemplo: Lenguaje C/C++
Un lenguaje interpretado es aquel en el que las
instrucciones se traducen o interpretan una a una
siendo típicamente unas 10 veces más lentos
que los programas compilados: Ejemplo:
MATLAB, Python, VisualBasic
29. Entorno de desarrollo integrado
(IDE Integrated Development Environment)
Un IDE es un entorno de programación que ha
sido empaquetado como un programa de
aplicación; es decir, consiste en:
● un editor de código
● un compilador
● un depurador
● un constructor de interfaz gráfica (GUI)
30. IDEs para C/C++
● Anjuta
● Code::Blocks (utilizaremos este durante el curso)
● CodeLite
● Dev-C++
● Eclipse
● KDevelop
● NetBeans (si usted tiene un Mac, utilizará este
durante el curso)
● Visual Studio Express
● wxDev-C++
39. Estructura de un programa en C
Contiene:
● Encabezados
● Librerias #include
● Prototipos de funciones
● Declaración de constantes y variables globales
● Función main()
● Otras funciones
41. Comentarios
Son ignorados por el compilador
Pueden aparecer en cualquier lugar del código
Forma de comentario autorizada en el standard C99
42. La directiva del compilador
#include
Sirve para cargar textualmente el archivo
nombrado en el código actual (generalmente un
archivo de encabezado .h)
#include <miarchivo> busca ''miarchivo'' en
los "include paths" (/usr/include o directiva -L)
#include ”miarchivo” busca ''miarchivo'' en
el subdirectorio actual
Se supone que "miarchivo" contiene constantes,
funciones, y otras declaraciones