SlideShare una empresa de Scribd logo
RegistrosRegistros
ArchivosArchivos
ApuntadoresApuntadores
en
Lenguaje C
Preparado por: Pedro Contreras
DIICC-Facultad de Ingeniería
Universidad de Atacama
Índice
• Estructura
• Librerías
• Entrada
• Salida
• Selecciones
• Iteraciones
• Vectores y matrices
• Registros, Archivos y Punteros
• Grafica
Estructura
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
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
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.
Ejemplos
unsigned x;
int x,y,
z3,valor;
char letra = 'A';
unsigned long valor_largo;
double pi = 3.1416;
float num_1, num_2, num_3;
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)
Llamar funciones
escribir('X');
resultado = raiz_cuadrada(x);
espacio = espacio_libre() + 512;
valor = raiz_cuadrada(convertir('z', caracter_2));
if (es_primo(x))
return raiz_cuadrada(x * y);
Comparaciones
< menor que
> mayor que
<= menor o igual
>= mayor o igual
== igual
!= distinto
Ejemplos
a > b
a == 3
10 > dato
valor >= 0
if (a == b) printf("a es igual que b");
inicial = 65
Expresiones Lógicas
• a > 0 && b > 0
• dato == 0 && x != 0
• a > 0 || b > 0
• !(dato > 0)
• letra > 'A' && letra < 'Z'
• raiz_cuadrada(x) >= logaritmo(y) - 1
• letra_inicial != 100 && !(edad > 'A')
• !(edad < 10 || edad > 70)&& sexo != 'F'
• (inicial == 'A' || inicial == 'B' || inicial
== 'C' || inicial == 'X') && edad > 10
Entrada y Salida
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()
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);
Arreglos
• Al declarar el array, indicamos entre
corchetes el numero de elementos que
va a tener.
int mi_array[10];
mi_array=valor_leido;
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.
Punteros
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”
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
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*
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
Punteros
• Argumentos de funciones
#include <stdio.h>
//*******************
void swap(int *px,int *py)
{int temporal;
temporal=*px;
*px=*py;
*py=temporal;
printf("%d",temporal);
printf("**");
printf("%d",*px);
printf("**");
printf("%d",*py);}
//********************
void main()
{int x,y;
x=1;
y=2;
swap(&x,&y);}
Punteros
• Punteros y arreglos
#include <stdio.h>
//*******************
void strcpy(char s[], char t[])
{
int i=0;
while (i<=5)
{
s[i]=t[i];
i++;}
}
//********************
void main()
{
char ss[5];
char tt[5];
tt[0]='a';
tt[1]='b';
tt[2]='c';
tt[3]='d';
tt[4]='e';
strcpy(ss,tt);
}
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*
Punteros
• Ejercicio
– Realice el ordenamiento ascendente de
una lista de 10 números utilizando
punteros para los arreglos. (ingresar,
ordenar,imprimir)
Estructuras
(Registros)
Estructuras (Registros)
• Para definir un registro se debe definir
una estructura:
struct fecha {
int dia;
int mes;
int año;
};
Estructuras (Registros)
• Es una especie de molde que
podemos nuevamente utilizar:
struct fecha d;
• Esta se puede inicializar:
struct fecha d={4,7,1987};
Estructuras (Registros)
• Para hacer referencia:
if (d.mes<6)
if (d.año==1995)
d.dia=15;
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
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
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;
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;
Uniones
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;
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];
Uniones
• Al miembro ival se accesa:
symtab [i].u.ival;
• Al primero de la cadena sval:
symtab [i].u.sval[0];
Archivos
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
Archivos
• Declaraciones
FILE *p_a
FILE *fopen (char *nombre,
char *modo);
p_a es un apuntador de archivo
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
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.
Archivos
• Otras funciones, para es con formato
int fscanf(FILE *fp, char *formato, ...)
int fprintf(FILE *fp, char *formato, ...)
ASCII
Arte ASCII
• http://www.fortunecity.com/marina/
reach/595/indiceAscii.htm

Más contenido relacionado

