SOLUCIÓN DE PROBLEMAS USANDO ALGORITMOS

Embed Size (px)

Citation preview

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    1/10

    BLOQUE ISOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    1.1 Identificando alternativas de solucin de problemas

    Un problema se puede defnir como una situacin en la cual se trata de alcanzar unameta y para lograrlo se deben hallar y utilizar unos medios y unas estrategias. Lamayora de los problemas tienen algunos elementos en comn: un estado inicial; unameta, lo que se pretende lograr; un conjunto de recursos, lo que est permitido hacery!o utilizar; y un dominioel estado actual de conocimientos, habilidades y energa dequien "a a resol"erlo.

    #asi todos los problemas requieren, que quien los resuel"e, los di"ida en submetasque,cuando son dominadas $por lo regular en orden%, lle"an a alcanzar el ob&eti"o. #adadisciplina dispone de estrategias especfcas para resol"er problemas de su mbito; pore&emplo, resol"er problemas matemticos implica utilizar estrategias propias de las

    matemticas. 'in embargo, algunos psiclogos opinan que es posible utilizar con ()itoestrategias generales, tiles para resol"er problemas en muchas reas. * tra"(s deltiempo, la humanidad ha utilizado di"ersas estrategias generales para resol"erproblemas, destacando los siguientes m(todos o estrategias de tipo general:

    Ensayo y Error:#onsiste en actuar hasta que algo +uncione. uede tomar muchotiempo y no es seguro que se llegue a una solucin. -s una estrategia apropiadacuando las soluciones posibles son pocas y se pueden probar todas, empezandopor la que o+rece mayor probabilidad de resol"er el problema.

    Iluminacin:mplica la sbita conciencia de una solucin que sea "iable. -s muy

    utilizado el modelo de cuatro pasos +ormulado por /allas $0120%: preparacin,incubacin, iluminacin y "erifcacin. -stos cuatro momentos tambi(n se conocencomo proceso creati"o. La incubacin ayuda a 3ol"idar3 +alsas pistas, mientras queno hacer interrupciones o descansos puede hacer que la persona que trata deencontrar una solucin creati"a se estanque en estrategias inapropiadas.

    Heurstica: 'e basa en la utilizacin de reglas empricas para llegar a unasolucin. -l m(todo heurstico conocido como 45-*L6, +ormulado por 7rans+ord y'tein $0189%, incluye cinco pasos: dentifcar el problema; defnir y presentar elproblema; e)plorar las estrategias "iables; a"anzar en las estrategias; y lograr lasolucin y "ol"er para e"aluar los e+ectos de las acti"idades $7rans+ord 'tein,0189%. -l matemtico olya $01

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    2/10

    Razonamiento analgico: 'e apoya en el establecimiento de una analoga entreuna situacin que resulte +amiliar y la situacin problema. =equiere conocimientossufcientes de ambas situaciones.

    Lluvia de ideas: #onsiste en +ormular soluciones "iables a un problema. -lmodelo propuesto por >ayer $0112% plantea: defnir el problema; generar muchassoluciones $sin e"aluarlas%; decidir los criterios para estimar las soluciones

    generadas; y emplear esos criterios para seleccionar la me&or solucin. =equiereque los estudiantes no emitan &uicios con respecto a las posibles soluciones hastaque terminen de +ormularlas.

    Sistemas de produccin: 'e basa en la aplicacin de una red de secuencias decondicin y accin $*nderson, 011?%.

    ensamiento lateral: 'e apoya en el pensamiento creati"o, +ormulado por -d@arde 7ono $01

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    3/10

    5esde el punto de "ista educati"o, la solucin de problemas mediante laprogramacinde computadores posibilita la acti"acin de una amplia "ariedad de estilos deaprendiza&e. Los estudiantes pueden encontrar di"ersas maneras de abordar problemas yplantear soluciones, al tiempo que desarrollan habilidades para: "isualizar caminos derazonamiento di"ergentes, anticipar errores, y e"aluar rpidamente di+erentes escenariosmentales.

    Eumerosos autores de libros sobre programacin, plantean cuatro +ases para elaborar unprocedimiento que realice una tarea especfca. -stas +ases concuerdan con lasoperaciones mentales descritas por olya para resol"er problemas:0. *nalizar el problema $Entender el problema%2. 5iseFar un algoritmo $Trazar un plan%D. Craducir el algoritmo a un lengua&e de programacin $Ejecutar el plan%9. 5epurar el programa $=e"isar%

    #omo se puede apreciar, hay una similitud entre las metodologas propuestas parasolucionar problemas matemticos $#lements >eredith, 0112; 5az, 011D; >elo, 2??0;E*, 2??9% y las cuatro +ases para solucionar problemas especfcos de reas di"ersas,

    mediante la programacin de computadores.

    Fases para elaborar un programa de computador.

    Analizar el problema !entenderlo"Los programas de computador tienen como fnalidad resol"er problemas especfcos y elprimer paso consiste en defnir con precisin el problema hasta lograr la me&orcomprensin posible. Una +orma de realizar esta acti"idad se basa en formularclaramente el prolema, especifcar los re!ulta"o! que se desean obtener, identifcarla #nformac#$n "#!pon#le $datos%, determinar las re!tr#cc#one! y defnir los proce!o!necesarios para con"ertir los datos disponibles $materia prima% en la in+ormacin

    requerida $resultados%. -stas etapas coinciden parcialmente con los elementos generalesque, segn 'chunG $011

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    4/10

    #ormular el problemaLa solucin de un problema debe iniciar por determinar y comprender e)actamente enqu( consiste ese problema. -n programacin es +recuente que quien programa deba+ormular el problema a partir de los resultados esperados. -n esta etapa se debe haceruna representacin precisa del problema $=umbaugh, 011H%; especifcar lo ms

    e)actamente posible lo que hay que hacer $no cmo hay que hacerlo%.

    recisar los resultados esperadosara establecer los resultados que se esperan $meta% es necesario identifcar lain+ormacin rele"ante, ignorar los detalles sin importancia, entender los elementos delproblema y acti"ar el esquema correcto que permita comprenderlo en su totalidad$/ool+olG, 0111%. 5eterminar con claridad cul es el resultado fnal $producto% que debede"ol"er el programa es algo que ayuda a establecer la meta. -s necesario analizar qu(resultados se solicitan y qu( +ormato deben tener esos resultados $impresos, en pantalla,diagramacin, orden, etc%.

    Identi$car datos disponibles

    Itro aspecto muy importante en la etapa de anlisis del problema consiste en determinarcul es la in+ormacin disponible. -l estudiante debe preguntarse:JKu( in+ormacin es importanteJKu( in+ormacin no es rele"anteJ#ules son los datos de entradaJ#ul es la incgnitaJKu( in+ormacin me +alta para resol"er el problemaJuedo agrupar los datos en categoras

    %eterminar las restricciones=esulta +undamental que los estudiantes determinen aquello que est permitido oprohibido hacer y!o utilizar para llegar a una solucin. -n este punto se deben e)poner

    las necesidades y restricciones $no una propuesta de solucin%. -l estudiante debepreguntarse:JKu( condiciones me plantea el problemaJKu( est prohibido hacer y!o utilizarJKu( est permitido hacer y!o utilizarJ#ules datos puedo considerar f&os para simplifcar el problemaJ#ules datos son "ariablesJ#ules datos debo calcular

    Establecer procesos !operaciones"

    Etapas a desarrollar en la fasede anlisis de un problema

    entenderlo)

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    5/10

    #onsiste en determinar los procesos que permiten llegar a los resultados esperados apartir de los datos disponibles. -l estudiante debe preguntarse:JKu( procesos necesitoJKu( +rmulas debo emplearJ#mo a+ectan las condiciones a los procesosJKu( debo hacerJ#ul es el orden de lo que debo hacer

    -n la medida de lo posible, es aconse&able di"idir el problema original en otros mspequeFos y +ciles de solucionar $submetas%, hasta que los pasos para alcanzarlas sepuedan determinar con bastante precisin $mdulos%.

    1.3 Definicin y caractersticas de Algoritmos

    Al%or#tmo pro"iene de !o"ammed al#$"o%&rizmi, matemtico persa que "i"idurante el siglo M y alcanz gran reputacin por el enunciado de las reglas paso apaso para sumar, restar, multiplicar y di"idir nmeros decimales; la traduccin al latn

    del apellido en la palabra algorismus deri" posteriormente en algoritmo.

    Un algoritmo es un con&unto de pasos que permiten alcanzar un ob&eti"o. Los pasosdeben ser secuenciales y ordenados, es decir, deben ser e&ecutados uno despu(s de otro,en un orden defnido, teniendo un inicio y un fn.ara que un algoritmo sea completo, debe contemplar todas las alternati"as lgicasposibles que se puedan presentar. Codo lo que se ha de hacer para resol"er el problemadebe estar en +orma detallada paso a paso. * cada uno de los pasos que integran unalgoritmo, se le llama sentencia o instruccin.

    &aractersticas del AlgoritmoUn algoritmo debe tener al menos las siguientes caractersticas:

    Ser prec#!o&Las acti"idades o pasos del algoritmo deben desarrollarse en ordenestricto, ya que el desarrollo de cada paso debe seguir un orden lgico.Ser "e'n#"o&-sto quiere decir, que siempre que se e&ecute con los mismos datos,el resultado ser el mismo. Eo puede impro"isar, in"entar o adi"inar la in+ormacinque necesita para poder realizar un proceso.Ser 'n#to&-sto indica que el nmero de pasos de un algoritmo debe ser limitado,es decir, los pasos a seguir deben tener un fn.

    Codo algoritmo debe ser probado antes de ser e&ecutado para tener la certeza de que

    lograremos el ob&eti"o. La +orma de probarlo es siguiendo cada uno de los pasos queindica el algoritmo. * esto es a lo que llamaremos prueba de escritorio. -n la prueba deescritorio, un algoritmo bien hecho siempre debe +uncionar.

    -l algoritmo debe ser entendible para cualquier persona, no slo para la persona que lodiseF. 'e puede representar por medio de un diagrama de Nu&o o bien pseudocdigo. -nseudocdigo la secuencia de instrucciones se representa por medio de +rases oproposiciones, mientras que en un %iagrama de #lujo se representa por medio degrfcos.

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    6/10

    -&emplo: -laborar un algoritmo para calcular el 'rea de cual(uier tri'ngulorect'nguloy presentar el resultado en pantalla.

    PSEUDOCDIGOaso 0: nicioaso 2: *signar el nmero 2 a la constante 35i"3aso D: #onocer la base del tringulo y guardarla en la "ariable 37ase3

    aso 9: #onocer la altura del tringulo y guardarla en la "ariable 3*ltura3aso : Auardar en la "ariable 3*rea3 el "alor de multiplicar 37ase3 por 3*ltura3aso H: Auardar en la "ariable 3*rea3 el "alor de di"idir 3*rea3 entre 35i"3aso

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    7/10

    y priorizar nue"a in+ormacin. Los diagramas "isuales re"elan patrones, interrelaciones einterdependencias adems de estimular el pensamiento creati"o.

    1.4 Diagramas de lu!o

    5iagrama de Olu&o es una herramienta grfca "aliosa para la representacin esquemticade la secuencia de instrucciones de un algoritmo o de los pasos de un proceso, tambi(nes una de las t(cnicas ms utilizadas para representar grfcamente la secuencia deinstrucciones de un *lgoritmo. -stas instrucciones estn compuestas por operaciones,decisiones lgicas y ciclos repetiti"os, entre otros. La solucin de un problema puedecontener "arios con&untos de instrucciones $procedimientos o m(todos% que tienen comofnalidad e&ecutar cada uno de los procesos necesarios para llegar a la solucin de unproblema a partir de los datos disponibles $estado inicial%.

    La utilizacin de 5iagramas ayuda a los estudiantes a:

    'lari(car el pensamiento : -llos pueden "er cmo se conectan los procesos y sedan cuenta de cmo estos se pueden organizar o agrupar para darles el ordenlgico correcto

    Identi(car pasos errneos: 'obre un diagrama es ms +cil identifcar los cambiosque se requieren para el correcto +uncionamiento de un programa de computadorque hacerlo sobre el cdigo.

    Las "enta&as de diseFar un 5iagrama de Olu&o antes de empezar a generar el cdigo deun programa son, entre otras: Oorzar la identifcacin de todos los pasos de una solucin de +orma clara y lgica;

    -stablecer una "isin amplia y ob&eti"a de la solucin; Perifcar si se han tenido en cuenta todas las posibilidades; #omprobar si hay procedimientos duplicados; =epresentar grfcamente una solucin $es ms simple hacerlo con grfcas que

    mediante palabras%; Oacilitar a otras personas la comprensin de la secuencia lgica de la solucin

    planteada; osibilitar acuerdos con base en la apro)imacin comn a una solucin de un

    problema, resol"er ambigSedades o realizar me&oras; -stablecer posibles modifcaciones $resulta ms +cil depurar un programa con el

    diagrama que con el listado del cdigo%; *gilizar la codifcacin $traduccin% del algoritmo en un lengua&e de programacin;

    'er"ir como elemento de documentacin de la solucin del problema;

    "imbologa de los diagramas de flu!oLos siguientes son los principales smbolos para elaborar Diagramas de Flujo:

    In#c#o*(#nal'e utiliza para indicar el inicio y el

    fnal de un diagrama; del nicio slo

    Sal#"a en Pantallanstruccin de presentacin

    de

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    8/10

    puede salir una lnea de Nu&o y al

    Oinal slo debe llegar una lnea.

    mensa&es o resultados en

    pantalla.

    Acc#$n*Proce!o Generalndica una accin o instruccin

    general

    que debe realizar el computador

    $cambios de "alores de "ariables,asignaciones, operaciones

    aritm(ticas, etc%.

    Sal#"a Impre!andica la presentacin de

    uno o "arios resultados en

    +orma impresa.

    Entra"a por tecla"onstruccin de entrada de datos por

    teclado. ndica que el computador

    debe

    esperar a que el usuario teclee un

    dato

    que se guardar en una "ariable o

    constante.

    Llama"a a !urut#nandica la llamada a una

    subrutina o

    procedimiento determinado

    Conectorndica el enlace de dos partes de

    un

    diagrama dentro de la misma

    pgina

    Conectorndica el enlace de dos

    partes de un diagrama en

    pginas di+erentes.

    Dec#!#$nndica la comparacin de dos datos

    y

    dependiendo del resultado lgico

    $+also o "erdadero% se toma la

    decisin de seguir un camino del

    diagrama u otro

    (lu+ondica el seguimiento lgico

    del

    diagrama. Cambi(n indica el

    sentido de e&ecucin de las

    operaciones.

    1.# $eglas para la elaboracin de Diagramas de lu!o

    oner un encabezado que incluya un ttulo que identifque la +uncin del algoritmo;el nombre del autor; y la +echa de elaboracin;

    'lo se pueden utilizar smbolos estndar;

    Los diagramas se deben dibu&ar de arriba hacia aba&o y de izquierda a derecha;

    La e&ecucin del programa siempre empieza en la parte superior del diagrama;

    Los smbolos de 4nicio6 y 4Oinal6 deben aparecer solo una "ez;

    La direccin del Nu&o se debe representar por medio de Nechas $lneas de Nu&o%;

    Codas las lneas de Nu&o deben llegar a un smbolo o a otra lnea;

    Una lnea de Nu&o recta nunca debe cruzar a otra. #uando dos lneas de Nu&o secrucen, una de ellas debe incluir una lnea arqueada en el sitio donde cruza a laotra;

    'e deben inicializar las "ariables que se utilicen o permitir la asignacin de "aloresmediante consulta al usuario;

    Las bi+urcaciones y ciclos se deben dibu&ar procurando una cierta simetra;

    #ada rombo de decisin debe tener al menos dos lneas de salida $una para ' yotra para EI%;

    Codo el 5iagrama debe ser claro, ordenado y +cil de recorrer;

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    9/10

    1.% &ariables' operadores aritm(ticos' de igualdad y relacin.

    )ariables-n programacin, las ,ar#ale!son espacios de traba&o $contenedores% reser"ados paraguardar datos $"alores%. -l "alor de una Pariable puede cambiar en algn paso del*lgoritmo o permanecer in"ariable; por lo tanto, el "alor que contiene una "ariable es eldel ltimo dato asignado a (sta.

    -)isten di+erentes tipos de datos que una "ariable puede almacenar, como son:

    T#po Entero&Una "ariable de tipo entero solamente puede almacenar "alores num(ricossin punto decimal, por lo tanto, sus operaciones &ams "an a generar "alores decimales.

    T#po Real&Una "ariable de tipo real puede almacenar nmeros que tienen punto decimal

    y en sus operaciones puede generar decimales.

    T#po Car-cter&Una "ariable de tipo carcter puede almacenar "alores equi"alentes delcdigo *'# $*merican -stndar #ode +or n+ormation nterchange%. *'# es un cdigointernacional de equi"alencias internas en el sistema binario, por lo que una "ariablecarcter puede almacenar cualquier cadena de caracteres que hayan sido tecleados.

    ara asignar el "alor a una "ariable, en la mayora de los lengua&es de programacin seutiliza el signo Q $igual a%, que indica a la computadora que "a almacenar el "alor que seencuentre a la derecha del smbolo, dentro de la "ariable que se encuentre a la izquierda.Una "ariable slo puede guardar un "alor a la "ez.

    *peradores-n programacin los Iperadores son smbolos que sir"en para manipular datos. Losoperadores y las operaciones que se pueden realizar con ellos se clasifcan en:

    Ar#tm.t#co!: osibilitan las operaciones entre datos de tipo num(rico y dan comoresultado otro "alor de tipo num(rico. -&emplo: potencia $potencia%; producto $R%;di"isin $!%; suma $T%; resta $%; asignacin $Q%.

    Relac#onale!: ermiten la comparacin entre datos del mismo tipo y dan comoresultado dos "alores posibles: Perdadero o Oalso. -&emplo: igual a $Q%; menor que$V%; mayor que $W%.

    L$%#co!: osibilitan la e"aluacin lgica de dos e)presiones de tipo lgico. 5ancomo resultado uno de dos "alores posibles: Perdadero o Oalso. -&emplo: negacin$no%; con&uncin $y%; disyuncin $o%.

    -&emplo:*lgoritmo que realiza la suma de todos los nmeros pares entre 2 y 0???.

  • 7/26/2019 SOLUCIN DE PROBLEMAS USANDO ALGORITMOS

    10/10

    -l problema consiste en sumar 2 T 9 T H T 8 T 0? X T 0???. Utilizaremos las palabras'U>* y EU>-=I para representar las sumas sucesi"as. La solucin se puede escribir conel siguiente algoritmo:

    0. nicio2. -stablecer 'U>* a ?.D. -stablecer EU>-=I a 2.9. 'umar EU>-=I a 'U>*. -l resultado ser el nue"o "alor de la suma $'U>*%.

    . ncrementar EU>-=I en 2 unidades.H. 'i EU>-=I QV 0??? bi+urcar al paso 9;