0% encontró este documento útil (0 votos)
114 vistas73 páginas

Fundamentos del Lenguaje C y Programación

El documento describe los fundamentos del lenguaje de programación C, incluyendo sus características, tipos de datos, identificadores, operadores, y estructura básica de un programa en C. Explica la historia del lenguaje C y cómo fue desarrollado originalmente, así como las características generales de variables, constantes, literales y expresiones en C.

Cargado por

MaGa WoW
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
114 vistas73 páginas

Fundamentos del Lenguaje C y Programación

El documento describe los fundamentos del lenguaje de programación C, incluyendo sus características, tipos de datos, identificadores, operadores, y estructura básica de un programa en C. Explica la historia del lenguaje C y cómo fue desarrollado originalmente, así como las características generales de variables, constantes, literales y expresiones en C.

Cargado por

MaGa WoW
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación y Bases de Datos

Bioingeniería

02-1: Fundamentos de Lenguaje C


• Características del Lenguaje C Clase 2-1
• Tipos de datos básicos del lenguaje
• Identificadores en C
• Valores de Verdad
• Operadores
– Operadores Aritméticos
– Operadores Relacionales
– Operadores Lógicos
– Operadores de Asignación
– Operador Condicional
– Operadores a nivel de bit
• Precedencia de operadores
• Conversión de Tipos de Datos
• Entrada y Salida de Datos
• Estructura de un Programa en C
• a Códigos de ejemplo
Lenguaje C – Historia

• Desarrollado por Dennis Ritchie en 1972


• Fue creado a partir de dos lenguajes anteriores, el BCPL
y el B.
• Kernighan y Ritchie publicaron una descripción definitiva
del lenguaje
• Aparecieron diferentes implementaciones, lo que hizo
necesario que se defina una versión estándar conocida
como ANSI C.

ANSI: Instituto Nacional Americano de Estándares.


Lenguaje C – Características

• Es un lenguaje de programación de propósito general.


• Es un lenguaje de medio nivel.
– Trata con objetos básicos como caracteres, números
– también con bits y direcciones de memoria
– Permite programar a un alto nivel de abstracción
– Permite tener un control completo del equipo.
• Posee una gran portabilidad
• Se utiliza para la programación de sistemas:
construcción de interpretes, compiladores, editores de
texto, etc.
• Es un lenguaje compilado.
• Sigue el paradigma imperativo.
Programa – Características

• Integridad: los cálculos que realiza deben ser correctos


• Claridad: fácil de leer
• Sencillez: algoritmos de fácil comprensión
• Eficiencia: optimización de recursos (memoria, tiempo
de ejecución)
• Modularidad: dividir el problema general en
subproblemas de fácil comprensión. Desarrollar
funciones que resuelvan una tarea.
• Generalidad: que el programa atienda a todas las
situaciones posibles.
Conceptos Generales - Variable

Variables: Son espacios reservados de memoria. Su


contenido pueden variar a lo largo de la ejecución de un
programa.

Características:
• Posee un nombre que sirve para identificarla
• Tiene asociado un tipo de dato el cuál determina:
– El espacio que ocupa en memoria
– La forma de interpretar los bytes que ocupa esa
variable en memoria.
Conceptos Generales - Constante

Constante: Es un valor que no puede ser alterado durante


la ejecución de un programa. Corresponde a una longitud
fija de un área reservada de la memoria principal del
ordenador, donde el programa almacena valores fijos. Por
ejemplo:

#include <stdio.h>
#define PI 3.1415926
Int main ()
{
printf (“Pi vale %d”,PI);
return 0;
}
Conceptos Generales - Literal

Literales: Son valores que aparecen escritos en forma


explícita en los códigos. Por ejemplo:
#include <stdio.h>
int main ()
{
int x = 10;
if (x == 7)
printf (“Pi vale %d”, x + 7);
return 0;
}
El número “7”, aparece en el código en forma “literal”, no a
través de una variable o constante definidas en el código.
Conceptos Generales - Literal

Literales: Son valores que aparecen escritos en forma


explícita en los códigos.
Desventaja:
El principal problema de utilizar literales, es que si por
algún motivo se deben modificar estos valores, hay que
rastrearlos por todo el código y no confudirlos con algún
otro valor igual, pero con un significado conceptual
diferente. En el ejemplo anterior ¿las dos apariciones del
número (literal) “7” tienen el mismo significado?
Por lo tanto:
Se desaconseja el uso de literales, SIEMPRE que sea
posible reemplazarlos por variables o constantes.
Conceptos Generales – Expresiones

