Metodologia de La Programacion Ed2

download Metodologia de La Programacion Ed2

of 345

Transcript of Metodologia de La Programacion Ed2

  • UNIVERSIDAD TECNOLOGICA CENTROAMERICANA

    UNITEC

    METODOLOGIA DE LA PROGRAMACION

    SEGUNDA EDICION

    REVISADA

    Ing. Rosbinda Pacheco Banegas

    Lic. Alex R. Tbora Rivera

    ESCUELA DE CIENCIAS DE LA COMPUTACION

    Y TELECOMUNICACIONES

    2007

  • ii

    Ttulo: Metodologa de la Programacin segunda edicin, 2005.

    Revisin y reimpresin, 2007.

    Autora: Ing. Rosbinda Pacheco Banegas.

    Autor de la primera edicin: Lic. Alex Tbora Rivera.

    Produccin de la Escuela de Ciencias de la Computacin y Telecomunicaciones. Revisin Tcnico-educativa: Lic. Alex Tbora Rivera. Ing. Julio Figueroa. Derechos Reservados: EDUNITEC.

    Asesora Tecno-Pedaggica. Lic. Martha I. Zepeda. Diseo Grfico Alejandro Jos Lpez 005.1 P.116 Metodologa de la Programacin

    Prohibida su reproduccin sin permiso expreso de UNITEC EDUNITEC, Tegucigalpa Honduras 2007

  • SOBRE LOS AUTORES

    a Universidad Tecnolgica Centroamericana presenta como un logro ms de la produccin de su personal docente, la segunda edicin del texto Metodologa de la

    Programacin a cargo de la Ing. Rosbinda Pacheco Banegas, siendo la primera edicin del

    mismo de la autora del Lic. Alex R. Tbora Rivera (1991).

    Rosbinda Pacheco Banegas. La Ing Rosbinda Pacheco Banegas se gradu en la Universidad Nacional Autnoma de

    Honduras (UNAH) de la carrera de Ingeniera Qumica Industrial, y actualmente estudia la

    Licenciatura en Administracin Industrial y de Negocios en la Universidad Tecnolgica

    Centroamericana (UNITEC-Laureate Internacional Universities)

    Por ms de 20 aos, la Ing. Pacheco ha sido Docente Titular en el rea de Programacin a

    nivel universitario, habindose iniciado en esta rea, como discpula del Lic. Alex Tbora

    R. reconocido estudioso investigador de la enseanza de la Programacin.

    Labor como docente de Matemtica en la UNAH. Se desempeo como asistente del

    Gerente de Planta en la Cervecera Hondurea S. A.

    En su carrera como docente ha impartido clases en el rea Econo-Administrativa,

    coordinando Preclculo para Ciencias Econmicas, en el rea Fsico Matemtica imparti

    Algebra, Clculo y Programacin para Ingeniera. Particip en cursos y proyectos sobre

    informtica educativa, adems fue Coordinadora Administrativa del Centro de Cmputo del

    Departamento de Matemtica de la UNAH.

    Realiz estudios en la Licenciatura de Matemtica (UNAH), con orientacin en

    computacin, y en Informtica educativa en Murcia Espaa.

    Desde 1994 labora en la Universidad Tecnolgica Centroamericana (UNITEC), y

    actualmente es coordinadora del rea de Programacin I y II.

    Su vocacin como formadora, y dedicacin a enriquecer el acervo acadmico del libro con

    el que ya se contaba: Metodologa de la programacin, Primera edicin, la motiv a

    emprender este proyecto: Metodologa de la programacin, Segunda edicin, para

    L

  • ii

    aprovechar todas su experiencia con la primera edicin y procesar toda la retroalimentacin

    obtenida todos estos aos.

    La Ing. Pacheco no slo ha sobresalido por sus excelentes tcnicas pedaggicas, sino que

    tambin por el trato especial con los alumnos. Ella tambin ha entrenado a muchos de sus

    colegas para impartir clases de Programacin, ensendoles paso a paso y con paciencia las

    mejores tcnicas para poder transmitir y desarrollar de una forma eficaz el pensamiento

    lgico que el estudiante necesita para lograr el xito en la programacin de algoritmos

    Alex Tbora Rivera

    El Lic. Alex Tbora Rivera obtuvo su Bachillerato Universitario en Matemtica en la

    Universidad Nacional Autnoma de Honduras (UNAH) y su Maestra en Ciencias en

    Estadstica Matemtica en el Centro Interamericano de la Enseanza de la Estadstica

    (CIENES) en Chile.

    El Lic. Tbora se ha desempeado como Programador y Analista de Sistemas

    Computacionales, desde 1974, en proyectos y oficinas tanto del sector privado como

    pblico.

    Desde 1976, ha sido profesor de programacin y de cursos afines en distintas universidades

    del pas. Fue coordinador de la Seccin de Computacin de la Universidad Nacional

    Autnoma de Honduras, e introdujo la reforma de la enseanza de la programacin. Desde

    1992 ha estado dictando cursos de programacin en UNITEC.

    El Lic. Tbora siempre se ha distinguido por su creatividad y su deseo de innovacin en el

    rea de Programacin, y por iniciativa de l se dieron los primeros pasos, que ahora se

    plasman en esta segunda edicin.

    Licda. Alejandra B. de Guardado.

  • DEDICATORIAS De los autores:

    Dedicamos este libro a la Lic. Norma Ponce de Snchez quin crey en este proyecto

    De Ing. Rosbinda Pacheco Banegas:

    A nuestro buen Dios, creador del universo y de quin proviene

    toda ciencia y conocimiento.

    A mi amado esposo: Augusto Csar Antnez Ferrera.

    A mis tres hijos

    Aida Alejandra

    Augusto Csar

    Rosbinda

    Por su apoyo y comprensin en todo el tiempo dedicado a este proyecto.

    A mi padre ()

    A mi madre

    A mis familiares y amigos(as)

    A mis alumnos y ex-alumnos.

    AGRADECIMIENTOS:

    A la Lic. Karla Ramrez y a la Ing. Jessy Ayestas

    Por su colaboracin en el diseo y conceptualizacin de varios ejemplos desarrollados.

  • i

    EL PRINCIPIO DE LA SABIDURIA ES EL TEMOR DE JEHOVA

  • i

    Indice General

    Introduccin v Captulo 1 Elementos de lgica Matemtica 1

    1.1 Proposiciones 1

    1.2 Operadores Lgicos y Tablas de Verdad 7

    La Negacin (no) 7

    La Conjuncin (y) 9

    La Disyuncin (o) 10

    1.3 Tautologas, Contradicciones y Equivalencias 16

    1.4 Notacin Booleana 21

    Captulo 2 Concepto de Computador y almacenamiento 23

    2.1 Concepto de Von Neumann y de Programacin 23

    2.2 Concepto de almacenamiento y variable 26

    2.3 Concepto de Asignacin 30

    2.4 Condiciones y su Evaluacin 38

    Captulo 3 Tcnica de Desglose 43

    3.1 Introduccin al Anlisis de un Programa Objeto del Programa 43

    3.2 Resumen del Anlisis de acuerdo al modelo Von Neumann 46

    3.3 Elementos en el Anlisis de un P.O.P. Parte I 49

    3.4 Desgloses y Pruebas de escritorio 59

    3.4.1 Desgloses en Secuencia 60

    3.4.2 Desglose con instrucciones de Decisin 72

    3.4.3 Desglose con instrucciones de Repeticin 83

  • ii

    3.5 Elementos en el Anlisisde un P.O.P. Parte II 98

    3.5.1 Diagrama de Arbol de Decisiones 98

    3.5.2 Repeticin con Decisiones Anidadas 104

    3.6 Concepto de Algoritmo 116

    Captulo 4 Fundamentos de Programacin Estructurada 119

    4.1 Concepto de Sistema 119

    4.2 Bloques estructurados atmicos e introduccin a la Notacin de Diagrama de Flujo 121

    4.3 Introduccin al Seudocdigo Nolae con los B.e.a 126

    4.4 Algoritmos seudocodificados con Concatenacin 126

    4.5 Algoritmos seudocodificados con Decisin 131

    4.6 Algoritmos seudocodificados con Repeticin 136

    4.7 Diagramas de Flujo con Algoritmos Estructurados 144

    4.8 Relacin entre Desgloses, Algoritmos, Diagramas 149

    4.9 Centinelas, Contadores Acumuladores 151

    4.9.1 Centinelas 151

    4.9.2 Contadores 153

    4.9.3 Acumuladores 162

    4.9.4 Repeticin controlada por contador 167

    Captulo 5 Estructuras Derivadas 179

    5.1 Asociatividad de la concatenacin 179

    5.2 Variantes y derivadas de la Decisin 181

    5.2.1 La Decisin Abreviada 181

    5.2.2 Las Decisiones anidadas y las decisiones Concatenadas 183

    5.2.3 Bloque Caso 188

    5.3 Variantes y derivadas de la Repeticin 202

    5.3.1 Bloque Para 202

    5.3.1.1 Aplicaciones con: Contadores y Acumuladores 203

    5.3.1.2 Aplicaciones: Sucesiones 208

    5.3.1.3 Aplicaciones: Series Finitas 213

  • iii

    5.3.2 Bloque repita-Hasta 221

    Captulo 6 Subalgoritmos y Arreglos (elementos de estructura de datos) 229

    6.1 Subalgoritmos 229

    6.2 Mens, una aplicacin de los Subalgoritmos 234

    6.3 Diagrama Jerrquico de procedimientos 250

    6.4 Arreglos Unidimensionados 258

    6.4.1 Operaciones con Arreglos 260

    6.4.2 Arreglos Paralelos 266

    6.4.3 Arreglos y subalgoritmos 272

    APENDICES

    A Ejercicios de las secciones: 2.2 a la 4.6 279

    B Ejercicios de las secciones 4.7 a 5.2 289

    C Ejercicios de las secciones 5.2 a 6.3 299

    D Ejercicios de la seccin (arreglos) 6.4 305

    E Variantes en la resolucin de algunos ejemplos y 307 Algunos ejercicios clsicos

    Prcticas de Auto-evaluacin, (lgica y tres parciales) 315

    F Prctica de Laboratorio 01 Lenguaje de programacin ADA95 321

    G Listado de los ejemplos utilizados en los Captulos 3 al 6 327 BIBLIOGRAFIA 331

  • iv

    EL CORAZON DEL ENTENDIDO ADQUIERE SABIDURIA;

    Y EL OIDO DE LOS SABIOS BUSCA LA CIENCIA

  • v

    INTRODUCCION

    La primera computadora fue construida a mediados del siglo pasado, y a comienzos del

    siglo 21 el uso de la computadora se ha extendido prcticamente a todas las reas del

    quehacer humano. Cientficos y artistas, ingenieros y abogados, administradores y mdicos,

    por mencionar algunos, hacen uso directo e indirecto de las computadoras. La expansin

    del Internet a casi todos los rincones del planeta ha marcado un hito en la historia

    tecnolgica de la humanidad y ha permitido que millones se comuniquen diariamente

    gracias a la existencia de las computadoras personales.

    Ahora bien, para que la computadora pueda realizar una tarea es necesario que se le

    proporcionen instrucciones de antemano, a esto le llamamos programar la computadora.

    La interrogante comn de los estudiantes es Cmo comienzo a escribir un programa?.

    Este libro ha sido escrito para responder esa pregunta.

    Al abordar la tarea de producir un programa lo primero que se tiene que hacer es analizar el

    problema que la computadora va a resolver o la tarea que va a realizar, luego disear una

    estrategia de solucin para preparar un plan del programa. Todos estos pasos requieren

    nicamente del conocimiento de los conceptos bsicos de programacin y de la

    metodologa correspondiente que se aprender al estudiar este material. Por lo que

    cualquier estudiante con cierta experiencia en lgebra y con suficiente ejercitacin puede

    llegar a ser capaz de producir programas de dificultad media.

    No todas las carreras universitarias requieren profundizar en la programacin. Para estos

    estudiantes no es necesario llegar a ser un programador experto para aprovechar las

    ventajas que ofrece un computador. Sin embargo, el conocer los principios de

    programacin le permite a este futuro profesional universitario tener una visin ms

    completa del trabajo que se realiza con las computadoras, le permite poder comunicarse con

    los expertos y conocer el potencial y limitantes de la computadora como una herramienta de

    trabajo. Le enriquece, en fin, sus perspectivas para la acertada toma de decisiones en cuanto

    al rea de computacin se refiere.

    El contenido del libro y su desarrollo estn orientados para continuar con el aprendizaje de

    un lenguaje (PASCAL, ADA 95, etc.); sin embargo, dicho contenido es independiente de

  • vi

    cualquier lenguaje de programacin. Ms aun, la presentacin del material permite que el

    estudiante adquiera los conocimientos y destrezas fundamentales para aprender a programar

    en cualquier lenguaje estructurado (y an no estructurado).

    As que, el objetivo primordial de este libro, es el de preparar al estudiante en una

    metodologa que le permita analizar un problema de programacin de computadoras, y

    desarrollar la lgica del programa como paso previo a la codificacin.

    El Captulo 1 presenta nicamente aquellos conceptos y terminologas elementales de la

    lgica matemtica requeridas en los captulos siguientes.

    En el Captulo 2 se desarrollan los conceptos bsicos de computador, almacenamiento y

    variables, con nfasis en la asignacin.

    El tema de la tcnica de desglose se trata en el Captulo 3. En la PARTE I de ste, se

    comienza con una introduccin al anlisis de problemas, como un paso previo para preparar

    un plan del programa que contribuir a resolver el problema propuesto y se presentan

    adems las estructuras bsicas de la programacin. En la PARTE II se introduce el uso de

    Arboles de decisin como una valiosa herramienta de ayuda.

    En los Captulos 4 y 5 se presentan los fundamentos de la programacin estructurado por

    medio de los diagramas de flujo y el seudocdigo NOLAE. En el desarrollo de estos temas

    importantes, se acenta el aspecto conceptual sin descuidar la aplicacin prctica. Se

    presentan adems variantes de la decisin y de la repeticin que permiten enriquecer las

    maneras de abordar y resolver problemas de mediana dificultad.

    Los subalgoritmos son tratados en el Captulo 6, se usan los mens como ejemplo de su

    aplicacin. Tambin se incluye el inicio del estudio de los arreglos con las operaciones de

    los arreglos manejadas por subalgoritmos.

    Los Apndices A, B, C, D presentan ejercicios para las distintas secciones del libro. El

    Apndice E presenta mtodos alternativos de abordar algn tipo de ejercicios, y la

    resolucin de ejercicios tpicos y de utilidad para personas que continuarn profundizado en

  • vii

    el estudio de la programacin, tambin se muestran exmenes para auto-evaluacin del

    estudiante. En el Apndice G se presenta una sesin inicial en un lenguaje de programacin

    (ADA95).

    En todos los captulos, se desarrollan Ejemplos que ilustran aspectos tericos previamente

    introducidos, varios de los ejemplos son utilizados en las distintas secciones de este libro

    para ir introduciendo progresivamente nuevos aspectos, cuando en explicaciones

    posteriores se hacen referencia a dichos ejemplos, se indica en que pgina del texto se

    encuentra.

    En el Apndice G se encuentra un listado de los Ejemplos numerados mencionados

    anteriormente, a la par, se coloc, entre parntesis, breves comentarios con palabras claves

    para identificar sobre que trata y que aspecto ilustra. Para facilitar bsquedas, al final de la

    lnea se incluy, el nmero de la pgina en donde se desarrollaron..

    Ejemplo: Ejemplo 4.18 (Repeticin controlada por contador, leer y sumar N nmeros) pg.169

    En todos los captulos se colocaron, en recuadros, definiciones y palabras claves de la

    teora, tambin se resaltan en recuadros especiales comentarios y observaciones

    importantes, la mayora de los temas se presentan secciones de Ejercicios, en los cuales

    tambin se citan ejercicios de los respectivos Apndices, de tal manera que se cuenta con

    un compendio de ejercicios variados y de aplicacin prctica.

    Es el deseo de los autores, que este libro sea de utilidad al lector para adoptar y desarrollar

    una Metodologa de la Programacin.

  • viii

    Dmelo y lo olvidar

    Mustramelo y lo recordar;

    Hacindolo lo entender.

    La importancia de practicar

  • ____________________________________________________________ 1

    CAPITULO 1

    ELEMENTOS DE LOGICA MATEMATICA

    1.1 PROPOSICIONES

    Ejemplos:

    Las computadoras se programan. 5 + 4 = 10

    En estos ejemplos se ha afirmado algo, en la primera proposicin se afirma algo verdadero

    y en la segunda algo falso. Dicho de otra manera, la primera proposicin es verdadera, la

    segunda es falsa. Otros ejemplos podran ser:

    La semana no tiene 14 das. 4 no es un nmero par.

    En estos otros ejemplos se ha negado dos hechos o situaciones. En la primera proposicin

    se niega algo falso y en la segunda se niega algo verdadero, tambin se puede decir que la

    primera proposicin es verdadera y la segunda es falsa.

    Toda proposicin tiene que tener un valor de veracidad (o valor de verdad), el cual puede

    ser VERDADERO o FALSO. Es decir, que toda proposicin tiene que ser o bien

    verdadera o bien falsa, pero no ambas.

    Si se afirma algo verdadero, la proposicin es verdadera.

    Si se afirma algo falso, la proposicin es falsa.

    Si se niega algo verdadero, la proposicin es falsa.

    Si se niega algo falso, la proposicin es verdadera.

    Una proposicin es la aseveracin o negacin de algo que puede ser verdadero o falso.

  • ____________________________________________________________

    2

    Si una oracin o frase no tiene valor de veracidad, es decir que no puede ser verdadera o

    falsa, o de la cual no tiene sentido hablar de su veracidad, entonces tal oracin NO es

    proposicin. Las siguientes frases u oraciones no son proposiciones:

    Contraejemplo Razn por la cual NO es proposicin

    De qu color es tu camisa? es una oracin interrogativa Qu lindo da hace hoy oracin exclamativa y una apreciacin subjetiva Por favor, sume el primer nmero con el ltimo. es una oracin imperativa ___________ es mi hermano. est incompleta En estos contraejemplos, se considera que no tiene sentido decir que la frase u oracin es

    verdadera o falsa ( oraciones interrogativas, exclamativas, imperativas o subjetivas). Las proposiciones se representan por medio de letras minsculas del alfabeto, as:

    p: Hoy es lunes q: Llueve r : 2 + 2 4

    Proposiciones Abiertas:

    La siguiente es una proposicin verdadera:

    La unidad monetaria de Honduras es el Lempira, Se representa por p. y se dice que el valor de verdad p es V (se utiliza F para falso). Si se

    omite la palabra Lempira se deja el espacio correspondiente, se tiene:

    La unidad monetaria de Honduras es el __________________ De acuerdo al concepto inicial, lo anterior no seria una proposicin. Es necesario llenar el

    espacio en blanco para que se pueda asignar un valor de verdad. Si se coloca la palabra

    Yen se obtiene:

    La unidad monetaria de Honduras es el Yen. que resulta ser una proposicin, pero falsa. Este tipo de expresin incompleta, que puede

    convertirse en una proposicin, ser llamada proposicin abierta. Se debe notar que una

    proposicin abierta no es una proposicin, pero puede convertirse en una proposicin,

    verdadera o falsa, al llenar el espacio en blanco.

  • ____________________________________________________________ 3

    En este ejemplo cualquier denominacin monetaria del mundo (peso, euro, marco, dlar,

    franco, etc. que son nominaciones monetarias en gnero masculino) podra colocarse en el

    espacio y la frase incompleta se convierte en proposicin, en algunos casos verdadera y en

    otros falsa, por ejemplo:

    La unidad monetaria de Honduras es el Lempira. ( V ) La unidad monetaria de Honduras es el Euro. ( F )

    No se puede llenar el espacio con nombres de universidades, ya que no tendra sentido decir

    que una universidad es la unidad monetaria de Honduras. (A menos, claro est, que se

    escoja el nombre de una universidad como nombre de la unidad monetaria).

    Variables

    De esta manera, la proposicin abierta anterior se rescribe:

    La unidad monetaria de Honduras es el x y se dice que la expresin resultante, es una proposicin abierta que se puede representar

    por p(x).

    Se observa que al llenar espacio de la proposicin abierta, sta se transforma en una

    proposicin que puede ser verdadera o falsa. En el ejemplo anterior el universo sera el

    conjunto:

    U = {peso, euro, lempira, dlar, yen, } Por otra parte, el universo puede ser considerado hasta cierto punto como arbitrario, es

    decir que uno puede escogerlo de acuerdo a los objetivos de un estudio o problema

    especfico. Por ejemplo, para la proposicin abierta: x > 0 el universo podra ser el

    conjunto de nmeros enteros o bien podra ser el conjunto de todos los nmeros reales,

    dependiendo con que clase de nmeros interese o convenga trabajar. En caso de

    incertidumbre en cuanto a la seleccin de un universo, generalmente se selecciona el

    Al espacio en blanco de una proposicin abierta se le llamar variable y se representar

    por una letra (como x, y, z).

    El conjunto de valores que pueden colocarse en el espacio en blanco, o que pueden sustituir a x, se denomina el Universo de discurso de la variable, o simplemente el universo de x, que se representa por Ux o simplemente U.

  • ____________________________________________________________

    4

    universo ms amplio posible, que es el conjunto de todos los valores posibles que

    convierten la proposicin abierta en una proposicin, ya sea sta verdadera o falsa.

    El universo determina generalmente lo que se llama el tipo de la variable. Como en ejemplo

    x > 0 el Universo es un conjunto de nmeros, se dice que la variable es de tipo numrico.

    Si x representa un nmero de personas, convendra entonces escoger U como el conjunto de

    nmeros enteros positivos.

    Predicador

    En una proposicin se pueden tener dos variables, como por ejemplo:

    __________es el hijo de _________________

    Que se representa por:

    P(x,y): x es el hijo de y

    A continuacin se presentan varios ejemplos de proposiciones abiertas y sus respectivos

    universos.

    Ejemplos 1.1

    1. p(x) : 4 x = 7 U podra ser el conjunto de nmeros enteros.

    2. p (y) : Maria se matricul en UNITEC, en la carrera y.

    U = {y/y es una carrera de UNITEC}

    3. p(x,y) : x es el padre de y

    U = {(x, y)/x nombre de varn, y nombre de persona} Debe acordarse que cuando se llena espacio (la variable) de una proposicin abierta con un

    valor del universo, la proposicin abierta se transforma en una proposicin. Sea la

    proposicin abierta es p(x) y un valor del universo a, entonces el llenado de x por el

    valor especfico a, se representa por p(a). El valor de veracidad de p(a) depender de a.

    Para algunos valores de U, p(a) ser Verdadera y para otros valores de U, p(a) ser Falsa.

    Lo anterior se ilustra en los siguientes ejemplos:

    A una proposicin abierta tambin se le llama predicado y se representa por p(x), q(x),

    r(x,y), etc., donde x representa a la variable.

  • ____________________________________________________________ 5

    Ejemplos 1.2

    1. p(x) : x es la moneda de Japn

    p (el Yen) : El Yen es la moneda de Japn (Verdadero) 2. p(x) : x es un nmero mayor que 20

    p (12) : 12 es un nmero mayor que 20 (Falso) 3. p(x,y) : x es un mltiplo de y

    p (35,5) : 35 es un mltiplo de 5 (Verdadero)

    Ejemplo 1.3 Si q (z) : z es un pas que colinda con Honduras El U mas amplio que se puede considerar es el conjunto de todos los pases. El conjunto

    solucin sera: C.S. = {Guatemala, El Salvador, Nicaragua}

    Ya que si en vez de z, se coloca uno de estos nombres de pases, la proposicin tiene valor

    de verdad V. O sea que q (Guatemala) es Verdadera, lo mismo que q (El Salvador) y

    q (Nicaragua), mientras que q (Costa Rica), q (Chile), etc., son Falsas.

    Ejemplo 1.4

    Sea U = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} y

    p(x) : x > 5, entonces C.S. = { 6, 7, 8, 9 }

    Evaluacin de Predicados

    El Conjunto Solucin (representado por C.S.) lo conforman aquellos elementos de U

    que hacen que la proposicin sea verdadera.

    Evaluar lgicamente o simplemente evaluar una proposicin abierta para un valor

    dado de la variable significa determinar el valor de veracidad, Verdadero o Falso, que

    tiene la proposicin una vez que se llena la variable (o se sustituye la variable) por

    el valor dado. Vanse los siguientes ejemplos:

  • ____________________________________________________________

    6

    Ejemplos 1.5 a) Evaluar lgicamente la proposicin abierta x + 3 = 5 para 1 (o para x = 1).

    Para evaluar la proposicin, se coloca 1 en la variable y obtenindose 1 + 3 = 5 y

    como no es cierto, se evala lgicamente la proposicin como FALSA. b) Evaluar La capital de Francia es ____________, para el valor Pars.

    Llenando el espacio con el valor se obtiene: La capital de Francia es Pars y se

    determina que el valor lgico de la proposicin es VERDADERO. c) Evaluar q(x, y): x es un mltiplo de y, para (100,10).

    Al sustituir los valores (en el orden indicado) se obtiene 100 es mltiplo de 10 y la

    proposicin que resulta es VERDADERA. d) Evaluar r(x, y, z): x + 3y > z para x=2, z = 5, y = -1

    Al sustituir los valores indicados: 2 + 3(-1) > 5 que al simplificar queda como:

    2 - 3 > 5

    -1 > 5 lo cual es una proposicin FALSA.

    EJERCICIOS 1.1

    1. Cuales de las siguientes frases u oraciones constituyen proposiciones,

    proposiciones abiertas o ninguna de ellas?

    a) Los ros del planeta Marte son rojos. ___________

    b) Qu da es hoy? ___________

    c) Los valientes no lloran. ___________

    d) x es un valor mayor que 100. ___________

    e) El sueldo no sobrepasa 1000 lempiras. ___________

    f) Maria es la ta de ____________. ___________

    g) Estudia cada da para que apruebes el curso. ___________

    h) Si estudias cada da aprobaras el curso. ___________

    i) y x = 23 ___________

    j) Fuiste al cine o al circo. ___________

    k) z < 30 ___________

  • ____________________________________________________________ 7

    2.- .Determine la variable y establezca un universo apropiado para cada una de las

    siguientes proposiciones abiertas.

    a) n es un nmero par.

    b) __________ es un miembro del Congreso Nacional.

    c) El color favorito de Picasso fue el y.

    d) La luna es de queso es una proposicin cuyo valor de verdad es _____.

    e) El impuesto sobre venta es de x %

    f) 3 + 2* ( ___ - 5) = 17

    g) La pared mide z metros.

    h) x < 23.5

    3. Encuentre el C.S. de las proposiciones del ejercicio anterior. 4. Evale las siguientes proposiciones abiertas con los valores indicados. a). __________ es un departamento de Honduras. para el valor Olancho b) ___- 3 = 6 para el valor 9 c) y > x + 5, para x = 3, y = 5 d) t es un nmero par para el valor 13

    e) x y = 4 y para (10,2)

    1.2 OPERADORES LOGICOS Y TABLAS DE VERDAD La Negacin (no) Si se tiene la proposicin

    p: La semana tiene 7 das (V), Se puede, a partir de ella, construir una nueva proposicin negando su contenido, as:

    La semana no tiene 7 das o bien No es cierto que la semana tenga 7 das

    Estas nuevas proposiciones (que se consideran equivalentes entre si), se denominan la

    negacin de p, que se representa por ~p (que se lee no p). Y si p es verdadera, su

    negacin es falsa; y viceversa, si p es falsa, ~p es verdadera. Esta situacin la representa en

  • ____________________________________________________________

    8

    la siguiente tabla, que se denomina una tabla de verdad, en donde se consideran todas las

    posibles combinaciones de valores de verdad para p y ~p.

    p ~p

    V F

    F V

    Ejemplo 1.6

    Dada la proposicin q: 2 + 2 4, redactar ~q y determinar su valor de verdad

    Solucin: Proposicin Valor de verdad

    q: 2 + 2 4 (F) es la proposicin original, su negacin es:

    ~ q: ~ (2 +2 4) (V) en forma equivalente ~ q: 2 + 2 = 4 (V) Considerando el ejemplo anterior, se presenta una tabla de equivalencia de negacin para

    smbolos matemticos:

    SIMBOLO NEGACION = = > < < >

    Ejemplo 1.7 Ejemplo 1.8

    p(x): 2 + 3 * x > 10 q(x, y): x < y

    ~p(x): ~ (2 + 3 * x > 10) ~ q(x, y): ~(x < y)

    ~ p(x): 2 + 3 * x < 10 ~ q(x, y): x > y

  • ____________________________________________________________ 9

    La Conjuncin y Dadas dos proposiciones p y q, por ejemplo:

    p : Hoy es lunes

    q : est lloviendo

    Se puede formar una nueva proposicin unindolas por medio de la conjuncin y, de esta

    manera:

    Hoy es lunes y est lloviendo

    La que se considera una proposicin y que se representa por: p ^ q

    Al ser p ^ q una proposicin, tiene que tener un valor de veracidad, el cual depender del

    valor de veracidad de p y del valor de veracidad de q, que por definicin vienen dados por

    la siguiente tabla:

    Cada lnea de la tabla representa un caso de las posibles combinaciones de valores V y F de

    p y q, y el valor que se le asigna a p ^ q.

    Se dice que p y q son proposiciones simples o primitivas, no se pueden descomponer ms,

    p y q es una proposicin compuesta, no es simple y se descompone en p y en q.

    Segn lo que se puede observar de la tabla de verdad de la conjuncin si se toma la segunda

    lnea, si Hoy es Lunes es verdadero, pero est lloviendo es falso; por definicin Hoy

    es lunes y esta lloviendo seria falso, de acuerdo a la segunda lnea de la tabla. Se

    concluye diciendo que la conjuncin de p y q es nicamente verdadera cuando ambos p y

    q lo son. El siguiente esquema ilustra lo expresado anteriormente.

    p q p ^ q

    V V V

    V F F

    F V F

    F F F

    La conjuncin solamente es verdadera si las dos (proposiciones) son verdaderas.

  • ____________________________________________________________

    10

    Ejemplo 1.9 Determinar el valor de verdad de p ^ q:

    p ^ q: Hoy es martes ^ est lloviendo V ^ F Evaluar cada proposicin simple. ? F Evaluar la conjuncin.

    Se trabaja en forma de tringulo invertido1 Usando la Tabla de Verdad

    La disyuncin o Tambin se puede obtener una nueva proposicin a partir de las dos anteriores, p y q, si se

    unen por medio de la disyuncin o. Y se denota por p v q

    Cuyos valores de verdad se definen por medio de la siguiente tabla

    1 ) Trabajar en forma de tringulo invertido, implica que se colocarn los valores de verdad de las proposiciones en forma vertical, debajo de cada una y se copiarn todos los operadores que intervienen en la proposicin compuesta, se irn evaluando hasta obtener el valor de verdad final de sta, el cual quedar en la base del tringulo.

    P q p ^ q

    V V V

    V F F F V F

    F F F

    p q p v q

    V V V

    V F V

    F V V

    F F F La disyuncin solamente es falsa si ambas son falsas

  • ____________________________________________________________ 11

    Ejemplo 1.10 Con las mismas proposiciones del ejercicio anterior, determinar el valor de verdad de pvq: pVq: Hoy es martes v est lloviendo V v F Evaluacin de cada proposicin simple.

    ? V Evaluacin de la disyuncin.

    Aparte de la negacin, conjuncin y disyuncin, existen otros operadores lgicos que no se

    estudiarn en este texto. Sin embargo, con estos tres se pueden construir expresiones

    proposicionales ms complejas, que al resultar de la aplicacin de estos operadores una o

    ms veces, y al ser proposicin tiene un valor de veracidad, que depender de que valor de

    veracidad tengan p, q o r. Para analizar todos los posibles valores de veracidad que

    pueda tener una proposicin compuesta se construye una tabla de valores de veracidad, o

    tabla de verdad para dicha proposicin.

    Ejemplo 1.11 Construir la tabla de verdad de (p v ~ q) Se comienza colocando las proposiciones en orden alfabtico, y todas las posibles

    combinaciones de V y F de p y q.

    p q P v q

    V V V

    V F V

    F V V

    F F F

    Observacin 1.2.1 En general el nmero de combinaciones (renglones totales de la tabla) es 2, en donde n es el nmero de proposiciones simples a considerar en la tabla, se comienza escribiendo todos esos casos, para p asignando la mitad de 4 o sea 2 V (de Verdadero) y 2 F (de Falsos), el cociente resultante 2, se divide nuevamente entre 2 obteniendo 1, as para q se alterna un (V) y un (F) hasta terminar.

  • ____________________________________________________________

    12

    p q

    V V

    V F

    F V

    F F A continuacin, se encuentran los valores que corresponderan a ~q:

    p q ~q

    V V F

    V F V

    F V F

    F F V Luego por cada rengln se hace la conjuncin de p con ~q observando los valores de las

    columnas de p y de ~q, aplicando las reglas de la disyuncin.

    p q ~q p v ~ q

    V V F V

    V F V V

    F V F F

    F F V V La ltima columna corresponde a los valores de verdad de p v ~ q segn los valores de p y

    de q como se especifican en la tabla.

    Los operadores lgicos y construccin de tablas de verdad se aplican a las proposiciones

    abiertas tal como se aplican a las proposiciones.

    Ejemplo 1.12 Sean p(x) : x > 0

    q(x, y): x < y

    Construir la tabla de: ~ q(x, y) ^ [~p(x) v q(x, y) ] y posteriormente evaluarla para

    los valores: X = 5 e y = 2 Solucin:

    Por simplificacin se escribir ~q ^ (~ p v q) y construyendo la tabla, columna a columna

  • ____________________________________________________________ 13

    p q ~p ~p v q ~ q ~q ^ (~ p v q) V V F V F F

    V F F F V F

    F V V V F F

    F F V V V V

    Tabla 1.2.1

    .

    Evaluar lgicamente la proposicin compuesta anterior, para los valores de x e y dados: x = 5 y y =2 Se obtiene que:

    p (5): 5 > 0 (sustituyendo 5 por x) es Verdadero y

    q (5,2): 5 < 2, que es Falso.

    Observando nuevamente la tabla de verdad:

    p q ~p ~p v q ~ q ~q ^ (~ p v q)

    V V F V F F

    V F F F V F *

    F V V V F F

    F F V V V V

    Tabla 1.2.1

    Esto corresponde a la segunda lnea* de la Tabla anterior, cuando p es V y q es F, y la

    proposicin ~q ^ (~ p v q) sera ~ (5 < 2) ^ [~ (5 > 0) v (5 < 2)] que tambin se puede

    Observacin 1.2.3

    Recuerde: la conjuncin es verdadera solamente si las dos proposiciones son

    verdaderas, resulta conveniente entonces, colocar primeramente (V) en donde las dos

    proposiciones sean Verdaderas y posteriormente rellenar los restantes renglones de la

    columna de inters con (F).

    En forma semejante, la disyuncin es falsa solamente si las dos son falsas, se deber

    colocar (F) en donde las dos proposiciones son falsas y despus rellena con (V)

  • ____________________________________________________________

    14

    evaluar lgicamente, asignando los valores de veracidad correspondientes a cada

    proposicin y aplicando la definicin de los operadores lgicos, de la siguiente manera:

    ~ (5 < 2) ^ (~ (5 > 0) V (5 < 2))

    ~ F ^ (~ V F )

    V ^ ( F v F )

    V ^ F

    F

    Y se concluye que la proposicin ~ (5 < 2) ^ (~ (5 > 0) v (5 < 2)) es Falsa, y como se

    menciono previamente esto coincide con lo encontrado en la Tabla de verdad 1.2.1.

    Ejemplo 1.13 Construir la tabla de (p v q) ^ ( ~ p v r)

    Como el nmero de proposiciones simples es 3, se tiene que:

    El nmero de renglones es = 2n = 2 = 8, o sea que se tendrn 8 renglones en esta tabla.

    p q r ~ p p v q ~ p v r (p v q) ^ (~p v r) V V V F V V V

    V V F F V F F

    V F V F V V V

    V F F F V F F

    F V V V V V V

    F V F V V V V

    F F V V F V F

    F F F V F V F

    Observacin 1.2.4 Continuando con la Observacin 1.2.1 de la tabla previa, ahora

    intervienen 3 proposiciones simples (p, q, r), as n=3. Luego Renglones = 2 = 8, para la

    columna de p se tiene 8/2 = 4, se colocarn entonces cuatro (V) y cuatro (F), para q se

    colocarn 4/2 =2, alternos dos (V) y dos (F), finalmente para r, 2/2=1 sern alternos un (V)

    y un (F).

    Mtodo Directo

  • ____________________________________________________________ 15

    Ejemplo 1.14 Dadas las siguientes proposiciones abiertas, determinar el valor de verdad de la proposicin compuesta: ~ p v (q ^ ~ r)

    p(x): x * x 36, q(x, y): y + 1 < x, r(x, y): 2 * x > y /2

    Para los valores de x = 6, y = 10 A. Mtodo Largo: ~ p v (q ^ ~ r) ~(x * x 36) v ( (y + 1 < x) ^ ~ (2 * x > y/2) )

    (x * x = 36) v ( (y + 1 < x) ^ (2 * x < y/2) )

    Sustituyendo para x e y:

    (6 * 6 = 36) v ( (10 + 1 < 6) ^ (2 * 6 < 10/2) )

    (36 = 36) v ( (11< 6) ^ (12 < 5) )

    V v (F ^ F)

    V v F

    V

    B. Mtodo de Sustitucin (o Directo , es el mas corto): p(x): x * x 36 q(x, y): y + 1 < x r(x, y): 2 * x > y /2

    P (6) : 6 * 6 36 q (6,10) : 10 + 1 < 6 r (10): 2 * 6 > 10/2

    36 36 (F) 11 < 6 (F) 12 > 5 (V)

    Sustituyendo los valores de verdad encontrados en la proposicin de inters: ~ p v (q ^ ~ r),

    ~ F v ( F ^ ~ V )

    V v ( F ^ F )

    V v F

    V C. Usando la Tabla de Verdad (habiendo evaluado previamente cada proposicin):

    p q r ~ p ~ r q ^ ~ r ~p v (q^ ~ r) V V V F F F F V V F F V V V V F V F F F F V F F F V F F F V V V F F V F V F V V V V F F V V F F V F F F V V F V

    RESPUESTA: El valor de verdad de ~ p v (q ^ ~ r) es V

  • ____________________________________________________________

    16

    Como se puede observar, coincide con el valor de verdad encontrado utilizando los

    mtodos previamente mencionados.

    EJERCICIOS 1.2.1

    1. Construya las tablas de verdad para las siguientes proposiciones:

    a) ~ p ^ q

    b) ~(~p) ^ p c) ~ (~ p v q)

    d) ~ ( p ^ q) v ( p ^ ~ q )

    e) ~ p v ( r ^ s)

    f) p ^ (~ r ^ s )

    g) (r v ~ t) ^ ~q

    h) p v ~ (r v ~p)

    i) ( p v s ) ^ (( ~ q ^ s ) v p )

    j) ~ (p ^ ~ (~ r ^ ~ s))

    2. Dadas p ( x ) : x < 10 y q ( x,y ) : x = y

    a) Construya la tabla para p v ( ~ p ^ q )

    b) Encuentre el valor de verdad para el caso de que:

    i) x = 5 y = 5

    ii) x = 3 y = 0

    iii) x = 11 y = 11

    iv) x = 20 y = 7

    1.3 TAUTOLOGIAS, CONTRADICCIONES Y EQUIVALENCIAS Considrese la tabla de verdad de p v ~ p

    p ~p p v ~p

    V F V

    F V V

  • ____________________________________________________________ 17

    Resulta que la proposicin p v ~ p es siempre verdadera, independientemente de los valores

    que tome p, se dir que p v ~ p es una tautologa. Por otra parte, si se considera la proposicin p ^ ~ p

    Por ltimo, considerando las proposiciones (~ p ^ ~ q) y ~ ( p v q )

    Se elaborar las tablas de verdad de cada una de ellas, se tiene para (~ p ^ ~ q):

    Ahora para ~ ( p v q):

    p q p v q ~ (p v q) V V V F V F V F F V V F F F F V

    Se puede observar que sus valores de verdad son los mismos (comparar las ltimas columnas de ambas tablas). En esta situacin se dice que las proposiciones son equivalentes y se denota as:

    ~ ( p v q ) ( ~ p ^ ~ q )

    P ~p p ^ ~p

    V F F

    F V F

    p q ~p ~q ~ p ^ ~ q

    V V F F F V F F V F F V V F F F F V V V

    Una tautologa es una proposicin cuya tabla resulta en Verdadera en cada

    Se puede observar, por el contrario, que p ^ ~ p siempre es falsa, sin importar los

    valores de verdad que tome p. En este caso se dice que la proposicin p ^ ~ p es una

    contradiccin.

  • ____________________________________________________________

    18

    Ejemplo 1.15 Demostrar que las siguientes proposiciones son equivalentes:

    p v (q v r) y (p v q) v r Solucin: se har una tabla de verdad para cada una, por simplificacin se utilizarn las

    mismas columnas de p, q y r ya que son comunes en ambas proposiciones compuestas:

    Se concluye entonces que las dos proposiciones anteriores son equivalentes.

    Es decir: p v (q v r) (p v q) v r

    P q r q v r p v (q v r) p v q (p v q) v r

    V V V V V V V

    V V F V V V V

    V F V V V V V

    V F F F V V V

    F V V V V V V

    F V F V V V V

    F F V V V F V

    F F F F F F F

    Son Equivalentes

    Dos proposiciones son equivalentes cuando para cada rengln (de sus respectivas tablas de verdad) tienen los mismos valores de verdad.

  • ____________________________________________________________ 19

    Leyes bsicas de la lgica Existen muchas proposiciones equivalentes que permiten, entre otros fines no menos

    importantes, comprender y simplificar proposiciones complejas, y que se resumen en la

    siguiente tabla:

    Leyes Bsicas de la Lgica

    Doble negacin

    ~ ( ~ p ) p

    Conmutatividad

    p v q q v p p ^ q q ^ p

    Asociatividad

    ( p v q ) v r p v ( q v r ) ( p ^ q ) ^ r p ^ ( q ^ r )

    Distributividad

    p ^ ( q v r ) ( p ^ q ) v (p ^ r ) p v ( q ^ r ) ( p v q ) ^ ( p v r )

    Identidad

    p v F p p ^ V p dem potencia

    p v p p p ^ p p

    Elemento absorbente

    p ^ F F p v V V Absorcin

    p ^ ( p v q ) p v ( p ^ q ) p

    DeMorgan

    ~ ( p v q ) ~ p ^ ~ q, ~ ( p ^ q ) ~ p v ~ q

  • ____________________________________________________________

    20

    EJERCICIOS 1.3

    1.- Compruebe que las expresiones de las leyes bsicas de la lgica constituyen

    realmente equivalencias.

    2.- Suponga que x = 3, y = -2. Traduzca a lenguaje simblico las siguientes expresiones

    y encuentre su valor de verdad.

    i) x es mayor que 20 pero y no es positivo

    j) x est entre 2 y 4 (sin tomar los valores de 2 y 4)

    k) No se cumple que x sea mayor que 2 o menor que 6; pero y tampoco es

    menor que 10

    l) x es mayor que 10 es menor que 1

    m) y no es igual a 1, pero x si lo es.

    3.- Llene los espacios vacos en las siguientes tablas:

    a)

    b)

    P q p ~ q

    V V F F

    V F V

    F V F

    F F V F

    p q q ~ ( )

    V V

    V F V F F

    F V V F

    F F F V

  • ____________________________________________________________ 21

    c)

    1.4 NOTACION BOOLEANA Otra forma de representar los valores V y F es utilizando 1 y 0 respectivamente. Esta

    notacin se llama boolena.

    De esta manera las tablas de los operadores lgicos bsicos siguiendo la costumbre de

    colocar primero los valores 0 (falso) quedara de la siguiente manera:

    Negacin: Conjuncin:

    p q r (p ) ~q

    V V V F

    V V F V F V

    V F V V

    V F F V V

    F V F F F

    F V F F

    F

    F

    p ~p

    0

    1

    1

    0

    P q p ^ q

    0

    0

    1

    1

    0

    1

    0

    1

    0

    0

    0

    1

  • ____________________________________________________________

    22

    Disyuncin:

    P q p v q

    0

    0

    1

    1

    0

    1

    0

    1

    0

    1

    1

    1

  • _______________________________________________________________ 23

    CAPITULO 2

    CONCEPTO DE COMPUTADOR Y ALMACENAMIENTO

    2.1 CONCEPTO VON NEUMANN Y DE PROGRAMACION

    Aparte de velocidad y precisin, la caracterstica fundamental que diferencia a la

    computadora de otras mquinas es el hecho de que puede almacenar previamente los datos

    que va a procesar, los resultados obtenidos y ms an, las instrucciones para efectuar una

    tarea. La computadora es capaz de recibir las instrucciones de antemano, de memorizar

    dichas instrucciones y de ejecutarlas en el momento en que se le ordene. De la misma

    manera puede aceptar de antemano los datos con que se va a trabajar, memorizarlos o

    almacenarlos para utilizarlos en el momento en que las instrucciones se lo indiquen. Este

    conjunto de instrucciones que se le proporcionan al computador para realizar una tarea

    especfica constituyen lo que se llama un programa. En los captulos siguientes se

    desarrollan tcnicas para planificar los programas para la computadora y se presentar la

    metodologa para disear un plan previo para producir un programa. Para aprender a producir un programa es necesario conocer cuales son los grandes

    componentes de una computadora y cual es la funcin de cada uno de ellos. Existen

    muchos diseos y arquitecturas para computadoras, cuya descripcin esta fuera de los

    objetivos de este libro, y para efectos de este estudio, se considerar un modelo basado en

    el de Von Neumann.

    Grficamente y de manera simplificada nuestro modelo de computador consta de tres

    componentes: Unidad de Entrada, Unidad Central de Proceso y Almacenamiento y Unidad

    de Salida, relacionadas de la manera siguiente:

    Entrada U.C.P y

    Almacenamiento Salida

  • _______________________________________________________________ 24

    UNIDAD DE ENTRADA

    Es un componente de la computadora, por medio del cual el usuario se comunica con la

    computadora al introducir datos o instrucciones. Se puede pensar en principio que el

    teclado es la unidad de entrada, sin embargo existen muchos dispositivos para este fin,

    como el Mouse, el lector del cdigo de barras, el micrfono, etc. La computadora

    solicita ingreso de datos de acuerdo al programa que previamente se le ha proporcionado.

    Del ingls INPUT (entrada) se toma la letra inicial I, con que muchas veces se refiere a las

    unidades de entrada.

    UNIDAD DE SALIDA

    Es el componente por medio del cual la computadora se comunica con el usuario. A travs

    de los dispositivos de salida la computadora proporciona los resultados deseados, interroga

    sobre las acciones que debe o puede tomar, y proporciona alguna otra informacin, todo

    ello segn las instrucciones del programa que est ejecutando. Un monitor (como el de TV)

    o una impresora en papel, los parlantes, etc., constituyen los medios de salida ms

    comunes; pero no son los nicos. Tambin del ingls OUTPUT (salida) se toma la inicial

    O para referirse a la salida.

    UNIDAD CENTRAL DE PROCESO Y ALMACENAMIENTO Constituye la parte medular de la computadora en donde se efectan las operaciones

    bsicas del proceso. Se pueden distinguir tres componentes principales:

    Unidad de Control

    Interpreta las instrucciones y dirige el resto de dispositivos para la ejecucin del programa. Unidad Lgica / Aritmtica

    Efecta los clculos aritmticos requeridos (sumas, productos, etc.) y puede evaluar la

    veracidad o falsedad de algunas proposiciones y efectuar operaciones lgicas.

    Almacenamiento o Memoria

    Guarda o almacena los datos y las instrucciones. Se puede distinguir lo que se llama la

    memoria principal (que se conoce como la Memoria de Acceso Aleatorio, o RAM

    Random Access Memory), y la memoria auxiliar, que aunque ms extensa, no es tan veloz

  • _______________________________________________________________ 25

    (en las computadoras se puede considerar que la memoria auxiliar reside en los discos

    magnticos).

    Cuando se programa un computador, se escriben las instrucciones de acuerdo a cierto

    cdigo preestablecido dentro de la sintaxis de un lenguaje de programacin de

    computadoras. Por ejemplo, si se desea que la computadora calcule el porcentaje de

    impuesto sobre la venta, no se usa el espaol para indicar la instruccin calcule el 12% de

    la venta (aunque ello es posible), sino que se debern usar las reglas de un lenguaje de

    programacin como ADA, por ejemplo IMP:= VAL_VEN * 0.12;. EJERCICIOS 2.1

    1. Determine la Veracidad (V) o Falsedad (F) de las siguientes proposiciones.

    _____ Normalmente las computadoras van ejecutando las instrucciones de un programa a

    medida que se le van proporcionando.

    Unidad Lgica/Aritmtica

    CONTROL

    Memoria-Almacenamiento

    Principal

    Memoria Auxiliar

    Unidad Lgica/Aritmtica

    Unidad de CONTROL

    Memoria Almacenamiento

    Principal

    Aprender un lenguaje de programacin, consiste en aprender las reglas para

    codificar las instrucciones que forman un programa que la computadora ejecutar

    cuando se le indique.

  • _______________________________________________________________ 26

    _____ Por medio de las unidades I/O se establece una comunicacin con la computadora.

    _____ Una vez que se determina y escribe en lenguaje natural las instrucciones para la

    computadora, se tienen que codificar en un lenguaje de programacin para

    proporcionrselo al computador.

    _____ La unidad de control puede ejecutar instrucciones como multiplicaciones y

    divisiones.

    _____Una unidad de entrada podra ser un reconocedor de la voz humana.

    2.2 CONCEPTO DE ALMACENAMIENTO Y VARIABLE Como se ha indicado anteriormente, el hecho de que la computadora puede almacenar los

    datos y las instrucciones (programas), previo a su ejecucin, distingue a la computadora de

    cualquier mquina (cuando cualquier otra mquina tiene esta capacidad se dice que est

    computarizada). La computadora puede distinguir que porciones de la memoria

    contienen instrucciones (programas) y que porciones contienen datos. Tanto los programas

    como los datos pueden estar en la memoria principal o en la auxiliar. Por ahora se

    abordara el problema de almacenar datos numricos.

    Concepto de Variable

    .

    Si el dato es numrico, se dice que la variable es numrica. Imagnese una variable como

    una caja con una etiqueta para distinguirla de las otras. A la variable se le asigna un

    nombre, que es el que se coloca en la etiqueta. Dentro de la caja se guarda el dato que se

    desea. Ejemplo grfico:

    De esta manera, la variable tiene dos componentes:

    TOTAL

    11550000

    Una variable es un espacio reservado en la memoria en donde se puede almacenar un dato

  • _______________________________________________________________ 27

    El nombre de la variable, que sirve para identificarla El valor de la variable, que es el dato que se almacena

    El nombre de la variable es fijo, pero su valor varia segn los requerimientos del

    programa en cuestin.

    Para agilizar el trabajo, se simplifica el dibujo de la caja de la siguiente manera:

    Nombre

    Valor

    El dibujo anterior muestra una variable llamada TOTAL cuyo valor es 1,500. Se dir que

    1,500 est almacenado en la variable TOTAL. Otras formas de expresar esta situacin

    son:

    La variable TOTAL contiene 1,500. Se ha guardado 1,500 en TOTAL En TOTAL se puso 1,500 TOTAL vale 1,500 Se asign 1,500 en TOTAL

    Ejemplo 2.1 Dibuje una memoria con 3 variables y almacene un 18 en la variable SALDO, un 15 en la

    variable PAGO y en la variable RESTO guarde el numero 34.

    Primero se dibuja las tres cajas (una al lado de la otra) de la siguiente manera:

    Luego se toma la primera instruccin almacene 18 en la variable SALDO. Para ello se

    escoge una caja, por ejemplo la primera y se identifica con el nombre SALDO.

    TOTAL

    1,500

  • _______________________________________________________________ 28

    SALDO

    Y se coloca el nmero 18

    SALDO

    18

    De la misma manera se procede con las siguientes dos instrucciones, y se llega a

    SALDO PAGO RESTO

    18 15 34

    La forma en que se ha indicado las instrucciones: almacene 18 en la variable SALDO no

    ha est codificada en ningn lenguaje de programacin (lo cual se estudiar ms adelante),

    sino que se expresa en nuestro lenguaje natural. Para efectos de comprender como trabaja

    la computadora, se ejecutan las instrucciones del modelo de computador adoptado,

    representando las variables como las cajas dibujadas, y escribiendo en la pizarra o en una

    hoja de papel lo que hara la computadora.

    Ejemplo 2.2 Realice la prueba de escritorio para las siguientes instrucciones:

    1. Almacene un 10 en la variable T45

    2. En TOTAL guarde 2300

    3. Ponga 24 en la variable IMPUESTO

    Se dibuja la memoria con tres variables y siguiendo los pasos anteriores se obtiene el

    siguiente resultado.

    A la accin de ejecutar las instrucciones a lpiz, simulando un computador, se le

    llama prueba de escritorio (P.E.).

  • _______________________________________________________________ 29

    T45 TOTAL IMPUESTO

    10 2,300 24

    El nombre de una variable es una palabra que sigue ciertas reglas, como esta palabra sirve

    para identificar una variable, se llamar identificador. Las reglas generales para un identificador de variable que se estarn utilizando son las

    siguientes:

    1. Debe comenzar con una letra.

    2. Despus de la letra inicial se pueden utilizar ms letras o nmeros.

    3. No se aceptan espacios en blanco, smbolos que indican operaciones ( +, - , *, / ),

    signos de puntuacin y otros caracteres especiales.

    4. Se acepta el subrayado _ .

    5. Pueden utilizarse maysculas y minsculas indistintamente.

    6. Pueden utilizarse hasta 80 caracteres, pero lo ms apropiado es que no sea muy

    largo, ni muy corto que no exprese el uso. Por ejemplo, TOTAL es mejor que T.

    7. Cada lenguaje de programacin tiene su conjunto de palabras reservadas que no se

    pueden utilizar como identificadores, por lo tanto, no se debe escoger un

    identificador que este en la lista de dichas palabras.

    EJERCICIOS 2.2

    Para cada ejercicio dibujar una memoria con 4 o 5 variables y realizar las instrucciones que

    se indican: 1. Ponga un 80 en CALIFICACION

    Guarde un 85 en PROMEDIO

    Almacene un 90 en REPOSICION

    Coloque un 92 en TAREA

    2. En ALTURA guarde 1.80

    En PESO almacene 140

    En CINTURA ponga 31

    3. Coloque -5.7 en X762

    Guarde en TFC4 el numero 0.002

    Ponga -2/3 en HY23

    En YT_23 almacene 100000

  • _______________________________________________________________ 30

    2.3 CONCEPTO DE ASIGNACION En la seccin anterior se utilizan varias palabras del lenguaje comn para indicar el

    almacenamiento (guarde, almacene, ponga, etc.). Ahora se procede a uniformar la

    terminologa para efectos de simplificacin.

    De esta manera el ltimo ejemplo se reescribira:

    1. Asigne 10 a la variable T45

    2. A TOTAL asgnele 2300

    3. Asigne 24 en IMPUESTO. Una manera simblica para representarlos es utilizando una flecha con punta hacia la

    izquierda, como se muestra a continuacin:

    1. T45 10 2. TOTAL 2300 3. IMPUESTO 24 Se puede observar que la flecha apunta hacia la izquierda, donde se encuentra el

    nombre de la variable que se est asignando. A la derecha se coloca el valor que se

    desea almacenar. Una variable puede ser reasignada con un nuevo valor. Por ejemplo si se ejecuta la

    instruccin K 6, se tiene :

    K

    6

    Si luego si se quiere ejecutar la instruccin K 14, primero se borra el 6 K

    Y se escribe el 14

    Se escoge el trmino asignar para indicar el almacenamiento de un valor en una variable.

  • _______________________________________________________________ 31

    K

    14

    Lo cual es el resultado final de las dos asignaciones

    K 6 K 14 Ejecutadas una despus de la otra.

    Una variable puede ser reasignada todas las veces que se indique en el programa (es

    decir las veces que se desee o se considere conveniente de acuerdo a los objetivos del

    programa). El valor anterior a la reasignacin se pierde irremediablemente.

    Obviamente que si se desea conservar un valor en la memoria, no se utilizar la misma

    variable en la asignacin correspondiente. Como en la prueba de escritorio resulta

    incmodo estar borrando cada vez que se reasigna el valor de una variable, se

    acostumbra tachar el nmero que se pierde. Por ejemplo, en las asignaciones anteriores

    primero se tiene K 6

    Luego al ejecutar K 14 Primero se tacha el 6 luego se escribe el 14

    K K

    6 6

    14

    En el ltimo dibujo an se puede ver que, aunque tachado, el 6 fue el primer nmero

    que se asigna, pero para efectos de ejecucin del programa este nmero 6 ya no existe,

    en su lugar est el 14. En el modelo de computador adoptado, en una variable slo se

    K

    6

  • _______________________________________________________________ 32

    puede almacenar un solo dato y del mismo tipo de la variable (i.e. si la variable es

    numrica, slo se puede guardar un nmero a la vez en esa variable).

    Como la asignacin pierde completamente el valor previo a una nueva asignacin, se

    dice que es destructiva. Aunque la caracterstica suena negativa, de hecho es muy

    ventajosa ya que permite reutilizar las variables y minimizar el uso de la memoria que

    constituye un recurso escaso (ahora menos que antes), evitando as almacenar nmeros

    que ya no se necesitan.

    Ejemplo 2.3 Realizar la prueba de escritorio para las siguientes asignaciones :

    T 10 R 2 R 43 T 87 Las asignaciones se ejecutan en el orden que aparecen

    T 10 R 2 R 34 T 87

    No solamente valores constantes se pueden asignar (como el 10, 12, 2, 34 y 87 del ejemplo

    anterior), sino tambin el valor de otras variables, u operaciones entre los valores de otras

    variables.

    T 10

    T R 10 2

    T R 10 2

    34

    T R 10 2

    87 34

  • _______________________________________________________________ 33

    Ejemplo 2.4 Realice la prueba de escritorio para las siguientes asignaciones

    RIS 10 X2 RIS + 3 TOT RIS SOL 5 * X2 (el asterisco * indica multiplicacin) Solucin RIS 10

    RIS

    10

    X2 RIS + 3 Al encontrar a RIS se busca el valor que tiene asignado y se le suma 3, el valor que se

    obtiene se le asigna a X2.

    RIS X2

    10 13

    Al sustituir 10 por RIS, en la expresin aritmtica RIS +3, se dices que se ha evaluado

    (encontrado el valor) de la expresin.

    A continuacin se ejecuta TOT RIS

    RIS X2 TOT

    10 13 10

    En este caso, se dice que se ha pasado el valor de RIS a TOT, o que se ha copiado o movido

    el valor de RIS a TOT. Obsrvese que RIS mantuvo su valor, no lo perdi.

  • _______________________________________________________________ 34

    Finalmente se ejecuta SOL 5 * X2

    RIS X2 TOT SOL

    0 13 10 65

    En una asignacin, el nombre de la variable asignada puede aparecer en la expresin de la

    derecha, ejemplo:

    Ejemplo 2.5

    A 23 A A + 5

    En este caso primero se asigna 23 en A, luego al evaluar la expresin A + 5 se obtiene 28,

    que se asigna a la misma variable A.

    Primero Luego

    A A

    23 23

    28

    Cuando en las asignaciones intervienen varias operaciones aritmticas, se debe considerar

    la prioridad en las operaciones. La menor prioridad la tienen las sumas y las restas, despus

    siguen el producto y la divisin y finalmente tienen mayor prioridad los parntesis y las

    potencias, esto se muestra el siguiente grfico:

    Observacin 2.3.1. Puede notar que la asignacin es diferente del igual = en las

    matemticas, si a ambos lados se cancela A, se obtiene que 0 es igual a 5 lo que no

    es cierto

  • _______________________________________________________________ 35

    Jerarqua de las operaciones

    En el caso de operaciones con la misma prioridad, se realizan por orden de aparicin de

    izquierda a derecha.

    Para realizar pruebas de escritorio de asignaciones que involucren expresiones aritmticas,

    siempre se debe considerar, la prioridad en las operaciones.

    Ejemplo 2.6 p 20 q 5 r p + q r r + 5 q q * 2 s p q * (2 r/q) (1)1

    Para determinar el valor de s se considera la prioridad en las operaciones

    anteriormente citadas, as:

    (1)S p q * (2 r/q) S 20 10 * (2 30/10) S 20 10 * (2 3) S 20 10 * (1) S 20 + 10 S 30

    1 Se ilustra el desarrollo de las operaciones respetando la prioridad en las operaciones

    p q r s (1)

    20 5 25 30

    10 30

    +, -

    *, /

    ( ), potencias

    Menor Prioridad

    Mayor Prioridad

  • _______________________________________________________________ 36

    EJERCICIOS 2.3.1 Para cada ejercicio realice la prueba de escritorio para el conjunto de instrucciones que se

    indican.

    1. a 10 b 17 c a + b d b a e a * b f a 4 * (e b) g a 2.- Tot 100 Res 70 Dif Tot Res Tot 300 Res 210 Dif Tot Res 3.- N 1 P 0 N n + 1 P P + 5 N N + 1 P P + 7 N N + 1 P P 2 4.- X 1 Signo 1 X X * 3 Signo Signo T Signo * X

  • _______________________________________________________________ 37

    X X * 3 Signo Signo T Signo * X 5.- Q 3 R 2 D (Q 1) / (1 1 / (R + 1)) 6.- A 10 B 2 C A 2 * B D 1 B / (C 2 ) A * (1 B) 7- X 8 Y sqrt (X + 1) Z, | 1Y | + 2 8.- dey 21 inj 1 / sqrt (dey + 4) pli (22 dey) / 10 * inj 9.- X1 5 X2 7 Cambio X1 X1 X2 X2 Cambio

    10.- a 10 rem 2 B 15 C (a + b) * 4 D c rem 3

    Observacin 2.3 2: sqrt significa raz cuadrada y a rem b es el residuo de dividir a entre b en

    aritmtica entera, no se admiten decimales.

  • _______________________________________________________________ 38

    CONDICIONES Y SU EVALUACION

    Una de las ventajas de la computadora, es que en el programa se puede indicar varios

    caminos que la computadora puede escoger segn sea el caso, a partir de alguna condicin

    que satisfaga o no los datos.

    En una condicin generalmente se compara variables, expresiones aritmticas con

    constantes u otras variables. Por ejemplo:

    TOT > 0

    SALDO 200 < 1200

    IMPUESTO VENTA = COMISION

    Expresiones lgicas de estas comparaciones:

    NUM_VENTAS > 100 VAL_VENTAS > 5,660.50

    No se cumple que (PAGO < 500 y DEDUCCION < 30)

    Se utilizan entonces operadores relacionales y/o lgicos, los cuales se enlistan a

    continuacin:

    Operadores relacionales Operadores lgicos

    Smbolo

    Descripcin Smbolo Descripcin

    > Mayor que < Menor que ~

    Negacin (no)

    = Igual Distinto

    ^

    Conjuncin (y)

    Menor o igual Mayor o igual

    v Disyuncin (o)

    En este sentido se considera que una condicin como una proposicin abierta, en

    donde las variables que aparecen son efectivamente variables de la memoria

    previamente asignadas.

    Evaluar una condicin significa que se sustituyen las variables por los valores que

    aparecen en la memoria y se determina un valor de verdad (V o F).

  • _______________________________________________________________ 39

    a) TOTAL < 1000

    b) PAGO IMPTO > 900

    c) PAGO > 200 y SALDO < 700

    d) No (TOTAL < 1000)

    Ejemplo 2.7

    De acuerdo al estado de la siguiente memoria, evale las condiciones que se presentan.

    En cada caso se sustituye el nombre de la variable por su valor y se evala la condicin

    segn las reglas de la aritmtica y la lgica matemtica.

    a) TOTAL < 1000 al sustituir 800 < 1000 es Verdadera

    b) PAGO- IMPTO > 100 sustituyendo 750 50 > 900 efectuando la resta

    700>900 lo que resulta Falso.

    c) PAGO > 200 y SALDO < 700 sustituyendo (750 > 200) y (700 < 700)

    esta proporcin y sta

    es verdadera es Falsa.

    Aplicando la tabla de la conjuncin se tiene que V y F resulta ser FALSO

    Utilizando el mtodo directo se tiene:

    (750 > 200) Y (700 < 700)

    V ^ F Evaluacin de las proposiciones simples. F Evaluacin de la conjuncin.

    TOTAL PAGO IMPTO SALDO

    800 750 50 700

  • _______________________________________________________________ 40

    d) No (TOTAL < 1000) Sustituyendo se obtiene No (800 < 1000)

    Como la proposicin dentro de los parntesis es Verdadera, su negacin resulta

    Falsa

    Utilizando el mtodo directo se tiene:

    No (800 < 1000) Evaluacin de la desigualdad ~ V Evaluacin de la negacin. F

    Ejemplo 2.8

    Realizar primero las asignaciones y luego evaluar las condiciones: Pago 1500 Impto 0.12 * Pago Total Pago + Impto Saldo 2000 - Total 1) Total > 0 (V) 2) Saldo 200 < 1200 (V)

    1680 > 0 320 200 < 1200

    V 120 < 1200

    V

    3) No se cumple que (Impto > 100) (pago < 500 y saldo = 320) (F)

    ~ (180 > 100) v ((1500< 500) ^ (320 = 320))

    ~ V v ( F ^ V)

    F v F

    F

    Pago Impto Total Saldo

    1500 180 1680 320

  • _______________________________________________________________ 41

    EJERCICIOS 2.4

    En cada ejercicio realizar primero las asignaciones y luego evaluar las condiciones:

    1.- M 23 N M 17 M + N < 30

    M > 0

    N = 4

    2.- Pago 567 Impto pago * 0.12 Total pago + Impto Impto 45 Pago < 600 total < 700

    No se cumple que (pago > 500 y total < 400)

    3.- I 1 J I + 1 K I + 2 * J I = J 1

    K J 2 No se cumple que (K 5 J * I < 10)

    4.- x 45

    y 36

  • _______________________________________________________________ 42

    x y 0

    3 < (y + x) y = 36

    x < 45

    y = 36

    x 45 y = 36

    x > 0 e y > 0

    x > 0 e y < 0

    x > 0 y < 0

  • ______________________________________________________________________ 43

    CAPITULO 3

    TCNICA DE DESGLOSE 3.1 INTRODUCCIN AL ANLISIS DE UN PROBLEMA OBJETO DEL

    PROGRAMA (P.O.P.) Entre otras razones, se utilizan las computadoras para que realicen tareas de manera ms

    eficiente y rpida que los seres humanos. Para que una computadora realice un trabajo es

    necesario que tenga almacenada las instrucciones necesarias para ejecutarlo. A este

    conjunto de instrucciones se conoce como programa, y a la accin de escribir estas

    instrucciones se le llama programar. Al programar se debe disear un conjunto de instrucciones que la computadora pueda

    entender1. Para ello se escoge cierto lenguaje para la computadora tienen un significado

    especfico de acuerdo a cierto cdigo que una o varias personas haya preparado. Por

    ejemplo para indicarle que almacene el nmero 7 en la variable T, se puede escribir as: MOVE 7 TO T o tambin as:

    T := 7 ; Dependiendo de la forma en que se decida escribir la asignacin, se tendr un cdigo

    distinto. Las diferentes formas de escribir las instrucciones para la computadora son lo que

    se conoce como lenguajes de programacin. Una persona que disea y produce programas

    se llama programador y una persona que utiliza un programa para resolver un problema

    o realizar una tarea se llama usuario.

    El propsito de este libro es el de proporcionar un mtodo y tcnica para producir

    programas.

    1 Entender o sea que al proporcionrsele una instruccin sea capaz de realizar la accin indicada por la instruccin.

  • ______________________________________________________________________ 44

    Para ilustrar los conceptos bsicos de la programacin, se considera el problema que tiene

    un profesor para procesar las distintas evaluaciones que tiene en un curso y que involucra

    varios componentes: dos exmenes parciales a 20% c/u, 1 examen final de 30%, 3

    proyectos a 5% c/u y 15% en tareas y pruebas. El profesor califica cada examen, tarea,

    proyecto, etc. sobre la base de 100%; por lo tanto, para encontrar la calificacin final de

    cada estudiante tiene que efectuar varios clculos aritmticos. Esta tarea, aparte de tediosa,

    requiere de mucho cuidado por la naturaleza de la misma, por lo que constituye una

    situacin muy apropiada de aplicacin de la computadora. Para simplificar su trabajo, el profesor decide usar la computadora para resolver el

    problema del clculo de calificaciones de sus estudiantes, para ello tiene a su disposicin la

    alternativa de usar un paquete (como hoja de clculo electrnico) o de disear un programa

    especfico para su tarea. Con el propsito de ejemplificar la programacin, se supone que el

    profesor decide contratar una persona para que le prepare el programa, que es el

    programador. El programador tiene que conocer y entender todos los elementos involucrados en el

    proceso de los datos (en este caso las operaciones aritmticas para encontrar los promedios

    finales), para poder codificar apropiadamente las instrucciones que proporcionar a la

    computadora, o para poder programar apropiadamente la computadora. El profesor tendr

    que explicar detalladamente al programador cual es la naturaleza del problema, que es lo

    que desea obtener del programa, que datos se tienen que proporcionar y que clculos que se

    tienen que realizar. Es importante observar que en este ejemplo se presentan dos tipos de problemas:

    El problema del profesor de calcular las calificaciones finales de sus estudiantes, problema que ha decidido resolver mediante la computadora.

    El problema del programador que consiste en comprender lo que el profesor desea y producir el programa respectivo para que la computadora resuelva el problema del

    profesor.

    Al primer problema se le llama problema objeto del programa, que se abrevia p.o.p. El

    segundo problema es el de producir un programa, para lo cual se tiene que preparar un plan

    y proceder con cierta sistematizacin. El desarrollo del plan tiene que comenzar con un

    anlisis del p.o.p. Al analizar un problema se separa o descompone en sus partes hasta que

  • ______________________________________________________________________ 45

    se llegue a tener un conocimiento fundamental de sus elementos, principios, y la relacin

    entre ellos. El p.o.p. es el problema del usuario y el producir un programa es el problema

    del programador.

    Al partir del anlisis se esboza un plan que se va detallando y perfeccionando

    sucesivamente, una vez que se tiene un plan del programa se proceder a codificar las

    instrucciones, probar su efectividad y finalmente a ejecutarlo para obtener la solucin del

    p.o.p..

    Es importante poder diferenciar claramente los dos problemas. El problema del

    programador contratado no es en si el de calcular y obtener las calificaciones finales de los

    estudiantes, sino el de producir un programa que las obtenga. Una vez que el programa est

    listo (sin errores) y el profesor le proporciona al computador las calificaciones parciales

    para el clculo del promedio final, por lo que el rol que desempea el profesor es el de

    usuario del programa. El usuario no necesariamente tiene que ser programador, y el

    programador no necesariamente tiene que ser usuario del programa. As como no es

    necesario que una persona construya la casa en que vive, y un ingeniero constructor no

    tiene porque vivir en las casas que construye. Por lo tanto, el usuario no tiene porque

    analizar el problema que le preocupa, lo que desea es una solucin al mismo. Si decide usar

    la computadora para resolver su problema, la computadora ejecuta el programa que se le

    indique y que ha sido preparado para ese fin especfico.

    El anlisis le permite al programador conocer a profundidad el p.o.p. dependiendo de la

    complejidad del p.o.p. el anlisis puede ser tan corto o extenso como lo ameriten los

    conocimientos y experiencia personales. Y a medida que se desarrollen las habilidades de

    programacin, ciertos programas no ameritarn ningn anlisis; ya sea porque se han

    desarrollado programas parecidos o porque se entiende a cabalidad el p.o.p. por su relativa

    simplicidad.

    En las secciones posteriores se estarn abordando ciertos p.o.p. cuyo tratamiento no amerite

    en realidad mayor anlisis, pero que se estarn analizando para fines pedaggicos con el

    propsito de ejemplificar las tcnicas que pueden ser tiles en el anlisis de problemas ms

    complejos.

  • ______________________________________________________________________ 46

    EJERCICIOS 3.1

    Conteste brevemente las siguientes preguntas: 1 Porqu el programador debe entender a cabalidad el p.o.p.? 2 Qu se logra al analizar un p.o.p.? 3.- Qu relacin existe entre un programa, la computadora y el p.o.p.? 4.- Cul es la diferencia entre el problema del usuario y el problema del programador? 5.- Qu problemas ameritan mayor anlisis? 3.2 RESUMEN DEL ANLISIS DE ACUERDO AL MODELO VON NEUMANN El propsito del anlisis de un p.o.p. es el de disponer de todos los elementos necesarios

    para preparar un plan del programa que resolver el p.o.p.. El formato del anlisis no es

    nico, algunos problemas requerirn un enfoque muy distinto a otros, la originalidad o

    experiencia del analista le imprime un sello distintivo al anlisis; la complejidad o

    naturaleza del problema determina la profundidad del anlisis, etc.. No obstante, por muy variado y original que resulte el anlisis, la metodologa que se

    presenta en este texto requiere que se prepare un resumen del anlisis encaminado a la

    produccin del programa.

    El formato del resumen del anlisis est relacionado con el modelo de computador

    propuesto.

    En primera instancia se determina cual es el objetivo del programa con respecto al p.o.p., es

    decir, que resultados va a proporcionar la computadora, cual es la SALIDA. Luego se debe

    definir cual ser la ENTRADA. Lo que significa que describe que tipo de datos se le

    l P R O C E S O 0

  • ______________________________________________________________________ 47

    proporcionarn al computador para obtener la SALIDA requerida. En la prctica, al

    ejecutar un programa, normalmente primero se realizan las tareas de ENTRADA y luego

    las de SALIDA. Sin embargo al realizar el resumen del anlisis se hace nfasis en la

    SALIDA para no perder de vista cual es la meta, que es lo que se desea obtener.

    La SALIDA se especifica de manera cualitativa y de manera cuantitativa, lo mismo que la

    ENTRADA. Preferiblemente se considera la ENTRADA mnima requerida para obtener la

    SALIDA deseada.

    En el prrafo anterior se han utilizado los trminos ENTRADA y SALIDA, para indicar el

    conjunto de datos que se le proporcionarn al computador (posiblemente va teclado) y el

    conjunto de datos que la computadora proporcionar (va monitor o impresora). Estos

    mismos trminos se han utilizado para indicar los dispositivos (teclado y monitor) para

    efectuar los procesos de ENTRADA y SALIDA. El estudiante no debe confundir el uso de

    la terminologa, la cual queda clara segn el contexto en que se utilice. De esta manera los

    trminos ENTRADA y SALIDA se han usado hasta ahora en tres formas distintas: Para indicar un dispositivo o componente de la computadora. Para indicar un proceso o una actividad. Para indicar un conjunto de datos. Una vez que se ha indicado la SALIDA y la ENTRADA que involucra el programa, se

    procede a esbozar el proceso que se sigue para obtener los resultados deseados a partir de

    los datos de entrada.

    El resumen del anlisis sigue el siguiente formato:

    Ejemplo 3.1 (Resumen del Anlisis, calificaciones)

    Para el caso del problema de obtener las calificaciones finales de un curso universitario, el

    resumen del anlisis podra ser como el siguiente:

    Resumen del Anlisis SALIDA: (cuantitativamente) cualitativamente ENTRADA: (cuantitativamente) cualitativamente PROCESO: Expresado de manera resumida en un lenguaje natural.

  • ______________________________________________________________________ 48

    Resumen del Anlisis SALIDA: (40 nmeros) Las calificaciones finales de los 40 estudiantes. ENTRADA: (varios nmeros) Las calificaciones parciales de los 40 estudiantes. PROCESO: De manera repetitiva y para cada estudiante se har lo siguiente:

    Proporcionar al computador las calificaciones parciales de un estudiante. Calcular la nota final del estudiante, basndose en las frmulas

    correspondientes.

    Imprimir o desplegar en el monitor, la nota final del estudiante. EJERCICIOS 3.2 Complete brevemente las siguientes oraciones: 1.- Cuando se dice que la ENTRADA de datos se realiza al principio de un

    programa, el trmino ENTRADA se refiere a:

    _______________________________________________________________

    2.- Al indicar que la SALIDA de un programa la constituyen los promedios finales

    de un curso, el trmino SALIDA se refiere a:

    _______________________________________________________________

    3.- Si se asevera que la Unidad Lgica/Aritmtica se encuentra en la unidad de

    PROCESO Central, la palabra PROCESO se refiere a:

    _______________________________________________________________

    4.- Sin importar lo extenso de un anlisis, en el resumen siempre se especificar:

    _______________________________________________________________ 5.- Es importante tener muy claro cual es la SALIDA de un programa ya que:

    _______________________________________________________________ 3.3 ELEMENTOS EN EL ANLISIS DE UN P.O.P. PARTE I

  • ______________________________________________________________________ 49

    No se proporciona un mtodo rgido para desarrollar el anlisis de un p.o.p.. La dificultad

    del mismo, la experiencia y formacin del analista son factores que influyen en la forma y

    extensin del anlisis. Sin embargo siempre debe tenerse en cuenta que:

    El anlisis de un p.o.p. est orientado al diseo del plan de un programa. Los componentes bsicos que se desean comprender y definir son:

    o La salida o La entrada o El proceso

    El anlisis debe conducir al formato del resumen que contiene los componentes bsicos.

    Debe profundizarse el anlisis hasta definir claramente los componentes anteriores No debe realizarse ms anlisis de lo necesario, si ya se han definido los componentes

    bsicos. Cabe mencionar decir que despus de realizar un Plan de Anlisis que culmina en

    la realizacin de un Resumen del Anlisis, se introducir una tcnica para generar

    desgloses. Estos desgloses (pueden validarse con Pruebas de Escritorio simulando al

    computador con papel y lpiz), posteriormente se transformar a un pseudocdigo

    algortmico que se llama Nolae o Notacin lineal de algoritmos estructurados (al que

    tambin se le pueden aplicar directamente las pruebas de escritorio), ste puede fcilmente

    traducirse o codificarse en una gran diversidad de lenguajes de programacin. El programa

    ya codificado se introduce al computador al igual que los datos, obtenindose as, la

    solucin del p.o.p. planteado. (Vase esta secuencia ilustrada en la Figura 3.3)

  • ______________________________________________________________________ 50

    Figura 3.3

    El analista tiene la libertad de realizar el anlisis de la manera que considere eficaz y

    efectiva. Existen muchos caminos apropiados y correctos para llegar al resumen del

    anlisis, sin embargo a continuacin se presentan a travs del estudio de casos algunos

    elementos que pueden ser tiles para el desarrollo de un anlisis de p.o.p.

    Ejemplo 3.2 (Promedio final de un estudiante) Caso 1: Se toma de nuevo el problema del profesor sobre el clculo de los promedios finales, pero

    que para fines de simplificacin se considera que nicamente tiene un solo estudiante. Una

    vez que se resuelva la situacin para un estudiante, se aplicar el anlisis para considerar

    todos los estudiantes del curso.

    El problema consiste en preparar el anlisis para el plan del programa que calcule el

    promedio final de un estudiante. Previamente se present como podra ser un resumen del

    anlisis y ahora se ver como se puede llegar a ese resumen.

    El primer elemento que se presenta es el denominado ejemplo de escritorio.

    P. O. P Plan del Anlisis

    SOLUCION

    Desglose 1er.y 2do.

    Algoritmo Nolae

    Cdigo en Lenguaje

    Ada95

    Resumen del Anlisis

    Prueba de escritorio

    Prueba de escritorio

    DATOS

  • ______________________________________________________________________ 51

    El propsito del ejemplo de escritorio es el de ganar experiencia operativa con respecto a

    la solucin del p.o.p., de visualizar situaciones que no se presentan explcitamente en el

    planteamiento del problema y de investigar casos especiales y su tratamiento.

    EJEMPLO DE ESCRITORIO

    Se supone que un estudiante obtuvo las siguientes calificaciones:

    NOTA PORCENTAJE (ponderacin) Primer examen parcial 85 (20%)

    Segundo examen parcial 90 (20%)

    Examen final 80 (30%)

    Proyecto 1 95 ( 5% )

    Proyecto 2 100 ( 5% )

    Proyecto 3 100 ( 5% )

    Tarea 1 70 (15% en total)

    Tarea 2 85

    Quiz 1 80

    Tarea 3 100

    Exposicin 90

    Quiz 2 90

    Tarea 4 100

    Para los exmenes, se multiplica cada calificacin por el porcentaje y se suman los resultados, tal como se muestra a continuacin:

    Primer examen parcial 85 X (0. 20 ) = 17.0 (1)

    Segundo examen parcial 90 X (0. 20 ) = 18.0

    Examen final 80 X (0. 30 ) = 24.0

    Puntos ganados por exmenes = 59.0 (1)Obsrvese que para calcular los porcentajes se multiplica la nota por el porcentaje

    dividido entre 100, de la siguiente manera:

    85 X 20% = (85) (20) = (85) (0.20) = 17.0 100

    El ejemplo de escritorio consiste en seleccionar un ejemplo o varios ejemplos y

    resolverlos manualmente, generalmente con lpiz y papel, y posiblemente con una

    calculadora manual.

  • ______________________________________________________________________ 52

    De la misma manera se trabaja con los proyectos:

    Proyecto 1 95 X ( 0.05 ) = 4.75

    Proyecto 2 100 X ( 0.05 ) = 5.00

    Proyecto 3 85 X ( 0.05 ) = 4.25

    Puntos ganados por proyectos = 14.0

    Con respecto a las tareas, quices, etc., si se les da el mismo valor, el camino ms rpido es

    el de encontrar el promedio y luego aplicar el porcentaje. Para calcular el promedio se

    suman todas las notas y se dividen entre el nmero de notas, en este caso son 7.

    Tarea 1 70

    Tarea 2 85

    Quiz 1 80

    Tarea 3 100

    Exposicin 90

    Quiz 2 90

    Tarea 4 100 615 Promedio = = 87.86 Suma 615 7

    Por lo tanto los puntos ganados por proyectos seran: 87.86 x 0.15 = 13.05

    Finalmente si se suman los distintos puntajes se obtiene: Promedio Final = 59 + 14 + 14 = 86 % El ejemplo de escritorio anterior ha permitido trabajar con los detalles y proporciona un

    conocimiento operativo de la naturaleza del problema.

    Como en el problema existen muchos datos, los cuales debern ser almacenados en la

    memoria de la computadora, se considera conveniente en este anlisis identificar las

    variables y se prepara el DICCIONARIO DE VARIABLES.

    DICCIONARIO DE VARIABLES

    El Diccionario de Variables es un listado completo de las variables identificadas por su

    nombre, con sus tributos y una breve descripcin de la variable.

  • ______________________________________________________________________ 53

    En algunas ocasiones es apropiado presentar los nombres de las variables en orden

    alfabtico; en esta ocasin se har conforme se ha ido presentando en el ejemplo de

    escritorio para asegurar que la lista est completa.

    PARCIAL1 Primer examen parcial Nmero sin decimales entre 0 y 100

    PARCIAL2 Segundo examen parcial Nmero sin decimales entre 0 y 100

    EXFINAL Examen final Nmero sin decimales entre 0 y 100. ..

    PROYEC1 Proyecto 1 :

    PROYEC2 Proyecto 2 :

    PROYEC3 Proyecto 3 :

    TAREA1 Tarea 1 :

    TAREA2 Tarea 2 :

    QUIZ1 Quiz 1 :

    TAREA3 Tarea 3 :

    EXPOSICION Exposi