1. CENTRO DE ESTUDIÓS
TENOLOGIOS INDUSTRIALES Y
SERVICIÓS NO.109
MENA RAMÍREZ ROBERTO
MICHELL
2 AM PROGRAMACIÓN
PROGRAMACIÓN
ESTRUCTURADA
MCA MARGARITA ROMERO
ALVARADO
AULA D-5
2. SOLUCIONARPROBLEMASPOR MEDIO DE ALGORITMOS
Hay muchas estrategiasparasolucionarproblemas;sinembargo,estaGuíase enfocaprincipal
mente endosde estasestrategias:HeurísticayAlgorítmica.
SegúnPolya(1957), cuandose resuelvenproblemas.
Intervienencuatrooperaciones mentales:
1 Entenderel problema
2 Trazar un problema
3 Ejecutarel plan(resolver)
4 Revisar
1 Comprenderel problema.
Leerel problemavariasveces
Establecerlosdatosdel problema
Aclarar loque se va a resolver
(¿Cuál esla pregunta?)
Precisarel resultadoque se desealograr
Determinarlaincógnitadel problema
Organizarla información
Agruparlos datosencategorías
Trazar unafigurao un diagrama
2 Hacer el plan.
Escogery decidirlasoperacionesaefectuar.
Eliminarlosdatosinútiles
Descomponerel problemaenotrosmáspequeños
3 Ejecutarel plan.
Ejecutaren cada detalle laoperación
Simplificarantesde calcular
Realizarundibujoodiagrama
3. 4 Analizarlasolución(Revisar).
Dar una respuestacompleta
Hallarel mismoresultadode otramanera
Verificarporoperaciónque larespuestaesadecuada
Ejemplo
En un juegoel ganadorobtiene unaficharoja;el segundounafichaazul;y el tercerouna amarilla.
Al final de variasrondas,el puntuaje se calculade la siguientemanera:Al cubode lacantidadde
fichasrojasse adicionael doble de lasfichasazulesyse descuentael cuadradode las fichas
amarillas.Si Andrésllegó3vecesenprimerlugar,4 vecesde últimoy6 vecesde intermedio,¿Qué
puntuaje obtuvo?
Comprende
Leerdetenidamente elproblema
¿Cuántoscoloresde fichas se reparten?
¿Cuántasfichasrojas,azules y amarillasobtuvoAndrés?
¿Qué preguntael problema?
Planea
Para hallarel puntuaje que obtieneAndrésporsusllegadasde primero,calcularel cubode
la cantidadde fichasrojas
Para hallarel puntuaje porsusllegadasensegundolugar,calcularel doble de lacantidad
de fichasazules
Para hallarel puntuaje que pierde porsusllegadasenúltimolugar,calcularel cuadradode
la cantidadde fichasamarillas
Para hallarel puntuaje total,calcular lasuma de lospuntajesporlas fichasrojasy azules,
restarle lospuntos de lasfichasamarillas
Resuelve
Por tresfichasrojas: 3 al cubico= 27 puntos
Por seisfichasazules:6x 2 = 12 puntos
Por cuatro fichasamarillas:4al cuadrado = 16 puntos
Para obtenerel puntuaje final de Andrés,sumar lospuntosobtenidos conlasfichasrojas
y azules(27 + 12 = 39 puntos) y de este resultadorestarlospuntos representadosporlas
fichasamarillas(39-16 = 23 puntos).
4. Revisa
El puntuaje que obtuvoAndrés es23 puntos
Verificarlasoperacionesycompararloscálculoscon la soluciónestimada.
El anterioresun problematípicoesclase de matemáticas .Esmuy importante que losestudiantes
reflexionensobre lasactividadesque realizanparasolucionarlo(metacognición) ylasagrupende
acuerdoa las etapasque contengala estrategiade soluciónempleada
Numerosos autoresde librossobre programación, planteancuatrofasesparaelaborarun
procedimientoque realice unatareaespecífica.Estasfasesconcuerdanconlasoperaciones
mentalesdescritasporPolyapararesolverproblemas:
1 Analizarel problema(Entenderel problema)
2 Diseñarunalgoritmo(Trazarun plan)
3 Traducirel algoritmoa un lenguaje de programación(Ejecutar el plan)
4 Depurarel programa (Revisar)
Algoritmo
Es un conjuntode pasossucesivos yorganizadosensecuencialógica
Ejemplo
Diseñarun algoritmo(pseudocódigoydiagramade flujo) parahallarel áreade un triángulocuya
Base mide 3 cm,la Altura4 cm y la Hipotenusa5 cm.
Análisisdel problema
Formularel problema:Yase encuentraclaramente planeado
Resultadosesperados:El áreade un triángulorectángulo
Datos disponibles:Base,Altura,Hipotenusa,tipode triángulo.Laincógnitaesel áreay todos los
valoressonconstantes.El valor de la hipotenusase puede omitir.El estudiante debepreguntarse
si sus conocimientos actualesde matemáticasle permitenresolvereste problema;de noserasí,
debe plantear unaestrategiaparaobtenerlosconocimientosrequeridos
5. Análisisdel problema
Determinarlas restricciones:Utilizarlasmedidasdadas.
Procesosnecesarios:Guardarendosvariables(BASEYALTURA) losvaloresde Base y Altura;
Guardar en unconstante (DIV) el divisor2;aplicarla fórmulaBASE´Altura/DIVyguardarel
resultadoenlavariable AREA;comunicarel resultado(AREA).
AlgoritmoenPSEUDOCÓDIGO
Paso 1: inicio
Paso2: Asignarel número2 a la constante ´´div´´
Paso3: Asignarel número3 a la constante ´´ base´´
Paso4: Asignarel número4 a la constante ´´ altura´´
Paso5: Guardar en lavariable ´´área´´ el resultadode base´altura/div
Paso6: Imprimirel valorde lavariable ´´área´´
Paso7: Final
Algoritmoenundiagramade flujo
Diagrama de Flujoparahallarel área de un triángulorectángulo
AREA = BASE ´ ALTURA/DIV
AREA
DIV = 2
BASE = 3
ALTURA = 4
FIN
AL
INICIO
IMPRIME EL VALORALMACENADO
EN LA VARIABLEAREA
ASIGNA VALORESA LAS
CONSTANTESDIV BASEY ALTURA
CALCULASEL ÁREA Y ALMACENA
EN LA VAREABLEAREA
6. Un Procedimiento que realizamos
varias vecesal día
Veamoslaformade expresareste
procedimientocomounalgoritmo
EJEMPLO
Consideramos el algoritmoparahallarel númeromayorde losnúmerosenterospositivosdados.
Obsérvese que nose especificacuálessonlosdosnúmeros,perosi se establece unarestricción:
debenserenterosypositivos.
AlgoritmoenPSEUDOCÓDIGO
Paso1: Inicio
Paso2: Leerlosdos números(´´a´´ y ´´b´´). Avanzaral paso 3
Paso3: Comparar ´´a´´ y ´´b´´ para determinarcuál esmayor.Avanzaral paso 4
Paso4: Si ´´a´´ y ´´b´´ son iguales,entoncesambossonel resultadoesperadoyterminael algoritmo
encaso contrario,avanzar al paso5
Paso5: Si ´´a´´ es menorque ´´b´´, se debenintercambiarsusvalores
1 Tomar la cremadental
2 Destaparla cremadental
3 Tomar el cepillode dientes
4 Aplicarlacrema dental enel cepillo
5 Tapar la crema dental
6 Abrirla llave del lavamanos
7 Remojarel cepilloconlacremadental
8 Cerrar lallave del lavamanos
EJEMPLO
Consiste enlavarnoslosdientes
7. 9 Frotar losdientesconel cepillo
10 Abrirla llave del lavamanos
11 Enjuagarse laboca
12 Enjuagar el cepillo
13 Cerrar la llave del lavamanos
14 Secarse lasmanosy la cara con unatoalla
Ejemplo
Cambiar una bombilla(Foco) fundidaesunode los más utilizados porsusencillezparamostrar
lospasosde unAlgoritmo
Los pasos de un algoritmoparacambiar unfoco
1 Ubicar una escaleradebajode labombillafundida
2 Tomar una bombillanueva
3 Subirpor laescalera
4 Girar la bombillafundidahacia laizquierdahastasoltarla
5 Enroscar la Bombillanuevaenel plafónhasta apretarla
6 Bajar de la escalera
7 Fin
En términosgenerales,unalgoritmodebe ser:
Realizable:El procesoalgorítmicodebe terminardespuésde unacantidadfinitade paso.
Se dice que un algoritmoes inaplicablecuandose ejecutaconunconjuntode datos
inicialesyel procesoresultainfinitoodurante laejecuciónse encuentraconunobstáculo
insuperablesinarrojarunresultado.
Comprensible:Debe serclaroloque hace,de formaque quienejecute lospasos(ser
humanoo máquina) sepaqué, cómoy cuándohacerlo.Debe existirunprocedimiento
que determine el procesode ejecución.
Preciso:El orden de ejecución de las instruccionesdebeestarperfectamente indicado.
Cuandose ejecutavariasveces,conlosmismosdatosiniciales,el resultadodebe serel
mismosiempre.Laprecisiónimplicadeterminismo.
8. Representaciónde algoritmos
Los algoritmosse puede expresarde muchasmaneras,peroenestaguía se tratarán solodos
formas:PseudocódigoyDiagramade flujo
Pseudocódigo lasecuenciade instruccionesse representapormediode frasesoproposiciones,
mientras que undiagrama de flujose representapormediode gráficos
Pseudocódigoparacalcularel áreade cualquiertriángulorectángulo
Paso1: inicio
Paso2: Asignarel número2 a la constante ´´div´´
Paso3: Conocerla base del triánguloyguardarlaenla variable ´´base´´
Paso4: Conocerla alturadel triánguloyguardarlaen lavariable ´´altura´´
Paso5: Guardar en lavariable ´´Área´´ el valordel multiplicar´´ base´´ por´´altura´´
Paso6: Guardar en lavariable ´´Área´´ el valorde dividir´´Área´´entre ´´DIV´´
Paso7: Reportarel valorde la variable ´´Área´´
Paso8: Fina
Algoritmoparacalcularel área de cualquiertriángulorectángulo
Inicio Diagramade flujo
DIV=2 almacenael valor2 en laconstante DIV
Base Pide al usuarioque digite el valor de labase
Altura Pide al usuarioque digite el valorde laaltura
AREA=BASE´´ALTURA AlmacenaenAREA el valorde multiplicarBASEpor Altura
AREA=AREA/DIV AlmacenaenAREA el valorque ya había almacenadoenestavariable
DivididoporDIV
AREA Muestraen patillael valor de lavariable AREA
FINAL
9. El pseudocódigoestácompuestoporproposicionesinformalesenespañol que permitenexpresar
detalladamente lasinstrucciones
Que llevandesde unestadoinicial(problema) hastaunresultadodeseado(solución).
Por loregular,losalgoritmosse escribenpor refinamiento:se escribe unaprimeraversiónque
luegose descompone envariossuproblemas(el númerodepende de lacomplejidaddel
problema) independientesentresí
ACTIVIDAD
Basándose en laúltimaactividadplanteadaenla anterioridad,elaborarunalgoritmoen
pseudocódigoparacadauno de lossiguientes problemas:
1 Hallarel perímetrode un cuadradocuyo ladomide 5cm
2 Hallarel área de un cuadrado cuyoladomide 5cm
3 Hallaruno de losladosde un rectángulocuyaárea esde 15cm cuadradoy uno de sus ladosmide
3cm
4 Hallar el área y el perímetrode un círculo cuyoradio mide 2cm
5 Hallarel área de un pentágonoregularde 6cm de ladoy con 4cm de apotema
Simbología de losdiagramasde flujo
La estandarizaciónde lossímbolosparalaelaboraciónde diagramasde flujotardóvariosaños.
Con el finde evitarlautilizaciónde símbolosdiferentespararepresentarprocesosigualess
Y el Instituto Nacional Americanode Estandarización (ANSI,porsusiglaeninglés),estandarizaron
lossímbolosque mayoraceptación teníanen 1985.
Inicio/Final
Se utilizaparaindicarel inicio y el final de undiagrama;del iniciosólopuede salirunalíneade
flujoyal final sólodebe llegarunalínea.
Entrada General
Entrada/salidade datosenGeneral (enestaguía,solola usaremospara laentrada).
Entrada por teclado
Instrucciónde entradade datos por teclado.Indicaque el computadordebe esperaraque el
usuarioteclee undatoque se guardará en unavariable oconstante
10. Llamadaa subrutina
Indicala llamadaa unasubrutinao procedimientodeterminado
Acción/ProcesoGeneral
Indicauna accióno instruccióngeneral que debe realizarel computador(cambiosde valoresde
variables,asignaciones, operacionesaritméticas,etc)
Flujo
Indicael seguimientológicodel diagrama.Tambiénindicael sentidode ejecuciónde las
operaciones
Decisión
Índicala comparaciónde dosdatos y dependiendodel resultadológico(falsooverdadero)se
toma ladecisiónde seguircaminodel diagramauotro
Iteración
Indicaque una instrucciónogrupo de instruccionesdebenejecutarse variasveces
SalidaImpresa
Indicala presentaciónde unoovariosresultadosenformaimpresa
Salidade pantalla
Instrucciónde presentaciónde mensajesoresultadosenpantalla
Conector
Indicael enlace de dospartesde undiagramadentrode lamismapágina
El diagramade flujoesuna herramientagráficavaliosaparalarepresentaciónesquemáticade la
secuenciade instruccionesde unalgoritmoodelospasos de un proceso
Reglaspara la elaboraciónde diagramasde flujo
Cuandoel algoritmose deseaexpresarenformade diagramade flujo,se debentenerencuenta
algunasreglaso principiosbásicosparasuelaboración(Rojas&Ñacato,1980).
Ponerunencabezado que incluyauntítuloque identifiqué lafuncióndel algoritmo;
El nombre del autor;y la fechade elaboración
11. Todas laslíneasde flujodebenllegar unsímboloo a otra línea;
Una línea de flujorectanunca debe cruzara otra.Cuandodos líneasde flujose crucen,una de
ellasdebe incluirunalíneaarqueadaenel sitiodonde lacruza alaotra
Se debeninicializarlasvariablesque se utilicenopermitirlaasignaciónde valoresmediante
consultaal usuario
Los símbolosde ´´inicio´´y ´´Final´´ debenaparecersolounavez;
La direccióndel flujose debe representarpormediode flechas(líneasde flujo).
Las bifurcacionesyciclosse debendibujarprocurandounaciertasimetría;
Cada rombode decisióndebeteneral menos doslíneasde salida(unaparaSi y otra para No)
Las accionesy decisionesse debendescribirutilizandoel menornúmerode palabrasposible;sin
que resultenconfusasopococlaras;
Si el diagrama se vuelve complejoyconfuso,esmejorutilizarsímbolos conectoresparareducirlas
líneasde flujo;
Todo el diagramadebe serclaroordenadoy fácil de recorrer