Está en la página 1de 29

Introducción

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

Lo primero que tienes que saber es que el ordenador es una máquina eléctrica y solo entiende
el llamado código binario (1 y 0).

1 = hay corriente

0 = No hay corriente

Este es su lenguaje. Entendernos con él mediante este código es muy difícil, por eso los
lenguajes de programación se dividen en dos tipos diferentes dependiendo de su cercanía al
lenguaje del ordenador.

El código del ordenador se basa en asignar a cada caracter (letra, signo, número, etc) una
combinación de 8 ceros y unos ( 8 bits = byte) mediante un código que se llama ASCII. Por
ejemplo la letra A se representa con lo combinación siguiente: 01100001.

Los lenguajes más cercanos al idioma del ordenador, llamados de bajo nivel, son muy
complicados (casi como el código del ordenador) 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++, JavaScript, etc.) y siempre o casi
siempre en ingles.

Hay programas de alto nivel como el GML o el Java que son programas interpretados, es
decir, se analizan y ejecutan las instrucciones por el propio programa directamente. Otros
necesitan un compilador, pero eso no es un problema, solo es un programa (software)
que se encarga de traducir el programa hecho en lenguaje de programación al código del
ordenador para que lo entienda.

Con un tipo u otro es igual, lo importante es que los lenguajes, como todo, hay que
aprendérselos, pero tienen una ventaja, y es que tienen muchos 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.
Lenguajes de Programación.
¿QUE SON LOS LENGUAJES DE PROGRAMACIÓN?

Para antes de empezar a explicar qué son los lenguajes de programación, empezaremos
dando por hecho que entendéis lo que es un “lenguaje” cualquiera, que no es más que un
sistema estructurado de comunicación, como por ejemplo el lenguaje humano que nos
permite comunicarnos unos con otros por medio de signos (palabras, sonidos, gestos…etc).
Pues bien, entendiendo esto es muy fácil entender qué es un lenguaje de programación.

Un lenguaje de programación no es más que un sistema estructurado y diseñado


principalmente para que las máquinas y computadoras se entiendan entre sí y con nosotros,
los humanos. Contiene un conjunto de acciones consecutivas que el ordenador debe
ejecutar.

Estos lenguajes de programación usan diferentes normas o bases y se utilizan para controlar
cómo se comporta una máquina (por ejemplo, un ordenador), también pueden usarse para
crear programas informáticos, etc.

El término “programación” se define como un proceso por medio del cual se diseña, se
codifica, se escribe, se prueba y se depura un código básico para las computadoras. Ese código
es el que se llama “código fuente” que caracteriza a cada lenguaje de programación. Cada
lenguaje de programación tiene un “código fuente” característico y único que está diseñado
para una función o un propósito determinado y que nos sirven para que una máquina o
computador se comporte de una manera deseada.

TIPOS DE LENGUAJES DE PROGRAMACION


En la actualidad hay más de 100 lenguajes de programación diferentes. No vamos a definir
todos los lenguajes de programación que existen porque son muchos pero sí os hablaremos
de los más importantes y para qué se utilizan.

Un ordenador no entiende un lenguaje como el que utilizan los humanos, sino que el lenguaje
que entiende se llama “lenguaje binario” o “código binario” o “código máquina” que
consiste en ceros y unos básicamente, es decir, una máquina sólo utiliza los números 0 y
1 para codificar cualquier acción a tomar.

Se clasifican en dos tipos:

Los Lenguajes de Programación de Bajo Nivel: que son aquellos utilizados


fundamentalmente para controlar el “hardware” del ordenador y dependen totalmente de la
máquina y no se pueden utilizar en otras máquinas. Están orientados exclusivamente para la
máquina Estos lenguajes son los que ordenan a la máquina operaciones fundamentales para
que pueda funcionar. Utiliza básicamente ceros, unos y abreviaturas de letras. Estos lenguajes
también se llaman de código máquina. Son los más complicados, pero solo los usan
prácticamente los creadores de las máquinas. Con este tipo de lenguajes programan la
asignación y liberación de memoria, el uso de punteros, el poder usar paso por valor y por
referencia, la creación de tipos de datos, etc.
Los Lenguajes de Programación de Alto Nivel: Estos lenguajes son más parecidos al lenguaje
natural humano y no dependen de la máquina y sirven fundamentalmente para crear
programas informáticos que solucionan diferentes problemas. Son los más usados por los
programadores y por todo del mundo que realiza programas informáticos.

