| Versión 3.0 |
| 800x600 mínimo |
|
En esta lección: Introducción ----- Elementos básicos ----- Visualización numérica ----- Comentarios ----- Otras secciones: Conceptos básicos ----- Programando en C ----- Programando en C++ ----- Programando Windows 9x. ----- Teoría electrónica ----- Circuitos electrónicos ----- Actividades adicionales ----- Hipervínculos ----- Contácteme: Dudas y comentarios ----- |
IntroducciónPara iniciar este curso de programación es necesario establecer unas cuantas bases útiles que se aplicarán a lo largo de todos los temas tratados. En primer lugar veamos como nombrar un identificador, éste es utilizado por cualquier variable, función, definición de datos, etc. En C, un identificador es una combinación de caracteres siendo el primero una letra del alfabeto o un símbolo de subrayado y el resto cualquier letra del alfabeto, cualquier dígito numérico ó símbolo de subrayado. Dos reglas debemos tener en mente cuando les demos nombre a los identificadores:
Un elemento importante es el símbolo de subrayado que puede utilizarse como parte del nombre de una variable, contribuyendo notablemente a la legibilidad del código resultante. Es utilizado por algunos, pero no por todos los programadores C experimentados. Algunos subrayados serán utilizados en este curso a manera de ilustración. Debido a que una gran parte de los escritores de compiladores utilizan el subrayado como primer carácter para los nombres de variables internas de sistema, es aconsejable evitar el uso del subrayado para iniciar un identificador y así evitar la posibilidad de una confusión de nombres en la etapa de compilación, más específico, los identificadores con doble subrayado están reservados para uso del compilador así como los identificadores que empiezan con un subrayado seguido de una letra mayúscula. Esto es importante, respetar ésta sencilla regla nos evitará depurar errores innecesarios. La legibilidad de un programa se incrementa notablemente al utilizar nombres descriptivos para las variables y esto puede ser ventajoso para Usted. Programadores de Pascal y Ada tienden a utilizar nombres descriptivos largos, pero la mayoría de los programadores C por lo general utilizan nombres cortos y crípticos. Por esta razón la mayoría de los programas de ejemplo de este curso utilizan nombres muy cortos, pero se usan algunos nombres largos a manera de ilustración. Sin embargo insistimos en la importancia de utilizar nombres descriptivos que a su vez eviten comentarios redundantes. Palabras claveEl estándar ANSI-C define un total de 32 palabras clave que están reservadas para uso exclusivo del compilador C. El tutorial de C está organizado de tal manera que se estudian la totalidad de las 32 palabras clave definidas por el estándar ANSI-C, ésta guía dá una definición breve de cada palabra e incluye en caso necesario un hipervínculo hacia la lección que trata dicha palabra. Diversos fabricantes de compiladores C suelen incluir una cantidad variable de palabras reservadas para sus propios compiladores, sin embargo éstas palabras reservadas no están soportadas por el estándar ANSI-C y por lo tanto no se tratan en éste sitio. Podemos clasificar las palabras clave del ANSI-C de acuerdo a su función, en primer lugar están las palabras que definen un tipo específico de dato:
Otro conjunto de palabras clave nos sirve para especificar instrucciones propias de C con carácter de control del flujo de datos:
El siguiente conjunto de palabras clave designa una serie de instrucciones que implementan diversas construcciones útiles en C
Adicionalmente su compilador puede definir algunas palabras clave, mismas que estarán enlistadas en la documentación del mismo. Cada una de las palabras clave arriba mencionadas serán definidas, ilustradas y utilizadas a lo largo de este curso. Datos y programa.Todo programa de computadora tiene dos entidades a considerar: los datos, y el programa en sí. Estos son altamente dependientes uno del otro y una cuidadosa planeación de ambos conducirá a un programa bien escrito. Desgraciadamente no es posible estudiar cualquiera de estos sin un conocimiento en la otra parte, por ésta razón éste curso tratará de mostrar tanto métodos de escritura de programas como métodos de definición de datos. Simplemente siga adelante y Usted tendrá un buen conocimiento de ambos. Conforme avance por los programas de ejemplo encontrará que cada uno está completo, por lo que no hay fragmentos que resulten confusos, esto le permitirá ver cada requerimiento necesario para utilizar cualquiera de las características de C conforme se vayan presentando. A lo largo de este curso, las palabras clave, los nombres de variables y los nombres de funciones estarán escritas en negrita y todas ellas serán completamente definidas a lo largo de este curso. Cada código presentado en este tutorial ha sido probado utilizando Symantec C++ version 7.5. El resultado de la ejecución de cada programa lo mostramos con una imagen capturada directamente del monitor al momento en que probamos el respectivo código, en otros casos mostraremos el resultado en forma de comentario al final del código fuente una vez que demos la definición de comentario mas adelante. Si Usted piensa que entiende completamente el programa, puede consultar simplemente el resultado de la ejecución, en este caso no es necesario compilar y ejecutar cada programa, sin embargo es aconsejable la compilación de algunos de los programas debido a que diferentes compiladores no producen exactamente los mismos resultados y es necesario que Usted se familiarice con su propio compilador. Además es posible seleccionar el código directamente del navegador, copiarlo y pegarlo en el editor de texto del compilador que Usted utilice. Para probar que su compilador C esté funcionando adecuadamente compile y ejecute el siguiente programa:
No se preocupe si no entiende que hace este programa, a su debido tiempo lo entenderá completamente. Elementos básicos de un programa CEl siguiente código representa el programa mas simple en C:
La palabra main es muy importante y debe aparecer solo una vez en todo programa C. Este es el punto donde inicia la ejecución del programa. Posteriormente veremos que no necesariamente debe ser el primer enunciado del código. Siguiendo a la palabra main esta un par de paréntesis que le indican al compilador la existencia de una función, la explicación de qué es una función la veremos a su debido tiempo, por lo pronto es recomendable simplemente incluir los paréntesis. Las llaves que siguen en las líneas 2 y 3 se utilizan para definir los límites del programa. Los diferentes enunciados del programa van colocados dentro de estas llaves. El código que actualmente estamos estudiando representa un programa que no hace absolutamente nada y por lo tanto no tiene ningún enunciado ejecutable, sin embargo es posible compilar y correr este programa, lo importante es que se trata de un programa C válido. Veamos ahora un código mas interesante:
Este código incluye un enunciado ejecutable además del enunciado obligatorio return. El enunciado ejecutable es una llamada a una función incluida como parte de su librería C, la función se llama printf ( ) y esta definida en el archivo de cabecera stdio.h. Esta función despliega texto en el monitor, para tal fin es necesario colocar la cadena de texto que deseamos mostrar en el monitor entre comillas y dentro del paréntesis que sigue a la palabra printf. Observe que al final del enunciado se ha puesto el símbolo de punto y coma. C utiliza el punto y coma para indicarle al compilador que una línea ejecutable está completa. Al compilar y correr este programa usted verá en la pantalla del monitor la cadena de texto especificada. Los enunciados de las líneas 1 y 6 así como el uso de la palabra int serán explicados mas adelante, mientras es importante ver algunos conceptos básicos adicionales que le presento en el siguiente código:
Observe que ahora están incluidos cuatro enunciados ejecutables cada uno iniciando con una llamada a la función printf ( ), la línea superior será ejecutada en primer lugar seguidas de las otras tres líneas ejecutables en el orden en que aparecen, note el carácter cercano al fin de la primera línea ejecutable, la diagonal invertida ( \ ) conocida en inglés como backslash, es utilizada en la función printf ( ) para indicar que sigue un carácter especial de control. En este caso, la "n" indica la petición de una nueva línea de texto, es una indicación para regresar el cursor al lado izquierdo del monitor y a la vez moverlo una línea abajo. Usted puede colocar un carácter "n" en cualquier parte del texto impreso e iniciar una nueva línea, incluso en la mitad de una palabra y de esta manera dividir la palabra entre dos líneas. Ahora es posible una descripción detallada del programa. La primera función printf ( ) despliega una línea de texto y regresa el cursor. La segunda printf ( ) despliega otra línea de texto pero sin regresar el cursor, de tal manera que la tercera línea aparece al final de la segunda, entonces, le siguen dos retornos de cursor dando como resultado un espacio en blanco. Finalmente la cuarta instrucción printf ( ) despliega una nueva línea de texto seguida por el retorno del cursor, finalizando el programa. Esta sería la salida mostrada en su monitor:
Es buena idea experimentar con este programa agregando instrucciones printf ( ) para asegurarnos de entender como trabaja esta función, cuanto más modifique y compile los ejemplos dados en éste curso tanto más aprenderá conforme avance en su trabajo. Visualización numéricaEste es el código que utilizaremos como primer ejemplo de cómo trabajar con datos en un programa C:
El punto de entrada main ( ) debe resultarle claro así como la primera llave. Lo nuevo que encontramos está en la línea 4 que nos dice int indice; la cual se utiliza para definir una variable de tipo entero llamada indice. La palabra int es una palabra clave de C y no puede ser utilizada con otros fines, define una variable que almacena un número entero dentro de un rango predefinido de valores, definiremos el actual rango posteriormente. El nombre de la variable, indice, puede ser cualquier nombre que siga las reglas dadas para un identificador. El punto y coma al final de la línea es un terminador de enunciado como se explicó al principio. Observe que, aunque hemos definido una variable no le asignamos a ésta un valor por lo que se dice que contiene un valor indefinido, posteriormente veremos cómo definir varias variables en la misma línea de instrucciones. Veamos el cuerpo principal del programa, notará que hay tres enunciados que asignan un valor a la variable indice, pero solo uno a la vez. El enunciado en la línea 5 asigna a indice el valor de 13, y este valor es desplegado en la línea 6. Después se asigna a indice el valor de 27, y finalmente le asignamos el valor de 10. Está claro que indice es una variable que puede almacenar muchos valores diferentes pero solo uno a la vez. El programa una vez compilado aparece de la siguiente forma:
Continuando con el analisis del programa veamos los enunciados que contienen printf ( ). Todos son idénticos e inician de la misma forma que los printf ( ) que habíamos visto anteriormente, la primera diferencia la encontramos en el carácter %, éste señala a la rutina de salida para detener el despliegue de caracteres y hacer algo diferente, generalmente mostrar el valor de una variable. El símbolo % se utiliza para señalar el despliegue de muchos tipos diferentes de variables, pero nos concentraremos en uno solo en este ejemplo. El carácter que le sigue al símbolo % es una d, la cual indica a la rutina de salida tomar un valor decimal y desplegarlo en el monitor. Después de la d encontramos a la ahora familiar \n para el retorno del cursor y por último el cierre de paréntesis. Todos los caracteres entre paréntesis definen el patrón de datos a desplegar por el enunciado, luego está una coma seguida por el nombre de la variable indice. Aquí es donde la función printf ( ) obtiene el valor decimal como se lo indicó %d según vimos. El sistema sustituye el valor actual de la variable llamada indice por los símbolos %d y los muestra en el monitor. Comentarios en un programa CAgregamos comentarios al código C de un programa para hacerlo mas entendible para Usted pero carente de significado para el compilador, por lo que le indicamos al compilador ignorar completamente los comentarios encerrándolos en caracteres especiales. La combinación de línea diagonal y asterisco se usa en C para delimitar comentarios como podemos ver en el siguiente código, observe que este programa ilustra una mala técnica al hacer comentarios pero a su vez muestra donde pueden situarse los comentarios.
La combinación de línea diagonal y asterisco en la línea 2 introduce el primer comentario mientras que la combinación de asterisco y línea diagonal finaliza el comentario en esa línea. Observe que este comentario está antes del principio del programa lo que ilustra que un comentario puede preceder al programa en sí. Una buena práctica de programación es incluir un comentario antes del inicio del programa con una breve descripción del mismo. Observe que el comentario inicia con la combinación de línea diagonal y asterisco finalizando con la combinación de asterisco y línea diagonal, así, en ese orden ( /* Texto del comentario */ ). Es muy importante que no deje espacio alguno entre el asterisco y la línea diagonal pues de lo contrario el compilador no sabrá que se trata de un comentario y por ende, se generan mensajes de error. En el siguiente código podemos ver un ejemplo de un programa con un formato de comentarios bien hecho. Con la experiencia que Usted ha ganado hasta el momento es fácil comprender el programa en su totalidad, el compilador ignora todo el espacio extra en tanto que el retorno de cursor le da amplia libertad al momento de darle formato al código del programa. Compile el programa y observe el resultado.
Ahora observe éste otro código. ¿En cuanto tiempo comprendió su funcionamiento ? Para el compilador no importa el formato que Usted utilice, pero a Usted sí que le importará cuando trate de resolver un problema relacionado con el código de su programa (Técnica conocida como "debbuging", depuración). Compile y ejecute el programa, se sorprenderá que hace lo mismo que el programa anterior, la única diferencia está en el formato de la escritura del código.
En estos momentos no se preocupe mucho por el formato de sus programas. Tiene mucho tiempo para desarrollar un estilo propio conforme avance en su aprendizaje del lenguaje C. Sea Usted crítico de los estilos que vea en programas C en libros y revistas. |