CONCEPTOS DEL  LENGUAJE C Y TIPOS DE DATOS:
 
 
 
El lenguaje C fue desarrollado por Dennis
Ritchie en los Laboratorios Bell en 1972 e implementado sobre un DEC PDP-11
utilizando el sistema operativo UNIX. La idea inicial era crear un lenguaje de
propósito general que facilitara la programación y la realización de muchas de
las tareas anteriormente reservadas al lenguaje ensamblador.
 
En 1980 el Dr. Bjarne Stroustrup de los laboratorios AT¬T Bell comienza el desarrollo del denominado en aquella época “C con clases” , apareciendo en 1986 como resultado de dicho trabajo el lenguaje de programación C++ que surge como acoplamiento al C de muchas de las características de la denominada POO (programación orientada a objetos). C++ es un lenguaje muy potente, flexible y eficaz frente al resto de los lenguajes orientados a objetos, características que han hecho que se le considere como lenguaje estandar dentro de la programación orientada a objetos.
 
CARACTERÍSTICAS DEL LENGUAJE C
 
El lenguaje C ha sido utilizado para el desarrollo de infinidad de herramientas de trabajo (sistemas operativos, compiladores, procesadores de texto, bases de datos, etc.). Mientras que otros lenguajes de programación se caracterizan por ser utilizados en áreas más concretas:
Fortran ámbito Científico
Pascal soporte a la enseñanza
COBOL gestión
 
El C se caracteriza por no tener ninguna connotación sectorial; dicho de otra forma es un lenguaje de propósito general.
La ventaja más destacable es la transportabilidad o portabilidad, es decir, la posibilidad de utilizarlo tanto en macroordenadores como en mini y microordenadores.
 
Ventajas del lenguaje C:
· Es un lenguaje muy flexible
· Muy apropiado para controlar rutinas hechas en ensamblador
· Permite general programas de fácil modificación
· Lenguaje predominante bajo cualquier máquina UNIX
· Muy veloz y potente, lo que permite un software efectivo
· Posibilita una programación estructurada o modular
· Produce programas de código compacto y eficiente
· Características de Alto nivel que conserva características de bajo nivel, por lo que se puede clasificar como lenguaje de bajo-medio nivel.
· Es un lenguaje compilado
· El código fuente se escribe mayoritariamente en minúsculas
 
Algunas desventajas:
 
· No dispone de editor propio
· Se requiere más tiempo en conseguir el ejecutable, porque cada vez compila todo el fichero.
· La modularidad en C tiende a incrementar el tiempo de compilación
· Poco legible y eminentemente críptico
 
TIPOS DE
DATOS
 
Básicos:
-
Numéricos:
· Entero          palabra clave               int
      · Real              precisión
simple           float
precisión doble double
-
Carácter:                                                    char
- Vacio:                                                          void
 
            Derivados:     Puntero                                              
 
            Estructurados:
-        
Complejos 
· Estáticos Tabla
- Dinámicos Lista
Pila
Cola
Árbol
Grafo
- Compuestos. Estructura
§ Unión
§ Enumeración
§ Campos de Bit
 
 
Definidos
por el Usuario                                          Typedef
 
 
 
IDENTIFICADORES
 
Los identificadores son nombres de referencia a constantes , variables, , estructuras de datos, funciones que se pueden aplicar.
Se pueden utilizar palabras clave excepto las 32 siguientes que están reservadas para el lenguaje C estadar:
 
Auto    break   case     char     const    continue           default  do
Double else      enum    extern   float     for        goto     if          int
Long    register return   short signed      sizeof   static    struct
Switch  typedef union    unsigned           void     volatile while.
 
DEFINICIÓN DE LAS VARIABLES
 
<clase_almacenamiento>
<modificador_tipo> Tipo_dato Nombre_variable
 
Ej 1:    static long int cantidad;
Int importe, suma, total, media;
Char letra, carac = ’A’;
Flota precio = 500;
 
MODIFICADORES DE ACCESO
 
Modificador const
 
Especifica que una variable no se puede modificar en tiempo de ejecución:
 
            Ej:        
const int porcent=5;
Precio = base *( 1 + porcent/100);
                        Porcent
= 3;
 
Modificador ‘volatile’
Indica al compilador qu el valor de la variable puede ser modificado de forma no especificada en el programa. Esto sucede cuando la dirección de memoria de una variable es pasada a rutinas del sistema que puedan modificarla.
 
Ej: volatile flota data;
Const volatile flota data;
 
TIPOS DE DATOS BÁSICOS:
 
 Entero             int
Para procesadores de 16 bits rango: -32768 a 32767
Para procesadores de 32 bits rango: -2147483648 a 2147483647
 
