Sunteți pe pagina 1din 27

CAPTULO 1

Enfoques de Programacin

Historia
Existen muchas interpretaciones respecto a la historia de la programacin, cito a la historia desde 1700 en adelante para explicar el valor de la automatizacin del mismo. Antiguamente las instrucciones lgicas eran un conjunto de valores entre 0 y 1, el cual lo conocemos como sistema binario, bajo el concepto de ese conjunto de valores se dio una interpretacin !sica "ue conocemos como tarjeta per orada, est# representar!a dependiendo de su hendidura, abierta o cerrada en la representacin binaria, si bien las primeras tarjetas per oradas ueron usadas por primera vez alrededor de 17$% por &asile &ouchon y 'ean(&aptiste )alcon como una orma m#s robusta de los rollos de papel per orados usados en ese entonces para controlar telares textiles en )rancia. Esta t*cnica ue enormemente mejorada por 'oseph +arie 'ac"uard en su telar de 'ac"uard en 1,01. -a tarjeta per orada es una cartulina con unas determinaciones al estar per oradas, lo "ue supone un cdigo binario. Estos ueron los primeros medios utilizados para ingresar in ormacin e instrucciones a un computador en los a.os 1/00 y 1/70. -as tarjetas per oradas ueron usadas por primera vez 1ara crear un programa, y "ue la computadora interprete y ejecute las instrucciones escritas en *l, debe usarse un lenguaje de programacin. En sus inicios las computadoras interpretaban slo instrucciones en un lenguaje espec! ico, del m#s bajo nivel, conocido como cdigo m#"uina, siendo *ste excesivamente complicado para programar. 2e hecho slo consiste en cadenas de n3meros 1 y 0 4sistema binario5. 1ara acilitar el trabajo de programacin, los primeros cient! icos "ue trabajaban en el #rea decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del ingl*s6 las codi icaron y crearon as! un lenguaje de mayor nivel, "ue se conoce como Assembly o lenguaje ensamblador. 1or ejemplo, para sumar se usa la letra A de la palabra inglesa add 4sumar5. En realidad escribir en lenguaje ensamblador es b#sicamente lo mismo "ue hacerlo en lenguaje m#"uina, pero las letras y palabras son bastante m#s #ciles de recordar y entender "ue secuencias de n3meros binarios, teniendo en cuenta "ue la mayor!a de los int*rpretes creaban m#s

instrucciones del lenguaje de m#"uinas, para abarcar todas las posibilidades "ue se pod!an interpretar del lenguaje. A medida "ue la complejidad de las tareas "ue realizaban las computadoras aumentaba, se hizo necesario disponer de un m*todo sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. +ientras "ue una tarea tan trivial como multiplicar dos n3meros puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastar# con solo una, esto acilito la distribucin del lenguaje para la interpretacin de las tareas comunes, a la sem#ntica algor!tmica creando un conjunto de instrucciones secuenciales, cumplieran un propsito procedural o uncional. 7na vez "ue se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje m#"uina. &ajo este concepto entonces ya teniendo claro "ue la lgica de cmo crear ese lenguaje de m#"uinas est# resuelto, entonces se toma en cuenta "ue la manera de dirigir la lgica hacia un resultado o meta, para ello se plantean di erentes en o"ues "ue sirven para di erentes propsitos de solucin, sin m#s veamos el primero a representar.

El Algoritmo
En matem#ticas, ciencias de la computacin y disciplinas relacionadas, un algoritmo 4del griego y lat!n, dixit algorithmus y este a su vez del matem#tico persa Al('uarismi5 es un conjunto preescrito de instrucciones o reglas bien de inidas, ordenadas y initas "ue permite realizar una actividad mediante pasos sucesivos "ue no generen dudas a "uien deba realizar dicha actividad. 2ados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado inal y se obtiene una solucin. -os algoritmos son el objeto de estudio de la algoritmia. En la vida cotidiana, se emplean algoritmos recuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, "ue muestran algoritmos para usar un aparato, o las instrucciones "ue recibe un trabajador por parte de su patrn. Algunos ejemplos en matem#tica son el algoritmo de la divisin para calcular el cociente de dos n3meros, el algoritmo de Euclides para obtener el m#ximo com3n divisor de dos enteros positivos, o el m*todo de 8auss para resolver un sistema lineal de ecuaciones. En particular estos algoritmos resolver!an un problema en particular o llegar a una meta, simplemente la primera ormulacin de la meta es un par#metro importante, "ue debemos plantear de un comienzo, entendiendo "ue la meta llevar# establecer todos los pasos y las operaciones y9o expresiones "ue tendr#n "ue ocurrir para llegar a esa meta, entonces algoritmo cl#sico a plantear mesclando la lgica matem#tica es la :suma;

