Sie sind auf Seite 1von 12

INTRODUCCIN A LA PROGRAMACIN

1. Cmo hablo con la mquina?


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) pensado para RESOLVER algn tipo de PROBLEMA. Si no sabemos resolver este problema, no podremos escribir el programa. A ti se te puede ocurrir una manera de resolverlo. A tu vecino, otra. Este METODO con el que se resuelve el problema, es lo que se llama ALGORITMO. Un algoritmo no es ms que una secuencia de pasos que, seguidos uno a uno, me permiten resolver un problema. Por ejemplo, cuando quiero ver una pelcula, podra hacer:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

Elijo una pelcula de las de mi coleccin. Compruebo SI tv y video estn conectados a la red (y procedo). SI la TV est apagada, la enciendo, SI NO, pues no. Y lo mismo con la video. Abro el estuche de la pelcula. Saco la pelcula de su estuche. Introduzco la pelcula en la video. Dejo el estuche. SI la TV no est en el canal adecuado, la cambio, SI NO, pues no cambio el canal. Tomo el control (el del TV y el del video). Me pongo cmodo. Pulso PLAY en el control de video.

Detalles que son fundamentales y que aparecen en este algoritmo: 1. 2. 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.

Y es que NO se puede tener eternamente pensando a la mquina si se pretende obtener un resultado en algn momento. Notar tambin que se han escrito en maysculas las palabras SI y SI NO, que forman parte de la manera en que se escriben algoritmos.

2. Las variables, usos y costumbres


Podemos imaginar a las variables, como aquellas cajas donde podemos ir almacenando cosas como lechugas, tomates y tambin... ENTEROS: Como su nombre indica, aqu podremos meter nmeros enteros, tanto positivos como negativos. Cuando decimos que podemos tener tanto enteros positivos como negativos, lo que se suele decir es "enteros con signo". Si slo vamos a tener enteros positivos (incluyendo el cero), decimos entonces "enteros sin signo". Esta nomenclatura de "con signo" y "sin signo" es aplicable a otros tipos, como el siguiente.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 1 de 1

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

REALES: Aqu podemos poner nmeros con decimales, tanto positivos como negativos. Hay reales con signo y reales sin signo, pero, si no decimos lo contrario, se sobreentiende que son con signo. Obviamente, dado que la memoria de la mquina es finita, el tamao de los datos que almacenemos tambin ser finito. Esto quiere decir que, por ejemplo, el nmero Pi jams cabr en la memoria de una computadora. Por tanto, para cada tipo de dato, segn el lenguaje, se especifica cuntas cifras tiene, aunque suele ser unnime. CARACTERES: Si tenemos una variable de tipo caracter, lo que podemos almacenar ser un caracter como 'p', 's', '3', '#' y otros. Estos son los tres tipos de datos bsicos. Las variables se suelen declarar al principio del programa, toda variable utilizada, debe haber sido previamente declarada. Para ello, escribimos algo como esto:

Declaracion de variables: ENTERO: i,j,k REAL: x,y,z CARACTER: a,b,c Fin de la declaracion de variables

Esto querr decir que las variables i, j, k sern enteras (con signo), que las variables x, y, z sern reales (con signo) y que las variables a, b, c sern caracteres. Al escribir la declaracin de variables de esta forma, si alguna se nos ha olvidado, es muy fcil incluirla. Una variable, en el momento que la declaramos, est vaca, hueca, sin vida, sentido ni VALOR. Y hasta que dicha variable no tenga valor, lo mejor ser no hacer cosas con ella. Entonces, aqu viene la pregunta: y cmo meto en mi variable un 7? Puedo meter un 23? Para poder meter cosas en las variables, lo que hacemos es asignarles un valor, es decir, "Pepe es una variable de tipo entero. Si a Pepe le asigno 14, a partir de ahora, poner Pepe es tanto como poner 14". Para ello, nosotros vamos a usar un smbolo, una flechita. Cuando queramos hacer asignaciones, haremos esto:

