Historia Del Lenguaje c

HISTORIA DEL LENGUAJE “C” En 1967 Martin Richard creo el lenguaje BCPL que fue la base para la creación del lenguaje B e

Views 83 Downloads 0 File size 570KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

HISTORIA DEL LENGUAJE “C” En 1967 Martin Richard creo el lenguaje BCPL que fue la base para la creación del lenguaje B escrito por Ken Thompson en 1970 con la intención de recodificar el UNIX, que en su fase de arranque estaba codificado en lenguaje ensamblador. El lenguaje c fue creado por Dennis Ritchie en los laboratorios Bell Telephone en 1972, el c fue creado con un fin específico: el diseño del sistema operativo UNIX. Este lenguaje solo es una modificación del lenguaje B. El lenguaje C se llama de esta forma debido a que su predecesor fue llamado B. La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de datos. Los tipos estructurados básicos de C son las estructuras, las uniones, y los arrays. Estos permiten la definición y declaración de tipos de mayor complejidad. Los tipos básicos de datos en el lenguaje C eran "CHAR" (carácter), "INT" (enteros), "FLOAT" (Reales en simple precisión), y "DOUBLE" (Reales en doble Precisión). Posteriormente se añadieron los tipos "SHORT" (Enteros de longitud= longitud de un entero), "UNSIGNED" (Enteros sin signo), y "ENUMERACIONES". Como el C es un lenguaje muy poderoso y flexible su uso se difundió muy rápidamente más allá de los laboratorios Bell. Los programadores de todo el mundo comenzaron a usarlo para escribir todo tipo de programas. Sin embargo, diferentes organizaciones comenzaron a utilizar muy pronto sus propias versiones del C, las pequeñas diferencias entre las implementaciones

comenzaron a dar problemas a los programadores. Para resolver este problema, el American National Stándards (ANSI) formo un comité en 1983 para establecer una definición estándar del C, que llego a ser conocida como C estándar ANSI. Con unas cuantas excepciones, todos los compiladores del C modernos de adhieren a este estándar. El lenguaje C inicialmente fue creado para la programación de : -Sistemas operativos -Intérpretes -Editores -Ensambladores -Compiladores -Administradores de bases de datos. Actualmente, debido a sus características, puede ser utilizado para todo tipo de programas. Algunas de las versiones existentes son: - Quick C - C++ - Turbo C - Turbo C ++ - Borland C - Borland C++ - Microsoft C - Turbo C 2.0 - Turbo C++ 1.0

- Borland C++ 2.0

ESTRUCTURAS DEL LENGUAJE “C” Estructuras. Las estructuras son colecciones de variables relacionadas bajo un nombre. Las estructuras pueden contener variables de muchos tipos diferentes de datos - a diferencia de los arreglos que contienen únicamente elementos de un mismo tipo de datos.

Definición de estructuras Las estructuras son tipos de datos derivados están construidas utilizando objetos de otros tipos. Considere la siguiente definición de estructura: struct ejemplo {char c; int i;}; La palabra reservada struct indica se está definiendo una estructura. El identificador ejemplo es el nombre de la estructura. Las variables declaradas dentro de las llaves de la definición de estructura son los miembros de la estructura. Los miembros de la misma estructura deben tener nombres únicos mientras que dos estructuras diferentes pueden tener miembros con el mismo nombre. Cada definición de estructura debe terminar con un punto y coma. La definición de struct ejemplo contiene un miembro de tipo char y otro de tipo int. Los miembros de una estructura pueden ser variables de los tipos de datos básicos (int, char, float, etc) o agregados como ser arreglos y otras estructuras. Una estructura no puede contener una instancia de sí misma. Declaramos variables del tipo estructura del siguiente modo: struct ejemplo e1, a [10]; o alternativamente sin usar la palabra struct: ejemplo e1, a [10]; Las declaraciones anteriores declaran variables e1 de tipo ejemplo y a de tipo arreglo de ejemplo de dimensión 10. Se pueden declarar variables de tipo estructura ejemplo colocando sus nombres a continuación de la llave de cierre

de la definición de estructura y el punto y coma, en el caso anterior: struct ejemplo {char c; int i;} e1, a [10]; 1 Una operación válida entre estructuras es asignar variables de estructura a variables de estructura del mismo tipo. Las estructuras no pueden compararse entre sí.

