ciencia&de&la&computacion& · metodologíade&laprogramación& la...

63
CIENCIA DE LA COMPUTACION CUERPO DOCENTE Jefe de Trabajos Prác:cos: Andrea L. Riera Ayudante Diplomado: Marcelo Marchioni Ayudante Diplomado: Fabio Buchiarelli Ayudante Diplomado: Sebas?án Villar Profesor: Alejandro Rozenfeld www.fio.unicen.edu.ar planes de estudio Ciencia de la Computacion…

Upload: others

Post on 21-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

CIENCIA13 DE13 LA13 COMPUTACION13

CUERPO13 DOCENTE13 Jefe13 de13 Trabajos13 Praacuteccos13 Andrea13 L13 Riera13 Ayudante13 Diplomado13 Marcelo13 Marchioni13 Ayudante13 Diplomado13 Fabio13 Buchiarelli13 Ayudante13 Diplomado13 Sebasaacuten13 Villar13 Profesor 13 Alejandro13 Rozenfeld13 13 wwwfiouniceneduar13 agrave13 planes13 de13 estudio13 agrave13 Ciencia13 de13 la13 Computacionhellip13

iquest13 Queacute13 es13 un13 Ordenador13 13 13 1048576104857710485781048579104858010485811048582104858310485841048585104858610485871048588104858910485901048591104859210485931048594104859510485961048597104859810485991048600104860110486021048603104860410486051048606104860710486081048609104861010486111048612104861310486141048615104861610486171048618104861910486201048621104862210486231048624104862510486261048627104862810486291048630104863110486321048633104863410486351048636104863710486381048639104864010486411048642104864310486441048645104864610486471048648104864910486501048651104865210486531048654104865510486561048657104865810486591048660104866110486621048663104866410486651048666104866710486681048669104867010486711048672104867310486741048675104867610486771048678104867910486801048681104868210486831048684104868510486861048687104868810486891048690104869110486921048693104869410486951048696104869710486981048699104870010487011048702104870313 Maquina13 electroacutenica13 disentildeada13 para13 manipular13 y13 procesar13 datos13 capaz13 de13

desarrollar13 complejas13 operaciones13 a13 gran13 velocidad13 siguiendo13 un13 programa13 de13 instrucciones13

1048576104857710485781048579104858010485811048582104858310485841048585104858610485871048588104858910485901048591104859210485931048594104859510485961048597104859810485991048600104860110486021048603104860410486051048606104860710486081048609104861010486111048612104861310486141048615104861610486171048618104861910486201048621104862210486231048624104862510486261048627104862810486291048630104863110486321048633104863410486351048636104863710486381048639104864010486411048642104864310486441048645104864610486471048648104864910486501048651104865210486531048654104865510486561048657104865810486591048660104866110486621048663104866410486651048666104866710486681048669104867010486711048672104867310486741048675104867610486771048678104867910486801048681104868210486831048684104868510486861048687104868810486891048690104869110486921048693104869410486951048696104869710486981048699104870010487011048702104870313 Todo13 aparato13 desnado13 a13 procesar13 informacioacuten13 entendiendo13 por13 proceso13 las13 sucesivas13 fases13 manipulaciones13 o13 transformaciones13 que13 sufre13 la13 informacioacuten13 para13 resolver13 un13 problema13 determinado13 siguiendo13 las13 instrucciones13 de13 un13 programa13

13 Entre13 sus13 caracteriacutescas13 podemos13 citar13

bull13 Son13 programables13 bull13 Versalidad13 Permiten13 realizar13 diversos13 trabajos13 bull13 Interacvidad13 Manenen13 diaacutelogos13 con13 los13 usuarios13 y13 actuacutean13 en13 funcioacuten13 de13 sus13

ordenes13 bull13 Alta13 Capacidad13 de13 almacenamiento13 bull13 Rapidez13

CIENCIA13 DE13 LA13 COMPUTACION13

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

CIENCIA13 DE13 LA13 COMPUTACION13

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

bull  Hardware Dispositivos fiacutesicos que componen el ordenador teclado pantalla ratoacuten discos memoria CD-ROM unidades de procesamiento etc

bull  Software Conjunto de programas que el ordenador puede ejecutar

bull  Personas Entretenimiento medicina educacioacuten empresas etc

