Está en la página 1de 233

rias

A todos los que me


apoyaron alguna vez
Sobre el Autor

Ernesto Rodriguez es Ingeniero


Técnico Industrial y Profesor de
Educación Secundaria durante 18 años
del área de Tecnología.

Fundador de la empresa Ermoweb


dedicaca al mundo de internet y la
programación.

En su labor docente sigue el lema:


“Todo el mundo puede aprender si se le
enseña adecuadamente”.

Otros Libros del Autor


- Electrónica Básica Fácil: Un
libro sencillo y fácil de aprender
con todos los conocimientos básicos
sobre electrónica
- Curso de Electricidad: El curso
trata temas desde la estructura de
átomo hasta montajes de motores en
triangulo y calculo de potencias en
corriente trifásica.
- 101 Problemas de Lógica:
Juegos para agilizar la mente.
- Estilo Compadre: Su primera
novela. Una novela policial y
romántica, donde el pasado vuelve
para traer inesperadas
consecuencias.
Página web del autor:
http://www.areatecnologia.com
INTRODUCCIÓN
1. ALGORITMOS, DIAGRAMAS DE
FLUJO Y PSEUDOCÓDIGO
1.1 ¿Qué es un Algoritmo?
1.2 Diagramas de Flujo
1.3 Pseudocódigo

2. ELEMENTOS COMUNES EN LA
PROGRAMACIÓN
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 múltiples o con varias
condiciones.
3.3. Estructuras de control REPETITIVAS
3.3.1 Estructura MIENTRAS(condición) o
"WHILE“
3.3.2 Estructura REPETIR (hacer)...
MIENTRAS QUE (condición) 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 PSEUDOCÓDIGOS
7. TIPOS DE LENGUAJES DE
PROGRAMACIÓN Y PARA QUÉ
SIRVEN.
Introducción

Los fundamentos de programación


son las bases comunes a todos los
lenguajes de programación. Es lo
primero que tendrás que aprender,
incluso antes de elegir el programa con
el que quieras programar.
El propósito general de un lenguaje de
programación 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 programación son
herramientas de comunicación, pero al
contrario que los lenguajes corrientes
como el inglés o el chino, los
destinatarios de los lenguajes de
programación no son sólo humanos sino
también los ordenadores

Si nos queremos entender con el


ordenador, el ordenador solo entiende el
llamado código máquina (1 y 0, 1=hay o
0=no hay corriente).
Es por eso que tenemos 2 tipos
diferentes de lenguajes de
programación, dependiendo de su
cercanía al lenguaje del ordenador. Los
de bajo y los de alto nivel. Estos
lenguajes sirven para dar órdenes
directas al hardware del ordenador.
Los lenguajes más cercanos al idioma
del ordenador, llamados de bajo nivel,
son muy complicados (casi como el
código máquina) y poco usados. El más
conocido es el código o lenguaje
máquina, un código que el ordenador
puede interpretar directamente. Aquí
tienes un ejemplo:

8B542408 83FA0077 06B80000


0000C383

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 programación de


alto nivel permiten dar órdenes al
ordenador con un lenguaje parecido al
nuestro (Visual Basic, Pascal, Logo,
C++, etc.) y normalmente en ingles.
El código de un programa suele
escribirse en uno o varios ficheros de
texto. Este código 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 código
máquina.
Existen unos lenguajes llamados
lenguajes interpretados, en los que
existe un programa llamado intérprete
que lee las líneas de código 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 técnico, lo importante es que
los lenguajes, como todo, hay que
aprendérselos, pero tienen una ventaja, y
es que tienen varios puntos en común,
más bien muchos.

Estos puntos son lo que vamos a


estudiar aquí, los fundamentos de
programación común a cualquier
lenguaje de alto nivel.
Una vez aprendidos, tendrás que
elegir tu el lenguaje que quieras, pero
con estos conocimientos, todos te
resultarán muy fáciles de aprender, solo
tendrás que aprender unas cuantas
instrucciones en ingles.
1. Algoritmos, Diagramas de
Flujo y Pseudocódigo

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 y pensadas
para resolver algún tipo de problema.
Eso sí, si no sabemos resolver este
problema, no podremos escribir el
programa.

Sería absurdo intentar hacer un


