miércoles, 8 de junio de 2011

Lenguaje de programación

Para poder comenzar con el lenguaje de programación, lo primero que tenemos que saber es qué es programar. Programar es realizar una serie de instrucciones que a mí me permite solucionar un proyecto.Lo que el ordenador entiende cuando nosotros programamos se traduce a la realidad como 0 y 1, pero programar con 0 y 1 es difícil, por eso se hace un lenguaje de programación que el ordenador pueda comprender. Estos programas se han desarrollado a lo largo del tiempo.

Para poder empezar a programar tenemos que tener tres cosas fundamentales.
1. Las entradas de datos: Es lo primero que tenemos que definir en un programa. Un ejemplo sería base y altura.
2. El proceso: Tras tener lo anterior hecho, tenemos que realizar esto. Siguiendo con el ejemplo anterior aquí habría que poner el área de un triángulo B*h/2. No podemos realizar un proceso sin antes no haber una entrada de datos. En este caso el proceso lo representaremos con un rectángulo.
3.Salida de datos


Para empezar con el programa tenemos que tener un esquema, para ello podemos utilizar un diagrama de flujo, el cual por medio de figuras nos facilita  las cosas, ya que mirando a este diagrama podemos tener más claro los diferentes procesos a seguir en el programa.


En todo programa siempre va haber un inicio y un fin. Podríamos hacer un esquema con nuestras palabras de lo que va a realizar el programa, esto que veremos a continuación sería un simple ejemplo:

1. Comienzo de programa.
2. Definir las variables A: Área,B: Base,H: Altura
3. Petición al usuario de los valores de base y altura.
4. Asignamos los valores del usuario. Ej: B=4, H=8
5. Realizamos operaciones A= B*h/2
6. Indicamos solución al usuario
7. Fin

En este caso hemos realizado un diagrama de flujo del área de un triángulo, un poco más adelante pondré cómo se realizaría el programa de este.
Todos los programas deben comenzar por #include<stdio.h>, tras esto habrá que poner int main (){.
La función print f correspondería a la fase de entrada de datos, sirve para poner la operación que vamos a realizar, es la petición del usuario. Cuando esta función la ponemos al final el programa significa la salida de resultados.
La función scanf correspondería también a la fase de entrada de datos. En esta función hay que poner las variables con las que queramos realizar el programa.

A continuación realizaré un programa que realiza una suma. En este caso he utilizado el programa MinGStudio. Lo que ponga entre paréntesis y en negrita, no hay que ponerlo en el programaEl programa sería el siguiente:

#include<stdio.h>    (inicio de programa)
int main(){
int valor1;       (declaración de variables)
int valor2;
int solucion;
printf("indique el valor1 para realizar la suma:\n");  (entrada de datos)
scanf("%d",&valor1);
printf("indique el valor2 para realizar la suma:\n");
scanf("%d",&valor2);

solucion=valor1+valor2;
printf("el resultado de sumar los valores anteriores es:%d",solucion); (salida de resultados)
}       (Fin del programa)

El siguiente programa que realizaré a continuación es el área de un triángulo:


#include<stdio.h>    (inicio del programa)
int main(){
int a;                      (declaración de las variables)
int b;
int h;
printf("indique el valor de la base");   (entrada de datos)
scanf("%d",&b);
printf("indique el valor de la altura");
scanf("%d",&h);
a=(b*h)/2;
printf("el valor del area es:%d",a);   (salida de resultados)
}          (Fin del programa)


Continuamos con el lenguaje de programación de los dos programas en uno que hemos visto anteriormente. El programa constará de que si pulsas 1 realizará por ejemplo la suma y por el contrario si pulsas 2 realizará el área. Aquí aparece dos funciones nuevas que no hemos visto anteriormente que es la de If que en el programa significará decisión y la de else que significa lo que vamos a realizar tras la decisión:


#include<stdio.h>    (inicio de programa)
int main(){
int opcion;                (declaración de variables)
printf("pulsa 1 para sumar");     (entrada de datos)
printf("\npulsa 2 para area");
scanf("%d",&opcion);
if(opcion ==1){            (decisión)
int valor1;             (declaración de variables)
int valor2;
int solucion;
printf("indique el valor1 para realizar la suma:\n");     (entrada de datos)
scanf("%d",&valor1);
printf("indique el valor2 para realizar el area:\n");
scanf("%d",&valor2);
solucion=valor1+valor2;
printf("el resultado de sumar los valores anteriores es:%d",solucion);   (salida de resultados)
return 0;
}     (Fin)
if(opcion ==2){             (decisión)
int a;                      (declaración de las variables)
int b;
int h;
printf("indique el valor de la base");        (entrada de datos)
scanf("%d",&b);
printf("indique el valor de la altura");
scanf("%d",&h);
a=(b*h)/2;
printf("el valor del area es:%d",a);      (salida de resultados)
return 0;
}
else{
return 0;
}
}         (Fin del programa)

A continuación realizaremos el programa de un bucle. Este programa nos permite practicar con una tabla de multiplicar que el usuario elige al principio. En cada multiplicación se le pregunta al usuario el resultado. Si es correcto, el programa continúa con la siguiente multiplicación; si el usuario falla, el programa sale anticipadamente.
Para saber un poco cómo debemos comenzar el programa, debemos saber que la sección de inicialización se usa para dar un valor inicial a la variable que controla el bucle. Esta inicialización se ejecuta sólo cuando empieza el bucle. Después, el bucle se repite tantas veces como se cumpla la condición.Al final de cada repetición, el incremento se ejecuta respecto a como esté definido y justo antes de que se compruebe de nuevo la condición. Aquí aparece una nueva función for, ésta incluye en la misma línea la inicialización de la variable contador. También define en cuánto se incrementa esta variable. Comparte con otra función nueva que aparece también llamada while (sentencia de petición) que la expresión condicional está al comienzo del bucle, con lo que su representación en el organigrama es idéntica.
El programa es el que vemos a continuación:


#include<stdio.h> (inicio de programa)
int main(){ int tabla,resp,contador; (declaración de variables)  
printf("¿que tabla quieres practicar?");   (entrada de datos) 
scanf ("%d",&tabla); 
printf("\n empezamos...");  
for(contador=1;contador<11;contador=contador+1) (inicialización;condición;incremento) 

printf("¿cuanto es %d X %d?",tabla,contador);  
scanf("%d",&resp); 
if(resp== tabla*contador)printf("¡correcto!"); (decisión)
else{ (lo que realizamos tras la decisión) 
printf("Lo siento,no es correcto"); (salida de resultados)  
printf("\n la respuesta es %d", tabla*contador);  
printf("\n vuelve a ejecutar el programa");  
break; 

}/*fin del for*/ 
}/*fin del main()*/


Para terminar con esta entrada realizaré un factorial:



#include<stdio.h> (inicio del programa)
int main(){ 
int n; (dónde guardo el número que pido al usuario) 
int fact; (dónde voy a ir guardando las operaciones del factorial) 
int j; (j es quien se encarga de ir realizando las vueltas al bucle para ir multiplicando) 
fact=1; (comenzamos dando el valor 1 para que no tenga otro valor almacenado)
printf("indique el numero del que quiere calcular el factorial\n"); (pedimos al usuario el número y lo guardamos en n)  
scanf("%d",&n); (realizamos un bucle) 
for(j=1; j<=n; j++){ (empieza en n, es decir el número que ponga el usuario) 
fact=fact*j; (va realizando la operación: lo que tenga fact en ese momento por lo que valga j en ese momento hasta que el bucle finaliza) 
}
printf("el resultado es %d",fact); 
} (Fin del programa)