Expresión: Es una combinación de operandos y


operadores que al ser evaluadas producen un resultado.
Operando: Puede ser una variable, una constante o un
literal u otra expresión. Representan valores.

Operador: Reglas que trabajan sobre los operandos para


generar una resultado.

Por ejemplo:
( x + 2 ) * [ radio * PI * ( x / 3) – x ]
Variables: x, radio.
Constante: PI
Literales: 2, 3
Lenguaje C – Tipos de datos básicos
Tipo Bytes Rango
char o signed char 1 -128 a 127
unsigned char 1 0 a 255
int o signed int 2 -32768 a 32767
(depende de la arquitectura
del compilador)
unsigned int 2 0 a 65536
(depende de la arquitectura
del compilador)
long int o long 4 -[Link] a
[Link]
unsigned long int 4 0 a [Link]
float 4 3.4x10-38 a 3.4x1038
double 8 1.7x10-308 a 1.7x10308
long double 10 3.4x10-4932 a 3.4x10-4932

void: es un tipo particular de dato de C. Significa nulo o vacío cuando es


el retorno de una función, también es genérico, cualquier tipo de dato.
Lenguaje C - Identificadores
Las palabras reservadas o palabras clave (keywords) son
identificadores predefinidos que tienen significados especiales para el
compilador.
Palabras Claves de ANSI C:

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while
Lenguaje C – Identificadores

Son aquellas palabras creadas por el programador para dar


nombre a las variables, constantes, tipos, funciones, etc. Cada
lenguaje tiene sus propias reglas. En el caso de ANSIC las
reglas son las siguientes:

• Se construyen con secuencias de una o más letras, dígitos o


el símbolo “_”.
• Debe comenzar por una letra o el símbolo “_”.
• El compilador reconoce los primeros 32 caracteres.
• El compilador de C es sensible a las mayúsculas y
minúsculas.
• No pueden tener la misma secuencia de caracteres que una
palabra clave o una función de biblioteca.
Lenguaje C – Identificadores
Ejemplos:¿Cuáles son correctos?

NOMBRE CORRECTO INCORRECTO MOTIVO


dato
dato1
1dato
dato 1

dato-1

dato_1
_dato1
for
datoDato1
Lenguaje C – Identificadores
Ejemplos:¿Cuáles son correctos?
NOMBRE CORRECTO INCORRECTO MOTIVO
dato X Comienza con letra
dato1 X Comienza con letra
1dato X Comienza con nro.
dato 1 X Contiene un espacio

Contiene carácter NO
dato-1 X
valido (-)
Comienza con letra y
dato_1 X
carácter válido (_)
Comienza con guion bajo
_dato1 X
(_)
for X Palabra reservada.
Todos caracteres
datoDato1 X
validos
Lenguaje C - Identificadores

¿Cómo se definen las variables en C?

<Modificador de Tipo> <Tipo> <Nombre_de_la_variable>;

<Tipo>: char, int, long, float, double

<Modificador de Tipo>: unsigned, signed, long, short

Ejemplo:
char letra;
unsigned int valor;
Lenguaje C - Identificadores

Declaración e Inicialización de variables:

int edad, contador = 1;//declara 2 variables enteras


//edad contiene basura
//contador la inicializa en 1
char letra; //declara 1 var. de caracteres
//sin inicializarla
float nota, sueldo = 0;//declara 2 var flotantes
//(valores con coma decimal)
//nota no se inicializa
//sueldo se inicializa en cero
nota = sueldo = 0.0; //asigna a nota y sueldo cero
letra = ‘a’; //asigna a letra el valor ‘a’
Lenguaje C – Valores de verdad

Para el lenguaje C, lo FALSO se


representa con el número 0 (cero)

FALSO
0

VERDADERO VERDADERO

Para el lenguaje cualquier valor


distinto de 0 (cero) se interpreta
como VERDADERO
Lenguaje C - Operadores

Según el tipo de operaciones que realizan pueden ser:


• Operadores Aritméticos
• Operadores Relacionales
• Operadores Lógicos
• Operadores de Asignación
• Operador Condicional
• Operadores a nivel de bit

Según la cantidad de operandos que utiliza:


• Unarios
• Binarios
• Ternario
Lenguaje C – Operadores Aritméticos Binarios

