Sie sind auf Seite 1von 233

rias

A todos los que me


apoyaron alguna vez

Sobre el Autor
Ernesto Rodriguez es Ingeniero
Tcnico Industrial y Profesor de
Educacin Secundaria durante 18 aos
del rea de Tecnologa.
Fundador de la empresa Ermoweb
dedicaca al mundo de internet y la
programacin.
En su labor docente sigue el lema:
Todo el mundo puede aprender si se le
ensea adecuadamente.
Otros Libros del Autor

Electrnica Bsica Fcil: Un


libro sencillo y fcil de aprender
con todos los conocimientos bsicos
sobre electrnica
- Curso de Electricidad: El curso
trata temas desde la estructura de
tomo hasta montajes de motores en
triangulo y calculo de potencias en
corriente trifsica.
101 Problemas de Lgica:
Juegos para agilizar la mente.
Estilo Compadre: Su primera
novela. Una novela policial y
romntica, donde el pasado vuelve
para
traer
inesperadas
consecuencias.

Pgina web del autor:


http://www.areatecnologia.com

INTRODUCCIN
1. ALGORITMOS, DIAGRAMAS DE
FLUJO Y PSEUDOCDIGO
1.1 Qu es un Algoritmo?
1.2 Diagramas de Flujo
1.3 Pseudocdigo

2. ELEMENTOS COMUNES EN LA
PROGRAMACIN
2.1. Comentarios
2.2. Las variables

3. ESTRUCTURAS DE CONTROL
3.1 Estructuras secuenciales
3.2. Estructuras selectivas

3.2.1 Alternativas simples (condicional


IF)
3.2.2 Alternativas dobles
(IF.ELSE.)
3.2.3 Alternativas mltiples o con varias
condiciones.
3.3. Estructuras de control REPETITIVAS
3.3.1 Estructura MIENTRAS(condicin) o
"WHILE
3.3.2 Estructura REPETIR (hacer)...
MIENTRAS QUE (condicin) o
"DO.....UNTIL
3.3.3 Estructura DESDE o "bucles FOR"
3.4 Otras Estructuras de Control
3.4.1 Variables Acumuladores

4. MATRICES
5. TIPOS DE ERRORES
6. EJEMPLOS DE PSEUDOCDIGOS

7. TIPOS DE LENGUAJES DE
PROGRAMACIN Y PARA QU
SIRVEN.

Introduccin
Los fundamentos de programacin
son las bases comunes a todos los
lenguajes de programacin. Es lo
primero que tendrs que aprender,
incluso antes de elegir el programa con
el que quieras programar.

El propsito general de un lenguaje de


programacin es permitir a un ser
humano (el programador) traducir la
idea de un programa en una secuencia de
instrucciones que el ordenador sea
capaz de ejecutar.

Como los lenguajes humanos, los


lenguajes
de
programacin
son
herramientas de comunicacin, pero al
contrario que los lenguajes corrientes
como el ingls o el chino, los
destinatarios de los lenguajes de
programacin no son slo humanos sino
tambin los ordenadores
Si nos queremos entender con el
ordenador, el ordenador solo entiende el
llamado cdigo mquina (1 y 0, 1=hay o
0=no hay corriente).

Es por eso que tenemos 2 tipos


diferentes
de
lenguajes
de
programacin, dependiendo de su
cercana 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 ms cercanos al idioma


del ordenador, llamados de bajo nivel,
son muy complicados (casi como el
cdigo mquina) y poco usados. El ms
conocido es el cdigo o lenguaje
mquina, un cdigo que el ordenador
puede interpretar directamente. Aqu
tienes un ejemplo:
8B542408 83FA0077 06B80000
0000C383
Complicado NO?

De este tipo de lenguajes, que solo


suelen utilizar los que programan los
ordenadores inicialmente para su uso, no
vamos hablar aqu. Hablaremos de los
conocimientos comunes a los lenguajes
de alto nivel.
Los lenguajes de programacin 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 cdigo de un programa suele


escribirse en uno o varios ficheros de
texto. Este cdigo que es interpretable
por un humano (o al menos debiera
serlo) no puede ser ejecutado
directamente por el computador.
El problema de los lenguajes de alto
nivel es que necesitan un compilador o
interprete para traducirlo al cdigo
mquina.

Existen unos lenguajes llamados


lenguajes interpretados, en los que
existe un programa llamado intrprete
que lee las lneas de cdigo y las ejecuta
inmediatamente, es decir, se analizan y
ejecutan las instrucciones por el propio
programa directamente, pero siguen
siendo lenguajes de alto nivel.
Ejemplos de este tipo son el GML o el
Java.

Pero no te vuelvas loco, todo esto es


puramente tcnico, lo importante es que
los lenguajes, como todo, hay que
aprendrselos, pero tienen una ventaja, y
es que tienen varios puntos en comn,
ms bien muchos.
Estos puntos son lo que vamos a
estudiar aqu, los fundamentos de
programacin comn a cualquier
lenguaje de alto nivel.

Una vez aprendidos, tendrs que


elegir tu el lenguaje que quieras, pero
con estos conocimientos, todos te
resultarn muy fciles de aprender, solo
tendrs que aprender unas cuantas
instrucciones en ingles.

1. Algoritmos, Diagramas de
Flujo y Pseudocdigo
Los lenguajes de programacin,
cuentan todos en su haber con un juego
de "instrucciones".
Una instruccin no es ms que una
orden que nosotros le damos a la
mquina.

Y es que, al fin y al cabo, un


programa no es ms que una secuencia
de instrucciones, escritas en algn
lenguaje de programacin y pensadas
para resolver algn tipo de problema.
Eso s, si no sabemos resolver este
problema, no podremos escribir el
programa.
Sera absurdo intentar hacer un
programa informtico para resolver un
ejercicio que requiere de una frmula, si
no sabemos qu frmula necesitamos, ni
cmo aplicarla.

Por eso cuando te plantees crear un


programa primero tendrs que saber
para qu servir y cmo lo resolver.
A ti se te puede ocurrir una manera de
resolverlo, a tu compaero, otra. Y las
dos formas pueden ser correctas.
Este mtodo con el que resolvis el
problema, es lo que se llama algoritmo,
y es lo primero que vamos a ver.

1.1 Qu es un Algoritmo?
Un algoritmo es una secuencia de
PASOS a seguir para resolver un
problema.
Por ejemplo, cuando quiero ver una
pelcula de vdeo, podra hacer los
siguientes pasos = algoritmo:
Elijo una pelcula de las de mi
coleccin.

- Compruebo SI TV y vdeo estn


conectados a la red (y procedo).
SI la TV est apagada, la
enciendo, SI NO, pues no. Y lo
mismo con el vdeo.
Introduzco la pelcula en el
vdeo. Dejo el estuche sobre el
vdeo.
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 vdeo).
-

Me pongo cmodo.

Pulso PLAY en el mando del


vdeo.
Fjate bien en unos detalles que son
fundamentales y que aparecen en este
algoritmo:

- La descripcin de cada paso no me


lleva a ambigedades, los pasos son
absolutamente explcitos y no inducen a
error.
- El nmero de pasos es finito. Tienen
un principio y un fin.
Segn lo visto una mejor definicin de
algoritmo sera:

Un algoritmo es una sucesin finita


de pasos (no instrucciones como en los
programas) no ambiguos y que se
pueden llevar a cabo en un tiempo
finito.

Hay distintas formas de escribir un


algoritmo, bien usando un lenguaje
especfico de descripcin de algoritmos,
bien mediante representaciones grficas
como diagramas de flujo. Esta ltima
suele ser la ms utilizada por los
programadores. Veamos un pequeo
resumen de creacin de diagramas de
flujo.

1.2 Diagramas de Flujo


