FUNDAMENTOS DE PROGRAMACION


COMPARTE  FUNDAMENTOS DE PROGRAMACION











Comparte www.areatecnologia.com

añadir facebook   añadir a mi twitter   añadir en mi tuenti   añadir en delicious   añadir en mi digg   añadir meneame


   Introducción

    Los fundamentos de programación son las bases comúnes a todos los programas. Es lo primero que tendrás que aprender incluso antes de elegir el programa con el que quieres programar. 

   El ordenador solo entiende el llamado código máquina (1 y 0, hay o no hay corriente).

   Tenemos 2 tipos diferentes de lenguajes de programación, dependiendo de su cercanía al lenguaje del ordenador. los de bajo y los de alto nivel. Estos lenguajes sirven para dar órdenes directas al hardware del ordenador.

   Los lenguajes más cercanos al idioma del ordenador, llamados de bajo nivel, son muy complicados (casi como el código máquina) y poco usados. El más conocido es el código o lenguaje máquina, un código que el ordenador puede interpretar directamente. Aquí tienes un ejemplo:

   8B542408 83FA0077 06B80000 0000C383

   De este tipo de lenguajes, que solo suelen utilizar los que programan los ordenadores para su uso, no vamos hablar aquí. Hablaremos de los conocimientos comunes a los lenguajes de alto nivel.

   Los lenguajes de programación de alto nivel permiten dar órdenes al ordenador con un lenguaje parecido al nuestro (Visual Basic, Pascal, Logo, C++, etc.) y normalmente en ingles. El problema de los lenguajes de alto nivel es que necesitan un compilador o interprete para traducirlo al código máquina.
   Hay otros programas como el GML o el Java que son programas interpretados, es decir, se analizan y ejecutan las instrucciones por el propio programa directamente, pero siguen siendo lenguajes de alto nivel.

   Los lenguajes, como todo, hay que aprendérselos, pero tienen una ventaja, y es que hay varios puntos en común. Estos puntos son lo que vamos a estudiar aquí, los fundamentos de programación común a cualquier lenguaje de alto nivel.

   Una vez aprendidos, tendrás que elegir tu el lenguaje que quieras, pero con estos conocimientos, todos te resultarán muy fáciles de aprender, solo tendrás que aprender unas cuantas instrucciones en ingles.

   1. Programas y Algoritmos

   Los lenguajes de programación, cuentan todos en su haber con un juego de "instrucciones". Una instrucción no es más que una orden que nosotros le damos a la máquina.

   Y es que, al fin y al cabo, un programa no es más que una secuencia de instrucciones (escritas en algún lenguaje de programación) pensado para resolver algún tipo de problema. Si no sabemos resolver este problema, no podremos escribir el programa.

   A ti se te puede ocurrir una manera de resolverlo, a tu compañero, otra. Este método con el que resolvéis el problema, es lo que se llama algoritmo, y es lo que vamos a ver a continuación.

   Un algoritmo es una secuencia de PASOS a seguir para resolver un problema.

   Por ejemplo, cuando quiero ver una película de vídeo, podría hacer los siguientes pasos (algoritmo):
 
   Elijo una película de las de mi colección.

   -Compruebo SI TV y vídeo están conectados a la red (y procedo).

   -SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con el vídeo.

   -Introduzco la película en el vídeo. Dejo el estuche sobre el vídeo.

   -SI la TV no está en el canal adecuado, la cambio, SI NO, pues no.

   -Cojo los mandos a distancia (el del TV y el del vídeo).

   -Me pongo cómodo.

   -Pulso PLAY en el mando del vídeo.

  Fíjate bien en unos detalles que son fundamentales y que aparecen en este algoritmo:

   - La descripción de cada paso no me lleva a ambigüedades, los pasos son absolutamente explícitos y no inducen a error.

   - El número de pasos es finito. Tienen un principio y un fin. Según lo visto una mejor definición de algoritmo sería:

   “Un algoritmo es una sucesión finita de pasos (no instrucciones como en los programas) no ambiguos que se pueden llevar a cabo en un tiempo finito.”

   Hay distintas formas de escribir un algoritmo, bien usando un lenguaje específico de descripción de algoritmos, bien mediante representaciones gráficas como diagramas de flujo. (si quieres saber más pincha en el enlace subrayado)

   Independiente del lenguaje de programación que vaya a usarse; un algoritmo que esté escrito en pseudocódigo o con un diagrama de flujo es fácilmente traducible a muchos lenguajes de programación.

   El pseudocódigo es una forma de escribir los pasos, pero de la forma más cercana al lenguaje de programación que vamos a utilizar, es como un falso lenguaje, pero en nuestro idioma, en el lenguaje humano. Ya veremos más adelante ejemplos.

  Ahora vamos a empezar con lo interesante, vamos a empezar aprender a programar.

   2. Comentarios

   Poner comentarios de lo que vamos haciendo es muy útil, sobre todo cuando llega la hora de revisar el programa, si no, más de una vez nos encontraremos diciendo ¿qué hacía esto aquí? No cuesta nada documentar el programa y nos ahorrará dolores de cabeza. La norma que se sigue en todos los programas es poner // delante de los comentarios, para identificarlos:


   // Esto será un comentario y no hará nada en el programa

   Nosotros durante las explicaciones también pondremos comentarios.

   3. Las variables

   Una variable es como una caja donde metemos cosas (datos). Estos datos los podemos ir cambiando, ahora meto un 3, ahora lo quito y meto un 5.

   Una variable tiene un nombre, que puede ser una letra, una palabra, varias palabras unidas por el guión bajo o varias palabras sin separar pero la primera letra de cada palabra en mayúsculas ejem.: VidasPerdidas, vidaperdidas, vidas_perdidas. Ojo las mayúsculas y minúsculas son muy importantes en las variables, no es la misma variable numero que Numero, son dos diferentes. OJO tampoco se pueden poner acentos en el nombre de las variables.

   Las variables también tienen un valor que es lo que hay dentro de ella (en la caja) en ese momento y que puede ir variando según se vaya desarrollando el programa, por eso se llama variable.

   Una variable dependiendo de su valor puede ser numérica, si solo puede tener un valor numérico, de texto, si solo puede contener texto (letra, palabra o frase (string).

   En las variables de texto, su valor (el texto), debe ir entre comillas, para diferenciar que el texto es texto y no es el nombre de otra variable. Por ejemplos vidas = "Cinco" o vidas = "5". En los dos casos el valor es un texto, nunca el valor de 5.

   Las numéricas no llevan comillas en su valor. Por ejemplo vidas = 5. En este caso su valor si que es el número 5.

   Hay otras variables que se llaman booleanas que solo pueden tener dos valores true o false. Normalmente true se puede sustituir por el valor 1 y false por el 0.

   Veamos algunos ejemplos de los tipos de variables:

   Edad=3; //variable numérica. Fíjate que esto en negrita es un comentario.

   VariableDeTexto= “Edad”;

   VariableNumerica= Edad + 2 ;

   //su valor es el valor de la variable Edad (numérica) +2; en este caso sería = 5 (3+2).

   VariableBooleana = true; en este caso sería de valor 1

   ¿Te has dado cuenta que hemos puesto un punto y coma (;) al acabar de definir cada variable?. En programación siempre que se acaba una instrucción o grupo de instrucciones se debe poner ; para decir al programa que pasamos a otra instrucción diferente. Pero sigamos con las variables.

   Lo normal es declarar las variables al principio de un programa. Declarar no es más que decir "mira, yo quiero tres variables, y quiero que una se llame Nombre, otra Edad y otra Apellido".

   A partir de este momento, podrás meter su valor, en cualquier parte del programa. Por ejemplo, “Juan” en Nombre, un 5 en Edad y “Rodríguez” en Apellido. Ojo no es la misma variable Nombre que nombre, como ya dijimos anteriormente. Después podrás cambiar su valor, dentro del programa, las veces que quieras.

   Las variables se suelen declarar al principio del programa. OJO hay lenguajes en los que no es necesario declarar la variable.

   Veamos un ejemplo:

 numerica: Pepe //declaramos la variable Pepe como numérica.

   En Pepe = 14 //Damos un valor a la variable ya declarada Pepe;

   Pepe = 42 // Cambiamos el valor de la variable a 42;

   Podemos sumar, restar, multiplicar y dividir variables.

   numerica: Pepe, Mari ,Juan //Declaramos las variables que usaremos;

   Pepe=2;
  
   Mari=3;
  
   Juan = Pepe + Mari; // Juan tiene ahora el valor numérico de 5

   Hay variables ya definidas por el propio lenguaje de programación que usemos, y cuyo nombre no se lo podremos dar a ninguna de las que nosotros definamos.

   Las podemos usar pero tal y como el lenguaje las definió. Por ejemplo en muchos lenguajes mouse_x es la variable que tiene el valor de la posición x del ratón en cada momento, hspeed es la velocidad horizontal, etc.

  Si queremos que la variable se use en todo el programa deberemos nombrarla como una variable global, en caso contrario

   Si no la definimos como global, por defecto el lenguaje la considerará una variable local. Una variable local al salir del lugar donde la hemos asignado un valor, perderá ese valor y ya no existirá (al salir de un algoritmo, trozo de programa, del objeto, de una estructura IF, etc.).

   En la mayoría de los lenguajes se pone la palabra global, un punto y detrás el nombre de la variable, de esta forma, esta variable la podemos usar en todas las partes del programa.

  Ejemplo global.pepe, que será distinta de la variable pepe.

   4. Estructuras de control

   Las estructuras de control tienen una finalidad bastante definida: su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo o de un programa.

   Las estructuras de control son de tres tipos:

   4.1. Secuenciales

   4.2. Selectivas

   4.3. Repetitivas

   Empecemos por las primeras.

   4.1.Estructuras secuenciales

   Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero que se haya escrito será el que primero se ejecute.

   Veamos un ejemplo: queremos leer el radio de un círculo, calcular su área y mostrar por pantalla al usuario el resultado.

   En pseudocódigo sería:

   REAL: radio, area; //Declaración de variables;
fin declaración de variables

inicio

   mostrar por pantalla “dame el radio del circulo”;

   leer del teclado la variable radio //asignación del valor de la variable radio por medio del teclado;

   area =3.14159*radio; //asignación del valor de la variable área;

   mostrar por pantalla “el área del circulo es:”

   //En los texto SI PODEMOS Y DEBEMOS PONER ACENTOS;

   mostrar por pantalla el contenido de la variable area;

fin

   Como ves las instrucciones se van ejecutando unas detrás de otra hasta llegar al final.

   4.2.Estructuras selectivas

   Estas estructuras se utilizan para TOMAR DECISIONES (por eso también se llaman estructuras de decisión o alternativas). Lo que se hace es EVALUAR una condición, y, a continuación, en función del resultado, se lleva a cabo una opción u otra.

   4.2.1 Alternativas simples (condicional IF)

   Son los conocidos "si... entonces". Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple (es decir, si es cierta), entonces realizaré una serie de pasos. Un ejemplo

En pseudocódigo sería:

   Declaración de variables
  
   REAL: numero, raíz

   fin declaración de variables

inicio

   mostrar por pantalla “introduce un numero”

   leer del teclado la variable numero

   SI numero>=0 ENTONCES: // mayor o igual que cero;

   raiz=raiz_cuadrada(numero)

   mostrar por pantalla “la raíz cuadrada es:”

   mostrar por pantalla raiz

   fin del SI

fin

   En todos los lenguajes de programación la condicional SI se escribe de la siguiente forma.

   if numero = 0 { lo que se hace si cumple la condición de que la variable numero sea igual a 0}

   Es decir la palabra if seguida de la condición y seguidamente entre corchetes lo que se realizará si se cumple la condición.

   4.2.2 Alternativas dobles (IF…….ELSE….)

   ¿Qué pasa si no cumple la condición puesta?. Pues si no le decimos nada, el programa seguirá a la siguiente orden de forma secuencial. Pero también podemos especificar que pasaría si no cumple la condición. Es el famoso trío "si ... entonces ... sino esto otro". Veamos como sería la estructura en todos los lenguajes:

   if (condición) {se hace esto} else {si no cumple la condición se hace esto otro};

   En el ejemplo anterior sería mucho mejor hacerlo con este tipo:

En pseudocódigo: br /> Declaración de variables
REAL: numero, raiz
ffin declaración de variables
iniciobr /> mostrar por pantalla 'introduce un numero'
leer del teclado la variable numero
SI numero >= 0 ENTONCES:
raiz = raiz_cuadrada(numero)
mmostrar por pantalla 'la raíz cuadrada es:'
mostrar por pantalla raizbr /> SI NO es numero >=0 ENTONCES: {es decir, si numero es negativo}
mmostrar por pantalla 'lo siento, no puedo calcular la raíz cuadrada de un numero negativo'
fin del SIbr /> ffin

   Cuando escribamos nuestro programa debemos poner la condición de la siguiente manera:

   if numero >= 0 {mostrar en pantalla "Numero Negativo} else { mostrar en pantalla "Numero Positivo}

   4.2.3 Alternativas múltiples o con varias condiciones

   Es muy probable que tengamos la necesidad de incluir en nuestros programas alternativas con muchas opciones posibles.

   variableOpciones= un valor a elegir, por ejemplo desde el teclado o desde una ventana que marque el usuario;

if (variableOpciones=0) {lo que corresponda};br /> iif (variableOpciones=1) {lo que corresponda}; ……….

   Podemos poner tantas if como queramos.

   También existe la posibilidad de que deban de cumplirse dos condiciones a la vez:

if (condición1 && condición2) {Se cumple esto} o

if (condición1 && condición2) {Se cumple esto} else {se cumple esto otro}

   Los símbolos && significan "y", es decir si se cumple la condición1 y la condición2 a la vez.

   Intenta hacer los siguientes ejercicios:

   Sobre estructuras secuenciales

1. Escribid un algoritmo o pseudocódigo que calcule el área de un triángulo o de un rectángulo.
2. Escribid un algoritmo o pseudocódigo que calcule el precio de un artículo tras aplicarle un 16% de IVA.

   Sobre estructuras selectivas

3. Diseñad un esquema de menú de opciones, por ejemplo, un menú para seleccionar un libro a leer de entre 3 disponibles.
4. Escribid un algoritmo que lea tres números e imprima por pantalla el mayor de ellos.


   4.3. Estructuras de control REPETITIVAS

   Estas estructuras son instrucciones que se repiten formando un bucle. El bucle se repite mientras se cumpla una condición que ha de ser especificada claramente. Cuando deje de cumplirse la condición, se sale fuera del bucle y no se repiten más las instrucciones.

   Un BUCLE (loop, en inglés) es un trozo de algoritmo o de un programa cuyas instrucciones son repetidas un cierto número de veces, mientras se cumple una cierta condición que ha de ser claramente especificada.

   Básicamente, existen tres tipos de estructuras repetitivas:

   4.3.1 Los bucles "mientras..." o "while“

   4.3.2 Los bucles "repetir(hacer)... mientras que" o "do... until"

   4.3.3 Los bucles "desde" o "bucles for".

   4.3.4 Otras.

   Vamos a verlas todas dentro de un ejemplo.

   El ejemplo es el siguiente:

   Vamos a suponer que estamos pensando en un programa que deba REPETIR algunas veces una acción. Por ejemplo, el ordenador se ha portado mal, y como castigo, le vamos a hacer imprimir por pantalla 3000 veces la frase "Prometo ser bueno". ¿Cómo lo hacemos? ¿Escribimos 3000 veces la instrucción pertinente?

   ¡Se supone que el castigo es para la máquina, no para uno mismo!.

   4.3.1 Estructura MIENTRAS(condición) o "WHILE“

   En este tipo de estructura, el cuerpo del bucle (las acciones que deben ejecutarse repetidas veces) se repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis


Pseudocódigo

inicio

   contador=1

   Mientras (contador<=3.000) hacer

  mostrar por pantalla 'Prometo ser bueno'

   contador = contador + 1

   fin mientras

fin

   A la variable que "lleva" la cuenta de las veces que el bucle se ha ejecutado, se le he llamado contador.

   Fijarse que ANTES de entrar en el bucle le asigno el valor 1 a la variable contador. Si no, al entrar en el bucle y la variable (contador) no tener valor, me saldría error.

   En cuanto vemos la palabra "mientras" o “while”, ya sabemos que hemos entrado en el bucle. Estamos en la decisión. ¿Es contador<=3000? Yo creo que sí, al menos si es cierto que 1<=3000.

   Vale, es cierto, así que deben ejecutarse todas las instrucciones del cuerpo del bucle. En nuestro caso, se mostrará por pantalla la frase 'Prometo ser bueno', y, ATENCION, sumo 1 a la variable contador. Como contador valía 1, si ahora le sumo 1, ahora contador vale 2. Llegamos al fin del mientras. Eso significa que se han terminado las instrucciones del cuerpo del bucle: debemos volver a evaluar la condición que tenía el "mientras" o “while” entre paréntesis para ver qué hacemos ahora.

   Tenemos que ver si contador<=3000. Ahora, contador valía 2, y se cumple que 2<=3000, con lo que vuelve a mostrarse por pantalla la expresión 'Prometo ser bueno' y de nuevo se suma 1 a contador, con lo que ahora, contador pasa a valer 3.

   De nuevo llegamos al fin del mientras. Y... un buen rato después.... ahora contador vale 3000. Tenemos que ver si contador<=3000. Como es cierto que 3000<=3000, se muestra por pantalla el mensaje 'Prometo ser bueno', y sumamos 1 a contador.

   Ahora, contador vale 3001. Llegamos (una vez más) al fin del mientras, por lo que tenemos que volver a evaluar la condición entre paréntesis que acompaña al "mientras". Hay que ver si contador<=3000. Pero no es cierto que 3001<=3000, es más bien al revés, o sea, la condición entre paréntesis ES FALSA.

   ¿Eso qué quiere decir? Pues quiere decir que se acabó, que ya no se ejecuta el cuerpo del bucle, sino que hemos llegado al final, el bucle a terminado y salimos fuera de el.

   ¿Qué pasaría si la variable contador, al definirla, su valor fuera ya mayor de 3000?.

   Recuerda en la programación real se usa la palabra while.

   4.3.2 Estructura REPETIR (hacer)... MIENTRAS QUE (condición) o "DO.....UNTIL“

   Aquí, lo que se desea es que un bucle se ejecute al menos una vez antes de comprobar la condición de repetición. Es decir si partiéramos que la variable condición fuera mayor de 3000, en este caso, el bucle se ejecutaría una vez, incluso aunque la variable ya no cumpla la condición desde el principio. En el caso de hacerlo con while no se ejecutaría ninguna vez.

   ¡Esta es la única diferencia¡.

La estructura PARA NUESTRO EJEMPLO es esta: br />
inicio
Contador=1
Repetir
mostrar por pantalla 'Prometo ser bueno O:-)'
Contador=Contador+1
mientras que(Contador<=3000)
ffin

   Recuerda en programación real utilizamos Do... Until.


   4.3.3 Estructura DESDE o "bucles FOR".

   Esta estructura hubiera sido la más adecuada para resolver nuestra situación real. Tiene la peculiaridad, que la variable contador esta dentro del bucle y no hace falta asignarle el valor (ni definirla) fuera del bucle, y además, al llegar el programa al bucle siempre se realizarán las instrucciones que hay dentro del bucle, una cantidad de veces que nosotros fijemos.

inicio

desde contador=1 hasta contador<=3.000 contador=contador+1;

hacer mostrar por pantalla 'Prometo ser bueno';

fin desde;

fin

   Lo primero que hace es darle a la variable contador el valor 1. Después comprueba si el valor de la variable es menor o igual a 3000 (comprueba la condición), y si la cumple aumenta 1 el valor de la variable contador y realiza las instrucciones que hay dentro del bucle. Así hasta que la condición deja de cumplirse.

   Nota: Las coordenadas “y”, en este caso, varían con la variable contador (50*contador) y así las frases no se juntan una encima de otra, salen en diferentes coordenadas, en nuestro caso diferentes filas.

   Normalmente con bucles For se usa la variable i para contar, y no la variable contador.

  Recuerda en programación real se usa la palabra for, y no desde.

   Ejercicio: Programa que escriba los números del 1 al 10, con while, con do….until y con FOR

   4.3.4 Otras

   Variables “Acumuladores”

   Son como las variables contador, con la diferencia que su incremento/decremento es variable (varía según el valor de i). Se hacen mediante ciclos for de la siguiente forma:

acumulador=1 br /> {{
for (i=0; i<=10; i+=1) {
acumulador=acumulador+i //Aumenta el valor en i cada vez que llega aquí;
draw_text(50,50*i,acumulador);
}
} // El resultado sería 1 2 4 7 11 16 22 …

   Nota: draw_text es una orden para escribir en pantalla en muchos lenguajes , pero no vale para todos.

   Que el bucle no se ejecuta ninguna vez, puede tener aplicación en algunos casos.

   Bien ya estas preparado para aprender a programar en cualquier lenguaje de programación de alto nivel. Ahora tu elijes el que quieres aprender, veras que con estos conocimientos previos te será Muy Sencillo. ¡¡¡Suerte!!!.

fundamentos de programacion

   Arriba a la derecha y en el menú superior tienes más enlaces relacionados que te pueden interesar.
 
  Y si te ha Gustado Haz clic arriba a la derecha en Me gusta. Gracias.

   Por último te dejamos los apuntes en forma de presentación, por si te gusta más.