Lenguaje de Programación C

Introducción
El lenguaje de programación c fue creado en el año de 1972 por Dennis M. Ritchie y Brian Kernighan como una evolución del antiguo lenguaje B, y para escribir el código del sistema operativo unix. El desarrollo inicial de C se llevo a cabo en los laboratorios Bell de AT&T se le dio el nombre de c por que muchas de sus características fueron tomadas de su antecesor B. A menudo el lenguaje de programación C es también llamado el lenguaje de los sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aun que de igual manera se puede desarrollar cualquier tipo de aplicación. Es un lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones optimas, es el lenguaje mas portado en existencia, habiendo compiladores para casi todos los sistemas conocidos.

Proceso de compilación en c
La compilación de un programa C se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo: Preprocesado consistente en modificar el código fuente en C según una serie de instrucciones (denominadas directivas de preprocesado) simplificando de esta forma el trabajo del compilador. Por ejemplo, una de las acciones más importantes es la modificación de las inclusiones (#include) por las declaraciones reales existentes en el archivo indicado. Compilación que genera el código objeto a partir del código ya preprocesado. Enlazado que une los códigos objeto de los distintos módulos y bibliotecas externas (como las bibliotecas del sistema) para generar el programa ejecutable final.
Diseño de Algoritmos y su programación I: Lenguaje de Programación C 1

} dependiendo con el IDE y del compilador la estructura de la sintaxis cambia. El Lenguaje C consta de 32 palabras clave nativas que no pueden ser utilizadas como nombres de variables ni de funciones. Los comentarios en el Lenguaje C se pueden realizar con // que comenta una linea entera de código y con /* */ para bloques de código. la lista es la siguiente: 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 2 Diseño de Algoritmos y su programación I: Lenguaje de Programación C . void main(void){ } // importación de librerías. int main (void){ return 1 .Lenguaje de Programacion C Estructura de un Programa en C La estructura de un programa en c es la siguiente: // importación de librerías.

y han de declarar del tipo adecuado a los valores que van a contener. Hay que declarar las variables antes de usarlas. Números en coma flotante (números reales) Números en coma flotante de doble precisión.z. o declarar varias variables en una misma declaración. las variables en c se declaran de la siguiente manera.Lenguaje de Programacion C Las palabras clave deben escribirse siempre en minúsculas. Enteros (números enteros positivos y negativos) caracteres (letras). también las variables se pueden inicializar al declararlas. int calif.y. int calif=7. Declaración de Variables Las variables son espacios reservados en memoria y se utilizan para guardar datos dentro del programa. Se emplea con punteros (vacío).x. El lenguaje diferencia de mayúsculas y minúsculas: else es una palabra reservada ELSE no lo es. Tipos de Datos en C Los datos en el lenguaje C deben de tener un tipo. Las variables y las constantes contienen datos. Diseño de Algoritmos y su programación I: Lenguaje de Programación C 3 . <tipo de dato> <nombre de la variable> . int calif. Las funciones exit() y EXIT() son distintas. Tipo de Dato int char float double void Datos que almacenan.

