Professional Documents
Culture Documents
Millacariz
GUIA DE LENGUAJE EN C
Fundamentos de Programación Profesor: Cristian
Millacariz
Índice:
GUIA DE LENGUAJE EN C..................................................................................................................1
Índice: .................................................................................................................................................2
Lenguaje C...............................................................................................................................................3
Introducción: .......................................................................................................................................3
CAPITULO I: “Características del Lenguaje C”................................................................................4
CAPITULO II: “Variables en C”........................................................................................................6
CAPITULO III: “Operadores en C” .................................................................................................8
CAPITULO IV: “Asignaciones y Expresiones en C”.........................................................................9
CAPITULO V: “E/S por consola con Formato”...............................................................................10
CAPITULO VI: “Sentencias de Control”..........................................................................................12
CAPITULO VII: “Iteraciones en C”.................................................................................................14
CAPITULO VIII: “Arreglos en C”....................................................................................................16
CAPITULO IX: “Funciones de caracteres y strings”........................................................................17
CAPITULO X: “Funciones y Procedimientos”.................................................................................18
CAPITULO XI: “E/S en Archivos”...................................................................................................20
APENDICE A....................................................................................................................................22
FUNCIONES DE C...............................................................................................................................22
FUNCION..............................................................................................................................................22
TIPO.......................................................................................................................................................22
PROPOSITO..........................................................................................................................................22
INCLUDE..............................................................................................................................................22
FUNCION..............................................................................................................................................23
TIPO.......................................................................................................................................................23
PROPOSITO..........................................................................................................................................23
INCLUDE..............................................................................................................................................23
APENDICE B: ..................................................................................................................................24
2|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
Lenguaje C
Introducción:
C es un lenguaje de programación de propósito general que ofrece como ventajas: economía
de expresión, sentencias de control y estructuras de datos modernas junto a un rico conjunto de
operadores.
C es un lenguaje de nivel medio, ya que combina elementos de lenguaje de alto nivel con la
funcionalidad del lenguaje ensamblador. El definir a C como lenguaje de nivel medio, no significa que
sea menos potente, más difícil de usar o menos evolucionado que los lenguajes de alto nivel como
PASCAL, COBOL o FORTRAN; tampoco significa que C sea similar al lenguaje ensamblador
presentando al programador todos los problemas asociados a él.
Una característica importante del lenguaje C, es que posee un código muy portable, siendo posible
adaptar el software escrito para un tipo de computador en otro.
Durante muchos años, el estándar de C fue la versión proporcionada por el Sistema Operativo Unix
(System V), pero con la popularidad de los Microcomputadores aparecieron variadas implementaciones
de C, altamente compatibles unas con otras. Debido a esto, en el año 1983 el American National
Standars Institute (ANSI), estableció un comité para producir una “definición no ambigua del lenguaje C
e independiente de la máquina”, el resultado final se obtuvo en 1990 con la definición del estándar ANSI
de C.
En resumen, podríamos decir que C ha demostrado ser un lenguaje agradable, expresivo, versátil para
una amplia variedad de programas y fácil de aprender.
3|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
En un lenguaje estructurado, el uso de GOTO puede estar prohibido o desaprobado, no siendo una
forma normal de control, tal como lo es en BASIC o FORTRAN.
Programación de Sistemas:
Los programas de sistemas más comunes son: los Sistemas Operativos, Intérpretes, Editores,
Compiladores, Programas de Ensamblado y otros.
C permite la programación de sistemas, ya que permite la manipulación directa de bits, bytes, palabras
y punteros.
Intérprete: Utilitario que toma un programa escrito en un lenguaje de alto nivel, en el cual va leyendo y
ejecutando directamente cada línea del código fuente, sin generar código de máquina. Las ventajas de
los intérpretes es que son fáciles de construir. Su problema es que son lentos y requieren la presencia
del código fuente cada vez que se desee ejecutar el programa.
Compilador: Utilitario que toma un programa escrito en un lenguaje de alto nivel y lo traduce a un
programa en lenguaje de bajo nivel o código de máquina. El proceso de una compilación puede dividirse
en dos etapas. En la primera se chequea correctitud de sintaxis y secuencia de las instrucciones,
generando un archivo de código intermedio u objeto. En la segunda se toma este código objeto y se une
a las rutinas del sistema que se haya indicado, generando el programa en su estado final de código
ejecutable.
C normalmente es compilado, sin embargo, han ganado popularidad los intérpretes de C, como ayudas
en la depuración durante las etapas de desarrollo en un programa.
TIPOS DE DATOS
Un tipo de dato define un conjunto de valores que puede tener una variable junto con un conjunto de
operaciones que se pueden realizar sobre esa variable.
C tiene cinco tipos de datos básicos incorporados, entre ellos están los enteros, los caracteres y los
reales.
Además, C no es un lenguaje fuertemente tipificado como Pascal, ya que permite casi todas las
conversiones entre tipos. Por ejemplo, los tipos entero y carácter pueden ser entremezclados en la
mayoría de las expresiones, siendo de responsabilidad del programador la comprobación de la
incompatibilidad de los tipos.
4|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
Palabras Claves: Una palabra clave es aquella que tiene un significado especial dentro del lenguaje,
debido a esto, nunca deben ser usadas como nombres de variables o funciones. Las palabras claves de
C están escritas en minúsculas, siendo 32 las definidas por el estándar ANSI de C:
En C, las mayúsculas son diferentes con las minúsculas, así: else es una palabra clave y ELSE no lo
es.
Forma de un Programa: Los programas en C consisten en una o más funciones. La única función que
siempre debe estar presente es la denominada main(), ya que es la primera en ser llamada cuando
comienza la ejecución del programa.
declaraciones globales
funcion1()
{
variables locales
sentencias
}
.
.
.
funcionn()
{
variables locales
sentencias
}
main()
{
variables locales
sentencias
}
En código C bien escrito, main() debe esbozar lo que el programa hace, utilizando los nombres de las
funciones f1(), f2(), f3(),...fn() definidas por el programador. Técnicamente main() no forma parte del
lenguaje C, pero debe tratarse como si lo fuera. Por esta razón, no debe usarse como nombre para una
variable, ya que se puede confundir al compilador.
Biblioteca y Enlazado: Una biblioteca es una colección de funciones para llevar a cabo diversas
tareas. La biblioteca estándar de C, no forma parte del lenguaje, pero sí es un entorno que proporciona
declaraciones, funciones y macrodefiniciones. C no proporciona dentro de la definición real del lenguaje,
métodos para llevar a cabo las operaciones de entrada/salida, debido a esto, la mayoría de los
programas incluyen llamadas a variadas funciones contenidas en la biblioteca estándar del lenguaje C.
Cuando se llama a una función que no es parte del programa que se ha escrito, C “recuerda” su
nombre. Más tarde, el enlazador combina el código objeto producido al compilar el programa fuente, con
5|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
el código objeto de la función que se encuentra en la biblioteca estándar. Este proceso se llama
enlazamiento.
Tipos: En C existen 5 tipos de datos: carácter, entero, coma flotante, coma flotante de doble precisión y
sin valor.
Los valores del tipo char se usan para guardar los valores definidos en el juego de caracteres ASCII;
las variables de tipo int se usan para guardar cantidades enteras; las variables tipo float o double se
usan para guardar números reales; el tipo void se usa para declarar explícitamente que una función no
retorna valor o para declarar una función sin parámetros. C soporta varios tipos agregados, incluyendo
las estructuras, las uniones, las enumeraciones y los tipos definidos por el programador. Los tipos de
datos básicos pueden ser alterados con el uso de modificadores, estos hacen que el tipo base se ajuste
más a las necesidades de cada momento. Los modificadores son: signed, unsigned, short y long,
produciéndose las siguientes combinaciones:
6|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
Identificadores: Corresponden a los nombres usados para referirse a las variables, funciones ,
etiquetas y otros objetos definidos por el programador. La longitud de un identificador puede variar entre
1 y 32 caracteres. Para definirlos, se deben seguir las siguientes reglas:
Todo identificador debe empezar con una letra entre “a” y “z” o entre “A” y “Z”
El resto del identificador pueden ser letras o dígitos del 0 al 9 o underscore (_). Otros símbolos
no pueden ser usados.
Se consideran dígitos significativos sólo a los primeros 32.
Los identificadores diferencian entre mayúsculas y minúsculas.
Ejemplos:
Correcto Incorrecto
inc 9inc
nota nota?
tot_ven tot..ven
Declaración de Variables: Todas las variables deben ser declaradas antes de usarlas. La sintaxis para
ello es:
Tipo lista_de_variables
Donde tipo debe ser un tipo válido de C y lista_de_variables puede ser uno o más nombres de
identificadores separados por comas.
Inicialización: Es muy importante en el uso de variables el realizar una adecuada inicialización de las
mismas, ya que al crearlas, éstas pueden tomar cualquier valor, lo que puede afectar el correcto
funcionamiento del programa. La forma tradicional de inicialización en los lenguajes de programación
es:
int contador;
Contador = 0;
Ejemplos:
#define maxlong 200;
#define step 20;
Comentarios: Tal como en la mayoría de los lenguajes de programación, en C es posible indicar ciertas
zonas como lugares donde no hay código y que es usado para realizar acotaciones sobre él. La práctica
de comentar el código es muy útil, sobre todo si existe la posibilidad de futuras revisiones a los
programas realizados. En C, las formas de indicar que cierto texto es comentario es encerrándolo
entre /* y */ o comenzando la línea con //.
7|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
Ejemplos:
a) /* Esta línea es comentario y no afecta la ejecución del programa */
int x=0; /* declaración e inicialización de la variable x */
Operadores Aritméticos:
Acción Operador
Resta -
Suma +
Multiplicación *
División /
División en módulo %
Decremento --
Incremento ++
Ejemplos:
10/3 =3
10%3 =1
x++ x = x+1
y-- y = y-1
si x = 10
y = ++x x=11; y = 11(incrementa y asigna)
y = x ++ y = 10; x = 11(asigna e incrementa)
Operadores Relacionales:
Acción Operador
Mayor >
Mayor o igual >=
Menor <
Menor o igual <=
igual ==
Distinto !=
8|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
Operadores Lógicos:
Acción Operador
And &&
Or ||
Not !
Precedencia: Es el orden en que se evalúan las expresiones.
1 ++ --
2 */%
3 + -
4 !
5 > >= < >=
6 = = !=
7 &&
8 ||
Los operadores del mismo nivel de precedencia, son evaluados por el compilador de izquierda a
derecha. Al utilizar paréntesis, se altera el orden de las evaluaciones, ejecutándose primero las
operaciones que se encuentran dentro de ellos.
Ejemplos:
10 > 1 +12 10 > (1+12)
En ambos casos el resultado es falso (0)
variable = expresión ;
Cada cómputo debe realizarse en una línea y al finalizar se debe colocar el carácter “;” lo que indica fin
de la operación.
Ejemplos:
x = 200;
y = x + 7;
balance = (8 * x) + (4 / y);
También es posible realizar operaciones lógicas y/o de comparación, teniendo presente que la variable
de asignación toma valores de verdad. En C, los valores de verdad se representan como números
enteros, cuyo valor es: 0 (FALSE), 1 (TRUE).
Ejemplos:
9|Page
Fundamentos de Programación Profesor: Cristian
Millacariz
es_mayor = (x > y);
(Si x=5 e y=2 entonces es_mayor toma el valor 1
En programas profesionales de C, la notación abreviada es muy usada, así que conviene familiarizarse
con ella.
Operador Coma: Produce una secuencia de operaciones, la parte izquierda del operador siempre se
evalúa como void, y el valor asignado, es el valor de la última expresión de la lista separada por comas.
La sintaxis es:
Variable = (lista_de_expresiones);
Ejemplos:
y = 10;
x = (y = y – 5, 25/y);
printf() : Es una función que permite enviar a la pantalla (output estándar), caracteres con algún
formato. Una orden de formato comienza con un signo de porcentaje y va seguido por el código del
formato. Algunas órdenes de formato son:
Codigo Operación
%c carácter único
%d decimal (entero)
%ld decimal (entero largo)
%f decimal (punto flotante)
%s cadena de caracteres
%x dirección de memoria
10 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Ejemplos:
Printf(“Hola %c %d %s”, ‘c’,10 , “qué tal!”);
Imprime en pantalla Hola c 10 qué tal!
Printf(“%6.2f”, 228.3415);
Imprime 228.34
printf(“%10s”, “hola”);
Imprime 6 blancos y hola
printf(“%-10s”, “hola”);
Imprime hola y 6 blancos
En ambos casos se imprime el string hola, con la diferencia que el signo “-“ hace que se ajuste de
izquierda a derecha.
Printf(“%5.7s”, “1234567890”);
Imprime 1234567
(Imprime el string 1234567, bajo el concepto de al menos 5 caracteres con un máximo de 7).
Código Operación
\b Espacio atrás
\f Salto pagina
\n Salto línea
\t Tabulación horizontal
\v Tabulación vertical
\r Retorno de Carro
scanf() : Es una función que permite leer la entrada de caracteres desde el teclado (input estándar),
siguiendo algún formato. Los códigos de los formatos son similares al de la función printf().
Ejemplos:
scanf(“%d”,&numero);
(Lee el entero ingresado asignándolo a la variable numero)
scanf(“%[A-Z]”,s1);
(Acepta sólo caracteres entre “A” y la “Z”, y se lo asigna a la variable s1).
11 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Ejemplos: {
int x;
x = 0;
x + = 3;
}
Después de la llave que termina un bloque ”}” no se debe colocar “;” , a menos que vaya otra instrucción
a continuación.
if expresión_logica
bloque_de_sentencias
[else
bloque_de_sentencias ]
bloque_de_sentencias = {sentencia;
[sentencia;
]}
Ejemplos: if (a > b)
a = a +1;
else
b = b*10;
Programa ejemplo:
#include <stdio.h>
/*Programa del número Mágico*/
main()
{
int magico = 50;
int intento;
printf(“Adivina un número: “);
scanf(“%d”, &intento);
if (intento == magico)
printf(“¡¡¡¡¡Adivinaste!!!!!!”);
else
printf(“ Trata de nuevo........”); getch();
}
12 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Ejemplo:
x = 10;
y = x>9 ? 100 : 200
(Asigna a y el valor 100).
x = 10;
if (x>9)
y = 100;
else
y = 200;
Sentencia switch: En caso de tener una variable que puede tener múltiples valores, la forma cómo
operar con cada uno de ellos puede ser mediante if anidados, o bien con la sentencia switch.
switch(variable)
{
case valor1: bloque_de_sentencias;
case valor2: bloque_de_sentencias;
…….
default : bloque_de_sentencias;
Ejemplo: switch(numero)
{
case 1: a= a+1;
break;
case 2: a = a+2;
b = b-1;
break;
case 3: c = c+2;
d = d-1;
break;}
case 4 : x = 1;
y = y+2;
break;
case 5 : y = y+3
break;
default : y = 0;
}
13 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Ejemplo:
a=1 ;
b = 5;
for (i = 1; i <= b; i++)
a = a * i;
Iteración while: Es una estructura de control, que realiza una iteración con ingreso condicionado sobre
un grupo de expresiones. En C su sintaxis es:
while (condición)
{
sentencias;
}
Mientras la evaluación de la condición sea verdadera, se ejecutarán las sentencias del bloque.
Ejemplo:
Loop = 10;
While (loop >= 1)
{
loop = loop – 1;
}
Iteración do-while: Es una estructura de control, que realiza una iteración con salida condicionada. (Se
ejecuta al menos una vez, sirve para validaciones). En C, su sintaxis es:
do
{
sentencias;
}
while (condición);
Ejemplo: loop=10;
do
{
loop = loop –1;
}
while (loop >=1)
Saltos Incondicionados: Existen dos instrucciones en C que permiten saltos incondicionados dentro
de las sentencias de una iteración. Estas, algunas veces, son necesarias, ante la detección de una
14 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
condición anómala, necesidad de rechequear la condición de iteración o, aún peor, salir de la iteración
en forma abrupta. Para las situaciones anteriores, C provee las siguientes instrucciones:
break;
Ejemplos:
for (t =0; t < 100; t ++)
{
cont = 1;
for ( ; ; )
{
printf(“%d”, cont);
cont ++;
if (cont = = 10)
break;
}
}
Este programa imprime los números del 1 al 9, cien veces. Cada vez que el compilador encuentre
break; el control vuelve a la iteración externa.
continue;
Realiza un salto hasta la condición de chequeo de la iteración.
do
{ scanf(“%d”,&x);
if (x < 0)
continue;
printf(“%5d”,x);
} while (x != 100);
Este programa muestra sólo números positivos. Se sale cuando se ingresa el número 100.
Uso apropiado de una iteración: Dadas las tres formas de estructuras de control que provee C, cabe
realizar la siguiente pregunta: ¿Cuándo usar cada una?
a) Si usted no quiere que el cuerpo de la iteración sea realizado cuando la condición empieza
con valor falso, usar while.
b)Si usted quiere que las sentencias siempre sean ejecutadas, al menos una vez, use do-while.
c) Si el número de iteraciones que se va a realizar está determinado por una constante, o una
variable que no va a modificarse en el cuerpo del bloque, utilice for.
15 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Al especificar un arreglo se deben indicar: el tipo de los datos que serán almacenados, el nombre del
arreglo y el número de elementos que tendrá el Array, encerrado entre paréntesis cuadrados:
Ejemplos:
int numeros[10];
char sexo[25];
float ing[20], egr[20], saldo[20];
Acceso: La forma de accesar los elementos del arreglo es mediante el manejo de un subíndice, que
corresponde al número entre paréntesis. El subíndice, puede ser cualquier variable o constante entera.
Ejemplo:
i = 3;
saldo[i] = ing[i] – egr[i] + saldo[i-1];
Elementos: En C, todos los arreglos tienen el 0 como subíndice, y comienzan siempre desde él. Así, al
definir un arreglo de N elementos, los subíndices varían entre el 0 y (N – 1).
Inicialización: Tal como en otras variables, los arreglos deben ser inicializados adecuadamente. Esta
inicialización puede realizarse al momento de la declaración o después de ella.
Ejemplos: int lista[4] = {10,38,5,20};
int x[10];
for (i = 0; i < 10; i++)
x[i] = i;
(Nota: Ver programas de Arreglos en el Apéndice)
Arreglos Multidimensionales.
El lenguaje C, permite definir arreglos multidimensionales. Estos permiten el manejo de matrices u otros
elementos de múltiples dimensiones. La sintaxis de un arreglo multidimensional es:
Este es un arreglo bidimensional, que contiene las ventas diarias de los 12 meses del año.
Acceso: La forma de accesar los elementos del arreglo es mediante el manejo de sus subíndices.
Ejemplo:
int a[10][20];
16 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Define un arreglo cuyo primer índice varía entre 0 y 9, y el segundo entre 0 y 19.
Arreglos y Strings: Un string es simplemente un arreglo de char con carácter nulo que indica el fin del
string. Así, la declaración:
char nombre[30];
Todo array de caracteres en C, debe finalizar con el carácter nulo, usted debe asegurarse de definir un
tamaño suficiente para incluirlo.
Ejemplos:
char letras[5] = ‘ABCD’;
char letras[5] = {‘A’, ‘B’, ‘C’, ‘D’, ‘\0’};
Observe que en la última declaración de letras, se debe incluir explícitamente el carácter nulo.
c) Strcmp(S1,S2): Compara el string S1 con el string S2; regresa un número entero: < 0 si S1
>S2; 0 si S1 = S2; >0 si S1 >S2.
<ctype.h> : Las funciones definidas en este header, regresan un entero distinto de cero(0); si el
carácter c que tiene como argumento satisface a la condición descrita. Algunas funciones son:
a) isalnum(c): Chequea que el carácter c sea una letra (mayúscula o minúscula) o un dígito.
b) isalpha(c): Chequea que c sea una letra (mayúscula o minúscula).
c) iscntrl(c): Chequea que c sea un carácter de control.
d) isdigit(c): Chequea que c sea un dígito.
17 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Funciones: La idea de función, está generalmente asociada a una idea matemática, es decir, a una
expresión matemática que, dados unos parámetros, nos entrega un valor. En C, una función es mucho
más que una expresión matemática. Podríamos decir que se trata de un trozo de código independiente
de nuestro programa, que puede tener o no parámetros, que dados los valores de entrada ejecuta una
serie de acciones que finalmente se expresan en el valor de la función.
Procedimientos: Un procedimiento es similar a una función a excepción de que no retorna valor. Sin
embargo, contiene un cuerpo con cierta funcionalidad, pudiendo retornar los valores en sus argumentos.
tipo_función nombre(lista_parámetros)
{
cuerpo_de_la_función
return (valor);
}
Donde, tipo_función, corresponde al tipo de valor que devuelve la función, pudiendo ser cualquier tipo
válido (int,float, char, etc.). Si se trata de un procedimiento, existe un tipo especial que define el no
retornar nada: void.
La sentencia return, tiene dos usos importantes. Primero, fuerza una salida inmediata de la función en
que se encuentra, siguiendo la ejecución en el código que llamó a la función. El otro uso, es para
devolver un valor.
En C, todas las funciones, excepto las de tipo void, devuelven un valor. Este valor, se especifica
explícitamente en la sentencia return. Cuando una función no se define de tipo void y además no se
especifica un valor de vuelta, entonces el valor devuelto por la función queda técnicamente indefinido.
Toda función que no se declare como void, puede ser usada como operando en cualquier expresión
válida de C. Por ejemplo:
if (max(x,y) > 100) printf(“Mayor:”,max);
18 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
No es necesario asignar siempre el valor devuelto por alguna función. Cuando esto ocurre, el valor
devuelto simplemente se ignora.
Declarar una sentencia return en main(), es opcional. Pero, es una buena costumbre hacerlo.
Argumentos de funciones: Cada función que use argumentos, debe declarar variables que acepten
los valores de los argumentos. Estas variables se llaman parámetros formales de la función.
Ejemplos:
mul(int a, int b)
{
return a*b;
}
Al igual que, como en otro tipo de variables, se pueden hacer asignaciones a los parámetros formales
de una función o usarlos en cualquier expresión válida en C.
Llamada por Valor: En esta forma de pasar argumentos, se copia el valor del argumento en el
parámetro formal de la sub-rutina. De esta manera, los cambios producidos en los parámetros de la
sub-rutina no afectan a las variables que se usan en la llamada.
Llamada por Referencia: Es otra forma de pasar argumentos a una sub-rutina. En este método, se
copia la dirección del argumento en el parámetro formal, cualquier cambio producido en los parámetros
de la sub-rutina, modifican a la variable usada en la llamada.
19 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Para causar una llamada por referencia se debe pasar un puntero al argumento, esto se hace
incorporando un amppersand (&) delante de él. Además, se debe declarar el respectivo parámetro
formal de tipo puntero.
Ejemplo:
#include <stdio.h>
void cambiar(int *x, int *y);
main()
{
int a,b;
a = 5;
b = 8;
cambiar(&a,&b);
printf(“%d”,a);
return 0;
}
/* Coloca el valor del segundo parámetro en el primero y viceversa */
void cambiar(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
Puntero a Archivo: Se debe indicar sobre qué archivo se desea realizar la lectura o escritura. Para
esto, hay que emplear una variable de tipo puntero que representará al archivo. Un puntero a un archivo
es un puntero a una información que define varias cosas sobre él, incluyendo su nombre, su estado y su
posición actual. La variable de tipo puntero se declara bajo la siguiente sintaxis:
FILE *nombre;
Abrir un Archivo: Consiste en asociar un archivo externo (desde un directorio de nuestro sistema), con
la variable de tipo puntero que lo referencia en el programa. Para esto, se utiliza la función fopen() que
devuelve un puntero de tipo FILE. La asociación se logra a través de la siguiente declaración:
Donde fp corresponde a la variable de tipo FILE ya declarada, y a la que se le asociará el puntero que
retorna fopen().
20 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
Se puede abrir un archivo en modo texto o en modo binario. En modo texto, las secuencias de salto de
línea se convierten a caracteres de salto de línea en la lectura. En la escritura ocurre lo contrario, los
caracteres de salto de línea se convierten en saltos de línea. Estas conversiones no ocurren en archivos
binarios.
Archivos de Texto
Ejemplo:
fp = fopen(“prueba”, “w”)
Se crea el archivo prueba para escritura. Si el archivo existe se borra y se crea uno nuevo, si no existe,
simplemente se crea. Para abrir archivos de lectura estos deben existir, de lo contrario devuelve un
error.
Validación: Si por alguna razón la función fopen() fallara, retornará una referencia nula NULL. Por
esto, es conveniente al abrir un archivo, usar la siguiente operación:
if (( fp = fopen(“prueba”,”w”)) = = NULL)
printf(“Error: Al abrir el archivo prueba”);
Escritura de archivos: Se utiliza la función fprintf(), su sintaxis es similar a printf() salvo que como
primer argumento debe llevar la variable de tipo FILE que se asoció al archivo:
fprintf(var_FILE,str_control, arg1, arg2, ...);
Lectura de Archivos: Se utiliza la función fscanf() que es similar a scanf(). También, se debe incluir la
variable de tipo FILE a la que se asoció el archivo:
Cerrar un Archivo: Se utiliza la función fclose(), que elimina la referencia al archivo abierto con fopen()
y realiza un cierre formal del archivo. La sintaxis es la siguiente:
fclose(var_FILE);
Cuando fclose() tiene éxito, se devuelve un 0 y si ocurre un error se devuelve EOF. Generalmente,
fclose() falla cuando se ha retirado antes de tiempo un diskette o cuando no queda espacio libre en él.
21 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
APENDICE A
FUNCIONES DE C
22 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
NOTAS:
23 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
APENDICE B:
A continuación un programa sin procedimientos ni funciones que incluye algunos comandos:
/* MENU-NUM.C*/
# include <stdio.h>
#include <conio.h>
int n1,n2,n3,may,prom,suma,m1,m2,m3;
char op1;
main()
{
do
{
clrscr();
gotoxy(30,2);printf("Menú Principal");
gotoxy(30,3);printf("==============");
gotoxy(30,4);printf("1....Encontrar el mayor");
gotoxy(30,5);printf("2....Calcular el Promedio");
gotoxy(30,7);printf("3....Salida");
gotoxy(30,9);printf("Opción [ ]\b\b");op1=getch();
switch(op1)
{
case '1':
clrscr();
gotoxy(30,1); printf("Ingresar 3 Números y encontrar el Mayor");
gotoxy(30,2); printf(“---------------------------------------“);
gotoxy(10,5); printf("Primer Número : ");
gotoxy(10,7); printf("Segundo Número: ");
gotoxy(10,9); printf("Tercer Número : ");
gotoxy(26,5);scanf("%d",&n1);
gotoxy(26,7);scanf("%d",&n2);
gotoxy(26,9);scanf("%d",&n3);
may=n1;
if (n2>may)
may=n2;
if (n3>may)
may=n3;
gotoxy(10,12);printf("El número Mayor es: %d",may);getch();
break;
case '2':
clrscr();
n1=0;n2=0;n3=0;prom=0;suma=0;
gotoxy(30,1);printf("Ingresar 3 Números y Calcular el Promedio");
gotoxy(30,2);printf("=========================================");
gotoxy(10,5);printf("Primer Número: ");
gotoxy(10,7);printf("Segundo Número: ");
gotoxy(10,9);printf("Tercer Número: ");
gotoxy(26,5);scanf("%d",&n1);
gotoxy(26,7);scanf("%d",&n2);
gotoxy(26,9);scanf("%d",&n3);
suma=n1+n2+n3;
prom=suma/3;
gotoxy(10,12);printf("El Promedio es : %d",prom);
getch();
break;
}
24 | P a g e
Fundamentos de Programación Profesor: Cristian
Millacariz
}
while (op1!='3');
}
25 | P a g e