La diferencia fundamental se puede explicar con el siguiente ejemplo:

En un lenguaje de alto nivel sólo tengo que poner sqt(x), que sería una función
predeterminada, calcular el cuadrado de x.

Si fuera de bajo nivel, yo mismo tendría que crear la función sabiendo como funciona el
cuadrado de un número:

cuadrado(x) = x * x

Como vemos para aprender a programar con un lenguaje de alto nivel debemos conocer el
propio lenguaje que utiliza y todos sus comandos, en el ejemplo saber que sqt realiza el
cuadrado de un número.

Para no extendernos mucho en esto que es bastante amplio, pasaremos a explicaros algunos
de los lenguajes de programación más usados en las máquinas que más utilizamos.

LENGUAJES DE PROGRAMACIÓN MÁS USADOS

Lenguaje de Programación “HTML”: Este lenguaje es con el que se crean las páginas web, por
ejemplo, que básicamente es un conjunto de etiquetas que sirven para definir el texto y otros
elementos que puedes ver en las páginas web. HTML significa HyperText Markup Lenguaje
(«lenguaje de marcas de hipertexto») y es muy fácil de aprender. Luego ya depende de si
queremos una web más o menos elaborada podremos profundizar en este lenguaje. Por
ejemplo, el lenguaje de programación CSS (Cascading Style Sheets) son hojas que sirven para
dar “estilo” a las páginas web como su color, definir su fondo, tipos de letra…etc
Lenguaje de Programación “SQL”: Este lenguaje está creado para realizar consultas a bases
de datos principalmente. SQL son las siglas de Structured Query Lenguaje ( Lenguaje
estructurado de consultas) y se utiliza para páginas web y también para aplicaciones de
ordenadores, para manejar datos sobre todo. (Introducir datos, actualizar datos, eliminar o
seleccionar datos)

Lenguaje de Programación “Java”: Probablemente éste podría ser el favorito de más de uno
ya que es el lenguaje utilizado para programas punteros como herramientas, juegos y
aplicaciones. Este lenguaje de programación se utiliza en miles de millones de dispositivos
móviles y aparatos de televisión y en más de 850 millones de ordenadores personales de todo
el mundo. Java está instalado en inmensidad de aplicaciones y sitios web.

JavaScript: Seguramente también te suene JavaScript, que es otro lenguaje utilizado para
crear pequeños programas encargados de realizar acciones y dar interactividad dentro de una
web como por ejemplo para crear efectos especiales, para definir interactividades con los
usuarios, efectos de textos. Hoy en día es casi el único lenguaje usado en todas las páginas
web por la compatibilidad con HTML5. Si quieres aprender a programar en Javascript te
recomendamos este enlace: JavaScript Curso Basico.

Lenguaje de Programación “C”: Este lenguaje de programación está orientado a los Sistemas
Operativos y es muy eficaz y con él podemos crear Softwares de sistemas operativos como
Windows o Linux y también para aplicaciones. También sirve para experimentos informáticos,
físicos, matemáticos…etc. Es también muy utilizado en robótica con el que se programan
simuladores, etc.

Lenguaje de Programación “XML”: Este lenguaje es también un lenguaje de etiquetas como


el HTML, pero a diferencia de éste, el lenguaje XML separa el contenido de la presentación, es
decir, XML se preocupa del significado del texto que define el HTML. Te da el dato + el
significado de ese dato, mientras que el HTML te da el dato nada más. El XML es un
complemento fundamental al HTML.

Lenguaje de Programación “PHP”: El PHP es un lenguaje de programación similar al HTML


que nos sirve fundamentalmente para páginas web y se puede combinar con el lenguaje
HTML. El lenguaje PHP se basa en los “scripts” que es un guión de órdenes o instrucciones que
recibe un servidor de una página web para leer su código fuente.

Así podríamos seguir definiendo múltiples y variados lenguajes de programación. Como verás
son verdaderamente útiles y necesarios y sirven prácticamente para cualquier cosa.

Casi todos los lenguajes de programación tienen unos fundamentos o bases comunes, esto
hace que sea relativamente fácil aprender un lenguaje nuevo si ya conocemos otro. En el
siguiente enlace puedes aprender estos fundamentos básicos: Fundamentos de
Programación.

Si quieres aprender a programar te recomendamos una primera experiencia


con Robomind muy sencillo, para niños, pero mejor empezar por aquí para no desilusionarnos
desde el principio. Es muy sencillo para niños. Luego puedes seguir con MSWLOGO. Los dos
son gratuitos y fáciles.

