ciencias de la computacion
-
Upload
osvaldo-fuentes -
Category
Documents
-
view
22 -
download
8
description
Transcript of ciencias de la computacion
al ed acigóLProgramación
Guía didáctica6 créditos
Ciencias de la Computación y ElectrónicaSección Tecnologías Avanzadas de la Web y SBC
18106
Marco Patricio Abad EspinozaJorge Stalin Calderón Bustamante
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA
La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA
Titulación Ciclo
Ingeniero en Informática I
Autores:
Asesoría virtual:www.utpl.edu.ec
LÓGICA DE LA PROGRAMACIÓNGuía didácticaMarco Patricio Abad EspinozaJorge Stalin Calderón Bustamante
© UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA
Diagramación, diseño e impresión:EDILOJA Cía. Ltda.Telefax: 593-7-2611418San Cayetano Alto s/[email protected]
Primera ediciónSéptima reimpresión
ISBN-978-9942-00-614-1
Reservados todos los derechos conforme a la ley. No está permitida la reproducción total o parcial de esta guía, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright.
Abril, 2013
Derecho de autor 000450
1. Datos informativos2. Índice3. Introducción ................................................................................................................................. 5
4. Lineamientos generales del Modelo Educativo basado en competencias y créditos académicos UTPL-ECTS............................................ 6
4.1 Competencias genéricas ......................................................................................................... 7
4.2 Competencias específicas ....................................................................................................... 7
5. Bibliografía .................................................................................................................................. 7
5.1 Básica ......................................................................................................................................... 7
5.2 Complementaria ...................................................................................................................... 7
6. Orientaciones generales para el estudio ............................................................ 9
7. Proceso de enseñanza-aprendizaje para el logro de competencias .............................................................................................................................. 11
PRIMER BIMESTRE
7.1 Planificación para el trabajo del alumno ........................................................................... 11
7.2 Sistema de evaluación ............................................................................................................ 13
7.3 Orientaciones específicas para el aprendizaje por competencias .................................. 14
UNIDAD I: PROBLEMAS Y SOLUCIONES ...................................................................................................... 14
1.1 Aplicación de la lógica en la programación ........................................................................ 16
1.2 Principios en la elaboración de enunciados ........................................................................ 17
1.3 Comprensión y especificación del problema ....................................................................... 18
1.4 Identificación de entradas, procesos y salidas .................................................................... 19
Autoevaluación 1 ................................................................................................................................ 20
UNIDAD II: NATURALEZA DE LOS DATOS .................................................................................................... 21
2.1 Naturaleza de los datos .......................................................................................................... 21
2.2 Expresiones y datos ................................................................................................................. 22
2.3 Dominios .................................................................................................................................... 22
2.4 Tipos de operadores ................................................................................................................. 22
2.5 Reglas de precedencia ............................................................................................................. 24
Autoevaluación 2 ................................................................................................................................ 25
UNIDAD III: ALGORITMOS ......................................................................................................................... 26
3.1 Ciclo de desarrollo .................................................................................................................... 26
3.2 Determinación de requerimientos ....................................................................................... 28
3.3 Estructuración de pasos del algoritmo ................................................................................. 29
3.4 Resolución de problemas mediante algoritmos.................................................................. 30
Autoevaluación 3 ................................................................................................................................ 32
2. Índice
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 5
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja4
PRIMER BIMESTRE
7.1 Planificación para el trabajo del alumno ........................................................................... 33
7.2 Sistema de evaluación ............................................................................................................ 33
7.3 Orientaciones específicas para el aprendizaje por competencias .................................. 35
UNIDAD IV: ESTRUCTURAS DE DECISIÓN Y BUCLES ..................................................................................... 36
4.1 Flujos de programa..................................................................................................................... 36
4.2 Estructuras selectivas .................................................................................................................. 38
4.3 Bucles ............................................................................................................................................ 39
4.4 Estructuras de control anidadas ............................................................................................... 40
4.5 Pruebas de Escritorio .................................................................................................................. 42
Autoevaluación 4 ................................................................................................................................ 48
UNIDAD V: DIAGRAMAS DE FLUJO ............................................................................................................. 49
5.1 Elementos de un diagrama de flujo ........................................................................................ 49
5.2 Elaboración de diagramas de flujo .......................................................................................... 51
5.3 Ejercicios con diagramas de flujo ............................................................................................. 60
Autoevaluación 5 ................................................................................................................................ 69
UNIDAD VI: DESARROLLO DE PROBLEMAS DE PROGRAMACIÓN................................................................... 70
6.1 Abstracción de ejercicios de programación ............................................................................ 70
6.2 Componentes de una aplicación ............................................................................................... 74
6.3 Desarrollo de aplicaciones sencillas ........................................................................................ 75
Autoevaluación 6 ................................................................................................................................ 60
8. Solucionario ................................................................................................................................. 81
9. Glosario ........................................................................................................................................... 83
PRELIMINARES Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 5
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja4
3. Introducción
Estimado estudiante, queremos darle la más cordial bienvenida a esta su Universidad, particularmente a la carrera de Ingeniería en Informática. Aprovechamos la oportunidad para felicitarlo por haber confiado en esta prestigiosa institución educativa. Nuestros nombres son: Patricio Abad y Stalin Calderón, estaremos con ustedes para guiar el proceso de aprendizaje en la asignatura de Lógica de la Programación, cualquier duda e inquietud estamos a sus órdenes para responderle.
Lógica de Programación es una materia troncal con seis créditos que se ubica en el primer ciclo de la carrera de Ingeniería en Informática y se ha elaborado enfocándose en el desarrollo de las competencias básicas para el diseño de algoritmos a través del pensamiento lógico aplicado a la resolución de problemas por computadora.
El desarrollo de habilidades de programación no se logra sino con la inducción de una forma de pensamiento que ayuda a identificar los aspectos relevantes de un problema y representarlo en una notación formal que permita establecer una solución para el mismo. Como veremos más adelante, todas las personas somos capaces de resolver problemas de diferentes maneras, pero encuentran muchas dificultades al momento de traducir este problema a un lenguaje algorítmico y es precisamente este aspecto el que la materia de Lógica de la Programación intenta resolver, sin esto es muy difícil avanzar con otras asignaturas en la línea de programación, y de allí su importancia vital para el resto de la carrera.
Los contenidos se encuentran organizados en unidades y distribuidos equitativamente para los dos bimestres. Se abordará en la unidad 1 los principios de la resolución de problemas mediante la abstracción de las salidas, el proceso de cálculo y las entradas requeridas; En la unidad 2 se estudiará la naturaleza de los datos, su representación y sus operaciones; para la unidad 3 tenemos los algoritmos que le permite al estudiante adquirir las bases para representar, su proceso de construcción, verificación y depuración.
El segundo bimestre comprende la unidad 4 que abarca el uso de la selección y ciclos repetitivos, la unidad 5 versa sobre la representación de los algoritmos en diagramas de flujos y culmina con la unidad 6 consolidando todos los contenidos en la creación de aplicaciones sencillas susceptibles de programación. Además se considera el uso de herramientas de programación visual que le permitirán concentrarse en la lógica de programación antes que en la sintaxis de un lenguaje particular, esto con el ánimo de que pueda aplicar luego esta lógica con cualquier lenguaje de programación.
Un aspecto importante que debemos mencionar es que la lógica de la programación no se limita a un lenguaje de programación específico, es por tanto independiente del lenguaje y para escribir los algoritmos utilizaremos dos herramientas fundamentales que son el pseudocódigo (miniespecificaciones) y los diagramas de flujo, los cuales puede dibujar y probar en una herramienta muy importante desarrollada por la academia de pilotos de la fuerza aérea norteamericana llamada Raptor.
Thomas Alba Edison decía que los genios son 1% de inspiración y 99% de sudor, la cual es una máxima aplicable a esta materia, pues se requiere estudiar el fundamento teórico, comprenderlo y luego comenzar a desarrollar ejercicios. Muchos otros autores afirman que a programar se aprende programando, así que le animamos a aplicar estos principios en su estudio, es posible que encuentre algunas dificultades, que deberá superar para alcanzar los objetivos propuestos.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 7
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja6
4. Lineamientos generales del Modelo Educativo basado en competencias y créditos académicos UTPL- ECTS
Sr. Estudiante recuerde que usted ha iniciado su formación de tercer nivel con un sistema educativo basado en el desarrollo de competencias a través de créditos académicos. Este modelo le convierte a usted en protagonista de su propia formación y al profesor en mediador de las experiencias de aprendizaje.
Surge entonces la necesidad de que tenga claro dos conceptos fundamentales competencia y crédito académico.
• ¿Quéesunacompetencia?Entendemos por competencia el conjunto de actitudes, habilidades y conocimientos que el alumno adquiere e incorpora según sus características personales y experiencias laborales y, que se ponen de manifiesto en el desempeño de la actividad profesional. Las competencias se adquieren a lo largo del proceso formativo de la carrera y se desagregan en objetivos de aprendizaje propuestos en cada asignatura.
Elementos de una competencia. Tres son los elementos que podemos distinguir en toda competencia:
Actitudes: son predisposiciones y comportamientos ante situaciones concretas.
Habilidades: son destrezas para ejecutar con éxito tareas, utilizar procedimientos y realizar trabajos. Se desarrollan a través de la práctica y la experiencia.
Conocimientos: constituyen los contenidos científicos, conceptuales, teóricos, conocidos también como el aprendizaje académico.
• ¿QuéesuncréditoacadémicoUTPL/ECTSenlaModalidadaDistancia?
Un crédito académico es la unidad de medida del trabajo del estudiante, implica 32 horas de trabajo del alumno (29 horas de trabajo autónomo y 3 horas de interacción)1.
Los créditos académicos que el estudiante irá acumulando en el transcurso de la carrera involucran: aprendizaje autónomo (estudio personal), tareas de investigación, interacción en el Entorno Virtual de Aprendizaje (EVA), participación en tutorías, videoconferencias y otros eventos académicos (Jornadas, seminarios, cursos, congresos avalados por la UTPL), prácticas académicas, pasantías preprofesionales y de vinculación con la colectividad; actividades de evaluación; así como la realización del trabajo de titulación.
El modelo adoptado por la UTPL contempla dos tipos de competencias: genéricas y específicas.
Competencias Genéricas: Son aquellas capacidades (actitudes, habilidades y conocimientos) comunes a todas las profesiones que se ofrecen en la UTPL. Constituyen una parte fundamental del perfil que el estudiante debe desarrollar durante su formación.
1. CONESUP (2008): Reglamento del Régimen Académico del Sistema Nacional de Educación Superior, art. 18.
PRELIMINARES Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 7
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja6
Competencias Específicas: son propias de la titulación, aportan a la cualificación específica para la profesión, dándole consistencia social y profesional al perfil formativo.
• Estructurageneraldelprogramaformativo
Las Unidades Académicas o Escuelas de la UTPL han estructurado el programa formativo contemplando cinco ámbitos o bloques de asignaturas: Formación Básica (10%); Genéricas de carrera (15%); Troncales (35%) Complementarias (10%); Libre configuración (10%) y además, el Practicum que comprende las Pasantías preprofesionales y de vinculación con la colectividad y Practicum Académico (20%).
4.1 Competencias genéricas
• Capacidaddeabstracción,análisisysíntesis.• Capacidadparaidentificar,plantearyresolverproblemas.
4.2 Competencias específicas
Estas se encuentran detalladas en la planificación de cada bimestre.
5. Bibliografía
5.1 Básica
• Ramírez,F.(2007):Introducción a la Programación. Algoritmos y su implementación en VB.net, C#, Java y C++, México, Alfaomega.
El autor del libro Felipe Ramírez tiene mucha experiencia en capacitación de tecnología para las empresas, es director de contenidos de Aprenda Practicando. El texto se ha seleccionado debido a que la forma como plantea los contenidos es didáctica y fácil de seguir, además tiene muchos ejercicios y autoevaluaciones que lo hacen ideal para un estudiante a distancia. El enfoque práctico le da mucha relevancia frente a otros textos similares.
• Abad,M.yCalderón,J.(2009):Guía didáctica de Lógica de la Programación, Ecuador, Editorial UTPL
Guía didáctica diseñada para el estudio de la Lógica de la Programación en la carrera de Ingeniería en Informática de la Modalidad Abierta y a Distancia de la Universidad Técnica Particular de Loja.
5.2 Complementaria
• Cairo,O.(2005):Metodología de la programación algoritmos, diagramas de flujo y programas, México, Alfaomega.
Contiene muchos ejercicios y algoritmos que se pueden usar para complementar los que posee el texto base, es ideal para la parte práctica de cualquiera de los capítulos del la materia. Tiene un desarrollo especial en lo referente a diagramas de flujo.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 9
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja8
• Lipschutz,S.(1983):Matemáticas para computación, Colombia, McGraw-Hill.
A pesar de ser una edición con bastantes años por delante, tiene valiosa información sobre aritmética del computador, lógica matemática, desarrollo de algoritmos y su representación en diagramas de flujos, contiene muchos ejercicios.
• Paniagua,E.,Sánchez,J.yMartín,F.(2003),Lógica Computacional, España, Thomson. Excelente texto para el estudio de la lógica matemática y su aplicación en el ámbito de las ciencias
de la computación, se lo puede utilizar como complemento del capítulo 1 de la materia.
DIRECCIONESELECTRÓNICAS
• Carlisle,M.(2009):Welcome to the raptor home page , [En línea] Disponible en: http://raptor.martincarlisle.com/ [Consulta 12-06-2009]
Sitio de descarga de raptor, donde se publican además las últimas novedades del producto, aquí encontrará también la versión de raptor orientada a objetos.
PRELIMINARES Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 9
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja8
6.Orientacionesgeneralesparaelestudio
Estimado Estudiante:
El estudio de la programación de computadores es una tarea compleja que requiere el desarrollo de algunas habilidades de pensamiento orientadas a la solución de problemas descomponiéndolos en partes manejables, lo cual aprenderemos durante el presente curso.
Para conseguir este propósito es necesario que tenga una dedicación periódica que le permita aprender ydesarrollarlas,porellolesugerimosnomenosde8horassemanalesquepodríanvariarenfuncióndesus habilidades y conocimientos previos.
A continuación se le propone algunas orientaciones que le servirán en su proceso de aprendizaje:
En primera instancia recordarle que usted cuenta con los siguientes recursos para el aprendizaje:
1. La guía didáctica: Le orientará sobre cómo y qué temas estudiar, además contiene ejercicios de autoevaluación que le permitirán medir su grado de comprensión y la necesidad de tutoría por parte del docente. Muchos estudiantes empiezan estudiando directamente el texto, pero como verá más adelante no es recomendable hacerlo.
2. El texto básico: Le servirá para desarrollar los contenidos principales conforme se lo indica en la guía didáctica. Vale acotar que no todos los capítulos del texto se consideran para la asignatura y tampoco cubre todos los contenidos por lo que el estudio debe hacerse siguiendo las instrucciones de la guía didáctica. Los capítulos del 10 al 14 los puede usar para iniciar el estudio de la lógica de la programación en alguno o en todos los lenguajes de programación propuestos.
3. El Entorno Virtual de Aprendizaje: Donde podrá interactuar con sus profesores a través de una orientación del trabajo semanal, uso de mensajería electrónica para resolver inquietudes, foros, desarrollo de ejercicios prácticos, publicación de recursos, todo este trabajo tendrá una valoración de 2 puntos.
4. La Tutoría personal: Es un tiempo semanal que como profesores dedicamos para atender las inquietudes en relación a los contenidos o desarrollo de trabajos, para ello se publicará un horario en el cual podrán asistir personalmente o contactarse vía telefónica, el mismo que se detalla en la carátula de la evaluación a distancia.
5. Los trabajos a distancia: Son actividades teóricas y prácticas que acompañan a la guía didáctica de cada una de las materias, le permiten aplicar y reforzar los conocimientos adquiridos mediante su desarrollo, y debe enviarlos a su profesor. La entrega de estos trabajos con su respectiva carátula es obligatoria y no recuperable, lo cual significa que si no entrega alguno de los mismos no tendrá opción a la evaluación presencial, su valoración es de 4 puntos que sumados a la calificación de participación en el EVA totalizan 6 puntos.
6. El Software para el desarrollo de aplicaciones: Los estudiantes contarán con herramientas de software que les permitirán realizar prácticas y validar los resultados de sus ejercicios. Este software se lo incluirá en un disco compacto que se entrega con la presente guía didactica.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 11
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja10 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 11
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja10
Al finalizar cada bimestre usted debe presentarse a una evaluación presencial en su centro universitario, la cual se califica sobre 14 puntos, que sumados a los 6 puntos de los trabajos a distancia le dan un total de 20 puntos por bimestre. Usted debe obtener una nota mínima de 14 sobre 20, de lo contrario deberá rendir una evaluación supletoria que reemplaza a la nota bimestral. Para aprobar debe tener unmínimode28puntos.
Como método de estudio, le recomendamos que lea detenidamente los contenidos de la guía didáctica y siga fielmente las instrucciones dadas, lo más importante es realizar prácticas no limitándose a lo que dice el texto, sino que es recomendable que idee sus propios problemas lo cual lo hará sentirse mucho más familiarizado con la mecánica de la materia. Puesto que dispondrá de herramientas para la computadora utilícelas en todo momento.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 11
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja10 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 11
PRELIMINARESGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja10
COMPETENCIAS
ESPE
CÍF
ICAS
OBJETIVOSDE
APRENDIZAJE
CONTENIDOS
CRONOGRAMA
ORIENTATIVO
Tiem
po e
stim
ado
ACTIVIDADESDE
APRENDIZAJE
RECURSOS
DIDÁCTICOS
EVALUACIÓN
Unidades/Temas
•Disponerde
fund
amen
tos
mat
emát
icos
, ec
onóm
icos
, es
tadí
stic
os
y fin
anci
eros
ne
cesa
rios
para
in
terp
reta
r, se
lecc
iona
r, va
lora
r el
uso
y d
esar
rollo
te
cnol
ógic
o y
sus
aplic
acio
nes.
•Analizarlas
nece
sidad
es d
e co
noci
mie
nto
nece
saria
s pa
ra
reso
lver
un
prob
lem
a.
•Aplicarlos
prin
cipi
os d
e la
lógi
ca e
n la
reso
luci
ón
de p
robl
emas
co
mpu
taci
onal
es.
•Identificary
com
pren
der u
n pr
oble
ma
para
lle
gar a
su
solu
ción
.
Uni
dad
1: P
robl
emas
y
Solu
cion
es
1.1
Aplic
ació
n de
la ló
gica
en
la p
rogr
amac
ión.
1.2
Prin
cipi
os e
n la
el
abor
ació
n de
en
unci
ados
.1.
3 C
ompr
ensió
n y
espe
cific
ació
n de
l pr
oble
ma.
1.4
Iden
tific
ació
n de
en
trada
s, p
roce
sos
y sa
lidas
.
Sem
ana
1y 2
16 h
oras
de
auto
estu
dio
8horasde
inte
racc
ión
•Le
ctur
a co
mpr
ensiv
a
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•In
tera
cció
n co
n el
EV
A
•In
icio
del
des
arro
llo
de la
eva
luac
ión
a di
stan
cia.
•Textobásico
•GuíaDidáctica
•EntornoVirtual
de A
pren
diza
je:
foro
s, a
ctiv
idad
es,
docu
men
tos.
•Teléfono
•Correoelectrónico
•Autoevaluaciones
por u
nida
des
en la
gu
ía d
idác
tica
•Evaluacionesa
dist
anci
a
•Evaluaciones
pres
enci
ales
•Participaciónenlos
foro
s.
•Determinarlos
tipos
de
dato
s qu
e m
ejor
se
ajus
ten
para
la re
solu
ción
de
pro
blem
as
med
iant
e al
gorit
mos
.
•Resolver
expr
esio
nes
aritm
étic
as, l
ógic
as
y re
laci
onal
es
med
iant
e el
uso
de
las
regl
as d
e pr
eced
enci
a de
los
oper
ador
es.
Uni
dad
2:R
epre
sent
ació
n
de lo
s D
atos
2.1
Nat
ural
eza
de lo
s da
tos.
2.2
Expr
esio
nes
y da
tos.
2.3
Dom
inio
s.2.
4 Ti
pos
de o
pera
dore
s.2.
5 Re
glas
de
prec
eden
cia.
Sem
ana
3
8horasde
auto
estu
dio
4 ho
ras
de
inte
racc
ión
•Le
ctur
a co
mpr
ensiv
a
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•C
ontin
uar c
on
el d
esar
rollo
de
la e
valu
ació
n a
dist
anci
a
•Pa
rtici
paci
ón d
el
foro
pro
pues
to e
n el
EVA
PRIM
ER B
IMES
TRE
7. P
roce
so d
e en
seña
nza-
apre
ndiz
aje
para
el l
ogro
de
com
pete
ncia
s
7.1
Plan
ifica
ción
par
a el
trab
ajo
del a
lum
no
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 13
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja12
•Comprender,
anal
izar
y re
solv
er
prob
lem
as
aplic
ando
los
mét
odos
de
la c
ienc
ia y
la
inge
nier
ía.
•Aplicarlalógica
mat
emát
ica
en
el c
onte
xto
de
las
Cie
ncia
s de
la
Com
puta
ción
, co
n pr
oyec
ción
, al
dise
ño d
e ci
rcui
tos,
pr
ogra
mac
ión,
an
álisi
s y
desa
rrol
lo
de a
lgor
itmos
.
•Reconocerlas
fase
s de
l cic
lo
de d
esar
rollo
de
softw
are.
•Identificarde
form
a cl
ara
los
re
quer
imie
ntos
de
usua
rio.
Uni
dad
3: A
lgor
itmos
3.1
Cic
lo d
e de
sarr
ollo
3.2
Det
erm
inac
ión
de
requ
erim
ient
os3.
3 Es
truct
urac
ión
de p
asos
de
l alg
oritm
o3.
4 Re
solu
ción
de
prob
lem
as m
edia
nte
algo
ritm
os
Sem
ana
4, 5
y 6
24 h
oras
de
auto
estu
dio
12 h
oras
de
inte
racc
ión
•Le
ctur
a co
mpr
ensiv
a
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•Pa
rtici
paci
ón d
el
foro
pro
pues
to e
n el
EVA
•Fi
naliz
ar e
l de
sarr
ollo
de
la e
valu
ació
n a
dist
anci
a.
Uni
dad
de la
1a
la 3
Semana7y8
Prep
arac
ión
para
la
prue
ba p
rese
ncia
l del
pr
imer
bim
estre
.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 13
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja12
Cri
teri
os
Form
as d
e ev
alua
ción
Actit
udes
Hab
ilida
des
Con
ocim
ient
os
PORCENTAJE
PUNTAJE
Comportamiento ético
Cumplimiento, puntualidad y responsabilidad
Esfuerzo e interés en los trabajos
Respetoalaspersonasy a las normas de comunicación
Creatividad e iniciativa
Contribución en el trabajo colaborativo y de equipo
Presentación, orden y ortografía
Emite juicios de valor argumentadamente
Dominiodelcontenido
Investigación (cita fuentes de consulta)
Aporta con criterios y soluciones
Análisis y profundidad en el desarrollo de los temas
1.
Auto
eval
uaci
ón y
act
ivid
ades
re
com
enda
das.
xx
xx
xx
xx
xx
Estra
tegi
a de
apr
endi
zaje
*
2. Heteroevaluación
Eval
uaci
ón a
Distancia**
Objetiva
xx
xx
x10
%2
Ensa
yox
xx
xx
xx
xx
xx
20%
4
30%
6
Inte
racc
ión
en e
l EVA
xx
xx
xx
xx
xx
xC
ompl
emen
ta la
eva
luac
ión
a di
stan
cia,
máx
imo
en 1
pun
to.
Prue
ba
Pres
enci
alPr
ueba
s m
ixta
s:ob
jetiv
as y
ens
ayo
xx
xx
xx
xx
xx
x70%
14
3. C
oeva
luac
ión
En a
ctiv
idad
es e
spec
ifíca
s ta
nto
pr
esen
cial
es c
omo
en
el E
VA.
TOTAL
20 p
unto
s en
cad
a bi
mes
tre
Paraaprobarlaasignaturaserequiereobtenerunpuntajemínimode28/40puntos,queequivaleal70%.
*Sonestrategiasdeaprendizaje,notienencalificación;perodeberesponderlasconelfindeautorregularsuprocesodeaprendizaje
**
Rec
uerd
e: q
ue la
eva
luac
ión
a di
stan
cia
del p
rimer
bim
estre
con
sta
de d
os p
arte
s: u
na o
bjet
iva
y ot
ra d
e en
sayo
, deb
e de
sarr
olla
rla y
ent
rega
rla e
n su
resp
ectiv
o C
entro
Uni
vers
itario
has
ta e
l 15
de n
ovie
mbr
e
(per
íodo
oct
ubre
- feb
rero
) o 1
5 de
may
o (p
erío
do a
bril-
agos
to).
Tengapresentequelafinalidaddelavaloracióncualitativaesprincipalmenteformativa;sinembargo,
encircunstanciasespecialespodríaafectarlepositivaonegativamenteensucalificacióncuantitativa.
Sr.
estu
dia
nte
:
7.2
Sist
ema
de e
valu
ació
n
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 15
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja14
7.3Orientacionesespecíficasparaelaprendizajeporcompetencias
UNIDAD IPROBLEMAS Y SOLUCIONES
El trabajo del pensamiento se parece a la perforación de un pozo: el agua es turbia al principio, más, luego se clarifica.
- Proverbio Chino
Estimado(a) estudiante:
Iniciamos nuestro estudio con este interesante proverbio, que nos da una pauta de cómo es el proceso de aprendizaje de la lógica de programación, con ello le invitamos a poner especial interés en su estudio y a no desesperarse si las cosas no se ven fáciles al inicio, esto no debe preocuparle porque logrará mayor claridad conforme vaya avanzando con el desarrollo de los ejercicios.
Para el estudio de la presente Unidad trabajaremos con el capítulo 3 del texto básico y opcionalmente los libros de lógica planteados en la bibliografía, si puede disponer de ellos sería importante que los use para reforzar los temas planteados.
Una de las habilidades de pensamiento más importante para aprender a programar es la abstracción del problema, la cual podemos decir que es la capacidad de identificar partes en las que podemos dividir un problema para trabajar sobre ellas en la búsqueda de la solución.
Cuando el problema se refiere a programación, en términos generales estas partes se pueden considerar como entradas, proceso, almacenamiento y salida (fig. 1.1), que son los tareas básicas que realiza el computador.
PROCESO ENTRADAS SALIDA
ALMACENAMIENTO
Fig. 1.1 Funciones básicas del computador
La capacidad de abstraer un problema es innata en el ser humano y se desarrolla en mayor o menor medida en función de la complejidad de los problemas que debemos resolver, también tiene mucho que ver la creatividad, de hecho cuando tenemos que enfrentarnos a un problema, podemos resolverlo de diferentes maneras, es muy difícil que dos personas lo hagan del mismo modo.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 15
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja14
Analice el siguiente ejemplo.
Ejemplo 1.1
Problema: Calcule la edad de una persona.
Análisis del problema:
• Debesolicitarlafechadenacimientoyrestarladelafechaactual,elresultadodebeexpresarseen años, meses y días. Hasta aquí el asunto parece fácil, pero si lo analizamos con más detalle la operación de restar fechas es un poco más compleja que la resta común, de hecho no puedo restar directamente las dos fechas como si se tratase de dos número cualquiera, las fechas son números compuestos por tres componentes, que serían los años, los meses y los días, los cuales debo restarlos por separado.
Calcularlaedadquetieneunapersonanacidael12deabrilde1985al15demayode2009.Abstrayendo los datos tendríamos:
Fecha actual: 2009-05-15Fechadenacimiento:1985-04-12
Si aplicamos el cálculo requerido tendríamos que ejecutar las siguientes operaciones:
Año Mes Día
Fecha actual 2009 05 15
Fecha de nacimiento 1985 04 12
Edad 0024 01 03
Solución: La persona tiene 24 años, 1 mes y 3 días.
El método de cálculo seleccionado aparentemente funciona, pero ¿qué sucedería si debemos calcularlomismoparaotrapersona,cuyafechadenacimientoes22dediciembrede1980,siaplicamos el mismo método los resultados serían:
Año Mes Día
Fecha actual 2009 05 15
Fecha de nacimiento 1980 12 22
Edad 0029 -7 -7
Siinterpretamoslarespuestatendríamosquelaedaddelapersonaes29años,-7mesesy-7días,locualnoresultalógicoporquenadietieneunaedadnegativa,estedebidoaquenopodemos realizar restas cuando la fecha de nacimiento es mayor a la fecha actual, en este caso toca aplicar las siguientes reglas:
1. Si el día de nacimiento es mayor al día actual, debo pedir prestado 30 días al mes para poder efectuar la operación y puesto que he convertido un mes en treinta días tengo que restarle un mes a la fecha actual.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 17
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja16
2. Si el mes de nacimiento es mayor al mes de la fecha actual, debo pedir prestado un año expresado en 12 meses y sumarlos al mes actual, luego hay que restar ese año que se convirtió en meses al año actual.
3. Si luego de realizar todas las operaciones obtenemos un año en negativo, hay inconsistencia en los datos por lo tanto no se puede calcular la edad de alguien que todavía no nace.
Solución:
Luego del análisis realizado, vamos a realizar el cálculo correspondiente
Año Mes Día
Prestamos 2009-1=2008 5-1=4+12=18 15+30 = 45
Fecha actual 2009 05 15
Fecha de nacimiento 1980 12 22
Edad 0028 6 23
Portantolapersonaenrealidadtendría28años,6mesesy23días.
Esta solución podría no ser la única, pero es correcta.
El problema puede complicarse más cuando se pide que consideremos los años bisiestos en los cuales elmesdefebrerotiene29díasenlugarde28.¿Seríacapazdeplantearunasoluciónconsiderandoeste problema? Lo invito a solucionarlo en papel y lápiz.
Ahora ¿qué dificultades tuvo para encontrar la solución? Cuando se trata de encontrar la solución una de las dificultades más importantes es la representación del problema en un lenguaje formal como puede ser el lenguaje matemático, para poder procesarlo, en esta tarea nos ayudan la lógica y la
matemática.
Es por ello que nuestro estudio va a comenzar estudiando el papel de la lógica matemática en el planteamiento y solución de problemas.
1.1 Aplicación de la lógica en la programación
Comencemos revisando al apartado Lógica del capítulo 3 del texto básico para ver cómo la lógica de proposiciones nos ayuda a abstraer premisas de un problema y obtener de ella algunas conclusiones.
Luego de revisar el capítulo indicado vale recalcar nuevamente la importancia del razonamiento para poder obtener las proposiciones y llegar a conclusiones.
El estudio de la lógica va más allá del planteamiento de silogismos como se lo ha mostrado en este apartado, el extracto presentado aquí constituye solamente una parte para comprender como empata la lógica matemática con la lógica de programación.
Según lo establece Ramírez, la lógica nos ayuda a tener un pensamiento más ordenado siguiendo algunas reglas que hacen que el mismo sea más lógico.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 17
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja16
Si no logramos un pensamiento fundamentado en la razón, corremos el riesgo de lanzar planteamientos sin la debida argumentación, lo cual no ayuda a resolver los problemas, y muchas de las soluciones propuestas adolecerán fallas que se verán reflejadas en nuestros programas.
Desarrolle el ejercicio 03.01 del texto básico.
Como habrá notado al obtener conclusiones a partir de las premisas, los enunciados pueden ser verdaderos, falsos, correctos o incorrectos. El valor de verdad corresponde a su comparación con la realidad y la corrección tiene que ver con la argumentación que sustenta dicha conclusión.
Los ejercicios hasta ahora analizados en el texto son relativamente sencillos, pero en la práctica nos encontramos con situaciones más complejas, por lo tanto el razonamiento lógico debe apoyarse en un gran número de equivalencias y reglas de inferencia que permiten llegar a conclusiones verdaderas o falsas.
Estudie ahora los apartados Lógica de Programación con sus secciones Aplicación de la lógica en programación y Finalidad de los enunciados del proceso del capítulo 3 del texto básico.
Como bien menciona el autor, la Lógica de la Programación es una “habilidad” o “competencia” que permite obtener algoritmos susceptibles de implementarse en un lenguaje de programación.
Muchas personas tienen facilidad para inferir algoritmos rápidamente, pero como podemos darnos cuenta el uso adecuado de los silogismos, ayuda a formar esta capacidad. Si usted ha tenido la oportunidad de estudiar Lógica Matemática, seguramente habrá sentido que no le sirve de mucho para programación, lo cual según lo estamos analizando no es cierto, y lo más interesante es que le ayuda a ordenar las ideas para obtener algoritmos eficientes a partir de los enunciados.
Aunque todavía no hemos desarrollado ningún algoritmo, hemos podido establecer las salidas esperadas, los datos de entrada y el proceso de cálculo requerido, así como también ha establecer si la información que hemos obtenido es suficiente y correcta como para poder resolver el problema que tenemos en mente.
Si se ha fijado, tenemos diferentes tipos de enunciados que es necesario plantear para poder establecer las condiciones de un problema; mientras más grande y complejo es el problema, requerimos una mayor cantidad de enunciados, los cuales es preciso ubicar en alguna de las tres categorías que son entradas, proceso y salidas.
1.2 Principios en la elaboración de enunciados
Como ya hemos mencionado en el apartado anterior, la clave para resolver de manera lógica un problema es la adecuada elaboración de enunciados. En esta sección vamos a analizar los principios que ubican a los enunciados en entradas, proceso y salidas.
Para el estudio de este tema, tome su texto básico y lea el subtema Principios en la elaboración de enunciados.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 19
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja18
Muy probablemente habrá tenido experiencia programando bien sea en el colegio, en su trabajo, o ahora que está estudiando para obtener su título, si corresponde a este último caso, seguramente reconocerá estos principios en algunas de las características de los algoritmos, de allí la importancia de que antes de resolver un problema, comience planteando los enunciados de acuerdo a cada uno de los procesos estudiados.
Para medir el grado de comprensión que ha obtenido respecto de la elaboración de enunciados, sírvase desarrollar el ejercicio 03.02, note que no es necesario haber estudiado el capítulo 1 del texto básico para hacerlo. Adicionalmente resuelva las preguntas del capítulo 3.
1.3 Comprensión y especificación del problema
Muchos autores inician el estudio de la programación con situaciones triviales como por ejemplo resolver el problema de sumar dos números, lo cual la mayoría de las veces resulta contraproducente porque se subestima la verdadera naturaleza de los problemas de programación.
¿Qué complejidad se puede encontrar en el problema de sumar dos números o en el de encontrar el mayor de dos números? ¿Sería posible plantear enunciados para este tipo de problemas? Lo más seguro es que pueda poner uno o dos pero no tendrá necesidad de desarrollar grandes habilidades de pensamiento para hacerlo.
Los problemas de programación reales suelen tener mayor grado de complejidad y se prestan muy bien para realizar la identificación de las entradas, proceso y salida. Por ello consideramos importante comenzar con problemas no triviales que permitan desde el inicio poner en práctica la mayoría de los principios.
Como se verá más adelante el proceso de programación inicia con una etapa de análisis en la cual se busca identificar todas las características del problema que incluyen: el contexto del dominio que nos permitiría conocer datos, reglas que acompañan al problema en cuestión y las restricciones de entradas o salidas que debemos respetar.
1.4 Identificación de entradas procesos y salida
Tal como se mencionó anteriormente la resolución de un problema de programación implica la identificación de entradas, procesos y salidas, las cuales deben cumplir con las características indicadas en la sección 1.2 de la presente guía.
El análisis del problema contrario a lo que el sentido común dictaría, debe comenzar con la identificación de la SALIDAS esperadas, es decir los resultado que esperamos tener de nuestra solución. En esta etapa entonces debemos elaborar los enunciados correspondientes a las salidas que normalmente corresponderían a los enunciados de resultado.
El siguiente paso es idear el proceso que nos permita llegar al resultado deseado. Los enunciados del PROCESO, corresponderían a la asignación de valores, enunciados de cálculo y enunciados condicionales.
Finalmente debemos identificar las ENTRADASrequeridas para poder realizar los cálculos. Los enunciados en esta categoría normalmente corresponden con enunciados de asignación de valores y enunciados de valor preexistente. La figura 1.2 ilustra gráficamente esta forma de analizar el problema.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 19
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja18
SalidasEntradas Proceso
1
2
3
Etapas en la resolución de un problema
Ejemplo 1.2
Intentemos aplicar los principios de la elaboración de enunciados al ejemplo 1.1 de la guía didáctica valiéndonos de la estrategia aquí planteada.
Enunciados de las Salidas
• Laedaddebeexpresarseenaños,mesesydías.• Laedadenañosnodebesermenorquecero.• Laedadenmesesnopuedesermenorquecero.• Laedadenmesesnopuedesermayorqueonce.• Laedadendíasnopuedesermenorquecero.• Laedadendíasnopuedesermayorquetreinta.
Enunciados del proceso
• Paracalcularlaedadsedeberestarlafechadenacimientodelafechaactual.• Lafechadebedescomponerseenaños,mesesydías.• Sedebecomenzarrestandolosdías.• Sieldíadenacimientoesmayoraldíaactualdebesolicitarunmesexpresadoendíasalosmeses
de la fecha actual, con lo cual se suman 30 días al día actual y se resta un mes al mes actual.• Ensegundainstanciadeberestarselosmeses.• Sielmesdenacimientoesmayorqueelmesdelafechaactual,debesolicitarunañoexpresado
en meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un año a año actual.
• Finalmenteserestalosaños.
Enunciados de la entrada
• Paraelcálculodelaedadesnecesarioingresarlafechadenacimientoylafechaactual.• Lasfechasactualydenacimientodebeningresarseentresnúmeroscadaunaquerepresentan
año, mes y día.• Lafechadenacimientonuncapuedesermayorquelafechaactual.• Unañotiene12meses.• Unmestiene28,30031días.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 21
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja20
• Losmesesdelañopuedentenervaloresdel1al12.• Losdíasdelmespuedentenervaloresdel1al31.
EJERCICIOS
Trabajemos ahora para reforzar los conocimientos adquiridos, desarrollando el siguiente ejercicio.
1. Considere el siguiente problema y elabore los enunciados relacionados con la entrada, procesos y salidas: se desea entregar una cantidad de dinero en dólares con la menor cantidad de billetes y monedas.
¿Ya realizó el ejercicio? ¡Qué bien!!Continuemos¡
Autoevaluación 1
Hemos concluido el estudio de la primera unidad. Conviene comprobar cuánto ha logrado asimilar de los temas revisados en esta parte, para lo cual es necesario que desarrolle el examen rápido del capítulo 3 del texto básico. Verifique sus respuestas con el solucionario que se encuentra al final de la guía didáctica.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 21
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja20
UNIDAD II NATURALEZA DE LOS DATOS
El propósito de la presente unidad es conocer la importancia del uso de los datos al momento de resolver problemas computacionales, así como también aprender a elegir los tipos de datos que mejor se adapten al contexto del problema que estamos tratando de resolver para lograr un mayor rendimiento en la ejecución de nuestros algoritmos.
La temática abordada en esta unidad está vinculada con los capítulos 4 y 5 del texto básico.
2.1 Naturalezadelosdatos
Antes de revisar y desarrollar un algoritmo, es necesario aprender a utilizar los datos que serán procesados y transformados en resultados (información) por dichos algoritmos. Los datos son representaciones simbólicas no significativas que sirven como punto de partida para poder resolver un problema computacional.
A continuación se muestran los diferentes tipos de valores que se pueden manejar en un computador:
Tipo de valor Descripción
Numéricos Permiten realizar cálculos aritméticos
Cadena Permite manejar una serie de caracteres como un solo valor
Fecha Permiten almacenar fechas del calendario
Booleanos Permite almacenar valores binarios. 1-0, Verdadero-Falso
Nulos Ausencia de valor
BLOB Representación binaria para almacenar imágenes, sonidos, etc.
A continuación usted podrá darse cuenta en qué punto intervienen los datos, considerando la arquitectura general de un computador.
Datos Procesamiento Información
Figura 2.1 Arquitectura general de un computador
“Un dato por sí mismo no constituye información, es el procesado de los datos lo que nos proporciona información”.2
2. Wikipedia (2009): Dato, [En línea] Disponible en: http://es.wikipedia.org/wiki/Datos [Consulta 25-06-2009]
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 23
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja22
2.2 Expresiones y variables
Para comprender cómo escribir expresiones, sírvase estudiar el apartado “Expresiones y Variables” del capítulo 4 de su texto básico.
Una vez que ha realizado la lectura del apartado sugerido, podemos concluir que una expresión en términos generales es la representación de un cálculo necesario para la obtención de un resultado; a continuación se presenta ejemplos de diferentes tipos de expresiones:
4 Expresión absoluta“UTPL” Expresión absoluta8+2 Expresión compuesta
nom_variable 4
RAM
Por otro lado, una variable es una referencia lógica a una posición física de la memoria RAM, tal como se esquematiza a continuación:
En donde: nom_variable corresponde al nombre de la variable que referencia al valor 4 (expresión absoluta), que está almacenado físicamente en una celda de la memoria RAM.
2.3 Dominios
Una vez que haya revisado los contenidos del libro en relación a los dominios y sus tipos, podemos concluir que un dominio es el conjunto de valores válidos para un dato. Antes de implementar un algoritmo se debe definir correctamente el dominio de los datos que vayamos a usar, para de esta forma evitar que se ingresen valores incorrectos. Por ejemplo: si deseamos almacenar la edad en años de una persona, claramente podemos darnos cuenta que el rango de valores válidos estarían comprendidos entre 0 y 130, este rango corresponderá al dominio, evitando así que se ingrese valores mayores o tipos de datos diferentes que vayan afectar la ejecución del algoritmo o en su defecto que provoquen almacenar información incorrecta.
2.4 Tipos de operadores
Luego de haber identificado en su texto básico los tipos de operadores que se puede usar en una expresión, podemos concluir diciendo que un operador es un símbolo que tiene una función predefinida (suma, resta, multiplicación, mayor que, etc.); los mismos que nos permiten construir expresiones compuestas, como las que se muestran a continuación:
A = (b * h)A = (b * h) / 2Y = x^2 + 5
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 23
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja22
Los operadores se clasifican de acuerdo a su función, así tenemos la siguiente clasificación:
Operadoresaritméticos
Operador Acción
- Suma
+ Resta
* Multiplicación
/ División
^ Exponencial
Operadoresdeasignación
Operador Acción
= Igual que
Operadoresrelacionalesocomparativos
Operador Acción
= Igual que
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
!= Distinto a
OperadoresLógicos
Operador Acción
NOT Negación
AND Conjunción (Y)
OR Disyunción(O)
Es importante señalar que el resultado de las operaciones lógicas, es decir expresiones que contengan operadores comparativos o lógicos, está determinado por las tablas de verdad correspondientes a cada una de ellas, tal como se puede apreciar a continuación:3
OperadorNOT
A NOT A
V F
F V
3. Wikipedia (2009): Tablas de valores de verdad, [En línea] Disponible en: http://es.wikipedia.org/wiki/Tabla_de_va-lores_de_verdad [Consultado 15-06-2009]
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 25
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja24
OperadorAND
A B A AND B
V V V
V F F
F V F
F F F
OperadorOR
A B A OR B
V V V
V F V
F V V
F F F
2.5 Reglasdeprecedencia
Estimado estudiante, le sugiero realizar una lectura comprensiva del apartado de reglas de precedencia y tenga muy en cuenta los diferentes tipos que menciona el texto básico, finalmente compleméntelos con lo que a continuación se cita:
Los operadores de una expresión se evalúan, en general, de acuerdo al siguiente orden:
1. Paréntesis (comenzando por los más internos)2. Signo3. Potencias4. Productos y divisiones5. Sumas y restas6. Relacionales7. Negación8. Conjunción9. Negación
Para poder entender el funcionamiento de las reglas de precedencia, desarrollaremos el siguiente ejercicio: tenemos la expresión: ((3+2)*2-4)/2*5, del cual debemos obtener su resultado, a continuación resolveremos dicha expresión paso a paso, tomando en cuenta el orden de precedencia de los operadores.
Expresión inicial ((3 + 2) * 2 - 4) / 2 * 5
Se resuelve (3 + 2) (5 * 2 - 4) / 2 * 5
Se resuelve 5 * 2 (10 - 4) / 2 * 5
Se resuelve (10 - 4) 6 / 2 * 5
Se resuelve 6 / 2 3 * 5
Se resuelve 3 * 5 15
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 25
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja24
Ejercicio 2.1
Resolver la siguiente expresión teniendo en cuenta las reglas de precedencia.
Expresión 12/4*(7-5)/3*(4–3)
EJERCICIOS
Es hora de trabajar en los siguientes ejercicios.
1. Desarrolle los ejercicios del apartado Ejercicio 04.04 del texto básico.
2. Desarrolle los ejercicios del apartado Ejercicio 05.01 del texto básico.
3. Dados los valores de: X = 1, Y = 4, Z = 10, resolver la siguiente expresión tomando en cuenta el orden de los operadores.
2*X+0.5*Y–1/5*Z
Autoevaluación 2
Una vez terminada esta unidad, midamos su nivel de comprensión resolviendo el examen rápido del capítulo 4 del texto básico.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 27
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja26
UNIDAD IIIALGORITMOS
El propósito de la presente unidad es la de explicar en forma general el proceso de desarrollo de software con todas sus fases y lo que se realiza en cada una de ellas, para que usted tenga una referencia de lo que implica desarrollar una aplicación que cumpla con todas las expectativas del usuario. También se revisará la estructura de un algoritmo y cómo debemos implementarlos aplicándolos a la resolución de problemas de la vida real.
La temática abordada en esta unidad está vinculada con el capítulo 6 del texto básico.
3.1 Ciclo de desarrollo
El desarrollo de aplicaciones informáticas involucra una serie de fases que se tienen que ir cumpliendo para la obtención del producto final. El conjunto de estas fases se conoce con el nombre de Ciclo de Desarrollo. Existen diversos autores y metodologías que plantean sus propias fases y denominaciones para el ciclo de desarrollo, pero podemos resumirlas en las siguientes:
1. Análisis2. Diseño3. Codificación4. Pruebas e implantación5. Mantenimiento
Revisemos ahora las actividades que se realizan en cada una de las fases del ciclo de desarrollo, así como también los entregables que se deben generar en cada fase, para ello sírvase estudiar los apartados del capítulo 6 de su texto básico: Procedimiento de creación de un programa e Implementación práctica del ciclo de desarrollo.
Una vez que haya concluido con la revisión de los apartados del texto base, puede darse cuenta que el desarrollo de una aplicación informática para la automatización de procesos de negocio no es nada trivial, por lo que se requiere de un gran equipo de trabajo y de una adecuada planificación para lograr el objetivo final.
En la actualidad dos de las metodologías de software más usadas para el desarrollo de sistemas informáticos de nivel empresarial son MSF (Microsoft Solution Framework) y RUP (Rational Unified Process). Estas metodologías constituyen un marco referencial que se debe ajustar para cada equipo, proyecto y empresa. A continuación se presenta las fases que proponen dichas metodologías.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 27
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja26
Figura 3.1. Modelo de Procesos del MSF4
Figurar 3.2. Modelo de Procesos del RUP5
4. Microsoft. (2002): MSF Process Model v. 3.1, [En línea] Disponible en: http://www.microsoft.com/msf [Consulta 15-06-2009]
5. Jacob, I., Booch, G. y Rumbaugh, J. (2004), El Proceso Unificado de Desarrollo de Software, España, Pearson Edu-cación.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 29
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja28
3.2 Determinaciónderequerimientos
Vamos a iniciar este tema definiendo lo que es un requerimiento. La definición que aparece en [IEEE, 1990] es la siguiente:
Una condición o capacidad que un usuario necesita para resolver un problema o lograr un objetivo.
Para poder determinar de forma clara los requerimientos del cliente, usted debe revisar el apartado “Analizar el caso real” del capítulo 6 de su texto básico, en donde se explica en forma detallada y ordenada las actividades que debe realizar para poder completar de forma acertada la etapa de obtención o determinación de requerimientos.
Es importante señalar también que la gran cantidad de calificativos que se aplican al término requerimiento muestran distintos aspectos ortogonales que a menudo se consideran aisladamente. Para intentar clarificar la situación, se puede identificar tres dimensiones en las que se pueden clasificar los requerimientos; estas tres dimensiones son:
• Ámbito: Indica en qué ámbito se debe entender el requerimiento. En general, y siguiendo entre otraslaspropuestasde[IEEE,1997],[DOD,1994]y[DAV,1993],unámbitodesistemaindicaque el requerimiento debe cumplirse a nivel de sistema, entendiendo por sistema un conjunto de hardware y software.
• Característica que define: Clasifica los requerimientos en función de la naturaleza de la característica del sistema deseada que se especifica. La clasificación más habitual suele ser la de requerimientos funcionales (qué funciones debe realizar el sistema) y no funcionales (otras características del sistema).
• Audiencia: Indica la audiencia a la que está dirigido el requerimiento, es decir, las personas que deben ser capaces de entenderlo. En general, se pueden distinguir dos tipos de audiencia, los clientes y usuarios, que no tienen por que tener formación en ingeniería del software, y los desarrolladores de software. Cuando la audiencia está formada por clientes y usuarios, la forma más habitual de definir los requerimientos es mediante lenguaje natural. En el caso de que la audiencia prevista esté formada por desarrolladores de software, los requerimientos suelen expresarse mediante un modelo, normalmente utilizando técnicas estructuradas, orientadas a objetos o formales.
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 29
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja28
Figura 3.3. Dimensiones de los requerimientos6
3.3 Estructuración de pasos del algoritmo
Estimado estudiante, para este tema, estudie el apartado “Algoritmos” del capítulo 6 de su texto básico, incluidos los ejercicios.
Antes de desarrollar nuestro primer algoritmo, es preciso dar una definición:
Un algoritmo es un conjunto de pasos ordenados lógicamente que permiten realizar un tarea.
En base a esta definición podemos determinar el siguiente proceso al momento de construir nuestros algoritmos:
1. Identificar los datos de entrada.2. Determinar el procesamiento al que deben someterse los datos de entrada.3. Identificar los resultados que se esperan.
Por ejemplo: Se requiere calcular el área de un terreno rectangular cuyas dimensiones son:
Largo: 10 metrosAncho: 20 metros
En base a estos datos elaborar un algoritmo que permita presentar el área de dicho terreno.
1. Identificamos los datos de entrada: Dimensiones del terreno (largo y ancho)
2. Identificamos el proceso que debemos seguir para calcular el área, en este caso, será: Área = largo * ancho
6. Monografías. (2004): Dimensiones de la Ingeniería de Requerimientos, [En línea] Disponible en: http://www.monografias.com/trabajos26/sistema-documentacion/sistema-documentacion2.shtml [Consulta 15-06-2009]
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 31
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja30
3. Presentamos el resultado (Área) al usuario
Note que el algoritmo está compuesto de esos 3 pasos principales, aún no se ha utilizado los tipos de datos ni la creación de variables, este tema será cubierto en la siguiente sección de la guía, aquí nos limitamos a ver únicamente la estructuración general del algoritmo.
Bien, realicemos el siguiente ejercicio.
Ejercicio 3.1
Elaborar un algoritmo que permita determinar el área de un triángulo equilátero cuyo lado es 5 cm.
3.4 Resolucióndeproblemasmediantealgoritmos
Revise los ejercicios resueltos en su texto básico, los mismos que se encuentran en el apartado “Analizando los casos y diseñando sus algoritmos” del capítulo 6, para que complete la resolución de los problemas que se plantean a continuación:
Ejercicio 3.2
El programa debe mostrar el factorial de un número ingresado por el usuario. El factorial de un número entero positivo se define como el producto de todos los números naturales anteriores o iguales a él. Por ejemplo:
5! = 5 * 4 * 3 * 2 * 1 = 120
El símbolo ! indica factorial.
Utilice los espacios siguientes para el desarrollo.
Análisis del caso
Áreadelconocimiento
Matemática elemental
Análisis de los elementos del todo
PRIMER BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 31
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja30
Unidades de funcionalidad
ID Unidad de funcionalidad Prioridad Obligatoriedad
1
Interfaz
Algoritmo
1 Inicio
2
3
4
5
6
Simulación
Supongamos que ingresamos el número 4, el programa debería mostrar lo siguiente:
Ingrese el número para obtener su factorial: 4
El factorial de 4 es 24
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 33
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja32 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 33
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja32
EJERCICIOS
Una vez que usted ha profundizado en los temas de la unidad, es el momento que desarrolle su primer ejercicio de algoritmos.
1. Desarrolle el caso 6: Regla de tres simple, del apartado Ejercicio 06.01 del texto básico.
Autoevaluación 3
¡Felicitaciones¡ ¡Ha concluido el primer bimestre ¡ sólo le falta revisar su nivel de comprensión de los algoritmos resolviendo el examen rápido del capítulo 6 del texto básico.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 33
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja32 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 33
PRIMER BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja32
COMPETENCIAS
ESPE
CÍF
ICAS
OBJETIVOSDE
APRENDIZAJE
CONTENIDOS
CRONOGRAMA
ORIENTATIVO
Tiem
po e
stim
ado
ACTIVIDADESDE
APRENDIZAJE
RECURSOS
DIDÁCTICOS
EVALUACIÓN
Unidades/Temas
•Disponerde
fund
amen
tos
mat
emát
icos
, ec
onóm
icos
, es
tadí
stic
os
y fin
anci
eros
ne
cesa
rios
para
in
terp
reta
r, se
lecc
iona
r, va
lora
r el
uso
y d
esar
rollo
te
cnol
ógic
o y
sus
aplic
acio
nes.
•Elaboraralgoritmos
que
perm
itan
la re
solu
ción
de
pro
blem
as
utili
zand
o es
truct
uras
de
sele
cció
n y
cont
rol.
•Utilizarpruebas
de e
scrit
orio
par
a va
lidar
la e
jecu
ción
de
los
algo
ritm
os
Uni
dad
4: E
stru
ctur
as d
e de
cisi
ón y
Buc
les
4.1
Fluj
os d
e pr
ogra
ma
4.2
Estru
ctur
as s
elec
tivas
4.3
Bucl
es4.
4 Es
truct
uras
de
cont
rol
anid
adas
4.5
Prue
bas
de E
scrit
orio
Semana9,10y11
24 h
oras
de
auto
estu
dio
12 h
oras
de
inte
racc
ión
•Le
ctur
a co
mpr
ensiv
a
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•In
tera
cció
n co
n el
EV
A
•In
icio
del
des
arro
llo
de la
eva
luac
ión
a di
stan
cia.
•Textobásico
•GuíaDidáctica
•EntornoVirtual
de A
pren
diza
je:
foro
s, a
ctiv
idad
es,
docu
men
tos.
•Teléfono
•Correoelectrónico
•Autoevaluaciones
por u
nida
des
en la
gu
ía d
idác
tica
•Evaluacionesa
dist
anci
a
•Evaluaciones
pres
enci
ales
•Participaciónenlos
foro
s.
•Analizarlas
nece
sidad
es d
e co
noci
mie
nto
nece
saria
s pa
ra
reso
lver
un
prob
lem
a.
•Comprender,
anal
izar
y re
solv
er
prob
lem
as
aplic
ando
los
mét
odos
de
la c
ienc
ia y
la
inge
nier
ía.
•Conocerla
simbo
logí
a de
los
diag
ram
as d
e flu
jo.
•Emplearlos
diag
ram
as d
e flu
jo
en la
reso
luci
ón d
e pr
oble
mas
.
Unidad5.Diagramasde
flujo
5.1
Elem
ento
s de
un
diag
ram
a de
fluj
o5.
2 El
abor
ació
n de
di
agra
mas
de
flujo
5.3
Ejer
cici
os c
on
diag
ram
as d
e flu
jo
Sem
ana
12
8horasde
auto
estu
dio
4 ho
ras
de
prác
ticas
•Le
ctur
a co
mpr
ensiv
a
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•C
ontin
uar c
on
el d
esar
rollo
de
la e
valu
ació
n a
dist
anci
a
•Pa
rtici
paci
ón d
el
foro
pro
pues
to e
n el
EVA
SEG
UNDO
BIM
ESTR
E7.
1 Pl
anifi
caci
ón p
ara
el tr
abaj
o de
l alu
mno
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 35
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja34
•Aplicarlalógica
mat
emát
ica
en
el c
onte
xto
de
las
Cie
ncia
s de
la
Com
puta
ción
, co
n pr
oyec
ción
, al
dise
ño d
e ci
rcui
tos,
pr
ogra
mac
ión,
an
álisi
s y
desa
rrol
lo
de a
lgor
itmos
.
•Desarrollar
aplic
acio
nes
senc
illas
util
izan
do
herr
amie
ntas
de
prog
ram
ació
n.
Unidad6.Desarrollo
de p
robl
emas
de
prog
ram
ació
n
6.1
Abst
racc
ión
de
ejer
cici
os d
e pr
ogra
mac
ión
6.2
Com
pone
ntes
de
una
aplic
ació
n6.
3 D
esar
rollo
apl
icac
ione
s se
ncill
as
Sem
ana
13 y
14
16 h
oras
de
auto
estu
dio
8horasde
inte
racc
ión
•D
esar
rollo
de
activ
idad
es
reco
men
dada
s en
la
guía
did
áctic
a
•Pa
rtici
paci
ón d
el
foro
pro
pues
to e
n el
EVA
•Fi
naliz
ar e
l de
sarr
ollo
de
la e
valu
ació
n a
dist
anci
a.U
nida
d de
la 4
a la
6Se
man
a 15
y 1
6Pr
epar
ació
n pa
ra la
pr
ueba
pre
senc
ial d
el
segu
ndo
bim
estre
.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 35
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja34
Cri
teri
os
Form
as d
e ev
alua
ción
Actit
udes
Hab
ilida
des
Con
ocim
ient
os
PORCENTAJE
PUNTAJE
Comportamiento ético
Cumplimiento, puntualidad y responsabilidad
Esfuerzo e interés en los trabajos
Respetoalaspersonasy a las normas de comunicación
Creatividad e iniciativa
Contribución en el trabajo colaborativo y de equipo
Presentación, orden y ortografía
Emite juicios de valor argumentadamente
Dominiodelcontenido
Investigación (cita fuentes de consulta)
Aporta con criterios y soluciones
Análisis y profundidad en el desarrollo de los temas
1.
Auto
eval
uaci
ón y
act
ivid
ades
re
com
enda
das.
xx
xx
xx
xx
xx
Estra
tegi
a de
apr
endi
zaje
*
2. Heteroevaluación
Eval
uaci
ón a
distancia**
Objetiva
xx
xx
x10
%2
Ensa
yox
xx
xx
xx
xx
xx
20%
4
30%
6
Inte
racc
ión
en e
l EVA
xx
xx
xx
xx
xx
xC
ompl
emen
ta la
eva
luac
ión
a di
stan
cia,
máx
imo
en 1
pun
to.
Prue
ba
pres
enci
alPr
ueba
s m
ixta
s:ob
jetiv
as y
ens
ayo
xx
xx
xx
xx
xx
x70%
14
3. C
oeva
luac
ión
En a
ctiv
idad
es e
spec
ifíca
s ta
nto
pr
esen
cial
es c
omo
en
el E
VA.
TOTAL
20 p
unto
s en
cad
a bi
mes
tre
Paraaprobarlaasignaturaserequiereobtenerunpuntajemínimode28/40puntos,queequivaleal70%.
*Sonestrategiasdeaprendizaje,notienencalificación;perodeberesponderlasconelfindeautorregularsuprocesodeaprendizaje
**
Recu
erde
: que
la e
valu
ació
n a
dist
anci
a de
l seg
undo
bim
estre
con
sta
de d
os p
arte
s: u
na o
bjet
iva
y ot
ra d
e en
sayo
, deb
e de
sarr
olla
rla y
ent
rega
rla e
n su
resp
ectiv
o C
entro
Uni
vers
itario
en
la fe
cha
esta
blec
ida.
Tengapresentequelafinalidaddelavaloracióncualitativaesprincipalmenteformativa;sinembargo,
encircunstanciasespecialespodríaafectarlepositivaonegativamenteensucalificacióncuantitativa.
Sr.
estu
dia
nte
:
7.2
Sist
ema
de e
valu
ació
n
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 37
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja36
7.3Orientacionesespecíficasparaelaprendizajeporcompetencias
UNIDAD IV
ESTRUCTURAS DE DECISIÓN Y BUCLES
El propósito de la presente unidad es dar a conocer el funcionamiento y utilidad de las estructuras de decisión y control, así como también su uso en el desarrollo de algoritmos para la resolución de problemas. Se revisará también mecanismos que le permitan comprobar si el algoritmo desarrollado funciona o no correctamente.
Latemáticaabordadaenestaunidadestávinculadaconelcapítulo7deltextobásico.
4.1 Flujos de programa
Es preciso iniciar dando una definición de lo que es un programa: Secuencia lógica de instrucciones que manipulan o procesan un conjunto de datos para obtener resultados que corresponden a la solución del problema.
En base a esta definición podemos indicar que la ejecución o flujo de un programa consiste en la realización secuencial del conjunto de instrucciones desde la primera a la última y de una en una. Este orden de realización únicamente será alterado mediante las estructuras de decisión y control (bucles). Los procesos que se pueden llevar a cabo en un programa pueden ser de tipo aritmético o lógico, incluyéndose algunas operaciones de manejo de caracteres y operaciones de entrada y salida.
Una vez que tenemos clara la definición de Programa y cómo es su flujo o ejecución, ahora pasaremos a revisar los componentes o partes principales que lo conforma, en el siguiente cuadro podemos observar que básicamente un programa está compuesto por dos bloques, uno de declaraciones y otro de instrucciones.
Instrucciones
Declaraciones
Entrada de datos
Proceso
Salida de resultados
PROGRAMA
Figura 4.1 Estructura de un programa
Declaraciones
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 37
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja36
Bloque de declaraciones
En él se especifican todas las variables que serán usadas por nuestro programa o algoritmo. Se debe indicar el nombre de la variable, el tipo de dato y su dominio. Por ejemplo, si queremos declarar la variable base, debemos hacerlo de la siguiente manera:
(Nombre variable, Símbolo Tipo de dato [Dominio])(base, i[1-n])
En donde, base corresponde al nombre de la variable, i al tipo de dato entero y 1-n al dominio, es decir en este caso, números mayores o iguales a 1.
Para conocer los símbolos de los tipos de datos, sírvase revisar el apartado “Representación abstracta de tipos base” del capítulo 4 de su texto base.
Bloque de instrucciones
Está formado por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados. Según lo indicado en la Figura 4.1, tenemos los siguientes tipos de operaciones:
a. Entrada de datos.- La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacenan en la memoria central para que puedan ser procesados.
b. Procesamiento de datos.- Está formado por las instrucciones que modifican los datos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados).
c. Salida de resultados.- Conjunto de instrucciones que toman los datos finales (resultados) de la memoria central y los envía a los dispositivos externos.
Ahora bien, procederemos a adoptar un estándar al momento de escribir nuestras instrucciones que formarán parte del programa o algoritmo. De acuerdo al tipo de instrucción u operación que vayamos a emplear, tenemos lo siguiente:
a. Declaración
(Nombre variable, Símbolo tipo de dato [Dominio]) (lado, i[1-n])
b. Cambio de estado (Asignación)
Nombre de variable ←Expresión lado ← 10
c. Lectura de datos (Petición)
>> Nombre de variable >> lado
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 39
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja38
d. Muestra de datos
<< Expresión << lado
Estimadoestudiante,usteddeberevisarelapartado“Operacionesaniveldato”delcapítulo7desutextobásico.
4.2 Estructuras selectivas
Las estructuras selectivas permiten realizar la evaluación de expresiones lógicas, para controlar la ejecución de una o más instrucciones. Existen principalmente dos tipos de estructuras selectivas o condicionales que son:
a. Condicional simple
Si Expresión lógica entonces Instrucciones a ejecutar si la expresión lógica es True (verdadera)Fin si
Ejemplo:
Siedad>=18entonces >> “Usted es mayor de edad”Fin si
b. Condicional compuesto
Si Expresión lógica entonces Instrucciones a ejecutar si la expresión lógica es True (verdadera)
De lo contrario Instrucciones a ejecutar si la expresión lógica es False (falsa)
Fin si
Ejemplo:
Siedad>=18entonces >> “Usted es mayor de edad”
De lo contrario >> “Usted es menor de edad”
Fin si
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 39
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja38
Para aclarar estos conceptos, por favor proceda a realizar la lectura del apartado “Estructuras dedecisión”delcapítulo7desutextobásico.
4.3 Bucles
Los bucles también conocidos como ciclos repetitivos o estructuras de control, permiten realizar la ejecución de un conjunto de instrucciones de manera repetitiva mediante la evaluación de una o más condiciones lógicas o por medio de un contador asociado. Antes de proceder a revisar los bucles que usaremos en el desarrollo de nuestros algoritmos, es preciso aclarar dos conceptos clave al trabajar con ciclos repetitivos, estos conceptos son: contadores y acumuladores.
a. Contadores
Un contador es una variable que se utiliza para contar cualquier evento que pueda ocurrir dentro de un programa. Generalmente se suele contar desde 0 y con incrementos de uno en uno. Para utilizar correctamente un contador primero de lo debe inicializar y luego incrementar; así tenemos:
contador ← 0 Inicialización
contador ← contador + 1 Incremento de 1 en 1
b. Acumuladores
Un acumulador es una variable que se utiliza para acumular elementos sucesivos con una misma operación. Generalmente se usan para calcular sumas o productos. Al igual que los contadores primero se los debe inicializar y luego realizar la operación de acumulación; así tenemos:
suma ← 0
suma ← suma + expresión
Una vez que hemos revisado lo que es un contador y un acumulador, podemos empezar a estudiar los bucles (loop), para ello lo invito a realizar la lectura del apartado “Estructuras de Control”delcapítulo7desutextobásico.
Cabe señalar que dependiendo del lenguaje de programación que se use, existen varios ciclos repetitivos que podemos emplear, sin embargo son derivaciones de los dos tipos de bucles que explicaremos a continuación.
a. Bucles de comparación al inicio
Inicialización del contadorMientras Expresión lógica Entonces Uso del contador Instrucciones a ejecutar si la Expresión lógica es True (verdadera)Fin Mientras
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 41
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja40
Ejemplo: Escribir los números dígitos.
numero ← 0Mientras numero < 10 Entonces << numero numero ←numero +1 Fin Mientras
El resultado del ejemplo es:
01 2 3 4 5 6 7 8 9
b. Bucles de comparación al final
Inicialización del contadorInicio Instrucciones a ejecutar si la Expresión lógica es True (verdadera) Uso del contadorHasta que Expresión lógica
Ejemplo: Escribir los números dígitos.
numero ← 0Inicio << numero numero ←numero +1 Hasta que numero >= 10
El resultado del ejemplo es:
0 1 2 3 4 5 6 7 8 9
Como puede darse cuenta el resultado en los dos ejemplos es el mismo, por lo que podemos usar en este caso particular cualquiera de los dos bucles, ahora bien, lo invito a contestar la siguiente interrogante una vez que haya realizado la lectura del apartado Estructuras de Control de su texto básico, ¿Cuál es la diferencia entre un bucle de comparación al inicio y un bucle de comparación al final?
4.4 Estructuras de control anidadas
Se conoce como estructuras de control anidadas a la combinación o uso de las estructuras de decisión y/o ciclos repetitivos (bucles) en la elaboración de un algoritmo. En otras palabras, cuando una estructura de control se coloca dentro de otra, se dice que está anidada.
Las estructuras de control pueden anidarse en tantos niveles como se desee. A fin de que las estructuras anidadas sean más fáciles de leer, utilizaremos como una práctica habitual el aplicar sangría al cuerpo de cada una de las instrucciones anidadas.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 41
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja40
Ejemplo 4.1
Determinar si la edad de una persona es la correcta para sufragar.
Siedad>=18entonces Si edad < 65 entonces << “Usted debe sufragar obligatoriamente” Caso Contrario << “Usted puede sufragar opcionalmente”Fin SiCaso Contrario<< “Usted no puede sufragar”Fin Si
Como usted puede apreciar en el ejemplo 4.1, se ha utilizado anidamiento en la estructura de decisión (condicional) para resolver el problema en mención. Cabe indicar también que existen varias soluciones a dicho problema, las mismas que están relacionadas con la capacidad de cada persona para comprender, encontrar y plasmar dichas soluciones en un algoritmo. Esta capacidad se desarrolla mediante la práctica continua, por lo que lo invito desde ya a plasmar los conocimientos aquí aprendidos, mediante la realización de ejercicios que permitan potenciar su habilidad para la resolución de problemas computacionales.
Ahora bien, una vez que hemos estudiado las estructuras de decisión y bucles, estamos en la capacidad de desarrollar algoritmos que nos permitan resolver diferentes tipos de problemas, para ello vamos a hacer uso de las Miniespecificaciones, que también son conocidas como Pseudocódigo, es decir un lenguaje neutral, que sin llegar a la rigidez de la sintaxis de un lenguaje de programación ni a la fluidez del lenguaje coloquial, permite codificar un programa o algoritmo con mayor agilidad.
Estimado estudiante, lo invito a realizar la lectura del Apartado “Miniespecificaciones” del capítulo7desutextobásico.
Una vez que usted ha realizado la lectura indicada es posible que hayan surgido algunas dudas, mismas que intentaremos aclarar con el ejemplo siguiente.
Ejemplo 4.2
Traducir a miniespecificación el ejemplo 4.1 sobre la edad de una persona para sufragar.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 43
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja42
Observeelsiguienteplanteamiento.
1 INICIO:
2 (edad, i[1..160])
3 << “Ingrese su edad en años: ”
4 >> edad
5 Siedad>=18entonces
6 Si edad < 65 entonces
7 << “Usted debe sufragar obligatoriamente”
8 Caso Contrario
9 << “Usted puede sufragar opcionalmente”
10 Fin Si
11 Caso Contrario
12 << “Usted no puede sufragar”
13 Fin Si
14 :FIN
En la miniespecificación podemos observar las siguientes instrucciones:
- (edad,i[1..160]) Declaración de la variable edad- << “Ingrese su edad en años: Presentación de un mensaje- >> edad Lectura de datos sobre la variable edad
4.5 Pruebas de escritorio
En la sección anterior usted aprendió a desarrollar algoritmos utilizando las miniespecificaciones, ahora bien lo que necesitamos saber es si nuestro algoritmo funciona correctamente, en decir si hace lo que tiene que hacer ¿cómo podemos verificar este cometido?, para poder comprobar esto, nos valemos de las pruebas de escritorio que no son más que pruebas manuales que permiten visualizar el estado de las variables durante la ejecución del programa, lo que nos permitirá saber en donde se encuentra el error, para proceder a su corrección.
Estimado estudiante, para comprender el ejercicio que a continuación está resuelto, usted debe revisar primero los ejercicios de su texto básico en el capítulo 7, en el apartado “Miniespecificaciones de los casos prácticos”.
Para llevar a cabo las pruebas de escritorio, vamos a resolver el siguiente ejemplo:
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 43
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja42
Ejemplo 4.3
Elaborar un algoritmo utilizando miniespecificaciones, que permita leer el nombre y el sueldo mensual de 4 empleados, se debe presentar el nombre y el sueldo del empleado que más gana así como también del que menos gana. Si se repite el mayor o menor sueldo se presenta el primero que se encuentre.
Para resolver este problema, primero debemos identificar claramente cuáles van a ser las salidas, el proceso y las entradas, para poder desarrollar con éxito la miniespecificación; así tenemos:
Enunciados de las Salidas
• Sedebepresentarelnombreyelsueldomensualdelempleadoquemásgana.• Sedebepresentarelnombreyelsueldomensualdelempleadoquemenosgana.• Siserepiteelmayoromenorsueldosedebepresentarelprimeroqueseencuentre.
Enunciados del proceso
• Sedebehacerusodeunbucleparasolicitarelingresedelos4empleados.
• Paraobtenerelempleadoquemásgana,sedebecompararlosdatosingresadosmedianteuncondicional y dependiendo si el sueldo ingresado es mayor al anterior, se lo almacena en una variable, que finalmente será la que se presente como resultado final, al terminar la ejecución del bucle.
• Paraobtenerelempleadoquemenosgana,sedebecompararlosdatosingresadosmedianteuncondicional y dependiendo si el sueldo ingresado es menor al anterior, se lo almacena en una variable, que finalmente será la que se presente como resultado final, al terminar la ejecución del bucle.
Enunciados de la entrada
• Sedebeingresarelnombrede4empleadosjuntoconsusueldomensual.
Una vez que tenemos claro lo antes mencionado, necesitamos declarar variables para almacenar el nombre del empleado y su sueldo mensual, también necesitamos variables para almacenar el nombre de la persona que más gana y su sueldo, así como también el nombre de la persona que menos gana y su sueldo. Luego tenemos que ir comparando el sueldo de cada empleado que se ingresa para poder determinar el mayor y menor valor, para ello emplearemos la estructura de decisión, y para controlar que nos ingrese 4 empleados nos valdremos del bucle de comparación al inicio (Mientras). En base a todo esto procedemos a escribir nuestra miniespecificación.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 45
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja44
1 INICIO:
2 (nombre,x(50))
3 (sueldo,d[0-n])
4 (nombreMaySueldo,x(50))
5 (sueldoMayor,d[0-n])
6 (nombreMenSuedo,x(50))
7 (sueldoMenor,d[0-n])
8 (num, i[0-n])
9 << “Ingrese el nombre y el sueldo”
10 >> nombre
11 >> sueldo
12 nombreMaySueldo ← nombre
13 sueldoMayor ← sueldo
14 nombreMenSuedo ← nombre
15 sueldoMenor ← sueldo
16 num ← 2
17 Mientras num <= 4 entonces
18 num ← num +1
19 << “Ingrese el nombre y el sueldo”
20 >> nombre
21 >> sueldo
22 Si sueldo > sueldoMayor entonces
23 sueldoMayor ← sueldo
24 nombreMaySueldo ← nombre
25 Caso Contrario
26 Si sueldo < sueldoMenor entonces
27 sueldoMenor ← sueldo
28 nombreMenSueldo ← nombre
29 Fin Si
30 Fin Si
31 Fin Mientras
32 << “El empleado que más gana es: ” + nombreMaySueldo + “con un sueldo de: $ ” + sueldoMayor
33 << “El empleado que menos gana es: ” + nombreMenSueldo + “con un sueldo de: $” + sueldoMayor
34 :FIN
Una vez que hemos escrito la miniespecificación, realizamos la prueba de escritorio, para verificar si nuestro algoritmo es o no correcto. Para ello indicaremos mediante el uso de tablas el estado (valor) de las variables durante la ejecución del programa.
Supongamos que ingresamos los datos de los siguientes 4 empleados:
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 45
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja44
Nombre: Luis Sueldo mensual:$700
Nombre: María Sueldo mensual:$800
Nombre: José Sueldo mensual: $ 400
Nombre: Jorge Sueldo mensual: $ 1000
A la línea 16, la tabla luciría así:
Variable Valor
nombre Luis
sueldo 700
nombreMaySueldo Luis
sueldoMayor 700
nombreMenSueldo Luis
sueldoMenor 700
num 2
En la primera repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería elsiguiente:
Variable Valor
nombre María
sueldo 800
nombreMaySueldo María
sueldoMayor 800
nombreMenSueldo Luis
sueldoMenor 700
num 3
En la segunda repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería elsiguiente:
Variable Valor
nombre José
sueldo 400
nombreMaySueldo María
sueldoMayor 800
nombreMenSueldo José
sueldoMenor 400
num 4
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 47
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja46
En la tercera repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería elsiguiente:
Variable Valor
nombre Jorge
sueldo 1000
nombreMaySueldo Jorge
sueldoMayor 1000
nombreMenSueldo José
sueldoMenor 400
num 5
A la línea 32, tendremos:
“El empleado que más gana es: Jorge con un sueldo de: $ 1000”
A la línea 33, tendremos:
“El empleado que menos gana es: José con un sueldo de: $ 400”
Con lo que podemos concluir que el algoritmo es correcto gracias a la prueba de escritorio que hemos ejecutado.
EJERCICIOS 4.1
En base al ejercicio del cálculo de la edad de una persona explicado en la Unidad 1 de la presente guía didáctica, realice las pruebas de escritorio, siguiendo la miniespecificación propuesta para dicho problema. Utilizar los siguientes datos de prueba:
Fechadenacimiento: 01/10/1985Fechaactual: 03/07/2009
1 INICIO:
2 (anio_n, i[1900-2009])
3 (mes_n, i[1-12])
4 (dia_n, i[1-31])
5 (anio_a, i[1900-2009])
6 (mes_a, i[1-12])
7 (dia_a, i[1-31])
8 (edad_a, i[0-150])
9 (edad_m, i[0-12])
10 (edad_d, i[0-31])
11 <<”Ingrese la fecha de nacimiento en años, meses y días”
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 47
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja46
12 >> anio_n
13 >> mes_n
14 >> dia_n
15 <<”Ingrese la fecha actual en años, meses y días”
16 >> anio_a
17 >> mes_a
18 >> dia_a
19 Si dia_n > dia_a entonces
20 dia_a ← dia_a + 30
21 mes_a ← mes_a -1
22 Fin Si
23 edad_d ←dia_a–dia_n
24 Si mes_n > mes_a entonces
25 mes_a ← mes_a + 12
26 anio_a ←anio_a–1
27 Fin Si
28 edad_m ←mes_a–mes_n
29 Si anio_n > anio_a entonces
30 << “Error: la fecha de nacimiento es mayor a la actual”
31 Caso Contrario
32 edad_a ←anio_a–anio_n
33 << “Edad: ” + edad_a + edad_m + edad_d
34 Fin Si
35 :FIN
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 49
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja48
EJERCICIOS
Le recuerdo que la asignatura es práctica, por ello lo invito a desarrollar el siguiente ejercicio.
1. Desarrolle el caso 6: Regla de tres simple, en el apartado Ejercicio 07.01 del texto básico.
Autoevaluación 4
¿Qué tanto logró comprender de este tema? Mida su avance resolviendo el examen rápido del capítulo 7deltextobásico.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 49
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja48
UNIDAD V
DIAGRAMAS DE FLUJO
Una vez que ha aprendido cómo resolver problemas utilizando las diferentes herramientas de la lógica de programación, vamos a continuar nuestro estudio con una técnica visual de programación conocida como Diagramas de flujo de programa, la cual le ayudará a comprender mejor la manera de resolver problemas de programación.
El propósito de este capítulo es enseñarle a utilizar los diagramas de flujo de programas utilizando el estándar ANSI/ISO 5887-1985 para diagramas de flujo, por lo que usaremos comoreferenciaelcapítulo8deltextobásico.
Comencemos estudiando algunos preliminares sobre este tema en al apartado “Diagramasdeflujo”delcapítulo8,solamentehastalas“Reglasparalaelaboracióndeun diagrama de flujo “.
Como habrá notado, los diagramas de flujo de programa son una poderosa herramienta para expresar la lógica de la programación, pero se debe tener en cuenta algunos principios que se plantean efectivamente en el texto, otro aspecto es que los símbolos a usarse deben corresponder a una notación estándar para que todos entiendan lo que se quiere expresar con el mismo.
En este punto podría ser útil plantearse la interrogante ¿Si ya puedo escribir miniespecificaciones, para qué me sirven los diagramas de flujo? El texto menciona que para hacer los diagramas de flujo, no es necesario tener la miniespecificación, y esto es verdad, pero ¿cuál de los dos debo usar?, ¿es necesario desarrollar ambos?
La respuesta a estas preguntas las podemos encontrar en los siguientes planteamientos:
1. La notación visual ayuda a tener una apreciación completa de la solución que difiere de la obtenida en las miniespecificaciones, esto gracias a una mejor visualización lograda con el uso de los símbolos gráficos.
2. La notación estándar permite una comunicación más efectiva, lo cual convierte a los diagramas de flujo en una excelente herramienta para documentar los programas.
3. La lógica de programación debe expresarse en un lenguaje independiente de cualquier lenguaje de programación, las mini especificaciones tienden a inclinarse a uno u otro lenguaje lo cual incide en el código de la miniespecificación, en tanto que los diagramas de flujo son totalmente independientes de cualquier lenguaje de programación.
En base a estas premisas, obtenga sus propias conclusiones.
5.1 Elementos de un diagrama de flujo
Un diagrama de flujo básicamente está conformado por símbolos y reglas. Si usted recapitula un poco, se dará cuenta de que hay correspondencia entre estos símbolos y las sentencias válidas de un programa, por lo que se puede dibujar un diagrama de flujo a partir de una miniespecificación o hacerlo sin ella.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 51
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja50
En cuanto a los símbolos, los Diagramas de Flujo de Programa tienen 4 categorías que son:
• Dedatos(entrada/salida),ingresaromostrardatos.• Depreparacióndedatos.• Deproceso.• Especiales.
ENTRADA/SALIDADEDATOS
Para entrada o salida de datos se usa el símbolo al cual se le debe indicar si se trata de un ingreso de datos (GET) o una presentación de datos (PUT), aunque esto en realidad no corresponde al estándar, tal como lo menciona el autor del libro, por lo que se puede usar otro tipo de notación para indicar si setratadeunaentradaounasalida.Otroaspectoquenosemencionaenellibroeslaposibilidaddecombinar un mensaje de solicitud de datos con una entrada de datos, en realidad sería una entrada de datos acompañada de un mensaje de petición para el usuario como lo podemos apreciar en la figura 5.1, en la cual se ha colocado dos posibilidades para el ingreso de los datos.
En la práctica muchos programadores que se enfocan en la solución de un problema consideran que no es necesario colocar mensajes de entrada de datos, puesto que esos son detalles de implementación, en tal virtud podría ser suficiente utilizar PUT para mostrar resultados y GET para obtener valores en cuyo caso se colocará únicamente el nombre de las variables en las que se almacenarán los datos.
“Ing rese u n núm ero ”
num
“Ing rese u n núm ero ”, n um
s
E
E
Figura 5.1 Formas de utilizar le símbolo de entrada/salida de datos
SIMBOLODEPROCESOS
En esta categoría tenemos varios símbolos de proceso que tal como se encuentra explicado en el texto básico, son usados en la mayoría de notaciones, en este punto simplemente comentaremos algunos aspectos.
Si lo piensa un poco, la preparación de datos definida en símbolo , podría bien realizarse con el símbolo de proceso , no habría problema en hacerlo, pero la preparación de datos normalmente no forma parte del problema, es por ello que al tratarse de programación visual se tiene una visión más clara del problema si se diferencian este tipo de procesos.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 51
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja50
Con relación al símbolo vale realizar una aclaración importante, puesto que en la descripción se habla de un proceso nominado, que en términos un poco más cercanos a nuestra jerga, serían invocaciones a subrutinas las cuales son partes de programa que cumplen una tarea y concluyen devolviendo el control al programa desde el que fueron llamadas.
El símbolo se usa para representar procesos que se ejecutan al mismo tiempo, en la mayoría de programas de procesamiento de datos no es tan usual que esto suceda puesto que la mayoría de situaciones se procesan de manera secuencial, en otros contextos el uso de procesos paralelos es indispensable, quizá uno de los campos donde mayor aplicación tienen este tipo de procesamiento son los juegos en donde cada elemento tiene su comportamiento independiente de las acciones del usuario, es decir no esperan una orden del usuario para actuar sino, que funcionan principalmente controlados por eventos que normalmente pueden estar relacionados con el tiempo o alguna acción proveniente del exterior que les obliga a cambiar de comportamiento.
Con relación a los símbolos se usan para establecer los límites y las condiciones de ejecución de un bucle o también denominados ciclos repetitivos que estudió en el capítulo anterior.
Las líneas de flujo se usan para unir símbolos y nos ayudan a establecer el orden de ejecución de las instrucciones contenidos en los símbolos, estas líneas deben terminar en una punta de flecha para indicar de a dónde va el flujo, además se debe considerar que el orden de lectura normalmente suele ser de izquierda a derecha y de arriba hacia abajo, además estas líneas siempre deben dibujar se en ángulos rectos.
SIMBOLOSESPECIALES
Se llaman especiales porque si bien no representan ningún proceso, nos ayudan a identificar el inicio o el final , o la continuación de una sección de diagrama debido a que es muy grande
para colocarlo todo junto.
Otro símbolo que se puede usar en la categoría de especial es el símbolo de anotación cuyo uso es importante para clarificar varias secciones del programa con comentarios respecto de la lógica utilizada o alguna consideración importante, este símbolo es particularmente importante en secciones del diagrama cuyo nivel de complejidad es alto.
El uso de la notación estándar como mencionábamos anteriormente tiene radical importancia, por lo tanto consideraremos como mala práctica el no usar los símbolos definidos o inventar otro tipo de notación.
5.2 Elaboración de diagramas de flujo
El desarrollo de diagramas de flujo puede realizarse de dos maneras, la primera es partir de una miniespecificación y la segunda es hacerlo directamente sin ella, en cualquiera de los dos casos debemos tener en cuenta la necesidad de realizar el análisis correspondiente del problema, tal como apreciábamos en el capítulo 1 de la presente guía didáctica, sin este análisis resultará muy complicado tratar de resolver cualquier problema.
Vale acotar además que cualquier instrucción dada en miniespecificación tiene su contraparte en los diagramas de flujo, por lo que la traducción podría realizarse de manera directa y viceversa. Una diferencia fundamental es que tanto en las miniespecificaciones conocidas también como pseudocódigo y el código de un programa en un lenguaje cualquiera es preciso realizar pasos previos como la
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 53
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja52
declaración de variables donde se especifica el tipo de dato y tamaño de las variables que se van a usar, en los diagramas de flujo esto no es necesario, puesto que como mencionamos antes son detalles de implementación.
Para aprender cómo escribir diagramas de flujo, remítase a la sección “Cómo elaborar un diagrama de flujo de programa” del capítulo 8, y estudie detenidamente los primeros diagramas que le van indicando cada una de las estructuras básicas de un diagrama de flujo.
En la sección del libro indicada, se ha mostrado como construir un diagrama de flujo para un programa queleanúmerosdel1al10hastaqueseingreseelnúmero7,yademásselohahechoapartirdeuna miniespecificación. Ahora es posible que se esté preguntando ¿si ya tengo la miniespecificación, para qué hago el diagrama?, para responder a esta pregunta le voy a proponer un ejemplo para que lo analice y luego veamos lo que piensa.
Se desea desarrollar un diagrama de flujo para un programa que sea capaz de decir si un número es perfecto. Se considera que un número es perfecto cuando la sumatoria de todos sus divisores exactos es igual al mismo número.
La miniespecificación para este algoritmo sería la siguiente:
1 INICIO:
2 (num, i[0-n])
3 (cnt, i[0-n])
4 (sum, i[0-n])
5 << “Ingrese el número”
6 >> num
7 cnt 1
8 sum 0
9 Mientras cnt <= num entonces
10 Si num % cnt =0 entonces
11 << cnt
12 sum sum + cnt
13 Fin si
14 Cnt = cnt + 1
15 Fin mientras
16 Si sum = num entonces
17 << “El número es perfecto”
18 Fin si
19 :FIN
Si traducimos esta miniespecificación a diagrama de flujo obtendríamos el diagrama de la figura 5.2, en el cual se puede apreciar con mayor claridad cuál es la lógica de programación utilizada, esto a pesar de que el código de la miniespecificación es bastante corto, el seguimiento del programa se facilita considerablemente en el diagrama.
El programa seleccionado para este ejercicio es relativamente sencillo, sin embargo se presta para mostrar las diferencias entre una y otra técnica de representar la lógica de la programación.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 53
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja52
In icio
num
cnt 1
sum 0
cnt < num
(num % cnt) = 0 cnt Si
no
cnt
sum = num
sum sum + cnt
“El num ero es p er fecto”si
“E l núm ero no e s
per fecto”
no
cnt = cnt + 1
fin
Ver ifica s i cnt es d ivisor d e num , m ediante la b usqueda del residuo d e la d ivisión , s i este e s 0, e s d ivisor e xácto
Figura 5.2 Diagrama de flujo de programa para encontrar si un número es perfecto
Como seguramente se habrá dado cuenta, los diagramas de flujo permiten hacer un seguimiento más claro de la lógica utilizada para resolver el problema. ¿Qué podría responder ahora respecto de las preguntas planteadas anteriormente?
Ahora, trabajemos sobre la otra estrategia para desarrollar los diagramas de flujos, que sería dibujar el diagrama sin hacer la miniespecificación.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 55
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja54
Ejemplo 5.1
Resolver mediante un diagrama de flujo el ejemplo 1.2 del cálculo de la edad de una persona que planteamos en la unidad 1, en este caso no vamos a tener como punto de referencia la miniespecificación, sino el análisis del problema que básicamente lo desarrollamos planteando enunciados para las salidas, el proceso y las entradas requeridas.
En este caso como el análisis del problema ya fue realizado, vamos a comenzar plasmando en el diagrama las entradas, luego el proceso y finalmente las salidas, esto significa que para analizar el problema, debemos partir desde las salidas, pero para ya idear la solución, debemos comenzar en sentido contrario.
Comencemos desarrollando nuestro diagrama con las entradas, para ello repliquemos los enunciados de la parte de entrada, pero numerándolos para poder explicarlo mejor:
Enunciados de la entrada
1. Para el cálculo de la edad es necesario ingresar la fecha de nacimiento y la fecha actual.
2. Las fechas actual y de nacimiento deben ingresarse en tres números cada una que representan año, mes y día.
3. La fecha de nacimiento nunca puede ser mayor que la fecha actual.
4. Un año tiene 12 meses.
5. Unmestiene28,30ó31días.
6. Los meses del año pueden tener valores del 1 al 12.
7. Losdíasdelmespuedentenervaloresdel1al31.
En primer lugar todo diagrama de flujo debe comenzar con el símbolo de inicio (figura 5.3), de la siguiente manera:
In icio
Figura 5.3 Inicio de un diagrama de flujo
Luego realizamos la entrada de datos recogiendo los enunciados 1,2, 4 y 5, en este caso no nos estamos preocupando por los mensajes de entrada para el usuario, ni por la validación de los valores máximos y mínimos de cada mes, sin embargo se ha colocado comentarios en el diagrama para que el programador sepa los detalles de cómo se que se debe implementar.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 55
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja54
In icio
Anio _n,m es_n,dia _n
Solicitar año , m es y d ía d enacim ient , va lidando quecum plan con sus va loresm áxim os y m ínim os
Anio _a,m es_a,dia _a
Solicitar año , m es y d íaactuales validando que
cum plan con sus va loresm áxim os y m ínim os
E
E
Figura 5.4 Diagrama de flujo parcial calculo edad, enunciados entrada
En cuanto a las entradas hemos considerado todos los enunciados, excepto el número 3, el cual nos plantea que la fecha de nacimiento nunca puede ser mayor a la fecha actual, aunque se puede diseñar instrucciones para validarlo en la entrada, quizá sería más conveniente verificarlo más adelante para reducir un poco la lógica, puesto que de todos modos vamos a comparar los años, los meses y los días. Otraopciónpuedesereldesarrollodesubrutinaqueseencarguedeestavalidación, lacualexplicaremos en el siguiente capítulo.
Dicho esto vamos a proceder a trabajar con los enunciados relacionados con el proceso, igualmente los numeramos para referenciarlos mejor:
Enunciados del proceso
1. Para calcular la edad se debe restar la fecha de nacimiento de la fecha actual.
2. La fecha debe descomponerse en años, meses y días.
3. Se debe comenzar restando los días.
4. Si el día de nacimiento es mayor al día actual debe solicitar un mes expresado en días a los meses de la fecha actual, con lo cual se suman 30 días al día actual y se resta un mes al mes actual.
5. En segunda instancia debe restarse los meses.
6. Si el mes de nacimiento es mayor que el mes de la fecha actual, debe solicitar un año expresado en meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un año a año actual.
7. Finalmenteserestalosaños.
Para la elaboración del diagrama comencemos con los enunciados 1,2, 3 y 4, lo cual significa que debemos hacer una resta comenzando por los días y necesitamos tres variables para guardar años, meses y días que corresponden a la edad. Acogiendo el enunciado 4 planteamos en primera instancia la pregunta respecto si el día de nacimiento es mayor al día actual, y en caso de serlo sumamos 30 días al día de nacimiento y restamos los mismos 30 días expresados en meses al mes de nacimiento para equilibrar las operaciones, con lo cual finalmente procedemos a realizar la resta.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 57
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja56
In icio
Anio_n, m es_n, d ia_n
Solicitar año , m es y día de nacim iento , va lidando que cum plan con sus va lores m áxim os y m ínim os
Anio_a, m es_a,
d ia_a
Solicitar año , m es y día actuales validando que
cum plan con sus va lores m áxim os y m ínim os
E
E
edad_d
d ia_a – dia_n
dia_n > d ia_a dia_a d ia_a + 30SI
m es _a m es_a - 1N O
Figura 5.5 Diagrama de flujo parcial cálculo edad. Procesando los meses
Ahora procedemos a hacer lo mismo con los meses, sólo que en lugar de sumarle 30 días, debemos sumarle 12 meses de un año, los cual nos lleva a restarle 1 al año de nacimiento para no alterar los datos, el diagrama resultante se encuentra en la figura 5.6.
Para culminar con los enunciados del procesamiento, vamos a trabajar con los años, y puesto que hemos postergado hasta aquí el control del enunciado 3 de la entrada, que dice que la fecha de nacimiento, no puede ser mayor a la fecha actual, lo implementaremos con la verificación de que el año de nacimiento no sea mayor que el año actual, y en caso de serlo, notificaremos un error, además aquí consideramos los enunciados de la salida, que básicamente nos dicen que la edad se debe expresar en formato de año, mes y día, que no puede haber edades negativas, ni tampoco meses o días quesuperenellímiteestablecido.Eldiagramaresultantesemuestraenlafigura5.7.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 57
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja56
In icio
Anio _n, m es_n, d ia _n
Solicitar año , m es y d ía d e nacim iento , va lidando que cum plan con sus va lores m áxim os y m ínim os
Anio _a, m es_a, d ia _a
Solicitar año , m es y d ía actuales validando que
cum plan con sus va lores m áxim os y m ínim os
E
E
edad_d d ia _a – dia _n
dia _n > d ia_a dia _a d ia_a + 30SI
m es_a m es_a - 1N O
edad_m m es_a – m es_n
m es _n > m es_a m es_a m es_a + 12SI
anio_a _anio_a - 1N O
Figura 5.6 Diagrama de flujo parcial cálculo edad. Procesando los meses
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 59
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja58
In icio
Anio _n, m es_n, d ia _n
Solicitar a ño , m es y día de nacim iento , va lidando que cum plan co n sus v a lores m áxim os y m ín im os
Anio _a, m es_a, d ia _a
Solicitar a ño , m es y día actuales va lidando que
cum plan con sus v a lores m áxim os y m ín im os
E
E
edad_d d ia _a – dia _n
dia _n > d ia_a dia _a d ia_a + 30SI m es_a m es _a - 1
N O
edad_m m es_a – m es_n
m es _n > m es_a m es_a m es_a + 12SI anio_a _anio_a - 1
N O
edad_a anio _a – anio_n
anio _n > a nio_a
N O
“Error: La fecha de n acim iento es m ayor a la
actual”
S
SI
“Edad: “ , edad_a, edad_m , edad_d
S
F in
Figura 5.7 Diagrama de flujo cálculo edad
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 59
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja58
Unavezquehemoscompletadoeldiagramadelafigura5.7,leinvitoaqueejecutealgunascorridasdel diagrama utilizando algunos casos de prueba para ver si el comportamiento de la solución es correcto, es decir funciona bien para todos los casos y se ajusta a las condiciones del problema, como sugerencia para seleccionar las fechas de ingreso, considere a las siguientes:
• Lafechadenacimientomenoralafechaactual(casonormal)• Tantolafechadenacimiento,comolafechaactualexactamenteiguales.(Pocousual)• Lafechadenacimientomayorquelafechaactual.(Casoerróneo)
Utilice las siguientes tablas para ejecutar la corrida.
Caso 1:
anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida
Caso II
anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida
Caso III
anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida
Luego de haber probado el funcionamiento del diagrama de flujo, trate de responder a las siguientes interrogantes:
1. ¿Funciona bien para todos los casos?
2. ¿Hay algún error de concepción que hace que los resultados no siempre sean exactos?
3. ¿Hay alguna manera alterna de desarrollar el diagrama de flujo?
4. ¿Se puede simplificar la solución?
5. ¿Hace falta algún tipo de validación?
Antesdepasaralsiguientecapítulo,complementesuestudioconlasección“Diagramasde flujo para casos prácticos” del texto básico.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 61
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja60
5.3 Ejercicios con diagramas de flujo
Para la mayoría de desarrolladores y profesores de programación, la única manera de aprender a programar es programando, esto significa que mientras más ejercicios resuelva mejor desarrollará las competencias requeridas, en tal virtud se ha preparado el presente apartado para ayudarle justamente a realizar ejercicios con diagramas de flujo. Podría simplemente haber colocado los ejercicios y dejar que los resuelva, pero la idea es que los desarrolle con un poco de ayuda, a manera de taller, por tanto vamos a proponer los ejercicios y a dar algunas pautas para su solución.
EJERCICIOS 5.1
Desarrolle un diagrama de flujo para obtener el salario neto de los empleados de una empresa que ganan de acuerdo a las siguientes condiciones, la horas menores o iguales a 40 se pagan como hora normal que se introduce por teclado, las horas que exceden a las 40 se pagan como extras a 1.5 veces el valor de la hora normal. Los impuestos se deducen de acuerdo a las siguientes condiciones: si gana menos de 2000 USD, no paga impuestos, los siguiente 1500 USD pagan el 20% y el resto el 30%.
Para desarrollar este ejercicio léalo detenidamente y elabore en primer lugar los enunciados correspondientes a las salidas, proceso y entradas.
Enunciados para la salida
1. El sueldo debe expresarse en dólares.
2. Como resultado debe mostrarse el sueldo, los impuestos y el valor neto.
3. ______________________________________________________________
4. ______________________________________________________________
5. ______________________________________________________________
6. ______________________________________________________________
7. ______________________________________________________________
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 61
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja60
Enunciados para el proceso
1. El costo de horas normales se obtiene multiplicando las horas hasta 40 por el costo de cada hora ingresada.
2. ______________________________________________________________
3. ______________________________________________________________
4. ______________________________________________________________
5. ______________________________________________________________
6. ______________________________________________________________
7. ______________________________________________________________
Enunciados para la entrada proceso
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 63
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja62
Una vez que ha terminado de desarrollar los enunciados, desarrolle el diagrama de flujo empezando por los enunciados para la entrada de datos, luego para los del procesamiento y finalmente para los de la salida.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 63
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja62
Luego deberá realizar pruebas de escritorio, ocupe el siguiente espacio para hacerlo. Estas pruebas le permitirán determinar si el algoritmo es correcto o no, si no lo es, identifique el problema y corrija el diagrama para que arroje los resultados correctos.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 65
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja64
EJERCICIOS 5.2
Este ejercicio se trata de analizar un diagrama de flujo y establecer si es correcto o no con los casos de prueba planteados. Si encuentra algún problema debe corregirlo y probarlo nuevamente, de modo que se asegure de que funciona.
Planteamiento del problema: Se desea desarrollar un algoritmo que permita establecer si un número es primo. Por definición “En matemáticas, un número primo es un número natural que tiene únicamente dos divisores naturales distintos: él mismo y el 1”, y además la unidad no se considera como número primo7.
La estrategia usada para el desarrollo se basa en la definición y consiste en contar el número de divisores exactos comprendidos entre la unidad y el número.
In icio
d 2
num
num % d = 0
d <= n um
dExactos dExactos + 1SI
d d+1
N O
d
dExactos = 0 “El num ero es p r im o”SI
“El núm ero no e s
pr im o”
N O
F in
Figura 5.8 Diagrama de flujo para determinar si un número es primo
7. Wikipedia (2009): Numero Primo , [En línea] Disponible en: http://es.wikipedia.org/wiki/N%C3%BAmero_primo [Consulta 25-06-2009].
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 65
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja64
Ahora sí, manos a la obra, verifique si el diagrama de flujo funciona con los números 1, 2, 4, 5, 9,11, 13, 33. Utilice el siguiente espacio para resolver la tarea propuesta:
Pruebas de Escritorio
num d dExactos resultado
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 67
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja66
Si encontró el problema, utilice el siguiente espacio para proponer un diagrama que lo corrija.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 67
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja66
EJERCICIOS 5.3
El propósito de ejercicio es optimizar el diagrama de modo que se reduzcan el número de ciclos del bucle. Para darse cuenta qué opciones hay para ello ejecútelo con los mismos datos del ejercicio anterior para que analice el porqué el número de ciclos es alto. Hay al menos dos forma de optimizarlo.
In icio
D 2
num
num % d = 0
esPr im o 1
d <= n um
esPr im o 0SI
d d+1
N O
d
esPr im o = 1 “El num ero es p r im o”
“El núm ero no e s
pr im o”
F in
Figura 5.9 Diagrama de flujo para verificar si un número es primo
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 69
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja68
EJERCICIOS 5.4
Se desea construir un algoritmo que le permita generar una tabla de amortización de préstamos para lo cual se requiere calcular lo que debe pagar mensualmente hasta que termine de realizar los pagos. Los intereses siempre se pagan sobre el saldo del capital prestado, por lo tanto nunca una cuota es mayor igual que la del mes anterior.
Ahora intente resolver el problema en un diagrama de flujo.
Luego de ver el problema, es probable no haya podido hacer absolutamente nada por falta de información, ahora ¿Cómo se supone que debemos resolver este problema?
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 69
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja68
De acuerdo a lo estudiado debemos comenzar haciendo el análisis del problema, esto es identificando y elaborando enunciados para las salidas, proceso y finalmente para las entradas. Luego podemos optar por desarrollar la miniespecificación o directamente el diagrama de flujo.
Autoevaluación 5
Ánimo, ya ha concluido la Unidad 5, sólo le falta medir cuánto aprendió en ella, para ello lo invito a desarrollarelexamenrápidodelcapítulo8deltextobásico.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 71
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja70
UNIDAD VI
DESARROLLO DE PROBLEMAS DE PROGRAMACIÓN
La práctica de la programación es un arte y una ciencia muy interesante para nosotros como seres humanos, el hecho de poder diseñar algo que es capaz de procesar la información es de por sí una creación en la que plasmamos nuestra forma de resolver los problemas.
A lo largo de la presente guía didáctica, nuestro principal interés ha sido el de inducir el pensamiento lógico aplicado a la solución de problemas de programación, en este capítulo vamos a usar todo lo aprendido para diseñar un pequeño programa, considerando cada uno de los componentes.
Puesto que hasta ahora no ha tenido la oportunidad de ver funcionando nada en la computadora, vamosausarunaherramientadeprogramaciónvisualconocidacomoRAPTOR,desarrolladaporLaAcademia Pilotos de las Fuerzas Armadas de los Estados Unidos, en la cual tendrá la oportunidad de diseñar sus diagramas de flujo y ejecutarlos para ver los resultados, vale aclarar, que el uso de esta herramienta sirve únicamente para ayudarle a visualizar cómo funciona la lógica de un programa.
Para el desarrollo de los contenidos de esta unidad, utilizaremos el capítulo 9 del texto básico.Los capítulos 10,11,12 y 13 le enseñan a traducir los algoritmos o las miniespecificaciones a un lenguaje como Visual Basic.Net, Java, C# o C++, cuyo estudio está fuera del alcance de esta asignatura y por lo tanto queda a su criterio el estudiarlos.
6.1 Abstracción de problemas de programación
El esquema básico de funcionamiento del computador, como mencionamos en la Unidad 1, es de entradas, proceso, almacenamiento y salida, por tanto una aplicación de software debe corresponder con estas funciones, a cada una de éstas le vamos a llamar capas. En la siguiente tabla vamos establecer la correspondencia entre las funciones y las capas.
Función Capa Descripción
Entrada Interfaz de usuario
Corresponde a los elementos en pantalla u otro dispositivo que permite que el usuario ingrese información.
Proceso Lógica de proceso
Código de programa que ejecuta las tareas de procesamiento de una aplicación. Toma los datos de entrada y los procesa para almacenarlo o para enviarlos a un dispositivo de salida. Esta capa incluye los datos y estructuras de datos que se guardan en la memoria principal del computador (RAM) que son requeridos para realizar el procesamiento.
Almace-namiento
Datos Estructura de datos o archivos que guardan la información, aunque se dice que el almacenamiento es lógico, muchas de las veces se lo conoce como almacenamiento físico porque se guarda en un disco u otro dispositivo ocupando espacio físico en disco.
Salida Interfaz de usuario
Nos referimos nuevamente a la interfaz de usuario en razón de que la interfaz sirve para interactuar, esto es ingresar o visualizar información. Muchas de las veces la salida puede ser un sonido, una impresión o un mensaje.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 71
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja70
Sin importar el tamaño de la aplicación, siempre debemos pensar en estas capas, aunque puede haber programas que no las requieran, por ejemplo un programa podría no requerir la capa de almacenamiento, porque no guarda información. Es posible también que existan programas con muchas más capas debido a la complejidad de los mismos, normalmente esto se da en aplicaciones corporativas, las cuales tienen en su diseño varias capas, el mismo que se conoce como la arquitectura de la aplicación.
Ahora, vamos tomar una de las aplicaciones que hemos desarrollado para identificar en ellas las diferentes capas, por supuesto que no van a estar muy elaboradas, puesto que no hemos centrado nuestro interés en el desarrollo de interfaces sofisticadas, sin embargo vamos a ver que si tiene al menos 3 de las 4 capas, puesto que en ninguna de ellas hemos guardado información en disco, eso significa que no tendrá la capa de datos.
EJERCICIOS 6.1
Cálculo de la edad de una persona
En el ejemplo del cálculo de la edad de una persona identificamos las siguientes capas. Si no recuerda revise nuevamente el ejercicio del diagrama correspondiente a la unidad 5.
Capa de interfaz de usuario
Puesto que hemos dicho que la interfaz de usuario corresponde a las entradas o salidas de la información, en nuestro diagrama la interfaz de usuario estaría dada por los símbolos de la figura 6.1:
Anio _n, m es_n, d ia _n
Anio _a, m es_a, d ia _a
E
E“Edad: “, edad_a, edad_m , edad_d
S “Error: La fecha de n acim iento es m ayor a la
actual”
S
Figura 6.1 Instrucciones del diagrama para interfaz de usuario
Si analiza un poco los diagramas, estos corresponde al símbolo de datos, es decir a las instrucciones de ingreso ó salida de información. Puesto que en un diagrama no es necesario incluir elementos gráficos de interfaz, esto se ha omitido acá, pero en los programas es necesario implementar ciertos diseños de pantallas que resulten más agradables al usuario y le permitan comprender de manera intuitiva el funcionamiento de la aplicación, a los programas que cumplen con esta característica se los conoce como amigables. En la figura 6.2 colocamos un ejemplo de cómo podría ser una pantalla para esta misma aplicación.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 73
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja72
Figura 6.2 Modelos de interfaz de usuario
El ejemplo de la figura 6.2 muestra una interfaz básica en la que las ventanas aparecen conforme se va ejecutando la aplicación, pero las aplicaciones de software normalmente utilizan modelos de interfaz que integran tanto componentes de entrada como componentes de salida, tal como se aprecia en la figura 6.3, la cual ha sido desarrollada en java con el IDE netbeans.
Figura 6.3 Modelo de interfaz de usuario avanzado
Capa de lógica de proceso
A la lógica de procesamiento corresponden los siguientes símbolos, si se analizan con cuidado estos procesos se ejecutan luego de que se completó el proceso de ingreso de datos y el usuario no tiene idea
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 73
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja72
de lo que está pasando internamente. Las instrucciones del diagrama correspondientes a esta capa son las que se muestran en la figura 6.4
edad_d d ia _a – dia _n
dia _n > d ia_a dia _a d ia_a + 30SI m es_a m es _a - 1
N O
edad_m m es_a – m es_n
m es _n > m es_a m es_a m es_a + 12SI anio_a _anio_a - 1
N O
edad_a anio _a – anio_n
anio _n > a nio_a
N O
Figura 6.4 Instrucciones del diagrama para capa de proceso
Capa de datos
En este problema, no se usa una capa de datos, puesto que no hay almacenamiento secundario, todos los datos de entrada se procesan para producir la salida y termina sin almacenamiento.
Ejercicios
Pongamos en práctica lo visto en esta sección, realizando los siguientes ejercicios:
• Desarrolleunanálisisdecapassimilaralaplicadoalcadaunodelosproblemasdesarrolladosenla sección 5.3 de la guía.
• Diseñeposiblesinterfacesdeusuarioparacadaunodelosejerciciosdelasección5.3.Puedeusar Microsoft Visio u otro diagramador para hacerlo.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 75
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja74
6.2 Componentes de una aplicación
Al igual que cualquier producto, el software se compone de una serie de elementos que son fabricados de código, por tanto los componentes son lógicos. En el apartado anterior abstraíamos las capas que forman parte de una aplicación en la que hacíamos mención a diferentes instrucciones del diagrama de flujo, pero estas instrucciones se organizan de manera lógica en diferentes tipos de componentes, los cuales vamos a listar a continuación.
CapaNombredelcomponente
Descripción
Interfaz de usuario
VentanasFormulariosBotonesCuadros de textoListas combinadasListas
Son objetos propios de interfaz de usuario que normalmente se los encuentra como librerías de los lenguajes de programación, o se pueden crear y definir como componentes reutilizables en bibliotecas de componentes.
Lógica de proceso
FuncionesProcedimientosClasesMódulosVariablesConstantes
Elementos de código que construye el programador a los cuales les asigna la responsabilidad de procesar y validar la información.
DatosArchivosTablas
Elementos que poseen una estructura que se guarda físicamente en el disco duro con información relacionada a la aplicación.
Estos son los componentes que por lo general se encuentra en las aplicaciones de software, y si usted ha tenido oportunidad de desarrollar alguna aplicación, habrá reconocido algunos de ellos.
Suele ocurrir con mucha frecuencia que en el código de muchas aplicaciones no se distingue las capas que indicamos, y esto es un problema sobre todo cuando surgen cosas que hay que corregir, por ello es importante desde el inicio tener en cuenta esta estructura para diseñar las aplicaciones adecuadamente, de todos modos en el alcance de la asignatura no revisamos este tipo de aplicaciones, sin embargo usted puede estudiar por su cuenta el tema en los capítulos posteriores del texto para programación en alguno de los lenguajes establecidos.
Ahora bien, si piensa un poco en la capa de interfaz, lenguajes como Visual Basic, traen una interfaz de desarrollo que permite colocar estos elemento en la ventana donde se ejecutarán, de modo que los programadores no pierdan mucho tiempo dándoles forma y se puedan centrar en la capa de procesamiento.
En la capa de lógica de programación, los componentes tales como las funciones y procedimientos pueden ser provistos por el lenguaje de programación o desarrollados como parte de la aplicación, por ello es importante conocer las prestaciones que ofrece un lenguaje determinado para simplificar nuestra tarea de programación.
Funciones y Procedimientos
Conocemos como funciones y procedimientos a ciertas partes de código que se diseñan para cumplir una tarea específica y devolver el control a la sección de código que la llamó, en términos generales
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 75
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja74
se las conoce como subrutinas y si recuerda el capítulo 5, la llamada a las mismas se representa con el símbolo . Las subrutinas hacen que los programas sean mucho más eficientes.
Las subrutinas que caen en la denominación de funciones se caracterizan porque siempre devuelven un valor que es almacenado en una variable o se usan como parte de una expresión, por ejemplo la funciónpi()puededevolverelvalordeπ,enestecasononecesitarecibirningúnparámetrodeentrada.Por otro lado las que caen en categoría de procedimientos se caracterizan porque al ser llamadas ejecutan una acción, pero no retornan ningún valor y por tanto no pueden colocarse como parte de una expresión.
En la tabla 6.1 nos permitimos listar algunas de las funciones comunes que la mayoría de lenguajes de programación suelen traer.
Tabla 6.1 Tabla de funciones comunes en lenguajes de programación
Función Descripción
abs(n) Devuelve el valor absoluto de n, es decir ignora el signo de positivo o negativo.
sqrt(n) Obtienelaraízcuadradaden.
sqr (n) Obtieneelcuadradoden.
random(n) Obtieneunnúmeroaleatoriocomprendidoentre0yn.
log(n) Devuelve el logaritmo de n.
exp (n) Devuelve el antilogaritmo de n.
ln() Devuelve el logaritmo natural de n.
Tal como lo imagina el contar con estas funciones hacen que se simplifique considerablemente el esfuerzo de programación, todos los lenguajes de programación entre ellos java, c++, c#, Visual Basic, ofrecen un rico conjunto de funciones que se pueden usar en la fase de codificación.
Librerías
Para sacar el máximo provecho a estas funciones y procedimientos, lo que se suele hacer es crear bibliotecas de código, de forma tal que puedan ser utilizadas en más de un programa. Archivosdedatos
Cuando usted desarrolla un aplicación que necesita guardar información tiene dos opciones para hacerlo, la primera es crear archivos de datos tipo texto o binarios que sólo puede ser leídos por su aplicación y la segunda es utilizar un sistema gestor de base de datos tal como mysql, Access, Sqlserver entre otros, en cuyo caso se vale del lenguaje que implementa el motor de base de datos para manipularlos.
6.3 Desarrollodeaplicacionessencillas
Hasta aquí, usted ha tenido la oportunidad de conocer y aplicar algunas herramientas de diseño de programas para computadora, y quizá se haya preguntado porque no ha utilizado el computador. Pues bien llegó el momento de hacerlo, y para ello en el disco anexo a la guía didáctica encontrará el programa Raptor,
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 77
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja76
Una característica muy importante de Raptor es que le permite dibujar el diagrama de flujo y ejecutarlo, mostrando además los valores de las variables utilizadas, es decir le ahorra todo el proceso manual, además entre otras cosas le permite generar código para lenguajes como Ada, Java, C++ o puede generar un programa ejecutable que funciona como cualquier aplicación.
No queremos extendernos más en el asunto y pongámonos manos a la obra, lo que sí debemos advertirle es que hay algunas variaciones en los símbolos usados para realizar los diagramas en Raptor, de todos modos deberá estudiarlo para poder hacer uso de él.
Iniciemos instalando el programa Raptor que se encuentra en su disco, si tiene alguna dificultad, consulte la documentación.
UnavezquehalogradoinstalarRaptor,tomeelcapítulo9desutextobásicoydesarrollelos ejemplos y aplicaciones que el autor propone.
Estoy seguro de que se siente muy entusiasmado con el uso de esta herramienta, en realidad se puede hacer muchas cosas, por tanto lo que queda es desarrollar más ejercicios y quizá estaría demás decir que programe en raptor todos los ejercicios desarrollados hasta ahora.
Para completar este capítulo, nos hemos permitido desarrollar una aplicación completa en Raptor con el propósito de que entienda como se construye una aplicación.
Ejemplo 6.1
Desarrollar en Raptor un programa para jugar al ahorcado.
Descripcióndelaaplicación:
Se trata del juego del ahorcado en el cual se le pide al usuario que adivine una palabra seleccionada al azar, para lo cual debe ingresar de una en una las letras que considera que la forman, si la letra está en la palabra debe mostrarse en su posición, los demás espacios se muestran como guiones para que tenga una idea de la longitud de la palabra, si la letra no consta en la palabra del juego o está repetida se contará como error e irá dibujando poco a poco un muñeco por cada error cometido, hasta que el muñeco se ahorca, si acierta y adivina la palabra, deberá felicitarle. En cualquiera de los dos casos termina el juego.
Revisemos ahora los enunciados para este juego:
Salidas:
1. Mostrar la palabra con las letras que adivinó y guiones en aquellas que no acertó, esto por cada letra que ingresa el usuario.
2. Si adivina la palabra en la cantidad de intentos datos, debe felicitar al usuario.
3. Si no logra adivinar debe presentar un dibujo de un muñeco ahorcado y termina el juego.
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 77
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja76
Proceso:
1. Debe contar con una lista de palabras para seleccionar una de ellas aleatoriamente.
2. Cada letra correcta se muestra en pantalla.
3. Cada error cometido produce un paso hacia el ahorcamiento del muñeco.
4. Se considera como error a una letra repetida o una letra que no consta en la palabra.
Entrada:
1. Se requiere que el usuario ingrese letras hasta que adivine la palabra o hasta que se le acaben las opciones.
Como podrá darse cuenta, los enunciados nos pueden llevar a detalles de implementación mucho más complejos, pero a medida que se explique la aplicación las únicas habilidades que necesita son las de poder escribir expresiones correctamente y utilizar adecuadamente los diagramas de flujo, por lo tanto le sugiero que si tuvo alguna dificultad con el seguimiento del capítulo del texto básico indicado, lo retome hasta comprenderlo debidamente.
Ahora analicemos los componentes de la aplicación por capas:
CAPADEINTERFAZ
A este nivel nos hemos permitido desarrollar dos componentes, el primero es una pantalla de ingreso de las letras, y el segundo es una pantalla gráfica que muestra el estado de la palabra y en caso de cometer errores el dibujo del muñeco ahorcándose. En las figuras 6.5 y 6.6 se muestran las interfaces definidas para el efecto. Recuerde que en la capa de interfaz representamos tanto las entradas como las salidas.
Figura 6.5 Interfaz para el ingreso de datos
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 79
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja78
Figura 6.6 Interfaz gráfica de salida de la aplicación.
CAPADELÓGICA
A nivel de lógica necesitamos datos predefinidos y varios grupos de instrucciones organizados en subrutinas, las cuales debemos ir llamando conforme las necesitemos, además debemos hacer uso de varias funciones de la biblioteca de raptor que nos permitan hacer cosas como seleccionar aleatoriamente una palabra, inicializar el modo gráfico y dibujar las figuras.
A nivel de diagramas y subdiagramas necesitamos lo siguiente:
1. Un programa principal desde donde empieza a ejecutarse la aplicación.
2. Varios subprogramas con propósitos específicos, algunos de ellos necesitan recibir ciertos datos de entrada para poder realizar su tarea, en este caso hablamos de procedimientos. Los podemos apreciar en la Tabla 6.2
SEGUNDO BIMESTRE Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 79
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja78
Tabla 6.2 Lista de diagramas y subdiagramas que conforman la aplicación
Nombre Propósito Llamado desde
main Programa principal, desde aquí se ejecuta toda la aplicación.
No debe tener llamadas.
crear_lista Crea la lista de palabras en una matriz.
inicializar_juego.
inicializar_palabra Rellena con guiones la palabra que se le muestra al usuario.
inicializar_juego.
ahorcar Dibuja paso a paso el muñeco del juego.
main.
escribir Dibuja la palabra donde constan las letras acertadas y guiones en las demás.
main.
inicializar_juego Crea el entorno de datos necesario para poder comenzar el juego.
main .
crear_interfaz Crea la interfaz gráfica. main .
CAPADEDATOS
Aunque la aplicación no guarda la información en archivos, requiere de datos que en este caso son las palabras que debe adivinar, para ello usamos un arreglo que es una variable capaz de contener varias casillas con una palabra cada una, a ellas se puede acceder con el nombre del arreglo y un subíndice entre corchetes, esto se puede apreciar en el sub diagrama inicializar_lista.
Una recomendación importante que quiero hacerle es que haga el seguimiento al programa completo, puede hacerlo manualmente o preferentemente en el entorno Raptor, puesto que va resaltando cada instrucción y muestra los valores de las variables.
Para visualizar y analizar la aplicación abra el archivo ahorcado.rap que se encuentra en el CD en la carpeta ejemplos raptor
EJERCICIOS 6.1
Conloaprendidoenestecapítulo,desarrolleunjuegoenRaptorenelcualteniendounmáximode7intentos la máquina adivina un número del 1 al 100 pensado por el usuario utilizando el método de la búsqueda binaria. La búsqueda binaria consiste en dividir el rango de números posible en 2 y realizar dos preguntas, la primera mostrar el número del centro del rango y preguntar si se trata de ese número, si el usuario dice que es correcto el computador a logrado adivinar el número y termina, en caso de no ser el número, realiza la segunda pregunta que sería si el número es mayor o menor, si es mayor divide el rango nuevamente cogiendo el grupo superior y repite el proceso, luego si es menor hace lo mismo conelrangoinferior,demodoquecadavezvaencerrandoalnúmero.Sinololograen7intentos,elusuario respondió incorrectamente las preguntas, en este caso debe alertar del particular.
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 81
SOLUCIONARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja80 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 81
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja80
Con este tema finalizamos la asignatura, y estamos seguros de que les será de gran utilidad para las asignaturas siguientes, como recomendación final le sugerimos seleccione uno de los lenguajes de programación desarrollados en el libro y trate de programar en el las soluciones dadas. En el disco adjunto a la guía hemos incluido algunos de los lenguajes de programación como java y c++ para que los use en su aprendizaje.
Autoevaluación 6
Concluya el estudio de esta materia desarrollando el examen rápido del capítulo 9 del texto básico.
SOLUCIONARIO Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 81
SOLUCIONARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja80 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 81
SEGUNDO BIMESTREGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja80
8. Solucionario
UNIDAD1Parte 1
1. a2. b3. a4. b5. c
Parte 2
6. v7. f8. f9. v10. v
UNIDAD2Parte 1
1. c 2. a3. c4. b5. c
Parte 2
6. V 7. F8. F9. F10. V
UNIDAD3Parte 1
1. c 2. a3. c4. a5. b
Parte 2
6. F 7. F8. F9. V10. V
UNIDAD4Parte 1
1. b 2. c3. a4. a5. c
Parte 2
6. F 7. F8. F9. V10. F
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 83
GLOSARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja82 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 83
SOLUCIONARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja82
UNIDAD5
Parte 11. a
C am bios de e stado ( var iab les de tr abajo)
Estructuras de contro l
Estructuras de d ecisión
D eclaraciones
Petición d e datos
m uestra
C am bios de e stado ( var iab les de tr abajo)
UNIDAD6Parte 1
1. b2. c3. b4. b5. a
Parte 2
6. F7. V8. F9. V10. V
GLOSARIO Guía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 83
GLOSARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja82 UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja 83
SOLUCIONARIOGuía didáctica: Lógica de la Programación
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja82
9. Glosario
ADA.- Lenguaje de programación orientado a objetos.
Algoritmo.- Secuencia ordenada de pasos que nos permiten realizar alguna actividad.
Aplicación.- Conjunto de componentes de software y datos que permiten resolver problemas o realizar actividades con la ayuda del computador.
Bucle.- Estructura de control que permite la repetición de una o más instrucciones, existen tres tipos de bucles, los que evalúan la condición a la entrada, los que evalúan la condición a la salida y los que se ejecutan un determinado número de veces con la ayuda de un contador.
Booleano.- Se puede aplicar a una variable o a una expresión cuyo valor puede ser verdadero o falso. Deriva del Álgebra de Boole.
Condición.- Expresión booleana que se usa para desviar el flujo del programa o terminar un bucle.
Constante.- Espacio de memoria capaz de guardar un valor que no cambia durante la ejecución de un programa. Matemáticamente son valores fijos que se utilizan para realizar diferentes cálculos.
Conclusión.- Resultado al que se llega partiendo de unas premisas y aplicando reglas de inferencia.
C++.- Lenguaje de programación orientado a objetos muy utilizado en el desarrollo de aplicaciones de mediano y bajo nivel, deriva del lenguaje C.
C#(sicharp).- Versión de C orientado a objetos desarrollado por Microsoft he incluido en su plataforma Visual Studio .Net.
Expresión.- Grupo de constantes y/o variables con operadores que de acuerdo a una sintaxis permite realizar la transformación de los datos, sus resultados se almacenan en variables.
Enunciado.- En lógica de programación es una expresión lingüística que establece un pensamiento, puede ser interrogativo, imperativo o declarativo.
MPAE&JSCB/ vt/05-08-09/83
vt/2012-10-26