Pepe <- 14 Carolina <- -9.65 Juan <- 'a'

(asignamos un entero) (asignamos un real) (asignamos un caracter)

Y podemos hacer cuantas asignaciones queramos a nuestra variable. Por ejemplo, si hacemos:

Pepe <- 14 Pepe <- 4 Pepe <- -3 Pepe <- 42

al final, en Pepe tenemos almacenado el valor 42.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 2 de 2

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Lo que no debemos hacer es:

Pepe <- 14 Pepe <- 2.5

pues estamos metiendo un valor REAL en una variable que slo quiere ENTEROS. Qu pasar aqu? Pues depende del compilador. Quiz nos trunque los decimales, quiz los redondee, quiz, simplemente, nos d un error y no lo permita. En cualquier caso, si queramos un 2.5 con toda nuestra alma, una variable entera no es lo ms recomendable para guardarlo. "Muy bien, ya s cmo meter cosas en las variables, ahora... qu puedo hacer con mis variables?" Como los caracteres son un tanto especiales, sern tratados aparte, para que no haya confusin. As que, por ahora, nos vamos a entender con las variables numricas. Como obviamente parece, podemos sumar, restar, multiplicar y dividir variables. Si dividimos por una variable que en ese momento valga cero, tendremos un error. Pero, por lo dems, podemos hacer todas estas cosas. Por el mismo motivo que he comentado arriba, es mejor no mezclar enteros con reales al hacer operaciones, a no ser que de verdad uno sepa que quiere mezclarlos y por qu quiere mezclarlos. Para estas operaciones, usaremos la notacin usual que nos ensearon ya desde pequeitos. Entonces, podremos hacer todas estas cosas:

Pepe <- 2 Mari <- 3 Juan <- Pepe*Mari

Tendremos que en Juan est almacenado el valor 2*3=6 :)

Pepe <- 2 Mari <- 3 Juan <- Pepe+Mari

Ahora, en Juan est almacenado el valor 2+3=5 :)

Pepe <- 2 Mari <- 3 Juan <- Pepe-Mari

Y ahora, en Juan est almacenado el valor 2-3=-1 :) Adems, los compiladores suelen traer libreras matemticas con muchas funciones ms avanzadas (aunque *todas* esas funciones se consiguen a partir de las cuatro operaciones bsicas), funciones con las que podemos hacer ms operaciones con nuestras variables.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 3 de 3

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Por ejemplo, podemos escribir:

Mari <- Pi Pepe <- sin(Mari)

Y tendremos en Pepe almacenado el valor sin(Pi)=0

3. Estructuras de control, secuenciales y selectivas


Una definicin ms rigurosa de lo que es un algoritmo:

Un algoritmo es una sucesin finita de pasos no ambiguos que se pueden llevar a cabo en un tiempo finito.

Sucesin finita es lo contrario de infinita: esto quiere decir que se acaba en algn momento. Pasos no ambiguos son pasos tan claros que hasta una mquina los puede entender, de ah la necesidad de la no ambigedad. Lo del tiempo finito es una cuestin prctica: no creo que tengamos tanta paciencia (ni que lleguemos vivos, sobre todo) como para ver la salida de un programa que calcule Pi. No hay que confundirse: un algoritmo no es lo mismo que un programa, para hacer un programa necesitamos algo ms: unas estructuras de datos. Hay distintas formas de escribir un algoritmo, bien usando un lenguaje especfico de descripcin de algoritmos, bien mediante representaciones grficas. En este curso seleccionamos la primera: el pseudocdigo. Que sea un lenguaje especfico no significa que haya que aprender un idioma nuevo, lo nico que quiere decir es que hay unas cuantas palabras que son clave, y que son las palabras que, de acuerdo a un conjunto de reglas o sintaxis, nos ayudan a describir el algoritmo. La estructura del pseudocdigo es bastante parecida a la de algunos lenguajes de programacin (por ejemplo, el Pascal), por ello me ha parecido la ms recomendable. El pseudocdigo tiene algunas ventajas: Es fcil hacer cambios si nos equivocamos en la lgica del programa Es independiente del lenguaje de programacin que vaya a usarse; un algoritmo que est escrito en pseudocdigo es fcilmente traducible a muchos lenguajes de programacin.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 4 de 4

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Elementos bsicos para la descripcin de algoritmos