¿Qué es el Sistema Binario?


El sistema binario es un sistema de numeración en el que los números se
representan utilizando las cifras 0 y 1, es decir solo 2 dígitos (bi =
dos). Esto en informática y en electrónica tiene mucha importancia ya que las
computadoras trabajan internamente con 2 niveles: hay o no hay de Tensión, hay
o no hay corriente, pulsado o sin pulsar, etc.

Esto provoca que su sistema de numeración natural sea el binario, por ejemplo 1
para encendido y 0 para apagado. También se utiliza en electrónica y en
electricidad (encendido o apagado, activado o desactivado, etc.). El lenguaje
binario es muy utilizado en el mundo de la tecnología.

Números Binarios
Como ya dijimos, el sistema binario se basa en la representación de cantidades
utilizando los números 1 y 0. Por tanto su base es 2 (número de dígitos del
sistema). Cada dígito o número en este sistema se denomina bit (contracción
de binary digit).

Por ejemplo el número en binario 1001 es un número binario de 4 bits.


Recuerda "cualquier número binario solo puede tener ceros y unos".

Los Números Binarios empezarían por el 0 (número binario más pequeño)


después el 1 y ahora tendríamos que pasar al siguiente número, que ya sería de
dos cifras porque no hay más números binarios de una sola cifra.

El siguiente número binario, por lo tanto, sería combinar el 1 con el 0, es decir el


10 (ya que el 0 con el 1, sería el 01 y no valdría porque sería igual que el 1), el
siguiente sería el número el 11. Ahora ya hemos hecho todas las combinaciones
posibles de números binarios de 2 cifras, ya no hay más, entonces pasamos a
construir los de 3 cifras. El siguiente sería el 100, luego el 101, el 110 y el 111.
Ahora de 4 cifras...

Según el orden ascendente de los números en decimal tendríamos los números


binarios equivalentes a sus números en decimal :

El 0 en decimal sería el 0 en binario


El 1 en decimal sería el 1 en binario
El 2 en decimal sería el 10 en binario (recuerda solo combinaciones de 1 y 0)
El 3 en decimal sería el 11 en binario
El 4 en decimal sería el 100 en binario... Mejor mira la siguiente tabla:

Y así sucesivamente obtendríamos todos los números en orden ascendente de su


valor, es decir obtendríamos el Sistema de Numeración Binario y su número
equivalente en decimal.

Pero que pasaría si quisiera saber el número equivalente en binario al 23.456 en


decimal. Tranquilo, hay un método para convertir un número decimal en
binario sin hacerlo uno a uno.

Decimal a Binario

Para hacer la conversión de decimal a binario, hay que ir dividiendo el número


decimal entre dos y anotar en una columna a la derecha el resto (un 0 si el
resultado de la división es par y un 1 si es impar).

Para sacar la cifra en binario cogeremos el último cociente (siempre será 1) y


todos los restos de las divisiones de abajo arriba, orden ascendente.

Ejemplo queremos convertir el número 28 a binario:

28 dividimos entre 2 : Resto 0


14 dividimos entre 2 : Resto 0
7 dividimos entre 2 : Resto 1
3 dividimos entre 2 : Resto 1 y cociente final 1

Entonces el primer número del número equivalente en binario sería el cociente


último que es 1 y su resto que es también 1, la tercera cifra del equivalente
sería el resto de la división anterior que es 1, el de la anterior que es 0 y el último
número que cogeríamos sería el resto de la primera división que es 0.

Con todos estos número quedaría el número binario: 11100.

Conclusión el número 28 es equivalente en binario al 11.100.

Vemos como para sacar el equivalente se coge el último cociente de las


operaciones y los restos que han salido en orden ascendente (de abajo arriba)
11100.

El subíndice 2 que hemos puesto al final del número en binario, es para indicar
que es un número en base 2, pero no es necesario ponerlo.

Veamos otro ejemplo el número 65 pasarlo a binario.

Pasar de Binario a Decimal

Pues ahora al revés. ¿Que pasaría si quisiera saber cual es el número equivalente
en decimal del número binario por ejemplo 1001? Pues también hay método.

PASO 1 – Numeramos los bits de derecha a izquierda comenzando desde el 0


(muy importante desde 0 no desde 1).
PASO 2 – Ese número asignado a cada bit o cifra binaria será el exponente que le
corresponde.
PASO 3 – Cada número se multiplica por 2 elevado al exponente que le
corresponde asignado anteriormente.
PASO 4 - Se suman todos los productos y el resultado será el número equivalente
en decimal

