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;