<uma = sumando > sumando Algoritmo para resolver una suma dependiendo de entrada y salida. Algoritmo umar ?ngresar primer sumando ?ngresar segundo sumando @alcular la suma +ostrar la suma

<i bien la suma es una operacin diremos "ue esto es un proceso algor!tmico, "ue contiene los pasos de ingresar primer sumando, ingresar segundo sumando, calcular la suma, cuyo resultado y propsito inal es mostrar la suma. Estos pasos para llegar a nuestra meta se hacen posible en estricto rigor, al orden de los pasos planteados, si bien estos son secuenciales hacen "ue la lgica aplicada sea ocupada de manera intuitiva, tambi*n est# m#s adelante puede tener bi urcaciones lgicas, decisiones, repeticiones y casos particulares "ue pueden representarse algor!tmicamente.

Programacin Estructurada
2e acuerdo a la programacin de estos lenguajes de alto nivel, surgi la necesidad de establecer ciertas reglas y9o convenciones para llegar a un orden de cmo programar, entonces este conjunto de instrucciones ueron en ocadas a dar mejor claridad, calidad y tiempo de desarrollo, para ello se de ine todas las soluciones utilizando 3nicamente subrutinas, con tres estructurasA secuencia como conjunto de pasos de programacin, seleccin 4? , sBitch5 como una bi urcacin a la secuencia, de acuerdo a una condicin lgica a cumplir hacer un conjunto de pasos de programacin o en caso contrario y no cumpla la condicin lgica un conjunto de pasos programacin, iteracin como un conjunto de pasos de programacin "ue se repitan una cierta cantidad de veces de acuerdo a una condicin lgica, dado "ue este tipo de programacin posee un alto grado de rigidez entonces se omiten los saltos de pasos sin condicin como los es !OTO "Traduccin Literal #$r a%&, esto ue re orzado por una amosa carta "ue la sentencia goto era considerada perjudicial, de Edsger 2ijCstra en 1/0,.

Programacin Orientada a Ob'etos


-a necesidad de representacin de di erentes niveles de abstraccin y comportamientos, llev a crear un nuevo paradigma llamado programacin orientada a objetos o 1DD 4DD1 seg3n sus siglas en ingl*s5 es un paradigma de programacin "ue usa los objetos en sus interacciones, para dise.ar aplicaciones y programas in orm#ticos. Est# basado en varias t*cnicas, incluyendo herencia, cohesin,

abstraccin, polimor ismo, acoplamiento y encapsulamiento. <u uso se populariz a principios de la d*cada de los a.os 1//0. En la actualidad, existe variedad de lenguajes de programacin "ue soportan la orientacin a objetos. 2esde el punto de vista de la programacin, programacin estructurada y programacin orientada a objetos est#n estrechamente relacionadas, en un orden de abstraccin y pertenencia la programacin orientada a objetos, contiene en sus comportamientos la programacin estructurada. 1rogramacin Drientada a Dbjetos

1rogramacin Estructurada incluida en el m*todo

Atributos +*todo +*todo

CAPTULO (

$ntroduccin a la )rogramacin Estructurada


1ara aprender a programar utilizaremos un lenguaje com3n de seudocdigo en este caso ser# el programa 1<e?nt, el cual servir# para poner en practica la creacin de soluciones estructuradas para di erentes problemas dentro de este paradigma de programacin.

$nstalacin de Pse$nt
1ara instalar la ultima versin de pseint debe ir a la siguiente 7EhttpA99pseint.source orge.net9 en la seccin descargas encontrar#s para di erentes sistemas operativos.

-a instalacin en FindoBs es muy simple clic en el instalador para FindoBs, descargar# la en este caso es pseint(BG$($01$1$0,.exe "ue es la 3ltima versin del , de diciembre del $01$.

@on esto estar!a instalado 1<e?nt la 3ltima versin, se debe tener en cuenta "ue esta aplicacin utiliza 'AHA, por lo tanto es uno de los prerre"uisitos antes de instalarlo.