+ Suma

- Resta

* Producto

/ División

Resto de la división
%
entera

^ Potencia
Lenguaje C – Operadores Aritméticos Binarios

Ejemplos:
int resultado_i1, resultado_i2, resto, suma_i = 22;
long contador = 7;
float resultado_f1, resultado_f2, suma_f = 22;
/* Si los operandos son enteros se hace división
entera */
resultado_f1 = suma_i/contador; //resultado_f1  3.0
resultado_i1 = suma_i/contador; //resultado_i1  3
/* Si al menos una de las variables de la visión es
con decimales */
resultado_f2 = suma_f/contador;//resultado_f1  3.142
resultado_i2 = suma_f/contador;//resultado_i1  3 por
//conversión automática de tipos
resto = suma_i % contador;//resto guarda el valor 1
Lenguaje C – Operadores Aritméticos Unarios

+ Signo Positivo

- Signo Negativo

++ Incremento  x = x + 1

-- Decremento  x = x – 1

El operador ++ o --, pueden utilizarse:


• delante del operando en ese caso se llama
Preincremento (++x) o Predecremento (--x)
• Si se utiliza después del operando se llama
Posincremento (x++) o Posdecremento (x--)
Lenguaje C – Operadores Aritméticos Unarios
Situación Inicial
Preincremento: primero hace el
7 y
incremento, luego asigan x
int x = 7, y;
y = ++ x; Luego de ejecutar y = ++ x;

Otra forma de escribir lo anterior es: 8 8


x y
x = x + 1;
MEMORIA
y = x;

Situación Inicial
Posincremento: primero asigna, luego
hace el incremento 7
x y
int x = 7, y;
y = x++; Luego de ejecutar y = x++;
Otra forma de escribir lo anterior es: 8 7
x y
y = x;
x = x + 1; MEMORIA
Lenguaje C – Operadores Relacionales

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

== Igual que

!= Distinto que

Ejemplo:

int i, j;
float x = 15, y = 18;
i = (x == y); /*i toma el valor 0*/
j = (x != y); /*j toma el valor 1*/
Lenguaje C – Operadores Relacionales

Operador Operación Ejemplo Resultado

== Igual 4 == 5 0

!= Diferente de 2 != 3 1

< Menor que 10 < 4 0

> Mayor que 5 > -4 1

<= Menor o igual 7 <= 7 1

>= Mayor o igual 3.5 >= 10 0


Lenguaje C – Operadores Lógicos

&& AND (Y)


|| OR (O)
! NOT (NEGACIÓN)

Para estudiar el resultado se utilizan las tablas de verdad:


Lenguaje C – Evaluación Cortocircuito

Los operadores lógicos garantizan la evaluación de sus


operandos de izquierda a derecha. Sin embargo, evalúan
el número más pequeño de operandos necesarios para
determinar el resultado de la expresión. Esto se
denomina evaluación de "cortocircuito". Por tanto, es
posible que algunos operandos de la expresión no se
evalúen. Por ejemplo, en la expresión:
x && y++

El segundo operando, y++, solo se evalúa si x es


VERDADERO (distinto de cero).
Si x es FALSO (0) ya no es necesario ejecutar el segundo
opernado, por lo tanto no se incrementa y.
Lenguaje C – Operadores Lógicos

Ejemplo:

int i, j, k;
float x = 15, y = 18, z = 20;
i = !(x == y); /*i = 1*/
j = (x < y) && (y <= z); /*j = 1*/
k = !x; /*k = 0*/
Lenguaje C – Operadores de Asignación
Asigna lo que está a la derecha
=
a lo que está a la izquierda
+= Hace la suma y asigna

-= Hace resta y asigna

*= Hace el producto y asigna

/= Hace la división y asigna

%= Hace el resto y asigna

Ejemplo:

int i = 3;
i += 2; //le suma 2 a i y lo guarda en i
Es equivalente a escribir:
i = i + 2;
Lenguaje C – Operador Condicional o Ternario

El operador condicional ?: tiene tres operandos, lo que significa que es


un operador ternario. Evalúa su primer operando y, si el valor resultante
no es igual a cero, evalúa su segundo operando. De lo contrario, evalúa
su tercer operando.
Separa la condición (expresión
booleana), de las expresiones a
?
ejecutarse según que esta condición
sea VERDADERO o FALSO
Separa las expresiones a evaluarse
: según que la condición inicial sea
VERDADERO o FALSO