programa informático para resolver un
ejercicio que requiere de una fórmula, si
no sabemos qué fórmula necesitamos, ni
cómo aplicarla.
Por eso cuando te plantees crear un
programa primero tendrás que saber
para qué servirá y cómo lo resolverá.

A ti se te puede ocurrir una manera de


resolverlo, a tu compañero, otra. Y las
dos formas pueden ser correctas.

Este método con el que resolvéis 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


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 y que se
pueden llevar a cabo en un tiempo
finito.”
Hay distintas formas de escribir un
algoritmo, bien usando un lenguaje
específico de descripción de algoritmos,
bien mediante representaciones gráficas
como diagramas de flujo. Esta última
suele ser la más utilizada por los
programadores. Veamos un pequeño
resumen de creación de diagramas de
flujo.
1.2 Diagramas de Flujo

Los diagramas de flujo representan la


secuencia o los pasos lógicos para
realizar una tarea mediante unos
símbolos.

Dentro de los símbolos se escriben los


pasos a seguir.

Un diagrama de flujo debe proporcionar


una información 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


sería:

- 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
después 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 Básicas Para la Construcción


de un Diagrama de Flujo

1. Todos los símbolos han de estar


conectados

2. A un símbolo de proceso pueden


llegarle varias líneas
3. A un símbolo de decisión pueden
llegarle varias líneas, pero sólo saldrán
dos (Si o No, Verdadero o Falso).

4. A un símbolo de inicio nunca le


llegan líneas.

5. De un símbolo de fin no parte


ninguna línea.

Los símbolos que se usan para


realizar los diagramas de flujo son los
siguientes:
En el Símbolo de decisión a tomar, los
valores de salida pueden ser SI o NO o
VERDADERO o FALSO.

El símbolo de Inicio o Final del


Diagrama puede ser un cuadrado con los
bordes redondeados o una elipse.

Se pueden utilizar colores para los


símbolos.

Veamos otro ejemplo muy sencillo.


Queremos hacer un programa
informático que nos sume dos números y
nos dé el resultado en pantalla.

Solución en la siguiente página:


El símbolo de resultado es un símbolo
usado en los diagramas para soluciones
con el ordenador. Es el símbolo de
salida del resultado por la pantalla del
ordenador.

Ves que es muy sencillo, hay que ir


poniendo los pasos lógicos 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 números, una operación a realizar, la
suma, y un resultado a mostrar. Cada uno
de esos pasos con su símbolo
correspondiente en el diagrama.

Recuerda que estos diagramas de flujo


te facilitarán mucho la tarea antes de
empezar con tu programa.
Independiente del lenguaje de
programación que vaya a usarse; un
algoritmo que esté escrito en
pseudocódigo o con un diagrama de
flujo es fácilmente traducible a muchos
lenguajes de programación.

Si quieres ver más ejemplos de


diagramas de flujo te recomendamos el
siguiente enlace:

http://www.areatecnologia.com/informa
de-diagramas-de-flujo.html
1.3 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.

Incluso algunas universidades han


creado sus propios "intérpretes de
pseudocódigo".
Su misión es ayudar a los alumnos de
primer curso a crear los programas
"pensando en español", pero
permitiéndoles además, probar esos
programas desde un entorno "casi real".

Por ejemplo, PSeInt es una


herramienta para asistir a un estudiante
en sus primeros pasos en programación,
mediante un simple e intuitivo
pseudolenguaje en español
(complementado con un editor de
diagramas de flujo).
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.

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 cosas más comunes que


podemos escribir 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
');.
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 programación real suele utilizarse


la instrucción input.

Calcular3 x 5 Calcula valores


Ya veremos más adelante ejemplos de
programas en pseudocódigo, pero
recuerda que lo más usado es Leer,
Escribir y Calcular.

Ahora vamos a empezar con lo


interesante, vamos a empezar aprender a
programar.
2. Elementos Comunes en la
Programación

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, 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, solo servirá para
leerlo nosotros dentro del programa.

Nosotros durante las explicaciones


también pondremos comentarios.
2.2. Las variables

Esto es una de las cosas más importantes


en programación. 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 guión bajo o
varias palabras sin separar, pero la
primera letra de cada palabra en
mayúsculas

Ejemplos para escribir el nombre de


una variable: 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. ¿Pero no lleva acento
la palabra número?

OJO NO se pueden poner acentos en


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

Una variable dependiendo de su valor


puede ser:

- Variable Numérica, si solo