localtime. Toda variable debe ser declarada antes de su uso.. log. 4 Diseño de Algoritmos y su programación I: Lenguaje de Programación C .. exp. tan. log. clock..h Funciones cos. printf. sin. Debe tenerse en cuenta que habitualmente en c todas las variables contiene valores indeterminados tras su declaración por eso se recomienda inicializar las variables. Librerías en el Lenguaje C El lenguaje de programación C se apoya en funciones que están contenidas en librerías o bibliotecas y proveen de características que el lenguaje de manera nativa no posee.Lenguaje de Programacion C Las variables globales se declaran antes del main().1416. rename. strftime. remove. fprintf. modf.h time. ctime. scanf. asctime.h stdio. feof.. const int pi=3. “_”) o números. pow.. Los nombres de las variables en C pueden contener cualquier numero de letras (se incluye el guión bajo. time. gmtime..sqrt. fclose. modf. Las bibliotecas en C se declaran en la parte mas alta del programa fuera del main() su estructura es la siguiente: #include<(nombre de la librería)> #include <stdio. fmod. fopen.h> Libreria math. pero el primer carácter debe de ser una letra necesariamente(o el guión bajo). Constantes Las constantes nos sirven para conservar un valor durante la ejecución de un programa las constantes en C se declaran de igual manera que una variable solo que anteponiendo la palabra const.

printf(“La calificación final es: %d”.. signal tolower.h Funciones abs. scanf(“%i”. system... atexit.h y graphics.Lenguaje de Programacion C Libreria stdlib. memchr.h.com/c.librerias. abort.h signal. Scanf.Imprime una cadena de caracteres (es la salida estándar). strlen. strcoll. div.&cal). strstr.h: Printf.h locale. strcat. setlocale raise.. memmove. toupper Ademas existen muchas mas librerías como las librerías borland conio. labs.h string.cal). localeconv.html Entrada y Salida de información Para fines prácticos solo utilizaremos para entradas y salidas (read y write) de datos con las siguientes funciones de la librería stdio. free. http://docs. Diseño de Algoritmos y su programación I: Lenguaje de Programación C 5 .mis-algoritmos. exit.Es el proceso de lectura estándar desde teclado. rand.. strtok. La forma de imprimir variables es la siguiente: suponiendo una variable de tipo int con valor de 7 siendo una calificación para imprimirla seria: int cal=7.h ctype. printf(“Hola mundo”)..

else <instrucción>. } En forma de else if: if(expresión) instrucción. En forma de if anidados es: if(expresión){ }else{ if(expresión)<instrucción>. ademas el operador ? es una alternativa para if en ciertas situaciones.Lenguaje de Programacion C Estructuras Selectivas en C Las estructuras selectivas en el lenguaje de programación C contempla dos instrucciones de selección: if y switch. else<instrucción>. el símbolo ? se utiliza en forma simple para avaluar una condición con una variable y realizar una acción con esa variable un ejemplo seria: Diseño de Algoritmos y su programación I: Lenguaje de Programación C 6 . else instrucción. else if(expresión)instrucción. IF La forma general de la instrucción if es: if(expresión) <instrucción>.

case 3: printf("\n opción 3"). int y=0. if(x>9) y=100. else y=200. Estructura Switch En la estructura selectiva switch se elige entre varios casos predefinidos por el programador. y=x>9 ? 100 : 200. break. ademas se puede establecer una opción por defecto si es que no se cumplen ninguna de las opciones o condiciones predeterminadas. switch (x){ case 1: printf("\n opción").Lenguaje de Programacion C int x=10. } Estructura Repetitiva While Diseño de Algoritmos y su programación I: Lenguaje de Programación C 7 . break. default: printf(" \n Si no es ninguna de las anteriores"). break. y en su forma con ? int x=10. int y=0. case 2: printf(" \n opción").

sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute unas instrucción ya sea simple o compuesta.Lenguaje de Programacion C En las estructuras repetitivas en este caso particular el while se evalúa una condición de salida y si esta es verdadera ejecutara las sentencias que se encuentran contenidas entre las llaves while(condición){ //instrucciones a ejecutar } En los bucles while se deben de cuidar las instrucciones de salida para evitar que el bucle se cicle. Estructura Repetitiva Do La estructura repetitiva do a diferencia de su similar el while evalúa la condición después de ejecutar una vez las sentencias que se encuentran dentro del ciclo. Estructura Repetitiva For Dentro de los bucles repetitivos uno de los mas usados para repetir una secuencia de instrucciones. es decir las instrucciones se ejecutan cuando menos una vez por que primero ejecuta las instrucciones y al final evalúa la condición.condición. incremento ){ //instrucciones a ejecutar } Estructuras de datos: Arreglos Para poder representar datos hay veces en que las variables no son suficiente. do{ /*sentencias a ejecutar*/ }while(condición). for(inicialización de la variable de control. Para estos casos utilizamos una herramienta llamada Diseño de Algoritmos y su programación I: Lenguaje de Programación C 8 .

float sueldo[13]. Las estructuras de datos mas comunes que existen en el lenguaje de programación C son los arreglos unidimencionales(arrays). uno para controlar los renglones y otro para controlar las columnas.Lenguaje de Programacion C estructura de datos en la que podemos representar datos de diferentes maneras. Para la manipulación de los arreglos se aconseja el uso de los ciclos de repetición. y se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones. Se puede pensar en un vector como en la división del espacio de una variable en cuantas partes se le asigne. como red. tablas o matrices. etc. vectores o listas. La manera de declarar una lista en C en la siguiente: Tipo_de_dato Nombre_del_arreglo[Cantidad de elementos]. por ejemplo: int edades[10]. como lista. Por ejemplo las posiciones de una matriz de 4 X 3: Diseño de Algoritmos y su programación I: Lenguaje de Programación C 9 . Estructuras de Datos: Matrices Un tipo de estructura ya mas compleja son los denominados arreglos bidimencionales. Usualmente para poder procesar internamente todos los elementos de la tabla se ocupan dos ciclos for. Hay que recordar que la primera posición o renglón en una lista es la posición o renglón cero. Un arreglo es un conjunto de posiciones de memoria adyacentes. como árbol. char carreras[10]. en los cuales se almacena información del mismo tipo.

1) (2 . 2) La declaración de una tabla seria de acuerdo al siguiente formato: Tipo_de_dato Nombre_de_la_tabla [Renglones][Columnas]. 2) (2 . 2) (1 . Diseño de Algoritmos y su programación I: Lenguaje de Programación C 10 . 0) (2 .Lenguaje de Programacion C (0 . 1)) (3 . como por ejemplo: int cal[3][4]. Ademas de estos tipos de Estructuras de Datos pueden existir arreglos de múltiples dimensiones ya sea a criterio del que lo este programando. 0) (0 . 0) (1 . 1) (0 . 2) (3 . 1) (1 . 0) (3 .

float suma=0. Diseño de Algoritmos y su programación I: Lenguaje de Programación C 11 . j++) { nogalera[i][j]=(rand()%10).i=0.i<10. int j=0. e) el promedio de las alturas de todos los nogales* f) la cantidad de nogales que superan el promedio de altura* */ srand((unsigned)time(NULL)). * c) la cantidad de arboles secos que hay en la parcela* d) la suma de todas las alturas de la diagonal principal.secos=0.altos=0. //al ser 100 nogales es un arreglo bidimencional de 10 X 10 int nogalera[10][10].h> #include<time.i++){ for (j = 0.alto=0.Lenguaje de Programacion C #include <stdio.dp=0. printf("\n"). j <10.h> void main (void){ /* el dueño de una nogalera tiene registrado la altura de cada uno de sus nogales k van de 0 a 9 la altura 0 el arbol esta seco y desea conocer lo siguiente 100 nogales a) cual es la altura del arbol mas alto* b) las pociciones donde ese encuentran los arboles de dicha altura. for(i=0.

