Post on 07-Jul-2018
8/18/2019 Programacion Unidad 2.Pptx
1/12
Tecnológico Nacional de México
Instituto Tecnológico de San Luis Potosí
Programación BásicaProf. José Luis ue!ara Lomelí
“Diseño de
Algoritmos”ru"o #$%&ui"o #'(umada Lárraga 'lan )*ed
Lárraga +lores )smar 'le,andro
Menc(aca -amarrón icardo
Ing. Mecatrónica
/0 Semestre
Soledad de raciano Sánc(e12 S.L.P. a // de +e*rero de /3#4
8/18/2019 Programacion Unidad 2.Pptx
2/12
2.1 Conceptos básicos
Algoritmo
Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la
solución de un tipo de problemas.
Constituye una lista completa de pasos secuenciales y una descripción de datos
necesarios para resolver un determinado problema.
• Una lista de pasos secuenciales que deben ser ejecutados.• Una descripción de datos que son manipulados por estos pasos.
Características del Algoritmo:
• Una descripción de acciones que deben ser ejecutadas !asossecuenciales".
•
Una descripción de los datos que son manipulados por estas acciones#structuras de datos".• Un algoritmo debe ser preciso indicando el orden de reali$ación de cada
paso.• %odo algoritmo debe ser &nito. 'i se sigue un algoritmo este debe
terminar en alg(n momento.• Un algoritmo debe estar de&nido. 'i se sigue un algoritmo dos )eces se
debe obtener el mismo resultado.• Un algoritmo puede tener o no datos de entrada.• Un algoritmo producirá uno o más datos de salida.• *os datos de entrada + salida deben almacenarse en )ariables.
• #l resultado que se obtenga debe satis,acer los requerimientos de lapersona interesada e,ecti)idad".
• Debe ser estructurado. #s decir- debe ser ,ácil de leer- entender- usar +cambiar si es preciso.
Herramientas para el diseño de algoritmos.
'e dispone de di)ersas erramientas para a+udar a los programadores adesarrollar los algoritmos.
8/18/2019 Programacion Unidad 2.Pptx
3/12
DIAGRAMA DE FLU!
#s una erramienta que mediante el empleo de s/mbolos especiali$ados +l/neas de 0ujo- nos permite ilustrar el 0ujo lógico de pasos + datos de unalgoritmo.
"#EUD!C$DIG!
Un pseudocódigo permite epresar un algoritmo con palabras en castellanoque son semejantes a las instrucciones de un lenguaje de programación.
8/18/2019 Programacion Unidad 2.Pptx
4/12
"R!GRAMACI$%
*a programación es la traducción de los algoritmos en sentencias que lacomputadora puede comprender + ejecutar.
#n trmino sencillo es la acción de escribir programas para una computadorautili$ando alguno de los lenguajes de programación eistentes.
E#&RUC&URA# DE DA&!#
'on aquellas estructuras que nos permitirán almacenar los datos a serprocesados.
Son un medio para manejar grandes cantidades de datos de manera eficiente.
E#&RUC&URA# L!GICA#
'on aquellas estructuras que no permitirán manipular los datos almacenadosen las estructuras de datos.
2.2 3etodolog/a de la !rogramación
Los investigadores en los años sesenta demostraron que los programas podían ser
escritos utiliando tres estructuras de control!
• La estructura secuencial define el flujo de control predeterminado de un programa.
"ormalmente# esta estructura está integrada en los lenguajes de programación. $
menos que se indique lo contrario# una computadora ejecuta líneas de código en el
orden en el que fueron escritas.
• Las estructuras de selección utilian construcciones de un flujo de programa
especial llamadas declaraciones condicionales. %na declaración condicional
simplemente es una prueba que determina lo que hará a continuación el
programa. &ste tipo de prueba normalmente solo proporcionara dos resultados#
verdadero o falso. Si la condición es verdadera# se ejecutaran ciertas líneas de
código# si es falsa no se ejecutaran esas líneas de código.
• Las estructuras de repetición están basadas en construcciones llamadas bucles.
%n bucle es un fragmento de código que se repite una y otra ve hasta que alguna
condición se cumpla.
8/18/2019 Programacion Unidad 2.Pptx
5/12
&n una estructura de repetición# el programa revisa una declaración de condición y
ejecuta un bucle basándose en la condición. Cuando la condición es verdadera
entonces se repite uno o más comandos hasta que la condición es falsa.
Análisis- desarrollo e implementación de un algoritmoA la ora de resol)er un problema mediante la utili$ación de un ordenador nose debe codi&car directamente el programa en un lenguaje dado4 si elproblema es complejo resulta mu+ di,/cil escribir un programa en un (nicopaso.
5ases6
• Análisis• Diseño• Codi&cación• 7eri&cación
5ase de Análisis'e trata de comprender la naturale$a del problema + no de buscar una ,ormade resol)erlo6
• 8ue datos precisan ser introducidos para obtener la solución• #n qu consistirá dica solución• 8ue errores puede presentar• 8ue datos tendrá que o,recer
5ase de diseño'e busca una ,orma de resol)er el problema- es decir un algoritmo con dostipos de diseño- de arriba9abajo o abajo9arriba6
8/18/2019 Programacion Unidad 2.Pptx
6/12
Diseño descendente- Arriba9abajo6 #ste mtodo consiste en resol)er elproblema mediante una aproimación con distintos ni)eles de abstracción
Diseño ascendente- Abajo9Arriba6 A la in)ersa- se resuel)en los problemasmenores- + las soluciones se integran para dar lugar a la solución del problema
2.: Diagrama de 0ujo
Un diagrama de 0ujo es una ,orma esquemática de representar ideas +conceptos en relación. A menudo- se utili$a para especi&car algoritmos demanera grá&ca.
'e conoce como diagramas de 0ujo a aquellos grá&cos representati)os que seutili$an para esquemati$ar conceptos )inculados a la programación- la
econom/a- los procesos tcnicos +;o tecnológicos- la psicolog/a- la educación +casi cualquier temática de análisis.
*os diagramas de 0ujo son m(ltiples + di)ersos + pueden abordar mucostemas distintos de ,ormas tambin mu+ di,erentes. #n cualquier caso- elaspecto en com(n entre ellos es la presencia de un )/nculo entre los conceptosenunciados + una interrelación entre las ideas. Com(nmente- se utili$a estetipo de diagramas para detallar el proceso de un algoritmo +- as/- se )ale dedistintos s/mbolos para representar la tra+ectoria de operaciones precisas a
tra)s de 0ecas. 'iempre que eiste un diagrama de 0ujo eiste un proceso osistema que pretende ser gra&cado a tra)s de s/mbolos )isuales que- en )e$de trminos )erbales- simpli&can el ,uncionamiento de dico proceso + loacen más claro + e)idente al lector.
!ara que el diagrama de 0ujo tenga sentido como tal- debe eistir un caminoacia una solución que parte de un (nico inicio + arriba a un (nico punto &nal.Con el propósito de desarrollar un diagrama de estas caracter/sticas- serecomienda de&nir el propósito + destinatario del grá&co- identi&car las ideasprincipales- determinar los l/mites + alcance del proceso a detallar- establecer
el ni)el de detalle requerido- identi&car acciones- procesos + subprocesos-construir el diagrama + &nalmente titularlo con eactitud. Con)iene re)isar eldiagrama para comprobar que cumple su objeti)o con claridad + precisión.
8/18/2019 Programacion Unidad 2.Pptx
7/12
*os s/mbolos más utili$ados en los diagramas de 0ujo son la 0eca que indicasentido + tra+ectoria"- el rectángulo representa un e)ento o proceso"- el rombo
una condición"- el c/rculo un punto de coneión" + otros.
Además- eisten di)ersos tipos de diagramas. #l )ertical- en el que la secuenciao 0ujo es de arriba acia abajo4 el ori$ontal- de i$quierda a dereca4 elpanorámico- puede apreciarse de una )e$ + de ,orma tanto )ertical comoori$ontal4 el arquitectónico- describe una ruta sobre un plano arquitectónicode trabajo.
8/18/2019 Programacion Unidad 2.Pptx
8/12
2.< !seudocódigo
De'nici(n
#l pseudocódigo o ,also lenguaje" es com(nmente utili$ado por losprogramadores para omitir secciones de código o para dar una eplicación delparadigma que tomó el mismo programador para acer sus códigos- estoquiere decir que el pseudocódigo no es programable sino ,acilita laprogramación.
#l principal objeti)o del pseudocódigo es el de representar la solución a unalgoritmo de la ,orma más detallada posible- + a su )e$ lo más parecida posibleal lenguaje que posteriormente se utili$ará para la codi&cación del mismo.
#l pseudocódigo utili$a para representar las acciones sucesi)as palabrasreser)adas en ingls similares a sus omónimos en los lenguajes de
8/18/2019 Programacion Unidad 2.Pptx
9/12
programación"- tales como star-begin- end- stop- i,9ten9else- =ile- repeat9until>.etc
#s un lenguaje de especi&cación de algoritmos. #l uso de tal lenguaje ace elpaso de codi&cación &nal esto es- la traducción a un lenguaje deprogramación" relati)amente ,ácil.
#l pseudocódigo nació como un lenguaje similar al ingls + era un mediorepresentar básicamente las estructuras de control de programaciónestructurada. 'e considera un primer borrador- dado que el pseudocódigo tieneque traducirse posteriormente a un lenguaje de programación. Cabe señalarque el pseudocódigo no puede ser ejecutado por una computadora.
'eg(n Anal/a *an$illotta6 "Considerado como un lenguaje falso, el pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el de
programación, debido a que quien lo utiliza se guía por una serie de normas
pero sin llegar a usar una estructura tan rígida como la del lenguaje de
programación.
El objetivo al que apunta es que quien lo pone en práctica se centre más en la
solución del algoritmo o el diseo de un soft!are que en el programa que
utiliza para crearlo. esto es posible porque es más fácil de manipular ya que
no tiene que tener en mente el lenguaje en sí y además, más fácil de codi#car.
$or ejemplo, si alguien tiene que %acer un soft!are con un #n determinado,utiliza un pseudocódigo propio en donde con&uyen frases del lenguaje
coloquial y algunas palabras de programación, y una vez que se logra
concretar el soft!are, se puede pasar al escalón siguiente que es el de la
transformación al lenguaje de programación formal que se vaya a utilizar.
'e esta manera, al ser un lenguaje intermedio, no tiene una composición
estandarizada por lo que no todos los programadores utilizan la misma sinta(is
con e(actitud. $ero a la vez, como es una %erramienta que está un paso previo
al lenguaje formal de programación, es fácil de transformar al que será
ejecutado en la computadora.
8/18/2019 Programacion Unidad 2.Pptx
10/12
REGLA# DE C!%#&RUCCI$%
CA?AC%#?@'%CA' B !A?%#'6
*as principales caracter/sticas de este lenguaje son6 'e puede ejecutar en unordenador #s una ,orma de representación sencilla de utili$ar + de manipular. 5acilita el paso del programa al lenguaje de programación. #s independientedel lenguaje de programación que se )a+a a utili$ar. #s un mtodo que ,acilitala programación + solución al algoritmo del programa. %odo documento enpseudocódigo debe permitir la descripción de6 nstrucciones primiti)as. nstrucciones de proceso. nstrucciones de control. nstruccionescompuestas. nstrucciones de descripción. #structura a seguir en sureali$ación6 Cabecera. !rograma. 3odulo. %ipos de datos. Constantes. 7ariables. Cuerpo. nicio. nstrucciones. 5in.
LI#&A DE "ALA)RA# RE#ER*ADA# + #U #IG%IFICAD!:
Instr,cci(n #igni'cado
algoritmo nombre 3arca el comien$o de un algoritmo + leadjudica un nombre
nicio 3arca el comien$o de un bloque deinstrucciones
&n 3arca el &nal de un bloque deinstrucciones
)ariables
nombre)ar es tipodedatos Declaración de )ariables. ndica elidenti&cador + el tipo de las )ariablesque se )an a usar en el algoritmo
constantes
nombreconst E epresión Declaración de constantes. *a epresiónse e)al(a + su resultado se asigna a laconstante. #ste )alor no puedemodi&carse a lo largo del programa.
leer )ariable" #ntrada de datos. #l programa lee undato desde un dispositi)o de entrada sino se indica otra cosa- el teclado"-asignando ese dato a la )ariable
8/18/2019 Programacion Unidad 2.Pptx
11/12
escribir )ariable" 'alida de datos. 'ir)e para que elprograma escriba un dato en undispositi)o de salida si no se indica otracosa- la pantalla".
)ariable E epresión Asignación. *a epresión se e)al(a + suresultado es asignado a la )ariable
si condición" entonces
inicio
acciones91
&n
sino
inicio
acciones92
&n
nstrucción condicional doble. #lordenador e)aluará la condición- quedebe ser una epresión lógica. 'i es)erdadera- reali$a las acciones91- +- si es,alsa- las acciones92.nstruccióncondicional simple. #s igual pero carecede la rama “sino”- de modo que- si laepresión de ,alsa- no se reali$a ningunaacción + la ejecución contin(a por lasiguiente instrucción
seg(n epresión" acer
inicio
)alor16 acciones91)alor26 acciones92
>
)alor:6 acciones9F
sino6 acciones9sino
&n
nstrucción condicional m(ltiple. 'eutili$a cuando a+ más de doscondiciones posibles )erdadero o,also" . 'e e)al(a la epresión- que sueleser de tipo entero- + se busca un )aloren la lista )alor1- )alor2-> )alorF quecoincida con ella- reali$ándose lasacciones asociadas al )alorcoincidente.'i ning(n )alor de la listacoincide con la epresión del “seg(n”- sereali$an las acciones de la parte “sino”.
mientras condición" acer
inicio
acciones
&n
Gucle mientras. *as acciones se repitenen tanto la condición- que debe ser unaepresión lógica- sea )erdadera. *acondición se e)al(a antes de entrar albloque de acciones- de modo quepueden no ejecutarse ninguna )e$.
8/18/2019 Programacion Unidad 2.Pptx
12/12
repetir
inicio
acciones
&n
mientras que condición"
Gucle repetir. *as acciones se repiten entanto que la condición- que debe ser unaepresión lógica- sea )erdadera. 'eparece muco al anterior- pero lacondición se e)al(a al &nal del bucle- por
lo que ste se ejecuta- como m/nimo-una )e$
para )ariable desde epr9ini asta epr9&n acer
inicio
acciones
&n
Gucle para. 'e e)al(a la epresión epr9ini- que debe ser de tipo entero- + seasigna ese )alor a la )ariable. Dica)ariable se incrementa en una unidad encada repetición de las acciones. *asacciones se repiten asta que la )ariablealcan$a el )alor epr9&n.