puede tener un valor numérico.
- 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 numéricas no llevan comillas en


su valor.

Por ejemplo vidas = 5.

En este caso su valor sí 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 no hace nada, es solo un
comentario.
VariableDeTexto= “Edad”;

VariableNumerica= Edad + 2 ;

El valor de VariableNumerica, es el
valor de la variable Edad (numérica y
que valía 3) +2.

En este caso el valor de


VariableNumerica sería = 5 (resultado
de 3+2). Ojo podría cambiar durante el
desarrollo del programa, recuerda que
es una variable.
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 punto y
coma (;) para decir al programa que
pasamos a otra instrucción diferente.
Pero sigamos con las variables.
Lo normal es declarar las variables
al principio de un programa.

Declarar no es más que decir "mira, yo


quiero tres variables, y quiero que una
se llame Nombre, otra Edad y otra
Apellido".

A partir de este momento, podrás


meter su valor, en cualquier parte del
programa.
Por ejemplo, “Juan” en Nombre, un 5
en Edad y “Rodríguez” en la variable
Apellido.

Ojo no es la misma variable Nombre


que nombre, como ya dijimos
anteriormente.

Después 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 mayoría si es necesario

Veamos un ejemplo:
numerica: Pepe //declaramos la
variable Pepe como numérica. Solo
puede almacenar números 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
número.
La resta se indicará con -, la suma con
+, la multiplicación con *, la división
con / y la potencia con ^.

Una operación menos habitual es


calcular el resto de una división. Esto
también tiene un símbolo asociado: %.

Esto se suele usar con frecuencia para


saber si un número es múltiplo de otro
(por ejemplo, será múltiplo 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. Además como el
resto es 1 el número será impar.

Cuando tenemos varias variables


numéricas o de texto las podemos
declarar todas a la vez de la siguiente
foma:
numerica: Pepe, Mari ,Juan
//Declaramos las variables numéricas
que usaremos todas a la vez. Es más
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 numérico de 5.

Hay variables ya definidas por el


propio lenguaje de programación que
usemos, y cuyo nombre no se lo
podremos dar a ninguna de las que
nosotros definamos.
Las podemos usar, pero tal y como el
lenguaje las definió.

Por ejemplo, en muchos lenguajes


mouse_x es la variable que tiene el
valor de la posición x del ratón en cada
momento, hspeed es la velocidad
horizontal, etc.

Para acabar con el tema de las


variables, decir que pseudocódigo 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 después mediante la variable
nombre. Si el usuario teclea 5 la
variable Edad quedará con 5 como
valor.

Fíjate en el siguiente programa escrito


es pseudocódigo:
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 números 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 numérica

EdadTexto = “Tengo 15 años”


//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 programación,
por defecto cuando asignamos una
variable ya es global. En otros no.

En la mayoría de los lenguajes que


se necesita diferenciar local de global,
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 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 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:

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 más que escribir un
paso del algoritmo detrás de otro. El
que primero que se encuentre 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 (algo parecido a
nuestro lenguaje) sería:

Inicio

numerica: radio, area; //Declaración


de variables;

inicio

mostrar por pantalla “dame el radio


del circulo”;
Leer radio //asignación del valor de
la variable radio por medio del teclado;

area =3.14159*radio; //asignación del


valor de la variable área por nosotros,
en función 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 detrás 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
también se llaman estructuras de
decisión o alternativas).

Lo que se hacen es EVALUAR una


condición, y, a continuación, en función
del resultado, se lleva a cabo una opción
u otra.
3.2.1 Alternativas simples
(condicional IF)

Son los conocidas condicionales SI


(if en ingles). Su traducción sería: "si se
cumple esto... entonces hacemos algo".

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:

Inicio Declaración de variables


numerica: numero, raíz

fin declaración de variables

inicio

Escribir “introduce un numero”

Leer numero

SI numero>=0 ENTONCES: // mayor


o igual que cero;
raíz = raiz_cuadrada (numero)

Escribir “la raíz cuadrada es:”

Escribir raíz

fin del SI

fin

En todos los lenguajes de


programación la condicional SI se
escribe de la siguiente forma.
if numero = 0 {Entre corchetes
definimos lo que se hace si cumple la
condición de que la variable numero sea
igual a 0}

Es decir la palabra if seguida de la