El principio y el fin
Para delimitar el comienzo y el final de un algoritmo, o de un trozo de algoritmo (por ejemplo, en los bucles, y otros, como vamos a ver), haremos lo siguiente:

inicio ... Aqui va el algoritmo en cuestion fin

Tambin, en vez de inicio y fin se puede usar "empezar" y "terminar", pero siempre quedando clara la intencin. No hay que ser estrictamente riguroso con la aplicacin del "inicio-fin", muchas veces, una buena indentacin hace su papel.

Asignaciones
Cuando hayamos declarado una variable, llegar un momento en el que la variable tome algn valor. Por ejemplo, tenemos una variable de tipo entero que se llama I y queremos asignarle el valor 3, entonces, escribiremos:

I <- 3

Comentarios
Poner comentarios de lo que vamos haciendo es muy til, sobre todo cuando llega la hora de revisar el algoritmo, si no, ms de una vez nos encontraremos diciendo "mmm ... qu era lo que haca esto?" No cuesta nada documentar el cdigo y nos ahorrar dolores de cabeza. llaves. As, {esto ser un comentario} La convencin que seguiremos ser poner los comentario entre

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. Veamos un ejemplo: supongamos que acabamos de mostrar un mensaje en la pantalla que pregunte al usuario "desea seguir adelante?". Obviamente, de la respuesta del usuario va a depender la siguiente accin del programa. Por ejemplo, si este mensaje se nos presenta tras haber pulsado un botn de cerrar la aplicacin, si nosotros elegimos "S", la aplicacin se cerrar, y si elegimos "No", la aplicacin seguir adelante. El programador tiene que haber escrito cdigo para las dos posibilidades, aunque cuando el programa est funcionando, slo se elegir una. Las estructuras de control son de tres tipos: 1. 2. 3. Secuenciales Selectivas Repetitivas

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 5 de 5

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

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

Declaracion de variables REAL: radio, area fin declaracion de variables

inicio mostrar en pantalla 'dame el radio del circulo' leer del teclado la variable radio area <- 3.14159*radio mostrar en pantalla 'el area del circulo es:' mostrar en pantalla el contenido de la variable area fin

Notar una cosa: cuando queremos hacer cosas relativas a entrada o salida por algn dispositivo, como el teclado, la pantalla o la impresora, yo pongo cosas como "mostrar por pantalla", o "leer del teclado". Dado que cada lenguaje de programacin tiene sus funciones de entrada/salida, por ahora no usamos la forma particular de ninguno, simplemente, lo que le diramos a la computadora en caso de que fuera una persona ("oye, por favor, scame esto por impresora"). Por otro lado, cuando queramos decir que nos muestre el contenido de una variable, hemos escrito "mostrar en pantalla el contenido de la variable area", pero poda haber puesto igualmente "mostrar en pantalla area", o cosas similares. Lo importante es que las intenciones sean claras, o, lo que es lo mismo, "no ambiguas".

Estructuras SELECTIVAS.
La palabra condicin nos sugiere frases como "lo har a condicin de que me prestes tu auto". Analicemos esta frase con un poco de detenimiento. Decimos "lo har", pero, "lo har" siempre, pase lo que pase? o, por el contrario, "lo har" si antes hay algo que debe cumplirse? est claro que no se ha dicho "lo har" sin ms, si no que hay como una pequea clusula "SI me prestas tu auto". En la frase