bull  Datos e informacioacuten13

Tipos13 de13 Ordenadores13 bull  Superordenadores

ndash  Son escasos debido a su elevado precio ndash  Altas prestaciones para caacutelculos complejos ndash  Los usan grandes organizaciones ndash  Se aplican al estudio del espacio y la meterologiacutea

bull  Macroordenadores (Mainframes) ndash  Soportan cientos e incluso miles de usuarios ndash  Los usan grandes organizaciones donde se necesita

acceder a datos y programas compartidos ndash  Servidores de e-comercio para manejar

transacciones en Internet13

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 2: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

iquest13 Queacute13 es13 un13 Ordenador13 13 13 1048576104857710485781048579104858010485811048582104858310485841048585104858610485871048588104858910485901048591104859210485931048594104859510485961048597104859810485991048600104860110486021048603104860410486051048606104860710486081048609104861010486111048612104861310486141048615104861610486171048618104861910486201048621104862210486231048624104862510486261048627104862810486291048630104863110486321048633104863410486351048636104863710486381048639104864010486411048642104864310486441048645104864610486471048648104864910486501048651104865210486531048654104865510486561048657104865810486591048660104866110486621048663104866410486651048666104866710486681048669104867010486711048672104867310486741048675104867610486771048678104867910486801048681104868210486831048684104868510486861048687104868810486891048690104869110486921048693104869410486951048696104869710486981048699104870010487011048702104870313 Maquina13 electroacutenica13 disentildeada13 para13 manipular13 y13 procesar13 datos13 capaz13 de13

desarrollar13 complejas13 operaciones13 a13 gran13 velocidad13 siguiendo13 un13 programa13 de13 instrucciones13

1048576104857710485781048579104858010485811048582104858310485841048585104858610485871048588104858910485901048591104859210485931048594104859510485961048597104859810485991048600104860110486021048603104860410486051048606104860710486081048609104861010486111048612104861310486141048615104861610486171048618104861910486201048621104862210486231048624104862510486261048627104862810486291048630104863110486321048633104863410486351048636104863710486381048639104864010486411048642104864310486441048645104864610486471048648104864910486501048651104865210486531048654104865510486561048657104865810486591048660104866110486621048663104866410486651048666104866710486681048669104867010486711048672104867310486741048675104867610486771048678104867910486801048681104868210486831048684104868510486861048687104868810486891048690104869110486921048693104869410486951048696104869710486981048699104870010487011048702104870313 Todo13 aparato13 desnado13 a13 procesar13 informacioacuten13 entendiendo13 por13 proceso13 las13 sucesivas13 fases13 manipulaciones13 o13 transformaciones13 que13 sufre13 la13 informacioacuten13 para13 resolver13 un13 problema13 determinado13 siguiendo13 las13 instrucciones13 de13 un13 programa13

13 Entre13 sus13 caracteriacutescas13 podemos13 citar13

bull13 Son13 programables13 bull13 Versalidad13 Permiten13 realizar13 diversos13 trabajos13 bull13 Interacvidad13 Manenen13 diaacutelogos13 con13 los13 usuarios13 y13 actuacutean13 en13 funcioacuten13 de13 sus13

ordenes13 bull13 Alta13 Capacidad13 de13 almacenamiento13 bull13 Rapidez13

CIENCIA13 DE13 LA13 COMPUTACION13

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

CIENCIA13 DE13 LA13 COMPUTACION13

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

bull  Hardware Dispositivos fiacutesicos que componen el ordenador teclado pantalla ratoacuten discos memoria CD-ROM unidades de procesamiento etc

bull  Software Conjunto de programas que el ordenador puede ejecutar

bull  Personas Entretenimiento medicina educacioacuten empresas etc

bull  Datos e informacioacuten13

Tipos13 de13 Ordenadores13 bull  Superordenadores

ndash  Son escasos debido a su elevado precio ndash  Altas prestaciones para caacutelculos complejos ndash  Los usan grandes organizaciones ndash  Se aplican al estudio del espacio y la meterologiacutea

bull  Macroordenadores (Mainframes) ndash  Soportan cientos e incluso miles de usuarios ndash  Los usan grandes organizaciones donde se necesita

acceder a datos y programas compartidos ndash  Servidores de e-comercio para manejar

