Documente Academic
Documente Profesional
Documente Cultură
Fundamentosdeprogramacin
1.Fundamentosdeprogramacin
1.Laprogramacin
Si nos fijamos en la segunda
acepcindeldiccionariosobreel
significado de programar, vemos
que se refiere a una tcnica de
ordenacin de las acciones que
hayquerealizarparallevarade
lantecualquiertipodeproyecto.
Laprogramacin,genricamente,tieneusoenprcticamentetodaslasdisciplinas.Eneducacin,
porejemplo,esprecisoprogramaruncursoantesdellevarloacabo.Esdecir,hayquedecidirqu
contenidossevanaimpartiryenquorden,qumediosdeevaluacinsevanautilizar,qucrite
riosdecalificacinsevanautilizar,etc.
Porello,independientementedequehablemosdeprogramacininformticaono,nosvamosa
quedarconlaideadequelaprogramacinesunmtodoparaorganizarideas.
2.Algoritmos
Sedefineporalgoritmoalconjuntoordenadoylimitadodeinstruccionesqueresuelvenunproble
maotipodeproblema.
Ejemplo.Algoritmodelasuma
Tomarlacifrasqueseencuentrenmsaladerechadetodoslossumandos
Mientras(hayacifras):
Sumarlascifrasquesehantomado
Elresultadoesmenorde10?
S:
Escribirelresultadobajolascifrassumadas
No:
Escribirlaunidaddelresultadobajolascifrassumadas
Escribirladecenadelresultadosobrelascifrasqueseencuentranalaizquierdadelassumadas
Tomarlascifrasqueseencuentrenalaizquierdadelassumadas
Finmientras
Laalgoritmiaformapartedellgebramatemticoyestamosacostumbradosautilizarlaconbas
tanteasiduidad.
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
1
TICII 1.Fundamentosdeprogramacin
3.Pseudocdigo
Unadelasformasmshabitualesdeescribiralgoritmoseslautilizacindepseudocdigos.
Elpseudocdigoesunaformadeescribirlasinstruccionesempleandounlenguajecercanoano
sotrosporloqueresultamuyfcildeentender.Peseaello,debenseguirseciertasreglasparaque
elpseudocdigopuedaserentendidosinsubjetividadesporcualquierpersona.
Estasreglaslasiremosviendosegnlasnecesitemosduranteelcurso.Demomento,solovamosa
verlasiguientes:
Debeiniciarseconlainstruccin:Inicioseguidadelnombredelalgoritmo.Elnombredel
algoritmoloeligeelprogramadorolevendrdadoporlasinstruccionesquerecibapor
partedequienleasigneeltrabajo
Debefinalizarseconlainstruccin:Finseguidadelnombredelalgoritmo
Lasinstruccionesseescribendeformaordenada
Ejemplo.Pseudocdigodelalgoritmodelasuma
Iniciosuma
Tomarlacifrasqueseencuentrenmsaladerechadetodoslossumandos
Mientras(hayacifras):
Sumarlascifrasquesehantomado
Elresultadoesmenorde10?
S:
Escribirelresultadobajolascifrassumadas
No:
Escribirlaunidaddelresultadobajolascifrassumadas
Escribirladecenadelresultadosobrelascifrasqueseencuentranalaizquierdadelassumadas
Tomarlascifrasqueseencuentrenalaizquierdadelassumadas
Finmientras
Finsuma
4.Diagramasdeflujo
Unatcnicagrficaderepresentarprogramaseslautilizacindediagramasdeflujooflujogramas
flowchart.Estosdiagramassecomponendeunaseriedesmbolos,conindicacionesensuinte
rior,interconectadosmedianteflechasqueindicanelcaminodelprograma.
Algunosdelossmbolosson:
Indicaelinicioofinaldelalgoritmo
Terminal
Simbolizalasaccionesarealizarporpartedelequipoprogramado.
Proceso
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
2
TICII 1.Fundamentosdeprogramacin
Representalaentradadedatosdesdeelexterioralequipoprogramadoola
Entrada salida
Salida
Fin de
bucle
Losconectoresseutilizanparaunirpartesdelprogramaquenoquepanen
la pgina en la que se est realizando la representacin del algoritmo.
Conector Dentro del conector se suele indicar una letra mayscula que debe
coincidirenlasdospartesqueestnunidas.
5.Subprogramas
Unadelasaccionesmstilesquehayquereali
zaralahoradedisearcualquiertipodeprogra
maesladesubdividirelproblemaenproblemas
ms sencillos, de forma que pueda resolverse
comounasucesindepequeosproblemas.
Paraello,serealizaelpseudocdigodecadauno
delossubprogramasy,desdeelprogramaprinci
pal,sevallamandoacadaunodelossubprogra
mas.Unsubprogramapuedecontener,asuvez,
llamadasaotrossubprogramas.
Subprograma
6.Variables
Esbastantehabitualquenecesitemosqueelpro
gramaguardeciertainformacindurantesueje
cucin.Paraelloseutilizanlasvariables.
Ejemplo.Flujogramadelalgoritmodelasuma
Existen diferentes tipos de variables en funcin
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
3
TICII 1.Fundamentosdeprogramacin
deltipodeinformacinquesenecesiteconservar(variablesdetexto,denmerosenteros,den
merosbinarios,denmerosencomaflotante,vectores,etc).
Laasignacindelvaloralavariablesesuelerealizarenpseudocdigoutilizandoelsmboloigualy
esposibleoperarconellas.
Ejemplo.Algoritmoquesumalosnmerosdel1al9
Iniciosuma1.9
i=1,r=0
Mientras(i<10):
r=r+i
i=i+1
Finmientras
Muestraenpantallaelvalorder
Finsuma1.9
Lossubprogramaspuedenrecibirdatosenvariablesyenviarresultadosparaqueseanutilizados
enotraspartesdeunprograma.
Enpseudocdigo,sevaautilizarunparntesisenelqueseindicalasvariablesquerecibeelsub
programa,ascomoelordenenelquelasrecibe.
Paraindicarelenvodelresultadovamosautilizarlainstruccindevuelve.
Ejemplo:subprogramaquecalculaelreadeunrectngulo
InicioareaRect(a,b)
r=a*b
Devuelver
FinareaRect
Noesnecesarioqueelprogramayelsubprogramautilicenelmismonombredevariables,yaque
estosfuncionanindependientemente.
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
4
TICII 1.Fundamentosdeprogramacin
Ejemplo:subprogramaquecalculaelreadeuntringulo
apartirdelsubprogramaanterior
InicioareaTriang(a,b)
a=areaRect(a,b)
r=a/2
Devuelvea
FinareaTriang
Vamosautilizarlosprogramasanterioresparaintentarentendercmoseutilizanlasvariables.
Imaginemosquellamamosdesdeunprogramaconlainstruccinarea=areaTriang(3,4).
ElsubprogramaareaTriangvaameterelnmero3dentrodesuvariableayelnmero4dentro
deb.Despus,vaallamaraareaRectutilizandoestasdosvariables(a=areaRect(a,b)).
areaTriangintroduceensuvariableaelresultadoobtenidoalllamaraareaRect(machacandoel
valorquetenaanteriormente,porloqueapasadevaler3avaler12),einmediatamente,divideel
valorquehabaen a entredosguardndoloen r (r=a/2=12/2=6).Porltimo,devuelveelresul
tadoaquienlehizolallamada.
7.Programacinestructurada
Desdefinalesdelosaos1970,surgeunaformadeprogramarquedabalugaraprogramasfia
blesyeficientes,yquesehamantenidohastalaactualidad.
Laprogramacinestructuradatieneunaseriedereglassencillasydividelaprogramacinenuna
seriedebloquesoestructurasdeprogramacinqueserepitenycombinanparaformarcualquier
tipodeprograma.
Deestaforma,paraprogramarsolovamosautilizartrestiposdeestructurasdeinstrucciones:
Secuencia:instruccionessucesivas(unadetrsdeotra)
Seleccin: se establecen instrucciones que se ejecutan cuando se cumple (o no) una
determinadacondicin
Iteracin:conjuntodeinstruccionesqueserepitenmientrassecumplaunadeterminada
condicin
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
5
TICII 1.Fundamentosdeprogramacin
7.1.Tiposdeestructurasdecontrol
Estructurasecuencial
Secuencia Conjunto de instrucciones que se
ejecutansecuencialmente(unadetrs
deotra)
Estructurasdeseleccin
Seleccin Haydosconjuntosdeinstruccionesa
simple seguir en funcin del valor de una
solucinaunadecisindetipos/no
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
6
TICII 1.Fundamentosdeprogramacin
Estructurasiterativas
Iteracintipo Se da un nmero de vueltas
ForNext concretas a un conjunto de
instrucciones utilizando un contador
yunacondicinparavolverarepetir.
En cada vuelta se actualiza el valor
delcontador.
Enelejemplo
se le otorga valor cero a la
variablei(contador)
las instrucciones se repiten
mientrasivalgamenosde10
en cada vuelta i aumenta su
valor sumndole 1 al valor
anterior
Losprogramassecomponendeunacombinacindelasestructurasanteriores.Lasestructuras
sepuedenencontrarunadetrsdeotraounadentrodeotra,formandotodotipodecombinacio
nes.
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
7
TICII 1.Fundamentosdeprogramacin
8.Programacinorientadaaobjetos(POO)
Desdemediadosdelosaos1980comienzaunanuevaformadeprogramarquesemantiene
hastahoyenda.Enesta,seconsideraobjetoaloquesequiereprogramarytieneunenfoque
bastantemscercanoanuestroentendimientoquelosmtodosanteriores.
Laprogramacinorientadaaobjetostiene,adems,supropianormagrficapararepresentarlos
programasensuconjunto,llamadaUML(UnifiedModelingLanguage).
8.1.ConceptosdelaPOO
Clase
Unaclasecontienelaspropiedadesyelcomportamientodeuntipodeobjetoconcreto.Lasclases
tienenlosatributos(variables)quedebenecesitaelobjetoylosmtodosquedichoobjetopuede
realizar(enPOO,hablardeprocedimientoesequivalenteahablardesubprograma).
Losprogramassecomponendeunconjuntodeclases.
Unejemplodeclasepodraserlaclaseaula.Estaclase
RepresentacinUMLdeunaclase
podra tener una serie de atributos como, por ejemplo:
nmerodemesas,nmerodesillas,nmerodeventanas,sitieneonoproyector,siestlaluz
encendidaoapagada,siestlacalefaccinencendidaoapagada,etc.Comomtodos,podramos
tenerenciendeluz,apagaluz,nombredelalumnox,etc.
Objeto
Losobjetossecreanapartirdelasclasesysepuedetrabajarconellos.Unejemplo,seraaulade
4A.Elobjetoaulade4Aperteneceraalaclaseaula.Todoloprogramadosobrelaclase
aulalotieneelobjetoaulade4Aypuedeutilizarseparacrearcualquierotroobjeto(enPOO,
sedenominainstanciarunobjetodelaclasex).Deestaforma,silaclaseestbienprogramada,
podramosinstanciarotrasaulas,comoaulade2B,aulade3A,cadaunaconsupropio
valordentrodelosatributos(aulade2Bpodratenernmerodemesasconvalor30yaula
de4Aconvalor28,yaquecadaobjetopuedetenersuspropiosvalores).
Unobjetopuedeserunatributodeotraclase.Porejemplo,laclaseinstituto,podratenerun
vectordeobjetosaulas(unvectoresunconjunto).
Herencia
UnadelascaractersticasmstilesdelaPOOeselconceptode herencia.Unaclasepuede
heredardeotra,deformaquetienelosatributosymtodosdelaclasedelaquepartesinnecesi
daddeserprogramados.
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
8
TICII 1.Fundamentosdeprogramacin
As,cuandosecreeunobjetodelaclaseauladeinformtica(porejem
plo,auladeinformtica2)esteobjetoincluirtodoloquesehaprogra
madodentrodeaulayloquesehaprogramadodentrodeaulade
informtica.
EnUMLserepresentalaherenciacomounaflechadesdelaclaseque
heredahastalaclasedelaqueparte(superclaseopadre).
Atributos
Eselconjuntodevariablesquecontieneunaclase.EnUMLserepre RepresentacinUMLdeuna
herencia
sentacomounalistabajoelnombredelaclase.
Mtodos
Conjuntodesubprogramasquecontieneunaclase.EnUMLserepresentacomounalistabajolos
atributos.
Evento
Sedenominaeventoaunaaccinquepuedeejercitarsesobreunaclaseyqueimplicaqueseeje
cuteunmtododelamisma.Laseventosmstpicospuedenserquesepulseunateclaconcreta
delteclado,quesehagaclickenelratn,queuntemporizadorllegueaundeterminadovalor
(porejemplo,quehayapasadountiempodesdequeseinstancilaclase),etc.
8.2.VentajasdelaPOO
LaprincipalventajadelaPOOesqueseprogramaporbloquesindependientes.Unprogramaes
unconjuntodeclasesquepuedenseranalizadasyreprogramadasindependientementealresto
delprograma.Porello,esmuytilcuandosetienenequiposdepersonasprogramando.
Porotrolado,alpoderutilizarlaherencia,sefacilitaenormementelalabordeprogramacinsise
hahechounbuenanlisispreviodelprograma.
Esta obra est protegida por Octavio M. Ruiz Garca mediante Licencia Creative Commons Atribucin-CompartirIgual 4.0 Internacional
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/4.0/deed.es_CO
9