Como primer programa vamos a hacer algo sencillo. Por ejemplo, un programa que introduciendo nuestra edad nos la muestre después. Aunque a efectos prácticos carece de utilidad, nos servira para entremezclar un poco lo que he comentado hasta ahora.
La primera linea del código será siempre:
- #include
//include de la librería stdio.h
Esta linea será la que proporcione un conjunto básico de instrucciones que podremos usar para nuestro programa. Antes de seguir quiero explicar los comentarios del programa. Ahora mismo sé lo que estoy intentando hacer con mi programa y que hace cada instrucción, pero si dentro de un tiempo lo vuelvo a mirar, me costará entender que es lo que quería hacer con cada cosa. Para evitar esto, y para facilitar que otra persona pueda entender el código, se deben introducir comentarios del código fuente explicando cada paso. Este texto no se compila, y por tanto nada de lo que pongamos allí afectará al programa en sí. Hay dos maneras de introducir comentarios:
COMENTARIOS
- Dos barras: //. El texto que sigue a // hasta el final de la linea es un comentario.
- Barra y asterisco. Si el texto que queremos comentar es más amplio, o por ejemplo queremos dejar un trozo de código escrito pero sin que se ejecute, usaremos /* texto */ . Esto puede abarcar varias lineas, y todo el texto entre /* y */ será un comentario.
2. int main(){//aqui empiezan las instrucciones del programaLa linea dos abre la función principal (main) que contendrá las instrucciones del programa. Con int edad, declaramos una variable de tipo entero (con signo, pero es lo de menos), para almacenar la edad de la persona que ejecute el programa. En este caso no vamos a necesitar más variables, pero si hicieran falta más deberían ir todas juntas aquí declaradas.
3. int edad;//variable que almacenará la edad de la persona
4. printf("Que edad tienes? ");//preguntamos la edadCon el primer printf preguntamos la edad de la persona. Dejamos un espacio tras la pregunta porque en la siguiente linea el usuario introducirá su edad y no queremos que aparezca pegado a la frase anterior.
5. scanf("%d",&edad);//la almacenamos en edad
6. printf("Tu edad es %d\n",edad);//la mostramos
El scanf es una funcion que almacena la información que introduzcamos por teclado en una variable previamente declarada. Los datos que se van a almacenar son un número entero, y su forma de mostrarlo y guardarlo es con %d como ya hemos visto. Esto se introduce entre comillas, y es lo que la función va a "leer". Tras las comillas hay que poner una coma y seguido la variable donde se almacena. Para indicar que tiene que buscar en la memoria esa variable se usa &. Es importante que no os lo olvideis porque sino el programa se cuelga; digamos que no sabe donde almacenarlo y se cierra.
Por último, mostramos la información pro pantalla con el último printf, donde %d será sustituido por el valor de edad.
Ahora ya solo queda cerrar el main y compilar el programa.
7. return 0;
8. system("pause");}
Así, el código al final sería:
1.#include//include de la librería stdio.h
2. int main(){//aqui empiezan las instrucciones del programa
3. int edad;//variable que almacenará la edad de la persona
4. printf("Que edad tienes? ");//preguntamos la edad
5. scanf("%d",&edad);//la almacenamos en edad
6. printf("Tu edad es %d\n",edad);//la mostramos
7. /* Cerramos el int main */
7. system("pause");
8. return 0;}
El resultado de ejecutarlo es:
No por favor, si estáis aprendiendo, nada de system("pause")
ResponderEliminarSi es así, porque en vez de printf, no mejor system("echo")?
Sólo vamos a conseguir menor eficiencia y una absoluta dependencia con la plataforma. Por contra, no nos aportará ningún beneficio.
Ya que he mencionado el tema de la dependencia de la plataforma, si te apetece échale un vistazo a MEMTRACE, un detector de memory leaks para C/C++ de código abierto que comencé a escribir hace tiempo. Lo tienes en http://guti.webcindario.com/static.php?page=MEMTRACE
ResponderEliminarVerás no solamente que es capaz de compilar y funcionar bajo DOS real, DOS protegido, Win16, Win32, OS/2 16 y 32 bit o *NIX, sino que además es capaz de hacerlo con diferentes compiladores, desde GCC/GPP hasta Visual C++ o Watcom.
No eres el primero que me comenta lo del system("pause"), y comprendo que al ponerlo dependemos de la plataforma, pero si es lo que me dicen y de ello depende mi nota entiende que lo use... xD
ResponderEliminarClaro que entiendo que lo uses, si te obligan a que sea así.
ResponderEliminarSin embargo si lo que pretendes, como estás haciendo muy bien, es crear una serie de posts que expliquen C con un lenguaje entendible para gente que quiere iniciarse con él, no es el mejor camino el hacerlo de una forma que no es recomendable.
¿Estás de acuerdo conmigo? Es decir, si un lector quiere aprender a programar, quiere hacerlo de la mejor manera. Luego ya vendrá quien sea, y le obligará o no a hacerlo de una forma peor, pero se trata de que vea el buen camino, y aprenda sobre él.