La actualidad más candente

Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScriptPablo Bouzada
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
Mario Garcia Valdez
 
Matemática de Punto Flotante
Matemática de Punto FlotanteMatemática de Punto Flotante
Matemática de Punto Flotante
Itachi Stark Kamijou
 
Punteros en c
Punteros en cPunteros en c
Punteros en c
fcosunt
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
Fabiola Cortes
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
HEIVER CUESTA
 
Definición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la ProgramaciónDefinición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la Programación
Facultad de Ciencias y Sistemas
 
03 - Cadenas en Python 3
03 - Cadenas en Python 303 - Cadenas en Python 3
03 - Cadenas en Python 3
Diego Andrés Alvarez Marín
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
Cesar Oswaldo Osorio Agualongo
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
Ramiro Estigarribia Canese
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
Cristian C
 
ESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdfESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdf
KEVINDAVIDTOPONSALAZ
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
Mariela Cabezas
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
Angel Vázquez Patiño
 
Arraylist
ArraylistArraylist
Arraylist
Fernando Solis
 

La actualidad más candente (20)

Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScript
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
 
Tipos de datos_para_c++
Tipos de datos_para_c++Tipos de datos_para_c++
Tipos de datos_para_c++
 
Matemática de Punto Flotante
Matemática de Punto FlotanteMatemática de Punto Flotante
Matemática de Punto Flotante
 
Punteros en c
Punteros en cPunteros en c
Punteros en c
 
Ejercicios+arduino+processing
Ejercicios+arduino+processingEjercicios+arduino+processing
Ejercicios+arduino+processing
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
 
Sistema hexadecimal
Sistema hexadecimalSistema hexadecimal
Sistema hexadecimal
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 
Definición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la ProgramaciónDefinición de punteros en C++ en Introducción a la Programación
Definición de punteros en C++ en Introducción a la Programación
 
03 - Cadenas en Python 3
03 - Cadenas en Python 303 - Cadenas en Python 3
03 - Cadenas en Python 3
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Ai u4
Ai u4Ai u4
Ai u4
 
Manual de PSeInt
Manual de PSeIntManual de PSeInt
Manual de PSeInt
 
ESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdfESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdf
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Estructuras de datos
Estructuras de datosEstructuras de datos
Estructuras de datos
 
Arraylist
ArraylistArraylist
Arraylist
 

Destacado

Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
Ronny Parra
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
Gustavo Salazar Loor
 
Lógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosLógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosEdward Ropero
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
Washington Velásquez
 
Tema6
Tema6Tema6
Tema6
UH
 
Ciclo de vida de un programa
Ciclo de vida de un programaCiclo de vida de un programa
Ciclo de vida de un programa
Carlos Pes
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
flaquita_dany
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujo
Carlos Pes
 
GUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALGUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALmakac0 makac0
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datosuanelectromecanica
 
Representación de los datos
Representación de los datosRepresentación de los datos
Representación de los datos
Carlos Pes
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativas
Carlos Pes
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
Diego Andrés Alvarez Marín
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
Carlos Gavidia-Calderon
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un Algoritmo
Carlos Pes
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y EntradaCarlos Pes
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
Carlos Pes
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y ExpresionesCarlos Pes
 
Tipos de datos definidos por el programador
Tipos de datos definidos por el programadorTipos de datos definidos por el programador
Tipos de datos definidos por el programadorCarlos Pes
 

Destacado (20)

Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Lógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosLógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y Algoritmos
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
 
Tema6
Tema6Tema6
Tema6
 
Ciclo de vida de un programa
Ciclo de vida de un programaCiclo de vida de un programa
Ciclo de vida de un programa
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Capitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujoCapitulo 10 Introduccion a los diagramas de flujo
Capitulo 10 Introduccion a los diagramas de flujo
 
GUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALGUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/AL
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datos
 
Representación de los datos
Representación de los datosRepresentación de los datos
Representación de los datos
 
Instrucciones de control alternativas
Instrucciones de control alternativasInstrucciones de control alternativas
Instrucciones de control alternativas
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Estructura de un Algoritmo
Estructura de un AlgoritmoEstructura de un Algoritmo
Estructura de un Algoritmo
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y Expresiones
 