Definición:         int num, conmutador, indicador;
 
Modificadores.
short, long, signed, unsigned
 
Short: la longitud es de 16 bits,
sea cual sea el procesador
Long: la longitud es la máxima
asignada por el procesador 16, o 32 bits
Signed: son valores con signo por
tanto tendrá valores negativos y positivos
Unsigned: son valores con signo
positivo por tanto irá desde 0 a 4294967295;
Real                 float
 
Se define como numero real de coma flotante de simple precisión.
 
El Rango de precisión para el float simple –3,4E-38 a 3,4E38
El rango de precisión para el flota doble -1,7E-308 1,7E308
 
Definición:         float num;
double conmutador;
 
 
Carácter          char
 
Los códigos de carácter más utilizados son los de 8 bits (ASCII) y pueden expresar letras o el valor numérico almacenado.
 
El rango de valores numéricos para el signed char –127 a 128
El rango de valores numéricos para el unsigned char 0 a 256
 
Utilizando símbolos especiales en las secuencias de escape los más utilizados son:
 
\a pitido
\b retroceso
\n nueva linea
\r retorno de carro
\t tabulador horizontal
\’ comilla simple
\” comilla doble
\0 nulo
 
 
Vacio               void
 
Tipo de dato que no retorna ningún valor
 
Void *apunt;; puntero
Void Escribe_puntos(35); función que no retorna ningún valor
Int Verificar_Error(void); función que devuelve un entero pero que no necesita parámetros.
 
 
OPERADORES:
Són símbolos que en C tienen un significado determinado y que indican al procesador que tiene que hacer una operación determinada.
 
Operadores de Expresión:
 
Paréntesis ( )
1- Determinan la máxima prioridad en la expresión, comenzando por los internos
2- Para encerrar los parámetros de una función
 
Corchetes [ ]
            1
Encierran los índices de tablas.
 
Operadores Aritméticos:
 
Monarios, necesitan un solo valor
            Signo
negativo  -
            Incremento                  ++
            Decremento                 --
Binarios, necesitan dos valores
            Suma                           +
            Resta                           -
            Multiplicación              *
            División                       /
            Módulo                       %
 
Operadores Relacionales y Lógicos:
 
Relacionales:
            Menor que                   <
            Menor o igual que        <=
            Mayor que                   >
            Mayor o igual que        >=
            Igual a              ==
            Distinto                        !=
 
No confundir este operador == con el operador asignación =
 
Lógicos:
            Conjunción Y              &&
            Disyunción O               ||
            Negación                     !
 
Operadores Para tratamiento de Bits:
Se utilizan
para realizar operaciones a nivel de bit, y los operandos deben ser de tipo
char o int.
            Y (AND) Binario         &
            O(OR) Binario |
            O Exclusivo XOR        ^(ASCII 94)
            Complemento Not       ~(ASCII126)
            Desplaz. Derecha         >>
            Desplaz. Izquierda       <<
 
Operadores de Asignación:
Se utilizan
para cargar una variable con el valor de expresión. Pueden ser de dos tipos,
simple o compuesto.
 
Asignación Simple:
            Variable = Expresión:               media = suma / num;
            Variable
simbolo_operación = Expresión
            
Esta asignación es equivalente a: 
            Variable = Variable
Simbolo_operación (expresión)
 
Operadores coma:
 
 Se utiliza para separar dos expresiones
dentro de una expresión total.
1-    
para realizar una asignación de una expresión, que previamente requiere
otra expresión     a=(b=5,b+2);    equivale a b=5;      a= b+2
2-    
Para realizar varias operaciones dentro de la condición de un bucle.
For (i=0, k=15, i<k; k--)
 
Operador tamaño:
 
 Se utiliza para obtener la longitud en bytes
de una variable o de un especificador de dato.
Sizeof(int)
Obtiene la longitud de un tipo de datos.
 
Sizeof permite
obtener la longitud de una estructura sin necesidad de sumar las longitudes de
cada una de las variables
 
            Struct datos {int num; char
nom[40];float abono;}socio;
 
            Sizeof socio
 
Operador de molde
Se utiliza para convertir un tipo de dato en una expresión.:
 
(Tipo) Operando
 
float a = 9,25;
b= (int) a / 2;
 
Operador condicional:
 
Se utiliza para
realizar una operación alternativa mediante una condición. 
 
Expresión1 ? expresión2 : expresión3;
 
Se evalua la expresión 1 si el resultado es verdadeero se evalua la
expresión 2 y su resultado se toma como resultado de la expresión total, por el
contrario si el resultado es falso se ejecuta la expresión 3.
 
Result = (a>b) ? a : b;
 
Es equivalente a : If (a >b ) result = a;  else result = b;