Lo que significa "SI me prestas tu auto" es lo siguiente, en caso de que la accin "prestarme tu auto" sea cierta (o verdad), yo "lo har". si la accin "prestarme tu auto" es falsa (o mentira), yo NO "lo har".

Pero

En esto residen las estructuras que vamos a ver a continuacin: se EVALUA una condicin, y se acta en consecuencia, segn que la condicin sea VERDADERA o FALSA. Estas estructuras se utilizan para TOMAR DECISIONES (por eso tambin se llaman estructuras de decisin o alternativas). Lo que se hace es EVALUAR una condicin, y, a continuacin, en funcin del resultado, se lleva a cabo una opcin u otra.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 6 de 6

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Alternativas SIMPLES
Son los conocidos "si... entonces". Se usan de la siguiente manera (una vez ms, la escritura es ms o menos personal, siempre que las intenciones queden claras para todos): yo quiero evaluar una condicin, y si se cumple (es decir, si es cierta), entonces realizar una serie de pasos. Esto lo podemos escribir as:

SI se cumple la condicion, ENTONCES: Hago el paso 1 .... Hago el paso N fin del SI

Muy estrictamente, sera:

SI se cumple la condicion, ENTONCES: inicio Hago el paso 1 .... Hago el paso N fin fin del SI

Es importante cerrar el SI, ya que, si no se cumple la condicin, el programa seguir a continuacin de donde termina el SI. Por ejemplo, queremos calcular la raz cuadrada de un nmero; sin embargo todos sabemos que la raz cuadrada de un nmero negativo NO es un nmero real. Esto quiere decir que, tras leer el nmero por teclado, tendremos que ver si es positivo, ya que slo en este caso podremos calcular su raz cuadrada.

Declaracion de variables REAL: numero, raz fin declaracion de variables inicio mostrar en pantalla 'introduce un numero' leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar en pantalla 'la raiz cuadrada es:' mostrar en pantalla raiz fin del SI fin

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 7 de 7

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Como extraer una raz cuadrada es una operacin que, en principio, no es elemental, yo he puesto raiz_cuadrada(numero), eso significa que, en alguna parte, tengo definida una funcin que me calcula la raz cuadrada de un nmero. Ya hablaremos de funciones y subrutinas ms adelante. raiz_cuadrada no forma parte de ningn tipo de especificacin de pseudocdigo.

Alternativas DOBLES
"si ... entonces ... sino" Se usan de esta forma: queremos evaluar una condicin, si es verdad, realizar una serie de pasos, y SI NO es verdad (es decir, si es fa lsa), entonces realizar otra serie de pasos. Esto lo podemos escribir as:

SI se cumple la condicion, ENTONCES: Hago el paso A1 .... Hago el paso AN y SI NO se cumple la condicion, ENTONCES: Hago el paso B1 .... Hago el paso BM fin del SI

Con esto, nuestro algoritmo para la raz cuadrada quedara:

Declaracion de variables REAL: numero, raz fin declaracion de variables inicio mostrar en pantalla 'introduce un numero' leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar en pantalla 'la raiz cuadrada es:' mostrar en pantalla raiz SI NO es numero >=0 ENTONCES: {es decir, si numero es negativo}

mostrar en pantalla 'lo siento, no puedo calcular la raiz cuadrada de un numero negativo' fin del SI fin

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 8 de 8

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Alternativas MULTIPLES
Es muy probable que tengamos la necesidad de incluir en nuestros programas alternativas con muchas opciones posibles. Esto lo podramos hacer a base de anidar "si ... entonces ... si no", pero si es un nmero elevado de alternativas, se hace demasiado farragoso como para resultar inteligibles. Por ejemplo, si queremos hacer un men que d a elegir cuatro opciones, un posible algoritmo sera:

{Algoritmo MENU a base de 'si ... entonces ... sino'} Declaracion de variables ENTEROS: opcion fin declaracion de variables