transacciones en Internet13

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 3: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

CIENCIA13 DE13 LA13 COMPUTACION13

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

bull  Hardware Dispositivos fiacutesicos que componen el ordenador teclado pantalla ratoacuten discos memoria CD-ROM unidades de procesamiento etc

bull  Software Conjunto de programas que el ordenador puede ejecutar

bull  Personas Entretenimiento medicina educacioacuten empresas etc

bull  Datos e informacioacuten13

Tipos13 de13 Ordenadores13 bull  Superordenadores

ndash  Son escasos debido a su elevado precio ndash  Altas prestaciones para caacutelculos complejos ndash  Los usan grandes organizaciones ndash  Se aplican al estudio del espacio y la meterologiacutea

bull  Macroordenadores (Mainframes) ndash  Soportan cientos e incluso miles de usuarios ndash  Los usan grandes organizaciones donde se necesita

acceder a datos y programas compartidos ndash  Servidores de e-comercio para manejar

transacciones en Internet13

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 4: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Elementos13 de13 un13 Sistema13 de13 Computacioacuten13

bull  Hardware Dispositivos fiacutesicos que componen el ordenador teclado pantalla ratoacuten discos memoria CD-ROM unidades de procesamiento etc

bull  Software Conjunto de programas que el ordenador puede ejecutar

bull  Personas Entretenimiento medicina educacioacuten empresas etc

bull  Datos e informacioacuten13

Tipos13 de13 Ordenadores13 bull  Superordenadores

ndash  Son escasos debido a su elevado precio ndash  Altas prestaciones para caacutelculos complejos ndash  Los usan grandes organizaciones ndash  Se aplican al estudio del espacio y la meterologiacutea

bull  Macroordenadores (Mainframes) ndash  Soportan cientos e incluso miles de usuarios ndash  Los usan grandes organizaciones donde se necesita

acceder a datos y programas compartidos ndash  Servidores de e-comercio para manejar

transacciones en Internet13

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 5: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Tipos13 de13 Ordenadores13 bull  Superordenadores

ndash  Son escasos debido a su elevado precio ndash  Altas prestaciones para caacutelculos complejos ndash  Los usan grandes organizaciones ndash  Se aplican al estudio del espacio y la meterologiacutea

bull  Macroordenadores (Mainframes) ndash  Soportan cientos e incluso miles de usuarios ndash  Los usan grandes organizaciones donde se necesita

acceder a datos y programas compartidos ndash  Servidores de e-comercio para manejar

transacciones en Internet13

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 6: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Tipos13 de13 Ordenadores13

bull  Miniordenadores ndash Maacutes pequentildeos con un mainframe aunque

maacutes grandes que un ordenador personal ndash Con muacuteltiples terminales ndash Servidores de redes de ordenadores e

Internet bull  Ordenadores Personales (PCs)

ndash Ordenadores de sobremesa ndash Ordenadores portaacutetiles ndash Ordenadores de bolsillo13

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 7: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 del13 Ordenador13

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 8: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 Disposivos13 de13 Entrada13

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 9: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 Disposivos13 de13 Salida13

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 10: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 Disposivos13 de13 Almacenamiento13 Externo13

bull  Tienen maacutes capacidad que la memoria principal aunque son maacutes lentos

bull  La informacioacuten permanece indefinidamente hasta su borrado

bull  Discos cintas discos oacutepticos (CD y DVD) etc13

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 11: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 Memoria13 Principal13 bull  Gran velocidad para escribir y leer de

ella bull  Un programa ejecutable debe estar

almacenado en ella bull  Estaacute dividida en palabras de

memoria Cada palabra tiene asociada una direccioacuten

bull  Esta compuesta de ndash ROM ndash soacutelo lectura y permanente ndash RAM ndash lecturaescritura y volaacutetil13

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 12: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Hardware13 La13 CPU13 bull  Unidad aritmeacutetico-loacutegica (ALU)

ndash  Realiza operaciones de tipo aritmeacutetico y de tipo loacutegico (+ - lt gt gt= etc) En esta unidad es donde se hace todo el trabajo computacional

ndash  Contiene un reloj interno que marca el ritmo con el que se ejecutan las instrucciones de los programas Cuanto maacutes alta sea su frecuencia (que se mide en Megahertz Mhz) mayor seraacute la velocidad de proceso del ordenador