Cómo inicializar estructuras Las estructuras pueden ser inicializadas mediante listas de inicialización como con los arreglos. Para inicializar una estructura escriba en la declaración de la variable a continuación del nombre de la variable un signo igual con los inicializadores entre llaves y separados por coma por ejemplo: ejemplo e1 = { ’a’, 10}; Si en la lista aparecen menos inicializadores que en la estructura los miembros restantes son automáticamente inicializados a 0. Las variables de estructura también pueden ser inicializadas en enunciados de asignación asignándoles una variable del mismo tipo o asignándoles valores a los miembros individuales de la estructura. Podemos inicializar una variable del tipo fecha como sigue: struct fecha f = {4, 7, 1776, 186,”Julio”};

Cómo tener acceso a los miembros de estructuras Para tener acceso a miembros de estructuras utilizamos el operador punto. El operador punto se utiliza colocando el nombre de la variable de tipo estructura seguido de un punto y seguido del nombre del miembro de la estructura. Por ejemplo, para imprimir el miembro c de tipo char de la estructura e1 utilizamos el enunciado: printf (” %c, e1.c); Para acceder al miembro i de la estructura e1 escribimos: e1.i En general, un miembro de una estructura particular es referenciada por una construcción de la forma: nombre de estructura. Miembro por ejemplo para chequear el nombre de mes podemos utilizar: if (strcmp (d.nombre mes, “Agosto”) ==0).....

Cómo utilizar estructuras con funciones Las estructuras pueden ser pasadas a funciones pasando miembros de estructura individuales o pasando toda la estructura. Cuando se pasan estructuras o miembros individuales de estructura a una función se pasan por llamada por valor. Para pasar una estructura en llamada por referencia tenemos que colocar el ’*’ o ’&’. Los arreglos de estructura como todos los demás arreglos son automáticamente pasados en llamadas por referencia. Si quisiéramos pasar un arreglo en llamada por valor, podemos definir una estructura con ´único miembro el array. Una función puede devolver una estructura como valor.

Estructuras Condicionales Las estructuras condicionales en C utilizan el concepto expresiones booleanas. A continuación se muestra un sencillo ejemplo en lenguaje C del uso de estructuras condicionales #include int main () { int valor; printf ("Digite un valor entero:"); scanf ("%d", &valor); if (valor < 0) printf ("\nEl valor es negativo\n"); return 0; }

Este programa lee un número entero digitado por el usuario. Luego el programa prueba el valor usando una estructura condicional simple para verificar si el número es negativo. Sí lo es, el programa imprime el mensaje: "El valor es negativo". En otro caso, el programa no hace nada. El (b < 0) es la parte de la estructura condicional que se denomina Expresión Booleana. C evalúa (determina si es cierta o falsa) para decidir cuando imprimir o no imprimir el mensaje. Si la expresión booleana se evalúa a verdadero (True), entonces C ejecuta el bloque de instrucciones (dentro de llaves {}) o la instrucción que sigue a la estructura condicional. Sí la expresión booleana es falsa (False), entonces C salta el bloque de instrucciones o la instrucción que sigue a la estructura condicional. A continuación se muestra un ejemplo un poco más complejo: #include

int main() { int valor; printf("Enter a value:"); scanf("%d", &valor); if (valor < 0) printf("\nEl valor es negativo\n"); else if (valor == 0) printf("\nEl valor es cero\n"); else printf("\nEl valor es positivo\n"); retiran 0; }

En Este ejemplo, la estructura condicional después de la primera aparición de else: if(valor == 0) evalúa por un valor de cero y si es cierto C imprimirá el mensaje "El valor es cero", el segundo else corresponde a la ocurrencia de un valor positivo, en este caso no se evalúan más condiciones debido a que luego de haber evaluado las dos expresiones booleanas, solo queda la opción de que el valor sea positivo y por lo tanto no es necesario evaluar algo como if (valor>0).

Booleanos en lenguaje C: Operadores Los operadores booleanos son los que debemos utilizar en lenguaje C para construir expresiones booleanas, que determinarán la ejecución de algunas partes del programa. A continuación se listan los principales operadores booleanos utilizados en el lenguaje C: Igualdad:

==

Mayor o igual que: >=

Mayor que:

>

Menor o igual que: