Este documento trata sobre registros, archivos y punteros en lenguaje C. Explica que los registros permiten definir nuevos tipos de datos compuestos, los archivos son utilizados para entrada y salida de datos, y los punteros almacenan direcciones de memoria y permiten acceder y modificar valores de variables.
Una de las necesidades con las que siempre nos encontramos cuando creamos software es el manejo de colecciones de datos, una de las formas de hacerlo es mediante arreglos.
En esta lección aprenderemos a crear arreglos de diferentes formas, también aprenderemos a recorrerlos de manera indexada y utilizando la técnica tipo colección. En la parte final desarrollaremos un caso ilustrativo.
URL DEL CURSO EN #UDEMY: https://www.udemy.com/course/java-orientado-a-objetos/?referralCode=ED949D58C79D27158E8D
CUPONES DE DESCUENTO: https://github.com/gcoronelc/udemy
Canal de yotube: https://www.youtube.com/desarrollasoftware
#UDEMY #java #desarrollasoftware #netbeans #gcoronelc #clases
#objetos #arreglos #colecciones #software #programacion
#desarrollador #programador #aplicacion #fullstack
#backend #frontend #agil #scrum #agile #framework
Una de las necesidades con las que siempre nos encontramos cuando creamos software es el manejo de colecciones de datos, una de las formas de hacerlo es mediante arreglos.
En esta lección aprenderemos a crear arreglos de diferentes formas, también aprenderemos a recorrerlos de manera indexada y utilizando la técnica tipo colección. En la parte final desarrollaremos un caso ilustrativo.
URL DEL CURSO EN #UDEMY: https://www.udemy.com/course/java-orientado-a-objetos/?referralCode=ED949D58C79D27158E8D
CUPONES DE DESCUENTO: https://github.com/gcoronelc/udemy
Canal de yotube: https://www.youtube.com/desarrollasoftware
#UDEMY #java #desarrollasoftware #netbeans #gcoronelc #clases
#objetos #arreglos #colecciones #software #programacion
#desarrollador #programador #aplicacion #fullstack
#backend #frontend #agil #scrum #agile #framework
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
En esta presentacion se muestran las funciones contenidas en las librerias string y ctype, que son las de uso más común para manejar cadenas de caracteres, en el lenguaje de programacion c
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
En esta presentacion se muestran las funciones contenidas en las librerias string y ctype, que son las de uso más común para manejar cadenas de caracteres, en el lenguaje de programacion c
Las computadoras se utilizan para procesar información (gráficos, sonidos, textos,...). Pero, ¿cómo es capaz la computadora digital de representar a toda esta información con tan solo dos símbolos, el cero (0) y el uno (1)?
Tipos de instrucciones de control alternativas (simple, doble, múltiple) y cómo se puede hacer uso de ellas en algoritmos (pseudocódigo y ordinogramas) para después codificar en lenguaje C.
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)
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
4. Estructura
• La estructura en un programa en C es de la
siguiente forma:
#include <stdio.h>
#define MAXIMO 100
Int funcion1(char vector[], int max)
Int funcion2()
int main(void) /*Cabecera de funcion*/
{
int caracter; /*Declaracion de variable local*/
for (caracter = 33 ; caracter < 255 ; caracter++)
/*Define ciclo de 33 a 255*/
putchar(caracter);
/*Imprime caracter segun numero*/
putchar('n');
return 0;
} /*fin de main()*/
Programa principal
Declaración librerías
Declaración de funciones
Declaración de Macros
Bloque programa
5. Librerías
• Las librerias se declaradas en archivos
llamados de cabezera “Header files” , estas
se llaman: #include <stdio.h>
• Las locales se llaman #include |pantalla.h|
stdio.h - Funciones de entrada/salida
stdlib.h - Conversión de tipos y asignación de memoria
string.h - Manejo de cadenas de caracteres
ctype.h - Comprobaciones y conversiones de tipos
io.h - Control de disco a bajo nivel
math.h - Funciones matemáticas en punto flotante
dos.h - Interacción con el MS-DOS
dir.h - Búsqueda de ficheros y manejo de directorios
6. Tipos de variables
• Hay cuatro tipos fundamentales, identificados por la
palabra clave que los define en el lenguaje:
• int: numeros enteros.
• char: un caracter individual.
• float: numeros fraccionarios, en notacion de coma flotante.
• double: Numeros en coma flotante, con el doble de digitos
• significativos que los float.
• Existe también una serie de modificadores que
alteran el rango de valores aceptados por los tipos
base:
• short int, o simplemente short: numeros enteros con menor rango de
valores.
• long int, o tambien long: numeros enteros con mayor rango de
valores.
• unsigned int, o simplemente unsigned: numeros enteros sin signo.
• unsigned long: enteros grandes y sin signo.
• unsigned char: esto es util cuando usemos una variable char como
si fuese un int.
8. Tipo y funciones
int convertir(char letra_1, char letra_2)
double raiz_cuadrada(double operando)
void escribir(char letra)
unsigned long espacio_libre(void)
14. Entrada
• La lectura de datos se realiza con las
sentencias
scanf(“%d”, &edad)
scanf(“%d %c %f”, &a,&c,&x);
caracter = getc(variable);
c = getchar()
15. Salida
• La salida de datos se realiza con las
sentencias
putchar(33);
putchar(variable);
putchar(100);
printf ("holan");
printf("Tienes %d edadn", edad);
printf("Tienes %d edad y mides %fn", edad, altura);
16. Arreglos
• Al declarar el array, indicamos entre
corchetes el numero de elementos que
va a tener.
int mi_array[10];
mi_array=valor_leido;
17. Ejercicio en clases
• Programe una aplicación que lea dos
números y calcule sus suma, resta,
producto y división. Mostrar por
pantalla resultado.
• Programe una aplicación en C que lea
el nombre una persona y la edad, sea
ingresado a un arreglo y sea impreso
en orden de edad.
19. Punteros
• Un apuntador es una variable que
contiene la dirección de otra variable.
dirección
Apuntador
valor
Variable
Se puede acceder al objeto
“indirectamente”
20. Punteros
• Operador unitario &: da la dirección del
objeto p=&c
• Se asigna la dirección de c a la variable p
• p es el puntero
• Operador unitario *: es el operador de
indirección o desreferencia; da acceso
a objeto que señala el apuntador
21. Punteros
• Ejemplos
int *px; *declara a px como un puntero a un objeto integer*
char *px; *declara a px como un puntero a un objeto char*
int x,y,*px;
px=&x; *asigna la dirección de x a la variable px*
y=*px; *asigna a y el valor al que apunta px*
22. Punteros
• Operaciones permitidas
– Un apuntador puede ser asignado a otro
– Es posible sumar o restar un apuntador
con un entero
– Es posible restar o comparar dos
apuntadores
– No es posible realizar ninguna operación
entre dos apuntadores
25. Punteros
• Apuntadores a funciones
– Estos apuntadores pueden poner en arreglos por ejemplo, y
retornar valores en cada posición
int *f(); * f:función que regresa un apuntador a int *
int (*pf)(); * pf:apuntador a una función regresa un int *
char **argv; * argv:apuntador a un apuntador char *
int (*diatab)[13]; * apuntador a un arreglo[13] de int*
int *daytab[13]; * arreglo[13] de apuntadores a int *
void *comp(); * comp: función que retorna apuntador a void*
void (*comp)(); *comp: apuntador a una función que retorna
void*
char (*(*x())[])(); * x: función que regresa un apuntador a
un arreglo[] de apuntadores a una función que regresa char*
char (*(*x[3]())[5]; * x: arreglo[3] de apuntadores a una
función que regresa un apuntador a un arreglo[5] de char*
26. Punteros
• Ejercicio
– Realice el ordenamiento ascendente de
una lista de 10 números utilizando
punteros para los arreglos. (ingresar,
ordenar,imprimir)
28. Estructuras (Registros)
• Para definir un registro se debe definir
una estructura:
struct fecha {
int dia;
int mes;
int año;
};
29. Estructuras (Registros)
• Es una especie de molde que
podemos nuevamente utilizar:
struct fecha d;
• Esta se puede inicializar:
struct fecha d={4,7,1987};
31. Apuntar estructuras
• Operaciones únicas con estructuras
– Acceder a uno de sus miembros
– Tomar su dirección (&)
• Las estructuras no se pueden asignar
o copiar como una unidad (no se
puede pasar como argumento a
funciones)
• Los punteros a estructuras no tienen
estas limitaciones
32. Apuntar estructuras
• Apuntador a una estructura del tipo fecha
struct fecha *pd;
• Puntero a una estrucura de tipo fecha
pd=&d
(*pd).mes
• Notación abreviada
pd-><miembro_estructura>
pd->mes
33. Definición de tipos de datos
• C dispone de una declaración de tipos
de datos llamada typedef
typedef int entero;
• La palabra “entero” es sinónimo de
“int”
entero a,b,c;
34. Definición de tipos de datos
• Podemos crear los nodos de un arbol
typedef struct anodo{
char *word;
int count;
Treeptr left;
Treeptr right;
}NodoArbol;
• Se creo la palabra reserva NodoArbol;
• La equivalencia puede ser de dos formas:
NodoArbol d;
struct anodo d;
36. Uniones
• Variable que puede contener obtener
objetos de diferentes tamaños
• El compilador sigue el tamaño y requisito de
alineación
• Manipula diferentes clases de datos en una
sola area de almacenamiento
union u_tag {
int ival;
float fval;
char *sval;
}u;
37. Uniones
• Se tiene acceso a los miembros como:
nombre-unión.miembro
apuntador-union.miembro
struct {
char *name;
int flags;
int utype;
union {
int ival;
float fval;
char *sval;
}u;
}symtab[NSYM];
38. Uniones
• Al miembro ival se accesa:
symtab [i].u.ival;
• Al primero de la cadena sval:
symtab [i].u.sval[0];
40. Archivos
• Recomendaciones para trabajar con
archivos
– Debe ser abierto
– Tomar nombre externo
– Utilizar apuntador para lecturas y escrituras
(apuntador de archivo)
• Ubicación de un buffer
• Posición carácter actual del buffer
• Si el archivo esta siendo leído o escrito
• Ocurrencia de errores
• Fin de archivo
42. Archivos
• Argumentos de “fopen”
El primero es una cadena de caracteres con
el nombre del archivo: “datos.txt”
El segundo es el tipo de acceso:
• Escritura “w”
• Lectura “r”
• Agregación “a”
• Si no existe con “a” y “w” se crea
• Con “w” elimina todo lo del archivo
• “fopen” regresa NULL si existe error
43. Archivos
• Otras funciones
int getc(FILE *fp)
Regresa el siguiente carácter de un archivo.
Regresa EOF si existe error.
int putc(int c, FILE *fp)
Escribe el carácter c en el archivo fp.
Regresa el carácter escrito.
Regresa EOF si existe error.
44. Archivos
• Otras funciones, para es con formato
int fscanf(FILE *fp, char *formato, ...)
int fprintf(FILE *fp, char *formato, ...)