Vamos a verlo paso a pa so con un ejemplo y gráficamente que será más sencillo
de entender.

Ejemplo el número 1001 queremos saber su equivalente en decimal. Primero


asignamos exponentes:
Empezamos por el primer producto, que será el del primer número binario por 2
elevado a su exponente, es decir 1 x 23 .

OJO Recuerda que cualquier número elevado a cero es 1, por ejemplo 2


elevado a 0 es = 1.

El segundo y el tercer productos serán 0 por que 0 x 22 y 0 x 21 su resultado es


0 y el último producto será 1 x 20 que será 1, luego 1 x 20 es 1 (no confundir y
poner 0).

Ya estamos en el último paso que es sumar el resultado de todos estos


productos:

1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 0 + 0 + 1 = 9

El equivalente en decimal del número binario 1001 es el 9.

Veamos otro ejemplo solo gráficamente para que lo entiendas definitivamente.


En este caso la asignación del exponente a cada número ya lo hacemos
directamente en los productos, que es como se suele hacer normalmente.

Otro ejemplo con todos los datos:


Operaciones Binarias
Las operaciones binarias que se pueden realizar con número binarios son las
mismas que en cualquier otro sistema: suma, resta, multiplicación y división.
Veamos algunos Ejemplos de Operaciones Binarias.

Suma de Números Binarios

Las posibles combinaciones al sumar dos bits son

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Un ejemplo con más cifras:

100110101
+ 11010101
———————————
1000001010

Operamos como en el sistema decimal: comenzamos a sumar desde la derecha,


en nuestro ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y
nos llevamos 1 (este "1" se llama arrastre).

A continuación se suman los números de la siguiente columna: 0 + 0 = 0, pero


como nos tenemos que sumar el 1 de la anterior suma, el resultado será 0 + 1 =
1.

Así seguimos hasta terminar todas la columnas (exactamente como en decimal).

Resta de Números Binarios


Las restas básicas 0-0, 1-0 y 1-1 son evidentes:

0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = Es una resta imposible en binario porque no hay números negativos.

La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad


prestada de la posición siguiente: 10 - 1 = 1 y me llevo 1, lo que equivale a decir
en decimal, 2 - 1 = 1. Esa unidad prestada debe devolverse, sumándola, a la
posición siguiente. Veamos algunos ejemplos:

Dos ejemplos más:

10001 11011001
-01010 -10101011
—————— ———————
00111 00101110

Multiplicación de Números Binarios

0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1

Por ejemplo, multipliquemos 10110 por 1001:

10110
x 1001
———————
10110
00000
00000
10110
—————————
11000110

División de Números Binarios

Igual que en el producto, la división es muy fácil de realizar, porque no son


posibles en el cociente otras cifras que no sean UNOS y CEROS.
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el
mismo número de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se
intenta la división tomando un dígito más (1001 entre 100).

Si la división es posible, entonces, el divisor sólo podrá estar contenido una vez
en el dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el
resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras
del dividendo del divisor y bajamos la cifra siguiente.

El procedimiento de división continúa del mismo modo que en el sistema


decimal.

Lenguaje Binario
La misma lógica que se utiliza para representar los números se puede utilizar
para representar texto. Lo que necesitamos es un esquema de codificación, es
decir, un código que nos haga equivalencias entre un número binario y una letra
del abecedario. Necesitamos un número binario por cada letra del alfabeto.

Por ejemplo, en informática, cada tecla del teclado (números, letras, signos,
etc.) hay un número en binario que es su equivalente. Luego veremos
muchos más.

Un ejemplo real: 0100 0001 es el número binario que representa la letra A. En


binario ese número es equivalente a la letra A.
Varios códigos estándar para convertir texto en binario se han desarrollado a lo
largo de los años, incluyendo ASCII y Unicode, los más famosos y utilizados.

El Código Estándar Americano para el Intercambio de Información (ASCII) fue


desarrollado a partir de los códigos telegráficos, pero luego fue adaptado para
representar texto en código binario en los años 1960 y 1970.

La versión original de ASCII utiliza 8 bits (recuerda cada número binario es un


bit) para representar cada letra o carácter, con un total de 128 caracteres
diferentes.

Cuando hablamos de caracteres nos referimos tanto a letras, como a números,


como a signos ($, /, etc.).

