Вы находитесь на странице: 1из 27

PROGRAMACIN EN LENGUAJE C

Objetivo General
El alumno adquirir y aplicar conocimientos para el desarrollo de sistemas utilizando el
lenguaje de programacin C bajo el paradigma de la programacin estructurada.

1. NOCIONES BASICAS DE PROGRAMACIN


Antes de empezar a programar en un lenguaje determinado hay que conocer una serie de
conceptos bsicos comunes a todos los lenguajes.
1.1 PROGRAMA: Puede entenderse como la forma de expresar la solucin a un problema
de manera que sea comprensible para el ordenador. En otras palabras, un programa es un
conjunto ordenado de instrucciones que se dan a la computadora indicando el conjunto de
operaciones o tareas que se desea llevar a cabo.
A la hora de crear o elaborar un programa, hay que tener en cuenta los siguientes pasos:
Correcto: Un programa ser correcto si hace lo que debe hacer, de modo que se deben
especificar de manera muy clara cules son los datos sobre los que se trabajarn y lo que
se debe hacer con ellos.
Eficiente: Debe consumir la menor cantidad de recursos (tiempo y/o memoria) posible.
Claro: Es muy importante la claridad y legibilidad de todo programa.
Modular: Los programas suelen subdividirse en subprogramas (mdulos), para reducir la
complejidad de aquella parte que se est implementando y facilitar la reutilizacin de
cdigo.
Fases de la Puesta a Punto de un Programa en Lenguaje C
Qu pasos hay que dar para convertir un algoritmo en un programa?
Para convertir un algoritmo en un programa, se deben llevar a cabo las siguientes
fases de puesta a punto:
Edicin. En esta primera fase, el programador debe convertir el algoritmo que
haya diseado en instrucciones escritas en C. Para ello, se debe hacer uso de un
editor de textos, con el cual se obtendr el llamado cdigo fuente del programa. El
programador deber guardar dicho cdigo fuente en un archivo con extensin (.c)
o (.cpp).
Si un programa escrito en C se va a compilar con un compilador de C, el cdigo
fuente debe ser guardado, obligatoriamente, en un archivo con extensin (.c). Ahora

Ing. Biel Bernal

Pgina 1

bien, si se utiliza un compilador de C/C++, el archivo se puede guardar con


extensin (.c) o (.cpp).
Pre proceso. El pre proceso sirve para realizar modificaciones en el cdigo fuente
obtenido en la fase de edicin. Es el programador quien, mediante directivas del
preprocesador, "dice" al preprocesador las modificaciones que ste debe llevar a
cabo.
El preprocesador es un programa caracterstico de C, es decir, en otros lenguajes de
programacin no existe, y siempre se ejecuta antes de llevarse a cabo la
compilacin. Esto es debido a que, es el propio compilador quien llama al
preprocesador antes de realizar la compilacin.
Compilacin. Una vez que el cdigo fuente ha sido pre procesado, el compilador
traducir ese cdigo fuente (modificado) a cdigo mquina, tambin llamado
cdigo objeto, siempre y cuando, el propio compilador no detecte ningn error en
dicho cdigo fuente ya pre procesado.
Como resultado de la compilacin, el compilador guardar el cdigo objeto del
programa en un archivo con otra extensin, que, dependiendo del sistema
operativo puede variar. Por ejemplo, en Windows, se guardar con la extensin
(.obj), abreviatura de object.
Enlace. (linkaje o montaje). Los programas pueden utilizar funciones de la biblioteca
estndar de C, tales como scanf o printf. De cada una de ellas existe un cdigo
objeto que debe ser enlazado (unido) al cdigo objeto del programa que las utilice.
Esto se realiza mediante un programa llamado enlazador, montador o linkador.
Como resultado del enlace, el enlazador guardar, en disco, un archivo ejecutable.
En Windows, dicho archivo tendr extensin (.exe), abreviatura de executable.
Dicho archivo ser "el ejecutable".
Adems de las funciones de la biblioteca estndar de C, el programador tambin
puede utilizar funciones que hayan sido desarrolladas por l mismo. stas pueden
agruparse en su propia biblioteca de funciones (no estndar). Por lo que, tambin
en esta fase, el cdigo objeto de dichas funciones deber ser enlazado al cdigo
objeto del programa que las utilice.
1.2 INSTRUCCIN: Es un conjunto de smbolos que representa una orden de operacin o
tratamiento para el ordenador.
Ing. Biel Bernal

Pgina 2

1.3 ERRORES DE COMPILACIN: Los compiladores emiten mensajes de error o de