bull  Unidad de control ndash  controla le ejecucioacuten de los programas y el

funcionamiento general de todo el sistema bull  Detecta sentildeales de estado de las distintas unidades bull  Recupera y almacena datos de la memoria principal para que sean

procesados por la ALU bull  Genera sentildeales de control dirigidas a todas las unidades

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 13: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

SoYware13 del13 Ordenador13 Definicioacuten Informal Es la parte loacutegica del ordenador el conjunto de instrucciones (programas) que puede ejecutar el hardware para la realizacioacuten de las tareas de computacioacuten a las que se destina Definicioacuten Formal la suma total de los programas de coacutemputo procedimientos reglas [] documentacioacuten y datos asociados que forman parte de las operaciones de un sistema de coacutemputo (Ver IEEE Std 729-1993 IEEE Software Engineering Standard 729-1993 Glossary of Soft Engineering Terminology IEEE Comp Society Press 1993)13

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 14: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

SoYware13 del13 Ordenador13

El13 soYware13 del13 ordenador13 se13 puede13 clasificar13 esencialmente13 en13 dos13 pos13

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 15: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

El13 Sistema13 Operavo13 bull  Gestiona los recursos del ordenador bull  Facilita el uso del ordenador

ndash  Hace transparente al usuario las caracteriacutesticas de los dispositivos

ndash  Proporciona una interface de usuario bull  Servicios importantes de un SO

ndash  Sistema de ficheros ndash  Entradasalida con distintos dispositivos ndash  Ejecucioacuten de programas ndash  Medidas de seguridad

bull  Durante el arranque se carga en memoria y permanece residente todo el tiempo13

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 16: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

SoYware13 de13 Aplicacioacuten13

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 17: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Redes13 de13 Ordenadores13 Red de ordenadores mecanismo fiacutesico que permite la

comunicacioacuten de dos o maacutes ordenadores para intercambiar datos y compartir recursos

Ventajas Compartir recursos software y hardware Alta tolerancia a fallos Ahorro econoacutemico Medio de comunicacioacuten

13

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 18: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Redes13 de13 Ordenadores13

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 19: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Redes de Ordenadores Servicios de Internet13

bull  Correo electroacutenico (enviarrecibir mensajes de correo)

bull  Acceso remoto (Telnet ndash conectarse a otros ordenadores)

bull  Transferencia de ficheros (FTP - acceso a ficheros de datos)

bull  Grupos de noticias (News - Usenet) bull  Internet Relay Chat

(IRC - discusiones entre usuarios en liacutenea) bull  Videoconferencia

(Escucharse y verse en en tiempo real) bull  World Wide Web

(coleccioacuten de documentos multimedia)13

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 20: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Los ordenadores son tontos13

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecutan raacutepida y precisamente operaciones loacutegicas y matemaacuteticas

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Cumplen obedientemente lo que les decimos

(no siempre igual a lo que queremos) bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Errores pequentildeos pueden provocar

fallos graves13

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 21: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Lenguajes13 de13 Programacioacuten13

Un lenguaje de programacioacuten es una herramienta para producir software Se compone de un conjunto de reglas siacutembolos y signos que permiten la comunicacioacuten con el ordenador13

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 22: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

13  Tipos13

ndash Lenguajes13 de13 bajo13 nivel13  Lenguaje13 maacutequina13 13  Lenguaje13 ensamblador13

ndash Lenguajes13 de13 alto13 nivel13  Lenguajes13 imperavos13 o13 procedurales13  Lenguajes13 declaravos13  Lenguajes13 funcionales13 o13 de13 programacioacuten13 loacutegica13

Lenguajes13 de13 programacioacuten13 13

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 23: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

13  Evolucioacuten13 histoacuterica13

ndash  13 13 13 13 -shy‐5213 L13 Maacutequina13 ndash 49-shy‐5613 Ensambladores13 ndash 54-shy‐13 Fortran13 (56)13 Algol13 (58)13 Cobol13 (59)13 Lisp13 (62)13 Basic13 (64)13 C13 (72)13 Pascal13 (73)13 Modula-shy‐213 (79)13 Ada13 (80)13 13

