Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc11/217Fundamentos deProgramacinCdigo del Curso: CY300Versin 4.0Gua del EstudianteLibro 1: Fundamentosde ProgramacinIBM IT Education ServicesWorldwide Certified Material
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc12/217.Informacin Sobre la PublicacinEsta publicacin ha sido producida usando Microsoft Word 2000 yMicrosoft PowerPoint2000 para Windows.Marcas RegistradasIBM es una marca registrada por International Business MachinesCorporation.Otras compaas, productos, y nombre de servicios pueden sermarcas registradas omarcas de servicios de otros.Trademarks of International Business Machines CorporationDB2 InformixLotus Script Net.dataMarcas Registradas de otras CompaasWindows, Microsoft Visual Studio Microsoft CorporationSybase Sybase Inc.Edicin Agosto 2007La informacin contenida en este documento no ha sido sometida aninguna pruebaformal de IBM y es distribuida bsicamente como es»sin ninguna garanta ya seaexpresa o implcita. El uso de estainformacin o la implementacin de cualquiera deestas tcnicas esresponsabilidad del comprador y depender de la habilidad de steparasu evaluacin e integracin en el ambiente operacional del comprador.A pesar deque cada tema ha sido revisado por IBM para su exactituden una situacin especfica,no hay garanta de que obtener el mismoresultado o uno similar a ste en otrasituacin. Los compradores queintenten adaptar estas tcnicas a sus propiosambientes lo hacen bajosu propio riesgo.Copyright International Business Machines Corporation, 2007. Allrights reserved.Este documento no puede ser reproducido en su totalidad o enparte sin el previopermiso escri to de IBM.Instrucciones Especiales para la Impresin de este Curso:No elimine pginas en blanco que puedan aparecer al final de cadaunidad entreunidades. Estas pginas fueron insertadasintencionalmente.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc13/217Gua del Estudiante Fundamentos de Programacini Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos totaloparcialmente sin el previo permiso escrito de IBM.ContenidoDescripc in del Curso…………………………………………………………………………….1Descripcin de Unidades………………………………………………………………………..2Volumen1: Conceptos de Programacin…………………………………………………5Unidad 1:Programas de Computadora……………………………………………………7Objetivos del Aprendizaje 71. Introduccin 82. Sistemas de Procesamiento 93. Algoritmos 94. Metodologa para Disear Algoritmos 95. Programas de Computadora 106. Definiciones Bsicas 117. Crear un Programa de Computadora 128. Funcionamiento delCompilador/Enlazador 139. Datos, Tipos de Datos y Funciones Incorporadas 1410. Expresiones: Tipos y Operadores 1711. Funciones Incorporadas 2212. Operacin de Asignacin 2313. Recomendaciones 24Resumen 25Unidad 1: Examen de Autoevaluacin 26Respuestas de la Unidad 1:Examen de Autoevaluacin 28Unidad 2: Conceptos de Diseo Estructurado………………………………………..29Objetivos delAprendizaje 291. Introduccin 302. Conceptos de Diseo Estructurado 303. Diseo Top Down 304. Diagramas de Estructura 325. Diagramas de Flujo o Flujograma 326. Recomendaciones para hacer Diagramas de Flujo 367. Ejemplo de un Diagrama de Flujo 368. Diagramas N-S o de Nassi-Schederman: 379. Pseudocdigo 39Resumen 41
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc14/217Fundamentos de Programacin Gua del Estudianteii Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos totaloparcialmente sin el previo permiso escrito de IBM.Unidad 2: Examen de Autoevaluacin 42Respuesta de la Unidad 2: Examen de Autoevaluacin 44Unidad 3: Programacin Estructurada…………………………………………………..45Objetivosdel Aprendizaje 451. Introduccin 462. Estructuras Secuenciales 463. Estructuras Selectivas 474. Estructuras Repetitivas o de Ciclo 495. Estructuras Anidadas 526. Control de Datos de Entrada 54Resumen 57Unidad 3: Examen de Autoevaluacin 58Respuestas de la Unidad 3: Examen de Autoevaluacin 60Unidad 4:Funciones y Procedimientos………………………………………………….61Objetivos del Aprendizaje 611. Introduccin 622. Funciones 633. Procedimientos 674. mbitos: Variables Globales y Locales 695. Comunicacin entre Subprogramas: Paso de Parmetros 716. Recursividad 75Resumen 78Unidad 4: Examen de Autoevaluacin 79Respuesta de la Unidad 4: Examen de Autoevaluacin 82Unidad 5: Estructura de Datos:Arreglos………………………………………………..83Objetivosdel Aprendizaje 831. Introduccin 842. Arreglos Unidimensionales: Arreglos o Vectores 843. Arreglos Bidimensionales: Matrices m x n 894. Arreglos Multidimensionales: Matrices m x n x…z 915.Almacenamiento de Arreglos en Memoria 91Resumen 93Unidad 5: Examen de Autoevaluacin 94Respuesta de la Unidad 5: Examen de Autoevaluacin 96Unidad 6: Entrada ySalida…………………………………………………………………….97
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc15/217Gua del Estudiante Fundamentos de Programaciniii Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos totaloparcialmente sin el previo permiso escrito de IBM.Objetivos del Aprendizaje 971. Introduccin 982. Entrada y Salida de un Programa 983. Buffers de Entrada y Salida 994. Imprimir Datos 1005. Entrada/Salida de Archivo: Formatos deRegistros 103Resumen 107Unidad 6: Examen de Autoevaluacin 108Respuesta de la Unidad 6: Examen de Autoevaluacin 110Unidad 7: Ejemplos de Programas……………………………………………………….111Objetivosdel Aprendizaje 1111. Verificar la Secuencias 1122. Rupturas de Control 1123. Emparejar Transacciones 113Resumen 117Volumen 2: ComplementosI………………………………………………………………..119Unidad1: Sentencias Simples……………………………………………………………..1211. Conceptos 121Ejercicios Resueltos 123Ejercicios por Resolver 129Unidad 2: Estructuras deDecisin……………………………………………………….1311.Conceptos 131Ejercicios Resueltos 132Ejercicios por Resolver 139Unidad 3: Estructuras de Repeticin……………………………………………………1411.Conceptos 141Ejercicios Resueltos 143Ejercicios Propuestos 148Unidad 4: Sentencias Simples (Pseudocdigo)…………………………………….149Ejercicios Resueltos149Ejercicios por Resolver 152Unidad 5: Estructuras de Decisin(Pseudocdigo)………………………………153Ejercicios Resueltos 153Ejercicios por Resolver 159Unidad 6: Estructuras de Repetic in (Pseudocdigo)…………………………..161Ejercicios Resueltos 161
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc16/217Fundamentos de Programacin Gua del Estudianteiv Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos totaloparcialmente sin el previo permiso escrito de IBM.Ejercicios Propuestos 166Volumen 3: ComplementosII……………………………………………………………….169Unidad4: Funciones y Procedimientos………………………………………………..171Ejercicios Resueltos 171Ejercicios Propuestos 175Unidad 5: Estructuras de Datos -Arreglos……………………………………………179Ejercicios Resueltos 179Ejercicios Propuestos 183Volumen 4: Ejercicios Propuestos……………………………………………………….189Unidad1: Programas de Computadora………………………………………………..191Respuestas de la Unidad 1: Ejercicios Propuestos 192Unidad 2: Conceptos de Diseo Estructurado………………………………………193Respuestas de laUnidad 2: Ejercicios Propuestos 194Unidad 3: Programacin Estructurada…………………………………………………197Respuesta Unidad 3: Ejercicios Propuestos 198Unidad 4:Procedimientos y Func iones………………………………………………..203Respuesta Unidad 4: Ejercicios Propuestos 204Unidad 5: Estructura de Datos:Arreglos………………………………………………207RespuestaUnidad 5: Ejercicios Propuestos 208
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc17/217Gua del Estudiante Fundamentos de ProgramacinLibro 1: Fundamentos de Programacin Descripcin del Curso 1Copyright IBM Corp. 2007Los materiales del curso no pueden serreproducidos total oparcialmente sin el previo permiso escrito de IBM.Descripcin del CursoNombre del CursoFundamentos de Programacin.DuracinLa duracin del curso es de 40 horas.PropsitoEl propsito de este curso es introducir los fundamentos deprogramacin, para ello seestudian los elementos del proceso dedesarrollo de aplicaciones que se ejecutan en lascomputadoras. Elcurso, cubre los conceptos de programa, estructura de datos, tiposdedatos, variables y constantes. Tambin, se discuten algunastcnicas para desarrollaralgoritmos, que se implementan en la programacin estructurada,as como, loselementos estndar de un programa de aplicacin decomputadora.AudienciaCualquier persona que desee obtener un conocimiento bsico acercade losfundamentos de la programacin.Pre-requisitosNinguno.Objetivos del CursoDespus de completar este curso, usted estar en la capacidadde:Crear la lgica bsica de un programa.Conocer los pasos bsicos necesarios para ir desde el diseo de unprogramahasta su ejecucin.Describir los componentes bsicos de la configuracin de unacomputadora.AgendaCada unidad de este curso es de dos horas acadmicas deduracin.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc18/217Fundamentos de Programacin Gua del EstudianteDescripcin de Unidades Libro 1: Fundamentos de Programacin 2Copyright IBM Corp. 2007Los materiales del curso no pueden serreproducidos total oparcialmente sin el previo permiso escrito de IBM.Descripcin de UnidadesVolumen 1: Conceptos de ProgramacinUnidad 1: Programas de ComputadoraEn esta unidad se define el propsito y el contenido de unprograma de computacin yse aprende una metodologa para resolverproblemas de procesamiento de datos. Sediscuten los elementos de unprograma, para ello se estudian los conceptos devariables,variables contadoras, variables acumuladoras, constantes, losoperadoresaritmticos y operadores lgicos. Se estudian lasoperaciones incorporadas y sediscuten algunos de los errores mscomunes que se cometen en la programacin. Sepresentan tambin,algunas sugerencias para programar con estilo y disciplina.Unidad 2: Conceptos de Diseo IncorporadoAqu se definen los conceptos utilizados para facilitar elentendimiento de un problema.Se utilizan tcnicas Top-Down (de abajo hacia arriba) y seaprende cmo dibujargrficos que muestran la jerarqua de un problema,y as poder, a partir de estosgrficos, analizar el problema, crearlos diagramas de flujo y el pseudocdigo necesariopara comenzar aescribir un programa de computacin. Se discuten los DiagramasdeEstructura, los Diagramas de Flujo, los Diagramas N-S o deNassi-Schederman, ascomo los conceptos y elementos delpseudocdigo.Unidad 3: Programacin EstructuradaSe describen los conceptos relacionados con las estructuras delos bloques de cdigoque conforman un programa de computadora bajoel concepto de ProgramacinEstructurada. Se revisan las estructurassecuenciales, las selectivas o de bifurcacinpara direccionar elflujo de control. Tambin, se estudian las estructuras de bloquesdecdigo para ciclos o repeticiones, en conjunto con las capacidadesde anidamiento debloques de cdigo. Por ltimo, se muestran algunoscasos del uso de las estructuras decontrol y repeticin en laentrada de datos.Unidad 4: Funciones y ProcedimientosEn esta unidad, se estudia el concepto de funciones yprocedimientos. Se describe lasintaxis y el uso de losprocedimientos y funciones como parte de un programa decomputadora.Se analiza el mbito de las variables, la invocacin de funcionesyprocedimientos desde un programa, as como la comunicacin entresubprogramas opase de parmetros o argumentos. Por ltimo, se revisael concepto de recursividad,adems de cmo se definen y usan lasfunciones y procedimientos recursivos.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc19/217Gua del Estudiante Fundamentos de ProgramacinLibro 1: Fundamentos de Programacin Descripcin de Unidades 3Copyright IBM Corp. 2007Los materiales del curso no pueden serreproducidos total oparcialmente sin el previo permiso escrito de IBM.Unidad 5: Estructura de Datos: ArreglosSe estudian las estructuras de almacenamiento continuo y surepresentacin en lamemoria del computador. Se revisan los conceptosde arreglos unidimensionales ovectores, matrices de dos dimensionesy matrices multidimensionales.Unidad 6: Entrada y SalidaEsta unidad presenta la descripcin de los conceptos bsicos deentrada y salida en unprograma de computadora, tomando en cuentaalgunas consideraciones especficaspara imprimir una salida. Sedescriben los conceptos de registros de datos fijos, variableybloqueado. Se finaliza con la creacin del diseo de un programa quepermite manejarencabezados de pgina.Unidad 7: Ejemplos de ProgramasEsta unidad est diseada para reforzar los conceptos presentadosen las unidadesanteriores. Se presentan ejemplos que permitendisear programas para manejar laverificacin de secuencias y rupturas de control, as como pararesolver problemas deemparejamiento de transacciones.Volumen 2: Complementos IUnidad 1: Sentencias SimplesEn esta unidad se aprecia cmo se realiza la Declaracin deVariables, Asignacin deVariables, Lectura de Variables desde undispositivo de entrada de datos hacia lamemoria, Escritura de Datosdesde la memoria hacia un dispositivo de salida, todo estocon surespectiva notacin de Diagramas de Flujo o Flujogramas. Tambinsepresentan una serie de Ejercicios Resueltos aplicando la tcnicade Diagrama de Flujo oFlujograma.Unidad 2: Estruc turas de DecisinAqu se visualiza la aplicacin de los tres tipos de Estructurasde Decisin: simple,dobles y mltiples. Denotando el concepto de cadauna de ellas y aplicando estas bajola tcnica de Flujograma oDiagrama de Flujo.Unidad 3: Estructuras de RepeticinSe describen los conceptos relacionados con las estructuras deRepeticin: CicloMientras.. Hacer (while .. do), Ciclo Repetir ..Hasta (Repeat ..until), Ciclo Desde (for);aplicando cada uno deellos bajo la tcnica de Flujograma o Diagrama de Flujo.Unidad 4: Sentencias Simples (Pseudocdigo)En esta unidad se aprecia cmo se realiza la Declaracin deVariables, Asignacin deVariables, Lectura de Variables, as como laestructura bsica de un algoritmo
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc110/217Fundamentos de Programacin Gua del EstudianteDescripcin de Unidades Libro 1: Fundamentos de Programacin 4Copyright IBM Corp. 2007Los materiales del curso no pueden serreproducidos total oparcialmente sin el previo permiso escrito de IBM.representada bajo la tcnica de Pseudocdigo. Tambin se presentanuna serie deEjercicios Resueltos aplicando la tcnica dePseudocdigo.Unidad 5: Estructuras de Decisin (Pseudocdigo)Aqu se visualiza la aplicacin de los tres tipos de Estructurasde Decisin: simple,dobles y mltiples. Denotando el concepto de cadauna de ellas y aplicando estas bajola tcnica de Pseudocdigo.Unidad 6: Estructuras de Repeticin (Pseudocdigo)Se describen los conceptos relacionados con las estructuras deRepeticin: CicloMientras.. Hacer (while .. do), Ciclo Repetir ..Hasta (Repeat ..until), Ciclo Desde (for);aplicando cada uno deellos bajo la tcnica de Pseudocdigo.Volumen 3: Complementos IIUnidad 1: Funciones y ProcedimientosAqu se presentan una serie de ejercicios resueltos aplicando latcnica dePseudocdigo, empleando los conceptos de Funciones yProcedimientos que permitevisualizar su aplicacin.Unidad 2: Estructuras de Datos – ArreglosEn esta unidad se aprecia la representacin de Arreglosunidimensionales ybidimensionales por medio de ejerciciosresueltos, utilizando la tcnica dePseudocdigo.Volumen 4: Ejercicios PropuestosDesde la Unidad 1 hasta la Unidad 5, se presenta una variedad deejercicioscorrespondientes a los conceptos manejados por cadaunidad, que han sido resueltospara mayor comprensin. En la mayorade los casos se aplica la tcnica dePseudocdigo para el diseo dealgoritmos, en otro caso una descripcin comprensiblede la solucindel problema como se puede visualizar en la resolucin de losejerciciospara la Unidad 1.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc111/217Gua del Estudiante Fundamentos de ProgramacinLibro 1: Fundamentos de Programacin Descripcin de Unidades 5Copyright IBM Corp. 2007Los materiales del curso no pueden serreproducidos total oparcialmente sin el previo permiso escrito de IBM.Volumen 1: Conceptos de Programacin
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc112/217
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc113/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 7Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Unidad 1: Programas de ComputadoraObjetivos del AprendizajeAl finalizar esta unidad, usted ser capaz de:Definir el propsito y el contenido de un programa decomputadora.Establecer una metodologa para resolver problemas deprocesamiento dedatos.Definir el concepto de dato, los tipos de datos y las funcionesincorporadas a loslenguajes de programacin.Enumerar las recomendaciones ms comunes necesarias paraprogramar conestilo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc114/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 8Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.1. IntroduccinEn la actualidad es comn contar con la ayuda de las computadoraspara la solucin deproblemas. Para casi cualquier problema tpico enlas reas de negocios, servicios ytecnologas, entre otras, lasolucin puede ser modelada con programas decomputadora, esta solucin es generalmente ms confiable y demenor costo.Los programas de computadora permiten dar solucin a problemas decualquier nivel,estas soluciones tpicamente llamadas aplicaciones,las realiza un equipomultidisciplinario donde se encuentran losprogramadores, diseadores y analistas desistemas, entre otrosespecialistas.Generalmente, los programadores utilizan algn lenguaje deprogramacin paradesarrollar las aplicaciones requeridas por losclientes. Estos lenguajes deprogramacin sirven como puente deenlace entre el anlisis realizado por el equipo dedesarrollo y lacapacidad de clculo que ofrece la computadora. En otras palabras,pormedio del lenguaje de programacin, el programador le indicar alcomputador lasecuencia de instrucciones que se deben ejecutar para obtener lasolucin esperadapor los clientes.Todo esto hace pensar que de alguna manera, un programador debetener cierta lgicaque le ayude a tratar con el lenguaje deprogramacin, esto es, debe saberexactamente las capacidadesbrindadas por el lenguaje de programacin y ms an,debe tenernociones claras de los fundamentos generales de la programacin.Como cualquier ciencia, la programacin requiere de una serie deconocimientosbsicos comunes a cualquier lenguaje de programacin,que le permitan al programadorindicarle inequvocamente alcomputador las tareas que ste debe realizar. Dichosconocimientosbsicos son conocidos como Fundamentos de Programacin, loscualesno son ms que un conjunto de reglas, tcnicas y conceptos queayudan a definir lo quese puede hacer con un lenguaje deprogramacin y as dar los primeros pasos paradesarrollaraplicaciones para la solucin de problemas computacionales.Este curso introduce al estudiante a los fundamentos de laprogramacin de manerabreve y concisa. Se discuten diversos temas,tales como: qu son los programas decomputadora?, el diseoestructurado, la lgica de programacin, diagramas deflujos,pseudocdigo, entrada y salida, entre otros.Para desarrollar programas de computadora existe una granvariedad de lenguajes deprogramacin, por esta razn, fue necesariodefinir una notacin genrica quepermitiera, en primer lugar,representar y describir el problema de forma clara y sencilla.Esta representacin se obtiene con el uso de algoritmos, loscuales permiten definir unasecuencia finita de pasos claros ysencillos, para obtener una solucin del problema.El proceso para desarrollar programas de computadora requiereentender y conceptuarel problema, para luego definir los aspectosimportantes acerca de la entrada, salida yalmacenamiento.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc115/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 9Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.En esta unidad se discuten los conceptos bsicos ms importantesde la programaciny la metodologa para desarrollar una solucincomputacional de un problema.2. Sistemas de ProcesamientoUn ordenador es una mquina de procesamiento de informacin. Esuna mquina,porque tiene cables, circuitos y dems elementosmecnicos. Es adems deprocesamiento, porque es capaz de transformaro procesar datos y de informacinporque maneja conjuntos ordenadosde datos.Para procesar la informacin se requiere del hardware comomicroprocesador, memoriaRAM, entre otros y del software que sirvepara manejar el hardware tal comoprogramas, sistema operativo,etc.3. Algor itmosEl concepto de algoritmo fue desarrollado por el matemtico persaAbu JafarMohammed Ibn Musa Al Khwarizmi. Se puede decir que un algoritmoes una frmulapara resolver un problema. Es un conjunto de accioneso secuencia de operaciones queejecutadas en un determinado orden,resuelven el problema planteado.Un algoritmo debe tener las siguientes caractersticas:Estar bien definido.Ser preciso.Ser finito.Bsicamente, un algoritmo es un proceso metdico que define unaserie finita de pasossencillos y sin ambigedades para la solucin deun problema.La programacin consiste en adaptar el algoritmo al ordenador. Elalgoritmo esindependiente de la implementacin en algn lenguaje deprogramacin.4. Metodologa para Disear Algori tmosUn algoritmo es una frmula para obtener la solucin de unproblema, sta frmulapuede ser planteada de diferentes formas y cadauna de estas formas puedeefectivamente resolver el problemaplanteado. Por esa razn, el diseo de un algoritmoes un procesocreativo, ya que no existe un conjunto de reglas queindiquenexpresamente cmo escribir un algoritmo en forma correcta,por el contrario, si existenmuchas maneras de resolver un problema, entonces existen muchosalgoritmos queimplementen la solucin.Sin embargo, hay una serie de pasos que permiten resolver unproblema de la formams conveniente, estos son:Anlisis del problema.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc116/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 10Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Diseo del algoritmo.Verificacin del algoritmo.Anlisis delProblemaDiseo delAlgoritmoVerificacindel Algoritmo Figura 1.1: Metodologa de Diseo de Algori tmos1.1 Anlis is del ProblemaEl primer paso es identificar el problema. Se debe revisarcuidadosamente el problemapara determinar qu tipo de informacin senecesita producir como salida. Luego seidentifica toda lainformacin que se necesita para encontrar la solucin. Enotraspalabras, es importante considerar lo que se est pidiendo enel problema, con quelementos se cuenta y cules se deben solicitarpara establecer el camino a seguir enla solucionar el problema.Luego de obtener todos estos datos, se inicia la fase deDiseo del Algoritmo.1.2 Diseo del AlgoritmoEn esta fase, la solucin del problema puede requerir variospasos, as que esnecesario buscar la manera ms fcil para simplificarla propuesta. Una forma dehacerlo, es identificar los procesos msimportantes y colocarlos en orden ascendentesegn su importancia yprecedencia, esto sirve como un algoritmo inicial.Este algoritmo inicial podr ser refinado en sucesivasoperaciones, hasta obtener unasolucin ms detallada y ms fcil detraducir a un lenguaje de programacin.1.3 Verificacin del Algori tmoCuando el algoritmo est listo, es necesario comprobar que cumplecon los procesosideados y produce el resultado esperado. Una manerade hacerlo, es por medio de laejecucin manual, que consiste enrealizar una prueba del algoritmo con datossignificativos ycomprobar que al ejecutar todos los procesos se obtienen losresultadosesperados para la salida.5. Programas de ComputadoraUn programa es un conjunto de instrucciones que ejecutadasordenadamente resuelvenun problema, en otras palabras es laimplementacin del algoritmo. Un programa decomputadora es unasecuencia de instrucciones que le indican al computador querealiceoperaciones especficas para lograr un resultado deseado. Consistede uno oms mdulos o rutinas, cada uno de los cuales puede estarcompuesto a su vez deotros mdulos o subprogramas. Un programa decomputadora no es:Una caja mgica.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc117/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 11Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Intrnsicamente correcto.Un programa de computadora debe ser:Una solucin a un problema.Una secuencia de instrucciones hechas para ejecutarse en unacomputadora.Slo tan correcto como el programador lo haya hecho.En resumen, un programa de computadora es un conjunto deinstrucciones generadaspor el programador, que le dicen alcomputador exactamente lo que debe hacer.6. Definiciones BsicasA continuacin se presentan un conjunto de definiciones bsicasque se usan en elentorno de un programa de computadora:Lenguaje de Mquina:es un lenguaje que puede ser interpretadodirectamente por loscircuitos internos de la computadora porque estbasado en instrucciones compuestaspor secuencias de ceros (0) yunos (1).Ventajas:No necesita ser traducido puesto que la mquina lo entiende.Opera directamente con la mquina.Puede llegar a ser muy eficiente en el manejo de recursos.Desventajas son:Extremadamente difcil de aprender, implementar y mantener.Es nico y particular para cada procesador.Lenguaje de Bajo Nivel (Ensamblador):es un lenguaje que usa elprogramador paracodificar sentencias simblicas que un compilador(programa traductor) puede convertiruna a una en instrucciones delenguaje de mquina. Hace uso de mnemotcnicos oabreviaturas, pararepresentar las instrucciones de mquina.Ventajas:No es tan complicado como el lenguaje de mquina.Eficiente en el manejo de recursos.Desventajas son:Cada procesador tiene su propio juego de instrucciones enensamblador. Debe ser traducido (ensamblado).Lenguaje de Alto Nivel: es un lenguaje de programacin orientadoal problema oprocedimientos, es cercano al idioma humano. Ejemplosde estos lenguajes sonCOBOL, PL/I, FORTRAN, Java, etc.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc118/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 12Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Algunos lenguajes de alto nivel se denominan Lenguajes deProgramacin Orientado aObjetos ( OOPL). Ejemplos de stos son:Smalltalk, Java, C++, Eiffel, etc.Ventajas:Son independientes del procesador.Son mucho ms fciles de aprender, implementar y mantener. Tienenun carcter genrico.Desventajas son:Menos eficientes en el manejo de los recursos.Requiere de un proceso de traduccin (compilacin).Compilar:Es traducir un programa escrito en un lenguaje de altonivel a un programaen lenguaje de mquina, que es la forma en que lacomputadora puede ejecutardirectamente las acciones oinstrucciones. Tpicamente una instruccin de alto nivel secompila otraduce, en muchas instrucciones de lenguaje de mquina.En algunos casos, el proceso de compilacin se descompone en dospasos:Compilar las instrucciones de alto nivel para producir lo que sedenomina elcdigo objeto.Enlazar (link) que es tomar el cdigo objeto generado y cualquierotro cdigoobjeto que sea requerido, que haya sido previamentegenerado y colocarlosjuntos, produciendo as el programa ejecutableo cdigo ejecutable.Base de Datos: Es una coleccin de datos completa e integrada,organizada paraevitar duplicados, que permite recuperar informacinpara satisfacer a una ampliavariedad de usuarios.Sistema Operativo:Es una coleccin organizada de software que seusa para ayudar ycontrolar las operaciones de una computadora.Almacenamiento:Se refiere a un dispositivo en el que los datosse pueden ingresar,guardar y posteriormente recuperar.7. Crear un Programa de ComputadoraPara crear un programa de computadora, generalmente elprogramador debe partir deun algoritmo y escribir las sentencias(instrucciones) del cdigo fuente en un editor. Uneditor es unprograma utilitario que permite la edicin de textos y programas.Existenmuchos editores que estn diseados especficamente para ayudar enla creacin delprograma fuente. Algunos incluso siguen laespecificacin de un lenguaje particular.El conjunto de sentencias fuente se denomina un programa fuente.El programa fuentees la entrada para el compilador, que loconvierte en un conjunto de comandosentendibles por el computadorllamado programa ejecutable.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc119/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 13Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Si se encuentra algn error en la sintaxis de los comandos en elprograma fuente, elcompilador listar cada uno de ellos y noproducir el programa ejecutable. Elprogramador debe repetir lospasos de editar/compilar hasta que no se encuentrenerrores decompilacin.La Figura 1.2 presenta en forma esquemtica los pasos para crearun programa decomputadora.Figura 1.2: Creacin de un Programa de Computadora8. Funcionamiento del Compilador/EnlazadorPrevio a la creacin del programa ejecutable, el compilador, sino detecta errores desintaxis, crea un programa objeto y un listadodel programa fuente. La Figura 1.3muestra la creacin del programa ejecutable, partiendo delprograma fuente, con unpaso de enlace (link) involucrado.El programa objeto, producido por el compilador, se usa como laentrada al enlazadorpara realizar lo que se llama el paso de edicinde enlace. El enlazador, combina elprograma objeto recin creado conotros programas objeto ya existentes, produciendo
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc120/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 14Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.el programa ejecutable. Los otros programas objeto generalmenteresiden en un archivoen disco llamado Librera de Enlace.Figura 1.3: Compilador / Enlazador9. Datos, Tipos de Datos y Funciones IncorporadasUn programa decomputadora, para que pueda ser ejecutado, debe ser cargadoenmemoria. La unidad de procesamiento del ordenador slo puedetrabajar con los datose instrucciones que residen en lamemoria.9.1 DatoEl dato es cualquier objeto o elemento de informacin que se usaa lo largo de diversasoperaciones dentro de un programa ofragmentos de ste. Los datos son los elementossobre los que seopera cuando se efecta una operacin en el computador, esdecir,cuando se ejecuta una instruccin en un programa.Un dato tiene un nombre que lo identifica y distingue de losdems elementos delprograma. Dicho nombre no es ms que otra forma dereferenciar la direccin dememoria que ocupa el dato, as que cuandose trabaja con el nombre del dato, enrealidad se trabajar con elvalor que se encuentra en esa direccin de memoria.Cuando se est trabajando con un programa de computadora, siemprese esttrabajando con direcciones de memoria, es por ello que es unaestrategia comnreferenciar esas posiciones de memoria por medio denombres o identificadoressignificativos para los humanos. En otraspalabras, un programa de computadora esuna serie de instruccionesorganizadas para manipular y trabajar con direcciones dememoria enun computador.Los datos pertenecen a un tipo de dato especfico, lo cual leindica al computador elrango de valores que dicho dato puedeaceptar y las operaciones que sobre l sepueden realizar.CompilacinProgramafuenteProgramaObjetoCompilador EnlazadorProgramaEjecutableLibreras deenlaceEnlaceCompilacin
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc121/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 15Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Por ltimo, los datos poseen un valor que bien puede cambiar opermanecer constantea lo largo del programa o mientras el dato estdisponible.9.2 Tipo de DatoEl tipo de dato es una definicin que agrupa los valores vlidospara un conjunto dedatos y las operaciones que sobre ellos se pueden realizar.Normalmente, se puedeestablecer una relacin de orden sobre losdatos de naturaleza escalar o con valoresdeterminsticos.Cada tipo de dato tiene una representacin determinada en elcomputador. Esto tieneque ver con el tamao o la cantidad de memoriaque el computador reserva paraalmacenar los datos de un tipoespecifico cualquiera. Todo, absolutamente todo, en lamemoria de uncomputador se representa por medio de cdigo binario, uncdigobinario es un nmero en base 2, cuyos dgitos son ceros o unos.De esta manera, uncdigo cualquiera puede ser tratado como un nmeroentero en un momento dado,como un carcter en otro o en cualquierotra forma diferente de acuerdo a lasnecesidades del programa.Los tipos de datos pueden ser:Tipo dato primitivo:Tipos bsicos o simples predefinidos en elsistema.Tipo de dato definidos por el usuario: Agregados por elprogramador.Los tipos de datos primitivos ms importantes son: numricos,lgicos y carcter. Acontinuacin se detalla cada uno de ellos:Numricos: Pueden ser a su vez:- Entero:Subconjunto finito del conjunto matemtico de los nmerosenteros. Notiene parte decimal. El rango de los valores depende deltamao que se lesasigne en la memoria para su representacin, este tamao esdefinido por ellenguaje de programacin, usualmente 2 bytes.- Real:Subconjunto finito del conjunto matemtico de los nmerosreales. Llevansigno y parte decimal. Se almacenan usualmente en 4bytes o ms(dependiendo del lenguaje de programacin que se utilice).Si se utilizannmeros reales muy grandes, se puede usar notacincientfica que se divideen mantisa, base y exponente. De tal formaque el valor se obtienemultiplicando la mantisa por la base elevadaal exponente.Lgicos o booleanos:Es aquel que slo puede tomar uno de los dosvalores,verdadero o falso (1 0). Este es el tipo de dato queretorna todas lasoperaciones lgicas.Carcter: Abarca al conjunto finito y ordenado de caracteres quereconoce lacomputadora: letras, dgitos, caracteres especiales,ASCII, UNICODE.Generalmente, sus valores se representan dentro deun par de comillas simples,aunque tambin se puede suministrar sucdigo numrico o posicin dentro delconjunto de caracteres vlidos quese est usando.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc122/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 16Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Tipo cadena o string: Conjunto de caracteres, que usualmente sepresentanentre los smbolos de comilla doble ().Los diversos lenguajes existentes pueden aadir ms tipos de datosu otrosmodificadores. Por ejemplo, el modificador Long se usacomnmente con los tiposentero (int) para indicar un entero de grantamao (Long int).En algunos lenguajes se definen tipos especiales para la fecha yhora, sobre todo en loslenguajes modernos, tales como Java.9.3 VariablesLas variables son instancias de un tipo de dato determinado,cuyo valor puede cambiardurante la ejecucin del programa o corridadel algoritmo.Antes de usar una variable, el programador debe definirla odeclararla, indicando sunombre y el tipo de dato al quepertenece.El nombre que se elija para una variable se denominaidentificador y debe ser unnombre significativo que est relacionadocon el propsito para el que se vaya a usar lavariable en elprograma.El identificador de una variable ser un conjunto de caracteresque tendrn ciertasrestricciones, segn lo defina el lenguaje deprogramacin. Por lo general, elidentificador de una variable tieneque empezar por una letra, el tamao y caracterespermitidos comoparte del identificador dependen del lenguaje de programacin.Algunos lenguajes de programacin asignan un valor por omisin odefecto a lasvariables, al momento de su declaracin. En cualquiercaso una variable puede tomarun valor inicial e ir cambindolo a lolargo de la ejecucin del programa o corrida delalgoritmo. Almomento de asignar un valor inicial a una variable, se ledenominainicializacin de la variable.9.4 Variables AcumuladorasAquellas variables que el programador use para ir sumandovalores a lo largo de laejecucin del programa, se denominanacumuladoras y es recomendable inicializarlascon un valorconveniente al uso que posteriormente se les d.9.5 Variables ContadorasSe llaman as a las variables que el programador usa para ircontando a lo largo de laejecucin del programa.9.6 ConstantesLas constantes son instancias de un tipo de dato determinado,que tienen un valor fijoasignado por el programador en el momentoen que la define. Este valor no puede sermodificado durante laejecucin del programa o corrida del algoritmo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc123/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 17Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Las constantes pueden llevar asociados un nombre o no, si no lollevan, se llamanliterales. El programador especifica su valor aldefinir la constante, que ya no puedecambiar a lo largo de laejecucin del programa. En cuanto al tipo de dato, hay quecolocarloo no dependiendo del lenguaje de programacin. Si no hace faltacolocarlo, esporque la constante tomar el tipo de dato del valorque se le asigne al definirla.Por ejemplo: Const PI=3,1416.La ventaja de usar constantes con nombre, es que en cualquierlugar donde quiera quevaya la constante, basta con colocar sunombre y luego el compilador lo sustituir por suvalor.Las constantes sin nombres o literales son de valor fijo: 5, 6,a, hola.9.7 Relacin entre Variables y Constantes en MemoriaAl declarar una variable o constante con nombre, automticamentese reserva enmemoria espacio para guardarla. El espacio reservadodepende del tipo de dato de lavariable o constante. En esa zona de memoria, es en la que seguardar el valorasociado a la variable o constante. Cuando elprograma use esa variable o constante,ir a ese lugar de la memoriaa buscar su valor.10. Expresiones: Tipos y OperadoresUna expresin es una combinacin de constantes, variables, signosde operacin,parntesis y nombres especiales (nombres de funcionesestndar), con un sentidounvoco y definido. De la evaluacin de unaexpresin resulta un nico valor o resultado.Una expresin tiene asociado un tipo de dato que corresponde conel tipo del valor quedevuelve la expresin cuando se evala, por loque habr tantos tipos de expresionescomo tipos de datos. En talsentido, se tienen expresiones numricas y lgicas.10.1 Expresiones Numricas: Operadores AritmticosLa expresin numrica es una combinacin de variables y constantesnumricas conoperadores aritmticos, que al evaluarla devuelve unvalor numrico.Algunos de los operadores aritmticos ms comunes son: +, -, *, /, los cuales equivalena las operaciones suma, resta, multiplicaciny divisin respectivamente.Otras operaciones aritmticas soportadas en algunos lenguajes deprogramacin son:Operador Resto o Mdulo: Devuelve el resto de una divisinentera.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc124/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 18Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Lenguaje Operador Ejemplo ResultadoC % 5 % 2 1Pascal mod 5 mod 2 1Tabla 1.1: Operador Resto o MduloOperador Divisin Entera: Devuelve la parte entera del cocientede unadivisin.Lenguaje Operador Ejemplo ResultadoC / 5 / 2 2Pascal Div 5 div 2 2Tabla 1.2: Operador Divisin EnteraOperador Potencia: Devuelve el valor de una base elevada a unapotenciadada.Lenguaje Operador Ejemplo ResultadoBasic ^ 5 ^ 2 25Tabla 1.3: Operador Potenc iaLos operadores anteriores se denominan operadores binariosporque utilizan dosoperando. Existen tambin otros tipos deoperadores que slo necesitan de unoperando y se denominanoperadores unarios.Algunos de los operadores unarios ms comunes son:El signo negativo: Operador unario que devuelve el valor actualdel operandomultiplicado por menos uno (-1).Lenguaje Operador Ejemplo ResultadoC – X= 5; -X; X= -5;Tabla 1.4: Signo NegativoOperador Decremento: Operador unario que devuelve el valoractual deloperador decrementado en una unidad.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc125/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 19Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Lenguaje Operador Ejemplo ResultadoC — X= 5; –X; X= 4;Tabla 1.4: Signo NegativoOperador Incremento: Operador unario que devuelve el valoractual deloperador incrementado en una unidad.Lenguaje Operador Ejemplo ResultadoC ++ X= 5; ++X; X= 6;Tabla 1.4: Signo Negativo10.2 Reglas de PrecedenciaEl orden en que se evalan los operadores aritmticos dentro deuna expresin influyedirectamente en el resultado que retorna dichaexpresin.Ejemplo:Sea la siguiente expresin aritmtica: 2 + 3 * 2 + 3Si se evala en el orden de aparicin se tiene: (((2 + 3) * 2) +3) = 13Si se evala primero la suma (+) y luego la multiplicacin (*) setendr la expresin:(2 + 3) * (2 + 3) = 25Si se evala primero la multiplicacin y luego la suma se tendr laexpresin:2 + (3 * 2) + 3 = 11Entonces, Cmo resolver est situacin potencialmenteproblemtica?La solucin es aplicar prioridad entre los operadores, de modoque ante la posibilidadde usar varios operadores aritmticos en unamisma expresin, siempre se aplicarprimero el de mayorprioridad.Cada lenguaje de programacin puede establecer sus propias reglasde prioridad oprecedencia de operadores. Siempre se pueden utilizarlos parntesis ( ) para definir ycambiar el orden en que se evala una expresin aritmticadada.El orden de precedencia definido comnmente para los operadoresaritmticos bsicoses:1. ^
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc126/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 20Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.2. *, /, div y mod3. + yEntre dos operaciones que tienen la misma precedencia, pararesolver la ambigedadhay que usar la regla de la asociatividad. Lams normal, es la asociatividad por laizquierda (primero lo de laizquierda).De esta forma, la expresin 2+3 * 2 / 3 5 ^ 2 ser evaluada como(2 + ((3 * 2) / 3)) (5^ 2).10.3 Expresiones Lgicas: Operadores Relacionales y Lgicos.Una expresin lgica es aquella que slo puede devolver uno de dosvalores: verdaderoo falso. Los operadores que pueden aparecer enuna expresin lgica son de dos tipos:lgicos o relacionales. Losoperadores lgicos slo trabajan sobre expresiones o datosqueretornan valores booleanos. Los operadores relacionales trabajancon expresionesnumricas para realizar comparaciones que retornan unvalor booleano. Es comn tenerexpresiones que combinan tanto losoperadores lgicos como relacionales, en estasexpresiones se evala ms de una condicin o relacin por medio deoperadoreslgicos.Los operadores relacionales ms usados son:< menor que> mayor que= igualdad (en C: ==)diferente (en C: !=)menor o igual quemayor o igual quePara evaluar una expresin relacional:Se evala el primer operando y se sustituye por su valor.Se evala el segundo operando y se sustituye por su valor.Se aplica el operador relacional y se devuelve el valor booleanocorrespondiente.Ejemplo:((5 * 4) + 1 (5 ^ 2)) < (2 – 1)- 4 < 1 la expresin retorna VerdaderoEjercicio:Evaluar las siguientes expresiones si a la variable x se leasigna el valor 2 y a lavariable y se le asigna el valor 4.Cada respuesta debe ser VERDADERO o FALSO, segn corresponda:
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc127/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 21Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.1. x == y : ___________2. x y : ___________3. y > x : ___________4. x >= y : ___________El problema es que en algunos casos se requiere preguntar oevaluar ms de unacondicin al mismo tiempo, para esto, estn losoperadores lgicos.Los operadores lgicos ms utilizados son:Y (and, &&)O (or, ||)No (not, ~, !)O exclusivo (xor, ^)Y, O y O exclusivo son operadores binarios.Estos operadores trabajan bajo el esquema: OperadorEl operador Noes de tipo unario y se coloca precediendo aloperando al que se niega.La tabla de verdad para los operadores lgicos binarios es comosigue:Operando 1 Operando 2 AND OR XORV V V V FV F F V VF V F V VF F F F FV= Verdadero; F= FalsoTabla 1.5: Tabla de Verdad para los operadores lgicosbinariosLa tabla de verdad para el operador unario Noes como sigue:NOT OperandoV FF VTabla 1.6: Tabla de Verdad para el operador unario No
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc128/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 22Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Se observa que para que el operador lgico AND sea Verdadero, esnecesario queambos operandos sean Verdaderos.Para que el operador lgico OR sea Verdadero, basta con que almenos uno de susoperandos sea Verdadero.Para que el operador XOR sea Verdadero, ambos operandos debenser diferentes entres.Ejercicio:Si xrepresenta 1 > 2 (FALSO) e yrepresenta 4 < 8(VERDADERO)Cul es el resultado de cada una de las siguientesexpresiones:1. NOT x : ___________2. x AND y : ___________3. y OR x : ___________4. (NOT x) AND y : ___________5. x XOR y : ___________11. Funciones IncorporadasLas funciones Incorporadas son funciones adicionales a lasoperaciones bsicas, quese incorporan al lenguaje de programacin. Seconsideran estndar en la mayora delenguajes de programacin. Sondependientes del lenguaje y normalmente seencuentran en librerasexternas que se pueden incluir en un programa. La sintaxisexacta y el nombre de las funciones pueden variar de un lenguajea otro, pero lafuncionalidad suele mantenerse entre las diversasherramientas de programacin.Las ms comunes son las libreras de soporte matemtico y las deentrada / salida.Todos los lenguajes de programacin proporcionan mecanismos paraincorporardiversos elementos que brinden funcionalidad extra a losprogramas. La Tabla 1.7,muestra la forma en que algunos lenguajesde programacin populares incorporanfuncionalidad extra.Lenguaje Sentencia EjemploPascal use use conio;C y C++ #include #includeJava import Import java.io.*;Tabla 1.7: Funcionalidad extra de algunos programas
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc129/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 23Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.12. Operacin de AsignacinLa operacin de asignacin consiste en atribuir un valor a unavariable. El valorasignado puede ser una expresin, una constante oel valor de otra variable.Las formas ms comunes del operador de asignacin se resumen en laTabla 1.8:Lenguaje Operador EjemploPascal := var := 5 + 3;C y C++ = var = var + 5;Java = var = Math.sin(90.0);Tabla 1.8: Operador de AsignacinEn los ejemplos de la tabla anterior, varrepresenta la variablea la que se le asigna elvalor dado en la expresin a la derecha del operador deasignacin.El proceso de asignacin se realiza en 2 fases:Se evala la expresin de la parte derecha de la asignacinobtenindose unnico valor.Se asigna ese valor a la variable de la parte izquierda.Debe tenerse en cuenta:En la parte izquierda de la operacin de asignacin, slo puedehaber unavariable.La variable a la que se le asigna el valor pierde su valoranterior. Si la variable a la que se le asigna un valor (parteizquierda) participa en laexpresin a evaluar (parte derecha), como por ejemplo lasentencia: x = x + 1 ,entonces como primero se evala la expresinantes de realizar la asignacin, elvalor usado en la expresin es elque tena la variable antes de la operacin. Enel ejemplo dado si xtena un valor igual a 5, entonces la evaluacin de laexpresin x = x+ 1sera x = 5+ 1, quedando xcon un valor final de 6.El tipo de dato del valor resultante al evaluar la parte derechade una operacinde asignacin, tiene que ser del mismo tipo de dato ode un tipo compatible, conla variable a la cual se le va a asignarel resultado de la operacin. Muchoslenguajes de programacin imponensus propias reglas de conversin de tiposde datos, definiendo culesson las operaciones permitidas entre los diversostipos dedatos.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc130/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 24Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.13. RecomendacionesCuando se programa existen una serie de problemas y errores deprogramacin quetienden a presentarse una y otra vez en losprogramas.Para minimizar la ocurrencia de errores en la programacin, esaconsejable que seconsideren las siguientes recomendaciones:Reutilizar cdigo probado: Puede existir un cdigo ya desarrolladoy probadopara resolver totalmente o parte del problema que puedautilizarse. Esto facilitala solucin del problema y minimiza eltiempo de desarrollo.Al reutilizar cdigo no se desperdicia tiempo depurando una partede la lgicaque se sabe que funciona.No asumir los datos de entrada como vlidos: Si no se tiene ningncontrol sobrela fuente de los datos, no se tiene ningn controlsobre la calidad de los mismos.No asumir que los datos de entrada estn en la secuenciacorrecta.Verificar siempre la secuencia: Es muy fcil para alguienproporcionar datoserrneos.Disear los tamaos de los campos de datos, de modo que tengancapacidadpara contener el valor ms grande permitido.Usar comentarios libremente. Explicar cualquier cosa que puedaconfundir a unfuturo lector, adems de sealar cualquier rea quepueda estar sujeta acambios.Hacer programas legibles y fciles de entender.Usar nombres adecuados para las variables, que sean autodescriptivos.Usar sangras, alineacin y espacios donde sea necesario (lneasblancas ycolumnas).
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc131/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 25Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.ResumenAhora que ha completado esta unidad, usted debe ser capazde:Definir el propsito y el contenido de un programa decomputadora.Utilizar una metodologa para resolver problemas de procesamientode datos. Describir el funcionamiento de uncompilador/enlazador.Definir el concepto de Dato.Describir los diferentes tipos de datos y las operacionesincorporadas a loslenguajes de programacin.Presentar las recomendaciones que ayudan a programar conestilo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc132/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 26Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Unidad 1: Examen de Autoevaluacin1) Cules de los siguientes sonlenguajes de alto nivel?a) Cobolb) Fortranc) Javad) Ensamblador2) Se entiende por algoritmo, un conjunto de reglas biendefinidas para la solucin deun problema en un nmero de pasos quepodra no ser finito.a) Verdaderob) Falso3) Seleccione las afirmaciones correctas en referencia a unprograma decomputadora.a) Es una solucin a un problemab) Es una caja mgicac) Es un conjunto de instrucciones hechas para ejecutarse en unacomputadorad) Todas las anteriores4) Para disear un programa de computadora se requiere de unproceso que cumplacon las siguientes caractersticas:a) Actualizableb) Fcil de mantenerc) No estructuradod) Ninguna de las anteriores5) Seleccione las afirmaciones correctas:a) El conjunto de sentencias creadas para resolver un problemase denomina»programa fuente»b) Un compilador convierte un programa fuente en un programaejecutablec) Si se encuentran errores de sintaxis en las instrucciones delprograma fuente,el compilador lista cada uno de ellos y produce unarchivo ejecutabled) Ninguna de las anteriores
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc133/217Gua del Estudiante Fundamentos de ProgramacinUnidad 1: Programas de Computadora Libro 1: Fundamentos deProgramacin 27Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.6) Cules de los siguientes son lenguajes de programacinorientado a objetos?a) Javab) Cc) C++d) Cobol7) Compilar es traducir un programa escrito en un lenguaje demquina en unprograma de alto nivel; forma en la cual la computadorapuede ejecutar acciones oinstrucciones.a) Verdaderob) Falso8) Para minimizar la ocurrencia de errores en la programacin serecomienda revisarque los programas cumplan con lo siguiente:a) Reutilizacin de cdigob) Asumir que todas las entradas deusuario son correctasc) Verificar que la secuencia de entrada de datos es larequerida por el programad) Que las instrucciones sean legibles y fciles de entender9) Un sistema operativo es una coleccin organizada de softwareque se usa paraayudar y, en parte, controlar las operaciones de unacomputadora.a) Verdaderob) Falso10) Cules de los siguientes son dispositivos dealmacenamiento?a) Tecladob) Cinta magnticac) Impresorad) Otra computadora
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc134/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 1: Programas deComputadora 28Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Respuestas de la Unidad 1: Examen de Autoevaluacin1) a, b y c2) b3) a y c4) a y b5) a y b6) a y c7) b8) a, c y d9) a10) b y d
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc135/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 29Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Unidad 2: Conceptos de DiseoEstructuradoObjetivos del AprendizajeAl finalizar esta unidad, usted ser capaz de:Listar las caractersticas del Diseo Estructurado.Definir los conceptos de diseo Top-Down.Describir los Diagramas de Estructura, Diagramas de Flujo yDiagramas de Nassi Schederman.Definir el concepto de Pseudocdigo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc136/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 30Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.1. IntroduccinExisten tcnicas para facilitar el entendimiento de un problemaen trminos que permitandesarrollar un algoritmo que ofrezca unasolucin y que, posteriormente, conlleve aldesarrollo de un programaque solucione el problema con la ayuda de un computador.stas tcnicas son:El diseo Top-Down (de arriba hacia abajo).Los diagramas de estructura.Los diagramas de flujo.El pseudocdigo.2. Conceptos de Diseo EstructuradoEl diseo estructurado es una metodologa para el desarrollo deprogramas, que puedeser definida a travs de las siguientescaractersticas:El sistema desarrollado siguiendo el diseo estructurado tendruna entrada y unasalida, con variaciones ocasionales.El diseo estructurado divide el problema a resolver en partes omdulos.El diseo estructurado evita el uso de la sentencia GOTO(sentencia que se utilizapara desviar el flujo normal de unprograma; la desventaja de esta sentencia esque el seguimiento delprograma puede ser desde difcil hasta imposible).3. Diseo Top DownEl diseo top down o refinamiento paso a paso, establece que debeirse de lo msgeneral a lo ms especfico y se define como el proceso de dividirun problema en sub-problemas ms pequeos.Para entender el diseo top down se presenta a continuacin unproblema ejemplo y sediscute cmo se aplica esta tcnica en el diseode programas.Enunciado del problema:Se le ha solicitado que escriba un programa para una tienda devideos que tenga comoobjetivo permitir que un cliente, previamenteregistrado en la tienda, alquile videos.Ya existe un sistema para llevar el control del inventario depelculas y registro de clientes.La tienda tiene un conjunto de reglas que deben cumplirse paraque un cliente alquile unvideo. Estas son:Un cliente es un miembro registrado.El cliente no debe tener alquileres vencidos.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc137/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 31Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.El cliente no debe nada a la tienda.La pelcula est en inventario.La pelcula no est reservada.Un programa de alto nivel ser: Alquilar un video.Al descomponer este programa de alto nivel, se obtienen lossiguientes sub-programas:Verificar si el cliente es un miembro registrado.Verificar si tiene alquileres vencidos.Verificar si el miembro debe dinero.Verificar si la pelcula est en el inventario.Verificar si la pelcula est reservada.Al descomponer de nuevo cada uno de los pasos anteriores, seobtiene:1. Verificar si el cliente es un miembro registrado: Ingresaruna identificacin del cliente en el sistema.Verificar si el sistema ha encontrado un perfil que coincida coneste cliente.2. Verificar los alquileres vencidos: Ver si el perfil reflejacualquier alquiler vencido en el sistema.3. Verificar si el miembro debe algn dinero: Ver si el perfilrefleja algn cargo pendiente.4. Verificar si la pelcula est en el inventario: Ingresar elnombre de la pelcula al sistema.Verificar si hay alguna copia que no est alquilada.5. Verificar si la pelcula est reservada: Ver si las copias queno estn alquiladas estn reservadas.De nuevo, al descomponer el sub-programa Verificar si el clientees un miembroregistrado:1.1. Verificar si el cliente es un miembro registrado: Preguntarla identificacin al cliente.1.2. Ingresar la identificacin en el sistema: Seleccionar delmen la opcin de verificar la identificacin del miembro.Ingresar la identificacin del cliente en el prompt.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc138/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 32Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Presionar la tecla que indica al sistema que est listo, para queste verifique porun nmero que coincida con el que se haingresado.1.3. Leer la pantalla para ver si el sistema ha encontradoalguna coincidencia: Verificar visualmente si el sistema dice s ‘ ono ‘ es un miembro.4. Diagramas de EstructuraUn diagrama de estructura es una manera grfica de representar eldiseo top down.Permite representar en forma clara la organizacin dealto nivel de un programa.La Figura 2.1 muestra un diagrama de estructura parcial delproblema presentado en elpunto anterior.Figura 2.1: Diagrama de Estructura del Problema Ejemplo5. Diagramas de Flujo o FlujogramaUn diagrama de flujo es una representacin grfica de la lgica deldiseo. Generalmente,presenta un nivel de detalle mucho mayor quelos diagramas de estructura.Un diagrama de flujo resulta adecuado cuando se desea obtenermayor detalle, tal comoagregar bifurcacin de condicionales y/oiteraciones.En todo diagrama de flujo, siempre habr una caja de inicio yotra de fin para el principio yfinal del algoritmo.AlquilarunaPelculaVerificar sies unmiembroVerificaralquileresvencidosVerificardeudaspendientesVerificar sipelculaestVerificar sino estreservadaPreguntaridentifica-cinIngresaridentifica-cinExaminarperfil
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc139/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 33Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.5.1 Los smbolosA continuacin los smbolos ms comunes que se usan en un diagramade flujo:Flechas o Lneas de Flujo: sirven para conectar lossmbolos deldiagrama. La flecha indica la secuencia en laque se van a ejecutarlas acciones.Smbolo de Proceso: Indica la accin que tiene querealizar lacomputadora. Dentro se escribe la accin.Entrada/Salida: Representa las acciones de entrada ysalida.Dentro se colocan las acciones de lectura yescritura.Condicin: En el rombo se coloca una condicin, alencontrar estesigno, se evala la condicin que haydentro. Segn la condicin, sea verdadera o falsa, se tomauncamino u otro. Sirve para representar estructurasselectivas yrepetitivas.Principio y Fin: Dentro del smbolo va la palabra inicio o findelalgoritmo.Subprograma: Dentro se coloca el nombre delsubprograma al que sellama.Conectores:Sirven cuando un flujograma no cabe en unacolumna dela hoja y hay que seguir en otra columna. Secolocan uno dondetermina la columna y otro dondeempieza. Hay 2 tipos:- Si es en la misma hoja.- Si es en una hoja distinta.Ac laratoria: Se usa para aadir comentarios que permitanentendermejor el cdigo, no es parte del cdigo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc140/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 34Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.5.2 Otros SmbolosPantalla:Cuando una salida es por pantalla.Teclado:Tambin se usa para representar una entradaporteclado.ImpresoraEntrada/Salida por DiscoLas bifurcaciones condicionales se ejecutan segn una determinadacondicin, es decir, sila condicin es verdadera se ejecuta un bloquedel proceso, si es falsa se ejecuta unbloque diferente.Una iteracin es cuando en un segmento de un algoritmo, los pasosse repiten un nmerodeterminado de veces mientras se cumple unadeterminada condicin.La metodologa para representar un problema utilizando diagramasde flujo, se describeen la Figura 2.2.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc141/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 35Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.5.3 Metodologa para Resolver un Problema con Diagramas deFlujoFigura 2.2: Metodologa para Resolver un Prob lema con Diagramasde FlujoDeterminar requerimientos del procesoDeterminar requerimientos del post-procesoFinDiagrama Flujo OK?Crear Diagrama de FlujoVerificar Diagrama de FlujoNOSIInicio
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc142/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 36Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.6. Recomendaciones para hacer Diagramas de Flujo El diagramadebe mostrar claramente donde inicia y donde termina.Cualquier camino que se siga, debe conducir al fin.Los smbolos deben estar organizados de tal forma, quevisualmente el flujo vayade arriba abajo y de izquierda aderecha.No debe usarse lenguajes de programacin dentro de lossmbolos.El diagrama debe estar centrado dentro de la pgina.Las flechas deben ser verticales u horizontales, nuncadiagonales.No deben cruzarse las flechas, para evitar esto estn losconectores.No abusar de los conectores.A un smbolo slo debe llegar una flecha, si fuese necesario otrasflechasentrantes, estas deben llegar a un conector.Las flechas deben entrar a los smbolos por arriba o por laizquierda,preferiblemente. Debe tratarse de que el diagrama se ajuste auna pgina, de no ser posible debeusarse un conector.7. Ejemplo de un Diagrama de FlujoEjemplo 2.1Calcular el producto de los nmeros positivos introducidos porteclado. El proceso finalizacuando se ingresa un nmero negativo oun cero.Algori tmo:1. Iniciar la variable que va a contener elproducto.2. Leer el primer nmero.3. Preguntar si es negativo o positivo.4. Si es negativo o cero se sale de la iteracin y se escribe elproducto.5. Si es mayor que cero, se multiplica el nmero ledo y se lee unnuevo nmero. Sevuelve al paso 2.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc143/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 37Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Figura 2.3: Diagrama de Flujo para el clculo del p roducto deenterosFin del Ejemplo 2.18. Diagramas N-S o de Nassi-Schederman:Es una forma de representacin semejante al flujograma o diagramade flujo, pero sinflechas y cambiando los smbolos de condicin yrepeticin. Est conformado por unaserie de cajas de procesos queconstituyen las secuencias de acciones necesarias parapresentar elalgoritmo. Las cajas de proceso o accin van unidas entre s. LosDiagramasN-S son muy tiles para representar diagramasestructurados.A continuacin en la Figura 2.4 se observa la representacin delas condiciones.INICIOP = 1LEER NUMNUM > 0P = P x NUMESCRIBIR PFINSINO
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc144/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 38Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.INICIOp = 1Leer numMientras (num > 0)p = p x numLeer numEscribir pFINFigura 2.4: Representacin de Condic ionesSeguidamente, se presenta la Figura 2.5 en la cual serepresentan las estructurasrepetitivas:Figura 2.5: Estructuras RepetitivasA continuacin se presenta nuevamente el problema de determinarel producto de unconjunto de enteros, cuya solucin es representadaen esta oportunidad mediante undiagrama de N-S. Para ello, observela Figura 2.6.Figura 2.6: Diagrama de N-S para el Clculo del Producto deEnterosMientrasRepetir HastaDesdeVar = V1 HastaV2CondicinSI NO
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc145/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 39Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.9. PseudocdigoEl pseudocdigo es un lenguaje de documentacin de programassimilar al espaol o alingls (se parece a cualquier lenguaje deprogramacin de alto nivel). No necesita seguirninguna reglaespecfica, como por ejemplo ser requerido por los programas que vanaser traducidos o compilados. El pseudocdigo normalmente no es muyespecfico para lasreas de E/S.No hay ningn estndar en la industria definido para escribirpseudocdigo y tiene laventaja de que se puede crear fcilmente concualquier editor de texto.Un ejemplo de pseudocdigo parecido a PL/I, se muestra acontinuacin:do whi l e( count = 0 )do pr ocesscount = count – 1endUn ejemplo de pseudocdigo parecido a COBOL:per f or m unt i l count = 0per f or m pr ocesssubt r act 1 f r om countend- per f or mEl pseudocdigo tambin puede utilizar una serie de palabrasclaves o palabrasespeciales que van indicando lo que significa elalgoritmo.Ejemplo 2.2Ejemplo de palabras claves en pseudocdigo:1. Inicio y Fin: Pordonde empi eza y t er mi na el al gor i t mo.2. Si3. Entonces4. Sino5. Mientras hacer6. Repetir / hasta7. Desde / hasta8. Segn sea ( Par a eval uar opci ones ml t i pl es)Nota:Se debe tomar en cuenta que los comentarios van encerradosentre llaves y hayque utilizar sangra al escribir el cdigo.La estructura recomendada para los algoritmos en pseudocdigoes:
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc146/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 40Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.AlgoritmoVar:I ni ci oFi nSe presenta el pseudocdigo para el ejemplo de determinar elproducto de un conjunto deenteros:1. Algoritmo Pr oduct o2. Var p, num: ent ero3. I ni ci o4. p = 15. Leer num6. Mientras num > 0 hacer7. p = p * num8. Leer num9. Fin mientras10. Escr i bi r p11. FinFin del Ejemplo 2.2
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc147/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 41Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.ResumenAhora que ha completado esta unidad, usted debe ser capazde:Listar las caractersticas del Diseo Estructurado.Definir los conceptos de diseo top-down. Describir los Diagramasde Estructura, Diagramas de Flujo y Diagramas de NassiSchederman.Dibujar un diagrama de estructura para mostrar la jerarqua de unprograma.Definir el concepto de Pseudocdigo.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc148/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 42Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Unidad 2: Examen de Autoevaluacin1) El pseudocdigo es un lenguaje de documentacin que:a) Necesita una sintaxis especficab) Necesita ser traducido pero no compiladoc) Se puede crearfcilmented) Ninguna de las anteriores2) En diseo estructurado, el proceso de dividir un problema ensubproblemas mspequeos se conoce como:a) Diagrama de flujob) Diagrama de estructurac) Refinamiento paso a pasod) Diseo Top Down3) Cules de las siguientes afirmaciones son verdaderas sobrediseo estructurado?a) Tiene una entrada y una salidab) Divide el problema en sub-problemas.c) Elimina el uso de la sentencia GO TOd) Ninguna de las anteriores4) El refinamiento paso a paso puede representarse grficamentecon un:a) Diagrama de clasesb) rbol binarioc) Diagrama de estructurad) Diagrama de secuencia5) Para la representacin de un problema, cumple la misma funcinutilizar un diagramade flujo o un diseo top-down.a) Verdaderob) Falso6) Si un algoritmo se representa en un diagrama de flujo,entonces no se puederepresentar en pseudocdigo.a) Verdaderob) Falso
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc149/217Gua del Estudiante Fundamentos de ProgramacinUnidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentosde Programacin 43Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.7) Cuando se trabaja con programas grandes se hace difcil:a) El refinamiento paso a pasob) La representacin grfica de la lgica del diseoc) Probar totalmente el cdigod) Todas las anteriores8) Un diagrama de flujo es:a) La representacin de un algoritmo en un lenguaje de altonivelb) La representacin grfica de la lgica del diseoc) Un refinamiento paso a pasod) Ninguna de las anteriores9) Indique cules de las siguientes son caractersticas delpseudo-cdigo?a) Es un lenguaje de documentacin similar al ingles o espaolb) Normalmente no es muy especfico para las reas de entrada ysalidac) Se puede compilar para revisar las fallas de sintaxisd) Se puede crear fcilmente con cualquier editor de texto10) Cul es la forma de representacin del diseo top-down?a) Diagrama de Flujob) Algoritmosc) Pseudocdigod) Diagrama de Estructura
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc150/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 2: Conceptos de DiseoEstructurado 44Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Respuesta de la Unidad 2: Examen de Autoevaluacin1) c2) c y d3) a, b y c4) c5) b6) b7) d8) b9) a, b y d10) d
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc151/217Gua del Estudiante Fundamentos de ProgramacinUnidad 3: Programacin Estructurada Libro 1: Fundamentos deProgramacin 45Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Unidad 3: Programacin EstructuradaObjetivos del AprendizajeAl finalizar esta unidad usted ser capaz de: Conocer las tcnicasde programacin estructurada.Trabajar con las estructuras secuenciales.Trabajar con las estructuras selectivas.Trabajar con las estructuras repetitivas.Conocer la anidacin de bucles y condicionales.Realizar el control de datos de entrada.
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc152/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 3: ProgramacinEstructurada 46Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.1. IntroduccinLa caracterstica fundamental de la programacin estructurada esque se basa en el usonicamente de tres estructuras de control y seapoya en los siguientes conceptos:Recursos Abstractos: Son los recursos que se tienen en elmomento deprogramar y que se irn transformando en recursosconcretos.Diseo Descendente (top down):Se trata de ir descomponiendo elproblema enniveles o pasos cada vez ms sencillos, de forma que lasalida de una etapa va aservir como entrada de la siguiente. En lasprimeras etapas se toma el punto devista externo, es decir, quentradas se tienen y qu salidas se producen. Amedida que se avanzaen la descomposicin del problema, se van concretandolasabstracciones, es decir cmo en efecto se resuelve.Estructuras Bsicas de Control:Para construir un programa sesiguen los pasosde razonamiento anteriores y al final se codificael programa usando tres tipos deestructuras: repetitivas,alternativas y secuenciales.Al final todo programa tendr una nica entrada y una nica salida.Desde la entradatienen que existir caminos que permitan pasar portodas las partes del programa y llegar ala salida. Se permiten losbucles infinitos.2. Estructuras SecuencialesEn las estructuras secuenciales unainstruccin sigue a otra en secuencia, es decir, lasalida de unainstruccin es la entrada de la siguiente. Observe la Figura3.1.FLUJOGRAMA DIAGRAMAS N-S PSEUDOCDIGOLeer numnum=num*2Escribir numLeer numnum=num*2Escribir numLeer numnum = num * 2Escribir numFigura 3.1: Estructuras Secuenciales
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc153/217Gua del Estudiante Fundamentos de ProgramacinUnidad 3: Programacin Estructurada Libro 1: Fundamentos deProgramacin 47Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.3. Estructuras SelectivasEn este tipo de estructuras se evala una condicin y en funcindel resultado lgico(verdadero o falso) u otro resultado se ejecutaun conjunto de instrucciones. Son tambindenominadas estructuras decontrol de flujo, estructuras condicionales o de toma dedecisiones. Hay tres tipos de estructuras selectivas: simples,dobles o mltiples.3.1 Estructura Selectiva SimpleLa estructura selectiva simple es la estructura condicionalelemental y bsica. Presenta laforma:Si ent oncesFi n s iEn esta estructura condicional se evala la condicin, si elresultado es verdadero seejecuta el conjunto de acciones asociadas al bloque, entonces siel resultado es falso nose ejecuta accin alguna. Esto estrepresentado en la Figura 3.2.FLUJOGRAMA DIAGRAMAS N-S PSEUDOCDIGO|SientoncesFin siFigura 3.2: Estructura Selectiva Simple3.2 Estructura Selectiva DobleLa estructura selectiva doble es una estructura condicional queevala una condicindada. Si es verdad, se ejecutan el conjunto de accionesasociadas a la parte del si, si esfalso se ejecutan el conjunto deacciones asociadas a la parte del no. En la siguientefigura se podrobservar con detalle esta estructura.Condi ci nAcci onessino SI NOAcci onesAcci onesCondi ci n
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc154/217Fundamentos de Programacin Gua del EstudianteLibro 1: Fundamentos de Programacin Unidad 3: ProgramacinEstructurada 48Copyright IBM Corp. 2007El material del curso no puede serreproducido total niparcialmente sin el permiso escrito previo de IBM.Figura 3.3: Estructura Selectiva Doble3.3 Estructura Selectiva de Alternativa MltipleEn la estructura selectiva de alternativa mltiple se evala unacondicin o expresin quepuede tomar n valores distintos. Segn sea elvalor de la expresin en un instante dado,se ejecutarn las accionescorrespondientes a ese valor. En realidad equivale a unconjunto decondiciones anidadas. En muchos lenguajes de programacin seconocencomo sentencias Case o Switch.Es una sentencia de la forma:Segn sea::[ : ]f i n segnLas acciones asociadas a la opcin Otro: se ejecutan cuando laexpresin no tomaninguno de los valores que aparecen antes. Enalgunos lenguajes de programacin se leconoce como alternativaOtherwise, Else o Default.El valor con el que se compara la expresin es dependiente de loslenguajes deprogramacin. Por lo general, se espera un tipo de datodeterminstico y con valoressecuenciales, tales como los enteros ycaracteres. En general, ese valor puede ser unvalor constante, unrango de valores determinstico o incluso otra condicin. La Figura3.4representa una Estructura Selectiva de Alternativa Mltiple.Si entoncesSinoFin siPSEUDOCDIGODIAGRAMAS N-SFLUJOGRAMAcondicincondicinacci onesacci onesacci onesacci ones acci onesSiSiNoNo
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc155/217Gua del Estudiante Fundamentos de ProgramacinUnidad 3: Programacin Estructurada Libro 1: Fundamentos deProgramacin 49Copyright IBM Co
  • Publicaciones Similares