Академический Документы
Профессиональный Документы
Культура Документы
Agenda
Evaluacin. ImportanciadelaProgramacinde Computadoresenlaenseanzadela Ingeniera. Algoritmos NotacionesAlgortmicas Expresiones ConceptosGenerales
Evaluacin
Puntos Prctica 5 5 5 15
Total 15 15 20 15 15 80 20 100
Notas:
Lasnotasdelasprcticasdelastresprimeras evaluacionesestarndependiendodeldesempeoen laspruebas.Siustedobtienemenosdeun90%,su notadeprcticaserunporcentajeigualaldesu prueba,siobtieneenlaprueba90%oms,sunotade prcticaser100%. Paratomaslaspruebasesimprescindiblequehaya entregadolasprcticas,delocontrarionopodr tomarlo. Paraaprobarlaasignaturadebeobteneralmenosun 70%enlapartetericayenlaparteprctica (Laboratorio). Siobtienemenosdel70%delospuntosencualquiera deloscomponentes(teoraolaboratorio)reprueba automticamentelaasignatura.
Bienvenidos
Justificacindelaprogramacinde computadores
Resolucindeproblemas
Laresolucindeunproblema(medianteunacomputadora) serefierealprocesoconsistenteenpartirdeladescripcinde unproblema(habitualmenteenlenguajenatural,yexpresada entrminospropiosdeldominiodelproblema)ydesarrollar unprogramadecomputadoraqueresuelvadichoproblema. Laresolucindeunproblemaexigealmenoslossiguientes pasos:
DefinicinoAnlisisdelProblema. DiseodelAlgoritmo. TransformacindelAlgoritmoenunprograma. EjecucinyValidacindelprograma.
SistemasdeProcesamientodelainformacin
Entrada (datos)
Proceso
Salida (Informacin)
Algunostrminos
Computadora(ordenador,enlajergainformticausualenEspaa):Dispositivoque aceptadatos,quepermiteprocesarlosdeacuerdoconunprogramaalmacenadoyque generaunosresultados. Datos:Representacinformalizadadehechos,conceptos,caractersticas,etc.,queson susceptiblesdesercomunicados,interpretadosoprocesadospormedioshumanoso automticos. Informacin:Significadoqueelhombreasignaalosdatospormediodelas convencionesutilizadasensurepresentacin.Informacin=datosprocesadosy organizados. Procesamientodedatos(deinformacin):Realizacinsistemticadeoperaciones (clculos,ordenaciones,etc.)sobrelosdatosconelfindeobtenerinformacin organizada,significativaytil. Sistema(deprocesamientodedatos,SPD):Conjuntoorganizadoderecursoshumanos, deequipamiento,etc.,queinteraccionanconelfindecumplirunconjuntodefunciones especficas(procesamientodedatos). Programa(decomputadora):Secuenciadeinstrucciones,cadaunadelascuales especificalasoperacionesquedeberealizarlacomputadoraparalaresolucindeun problema. Lenguajedeprogramacin:Lenguajeartificialqueseutilizaparaexpresarprogramasde computadora.Cadacomputadora,segnsudiseo,"entiende"unciertoconjuntode instruccioneselementales(lenguajemquina).Noobstante,parafacilitarlatareadel programador,sedisponetambindelenguajesdealtonivelmsfcilesdemanejary quenodependendeldiseoespecficodecadacomputadora.Losprogramasescritosen unlenguajedealtonivelnopodrnserejecutadosporunacomputadoramientrasno seantraducidosallenguajepropiodesta.
10
Algoritmo
Conjuntodeinstruccionesque especificanlasecuenciaordenadade operacionesarealizarpararesolver unproblema.Enotraspalabras,un algoritmoesunmtodoofrmula paralaresolucindeunproblema. Convienedestacarqueunalgoritmo esindependientetantodellenguaje deprogramacinenqueseexprese comodelacomputadoraenlaquese ejecute. Lasprincipalescaractersticasque debetenerunalgoritmoson:
Debesercomprensibleypreciso(sin ambigedades),eindicarelordende realizacindecadapaso. Debeserpredecible.Siseaplica partiendodelamismasituacininicial, debeobtenersesiempreelmismo resultado. Debeserfinito.Elalgoritmodebe terminarenalgnmomento(debetener unnmerofinitodepasos).
Elementosdeunalgoritmos
Sonvarioslaspiezasquecomponenun algoritmotpico.Heaquunalistadelosms relevantes:
Identificadores Constantes Variables Instruccionesyclusulas Documentacin
12
Elementosdeunalgoritmos(cont.)
identificadores
Losidentificadoresloscreaelprogramadorparanombrarobjetoscreados porlenelalgoritmo,comolasvariablesylossubalgoritmos. Parcrearunidentificadorsedebenseguirciertasreglas,quevarandeuna nomenclaturaalgortmicaaotra,ydeunlenguajedeprogramacinaotro. Lasdosmscomunesson:
Empiezanconunaletra Soncombinacionesdeletrasydgitos(exceptoporsubrayadocomoseparador) Algunasrecomendacionesadicionalesson: Evitarelsubrayadocomoseparadoryempezarcadaideaconunaletramayscula envez Evitarnombresmuylagos Usarnombresdescriptivos,asociadosconelobjetoencuestin Usarunprefijoqueindiqueeltipodedato Evitarelusodeacentos
13
Elementosdeunalgoritmos(cont.)
constantes
Unaconstanteesunvalorfijoenelalgoritmo,porlocualnorequiereserdefinido, sinoqueseasumeconocido,predefinido.Elusomscomndelasconstantesesenla inicializacineincrementodevariables. Ejemplosdeconstantesson:
5 3.1415926 mimammeama
variables
Unavariablepuedeservisualizadacomounlugardelamemoriadelamquinaen dondesepuedeguardarunvalordeunciertotipo.Cadavariabletieneasociadoun tipoodominio,unadimensinyunaestructura. Eltipoodominioserefierealtipodevalorquepuedealojar,locualnormalmentese haceapuntandoaunconjuntodedatospredefinidoointrnsecoallenguaje,comolos nmerosenteros,losreales,loscaracteres(alfanumrica).Ashablamosdequeuna variableesentera,real,carcter. Ladimensindeunavariableserefiereasisolamentepuedealojarunavaloralavez, osipuedealojarvariossimultneamente.Podemosdecir,entonces,queunavariable esescalaroqueesvectorial(arreglo).
14
Elementosdeunalgoritmos(cont.)
instrucciones
Unainstruccinesunaorden,ypuedetenerunaovariaslneas,estoes,ser simpleocompleja. Lasinstruccionestambinpuedenserllamadasestructuras,ydesdeeste puntodevistaseclasificanende:
secuencia Controly/oseleccin repeticin
Lasinstruccionesbsicasson:
inicio/fin declaracin(odefinicin) asignacin(yclculo) lectura/escritura si mientras/accinmientras invocacin(desubrutina) aceptacin/retorno(deparmetros) comentario(explicacin)
15
Estructuradeunalgoritmo
Laestructuradeunalgoritmovaraconla nomenclaturaonotacinutilizada,peroheaqu elesquemamsrecomendable,conlas divisionesdeunalgoritmoenorden:
cabecera declaracin inicializacin cuerpo(accin) finalizacin pie
16
Notaciones
Cmoesposibleprogramar?Porquesedisponedeuna notacinalgortmicaquepermite:
Describirlasoperacionespuestasenjuego(acciones). Describirlosobjetosmanipuladosporelalgoritmo (datos/informaciones). Controlarlarealizacindelasacciones,indicandoelmodode organizacindeestasaccioneseneltiempo(mediantelasprimitivas decomposicinodecontrol).
17
Notaciones(cont.)
Prosa
Laprosaconsisteenutilizarellenguajecotidiano, informal,paraexpresarlosdistintospasosdeun algoritmo.Porejemplo,paraescribirlosprimeros 100nmerosnaturalespodramosescribirenprosa:
1.hacerNiguala1 2.escribiraN 3.sumar1aN 4.SiNesmenoroigualque100,volveralnea2 5.fin
18
Ejercicio
Determinarlasumadeloscubosdelosdgitosdeunnmero enterode3cifrasodigitos.
1. 2. 3. 4. 5. 6. 7. Ejemplo234,2^3+3^3+4^3=99 LeerN HacerCigualaNentre100 (C=N/100) HacerUigualaNmod10 (U=NMOD10) HacerDiguala(Nentre10)mod10 (D=(N/10)mod10) HacerresultadoigualaC^3+D^3+U^3 Escribirresultado Fin.
19
ejercicio
Dadounacantidaddekilmetros,convertirlosa metros,pulgadas,piesyyarda.
1. LeerKm 2. Hacermtigualakm*1000 3. Hacerpgiguala(mt*100)/2.54 4. Hacerpiesigualapg/12 5. Haceryardaigualapies/3 6. Escribirmt,pg,pies,yarda 7. Fin
20
Ejercicioconprosa
Escribaunalgoritmoquesolicitedosnmeros enterosydigasiunoesdivisordelotro.Ejemplo 15y5,donde5esdivisorde15.
1Leera 2Leerb 3Sia>=b,Siamodb=0,Escribirbesdivisordea,sinoEscribirb noesdivisordea, 4Sib>=a,Sibmoda=0,Escribiraesdivisordeb,sinoEscribira noesdivisordeb, 5Fin.
21
Notaciones(cont.)
Smbolosmasutilizadosenlaconstruccindediagramas deflujos.
Lnea de flujo Proceso Entrada/salida Caja de decisin Inicio/Fin Disco Magntico Conector Proceso Predefinido Comentario
22
Notaciones(cont.)
INICIO
Diagramadeflujo
Undiagramadeflujoesun algoritmorepresentado grficamente,utilizando ciertossmbolos estandarizados,loque facilitamuchola comprensindelalgoritmo, sibienconmuchas limitaciones.
Leer X
N1
Escribir N
NN+1
Si
N<=X No
FIN
23
Notaciones(cont.)
LAE(LenguajeAlgortmicoEstructurado)
Ellaeesunaherramientadidcticaquepermiteredactarenespaol(similarala prosa),usandounaspocasreglasestructuradasparaaadirciertorigoryclaridadala redaccindealgoritmos,ypoderabordardemaneraexplcitaconceptoscomola modularidadylaencapsulacin,particularmenteenfatizandolaestructuracin(no goto).
Unaversinlaeparaescribirlosprimeros10nmerosnaturalespodraser: Tareaprimeros10Naturales comento,escribolosprimeros10nmerosnaturales Defino N,nmeronatural findefino AsignoaN,1 MientrasN<=10 Escriboa,N AsignoaN,N+1 finmientras fintarea
24
EjemplodeAlgoritmoenLAE
NmerosPrimos NmerosPares NmerosPerfectos
25
TareaNumeroPar Comento,Programaquedeterminasiunnmeroespar. Defino n,NumeroEnteroPositivo. FinDefino Escriboa,Introduzcaunnmero. Leoa,n. Si(nmodulo2=0) Escriboa,Elnmeroespar. Sino Escriboa,NoesPar. FinSi FinTarea.
26
NmerosParesenLAE
TareaNumeroPrimo Comento,Programaquedeterminasiunnmeroesprimo. Defino n,NumeroEnteroPositivo. x,n. Pri,n. FinDefino Asignoa,x,2. Asignoa,Pri,0. Escriboa,Introduzcaunnmero. Leoa,n. Mientras((x<=n/2)y(Pri=0)) Si(nmodulox=0) Pri=1. FinSi Asignoa,x,x+1. FinMientras. Si(Pri=0) Escriboa,Elnmeroesprimo. Sino Escriboa,NoesPrimo. FinSi. FinTarea.
NmerosPrimosenLAE(modif.)
28
TareaNumeroPerfecto Comento,Programaquedeterminasiunnmeroesperfecto. Defino n,NumeroEnteroPositivo. x,n. s,n FinDefino Asignoa,s,0. Asignoa,x,1. Escriboa,Introduzcaunnmero. Leoa,n. Mientras(x<n) si(nmodulox)=0 Asignoa,s,s+x finSi Asignoa,x,x+1. FinMientras. Si(n=s) Escriboa,Elnmeroesperfecto. Sino Escriboa,Noesperfecto. FinSi. FinTarea.
NmeroPerfectoenLAE
29
ClculodeRaces
Tareaecuacion comento,algoritmoparacalcularlasraices Defino a,b,c,x1,x2,numerosreales FinDefino Escribo(DemeelvalordeA:) Leer(a) Escribo(DemeelvalordeB:) Leer(b) Escribo(DemeelvalordeC:) Leer(c) Si(a<>0)y(b^24*a*c>=0) x1=(b+sqrt(b^24*a*c))/(2*a) x2=(bsqrt(b^24*a*c))/(2*a) Escribo(Lasraicesson:,x1,x2) Sino Escribo(Nosepuedencalcularlasraices) FinSi FinTarea
30
LenguajesdeProgramacin
TiposPrincipales:
Mquina:escritosenleguajedirectamente inteligiblesporlamquina(computadora),yaque suscadenassoncadenasbinariasqueespecifican unaoperacinylasposiciones(direccin)de memoriaimplicadasenlaoperacin. Bajonivel(ensamblador):masfcildeentenderque eldemquina,perolasinstruccionessonconocidas comonemotcnicos(mnemonics) Altonivel:escritosenlenguajecasinaturalparaque laspersonasescribanyentiendanelprogramade unamaneramuchomasfcil.
31
LenguajesdeProgramacin
Loslenguajesdeprogramacinpuedenserclasificadosdeacuerdoadiversos criterios: Lenguajesinterpretados Lenguajescompilados Paradigmadeprogramacin
Programacinorientadaaobjetos Programacinestructurada Programacinlgica Programacinfuncional
NiveldeAbstraccin
Lenguajesdebajonivel Lenguajesdealtonivel
Generacin
Primerageneracin Segundageneracin Tercerageneracin Cuartageneracin Quintageneracin
32
EjemplodeLenguajesdeProgramacin
Ada ActionScript ASP ASP.NET BASIC BCPL C C++ C# COBOL Delphi Ensamblador FORTRAN Java JavaScript Modula Pascal Perl PHP RPG VisualBasic
33
Compilacin
Compilacineselprocesoporelcualsetraducenprogramasencdigo fuenteaprogramasencdigoobjeto.Elprogramaquerealizaesta traduccinsellamacompilador.Elarchivodecdigoobjetoquese obtieneconlacompilacinestrepresentadonormalmenteencdigode mquina,aunquetambinpuedeseruncdigointermediobinario multiplataforma(bytecode). Paraconseguirelprogramaejecutablefinalapartirdetodoslosarchivos decdigoobjetosedebeutilizarunprogramallamadomontadoryun enlazador(linker).Esteprocesodemontajetienecomoresultadoun archivoejecutablequecontieneelprogramaencdigomquinalisto paraserejecutadoconlaayudadelsistemaoperativo.Elprocesode enlazamientoarreglalasreferenciasarutinasexternas.
34
InterpretacindeCdigo
Eninformtica,unintrpreteesunprogramacapazdeanalizaryejecutar otrosprogramas,escritosenunlenguajedealtonivel.Losintrpretes suelencontraponersealoscompiladores,yaquemientrasquelos segundosseencargandetraducirunprogramadesdesudescripcinen unlenguajedeprogramacinalcdigomquinadelsistemadestino,los primerosslorealizanlatraduccinamedidaqueseanecesarioy normalmente,noguardanelresultadodedichatraduccin. Losprogramasinterpretadossuelensermslentosqueloscompilados debidoalanecesidaddetraducirelprogramamientrasseejecuta,peroa cambiosonmsflexiblescomoentornosdeprogramacinydepuracin (loquesetraduce,porejemplo,enunamayorfacilidadparareemplazar partesenterasdelprogramaoaadirmduloscompletamentenuevos),y permitenofreceralprogramainterpretadounentornonodependiente delamquinadondeseejecutaelintrprete,sinodelpropiointrprete (loqueseconocecomnmentecomomquinavirtual).
35
EjemplosdeLenguajesInterpretes
ASP(hastalaversin3) JavaScript(todaslasplataformas) Logo(LinuxWindowsMac) Lush(LispparagrficosLinux) Perl(MundoUnixyengeneralparatodaslas demsplataformas) PHP Python(todaslasplataformas) VBScript(MicrosoftWindows)
36
TipodeDatos
Conceptopropiodelainformtica,msespecficamentedeloslenguajesde programacin,aunquetambinseencuentrarelacionadoconnocionessimilares delasmatemticasylalgica.
Podemosdefiniruntipodedatoapartirdelosvalorespermitidosylasoperaciones quesepuedanllevaracabosobrel. Amenudo,unmismotipodedatoseimplementardeformasdiversas.
Tiposdedatos
Tipossimples
TipoOrdinal
Tipospredefinidos Tipodedatonumrico Tipodedatocaracter Tipodedatolgico Tiposdefinidosporelusuario Tipodedatoenumerado Tipodedatosubrango
TipoNoOrdinal
Tipodedatoreal Tipodedatopuntero
Tiposcompuestosocomplejos
CadenadeCaracteres Estructuradedatos
37
Expresiones
Combinacionesde constantes,variables, smbolosdeoperacin, parntesisynombrede funcionesespeciales. LasExpresionesse clasificanen:
Aritmticas Relacionales Lgicas Carcter
Aqu los parntesis indican el orden de clculos y representa la funcin raz cuadrada.
38
Expresiones
OperadoresAritmticos
^ * + div Exponenciacin Multiplicacin Suma DivisinEntera / Divisin Resta %,mod Mdulo(resto)
Operadoresderelacin
< Menorque = Igual >= Mayoroigual > Mayorque <= Menoroigual <>,!= Diferente
or,|| O
39
Ordendeprioridaddelosoperadores
1. 2. 3. 4. 5. 6. 7. 8. 9. Parntesis(primerolosmsinternos) Signo Potencia Producto,divisinymdulo Sumayresta Relacionales Negacin Conjuncin Disyuncin
40
Conviertaexpresionesalgebraicasaexpresionesalgorimicas
41