-Que es programación. -Que es un lenguaje de programación. -Que es la lógica computacional....

download -Que es programación. -Que es un lenguaje de programación. -Que es la lógica computacional. -Clasificación de los lenguajes de programación, (Ejemplos en cada clasificación o

of 70

Transcript of -Que es programación. -Que es un lenguaje de programación. -Que es la lógica computacional....

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    1/70

    Algoritmos computacionales

    - Que es programacin.

    - Que es un lenguaje de programacin.

    - Que es la lgica computacional.

    - Clasifcacin de los lenguajes de programacin, (Ejemplos encada clasifcacin o categora)

    - Que es un algoritmo (Ejemplos), como se clasifcan.

    - Que es un pseudocdigo (Ejemplos).

    - Que es un diagrama de ujo de datos, (como se clasifcan).

    - Que son las variales (ejemplos).

    - Que son las constantes (ejemplos).

    - !ipos de datos.

    - "peradores (tipos).

    - "peraciones #sicas (algoritmos)

    $umas.

    %estas.

    &ultiplicacin.

    'ivisiones.

    - $molos de diagramas de ujo.("peraciones #sicas)

    anidados

    $*itc+

    $*itc+ anidados

    - Ciclos repetitivos

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    2/70

    or

    +ile

    'o +ile

    - ectores.

    - &atrices.

    Qu es programacin?

    /a programacines el proceso de dise0ar, escriir, proar, depurar 1mantener el cdigo uente de programas computacionales. El cdigo uentees escrito en un lenguaje de programacin. El propsito de la programacines crear un programa 2ue e3+ia un comportamiento deseado. El procesode escriir cdigo re2uiere recuentemente conocimientos en muc+as #reasdistintas, como el dominio de la aplicacin, algoritmos especiali4ados 1lgica ormal.

    Historia

    5ara 2ue la computadora entienda nuestras instrucciones dee usarse un

    lenguajeespecfco conocido como cdigo m#2uina, el cual comprende#cilmente, pero 2ue lo +ace e3cesivamente complicado para las personas.'e +ec+o slo consiste en cadenas interminales de n6meros 7 1 8.($istema de n6meros 9inario)

    5ara acilitar el traajo, los primeros operadores de computadorasdecidieron reempla4ar los 7 1 8 por palaras o letras provenientes delingl:s; :ste se conoce como lenguaje ensamlador. 5or ejemplo, para sumarse usa la letra A de la palara inglesa add(sumar). En realidad escriir enlenguaje ensamlador es #sicamente igual 2ue +acerlo en lenguajem#2uina, pero las letras 1 palaras son m#s #ciles de recordar 1 entender2ue los n6meros.

    A medida 2ue la complejidad de las tareas 2ue reali4aan las computadorasaumentaa, se +i4o necesario disponer de un m:todo m#s adecuado paraprogramarlas. Entonces, se crearon los lenguajes de alto nivel. &ientras 2ueuna tarea tan sencilla como sumar dos n6meros puede necesitar variasinstrucciones en lenguaje ensamlador, en un lenguaje de alto nivel astar#con solo una.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    3/70

    /enguaje de programacin

    Captura de la microcomputadora Commodore 5E!-=> mostrando unprogramaen el lenguaje de programacin 9A$C, ajo el emuladorCEenuna distriucin ?@

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    4/70

    de instrucciones 2ue sean comprendidas entre ellos para reali4ar laconstruccin de un programa de orma colaorativa.

    Fistoria

    Cdigo ortranen una tarjeta perorada, mostrando el uso especiali4ado delas columnas 7-G, H 1 I=-J8.5ara 2ue la computadora entienda nuestras instrucciones dee usarse unlenguaje especfco conocido como cdigo m#2uina, el cual la m#2uinacomprende #cilmente, pero 2ue lo +ace e3cesivamente complicado para laspersonas. 'e +ec+o slo consiste en cadenas e3tensas de n6meros 8 1 7.

    5ara acilitar el traajo, los primeros operadores de computadorasdecidieron +acer un traductor para reempla4ar los 8 1 7 por palaras oastraccin de palaras 1 letras provenientes del ingl:s; :ste se conocecomo lenguaje ensamlador. 5or ejemplo, para sumar se usa la letra A de lapalara inglesa add (sumar). El lenguaje ensamlador sigue la mismaestructura del lenguaje m#2uina, pero las letras 1 palaras son m#s #cilesde recordar 1 entender 2ue los n6meros.

    /a necesidad de recordar secuencias de programacin para las accionesusuales llev a denominarlas con nomres #ciles de memori4ar 1 asociarD

    A'' (sumar), $

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    5/70

    El primer manual para el lenguaje ortranapareci en octure de 7MGH, conel primer compilador ortran entregado en aril de 7MGI. Esto era uncompilador optimi4ado, por2ue los clientes eran reacios a usar un lenguajede alto nivel a menos 2ue su compilador pudiera generar cdigo cu1odesempe0o uera comparale al de un cdigo +ec+o a mano en lenguajeensamlador.

    En 7MH8, se cre C"9"/, uno de los lenguajes usados a6n en >878 eninorm#tica de gestin.

    A medida 2ue la complejidad de las tareas 2ue reali4aan las computadorasaumentaa, se +i4o necesario disponer de un m:todo m#s efciente paraprogramarlas. Entonces, se crearon los lenguajes de alto nivel, como lo ue9A$Cen las versiones introducidas en los microordenadores de la d:cadade 7MJ8. &ientras 2ue una tarea tan sencilla como sumar dos n6merospuede necesitar varias instrucciones en lenguaje ensamlador, en unlenguaje de alto nivel astar# con solo una.

    Elementos!odos los lenguajes de programacin tienen algunos elementos deormacin primitivos para la descripcin de los datos 1 de los procesos otransormaciones aplicadas a estos datos (tal como la suma de dos n6meroso la seleccin de un elemento 2ue orma parte de una coleccin). Estoselementos primitivos son defnidos por reglas sint#cticas 1 sem#nticas 2uedescrien su estructura 1 signifcado respectivamente.

    Sintaxis

    Con recuencia se resaltan los elementos de la sinta3is con coloresdierentes para acilitar su lectura. Este ejemplo est# escrito en 51t+on.A la orma visile de un lenguaje de programacin se le conoce comosinta3is. /a ma1ora de los lenguajes de programacin son puramentete3tuales, es decir, utili4an secuencias de te3to 2ue inclu1en palaras,n6meros 1 puntuacin, de manera similar a los lenguajes naturales escritos.5or otra parte, +a1 algunos lenguajes de programacin 2ue son m#s gr#fcosen su naturale4a, utili4ando relaciones visuales entre smolos paraespecifcar un programa.

    /a sinta3is de un lenguaje de programacin descrie las cominacionesposiles de los smolos 2ue orman un programa sint#cticamente correcto.

    http://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/COBOLhttp://es.wikipedia.org/wiki/Inform%C3%A1tica_de_gesti%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/BASIChttp://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/Compiladorhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/COBOLhttp://es.wikipedia.org/wiki/Inform%C3%A1tica_de_gesti%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_alto_nivelhttp://es.wikipedia.org/wiki/BASIC
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    6/70

    El signifcado 2ue se le da a una cominacin de smolos es manejado porsu sem#ntica (1a sea ormal o como parte del cdigo duro de la reerenciade implementacin). 'ado 2ue la ma1ora de los lenguajes son te3tuales,este artculo trata de la sinta3is te3tual.

    /a sinta3is de los lenguajes de programacin es defnida generalmenteutili4ando una cominacin de e3presiones regulares (para la estructural:3ica) 1 la @otacin de 9acLus-@aur(para la estructura gram#tica). Este esun ejemplo de una gram#tica simple, tomada de /ispD

    E3presin DD #tomo R listaStomo DD n6mero R smolo@6mero DD BT-UB8-MT$molo DD BA-PVno*iLiWVno*iLiWa-4.X/ista DD ( e3presinX )Con esta gram#tica se especifca lo siguienteD

    una expresinpuede ser un tomoo una lista;

    un tomopuede ser un nmeroo un smbolo;

    un nmeroes una secuencia continua de uno o m#s dgitosdecimales, precedido opcionalmente por un signo m#s o un signomenos;

    un smboloes una letra seguida de cero o m#s caracteres(e3clu1endo espacios); 1

    una listaes un par de par:ntesis 2ue aren 1 cierran, con cero o m#se3presiones en medio.

    Algunos ejemplos de secuencias ien ormadas de acuerdo a estagram#ticaD

    7>=OG, (), (a c>=> (7))

    @o todos los programas sint#cticamente correctos son sem#nticamentecorrectos. &uc+os programas sint#cticamente correctos tieneninconsistencias con las reglas del lenguaje; 1 pueden (dependiendo de la

    especifcacin del lenguaje 1 la solide4 de la implementacin) resultar en unerror de traduccin o ejecucin. En algunos casos, tales programas puedene3+iir un comportamiento indefnido. Adem#s, incluso cuando un programaest# ien defnido dentro de un lenguaje, todava puede tener un signifcado2ue no es el 2ue la persona 2ue lo escrii estaa tratando de construir.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    7/70

    KNuan es un soltero casadoK tami:n est# ien ormadagram#ticamente pero e3presa un signifcado 2ue no puede serverdadero.

    El siguiente ragmento en el lenguaje C es sint#cticamente correcto, pero

    ejecuta una operacin 2ue no est# defnida sem#nticamente (dado 2ue p esun apuntador nulo, las operaciones p-Wreal 1 p-Wim no tienen ning6nsignifcado)D

    comple3 Xp @, es decir, son gram#ticas lires de conte3to. Algunoslenguajes, inclu1endo a 5erl 1 a /isp, contienen construcciones 2uepermiten la ejecucin durante la ase de an#lisis. /os lenguajes 2uepermiten construcciones 2ue permiten al programador alterar elcomportamiento de un anali4ador +acen del an#lisis de la sinta3is unprolema sin decisin 6nica, 1 generalmente oscurecen la separacin entrean#lisis 1 ejecucin. En contraste con el sistema de macros de /isp 1 loslo2ues 9E?@ de 5erl, 2ue pueden tener c#lculos generales, las macros deC son meros reempla4os de cadenas, 1 no re2uieren ejecucin de cdigo.

    Semntica esttica/a sem#ntica est#tica defne las restricciones sore la estructura de loste3tos v#lidos 2ue resulta imposile o mu1 dicil e3presar medianteormalismos sint#cticos est#ndar. 5ara los lenguajes compilados, lasem#ntica est#tica #sicamente inclu1e las reglas sem#nticas 2ue sepueden verifcar en el momento de compilar. 5or ejemplo el c+e2ueo de 2uecada identifcador sea declarado antes de ser usado (en lenguajes 2uere2uieren tales declaraciones) o 2ue las eti2uetas en cada ra4o de unaestructura casesean distintas. &uc+as restricciones importantes de estetipo, como la validacin de 2ue los identifcadores sean usados en losconte3tos apropiados (por ejemplo no sumar un entero al nomre de una

    uncin), o 2ue las llamadas a surutinas tengan el n6mero 1 tipo depar#metros adecuado, puede ser implementadas defni:ndolas como reglasen una lgica conocida como sistema de tipos. "tras ormas de an#lisisest#ticos, como los an#lisis de ujo de datos, tami:n pueden ser parte dela sem#ntica est#tica. @uevos lenguajes de programacin como Nava 1 CZtienen un an#lisis defnido de asignaciones, una orma de an#lisis de ujo dedatos, como parte de su sem#ntica est#tica.

    Sistema de tipos

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    8/70

    operaciones inv#lidas. Cual2uier sistema de tipos decidile tiene susventajas 1 desventajasD mientras por un lado rec+a4a muc+os programasincorrectos, tami:n pro+e algunos programas correctos aun2ue pococomunes. 5ara poder minimi4ar esta desventaja, algunos lenguajes inclu1enlagunas de tipos, conversiones e3plcitas no c+ecadas 2ue pueden serusadas por el programador para permitir e3plcitamente una operacinnormalmente no permitida entre dierentes tipos. En la ma1ora de loslenguajes con tipos, el sistema de tipos es usado solamente para c+ecar lostipos de los programas, pero varios lenguajes, generalmente uncionales,llevan a cao lo 2ue se conoce como inerencia de tipos, 2ue le 2uita alprogramador la tarea de especifcar los tipos. Al dise0o 1 estudio ormal delos sistemas de tipos se le conoce como teora de tipos.

    Lxico y programacin

    5rogramar es m#s sencillo 2ue aprender una lengua. /a programacin serige por unas reglas 2ue se asemejan con ciertas dierencias, a las de unalengua natural. /a particularidad estria en 2ue las reglas de programacintienen menor amig[edad.

    En los lenguajes de programacinde alto nivel se distinguen diversoselementos entre los 2ue se inclu1en el l:3ico propio del lenguaje 1 las reglassem#nticas 1 sint#cticas.

    Programas y algoritmos

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    9/70

    Compilacin

    El programa escrito en un lenguaje de programacin(comprensile por elser +umano, aun2ue se suelen corresponder con lenguajes ormalesdescritos por gram#ticas independientes del conte3to) no puede ejecutarlo

    directamente una computadora. /a opcin m#s com6n es compilar elprograma oteniendo un mdulo ojeto, aun2ue tami:n puede ejecutarsea trav:s de un int:rprete inorm#tico.

    El cdigo uente del programase dee someter a un proceso de traduccinpara convertirse en lenguaje m#2uina, interpretale por el procesador. Aeste proceso se le llama compilacin.

    @ormalmente la creacin de un programa ejecutale(un tpico.e3e para&icrosot indo*so '"$) conlleva dos pasos. El primer paso se llamacompilacin (propiamente dic+o) 1 traduce el cdigo uente escrito en unlenguaje de programacinalmacenado en un arc+ivo a cdigo en ajo nivel

    (normalmente en cdigo ojeto, no directamente a lenguaje m#2uina). Elsegundo paso se llama enlazadoen el cual se enla4a el cdigo de ajo nivelgenerado de todos los fc+eros 1 suprogramas 2ue se +an mandadocompilar 1 se a0ade el cdigo de las unciones 2ue +a1 en las iliotecasdel compilador para 2ue el ejecutale pueda comunicarse directamente conel sistema operativo, traduciendo as fnalmente el cdigo ojetoa cdigom#2uina, 1 generando un mdulo ejecutale.

    Estos dos pasos se pueden +acer por separado, almacenando el resultadode la ase de compilacin en arc+ivos ojetos (un tpico.oj para &icrosotindo*s, '"$ o para

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    10/70

    prueas 2ue comprueen la valide4 del programa se puedenespecifcar en esta ase.

    O. 'ise0ar la ar2uitectura del programa. $e dee descomponer elprograma en partes de complejidad aordale.

    G. mplementar el programa. Consiste en reali4ar un dise0o detallado,especifcando completamente todo el uncionamiento del programa,tras lo cual la codifcacin deera resultar inmediata.

    H. mplantar (instalar) el programa. Consiste en poner el programa enuncionamiento junto con los componentes 2ue pueda necesitar(ases de datos, redes de comunicaciones, etc.).

    /a ingeniera del sot*are se centra en los pasos de planifcacin 1 dise0odel programa, mientras 2ue antiguamente (programacin artesanal) lareali4acin de un programa consista 6nicamente en escriir el cdigo.

    Lenguajes con tipo "ersus lenguajes sin tipo$e dice 2ue un lenguaje tiene tipossi la especifcacin de cada operacindefne tipos de datos para los cuales la operacin es aplicale, con laimplicacin de 2ue no es aplicale a otros tipos. 5or ejemplo, Kt+is te3tet*een t+e 2uotesK es una cadena. En la ma1ora de los lenguajes deprogramacin, dividir un n6mero por una cadena no tiene ning6nsignifcado. 5or tanto, la ma1ora de los lenguajes de programacinmodernos rec+a4aran cual2uier intento de ejecutar dic+a operacin porparte de alg6n programa. En algunos lenguajes, estas operaciones sinsignifcado son detectadas cuando el programa es compilado (validacin de

    tipos Kest#ticaK) 1 son rec+a4adas por el compilador, mientras en otros sondetectadas cuando el programa es ejecutado (validacin de tiposKdin#micaK) 1 se genera una e3cepcin en tiempo de ejecucin.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    11/70

    5or ejemplo, 7 1 (>T>) son e3presiones enteras; no pueden ser pasadas auna uncin 2ue espera una cadena, ni pueden guardarse en una variale2ue est# defnida como ec+a.

    /os lenguajes con tipos est#ticos pueden manejar tipos explcitoso tipos

    inferidos. En el primer caso, el programador dee escriir los tipos endeterminadas posiciones te3tuales (por ejemplo al declarar variales). En elsegundo caso, el compilador inere los tipos de las e3presiones 1 lasdeclaraciones de acuerdo al conte3to. /a ma1ora de los lenguajespopulares con tipos est#ticos, tales como CTT, CZ 1 Nava, manejan tipose3plcitos. nerencia total de los tipos suele asociarse con lenguajes menospopulares, tales como FasLell 1 &/. $in emargo, muc+os lenguajes de tipose3plcitos permiten inerencias parciales de tipo; tanto Nava 1 CZ, porejemplo, inferen tipos en un n6mero limitado de casos.

    /os lenguajes con tipos din#micos determinan la valide4 de los tiposinvolucrados en las operaciones durante la ejecucin del programa. En otras

    palaras, los tipos est#n asociados con valores en ejecucinen lugar deexpresiones textuales. Como en el caso de lenguajes con tipos ineridos, loslenguajes con tipos din#micos no re2uieren 2ue el programador escria lostipos de las e3presiones. Entre otras cosas, esto permite 2ue una mismavariale se pueda asociar con valores de tipos distintos en dierentesmomentos de la ejecucin de un programa. $in emargo, los errores de tipono pueden ser detectados autom#ticamente +asta 2ue se ejecuta el cdigo,difcultando la depuracin de los programas. %u1, /isp, Nava$cript 1 51t+onson lenguajes con tipos din#micos.

    #ipos d$iles y tipos uertes

    /ostipos dbiles

    permiten 2ue un valor de un tipo pueda ser tratado comode otro tipo, por ejemplo una cadena puede ser operada como un n6mero.Esto puede ser 6til a veces, pero tami:n puede permitir ciertos tipos deallas 2ue no pueden ser detectadas durante la compilacin o a veces nisi2uiera durante la ejecucin.

    /os tipos fuertesevitan 2ue paso lo anterior. Cual2uier intento de llevar acao una operacin sore el tipo e2uivocado dispara un error. A loslenguajes con tipos uertes se les suele llamar de tipos seguros.

    /enguajes con tipos d:iles como 5erl 1 Nava$cript permiten un gran n6merode conversiones de tipo implcitas. 5or ejemplo en Nava$cript la e3presin >

    X 3 convierte implcitamente 3 a un n6mero, 1 esta conversin es e3itosainclusive cuando 3 es null, undefned, un Arra1 o una cadena de letras. Estasconversiones implcitas son 6tles con recuencia, pero tami:n puedenocultar errores de programacin.

    /as caractersticas de estticos 1 fuertes son a+ora generalmenteconsideradas conceptos ortogonales, pero su trato en dierentes te3tosvaria. Algunos utili4an el t:rmino de tipos fuertes para reerirse a tiposfuertemente estticoso, para aumentar la conusin, simplemente comoe2uivalencia de tipos estticos. 'e tal manera 2ue C +a sido llamado tantolenguaje de tipos uertes como lenguaje de tipos est#ticos d:iles.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    12/70

    mplementacin

    Cdigo uente de un programa escrito en el lenguaje de programacin Nava.

    /a implementacin de un lenguaje es la 2ue provee una manera de 2ue seejecute un programa para una determinada cominacin de sot*are 1+ard*are. E3isten #sicamente dos maneras de implementar un lenguajeDcompilacine interpretacin.

    CompilacinD es el proceso 2ue traduce un programa escrito en unlenguaje de programacin a otro lenguaje de programacin,generando un programa e2uivalente 2ue la m#2uina ser# capa4interpretar. /os programas traductores 2ue pueden reali4ar estaoperacin se llaman compiladores. ]stos, como los programasensamladores avan4ados, pueden generar muc+as lneas de cdigode m#2uina por cada proposicin del programa uente.

    nterpretacinD es una asignacin de signifcados a las rmulas ienormadasde un lenguaje ormal. Como los lenguajes ormales puedendefnirse en t:rminos puramente sint#cticos, sus rmulas ienormadas pueden no ser m#s 2ue cadenas de smolossin ning6nsignifcado.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    13/70

    completo). El int:rprete elimina la necesidad de reali4ar una compilacindespu:s de cada modifcacin del programa cuando se 2uiere agregarunciones o corregir errores; pero es ovio 2ue un programa ojetocompilado con antelacin deer# ejecutarse con muc+a ma1or rapide4 2ueuno 2ue se dee interpretar a cada paso durante una ejecucin del cdigo.

    /a ma1ora de lenguajes de alto nivel permiten la programacinmultipropsito, sin emargo, muc+os de ellos ueron dise0ados parapermitir programacin dedicada, como lo ue el 5ascalcon las matem#ticasen su comien4o. !ami:n se +an implementado lenguajes educativosinantiles como /ogo2ue mediante una serie de simples instrucciones. En el#mito de inraestructura de internet, cae destacar a 5erlcon un poderososistema de procesamiento de te3to 1 una enorme coleccin de mdulos.

    Paradigmas/os programas se pueden clasifcar por el paradigmadel lenguaje 2ue seuse para producirlos. /os principales paradigmas sonD imperativos,

    declarativos1 orientacin a ojetos.

    /os programas 2ue usan un lenguaje imperativo especifcan un algoritmo,usan declaraciones, e3presiones 1 sentencias.B= contiene el valor O.inalmente, una sentencia dee asignar una e3presin a una variale o usarel valor de una variale para alterar el ujo de un programa, por ejemploD3 D > T >; i 3 O t+en +a4Yalgo();.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    14/70

    El lenguaje m#2uina es el 6nico 2ue entiende directamente la computadora,1a 2ue est# escrito en lenguajes directamente inteligiles por la m#2uina(computadora), utili4a el alaeto inario, 2ue consta de los dos 6nicossmolos 8 1 7, denominados its (areviatura inglesa de dgitos inarios).$us instrucciones son cadenas inarias (cadenas o series de caracteres dedgitos 8 1 7) 2ue especifcan una operacin 1, las posiciones (direccin) dememoria implicadas en la operacin se denominan instrucciones dem#2uina o cdigo ma2uina. ue el primer lenguaje utili4ado en laprogramacin de computadoras, pero dejo de utili4arse por su difcultad 1complicacin, siendo sustituido por otros lenguajes m#s #ciles de aprender1 utili4ar, 2ue adem#s reducen la posiilidad de cometer errores. El lenguajem#2uina es el conocido cdigo inario. ?eneralmente, en la codifcacin delos programas se empleaa el sistema +e3adecimal para simplifcar eltraajo de escritura. !odas las instrucciones preparadas en cual2uierlenguaje m#2uina tienen por lo menos dos partes. /a primera es el comandou operacin, 2ue dice a las computadoras cual es la uncin 2ue va areali4ar. !odas las computadoras tienen un cdigo de operacin para cada

    una de las unciones. /a segunda parte de la instruccin es el operando, 2ueindica a la computadora donde +allar o almacenar los datos 1 otrasinstrucciones 2ue se van a manipular, el n6mero de oper#ndoos de unainstruccin varia en distintas computadoras.

    entajas del lenguaje m#2uinaD posiilidad de cargar (transerir unprograma a la memoria) sin necesidad de traduccin posterior, lo 2uesupone una velocidad de ejecucin superior a cual2uier otro lenguaje deprogramacin.

    'esventajas del lenguaje m#2uinaD difcultad 1 lentitud en la codifcacin.5oca failidad. ?ran difcultad para verifcar 1 poner a punto los programas./os programas solo son ejecutales en el mismo procesador (C5

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    15/70

    "tro ejemplo de lenguaje de m4uinaes el siguienteDEl segmento de cdigo en lenguaje.a"aesD

    int counter 8;

    counter counter T 7;podra ser trasladado en lenguaje de m#2uina como

    888787888788878887888788887888787878777778888887778787888777778888788878888878787878

    L+),-%.+S *+ 7%.( )&8+L3

    $on m#s #ciles de utili4ar 2ue los lenguajes m#2uina, pero al igual 2ueellos, dependen de la m#2uina en particular. El lenguaje de ajo nivel por

    e3celencia es el ensamlador. El lenguaje ensamlador es el primer intentode sustituir el lenguaje ma2uina por otro m#s similar a los utili4ados por laspersonas. Este intenta dese3iili4ar la representacin de los dierentescampos. Esa e3iilidad se consigue no escriiendo los campos en inario 1apro3imando la escritura al lenguaje. A principios de la d:cada de los G8 1con el fn de acilitar la laor de los programadores, se desarrollaron cdigosmnemot:cnicos para las operaciones 1 direcciones simlicas. /os cdigosmnemot:cnicas son los smolos ala:ticos del lenguaje ma2uina. /acomputadora sigue utili4ando el lenguaje m#2uina para procesar los datos,pero los programas ensamladores traducen antes los smolos de cdigode operacin especifcados a sus e2uivalentes en el lenguaje ma2uina. En laactualidad los programadores no asignan n6meros de direccin reales a los

    datos simlicos, simplemente especifcan donde 2uieren 2ue se colo2ue laprimera localidad del programa 1 el programa ensamlador se encarga de lodem#s, asigna localidades tanto para las instrucciones como los datos.Estos programas de ensamle o ensamladores tami:n permiten a lacomputadora convertir las instrucciones en lenguaje ensamlador delprogramador en su propio cdigo ma2uina.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    16/70

    cdigo m#2uina es dando a cada instruccin un mnemnico, como porejemplo $!"%E, A'' o N

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    17/70

    procesador. $i se lleva el programa a otra m#2uina se dee reescriir elprograma desde el principio.

    Lenguaje ensam$lador 9le:3

    Este intenta dee3iili4ar la representacin de los dierentes campos, esae3iilidad se consigue no escriiendo los campos en inario 1 apro3imandola escritura al lenguaje

    L+),-%.+S *+ %L#( )&8+L3

    Estos lenguajes son los m#s utili4ados por los programadores. Est#ndise0ados para 2ue las personas escrian 1 entiendan los programas de unmodo muc+o m#s #cil 2ue los lenguajes m#2uina 1 ensamlador.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    18/70

    leer de una orma m#s sencilla, eliminando muc+as de las posiilidades decometer errores 2ue se daan en el lenguaje ma2uina, 1a 2ue se utili4anpalaras (en ingl:s) en lugar de cadenas de smolos sin ning6n signifcadoaparente.

    ncluir rutinas de uso recuente, como las de entrada salida, uncionesmatem#ticas, manejo de talas, etc., 2ue fguran en una especie de lireradel lenguaje, de manera 2ue se puedan utili4ar siempre 2ue se 2uiera sinnecesidad de programarlas cada ve4.

    entajas de los lenguajes de alto nivelD el tiempo de ormacin de losprogramadores es relativamente corto comparado con otros lenguajes. /aescritura de programas se asa en reglas sint#cticas similares a loslenguajes +umanos, nomres de las instrucciones tales como %EA', %!E,5%@!, "5E@, etc. /as modifcaciones 1 puestas a punto de los programasson m#s #ciles. %educcin del costo de los programas. !ransportailidad.5ermiten tener una mejor documentacin. $on m#s #ciles de mantener.

    5or lo general se piensa 2ue los ordenadores son m#2uinas 2ue reali4antareas de c#lculos o procesamiento de te3tos. /a descripcin anterior esslo una orma mu1 es2uem#tica de ver una computadora. Fa1 un alto nivelde astraccin entre lo 2ue se pide a la computadora 1 lo 2ue realmentecomprende. E3iste tami:n una relacin compleja entre los lenguajes dealto nivel 1 el cdigo m#2uina.

    /os lenguajes de alto nivel son normalmente #ciles de aprender por2ueest#n ormados por elementos de lenguajes naturales, como el ingl:s. En9A$C, el lenguaje de alto nivel m#s conocido, los comandos como K

    C"@!A'"% 78 !FE@ $!"5K pueden utili4arse para pedir a la computadora2ue pare si C"@!A'"% es igual a 78. 5or desgracia para muc+as personasesta orma de traajar es un poco rustrante, dado 2ue a pesar de 2ue lascomputadoras parecen comprender un lenguaje natural, lo +acen enrealidad de una orma rgida 1 sistem#tica.

    'esventajas de los lenguajes de alto nivelD incremento del tiempo de puestaa punto al necesitarse dierentes traducciones del programa uente paraconseguir el programa defnitivo. @o se aprovec+an los recursos internos dela ma2uina 2ue se e3plotan muc+o mejor en lenguajes m#2uina 1ensamladores. Aumento de la ocupacin de memoria. El tiempo deejecucin de los programas es muc+o ma1or.

    $e puede decir 2ue el principal prolema 2ue presentan los lenguajes dealto nivel es la gran cantidad de ellos 2ue e3isten actualmente en uso,adem#s de las dierentes versiones o dialectos 2ue se +an desarrollado dealgunos de ellos. Es dicil estalecer una clasifcacin general de losmismos, 1a 2ue en cual2uiera 2ue se realice +ar# lenguajes 2uepertene4can a m#s de uno de los grupos estalecidos.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    19/70

    Lenguajes imperati"os.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    20/70

    /as caractersticas undamentales 2ue dee cumplir todo algoritmo sonD .-"rdenamiento por $eleccin

    Este algoritmo tami:n es sencillo. Consiste en lo siguienteD

    9uscas el elemento m#s pe2ue0o de la lista. /o intercamias con el elemento uicado en la primera posicin de la lista. 9uscas el segundo elemento m#s pe2ue0o de la lista. /o intercamias con el elemento 2ue ocupa la segunda posicin en la lista. %epites este proceso +asta 2ue +a1as ordenado toda la lista.

    entajasD #cil implementacin. @o re2uiere memoria adicional. %eali4a pocos intercamios. %endimiento constanteD poca dierencia entre el peor 1 el mejor caso.

    'esventajasD

    /ento. %eali4a numerosas comparaciones.

    =.-"rdenamiento por nsercin

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    21/70

    En este tipo de algoritmo los elementos 2ue van a ser ordenados sonconsiderados uno a la ve4. Cada elemento es @$E%!A'" en la posicinapropiada con respecto al resto de los elementos 1a ordenados.

    entajasD #cil implementacin. %e2uerimientos mnimos de memoria.

    'esventajasD /ento. %eali4a numerosas comparaciones.Este tami:n es un algoritmo lento, pero puede ser de utilidad para listas2ue est#n ordenadas o semiordenadas, por2ue en ese caso reali4a mu1pocos despla4amientos.

    O.-"rdenamiento %#pido (QuicLsort)

    Esta es proalemente la t:cnica m#s r#pida conocida. ue desarrollada porC.A.%. Foare en 7MH8. El algoritmo original es recursivo, pero se utili4anversiones iterativas para mejorar su rendimiento (los algoritmos recursivosson en general m#s lentos 2ue los iterativos, 1 consumen m#s recursos). Elalgoritmo undamental es el siguienteD Eliges un elemento de la lista. 9uscas la posicin 2ue le corresponde en la lista ordenada. Acomodas los elementos de la lista a cada lado del elemento de divisin,de manera 2ue a un lado 2ueden todos los menores 2ue :l 1 al otro losma1ores . En este momento el elemento de divisin separa la lista en dossulistas.

    %eali4as esto de orma recursiva para cada sulista mientras :stas tenganun largo ma1or 2ue 7.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    22/70

    @o re2uiere memoria adicional.

    'esventajasD mplementacin un poco m#s complicada. %ecursividad (utili4a muc+os recursos). &uc+a dierencia entre el peor 1 el mejor caso.

    /os diagramas de ujosirven para representar algoritmos de maneragr#fca.

    PS+-*(C(*(,&C(

    El pseudocdigo (also lenguaje) es com6nmente utili4ado por losprogramadores para omitir secciones de cdigo o para dar una e3plicacindel paradigma 2ue tom el mismo programador para +acer sus cdigos esto2uiere decir 2ue el pseudocdigo no es programale sino acilita laprogramacin.

    El principal ojetivo del pseudocdigo es el de representar la solucin a unalgoritmo de la orma m#s detallada posile, 1 a su ve4 lo m#s parecidaposile al lenguaje 2ue posteriormente se utili4ara para la codifcacin delmismo.

    Caractersticas 1 partes/as principales caractersticas de este lenguaje sonD

    7. $e puede ejecutar en un ordenador

    >. Es una orma de representacin sencilla de utili4ar 1 de manipular.

    http://es.wikipedia.org/wiki/Diagramas_de_flujohttp://es.wikipedia.org/wiki/Diagramas_de_flujo
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    23/70

    =. acilita el paso del programa al lenguaje de programacin.

    O. Es independiente del lenguaje de programacin 2ue se va1a a utili4ar.

    G. Es un m:todo 2ue acilita la programacin 1 solucin al algoritmo del

    programa.!odo documento en pseudocdigo dee permitir la descripcin deD

    7. nstrucciones primitivas.

    >. nstrucciones de proceso.

    =. nstrucciones de control.

    O. nstrucciones compuestas.

    G. nstrucciones de descripcin.

    Estructura a seguir en su reali4acinD

    7. Caecera.

    7. 5rograma.

    >. &odulo.

    =. !ipos de datos.

    O. Constantes.

    G. ariales.

    >. Cuerpo.

    7. nicio.

    >. nstrucciones.

    =. in.

    'efnicin de datos del pseudocdigo/a defnicin de datos se da por supuesta, sore todo en las varialessencillas, si se emplea ormacionesD pilas, colas, vectores o registros, sepueden defnir en la caecera del algoritmo, 1 naturalmente cuandoempleemos el pseudocdigo para defnir estructuras de datos, esta parte ladesarrollaremos adecuadamente.

    'unciones y operaciones

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    24/70

    Cada autor usa su propio pseudocdigo con sus respectivas convenciones.5or ejemplo, la instruccin Kreemplace el valor de la varialexpor el valorde la variale#K puede ser representado comoD

    asigne a el "alor de

    /as operaciones aritm:ticas se representan de la orma usual enmatem#ticas.

    +jemplos de Pseudocdigo

    +jemplo3 /eali

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    25/70

    +jemplo3 /ealimero es mayor= menor o igual a

    cero.

    5rogramaD Compara@6meros EntornoD @

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    26/70

    . $eparar la solucin lgica de programacin de la parte de reglas 1sinta3is de codifcacincon esta divisin del traajo se otiene ma1orefciencia.

    c. 'ar una visin completa del prolema al programador 1a 2ue pierde

    en un programa1a codifcado.d. 5ermitir una compresin m#s r#pida del programa a otros

    programadores.

    !5"$ 'E 'A?%A&A 'E /

    http://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos11/veref/veref.shtmlhttp://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos15/computadoras/computadoras.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos36/signos-simbolos/signos-simbolos.shtmlhttp://monografias.com/trabajos10/anali/anali.shtmlhttp://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos.shtmlhttp://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos2.shtmlhttp://www.monografias.com/trabajos37/codificacion/codificacion.shtmlhttp://www.monografias.com/trabajos11/veref/veref.shtmlhttp://www.monografias.com/Computacion/Programacion/http://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos11/tebas/tebas.shtmlhttp://www.monografias.com/trabajos15/computadoras/computadoras.shtmlhttp://www.monografias.com/trabajos11/teosis/teosis.shtmlhttp://www.monografias.com/trabajos36/signos-simbolos/signos-simbolos.shtmlhttp://monografias.com/trabajos10/anali/anali.shtmlhttp://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos.shtmlhttp://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos2.shtml
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    27/70

    `Q

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    28/70

    %lmacn

    #erminador

    P/(C+S(3

    El primer componente de diagrama de ujo de datos se conoce como5roceso. El proceso nuestra una parte del sistema2ue transorman Entradas1 $alidas. Algunas analistas preferen usar un ovalo o un rect#ngulo cones2uinas redondeadas, otros preferen usar un rect#ngulo. /as dierenciasentre estas tres ormas son puramente cosm:ticas, aun2ue oviamente esimportante usar la misma orma de la manera consistente para representartodas las uncionesde un sistema.

    'L-.(3

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    29/70

    %L0%C)3

    $e utili4a para modelar una coleccin de pa2uetes de datos en reposo. $edenota por dos lneas paralelas, de modo caracterstico el nomre 2ue seutili4a para identifcar para los pa2uetes 2ue entran 1 salen del almac:npormediosde ujo.

    P+*&*(S3

    5ara el analista con conocimientode proceso de datos es tentador reerirsea los almacenescomo arc+ivoso ases de datos; pro un almac:n tami:npudiera consistir en datos almacenados tami:n pudiera consistir en datosalmacenados en tarjetasperoradas, microflm, microfc+as, discos pticos,etc. 1 un almac:n tami:n puede ser en conjuntode fc+asde papel en unacaja de cartn , nomres de fc+as de papel en un directorio, diversosarc+ivos en un arc+ivero, o varias ormas no computari4adas.

    /os almacenes se conectan por ujos a los procesos. As el conte3toen el2ue se muestraen un '' ('iagrama de lujo de 'atos) es uno de lossiguientesD

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    30/70

    de la misma compa0a u organi4acin, pero uera del controldel sistema2ue se esta modelando. En algunos casos, un terminador puede ser otrosistema, como alg6n otro sistema computacional con el cual se comunicaeste.

    E3isten tres cosas importantes 2ue deemos recordar acerca de losterminadores.

    $on e3ternos al sistema 2ue se esta modelando.

    Es evidente 2ue ni el analista ni el dise0ador del sistema est#n enposiilidades de camiar los contenidos de un terminador o la maneraen 2ue esta traaja.

    /as relaciones 2ue e3isten entre lo terminadores no se muestran en elmodelo'' ('iagrama de lujo de 'atos).

    %E?/A$ 5A%A /A C%EAC@ 'E 'A?%A&A$

    7. /os diagramas de ujo deen escriirse de arria +acia aajo 1o de42uierda a derec+a.

    >. /os smolos se unen con lneas, las cuales tienen en la punta unaec+a 2ue indica su direccin 2ue u1e la inormacin procesos, sedeen utili4ar solamente lneas de ujo +ori4ontal o vertical (nuncadiagonales).

    =. $e dee evitar el cruce de lneas, para lo cual se 2uisiera separar el

    ujo del diagrama a un sitio distinto, se pudiera reali4ar utili4ando losconectores, se dee tener en cuenta 2ue solo se van a utili4arconectores cuando sean estrictamente necesario.

    O. @o deen 2uedar lneas de ujo sin conectar.

    G. !odo te3toescrito dentro de un smolo dee ser legile, preciso,evitando el uso de muc+as palaras.

    H. !odos los smolos pueden tener mas de una lnea de entrada, ae3cepto del smolo fnal.

    http://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtmlhttp://www.monografias.com/trabajos13/libapren/libapren.shtmlhttp://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos/adolmodin/adolmodin.shtmlhttp://www.monografias.com/trabajos13/libapren/libapren.shtml
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    31/70

    I. $olo los smolos de decisin pueden 1 deen tener mas de una lneade ujo de salida.

    Ejemplo de 'iagrama de lujoD

    'iagrama de ujo 2ue encuentra la suma de los primeros G8 n6merosnaturales.

    El 2uinto lo2ue es un smolo de suma de decisiones 1ramifcaciones lo 2 +a1 dentro del lo2ue es una pregunta 2ue se le+ace a las valores 2ue actualmente inclu1en en el proceso.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    32/70

    `Es @G8U, oviamente la respuesta es @o, 1a 2ue @ todava es 7.5or lo 2ueel ujo de nuestro programa se dirigir# +acia la parte en donde se oservala palara @o. !ercer lo2ue, este le sumara7 (@@T7) 1 vuelve a llegar aeste lo2ue, donde preguntar# `es @G8U @o todava es > +a pues regresa

    al tercer lo2ue 1 vuelve +acer lo mismo as la suma los primeros G8n6meros naturales.

    5or ultimo indicaciones 2ue le resultado ser# mostrado en laimpresora.

    E\5/CAC@ 'E/ 'A?%A&A 'E /

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    33/70

    !ercer lo2ue, es tami:n un smolo de procesos.

    En este paso se incrementa en 7 la variale @(@@T7), por lo 2ue en laprimera pasada esta valdr# 7, 1a 2ue estaa iniciali4ada en 8.

    Cuarto lo2ue, es e3actamente lo mismo 2ue el anterior.

    5ero en este, 1a se agrega el valorde @ a la variale 2ue contendr# la suma(en el primer caso contendr# 7, 1a 2ue @7).

    E@!ANA$ 'E/ E@"Q

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    34/70

    S&,)&'&C%*( *+ L(S S@07(L(S *+ 'L-.(

    El cuadrado dole es representado 1 usado para una actividad e3terna (otrodepartamento, un negocio, una persona, o una ma2uina) 2ue puedan enviardatos 1 reciirlas del sistema. /a entidad e3terna es llamada una uente dedestino de datos 1 es considerada e3terna al estudio, cada entidad e3ternaes eti2uetada con un nomre adecuado. /a ec+a muestra el movimientode datos de un punto a otro , esta se0alada +acia suceden simult#neamentepueden ser representadas simplemente mediante el uso de ec+asparalelas, deido a 2ue una ec+a representada datos acerca de unapersona lugar o casa, tami:n D'ee ser descrita con un nomre.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    35/70

    $on diagramas e3plcitos 1 comprensiles.

    'an la posiilidad de representan el sistema a dierentes niveles decomplejidad, desde lo mas gloal a lo mas detallado solo re2uieren deO smolos.

    $on #cil de mantenimiento, pues los camios aectan solo algunos desus elementos 1 no al todo.

    C-2L+S S( L%S 8+)#%.%S *+ L(S *&%,/%0%S *+ 'L-.( *+*%#(S?

    #cil lectura, con esto se constitu1e en un instrumento de muc+aversatilidad.

    acilitan la interaccin

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    36/70

    'eido a 2ue las variales contienen o apuntan a valores de tiposdeterminados, las operaciones sore las mismas 1 el dominio de sus propiosvalores est#n determinadas por el tipo de datos en cuestin. Algunos tiposde datos usadosD

    !ipo de dato lgico. !ipo de dato entero.

    !ipo de dato de coma otante(real, con decimales).

    !ipo de dato car#cter.

    !ipo de dato cadena

    ariales 1 paso de par#metros a sualgoritmos

    /as variales pueden ser intercamiadas entre rutinas, por valor 1 porreerenciaD

    5or valor.- $e copia el valor (el dato) de la variale en la 4ona de lapila de llamadasde #mito local 2ue corresponde a la nuevasurutina llamada. 5or tanto, esta surutina otiene dic+o valor perono puede modifcar la variale original. Esto signifca 2ue si lavariale sure alteraciones dentro de esta rutina, para poder accedera dic+as modifcaciones al fnali4ar, deer# devolver el nuevo valor dela misma. $i no se reali4a esta operacin, el valor de la variale ser#e3actamente el mismo 2ue tena antes de pasar por la uncin.

    5or reerencia.- @o se pasa el valor directamente de la variale, si nouna reerencia o punteroa la misma 2ue contiene la direccin de la4ona de memoria donde se aloja el contenido, de tal modo 2ue seopera directamente sore la 4ona de memoria 2ue la contiene, lo cualimplica 2ue las modifcaciones 2ue sura ser#n accesiles a posteriori.

    Almacenamiento de variales en memoria/as variales se representan con identifcadores 2ue +acen reerencia a unlugar de la memoria del programa en donde se almacena un dato.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    37/70

    Smito%especto al m$itode una variale, :ste puede serD

    LocalD Cuando la misma slo es accesile desde un 6nicoprocedimiento +ijo, no pudiendo ser leda o modifcada desde otro

    procedimiento +ermano o desde el propio procedimiento padre. Esposile declarar variales en lo2ues de condicin, ucles, etc de talmodo 2ue slo pueda accederse a ellas en el propio lo2ue.

    ,lo$alD Cuando la misma es accesile tanto desde rutinas o macrosde la aplicacin, como en todos los procedimientos 1 unciones de lamisma.

    $i ien es cierto, 2ue de una orma #sica, se puede defnir el #mito de lasvariales de la orma e3puesta m#s arria, e3isten grados de globalidaddelas mismas, pudiendo ser accesiles desde unos puntos u otros, o inclusopudiendo ser accesiles entre aplicaciones distintas, llegando al caso de lasuperglobalidad. Ejemplo del #mito de una variale en el lenguaje deprogramacinNava.

    pulic class A pulic nteger numeroEntero ne* nteger(); X ariale ?loal a todoslos &:todos X

    pulic nteger metodo() int num 7; ariale /ocal a metodo. 5uede accederse dentro deeste m:todo en cual2uier parte, pero no uera del mismo. or (int i 8;iVnumeroEntero.intalue();iTT) i es local al ucle or,

    slo puede ser accedida dentro del mismo. num X i; i >; Esta lnea provocara error al no +aer declarado la variale i. iue defnida localmente al ucle or. return nteger.value"(num);

    pulic void otro&etodo() int num 7; ariale local a otro&etodo. num a2u es una varialedistinta a la variale num de metodo $1stem.out.println(Kariale local numD K T num);

    $a# %ue tener en cuenta %ue en &ava el caso de las variables globalesa todos los mtodos %ue se encuentran en una clase, es algo peculiar,

    #a %ue estas realmente son atributos%ue denen un objeto de unaclase determinada, en este caso la clase tiene un atributo llamadonumero'ntero" 'l atributo es un concepto %ue dene a un objeto deuna clase determinada, mientras %ue una variable sirve de apo#o alos procedimientos # no dene conceptualmente objetos"

    Ejemplo

    http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Javahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    38/70

    a D G

    A2u tenemos dos variales, KaK 1 KK 2ue almacenan valores num:ricos

    enteros (int). /a variale KaK almacena primero el n6mero 7, luego KKalmacena el numero 2ue tiene KaK m#s >, por lo tanto KK almacena un =.inalmente el valor de KaK es reempla4ado por un =, por lo tanto lasvariales contendr#n estos datos al fnalDa G =ConstanteEn programacin, una constante es un valor 2ue no puede ser alteradodurante la ejecucin de un programa.

    H

    int main() print(K5i vale hK, 5);

    http://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/C%2B%2Bhttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Chttp://es.wikipedia.org/wiki/C%2B%2B
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    39/70

    return 8; /o cual mostrar# por pantallaD

    5i vale =.7O7GM>H

    Es decir, P& es una constante a la 2ue le +emos asignado el valorB5DEFGmediante la directiva Ade;ne.

    /a directiva Ade;netami:n se puede utili4ar para defnir e3presiones m#selaoradas con operadores (suma, resta, multiplicacin etc) 1 otrasconstantes 2ue +a1an sido defnidas previamente, por ejemploD

    Zdefne \ >.O Zdefne M.> Zdefne P \ T

    !ipo de dato

    En los lenguajes de programacinun tipo de datoes un atriuto de unaparte de los datos 2ue indica al ordenador (1o al programador) algo sorela clase de datos sore los 2ue se va a procesar. Esto inclu1e imponerrestricciones en los datos, como 2u: valores pueden tomar 1 2u:operaciones se pueden reali4ar. !ipos de datos comunes sonD enteros,n6meros de coma otante (decimales), cadenas alanum:ricas, ec+as,+oras, colores, coc+es o cual2uier cosa 2ue se nos ocurra. 5or ejemplo, en

    Nava, el tipo KintK representa un conjunto de enteros de => its cu1o rangova desde el ->.7OI.OJ=.HOJ al >.7OI.OJ=.HOI, as como las operaciones 2uese pueden reali4ar con los enteros, como la suma, resta 1 multiplicacin. /oscolores, por otra parte, se representan como tres 1tes denotando la

    cantidad de rojo, verde 1 a4ul, 1 una cadena de caracteres representando elnomre del color; las operaciones permitidas inclu1en la adicin 1sustraccin, pero no la multiplicacin.

    ]ste es un concepto propio de la inorm#tica, m#s especfcamente de loslenguajes de programacin, aun2ue tami:n se encuentra relacionado connociones similares de las matem#ticas1 la lgica.

    En un sentido amplio, un tipo de datos defne un conjunto de valores 1 lasoperaciones sore estos valores.B7Casi todos los lenguajes de programacine3plcitamente inclu1en la notacin del tipo de datos, aun2ue lenguajesdierentes pueden usar terminologa dierente. /a ma1or parte de los

    lenguajes de programacin permiten al programador defnir tipos de datosadicionales, normalmente cominando m6ltiples elementos de otros tipos 1defniendo las operaciones del nuevo tipo de dato. 5or ejemplo, unprogramador puede crear un nuevo tipo de dato llamado K5ersonaK 2ueespecifca 2ue el dato interpretado como 5ersona incluir# un nomre 1 unaec+a de nacimiento.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    40/70

    !ipos de datos m#2uina!odos los datos en los ordenadores asados en la electrnica digital serepresentan como its(valores 8 1 7) en el nivel m#s ajo. /a m#s pe2ue0aunidad direccionale de datos es un grupo de its llamado un 1te(normalmente un octeto, 2ue son J its). /a unidad procesada por lasinstrucciones del cdigo m#2uina se le llama una palara (en >88H,normalmente => o HO its). /a ma1or parte de las instrucciones interpretanla palara como un n6mero inario, como por ejemplo una palara de =>its puede representar valores enteros sin signo desde el 8 al >=> 7 ovalores enteros con signo desde >=7 al >=7 7. 5or medio delcomplemento a dos, la ma1or parte del tiempo, el lenguaje m#2uina 1 lapropia m#2uina no necesitan distinguir entre tipos de datos con o sin signo.

    E3iste un especfco conjunto de instrucciones aritm:ticas 2ue usa unadierente interpretacin de los its de una palara como n6mero en comaotante.

    !ipos de datos primitivo/os tipos de datos +acen reerencia al tipo de inormacin 2ue se traaja,donde la unidad mnima de almacenamiento es el dato, tami:n se puedeconsiderar como el rango de valores 2ue puede tomar una variale durantela ejecucin del programa.

    'A!"$ 5%&!"$D

    X CA%AC!E% X@

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    41/70

    tipo de datoD 1te tama0o J its tipo de datoD s+ort tama0o 7H its tipo de datoD int tama0o => its tipo de datoD long tama0o HO its%ealesD estos caracteres almacenan numeros mu1 grandes 2ue poseenparte entera 1 parte decimal.

    tipo de datoD oat => itstipo de datoD doule HO its

    7((L+%)(S

    Este tipo de dato se emplea para valores lgicos, los podemos defnir comodatos comparativos dic+a comparacin devuelve resultados lgicos.

    tipo de datoD oolean %ango true - alse!ipos simples

    rtculo principal( )ipos simples

    !ipo "rdinal

    o !ipos predefnidos

    !ipo de dato entero

    !ipo de dato car#cter

    !ipo de dato lgico

    o !ipos defnidos por el usuario

    !ipo de dato enumerado

    !ipo de dato surango

    !ipo @o "rdinal

    o !ipo de dato real

    o !ipo de dato cronolgico

    o !ipo de dato puntero

    !ipos compuestosrtculo principal( )ipos compuestosrtculo principal( )uplartculo principal( *ector +programacin

    Cadena de caracteres

    Estructura de datos

    http://es.wikipedia.org/w/index.php?title=Tipos_simples&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Tipo_Ordinal&action=edit&redlink=1http://es.wikipedia.org/wiki/Tipo_de_dato_enterohttp://es.wikipedia.org/wiki/Tipo_de_dato_car%C3%A1cterhttp://es.wikipedia.org/wiki/Tipo_de_dato_l%C3%B3gicohttp://es.wikipedia.org/w/index.php?title=Tipo_de_dato_enumerado&action=edit&redlink=1http://es.wikipedia.org/wiki/Tipo_de_dato_subrangohttp://es.wikipedia.org/wiki/Tipo_de_dato_realhttp://es.wikipedia.org/w/index.php?title=Tipo_de_dato_cronol%C3%B3gico&action=edit&redlink=1http://es.wikipedia.org/wiki/Puntero_(programaci%C3%B3n)http://es.wikipedia.org/w/index.php?title=Tipos_compuestos&action=edit&redlink=1http://es.wikipedia.org/wiki/Tuplahttp://es.wikipedia.org/wiki/Vector_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Cadena_de_caractereshttp://es.wikipedia.org/wiki/Estructura_de_datoshttp://es.wikipedia.org/w/index.php?title=Tipos_simples&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Tipo_Ordinal&action=edit&redlink=1http://es.wikipedia.org/wiki/Tipo_de_dato_enterohttp://es.wikipedia.org/wiki/Tipo_de_dato_car%C3%A1cterhttp://es.wikipedia.org/wiki/Tipo_de_dato_l%C3%B3gicohttp://es.wikipedia.org/w/index.php?title=Tipo_de_dato_enumerado&action=edit&redlink=1http://es.wikipedia.org/wiki/Tipo_de_dato_subrangohttp://es.wikipedia.org/wiki/Tipo_de_dato_realhttp://es.wikipedia.org/w/index.php?title=Tipo_de_dato_cronol%C3%B3gico&action=edit&redlink=1http://es.wikipedia.org/wiki/Puntero_(programaci%C3%B3n)http://es.wikipedia.org/w/index.php?title=Tipos_compuestos&action=edit&redlink=1http://es.wikipedia.org/wiki/Tuplahttp://es.wikipedia.org/wiki/Vector_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Cadena_de_caractereshttp://es.wikipedia.org/wiki/Estructura_de_datos
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    42/70

    "peradorEn matem#ticas, un operadores un smolo matem#tico2ue indica 2uedee ser llevada a cao una operacin especifcadaB7 sore un cierton6mero de operandos(n6mero, uncin, vector, etc.).

    5or ejemploD el operador derivada, , act6a sore la uncin 2ue seescrie a su derec+a, produciendo una nueva uncin de D

    En algunos casos un operador es una uncin2ue act6a sore uncionespara producir otras unciones.

    "peradores ilineales o ivariantes(5ara defniciones m#s estrictas sore linealidad 1 ilinealidad, v:anse lostemas relacionados)

    $u nomre depende del autor, son los operadores 2ue act6an sore dosojetos (escritos, generalmente, a amos lados del operador) produciendoun 6nico resultado. :anse los casos siguientes.

    !ipos generales de operadores

    (peradores de condicin%elacionan un t:rmino A con otro 9 estaleciendo su igualdad, jerar2ua ocual2uier otra relacin posile, como ejemplos tenemosD

    A 9estalece 2ue A es igual 2ue 9.

    En este caso +a1 2ue distinguir entre operador Ide asignacin 1 eloperador Ide comparacin. El primero toma el valor de 71 se loasigna a %; el segundo solamente compara los valores de %1 7sinmodifcarlos 1 devuelve un valor lgico o de verdad verdaderosiamos valores son iguales o falsosi dic+os valores no son iguales.

    A 9 o desigualdad.

    Este caso es justamente el opuesto al anterior, aun2ue a2u nopodemos +alar de asignacin, pero si de comparacin. A+ora elresultado de esta operacin ser# 'si los valores %1 7son iguales 1 8si son distintos.

    "peradores de ordenD estalecen o verifcan clasifcaciones entren6meros (A V 9, A W 9, etc.) u otro tipo de valores (caracteres,cadenas, ...).

    !odo tipo de dato susceptile de ser ordenado por cual2uier criterio

    puede ser comparado con estos operadores; como los anteriores

    http://es.wikipedia.org/wiki/Matem%C3%A1ticashttp://es.wikipedia.org/wiki/S%C3%ADmbolo_matem%C3%A1ticohttp://es.wikipedia.org/wiki/Operaci%C3%B3n_matem%C3%A1ticahttp://es.wikipedia.org/wiki/Operador#cite_note-0http://es.wikipedia.org/wiki/Operador#cite_note-0http://es.wikipedia.org/wiki/Operador#cite_note-0http://es.wikipedia.org/wiki/Operandohttp://es.wikipedia.org/wiki/N%C3%BAmerohttp://es.wikipedia.org/wiki/Funci%C3%B3n_(matem%C3%A1ticas)http://es.wikipedia.org/wiki/Vector_(espacio_eucl%C3%ADdeo)http://es.wikipedia.org/wiki/Derivadahttp://es.wikipedia.org/wiki/Funci%C3%B3n_(matem%C3%A1ticas)http://es.wikipedia.org/wiki/Operador#Temas_relacionadoshttp://es.wikipedia.org/wiki/Igualdad_matem%C3%A1ticahttp://es.wikipedia.org/wiki/Matem%C3%A1ticashttp://es.wikipedia.org/wiki/S%C3%ADmbolo_matem%C3%A1ticohttp://es.wikipedia.org/wiki/Operaci%C3%B3n_matem%C3%A1ticahttp://es.wikipedia.org/wiki/Operador#cite_note-0http://es.wikipedia.org/wiki/Operandohttp://es.wikipedia.org/wiki/N%C3%BAmerohttp://es.wikipedia.org/wiki/Funci%C3%B3n_(matem%C3%A1ticas)http://es.wikipedia.org/wiki/Vector_(espacio_eucl%C3%ADdeo)http://es.wikipedia.org/wiki/Derivadahttp://es.wikipedia.org/wiki/Funci%C3%B3n_(matem%C3%A1ticas)http://es.wikipedia.org/wiki/Operador#Temas_relacionadoshttp://es.wikipedia.org/wiki/Igualdad_matem%C3%A1tica
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    43/70

    devuelven un valor de verdad en uncin del resultado 2ue tenga lacomparacin en cada caso.

    A W 9 'evuelve 8si %es estrictamente ma1or 2ue 71 'encaso contrario

    A V 9 'evuelve 8si %es estrictamente menor 2ue 71 'encaso contrario

    A 9 'evuelve 8si %es ma1or o igual 2ue 71 'en casocontrario

    A 9 'evuelve 8si %es menor o igual 2ue 71 'en casocontrario

    "tros operadores relacionales menos usuales son los llamadosoperadores geom:tricosD paralelismo(A RR 9), perpendicularidad1otros

    Operadores lgicos/os operadores lgicos producen un resultado $ooleano, 1 sus operandosson tami:n valores lgicos o asimilales a ellos (los valores num:ricos sonasimilados a ciertoo alsoseg6n su valor sea cero o distinto de cero). 5orcontra, recuerde 2ue las operaciones entre its producen valores aritrarios.

    /os operadores lgicos son tres; dos de ellos son inarios, el 6ltimo(negacin) es unario. !ienen una dole posiilidad de representacin en elEst#ndar CTT actualD la representacin tradicional 2ue se indica a

    continuacin, 1 la naturalintroducida recientemente 2ue se detalla m#sadelante .

    J lgico KK A@'

    ( lgico "%

    )egacin lgica M @"!

    /as e3presiones conectadas con los operadores KK 1 se eval6an dei42uierda a derec+a, 1 la evaluacin se detiene tan pronto como el resultado

    verdadero o also es conocido (muc+os programas tienen una lgica 2ue seasa en este propiedad).

    > "perador lgico!ami:n denominado por su nomre en ingl:s (generalmente enma16sculas) A@' lgico. 'evuelve un valor lgico truesi amos operandosson ciertos. En caso contrario el resultado es alse.

    -intaxise3pr-A@'-logica KKe3presion-"%-inclusive

    ComentarioD

    http://es.wikipedia.org/wiki/Paralelismohttp://es.wikipedia.org/wiki/Perpendicularidadhttp://es.wikipedia.org/wiki/Paralelismohttp://es.wikipedia.org/wiki/Perpendicularidad
  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    44/70

    /a operatoria es como sigueD El primer operando (de la i42uierda) esconvertido a $ool. 5ara ello, si es una e3presin, se eval6a para otener elresultado (esta computacin puede tener ciertos eectos laterales). Acontinuacin, el valor otenido es convertido a $oolciertoalso siguiendolas reglas de conversin est#ndar. $i el resultado es alse, el proceso sedetiene 1 este es el resultado, sin 2ue en este caso sea necesario evaluar lae3presin de la derec+a (recu:rdese 2ue en el dise0o de CTT prima lavelocidad).

    $i el resultado del operando i42uierdo es cierto, se contin6a con laevaluacin de la e3presin de la derec+a, 2ue tami:n es convertida a $ool.$i el nuevo resultado es true, entonces el resultado del operador es true.En caso contrario el resultado es alse.

    )otaD la @orma inorma 2ue antes de ser evaluada la e3presin derec+a,+an sucedido todos los posiles eectos laterales de la e3presin i42uierda,a e3cepcin de la destruccin de los posiles ojetos temporales 2ue se

    +uiesen creado.

    EjemploD

    int mB= 8,7,>;int 3 8;i (m 3) cout VV KCierto.K;else cout VV Kalso.K;

    $alidaD

    also.

    El valor m, 2ue es interpretado como un puntero al primer elemento de lamatri4, es transormado a un $ool. Como es distinto de cero (no es unpuntero nulo) el resultado es cierto. A continuacin, el valor xes convertidotami:n a $ool. En este caso la conversin produce also, con lo 2ue este esel resultado del par:ntesis de la sentencia i.

    Ejemplo

    Zinclude Viostream.+W

    ool alto true, ajo alse, lanco true, negro alse;

    int main (void) i (alto ajo) cout VV K

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    45/70

    .7). $i elresultado es true, el proceso se detiene 1 este es el resultado, sin 2ue eneste caso sea necesario evaluar la e3presin de la derec+a (recu:rdese 2ueen el dise0o de CTT prima la velocidad).

    $i el resultado del operando i42uierdo es alse, se contin6a con laevaluacin de la e3presin de la derec+a, 2ue tami:n es convertida a $ool.$i el nuevo resultado es true, entonces el resultado del operador es true.En caso contrario el resultado es alse.

    )otaD el Est#ndar estalece 2ue antes de ser evaluada la e3presin

    derec+a, +an sucedido todos los posiles eectos laterales de la e3presini42uierda, a e3cepcin de la destruccin de los posiles ojetos temporales2ue se +uieran creado.

    Ejemplo

    Zinclude Viostream.+Wool alto true, ajo alse, lanco true, negro alse;

    int main (void) i (alto RR ajo) cout VV K

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    46/70

    O q "perador @" lgicoDEste operador es denominado tami:n negacin lgica 1 se representa en elte3to escrito por la palara inglesa @"! (otros lenguajes utili4andirectamente esta palara para representar el operador en el cdigo).

    -intaxisq e3presion-cast

    Comentario

    El operando e3presion-cast (2ue puede ser una e3presin 2ue se eval6a aun resultado es convertido a tipo $ool, con lo 2ue solo puede ser uno de losvalores ciertoalso. A continuacin el operador camia su valorD $i escierto es convertido a also 1 viceversa.

    %esulta por tanto, 2ue el resultado de este operador es siempre un tipo$ool, aun2ue al e3istir una conversin est#ndar por la 2ue un cero es

    convertido a alse, 1 cual2uier valor distinto de cero a true, colo2uialmentese dice 2ue este operador convierte un operando Nen 1 uno no-cero en N.En otras palarasD este operador devuelve cierto (true) si la e3presin seeval6a a distinto de cero, en caso contrario devuelve also (alse).

    Ejemplo

    Zinclude Viostream.+Wool alto true, ajo alse;

    int main (void)

    i (alto) cout VV K

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    47/70

    "peradores Aritm:ticosD /os operadores aritm:ticos permiten lareali4acin de operaciones

    matem#ticas con los valores (variales 1 constantes).

    /os operadores aritm:ticos pueden ser utili4ados con tipos de datosenteros o reales. $i amos son enteros, el resultado es entero; sialguno de ellos es real, el resultado es real.

    "perando ("perador).

    8alor

    (constante o variale)

    "peradores Aritm:ticos

    T $uma

    %esta

    X &ultiplicacin

    'ivisin

    &od &odulo (residuo de la divisin entera)

    EjemplosD

    E3presin %esultado

    I > =.G

    7> mod I G

    78O T > X G 7O

    P/&(/&*%* *+ L(S (P+/%*(/+S %/#&C(S

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    48/70

    !odas las e3presiones entre par:ntesis se eval6an primero. /ase3presiones con par:ntesis anidados se eval6an de dentro a uera, elpar:ntesis mas interno se eval6a primero.

    'entro de una misma e3presin los operadores se eval6an en elsiguiente orden.

    7. E3ponenciacin

    >. X, , mod &ultiplicacin, divisin, modulo.

    =. T, $uma 1 resta.

    /os operadores en una misma e3presin con igual nivel de prioridadse eval6an de i42uierda a

    derec+a.

    EjemplosD

    O T > X G 7O

    >= X > G M.> OH G M.>

    = T G X (78 (> T O)) >= = T G X (78 H) = T G X O = T >8 >=

    =.G T G.8M 7O.8 O8 G.8M =.G T G.8M =.G J.GM =.G G.8M

    >.7 X (7.G T =.8 X O.7) >J.MJ >.7 X (7.G T 7>.=) >.7 X 7=.J >J.MJ

    $&9"/"?A 'E /"$ 'A?%A&A$'E /

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    49/70

    Cada smolo normal de diagrama de ujo tiene un signifcado especial.

    Este se utili4a para representar el inicio o el fn de un algoritmo. !ami:npuede representar una parada o una interrupcin programada 2ue seanecesaria reali4ar en un programa.

    Este se utili4a para un proceso determinado, es el 2ue se utili4acom6nmente para representar una instruccin, o cual2uier tipo deoperacin 2ue origine un camio de valor.

    Este smolo es utili4ado para representar una entrada o salida deinormacin, 2ue sea procesada o registrada por medio de un peri:rico.

    Este es utili4ado para la toma de decisiones, ramifcaciones, para laindicacin de operaciones lgicas o de comparacin entre datos.

    Este es utili4ado para enla4ar dos partes cuales2uiera de un diagrama atrav:s de un conector de salida 1 un conector de entrada. Esta orma unenlace en la misma p#gina del diagrama.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    50/70

    Este es utili4ado para enla4ar dos partes de un diagrama pero 2ue no seencuentren en la misma pagina.

    Este es utili4ado para indicar la secuencia del diagrama de ujo, es decir,para indicar el sentido de las operaciones dentro del mismo.

    Este es utili4ado para representar la salida de inormacin por medio de laimpresora.

    Este es utili4ado para representar la salida o para mostrar la inormacin por

    medio del monitor o la pantalla.

    %E?/A$ 5A%A E$!%

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    51/70

    /os smolos !erminal, Conector dentro de p#gina 1 conector uera dep#gina solo pueden estar conectados al diagrama por una sola ec+a,1a 2ue por su naturale4aes imposile 2ue tenga una entrada 1 unade salida.

    /os :molos de decisin tendr#n siempre una sola ec+a de entrada1 dos o tres ec+as de salida seg6n la cantidad de alternativas 2ue sepresentan.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    52/70

    +S#/-C#-/% *+ C()#/(L S+L+C#&8% 9i:

    E3isten tres tipos de estructuras de control selectivas, estas se asanen una condicin o en una opcin para decidir la parte del programapor el 2ue pasar#.

    a. $imple )'ole o compuesta c)&6ltiple

    Selecti"a simple.- eval6a una condicin, si esta es verdaderaejecuta la accin o acciones especifcadas, si es alsa no reali4aninguna accin.

    )ota3$i e3iste sola una instruccin o sentencia dentro de la

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    53/70

    condicin no es necesario marcarlos con inicio 1 fn, en caso contrariosi, como se muestra en el diagrama anterior.

    7. 'eterminar si > n6meros son iguales o dierentes, si sondierentes determinar cu#l de los > es el ma1or.

    >. Camiar un Cauc+o desinado de un Automvil.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    54/70

    0#(*( *+ (/*+)%C&1) P(/ 7-/7-.%

    Selecti"a do$le o compuesta5- eval6a una condicin, si esta esverdadera ejecuta la accin o acciones especifcadas, si es alsaejecuta otra accin o acciones.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    55/70

    )ota3$i e3iste sola una instruccin o sentencia dentro de lacondicin no es necesario marcarlos con inicio 1 fn como en estecaso 2ue la condicin ue alsa, en caso contrario si, en este ejemplocuando la condicin ue verdadera.

    EjemploD mprimir si un n6mero es positivo o negativo

    Selecti"a anidada

    /a estructura selectiva anidada es una cadena de estructurasselectivas 2ue se conectan de la parte else de la actual con la parte ide la siguiente.

    *iagrama de Oujo3

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    56/70

    Sintaxis3

    i(condicin7) 9lo2ue 7 ;else i(condicin>) 9lo2ue > ;else 9lo2ue =;

    +jemplo3

    i(edad V > )

    Console.rite/ine(K9e:K ) ;

    else i(edad V 7>)

    Console.rite/ine(K@i0oK ) ;

    else i( edad V 7J)

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    57/70

    Console.rite/ine(KAdolescenteK ) ;

    else Console.rite/ine (K AdultoK ) ;

    Selecti"a m>ltiple

    /a estructura selectiva m6ltiple es similar a la selectiva anidada,salvo 2ue las condiciones deen ser de alguno de los tipos enteros ode tipo car#cter.

    *iagrama de Oujo3

    $inta3isD

    s*itc+(E3presin) case Cte 7D 9lo2ue 7 ; reaL;

    case Cte >D 9lo2ue > ; reaL;

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    58/70

    case Cte @D 9lo2ue @ ; reaL;deaultD 9lo2ue \ ; reaL; "pcional.

    +S#/-C#-/%S/+P+#&8%S ( C&CL(S /+P+#&8(S

    /as computadoras est#n dise0adas para a2uellas aplicaciones en lascuales una operacin o conjunto de ellas deen repetirse muc+asveces. . =.

    Estructura %epetitiva 'esde 5ara. ("%)

    Estructura %epetitiva Facer &ientras. ('" F/E)

    Estructura %epetitiva &ientras. (F/E)

    5ara poder entender cmo unciona un proceso repetitivo, se necesitaconocer el concepto de dos e3presionesD

    C()#%*(/

    En un proceso repetitivo cu1a uncin es contar los sucesos oacciones internas del ucle, como pueden ser el n6mero deiteraciones del ucle, la cantidad de elementos 2ue tiene un arc+ivo,un vector, una matri4, etc.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    59/70

    iteracin. /a orma de representar un contador esD contador contador T 7

    /a e3presin anterior se dee interpretar como asignar a la varialecontador el valor 2ue tena anteriormente m#s uno o menos uno,

    dependiendo del caso si se 2uiere incrementar o decrementar.

    @otaD En todo contador es necesario 2ue e3ista una instruccin 2ueiniciali4a la variale 2ue va a tener la uncin de contador 1 estavariale puede ser cual2uier identifcador. Ejemplo 7D Contador 2ueincrementa de uno en uno. /a variale contador va a tener la uncinde ser el contador. contador contador 7 contador T 7 7

    %C-0-L%*(/

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    60/70

    En su orma m#s tpica 1 #sica, esta estructura re2uiere una varialeentera 2ue cumple la uncin de un contador de vueltas. En la seccinindicada como ^iniciali4acin_, se suele colocar el nomre de lavariale 2ue +ar# de contador, asign#ndole a dic+a variale un valorinicial. En la seccin de ^condicin_ se coloca la condicin 2ue deer#ser verdadera para 2ue el ciclo contin6e (en caso de also el ciclo sedetendr#). fnalmente, en la seccin ^modifcacin_ se coloca una

    instruccin 2ue permite modifcar el valor de la variale 2ue +ace decontador (para permitir 2ue alguna ve4 sea alsa).

    EjemploD Queremos 2ue se repita G8 veces el lo2ue deinstrucciones. 'escriiremos el siguiente ejemplo por etapasD@otaD El smolo de la ec+a apuntando a la i42uierda ( )signifca (igual)

    7era Etapa (c7)D Cuando el ciclo comien4a antes de dar la primeravuelta, la variale de iniciali4acin toma el valor indicado en laseccin de iniciali4acin.

    *( H&L+Estructura %epetitiva Facer - &ientras

    E3isten muc+as situaciones en las 2ue se desea 2ue un ucle seejecute al menos una ve4 antes de comproar la condicin derepeticin, para ello se puede utili4ar la estructura repetitiva Facer -&ientras. Esta estructura repetitiva se utili4a cuando conocemos deantemano 2ue por lo menos una ve4 se ejecutar# el lo2ue repetitivo.Cuando una instruccin Facer-&ientras se ejecuta, lo primero 2uesucede es la ejecucin del ucle (todas las instrucciones) 1 a

    nstrucciones

    C 7, CVG8, C C T 7

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    61/70

    continuacin se eval6a la e3presin ooleana de la condicin. $i seeval6a como verdadera, el cuerpo del ucle se repite 1 se vuelve aevaluar la condicin, si sigue siendo verdadera se seguir# repitiendoel ucle +asta 2ue la condicin sea alsa. 'entro del ucle e3istir# unainstruccin 2ue en un cierto momento +ar# 2ue la condicin sea alsa.

    /a representacin gr#fca de la estructura repetitiva Facer-&ientrases la siguienteD

    verdadero

    also

    nstrucciones

    (E$)

    condicion

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    62/70

    H&L+

    Estructura %epetitiva &ientras

    El proceso de una estructura repetitiva &ientras es el siguienteD para2ue ingrese al cuerpo del ucle tiene 2ue evaluarse una condicin, si:sta es verdadera se ingresa 1 se reali4an todas las instrucciones 2ueest#n dentro del cuerpo del ucle; terminado la 6ltima instruccin se

    vuelve a comproar la condicin; se seguir# reali4ando el uclemientras la condicin siga siendo verdadera 1 si en un momento esalsa sale del ucle. Es decir, la estructura repetitiva &ientras esa2uella en 2ue el cuerpo del ucle se repite mientras se cumpla unadeterminada condicin, 1 termina cuando 1a no se cumple. $i al2uerer ingresar al cuerpo del ucle por primera ve4 1 la condicin esalsa, no ingresa al ucle, ninguna accin se reali4a 1 el algoritmoprosigue en la siguiente instruccin uera del ucle. /a representacingr#fca de la estructura repetitiva &ientras es la siguienteD

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    63/70

    also

    8ectores5

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    64/70

    +jemplos y resolucin de pro$lemas relacionados con"ectores5

    'jemplo( Facer diagrama de ujo 2ue lea e imprima un arreglo de @elementos.

    'jemplo( Facer diagrama de ujo 2ue lea un arreglo de @ elementos 12ue imprima su media aritm:tica.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    65/70

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    66/70

    'jemplo( Facer diagrama de ujo 2ue lea un vector num:rico de @elementos 1 2ue indi2ue cu#ntos de ellos son negativos.

    0atrices5

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    67/70

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    68/70

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    69/70

    'jemplo( Facer diagrama de ujo 2ue lea matri4 de dimensin @3& 1un escalar. El diagrama dee calcular e imprimir el producto escalarde amos.

  • 7/24/2019 - Que es programacin. - Que es un lenguaje de programacin. - Que es la lgica computacional. - Clasificacin d

    70/70

    +jercicios

    7.- Facer diagrama de ujo 2ue lea un vector de @ elementos 1 2ueindi2ue cu#ntos de ellos son pares.>.- Facer diagrama de ujo 2ue lea una matri4 de @ \ =. El diagrama

    dee calcular el promedio por fla e cual de tales promedios es elma1or.=.- Facer diagrama de ujo 2ue lea un vector de @ elementos 1 2ueindi2ue cu#ntos de ellos m6ltiplos de tres 1 cu#ntos m6ltiplos de G.O.- Facer un diagrama de ujo 2ue lea un vector de dimensin @ 12ue calcule la siguiente normaD

    (\7-&)>T (\7-&)

    >T...T (\@-&)>

    @orma -----------------------------------------

    @>

    'onde & es la media aritm:tica del vector."G.- Facer un diagrama de ujo 2ue lea dos matrices 1 2ue calcule suproducto.H.- Facer un diagrama de ujo 2ue lea dos matrices 1 2ue calcule susuma.I.- Facer un diagrama de ujo 2ue lea una matri4 entera dedimensin @3& 1 2ue calcule su matri4 transpuesta.J.- Facer un diagrama de ujo 2ue lea una matri4 entera dedimensin @3& 1 2ue calcule el promedio de sus elementos.M.- Facer una diagrama de ujo 2ue lea una matri4 de caracteres dedimensin @3& 1 2ue indi2ue cu#ntos de los caracteres de tal matri4

    son letras ^a_.78.- Que lea dos vectores num:ricos de dimensin @ 1 2ue indi2uecu#l de ellos tiene la ma1or media aritm:tica de sus elementos.

    E% A5A%C" &A%!@EP

    "/'E/ &A%%"Q