Los diagramas de flujo representan la
secuencia o los pasos lgicos para
realizar una tarea mediante unos
smbolos.
Dentro de los smbolos se escriben los
pasos a seguir.
Un diagrama de flujo debe proporcionar
una informacin clara, ordenada y
concisa de todos los pasos a seguir.

Veamos un ejemplo muy sencillo.


Haremos el algoritmo y el diagrama de
flujo para cocinar un huevo para otra
persona.
Los pasos a seguir o algoritmo escrito
sera:
- Pregunto si quiere el huevo frito.
- Si me dice que s, 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
despus lo sirvo en el plato.
Ahora vamos hacer el diagrama de
flujo:

Sencillo NO?

Si uno tiene experiencia puede


prescindir del algoritmo escrito, pero
siempre tendremos que tenerlo en mente
para hacer el diagrama de flujo sin
equivocarnos.
Reglas Bsicas Para la Construccin
de un Diagrama de Flujo
1. Todos los smbolos han de estar
conectados
2. A un smbolo de proceso pueden
llegarle varias lneas

3. A un smbolo de decisin pueden


llegarle varias lneas, pero slo saldrn
dos (Si o No, Verdadero o Falso).
4. A un smbolo de inicio nunca le
llegan lneas.
5. De un smbolo de fin no parte
ninguna lnea.
Los smbolos que se usan para
realizar los diagramas de flujo son los
siguientes:

En el Smbolo de decisin a tomar, los


valores de salida pueden ser SI o NO o
VERDADERO o FALSO.
El smbolo de Inicio o Final del
Diagrama puede ser un cuadrado con los
bordes redondeados o una elipse.
Se pueden utilizar colores para los
smbolos.
Veamos otro ejemplo muy sencillo.

Queremos hacer un programa


informtico que nos sume dos nmeros y
nos d el resultado en pantalla.
Solucin en la siguiente pgina:

El smbolo de resultado es un smbolo


usado en los diagramas para soluciones
con el ordenador. Es el smbolo de
salida del resultado por la pantalla del
ordenador.
Ves que es muy sencillo, hay que ir
poniendo los pasos lgicos que se deben
seguir para realizar la tarea o el
programa.

En el ejercicio tenemos el inicio y el


fin, una entrada de datos, para meter los
2 nmeros, una operacin a realizar, la
suma, y un resultado a mostrar. Cada uno
de esos pasos con su smbolo
correspondiente en el diagrama.
Recuerda que estos diagramas de flujo
te facilitarn mucho la tarea antes de
empezar con tu programa.

Independiente del lenguaje de


programacin que vaya a usarse; un
algoritmo que est escrito en
pseudocdigo o con un diagrama de
flujo es fcilmente traducible a muchos
lenguajes de programacin.
Si quieres ver ms ejemplos de
diagramas de flujo te recomendamos el
siguiente enlace:

http://www.areatecnologia.com/informa
de-diagramas-de-flujo.html

1.3 Pseudocdigo
El pseudocdigo es una forma de
escribir los pasos, pero de la forma
ms cercana al lenguaje
de
programacin 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 pseudocdigo, algo as
como un falso lenguaje de programacin
en espaol, que ayuda a asimilar con
ms facilidad las ideas bsicas.
Incluso algunas universidades han
creado sus propios "intrpretes de
pseudocdigo".

Su misin es ayudar a los alumnos de


primer curso a crear los programas
"pensando
en
espaol",
pero
permitindoles adems, probar esos
programas desde un entorno "casi real".
Por ejemplo, PSeInt es una
herramienta para asistir a un estudiante
en sus primeros pasos en programacin,
mediante un simple e intuitivo
pseudolenguaje
en
espaol
(complementado con un editor de
diagramas de flujo).

Por ejemplo si queremos escribir algo


en pantalla, en pseudocdigo podramos
poner:
Escribir "Hola" o Escribir 20+30.
Tambin podemos usar:
mostrar por pantalla "Hola"

Realmente el pseudocdigo lo
podramos escribir como nosotros
quisiramos, ya que realmente no es el
programa en s, solo es una ayuda para
posteriormente realizar el programa
mediante el lenguaje de programacin
que utilicemos, eso s, es de gran ayuda.
Recuerda que el pseudocdigo para un
programador es fundamental.

Si sabes hacer el pseudocdigo del


programa, pasarlo a cualquier lenguaje
de programacin es muy sencillo, solo
tendrs que aprender los comandos
equivalentes a las instrucciones en
pseudocdigo.
Adems, la mayora de los lenguajes
utilizan prcticamente los mismos
comandos en su lenguaje.
Sigamos hablando un poco ms sobre
el pseudocdigo.

Para especificar el principio y el fin


del programa pondremos:
Inicio
Aqu ira el programa en pseudocdigo
Fin
Otra forma muy utilizada sera:
Proceso NombreDelPrograma
Aqu ira el programa en pseudocdigo