if(nogalera[i][j]>alto){ alto=nogalera[i][j].Lenguaje de Programacion C printf(" %i ". i <10. j<10.j++){ if(nogalera[i][j]==alto){ Diseño de Algoritmos y su programación I: Lenguaje de Programación C 12 .(nogalera[i][j])). \n"). printf("\n A) La altura del arbol mas alto es %d \n". i++){ for(j=0. } if(nogalera[i][j]==0){ secos++. } } printf("\n"). printf(" B) Las pociciones donde ese encuentran los arboles de dicha altura. suma=suma+nogalera[i][j]. } suma=(suma/100). for(i = 0.alto).

dp). i <10. %i \n". for(i=0. } if(nogalera[i][j]>suma){ altos++. } printf("\n D) La suma de la Diagonal Principal es %d".Lenguaje de Programacion C printf(" %i .suma). } } } printf("\n C)La cantidad de arboles secos que hay en la parcela es %d". /* for(i = 0. i++){ Diseño de Algoritmos y su programación I: Lenguaje de Programación C 13 .i. printf("\n E) El promedio de las alturas de todos los nogales es %f". printf(" \n F) La cantidad de nogales que superan el promedio de altura es %d \n".i++){ dp=dp+nogalera[i][j].secos).altos).j).i<10.

i). j<10.(nogalera[i][j])). }*/ } Diseño de Algoritmos y su programación I: Lenguaje de Programación C 14 .j).j++){ //printf(" %i ". printf("%i ". } printf("\n").Lenguaje de Programacion C for(j=0. printf("%i".