Este es uno de los códigos o lenguaje binario para representar texto mediante
números binarios que más se utilizó durante mucho tiempo.

Mientras ASCII se encuentra todavía en uso hoy en día, el estándar actual para la
codificación de texto es Unicode.

El principio fundamental de Unicode es muy parecido a ASCII, pero Unicode


contiene más de 110.000 caracteres, cubriendo la mayor parte de las lenguas
impresas del mundo.

La relativamente simple versión de 8 bits de Unicode (referido como UTF-8) es


casi idéntica a ASCII, pero las versiones de 16 y 32 bits (referido como UTF-16 y
UTF-32) le permiten representar casi cualquier tipo de lenguaje impreso.

A continuación puedes ver una tabla con el código para representar letras y
caracteres en ASCII y en UNICODE de 16 bits.
Como ves en ASCII cada letra se representa por un número binario de 8 números
y UNICODE por 16. Así podemos construir un lenguaje binario donde cada letra
se representa por un número binario.

Estos códigos son lo que se llama en informática, el código máquina, y es el


utilizado por todos los ordenadores para entenderse con las personas. Los
programadores, escriben sus programas en un lenguaje de programación, que
posteriormente tienen que convertirlo a código máquina para que lo entienda el
ordenador. si quieres saber más sobre este te recomendamos el siguiente
enlace: Lenguajes de Programación.

Según el Diccionario Enciclopédico de Oxford, una entrada aritmética binaria


apareció por primera vez en Inglés en 1796 en A Mathematical y Diccionario
filosófico.

A Gottfried Leibniz, se le atribuye la invención del sistema de numeración


binario en 1679 y estaba basado en las antiguas figuras chinas de Fu Xi. Aunque
las personas de la remota isla de Mangareva utilizaban un tipo de sistema binario
mucho antes para las transacciones comerciales, dada la lejanía de Leibniz a esta
isla, es probable que se acercara al código binario de forma independiente.

En 1605, Francis Bacon discutió un sistema por el cual las letras del alfabeto
podrían reducirse a secuencias de dígitos binarios, que luego podría ser codificada
como variaciones apenas visibles en la fuente en cualquier texto aleatorio. Fue el
primer lenguaje binario utilizado.

Otro matemático y filósofo con el nombre de George Boole publicó un artículo


en 1847 llamado "El análisis matemático de la lógica" que describe un sistema
algebraico de la lógica, ahora conocido como elálgebra de Boole . El Sistema de
Boole se basó en números binarios, dando un 0 o un 1, el enfoque de encendido y
apagado, que consistía en las tres operaciones más básicas: AND, OR y NOT. Hoy
en día es el utilizado en Electrónica Digital

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. Hay que tener claro que si no sabemos resolver este problema, no podremos
escribir el programa. Si no sabemos que es una suma, sería casi imposible hacer un
programa para que nos sume dos números, a no ser que alguien nos ayudara.

A ti se te puede ocurrir una manera de resolverlo, a tu compañero, otra, lo importante es


que las dos formas de resolverlo lleven al mismo resultado, la suma.

La forma con el que resolvéis el problema, es lo que se llama algoritmo, y es lo que vamos a
ver a continuación.

¿Qué es un Algoritmo?

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.”

Este "lenguaje" el algoritmo está escrito en nuestro idioma, pero ahora necesitamos
acercarnos a un poco más al lenguaje del ordenador. Pero el primer paso para realizar un
programa es sacar su algoritmo, es como explicar lo que queremos que haga nuestro
programa. Ahora entiendes porqué decíamos antes que si no sabemos nosotros resolver el
problema, no podríamos crear el programa. No seríamos capaces de hacer su algoritmo.

Ahora que ya tenemos el algoritmo, para el siguiente paso se puede utilizar dos formas:
Sacar el diagrama de flujo del algoritmo o su pseudocódigo. Algunos programadores hacen
los dos.

Diagrama de Flujo

Un diagrama de flujo es una representación gráfica del algoritmo. Expresamos los pasos del
algoritmo mediante un esquema con unos símbolos establecidos.

Un diagrama de flujo debe proporcionar una información clara, ordenada y concisa de todos
los pasos a seguir.

Veamos un ejemplo:

Un algoritmo para cocinar un huevo para otra persona sería:

- Pregunto si quiere el huevo frito.


- Si me dice que si, lo frio, si me dice que no, lo hago hervido.
- Una vez cocinado le pregunto si quiere sal en el huevo.
- Si me dice que no lo sirvo en el Plato. Si me dice que si le hecho sal y después lo sirvo en el
plato.