ndash 61-shy‐13 Entornos13 de13 programacioacuten13 Prolog(72)13 Smalltalk13 (72)13 C++13 (85)13 Haskell13 (88)13 Java13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 24: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 MAacuteQUINA13  Es13 el13 uacutenico13 que13 enende13 directamente13 la13 computadora13

 Las13 instrucciones13 se13 expresan13 en13 sistema13 binario13 (cadenas13 de13 0rsquos13 y13 1rsquos)13 u13 octal13 o13 hexadecimal13

 Los13 datos13 se13 referencian13 por13 medio13 de13 las13 direcciones13 de13 memoria13 donde13 estaacuten13

 Tiene13 una13 sintaxis13 riacutegida13  Depende13 de13 la13 CPU13 del13 ordenador13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 25: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 MAacuteQUINA13  Repertorio13 de13 instrucciones13 reducido13  La13 programacioacuten13 en13 este13 lenguaje13 es13 tediosa13 y13 complicada13

 No13 admite13 poner13 comentarios13 =gt13 Diqcil13 legibilidad13

 Permite13 ulizar13 la13 totalidad13 de13 los13 recursos13  Programas13 muy13 eficientes13 en13 empo13 de13 ejecucioacuten13 y13 en13 ocupacioacuten13 de13 memoria13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 26: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 MAacuteQUINA13  Ejemplo13  000013 013 10113 110113 13 Carga13 el13 acumulador13 (0000)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (10113 1101213 =13 9310)13

 110013 113 01113 101113 13 Suma13 (1100)13 indirecta13 (1)13 del13 contenido13 de13 la13 direccioacuten13 (01113 1011213 =13 5910)13 con13 el13 acumulador13

13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 27: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 ENSAMBLADOR13  Es13 maacutes13 cercano13 al13 lenguaje13 humano13  Usa13 notacioacuten13 simboacutelica13 o13 nemoteacutecnica13 para13 representar13 los13 coacutedigos13 de13 operacioacuten13

 Tambieacuten13 uliza13 nombres13 para13 referenciar13 datos13 guardados13 en13 memoria13

 Permite13 el13 uso13 de13 comentarios13 13  Cada13 instruccioacuten13 en13 ensamblador13 se13 corresponde13 con13 una13 en13 lenguaje13 maacutequina13

Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 28: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 ENSAMBLADOR13  La13 traduccioacuten13 es13 realizada13 por13 un13 programa13 traductor13 llamado13 ensamblador13

 Posee13 la13 mayoriacutea13 de13 los13 inconvenientes13 del13 lenguaje13 maquina13  Baja13 portabilidad13  Formato13 de13 instrucciones13 riacutegido13  Repertorio13 reducido13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 29: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJE13 ENSAMBLADOR13  Ejemplo13  CAR13 Numero13 13 Carga13 el13 acumulador13 (CAR)13 con13 el13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Numero)13

 SUM13 Coste13 13 Suma13 (SUM)13 del13 contenido13 de13 la13 direccioacuten13 de13 memoria13 (Coste)13 con13 el13 acumulador13 13

13

5213 Lenguajes13 de13 programacioacuten13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 30: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Son13 independientes13 de13 la13 arquitectura13 qsica13 del13 computador13 (transportables)13

 Una13 instruccioacuten13 se13 traduce13 en13 varias13 instrucciones13 en13 lenguaje13 maacutequina13 (potentes)13 13

 Ulizan13 una13 nomenclatura13 cercana13 a13 la13 usada13 por13 las13 personas13 (faacutecil13 de13 aprender)13 13

 Facilita13 la13 escritura13 y13 lectura13 de13 programas13 (claros13 y13 13 legibles)13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 31: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJES13 DE13 ALTO13 NIVEL13  CARACTERIacuteSTICAS13  Las13 instrucciones13 se13 expresan13 por13 medio13 de13 texto13 (ingleacutes)13 con13 caracteres13 alfanumeacutericos13 y13 caracteres13 especiales13 (+13 -shy‐13 13 13 13 13 =13 )13

 Dispone13 de13 instrucciones13 complejas13 para13 todo13 po13 de13 operaciones13 aritmeacutecas13 para13 entradasalida13 de13 datos13

 Hay13 una13 gran13 candad13 y13 variedad13 de13 lenguajes13 de13 alto13 nivel13 13

