Download - Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

Transcript
  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    1/217

    Fundamentos deProgramacinCdigo del Curso: CY300Versin 4.0

    Gua del Estudiante

    Libro 1: Fundamentosde Programacin

    IBM IT Education ServicesWorldwide Certified Material

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    2/217

    .

    Informacin Sobre la Publicacin

    Esta publicacin ha sido producida usando Microsoft Word 2000 y Microsoft PowerPoint2000 para Windows.

    Marcas Registradas

    IBM es una marca registrada por International Business Machines Corporation.

    Otras compaas, productos, y nombre de servicios pueden ser marcas registradas omarcas de servicios de otros.

    Trademarks of International Business Machines Corporation

    DB2 Informix

    Lotus Script Net.data

    Marcas Registradas de otras Compaas

    Windows, Microsoft Visual Studio Microsoft Corporation

    Sybase Sybase Inc.

    Edicin Agosto 2007

    La informacin contenida en este documento no ha sido sometida a ninguna pruebaformal de IBM y es distribuida bsicamente como es" sin ninguna garanta ya seaexpresa o implcita. El uso de esta informacin o la implementacin de cualquiera deestas tcnicas es responsabilidad del comprador y depender de la habilidad de stepara su evaluacin e integracin en el ambiente operacional del comprador. A pesar deque cada tema ha sido revisado por IBM para su exactitud en una situacin especfica,no hay garanta de que obtener el mismo resultado o uno similar a ste en otrasituacin. Los compradores que intenten adaptar estas tcnicas a sus propiosambientes lo hacen bajo su propio riesgo.

    Copyright International Business Machines Corporation, 2007. All rights reserved.

    Este documento no puede ser reproducido en su totalidad o en parte 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 cada unidad entreunidades. Estas pginas fueron insertadas intencionalmente.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    3/217

    Gua del Estudiante Fundamentos de Programacin

    i Copyright IBM Corp. 2007

    Los materiales del curso no pueden ser reproducidos total oparcialmente sin el previo permiso escrito de IBM.

    ContenidoDescripc in del Curso ........................................................................................1Descripc in de Unidades ...................................................................................2Volumen 1: Conceptos de Programacin .........................................................5Unidad 1: Programas de Computadora ............................................................7

    Objetivos del Aprendizaje 7

    1. Introduccin 8

    2. Sistemas de Procesamiento 9

    3. Algoritmos 9

    4. Metodologa para Disear Algoritmos 9

    5. Programas de Computadora 10

    6. Definiciones Bsicas 11

    7. Crear un Programa de Computadora 128. Funcionamiento del Compilador/Enlazador 13

    9. Datos, Tipos de Datos y Funciones Incorporadas 14

    10. Expresiones: Tipos y Operadores 17

    11. Funciones Incorporadas 22

    12. Operacin de Asignacin 23

    13. Recomendaciones 24

    Resumen 25

    Unidad 1: Examen de Autoevaluacin 26Respuestas de la Unidad 1: Examen de Autoevaluacin 28

    Unidad 2: Conceptos de Diseo Estructurado ...............................................29Objetivos del Aprendizaje 29

    1. Introduccin 30

    2. Conceptos de Diseo Estructurado 30

    3. Diseo Top Down 30

    4. Diagramas de Estructura 32

    5. Diagramas de Flujo o Flujograma 32

    6. Recomendaciones para hacer Diagramas de Flujo 36

    7. Ejemplo de un Diagrama de Flujo 36

    8. Diagramas N-S o de Nassi-Schederman: 37

    9. Pseudocdigo 39

    Resumen 41

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    4/217

    Fundamentos de Programacin Gua del Estudiante

    ii Copyright IBM Corp. 2007

    Los materiales del curso no pueden ser reproducidos total oparcialmente sin el previo permiso escrito de IBM.

    Unidad 2: Examen de Autoevaluacin 42

    Respuesta de la Unidad 2: Examen de Autoevaluacin 44

    Unidad 3: Programacin Estructurada ...........................................................45Objetivos del Aprendizaje 45

    1. Introduccin 462. Estructuras Secuenciales 46

    3. Estructuras Selectivas 47

    4. Estructuras Repetitivas o de Ciclo 49

    5. Estructuras Anidadas 52

    6. Control de Datos de Entrada 54

    Resumen 57

    Unidad 3: Examen de Autoevaluacin 58

    Respuestas de la Unidad 3: Examen de Autoevaluacin 60Unidad 4: Funciones y Procedimientos ..........................................................61

    Objetivos del Aprendizaje 61

    1. Introduccin 62

    2. Funciones 63

    3. Procedimientos 67

    4. mbitos: Variables Globales y Locales 69

    5. Comunicacin entre Subprogramas: Paso de Parmetros 71

    6. Recursividad 75

    Resumen 78Unidad 4: Examen de Autoevaluacin 79

    Respuesta de la Unidad 4: Examen de Autoevaluacin 82

    Unidad 5: Estructura de Datos: Arreglos........................................................83Objetivos del Aprendizaje 83

    1. Introduccin 84

    2. Arreglos Unidimensionales: Arreglos o Vectores 84

    3. Arreglos Bidimensionales: Matrices m x n 89

    4. Arreglos Multidimensionales: Matrices m x n x...z 915. Almacenamiento de Arreglos en Memoria 91

    Resumen 93

    Unidad 5: Examen de Autoevaluacin 94

    Respuesta de la Unidad 5: Examen de Autoevaluacin 96

    Unidad 6: Entrada y Salida...............................................................................97

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    5/217

    Gua del Estudiante Fundamentos de Programacin

    iii Copyright IBM Corp. 2007

    Los materiales del curso no pueden ser reproducidos total oparcialmente sin el previo permiso escrito de IBM.

    Objetivos del Aprendizaje 97

    1. Introduccin 98

    2. Entrada y Salida de un Programa 98

    3. Buffers de Entrada y Salida 99

    4. Imprimir Datos 1005. Entrada/Salida de Archivo: Formatos de Registros 103

    Resumen 107

    Unidad 6: Examen de Autoevaluacin 108

    Respuesta de la Unidad 6: Examen de Autoevaluacin 110

    Unidad 7: Ejemplos de Programas ................................................................111Objetivos del Aprendizaje 111

    1. Verificar la Secuencias 112

    2. Rupturas de Control 112

    3. Emparejar Transacciones 113

    Resumen 117Volumen 2: Complementos I..........................................................................119Unidad 1: Sentencias Simples .......................................................................121

    1. Conceptos 121

    Ejercicios Resueltos 123

    Ejercicios por Resolver 129

    Unidad 2: Estructuras de Decisin................................................................1311. Conceptos 131

    Ejercicios Resueltos 132

    Ejercicios por Resolver 139

    Unidad 3: Estructuras de Repeticin ............................................................1411. Conceptos 141

    Ejercicios Resueltos 143

    Ejercicios Propuestos 148

    Unidad 4: Sentencias Simples (Pseudocdigo) ...........................................149Ejercicios Resueltos 149

    Ejercicios por Resolver 152Unidad 5: Estructuras de Decisin (Pseudocdigo)....................................153

    Ejercicios Resueltos 153

    Ejercicios por Resolver 159

    Unidad 6: Estructuras de Repetic in (Pseudocdigo) ................................161Ejercicios Resueltos 161

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    6/217

    Fundamentos de Programacin Gua del Estudiante

    iv Copyright IBM Corp. 2007

    Los materiales del curso no pueden ser reproducidos total oparcialmente sin el previo permiso escrito de IBM.

    Ejercicios Propuestos 166

    Volumen 3: Complementos II.........................................................................169Unidad 4: Funciones y Procedimientos ........................................................171

    Ejercicios Resueltos 171

    Ejercicios Propuestos 175Unidad 5: Estructuras de Datos - Arreglos...................................................179

    Ejercicios Resueltos 179

    Ejercicios Propuestos 183

    Volumen 4: Ejercicios Propuestos ................................................................189Unidad 1: Programas de Computadora ........................................................191

    Respuestas de la Unidad 1: Ejercicios Propuestos 192

    Unidad 2: Conceptos de Diseo Estructurado .............................................193Respuestas de la Unidad 2: Ejercicios Propuestos 194

    Unidad 3: Programacin Estructurada. ........................................................197

    Respuesta Unidad 3: Ejercicios Propuestos 198Unidad 4: Procedimientos y Func iones ........................................................203

    Respuesta Unidad 4: Ejercicios Propuestos 204

    Unidad 5: Estructura de Datos: Arreglos......................................................207Respuesta Unidad 5: Ejercicios Propuestos 208

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    7/217

    Gua del Estudiante Fundamentos de Programacin

    Libro 1: Fundamentos de Programacin Descripcin del Curso 1

    Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos total o

    parcialmente sin el previo permiso escrito de IBM.

    Descripcin del CursoNombre del Curso

    Fundamentos de Programacin.

    Duracin

    La duracin del curso es de 40 horas.

    Propsito

    El propsito de este curso es introducir los fundamentos de programacin, para ello seestudian los elementos del proceso de desarrollo de aplicaciones que se ejecutan en lascomputadoras. El curso, cubre los conceptos de programa, estructura de datos, tipos dedatos, variables y constantes. Tambin, se discuten algunas tcnicas para desarrollar

    algoritmos, que se implementan en la programacin estructurada, as como, loselementos estndar de un programa de aplicacin de computadora.

    Audiencia

    Cualquier persona que desee obtener un conocimiento bsico acerca de losfundamentos de la programacin.

    Pre-requisitos

    Ninguno.

    Objetivos del Curso

    Despus de completar este curso, usted estar en la capacidad de:

    Crear la lgica bsica de un programa.

    Conocer los pasos bsicos necesarios para ir desde el diseo de un programahasta su ejecucin.

    Describir los componentes bsicos de la configuracin de una computadora.

    Agenda

    Cada unidad de este curso es de dos horas acadmicas de duracin.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    8/217

    Fundamentos de Programacin Gua del Estudiante

    Descripcin de Unidades Libro 1: Fundamentos de Programacin 2

    Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos total o

    parcialmente sin el previo permiso escrito de IBM.

    Descripcin de UnidadesVolumen 1: Conceptos de Programacin

    Unidad 1: Programas de Computadora

    En esta unidad se define el propsito y el contenido de un programa de computacin yse aprende una metodologa para resolver problemas de procesamiento de datos. Sediscuten los elementos de un programa, para ello se estudian los conceptos devariables, variables contadoras, variables acumuladoras, constantes, los operadoresaritmticos y operadores lgicos. Se estudian las operaciones incorporadas y sediscuten algunos de los errores ms comunes que se cometen en la programacin. Sepresentan tambin, algunas sugerencias para programar con estilo y disciplina.

    Unidad 2: Conceptos de Diseo Incorporado

    Aqu se definen los conceptos utilizados para facilitar el entendimiento de un problema.

    Se utilizan tcnicas Top-Down (de abajo hacia arriba) y se aprende cmo dibujargrficos que muestran la jerarqua de un problema, y as poder, a partir de estosgrficos, analizar el problema, crear los diagramas de flujo y el pseudocdigo necesariopara comenzar a escribir un programa de computacin. Se discuten los Diagramas deEstructura, los Diagramas de Flujo, los Diagramas N-S o de Nassi-Schederman, ascomo los conceptos y elementos del pseudocdigo.

    Unidad 3: Programacin Estructurada

    Se describen los conceptos relacionados con las estructuras de los bloques de cdigoque conforman un programa de computadora bajo el concepto de ProgramacinEstructurada. Se revisan las estructuras secuenciales, las selectivas o de bifurcacinpara direccionar el flujo de control. Tambin, se estudian las estructuras de bloques decdigo para ciclos o repeticiones, en conjunto con las capacidades de anidamiento debloques de cdigo. Por ltimo, se muestran algunos casos del uso de las estructuras decontrol y repeticin en la entrada de datos.

    Unidad 4: Funciones y Procedimientos

    En esta unidad, se estudia el concepto de funciones y procedimientos. Se describe lasintaxis y el uso de los procedimientos y funciones como parte de un programa decomputadora. Se analiza el mbito de las variables, la invocacin de funciones yprocedimientos desde un programa, as como la comunicacin entre subprogramas opase de parmetros o argumentos. Por ltimo, se revisa el concepto de recursividad,adems de cmo se definen y usan las funciones y procedimientos recursivos.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    9/217

    Gua del Estudiante Fundamentos de Programacin

    Libro 1: Fundamentos de Programacin Descripcin de Unidades 3

    Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos total o

    parcialmente sin el previo permiso escrito de IBM.

    Unidad 5: Estructura de Datos: Arreglos

    Se estudian las estructuras de almacenamiento continuo y su representacin en lamemoria del computador. Se revisan los conceptos de arreglos unidimensionales ovectores, matrices de dos dimensiones y matrices multidimensionales.

    Unidad 6: Entrada y Salida

    Esta unidad presenta la descripcin de los conceptos bsicos de entrada y salida en unprograma de computadora, tomando en cuenta algunas consideraciones especficaspara imprimir una salida. Se describen los conceptos de registros de datos fijos, variabley bloqueado. Se finaliza con la creacin del diseo de un programa que permite manejarencabezados de pgina.

    Unidad 7: Ejemplos de Programas

    Esta unidad est diseada para reforzar los conceptos presentados en las unidadesanteriores. Se presentan ejemplos que permiten disear programas para manejar la

    verificacin de secuencias y rupturas de control, as como para resolver problemas deemparejamiento de transacciones.

    Volumen 2: Complementos I

    Unidad 1: Sentencias Simples

    En esta unidad se aprecia cmo se realiza la Declaracin de Variables, Asignacin deVariables, Lectura de Variables desde un dispositivo de entrada de datos hacia lamemoria, Escritura de Datos desde la memoria hacia un dispositivo de salida, todo estocon su respectiva notacin de Diagramas de Flujo o Flujogramas. Tambin sepresentan una serie de Ejercicios Resueltos aplicando la tcnica de Diagrama de Flujo o

    Flujograma.Unidad 2: Estruc turas de Decisin

    Aqu se visualiza la aplicacin de los tres tipos de Estructuras de Decisin: simple,dobles y mltiples. Denotando el concepto de cada una de ellas y aplicando estas bajola tcnica de Flujograma o Diagrama de Flujo.

    Unidad 3: Estructuras de Repeticin

    Se describen los conceptos relacionados con las estructuras de Repeticin: CicloMientras.. Hacer (while .. do), Ciclo Repetir .. Hasta (Repeat ..until), Ciclo Desde (for);aplicando cada uno de ellos bajo la tcnica de Flujograma o Diagrama de Flujo.

    Unidad 4: Sentencias Simples (Pseudocdigo)

    En esta unidad se aprecia cmo se realiza la Declaracin de Variables, Asignacin deVariables, Lectura de Variables, as como la estructura bsica de un algoritmo

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    10/217

    Fundamentos de Programacin Gua del Estudiante

    Descripcin de Unidades Libro 1: Fundamentos de Programacin 4

    Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos total o

    parcialmente sin el previo permiso escrito de IBM.

    representada bajo la tcnica de Pseudocdigo. Tambin se presentan una serie deEjercicios Resueltos aplicando la tcnica de Pseudocdigo.

    Unidad 5: Estructuras de Decisin (Pseudocdigo)

    Aqu se visualiza la aplicacin de los tres tipos de Estructuras de Decisin: simple,dobles y mltiples. Denotando el concepto de cada una de ellas y aplicando estas bajola tcnica de Pseudocdigo.

    Unidad 6: Estructuras de Repeticin (Pseudocdigo)

    Se describen los conceptos relacionados con las estructuras de Repeticin: CicloMientras.. Hacer (while .. do), Ciclo Repetir .. Hasta (Repeat ..until), Ciclo Desde (for);aplicando cada uno de ellos bajo la tcnica de Pseudocdigo.

    Volumen 3: Complementos II

    Unidad 1: Funciones y Procedimientos

    Aqu se presentan una serie de ejercicios resueltos aplicando la tcnica dePseudocdigo, empleando los conceptos de Funciones y Procedimientos que permitevisualizar su aplicacin.

    Unidad 2: Estructuras de Datos - Arreglos

    En esta unidad se aprecia la representacin de Arreglos unidimensionales ybidimensionales por medio de ejercicios resueltos, utilizando la tcnica dePseudocdigo.

    Volumen 4: Ejercicios Propuestos

    Desde la Unidad 1 hasta la Unidad 5, se presenta una variedad de ejercicioscorrespondientes a los conceptos manejados por cada unidad, que han sido resueltospara mayor comprensin. En la mayora de los casos se aplica la tcnica dePseudocdigo para el diseo de algoritmos, en otro caso una descripcin comprensiblede la solucin del problema como se puede visualizar en la resolucin de los ejerciciospara la Unidad 1.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    11/217

    Gua del Estudiante Fundamentos de Programacin

    Libro 1: Fundamentos de Programacin Descripcin de Unidades 5

    Copyright IBM Corp. 2007Los materiales del curso no pueden ser reproducidos total o

    parcialmente sin el previo permiso escrito de IBM.

    Volumen 1: Conceptos de Programacin

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    12/217

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    13/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 7

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Unidad 1: Programas de Computadora

    Objetivos del Aprendizaje

    Al finalizar esta unidad, usted ser capaz de:

    Definir el propsito y el contenido de un programa de computadora.

    Establecer una metodologa para resolver problemas de procesamiento dedatos.

    Definir el concepto de dato, los tipos de datos y las funciones incorporadas a loslenguajes de programacin.

    Enumerar las recomendaciones ms comunes necesarias para programar conestilo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    14/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 8

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    1. Introduccin

    En la actualidad es comn contar con la ayuda de las computadoras para la solucin deproblemas. Para casi cualquier problema tpico en las reas de negocios, servicios ytecnologas, entre otras, la solucin puede ser modelada con programas de

    computadora, esta solucin es generalmente ms confiable y de menor costo.

    Los programas de computadora permiten dar solucin a problemas de cualquier nivel,estas soluciones tpicamente llamadas aplicaciones, las realiza un equipomultidisciplinario donde se encuentran los programadores, diseadores y analistas desistemas, entre otros especialistas.

    Generalmente, los programadores utilizan algn lenguaje de programacin paradesarrollar las aplicaciones requeridas por los clientes. Estos lenguajes deprogramacin sirven como puente de enlace entre el anlisis realizado por el equipo dedesarrollo y la capacidad de clculo que ofrece la computadora. En otras palabras, pormedio del lenguaje de programacin, el programador le indicar al computador la

    secuencia de instrucciones que se deben ejecutar para obtener la solucin esperadapor los clientes.

    Todo esto hace pensar que de alguna manera, un programador debe tener cierta lgicaque le ayude a tratar con el lenguaje de programacin, esto es, debe saberexactamente las capacidades brindadas por el lenguaje de programacin y ms an,debe tener nociones claras de los fundamentos generales de la programacin.

    Como cualquier ciencia, la programacin requiere de una serie de conocimientosbsicos comunes a cualquier lenguaje de programacin, que le permitan al programadorindicarle inequvocamente al computador las tareas que ste debe realizar. Dichosconocimientos bsicos son conocidos como Fundamentos de Programacin, los cuales

    no son ms que un conjunto de reglas, tcnicas y conceptos que ayudan a definir lo quese puede hacer con un lenguaje de programacin y as dar los primeros pasos paradesarrollar aplicaciones para la solucin de problemas computacionales.

    Este curso introduce al estudiante a los fundamentos de la programacin de manerabreve y concisa. Se discuten diversos temas, tales como: qu son los programas decomputadora?, el diseo estructurado, la lgica de programacin, diagramas de flujos,pseudocdigo, entrada y salida, entre otros.

    Para desarrollar programas de computadora existe una gran variedad de lenguajes deprogramacin, por esta razn, fue necesario definir 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, los cuales permiten definir unasecuencia finita de pasos claros y sencillos, para obtener una solucin del problema.

    El proceso para desarrollar programas de computadora requiere entender y conceptuarel problema, para luego definir los aspectos importantes acerca de la entrada, salida yalmacenamiento.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    15/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 9

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    En esta unidad se discuten los conceptos bsicos ms importantes de la programaciny la metodologa para desarrollar una solucin computacional de un problema.

    2. Sistemas de Procesamiento

    Un ordenador es una mquina de procesamiento de informacin. Es una mquina,porque tiene cables, circuitos y dems elementos mecnicos. Es adems deprocesamiento, porque es capaz de transformar o procesar datos y de informacinporque maneja conjuntos ordenados de datos.

    Para procesar la informacin se requiere del hardware como microprocesador, memoriaRAM, entre otros y del software que sirve para manejar el hardware tal comoprogramas, sistema operativo, etc.

    3. Algor itmos

    El concepto de algoritmo fue desarrollado por el matemtico persa Abu Jafar

    Mohammed Ibn Musa Al Khwarizmi. Se puede decir que un algoritmo es una frmulapara resolver un problema. Es un conjunto de acciones o 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 una serie finita de pasossencillos y sin ambigedades para la solucin de un problema.

    La programacin consiste en adaptar el algoritmo al ordenador. El algoritmo esindependiente de la implementacin en algn lenguaje de programacin.

    4. Metodologa para Disear Algori tmos

    Un algoritmo es una frmula para obtener la solucin de un problema, sta frmulapuede ser planteada de diferentes formas y cada una de estas formas puedeefectivamente resolver el problema planteado. Por esa razn, el diseo de un algoritmoes un proceso creativo, ya que no existe un conjunto de reglas que indiquenexpresamente cmo escribir un algoritmo en forma correcta, por el contrario, si existen

    muchas maneras de resolver un problema, entonces existen muchos algoritmos queimplementen la solucin.

    Sin embargo, hay una serie de pasos que permiten resolver un problema de la formams conveniente, estos son:

    Anlisis del problema.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    16/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 10

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Diseo del algoritmo.

    Verificacin del algoritmo.

    Anlisis del

    Problema

    Diseo del

    Algoritmo

    Verificacin

    del Algoritmo Figura 1.1: Metodologa de Diseo de Algori tmos

    1.1 Anlis is del Problema

    El primer paso es identificar el problema. Se debe revisar cuidadosamente el problemapara determinar qu tipo de informacin se necesita producir como salida. Luego seidentifica toda la informacin que se necesita para encontrar la solucin. En otraspalabras, es importante considerar lo que se est pidiendo en el problema, con quelementos se cuenta y cules se deben solicitar para establecer el camino a seguir enla solucionar el problema. Luego de obtener todos estos datos, se inicia la fase de

    Diseo del Algoritmo.

    1.2 Diseo del Algoritmo

    En esta fase, la solucin del problema puede requerir varios pasos, as que esnecesario buscar la manera ms fcil para simplificar la propuesta. Una forma dehacerlo, es identificar los procesos ms importantes y colocarlos en orden ascendentesegn su importancia y precedencia, esto sirve como un algoritmo inicial.

    Este algoritmo inicial podr ser refinado en sucesivas operaciones, hasta obtener unasolucin ms detallada y ms fcil de traducir a un lenguaje de programacin.

    1.3 Verificacin del Algori tmo

    Cuando el algoritmo est listo, es necesario comprobar que cumple con los procesosideados y produce el resultado esperado. Una manera de hacerlo, es por medio de laejecucin manual, que consiste en realizar una prueba del algoritmo con datossignificativos y comprobar que al ejecutar todos los procesos se obtienen los resultadosesperados para la salida.

    5. Programas de Computadora

    Un programa es un conjunto de instrucciones que ejecutadas ordenadamente resuelvenun problema, en otras palabras es la implementacin del algoritmo. Un programa decomputadora es una secuencia de instrucciones que le indican al computador querealice operaciones especficas para lograr un resultado deseado. Consiste de uno oms mdulos o rutinas, cada uno de los cuales puede estar compuesto a su vez deotros mdulos o subprogramas. Un programa de computadora no es:

    Una caja mgica.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    17/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 11

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente 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 una computadora.

    Slo tan correcto como el programador lo haya hecho.

    En resumen, un programa de computadora es un conjunto de instrucciones generadaspor el programador, que le dicen al computador exactamente lo que debe hacer.

    6. Definiciones Bsicas

    A continuacin se presentan un conjunto de definiciones bsicas que se usan en elentorno de un programa de computadora:

    Lenguaje de Mquina:es un lenguaje que puede ser interpretado directamente por loscircuitos internos de la computadora porque est basado en instrucciones compuestaspor secuencias de ceros (0) y unos (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 el programador paracodificar sentencias simblicas que un compilador (programa traductor) puede convertiruna a una en instrucciones de lenguaje de mquina. Hace uso de mnemotcnicos oabreviaturas, para representar 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 en ensamblador. Debe ser traducido (ensamblado).

    Lenguaje de Alto Nivel: es un lenguaje de programacin orientado al problema oprocedimientos, es cercano al idioma humano. Ejemplos de estos lenguajes sonCOBOL, PL/I, FORTRAN, Java, etc.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    18/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 12

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Algunos lenguajes de alto nivel se denominan Lenguajes de Programacin 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. Tienen un 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 alto nivel a un programaen lenguaje de mquina, que es la forma en que la computadora puede ejecutardirectamente las acciones o instrucciones. Tpicamente una instruccin de alto nivel secompila o traduce, en muchas instrucciones de lenguaje de mquina.

    En algunos casos, el proceso de compilacin se descompone en dos pasos:

    Compilar las instrucciones de alto nivel para producir lo que se denomina elcdigo objeto.

    Enlazar (link) que es tomar el cdigo objeto generado y cualquier otro cdigoobjeto que sea requerido, que haya sido previamente generado y colocarlosjuntos, produciendo as el programa ejecutable o cdigo ejecutable.

    Base de Datos: Es una coleccin de datos completa e integrada, organizada paraevitar duplicados, que permite recuperar informacin para satisfacer a una ampliavariedad de usuarios.

    Sistema Operativo:Es una coleccin organizada de software que se usa para ayudar ycontrolar las operaciones de una computadora.

    Almacenamiento:Se refiere a un dispositivo en el que los datos se pueden ingresar,guardar y posteriormente recuperar.

    7. Crear un Programa de Computadora

    Para crear un programa de computadora, generalmente el programador debe partir deun algoritmo y escribir las sentencias (instrucciones) del cdigo fuente en un editor. Uneditor es un programa utilitario que permite la edicin de textos y programas. Existen

    muchos editores que estn diseados especficamente para ayudar en la creacin delprograma fuente. Algunos incluso siguen la especificacin de un lenguaje particular.

    El conjunto de sentencias fuente se denomina un programa fuente. El programa fuentees la entrada para el compilador, que lo convierte en un conjunto de comandosentendibles por el computador llamado programa ejecutable.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    19/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 13

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Si se encuentra algn error en la sintaxis de los comandos en el programa fuente, elcompilador listar cada uno de ellos y no producir el programa ejecutable. Elprogramador debe repetir los pasos de editar/compilar hasta que no se encuentrenerrores de compilacin.

    La Figura 1.2 presenta en forma esquemtica los pasos para crear un programa de

    computadora.

    Figura 1.2: Creacin de un Programa de Computadora

    8. Funcionamiento del Compilador/Enlazador

    Previo a la creacin del programa ejecutable, el compilador, si no detecta errores desintaxis, crea un programa objeto y un listado del programa fuente. La Figura 1.3

    muestra la creacin del programa ejecutable, partiendo del programa fuente, con unpaso de enlace (link) involucrado.

    El programa objeto, producido por el compilador, se usa como la entrada al enlazadorpara realizar lo que se llama el paso de edicin de enlace. El enlazador, combina elprograma objeto recin creado con otros programas objeto ya existentes, produciendo

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    20/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 14

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    el programa ejecutable. Los otros programas objeto generalmente residen en un archivoen disco llamado Librera de Enlace.

    Figura 1.3: Compilador / Enlazador

    9. Datos, Tipos de Datos y Funciones IncorporadasUn programa de computadora, para que pueda ser ejecutado, debe ser cargado enmemoria. La unidad de procesamiento del ordenador slo puede trabajar con los datose instrucciones que residen en la memoria.

    9.1 Dato

    El dato es cualquier objeto o elemento de informacin que se usa a lo largo de diversasoperaciones dentro de un programa o fragmentos de ste. Los datos son los elementossobre los que se opera cuando se efecta una operacin en el computador, es decir,cuando se ejecuta una instruccin en un programa.

    Un dato tiene un nombre que lo identifica y distingue de los dems elementos delprograma. Dicho nombre no es ms que otra forma de referenciar la direccin dememoria que ocupa el dato, as que cuando se trabaja con el nombre del dato, enrealidad se trabajar con el valor que se encuentra en esa direccin de memoria.

    Cuando se est trabajando con un programa de computadora, siempre se esttrabajando con direcciones de memoria, es por ello que es una estrategia comnreferenciar esas posiciones de memoria por medio de nombres o identificadoressignificativos para los humanos. En otras palabras, un programa de computadora esuna serie de instrucciones organizadas para manipular y trabajar con direcciones dememoria en un computador.

    Los datos pertenecen a un tipo de dato especfico, lo cual le indica al computador elrango de valores que dicho dato puede aceptar y las operaciones que sobre l sepueden realizar.

    Compilacin

    Programafuente

    ProgramaObjeto

    Compilador EnlazadorProgramaEjecutable

    Libreras de

    enlace

    Enlace

    Compilacin

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    21/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 15

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Por ltimo, los datos poseen un valor que bien puede cambiar o permanecer constantea lo largo del programa o mientras el dato est disponible.

    9.2 Tipo de Dato

    El tipo de dato es una definicin que agrupa los valores vlidos para un conjunto de

    datos y las operaciones que sobre ellos se pueden realizar. Normalmente, se puedeestablecer una relacin de orden sobre los datos de naturaleza escalar o con valoresdeterminsticos.

    Cada tipo de dato tiene una representacin determinada en el computador. Esto tieneque ver con el tamao o la cantidad de memoria que el computador reserva paraalmacenar los datos de un tipo especifico cualquiera. Todo, absolutamente todo, en lamemoria de un computador se representa por medio de cdigo binario, un cdigobinario es un nmero en base 2, cuyos dgitos son ceros o unos. De esta manera, uncdigo cualquiera puede ser tratado como un nmero entero en un momento dado,como un carcter en otro o en cualquier otra forma diferente de acuerdo a lasnecesidades del programa.

    Los tipos de datos pueden ser:

    Tipo dato primitivo:Tipos bsicos o simples predefinidos en el sistema.

    Tipo de dato definidos por el usuario: Agregados por el programador.

    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 nmeros enteros. Notiene parte decimal. El rango de los valores depende del tamao que se les

    asigne en la memoria para su representacin, este tamao es definido por ellenguaje de programacin, usualmente 2 bytes.

    - Real:Subconjunto finito del conjunto matemtico de los nmeros reales. Llevansigno y parte decimal. Se almacenan usualmente en 4 bytes o ms(dependiendo del lenguaje de programacin que se utilice). Si se utilizannmeros reales muy grandes, se puede usar notacin cientfica que se divideen mantisa, base y exponente. De tal forma que el valor se obtienemultiplicando la mantisa por la base elevada al exponente.

    Lgicos o booleanos:Es aquel que slo puede tomar uno de los dos valores,verdadero o falso (1 0). Este es el tipo de dato que retorna todas lasoperaciones lgicas.

    Carcter: Abarca al conjunto finito y ordenado de caracteres que reconoce lacomputadora: letras, dgitos, caracteres especiales, ASCII, UNICODE.Generalmente, sus valores se representan dentro de un par de comillas simples,aunque tambin se puede suministrar su cdigo numrico o posicin dentro delconjunto de caracteres vlidos que se est usando.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    22/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 16

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Tipo cadena o string: Conjunto de caracteres, que usualmente se presentanentre los smbolos de comilla doble ().

    Los diversos lenguajes existentes pueden aadir ms tipos de datos u otrosmodificadores. Por ejemplo, el modificador Long se usa comnmente con los tiposentero (int) para indicar un entero de gran tamao (Long int).

    En algunos lenguajes se definen tipos especiales para la fecha y hora, sobre todo en loslenguajes modernos, tales como Java.

    9.3 Variables

    Las variables son instancias de un tipo de dato determinado, cuyo valor puede cambiardurante la ejecucin del programa o corrida del algoritmo.

    Antes de usar una variable, el programador debe definirla o declararla, indicando sunombre y el tipo de dato al que pertenece.

    El nombre que se elija para una variable se denomina identificador y debe ser unnombre significativo que est relacionado con el propsito para el que se vaya a usar lavariable en el programa.

    El identificador de una variable ser un conjunto de caracteres que tendrn ciertasrestricciones, segn lo defina el lenguaje de programacin. Por lo general, elidentificador de una variable tiene que empezar por una letra, el tamao y caracterespermitidos como parte del identificador dependen del lenguaje de programacin.

    Algunos lenguajes de programacin asignan un valor por omisin o defecto a lasvariables, al momento de su declaracin. En cualquier caso una variable puede tomarun valor inicial e ir cambindolo a lo largo de la ejecucin del programa o corrida delalgoritmo. Al momento de asignar un valor inicial a una variable, se le denominainicializacin de la variable.

    9.4 Variables Acumuladoras

    Aquellas variables que el programador use para ir sumando valores a lo largo de laejecucin del programa, se denominan acumuladoras y es recomendable inicializarlascon un valor conveniente al uso que posteriormente se les d.

    9.5 Variables Contadoras

    Se llaman as a las variables que el programador usa para ir contando a lo largo de laejecucin del programa.

    9.6 Constantes

    Las constantes son instancias de un tipo de dato determinado, que tienen un valor fijoasignado por el programador en el momento en que la define. Este valor no puede sermodificado durante la ejecucin del programa o corrida del algoritmo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    23/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 17

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Las constantes pueden llevar asociados un nombre o no, si no lo llevan, se llamanliterales. El programador especifica su valor al definir la constante, que ya no puedecambiar a lo largo de la ejecucin del programa. En cuanto al tipo de dato, hay quecolocarlo o no dependiendo del lenguaje de programacin. Si no hace falta colocarlo, esporque la constante tomar el tipo de dato del valor que se le asigne al definirla.

    Por ejemplo: Const PI=3,1416.

    La ventaja de usar constantes con nombre, es que en cualquier lugar donde quiera quevaya la constante, basta con colocar su nombre 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 Memoria

    Al declarar una variable o constante con nombre, automticamente se reserva enmemoria espacio para guardarla. El espacio reservado depende del tipo de dato de la

    variable o constante. En esa zona de memoria, es en la que se guardar el valorasociado a la variable o constante. Cuando el programa use esa variable o constante,ir a ese lugar de la memoria a buscar su valor.

    10. Expresiones: Tipos y Operadores

    Una expresin es una combinacin de constantes, variables, signos de operacin,parntesis y nombres especiales (nombres de funciones estndar), con un sentidounvoco y definido. De la evaluacin de una expresin resulta un nico valor o resultado.

    Una expresin tiene asociado un tipo de dato que corresponde con el tipo del valor quedevuelve la expresin cuando se evala, por lo que habr tantos tipos de expresionescomo tipos de datos. En tal sentido, se tienen expresiones numricas y lgicas.

    10.1 Expresiones Numricas: Operadores Aritmticos

    La expresin numrica es una combinacin de variables y constantes numricas conoperadores aritmticos, que al evaluarla devuelve un valor numrico.

    Algunos de los operadores aritmticos ms comunes son: +, -, *, / , los cuales equivalena las operaciones suma, resta, multiplicacin y divisin respectivamente.

    Otras operaciones aritmticas soportadas en algunos lenguajes de programacin son:

    Operador Resto o Mdulo: Devuelve el resto de una divisin entera.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    24/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 18

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Lenguaje Operador Ejemplo Resultado

    C % 5 % 2 1

    Pascal mod 5 mod 2 1

    Tabla 1.1: Operador Resto o Mdulo

    Operador Divisin Entera: Devuelve la parte entera del cociente de unadivisin.

    Lenguaje Operador Ejemplo Resultado

    C / 5 / 2 2

    Pascal Div 5 div 2 2

    Tabla 1.2: Operador Divisin Entera

    Operador Potencia: Devuelve el valor de una base elevada a una potenciadada.

    Lenguaje Operador Ejemplo Resultado

    Basic ^ 5 ^ 2 25

    Tabla 1.3: Operador Potenc ia

    Los operadores anteriores se denominan operadores binarios porque utilizan dosoperando. Existen tambin otros tipos de operadores que slo necesitan de unoperando y se denominan operadores unarios.

    Algunos de los operadores unarios ms comunes son:

    El signo negativo: Operador unario que devuelve el valor actual del operandomultiplicado por menos uno (-1).

    Lenguaje Operador Ejemplo Resultado

    C - X= 5; -X; X= -5;

    Tabla 1.4: Signo Negativo

    Operador Decremento: Operador unario que devuelve el valor actual deloperador decrementado en una unidad.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    25/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 19

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Lenguaje Operador Ejemplo Resultado

    C -- X= 5; --X; X= 4;

    Tabla 1.4: Signo Negativo

    Operador Incremento: Operador unario que devuelve el valor actual deloperador incrementado en una unidad.

    Lenguaje Operador Ejemplo Resultado

    C ++ X= 5; ++X; X= 6;

    Tabla 1.4: Signo Negativo

    10.2 Reglas de Precedencia

    El orden en que se evalan los operadores aritmticos dentro de una expresin influyedirectamente en el resultado que retorna dicha expresin.

    Ejemplo:

    Sea la siguiente expresin aritmtica: 2 + 3 * 2 + 3

    Si se evala en el orden de aparicin se tiene: (((2 + 3) * 2) + 3) = 13

    Si se evala primero la suma (+) y luego la multiplicacin (*) se tendr la expresin:

    (2 + 3) * (2 + 3) = 25

    Si se evala primero la multiplicacin y luego la suma se tendr la expresin:

    2 + (3 * 2) + 3 = 11

    Entonces, Cmo resolver est situacin potencialmente problemtica?

    La solucin es aplicar prioridad entre los operadores, de modo que ante la posibilidadde usar varios operadores aritmticos en una misma expresin, siempre se aplicarprimero el de mayor prioridad.

    Cada lenguaje de programacin puede establecer sus propias reglas de prioridad oprecedencia de operadores. Siempre se pueden utilizar los parntesis ( ) para definir y

    cambiar el orden en que se evala una expresin aritmtica dada.

    El orden de precedencia definido comnmente para los operadores aritmticos bsicoses:

    1. ^

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    26/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 20

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    2. *, /, div y mod

    3. + y

    Entre dos operaciones que tienen la misma precedencia, para resolver la ambigedadhay que usar la regla de la asociatividad. La ms normal, es la asociatividad por laizquierda (primero lo de la izquierda).

    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 dos valores: verdaderoo falso. Los operadores que pueden aparecer en una expresin lgica son de dos tipos:lgicos o relacionales. Los operadores lgicos slo trabajan sobre expresiones o datosque retornan valores booleanos. Los operadores relacionales trabajan con expresionesnumricas para realizar comparaciones que retornan un valor booleano. Es comn tenerexpresiones que combinan tanto los operadores lgicos como relacionales, en estas

    expresiones se evala ms de una condicin o relacin por medio de operadoreslgicos.

    Los operadores relacionales ms usados son:

    < menor que

    > mayor que

    = igualdad (en C: ==)

    diferente (en C: !=)

    menor o igual que

    mayor 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 booleano correspondiente.

    Ejemplo:

    ((5 * 4) + 1 (5 ^ 2)) < (2 - 1)

    - 4 < 1 la expresin retorna Verdadero

    Ejercicio:

    Evaluar las siguientes expresiones si a la variable x se le asigna 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 Stc1

    27/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 21

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente 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 o evaluar ms de unacondicin al mismo tiempo, para esto, estn los operadores 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: Operador

    El operador Noes de tipo unario y se coloca precediendo al operando al que se niega.

    La tabla de verdad para los operadores lgicos binarios es como sigue:

    Operando 1 Operando 2 AND OR XOR

    V V V V F

    V F F V V

    F V F V V

    F F F F F

    V= Verdadero; F= Falso

    Tabla 1.5: Tabla de Verdad para los operadores lgicos binarios

    La tabla de verdad para el operador unario Noes como sigue:

    NOT Operando

    V FF V

    Tabla 1.6: Tabla de Verdad para el operador unario No

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    28/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 22

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Se observa que para que el operador lgico AND sea Verdadero, es necesario queambos operandos sean Verdaderos.

    Para que el operador lgico OR sea Verdadero, basta con que al menos uno de susoperandos sea Verdadero.

    Para que el operador XOR sea Verdadero, ambos operandos deben ser diferentes entres.

    Ejercicio:

    Si xrepresenta 1 > 2 (FALSO) e yrepresenta 4 < 8 (VERDADERO)

    Cul es el resultado de cada una de las siguientes expresiones:

    1. NOT x : ___________

    2. x AND y : ___________

    3. y OR x : ___________

    4. (NOT x) AND y : ___________

    5. x XOR y : ___________

    11. Funciones Incorporadas

    Las funciones Incorporadas son funciones adicionales a las operaciones bsicas, quese incorporan al lenguaje de programacin. Se consideran estndar en la mayora delenguajes de programacin. Son dependientes del lenguaje y normalmente seencuentran en libreras externas que se pueden incluir en un programa. La sintaxis

    exacta y el nombre de las funciones pueden variar de un lenguaje a otro, pero lafuncionalidad suele mantenerse entre las diversas herramientas de programacin.

    Las ms comunes son las libreras de soporte matemtico y las de entrada / salida.

    Todos los lenguajes de programacin proporcionan mecanismos para incorporardiversos elementos que brinden funcionalidad extra a los programas. La Tabla 1.7,muestra la forma en que algunos lenguajes de programacin populares incorporanfuncionalidad extra.

    Lenguaje Sentencia Ejemplo

    Pascal use use conio;

    C y C++ #include #include

    Java import Import java.io.*;

    Tabla 1.7: Funcionalidad extra de algunos programas

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    29/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 23

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    12. Operacin de Asignacin

    La operacin de asignacin consiste en atribuir un valor a una variable. El valorasignado puede ser una expresin, una constante o el valor de otra variable.

    Las formas ms comunes del operador de asignacin se resumen en la Tabla 1.8:

    Lenguaje Operador Ejemplo

    Pascal := var := 5 + 3;

    C y C++ = var = var + 5;

    Java = var = Math.sin(90.0);

    Tabla 1.8: Operador de Asignacin

    En los ejemplos de la tabla anterior, varrepresenta la variable a la que se le asigna el

    valor dado en la expresin a la derecha del operador de asignacin.

    El proceso de asignacin se realiza en 2 fases:

    Se evala la expresin de la parte derecha de la asignacin obtenindose 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 puede haber unavariable.

    La variable a la que se le asigna el valor pierde su valor anterior. Si la variable a la que se le asigna un valor (parte izquierda) participa en la

    expresin a evaluar (parte derecha), como por ejemplo la sentencia: x = x + 1 ,entonces como primero se evala la expresin antes de realizar la asignacin, elvalor usado en la expresin es el que tena la variable antes de la operacin. Enel ejemplo dado si x tena 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 derecha de una operacinde asignacin, tiene que ser del mismo tipo de dato o de un tipo compatible, conla variable a la cual se le va a asignar el resultado de la operacin. Muchoslenguajes de programacin imponen sus propias reglas de conversin de tiposde datos, definiendo cules son las operaciones permitidas entre los diversostipos de datos.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    30/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 24

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    13. Recomendaciones

    Cuando se programa existen una serie de problemas y errores de programacin quetienden a presentarse una y otra vez en los programas.

    Para minimizar la ocurrencia de errores en la programacin, es aconsejable que se

    consideren las siguientes recomendaciones:

    Reutilizar cdigo probado: Puede existir un cdigo ya desarrollado y probadopara resolver totalmente o parte del problema que pueda utilizarse. Esto facilitala solucin del problema y minimiza el tiempo de desarrollo.

    Al reutilizar cdigo no se desperdicia tiempo depurando una parte de la lgicaque se sabe que funciona.

    No asumir los datos de entrada como vlidos: Si no se tiene ningn control sobrela fuente de los datos, no se tiene ningn control sobre la calidad de los mismos.

    No asumir que los datos de entrada estn en la secuencia correcta.

    Verificar siempre la secuencia: Es muy fcil para alguien proporcionar datoserrneos.

    Disear los tamaos de los campos de datos, de modo que tengan capacidadpara contener el valor ms grande permitido.

    Usar comentarios libremente. Explicar cualquier cosa que pueda confundir a unfuturo lector, adems de sealar cualquier rea que pueda estar sujeta acambios.

    Hacer programas legibles y fciles de entender.

    Usar nombres adecuados para las variables, que sean auto descriptivos.

    Usar sangras, alineacin y espacios donde sea necesario (lneas blancas ycolumnas).

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    31/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 25

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Resumen

    Ahora que ha completado esta unidad, usted debe ser capaz de:

    Definir el propsito y el contenido de un programa de computadora.

    Utilizar una metodologa para resolver problemas de procesamiento de datos. Describir el funcionamiento de un compilador/enlazador.

    Definir el concepto de Dato.

    Describir los diferentes tipos de datos y las operaciones incorporadas a loslenguajes de programacin.

    Presentar las recomendaciones que ayudan a programar con estilo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    32/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 26

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Unidad 1: Examen de Autoevaluacin1) Cules de los siguientes son lenguajes de alto nivel?

    a) Cobol

    b) Fortran

    c) Javad) Ensamblador

    2) Se entiende por algoritmo, un conjunto de reglas bien definidas para la solucin deun problema en un nmero de pasos que podra no ser finito.

    a) Verdadero

    b) Falso

    3) Seleccione las afirmaciones correctas en referencia a un programa decomputadora.

    a) Es una solucin a un problema

    b) Es una caja mgica

    c) Es un conjunto de instrucciones hechas para ejecutarse en una computadora

    d) Todas las anteriores

    4) Para disear un programa de computadora se requiere de un proceso que cumplacon las siguientes caractersticas:

    a) Actualizable

    b) Fcil de mantener

    c) No estructuradod) Ninguna de las anteriores

    5) Seleccione las afirmaciones correctas:

    a) El conjunto de sentencias creadas para resolver un problema se denomina"programa fuente"

    b) Un compilador convierte un programa fuente en un programa ejecutable

    c) Si se encuentran errores de sintaxis en las instrucciones del programa fuente,el compilador lista cada uno de ellos y produce un archivo ejecutable

    d) Ninguna de las anteriores

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    33/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programacin 27

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    6) Cules de los siguientes son lenguajes de programacin orientado a objetos?

    a) Java

    b) C

    c) C++

    d) Cobol

    7) Compilar es traducir un programa escrito en un lenguaje de mquina en unprograma de alto nivel; forma en la cual la computadora puede ejecutar acciones oinstrucciones.

    a) Verdadero

    b) Falso

    8) Para minimizar la ocurrencia de errores en la programacin se recomienda revisarque los programas cumplan con lo siguiente:

    a) Reutilizacin de cdigob) Asumir que todas las entradas de usuario son correctas

    c) Verificar que la secuencia de entrada de datos es la requerida por el programa

    d) Que las instrucciones sean legibles y fciles de entender

    9) Un sistema operativo es una coleccin organizada de software que se usa paraayudar y, en parte, controlar las operaciones de una computadora.

    a) Verdadero

    b) Falso

    10) Cules de los siguientes son dispositivos de almacenamiento?a) Teclado

    b) Cinta magntica

    c) Impresora

    d) Otra computadora

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    34/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 1: Programas de Computadora 28

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Respuestas de la Unidad 1: Examen de Autoevaluacin

    1) a, b y c

    2) b

    3) a y c4) a y b

    5) a y b

    6) a y c

    7) b

    8) a, c y d

    9) a

    10) b y d

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    35/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 29

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Unidad 2: Conceptos de DiseoEstructurado

    Objetivos del Aprendizaje

    Al 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 y Diagramas de Nassi Schederman.

    Definir el concepto de Pseudocdigo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    36/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 30

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    1. Introduccin

    Existen tcnicas para facilitar el entendimiento de un problema en trminos que permitandesarrollar un algoritmo que ofrezca una solucin y que, posteriormente, conlleve aldesarrollo de un programa que 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 Estructurado

    El diseo estructurado es una metodologa para el desarrollo de programas, que puedeser definida a travs de las siguientes caractersticas:

    El sistema desarrollado siguiendo el diseo estructurado tendr una entrada y unasalida, con variaciones ocasionales.

    El diseo estructurado divide el problema a resolver en partes o mdulos.

    El diseo estructurado evita el uso de la sentencia GOTO (sentencia que se utilizapara desviar el flujo normal de un programa; la desventaja de esta sentencia esque el seguimiento del programa puede ser desde difcil hasta imposible).

    3. Diseo Top Down

    El diseo top down o refinamiento paso a paso, establece que debe irse de lo ms

    general a lo ms especfico y se define como el proceso de dividir un problema en sub-problemas ms pequeos.

    Para entender el diseo top down se presenta a continuacin un problema ejemplo y sediscute cmo se aplica esta tcnica en el diseo de programas.

    Enunciado del problema:

    Se le ha solicitado que escriba un programa para una tienda de videos que tenga comoobjetivo permitir que un cliente, previamente registrado en la tienda, alquile videos.

    Ya existe un sistema para llevar el control del inventario de pelculas y registro de clientes.

    La tienda tiene un conjunto de reglas que deben cumplirse para que 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 Stc1

    37/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 31

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente 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 los siguientes 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, se obtiene:

    1. Verificar si el cliente es un miembro registrado: Ingresar una identificacin del cliente en el sistema.

    Verificar si el sistema ha encontrado un perfil que coincida con este cliente.

    2. Verificar los alquileres vencidos: Ver si el perfil refleja cualquier alquiler vencido en el sistema.

    3. Verificar si el miembro debe algn dinero: Ver si el perfil refleja algn cargo pendiente.

    4. Verificar si la pelcula est en el inventario: Ingresar el nombre 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 que no estn alquiladas estn reservadas.

    De nuevo, al descomponer el sub-programa Verificar si el cliente es un miembroregistrado:

    1.1. Verificar si el cliente es un miembro registrado: Preguntar la identificacin al cliente.

    1.2. Ingresar la identificacin en el sistema: Seleccionar del men 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 Stc1

    38/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 32

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Presionar la tecla que indica al sistema que est listo, para que ste verifique porun nmero que coincida con el que se ha ingresado.

    1.3. Leer la pantalla para ver si el sistema ha encontrado alguna coincidencia: Verificar visualmente si el sistema dice s ' o no ' es un miembro.

    4. Diagramas de Estructura

    Un diagrama de estructura es una manera grfica de representar el diseo top down.Permite representar en forma clara la organizacin de alto nivel de un programa.

    La Figura 2.1 muestra un diagrama de estructura parcial del problema presentado en elpunto anterior.

    Figura 2.1: Diagrama de Estructura del Problema Ejemplo

    5. Diagramas de Flujo o Flujograma

    Un diagrama de flujo es una representacin grfica de la lgica del diseo. Generalmente,presenta un nivel de detalle mucho mayor que los diagramas de estructura.

    Un diagrama de flujo resulta adecuado cuando se desea obtener mayor detalle, tal comoagregar bifurcacin de condicionales y/o iteraciones.

    En todo diagrama de flujo, siempre habr una caja de inicio y otra de fin para el principio yfinal del algoritmo.

    Alquilaruna

    Pelcula

    Verificar sies un

    miembro

    Verificaralquileresvencidos

    Verificardeudas

    pendientes

    Verificar sipelcula

    est

    Verificar sino est

    reservada

    Preguntaridentifica-

    cin

    Ingresaridentifica-

    cin

    Examinarperfil

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    39/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 33

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    5.1 Los smbolos

    A continuacin los smbolos ms comunes que se usan en un diagrama de flujo:

    Flechas o Lneas de Flujo: sirven para conectar lossmbolos del diagrama. La flecha indica la secuencia en laque se van a ejecutar las acciones.

    Smbolo de Proceso: Indica la accin que tiene querealizar la computadora. 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 este signo, se evala la condicin que hay

    dentro. Segn la condicin, sea verdadera o falsa, se tomaun camino u otro. Sirve para representar estructurasselectivas y repetitivas.

    Principio y Fin: Dentro del smbolo va la palabra inicio o findel algoritmo.

    Subprograma: Dentro se coloca el nombre delsubprograma al que se llama.

    Conectores:Sirven cuando un flujograma no cabe en unacolumna de la hoja y hay que seguir en otra columna. Secolocan uno donde termina 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 permitanentender mejor el cdigo, no es parte del cdigo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    40/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 34

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    5.2 Otros Smbolos

    Pantalla:Cuando una salida es por pantalla.

    Teclado:Tambin se usa para representar una entrada porteclado.

    Impresora

    Entrada/Salida por Disco

    Las bifurcaciones condicionales se ejecutan segn una determinada condicin, es decir, sila condicin es verdadera se ejecuta un bloque del proceso, si es falsa se ejecuta unbloque diferente.

    Una iteracin es cuando en un segmento de un algoritmo, los pasos se repiten un nmerodeterminado de veces mientras se cumple una determinada condicin.

    La metodologa para representar un problema utilizando diagramas de flujo, se describeen la Figura 2.2.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    41/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 35

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    5.3 Metodologa para Resolver un Problema con Diagramas de Flujo

    Figura 2.2: Metodologa para Resolver un Prob lema con Diagramas de Flujo

    Determinar requerimientos del proceso

    Determinar requerimientos del post-proceso

    Fin

    Diagrama Flujo OK?

    Crear Diagrama de Flujo

    Verificar Diagrama de Flujo

    NO

    SI

    Inicio

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    42/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 36

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    6. Recomendaciones para hacer Diagramas de Flujo El diagrama debe mostrar claramente donde inicia y donde termina.

    Cualquier camino que se siga, debe conducir al fin.

    Los smbolos deben estar organizados de tal forma, que visualmente el flujo vayade arriba abajo y de izquierda a derecha.

    No debe usarse lenguajes de programacin dentro de los smbolos.

    El diagrama debe estar centrado dentro de la pgina.

    Las flechas deben ser verticales u horizontales, nunca diagonales.

    No deben cruzarse las flechas, para evitar esto estn los conectores.

    No abusar de los conectores.

    A un smbolo slo debe llegar una flecha, si fuese necesario otras flechasentrantes, estas deben llegar a un conector.

    Las flechas deben entrar a los smbolos por arriba o por la izquierda,

    preferiblemente. Debe tratarse de que el diagrama se ajuste a una pgina, de no ser posible debe

    usarse un conector.

    7. Ejemplo de un Diagrama de Flujo

    Ejemplo 2.1

    Calcular el producto de los nmeros positivos introducidos por teclado. El proceso finalizacuando se ingresa un nmero negativo o un cero.

    Algori tmo:1. Iniciar la variable que va a contener el producto.

    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 el producto.

    5. Si es mayor que cero, se multiplica el nmero ledo y se lee un nuevo nmero. Sevuelve al paso 2.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    43/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 37

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Figura 2.3: Diagrama de Flujo para el clculo del p roducto de enteros

    Fin del Ejemplo 2.1

    8. Diagramas N-S o de Nassi-Schederman:

    Es una forma de representacin semejante al flujograma o diagrama de flujo, pero sinflechas y cambiando los smbolos de condicin y repeticin. Est conformado por unaserie de cajas de procesos que constituyen las secuencias de acciones necesarias parapresentar el algoritmo. Las cajas de proceso o accin van unidas entre s. Los DiagramasN-S son muy tiles para representar diagramas estructurados.

    A continuacin en la Figura 2.4 se observa la representacin de las condiciones.

    INICIO

    P = 1

    LEER NUM

    NUM > 0P = P x NUM

    ESCRIBIR P

    FIN

    SI

    NO

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    44/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 38

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    INICIO

    p = 1

    Leer num

    Mientras (num > 0)

    p = p x num

    Leer num

    Escribir p

    FIN

    Figura 2.4: Representacin de Condic iones

    Seguidamente, se presenta la Figura 2.5 en la cual se representan las estructurasrepetitivas:

    Figura 2.5: Estructuras Repetitivas

    A continuacin se presenta nuevamente el problema de determinar el producto de unconjunto de enteros, cuya solucin es representada en esta oportunidad mediante undiagrama de N-S. Para ello, observe la Figura 2.6.

    Figura 2.6: Diagrama de N-S para el Clculo del Producto de Enteros

    Mientras

    Repetir Hasta

    DesdeVar = V1 HastaV2

    Condicin

    SI NO

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    45/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 39

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    9. Pseudocdigo

    El pseudocdigo es un lenguaje de documentacin de programas similar al espaol o alingls (se parece a cualquier lenguaje de programacin de alto nivel). No necesita seguirninguna regla especfica, como por ejemplo ser requerido por los programas que van aser traducidos o compilados. El pseudocdigo normalmente no es muy especfico para las

    reas de E/S.

    No hay ningn estndar en la industria definido para escribir pseudocdigo y tiene laventaja de que se puede crear fcilmente con cualquier editor de texto.

    Un ejemplo de pseudocdigo parecido a PL/I, se muestra a continuacin:

    do whi l e( count = 0 )do pr ocesscount = count - 1

    end

    Un ejemplo de pseudocdigo parecido a COBOL:

    per f or m unt i l count = 0

    per f or m pr ocess

    subt r act 1 f r om count

    end- per f or m

    El pseudocdigo tambin puede utilizar una serie de palabras claves o palabrasespeciales que van indicando lo que significa el algoritmo.

    Ejemplo 2.2

    Ejemplo de palabras claves en pseudocdigo:1. Inicio y Fin: Por donde empi eza y t er mi na el al gor i t mo.

    2. Si

    3. Entonces

    4. Sino

    5. Mientras hacer

    6. Repetir / hasta

    7. Desde / hasta

    8. Segn sea ( Par a eval uar opci ones ml t i pl es)

    Nota:Se debe tomar en cuenta que los comentarios van encerrados entre llaves y hayque utilizar sangra al escribir el cdigo.

    La estructura recomendada para los algoritmos en pseudocdigo es:

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    46/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 40

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Algoritmo

    Var

    :

    I ni ci o

    Fi n

    Se presenta el pseudocdigo para el ejemplo de determinar el producto de un conjunto deenteros:

    1. Algoritmo Pr oduct o

    2. Var p, num: ent ero

    3. I ni ci o

    4. p = 1

    5. Leer num

    6. Mientras num > 0 hacer7. p = p * num

    8. Leer num

    9. Fin mientras

    10. Escr i bi r p

    11. Fin

    Fin del Ejemplo 2.2

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    47/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 41

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Resumen

    Ahora que ha completado esta unidad, usted debe ser capaz de:

    Listar las caractersticas del Diseo Estructurado.

    Definir los conceptos de diseo top-down. Describir los Diagramas de Estructura, Diagramas de Flujo y Diagramas de Nassi

    Schederman.

    Dibujar un diagrama de estructura para mostrar la jerarqua de un programa.

    Definir el concepto de Pseudocdigo.

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    48/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 42

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Unidad 2: Examen de Autoevaluacin

    1) El pseudocdigo es un lenguaje de documentacin que:

    a) Necesita una sintaxis especfica

    b) Necesita ser traducido pero no compiladoc) Se puede crear fcilmente

    d) Ninguna de las anteriores

    2) En diseo estructurado, el proceso de dividir un problema en subproblemas mspequeos se conoce como:

    a) Diagrama de flujo

    b) Diagrama de estructura

    c) Refinamiento paso a paso

    d) Diseo Top Down

    3) Cules de las siguientes afirmaciones son verdaderas sobre diseo estructurado?

    a) Tiene una entrada y una salida

    b) Divide el problema en sub-problemas.

    c) Elimina el uso de la sentencia GO TO

    d) Ninguna de las anteriores

    4) El refinamiento paso a paso puede representarse grficamente con un:

    a) Diagrama de clases

    b) rbol binarioc) Diagrama de estructura

    d) Diagrama de secuencia

    5) Para la representacin de un problema, cumple la misma funcin utilizar un diagramade flujo o un diseo top-down.

    a) Verdadero

    b) Falso

    6) Si un algoritmo se representa en un diagrama de flujo, entonces no se puederepresentar en pseudocdigo.

    a) Verdadero

    b) Falso

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    49/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 2: Conceptos de Diseo Estructurado Libro 1: Fundamentos de Programacin 43

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    7) Cuando se trabaja con programas grandes se hace difcil:

    a) El refinamiento paso a paso

    b) La representacin grfica de la lgica del diseo

    c) Probar totalmente el cdigo

    d) Todas las anteriores

    8) Un diagrama de flujo es:

    a) La representacin de un algoritmo en un lenguaje de alto nivel

    b) La representacin grfica de la lgica del diseo

    c) Un refinamiento paso a paso

    d) Ninguna de las anteriores

    9) Indique cules de las siguientes son caractersticas del pseudo-cdigo?

    a) Es un lenguaje de documentacin similar al ingles o espaol

    b) Normalmente no es muy especfico para las reas de entrada y salidac) Se puede compilar para revisar las fallas de sintaxis

    d) Se puede crear fcilmente con cualquier editor de texto

    10) Cul es la forma de representacin del diseo top-down?

    a) Diagrama de Flujo

    b) Algoritmos

    c) Pseudocdigo

    d) Diagrama de Estructura

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    50/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 2: Conceptos de Diseo Estructurado 44

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Respuesta de la Unidad 2: Examen de Autoevaluacin1) c

    2) c y d

    3) a, b y c

    4) c5) b

    6) b

    7) d

    8) b

    9) a, b y d

    10) d

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    51/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 3: Programacin Estructurada Libro 1: Fundamentos de Programacin 45

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Unidad 3: Programacin Estructurada

    Objetivos del Aprendizaje

    Al finalizar esta unidad usted ser capaz de: Conocer las tcnicas de 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 Stc1

    52/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 3: Programacin Estructurada 46

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    1. Introduccin

    La caracterstica fundamental de la programacin estructurada es que se basa en el usonicamente de tres estructuras de control y se apoya en los siguientes conceptos:

    Recursos Abstractos: Son los recursos que se tienen en el momento deprogramar y que se irn transformando en recursos concretos.

    Diseo Descendente (top down):Se trata de ir descomponiendo el problema enniveles o pasos cada vez ms sencillos, de forma que la salida de una etapa va aservir como entrada de la siguiente. En las primeras etapas se toma el punto devista externo, es decir, qu entradas se tienen y qu salidas se producen. Amedida que se avanza en la descomposicin del problema, se van concretando lasabstracciones, es decir cmo en efecto se resuelve.

    Estructuras Bsicas de Control:Para construir un programa se siguen los pasosde razonamiento anteriores y al final se codifica el 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 por todas las partes del programa y llegar ala salida. Se permiten los bucles infinitos.

    2. Estructuras SecuencialesEn las estructuras secuenciales una instruccin sigue a otra en secuencia, es decir, lasalida de una instruccin es la entrada de la siguiente. Observe la Figura 3.1.

    FLUJOGRAMA DIAGRAMAS N-S PSEUDOCDIGO

    Leer num

    num=num*2

    Escribir num

    Leer num

    num=num*2

    Escribir num

    Leer numnum = num * 2Escribir num

    Figura 3.1: Estructuras Secuenciales

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    53/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 3: Programacin Estructurada Libro 1: Fundamentos de Programacin 47

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    3. Estructuras Selectivas

    En este tipo de estructuras se evala una condicin y en funcin del resultado lgico(verdadero o falso) u otro resultado se ejecuta un conjunto de instrucciones. Son tambindenominadas estructuras de control de flujo, estructuras condicionales o de toma de

    decisiones. Hay tres tipos de estructuras selectivas: simples, dobles o mltiples.

    3.1 Estructura Selectiva Simple

    La estructura selectiva simple es la estructura condicional elemental y bsica. Presenta laforma:

    Si ent onces

    Fi n s i

    En esta estructura condicional se evala la condicin, si el resultado es verdadero se

    ejecuta el conjunto de acciones asociadas al bloque, entonces si el resultado es falso nose ejecuta accin alguna. Esto est representado en la Figura 3.2.

    FLUJOGRAMA DIAGRAMAS N-S PSEUDOCDIGO

    |

    Si

    entonces

    Fin si

    Figura 3.2: Estructura Selectiva Simple

    3.2 Estructura Selectiva Doble

    La estructura selectiva doble es una estructura condicional que evala una condicin

    dada. Si es verdad, se ejecutan el conjunto de acciones asociadas a la parte del si, si esfalso se ejecutan el conjunto de acciones asociadas a la parte del no. En la siguientefigura se podr observar con detalle esta estructura.

    Condi ci n

    Acci ones

    si

    no SI NO

    Acci ones

    Acci ones

    Condi ci n

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    54/217

    Fundamentos de Programacin Gua del Estudiante

    Libro 1: Fundamentos de Programacin Unidad 3: Programacin Estructurada 48

    Copyright IBM Corp. 2007El material del curso no puede ser reproducido total ni

    parcialmente sin el permiso escrito previo de IBM.

    Figura 3.3: Estructura Selectiva Doble

    3.3 Estructura Selectiva de Alternativa Mltiple

    En la estructura selectiva de alternativa mltiple se evala una condicin o expresin quepuede tomar n valores distintos. Segn sea el valor de la expresin en un instante dado,se ejecutarn las acciones correspondientes a ese valor. En realidad equivale a unconjunto de condiciones anidadas. En muchos lenguajes de programacin se conocencomo sentencias Case o Switch.

    Es una sentencia de la forma:

    Segn sea

    :

    :

    [ : ]

    f i n segn

    Las acciones asociadas a la opcin Otro: se ejecutan cuando la expresin no tomaninguno de los valores que aparecen antes. En algunos lenguajes de programacin se leconoce como alternativa Otherwise, Else o Default.

    El valor con el que se compara la expresin es dependiente de los lenguajes deprogramacin. Por lo general, se espera un tipo de dato determinstico y con valoressecuenciales, tales como los enteros y caracteres. En general, ese valor puede ser unvalor constante, un rango de valores determinstico o incluso otra condicin. La Figura 3.4representa una Estructura Selectiva de Alternativa Mltiple.

    Si entonces

    Sino

    Fin si

    PSEUDOCDIGODIAGRAMAS N-SFLUJOGRAMA

    condicin

    condicin

    acci ones

    acci ones

    acci ones

    acci ones acci ones

    SiSi

    No

    No

  • 7/22/2019 Fundamentos de Programacion Por Ibm Libro1 v4 Stc1

    55/217

    Gua del Estudiante Fundamentos de Programacin

    Unidad 3: Programacin Estructurada Libro 1: Fundamentos de Programacin 49

    Copyright IBM Co