Ahora que ya sabemos todos los pasos, mediante el algoritmo, podemos hacer un esquema
con estos pasos a seguir. Este esquema será el Diagrama de Flujo.
Si uno tiene experiencia puede prescindir del algoritmo escrito, pero siempre tendremos
que tenerlo en mente para hacer el diagrama de flujo sin equivocarnos.

Como nosotros nos centraremos más en el pseudocódigo, no hablaremos más de los


diagramas de flujo. Si quieres aprender hacer diagramas de flujo te recomendamos este
enlace: diagramas de flujo.

El Pseudocódigo

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.

Una de las mayores dificultades con las que se encuentran los hispanoparlantes que
empiezan a programar es el idioma. Por eso es bueno utilizar el pseudocódigo, algo así como
un falso lenguaje de programación en español, que ayuda a asimilar con más facilidad las
ideas básicas.

Por ejemplo si queremos escribir algo en pantalla, en pseudocódigo podríamos poner:

Escribir "Hola" o Escribir 20+30.

También podemos usar:

mostrar por pantalla "Hola"

Realmente el pseudocódigo lo podríamos escribir como nosotros quisiéramos, ya que


realmente no es el programa en sí, solo es una ayuda para posteriormente realizar el
programa mediante el lenguaje de programación que utilicemos, eso sí, es de gran ayuda,
tanto que es imprescindible. Pero aunque lo podamos escribir de cualquier forma, la
mayoría de los programadores suelen usar un vocabulario en común. Este vocabulario será
el que veamos aquí.

Recuerda que el pseudocódigo para un programador es fundamental.

Si sabes hacer el pseudocódigo del programa, pasarlo a cualquier lenguaje de


programación es muy sencillo, solo tendrás que aprender los comandos equivalentes a las
instrucciones en pseudocódigo.

Además, la mayoría de los lenguajes utilizan prácticamente los mismos comandos en su


lenguaje.

Sigamos hablando un poco más sobre el pseudocódigo.

Para especificar el principio y el fin del programa pondremos:

Inicio

Aquí iría el programa en pseudocódigo

Fin

Otra forma muy utilizada sería:

Proceso NombreDelPrograma

Aquí iría el programa en pseudocódigo

FinProceso

Las 3 órdenes que más utilizaremos en pseudocódigo son:

Escribir --> Escribe en pantalla el texto que pongamos entre paréntesis o también puede
escribir en pantalla el valor de una variable. Esta instrucción en casi todos los programas
suele escribirse con la palabra write o document.write('Hola ');.

Leer Edad- -> nos lee desde lo que el usuario marque desde el teclado y guarda el valor, por
ejemplo dentro de una variable, en este caso la variable Edad (luego veremos lo que son las
variables).

En programación real suele utilizarse la instrucción input.

Calcular 3 x 5 -->Calcula valores

Teniendo el pseudocódigo o el diagrama de flujo lo tenemos muy fácil, ya que es fácilmente


traducible a cualquier lenguaje de programación.
Según avancemos en el tema irás viendo ejemplos de pseudocódigo.

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 ejemplo.: 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
momentoy 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 también llamada
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= “Tengo 14 años”; //fíjate que va entre comillas.

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.

En algunos lenguajes de programación, 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". Además se tiene que especificar que tipo de
variable es al declararla (no en todos los lenguajes). La declaración de variables se suele
hacer al principio del programa, por eso es importante saber cuantas variables vamos a usar
antes de escribir nuestro programa. Veamos un ejemplo:

VariableNumerica: Edad; //Declaramos las variables numéricas.


VariableTexto: Nombre, Apellido; //Declaramos las variables de texto.

Nota: En la mayoría de los programas las variables se declaran poniendo "var" delante y
dandoles un valor inicial:

var Edad = 15; var Texto = "Hola", etc.

A partir de este momento, podrás meter su valor en cualquier parte del programa.

Edad = 5;
Nombre = "Juan";
Apellidos = "Rodriguez"

Después podrás cambiar su valor, dentro del programa, las veces que quieras.

En los programas que no hace falta declarar el tipo de variables podríamos empezar el
programa simplemente metiendo los valores iniciales de las variables o ir poniendo las
variables con sus valores iniciales durante el desarrollo del programa. Si un valor no lleva
comillas el programa entiende que es numérica directamente. Este último caso es el más
fácil para empezar, según surga una variable la ponemos con su valor inicial directamente en
la parte del programa que sea.
Podemos sumar, restar, multiplicar, dividir y hacer cualquier tipo de operación
matemática con las 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.