advertencia durante las fases de compilacin, de enlace o de ejecucin de un programa:
Los errores en tiempo de compilacin: Son los que se producen antes de la
ejecucin del programa, durante el proceso de compilacin del programa.
Los errores en tiempo de ejecucin: Son los que se producen durante la ejecucin del
programa. Son los ms difciles de encontrar, no son detectados por el compilador, ya que
son errores de lgica, no de sintaxis.
Aunque al compilar un programa no de errores, el programa puede funcionar
incorrectamente y/o a dar errores durante su ejecucin. Por ejemplo:
Un programa puede producir resultados errneos, al equivocarnos (errores lgicos) al
programar el algoritmo (sumar en vez de restar, etc.).
Un programa puede interrumpirse bruscamente, por ejemplo si tenemos que hacer una
divisin y el divisor es cero, etc.
Los errores que se pueden producir en la fase de compilacin son:
Errores fatales: Son raros. Indican errores internos del compilador. Cuando ocurren la
compilacin se detiene inmediatamente.
Errores de sintaxis: Son los errores tpicos de sintaxis. No detienen la compilacin sino
que al finalizar sta se mostrar la lista con todos los errores encontrados. Algunos errores
suelen ser consecuencia de otros cometidos con anterioridad. Con este tipo de errores no
se puede obtener un programa objeto y por lo tanto tampoco el ejecutable.
Advertencias o avisos (warnings): Indican que hay lneas de cdigo sospechosos que a
pesar de no infringir ninguna regla sintctica, el compilador las encuentra susceptible de
probar un error. Cuando se detecta un warning la compilacin no se detiene. Si en un
programa fuente slo se detectan warnings s que se podr obtener un programa objeto,
que tras el linkado dar lugar a un programa ejecutable.
1.4 HISTORIA DEL LENGUAJE C
El lenguaje C fue creado por Dennis Ritchie en los laboratorios Bell Telephone en 1972, el
C fue creado con un fin especfico: el diseo del sistema operativo UNIX. Este lenguaje
solo es una modificacin del lenguaje B. El lenguaje C se llama de esta forma debido a
que su predecesor fue llamado B.
La novedad que proporcion el lenguaje C fue el diseo de tipos y estructuras de datos.
Los tipos estructurados bsicos de C son las estructuras, las uniones, y los arrays. Estos
permiten la definicin y declaracin de tipos de mayor complejidad.
1.5 QU ES EL LENGUAJE C?
Ing. Biel Bernal

Pgina 3

Es un lenguaje de alto nivel que se puede caracterizar por los siguientes puntos:
Es de propsito general esto significa que puede ser usado tanto para el desarrollo de
sistemas operativos como para programas cientficos, programas de aplicacin o
programas de educacin y juegos.
Posee una alta transportabilidad ya que los programas escritos en C pueden ser llevados
de un tipo de ordenador a otro y funcionarn. Los cambios que hay que realizar son
mnimos.
Como solo tiene 32 palabras reservadas se dice que es compacto.
Los compiladores generan ejecutables ms pequeos porque por norma general, los
programas escritos en lenguaje C poseen menos lneas de cdigo que otros lenguajes de
programacin de alto nivel.
El lenguaje de programacin C es un lenguaje imperativo o procedimental. Esto significa
que indica secuencias de acciones con el fin de llegar a un objetivo. Generalmente los
lenguajes imperativos o procedimentales contienen una parte declarativa. El lenguaje C da
rdenes a la mquina.
Es un lenguaje estructurado ya que los programas escritos con l se pueden organizar en
mdulos.
Su principal desventaja es que un programa puede estar escrito con tal brevedad y
concisin que se vuelven casi ilegibles. Esto es debido a su versatilidad.
1.6 ESTRUCTURA DEL LENGUAJE C
Todo programa en C consta de una o ms funciones, una de las cuales se llama main. El
programa comienza en la funcin main, desde la cual es posible llamar a otras funciones.
La manera ms fcil de entender la estructura del lenguaje C es con un sencillo ejemplo:
#include<stdio.h> void main()
/* imprime Hola como estas */

{
}

printf("Hola como estas ");

Explicamos lnea por lnea el programa:


#include<stdio.h> Le dice a C que el proceso de compilacin incluya un archivo
denominado stdio.h. Este fichero se suministra como parte del compilador de C y contiene
la informacin necesaria para el correcto funcionamiento de la E/S de datos. La sentencia
#include no es una instruccin C. El smbolo # la identifica como una directiva, es decir,
una orden para el preprocesador de C, responsable de realizar ciertas tareas previas a la
compilacin.

Ing. Biel Bernal

Pgina 4

Los archivos *.h se denominan archivos de cabecera. Todos los programas C requieren la
inclusin de uno o varios archivos de este tipo, por lo que normalmente es necesario
utilizar varias lneas #include.
void Significa que cuando la funcin main acabe no devolver nada .
main() Es el nombre de una funcin. Un programa C se compone de una o ms funciones,
pero al menos una de ellas debe llamarse main(), pues los programas C empiezan a
ejecutarse por esta funcin.
Los parntesis identifican a main() como una funcin. Generalmente, dentro de ellos se
incluye informacin que se enva a la funcin. En este caso no hay traspaso de
informacin por lo que no hay nada escrito en su interior. Aun as son obligatorios.
{ } Las llaves significan el cuerpo de una funcin (conjunto de sentencias que la
componen).
printf("Hola como estas "); Se utiliza para mostrar una cadena con formato. Esta
sentencia es importante por dos razones: en primer lugar, es un ejemplo de llamada a una
funcin. Adems ilustra el uso de una funcin estndar de salida: la funcin printf() como
toda sentencia C acaba con punto y coma.
/* imprima Hola como estas */ Es un comentario, no se ejecuta. Sirve para describir el
programa.
Ejecucin del programa
COMPILANDO EL PROGRAMA