El Pseudo*cdigo
El pseudo(cdigo es una convencin en ciencias de la computacin, y an#lisis num*rico el pseudocdigo 4o also lenguaje5, es una descripcin in ormal de alto nivel de un algoritmo in orm#tico de programacin, compacto e in ormal, "ue utiliza las convenciones estructurales de un lenguaje de programacin real, pero "ue est# dise.ado para la lectura humana en lugar de la lectura mediante m#"uina, y con independencia de cual"uier otro lenguaje de programacin. Esta convencin acilita el aprendizaje e internalizacin de la lgica aplicada a la programacin. Iormalmente, el pseudocdigo omite detalles "ue no son esenciales para la comprensin humana del algoritmo, tales como declaraciones de variables, cdigo espec! ico del sistema y algunas subrutinas, pero en este punto nosotros tendremos una di erencia ya "ue el en o"ue de este libro, es dar una coherencia entre este pseudo(cdigo y un lenguaje de programacin real como lo es 'AHA, para relacionar ambos lenguajes en sintaxis y sem#ntica. <e utiliza com3nmente en los libros de texto y publicaciones cient! icas "ue se documentan varios algoritmos, y tambi*n en la plani icacin del desarrollo de programas in orm#ticos, para esbozar la estructura del programa antes de realizar la e ectiva codi icacin. En esta edicin se tomar# las caracter!sticas del pseudolenguaje "ue ueron propuestas en $001, por el responsable de la asignatura de undamentos de programacin 4Joracio -oyarte5 en la carrera de ingenier!a en in orm#tica de la )?@J( 7I-, en donde las premisas "ue se ocupar#n sonA <intaxis sencilla +anejo de las estructuras b#sicas de control <olo G tipos de datos b#sicosA num*rico, car#cter9cadenas de caracteres y lgico 4verdadero( also5 Estructuras de datosA arreglos

+orma general de un Algoritmo


El algoritmo en pseudocdigo de esta convencin tiene la siguiente estructura generalA 1roceso Iombre1roceso accion 16 accion $6 . . . accion n6 )in 1roceso

<i bien esta es la convencin en donde comienza un proceso siguiendo la misma estructura de pasos de un algoritmo, esto tambi*n permite el uso planteado de la programacin estructurada secuencia, seleccin e iteracin, omitiendo como convencin el uso de saltos de paso "!OTO&. Eespecto a su estructura comienza con la palabra clave Proceso seguida por el nombre del programa, en este caso el programa de inir# la meta a conseguir, "ue por generalidad lo llamaremos el -erbo a conseguir "-c&, despu*s de la palabra clave proceso, sigue una secuencias de instrucciones "ue de inir# todos -erbo ad'eti-o "-a&, estos har#n "ue nuestro meta se cumpla, despu*s de estas instrucciones termina este proceso con la palabra clave +inProceso. <e establece como convencin de termino de instruccin el punto y coma :6;. @ada accin puede ser una entrada y salida, asignacin de variables, seleccin si( entonces o seleccin multiple, iteraciones con mientras, repetir o para. 1ara ejempli icar con un algoritmo simple, representado por esta convencin de pseudo(cdigo presentamos en 1<e?nt el proceso <uma, este ejemplo est# disponible en la ayuda de 1<e?nt

<iguiendo la sem#ntica de la orma general del algoritmo, este pseudo(cdigo presenta, la palabra clave 1roceso <uma representa nuestra meta del proceso, para

ello se ocupa una salida 4Escribir :?ngrese el primer numeroA;5, "ue mostrar# a nuestro usuario o cliente un mensaje de lo "ue debe hacer, luego tenemos una entrada 4-eer A5, "ue produce "ue el proceso espere al usuario "ue escriba el valor por teclado, "ue asignar# a la variable A, luego siguiendo la misma lgica de mostrar al usuario lo "ue debe escribir, esperar "ue introduzcan por teclado el valor de una variable, siguen las instrucciones de salida 4Escribir :?ngrese el segundo numeroA;5 y la entrada 4-eer &5, luego viene una expresin "ue calcula la suma a trav*s de una asignacin 4@ K( A>&5, esto se lee de derecha a iz"uierda sumar A con &, luego el resultado de esta suma asignarlo a la variable @, por 3ltimo una salida para mostrar el resultado de esta operacin 4Escribir :El resultado esA :, @5.