Java13 FORTRAN13 C13 C++13 PASCAL13 Matlab13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 32: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 LENGUAJES13 DE13 ALTO13 NIVEL13 13 Ejemplo13 (Matlab)13

13 funcon13 cuadrado13 13 Este13 programa13 calcula13 cuadrados13 de13 113 a13 1013 13 13 for13 i=11013 13 13 13 13 13 13 disp([i13 i^2])13 13 13 end13

5213 Lenguajes13 de13 programacioacuten13 13 Lenguajes13 de13 programacioacuten13 13

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 33: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Lenguajes13 de13 Programacioacuten13 1 Tanto los lenguajes de alto nivel como los de bajo nivel no

son entendibles directamente por la maacutequina 2 Necesitan ser traducidos a instrucciones en lenguaje de

maacutequina 3 Es necesario disponer de un traductor o interfase con el

lenguaje de maacutequina para que el programa sea ejecutable Existen dos tipos fundamentales de traductores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Compiladores Compiladores 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703Interpretes13 Interpretes13

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 34: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Compiladores13

Software que traduce el programa inicial (programa fuente) escrito en un lenguaje de alto nivel a un programa (programa objeto) en lenguaje de maacutequina factible de ser ejecutado13

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 35: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Inteacuterpretes13

Analizan traducen y ejecutan una a una las instrucciones del programa fuente no se analiza una instruccioacuten hasta que la anterior se haya ejecutado

Los inteacuterpretes no generan programa objeto13

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 36: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Entornos13 Integrados13 de13 Desarrollo13

Un IDE es un software que incorpora todas las herramientas necesarias para el desarrollo de nuestros programas

Por herramientas entendemos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Editor 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Compilador 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Linker 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depuracioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ejecucioacuten En praacutecticas usaremos el Matlab13

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 37: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Metodologiacutea13 de13 la13 Programacioacuten13 La utilizacioacuten de conceptos y teacutecnicas adecuadas de programacioacuten es fundamental para obtener programas que cumplan los siguientes requisitos bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Legibles comprensibles por cualquier programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Modificables su estructura debe permitir

modificaciones bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Depurables debe ser faacutecil la localizacioacuten y correccioacuten

de errores Y como elementos adicionales se obtiene bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Reduccioacuten de los costos de mantenimiento bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aumento de la productividad del programador bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas quedan mejor documentados

internamente13

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 38: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Si no seguimos un meacutetodo de programacioacuten riguroso

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas son riacutegidos y difiacuteciles de adaptar a nuevos requerimientos

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programadores gastan mucho tiempo corrigiendo sus errores

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La comunicacioacuten entre programadores es muy difiacutecil

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Los programas y moacutedulos son poco reusables

bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Existen deficiencias en la documentacioacuten13

Metodologiacutea13 de13 la13 Programacioacuten13

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 39: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Resolucioacuten13 de13 un13 problema13 mediante13 una13 computadora13

1  Definicioacuten del problema 2  Anaacutelisis del problema 3  Disentildeo del algoritmo 4  Prueba del algoritmo 5  Codificacioacuten del algoritmo en un lenguaje 6  Prueba y puesta a punto del programa 7  Documentacioacuten del programa13

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 40: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Resolucioacuten13 de13 problemas13 con13 el13 Ordenador13

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 41: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Anaacutelisis13 de13 Requerimientos13 Esta fase consta de dos partes orientadas a

responder QUE es lo que hay que hacer 1 Definicioacuten del Problema identificar

claramente que es lo que se quiere resolver

2 Anaacutelisis del problema se basa en identificar 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 La fuente y los tipo de datos para las entradas 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Interaccioacuten de los datos y su transformacioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Destino y formato de salida

El anaacutelisis se realiza empleando el lenguaje natural13

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 42: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Etapa13 de13 Disentildeo13 En esta fase resolvemos el COMO se hace lo especificado en el anaacutelisis de

requerimientos 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 ideamos un algoritmo 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 utilizamos pseudocoacutedigo para su descripcioacuten 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos la teacutecnica divide y venceraacutes la

resolucioacuten de un problema complejo se realiza diviendo el problema en subproblemas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Aplicamos disentildeo descendente o modular 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 El disentildeo del algoritmo es independiente del lenguaje de programacioacuten en el que se vaya a codificar posteriormente13

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 43: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Implementacioacuten13 y13 Validacioacuten13