inicio mostrar en pantalla 'menu de opciones:' mostrar en pantalla '1. Diccionario de sinonimos' mostrar en pantalla '2. Diccionario de antonimos' mostrar en pantalla '3. Buscar palabra' mostrar en pantalla '4. Salir' leer del teclado la variable opcion

SI opcion = 1 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 2 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 3 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES SI opcion = 4 ENTONCES {lo que toque a esta opcion} SI NO, ENTONCES mostrar en pantalla 'opcion incorrecta' fin del SI fin del SI fin del SI fin del SI fin

Esto puede ser bastante complejo en caso de que fueran 20 o ms las alternativas. Para evitar esto, existe la estructura "segn sea". La idea es esta; por ejemplo, como en el algoritmo que hemos puesto del men, pedimos al usuario que ingrese una opcin, y hay cuatro posibilidades, cuatro posibles valores para los que haremos algo.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 9 de 9

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Entonces, SEGUN lo que valga la variable opcin, elegiremos una alternativa de entre todas las posibles. La forma de escribir esto en pseudocdigo es:

SEGUN SEA la variable o la expresion HACER VALOR1: {las acciones que toque} ... VALORN: {las acciones que toque} por defecto: {las acciones que toque} fin SEGUN

'por defecto', no es ms que una alternativa en caso de eligir alguna opcin no contemplada entre las que se ofrece. Como ejemplo, vamos a ver nuestro men utilizando la alternativa mltiple SEGUN SEA:

{Algoritmo MENU a base de 'segun sea'} Declaracion de variables ENTEROS: opcion fin declaracion de variables

inicio mostrar en pantalla 'menu de opciones' mostrar en pantalla '1. Diccionario de sinonimos' mostrar en pantalla '2. Diccionario de antonimos' mostrar en pantalla '3. Buscar palabra' mostrar en pantalla '4. Salir' leer del teclado la variable opcion

SEGUN SEA opcion HACER: opcion = 1 : {lo que toque a esta opcion} opcion = 2 : {lo que toque a esta opcion} opcion = 3 : {lo que toque a esta opcion} opcion = 4 : {lo que toque a esta opcion} por defecto: {mostrar un posible mensaje de error} fin SEGUN fin

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 10 de 10

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

As queda mucho ms claro, no slo para nosotros, si no para cualquier persona que tuviera que leerlo; adems, es una forma ms sencilla de manejar una alternativa mltiple. Incluso podemos abreviar el texto. es igualmente vlido poner, dentro del SEGUN, lo siguiente:

SEGUN SEA opcion HACER: 1 : {lo que toque a esta opcion} 2 : {lo que toque a esta opcion} 3 : {lo que toque a esta opcion} 4 : {lo que toque a esta opcion} por defecto: {mostrar un posible mensaje de error} fin SEGUN

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 11 de 11

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

EJERCICIOS
Sobre estructuras secuenciales:
1. 2. 3. 4. 5. Un Un Un Un Un algoritmo algoritmo algoritmo algoritmo algoritmo que que que que que calcule el rea de un tringulo. calcule el rea de un rectngulo. calcule el rea de un trapecio. calcule el precio de un artculo tras aplicarle un 16% de IVA. intercambie el contenido de dos variables.

Sobre estructuras selectivas:


1. 2. 3. 4. Un Un Un Un algoritmo que resuelva una ecuacin de segundo grado, teniendo en cuenta todas las posibles alternativas. esquema de men de opciones, por ejemplo, un men para seleccionar un libro a leer de entre siete disponibles. algoritmo que lea tres nmeros e imprima por pantalla el mayor de ellos. algoritmo que lea tres nmeros e imprima por pantalla el menor de ellos.

Av. Insurgentes Sur 1388, 3er. Piso, Col. Actipan Mixcoac, Del. Benito Jurez, C.P. 03230, Mxico, D.F.

Pgina 12 de 12

E-mail: cursos@zaber.com.mx

Tel. (+52 55) 17937138 Tel. (+52 55) 17937139

Das könnte Ihnen auch gefallen