condición ? expresión por VERDADERO : expresión por FALSO

Ejemplo:

int mayor, x = 2, y = 9;
mayor = (x > y ) ? x : y;
Lenguaje C – Operadores a Nivel de Bit

Asignación con
& AND (y) &=
AND BINARIO (y)

Asignación con
|=
| OR (o) OR BINARIO (o)

Asignación con
^=
^ XOR XOR BINARIO

NOT (complemento a
NOT (complemento ~
~ 1)
a 1)
Asignación con
Desplazamiento a >>= Desplazamiento a
>>
la derecho la derecha
Asignación con
Desplazamiento a
<< <<= Desplazamiento a
la izquierda
la izquierda
Lenguaje C – Operadores a Nivel de Bit

Ejemplo:
int a, b, m;
a = 2;
b = 5;
m = 7;
a = a | m; /*a = 7*/
b = b & m; /*b = 5*/
b = a << 1; /*b = 14*/
Lenguaje C – Precedencia de Operadores

Operadores
()
! ~ ++ -- (cast)
sizeof
* / %
+ -
Prioridad
<< >>
Máxima
< <= > >=
== !=
&
^
|
&&
||
Lenguaje C – Precedencia de Operadores

• Expresiones entre paréntesis se evalúan primero.

• Si dos o más operadores consecutivos tienen la misma prioridad, las


operaciones se ejecutan de izquierda a derecha.
Lenguaje C – Conversión entre Tipos de Datos

Se utilizan para convertir un valor de un tipo a otro sin cambiar el valor


que representa. Puede ser:

• Implícita: Se da cuando se mezclan operandos de tipos distintos en


una misma expresión.

• Explicita: Llamadas casting o “casteo”, es una conversión forzada.


Se precede la variable o expresión que se desea convertir por el
tipo al que Ejemplo: se desea convertir encerrado entre paréntesis.

Ejemplo:

int num = (int) (12.5/3);


Lenguaje C – Conversión Implícita

• Implícita: Se da cuando se mezclan operandos de tipos distintos en


una misma expresión. Esta conversión se realiza mediante las
siguientes reglas.
– Si un operando es de tipo long double, el otro se convierte a
ese tipo.
– Si un operando es de tipo double, el otro se convierte a ese
tipo.
– Si un operando es de tipo float, el otro se convierte a ese tipo.
– Si un operando es de tipo char o unsigned char, se convierte a
int.
– Si un operando es de tipo unsigned long, el otro se convierte a
ese tipo.
– Si un operando es de tipo long, el otro se convierte a ese tipo.
– Si un operando es de tipo unsigned int, el otro se convierte a
ese tipo.
– En otro caso, ambos son int.
Lenguaje C – Entrada y Salida de Datos
Frecuentemente un programa necesitará obtener información desde,
por ejemplo, un teclado, o bien enviará la información a un destino, por
ejemplo a una pantalla. La comunicación entre el origen de cierta
información y el destino se realiza mediante un flujo de información
(stream).

ORIGEN
Un flujo es un elemento que hace de
intermediario entre el origen y el destino
de la información. El programa lee o
FLUJO escribe en el flujo, sin importar su origen o
(BUFFER) su destino. Esto sirve para generar un nivel
de abstracción que vuelve independiente al
programa del dispositivo, facilitando la
programación.

DESTINO
Lenguaje C – Entrada y Salida de Datos
Para incluir las operaciones de entrada y salida de datos en C
debemos incluir la biblioteca “stdio.h”.
Este biblioteca define tres archivos o “streams” estándar: stdin, stdout y
stderr, que utilizan entrada y salida basada en caracteres y son
abiertas automáticamente.
Por defecto stdout y stderr están direccionadas a la pantalla, y stdin al
teclado.
Esto significa que cuando ejecutamos una instrucción de entrada de
datos por defecto, los datos se ingresaran desde el teclado (stdin).
Cuando se ejecuta una instrucción de salida por defecto se mostrará
por pantalla (stdout o stderr).
stdin  teclado
stdout  pantalla
stderr  pantalla

• Ejemplo:
fflush(stdin); //vaciar el buffer de entrada
Lenguaje C – Entrada de Datos

Ingresa un carácter desde teclado:


