Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Basica PDF
Programacion Basica PDF
PROGRAMACIN BSICA
Viveros de Ass 96, Col. Viveros de la Loma, Tlalnepantla, C.P. 54080, Estado de Mxico.
Prohibida la reproduccin parcial o total por cualquier medio, sin la autorizacin por escrito del titular de
los derechos.
Programacin bsica
ISBN 978-607-733-168-1
DIRECTORIO
NDICE
INTRODUCCIN.............................................................................................................................. 7
UNIDAD 1 ....................................................................................................................................... 9
OBJETIVO: .................................................................................................................................. 9
Introduccin ..................................................................................................................... 11
Autoevaluacin: ....................................................................................................................... 25
OBJETIVO.................................................................................................................................. 26
Introduccin ..................................................................................................................... 28
Autoevaluacin: ....................................................................................................................... 42
UNIDAD 3 ..................................................................................................................................... 43
OBJETIVO: ................................................................................................................................ 43
Introduccin ..................................................................................................................... 45
3.6 Variables..................................................................................................................... 47
Autoevaluacin: ....................................................................................................................... 51
4
UNIDAD 4 ..................................................................................................................................... 52
OBJETIVO: ................................................................................................................................ 52
4.3.2 Do While.................................................................................................................. 64
Autoevaluacin: ....................................................................................................................... 67
UNIDAD 5 ..................................................................................................................................... 68
OBJETIVO: ................................................................................................................................ 68
Introduccin ..................................................................................................................... 70
Autoevaluacin: ....................................................................................................................... 84
UNIDAD 6 ..................................................................................................................................... 85
APUNTADORES............................................................................................................................. 85
OBJETIVO: ................................................................................................................................ 85
Introduccin ..................................................................................................................... 87
7.3 E/S por consola: getchar( ) y putchar( ), gets( ) y puts( ). ........................................ 107
7.4 E/S por consola con formato printf( ) y scanf( ). ...................................................... 109
6
Glosario 121
7
INTRODUCCIN
Desde 1978, ao en que nace el lenguaje de programacin C el mundo de las
computadoras ha cambiado enormemente, las grandes computadoras de
entonces tienen menos recursos que un pequeo equipo personal moderno,
dentro del gran desarrollo de los sistemas de cmputo podemos mencionar que
una gran computadora de hace ms de 30 aos, ocupaba una habitacin de
ms de 30 metros cuadrados y contaba con las siguientes caractersticas:
memoria principal de 64,000 Bytes, sin gigas, megas o kilos, su nico
dispositivo de entrada era por medio de tarjetas de cartn perforadas, y todos
los resultados los arrojaba impresos en papel continuo en una impresora del
tamao de una lavadora moderna, su pequeo teclado y su monitor
monocromtico servan para que los grandes gurs de programacin pudieran
encender y apagar dicha computadora, sin embargo en estos 32 aos el
lenguaje de programacin C solo ha sufrido cambios muy modestos.
MAPA CONCEPTUAL
Conceptos Bsicos de
programacin
Entrada / Salida
9
UNIDAD 1
OBJETIVO:
TEMARIO
MAPA CONCEPTUAL
Conceptos Bsicos de
programacin
Compilacin
y Ligado
IDE
Estructura
de C
11
INTRODUCCIN
El lenguaje C fue desarrollado hace 32 aos, durante ms de 3 dcadas a
conservado su esencia sin sufrir grandes cambios, en este captulo se mostrar
la estructura de un programa escrito en C, como logramos que las
instrucciones escritas por los programadores lleguen a ser entendibles por las
computadora, es decir, convertir el cdigo a lenguaje de unos y ceros. Tambin
escribiremos nuestro primer programa en C para poder condensar lo
aprendido en un programa sencillo.
12
1
ISO/IEC 9899:1999 Programming languajes C
http://webstore.ansi.org/RecordDetail.aspx?sku=ISO/IEC+9899:1999
13
ALTO NIVEL
Por ejemplo, la lengua espaola integra una serie de reglas para poder
combinar palabras y con esto formar oraciones o frases que puedan ser
entendibles por cualquier persona que conozca dicha lengua. De igual manera
14
lenguajes de mquina
lenguajes ensambladores.
Lenguaje de Mquina
1000110010010001
1100011101010110
1100110110101101
2
Metodologa de la Programacin Diagramas de flujo, algoritmos algoritmos y programacin
estructurada. Luis Joyas Aguilar. Mc Graw Hill
15
son muy largos, como fueron los primeros programas en aparecer se les
conoce como lenguaje de primera generacin.
Lenguaje ensamblador
Por ejemplo:
LR 5,0
M 4,=F4
4,7
Compilador
C
Actividad de aprendizaje
Cdigos previamente
programados
C
Los IDEs pueden ser aplicaciones por s solas o pueden ser parte de
aplicaciones existentes. Por ejemplo El lenguaje Visual Basic, puede ser usado
dentro de otras aplicaciones de Microsoft Office, con esto se logra escribir
sentencias Visual Basic en forma de macros para Microsoft Word, o Microsoft
Excel.
Editor de texto.
Compilador.
Intrprete, dependiendo del lenguaje de programacin utilizado los
intrpretes se utilizan en lugar de los compiladores.
Diversas herramientas de automatizacin.
Debbuger (depurador).
Posibilidad de ofrecer un sistema de control de versiones.
20
Actividad de aprendizaje
main()
{
<conjunto_de_instrucciones>
}
del programa C, solo las hemos utilizado como una notacin, en cambio las
llaves { } indican el principio y el fin de una funcin escrita en C y deben ser
escritas en el programa.
Los parntesis "()" escritos despus de main sirven para indicar que el
identificador main es una funcin, y que no recibe argumentos, es importante
comprender que main no es una palabra reservada de C.
#include <stdio.h>
#include <stdio.h>
main()
{
printf(Buenos das amigos\n);
}
Este sencillo programa nos sirve para comprender los puntos sealados
en el tema 1.6, donde aprendimos la estructura bsica de un programa en C y
nos prepara para entender mejor los siguientes captulos donde aprenderemos
las principales funciones existentes en el lenguaje C.
Una funcin puede tener el nombre que el programador desee, pero main es
la funcin principal de un programa en C, cualquier programa escrito en C
comienza a ejecutarse al principio de esta funcin, por lo que cualquier
programa debe existir una funcin main en alguna parte de dicho programa.
Una de las formas en que pueden comunicar datos entre las diversas
funciones es por medio de una lista de valores que proporciona la funcin que
llama, a la funcin que est invocando, esta lista de valores o argumentos se
ubican entre parntesis despus del nombre de la funcin.
En nuestro primer programa la funcin main() est definida para ser una
funcin que no espera argumentos, por lo que la lista entre parntesis est
vaca.
}
24
ACTIVIDAD DE APRENDIZAJE
AUTOEVALUACIN
1. Menciona las principales caractersticas del Lenguaje de Programacin C
#include <stdio.h>
Main
UNIDAD 2
OBJETIVO
TEMARIO
MAPA CONCEPTUAL
Conceptos bsicos de
programacin
Orgenes del
lenguaje C
Sentencias de asignacin y
definicin de Constantes
Operadores
E/S Estndar
28
INTRODUCCIN
El lenguaje C se desarroll para el manejo sencillo de datos, con variables,
constantes y operadores simples, si bien permite el manejo de informacin
numrica y alfanumrica, las operaciones son sencillas, dentro de este captulo
aprenderemos que las variables y las constantes son los objetos de datos
bsicos que se utilizan en un programa en C, para la utilizacin de los cules
se manejan:
En C existen los siguientes tipos de datos, los cules aplican tanto para
constantes como para variables:
o Para este tipo de datos existen los calificadores: short y long, por
ejemplo:
Las letras maysculas y minsculas son distintas, por lo que debemos tener
cuidado en el uso de letras maysculas para evitarnos errores en la
programacin, por ejemplo x y X son dos variables distintas.
Existen palabras reservadas del lenguaje C como son if, else, char, int, etc.
que no pueden utilizarse como nombres de variables.
Es muy conveniente que se utilicen nombres que tengan que ver con el
propsito de la variable.
Todas las variables deben de ser declaradas antes de ser utilizadas, es decir
para que podamos utilizar una variable es preciso utilizar una declaracin
previamente, la declaracin especifica un tipo y contiene una lista de una o ms
variables del tipo indicado, las declaraciones deben tener la siguiente sintaxis:
Donde <tipo> toma cualquiera de los valores expresados en el tema 2.1, como
ejemplos podemos citar las siguientes declaraciones:
float x;
Para este tipo de datos existen los calificadores: short y long, por
ejemplo:
Existen tambin los calificadores signed y unsigned, que se utilizan tanto para
datos tipo char como para datos int, los nmeros unsigned son siempre
positivos o cero.
ACTIVIDAD DE APRENDIZAJE
i = j +3
z = n*5
i=i+2
i += 2
+-*/%<<>>
Una constante entera es un int, una constante long se escribe con una l o L al
final de la constante, un entero demasiado grande para caber dentro de un valor
int se toma como long, si la constante no tiene signo se escribe con una u o U y
con una ul o UL se escribe una constante long sin signo.
Ejemplo
Decimal 31
Octal 031
Hexadecimal 0X1F
Estas pueden ser seguidas por L para convertirlas en long y U para convertirlas
en unsigned (sin signo).
33
Por ejemplo: 0XFUL es una constante sin signo long con valor de F
hexadecimal o 15 en decimal.
2.6 O PERADORES
i += 2
i=i+2
Es equivalente a:
La expresin: x *= y+1
Significa: x= x*(y+1)
+, -, *, / y el operador mdulo %
Todos tienen la misma prioridad, bajo estos operandos en prioridad estn los
operadores de igualdad:
== =
35
i<a1
i < (a 1).
&& y ||
ACTIVIDAD DE APRENDIZAJE
Las expresiones que podran perder informacin, por ejemplo de un tipo punto
flotante a un entero, pueden producir una advertencia pero son permitidas.
ACTIVIDAD DE APRENDIZAJE
3
Ejemplo tomado del libro: El Lenguaje de Programacin C de Brian W. Kernighan, Dennis M.
Ritchie
37
++ suma 1 a su operando.
-- resta 1 a su operando
Ejemplo: n++
Se pueden utilizar antes o despus del operando, pero si se utiliza antes (++n)
incrementa el operando antes que su valor se utilice, y se se emplea despus
(n++) incrementa n despus de incrementar su valor.
Ejemplo:
Si n=5
| OR inclusivo de bits.
^ OR exclusivo de bits.
Complemento a uno.
Mxima () [] --
* / %
+ -
<< >>
== =
&
&&
||
39
A?:
Mnima = += -= *= /=
int getchar(void)
Las funciones gets() y puts(), son utilizadas para leer e imprimir cadenas
de caracteres por consola, gets() devuelve una cadena de caracteres terminada
con el carcter nulo, permite corregir errores en la cadena mediante la tecla
backspace antes de oprimir la tecla enter.
%c un nico carcter.
%d Decimal.
%e Notacin cientfica.
%f Coma flotante decimal.
41
(%-5.2f,123.234) 123.23
ACTIVIDAD DE APRENDIZAJE
AUTOEVALUACIN
1. Menciona los operadores que maneja C
Operadores aritmticos.
Operadores de asignacin.
char
int.
short int
long int
float
double.
+=
++ --
43
UNIDAD 3
OBJETIVO:
Que el estudiante aprenda qu son las funciones y cmo utilizarlas, cmo pasar
y recibir informacin a y desde una funcin, conozca las diferentes variables
que existen en C y conozca el concepto de recursividad.
TEMARIO
MAPA CONCEPTUAL
Definicin de funcin
Paso de
parmetros
Variables
Funciones
predefinidas
Recursividad
45
INTRODUCCIN
Las funciones nos sirven para dividir tareas grandes en tareas ms pequeas,
nos dan la posibilidad de construir sobre los programas que otros han hecho y
utilizarlos para nuevas soluciones en lugar desde comenzar desde cero.
El lenguaje C se dise para que las funciones fueran eficientes y muy fciles
de utilizar normalmente los programas que se escriben en C se componen de
muchas funciones pequeas en lugar de solo algunas grandes.
Las funciones son bloques con los que se constituyen programas en lenguaje
C y en ellas se llevan a cabo las funciones del programa.
Una vez que una funcin ha sido escrita, compilada, ligada y depurada puede
utilizarse una y otra vez desde cualquier otro programa
declaraciones de parmetros;
cuerpo de la funcin;
Todas las funciones devuelven por lo menos un valor, este valor puede
estas explcitamente especificado con la palabra return, o bien puede ser cero si
no se especifica ningn otro valor. Por default todas las funciones devolvern
valores enteros pero se pueden especificar otro tipo de valores.
Una funcin puede ser utilizada dentro del cuerpo de una expresin,
debido a que cada funcin devuelve un valor, como ejemplo de esto
mencionamos las siguientes expresiones todas validad en C :
x= potencia (y);
Cuando se utiliza un valor devuelto que no sea entero se tiene que hacer
una segunda cosa: La rutina que llam a la funcin tiene que saber el tipo de
dato que devolver la funcin, por lo que debemos declarar la funcin dentro de
la rutina de llamada.
Generalmente existe dos formas en que pueden pasarse los argumentos a las
funciones: La primera se denomina llamada por valor, este mtodo copia el
valar de cada uno de los argumentos en los parmetros formales de la funcin,
la segunda forma se conoce como llamada por referencia con este mtodo, la
direccin de cada argumento se copia los parmetros de la funcin, es decir los
cambios hechos en el parmetro afectaran a la variable utilizada para llamar a
la funcin.
3.6 V ARIABLES
Una variable esttica mantendr su valor entre una llamada y otra a la funcin,
solo se conoce por su funcin y permanecer mientras lo haga el programa.
register int x;
register char c;
ACTIVIDAD DE APRENDIZAJE
3.8 R ECURSIVIDAD
4
El Lenguaje de programacin C, autores Brian W Kernighan y Dennis M. Ritchie, editorial
Pearson Educacin
50
factr(n) /* recursiva */
int n;
int respuesta;
if(n==1) return(1);
respuesta=factr(n-1)*n;
return(respuesta);
}
51
AUTOEVALUACIN
1. Explica que son las variables externas en una funcin escrita en C
5. Indique los tipos de datos que pueden ir precedidos del modificador register
char e int
52
UNIDAD 4
OBJETIVO:
Que el estudiante aprenda a utilizar las sentencias condicionales, los ciclos, las
proposiciones de rompimiento de la secuencia normal de ejecucin de un
programa (break, continue, goto y etiquetas) para la toma de decisiones en la
elaboracin de programas con el lenguaje de programacin C, al finalizar este
captulo podr realizar programas ms complejos para la solucin de los
problemas que se le planteen.
TEMARIO
Proposiciones y
bloques
else if Do While
switch
break y
continue
Etiquetas y
goto
54
INTRODUCCIN
El lenguaje C cuenta con una serie de expresiones para poder controlar la
secuencia en la ejecucin de los diversos bloques que componen el programa,
se cuenta con sentencias condicionales y con ciclos o bucles
x=0;
i++;
if ( x> 0) {
56
Int a
Int b
f1 (double a)
double b;
57
En este ejemplo
ACTIVIDAD DE APRENDIZAJE
Las sentencias condicionales nos sirven para poder elegir la ejecucin de uno u
otro bloque en base al resultado de una condicin previamente establecida, es
decir podemos escoger uno de dos caminos en base a que se cumpla o no una
condicin.
4.2.1 If Else
if (expresin)
proposicin1
else
proposicin2
Utilizar: if (expresin)
if (a>0)
if (n>m)
x=n;
else
x=m;
if (a>0) {
if (n>m)
x=n;
else
x=m;
/* End if */
Por ejemplo:
if (a>0)
if (n>m)
x=n;
else
x=m;
/*end if*/
/*end if*/
4.2.2 Else If
Para poder contar con una desicin mltiple, es decir poder evaluar una
condicin y en base al resultado de la misma tomar un camino determinado se
utiliza esta instruccin, su sintaxis es la siguiente:
if (expresin)
proposicin
else if (expresin)
proposicin
else if (expresin)
proposicin
else if (expresin)
proposicin
else
proposicin
ACTIVIDAD DE APRENDIZAJE
4.2.3 Switch
Esta es una decisin mltiple que prueba si una expresin coincide con unos de
un nmero de valores constantes enteros, su sintaxis es la siguiente:
switch (expresin) {
case exp-const:proposiciones
default: proposiciones
ACTIVIDAD DE APRENDIZAJE
#include <Stdio.h>
main () /* cuenta dgitos, espacios en blanco y otros caracteres */
{
int c, i, nwhite, nother, ndigit[10];
nwhite = nother = 0;
for(i=0; i<10; i++)
ndigit[i] = 0;
while ((c = getchar()) != EOF) {
switch ( c) {
case 0: case 1: case 2: case 3: case 4:
case 5: case 6: case 7: case 8: case 9:
ndigit[c-0]++;
break;
case :
case \n:
case \t:
nwhite++;
break;
default:
nother++;
break;
}
}
printf(digitos =);
for (i=0; i<10; i++)
printf(%d, ndigit[i]);
5
Tomado del libro El Lenguaje de programacin C; autor Brian W. Kernighan, Dennis M Ritchie; editorial
Pearson Educacin
63
while (expresin)
proposicin
proposicin
expresin1;
while (expresin2) {
proposicin
expresin3;
4.3.2 Do While
Su sintaxis es la siguiente:
do
proposicin
while (expresin);
Por ejemplo:
for ()
for () {
if (desastre)
goto error;
error:
arreglamos el desastre
66
ACTIVIDAD DE APRENDIZAJE
AUTOEVALUACIN
1. Menciona 2 ejemplos de ciclos o bucles.
3. Qu es un ciclo o bucle?
UNIDAD 5
OBJETIVO
TEMARIO
5.1 ARREGLOS.
5.2 ESTRUCTURAS.
5.2.1 CONCEPTOS BSICOS SOBRE ESTRUCTURAS.
5.2.2 ESTRUCTURAS Y FUNCIONES.
5.2.3 ARREGLOS DE ESTRUCTURAS.
5.2.4 APUNTADORES O ESTRUCTURAS.
5.2.5 ESTRUCTURAS AUTORREFERENCIADAS
5.3 UNIONES
5.4 CAMPOS DE BITS
69
MAPA CONCEPTUAL
Tipos de datos
estructurados
Arreglos
Estructuras
Uniones
Campos de Bits
70
INTRODUCCIN
El alumno aprender:
5.1 ARREGLOS
type var_nombre[dimensin];
char p[10];
char x[10];
ACTIVIDAD DE APRENDIZAJE
int i[10];
int cont;
for (cont=0;cont<10;++cont) i[cont]=cont;
72
Nota: Recordar la diferencia entre ++var y var++, recordar la estructura del for
int i[10][20];
d[4][6]
Segundo ndice.
m+(rxc)-1
73
ACTIVIDAD DE APRENDIZAJE
5.2 E STRUCTURAS
Una definicin de la estructura forma una plantilla que puede ser utilizada para
crear estructuras variables.
(x,y)
x
(0,0)
struct point {
int x;
int y;
};
Con la palabra reservada struct sirve para declarar una estructura, esta
es una lista de declaraciones entre llaves, se utiliza un nombre de forma
optativa como rtulo de la estructura, en el ejemplo anterior el rtulo de la
estructura es point, este puede ser utilizado como una abreviatura para la
parte de declaraciones entre llaves.
Una declaracin struct define un tipo, la llave derecha que cierra la lista
de miembros puede ser seguida por una lista de variables, como lo hacemos
para cualquier tipo bsico:
struct {..} x, y, z;
int x, y, z;
struct dir
char nombre [30];
char calle [40];
char ciudad [20];
char prov [20];
76
Con esto definimos una estructura llamada dir y se declaran las variables
ainfo, binfo, cinfo, del tipo dir.
printf(%d,ainfo[2].DP);
#include <Stdio.h>
#include <ctype.h>
#include <string.h>
#define MAXWORD 100
6
Ejemplo tomado del libro: El Lenguaje de Programacin C, de Brian W. Kernighan y Dennis M. Ritchie,
editorial Pearson Educacin.
77
ACTIVIDAD DE APRENDIZAJE
Este rbol contiene un nodo por cada palabra distinta, cada uno de los nodos
debe contener:
ACTIVIDAD DE APRENDIZAJE
5.3 U NIONES
unin u {
int i;
char ca;
};
Como ocurre en el caso de las estructuras, esta unin no declara
ninguna variable, la variable puede ser declarada colocando su nombre al final
de la definicin o por medio de una sentencia de declaracin separada, para
declarar una variable tipo unin llamada cnvt, utilizando la definicin que acaba
de darse se debe escribir:
union u cnvt;
Struct dispositivo {
Unsigned activo : 1;
Unsigned listo : 1;
Unsigned xmt_error : 1;
} codi_dispositivo;
Las tres variables se declaran como unsigned por que un bit no puede
tener signo, los nicos valores que puede tener un bit son 0 y 1. La variable
estructura codi_dispositivo se puede utilizar para decodificar informacin desde
el puerto de una cinta magntica, por ejemplo el siguiente fragmento de cdigo
lo utilizamos para escribir un byte de informacin en la cinta y comprobaremos
los errores utilizando codi_dispositivo.
Wr_cinta(c)
Char c;
{
while(!codi_dispositivo-ready) rd(&codi_dispositivo); /* espera */
wr_to_tape(c); /* escribe un byte */
while (codi_dispositivo.activo) rd(&codi_dispositivo); /* espera hasta que
la informacin se escriba */
if(dev_code.xmt_error) printf(error de escritura);
}
Un octeto (BYTE)
83
0 1 2 3 4 5 6 7
No usado
Codi_disositivo.activo
Codi_dispositivo.listo
Codi_dispositivo.xmt_error
84
AUTOEVALUACIN
1. Qu es un arreglo?
Cierto
3. Qu es una estructura?
struct jugador{
char jugador_nombre[40];
char jugador_grupo[40];
float tanteo_medio;
};
UNIDAD 6
APUNTADORES
OBJETIVO:
TEMARIO
MAPA CONCEPTUAL
Apuntadores
Definicin de
apuntadores
Operacin de
apuntadores
INTRODUCCIN
En captulos anteriores ya se han utilizado los apuntadores, pero hasta este
captulo aprenderemos a utilizarlos con todo detalle, esto nos permitir realizar
programas cuyo tiempo de ejecucin sea ms rpido.
El alumno aprender:
p: c:
89
La proposicin:
p = &n;
p apunta a n
h = &xyz;
k = *h;
int *h;
float *x;
int x;
unsigned y;
int *p1, p2;
p1= &x; /* da la direccin de x a p2 */
y=p2;
printf (%u,y); /* imprime el valor decimal de la direccin de x no el
valor de x! */
La declaracin:
int m[10];
91
m
:
m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9]
int *pm;
la asignacin siguiente:
pm = &m[0];
pm:
m
:
m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9]
x=*pm;
Si pm apunta a m[0],
*(pm+1)
m
:
m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8] m[9]
Esto es correcto sin importar el tipo o tamao de las variables del arreglo m,
ACTIVIDAD DE APRENDIZAJE
Solo existen dos operadores aritmticos que se pueden utilizar con los
apuntadores, + y -.
p1++;
p1--;
printf(hola, mundo\n);
char *pmensaje;
Entonces la proposicin:
pmensaje = hola;
amensaje Hola\0
pmensaje Hola\0
ACTIVIDAD DE APRENDIZAJE
main()
{
int strcmp(); /*declara una funcin */
char s1[80, s2[80];
gets(s1);
gets(s2);
96
comp(s1,s2,strcmp);
}
Comp(a,b,cmp)
Char *a,*b;
Int (*cmp) ();
{
printf(comprueba la igualdad\n);
if (!(*cmp) (a,b)) printf(igual);
else printf(distinto);
}
7
Nota para una mayor claridad, este tema se tom del libro Programacin Avanzada del
Lenguaje C, de Herbert Schildt, ya que se explica de manera muy concisa.
97
Alta
98
pila
Variables globales
Programa
Baja
Si usted no est familiarizado a fondo con malloc() y free(), aqu hay una
pequea revisin.
exit (0);
}
for (t=0;t<40;++t) *(p+t)=t;
for (t=0;t<40;++t) printf (%d ,*(p+t));
free(p9);
101
AUTOEVALUACIN
1. Qu es un apuntador?
p = &n;
*p = 10;
Solo existen dos operadores aritmticos que se pueden utilizar con los
apuntadores, + y -.
UNIDAD 7
OBJETIVO:
El estudiante aprender:
TEMARIO
MAPA CONCEPTUAL
Archivos
Descriptores de
archivos
Entrada / Salida
E/S de Bajo nivel: E/S por consola: E/S por consola con
formato:
read, write get char( ), putchar( )
printf( ), scanf( )
gets( ), puts( )
Manejo de archivos:
INTRODUCCIN
El manejo de archivos en C y las funciones de entrada / salida tienen vital
importancia para poder intercambiar informacin con los programas, funcionan
como interfaz entre los programas y el usuario, se analizarn diferentes
funciones de entrada / salida, aprenderemos los descriptores de archivo y cmo
redireccionar las entradas y salidas estndar hacia archivos u otros dispositivos.
El alumno aprender:
El archivo existe?
Cada una de las llamadas regresa una cuenta del nmero de bytes
transferidos, en el proceso de lectura el nmero de bytes regresados puede ser
menor al nmero solicitado, un valor de regreso igual a cero bytes implica fin de
archivo y -1 indica algn tipo de error.
Actividad de aprendizaje
#include syscall.h
ACTIVIDAD DE APRENDIZAJE
char ch;
do {
ch=getchar();
if(islower(ch)) putchar(toupper(ch));
109
else putchar(tolower(ch));
Las funciones que nos permiten leer cadenas de caracteres por consola,
son el siguiente paso en complejidad y potencia son:
printf()
Por ejemplo:
Mostrar en pantalla:
Hi c 10 all!
%c Un nico carcter.
%d Decimal.
%e Notacin cientfica.
%o Octal.
%s Cadena de caracteres.
%x Hexadecimal.
Por default siempre el relleno se hace con espacios en blanco, por lo que
si requerimos rellenar con ceros se coloca un 0 delante del especificador de
anchura del campo, por ejemplo: %05d rellenar con ceros los nmeros con
longitud inferior a los 5 dgitos, %10.4f mostrar un nmero de almenos 10
caracteres con cuatro decimales, %5.7s muestra una cadena de caracteres que
tendr al menos cinco caracteres, pero que no exceder de siete.
scanf()
Todas las variables utilizadas para recibir valores por medio de esta
funcin se pasan por sus direcciones, por lo que todos los argumentos, distintos
a los de la cadena de control, tienen que apuntar a las variables que recibirn la
entrada, por ejemplo:
scanf(%d,&cuenta);
scanf(%s,direccin);
Ejemplos de scanf()
scanf(%c%c%c,&a,&b,&c);
scanf(st%s,nombre1,nombre2);
ACTIVIDAD DE APRENDIZAJE
7.5.1 Open
Esta funcin regresa un descriptor de archivo que es tan solo un int, regresa -1
si ocurrea lgn error.
include <fcntl.h>
int fd;
int open(char *nombre, int flags, int perms);
fd=open(nombre,flags,perms);
Ejemplo:
fd = open(nombre, O_RDONLY,0);
7.5.2 Creat
fd = creat(nombre, perms);
ACTIVIDAD DE APRENDIZAJE
#include <stdio.h>
#include <fcntl.h>
#include syscall.h
#define PERMS 0666 /* lectura y escritura para propietario, grupo y otros */
/* cp: copia f1 a f2 */
main(int argc, char *argv[])
{
int f1, f2, n;
char buf[BUFSIZ];
if(arg = 3)
error (uso: cp de hacia);
if((f1 = open(argv[1], O_RDONLY, 0)) == -1)
error(cp: no se puede abrir %s, argv[1]);
if((f2 = creat(argv[2],PERMS)) == -1)
error(cp: no se puede crear %s, modo %03o,
argv[2],PERMS);
while((n = read(f1, buf, BUFSIZ)) > 0)
if (write(f2, buf, n) != n)
error(cp: error de escritura en archivo %s, argv[2]);
return 0;
}
7.5.3 Close
close(int fd)
7.5.4 Unlink
unlink(char *nombre)
ACTIVIDAD DE APRENDIZAJE
AUTOEVALUACIN
1. Menciona 3 funciones tiles en el manejo de archivos.
3. Qu es un descriptor de archivo?
BIBLIOGRAFA
GLOSARIO
Operador: es un smbolo matemtico que indica que debe ser llevada a cabo
una operacin especfica sobre un cierto nmero de operandos.