Tema N°2 Lenguaje C Word
Tema N°2 Lenguaje C Word
Tema N°2 Lenguaje C Word
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.
Pgina 1
Pgina 2
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 */
{
}
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
Pgina 5
EJECUTANDO EL PROGRAMA
Pgina 6
SALIDA O RESULTADO
Pgina 7
temp
n_1
edad15
_sexo
num*
sexo edad
ao
if
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;
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
/*
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;
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
Pgina 10
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
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
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
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
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
x =
+n;
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
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
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);
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
//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 +
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
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 { }
sump +=
cont +
MAYSCULA Y MINSCULA EN C
Pgina 19
'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");
}
Pgina 20
suma +=
cont ++;
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
//tabula(espacios) y luego
fclose
fopen
fscanf
gets
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
getche
getch
gotoxy
textcolor
wherey
wherex
toupper
clock
time
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
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
Pgina 27