Los operadores matemáticos más usados en todos los lenguajes de programación (se usan
los mismos) son los siguientes:

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.

Variables Locales y/o Globales

En muchos lenguajes, 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, de un 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.


Nosotros en todos los ejemplos las usaremos como locales, por eso no verás nunca la
palabra global.

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:

Secuenciales

Selectivas

Repetitivas

Empecemos por las primeras.

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:

numerica: radio, area; //Declaración de variables;

inicio

Escribir “dame el radio del circulo”;

Leer radio // asignación del valor de la variable radio por el usuario por medio del teclado;

area =3.14159*radio; //nosotros asignamos el valor de la variable área con su fórmula;

Escribir “el área del circulo es:” //OJO En los texto SI PODEMOS Y DEBEMOS PONER
ACENTOS;

Escribir area; // nos muestra en la pantalla el valor de la variable area resultado de la


fórmula anterior;

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

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.

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:

numericas: numero, raíz

inicio

mostrar por pantalla “introduce un numero”

leer numero

Inicio SI

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

raiz=raiz_cuadrada(numero)

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

mostrar por pantalla raiz

finSI

fin

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

if numero = 0 { órdenes que hará el programa 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.
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

numericas: numero, raiz


fin declaración de variables
inicio
Escribir 'introduce un numero'
Leer numero
InicioSI

SI numero >= 0 ENTONCES:


raiz = raiz_cuadrada(numero);
Escribir 'la raíz cuadrada es:' + raiz;
SINO Escribir 'lo siento, no puedo calcular la raíz cuadrada de un numero negativo'

finSI

fin

Recuerda que si el número es menor de 0 sería negativo y no existen raices de números


negativos.

Si te has fijado podemos poner Escribir "un texto" + variable (texto y a continuación
aparecerá el valor de la variable en ese momento).

Cuando escribamos nuestro programa, en lugar de pseudocódigo, debemos poner la


condición de la siguiente manera:

if numero >= 0 {raiz = raiz_cuadrada(numero); Escribir 'la raíz cuadrada es:' + raiz;} else {
Escribir 'lo siento, no puedo calcular la raíz cuadrada de un numero negativo"}

Fíjate que podemos escribir todas las órdenes que queramos dentro de los corchetes
siempre separadas por ;.

Cuando te encuentres con un programa real las órdenes dentro de un corchete verás que
suelen ponerse de esta forma:

if numero >= 0 {

raiz = raiz_cuadrada(numero);
Escribir 'la raíz cuadrada es:' + raiz;

} else {

Escribir 'lo siento, no puedo calcular la raíz cuadrada de un numero negativo"

Es lo mismo que antes, pero cuando tengamos que depurar (repasar) el programa
visualmente nos será mas sencillo.

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};


if (variableOpciones=1) {lo que corresponda};
if (variableOpciones=2) {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}

También con else:

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
(las dos).

Otro caso sería si se cumple una cualquiera de las dos condiciones:

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


Como ves es el símbolo | (barra recta vertical del teclado = AltGr + 1)

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.

Estructuras Repetitivas o Bucles DESDE o "FOR".

Estas estructuras son instrucciones que se repiten formando un bucle (algo que se repite
una y otra vez).

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

La estructuras FOR tienen 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.
Hay varias, pero esta que explicamos es la más utilizada.

Vamos a suponer que estamos pensando en un programa que deba REPETIR algunas veces
una acción.

Un ejemplo más concreto. 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!

Veamos como sería el pseudocódigo:


inicio

Inicio Bucle Desde


desde i=1 hasta i<=3.000

i=i+1;
Escribir 'Prometo ser bueno';

fin desde;
fin

Como vemos la variable i (llamada contador) no se define antes del bucle. al entrar en el
bucle i valdrá 1 (toma el valor inicial que le pongamos en el primer igual, en nuestro caso i=
1. Después le decimos hasta que valor de i se repetirá el bucle, en nuestro caso hasta que i
valga menos o igual a 3000. Posteriormente ponemos cuanto aumenta la variable, en
nuestro caso añadimos 1 al valor de la variable i; i = i + 1. Al final ponemos las órdenes que
queramos que haga el programa cada vez que haga el bucle; en nuestro caso escribir en
pantalla "Prometo ser bueno".

Como ves la primera vez que entra el programa en el bucle i vale 1, después i vale 2 (se le
suma 1) y después escribe la fase. Antes de salir del bucle vuelve a evaluar la condición para
ver si la sigue cumpliendo, si es así vuelve hacer el bucle entero. ¿Es así? Pues claro porque
i=2 sigue siendo menor de 3000.

Pero ojo la segunda vez que hace el bucle i tomará el valor de 3, ya que le sumará 1 al valor
que tenía, y recuerda que como ya hizo el bucle una vez ahora i = i + 1 será 3; ya que i = 2 +1.

Ves que cada vez que hace una vez el bucle el valor de i aumenta 1. Esto es lo que se llama
"el paso". Podríamos hacer el bucle con paso 2 simplemente haciendo i = i +2.

Bueno siguiendo con el bucle, resulta que este bucle se repetirá hasta que i valga iguala o
menor de 3000. Bueno pues en todas esas repeticiones el ordenador escribirá la frase:
Prometo ser bueno. Castigo cumplido.

En lenguaje de programación real las estructuras For se forman:

for ( i = 1 ; i<= 3000 ; i = i + 1)

A veces podrás ver esto:

for ( i = 1 ; i<= 3000 ; i++)

i++ significa lo mismo que i = i +1; es especificar el paso 1 de i pero de otra forma, nada más

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


en lo bucles for se llama i.
¿Y si quisiéramos poner un paso decreciente? Es decir que el valor de i fuera disminuyendo
cada vez que se repite el bucle. Pues muy sencillo poniendo i = i - 1.

Ejercicio: Programa que escriba los números del 1 al 10 con FOR

Funciones

Una función es un conjunto de instrucciones que se agrupan para realizar una tarea
concreta y que se pueden reutilizar fácilmente.

Hay veces que dentro de un programa varias instrucciones se repiten muchas veces, sobre
en todo en programas muy largos. Para no tener que repetirlas una y otra vez las agrupamos
dentro de una función y cada vez que queramos activarlas solo tendremos que "llamar" o
"invocar" a la función en la parte del programa que la necesitemos.

Resumiendo, una función es un trozo de código que hace algo concreto y que podemos
utilizarlo en cualquier parte de nuestro programa y las veces que queramos.

Veamos como se crea una función en casi todos los programas directamente (sin
pseudocódigo).

function nombre_funcion() {
instrucciones de la función
}

El nombre de la función se utiliza para llamar o invocar a esa función cuando queramos que
se ejecute. El concepto es el mismo que con las variables, a las que se les asigna un nombre
único para poder utilizarlas dentro del código.

Después del nombre de la función, se incluyen dos paréntesis cuyo significado se detalla
más adelante. Por último, los símbolos { } se utilizan para encerrar todas las instrucciones
que pertenecen a la función (de forma similar a como se encierran las instrucciones en las
estructuras if ).

Veamos un ejemplo:

numero1 = 5;
numero2 = 9;

function suma() {
resultado = numero1 + numero2;
Escribe "El resultado es " + resultado;
}

Para "llamar" o "invocar" a la función dentro del programa solo tendremos que escribir su
nombre de la siguiente forma:
suma();

Fijate que hemos declarado las variables que usará la función antes de la función. También
podríamos ponerlas después de la función, pero siempre antes de llamar a la función.

Cada vez que el programa lea suma(); realizará la función. Normalmente las funciones que
vamos a utilizar en el programa se definen al principio del programa, para eso debemos
tener muy claro qué funciones necesitaremos.

La mayoría de las veces si las variables solo se usan y existen dentro de la función se ponen
dentro de los paréntesis iniciales (que hasta ahora no usamos). Esto se llama poner
"argumentos" a la función. Las variables (pueden ser constantes) que necesitan las
funciones para trabajar se llaman "los argumentos de la funcion". OJO estas varibales solo
existen dentro de la función y no las podremos utilizar en otra parte del programa, por eso
se llaman variables locales. Mira el ejemplo:

function sumar(x,y){
var total = x + y;
alert(total);
}
sumar(1,2);
sumar(5,7);

Primero realiza la suma dando valores x=1 e y=2 y luego hace otra suma con diferentes
valores para x e y (5 y 7).

En este caso las variables no las declaramos antes de la función (ni en ningún sitio), son
variables que solo contiene la función. Para cambiar el valor de las variables se hace
llamando a la función y poniendo sus valores.

OJO las varibales x,y y total no se podrán utilizar en otra parte del programa, ya que sol
locales