int getchar(void);
Presente en la librería stdio.h. Esta función guarda los caracteres que
se tecleen en el buffer de entrada, hasta que se pulse <ENTER>.
Después recoge solo el primer carácter y lo almacena en la variable
especificada, pudiendo quedar uno o más caracteres en el buffer de
entrada. Así, las posteriores funciones de entrada en el programa
leerán esos caracteres del buffer, obteniéndose resultados
inesperados. Se recomienda el uso de la función fflush(stdin) para
vaciar el buffer después de su uso.
• Ejemplo:
char letra;
letra = getchar();

En caso de error devuelve EOF, constante definida en stdio.h con


valor igual a -1.
Lenguaje C – Entrada de Datos

Ingresa una cadena de texto desde teclado:


char* gets( char* cadena );

Presente en la librería stdio.h. gets se diferencia de scanf en que


scanf sólo captura una cadena de texto hasta que aparece el primer
espacio o fin de línea (desechando todo lo que venga a continuación).
De este modo si tratamos de capturar con scanf el texto “Amanece un
maravilloso día aquí en Alaska” lo único que capturaremos es
“Amanece”, perdiéndose el resto del texto. En cambio con gets se
captura todo el texto. Tanto con scanf como con gets se introduce
automáticamente un fin de cadena (\0) al final del texto capturado.
• Ejemplo:
char cadena[20];
gets(cadena);
Lenguaje C – Entrada de Datos
Ingresar datos desde el teclado con formato:
int scanf ( char*especificador de formato , lista_ de_argumentos);

Está en la librería stdio.h, en caso de error devuelve EOF.


scanf sólo captura una cadena de texto hasta que aparece el primer
espacio o fin de línea (desechando todo lo que venga a continuación)..
La lista de argumentos está formada por las direcciones de memoria
(punteros) de las variables donde se quiere guardar los valores
ingresados. Por tanto, debe usarse el operador & delante del nombre
de cada variable (siempre que esta variable no sea ya un puntero).
Cada especificador de formato se corresponderá con una variable de
la lista de argumentos.

Ejemplo:
int num, dato;
char car;
scanf (“%d %c %d”, &num, &car, &dato);
Lenguaje C – Especificadores de Formato scanf

%c: Carácter %lu: Entero sin signo long


%d: Número entero(int) %x: Hexadecimal sin signo con
%ld: Número entero long minúsculas

%i: Número entero(int) %X: Hexadecimal sin signo con


mayúsculas
%f: Punto flotante(float)
%p: Puntero, dirección de
%e: Notación científica con e memoria
minúscula
%n: Número de caracteres
%E: Notación científica con E
mayúscula %o: Número entero octal sin
signo
%g: Utiliza %f o %e según sea
más corto %lo: Formato entero octal long

%s: Cadena de texto %lf: Formato double

%u: Entero sin signo %LF: Formato long double


Lenguaje C – Especificadores de Formato scanf
%[n°_de_caracteres]type El n° de caracteres será un numero entero
opcional que se coloca entre % y type. Ese número indica el número
máximo de caracteres a almacenar en la variable correspondiente, de
forma que el exceso no se tendrá en cuenta.
Ejemplo:
int edad;
scanf (“%3d”, &edad); /*Después de ingresar tres
números, lo que se ingrese no se guarda*/

int i, j;
scanf (“%o %x”, &i, &j); /*Los valores ingresados el
primero se guarda en octal y otro en hexadecimal*/

char a, b, c;
scanf (“%c %c %c”, &a, &b, &c);/*Se leen tres letras*/
Lenguaje C – Salida de Datos
Muestra un solo carácter:
int putchar(int c);

Se encuentra en la librería stdio.h. El entero c es convertido a carácter


y se envía al monitor. En caso de error devuelve EOF.

• Ejemplo:
char c;
c = getchar();
putchar(c);
Lenguaje C – Salida de Datos
Muestra una cadena de carácter:
int *puts(const char *s);

Se encuentra en la librería stdio.h. La función puts se usa para escribir una


secuencia de caracteres al flujo de salida estándar.“s” se refiere al array
que contiene la cadena de caracteres. Si la función se realiza
correctamente, devuelve 0. Si no, devuelve algo distinto de cero..

• Ejemplo:
char cadena[80];