E'ercicio /esuelto
1.( @uadrado Escriba un programa "ue reciba como entrada un lado del cuadrado y entregue como salida el #rea y el per!metroA ?ngrese un lado del cuadradoA G AreaA / 1erimetroA 1$ ?r a ?nicio, 1rogramas, 1<e?nt Al abrir 1<e?nt aparecer# el proceso por de ecto sinLtitulo eligen guardar con el nombre 01Lcuadrado.

Iotar "ue cambio la pesta.a superior a 01Lcuadrado.psc, la extensin psc es la "ue guardar los algoritmos hechos por 1<e?nt. @ambiar el nombre del proceso de sinLtitulo a cuadrado.

1ara plantear el algoritmo de cuadrado primero identi icamos nuestra meta a conseguir de acuerdo a pasos algor!tmicos, i. ii. iii. iv. +ostramos al usuario :?ngrese un lado del cuadradoA ; <olicitamos una entrada por teclado del lado @alculamos el #rea del lado con la siguiente expresinA area = ladoMlado6 @alculamos el per!metro del lado con la siguiente expresinA perimetro = NMlado6

v.

vi.

+ostramos al usuario :AreaA : > area, esto es una concatenacin de $ resultados, el primero es la cadena de caracteres :AreaA : y luego el valor almacenado en la variable area es agregado despu*s de :Area A;, teniendo como resultado ambos valores unidos. +ostramos al usuario :1erimetroA : > perimetro

7na vez planteado el algoritmo secuencial, se procede a escribir esto en pseudo( cdigo +ostramos al usuario :?ngrese un lado del cuadradoA ;

<olicitamos una entrada por teclado del lado

1ara ver si esto unciona correctamente pueden ejecutar este algoritmo con

Iotar#n "ue las $ instrucciones escritas podr#n probarlas. @ontinuamos con nuestro algoritmo. @alculamos el #rea del lado con la siguiente expresinA area = ladoMlado6

Iotar#n "ue area es una variable "ue recibe el resultado de multiplicar ladoMlado, a esto se le llama asignacin.

@alculamos el per!metro del lado con la siguiente expresinA perimetro = NMlado6

+ostramos al usuario :AreaA : > area

+ostramos al usuario :1erimetroA : > per!metro

Ejecutamos este algoritmo completo de acuerdo a la situacin planteada en el ejercicio, para comprobar si los resultados son los esperados.

<i notamos existe un ligera di erencia entre la situacin planteada y el resultado inal, cuando mostramos al usuario :?ngrese un lado del cuadradoA :, notamos "ue al leer pasa a la siguiente l!nea. 1ara poder representar horizontalmente el resultado se debe cambiar la palabra reservada Escribir )or Escribir sin saltar.

El resultado entonces es el esperado de acuerdo a lo "ue se especi ic.

E'ecutar Paso a Paso


1ara aprender a programar es importante tener en cuenta el avance secuencial, est* de acuerdo a lo esperado, para eso los di erentes lenguajes de programacin proveen herramientas de depuracin, "ue servir#n para saber los pasos "ue ha hecho el programa y los valores de las variables "ue contienen, de esta manera se establecer# la coherencia de los resultados a trav*s de las pruebas realizadas. En 1<e?nt se ejecutan paso a paso las instrucciones de tu algoritmo con el siguiente iconoA Este s!mbolo signi ica ejecutar paso a paso, tambi*n tiene una tecla de acceso r#pido )%.

Existe otra orma de ver como se ejecuta paso a paso las instrucciones de nuestro algoritmo.

En borde derecho superior al hacer clic se expandir# un panel en donde tendr# los botonesA @omenzar @ontinuar 1rimer 1aso 1rueba de Escritorio Evaluar

1rimero presionar el botn comenzar esto nos dar# las opcionesA )inalizar 1ausar

-a opcin continuar es e"uivalente a ejecutar paso a paso. Ahora existe una uncionalidad novedosa "ue es para saber el valor de cada variable esto es a trav*s de la prueba de escritorio, <abiendo cuales son las variables "ue se ocupar#n dentro del algoritmo se puede saber instruccin a instruccin cuales son los valores "ue ad"uieren. ?niciaremos una prueba y agregaremos cada variable a esta prueba instruccin a instruccin, y ver "u* valores ad"uiere para inalmente ver el resultado en pantalla. @on igurar las variables "ue ser#n visualizadas paso a paso @lic en 1rueba de Esc.

Agregar las variables del algoritmo cuadrado area, lado, per!metro.

Jacer clic en realizar seguimiento y clic en aceptar.

Jacer clic en primer paso, esto permitir# detenerse en la instruccin 1.

Jacer clic en Avanzar un 1aso, esto avanzar# hasta la instruccin $, hay "ue tener en cuenta "ue al avanzar un paso se ejecutar# la instruccin, en nuestro primer caso al pasar por la instruccin 1 no se vio re lejado ning3n cambio.

Jacer clic Avanzar un 1aso, al pasar de la instruccin $ a la instruccin G se ve re lejado un cambio en el programa, debido a "ue se ejecuto un Escribir <in <altar 4Iotar "ue las variables aun no su ren ning3n cambio5.

Jacer clic en Avanzar un 1aso, notar "ue se han deshabilitado opciones de botones en el 1aso, exist!an )inalizar, @ontinuar, Avanzar un 1aso y Evaluar, ahora solamente est# inalizar, esto se debe a "ue la instruccin leer detiene la ejecucin del programa, hasta "ue ingresen por teclado un valor a la variable lado por la instruccin Leer.

Al ingresar el valor vuelven las opciones de botn se vuelven a mostrarA continuar, avanzar un paso y evaluar, y avanza a la siguiente instruccin N. En la prueba de escritorio notar "ue la variable lado cambio del valor 0 al valor G.

Jacer clic en avanzar un paso, al pasar de la instruccin N a la instruccin % se realiza se eval3a la expresin lado M lado, la cual da como resultado GMG=/, luego de tener esta expresin evaluada se asigna a la variable area el valor resultante /. En la prueba de escritorio la variable area cambio del valor 0 al /.

Jacer clic en avanzar un paso, al pasar de la instruccin % a la instruccin 0, se eval3a la expresin NMlado, la cual da el resultado de N M G = 1$, luego de tener esta expresin evaluada el valor 1$ de este resultado se asigna a la variable )erimetro.

Jacer clic en avanzar un paso, al pasar de la instruccin 0 a la instruccin 7, la expresin 4:AreaA :, area& es evaluada, primero la variable area se traduce a su valor "ue es /, luego la cadena de caracteres :Area A : es unida al valor /, ormando una nueva cadena :Area A /;, esta nueva cadena es pasada como argumento a Escribir mostr#ndolo en pantalla como salida.

Jacer clic en avanzar un paso, al pasar de la instruccin 7 a la instruccin ,, la expresin 4:1erimetroA :, )erimetro& es evaluada, primero la variable )erimetro se traduce a su valor "ue es 1$, luego la cadena de caracteres :1erimetro A : es unida al valor 1$, ormando una nueva cadena :1erimetro A 1$;, esta nueva cadena es pasada como argumento a Escribir mostr#ndolo en pantalla como salida.

