fundamentos de programacion

206

Upload: fernando-dominguez

Post on 09-Nov-2015

103 views

Category:

Documents


4 download

DESCRIPTION

FUNDAMENTOS DE PROGRAMACION

TRANSCRIPT

  • FUNDAMENTOSDEPROGRAMACINPara principiantesPrimera edicin

    Ral Antonio Zavala LpezRoberto Llamas Avalos

    Derechos reserv ados 2013

    2

  • Derechos ycondiciones

    Fundamentos de programacin para principiantes

    Derechos reserv ados 2013 por Ral Antonio Zav alaLpez y Roberto Llamas Av alos.

    3

  • AgradecimientosNos gustara agradecer a todas aquellas personas quecompraron esta publicacin, con el f in de conocer un poco msen que consisten los fundamentos de programacin y susinteracciones.

    Regalo gratis

    ColaboradoresAs mismo quisiramos agradecer sin duda alguna almaestro Lauro Enrique Soto Landeros que prest parte de sutiempo en la rev isin y sugerencias de algunas de lascuestiones planteadas en esta edicin.

    4

  • ndiceSubportadaDerechos y condicionesAgradecimientosRegalo gratisColaboradoresPref acio1.- Conceptos bsicos

    1.1.- Clasif icacin del sof tware1.2.- Algoritmo1.3.- Lenguaje de programacin1.4.- Programa1.5.- Programacin1.6.- Paradigmas de la programacin1.7.- Editores de texto1.8.- Traductores1.9.- Programa ejecutable

    2.- Algoritmos2.1.- Anlisis de problemas2.2.- Representacin grf ica de los algoritmos2.3.- Diseo de algoritmos

    3.- Introduccin a la programacin3.1.- Caractersticas del lenguaje de programacin3.2.- Estructura bsica de un programa3.3.- Interpretacin de un programa3.4.- Ejecucin de un programa3.5.- Elementos del programa

    5

  • 4.- Control de f lujo4.1.- Estructuras secuenciales4.2.- Estructuras selectiv as4.2.1.- Selectiv a simple4.2.2.- Selectiv a doble y compuesta4.2.3.- Selectiv a anidada4.2.4.- Selectiv a mltiple4.2.5.- Selectiv a intenta (Try /Catch)4.3.- Estructuras repetitiv as4.3.1.- Repetir hacer-mientras (Do-While)4.3.2.- Repetir mientras (While)4.3.3.- Repetir desde (For)

    5.- Arreglos5.1.- Arreglos de dimensin uno (unidimensionales)5.2.- Arreglos de dimensin dos (bidimensionales)

    AutoresBibliograf a

    6

  • PrefacioTodos en algn momento al utilizar una computadora, una tabletao un celular nos hemos puesto a pensar en cmo es que lasociedad actual ha logrado construir aplicaciones amedida, de tal manera que se satisf aga la gran demanda de

    aplicaciones que da con da se exigen a niv el mundial. (Que lacreacin de un documento, que la creacin de una base dedatos, que la creacin de un programa que calcule una tabla devalores, etc ), en fin un abismo de aplicaciones.

    Llev ando consigo esta demanda una serie de aplicaciones quepueden ir desde un simple editor de texto hasta lo complejo,como el diseo asistido por computadora (CAD - ComputerAssisted Design). Por destacar solo algunas de ellas.

    A este tipo de cuestiones no es posible dar respuesta a simplev ista la gran may ora de v eces, pues todo un sistema seencarga de que as sea a f in de no daar la experiencia delusuario.

    Pues generalmente el usuario desea hacer lo suyo y nada ms,por tanto existen excepciones donde el usuario desea conocerms all de lo que utiliza cotidianamente.

    Es ah donde entra en detalle esta publicacin, cuy o f in esilustrar un poco al lector de los conceptos bsicos quesustentan el pilar de las tecnologas en cuanto a laprogramacin general se ref iere, es decir la lgica bsica

    7

  • implcita dentro de los programas (Aplicaciones).

    Abordando conceptos como: software, clasificacin de software,lenguaje de programacin, programa, paradigmas de laprogramacin, etc.

    Para despus lograr construir un programa o al menostener idea de cmo es que se construyen.

    Todo ello a travs de la dinmica de contenido: Concepto >>Ejemplo >> Ejercicio.

    Estas tres etapas han resultado ser muy ef ectiv as en un primery segundo semestre de ingeniera en sistemascomputacionales o en su equiv alente ciencias de la computacinen algunos pases.

    Como en lo personal hemos podido corroborar ambos autores.

    En el captulo 1, se abordan todas aquellas cuestiones determinologa bsica y esencial para el correcto entendimiento deconceptos un poco ms complejos como lo es la nocin dealgoritmo.

    As mismo en el captulo 2 abordamos los detalles que rodean elmundo del anlisis y construccin de un algoritmo, siendo esta laparte ms importante del ncleo de la publicacin.

    Para finalmente en los captulos 3 y 4, abordar lo que senecesita conocer para sentar ya nuestros algoritmos creados enalgn lenguaje de programacin en concreto.

    Detallando a manera de resumen aquello que se podr encontrar

    8

  • en dicha publicacin a lo largo de su contenido.

    Los ejemplos dictados en esta publicacin se encuentranconstruidos en el lenguaje de programacin C# (Csharp), msesto no signif ica que no puedan ser construidos en cualesquierotro lenguaje como: C, C++. Delphi, Java, etc. con tan solo unasligeras v ariaciones en la sintaxis. Pues cabe recordar que lalgica de los programas es lo que dictamina realmente el ncleode estos por ello pueden construirse en cualquier otro lenguajede programacin con el correcto paradigma.

    Cabe destacar que el objetiv o principal de dicha publicacin, esincitar al lector a aprender la lgica que suby ace a losprogramas y a inducirlo en el mundo de la programacin engeneral, por ello es posible que algunos lectores no encuentrencomo un reto los temas a abordar o bien los ejemplosdesarrollados en lenguaje C# en caso de poseer amplioconocimiento en el sector de la programacin.

    Por ello podemos afirmar que el contenido va dirigido a todasaquellas personas que desee tener una nocin bsica de laprogramacin lo suficiente para construir sus propiasaplicaciones.

    As bien, dedicamos esta publicacin a un excelente educador yamigo el maestro Lauro Enrique Soto Landeros quien nos haenseado bastante en mbito de la computacin. Esperamosque el lector encuentre a manera de lectura cotidiana o porratos esta publicacin de gran ayuda, en lo que al caminode su conocimiento se refiere.

    9

  • 1.- Conceptosbsicos

    (Qu es software?, Cules son los tipos?, etc.).

    Un ser humano piensa y se comporta como tal siguiendouna secuencia lgica de acciones. Esta misma asociacinpodra acoplarse en cuanto al rol de una computadora seref iere.

    Af irmando que una computadora es una mquina electrnicacapaz de realizar y manejar datos en memoria siguiendo unasecuencia lgica de pasos, para aquellos que hay a sidoprogramada.

    Tener nociones de la programacin de computadoras esindispensable en cualquier sector de la vida hoy en da, ya queexisten distintos problemas que como tales no es posiblesolucionarlos de la manera tradicional en la cual un ser humanolos realiza. Es ah donde entra el rol de la computadora, es decirnos ay uda a resolv er estos problemas por as decirlo sinsolucin o con solucin aparentemente muy complicada para unhumano de manera rpida o con un margen de toleranciasuf icientemente bueno.

    Es por ello que se menciona en muchas ocasiones el conceptode programacin en general.

    10

  • Cabe destacar que la complejidad de la programacin decomputadoras depender del problema que trate desolucionar, de tal manera que si abordamos un problemaextremadamente complicado a nivel tradicional es posibleque siga siendo en computacin de igual maneracomplicado solo que con una tolerancia moderada.

    Es importante comprender que toda esta idea de poder darsolucin a problemas con may or rapidez y ef icacia se debe engran parte a los av ances y progresos dela electrnica, la matemtica, la f sica, etc. Llegando al gradode poder almacenar un programa.

    Siendo justamente esta idea la pieza angular que sustenta losdatos en un programa o en s un programa. Desenvolviendohasta nuestros das est idea y llevndola a los lmites de loposible, es por ello que podemos ver reflejado muchas de lasactividades consideradas antes cotidianas en una aplicacin oprograma.

    Qu es software?

    La gran may ora de los usuarios tienen por idea ms o menosde que se trata o en que consiste. Algunos dirn que sonlos programas otros dirn que son un conjunto de instruccionescon acciones definidas.

    Ambas ideas podra v erse como ciertas, pero la v erdad esque software como tal, es v isto de manera abstracta la granmay ora de ocasiones es por ello que se def ine a tal como:

    Todo aquel soporte lgico que podra proporcionarse a un

    11

  • 1.5.- ProgramacinConsideramos como programacin aquella ciencia o arte que nospermite en un momento dado programar una computadora con elf in de resolv er o encontrar la solucin a un problema planteado.Podemos ver as mismo, tambin este hecho como la accin deexpresar un procedimiento de solucin por medio de una mquinacapaz de procesar y otorgar soluciones.

    Es por ello que un programa de computadora se puede def inirpor medio de una secuencia de instrucciones indicando lastareas o acciones que han de realizarse para encontrar o darsolucin a un problema.

    De manera ms general puede v erse a la programacin como lainterpretacin o traduccin de un (Algoritmo) a un f ormato legiblepara la mquina, en este caso la computadora.

    Si un algoritmo a seguir es lo suficientemente bueno, laprogramacin ser relativamente sencilla en trminos bsicos.

    Podemos clasificar a la programacin de acuerdo a lo quese conoce como: Paradigmas de la programacin.

    1.6.- Paradigmas de laprogramacinDef inimos como paradigmas de la programacin aquelloscriterios o maneras en cual se tiende a abordar la construccin

    16

  • cuando se requiera sin preocuparnos por def inir cmo llegar a loque deseado o como presentarlo.

    Ejemplo:

    SELECT * FROM Clientes WHERE PKCliente = 11210308ORDER BY Nombre;

    Funcional.

    Este paradigma se centra en aquellos lenguajes, cuy of uncionamiento se basa en programas escritos nicamente pordefiniciones de funciones, entendiendo por f unciones noaquellas construidas de manera tradicional, es decir(subprogramas) que es propiamente de los lenguajesimperativ os sino que el contexto de la definicin de funciones secentra en f unciones de carcter matemtico la gran may ora dev eces.

    En donde dichas deben cumplir ciertas propiedades a fin deposeer una lgica en su definicin.

    Cabe destacar que en lo que respecta a las caractersticas deestos lenguajes, sobresalen la no existencia de asignaciones devariables y la falta de estructuras como: la secuencia eiteracin. Lo cual inclina a que el usuario por ejemplo empleef unciones recursiv as a f in de f ungir un bucle o ciclo, etc.

    Entre los lenguajes que es posible encontrar en la actualidad queutilizan un paradigma f uncional puro tenemos: Haskell, Miranda,etc. Y aquellos lenguajes que utilizan un paradigma f uncionalhbrido: Lisp, Ocaml, Scheme, Scala, etc. por mencionar solo

    19

  • 1.7. Editores de textoDenominamos como editores de texto aquellos programas quenos permiten la entrada de caracteres, y a sea por medio de undispositiv o de entrada como lo es: un teclado, una pantallatctil, etc. Para su almacenamiento sin ejercer ningn tipo deoperacin compleja con tales caracteres.

    1.8. TraductoresAs como existen lenguajes de programacin dependiendo delniv el de abstraccin del sof tware, existen div ersoscomponentes dentro del rol de cada lenguaje que ay udan a ques mismo cumpla con su objetiv o traduciendo o interpretando lasinstrucciones de un lenguaje de programacin a otro.

    Tales componentes son: intrprete y compilador.

    Intrprete.

    Def inimos como intrprete aquel componente que v atraduciendo de lnea en lnea las instrucciones (cdigo deprogramacin), sin dejar constancia de la misma traduccin.

    Por lo cual cada v ez que se desee ejecutar un determinadoprograma es necesario traducir todo de nuev o. Dicho de otromodo, tal componente no construye un programa ejecutable.

    Compilador.

    22

  • 2.- Algoritmos (Qu son?, Cmo se construyen?, etc.).

    Cada da como personas integras y derechas, tendemos adesarrollar una serie de activ idades a lo largo del mismo.

    Que tomamos el desayuno antes de asistir a la escuela, quebebemos caf antes de acudir al trabajo, que tomamos unapequea siesta a las 4 de la tarde, etc.

    Todas estas activ idades generalmente y a se encuentranprogramadas en nuestro cerebro, no porque las hay amosmemorizado sino porque tenemos entendimiento que debemos oqueremos realizarlas.

    Ese mismo entendimiento es lo que nos permite alcanzar unobjetiv o o resultado en comn, que en este caso podra v ersecomo el hecho: De tomar el desayuno, de tomar el caf, etc.

    De tal manera que podemos resolver distintos problemas uobstculos a lo largo del tiempo.

    Conv irtindonos en personas capaces de resolv er problemas,es decir personas capaces de implementar algoritmos a f in deresolv er problemticas presentes.

    Qu son? [Definicin].

    Consideramos como algoritmo aquel conjunto de pasos o

    24

  • instrucciones con un orden y una terminacin que nos conducena la solucin de un problema determinado.

    El contexto de origen de aquellos problemas a abordar,depender en s en que mbito se trate de dar solucin a losproblemas.

    Es decir, si son problemas de carcter matemtico, problemasde carcter lgico, problemas de carcter social, etc. De talmanera que es este mismo origen, el cual delimita si es posiblepor naturaleza dar solucin a un problema a trav s de unacomputadora o no.

    Ref erente a esta publicacin, nos limitaremos a emplear soloaquellos algoritmos que puedan expresar soluciones dentro delmarco de la computacin, a estos algoritmos los denominados:Algoritmos computacionales.

    En el margen de lo f ormal el concepto de algoritmo es extendidoa la idea de un conjunto de acciones, procedimientos o pasoscon un orden y una terminacin que nos permiten formular oalcanzar alguna solucin a un problema en concreto.

    Cmo se construyen?

    Suena increble que la construccin de s mismos muchasv eces ocurre en lo v ago de nuestro subconsciente, de talmanera que ejecutamos algoritmos de manera inconsciente oinv oluntariamente casi por magia se podra decir. As de gran esla razn pensante del ser humano.

    Por otro lado esto no signif ica que la construccin de tales

    25

  • ocurra de esta manera todo el tiempo, lo que pasa es quecuando aplicamos un algoritmo de manera subconsciente es porel hecho de que el problema asociado a la ejecucin delalgoritmo ha sido resuelto por nuestro cerebro un gran nmerode ocasiones y pon ende solucionamos el problemaautomticamente.

    Esta situacin generalmente se presenta en lo que se conocecomo: Algoritmos cotidianos. Es decir, algoritmos que aplicamosprobablemente todo el tiempo pero pocas v eces nos ponemos apensar en las serie de pasos que conllev an estos.

    Por ejemplo la misma accin de caminar, ahora no representa unreto por lo cual en v eces mencionamos que lo hacemos porinercia, pero basta nada ms con v er a un bebe para darsecuenta si el mismo no ejecuta una serie de pasos antes depoder caminar bien.

    El hecho de aplicar un algoritmo no debe suponer hacer uso de laintuicin o mejor an la creatividad, por lo cual cuandoapliquemos un algoritmo debemos llegar a la misma condicin desolucin todo el tiempo.

    De lo contrario si en un caso no llegramos a una mismacondicin de solucin entonces y a no se podra llamar a smismo un algoritmo tendramos que considerar otro trmino.

    De dnde viene esta nocin de algoritmo?

    Si nos disponemos a inv estigar de donde deriv a la palabraalgoritmo es muy probable que nos topemos con la idea de queprov iene del nombre latinizado de un matemtico persa llamado

    26

  • Mohamed Ibn Al Kow Rizmi, el cual recibe el crdito por haberimplementado una serie de reglas utilizadas para realizaroperaciones elementales (suma, resta, multiplicacin y divisin).

    Casi en s, todo el origen de esta nocin est ligado con lasmatemticas y su necesidad de dar solucin a problemas. Puesen ellas se implica una serie de algoritmos todo el tiempo, por lotanto es muy probable que un excelente matemtico sea unexcelente creador y aplicador de algoritmos.

    Contexto de aplicacin.

    Dentro del rol de la computacin, es posible af irmar que unalgoritmo f orzosamente no es dependiente de un lenguaje deprogramacin por tal motiv o que para resolv er un problema nonecesitamos tener un programa en C, C++, etc. Si lotuv iramos programado en cualesquier otro lenguaje deprogramacin igualmente tendramos la solucin al problema detodos modos.

    Es por ello que generalmente se habla en las clases de(fundamentos de programacin o introduccin a la programacin)de la independencia de los algoritmos f rente a los lenguajes deprogramacin.

    As mismo son independientes a las computadoras de igualmanera (que si es una computadora con un procesador de 3.00GHz y 2 ncleos o 1 ncleo, etc.), pues igualmente podemos ira otra computadora con las mismas o menores condiciones yejecutar el algoritmo y obtener la misma condicin de solucin.

    Que un especfico algoritmo se ejecute ms rpido en

    27

  • 2.1.- Anlisis de problemasAnlisis de los datos.

    Es necesario cuando nos disponemos a solucionar un problemahacer un anlisis de los datos, es decir reconocer con que datosse cuentan y cules son los datos que se pretenden conseguir,para despus lograr asociar algn proceso u operacin a f in deobtener aquellos datos que deseamos conseguir (solucin).

    Podra asociarse este mismo hecho, por ejemplo con la especiede anlisis que se efecta al momento de tratar de dar solucin aproblemas en matemtica o fsica (determinacin de fuerza,frecuencia, etc.).

    Marco de solucin.

    La razn del porqu aplicar un anlisis de los datos se debe aque esto nos permite crear un marco de solucin en cuanto a lasolucin de un problema se ref iere delimitando un proceso a tresetapas:

    Etapa 1: La entrada de los datos (Datos de entrada).

    Etapa 2: El procesado de los datos (Proceso).

    Etapa 3: La salida de los resultados (Datos de salida).

    Patrn de seguimiento.

    Denominamos como patrn de seguimiento al f lujo o ejecucin

    29

  • de las distintas etapas de un marco de solucin.

    Etapa 1 >> Etapa 2 >> Etapa 3.

    Datos de entrada >> Proceso >> Datos de salida.

    A continuacin se cita un ejemplo que ilustra la utilizacin delmarco de solucin.

    Ejemplo. Calcular el rea de un rectngulo.

    Tenemos como (Datos de entrada) en la etapa 1:

    La base del rectngulo (Base).

    La altura del rectngulo (Altura).

    Como (Proceso) en la etapa 2, tenemos la frmula paracalcular el rea del rectngulo:

    rea = Base x Altura.

    Y como (Datos de salida) en la etapa 3, tenemos:

    rea. Es decir el rea ya en s.

    Ejercicios

    A f in de practicar el marco de solucin se enlistan los siguientesproblemas:

    1. Calcular el rea de un rombo.2. Convertir minutos a horas.

    30

  • 2.2.- Representacin grfica delos algoritmosDiagramas de flujo.

    Tendemos a representar grf icamente un algoritmo mediante unconjunto de smbolos, cuy o objetiv o es ilustrar los pasos aseguir para llegar a la solucin de un problema.

    Es decir, el conjunto de smbolos nos ay udan a representarciertas acciones, operaciones, datos o f lujos y a def inidosdentro del contexto de un algoritmo en computacin.

    Tales como por ejemplo:

    El inicio de un programa.

    La entrada de los datos.

    Un proceso u operacin.

    La salida de los datos.

    El fin de un programa.

    Entre otros El objetivo de utilizar este medio derepresentacin se encuentra en el hecho de transmitir demanera clara y concisa el propsito de un algoritmo.

    A f in de ev itar una serie de lneas que otros medios derepresentacin de algoritmos podran ocupar como por ejemplo

    32

  • el (Pseudocdigo).

    La representacin grf ica es uno de los ms antiguos dentro dela computacin y a su v ez uno de los ms utilizados todav a.

    Formalmente llamamos como diagrama de flujo aquellarepresentacin grfica utilizada para definir el algoritmode un problema a fin de representar las distintasoperaciones, datos o flujos mediante smbolos.

    Un diagrama de f lujo utiliza unos smbolos consideradosestndar en la actualidad, como los que se muestran acontinuacin:

    33

  • 35

  • estandarizados para conectar los elementos como laslneas de flujo en f orma horizontal o v ertical (Poraquello que una persona puede utilizar sus propiossmbolos para definir un algoritmo de flujo, pero lapersona que interprete el diagrama no entender elpropsito del mismo).

    3. Se debe hacer uso de conectores cuando as lorequieran las dimensiones del diagrama de f lujo en unahoja de papel o documento.

    4. Debe de ev itarse a toda manera dejar alguna lnea def lujo sin asociar a algn proceso o accin (Es decir,lneas de flujo sin conectar).

    5. Es pref erente iniciar el dibujo o trazado de smbolosdesde una parte superior a inf erior, de igual manera af in de f acilitar la lectura del diagrama de f lujo desdeuna parte izquierda a una parte derecha.

    6. Cualesquier texto utilizado para expresar la accin deun smbolo, es pref erente ser escrito de manera claray concisa, ev itando ambigedades con el uso demuchas palabras en el texto esto (Siempre y cuando eltexto se pueda expresar en palabras breves yconcisas).

    Por ejemplo, la estructura del diagrama de f lujo siguiente:

    Diagrama de flujo:

    38

  • Nota: Puede que se hay a empleado muchas palabras dentro delos smbolos a criterio de algunos lectores, esto se realiz msque nada por el concepto de ilustrar mejor el diagrama de f lujoref erente al marco de solucin bsico.

    Pseudocdigo o (Seudocdigo).

    Denominamos como pseudocdigo o seudocdigo aquella f ormaalternativ a para representar un algoritmo. Que hace uso depalabras reserv adas dentro del contexto de la computadora y ellenguaje natural (Como el espaol, ingls, chino, etc ) a f in deexpresar o describir el algoritmo.

    As mismo tambin, se le asocia u observ a como una especiede mezcla entre un lenguaje de programacin general y unlenguaje natural, se utiliza en div ersos paradigmas deprogramacin debido a su ef ectiv idad.

    En general, el pseudocdigo de un algoritmo nos ayudaen ilustrar aquellos pasos a seguir en forma de listado conel objetivo de llegar al resultado de un problema(programa).

    Por ejemplo, el siguiente pseudocdigo ref erente al diagrama def lujo prev io:

    Pseudocdigo:

    1. Inicio.2. Leer datos.3. Procesar datos.

    40

  • 2.3.- Diseo de algoritmosCaractersticas de los algoritmos.

    A continuacin se enlistan una serie de caractersticas queestablecen porque se def inen de tal manera, es decir porque losllamamos algoritmos.

    Determinacin: Un algoritmo con un conjunto de datos deentrada (iguales), debe responder con los mismos resultadostodo el tiempo. De tal manera que si se sigue un nmero deocasiones se debe llegar al mismo resultado en cada ocasin.

    Definicin y precisin: Las acciones, tareas o pasosestablecidos dentro de un algoritmo, deben estar def inidos demanera clara y concisa. De tal manera que sea posible precisarque se est haciendo en cada uno de los pasos.

    Efectividad: Toda operacin implcita dentro de un algoritmodebe ser de tal f orma que podamos llev arlas a cada de maneramanual y en un tiempo f inito por una persona (Aunque muchasv eces las operaciones sea laboriosas).

    Finitud: Un algoritmo independiente si este tiene un procesolargo o complicado. Debe de tener un punto en el cual f inalice.

    Nota: El orden de las caractersticas no se encuentra deacuerdo a un orden en especfico dentro de las nociones dedefinicin de un algoritmo.

    Partes que dan descripcin a un algoritmo.

    42

  • Recordemos por un momento el marco de solucin de unproblema, comentado con anterioridad.

    Este contena tres etapas que nos ay udaban a construir elproceso de solucin de un problema, pues resulta que estas tresetapas justamente nos ay udan a def inir y construir nuestroalgoritmo de igual manera.

    Estableciendo tres partes que describen un algoritmo:

    Parte 1: La entrada de los datos (Datos de entrada).

    Parte 2: El procesado de los datos (Proceso).

    Parte 3: La salida de los resultados (Datos de salida).

    Entrada de los datos (Parte 1):

    Representa el hecho de permitir la introduccin de datos porparte del problema hacia el algoritmo. Este puede tener muchasentradas de datos o cero entradas, ref irindonos como entradaaquel v alor que se le v a otorgar al algoritmo para la realizacinde su proceso.

    Procesado de los datos (Parte 2):

    Representa el hecho de permitir realizar distintas operaciones oacciones cuy o objetiv o es obtener la solucin de un problema.Aqu generalmente se realizan operaciones de carcteraritmtico o lgico, repetitiv as o selectiv as.

    Salida de los resultados (Parte 3):

    43

  • Representa el hecho de permitir la salida de los resultadosobtenidos, producto de la ejecucin del algoritmo. Es decir, dasalida a los resultados consecuencia de una entrada de datos yun proceso.

    Tipos de datos.

    Entre las principales razones del xito de una computadora, seencuentra en el hecho de que s misma permite la manipulacinde datos de dif erentes clases. Es decir, datos numricos, datoslgicos, caracteres, entre otros.

    Dichos datos pueden ser producto de una transaccin bancaria,el promedio de calif icaciones de alumnos en un aula, etc. Pordestacar algunas de sus aplicaciones.

    Asociamos como dato aquella expresin en trminos generalesque nos permite describir los elementos con los cuales operauna computadora.

    En la actualidad las computadoras son capaces de trabajar condif erentes clases de datos y de dif erentes modos. Motiv o por elcual se menciona que tanto los programas como algoritmostrabajan sobre los mismos datos.

    El hecho de ejecutar instrucciones en una computadora, es porel motiv o de establecer div ersas modif icaciones o alteracionesproducto de las operaciones en los v alores entrantes. Por ellolos datos de entrada suf ren transf ormaciones a lo largo de laejecucin de un algoritmo debido a que est los altera, paraconcluir saliendo los datos y a en f orma de resultados.

    44

  • Reales: Son aquellos nmeros que representan tantonmeros enteros como aquellos nmeros que no son tomadoscomo enteros. De tal manera que dichos nmeros nos permitenexpresar nmeros con una parte f raccionaria o decimal, pues unnmero real consta de una parte entera y una parte decimal.

    IMPORTANTE: Cada lenguaje de programacin puede tener susdistintos tipos de datos a emplear, tanto numricos como otrostipos solo se mencionan estos de manera general para tenernocin de las distinciones.

    Datos de tipo lgico.

    Son aquel tipo de datos, tambin conocidos como datosbooleanos que nos permiten expresar nmeros que solo puedentomar dos v alores: true o v erdadero o f alse o f also.

    En la gran may ora de los casos empleamos este tipo de datospara representar condiciones en las cuales tenemos nicamentedos v as (Si) o (No) o bien para representar condiciones dev alidacin de manera ms general.

    Por ejemplo: El caso tpico podra ser cuando se nos pideidentif icar si un dgito representa un v alor numrico o una letra.La respuesta ser v erdadero o f also, dependiendo de lascondiciones del problema.

    Datos de tipo carcter.

    Son aquel tipo de datos que una computadora es capaz dereconocer. Es decir, es un conjunto ordenado y f inito en el quela computadora tiene asociado un v alor o expresin para

    46

  • reconocerlo. Algunos ejemplos son:

    Caracteres numricos: (0,1,2,3,4,5, 9)

    Caracteres alf abticos: (A, B, C, Z) o (a, b, c, z)

    Caracteres especiales: (*, - , +, ,^ > Sera el operador.

    2 y 1 >> Seran los operandos.

    Operadores aritmticos.

    Consideramos como operadores aritmticos aquellos operadoresque nos permiten ef ectuar o realizar operaciones matemticascon v alores (Constantes o v ariables). Estos pueden serutilizados mediante datos de tipo numrico como los enteros oreales.

    47

  • propsito de la asignacin.

    Por ejemplo:

    La operacin de asignacin B

  • Identificadores como punto de localizacin en memoria.

    Tanto los programas de computadora como los algoritmos demanera ms general, poseen ciertos v alores que no suf rencambios a lo largo de su ejecucin.

    Dichos v alores los llamamos: constantes. Por otro lado, existenv alores que a lo largo de la ejecucin de un algoritmo oprograma, suf ren cambios. A este tipo de v alores los llamamosvariables.

    Constantes.

    Denominamos como constantes aquellos v alores quepermanecen inv ariantes durante la ejecucin de un programa odesarrollo de un algoritmo. Por ejemplo, si tenemos la siguienteexpresin:

    Z=2x-y

    Independientemente de aquellos v alores que podramos asociara (x o y ), x siempre estar multiplicada por el (2), es decir unaconstante y a que nunca cambiar su v alor.

    Variables.

    Denominamos como variables aquellos v alores que puedensuf rir cambios durante la ejecucin de un programa o desarrollode un algoritmo. Por ejemplo, si tenemos la anterior expresin:

    Z=5x-2y

    Independientemente de aquellas constantes que puedan existir

    54

  • dentro de la expresin como l (5) con la (x) o l (2) con la (y ),tanto (x) como (y ) pueden tomar cualesquier v alor al principio,durante o al f inal de la ejecucin del programa, es decir sonv ariables.

    Es por ello que se habla del hecho de suf rir cambios en cuantoa sus v alores se ref ieren.

    Identificadores.

    Asociamos como identificadores aquellos nombres que puedenrecibir tanto las v ariables como las constantes, dependiendo delcontexto del algoritmo.

    Suelen estar constituidos por palabras de lenguaje comn ov arios caracteres generalmente (letras).

    Existen una serie de reglas en cuanto a la creacin deidentif icadores se ref iere, que son recomendadas (Como msadelante observaremos).

    Reglas para crear y otorgar identificadores.

    1.- Pueden contener tanto nmeros como letras en la creacin.

    2.- Siempre debern comenzar por medio de una letra, pues aliniciar con un nmero puede suceder que dependiendo dellenguaje en que se exprese el programa, se compare con algunainstruccin reserv ada y cause conf licto.

    3.- No debern tener espacios en blanco, y a que puede sucederel caso en que el identif icador sea tomado como una cadena,palabra reserv ada, etc. Todo menos un identif icador y causar

    55

  • conf licto de igual manera.

    4.- No debern contener caracteres especiales. Salv o exceptoel nico alojado, que es: _.

    5.- El nombre a asignarse a un identif icador debe sersignif icativ o, es decir tener alguna relacin con lo que lav ariable/constante que se trat de ilustrar, y a que puedesuceder el caso que al no guardar relacin el nombre de dichoidentificador sea conf undido con otra cosa y termine no siendoutilizado o ref erenciado en un programa.

    Ejemplos de identificadores (Siguiendo las reglas comentadas).

    BMOV APELLIDO DIRECCION NO_IDENT COSTO

    Ilustracin del objetivo de los identificadores.

    DIRECCION: Puede representar una cadena de caracteres conla direccin de una persona u organizacin.

    APELLIDO: Puede representar una cadena de caracteres con elapellido de una persona.

    COSTO: Puede representar un v alor numrico con el costo deun producto o serv icio.

    BMOV: Puede representar un v alor numrico con el mov imientoen una f ila determinada.

    Por ejemplo: PI = 3.141592.

    Como se puede observ ar, se puede asignar un nombre

    56

  • cualesquiera aquellas constantes tpicas utilizadas enmatemticas a f in de f acilitar su utilizacin.

    Ya para concluir dicho tema, imaginemos por un momento queposeemos una f igura abstracta. Donde tal f igura justamenterepresenta la memoria principal de una computadora, en ella seencuentran v arias constantes o v ariables almacenadas endistintas direcciones, como es posible observ ar en la f igurasiguiente:

    57

  • Esto se hace con el propsito de despejar aquellas dudas quepueda tener el lector hasta este punto.

    Ejercicios.

    De los siguientes identif icadores, reconocer cuales soncorrectos de acuerdo con el criterio de las reglas v istas:

    1. 1MOV2. #ID3. TELEFONO4. COSTO_UNITARIO5. COSTO-UNITARIO6. NOMBRE.COMPLETO

    Respuestas:

    Correctas: 3 y 4.

    Operaciones de (Entrada y Salida).

    Entrada.

    Consideramos como entrada aquella operacin que nos permiteleer un v alor o cualesquier cantidad en concreto, para despusasignrsela a una v ariable o cualesquier cantidad de v ariablesdeterminadas.

    Eso depende de en qu contexto sea vista la entrada, en unavariable o en mltiples variables.

    En lo que a la creacin de algoritmos se ref iere, solemos

    59

  • representar la operacin de la entrada por medio del f ormatosiguiente en pseudocdigo:

    Leer (Variable de entrada).

    O mediante el formato:

    LEER (Variable de entrada).

    Realmente no tiene tanta importancia si la palabra Leer esta enminsculas o may sculas. Lo importante es que se ilustre lapalabra Leer, pues es la accin que se desea.

    Por ejemplo:

    Leer NOMBRE

    Ilustra la accin de lectura de un (Nombre) para despusasignrselo a la v ariable NOMBRE.

    Salida.

    Consideramos como salida aquella operacin que nos permitedar escritura o impresin de un v alor o cualesquier cantidad enconcreto, con el f in de ilustrar al lector el resultado de unav ariable o ms de manera general.

    En lo que a la creacin de algoritmos se ref iere, solemosrepresentar la operacin de salida por medio del f ormatosiguiente en pseudocdigo:

    Imprimir (Variable de salida).

    60

  • O mediante el formato:

    Escribir (Variable de salida).

    Al igual manera realmente no tiene tanta importancia si laspalabras Imprimir o Escribir estn en minsculas o may sculas.Lo importante es que se ilustre algunas de las dos palabras,pues es la accin que se desea.

    Por ejemplo:

    Imprimir NOMBRE (Imprime el v alor contenido en la v ariableNOMBRE, por medio de algn dispositiv o de salida).

    Escribir NOMBRE (Visualiza en pantalla el v alor contenido en lav ariable NOMBRE).

    Un ejemplo y a en concreto de esta operacin podemosencontrarlo en el siguiente diagrama de f lujo, perteneciente a unalgoritmo simple cuy o propsito es dar impresin al nombreAntonio.

    Ejemplo:

    Pseudocdigo:

    1. Inicio2. Imprimir Antonio3. Fin

    Diagrama de flujo:

    61

  • Declaracin de variables.

    Cuando nos disponemos a utilizar una v ariable en un programa oen un algoritmo debemos especif icar o def inir aquel nombre querecibir la v ariable as como el tipo de dato que tendr dicha, aesta accin es lo que conocemos precisamente como declararuna variable.

    En lo que respecta a las distintos tipos de v ariables (v ariablesnumricas y v ariables alf abticas) la inicializacin (declaracin)de las v ariables se realiza de modo dif erente.

    Por ejemplo, para las v ariables numricas se utiliza un cero (0)y para las v ariables alf abticas utilizamos (Un par decomillas y un espacio).

    Como se muestra, en los siguientes ejemplos:

    APELLIDO

  • 3. Leer APELLIDO4. Imprimir APELLIDO5. Fin

    Diagrama de flujo:

    64

  • Nota: En este algoritmo no se conoca el v alor preciso desalida, por lo cual se indic el identif icador de la v ariable (Sincomillas) a f in de dar salida al correspondiente v alor de lav ariable. Otro detalle a destacar es que en este algoritmo seilustro como se inicializa o declara una v ariable de tipoalf abtica.

    Para ello en primera instancia se indic en el pseudocdigo, yposteriormente se indic en el diagrama de flujo, con el f in deev itar conf usiones en cualquiera de los dos mtodos derepresentacin de algoritmos.

    Existen ocasiones donde no es prctico y til colocar elidentificador de la variable solamente, pues el lector oaquella persona que se encuentre ejecutando el algoritmopuede no conocer precisamente el valor a introducir, espor ello que se acude a colocar "letreros".

    Para ilustrar tal hecho, supongamos que tenemos el anteriorejemplo ms una modif icacin:

    Pseudocdigo:

    1. Inicio2. NOMAPE

  • de la v ariable (NOMAPE) en este algoritmo no nos dice muchode que hay que introducir Por ello el letrero Apellido: resultaef icaz para conocer que introducir.

    Cabe notar que al incluir un letrero es preciso indicar la v ariableen la cual se asignara el contenido ledo, despus de una coma(Como se muestra en el anterior diagrama de flujo).

    Esto sentado ya en un lenguaje de programacin podra versecomo una etiqueta (label) o impresin en consola, dependiendodesde que enfoque de (Interfaz) se emplee (Consola o Forma).

    Operaciones aritmticas.

    En la construccin de un algoritmo o un programa, no soloexisten operaciones para dar entrada o salida a los datos,tambin existen operaciones aritmticas ref erentes a losprocesos.

    Donde tales son ref erentes a expresiones de carctermatemtico, por ello estas deben ejercerse en computacin deacuerdo a un niv el de prioridad. A f in de obtener el mismoresultado en cada ocasin que se ejecuten.

    Es por ello que a continuacin delimitamos una tabla con losoperadores aritmticos bsicos y su prioridad:

    68

  • delimitan tambin el orden de ejercerse las operaciones, comoes el caso de las 3 reglas siguientes:

    1. Las operaciones aritmticas incluidas en una expresinmatemtica son sometidas al (Nivel de prioridad)indicado en la tabla anterior.

    2. Las operaciones que se encuentran delimitadas bajoalgn signo de agrupacin como son las llav es y lasdif erentes clases de parntesis: { }, ( ), [ ]; sonllev adas a cabo en primer lugar por el hecho de queestos signos indican un niv el de precedenciaprincipalmente. Por ello, si existen v arios signos deagrupacin anidados (Uno sobre otro) las operacionesaritmticas ms internas se ejercen primero.

    3. En caso de existir operadores con igual nivel deprioridad en una expresin y a sea que dicha estacotada entre algunos signos de agrupacin o no, elnivel de prioridad est marcado bajo la ejecucin de lasoperaciones de izquierda hacia derecha.

    Ejemplos.

    Aplicando el hecho del (Niv el de prioridad) y las reglascomentadas, ejercemos las siguientes operaciones aritmticasquedndonos algo como lo siguiente:

    70

  • Asignacin aritmtica.

    Cuando nos disponemos a realizar una asignacin de algunaexpresin generalmente estas son de carcter aritmtico, es porello que se realizan de la siguiente manera:

    Ejemplos

    COSTO

  • 6. Imprimir SUMA7. Fin

    Diagrama de flujo:

    73

  • Nota: Debido a que no conocan los v alores ref erentes a losdos nmeros necesarios para realizar la suma, hubo necesidadde solicitar dichos v alores. Es por ello que se crearon yutilizaron dos v ariables (Num1 y Num2) una por nmero.

    Se realiz la declaracin de tres v ariables por el concepto deque el resultado del clculo ira en otra v ariable para f inalmenteimprimir el resultado.

    Ejercicios.

    Desarrolla el pseudocdigo y el diagrama de f lujo de losproblemas siguientes:

    1. Calcular el rea de un tringulo.2. Dar entrada al nombre de un objeto e imprimirlo.3. Conv ertir kilmetros a metros.

    Diseo algortmico de las funciones.

    Denominamos como mdulo a un procedimiento, rutina,subrutina o subalgoritmo que puede ser declarado dentro de unprograma o algoritmo de manera independiente, con el hecho dedotar de una accin especf ica generalmente no incluida en elalgoritmo principal o en el programa principal.

    Pudiendo ejecutarse por medio de una inv ocacin o llamadodesde cualquier parte del algoritmo en cualquier momento quesea necesario.

    75

  • Ya sea una ocasin o en mltiples ocasiones durante laejecucin del mismo, es por ello que en veces se asocia a unmdulo como un fragmento de instrucciones reutilizables.

    Cabe destacar que al momento de terminar la ejecucin de unmdulo, dicha ejecucin obliga a v olv er al momento precisodonde se inv oc o llamo al mismo.

    Con el hecho de continuar con las instrucciones restantes quepuedan existir en el programa o en el algoritmo o bien finalizar laejecucin.

    A continuacin ilustramos como un subalgoritmo o subrutinapuede ser pensada en un programa, mediante la siguientef igura:

    76

  • Subprog2 ( ) dara impresin al v alor 7 pero la v erdad es que noes as debido a que en el contexto de s mismo no se encuentradef inida o simplemente no existe la v ariable B.

    Con esto se ilustra el hecho de la existencia o no, de unavariable local en un subprograma.

    Variables globales.

    Denominamos como variables globales aquellas v ariables queson def inidas en el programa principal, por ello dichas v ariablesal igual manera se encuentran disponibles en sus subprogramaspara su utilizacin.

    A continuacin ilustramos como en un subalgoritmo osubprograma se maneja el hecho de las v ariables globales,mediante la siguiente f igura:

    80

  • realizar la suma contenida, al igual que el subprograma Subprog2( ) deber ser capaz de imprimir el resultado de la suma,pudiendo emplearse la v ariable B en ambos subprogramas estopor el hecho de que dicha v ariable f ue def inida globalmente.

    Parmetros.

    Denominamos como parmetros aquellos v alores que sonenv iados hacia un subprograma para su f uncionamiento o bienaquellos v alores que se env an de un subprograma a otro parasu f uncionamiento.

    Tendemos a utilizar los parmetros cuando deseamos compartiralgunos v alores de un subprograma entre algn otrosubprograma, pero no todos los v alores pertenecientes a unsubprograma.

    Es por ello que si declaramos una v ariable dentro de unsubprograma solo ser v lida dentro del mismo a menos que seindique lo contrario con otra clase de v ariables.

    Por ello podemos af irmar que los parmetros v ienen a resolv eruna necesidad o problema en un programa de transf erir v aloresa trav s de uno u otro subprograma. Esto se logra al momentode inv ocar o llamar a un subprograma.

    A continuacin ilustramos como un subalgoritmo o subprogramatransf iere o env a v alores de uno a otro subprograma, mediantelos parmetros en la siguiente f igura:

    82

  • manera f inalmente se imprimiera. El resultado que se imprimirser 7 y a que el v alor del parmetro que recibi del Subprog1 ( )f ue B1=4.

    Esto se debe en parte debido a que Subprog2 ( ) recibe a lav ariable B1 y esta misma tiene el v alor que tena la v ariable Bdentro de Subprog1 ( ).

    NOTA: Cabe recordar que en la ejecucin de un programa almomento de llamar a un subprograma o subalgoritmo y estef inalice su ejecucin, el control de la ejecucin del programaprincipal v olv er al momento preciso en que se realiz lainv ocacin o el llamado del subprograma.

    Otro detalle a destacar, es cuando se env a un parmetro de unsubprograma a otro, es necesario en este ltimo indicar pormedio de otra v ariable el punto al cul llegar precisamentedicho parmetro. Es por ello que se indic en el ejemplo anteriorla v ariable B1 a f in de recibir el parmetro de B, de lo contrarioexistira error pues no hubiera punto de llegada de B.

    Clasificacin de los mdulos o subprogramas.

    Tendemos a clasif icar los mdulos o subprogramasindependientemente por las instrucciones que se ejecuten. Deacuerdo a la siguiente clasif icacin:

    1. Procedimientos.2. Funciones.

    Funciones.

    84

  • Consideramos como funciones aquellos subprogramas omdulos que realizan una accin especf ica y pueden serinv ocados o llamados desde cualquier parte del programa.

    Con el detalle que para la realizacin de su accin o proceso enespecf ico es necesario que estos reciban o le sean env iadosuna serie de parmetros.

    As mismo estos tienen la capacidad de devolver valoresexplcitos.

    Por ello en ocasiones se menciona que dichas poseen unaestructura en particular. Cabe anexar que cuando una funcin esrelacionada o especif icada en una expresin, est se declara deigual manera como una v ariable ordinaria.

    Por ejemplo, supongamos que tenemos una suma en cuyosoperandos uno se encuentra constituido por una funcin y el otropor un valor constante.

    Tendramos algo como:

    A

  • Llamamos como funciones definidas por el usuario aquellasf unciones que son def inidas por parte del programador o aquellapersona que se encuentre construy endo un programa.

    Por lo general son utilizadas cuando se desea realizar unaoperacin independiente del programa y que se utilicecomnmente en v arias ocasiones durante la ejecucin delmismo.

    El nombre de la f uncin se encuentra precedido por una serie dev alores, que son los parmetros (v alores de carcter numricoo alf abtico) que se le env an para que realice suf uncionamiento.

    Como la siguiente estructura lo confirma:

    < Nombre de la funcin> ()

    Ejemplo:

    Suma(1,2)

    Suma constituy e el Nombre de la funcin.

    1 y 2 constituy en la lista de parmetros (Estos pueden estarseparados por una coma y pueden ser de una clase enespecf ico o no, esto depende en gran medida del lenguaje deprogramacin as como de su sintaxis).

    Procedimientos.

    Llamamos como procedimientos aquellos subprogramas o

    86

  • subrutinas que realizan una accin especf ica y pueden serinv ocados o llamados desde cualquier parte del programa.

    Con el detalle que para la realizacin de su accin o proceso enespecf ico es necesario que estos reciban o le sean env iadosuna serie de parmetros.

    Existe una pequea diferencia respecto a la funciones, dichadiferencia es que no tienen la capacidad de devolver valoresexplcitos al terminar su ejecucin.

    Por ello generalmente cuando se emplean procedimientos esporque se terminar concluy endo o ejerciendo todo un procesoen el mismo. Y no habr necesidad de dev olv er v aloresexplcitos al programa que llame a s mismo.

    Operacin de mdulos y sus parmetros.

    Procedimientos.

    Ejemplo. Calcular la multiplicacin de dos nmeroscualesquiera utilizando un procedimiento para ef ectuar lamultiplicacin e imprimir el resultado.

    Pseudocdigo (Programa principal):

    1. Inicio2. Num1

  • Diagrama de flujo (Programa principal):

    88

  • Nota: Para la construccin de un subprograma en pseudocdigopor medio de procedimientos, es necesario seguir una sintaxis dedef inicin de procedimientos. Como la citada a continuacin:

    Sintaxis:

    Procedimiento Nombre del Procedimiento

    Fin Procedimiento

    Por ejemplo, en el caso del anterior programa tenemos:

    Pseudocdigo (Procedimiento llamado Multiplicacion):

    1. Procedimiento Multiplicacion (N1

  • Ejercicios

    1. Realizar algoritmo que capture los datos bsicos de unempleado (Nmero de empleado, Nombre, Apellidos,Direccin, Estado, Ciudad, Telfono, Telfono celular,etc ) y de impresin en otro subalgoritmo. Nota:Utilizar el env o de parmetros para transf erir v aloresa subalgoritmos.

    2. Realizar algoritmo que capture las horas trabajadas yel sueldo por hora de un trabajador e imprima el sueldototal en base a las horas trabajadas en unsubalgoritmo.

    Funciones:

    A f in de ilustrar el propsito de las f unciones emplearemos elanterior ejemplo utilizado en los procedimientos.

    Nota: Para la construccin de un subprograma en pseudocdigopor medio de funciones, es necesario seguir una sintaxis dedef inicin de f unciones. Como la citada a continuacin:

    Sintaxis:

    Funcin Nombre de la Funcin

  • cualesquiera en el programa principal y emplear una f uncinpara ef ectuar nicamente la operacin de la multiplicacin eimprimir el resultado de igual manera en el principal, aprovechando el concepto de la devolucin de valores por partede las funciones. Todo ello utilizando variables globales.

    Pseudocdigo (Programa principal):

    1. Num1

  • 3.- Introduccin ala programacin

    Conociendo en que consiste un programa, es decir un conjuntode instrucciones de manera general.

    Un lenguaje de programacin es aquello lo cual se encarga queel computador (computadora) realice los pasos necesarios paraejecutar una tarea o mltiples tareas... Que el programador enun momento hay a indicado o mejor dicho hay a programado.

    En otras palabras los lenguajes de programacin son losencargados de que el usuario (en este caso el programador) y lamaquina puedan comunicarse entre s (metafricamente es comoel idioma).

    Dicha comunicacin permite que el programador ordene a lamquina la solucin a un problema o mejor dicho un algoritmomediante el uso de palabras, que dentro de este ambiente sonv istas como f unciones en el mismo lenguaje.

    Se debe expresar que los lenguajes de programacin sontraducidos mediante un compilador con el f in de que lacomputadora entienda las instrucciones, recordemos que lacomputadora originalmente interpreta un sistema o lenguaje nomuy amigable con el ser humano de manera directa (Sistemabinario). Es por ello que es necesario este tipo de

    98

  • componentes.

    Existen v aria etapas necesarias para que se puedan tener unasecuencia de instrucciones que puedan dar una solucin a unproblema, dichas etapas son:

    Etapa de anlisis: La etapa de anlisis es aquella donde elprogramador modela la solucin, es decir entiende el problema,sabe lo que quiere o lo que se debe resolv er.

    Etapa de solucin (general): En esta etapa se describe lasolucin paso a paso mediante diagramas de flujo opseudocdigo, es decir se desarrolla el algoritmo.

    Etapa de prueba: En esta parte se realiza algo llamado pruebade escritorio, la cual consiste en rev isar el algoritmo y ejecutarlode f orma imaginaria (prueba) a f in de observ ar si arroja elresultado esperado.

    Etapa de implementacin: En esta etapa se codif ica, es decirse transcribe o traduce el algoritmo a un lenguaje deprogramacin como puede ser: (C#, C++, Jav a, etc.).

    Etapa de prueba del programa: Una v ez codif icado elprograma, se ejecutar en la computadora para rev isar si estearroja la solucin esperada para el problema que se plante.

    Etapa de uso: Consiste en instalar el programa (sabiendo querealiza lo esperado) de f orma def initiv a, con la intencin deusarlo diariamente.

    99

  • instrucciones en un lenguaje de alto niv el sonindependientes al procesador que se encarga deejecutar las instrucciones (traducidas) del lenguaje demquina, la traduccin de las instrucciones de altonivel a lenguaje de mquina se hace por medio deun programa traductor llamado (compilador) para ev itarreescribir el programa cada v ez que se ejecute.

    Aunque es ms f cil el manejo de un lenguaje de alto niv el, ladesv entaja ms grande que se presenta es la inef iciencia,debido a que es imposible o casi imposible crear un traductorque pueda generar un cdigo en lenguaje de mquina eficiente.

    Actualmente se utilizan lenguajes de alto niv el debido alcreciente av ance en las desarrollo de lascomputadoras (memoria, procesamiento, etc ) y en parte a loscostos de produccin de un programa, es decir el costo seramay or si se hace en lenguajes de bajo niv el.

    Hace unos aos cuando exista una limitacin en los programastraductores de alto niv el al manejar simultneamente altascantidades de inf ormacin, as como una limitacin en elalmacenaje de la inf ormacin en memoria (que tambin eralimitada), se optaba por recurrir a los llamados lenguajesinterpretados. Como la clasif icacin de lenguajes siguientes lodetalla:

    Lenguaje ensamblador: Este lenguaje esta constituido porsmbolos o caracteres que tienden a representar instruccionesde manipulacin y a sea para microprocesadores,

    102

  • microcontroladores, etc. As mismo dicho lenguaje es til alprogramar una cierta arquitectura de alguna computadora (es porello que se habla de una cierta correspondencia entre el lenguajeensamblador y el lenguaje de mquina).

    Lenguajes compiladores: Son aquellos lenguajes cuy oobjetiv o son las traducciones de un lenguaje de alto niv el a unlenguaje de mquina o lenguaje ensamblador, dichas se guardanen un archiv o para no realizar la traduccin del lenguaje cadav ez que se ejecute el programa (Programa objeto o ejecutable).

    Lenguaje interpretados: Son aquellos lenguajes que noproducen un cdigo objeto, es decir un programa ejecutable, loque realizan es tomar cada instruccin y analizarla para posteriorejecutarla esto se hace instruccin por instruccin y of rece unagran interaccin pero no es conv eniente cuando se ejecuta unprograma de f orma repetitiv a y a que no guarda la traduccin, esdecir el programa ejecutable.

    Lenguaje preprocesados: Son aquellos lenguajes quetraducen dos v eces generalmente, en primer instancia traducena un lenguaje intermedio (un niv el ms bajo) y posteriormentetraducen de nuev o generando un programa ejecutable.

    Sintaxis y semntica.

    Asociamos como sintaxis a la serie de criterios o reglas que enprogramacin deben seguirse para indicar las respectiv asinstrucciones en un lenguaje de programacin.

    103

  • 3.2.- Estructura bsica de unprogramaEn lo que respecta a la codif icacin de los programas ualgoritmos encontrados a lo largo de esta publicacin.Emplearemos como base o sustento el lenguaje deprogramacin C# (Csharp), cabe mencionar un detalle antes departir def iniendo la estructura de un programa como tal.

    C# nos permite trabajar en dos v as o de dos maneras distintas:

    1. Mediante el uso de formas (Formularios) de Windows,dicha v a conocida como: (Aplicacin de Windows -Windows application).

    2. Mediante el uso de una consolas, dicha v a conocidacomo: (Aplicacin de Consola - Console application).

    Los programas en C# se encuentran construidos bsicamenteen tres partes (cabe resaltar que estas partes estn orientadasprincipalmente a la primera va, es decir a la creacin de unaaplicacin de windows):

    1. Se comienza por la creacin y diseo de la partegraf ica de la aplicacin, es decir se agregan aquelloscomponentes requeridos a f in de permitir la interaccinen la forma tales como: botones, cajas de texto -textbox, etiquetas - labels, cajas de lista - listbox,

    105

  • etc.2. Se def inen las f unciones u operaciones que se

    realizarn cuando se presente algn un ev ento ligado oasociado a un objeto, def inido en la etapa anterior (Por ejemplo: La operacin de salida de la aplicacinen un botn, etc).

    3. Se def ine las f unciones mencionadas o programadasen la etapa anterior, es decir el programador las def ine.Esto debido a que C# utiliza f unciones y noprocedimientos, aunque estos ltimos se puedenindicar por medio de la palabra reserv ada void.

    Por ltimo toda instruccin dentro de un programa que noinv olucre algn mdulo o estructura de control, concluy e con elrespecto a la sintaxis, es decir una coma y un punto (;).

    Ejemplo 1: Programa en C# que imprime un nombre enespecf ico.

    1.- Diseo de la parte grfica de la forma:

    106

  • this.Close();

    }

    //Cdigo del botn de (Mostrar).

    private void cmdMostrar_Click(object sender,EventArgs e)

    { //Variable tipo (Cadena) que contendra el(Nombre);

    string Nombre;

    //Asignacin del (Nombre) a la variable.

    Nombre="Antonio";

    //Asignacin de la variable a la (Caja detexto - txtNombre), encarga de mostrar en laforma dicho nombre.

    txtNombre.Text = Nombre;

    }

    Nota: Se agregarn los comentarios en el cdigo a fin de lograrexplicar brevemente de lo que se esta realizando, por elconcepto que ms adelante se tratar ms detalladamente.

    108

  • dice estas entidades varan en el tipo e inf ormacin.

    Ya que las v ariables son espacios reserv ados en memoria paraalmacenar inf ormacin, misma la cual puede cambiar durante laejecucin del programa.

    A continuacin se muestra una tabla de los tipos de datos msbsicos utilizados en C#:

    112

  • 2. Id_Empleado (Puede expresar el nmero deidentif icacin de un empleado).

    Nota: Cabe destacar que C# es un lenguaje sensitiv o, por elloidentif ica y respeta las may sculas de las minsculas es decirNombre, nombre o NOMBRE. Son identif icadores que a simplev ista podran parecer iguales en signif icado, pero con laexcepcin que C# los toma como identif icadores totalmentedif erentes.

    Cuando se crea un identif icador a este tambin se le puedeasignar un v alor, Por ejemplo en la declaracin de una variabletenemos:

    edad = 20;

    El f ormato general de asignacin en C# est dado por:

    = ;

    Operadores, operandos y expresiones.

    Cuando se habla de un operador, se ref iere a un smbolo que leordena al lenguaje de programacin que ejerza una ciertaoperacin, es decir una accin sobre un operando o v arios.

    Mientras que el operando es una expresin en la cual el operadorpuede actuar sobre ella, con el objetiv o de obtener algnresultado deriv ado de s misma.

    Cuando se maneja un operador lo que hace este simplementees tomar un valor producto de una expresin y referenciarlo auna variable previamente declarada, es decir:

    115

  • public int Funcion()

    { this.close();

    return true;

    }Dichas f unciones poseen un v alor retorno, es decir al momentode f inalizar una determinada f uncin dicha arroga un v alor enespecf ico producto de la misma ejecucin.

    Tal valor puede constituir ya sea un valor numrico, un valorbooleano, etc. Esto depender en gran medida del tipo de valorde retorno que sea indicado.

    Para migrar una f uncin conv encional a un procedimiento(f uncin no conv encional) la cual no dev uelv a un v alor deretorno se tiende a utilizar la palabra reserv ada void.

    Sintaxis de definicin de un procedimiento en el lenguajeC#:

    ()

    { ;

    }

    119

  • Ejemplo:

    void Cerrado()

    { this.close();

    }Nota: Los smbolos son utilizados a f in de dif erenciar entrela sintaxis y el nombre que otorgaramos a la f uncin oprocedimiento, es decir en una prctica real dichos smbolos noiran con la manera en que se def ine una f uncin oprocedimiento.

    Variables locales.

    Son aquellas v ariables que se declaran dentro de una f uncin oprocedimiento, estas solo se pueden usar localmente dentro dela f uncin.

    Ejemplo://Procedimiento (Suma de dos nmeros)

    public void Suma()

    { //Declaracin de variables locales.

    double Numero_1;

    double Numero_2;

    120

  • double SumaResultado;

    //Asignacin y uso de variables.

    Numero_1 = 2;

    Numero_2 = 1;

    //Proceso

    SumaResultado = Numero_1 +Numero_2;

    } Nombre del proyecto: frmprogejemplo

    Variables globales.

    Las v ariables globales son aquellas v ariables que son v lidaspara todas las f unciones o procedimientos dentro de unprograma, dichas v ariables son declaradas f uera de cualquierf uncin o procedimiento.

    Una manera de definirlas fcilmente en el lenguaje deprogramacin C#, es definindolas en el mismo contextoque el anterior prrafo nos menciona. Asegurando de estaforma una accesibilidad en todo procedimiento u funcindentro de un programa para su utilizacin.

    Ejemplo:

    121

  • //Declaracin de variables globales.

    double Numero_1;

    double Numero_2;

    double SumaResultado;

    //Procedimiento (Suma de dos nmeros)

    public void Suma()

    { //Asignacin y uso de variables.

    Numero_1 = 2;

    Numero_2 = 1;

    //Proceso

    SumaResultado = Numero_1 +Numero_2;

    } Nombre del proyecto: frmprogejemplo

    Parmetros.

    122

  • Cuando deseamos trasladar o compartir v alores entre unaf uncin o procedimiento y a sea a otro procedimiento o f uncin,esto se puede llev ar a cabo por medio de los parmetros.

    Sabiendo tal cosa, un parmetro se def ine como un v alor quepasa de una f uncin a otra f uncin o procedimiento aprocedimiento, de manera general como un v alor que pasa deun subprograma a otro.

    Ejemplo que vincula la utilizacin de variables globales yla utilizacin de parmetros entre subprogramas:

    //Declaracin de variables globales.

    double Numero_1;

    double Numero_2;

    double SumaResultado;

    //Procedimiento (Suma de dos nmeros)

    public void Suma()

    { //Asignacin y uso de variables.

    Numero_1 = 2;

    Numero_2 = 1;

    //Proceso

    123

  • 125

  • 4.- Control de flujoEn este punto del texto, el lector y a tiene la idea bsica decmo estructurar un programa, es decir y a conoce comomodelar una situacin de tal f orma que se pueda obtener lasolucin a un problema mediante un programa o aplicacin, esdecir un algoritmo.

    De igual forma ya podemos definir variables, procedimientos,funciones, etc.

    Pero al desarrollar un programa, no solo basta con tener unalgoritmo (lgica) y saber def inir las v ariables, procedimientos of unciones a utilizar, la lgica implica decisiones que el programadebe tomar arrogando un resultado dif erente segn el caminoseleccionado.

    Esto se hace mediante selectiv as, en dicha parte de lapublicacin se hablarn de selectivas simples (Una decisin conun camino), dobles (Una decisin con dos caminos),compuestas (Varias decisiones, uno o dos caminos), anidadas(Varias selectiv as adjuntas) , mltiples (Utilizacin de casos) y eltry-catch (Intenta y atrapa).

    Aunque se utilizara de f orma f recuente las selectiv as, lasestructuras de tipo repetir (ciclos, bucles, loops, etc.) de igualmanera son muy utilizadas, y a que nos proporcionan la habilidadde realizar una determinada operacin un nmero repetido dev eces hasta que se cumpla una condicin def inida.

    126

  • Lo ciclos manejados durante esta publicacin son el ciclo do-while (Realiza la operacin, despus checa la condicin delbucle), el ciclo while (Checa la condicin de bucle, si se cumplerealiza la operacin) y por ltimo el ciclo for (Se def ine elnmero de repeticiones, realiza la operacin, aumenta elcontador (interno) y checa la condicin del bucle).

    4.1.- Estructuras secuencialesLas estructuras secuenciales son aquellas en las cuales lasinstrucciones o acciones designadas siguen a otras.

    La entrada y salida de datos son estructuras secuenciales,debido a que en un problema necesitan que se alimenten datoso inf ormacin para a f in de resolv er un problema y si est notiene una salida no desplegar un resultado.

    4.2.- EstructurasselectivasComo su nombre lo dice las estructuras selectivas, toman unadecisin de accin mediante condiciones, es decir mediante eluso de operadores lgicos comparara entre datos en f uncin deun resultado obtenido a f in de determinar qu accin se tomar(camino a seguir). Comnmente se tiene como salida solamente"S" o "No".

    Operadores relacionales.

    127

  • 4.2.1.- Selectiva simpleLa selectiva simple es aquella que solo ev ala o solo tiene unasola condicin y como resultado de la ev aluacin de esacondicin solo se arroga una opcin v erdadera.

    La sintaxis de la condicin para una selectiva simple enpseudocdigo y en diagrama de flujo es la siguiente:

    Ejemplos:

    X 13 Falso.Z

  • Ral Antonio.

    */

    private void CmdCapturar_Click(object sender,EventArgs e)

    { //variable (donde se guarda lainformacin).

    int Edad;

    //asignacin de los valores entrantes(textbox) a la variable "Edad".

    Edad = Int32.Parse(txtEdad.Text);

    //Selectivas (operacin).

    //Se cumple cuando la edad es mayor de18.

    if (Edad > 18)

    { MessageBox.Show("La persona esmayor de edad en Mxico.");

    }

    132

  • 4.2.2.- Selectiva doble ycompuestaA dif erencia de la selectiv a simple, la selectiva doble consideracuando la condicin es verdadera y es falsa, a continuacin sepresenta el pseudocdigo para una selectiv a doble con unacondicin (el diagrama de flujo es el mismo que en la selectivasimple):

    Si entonces

    -- Verdadero

    Sino

    -- Falso

    Fin s.

    Este algoritmo nos dice que s la condicin es v erdadera, seejecutarn las instrucciones en el bloque que dice v erdadero,por el contrario s la condicin es f alsa se ejecutarn lasinstrucciones en el bloque del f also.

    Sintaxis de una selectiva doble con una condicin cuandohay varias instrucciones:

    If ()

    134

  • private void cmdentrar_Click(object sender,EventArgs e)

    { //variable que guarda el contenido de lacaja de texto (para su manipulacion).

    string Clave;

    //asignacion de valor (desde la caja detexto) a la variable.

    Clave = txtcontrasea.Text;

    //selectiva doble

    //Se cumple cuando el contenido de lavariable "Clave" es igual a la informacinexpuesta.

    if (Clave == "11rlla32rzl")

    { //Muestra un mensaje de comprobacin.

    MessageBox.Show("Contraseacorrecta.");

    //Cierra el programa (aplicacin).

    136

  • this.Close();

    }

    else

    { //muestra un mensaje de alerta.

    MessageBox.Show("ContraseaInvalida, Intente de nuevo.");

    //limpia la caja de texto.

    txtcontrasea.Clear();

    //coloca el curzor en la caja de texto.

    txtcontrasea.Focus();

    }

    }Nombre del proyecto: Ejemplo_Selectiva_doble_FdP

    Selectiva compuesta.

    Estas selectiv as ev alan v arias condiciones a la v ez en unasola expresin, las selectivas compuestas utilizan los siguientesoperadores:

    137

  • Fin Si.

    Sintaxis para la selectiva compuesta cuando existen variasinstrucciones.

    If ( )

    {;

    ;}

    Else

    {;

    ;}

    Ejemplo: Programa el cual pide una contrasea y que el usuariosea may or de edad (Restriccin de edad basada en la may orade edad en Mxico).

    1.- Diseo de la parte grfica de la forma de aplicacin:

    140

  • string Contrasea;

    //asignacion de valores a las variables(contenido de las cajas de texto).

    //se asigna a la variable edad lainformacin contenida en la caja de texto txtedad

    edad = Int32.Parse(txtedad.Text);

    //se asigna a la variable contrasea lainformacin contenida en la caja de textotxtcontrasea.

    Contrasea = txtcontrasea.Text;

    //selectiva compuesta.

    //para que la selectiva cumpla, lacontrasea debe coincidir y la edad debera sermayor a 18.

    if (Contrasea == "11rlla32rzl" && edad >18)

    {

    142

  • //muestra un mensaje de aprovacin.

    MessageBox.Show("Se introdujo lacontrasea correcta y cumple con la edad.");

    this.Close();

    }

    else

    {

    //mensaje de alerta

    MessageBox.Show("Alguno de losrequisitos no se cumpleron.");

    //limpia las cajas de texto.

    txtcontrasea.Clear();

    txtedad.Clear();

    //coloca el curzon en la caja de textoedad.

    txtedad.Focus();

    143

  • 4.2.3.- Selectiva anidadaEl programador puede llegar al caso de necesitar v ariascondiciones para llegar a un resultado, a esto se le conocecomo selectiva anidada, a dif erencia de la selectiv a doble, laselectiv a anidada se ref iere a tener una o v arias condicionesdentro de otra condicin (las condiciones se encuentran en elbloque de instrucciones de la primera condicin).

    Los lenguajes de programacin como C# permiten la selectiv aanidada en la parte del f also de la condicin, esto en caso de nocumplirse la primer condicin.

    A continuacin se presenta las sintaxis en pseudocdigode la selectiva anidada.

    Si Entonces

    Sino

    Entonces

    Sino

    145

  • Fin si

    Fin si

    Cada condicin debe de ser cerrada, es decir a cada Si (if ) lecorresponde un Fin si (}), en el diagrama de f lujo, se maneja elmismo smbolo solo que se anida de la misma manera que en elpseudocdigo.

    Nota: Se puede manejar la cantidad deseada de selectiv asanidadas, aunque si se llega a una gran cantidad el algoritmopuede ser muy complejo.

    Sintaxis en lenguaje C# de la selectiva anidada.

    If Entones{

    }Else { If Entonces { } Else { }

    146

  • private void cmdNombre_Click(object sender,EventArgs e)

    {

    //Nota: Uso de comentarios se realiza medianteel uso de // para comentarios de una lnea o

    /* Uso de (/*) para

    * Comentarios de multiples lneas cerrando con(*/) el bloque de comentarios */

    //Uso del try-catch

    try //intenta (detecta la excepcin.).

    { //asignacion de los valores dentro de lacaja de texto a la variable global "numero".

    numero =System.Int32.Parse(txtnumero.Text);

    //Toda esta estructura es una selectivaanidada.

    if (numero == 0)

    148

  • { lbldesplegarnumero.Text = " Cero.";

    }

    else { //Condicin.

    if (numero == 1) //Entonces.

    { //instruccin

    lbldesplegarnumero.Text = " Uno.";

    }

    else

    { if (numero == 2) //Entonces.

    {

    lbldesplegarnumero.Text = " Dos.";

    }

    else

    { if (numero == 3) //Entonces.

    149

  • {

    lbldesplegarnumero.Text = " Tres.";

    }

    else

    { if (numero == 4) //Entonces.

    {

    lbldesplegarnumero.Text =" Cuatro.";

    }

    else

    { if (numero == 5) //Entonces.

    {

    lbldesplegarnumero.Text =" Cinco.";

    }

    150

  • else

    { if (numero == 6) //Entonces.

    {

    lbldesplegarnumero.Text= " Seis.";

    }

    else

    { if (numero == 7)//Entonces.

    {

    lbldesplegarnumero.Text = " Siete.";

    }

    else

    { if (numero == 8)//Entonces.

    {

    151

  • lbldesplegarnumero.Text = " Ocho.";

    }

    else

    { if (numero == 9)//Entonces.

    {

    lbldesplegarnumero.Text = " Nueve.";

    }

    else

    //Mensaje mostrado si elnumero alimentado es mayor a nueve. lbldesplegarnumero.Text = " Novalido!.";

    }//Fin si

    }//Fin si

    152

  • }//Fin Si

    }//Fin si

    }//Fin si

    }//Fin si

    }//Fin si

    }//Fin si

    }//Fin si

    }//Fin si

    }

    catch (System.FormatException aviso)//Atrapa la excepcin, el mensaje lo almacena enle variable aviso.

    { MessageBox.Show("Error " +aviso);//despliega el error en una caja demensaje.

    txtnumero.Clear();//limpia la caja detexto.

    153

  • txtnumero.Focus();//pone el curzor en lacaja de texto.

    }

    }

    private void cmdlimpiar_Click(object sender,EventArgs e)

    { //Limpia la caja de texto.

    txtnumero.Clear();

    //Limpia la etiqueta.

    lbldesplegarnumero.Text = "";

    //Pone el cursor en la caja de texto.

    txtnumero.Focus();

    }

    private void cmdsalir_Click(object sender,EventArgs e)

    { //Cerrar (salir) la aplicacin.

    154

  • 4.2.4.- Selectiva mltipleLa selectiva mltiple se utiliza cuando, el uso de una selectiv aanidada es contraproducente, es decir, al utilizar un anidamientode condiciones el algoritmo se torna un poco conf uso es por esoque se dice que la selectiv a mltiple es mejor en este caso y aque simplif ica muchos detalles haciendo ms sencillo elalgoritmo.

    La selectiv a mltiple, presenta un selector el cual nos permiteev aluar distintos casos, este selector es una v ariable quealmacena el dato a buscar dentro de una lista de casos, duranteel rastreo el selector identif ica cual de los casos coincide conlos v alores almacenado en este, al encontrar el casocorrespondiente ejecuta las instrucciones indicadas.

    Pseudocdigo de una selectiva mltiple.

    Seleccionar Caso Caso

    Caso

    ...Caso

    Si no

    156

  • Cdigo en C#.

    Switch ()

    {

    Case :

    ;

    break;

    Case :

    ;

    break;

    .

    .

    .Def ault:

    ;

    break;

    }

    Ejemplo: Programa en C# el cual pide un nmero y despliega sunombre (Casos 0-9).

    1.- Diseo de la parte grfica de la forma:

    158

  • int numero;

    //asignacion de valores a la variab lenumero.

    numero = Int32.Parse(txtnum.Text);

    //selectiva multiple.

    switch (numero)

    {

    case 0://Cuando el numero introducidoes cero.

    lb ldesplegarnumero.Text = "Cero.";

    break;

    case 1://Cuando el numero introducidoes uno.

    lb ldesplegarnumero.Text = "Uno.";

    break;

    160

  • case 2://Cuando el numero introducidoes dos.

    lb ldesplegarnumero.Text = "Dos.";

    break;

    case 3://Cuando el numero introducidoes tres.

    lb ldesplegarnumero.Text = "Tres.";

    break;

    case 4://Cuando el numero introducidoes cuatro

    lb ldesplegarnumero.Text = "Cuatro.";

    break;

    161

  • case 5://Cuando el numero introducidoes cinco

    lb ldesplegarnumero.Text = "Cinco.";

    break;

    case 6://Cuando el numero introducidoes seis.

    lb ldesplegarnumero.Text = "Seis.";

    break;

    case 7://Cuando el numero introducidoes siete.

    lb ldesplegarnumero.Text = "Siete.";

    break;

    case 8://Cuando el numero introducidoes ocho.

    162

  • lb ldesplegarnumero.Text = "Ocho.";

    break;

    case 9://Cuando el numero introducidoes nueve.

    lb ldesplegarnumero.Text = "Nueve.";

    break;

    default://Cuando el numero introducidono se encuentra contemplado (casos anteriores).

    lb ldesplegarnumero.Text = "Nmerono vaido.";

    break;

    }

    }

    private void cmdlimpiar_Click(ob jectsender, EventArgs e)

    163

  • {

    //Limpia la caja de texto.

    txtnum.Clear();

    //Limpia la etiqueta.

    lb ldesplegarnumero.Text = "";

    //Pone el curzor en la caja de texto.

    txtnum.Focus();

    }

    private void cmdsalir_Click(object sender,EventArgs e)

    { //Cerrar (salir) la aplicacin.

    this.Close();

    }Nombre del proyecto: Ejemplo multiple FdPCShar

    Nota: No tomo en consideracin que numero en realidades nmero hablando en trminos de la gramtica, por aquellasdudas que puede causar al conf undir el selector con una la

    164

  • 4.2.5.- Selectiva intenta(Try/Catch)Cuando se utiliza una selectiva Try/catch (Intenta y atrapa), seplanea detectar errores sin que este marque una excepcin y sesalga del programa (crash).

    Try se encarga de probar un cierto nmero de instrucciones ydetectar errores que se encuentren dentro del bloque deinstrucciones que sern probadas, a continuacin su sintaxis:

    Try{ //prueba la instruccin.}

    El Catch se encarga de manejar la excepcin con una lista deparmetros, este bloque se encuentra despus del try, acontinuacin se muestra la sintaxis del catch y f inally :

    Catch (Variable encargada de almacenar excepcin){ }

    Finally{

    166

  • 4.3.- EstructurasrepetitivasConsideramos como una estructura repetitiv a (Loop, ciclo obucle) a un f ragmento de un programa o algoritmo cuy o bloquede activ idades se repite un nmero determinado de v eces,mientras una comparacin lgica sea v erdadera.

    Es decir, una condicin sea cumplida es por ello que se dice queuna estructura repetitiv a es un medio el cual debe estardelimitado por una serie de f actores que lograr que tal realice suf uncionamiento (Repetir).

    La ncleo del f uncionamiento de una estructura repetitiv a giraentorno al uso de una condicin como v alidador si se ejecutarel bloque de instrucciones en cada iteracin, as mismo uncontador de iteraciones (Nmero de repeticiones del ciclo).

    Un bucle consta de tres partes bsicas y esenciales:

    1. Una condicin.2. Un cuerpo (Bloque de instrucciones a ejecutar durante

    cada repeticin).3. Una salida.

    A continuacin detallamos el diagrama de flujo base de unciclo (Do-While):

    168

  • primera iteracin visto desde peudocdigo, el contadorcontabilizara que llevramos una iteracin mediante un 1.

    Sintaxis para diagrama de flujo y pseudocdigo:

  • 4.3.1.- Repetir hacer-mientras(Do-While)Este ciclo o bucle tambin se conoce como el ciclo que pruebapor abajo, es debido a que ejecuta una v ez por lo menos lasinstrucciones, posteriormente comprueba si se cumple lacondicin.

    Si este f uera el caso, continua iterando (repite lasinstrucciones), en caso de no cumplirse la condicin, se sale delciclo, la condicin de este ciclo puede utilizar v alores numricoso alf anumricos.

    A continuacin se presenta la sintaxis del pseudocdigo de estetipo de ciclo al igual que su diagrama de flujo y su cdigo enlenguaje C#.

    Pseudocdigo:

    Repetir

    Mientras

    Diagrama de flujo:

    173

  • Cdigo en lenguaje C#:

    do{;} while();

    Ejemplo: Programa en C# que muestra los nmeros del 1 al 10.

    1.- Diseo de la parte grfica de la forma:

    175

  • ciclo while, y puede causar problemas.

    */

    contador = 0;

    //Despliegue de resultados.

    do

    {

    /*Se aumenta el contador a uno paracomenzar el conteo desde uno (recordemos)

    que en el programa comienza desdecero).

    */

    contador = contador + 1;

    /*Se despliega el conteo concatenandoel valor anterior en la caja

    de texto, \r\n sirve para saltar derengln.

    177

  • 4.3.2.- Repetir mientras (While)Este ciclo tambin se le conoce como prueba por arriba, debidoa que primero ev ala la condicin antes de ejecutar lasinstrucciones, al igual que el ciclo do-while, este tambin semantendr iterando siempre y cuando la condicin se cumpla(Sea v erdadera), esta condicin maneja v alores numricos yalf anumricos.

    A continuacin se presenta la sintaxis para el pseudocdigo,diagrama de flujo y su cdigo en lenguaje C#.

    Pseudocdigo:

    Mientras

    Repetir.

    Diagrama de flujo:

    179

  • Cdigo en lenguaje C#:

    While (){;}

    Ejemplo: Programa en C# que muestra los nmeros del 1 al 10.

    1.- Diseo de la parte grfica de la forma:

    181

  • while (contador < 10)//condicin.

    {

    /*Se aumenta el contador a uno paracomenzar el conteo desde uno (recordemos)

    que en el programa comienza desdecero).

    */

    contador = contador + 1;

    /*Se despliega el conteo concatenandoel valor anterior en la caja

    de texto, \r\n sirve para saltar derengln.

    */

    txtWhile.Text = txtWhile.Text +contador.ToString() + "\r\n";

    }

    183

  • 4.3.3.- Repetir desde (For)Este ciclo (ciclo f or) es el ms simple y sencillo de todos losciclos v istos en esta publicacin, el ciclo f or es utilizado y serecomienda hacerlo cuando se sabe el nmero de iteracionesdeseadas y a que inicialmente se indica las iteraciones que serealizaran, es decir, se debe explcitamente indicar lasiteraciones que v a a realizar.

    Este ciclo y a contiene un contador interno en l, as como unacondicin para determinar la f inalizacin de las iteraciones, poresta razn la condicin que tiene el ciclo f or solo utiliza v aloresnumricos.

    A continuacin se presenta la sintaxis para el pseudocdigo,smbolo en diagrama de flujo y cdigo en lenguaje C#.

    Pseudocdigo:

    Desde

  • 5.- ArreglosHasta el momento conocemos al menos de lo que se trata lanocin de las variables o mejor an el propsito de tales.

    Llegando al punto en el cual hemos comprendido la importanciade dichas al momento de ef ectuar alguna operacin o procesoempleando una v ariable para cada operacin en especf ico.

    Por lo cual si tuv iramos una cantidad considerable deoperaciones distintas tenderamos por lgica a def inir unav ariable para cada tipo de operacin, lo cual no estara malsimplemente no f uera del todo prctico al lidiar con el posiblemar de cdigo que podra representar esto.

    Es por ello que en programacin se dio a la tarea de crear unobjeto que permitiese la manipulacin de una cantidad nv ariables masiv amente llamado arreglo.

    Un arreglo es un conjunto de datos de igual tipo de datoen forma de una entidad, de tal manera que para llamarlosse hace uso del nombre del arreglo y una seriede subndices.

    Con el detalle de que no es posible mezclar v arios tipos dedatos en el conjunto de datos.

    Algunos autores, v isualizan este tipo de entidades como unaespecie de tabla en la cual se almacenan v alores, donde tienen

    189

  • introducidos en una especie de lista, en pseudocdigo, los datosse empiezan a almacenar desde la celda uno pero en unlenguaje de programacin como C#, los datos se empiezan aalmacenar desde la celda cero por aquello de la construccin dela computadora.

    Los arreglos, vectores, etc. estn formados por las siguientespartes:

    Nombre del arreglo, El arreglo tendr un solo nombre, cadadato almacenado en el arreglo se le hace ref erencia mediante elnombre del arreglo y la posicin de este dato respecto alarreglo, es decir mediante subndices, por ejemplo: (A[0], A[1],A[2], ,A[n]).

    Subndice, Este se encarga de indicar la posicin donde seencuentra un elemento del arreglo en el arreglo, el subndice nosay uda a dif erenciar entre aquellos elementos almacenados en elarreglo def iniendo un subndice o subndices nicos para cadaelemento.

    Los subndices son de tipo entero y cuando se hace ref erenciaa un arreglo, el nombre de este debe ir acompaado con unrespectiv o subndice.

    Ejemplo.

    Nombre arreglo: A (3)

    191

  • Cdigo en lenguaje C#:

    int [ ] A = new int A [3] {3, 4, 8};

    As mismo los arreglos pueden ser llenados y mandados adesplegar sus v alores mediante el uso de ciclos (Do-While,While, For).

    Por ejemplo:

    En pseudocdigo:

    1. Inicio2. C

  • public Form1()

    { InitializeComponent();

    }

    private void cmdcapturar_Click(objectsender, EventArgs e)

    { //asignacin de valores

    if (C < 3)

    { num[C] = Single.Parse(txtNum.Text);

    C = C + 1;

    txtNum.Clear();

    txtNum.Focus(); }

    else {

    MessageBox.Show("Valor mximo devalores.");

    txtNum.Clear();

    txtNum.ReadOnly = true;

    194

  • }

    }

    private void cmdDesplegar_Click(objectsender, EventArgs e)

    { while(D

  • En una sola lnea.

    [ , ] = new [,];

    En dos lneas.

    [ , ] ;

    = new [,];

    Como y a se menciono, los arreglos pueden ser inicializados conv alores, es decir se le agregan v alores al declara y crear estos,por ejemplo:

    Cdigo en lenguaje C#:

    int [ , ] A = new int A [3,2] {{2,6}, {3,1}, {8,7}};

    As mismo los arreglos pueden ser llenados y mandados adesplegar sus v alores mediante el uso de ciclos(Do-While,While, For).

    Por ejemplo:

    En pseudocdigo:

    1. Inicio2. C

  • 5. Desde D
  • { if (D == 2)//Aumento de renglones(llenado).

    { C = C + 1;

    D = 0;

    }else//Aumento de columnas (llenado).

    { num[C, D] = Single.Parse(txtNum.Text);

    D = D + 1;

    txtNum.Clear();

    txtNum.Focus();

    }

    }else{

    MessageBox.Show("Valor mximo devalores.");

    txtNum.Clear();

    txtNum.ReadOnly = true;

    }

    199

  • La experiencia como estudiante as mismo como instructor deasesoras impartidas a alumnos del I.T.T, halogradoconsolidarme a tal grado de poder contextualizar todos aquellosproblemas generalmente presentados como estudiante almomento de cursar un ambiente media-superior. Teniendo comoproducto algunas publicaciones principalmente destinadas acompartir un poco de mis conocimientos a todos aquellosestudiantes que lo requieran. Esto y muchas otras cosas mses lo que soy...

    Twitter:@RauZaLo

    Siti