Fundamentos de Programacion Por Ibm Libro1 v4 Stc1
Embed Size (px)
Transcript of Fundamentos de Programacion Por Ibm Libro1 v4 Stc1
-
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