condición y seguidamente entre
corchetes lo que se realizará si se
cumple la condición.

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
más usados:
También tienes operadores para
realizar funciones matemáticas:
Si escribo numero = AZAR (100) el
ordenador asignará a la variable
numero, un número al azar entre 0 y 99.
OJO siempre un número menos del que
pongamos entre paréntesis.

3.2.2 Alternativas dobles


(IF…….ELSE….)

¿Qué pasa si no cumple la condición


puesta en los casos anteriores?
Pues si no le decimos nada, el
programa pasará 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 se cumple ... haces esto
... sino esto otro".

Veamos cómo 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};

Lo que hay entre los primeros


corchetes es lo que haría el programa si
se cumple la condición. Lo que hay entre
los corchetes después del else es lo que
haría si la condición no se cumple.

Dentro de los corchetes podemos


especificar varias órdenes.
Ojo aquí no pasaría a la siguiente
orden de forma secuencial. Para ir a otro
sitio tendríamos que especificarlo
dentro de los corchetes. Por ejemplo ir
algún sitio si se cumple o ir a otro si no
se cumple.

En el ejemplo anterior sería mucho


mejor hacerlo con este tipo:

En pseudocódigo:

Declaración de variables
numerica: numero, raiz
fin declaración de variables

inicio
Escribir 'introduce un numero'
Leer numero
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'}
fin del SI
fin
raíz es una variable que tomará el
valor de la raíz cuadrada del número
introducido por el usuario mediante la
orden Leer numero.

Fíjate que si el número que introduce


el usuario en la variable número fuera
un número negativo ( es decir menor que
0) el programa mostraría que no puede
calcular la raíz.

OJO en programación deberíamos


sustituir SI por if y SINO por else.
En el siguiente caso vemos como
sería para saber si un número es
negativo o positivo, en lenguaje de
programación real.