Jacer clic en avanzar un paso, al pasar de la instruccin , a la instruccin /, termina la ejecucin del programa.

<i bien una ejecucin paso a paso no es el comportamiento real del programa, esto nos dar# claros indicios si el programa hace lo "ue debe hacer, como regla general cuando nos en rentamos a una situacin en donde la programacin depende de ciertas secuencias esperadas, los resultados de la evaluacin lgica ser#n un actor clave de *xito para nuestra meta a obtener.

0iagrama de +lu'o
Dtra orma de ver este algoritmo es la representacin gr# ica dibujado como diagrama de lujo. Este s!mbolo permitir# leer tu algoritmo y representarlo de acuerdo al lujo de eventos "ue ocurran secuencialmente. -a simbolog!a es la siguienteA 1roceso y )in1roceso. Asignacin, 2imensin, 2e inicin, <alida sin variables Entrada por teclado <alida con variables <i O Entonces <eg3n

+ientras

Eepetir Jasta "ue

1ara

Pambi*n para ver el listado de todas las variables existentes

Iotamos "ue las variables son area, lado, perimetro.

E'ercicio Pro)uesto
$.( Priangulo Escriba un programa "ue reciba como entrada la base y la altura de un tri#ngulo y entregue como salida el #reaA ?ngrese la baseA $ ?ngrese la alturaA N AreaA N Algoritmo i. ii. iii. iv. v. vi. +ostrar al usuario :?ngrese la baseA : sin saltar l!nea. <olicitar una entrada por teclado de la base +ostrar al usuario :?ngrese la alturaA : sin saltar l!nea. <olicitar una entrada por teclado de la altura @alcular el area con la expresinA area = 4base M altura59$ +ostrar al usuario :Area A; > area

S-ar putea să vă placă și