Metodologia de La Programacion Ed2
-
Upload
ronnie-bueso -
Category
Documents
-
view
214 -
download
20
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