FinProceso
Las 3 cosas ms comunes que
podemos escribir en pseudocdigo son:
Escribir Escribe en pantalla el texto
que pongamos entre parntesis o tambin
puede escribir en pantalla el valor de
una variable. Esta instruccin en casi
todos los programas suele escribirse con
la palabra write o document.write('Hola
');.

LeerEdad
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 programacin real suele utilizarse
la instruccin input.
Calcular3 x 5

Calcula valores

Ya veremos ms adelante ejemplos de


programas en pseudocdigo, pero
recuerda que lo ms usado es Leer,
Escribir y Calcular.
Ahora vamos a empezar con lo
interesante, vamos a empezar aprender a
programar.

2. Elementos Comunes en la
Programacin
2.1. Comentarios
Poner comentarios de lo que vamos
haciendo es muy til, sobre todo cuando
llega la hora de revisar el programa, si
no, ms de una vez nos encontraremos
diciendo qu haca 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, solo servir para
leerlo nosotros dentro del programa.
Nosotros durante las explicaciones
tambin pondremos comentarios.

2.2. Las variables


Esto es una de las cosas ms importantes
en programacin. Entender bien que es
una variable es fundamental.
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 guin bajo o
varias palabras sin separar, pero la
primera letra de cada palabra en
maysculas
Ejemplos para escribir el nombre de
una
variable:
VidasPerdidas,
vidaperdidas, vidas_perdidas.

Ojo las maysculas y minsculas son


muy importantes en las variables, no es
la misma variable numero que Numero,
son dos diferentes. Pero no lleva acento
la palabra nmero?
OJO NO se pueden poner acentos en
el nombre de las variables.

Las variables, adems de un nombre,


tambin tienen un valor que es lo que
hay dentro de ella (recuerda dentro de la
caja) en ese momento y que puede ir
variando segn se vaya desarrollando
el programa, por eso se llama variable.
Una variable dependiendo de su valor
puede ser:
Variable Numrica, si solo
puede tener un valor numrico.

Variable de texto, si solo


puede contener texto dentro de ella
(letra, palabra o frase (string). Una
frase se llama 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 ejemplo definamos 2 variables
diferentes

vidas = "Cinco"
Vidas_Fin = "5"
En los dos casos el valor es un texto,
nunca el valor de 5.
Las numricas no llevan comillas en
su valor.
Por ejemplo vidas = 5.
En este caso su valor s que es el
nmero 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 numrica. Fjate
que esto no hace nada, es solo un
comentario.

VariableDeTexto= Edad;
VariableNumerica= Edad + 2 ;
El valor de VariableNumerica, es el
valor de la variable Edad (numrica y
que vala 3) +2.
En este caso el valor de
VariableNumerica sera = 5 (resultado
de 3+2). Ojo podra cambiar durante el
desarrollo del programa, recuerda que
es una variable.

VariableBooleana = true; en este caso


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

Lo normal es declarar las variables


al principio de un programa.
Declarar no es ms que decir "mira, yo
quiero tres variables, y quiero que una
se llame Nombre, otra Edad y otra
Apellido".
A partir de este momento, podrs
meter su valor, en cualquier parte del
programa.

Por ejemplo, Juan en Nombre, un 5


en Edad y Rodrguez en la variable
Apellido.
Ojo no es la misma variable Nombre
que nombre, como ya dijimos
anteriormente.
Despus podremos cambiar su valor
dentro del programa las veces que
queramos.
Las variables se suelen declarar al
principio del programa.

Declarar las variables es decir qu


tipo de dato es el que queremos
representar con ese nombre de variable.
OJO hay lenguajes en los que no es
necesario declarar la variable. Pero en
la mayora si es necesario
Veamos un ejemplo:

numerica: Pepe //declaramos la


variable Pepe como numrica. Solo
puede almacenar nmeros dentro del
programa. Ahora ya la podemos usar.
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 las variables o cualquier
nmero.

La resta se indicar con -, la suma con


+, la multiplicacin con *, la divisin
con / y la potencia con ^.
Una operacin menos habitual es
calcular el resto de una divisin. Esto
tambin tiene un smbolo asociado: %.
Esto se suele usar con frecuencia para
saber si un nmero es mltiplo de otro
(por ejemplo, ser mltiplo de 10 si su
resto entre 10 es 0, o ser impar si su
resto entre 2 es 1).

15%2 nos dar el resto de dividir 15


entre 2, es decir ser 1. Adems como el
resto es 1 el nmero ser impar.
Cuando tenemos varias variables
numricas o de texto las podemos
declarar todas a la vez de la siguiente
foma:

numerica: Pepe, Mari ,Juan


//Declaramos las variables numricas
que usaremos todas a la vez. Es ms
sencillo
y
se
puede
hacer.
Posteriormente les asignamos sus
valores iniciales.
Texto: Nombre, Apellido, Ciudad //
Declaramos las variables de texto que
vamos a usar a la vez. Posteriormente
les asignamos sus valores de texto
iniciales.

Veamos una sencilla suma de


variables:
Pepe=2;
Mari=3;
Juan = Pepe + Mari; // Juan tiene
ahora el valor numrico de 5.
Hay variables ya definidas por el
propio lenguaje de programacin 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 posicin x del ratn en cada
momento, hspeed es la velocidad
horizontal, etc.
Para acabar con el tema de las
variables, decir que pseudocdigo para
especificar que queremos recoger el
valor de una variable desde el teclado,
se suele hacer de la siguiente forma:

Leer NombreDeLaVariable
Por ejemplo: Leer Edad;
En este caso nos permite leer lo que el
usuario teclee y dejarlo guardado para
utilizarlo despus mediante la variable
nombre. Si el usuario teclea 5 la
variable Edad quedar con 5 como
valor.
Fjate en el siguiente programa escrito
es pseudocdigo:

Proceso Ejemplo
Escribir "Dime un numero"
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
Escribir "Su suma es ",
primerNumero + segundoNumero
FinProceso
Lo entiendes verdad? Nos suma los
dos nmeros introducidos por el usuario
desde el teclado.

Ojo si somos nosotros los que


queremos definir el valor de una
variable
no
pondremos
Leer,
simplemente el nombre de la variable y
su valor.
Edad = 15 //variable numrica
EdadTexto = Tengo 15 aos
//variable de texto.
Variables Locales y Globales

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 algunos lenguajes de programacin,


por defecto cuando asignamos una
variable ya es global. En otros no.
En la mayora de los lenguajes que
se necesita diferenciar local de global,
se pone la palabra global, un punto y
detrs el nombre de la variable. De esta
forma, esta variable la podemos usar en
todas las partes del programa sin
problemas.
Ejemplo global.pepe, que ser distinta
de la variable pepe.

3. Estructuras de Control
Las estructuras de control tienen una
finalidad bastante definida: su objetivo
es ir sealando el orden en que tienen
que sucederse los pasos de un algoritmo
o de un programa.
Las estructuras de control son de tres
tipos:
3.1. Secuenciales
3.2. Selectivas

3.3. Repetitivas
Empecemos por las primeras.

3.1 Estructuras secuenciales


Una estructura de control secuencial,
en realidad, no es ms que escribir un
paso del algoritmo detrs de otro. El
que primero que se encuentre escrito
ser el que primero se ejecute.
Veamos un ejemplo: queremos leer el
radio de un crculo, calcular su rea y
mostrar por pantalla al usuario el
resultado.

En pseudocdigo (algo parecido a


nuestro lenguaje) sera:
Inicio
numerica: radio, area; //Declaracin
de variables;
inicio
mostrar por pantalla dame el radio
del circulo;

Leer radio //asignacin del valor de


la variable radio por medio del teclado;
area =3.14159*radio; //asignacin del
valor de la variable rea por nosotros,
en funcin del valor de radio.
Escribir el rea del circulo es: +
area
//En los textos debemos poner acentos;
Fin

Como ves las instrucciones se van


ejecutando unas detrs de otra hasta
llegar al final. Es importante definir el
inicio y el final del programa.

3.2. Estructuras selectivas


Estas estructuras se utilizan para
TOMAR DECISIONES (por eso
tambin se llaman estructuras de
decisin o alternativas).
Lo que se hacen es EVALUAR una
condicin, y, a continuacin, en funcin
del resultado, se lleva a cabo una opcin
u otra.

3.2.1 Alternativas simples


(condicional IF)
Son los conocidas condicionales SI
(if en ingles). Su traduccin sera: "si se
cumple esto... entonces hacemos algo".
Se usan de la siguiente manera: yo
quiero evaluar una condicin, y si se
cumple (es decir, si es cierta), entonces
realizar una serie de pasos. Un ejemplo
en pseudocdigo sera:
Inicio Declaracin de variables

numerica: numero, raz


fin declaracin de variables
inicio
Escribir introduce un numero
Leer numero
SI numero>=0 ENTONCES: // mayor
o igual que cero;

raz = raiz_cuadrada (numero)


Escribir la raz cuadrada es:
Escribir raz
fin del SI
fin
En todos los lenguajes de
programacin la condicional SI se
escribe de la siguiente forma.

if numero = 0 {Entre corchetes


definimos lo que se hace si cumple la
condicin de que la variable numero sea
igual a 0}
Es decir la palabra if seguida de la
condicin y seguidamente entre
corchetes lo que se realizar si se
cumple la condicin.
if edad < 19 { resultado =Eres menor
de edad }

En este ejemplo si la variable edad es


menor de 19 la variable resultado (de
texto) nos mostrar un texto que dice
Eres menor de edad.
Para las estructuras de control son muy
importantes los operadores que nos
permiten comparar. Aqu tienes los
ms usados:

Tambin tienes operadores para


realizar funciones matemticas:

Si escribo numero = AZAR (100) el


ordenador asignar a la variable
numero, un nmero al azar entre 0 y 99.
OJO siempre un nmero menos del que
pongamos entre parntesis.

3.2.2 Alternativas dobles


(IF.ELSE.)
Qu pasa si no cumple la condicin
puesta en los casos anteriores?

Pues si no le decimos nada, el


programa pasar a la siguiente orden de
forma secuencial.
Pero tambin podemos especificar que
pasara si no cumple la condicin. Es el
famoso tro "si se cumple ... haces esto
... sino esto otro".
Veamos cmo sera la estructura en
todos los lenguajes:

if (condicin) {se hace esto} else {si


no cumple la condicin se hace esto
otro};
Lo que hay entre los primeros
corchetes es lo que hara el programa si
se cumple la condicin. Lo que hay entre
los corchetes despus del else es lo que
hara si la condicin no se cumple.
Dentro de los corchetes podemos
especificar varias rdenes.

Ojo aqu no pasara a la siguiente


orden de forma secuencial. Para ir a otro
sitio tendramos que especificarlo
dentro de los corchetes. Por ejemplo ir
algn sitio si se cumple o ir a otro si no
se cumple.
En el ejemplo anterior sera mucho
mejor hacerlo con este tipo:
En pseudocdigo:
Declaracin de variables
numerica: numero, raiz

fin declaracin de variables


inicio
Escribir 'introduce un numero'
Leer numero
SI numero >= 0 ENTONCES:
{raiz = raiz_cuadrada (numero);
Escribir 'la raz cuadrada es:' + raiz}
SINO: {Escribir 'lo siento, no puedo
calcular la raz cuadrada de un numero
negativo'}
fin del SI
fin

raz es una variable que tomar el


valor de la raz cuadrada del nmero
introducido por el usuario mediante la
orden Leer numero.
Fjate que si el nmero que introduce
el usuario en la variable nmero fuera
un nmero negativo ( es decir menor que
0) el programa mostrara que no puede
calcular la raz.
OJO en programacin deberamos
sustituir SI por if y SINO por else.

En el siguiente caso vemos como


sera para saber si un nmero es
negativo o positivo, en lenguaje de
programacin real.
if numero >= 0 {mostrar en pantalla
"Numero Positivo} else { mostrar en
pantalla "Numero Negativo}
Estas estructuras seguiran el siguiente
esquema:

Si se cumple la condicin se realiza


las acciones A, si no se cumplen se
realizan las acciones B.

3.2.3 Alternativas mltiples o


con varias condiciones.

Es muy probable que tengamos la


necesidad de incluir en nuestros
programas alternativas con muchas
opciones posibles (varios SI diferentes).
variableOpciones= un valor a elegir,
por ejemplo desde el teclado
if (variableOpciones=0) {lo que
corresponda};
if (variableOpciones=1) {lo que
corresponda};
if (variableOpciones=2) {lo que
corresponda};
.

Podemos poner tantas if como


queramos.
En este caso el programa realizar las
acciones en funcin de lo que valga la
variable variableOpciones.
Ejercicio propuesto: Intenta hacer un
programa que nos diga la nota de un
alumno, en funcin del nmero sacado
en el examen.

Por ejemplo: si saca menos de 5


Suspenso, Si saca entre 5 y 6
suficiente, si saca entre 6 y 8 notable.
Tambin existe la posibilidad de que
deban de cumplirse dos condiciones a la
vez:
if (condicin1 && condicin2) {Se
cumple esto}
Esto sera si se cumplen las
condiciones 1 y 2 a la vez.

if (condicin1 && condicin2) {Se


cumple esto} else {se cumple esto otro}
Esto sera si se cumplen las
condiciones 1 y 2 a la vez o si no se
cumplen a la vez. OJO tienen que
cumplirse las dos a la vez. Si solo se
cumple una de las dos se realizar lo
que tengamos en los corchetes del else.
Los smbolos && significan "y", es
decir si se cumple la condicin1 y la
condicin2 a la vez.

Aqu tienes una tabla con los


operadores lgicos utilizados para
posibilidades de opciones:

if (condicin1 | condicin2) {Se


cumple esto}

Este caso se realizara las acciones


entre corchetes si se cumpliera
cualquiera de las dos opciones o las dos
a la vez. Si solo se cumple la condicin
1, ya valdra para que se realizaran las
acciones que hay entre los corchetes.
Intenta hacer los siguientes ejercicios
con bolgrafo y papel:
Sobre estructuras secuenciales

1. Escribid un algoritmo y su
pseudocdigo que calcule el rea de
un tringulo o de un rectngulo.
2. Escribid un algoritmo y su
pseudocdigo que calcule el precio de
un artculo tras aplicarle un 16% de IVA.
Sobre estructuras selectivas
1. Crea el pseudocdigo para un
esquema de men de opciones, para
poder seleccionar un libro a leer de
entre 3 disponibles.

2. Escribid un algoritmo y su
pseudocdigo que lea tres nmeros
que introduzca el usuario e imprima
por pantalla el mayor de ellos.
3. Crea un programa en pseudocdigo
que pida un nmero al usuario y diga
si es positivo, negativo o cero.

3.3. Estructuras de
control REPETITIVAS
Estas estructuras son instrucciones
que se repiten formando un bucle (algo
que se repite una y otra vez).
El bucle se repite mientras se cumpla
una condicin que ha de ser
especificada claramente. Cuando deje
de cumplirse la condicin, se sale fuera
del bucle y no se repiten ms las
instrucciones.

Un BUCLE (loop, en ingls) es un


trozo de algoritmo, pseudocdigo o de
programa cuyas instrucciones son
repetidas un cierto nmero de veces,
mientras se cumple una cierta
condicin que ha de ser claramente
especificada.
Bsicamente, existen tres tipos de
estructuras repetitivas:

3.3.1 Los bucles "mientras..." en


pseudocdigo
o
"while
en
programacin real.
3.3.2 Los bucles "repetir (hacer)...
mientras que" en pseudocdigo o "do...
until" en programacin
3.3.3 Los bucles "desde" en
pseudocdigo o "bucles for" en
programacin.
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 accin.
Un ejemplo ms concreto. El
ordenador se ha portado mal, y como
castigo, le vamos a hacer imprimir por
pantalla 3000 veces la frase "Prometo
ser bueno".

Cmo lo hacemos? Escribimos 3000


veces la instruccin pertinente?
Se supone que el castigo es para la
mquina, no para uno mismo!

3.3.1 Estructura
MIENTRAS(condicin) o
"WHILE

En este tipo de estructura, el cuerpo


del bucle se repite MIENTRAS se
cumple una determinada condicin, que
especificamos entre parntesis.
Cuerpo del Bucle = las acciones que
deben ejecutarse repetidas veces.
Sera algo como Repetir Hasta o
Mientras.hacer (mientras se cumpla
algohacer.)
Estas estructuras tendran el siguiente
diagrama de flujo:

Si se cumple la condicin, se realiza


una serie de acciones y se vuelve a
comprobar la condicin, y as
sucesivamente hasta que la condicin
no se cumpla y se dejan de realizar las
acciones.

Veamos un ejemplo en pseudocdigo y


su explicacin:
Pseudocdigo
Inicio
Inicio del bucle mientras
contador=1
Mientras (contador<=3.000)
hacer Escribir 'Prometo ser bueno'
contador = contador + 1

fin del bucle mientras


fin
Recuerda, una cosa es el fin del bucle
mientras y otra el fin del programa.
Expliquemos el programa anterior
paso a paso.
A la variable que "lleva" la cuenta de
las veces que el bucle se ha ejecutado,
se le he llamado variable contador.

Fijarse que ANTES de entrar en el


bucle le asigno el valor 1 a la variable
contador.
Si no fuera as, al entrar en el bucle y la
variable (contador) no tener valor, me
saldra error.
El programa se preguntara: Qu
variable contador? No s qu valor
inicial tiene? Por eso hay que
especificarla
siempre
antes
del
mientras.

En cuanto vemos la palabra


"mientras" o while, ya sabemos que
hemos entrado en el bucle.
Una vez enrado en el bucle, estamos en
la decisin. Es contador<=3000? Yo
creo que s, al menos si es cierto que
1<=3000. Recuerda que la primera vez
contador vale 1.
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, seguidamente sumo 1 a la
variable contador. Como contador vala
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.

Antes de salir del bucle debemos


volver a evaluar la condicin que tena
el "mientras" o while entre parntesis
para ver qu hacemos ahora, si seguimos
dentro
del
bucle
o
salimos
definitivamente de l.
Tenemos que ver si contador<=3000.
Ahora, contador vale 2, y se cumple que
2<=3000, con lo que vuelve a mostrarse
por pantalla la expresin '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 despus....
cuando 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 ms) al fin del mientras, por lo
que tenemos que volver a evaluar la
condicin
entre
parntesis
que
acompaa al "mientras".
Hay que ver si contador<=3000. Pero
no es cierto que 3001<=3000, es ms
bien al revs, o sea, la condicin entre
parntesis 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 del.
Nuestro ordenador cumpli su castigo
perfectamente. Pero.

Qu pasara si la variable contador,


al definirla, su valor fuera ya mayor de
3000? Simplemente no hara el bucle y
pasara a la siguiente instruccin
despus del bucle, si la hay, si no la hay,
se acabara el programa.
contador = contador + 1; se suele
llamar el paso ya que es el valor que
aumenta la variable cada vez.

En todas las estructuras de bucle, es


necesario especificar el valor inicial
(de la variable), el valor final y el
paso.
Pongamos otro ejemplo. Queremos un
programa capaz de sumar muchos
nmeros, todos los que el usuario
quisiera, y en el que hubiera que escribir
"0" para indicar que queremos terminar.
Cmo sera?
Aqu tienes una posible solucin:

Proceso Mientras
Escribir "Dime un numero";
Leer x;
suma <= 0;
Inicio Mientras
Mientras x <> 0 Hacer
suma <= suma + x;
Escribir "Hasta ahora,
la suma es ", suma;
Escribir "Dime otro
numero";
Leer x;
FinMientras
Escribir "Terminado";

FinProceso
Ejercicio Propuesto: crea un programa
que genere dos nmeros al azar entre el
0 y el 100, y pida al usuario que calcule
e introduzca su suma. Si la respuesta no
es correcta, deber volver a pedirla
tantas veces como sea necesario hasta
que el usuario acierte.
Recuerda que para generar un nmero
al azar del 0 al 100 puedes hacer:

numero: AZAR(101), la variable


numero ser un nmero al azar, elegido
por el ordenador, entre 0 y 100.
Recuerda que en la programacin real
se usa la palabra while en lugar de
Mientras.

3.3.2 Estructura REPETIR


(hacer)... MIENTRAS QUE
(condicin) o "DO.....UNTIL

Aqu, lo que se desea es que un bucle


se ejecute al menos una vez antes de
comprobar la condicin de repeticin.
Es decir, en el ejemplo anterior del
castigo al ordenador, si partiramos que
la variable condicin fuera mayor de
3000, en este caso, el bucle se ejecutara
una vez, incluso aunque la variable ya
no cumpla la condicin desde el
principio.
En el caso de hacerlo con while no se
ejecutara ninguna vez.

Esta es la nica diferencia


La estructura PARA
EJEMPLO es esta:

NUESTRO

Inicio
Contador=1
Repetir Escribir 'Prometo ser bueno
O:-)'
Contador=Contador+1
mientras que(Contador<=3000)

fin
Recuerda en programacin real
utilizamos Do... Until en lugar de
RepetirMientras que.

3.3.3 Estructura DESDE o


"bucles FOR"
Esta estructura hubiera sido la ms
adecuada para resolver nuestra situacin
real.

For es de los bucles ms verstiles y


utilizados. Los bucles FOR se utilizan
cuando queremos que se repita una serie
de instrucciones un nmero determinado
de veces, previamente fijadas.
As como los bucles WHILE se
repiten mientras que se cumpla una
determinada condicin, los bucles FOR
se repiten mientras que una variable
no adquiera un determinado valor.

As que, cada bucle FOR contiene una


variable a la que llamaremos variable
del bucle for y que suele llamarse i.
Normalmente, por no decir siempre,
con bucles for se suele usar la variable
i para contar, y no la variable
contador.
Lgicamente tendremos que
especificar el valor inicial de la
variable i, el valor final y el paso del
bucle (salto en el valor de la variable).

inicio
desde i=1 hasta i<=3.000
i=i+1;
Escribir 'Prometo ser bueno';
fin desde;
fin
En estos bucles for, la variable i toma
el primer valor el que le pongamos
nosotros detrs del desde o el (for) en
programacin real. No es necesario
especificar su valor fuera del bucle.

Como ves claramente tenemos valor


inicial de i (1), valor final 3000, y el
paso de 1.
Esta estructura en programacin real
tendr la siguiente estructura:
for ( variable = valor inicial ; condicin
; incremento) { sentencias... }
En nuestro ejemplo sera:
Inicio

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


{
Escribir 'Prometo ser bueno';
Coordenada Y = 50*i //esta parte est
en
pseudocdigo.
}
Fin
La mayora de las ves para poner el
incremento de la variable i en uno, su
usa la expresin i++.
for ( i = 1 ; i<= 3000 ; i++)

i++ significa incremento o paso 1 de i


Despus de todo lo visto, si
hiciramos el programa nos surgira un
problemilla.
Todas las frases se veran una encima
de otras! Y no tendramos la sensacin
de que se repiten una detrs de otra.

Lo que tendramos que hacer es que


cada frase tuviera una posicin dentro
de la pantalla (coordenada) diferente,
cada una en una fila diferente.
En este caso solo sera necesario
cambiar la coordenada Y (vertical) en
cada frase, siendo la X por ejemplo
siempre 0.
inicio
desde i=1 hasta i<=3.000
i=i+1;

Escribir 'Prometo ser bueno';


Coordenada Y = 50*i
fin desde;
fin
Problema resuelto! Cada vez que
escribe una frase cambia la coordenada
Y. Cuando i es 1, la coordenada Y es 50,
pero cuando i vale 2, la coordenada Y
vale 100.

Las coordenadas son donde empieza la


escritura de la frase. Como para X no
decimos nada siempre la tomar como
valor X = 0 (a la izquierda de la
pantalla).
Recuerda en programacin real se usa
la palabra for, y no desde.
Se te ocurre otra forma ms sencilla?
S que la hay, pero es menos efectiva.
La solucin sera poner dentro del bucle
Borrar_pantalla( ).

Cada vez que comienza el bucle se


borrara lo que haba escrito
anteriormente. Claro est que decimos
que es menos efectiva porque la
velocidad sera tan rpida que casi no
veramos los nmeros segn se van
escribiendo y borrando.
Otro ejemplo en pseudocdigo:
Proceso Para02
Para i <= 10 Hasta 20 Con
Paso 2 Hacer

Escribir i;
FinPara
FinProceso
Qu hara este programa? Pues el
resultado obtenido sera:
10
12
14
18
20

Fjate que al escribir para i <=10 el


primer valor que toma i es 10 y va
sumndose de 2 en dos.
Ejercicio Propuesto: Programa que
escriba los nmeros del 1 al 10, con
while, con do.until y con FOR.

3.4 Otras Estructuras de


Control
3.4.1
Acumuladores

Variables

Son como las variables contador, con


la
diferencia
que
su
incremento/decremento es variable
(vara segn el valor de i). Se hacen
mediante ciclos for de la siguiente
forma:
acumulador=1 {{

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 sera 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.
Detrs de draw_text y entre parntesis
se pone lo primero la coordenada X
donde se escribe, lo segundo la
coordenada Y, y lo tercero el valor de lo
que queremos escribir en pantalla.
Que el bucle no se ejecute ninguna
vez, puede tener aplicacin en algunos
casos.

4. Matrices
Cuando necesitamos manejar muchos
datos, generalmente hay soluciones ms
efectivas que tener muchas variables.
Por ejemplo, si hay que guardar 100
nmeros, suele ser ms eficiente
almacenar esos 100 datos "juntos",
formando una "matriz", en vez de usar
100 variables distintas.

Otro ejemplo, imaginemos que


deseamos leer las notas de una clase de
25 alumnos. Desearemos por tanto
almacenarlas y para ello, con lo que
conocemos hasta ahora, no habr ms
remedio que declarar 25 variables.
La palabra "matriz" es una traduccin
del ingls "array". Es por eso que en
programacin se habla siempre de
arrays, ya sabes que es el ingls el
lenguaje habitual.

Algunas personas que empiezan a


estudiar la programacin tienen horror a
los arrays. Parece extrao, pero es
verdad!. Vamos a quitar ese miedo.
En realidad, los arrays son como las
variables comunes. Si no entramos en
los detalles de las particularidades de la
notacin, no hay gran diferencia entre
escribir una expresin utilizando
variables simples:
Variable0=1;
Variable1=2;

o utilizando arrays:
int Variable[3];
Variable[0]=1;
Variable[1]=2;
Te has fijado en la diferencia?.
Cuando especificamos una variable
tenemos que poner un nombre diferente
para cada una de ellas.

Un array tiene varias variables


internas, pero el array un solo nombre.
Adems cada variable tiene un valor.
Si te fijas pusimos int delante del
array. Es porque en los arrays es
necesario poner el tipo de array. int
significa que los valores del array sern
nmeros enteros. float o doubl son para
declarar tipos de arrays de nmeros
reales.

En un array ponemos entre corchetes


la cantidad de variables que tiene el
array. [3] Significa que ese array tiene 3
variables diferentes (0, 1 y 2), y cada
una con un valor diferente. En este caso
las 3 variables y sus valores seran:
Variable[0]=1;
Variable[1]=2;
Variable[2]=3;

OJO siguen siendo 3 variables


diferentes pero todas pertenecen al
mismo array. Adems los elementos del
array se empiezan a contar a partir de
cero.
El nmero que hay dentro de cada
corchete se conoce como ndice del
array.
OJO Jugador [8] es un array con
ndice 8 pero Jugador8 es el nombre de
una variable.

Un array nos permite referirnos a


todos los elementos, pero tambin nos
permite acceder individualmente a cada
elemento.
Las principales propiedades del array
son las siguientes: tipo de sus variables
(int, double, etc.), nombre del array, y
el tamao del array.
Cuando declaramos un array de un tipo
concreto, todos los datos del array
debern ser de ese tipo.

Tambin podemos tener arrays de


texto:
string Boton[] = {"Botn 1", "Botn
2", "Botn 3"};
El nmero de sus elementos se
determina por la lista de valores (entre
las llaves).
Las variables y sus valores seran:
Boton[0] = Boton 1
Boton[1] = Boton 2

Boton[2] = Boton 3
Cmo se hace todo esto en
pseudocdigo?
Proceso Prueba
Dimension num[5];
FinProceso
Sencillo NO? Solo hay que definir la
dimensin del array y el nombre del
array, en este caso num.

Muchas veces se suelo definir antes el


tipo de array. Eso se hara de la
siguiente forma:
Proceso Prueba
Definir num como entero;
Dimension num[5];
FinProceso
En este caso, si no decimos nada, cada
variable que tiene el array tendra
asignado un valor, ya sabes desde el
valor 1 hasta el 5.

Podramos definir nosotros los


valores? Pues s. Mira el ejemplo:
Proceso Prueba
Definir num como entero;
Dimension num[5];
num[0]=5;
num[1]=10;
num[2]=15;
num[3]=20;
num[4]=25;
FinProceso

Aqu num[0] ya no tendr el valor 1,


nosotros hemos definido su valor y ser
5.
Veamos un ejemplo en pseudocdigo:
Proceso Prueba
Definir num como entero;
Dimension num[5];
num[1]=5;
num[2]=10;
num[3]=15;
num[4]=20;
num[5]=25;

Para i = 1 Hasta 5 Con Paso 1 Hacer


escribir num[i];
Fin Para
FinProceso
Recuerda i = 1 Hasta 5 Con Paso 1
Hacer se escribe:
for ( i = 1 ; i<= 5 ; i++) {Lo que hace}
Qu hace esto?

Pues simplemente nos mostrar en


pantalla 5,10,15,20,25. Si, los cinco
valores del array.
Podemos hacer que los valores de
cada variable del array los tome desde
los valores que nosotros marquemos en
el teclado? Pues tambin. Fjate en el
ejemplo:
Proceso Prueba
Definir num como entero;
Dimension num[5];
num[1]=5;

num[2]=10;
num[3]=15;
num[4]=20;
num[5]=25;
Para i = 1 Hasta 5 Con Paso 1 Hacer
leer num[i];
Fin Para
Para i<-1 Hasta 5 Con Paso 1 Hacer
escribir num[i];
Fin Para
FinProceso
Nota: El smbolo <- se utiliza mucho,
pero no te lies es lo mismo que poner =.

OJO primero le hemos asignados unos


valores a cada variable del array num.
Posteriormente estos valores cambiarn
con la orden leer. Vamos analizar la
siguiente parte del programa:
Para i = 1 Hasta 5 Con Paso 1 Hacer
leer num[i];
Fin Para
Aqu lo que hace el programa es crear
5 variables

num[1], num[2] num[3], num[4],


num[5], pero cada vez que cree una
variable del array el programa se parar
para leer el dato que introduzcamos
desde el teclado, que ser es valor de
esa variable. El primer dato introducido
ser el valor de num[1], y as
sucesivamente.

5. Tipos de Errores
Cuando tenemos que empezar a
programar nos daremos cuenta que
cuando ejecutemos nuestro programa
probablemente empiece a darnos
errores, tambin llamados bugs.
Tranquilo, eso es normal, lo que no
sera normal es que todo te saliera a la
primera.
Vamos analizar los 2 tipos de errores
que se pueden cometer en programacin:

Errores de sintaxis: Un error


de sintaxis es aquel en el que el
programa no sigue las reglas
sintcticas definidas por el lenguaje.
Por ejemplo es comn que en alguna
parte del programa escribamos fo,
en lugar de for, o cualquier otra
palabra del lenguaje mal escrita.

Errores Lgicos: Estos errores


suelen ser los ms complejos de
localizar, ya que el entorno de
desarrollo no suele ser capaz de
detectarlos hasta que el programa
est en funcionamiento.
Estos errores son causados por
fallo en la lgica del programa que
hace que su funcionamiento no sea
el que desea el programador. Por
ejemplo un bucle que funciona
incorrectamente y no hace lo que
queremos.

Tenemos algn tipo de ayuda? Pues


SI. Podemos utilizar lo que se llama
Debugger o Depurador.
El debugger o mejor dicho en espaol
el depurador, es una Herramienta o
Aplicacin que permite la ejecucin
controlada de un programa o cdigo
para seguir cada instruccin ejecutada
paso a paso y localizar as los Bugs o
errores.
Ms concretamente, el depurador
permite:

ejecutar un programa lnea a lnea


detener la ejecucin temporalmente en
una lnea de cdigo concreta
detener temporalmente la ejecucin
bajo determinadas condiciones
visualizar el contenido de las variables
en un determinado momento de la
ejecucin

cambiar el valor del entorno de


ejecucin para poder ver el efecto de
una correccin en el programa
Un BreakPoint es un punto de corte,
que en programacin es una lnea o
lneas especificas en el cual queremos
que se detenga el flujo habitual del
programa. Los fines pueden ser varios,
verificar el flujo del programa o valores
de los datos, etc.

Hay muchos programas depuradores


de cdigo, solo tienes que buscar el que
ms te convenga.
Si te vas a dedicar a esto de la
programacin, no hay otra alternativa
que acostumbrarse a utilizarlo.
Bien ya ests preparado para aprender
a programar en cualquier lenguaje de
programacin de alto nivel.

Ahora t elijes el que quieres


aprender, veras que con estos
conocimientos previos te ser Muy
Sencillo.
Solo tendrs que aprender el
vocabulario especfico del lenguaje que
utilices, aunque seguramente sea el
mismo que hemos utilizado aqu.

Programar requiere mucho orden, y lo


mejor para tener todo ordenado es
separar el programa en varias piezas
diferentes (trozos del programa). Cada
pieza realizar una tarea concreta y
todas juntas realizarn el deseado
programa.
Otra cosa que tenemos que decir es
que programar tiene mucho de
imaginacin y de reto personal, ya que
ese programa que realices, saldr de tu
mente.

La mejor forma de aprender a


programar es programando, cometer
errores y solucionarlos.
Por eso el siguiente captulo del libro
te propone muchos ejemplos de
programas es pseudocdigo.
Lo ideal es que leas el enunciado y sin
mirar la solucin, intentes hacer tu solito
el programa.

Ya sabes que no tiene porqu ser igual


que la solucin que nosotros
proponemos, pero eso s, tendr que
hacer los que te piden.
Tambin vers que no siempre
utilizamos la misma nomenclatura para
escribir el pseudocdigo. Ya sabes que
no hay una regla fija, por eso es mejor
acostumbrarse a verlo de diferentes
formas. T puedes elegir la que ms te
guste y seguir siempre la misma.

El ltimo captulo est dedicado a la


explicacin y el uso de los lenguajes de
programacin ms habituales. Quizs te
ayude a seleccionar el lenguaje que
quieres aprender.
Ya sabes que tendrs que aprender el
idioma del lenguaje con el que
finalmente te decidas a programar.
Peroaunque parezca pesado, te
recuerdo que sabiendo hacer el
programa es pseudocdigo te ser muy
sencillo pasarlo al lenguaje real.

Suerte y a Practicar!!!

6.
Ejemplos
Pseudocdigos

de

1. Realizar el pseudocdigo de un
programa que permita calcular el
rea de un rectngulo. Se debe
introducir la base y la altura para
poder realizar el clculo.
Programa rea
numerosenteros:

BASE,

ALTURA,

AREA
Escribir Introduzca la base y la
altura

Leer BASE, ALTURA


Calcular AREA = BASE *
ALTURA
Escribir El rea del rectngulo
es AREA
FinPrograma
2. Realizar el pseudocdigo que
permita al usuario introducir por
teclado dos notas, calculando la
suma y el producto de las notas.
Programa: SumaProducto

Entorno:
NOTA1,NOTA2,SUMA,PRODUCTO
son nmeros enteros
escribir Introduzca las notas
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 *
NOTA2
escribir La suma de las dos notas
es: SUMA
escribir El producto de las dos notas
es :PRODUCTO
Finprograma

3. Elaborar un algoritmo que obtenga e


imprima el valor de Y a partir de la
ecuacin: : Y= 3*X + 2 + 7X 15,
introduciendo el valor que queramos
de X.
Inicio
numericas: numx, numy;
Leer numx;
numy = 3*X + 2 + 7X 15;
Escribir numy;
Fin

4. Realizar el pseudocdigo de un
programa que permita saber si un
nmero es mayor, menor o igual a
cero.
Programa: ComparaNmeros
Entorno: NUMERO es un nmero
entero
Escribir Introduzca un nmero
Leer NUMERO
SI NUMERO>0 ENTONCES
escribir El nmero introducido es
positivo
SI NO

SI NUMERO<0 ENTONCES
escribir El nmero introducido es
negativo
SI NO
escribir El nmero es cero
FINSI
FINSI
Finprograma
5. Hacer un pseudocdigo que imprima
los nmeros del 1 al 100.
Programa contador1
Entorno: c variable numrica.

c=1
InicioMientras
Borrar_pantalla( )
MIENTRAS c < 101 HACER
ESCRIBIR c
c=c+1
FinMientras
FinPrograma
6. Hacer un pseudocdigo que imprima
los nmeros del 100 al 0, en orden
decreciente.
Programa contador2

Entorno: c variable numrica


c = 100
InicioMientras
Borrar_pantalla( )
MIENTRAS c <= 0 HACER
ESCRIBIR c
c=c-1
FinMientras
FinPrograma
7. Observa la siguiente secuencia de
instrucciones:

1.
2.

A= 5
B=7

3.

C=2

4.

A= A+ B + C

5.

B=C/2

6.

A= A/ B + A^C

7.

Imprimir(A)

Nota: Imprimir es parecido a Escribir,


con la diferencia que estamos diciendo
que lo imprima por la impresora, en
lugar de escribirlo en pantalla.
Ahora responde a las siguientes
cuestiones:
a) Qu valor contiene A despus
de la cuarta instruccin?
b) Qu valor contiene B despus
de la quinta instruccin?

c) Qu valor contiene A despus


de la sexta instruccin?
d) Qu valor imprime la ltima
instruccin?
e)
Si en lugar de Imprimir(A)
hubisemos escrito Imprimir(A)
Qu aparecera?
Aqu no te ponemos las soluciones,
esperamos que tu solito seas capaz de
contestar a todas las cuestiones.

