C en Unit
C en Unit
ESTRUCTURA DE UN PROGRAMA EN C
En C, los comandos deben ser escritos con letras minusculas.En el caso de las
variables o las funciones definidas por el usuario la declaraci�n es semejante.
TIPOS Y OPERADORES
TIPO
TAMA�O EN BITS
RANGO
char
8
-127 a 127
unsigned char
8
0 a 255
signed char
8
-127 a 127
int
16
-32767 a 32767
unsigned int
16
0 a 65537
signed int
16
-32767 a 32767
long int
32
-2147483647 a 2147483647
float
32
Seis d�gitos de precisi�n
double
64
Diez digitos de precisis�n
Operador
Acci�n
-
Resta
+
Suma
*
Multiplicaci�n
%
M�dulo
--
Decremento
++
Incremento
OPERADORES RELACIONALES Y L�GICOS
Operador
Acci�n
>
Mayor que
>=
Mayor o igual que
<
Menor que
<=
Menor o igual que
= =
Igual
!=
Distinto
Operador
Acci�n
&
Y
|
O
^
O exclusiva
~
Complemento a uno
>>
Desplazamiento a la derecha
<<
desplazamiento a la izquierda
Funciones
--------------------------------------------------------------------------------
Ejemplos de Programas
Como nos habremos dado cuenta, los dos progrmas anteriores usan sentencias de
control simples, y que no requieren de una explicaci�n minusiosa, sin embargo se
habra observado que cuando se termina de usar una sentencia de control se pone
entre comentarios Enf if, End while, el uso de estos comentarios nos permite
observar con mayor detenimiento en donde van termiando cada uno de los modulos y
nos permiten detectar con mayor facilidad los errores cometidos, sin embargo, paro
no estar usando los comentarios y mejorar el aspecto estetico de la edici�n, lo que
podemos hacer es crear nuestro propio archivo de encabezados, para aplicarlos en
futuros programas.
--------------------------------------------------------------------------------
Archivo de Encabezado
#define endif
#define enwhile
#define endcase
--------------------------------------------------------------------------------
#include<stdio.h>
#include "a:ends.h" /*Aqui llamamos a nuestro archivo */
main()
{
unsigned int num,masc;
char resp;
clrscr();
do{
masc=(1<<(sizeof(int))*8-1);
printf("DAME UN NUMERO: ");
scanf("%ud",&num);
while(masc){ /*Se define una variable bandera, se enciende cuando es diferente de
cero */
if((num&masc)!=0)
printf("1");
else
printf("0");
Endif
masc=masc>>1;
}Endwhile
printf("\nOTRA VEZ? (S/N)");
while((resp=getchar())=='\n')
;
}while(resp=='s'|| resp=='S');
--------------------------------------------------------------------------------
Para la realizacion de este programa cabe aclarar que, entre otras cosas se tiene
que declarar a la variable fact como unsignet int, ya que no existe el factorial de
un numero negativo y que no sea entero, existen tres posibles caosos en los que
podria caer el numero que introduscamos, el primero que fuera < 0, por lo que el
facrorial no existe, el segundo cuando = 0, por lo que el factorial seria 1, y por
ultimo el caso en que >1, en este se puede observar que se hace uso de un ciclo
while, en donde se ira decrementado el valor de la variable que se introdujo y a su
ves se ira multiplicando elvalor decrementado, hasta que n sea cero
.
--------------------------------------------------------------------------------
#include<stdio.h>
void main()
{
int n,cont;
unsigned int fact;
printf("\n\n\tDame el valor de n");
scanf("%d",&n);
cont=n;
if (cont<0)
printf("El factorial no existe");
else if (cont==0)
printf("EL factorial es 1");
else
{ fact=1;
while(cont>0)
{
fact=fact*cont;
cont=cont-1;
}/*End while*/
printf("El factorial de %d es %d",n,fact);>br> }
}/*End if*/
}
Es este tipo de programa selo presento la funci�n, esta debe de ser llamada como en
el anterior ejemplo, declarando los prototipos en ENDS.H o antes del MAIN.
#include "a:ends.h"
Comparaci�n de Cadenas
En este programa se husan los famosos arreglos, ya que una palabra es una cadena de
caracteres, es un programa sencillo que ayudara al entendimiento de arreglos.
include "a:ends.h"
int compcad(char *cadena1,char *cadena2); /*Se declara el prototipo de la funci�n*/
main()
{
char cad1[32],cad2[32];
int valor;
clrscr();
puts("\nDAME LA CADENA 1:"); /*O tambien printf("%s","DAME CAD1");*/
gets(cad1);
puts("\nDAME CADENA 2:");
gets(cad2); /*inserta el caracter nulo la funcion gets*/
valor=compcad(cad1,cad2); /*Se llama a la funci�n*/
if(valor>0)
printf("\nCADENA 1 ES MAYOR A CADENA 2");
else if(valor == 0)
printf("\nLAS CADENAS SON IGUALES");
else
printf("\nCADENA 2 ES MAYOR A CADENA 1");
Endif
}
int compcad(char *cadena1,char *cadena2){
int i=0,dif;
while(!(dif=cadena1[i]-cadena2[i]) && cadena1[i] && cadena2[i])
i++;
if(dif>0)
return(1);
else if(dif==0)
return(0);
else
return(-1);
Endif
}