Implementacioacuten se pasa del disentildeo obtenido en la etapa anterior a una descripcioacuten escrita en un lenguaje de programacioacuten (un dialecto que pueda comprender el ordenador) Esta descripcioacuten (programa) debe compilarse y ejecutarse para pasar a la fase de validacioacuten

Validacioacuten es el proceso de identificar y eliminar errores para poder responder a dos preguntas

10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Construimos el software correcto (contra el usuario) 10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Lo construimos correctamente (contra la especificacioacuten)13

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 44: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 ALGORITMOS13 13 Conjunto13 ordenado13 de13 pasos13 a13 seguir13 para13 resolver13 un13 problema13 concreto13 en13 un13 empo13 finito13 y13 sin13 ambiguumledad13 ndash Acciones13 bien13 definidas13 ndash Secuencia13 finita13 y13 ordenada13 ndash Tiempo13 finito13

Organizacioacuten13 de13 los13 programas13 13

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 45: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Analogiacutea13 con13 el13 arte13 de13 la13 cocina13

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 46: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Mi13 Primer13 Algoritmo13

bull  Disentildear algoritmos para bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar una tortilla de patatas bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Hacer una llamada telefoacutenica bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Preparar un cubata bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Ordenar una lista de nuacutemeros bull  10485761048577104857810485791048580104858110485821048583104858410485851048586104858710485881048589104859010485911048592104859310485941048595104859610485971048598104859910486001048601104860210486031048604104860510486061048607104860810486091048610104861110486121048613104861410486151048616104861710486181048619104862010486211048622104862310486241048625104862610486271048628104862910486301048631104863210486331048634104863510486361048637104863810486391048640104864110486421048643104864410486451048646104864710486481048649104865010486511048652104865310486541048655104865610486571048658104865910486601048661104866210486631048664104866510486661048667104866810486691048670104867110486721048673104867410486751048676104867710486781048679104868010486811048682104868310486841048685104868610486871048688104868910486901048691104869210486931048694104869510486961048697104869810486991048700104870110487021048703 Buscar el alumno con nota maacutes

alta13

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 47: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Ejemplo13 de13 ALGORITMO13 13   Determinar13 si13 un13 nuacutemero13 es13 par13 13

1  Leer13 N13 2  Si13 N=213 13 13 Escribe13 ldquoes13 parrdquo13 3  Si13 N=113 13 13 Escribe13 ldquoes13 imparrdquo13 4  Si13 N=113 o13 N=213 ir13 a13 713 5  N=N-shy‐213 6  Ir13 a13 213 7  Fin13 del13 procedimiento13

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 48: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13   ALGORITMOS13 13 Caracteriacutescas13

ndash  Precisioacuten13 (no13 debe13 permir13 dobles13 interpretaciones)13 ndash  Repevidad13 13

(si13 el13 algoritmo13 se13 prueba13 dos13 veces13 en13 estas13 dos13 pruebas13 se13 debe13 obtener13 el13 mismo13 resultado)13

ndash  Finito13 en13 tamantildeo13 y13 empo13 de13 ejecucioacuten13 ndash  Debe13 ser13 general13 es13 decir13 soportar13 la13 mayoriacutea13 de13 las13 variantes13 que13 se13 puedan13 presentar13 en13 la13 definicioacuten13 del13 problema13 (datos13 de13 entrada)13

13 Propiedad13 bull  Es13 independiente13 del13 lenguaje13 de13 programacioacuten13 en13 el13 que13 se13

implemente13 y13 de13 la13 computadora13 en13 la13 que13 se13 ejecute13 bull  Cero13 o13 maacutes13 entradas13 y13 una13 o13 maacutes13 salidas13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 49: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 ALGORITMOS13 13 13 13 Para13 resolver13 un13 mismo13 problema13 se13 pueden13 definir13 varios13 algoritmos13 13 Factores13 para13 decidir13 que13 algoritmo13 usar13

ndash Tiempo13 que13 tarda13 en13 hallar13 la13 solucioacuten13 ndash Recursos13 ulizados13 para13 implantar13 el13 algoritmo13

Organizacioacuten13 de13 los13 programas13 13

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 50: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Instrucciones13