Ing. Biel Bernal

Pgina 5

EJECUTANDO EL PROGRAMA

Ing. Biel Bernal

Pgina 6

SALIDA O RESULTADO

2. SINTAXIS DEL LENGUAJE C


2.1 IDENTIFICADORES: Es un conjunto de caracteres alfanumricos de cualquier
longitud que sirve para identificar las entidades del programa (clases, funciones,
variables, tipos compuesto. etc.) Los identificadores pueden ser combinaciones de
letras y nmeros. Los identificadores C pueden contener las letras de a a z y A a Z el
guion bajo _ (Underscore) y los dgitos 0 a 9.
Para que un identificador sea vlido debe:
Iniciar con una letra del alfabeto, o con el signo _
No debe contener caracteres especiales, tales como @, $, #
Despus de la primera letra puede contener ms letras del alfabeto, nmeros, o el
carcter _
No debe haber espacios en blanco en los identificadores
C diferencia maysculas de minsculas, entonces no es lo mismo declarar la variable
nmero que NUMERO
Existen palabras propias del lenguaje (palabras reservadas) que no pueden ser usadas
como identificadores

Ing. Biel Bernal

Pgina 7

Ejemplos de identificadores correctos:


Nom

temp

n_1

edad15

_sexo

Ejemplos de identificadores incorrectos:


123

num*

sexo edad

ao

if

Hay ciertas palabras reservadas, denominadas palabras clave, que tienen en C un


significado estndar y por tanto no pueden ser utilizadas como identificadores definidos
por el programador. Las palabras clave estn en minsculas.

auto
unsigned
switch
sizeof
return

const
break
void
typedef
static

double
continue
case
volatile
union

float
else
default
char
while

int
for
enum
do
main

short
long
goto
extern
bool

struct
signed
register
if
true

2.2 VARIABLES
Una variable es un espacio de memoria reservado para almacenar un valor que
corresponde a un tipo de dato soportado por el lenguaje de programacin. Una variable
es representada y usada a travs de una etiqueta (un nombre) que le asigna un
programador o que ya viene predefinida.
Existen ciertas reglas en cuanto a variables:
Claras y con referencias directa al problema.
No espacios en blanco, ni smbolos extraos en ellas.
Se pueden usar abreviaturas, pero solo de carcter general. No deben ser palabras
reservadas del lenguaje.
2.2.1 Como declarar una variable en C
C maneja varios tipos de variables: numricas, de carcter y boolean (cierto y falso).
Para declarar una variable numrica llamada num,
escribimos esto: int num = 0;
Para declarar una variable numrica llamada PI,
escribimos esto: float PI = 3.14;

Ing. Biel Bernal

que inicie con un valor de 0,


que inicie con un valor de 3.14,

Pgina 8

Para declarar una variable de carcter llamada edad, que inicie con un valor F, escribimos
esto: char edad = 'F';
Para declarar una variable boolean llamada ban, que empiece como con un valor falso,
escribimos esto: bool ban = false;
2.2.2 mbito de las variables
Segn el lugar donde se declaran las variables tendrn un mbito. Segn el mbito de
las variables pueden ser utilizadas desde cualquier parte del programa o nicamente
en la funcin donde han sido declaradas. Las variables pueden ser:
2.2.2.1 Locales: Cuando se declaran dentro de una funcin. Las variables
locales slo pueden ser referenciadas (utilizadas) por sentencias que estn
dentro de la funcin que han sido declaradas. No son conocidas fueras de su
funcin. Pierden su valor cuando se sale y se entra en la funcin. La declaracin
es como siempre:
#include<stdio.h> void main()
{
suma;
/* variables locales */
+ b; }

int a, b,
suma = a

2.2.2.2 Globales: Son conocidas a lo largo de todo el programa, y se pueden