if numero >= 0 {mostrar en pantalla


"Numero Positivo} else { mostrar en
pantalla "Numero Negativo}

Estas estructuras seguirían el siguiente


esquema:
Si se cumple la condición se realiza
las acciones A, si no se cumplen se
realizan las acciones B.

3.2.3 Alternativas múltiples o


con varias condiciones.
Es muy probable que tengamos la
necesidad de incluir en nuestros
programas alternativas con muchas
opciones posibles (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 función de lo que valga la
variable variableOpciones.

Ejercicio propuesto: Intenta hacer un


programa que nos diga la nota de un
alumno, en función del número 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”.

También existe la posibilidad de que


deban de cumplirse dos condiciones a la
vez:

if (condición1 && condición2) {Se


cumple esto}

Esto sería si se cumplen las


condiciones 1 y 2 a la vez.
if (condición1 && condición2) {Se
cumple esto} else {se cumple esto otro}

Esto sería 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 símbolos && significan "y", es


decir si se cumple la condición1 y la
condición2 a la vez.
Aquí tienes una tabla con los
operadores lógicos utilizados para
posibilidades de opciones:

if (condición1 | condición2) {Se


cumple esto}
Este caso se realizaría las acciones
entre corchetes si se cumpliera
cualquiera de las dos opciones o las dos
a la vez. Si solo se cumple la condición
1, ya valdría para que se realizaran las
acciones que hay entre los corchetes.

Intenta hacer los siguientes ejercicios


con bolígrafo y papel:

Sobre estructuras secuenciales


1. Escribid un algoritmo y su
pseudocódigo que calcule el área de
un triángulo o de un rectángulo.

2. Escribid un algoritmo y su
pseudocódigo que calcule el precio de
un artículo tras aplicarle un 16% de IVA.

Sobre estructuras selectivas

1. Crea el pseudocódigo para un


esquema de menú de opciones, para
poder seleccionar un libro a leer de
entre 3 disponibles.
2. Escribid un algoritmo y su
pseudocódigo que lea tres números
que introduzca el usuario e imprima
por pantalla el mayor de ellos.

3. Crea un programa en pseudocódigo


que pida un número 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 condición que ha de ser
especificada claramente. Cuando deje
de cumplirse la condición, se sale fuera
del bucle y no se repiten más las
instrucciones.
Un BUCLE (loop, en inglés) es un
trozo de algoritmo, pseudocódigo o de
programa cuyas instrucciones son
repetidas un cierto número de veces,
mientras se cumple una cierta
condición que ha de ser claramente
especificada.

Básicamente, existen tres tipos de


estructuras repetitivas:
3.3.1 Los bucles "mientras..." en
pseudocódigo o "while” en
programación real.

3.3.2 Los bucles "repetir (hacer)...


mientras que" en pseudocódigo o "do...
until" en programación

3.3.3 Los bucles "desde" en


pseudocódigo o "bucles for" en
programación.

Vamos a verlas todas dentro de un


ejemplo.
El ejemplo es el siguiente:

Vamos a suponer que estamos


pensando en un programa que deba
REPETIR algunas veces una acción.

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!

3.3.1 Estructura
MIENTRAS(condición) o
"WHILE“
En este tipo de estructura, el cuerpo
del bucle se repite MIENTRAS se
cumple una determinada condición, que
especificamos entre paréntesis.

Cuerpo del Bucle = las acciones que


deben ejecutarse repetidas veces.

Sería algo como “Repetir Hasta” o


“Mientras….hacer” (mientras se cumpla
algo…hacer….)

Estas estructuras tendrían el siguiente


diagrama de flujo:
Si se cumple la condición, se realiza
una serie de acciones y se vuelve a
comprobar la condición, y así
sucesivamente hasta que la condición
no se cumpla y se dejan de realizar las
acciones.
Veamos un ejemplo en pseudocódigo y
su explicación:

Pseudocódigo
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
saldría error.

El programa se preguntaría: ¿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 decisión. ¿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 valía
1, si ahora le sumo 1, ahora contador
vale 2. Llegamos al fin del mientras. Eso
significa que se han terminado las
instrucciones del cuerpo del bucle.
Antes de salir del bucle debemos
volver a evaluar la condición que tenía
el "mientras" o “while” entre paréntesis
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 expresión 'Prometo ser
bueno' y de nuevo se suma 1 a contador,
con lo que ahora, contador pasa a valer
3.
De nuevo llegamos al fin del
mientras. Y... un buen rato después....
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 más) al fin del mientras, por lo
que tenemos que volver a evaluar la
condición entre paréntesis que
acompaña al "mientras".

Hay que ver si contador<=3000. Pero


no es cierto que 3001<=3000, es más
bien al revés, o sea, la condición entre
paréntesis ES FALSA.
¿Eso qué quiere decir? Pues quiere
decir que se acabó, que ya no se ejecuta
el cuerpo del bucle, sino que hemos
llegado al final, el bucle a terminado y
salimos fuera del.

Nuestro ordenador cumplió su castigo


perfectamente. Pero….
¿Qué pasaría si la variable contador,
al definirla, su valor fuera ya mayor de
3000? Simplemente no haría el bucle y
pasaría a la siguiente instrucción
después del bucle, si la hay, si no la hay,
se acabaría 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
números, todos los que el usuario
quisiera, y en el que hubiera que escribir
"0" para indicar que queremos terminar.
¿Cómo sería?

Aquí tienes una posible solución:


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 números 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 número


al azar del 0 al 100 puedes hacer:
numero: AZAR(101), la variable
numero será un número al azar, elegido
por el ordenador, entre 0 y 100.

Recuerda que en la programación real


se usa la palabra while en lugar de
Mientras.

3.3.2 Estructura REPETIR


(hacer)... MIENTRAS QUE
(condición) o "DO.....UNTIL“
Aquí, lo que se desea es que un bucle
se ejecute al menos una vez antes de
comprobar la condición de repetición.

Es decir, en el ejemplo anterior del


castigo al ordenador, si partiéramos que
la variable condición fuera mayor de
3000, en este caso, el bucle se ejecutaría
una vez, incluso aunque la variable ya
no cumpla la condición desde el
principio.

En el caso de hacerlo con while no se


ejecutaría ninguna vez.
¡Esta es la única diferencia¡

La estructura PARA NUESTRO


EJEMPLO es esta:

Inicio

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

Recuerda en programación real


utilizamos Do... Until en lugar de
Repetir…Mientras que.

3.3.3 Estructura DESDE o


"bucles FOR"

Esta estructura hubiera sido la más


adecuada para resolver nuestra situación
real.
For es de los bucles más versátiles y
utilizados. Los bucles FOR se utilizan
cuando queremos que se repita una serie
de instrucciones un número determinado
de veces, previamente fijadas.

Así como los bucles WHILE se


repiten mientras que se cumpla una
determinada condición, 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.

Lógicamente 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 detrás del “desde” o el (for) en
programación 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 programación real


tendrá la siguiente estructura:

for ( variable = valor inicial ; condición


; incremento) { sentencias... }

En nuestro ejemplo sería:

Inicio
for ( i = 1 ; i<= 3000 ; i+1)
{
Escribir 'Prometo ser bueno';
Coordenada Y = 50*i //esta parte está
en
pseudocódigo.
}
Fin

La mayoría de las ves para poner el


incremento de la variable i en uno, su
usa la expresión i++.

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


i++ significa incremento o paso 1 de i

Después de todo lo visto, si


hiciéramos el programa nos surgiría un
“problemilla”.

¡Todas las frases se verían una encima


de otras! Y no tendríamos la sensación
de que se repiten una detrás de otra.
Lo que tendríamos que hacer es que
cada frase tuviera una posición dentro
de la pantalla (coordenada) diferente,
cada una en una fila diferente.

En este caso solo sería 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 programación real se usa


la palabra for, y no desde.

¿Se te ocurre otra forma más sencilla?

Sí que la hay, pero es menos efectiva.


La solución sería poner dentro del bucle
Borrar_pantalla( ).
Cada vez que comienza el bucle se
borraría lo que había escrito
anteriormente. Claro está que decimos
que es menos efectiva porque la
velocidad sería tan rápida que casi no
veríamos los números según se van
escribiendo y borrando.

Otro ejemplo en pseudocódigo:

Proceso Para02
Para i <= 10 Hasta 20 Con
Paso 2 Hacer
Escribir i;
FinPara
FinProceso

¿Qué haría este programa? Pues el


resultado obtenido sería:

10
12
14
18
20
Fíjate que al escribir para i <=10 el
primer valor que toma i es 10 y va
sumándose de 2 en dos.

Ejercicio Propuesto: Programa que


escriba los números del 1 al 10, con
while, con do….until y con FOR.
3.4 Otras Estructuras de
Control
3.4.1 Variables
“Acumuladores”

Son como las variables contador, con


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

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

Nota: draw_text es una orden para
escribir en pantalla en muchos
lenguajes, pero no vale para todos.
Detrás de draw_text y entre paréntesis
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 aplicación en algunos
casos.
4. Matrices

Cuando necesitamos manejar muchos


datos, generalmente hay soluciones más
efectivas que tener muchas variables.
Por ejemplo, si hay que guardar 100
números, suele ser más 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á más
remedio que declarar 25 variables.

La palabra "matriz" es una traducción


del inglés "array". Es por eso que en
programación se habla siempre de
arrays, ya sabes que es el inglés el
lenguaje habitual.
Algunas personas que empiezan a
estudiar la programación tienen horror a
los arrays. ¡Parece extraño, 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
notación, no hay gran diferencia entre
escribir una expresión 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.
Además 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 serán
números enteros. float o doublé son para
declarar tipos de arrays de números
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 serían:

Variable[0]=1;
Variable[1]=2;
Variable[2]=3;
OJO siguen siendo 3 variables
diferentes pero todas pertenecen al
mismo array. Además los elementos del
array se empiezan a contar a partir de
cero.

El número 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 también 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 tamaño del array.

Cuando declaramos un array de un tipo


concreto, todos los datos del array
deberán ser de ese tipo.
También podemos tener arrays de
texto:

string Boton[] = {"Botón 1", "Botón


2", "Botón 3"};

El número de sus elementos se


determina por la lista de valores (entre
las llaves).

Las variables y sus valores serían:

Boton[0] = “Boton 1”
Boton[1] = “Boton 2”
Boton[2] = “Boton 3”

¿Cómo se hace todo esto en


pseudocódigo?

Proceso Prueba
Dimension num[5];
FinProceso

¿Sencillo NO? Solo hay que definir la


dimensión del array y el nombre del
array, en este caso num.
Muchas veces se suelo definir antes el
tipo de array. Eso se haría 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 tendría
asignado un valor, ya sabes desde el
valor 1 hasta el 5.
¿Podríamos 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 pseudocódigo:

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 también. Fíjate 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 símbolo <- 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 cambiarán
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, también llamados bugs.

Tranquilo, eso es normal, lo que no


sería normal es que todo te saliera a la
primera.

Vamos analizar los 2 tipos de errores


que se pueden cometer en programación:
- Errores de sintaxis: Un error
de sintaxis es aquel en el que el
programa no sigue las reglas
sintácticas definidas por el lenguaje.
Por ejemplo es común que en alguna
parte del programa escribamos fo,
en lugar de for, o cualquier otra
palabra del lenguaje mal escrita.
- Errores Lógicos: Estos errores
suelen ser los más 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 lógica 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 algún tipo de ayuda? Pues
SI. Podemos utilizar lo que se llama
Debugger o Depurador.

El debugger o mejor dicho en español


el depurador, es una Herramienta o
Aplicación que permite la ejecución
controlada de un programa o código
para seguir cada instrucción ejecutada
paso a paso y localizar así los Bugs o
errores.

Más concretamente, el depurador


permite:
• ejecutar un programa línea a línea

• detener la ejecución temporalmente en


una línea de código concreta

• detener temporalmente la ejecución


bajo determinadas condiciones

• visualizar el contenido de las variables


en un determinado momento de la
ejecución
• cambiar el valor del entorno de
ejecución para poder ver el efecto de
una corrección en el programa

Un BreakPoint es un punto de corte,


que en programación es una línea o
líneas 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 código, solo tienes que buscar el que
más te convenga.

Si te vas a dedicar a esto de la


programación, no hay otra alternativa
que acostumbrarse a utilizarlo.

Bien ya estás preparado para aprender


a programar en cualquier lenguaje de
programación de alto nivel.
Ahora tú elijes el que quieres
aprender, veras que con estos
conocimientos previos te será Muy
Sencillo.

Solo tendrás que aprender el


vocabulario específico 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 realizarán el deseado
programa.

Otra cosa que tenemos que decir es


que programar tiene mucho de
imaginación 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 capítulo del libro


te propone muchos ejemplos de
programas es pseudocódigo.

Lo ideal es que leas el enunciado y sin


mirar la solución, intentes hacer tu solito
el programa.
Ya sabes que no tiene porqué ser igual
que la solución que nosotros
proponemos, pero eso sí, tendrá que
hacer los que te piden.

También verás que no siempre


utilizamos la misma nomenclatura para
escribir el pseudocódigo. Ya sabes que
no hay una regla fija, por eso es mejor
acostumbrarse a verlo de diferentes
formas. Tú puedes elegir la que más te
guste y seguir siempre la misma.
El último capítulo está dedicado a la
explicación y el uso de los lenguajes de
programación más habituales. Quizás te
ayude a seleccionar el lenguaje que
quieres aprender.

Ya sabes que tendrás que aprender el


“idioma” del lenguaje con el que
finalmente te decidas a programar.
Pero…aunque parezca pesado, te
recuerdo que sabiendo hacer el
programa es pseudocódigo te será muy
sencillo pasarlo al lenguaje real.
¡¡¡Suerte y a Practicar!!!
6. Ejemplos de
Pseudocódigos

1. Realizar el pseudocódigo de un
programa que permita calcular el
área de un rectángulo. Se debe
introducir la base y la altura para
poder realizar el cálculo.

Programa área
numerosenteros: BASE, ALTURA,
AREA
Escribir “Introduzca la base y la
altura”
Leer BASE, ALTURA
Calcular AREA = BASE *
ALTURA
Escribir “El área del rectángulo
es “AREA
FinPrograma

2. Realizar el pseudocódigo 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 números 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
ecuación: : 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 pseudocódigo de un
programa que permita saber si un
número es mayor, menor o igual a
cero.

Programa: ComparaNúmeros
Entorno: NUMERO es un número
entero
Escribir “Introduzca un número “
Leer NUMERO
SI NUMERO>0 ENTONCES
escribir “El número introducido es
positivo”
SI NO
SI NUMERO<0 ENTONCES
escribir “El número introducido es
negativo”
SI NO
escribir “El número es cero”
FINSI
FINSI
Finprograma

5. Hacer un pseudocódigo que imprima


los números del 1 al 100.

Programa contador1
Entorno: c variable numérica.
c=1
InicioMientras
Borrar_pantalla( )
MIENTRAS c < 101 HACER
ESCRIBIR c
c=c+1
FinMientras
FinPrograma

6. Hacer un pseudocódigo que imprima


los números del 100 al 0, en orden
decreciente.

Programa contador2
Entorno: c variable numérica
c = 100

InicioMientras
Borrar_pantalla( )
MIENTRAS c <= 0 HACER
ESCRIBIR c
c=c-1
FinMientras
FinPrograma

7. Observa la siguiente secuencia de


instrucciones:
1. A= 5
2. 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 después


de la cuarta instrucción?

b) ¿Qué valor contiene B después


de la quinta instrucción?
c) ¿Qué valor contiene A después
de la sexta instrucción?