8. Supongamos un algoritmo que lea


las coordenadas de tres puntos y los
mueva tres puntos en la coordenada
x y escriba el resultado en algn
dispositivo de salida:
ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de
tres puntos
SALIDA: las coordenadas (x,y) de los
tres puntos movidos 3 puntos hacia la
derecha.
VARIABLES: i:entera

x,y: real
INICIO
PARA i=1 HASTA 3 CON
INCREMENTO +1
ESCRIBE "Abscisa del punto nmero
", i
LEER x
ESCRIBE "Ordenada del punto
nmero ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN

Te ponemos el programa equivalente


en Pascal equivalente a este algoritmo.
Como podemos apreciar en un programa
en Pascal es importantsimo no olvidar
detalles de sintaxis. Por ejemplo cada
sentencia termina en punto y coma. De
cualquier forma es inmediato apreciar
los simples cambios existentes.
program lee_tres_vertices;
var x,y:real;
i:integer;
begin

for i:=1 to 3 do
begin
write ('Abscisa del punto nmero ',i);
readln(x);
write ('Ordenada del punto nmero
',i); readln(y);
write (' El punto es (',x+3,',',y,')');
end;
end;
9. Calcular y mostrar la suma de los
diez primeros nmeros entre 1 y
1000 que sean divisibles por uno
dado.

programa suma_divisibles
variables natural : divisor, suma,
contador, nmero
inicio programa
divisor leer Introduce el divisor:
suma 0
contador 0
para nmero desde 1 hasta 1000 hacer
si divisor divide a nmero entonces
suma = suma + nmero
contador contador + 1
fin si

si contador = 10 entonces
interrumpir
fin si
fin para
escribir La suma es, suma
fin programa
10. Un cine requiere conocer el total
recaudado. Se debe ingresar el
precio de cada entrada al cine y el
total de entradas vendidas.
inicio
variables entero ev, pe, c

muestre 'ingresar total entradas


vendidas', ' ingresar precio de cada
entrada'
lea ev, pe
c= ev*pe
muestre ' el total recaudado es ',: c,'$'
fin
11. Crear un pseudocdigo que
proporcione el volumen de un
cilindro, conocidos su altura y
dimetro.
Inicio

Mostrar Introduzca el dimetro, en


metros : Pedir D
Mostrar Introduzca la altura, en
metros : Pedir H
R = D/2 : Pi = 3,141593
V = Pi * (R ^ 2) * H
Mostrar El volumen del cilindro es
de, V, metros cbicos
Fin
Aqu puedes ver que hemos sustituido
Escribir por Mostrar, pero es lo mismo.

12. Crear un pseudocdigo que


proporcione el precio medio de un
producto, calculado a partir del
precio del mismo en tres
establecimientos distintos.
Inicio
Mostrar Introduzca el precio del
producto en el establecimiento nmero
1, en
euros : Pedir Precio1
Mostrar Introduzca el precio del
producto en el establecimiento nmero
2, en

euros : Pedir Precio2


Mostrar Introduzca el precio del
producto en el establecimiento nmero
3, en
euros : Pedir Precio3
Media = (Precio1 + Precio2 +
Precio3) / 3
Mostrar El precio medio del
producto es, Media, Euros
Fin

13. Un operario de una fbrica


recibe cada cierto tiempo un
depsito cilndrico de dimensiones
variables, que debe llenar de aceite
a travs de una toma con cierto
caudal disponible.
Se desea crear un programa que le
indique cunto tiempo transcurrir
hasta el llenado del depsito.

El caudal disponible se considera


estable para los tiempos que tardan
los llenados de depsitos y se
encuentra almacenado en un archivo
del ordenador, figurando el dato en
litros por minuto.
Inicio
Q = Caudal disponible en litros /
minuto
Leer Q
Mostrar Introduzca el dimetro del
depsito, en metros : Pedir D
Mostrar Introduzca la altura del
depsito, en metros : Pedir H

Pi = 3,141593
R=D/2
V = Pi * (R ^ 2) * H : Vlitros = V *
1000
tminutos = Vlitros / Q
Mostrar El tiempo que transcurrir
hasta el llenado del depsito es de,
tminutos, minutos
Fin

14. Dadas dos variables numricas


A y B, que el usuario debe teclear,
se pide realizar un algoritmo que
intercambie los valores de ambas
variables y muestre cunto valen al
final las dos variables (recuerda la
asignacin).
Var A, B, C: numerica
Inicio
Escribir "Introduce el valor de A"
Leer A
Escribir "Introduce el valor de B"
Leer B

C<-A
A<-B
B<-C
Escribir "A vale " A " y B vale " B
Fin
15. Realizar un algoritmo para hallar
el coseno de un ngulo.
inicio
variables entero co, ca, h
co=0, ca=0, h=0
muestre 'ingresar valor de cateto
adyacente'

lea ca
muestre ' ingresar valor de hipotenusa '
lea h
co= ca/h
muestre ' el coseno hallado es',:co
fin
16. Realizar un algoritmo para
ingresar un usuario y contrasea.
inicio
variables cadena usuario='', clave=''
cadena usuario_valido= 'cristian',
clave_valida= '1234'

muestre ' porfavor ingrese usuario y


contrasea '
lea usuario, clave
si usuario=='' o usuario=='' entonces
muestre ' apreciado usuario verifique
que el usuario y/o clave fueron
digitados'
sino
si usuario=usuario_valido y
clave=clave_valida
entonces
muestre ' bienvenido', usuario_valido
sino
muestre ' apreciado usuario verifique
los datos digitados'

fin si
fin si
fin
17. Introducir tantas frases como
queramos y contarlas.
PROGRAMA frases
ENTORNO: res = "S"
frase = Espacios( 30 )
c <- 0
Borrar_pantalla( )
MIENTRAS res = "S" HACER
ESCRIBIR "Frase: "
LEER frase
c <- c + 1

ESCRIBIR "Deseas introducir m s


frases (S/N): "
LEER res
FINMIENTRAS
ESCRIBIR "El nmero de frases
introducidas son: "
ESCRIBIR c
FINPROGRAMA
18. Introducir un nmero por
teclado. Que nos diga si es positivo
o negativo.
PROGRAMA signo
ENTORNO: num = 0
ALGORITMO:
Borrar_pantalla( )

ESCRIBIR "Introduce un nmero: "


LEER num
SI num >= 0 ENTONCES
ESCRIBIR "es positivo"
SINO
ESCRIBIR "es negativo"
FINSI
FINPROGRAMA
19. Crear el pseudocdigo y el
diagrama de flujo para un programa
que muestre todos los enteros
comprendidos entre un nmero
definido por el usuario y 100.
Inicio

Mostrar Introduzca un nmero entero


comprendido entre 1 y 99 : Pedir Num
Desde i = Num hasta 100 Hacer
Mostrar i
Siguiente
Fin
20. Elabore un traductor simple de
ingls-espaol
utilizando
dos
arreglos o arrays de tipo cadena de
texto con 20 palabras como mnimo.
Variables de caracteres E[40], I[20]
INICIO

Para i= 0 hasta i=19 hacer


Leer I[20]
Leer E[20]
Fin _para
Para i= 0 hasta i=19 hacer I[i] = E[i]
S[i] = E[i]
Para i=0 hasta i=19 hacer
Escribir Que significado quieres de las
siguientes palabras: I[i]
Leer I[i]
Escribir el significado es S[i]
Fin _para
FIN

7. Tipos de Lenguajes de
Programacin y Para qu
sirven.
En la actualidad hay ms de 100
lenguajes de programacin diferentes.
No vamos a definir todos los lenguajes
de programacin que existen porque son
muchos pero s os hablaremos de los
ms importantes y para qu se utilizan.

-Lenguaje de Programacin
HTML: Este lenguaje es con el que
se crean las pginas web, por ejemplo,
que bsicamente es un conjunto de
etiquetas que sirven para definir el texto
y otros elementos que puedes ver en las
pginas web. HTML significa HyperText
Markup Lenguaje (lenguaje de marcas
de hipertexto) y es muy fcil de
aprender.

Luego ya depende de si queremos una


web ms o menos elaborada podremos
profundizar en este lenguaje. Por
ejemplo, el lenguaje de programacin
CSS (Cascading Style Sheets) son hojas
que sirven para dar estilo a las
pginas web como su color, definir su
fondo, tipos de letraetc
-Lenguaje de Programacin
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 pginas
web y tambin para aplicaciones de
ordenadores, para manejar datos sobre
todo. (Introducir datos, actualizar datos,
eliminar o seleccionar datos)
-Lenguaje de Programacin
Java: Probablemente ste podra ser
el favorito de ms de uno ya que es el
lenguaje utilizado para programas
punteros como herramientas, juegos y
aplicaciones.

Este lenguaje de programacin


utiliza en miles de millones
dispositivos mviles y aparatos
televisin y en ms de 850 millones
ordenadores personales de todo
mundo.

se
de
de
de
el

Java est instalado en inmensidad de


aplicaciones y sitios web.
Probablemente tambin te suene
JavaScript, que es otro lenguaje
utilizado para crear pequeos programas
encargados de realizar acciones dentro
de una web como por ejemplo para
crear efectos especiales o para definir
interactividades con los usuarios.

-Lenguaje de Programacin C:
Este lenguaje de programacin est
orientado a los Sistemas Operativos y es
muy eficaz y con l podemos crear
Softwares de sistemas operativos como
Windows o Linux y tambin para
aplicaciones.
Tambin sirve para experimentos
informticos, fsicos, matemticosetc.
Es tambin muy utilizado en robtica
con el que se programan simuladores,
etc.
Des este lenguaje se derivan otros
como C++.

-Lenguaje de Programacin
XML: Este lenguaje es tambin un
lenguaje de etiquetas como el HTML,
pero a diferencia de ste, el lenguaje
XML separa el contenido de la
presentacin, 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 ms. El XML es un
complemento fundamental al HTML.

-Lenguaje de Programacin
PHP: El PHP es un lenguaje de
programacin similar al HTML que nos
sirve fundamentalmente para pginas
web y se puede combinar con el
lenguaje HTML.
El lenguaje PHP se basa en los
scripts que es un guin de rdenes o
instrucciones que recibe un servidor de
una pgina web para leer su cdigo
fuente.

-Visual Basic: Es uno de los lenguajes


de programacin MAS Fciles de
utilizar. Es muy intuitivo ya que muchas
veces requieres solo arrastrar botones y
controles de Windows a una ventana
(conocida como forma) y le das "Run" y
ya tienes una aplicacin Windows.
Con el puedes realizar aplicaciones de
software de todo tipo bajo entorno
Windows.
La tecnologia .NET (Visual Basic
NET) incluye el VBscript que es visual
basic, el JScript que equivale al
Javascript, C#... y puedes usar bases de
datos SQL o Access.

- FORTRAN (Traductor de
Frmulas:
Formula
TRANslator):
Diseado
especficamente
para
programas matemticos y de ingeniera,
motivo por el cual, no fue de amplio uso
en computadoras personales. Su uso se
dirige especialmente a equipos de
cmputo dedicados a la investigacin y
la educacin.
As podramos seguir definiendo
mltiples y variados lenguajes de
programacin.
Como
vers
son
verdaderamente tiles y necesarios y
sirven prcticamente para cualquier
cosa.

Das könnte Ihnen auch gefallen