puts("Por favor, escribe una línea de no más de 80


caracteres:\n");
gets(cadena);
puts("La línea que has introducido es:\n");
puts(cadena);
Lenguaje C – Salida de Datos

Mostrar datos con formato:


int printf (char* lista_de_formatos, lista_de_argumentos);

Esta función permite visualizar varios datos de distinto tipo por


pantalla. Está en la librería stdio.h. Devuelve un valor entero que
coincide con el numero de caracteres visualizados. En caso de error
devuelve un valor negativo.
La lista_de_formatos se escribe entre comillas dobles y está formada
por especificadores de formato y por los caracteres que se desee
visualizar. Los especificadores de formato tienen la siguiente forma:
%[flags] [ancho de campo] [precisión] type
% y type son caracteres obligatorios, el resto son opcionales (por eso
se escriben entre corchetes).
La lista_de_argumentos está formada por las variables o constantes
que se quiera visualizar. Cada argumento de la lista debe tener su
especificador de formato.
Lenguaje C – Salida de Datos
%[flags] [ancho de campo] [precisión] type
ancho de campo: Ese número entero especificará la longitud mínima
que ocupará el dato al visualizarse, teniendo en cuenta el punto
decimal y los decimales.

Ejemplo:
int i = 100;
printf (“i = %6d”, i); /*Se imprime i = bbb100*/

Si la longitud del dato es mayor que la especificada en el formato,


visualiza todo el dato, no se tiene en cuenta esa longitud mínima.
Si en lugar de rellenar con blancos, se desea rellenar con ceros, se
coloca un 0 entre el % y el entero que indica la longitud:
Ejemplo:
int i = 100;
printf (“i = %05d”, i); /*Se imprime i = 00100*/
Lenguaje C – Salida de Datos

%[flags] [ancho de campo] [precisión] type


precisión: Se coloca entre el % y type, después del ancho del campo
si existe, con la forma .número. Indica la precisión, el número de
decimales a visualizar, completando con ceros por la derecha si es
necesario, o truncando los decimales si no caben en la precisión
indicada (redondeando al valor más cercano).
Ejemplo:
float num = 100.18;
printf (“Número = %f”, num);
/*Se imprime Número = 100.180000*/
printf (“Número = %7.1f”, num);
/*7=longitud mínima total contando el punto(.), los decimales y
la parte entera. Se imprime Número = bbbb100.2*/
printf (“Número = %.3f”, num);
/*Solo se indica que se mostrarán 3 decimales.
Se imprime Numero = 100.180*/
Lenguaje C – Salida de Datos

%[flags] [ancho de campo] [precisión] type

Si se usa con cadenas (%s), mínim.máxima. La precisión indicará la


máxima longitud que se visualizará; la longitud mínima viene dada
por el ancho de campo indicado.

Ejemplo: “%8.10s” /*Escribe la cadena de 8 a 10 caracteres*/


Lenguaje C – Salida de Datos

%[flags] [ancho de campo] [precisión] type

Ejemplo:

printf (“|%-15s|”, “hola”);


/*Se imprime |holabbbbbbbbbbb|*/

printf (“|%15s|”, “hola”);


/*Se imprime |bbbbbbbbbbbhola|*/
Lenguaje C – Salida de Datos

Existen las
secuencias de
backslash (o
secuencias de
escape) para
realizar operaciones
de control que
pueden ser
ejecutadas con
printf.
Estructura de un programa en C
#directivas al precompilador
#include <del sistema>
#include “de la aplicación”
#define macro reemplazos
typedef tipos de datos definidos por el usuario
Declaración de los prototipos de las funciones
implementados en este módulo
Declaración de variables globales de este módulo
int main()
{
}
Implementación de las funciones
Estructura de un programa en C

#directivas al precompilador

Todas las líneas que comienzan con el símbolo # son


directivas al precompilador.

Se ejecutan antes de ejecutar el proceso de compilación.


Estructura de un programa en C
#include <del sistema>
Indica al compilador que debe incluir información acerca de las bibliotecas
estándar que le indiquemos.
Las bibliotecas estándar son las provistas por el compilador que estamos
utilizando y se encuentran en la carpeta de instalación por defecto .
Se utilizan <…> para indicar que se encuentran en la ruta por defecto de
instalación del compilador.
Ejemplo:
#include <stdio.h>
/*"standard input-output header" cabecera estándar E/S*/
#include <stdlib.h>
/*biblioteca estándar de propósito general*/
#include <string.h>
/*operaciones básicas con cadenas*/
#include <math.h>
/*operaciones matemáticas básicas*/
Estructura de un programa en C
#include “de la aplicación”

Cuando el preprocesador encuentra una línea


#include "fichero",
Reemplaza esta línea por el fichero incluido. Así procede con
todas las directivas de inclusión.
Se utilizan “…” para indicar que se encuentran en la ruta
especificada en la instrucción actual, en caso de que no se
indique una ruta, busca los ficheros en la carpeta del proyecto
actual.
Ejemplo:
#include “miArchivo.h”
/*Lo busca en la carpeta del proyecto actual*/

#include “C:\cabeceras\otroArchivo.h”
/*Lo busca en el disco “C:” carpeta “cabeceras”*/
Estructura de un programa en C
#define macro reemplazos

Una línea #define define un nombre simbólico o constante simbólica


como una cadena de caracteres especial:
#define nombre texto_de_reemplazo
A partir de esta línea, cualquier ocurrencia de nombre (que no este
entre comillas ni como parte de otro nombre) se sustituirá por el
texto_de_reemplazo correspondiente. El nombre tiene la misma
forma que un nombre de variable. El texto_de_reemplazo puede ser
cualquier secuencia de caracteres; no esta limitado a números.
Ejemplo:
#define FALSO 0
/*Cada vez que encuentre FALSO lo reemplaza por 0*/

#define FIN_CADENA ‘\0’


/*Reemplaza FIN_CADENA por ‘\0’”*/
Estructura de un programa en C

typedef tipos de datos definidos por el usuario

Permite al programador definir sus propias estructuras de


datos y utilizarlas en los programas para definir variables
con esa estructura.

Se detallará en próximas unidades.


Estructura de un programa en C
Declaración de los prototipos de las funciones
implementados en este módulo

Es preciso “informar” al compilador de que en otro fichero o


después del main se encuentra una función. El compilador
C conoce lo que haya encontrado desde el inicio hasta la
línea que está analizando. Para evitar problemas de
compilación, al inicio del programa se declaran todas las
funciones que se van a utilizar,.
El prototipo de una función es una línea similar a la primera
de su declaración: tipo del resultado, seguido del nombre
de la función y la lista de tipos de datos de los parámetros
separados por comas y rodeados por paréntesis.
Estructura de un programa en C
Declaración de los prototipos de las funciones implementados
en este módulo

Ejemplo:
/* Prototipo */
int addition(int, int);
/*Le informa al compilador que más adelante se
va a definir una función que rotorna una valor
entero, que se llama “addition” y que recibe
como parámetros dos valores enteros. Notar que
no es necesario darle valor a las variables en
este momento, pero es conveniente hacerlo*/

/* Prototipo */
int addition(int x, int y);
Estructura de un programa en C
Declaración de variables globales de este módulo
Una variable global es aquella que se define fuera del cuerpo de
cualquier función, normalmente al principio del programa. El ámbito de
una variable global son todas las funciones que componen el
programa, cualquier función puede acceder a dichas variables para
leer y escribir en ellas. Es decir, se puede hacer referencia a su
dirección de memoria en cualquier parte del programa.
El uso de variables globales no es aconsejable a pesar de que
aparentemente nos parezca muy útil, esto se debe a varias razones
fundamentales, algunas son:
• dificulta la legibilidad del código.
• Atenta contra la modularidad, al compartir espacios de memoria con
otras funciones, hace que sea dífila la indecencia entre los módulos.
• una alteración no deseada del contenido de una variable global
dentro de una función, bien por invocación, bien por olvidar definir
en la función una variable local o un parámetro formal con ese
nombre. La corrección de dichos errores puede ser muy ardua.
Estructura de un programa en C

int main()
{
}

main" es una función especial —el programa comienza a


ejecutarse al principio de main. Esto significa que todo
programa debe tener un main único en algún sitio.
Por lo común main llamará a otras funciones que ayuden a
realizar su trabajo, algunas que usted ya escribió, y otras
de bibliotecas escritas previamente.
Estructura de un programa en C

tipo main ( lista_parametros )


{
Declaraciones de variables locales
Sentencias
}
tipo_retorno1 nombre_funcion1 ( lista_parametros )
{
Declaraciones de variables locales
Sentencias
}
….
tipo_retornoN nombre_funcionN ( lista_parametros )
{
Declaraciones de variables locales
Sentencias
}
Lenguaje C – Funciones matemáticas – math.h
Ejemplos de Códigos escritos en C

También podría gustarte