bull  Operaciones que ejecutara la computadora al implementar el algoritmo Estas instrucciones utilizan datos en forma de constantes y variables

bull  En todos los lenguajes hay un conjunto

miacutenimo de instrucciones que permite especificar el control propio del algoritmo13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 51: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 Tanto13 en13 la13 fase13 de13 anaacutelisis13 del13 problema13 como13 en13 el13 disentildeo13 del13

algoritmo13 se13 plantea13 la13 necesidad13 de13 representar13 claramente13 el13 flujo13 ordenado13 de13 operaciones13 que13 se13 han13 de13 ejecutar13 para13 su13 resolucioacuten13

 Existen13 diferentes13 meacutetodos13 ndash  Organigramas13 o13 diagramas13 de13 flujo13 ndash  Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13 13 representacioacuten13 mas13 ulizada13 por13 su13 sencillez13 y13 parecido13 al13 lenguaje13 humano13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 52: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Herramienta13 graacutefica13 de13 descripcioacuten13 de13 algoritmos13 faacutecil13 y13 extendida13

 Los13 siacutembolos13 representan13 acciones13  Las13 flechas13 representan13 el13 orden13 de13 ejecucioacuten13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 53: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Asignacioacuten13

13 13 13 Terminal13

M13 =13 313

Inicio13 Fin13

Organizacioacuten13 de13 los13 programas13 13

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 54: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

Diagrama13 de13 flujo13

Un diagrama de flujo siempre tiene un uacutenico punto de inicio y un uacutenico punto de teacutermino

Ademaacutes todo camino de ejecucioacuten debe permitir llegar desde el inicio hasta el teacutermino13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 55: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Organigramas13 o13 diagramas13 de13 flujo13 13 Siacutembolos13 13 Seleccioacuten13 13 13 13 13 13 13 13 13 13 13 13 EntradaSalida13

5313 Organizacioacuten13 de13 los13 programas13 13

Si13 Nltgt013

No13

Leer13 Dato13

Organizacioacuten13 de13 los13 programas13 13

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 56: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

13 Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13

13 13 13 13 13 13 13 13 13

5313 Organizacioacuten13 de13 los13 programas13 13

Inicio13

Suma = 0

Leer Dato13

Si13 Datoltgt013

No13 Suma = Suma + Dato

Escribir Suma

Fin13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 57: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 o13 lenguaje13 de13 descripcioacuten13 de13 algoritmos13  Es13 un13 conjunto13 pequentildeo13 y13 completo13 de13 sentencias13 mediante13 las13 cuales13 podemos13 expresar13 todas13 las13 instrucciones13 baacutesicas13  Reglas13

 Cada13 idenficador13 (variable13 constante)13 debe13 tener13 un13 nombre13 significavo13

 Cada13 sentencia13 debe13 ir13 en13 una13 liacutenea13  Los13 nombres13 de13 las13 sentencias13 son13 uacutenicos13 13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 58: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13  Ejemplo13 Suma13 de13 un13 numero13 variable13 de13 datos13

13 13 13 Suma13 =13 013 13 13 13 lee13 (dato)13 13 13 13 mientras13 (dato13 ltgt13 0)13 13 13 13 13 13 13 13 13 suma13 =13 suma13 +13 dato13 13 13 13 13 13 13 13 13 lee13 (dato)13 13 fin13 mientras13

13 13 13 escribe13 (lsquoLa13 suma13 total13 es13 =13 lsquo13 Suma)13

Organizacioacuten13 de13 los13 programas13 13

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13

Page 59: CIENCIA&DE&LA&COMPUTACION& · Metodologíade&laProgramación& La utilización de conceptos y técnicas adecuadas de programación, es fundamental para obtener programas que cumplan

5313 Organizacioacuten13 de13 los13 programas13 13

 REPRESENTACIOacuteN13 DE13 ALGORITMOS13 ndash Pseudocoacutedigo13 13 ndash Ventajas13 sobre13 las13 representaciones13 graacuteficas13

bull  Es13 maacutes13 compacto13

bull Maacutes13 faacutecil13 de13 escribir13 13

bull Maacutes13 faacutecil13 de13 traducir13 a13 un13 lenguaje13 de13 programacioacuten13 concreto13

Organizacioacuten13 de13 los13 programas13 13