CONCEPTOS DEL  LENGUAJE C Y TIPOS DE DATOS:

 

 

EVOLUCIÓN DEL LENGUAJE C

 

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;

Asignación Compuesto

            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;