Tipos de datos definidos por el programador
Tipos de datos definidos por el programadorTipos de datos definidos por el programador
Tipos de datos definidos por el programador
 

Similar a 2 punteros y lenguaje c

Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
MarielaCuriel
 
Curso c++
Curso c++Curso c++
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
Jhosse Ant Siilva
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptx
MundoGamerHD
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
ederhenriquez
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
area21
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacionYsaac Ruiz
 
Recuperacin 333333
Recuperacin 333333Recuperacin 333333
Recuperacin 333333
Jesus Lucas Rodriguez
 
Introducción al lenguaje c
Introducción al lenguaje cIntroducción al lenguaje c
Introducción al lenguaje c
Dorys Quiroz Quiroz
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
tacubomx
 
Cpp
CppCpp
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
Richard Eliseo Mendoza Gafaro
 

Similar a 2 punteros y lenguaje c (20)

Programación en c (iii parte)
Programación en c (iii parte)Programación en c (iii parte)
Programación en c (iii parte)
 
Curso c++
Curso c++Curso c++
Curso c++
 
Trabajo programacion 1 jose silva
Trabajo programacion 1 jose silvaTrabajo programacion 1 jose silva
Trabajo programacion 1 jose silva
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptx
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Introduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquezIntroduccion al lenguaje c_EderHenriquez
Introduccion al lenguaje c_EderHenriquez
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
Recuperacin 333333
Recuperacin 333333Recuperacin 333333
Recuperacin 333333
 
Programar en c
Programar en cProgramar en c
Programar en c
 
Introducción al lenguaje c
Introducción al lenguaje cIntroducción al lenguaje c
Introducción al lenguaje c
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 

Más de Pedro Contreras Flores

El dilema de las redes sociales
El dilema de las redes sociales El dilema de las redes sociales
El dilema de las redes sociales
Pedro Contreras Flores
 
Tipos de sistemas de información
Tipos de sistemas de informaciónTipos de sistemas de información
Tipos de sistemas de información
Pedro Contreras Flores
 
Text Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 KimelfeldText Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 Kimelfeld
Pedro Contreras Flores
 
Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecas
Pedro Contreras Flores
 
Gestión del conocimiento
Gestión del conocimientoGestión del conocimiento
Gestión del conocimiento
Pedro Contreras Flores
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0
Pedro Contreras Flores
 
Bibliotecas moviles y calidad
Bibliotecas moviles y calidadBibliotecas moviles y calidad
Bibliotecas moviles y calidad
Pedro Contreras Flores
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion intro
Pedro Contreras Flores
 
Plataforma de Digitalización
Plataforma de DigitalizaciónPlataforma de Digitalización
Plataforma de Digitalización
Pedro Contreras Flores
 
Red de transporte urbano
Red de transporte urbanoRed de transporte urbano
Red de transporte urbano
Pedro Contreras Flores
 
Packing
PackingPacking
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San Martín
Pedro Contreras Flores
 
Tecnologías de la información
Tecnologías de la informaciónTecnologías de la información
Tecnologías de la información
Pedro Contreras Flores
 
Java 3D
Java 3DJava 3D
Complementos de programación
Complementos de programaciónComplementos de programación
Complementos de programación
Pedro Contreras Flores
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
Pedro Contreras Flores
 
3 recursividad
3 recursividad3 recursividad
3 recursividad
Pedro Contreras Flores
 
Programación grafica en lenguaje c
Programación grafica en lenguaje cProgramación grafica en lenguaje c
Programación grafica en lenguaje c
Pedro Contreras Flores
 
2 archivos
2 archivos2 archivos

Más de Pedro Contreras Flores (20)

El dilema de las redes sociales
El dilema de las redes sociales El dilema de las redes sociales
El dilema de las redes sociales
 
Tipos de sistemas de información
Tipos de sistemas de informaciónTipos de sistemas de información
Tipos de sistemas de información
 