d) ¿Qué valor imprime la última


instrucción?

e) Si en lugar de Imprimir(A)
hubiésemos escrito Imprimir(“A”)
¿Qué aparecería?

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 algún
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 número
", i
LEER x
ESCRIBE "Ordenada del punto
número ", 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 importantísimo 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 número ',i);
readln(x);
write ('Ordenada del punto número
',i); readln(y);
write (' El punto es (',x+3,',',y,')');
end;
end;

9. Calcular y mostrar la suma de los


diez primeros números entre 1 y
1000 que sean divisibles por uno
dado.
programa suma_divisibles
variables natural : divisor, suma,
contador, número

inicio programa
divisor leer ‘Introduce el divisor: ’
suma 0
contador 0
para número desde 1 hasta 1000 hacer
si divisor divide a número entonces
suma = suma + número
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 pseudocódigo que


proporcione el volumen de un
cilindro, conocidos su altura y
diámetro.

Inicio
Mostrar “Introduzca el diámetro, 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 cúbicos”
Fin

Aquí puedes ver que hemos sustituido


Escribir por Mostrar, pero es lo mismo.
12. Crear un pseudocódigo 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 número
1, en
euros” : Pedir Precio1
Mostrar “Introduzca el precio del
producto en el establecimiento número
2, en
euros” : Pedir Precio2
Mostrar “Introduzca el precio del
producto en el establecimiento número
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 fábrica
recibe cada cierto tiempo un
depósito cilíndrico de dimensiones
variables, que debe llenar de aceite
a través de una toma con cierto
caudal disponible.

Se desea crear un programa que le


indique cuánto tiempo transcurrirá
hasta el llenado del depósito.
El caudal disponible se considera
estable para los tiempos que tardan
los llenados de depósitos 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 diámetro del
depósito, en metros” : Pedir D
Mostrar “Introduzca la altura del
depósito, 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 depósito es de”,
tminutos, “minutos”
Fin
14. Dadas dos variables numéricas
A y B, que el usuario debe teclear,
se pide realizar un algoritmo que
intercambie los valores de ambas
variables y muestre cuánto valen al
final las dos variables (recuerda la
asignación).

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 contraseña.

inicio
variables cadena usuario='', clave=''
cadena usuario_valido= 'cristian',
clave_valida= '1234'
muestre ' porfavor ingrese usuario y
contraseña '
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 número de frases
introducidas son: "
ESCRIBIR c
FINPROGRAMA
18. Introducir un número por
teclado. Que nos diga si es positivo
o negativo.

PROGRAMA signo
ENTORNO: num = 0
ALGORITMO:
Borrar_pantalla( )
ESCRIBIR "Introduce un n£mero: "
LEER num
SI num >= 0 ENTONCES
ESCRIBIR "es positivo"
SINO
ESCRIBIR "es negativo"
FINSI
FINPROGRAMA

19. Crear el pseudocódigo y el


diagrama de flujo para un programa
que muestre todos los enteros
comprendidos entre un número
definido por el usuario y 100.

Inicio
Mostrar “Introduzca un número entero
comprendido entre 1 y 99” : Pedir Num

Desde i = Num hasta 100 Hacer

Mostrar i

Siguiente

Fin

20. Elabore un traductor simple de


inglés-español utilizando dos
arreglos o arrays de tipo cadena de
texto con 20 palabras como mínimo.

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
Programación y Para qué
sirven.

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

Probablemente también te suene


JavaScript, que es otro lenguaje
utilizado para crear pequeños 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 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.

Des este lenguaje se derivan otros


como C++.
-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.
-Visual Basic: Es uno de los lenguajes
de programación MAS Fáciles 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 aplicación 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
Fórmulas: Formula TRANslator):
Diseñado específicamente para
programas matemáticos y de ingeniería,
motivo por el cual, no fue de amplio uso
en computadoras personales. Su uso se
dirige especialmente a equipos de
cómputo dedicados a la investigación y
la educación.

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.

También podría gustarte