CI2611 Algoritmos

Embed Size (px)

DESCRIPTION

Algoritmos y Estructuras

Citation preview

  • UNIVERSIDADSIMNBOLVARVicerrectoradoAcadmico

    1.Departamento:COMPUTACINYTECNOLOGADELAINFORMACIN

    3.Cdigodelaasignatura:CI2611

    No.deunidadescrdito:3

    No.dehorassemanales:Teora3Prctica1Laboratorio3

    4.Fechadeentradaenvigenciadeesteprograma:ApartirdeEnero2005

    2.Asignatura:ProgramadeAlgoritmosyEstructurasI

    5. OBJETIVOGENERAL:

    IntrduccinalaresolucinsistemticadeproblemasmediantealgoritmosyalosprincipiosbsicosdelaProgramacin.

    6. OBJETIVOSESPECFICOS:

    Alfinlizarelcursoelestudiantedeberconocernocionesbsicassobre:1) Especificacinformaldeproblemasmedianteprecondicinypostcondicin,utilizandoelclculodepredicadosde

    primerorden.2) ControldeComplejidadenlaresolucinalgortmicadeproblemas.UtlicizacindelDiseoDescenteytcnicasbsicas

    deDiseodeAlgoritmos.RefinamientodeDatosydeProrogramas.3) MetodologaparaladerivacinypruebadelaCorreccindeprogramas.4) EsquemasdeAlgortmosIterativos.DiseosyconstruccinyProgramasIterativos.5) NormasbsicasdeEstilodeProgramacin.6) Elestudiantedebersercapazdeleeryentenderespecificacionesdeprogramas.Entenderlametodologaquedebe

    seguirseparadesarrollarprogramascorrectos.

    Durantetodoelcursoejercitarnlasnociones:Especificacindeproblemas,Diseosdescentesdeprogramasyderivacinycorreccindeprogramas.

  • Sehacehincapienrefinanciamentosdeprogamas,aunquesdunanocinbsicaderefinaientodedatos(temaprincipaldelcursoCI2616).Lanocipndetipoabstractodedato(verlocomoclase)yobjetodeberserdadadesdeuncomienzo,ancuandosolotrabajaremosfundanentalmentelostiposbsicos,tipoarregloytipoarchivosecuencial.Sedaralanocindeencapsulamientoyocultamientodedatosenlenguajesdeporgramacinparaintroducirlanocindeclase(implementacindetiposabstractos).Lasnocionessobrederivacinycorreccindeprogramasserntratadasmsformalmentealfinaldelcurso.Enlasprimerassemanasdelcursosedesarrollarnlosprogramasdeformamsintuitiva.Sedeberndarvariassolucionesalgortmicasaunmismoproblema,mostrandolasbondadesdeunasrespectoalasotrasyresaltandoelbuenestilodelaprogramacin.

    Esrecomendablequelosestudiantesyahayanvisto,osiganenparalelo,uncursodelgicayteoradeconjuntosconelfindeestablecerlanotacinmatemticaautilizar.

    Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemaneraintuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoenclarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocindemtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleestemecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzosehagausodeestemecanismodeestructuracindeprogramas.Encuantoalostiposdedatos,estossernlostiposprimitivosdelenguajeJAVA,eltipoarchivosecuencialyltipoarreglo.Encuantoaconstructores,sedarnenelsiguienteorden:laasignacin,lasecuenciadeacciones,ProcedimientosyFunciones(comomecanismodeabstraccinproceduralenlaaplicacindeldiseodescente,pasodeparmetros:parmetrosdeentrada,salidayntradasalida.Variableslocales.Llamadasrecursivas,alfinaldelcurso),constructorescondicionales,constructoresinterativos.Enlaprimerapartedelcursoseenfatizarmselbunestilodeprogramacin,enlasegundapatresepuedeincluircriteriosdeeficienciasetrataenelcursoCI2616.

    Enlasltimassemanasdelcursoseharnfasisenderivacinformaldealgoritmosinterativos.Sedesarrollaranalgortmosutilizandotcnicasdederivacin.Larazondedarderivacinesparamostrarqueexisteunaformasistemticaapradesarrollareinclusocalcularunprogramacorrectoapartirdeunaespeificacin.

    Alfinaldelcursosdaraunabreveintroduccinaldiseodesolucionesrecursivasdeproblemas(utilizandoparaestounavariedaddeejmplosconcretos).TcnicaDivideyConquistars.Lassolucionesrecursivas,productodeaplicarlatcnicDivideyConquistaras,deberansermostradasdemaneranatural(eltratamientoformaldecorrecciny/oderivacindeprogramas recursivos no es materia de este curso). En la medida posible, se dar una solucin recursiva de ejeplosmostradosalolargodelcurso.

    Paradesarrollarlosalgoritmosenteora,seutilizarelpseudolenguajedellibroKaldewaij.EnlaboratorioseutilizarellenguajeJAVA.

    Enlaprimerapatredelcursosedeterminarnespecificacionesdeproblemasysedesarrollranlosalgortmosdemaneraintuitivaapartirdeestasespecificaciones,haciendonfacisenesquemasdealgortmosydiseodescendente.Dejandoenclarocadamomentolasaserciones(predicados)querepresentanloscambiosdeestadosdecadaaccin.Lanocindemtodos(procedimientosyfunciones)sepresentatempranoenelcurso,demaneradetenerlomastempranoposibleestemecanismodecontroldelacomplejidad,ypermitaalequipodellaboratorioelaborarproyectosdondedesdeuncomienzosehagausodeestemecanismodeestructuracindeprogramas.

  • Enlasprimerassemanasdelcursosedargradualmenteelpseudolenguajequeseutilizaraparadescribirlosalgoritmos:lasestructurasbsicasdecontrolylostiposdedatosnacesariospararesolverproblemascadavezmscomplejos.Tambinseprecisarnlaregladealcancedeidentificadoresypasodeparmetros(distinguiendoparmetrosdeentrada,salidayentradasalida).

    7.PROGRAMADESSARROLLADODETEORIA:

    1)LgicayTeoradeconjuntos(2clases.Bibliografa:GuayGries):Breveintroduccindelclculodepredicadosydelateoradeconjuntosyrelacines.Establecerlaterminologaynotacinautilizaralolargodelcurso.

    2)Problemasysusolucinmediantealgoritmos(2clases.Bibliografa:Gua):Quesunproblema?.Enunciadodeunproblema.Especificacionesinformales:inconsistencia,ambigedad,redundancia.EspecificacionesFormales.Pasosaseguirparespecificarunproblema(PrecondicinyPostcondicin:determinacindelosobjetosdedatoyderesultadoyrepresentarlasrelacionesentreestosutilizandolasoperacionessobrelosobjetos).Ejemplodeespecificacin:Dadounnmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacindeestosnmerosendas,horas,minutosysegundos.

    Pasosaseguirenlaresolucindeunproblemamediantealgoritmos(enunciado,especificacinyprocesodeabstraccin,diseo,construccindelprograma,tiposdepruebas,derivacin).Conceptode:Proceso/accin(manipulacindeobjetos),Objetos (identificador, tipo, estado ovalor), TiposAbstractos de Datos o Clases (slo dar el concepto e ilustrar conejejmplos, comoporejemploel TipoNmeroComplejo). El concepto detipoabstractodedatocomomecanismodeestructuracindelainformacinquemanipulaunalgoritmoaundeterminadoniveldeabstraccin(losdatoscompuestoslosveremoscomoobjetos,untipoabstractosecorrespondeconlanocindeclase). ElConceptodeAlgoritmo.Delaespecificacin alalgoritmo,Diseodescenteparaconstruirsolucionesalgoritmicasdeproblemas:modelosdemaquinasabstractas.Ejemploparailustrarenqueconsiteresolverunproblemamedianteunalgoritmo(ladescripcinsehaceenlenguajenatural).Ejemplo:Setieneuncestoconpapas,sedeseapelarunnmerosuficientedepapasteniendoencuentaqueelcestopuedevaciarseylaspapaspuedenreponerse(sehacenvariasversionesparailustrarlosconceptosdeaccin,objetos,diagramasdeestados,versionesqueresuelvencompletaoparcialmenteelproblema).Asercionesparadescribirestados.

    Elconceptodemquina,algoruitmoversusprogramas.LenguajesdeProgramacin,Compiladores,Interpretadores:solodecirqueloslenguajesconstituyenmquinasabstractas,queesnecesariotraducir(porcompiladoresointerpretadores)losprogramasenlenguajedealtonivelaprogrmasenlenguajedemquinas.Ejemplos:describirmedianteunalgoritmoellenguaje natural, el proceso que resulta de hacer la divisin entera de dos nmeros naturales. Nocin de mquinasabstractas.Ejemplo:describirelalgoritmodemultiplicacindedosenterosentrminodelasoperacionesdesumayresta.

    1. ContruccindeProgramas(12clases).

    3.1. Elpseudolenguaje(2clases,Bibliografa:gua,Kaldewaij):3.2. Tiposbsicosysusoperaciones,variables.Expresiones.Accionesbooleanos,caracteres.Declaracindevariables.

    Expresiones. Acciones elementales: observacin, modificacin (la asignacin). Semntica de la asignacin.Semnticadelasecuenciadeaccionesmedianteascerciones(S{Q}11{P}y{P}12{R}entonces{Q}11;12{R}).Especificacin,ddesarrollointuitivoyverificacindealgoritmosutilizandoelpseudolenguaje.Ejemplossencillossobresecuenciadeacciones:sumadedosnmeros, intercambiodevaloresdedosvariables. Otrosejemplos:unnmeronaturalquerepresentaunacantidaddesegundos,sedeseacalcularlarepresentacindeestenmeroendas,horas,minutosysegundos.

  • Accionesparametrizadas:Procedimientosyfuncionescomomecanismodeabstraccindeaccionessobreobjetosycontroldelacomplejidad.PasodeParmetros.Utilizacindeldiseodescente.Ejemplo:Mquinadetrazados.Dibujaruncuadroconlamquinadetrazados(enesteejemploseilustranlosconceptosdediseodescendentes,accionesparametrizadas).Dibujodeloscuadrosencajados.Ejemplodesntesis:hacerlasumadedosduracionesdadasendas,horas,minutosysegundos.

    Anlisisdecaos:Introduccindelaaccincompuesta(bloque),accincondicionalyalternativa.Semnticadelasaccionescondicionales entrminosdepreypostcondicin. Accionesalternativasvlidas, condicionalesanidados. Motivacin.Ejemplo:derivarunalgoritmoquedetermineelvalorabsolutodeunnmero.Ejemplo:Dadostresnmerosordenarlosdemenoramayor.Ejemplo:hallarelmximodetresvalores(darsolucinutilizandocondicional,ysolucinutilizandounafuncinquedevuelveelmximoentredosnmeros).Ejemplo:hallarlasracesrealesdeunpolinomiodesegundogrado.Usodetablasdedesicinparaelanlisisdecasos.

    3.3. Procesositerativos.Arreglos.Esquemasdealgoritmos(6clases.Bibliografa:gua,Kaldewaij,Castro):Procesoiterativo.Anlisisdeprocesositerativos.Elementosdeanlisisiterativo:estadoinicial,estados

    intermedios,estadofinal.Nocindevariantedeunprocesoiterativo.Condicindecontinuacindeunprocesoiterativo,accinelementalrepetida,funcindecota.ElconstructorMientras,susennticaenfuncindeprey postseleccin.Esmuyimportanteresaltarqueelinvariantedebesurgirdemaneranaturalenelesquemade solucinalgoritmicadelproblema,ynoalainversa,esdecir,hacerelalgoritmoyluego,unavezconstruido,se determinalosinvariantesdelasaccionesiterativas.Heursticabsicaparadeterminarinvariantes.Ejemplos(aplicar diseodescendenteenloposible):Clculodelasumadelosnprimerostrminosdeunasucecin,MximoComn Divisor(soluciniterativa,eintroducirlassolucionesrecursivasdemaneranatural),Razenteradeunnmero. Clculodepotenciansimadeunnmero(verdistintassolucionesylamaseficienteysusplanteamientos

    recursivos).

    TipoArreglo:definicin.Verunainstanciadearreglocomounobjeto.Motivacindeuso(permitenpresentarsecuenciasyaccesodirctoaloselementosdeunasecuencia).Ejemplos:sumadeloselementosdeunarreglo,busquedabinaria,clasificacinrespectoaunpivote(loselementosalpivoteprimero...).

    3.4. Diseodescendente(4clases.Bibliografa:gua,Castro):

    Refinamientodedatosyrefinamientodeacciones.Refinamientoddeacciones:seccin7.2.1delagua.Ejemploconlamquinqdetrazados:Dibujodencirculosconcntricos.Refinamientodedatos:InvariantedeAcoplamiento.Ejemplo:clculodelasracecscomplejasdeunpolimonio.Otroejemplo:contarcuantasvecesaparecelapalabramuenunasecuenciadecaracteres.EncapsulamientoyOcultamientodedatos:elcontructortipo(clase).Ventajas.Ejemplo:clculodelasracescomplejasdeunpolinomioutilizandoelconstructordetipos.4) Derivacinformaldeprogramasysolucionesrecursivasdeproblemas(4clases.Bibliogrfa:gua,Kaldewaij):

    Derivacindeprogramasiterativos(usodelasheursticas).Invariante.Tratamientoformaldearreglos.

    Solucionesrecursivasdeproblemas.Variosejemplos.Procedimientoyfuncionesrecursivas.

    Evaluacin:Hayqueevitarsobrecargaalestudianteconasignacionesquesesalgandelosobjetivosdelcurso.Enteoraserecomiendaelaborarlosexmenesparciales,unoalamitaddeltrimestreyunoalfinal.Enlaboratorioserecomiendalaevaluacincontinuasemanalenelaula.Losporcentajesdeberanestarentre6070%teora,y3040%laboratorio.

  • 7.BIBLIOGRAFIA

    - OscarMeza.GuadealgoritmosI.2000- JorgeCastro,FelipeCucker,XavierMesseguer,AlbertRubio,LluisSolano,BorjaValles.CursodeProgramacin.

    McGrawHill.1993.ISBN8448119592.Captulos1,2y3.- KaldewaijAnne.Programing:thederivationofalgorithms.PrenticHall.1990.ISBN0132041081.Captulos1,

    2,3y4.- GriesDavid,GriesPaul.Pragramlive:IntroducingProgramingwithJAVA.Software.- GriesDavid.TheSciencieofPrograming.Springer.Verlag.1981.ISBN0387964800.Cota:QA76.6G747.

    Pginas185y310319.- HostmannCay,CornellGary.CoreJAVA2:VolumenIFundamentals.PrenticeHall.1999.Captulos1,2y3.

    UNIVERSIDAD SIMN BOLVARVicerrectorado Acadmico

    7. BIBLIOGRAFIA