Text Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 KimelfeldText Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 Kimelfeld
 
Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecas
 
Gestión del conocimiento
Gestión del conocimientoGestión del conocimiento
Gestión del conocimiento
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0
 
Bibliotecas moviles y calidad
Bibliotecas moviles y calidadBibliotecas moviles y calidad
Bibliotecas moviles y calidad
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion intro
 
Plataforma de Digitalización
Plataforma de DigitalizaciónPlataforma de Digitalización
Plataforma de Digitalización
 
Red de transporte urbano
Red de transporte urbanoRed de transporte urbano
Red de transporte urbano
 
Packing
PackingPacking
Packing
 
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San Martín
 
Tecnologías de la información
Tecnologías de la informaciónTecnologías de la información
Tecnologías de la información
 
Modelamiento y simulación
Modelamiento y simulaciónModelamiento y simulación
Modelamiento y simulación
 
Java 3D
Java 3DJava 3D
Java 3D
 
Complementos de programación
Complementos de programaciónComplementos de programación
Complementos de programación
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 
3 recursividad
3 recursividad3 recursividad
3 recursividad
 
Programación grafica en lenguaje c
Programación grafica en lenguaje cProgramación grafica en lenguaje c
Programación grafica en lenguaje c
 
2 archivos
2 archivos2 archivos
2 archivos
 

Último

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 

Último (20)

(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 

2 punteros y lenguaje c

  • 1. RegistrosRegistros ArchivosArchivos ApuntadoresApuntadores en Lenguaje C Preparado por: Pedro Contreras DIICC-Facultad de Ingeniería Universidad de Atacama
  • 2. Índice • Estructura • Librerías • Entrada • Salida • Selecciones • Iteraciones • Vectores y matrices • Registros, Archivos y Punteros • Grafica
  • 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.
  • 7. Ejemplos unsigned x; int x,y, z3,valor; char letra = 'A'; unsigned long valor_largo; double pi = 3.1416; float num_1, num_2, num_3;
  • 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)
  • 9. Llamar funciones escribir('X'); resultado = raiz_cuadrada(x); espacio = espacio_libre() + 512; valor = raiz_cuadrada(convertir('z', caracter_2)); if (es_primo(x)) return raiz_cuadrada(x * y);
  • 10. Comparaciones < menor que > mayor que <= menor o igual >= mayor o igual == igual != distinto
  • 11. Ejemplos a > b a == 3 10 > dato valor >= 0 if (a == b) printf("a es igual que b"); inicial = 65
  • 12. Expresiones Lógicas • a > 0 && b > 0 • dato == 0 && x != 0 • a > 0 || b > 0 • !(dato > 0) • letra > 'A' && letra < 'Z' • raiz_cuadrada(x) >= logaritmo(y) - 1 • letra_inicial != 100 && !(edad > 'A') • !(edad < 10 || edad > 70)&& sexo != 'F' • (inicial == 'A' || inicial == 'B' || inicial == 'C' || inicial == 'X') && edad > 10
  • 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
  • 23. Punteros • Argumentos de funciones #include <stdio.h> //******************* void swap(int *px,int *py) {int temporal; temporal=*px; *px=*py; *py=temporal; printf("%d",temporal); printf("**"); printf("%d",*px); printf("**"); printf("%d",*py);} //******************** void main() {int x,y; x=1; y=2; swap(&x,&y);}
  • 24. Punteros • Punteros y arreglos #include <stdio.h> //******************* void strcpy(char s[], char t[]) { int i=0; while (i<=5) { s[i]=t[i]; i++;} } //******************** void main() { char ss[5]; char tt[5]; tt[0]='a'; tt[1]='b'; tt[2]='c'; tt[3]='d'; tt[4]='e'; strcpy(ss,tt); }
  • 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};
  • 30. Estructuras (Registros) • Para hacer referencia: if (d.mes<6) if (d.año==1995) d.dia=15;
  • 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
  • 41. Archivos • Declaraciones FILE *p_a FILE *fopen (char *nombre, char *modo); p_a es un apuntador 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, ...)
  • 45. ASCII