usar desde cualquier parte del cdigo. Mantienen sus valores durante toda la
ejecucin. Deben ser declaradas fuera de todas las funciones incluidas main().
La sintaxis de creacin no cambia nada con respecto a las variables locales.
Inicialmente toman el valor 0 o nulo, segn el tipo.
#include<stdio.h> int a, b, suma;
variables globales */ void main() {
a + b;

/*
suma =

}
2.2.3 Utilizacin de variables
Incrementar su valor
Controlar un bucle
Chequear una condicin
Participar en una expresin
2.3 CONSTANTES

i += 1;
for (i = 1; i < 10; i++)
if (cont < 0)
suma = num1 + num2;

Una constante es un valor que no puede ser alterado durante la ejecucin de un


programa. Corresponde a una longitud fija de un rea reservada en la memoria principal
Ing. Biel Bernal

Pgina 9

del ordenador, donde el programa almacena valores fijos. El nombre de las constantes
suele escribirse en maysculas.
2.3.1 Constantes definidas con el adjetivo (const): Con el prefijo const usted
puede declarar constante con un tipo especfico exactamente igual a como hara con
una variable. Este es su formato: const <tipoConstante> <nombreConstante> =
<valor>;
Ejemplos:
const int A = 123; const
float PI = 3.14;
2.3.2 Constantes definidas con la directiva (define): Usted puede definir sus
propios nombres para constantes que usar completamente sin tener que recurrir a
variables, simplemente usando la directiva del procesador #define, la cual va fuera
del programa principal.
Este es su formato:
#define
<identificador><
Ejemplos:
#define PI 3.14
#define GT

valor>

9.78

2.4 DIFERENCIA ENTRE VARIABLES Y CONSTANTES


Las variables primero se declaran, luego se inician, y luego se usan. Las constantes ya
reciben un valor inicial en su declaracin.
Las variables pueden cambiar su valor tantas veces como deseen. Las constantes, una
vez declaradas mantienen su valor durante toda la ejecucin del programa.
Las variables tambin pueden cambiar de tamao en tiempo de ejecucin (punteros).
2.5 TIPOS DE DATOS
Hay dos clases de tipos de datos: tipos fundamentales y tipos derivados. Estudiaremos
solamente las de tipo fundamental.
2.5.1
Tipo entero: Representa nmeros enteros con o sin signo, que estarn
compuestos por los dgitos del 0 al 9, pudiendo ser precedidos por los signos +
o -. Para definir variables en C se antepone la palabra reservada del tipo al
identificador de la variable. El tipo de datos entero se define en el lenguaje de
programacin C por la palabra reservada int. No es necesario que la variable

Ing. Biel Bernal

Pgina 10

tenga un valor predeterminado. Se puede definir sin asignarle ningn valor. Si


tenemos varios datos que son del mismo tipo se pueden definir todas en la
misma lnea de cdigo escribiendo un nico int. Separando el nombre de las
variables por ", ". Una vez que se haya de definir variables, se cierra la lnea de
cdigo con "; ". Ejemplo: int edad, num, cont = 1;
2.5.2
Tipo real: Se emplean para representar nmeros reales (con decimales).
Para definir datos reales se antepone la palabra reservada float al identificador
de la variable. Ejemplo: float valor = 5.65;
2.5.3
Tipo carcter: Este tipo de datos se emplea para representar un
carcter perteneciente a un determinado cdigo utilizado por el ordenador
(cdigo ASCII). Para representar este tipo de dato se antepone la palabra
reservada char al identificador de la variable.
Una constante tipo char se representa como un solo carcter encerrado entre
comillas simples. Ejemplo: char sexo = 'M';
2.5.4
Tipo cadena de caracteres: Una cadena de caracteres es un nmero
de caracteres consecutivos (incluso ninguno) encerrado entre unos
delimitadores determinados, que en el lenguaje C son las comillas dobles.
Para definir variables de tipo cadena, estas se definen como vectores de caracteres,
esto es, anteponiendo la palabra reservada char al identificador de la variable, y
despus entre corchetes la longitud mxima de cadena. Ejemplos:
char nombre[6] = "YEIMMY";
char Nom[7] = {'Y', 'E', 'I', 'M', 'M', 'Y'};
2.5.5

Otros tipos de datos:

bool: contiene dos valores posibles true, false. Una variable que se declare de tipo
booleana tendr asignado siempre uno de los dos valores, verdadero o falso.
Ejemplo:
bool true = 1; if
(true)
printf("Es
cierto");
Tabla tamao y rango de los tipos de datos

Nombre
cha
r

Descripcin
Carcter

Ing. Biel Bernal

Tamao
8 bytes

Rango
signed->-128 a 127; unsigned->0 a 255

Pgina 11

16 bytes

short

Entero pequeo

int

Entero

32 bytes

long int

Entero largo

32 bytes

float
double
long double
bool

Numero en coma
32 bytes
flotante
Numero en coma
flotante de doble64 bytes
precisin
Numero en coma
80 bytes
flotante grande
Valor booleano
1 byte

signed->-32,768 a 32,767; unsigned->0 a


65,535
signed->-2,147,483,648 a 2,147,483,647;
unsigned->0 a 4,294,967,295
signed->-2,147,483,648 a 2,147,483,647;
unsigned->0 a 4,294,967,295
1.14*10-38 a 3.4*10+38 (7 dgitos)
2.23*10-308 a 1.79*10+308 (15 dgitos)

3.37*10-4932 a 1.18*10+4932 (18 digitos)


true o false

2.6 OPERADORES
Son smbolos que indican como se deben manipular los operando. Los operadores junto
con los operando forman una expresin, que es una frmula que define el clculo de un
valor. Los operando pueden ser constantes, variables o llamadas a funciones, siempre
que stas devuelvan algn valor. El compilador evala los operando, algunos de
izquierda a derecha, otros de derecha a izquierda, siguiendo un orden de precedencia.
Este orden se puede alterar utilizando parntesis para forzar al compilador a evaluar
primero las partes que se deseen. Tipos de operadores utilizados en C
2.6.1
Operadores Aritmticos: Es un smbolo que indica al compilador el clculo
que deseamos realizar; ese clculo afectar a uno o ms valores, llamados
operando, y producir un cierto resultado. Los operadores aritmticos, juntos con las
constantes y variables numricas, permiten formar expresiones anlogas a las
algebraicas habituales. Estas expresiones son traducidas por el compilador al cdigo
mquina correspondiente, que se ejecuta con objeto de calcular el valor de la
expresin en cuestin.

OPERADORES ARITMETICOS
Operador Descripcin
Eje. a = 3, b = 2
+
Suma
a+b
Resta
a-b
*
Multiplicacin a * b
Ing. Biel Bernal

Resultado
5
1
6
Pgina 12

/
%

Divisin
Resto

a/b
a%b

1.5
1

2.6.2
Operadores Relacionales: Son smbolos que se usan para comparar dos
valores. Si el resultado de la comparacin es correcto la expresin considerada es
cierta o 1, en caso contrario es falsa o 0

Operador
>
<
>=
<=
==
!=

OPERADORES RELACIONALES
Descripcin
Eje: a = 2, b = 3
Mayor que
a>b
Menor que
a<b
Mayor o igual que a >= b
Menor o igual que a <= b
Igual
a == b
Distinto
a != b

Resultado
Falso
0
Cierto 1
Falso
0
Cierto 1
Falso
0
Cierto 1

2.6.3
Operadores Lgicos: Se utilizan para realizar comparaciones entre valores,
numricos o no, dando como resultado un valor booleano (cierto o falso). La
operacin lgica negacin invierte el operando, si es cierto lo hace falso y viceversa.

OPERADORES LOGICOS
Operador Descripcin Eje: a = 1, b = 2, c = 3
&&
Y (and)
(a > b) && (b < c)
||
O (or)
(c > a) || (c == a)
!
No (not)
!(a > c)

Resultado
Falso
0
Cierto 1
Cierto 1

2.6.4
Operadores de Asignacin: Asigna un valor a su operando izquierdo
basndose en el valor de su operando derecho. El operador bsico de asignacin es
el igual (=), el cual asigna el valor de su operador derecho a su operador izquierdo.

OPERADORES DE ASIGNACIN

Ing. Biel Bernal

Pgina 13

Operador
+=
-=
*=
/=
%=

Eje: a = 5,
a += 3
a -= 3 * b
a *= 2
a /= 1 + b
a %= 4

b=1
a=a+3
a = a (3 * b)
a=a*2
a = a / (1 + b)
a=a%4

Resultado
8
2
10
2.5
1

2.6.5
Operadores Monarios: Son operadores que actan sobre un solo operando
para producir un nuevo valor.
++ Incremento unitario (incrementa en 1 al operando).
-- Decremento unitario (decrementa en 1 al operando).
Existen dos variedades Pre incremento y Pos incremento.

variable ++
++ variable
variable --- variable

El valor de la variable incrementa despus de una operacin


El valor de la variable incrementa antes de una operacin
El valor de la variable disminuye despus de una operacin
El valor de la variable disminuye antes de una operacin

Ejemplos:
Supongamos que originalmente n = 3
El posincremento aade uno a la expresin despus de que se ha evaluado:

x = n++;

x == 3 y n == 4

El preincremento aade uno antes de que sea evaluada la expresin:

x =
+n;

Ing. Biel Bernal

x == 4 y n ==
4

Pgina 14

El postdecremento resta uno del valor de la expresin despus de que sea evaluada:

x
n--;

x == 3 y n ==
2

El predecremento resta uno antes de la evaluacin de la expresin:

x
--n;

x == 2 y n ==
2

2.6.6
Operador Condicional: Se puede utilizar en sustitucin de la sentencia de
control if-else. Los forman los caracteres ? y :
Se utiliza de la forma siguiente:
expresin1 ? expresin2 : expresin3
Si expresin1 es cierta entonces se evala expresin2 y ste ser el valor de la
expresin condicional. Si expresin1 es falsa, se evala expresin3 y ste ser el
valor de la expresin condicional.
printf((num % 2 == 0) ? "Par" : "Impar");
2.7 ENTRADA Y SALIDA DE DATOS
2.7.1 SALIDA DE DATOS:
2.7.1.1 Funcin printf(): La funcin printf() (de "printf" = imprimir y "f" =
formato) sirve para escribir datos en el dispositivo de salida estndar
(generalmente la pantalla) con un formato determinado por el programador. La
forma general de utilizarla es la siguiente: printf(cadena_de_formato, datos).
El prototipo de printf() se encuentra en el archivo de cabecera stdio.h (de "std"
= standard e "io" = input / output, es decir, entrada / salida; por lo tanto,
"stdio" es un acrnimo de "entrada / salida estndar"). El primer argumento,
la cadena_de_formato, especifica el modo en el que se deben mostrar los datos
que aparecen a continuacin. Esta cadena se compone de una serie de

Ing. Biel Bernal

Pgina 15

cdigos de formato que indican a C qu tipo de datos son los que se desean
imprimir.
Todos los cdigos estn precedidos del smbolo de porcentaje (%).
Ejemplos: int a = 5;
printf("%d ",a);
Esto imprimira el valor de la variable entera a en la pantalla, es decir, 5. Fjese
en que el primer argumento de printf() es una cadena (y, por lo tanto, se escribe
entre comillas) cuyo contenido es el cdigo del tipo de dato que se pretende
imprimir. El segundo argumento es el dato mismo.
int num1 = 3; float num2 =
2.7;
printf("%d
%f
",num1,num2);
Esto imprimira el valor de la variable num1 que es 3 y el valor de la variable
num2 que es 2.7
Los cdigos de formato que se pueden utilizar en printf() son:

Cdigo
%d
%f
%c

Formato Salida
printf("%d",entero);
printf("%f",real);
printf("%c",caracter);

Adems de los cdigos de formato, en la cadena de formato puede aparecer


cualquier texto entremezclado con los cdigos. A la hora de escribir en la
pantalla, los cdigos sern sustituidos por los datos correspondientes, pero el
resto del texto aparecer de forma literal. Ejemplo:
int edad = 17;
printf("YEIMMY ARROYO tiene %d aos ", edad);
2.7.1.2 Funcin puts: Enva la cadena de texto contenido dentro de los
parntesis a la pantalla. Ejemplo: puts("Me llamo Mnica
Vergara");
2.7.1.3 Funcin putchar: Escribe un nico carcter en la salida estndar.
Ejemplo:

Ing. Biel Bernal

Pgina 16

putchar('H'); putchar('O');
putchar('L');
putchar('A');
2.7.2 ENTRADA DE DATOS
2.7.2.1 Funcin scanf(): La funcin scanf() puede leer desde el dispositivo de
entrada estndar (normalmente el teclado) datos de cualquier tipo de los
manejados por el compilador, convirtindolos al formato interno apropiado, la
sintaxis es:
scanf(cadena_de_formato, datos);
El prototipo de scanf() se encuentra en el archivo de cabecera stdio.h (de "std "
= standard e "io " = input / output, es decir, entrada / salida).
La cadena_de_formato tiene la misma composicin que la de pirntf(). Los datos
son las variables donde se desea almacenar el dato o datos ledos desde el
teclado. Con los tipos simples, es necesario utilizar el operador & delante del
nombre de la variable, porque esa variable se pasa por referencia a scanf()
para que esta pueda modificarla. Ejemplo:
int num; scanf("%d
",&num);
La llamada a scanf() sirve para leer un nmero entero desde teclado y
almacenarlo en la variable num. El primer argumento de scanf() es una cadena
(y, por lo tanto, se escribe entre comillas) cuyo contenido es el cdigo del tipo
de dato que se pretende leer.
2.7.2.2 Funcin getch(): Lee carcter a carcter pero no muestra por pantalla
el carcter ledo. Ejemplo:
printf("Ingrese
una
letra
");
getch();
2.7.2.3 Funcin getche(): Lee carcter a carcter y muestra por pantalla el
carcter ledo. Ejemplo:
printf("Ingrese
una
letra
");
getche();
2.7.2.4 Funcin gets(): Lee los caracteres que se introducen por el teclado
hasta que encuentre un retorno de carro (tecla enter). Ejemplo:
char nom[8]; printf("Ingrese
su nombre"); gets(nom);
2.7.2.5 Funcin getchar(): Devuelve el carcter que se halla en la entrada
estndar.
Ing. Biel Bernal

Pgina 17

Ejemplo:
int c; c = getchar();
presione

//no devuelve nada hasta que se

//enter putchar(c);
Los cdigos de formato que se pueden utilizar en scanf() son:

Cdigo
%d
%f
%c

Formato Entrada
scanf("%d",&entero)
scanf("%f",&real)
scanf("%c",&caracter)

2.8 CONTADOR
Es un tipo de variable que incrementa o decrementa su contenido en un valor constante.
Ejemplo:
int cont = 1; if
(cont
>
0)
cont ++;
Si la condicin es cierta entonces el cont se incrementa (sumar) en una unidad, y se
vuelve a guardar en la misma variable (cont).
2.9 ACUMULADOR
Es una variable que incrementa o decrementa su contenido en cantidades variables.
Ejemplo:
int cont = 1; suma = 0; while
(cont <= 5)
{
cont;
+; }

suma +=
cont +

La variable suma se incrementara con el valor que cont vaya tomando.


2.10 COMENTARIOS

Ing. Biel Bernal

Pgina 18

Los comentarios se utilizan para que una o varias lneas sean ignoradas por el
compilador. Estas lneas se utilizan, en general, para hacer que el cdigo sea ms
comprensible.
Hay dos tipos de comentarios:
El smbolo // convierte en comentario todo lo que est situado a su derecha y en la misma
lnea.
Todo el texto encerrado entre los smbolos /* y */ ser considerado como comentario por
el programador.
Ejemplos:
// comentarios en lenguaje C
/* otra manera de escribir un comentario */
2.11

PUNTO Y COMA (;)

Toda sentencia debe terminar con un punto y coma (;) ya que con ello le indicamos al
compilador que ha finalizado una sentencia. Ejemplo:
scanf("%d",&num); printf("HOLA
COMO ESTAS");
2.12

LLAVE { }

Cuando hay ms de una instruccin dentro de un bloque, entonces el bloque debe ir


entre llaves {} Ejemplo:
int cont = 0, sump = 0, num = 1; if
(num > 0)
{
num;
+; }
2.13

sump +=
cont +
MAYSCULA Y MINSCULA EN C

Para el compilador C los identificadores distinguen maysculas y minsculas; sea que


para el compilador un mismo identificador escrito en mayscula y minscula son
diferentes. Ejemplos:
int suma;
int Suma;
int SUMA;
2.14

SENTENCIAS CONDICIONALES O SELECTIVA Y REPETITIVAS O BUCLES

Ing. Biel Bernal

Pgina 19

2.14.1 SENTECIAS CONDICIONALES O SELECTIVA Permiten una accin


previamente predeterminada por el programador, la cual se cumplir si la condicin
es cierta o de otro modo si la condicin es falsa.
2.14.1.1
if Es una sentencia de seleccin simple, acta sobre una sola
condicin. Si la condicin del if es cierta se ejecuta el bloque de
instrucciones, y si es falsa no hace nada. Su formato es:
if (condicin)
{
bloque de instrucciones a
ejecutar
}
Ejemplo:
if (num < 0)
printf("El numero es negativo");
2.14.1.2
if-else Es una sentencia de seleccin doble o anidada, acta en
ms de una condicin. Si la condicin del if es cierta se ejecuta el bloque de
instrucciones, y si es falsa entonces se ejecuta el bloque de instrucciones
del else. Su formato es:
if (condicin)
{
bloque que se ejecuta si se cumple la
condicin
} else {
bloque que se ejecuta si no se cumple la
condicin
}
Ejemplo:
if
(sexo
==
printf("Es mujer");

'F')
else

printf("Es hombre");
Observacin: Quien toma la condicin es if
2.14.1.3 case Es una sentencia de seleccin mltiple, que compara
sucesivamente el valor de una expresin con una lista de constantes enteras
o de caracteres. Cuando se encuentra una correspondencia, se ejecutan las
sentencias asociadas con la constante. Ejemplo:
switch(num)
{
case 1: printf("Uno");break;
case
2:
printf("Dos");break;
default:
printf("Elija un numero entre 1 y 2");
}

Ing. Biel Bernal

Pgina 20

break; se usa para romper el flujo en un switch-case


2.14.2 SENTENCIAS REPETITIVAS O BUCLES
2.14.2.1 while Ejecuta una instruccin o un bloque de instrucciones cero o
ms veces, dependiendo del valor de la condicin.
Si la condicin se cumple se ejecutan las sentencias del bloque y se regresa
el flujo de control a evaluar nuevamente la condicin. El proceso se repite
hasta que la condicin sea falsa. Su formato es: while(condicin)
{
bloque de instrucciones a ejecutar
}
Ejemplos:
int cont = 1; suma = 0; while(cont
<= 5)
{
cont;
}

suma +=
cont ++;

2.14.2.2 do-while Es similar al ciclo while excepto que la condicin se realiza


al final del ciclo, esto fuerza a que se ejecute por lo menos una vez. Su
formato es:
do
{
bloque de instrucciones a ejecutar
}
while(condicin); Ejemplo:
int cont = 0; suma = 0;
do {
cont++;
suma
+= cont;
}
while(cont <= 5);
2.14.2.3 for Tiene un gran potencial y flexibilidad, y tiene un esquema muy
sencillo y definido. Su esquema es:
for(inicializacin; condicin;
incremento), la definicin de cada una de las partes es la siguiente:
inicializacin: Normalmente es una sentencia de asignacin que se utiliza para iniciar la
variable de control del bucle.
condicin: Es una expresin relacional que determina cuando finaliza el bucle.

Ing. Biel Bernal

Pgina 21

incremento: Define como cambia la variable de control cada vez que se repite el bucle,
incrementa o decrementa segn sea el caso.
Ejemplo:
int i, suma = 0; for(i=1;
i <= 5; i++)
{
i;

suma +=

}
2.15 SECUENCIA DE ESCAPE
Es una serie de caracteres que comienza por el carcter \ seguido de una letra, se
utilizan para especificar acciones como salto de lnea, tabulacin, etc. Tambin se
emplean para proporcionar representaciones literales de caracteres no imprimibles y de
caracteres que normalmente tienen significados, como las comillas dobles ("), etc.
Secuencia de escape
\n
\t
\f
\r
\"

Utilizacin
Nueva lnea
Tabulacin
Salto de pgina
Retorno de carro
Doble comilla

\'

Comilla simple

\b
\a

Retroceso
Sonido audible

Ejemplos: printf("\nProgramacion C");

//salta una lnea y luego

imprime printf("\tGrupo 1IE702-1II707");

//tabula(espacios) y luego

imprime 3 LIBRERIAS Y FUNCIONES EN LENGUAJE C


# include<stdio.h> Contiene las siguiente funciones:
clearerr
fgets
freopen
getchar

fclose
fopen
fscanf
gets

Ing. Biel Bernal

feof
formato
fseek
perror

ferror
fprintf
fsetpos
printf

fflush
fputc
ftell
putc

fgetc
fputs
fwrite
putchar

fgetpos
fread
getc
puts

Pgina 22

remove
rename
rewind
scanf
setbuf
sscanf
tmpfile
tmpnam
ungetc
vfprintf
# include<stdlib.h> Contiene las siguientes funciones:

setybuf
vprintf

sprintf
vsprintf

abort
abs
atexit
atof
atoi
calloc
div
exit
free
getenv
malloc
mblen
mbstowcs
mbtowc
qsort
srand
strtod
strtol
strtoul
system
# include<math.h> Contiene las siguientes funciones:

atol
labs
rand
wctomb

bsearch
ldiv
realloc

acos
asin
atan
atan2
ceil
exp
fabs
floor
fmod
frexp
log10
modf
pow
sin
sinh
tanh
# include<string.h> Contiene las siguientes funciones:

cos
ldexp
sqrt

cosh
log
tan

memchr
strcmp
strmcmp
strxfrm

memcmp
strcoll
strmcpy

memcpy
strcpy
strpbrk

memmove
strcspn
strrchr

memset
strerror
strspn

strcat
strlen
strstr

strchar
strmcat
strtok

# include<conio.h> Contiene las siguientes funciones:


clrscr
textbackground

getche

getch

gotoxy

textcolor

wherey

wherex

# include<dos.h> Contiene la siguiente funcin:


delay
# include<ctype.h> Contiene las siguiente funciones:
tolower

toupper

# include<time.h> Contiene las siguiente funciones:


asctime
strftime

clock
time

Ing. Biel Bernal

ctime

difftime

gmtime

localtime

mktime

Pgina 23

4 CODIGO ASCII
Es un cdigo numrico que representa los caracteres, usando una escala decimal de 0 al
127. Esos nmeros decimales son convertidos por la computadora en nmeros binarios para
ser posteriormente procesados. Por lo tanto, cada una de las letras que escribas va a
corresponder a uno de estos cdigos.
Numero Decimal
Alt + 33
Alt + 34
Alt + 35
Alt + 36
Alt + 37
Alt + 38
Alt + 39
Alt + 40
Alt + 41
Alt + 42
Alt + 43
Alt + 44
Alt + 45
Alt + 46
Alt + 47
Alt + 58
Alt + 59

Carcter
!

#
$
%
&

(
)
*
+
,
.
/
:
;

Numero Decimal
Alt + 60
Alt + 61
Alt + 62
Alt + 63
Alt + 64
Alt + 91
Alt + 92
Alt + 93
Alt + 94
Alt + 95
Alt + 123
Alt + 124
Alt + 125
Alt + 126
Alt + 173
Alt + 174
Alt + 175

Carcter
<
=
>

@
[
\
]
^
_
{
|
}
~

Ejemplos Programacin C
1) Ingresar un nmero por teclado, y que nos diga si es positivo o
negativo.
#include<stdio.h>
#include<conio.h>
void main()
{
int
num;
clrscr();
Ing. Biel Bernal

Pgina 24

printf("Ingresar un numero entero: ");


scanf("%d",&num);
if(num >= 0)
printf("\nEl numero %d es Positivo", num);
else
printf("\nEl numero %d es Negativo",
num);
getch();
}
2) Ingresar un nmero por teclado, y que nos diga si es par o impar.
#include<stdio.h>
#include<stdio.h>
void main()
{
int
num;
clrscr();
printf("Ingresar un numero entero: ");
scanf("%d",&num);
if (num % 2 == 0)
printf("\nEl numero %d es par", num);
else
printf("\nEl
numero
%d
es
impar",
num);
getch();
}
3) Ingresar un nmero e imprimir el da de la semana.
#include<stdio.h>
#include<conio.h>
void main()
{
int
dia;
clrscr();
printf("Ingresar un numero de 1 al 7: ");
scanf("%d",&dia);
switch(dia)
{
case 1: printf("El dia corresponde a Lunes");
case 2: printf("El dia corresponde a Martes");
case 3: printf("El dia corresponde a Miercoles");
case 4: printf("El dia corresponde a Jueves");
case 5: printf("El dia corresponde a Viernes");
case 6: printf("El dia corresponde a Sabado");
case 7: printf("El dia corresponde a Domingo");
default: printf("Error la semana solo tiene 7 dias");
Ing. Biel Bernal

break;
break;
break;
break;
break;
break;
break;
}
Pgina 25

getch();
}
4) Ingresar una letra ya sea (F o f) o (M o m), imprimir si la persona es:
femenina o masculina.
#include<stdio.h>
#include<conio.h>
void main()
{
char
Sex;
clrscr();
printf("Ingresar (F o M) o (f o m): ");
scanf("%c",&Sex);
switch(Sex)
{
case 'F':
case 'f': printf("La persona es Femenina"); break;
case 'M':
case 'm': printf("La persona es Masculina"); break;
default: printf("Solo existe dos generos Femenino o Masculino");
}
getch();
}
5) Imprimir los nmeros pares comprendido entre 0 al 10 y cuantos
pares hay.
#include<stdio.h>
#include<conio.h>
void main() {
int cont = 2, cant = 0;
clrscr();
printf("Impresion
y
Cantidad
de
numeros
pares\n");
while(cant < 5)
{
printf("%d ",cont);
cont += 2;
cant +=
1;
}
printf("\nLa cantidad de numeros pares que hay de 0 a 10
es:
%d",cant);
getch();
}
Ing. Biel Bernal

Pgina 26

Ing. Biel Bernal

Pgina 27