Download e-cbcc - Portal Conalep SLP

Document related concepts

Programación funcional wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

Transcript
Colegio Nacional de Educación Profesional Técnica
Manual Teórico Práctico del
Módulo Autocontenido Específico
Programación en Pseudocódigo
PROFESIONAL TÉCNICO BACHILLER EN
INFORMÁTICA
e-cbcc
Educación-Capacitación
Basadas en Competencias
Contextualizadas
Capacitado por:
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
TECNOLOGÍAS DE LA INFORMACIÓN
Capacitado por:
e-cbcc
Educación-Capacitación
Basadas en Competencias Contextualizadas
PT Bachiller en Informática
1
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
PARTICIPANTES
Suplente del Director General
Joaquín Ruiz Nando
Secretario de Desarrollo Académico y de Capacitación
Marco Antonio Norzagaray
Director de Diseño de Curricular de la Formación Ocupacional
Gustavo Flores Fernández
Coordinador del Área Tecnologías de la Información
Ma. Cristina Martínez Mercado
Grupo de Trabajo para el Diseño del Módulo
Asociación Mexicana de Ingenieros Mecánicos y Electricistas (AMIME)
Adriana Morales Ramírez y Jesus Castillo Reyes.
Revisor de contenido
Sandra Luz Lozano Ramírez
Revisión Pedagógica
Patricia Toledo Márquez (CONALEP) Sandra Rubio Rosete (AMIME)
Revisores de la Contextualización
Agustín Valerio y Guillermo Armando Prieto Becerril
Tecnologías de la información Informática
Manual del curso – módulo Autocontenido Específico
“Programación en Pseudocódigo”
Informática
D.R. © 2004 CONALEP.
Prohibida la reproducción total o parcial de esta obra, incluida
la portada, por cualquier medio sin autorización por escrito
del CONALEP. Lo contrario representa un acto de piratería
intelectual perseguido por la Ley Penal.
E-CBCC
Av. Conalep N° 5, Col. Lázaro Cárdenas, C.P. 52140 Metepec, Estado de México.
2
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
ÍNDICE
I
II
III
IV
V
VI
Mensaje al capacitando
¿Cómo utilizar este manual?
Propósito del Módulo Autocontenido
Normas de Competencia Laboral
Especificaciones de evaluación
Mapa curricular del Módulo
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Elaboración previa de programas de computo
1.1 Identificar lenguajes de programación con base al uso y características
de los mismos.
1.2 Diseñar la programación mediante su secuencia de pasos lógica.
Prácticas y Listas de Cotejo
Aplicación de pseudocódigo en técnicas de lenguajes de
programación
2.1 Emplear pseudocódigo en programación estructurada utilizando
estructuras de datos.
2.2 Emplear pseudocódigo en programación funcional y lógica utilizando
recursividad y cláusulas
2.3 Emplear pseudocódigo en programación orientada a objetos y dirigida
por eventos utilizando sentencias de herencia, controles, eventos y
multitareas
Prácticas y Listas De Cotejo
Resumen
Autoevaluación de Conocimientos
Respuestas de Autoevaluación de Conocimientos
Glosario de Términos
Referencias Documentales
Anexos
PT Bachiller en Informática
PÁG.
4
5
8
9
10
11
13
75
165
167
169
176
190
3
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
I. MENSAJE AL CAPACITANDO
¡CONALEP TE DA LA BIENVENIDA AL
CURSO-MÓDULO
AUTOCONTENIDO
ESPECIFICO
PROGRAMACION
EN
PSEUDOCODIGO !
EL CONALEP, a partir de la Reforma
Académica 2003, diseña y actualiza sus
carreras, innovando sus perfiles, planes y
programas
de
estudio,
manuales
teórico-prácticos, con los avances
educativos, científicos, tecnológicos y
humanísticos predominantes en el
mundo globalizado, acordes a las
necesidades del país para conferir una
mayor competitividad a sus egresados,
por lo que se crea la modalidad de
Educación y Capacitación Basada en
Competencias Contextualizadas, que
considera las tendencias internacionales
y
nacionales
de
la
educación
tecnológica, lo que implica un reto
permanente en la conjugación de
esfuerzos.
Este manual teórico práctico que apoya
al módulo autocontenido, ha sido
diseñado bajo la Modalidad Educativa
Basada en Competencias
Contextualizadas, con el fin de ofrecerte
una alternativa efectiva para el
desarrollo de conocimientos, habilidades
y actitudes que contribuyan a elevar tu
potencial productivo y, a la vez que
satisfagan las demandas actuales del
sector laboral, te formen de manera
integral con la oportunidad de realizar
estudios a nivel superior.
Esta modalidad requiere tu participación
e involucramiento activo en ejercicios y
prácticas con simuladores, vivencias y
casos reales para promover un
aprendizaje integral y significativo, a
través de experiencias. Durante este
proceso deberás mostrar evidencias que
permitirán evaluar tu aprendizaje y el
desarrollo de competencias laborales y
complementarias requeridas.
El conocimiento y la experiencia
adquirida se verán reflejados a corto
plazo en el mejoramiento de tu
desempeño laboral y social, lo cual te
permitirá llegar tan lejos como quieras
en el ámbito profesional y laboral.
II. CÓMO UTILIZAR ESTE MANUAL
Las instrucciones generales que a
continuación se te pide que cumplas,
tienen la intención de conducirte a
vincular las competencias requeridas por
el mundo de trabajo con tu formación
de profesional técnico.
•
4
Redacta cuáles serían tus objetivos
específicas),
elementos
de
competencia,
criterio
de
desempeño, campo de aplicación,
evidencias
de
desempeño,
evidencias
de
conocimiento,
evidencias por producto, norma
técnica de institución educativa,
formación ocupacional, módulo
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
autocontenido, módulo integrador,
unidad de aprendizaje, y resultado
de aprendizaje. Si desconoces el
significado de los componentes de
la norma, te recomendamos que
consultes el apartado Glosario, que
encontrarás al final del manual.
personales al estudiar este cursomódulo autocontenido.
•
Analiza el Propósito del cursomódulo autocontenido que se
indica al principio del manual y
contesta la pregunta ¿Me queda
claro hacia dónde me dirijo y qué
es lo que voy a aprender a hacer al
estudiar el contenido del manual?
Si no lo tienes claro, pídele al
docente te lo explique.
•
Revisa el apartado Especificaciones
de evaluación, son parte de los
requisitos por cumplir para aprobar
el curso-módulo. En él se indican
las evidencias que debes mostrar
durante el estudio del mismo para
considerar que has alcanzado los
resultados de aprendizaje de cada
unidad.
•
Es fundamental que antes de
empezar a abordar los contenidos
del manual tengas muy claros los
conceptos que a continuación se
mencionan: competencia laboral,
competencia central, competencia
básica, competencia clave, unidad
de competencia (básica, genéricas
•
•
Analiza el apartado Normas
Técnicas de Competencia Laboral,
Norma Técnica de Institución
Educativa.
•
Revisa el Mapa Curricular del
curso–módulo autocontenido. Esta
diseñado
para
mostrarte
esquemáticamente las unidades y
los resultados de aprendizaje que
te permitirán llegar a desarrollar
paulatinamente las competencias
laborales
requeridas
por
la
ocupación para la cual te estás
formando.
•
Revisa la Matriz de Competencias
del curso-módulo autocontenido.
Describe
las
competencias
laborales, básicas y claves que se
contextualizan como parte de la
metodología que refuerza el
aprendiza lo integra y lo hace
significativo
En el desarrollo del contenido de
cada capítulo, encontrarás ayudas
visuales como las siguientes, haz lo
que ellas te sugieren. Si no lo haces
no aprendes, no desarrollas
habilidades, y te será difícil realizar
los ejercicios de evidencias de
conocimientos
y
los
de
desempeño.
PT Bachiller en Informática
5
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
•
Analiza
la
Matriz
de
contextualización del curso-módulo
autocontenido.
Puede
ser
entendida como la forma en que,
al darse el proceso de aprendizaje,
el sujeto establece una relación
activa del conocimiento y sus
habilidades sobre el objeto desde
un contexto científico, tecnológico,
social, cultural e histórico que le
permite hacer significativo su
aprendizaje, es decir, el sujeto
aprende durante la interacción
social, haciendo del conocimiento
un acto individual y social.
•
Realiza la lectura del contenido de
cada capítulo y las actividades de
aprendizaje que se te recomiendan.
Recuerda que en la educación
basada en normas de competencia
laborales la responsabilidad del
aprendizaje es tuya, pues eres
quien desarrolla y orienta sus
conocimientos y habilidades hacia
el logro de algunas competencias
en particular.
IMÁGENES DE REFERENCIA
6
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Estudio
individual
Investigación
documental
Consulta
con el docente
Redacción
de trabajo
Comparación del
resultado con otros
compañeros
Repetición del
ejercicio
Trabajo
en equipo
Sugerencias
o notas
Realización del
ejercicio
Resumen
Observación
Consideraciones
sobre seguridad e
higiene
Investigación
de campo
Portafolio
de evidencias
PT Bachiller en Informática
7
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
III. PROPÓSITO DEL CURSO-MÓDULO AUTOCONTENIDO
Al finalizar el módulo, el alumno elaborará programas en
pseudocódigo mediante estructuras de datos, recursividad, cláusulas,
sentencias de herencia, controles, eventos y multitareas, para aplicar
en la solución de problemas complejos.
8
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
IV. NORMAS TÉCNICAS DE COMPETENCIA LABORAL
Para que analices la relación que
guardan las partes o componentes de la
NTCL o NIE con el contenido del
programa
del
curso–módulo
autocontenido de la carrera que cursas,
te recomendamos consultarla a través
de las siguientes opciones:
•
Acércate con el docente para que
te permita revisar su programa de
estudio
del
curso-módulo
autocontenido de la carrera que
cursas, para que consultes el
apartado de la norma requerida.
•
Visita la página WEB del CONOCER
en www.conocer.org.mx en caso
de que el programa de estudio del
curso - módulo ocupacional esta
diseñado con una NTCL.
•
Consulta la página de Intranet del
CONALEP http://intranet/ en caso
de que el programa de estudio del
curso - módulo autocontenido está
diseñado con una NIE
PT Bachiller en Informática
9
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
V. ESPECIFICACIONES DE EVALUACIÓN
Durante el desarrollo de las prácticas de
ejercicio también se estará evaluando el
desempeño. El docente, mediante la
observación directa y con auxilio de una
lista
de
cotejo,
confrontará
el
cumplimiento de los requisitos en la
ejecución de las actividades y el tiempo
real en que se realizó.
En éstas
quedarán registradas las evidencias de
desempeño.
Las autoevaluaciones de conocimientos
correspondientes a cada capítulo,
además de ser un medio para reafirmar
los conocimientos sobre los contenidos
tratados, son también una forma de
evaluar y recopilar evidencias de
conocimiento.
Al término del curso-módulo deberás
presentar un Portafolios de Evidencias1,
el cual estará integrado por las listas de
cotejo correspondientes a las prácticas
de ejercicio, las autoevaluaciones de
conocimientos que se encuentran al
final de cada capítulo del manual y
muestras de los trabajos realizados
durante el desarrollo del curso-módulo,
con esto se facilitará la evaluación del
aprendizaje para determinar que se ha
obtenido la competencia laboral.
Deberás asentar datos básicos, tales
como: nombre del alumno, fecha de
evaluación, nombre y firma del
evaluador y plan de evaluación.
1
El portafolio de evidencias es una compilación de documentos que le permiten al evaluador, valorar los conocimientos,
las habilidades y las destrezas con que cuenta el alumno, y a éste le permite organizar la documentación que integra los
registros y productos de sus competencias previas y otros materiales que demuestran su dominio en una función
específica (CONALEP. Mtodología para el diseño e instrumentación de la educación y capacitación basada en
competencias, Pág. 180).
10
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
VI. MAPA CURRICULAR
Programación en
Pseudocódigo
Módulo
108 hrs.
Unidad
de
Aprendizaje
1. Elaboración
previa
de
programas
de
cómputo
14 HORAS
2. Aplicación
pseudocódigo
técnicas
lenguajes
programación
de
en
de
de
94 HORAS
1.1 Identificar lenguajes de programación con base al uso y
características de los mismos.
1.2 Diseñar la programación mediante su secuencia de pasos
lógicos.
Resultados de
Aprendizaje
2.1 Emplear pseudocódigo en programación estructurada
utilizando estructuras de datos.
2.2 Emplear pseudocódigo en programación funcional y lógica
utilizando recursividad y cláusulas.
2.3 Emplear pseudocódigo en programación orientada a objetos y
dirigida por eventos utilizando sentencias de herencia, controles,
eventos y multitareas.
PT Bachiller en Informática
4 hrs.
10 hrs.
34 hrs.
30 hrs.
30 hrs.
11
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
ELABORACIÓN PREVIA
DE PROGRAMAS DE
CÓMPUTO
Al finalizar la unidad, el alumno
elaborará
algoritmos
de
estructuras
de
datos
con
estructura
y
rutinas
en
pseudocódigo para la resolución
de problemas.
12
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
VII. MAPA CURRICULAR
Programación en
Pseudocódigo
Módulo
108 hrs.
Unidad
de
Aprendizaje
1. Elaboración
previa de
programas de
cómputo.
14 HORAS
2. Aplicación de
seudocódigo en
técnicas de
lenguajes de
programación
94 HORAS
1.1 Identificar lenguajes de programación con base al uso y
características de los mismos.
1.2 Diseñar la programación mediante su secuencia de pasos
lógica.
Resultados de
Aprendizaje
2.1 Emplear pseudocódigo en programación estructurada
utilizando estructuras de datos.
2.2 Emplear pseudocódigo en programación funcional y lógica
utilizando recursividad y cláusulas.
2.3 Emplear pseudocódigo en programación orientada a objetos
y dirigida por eventos utilizando sentencias d herencia,
controles, eventos y multitareas.
PT Bachiller en Informática
4 hrs.
10 hrs.
34 hrs.
30 hrs.
30 hrs.
13
Informática
Colegio Nacional de Educación Profesional
Técnica
Programación en Pseudocódigo
1. ELABORACIÓN PREVIA DE PROGRAMAS DE CÓMPUTO
SUMARIO
Historia sobre software
Tratamiento del Problema
Tipos de Software
Elementos de Programas
Estructura de datos.
RESULTADO DE APRENDIZAJE
1.1
1.2
Identificar lenguajes de programación con base al uso y características de los
mismos.
Diseñar la programación mediante su secuencia de pasos lógica.
1.1.1 Historia sobre software.
Concepto
programación.
lenguajes
de
Los ordenadores no hablan nuestro
idioma, son maquinas y como tales,
necesitan un lenguaje especifico pensado
por el hombre para ellas. Además,
necesitan constantemente interpretar
todas las instrucciones que reciben. Dada
la dificultad de comunicación insalvable
entre el computador y el programador,
pronto
aparecieron
lenguajes
de
programación que hacen posible la
comunicación con el microprocesador,
utilizando
términos
y
símbolos
relacionados con el tipo de problema que
se debe resolver, mediante el empleo de
herramientas que brinda la informática.
Estos lenguajes permiten, por un lado,
escribir las operaciones que son necesarias
realizar para resolver el problema de un
14
modo parecido a como se escribiría
convencionalmente (es decir, redactar
adecuadamente el algoritmo de resolución
del problema) y, por el otro, se encarga de
traducir el algoritmo al lenguaje máquina
(proceso conocido como compilación) con
lo que se le confiere al programa la
capacidad de corre (ser ejecutado) en el
ordenador. El ordenador es en realidad
tan sólo una máquina virtual, capaz de
resolver todos los problemas que los
usuarios seamos capaces de expresar
mediante un algoritmo (programa).
En la actualidad hay muchos tipos de
lenguajes de programación, cada uno de
ellos con su propia gramática, su
terminología especial y una sintaxis
particular. Por ejemplo, existen algunos
creados especialmente para aplicaciones
científicas o matemáticas generales
(BASIC, FORTRAN, PASCAL, etc. ); otros, en
cambio, se orientan al campo empresarial
y al manejo de textos y ficheros, es decir,
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
son en realidad fundamentalmente
gestores de información (COBOL, PL/1, etc.
), o muy relacionados con el lenguaje
máquina del ordenador (como el C y el
ASSEMBLER).
Los ordenadores se programaban en
lenguaje máquina pero las dificultades
que esto conllevaba, junto con la enorme
facilidad de cometer errores, cuya
localización era larga y compleja, hicieron
concebir, en la década de los 40, la
posibilidad de usar lenguajes simbólicos.
Los primeros en aparecer fueron los
ensambladores,
fundamentalmente
consistía en dar un nombre (mnemónico)
a cada tipo de instrucción y cada dirección
(etiqueta). Al principio sé hacia el
programa sobre papel y, después se
traducía a mano con la ayuda de unas
tablas, y se introducían en la máquina en
forma numérica, pero pronto aparecieron
programas
que se ensamblaban
automáticamente.
Así nos podemos dar cuenta de la
importancia que tiene la programación y
la creación de estos lenguajes para
sintetizar la información y agilizar así los
procesos sistemáticos de los sistemas que
trabajan por medio de computadoras así
como la importancia de que estos
lenguajes nos permiten cada día mas
cosas debido a su desarrollo al paso de
los años como nos podemos dar cuenta
en este trabajo al igual hace mas fácil el
trabajo para el programador y mas fácil
para nosotros los consumistas de
tecnología.
Lenguaje
de
programación,
en
informática, cualquier lenguaje artificial
Programación en Pseudocódigo
que puede utilizarse para definir una
secuencia de instrucciones para su
procesamiento por un ordenador o
computadora. Es complicado definir qué
es y qué no es un lenguaje de
programación. Se asume generalmente
que la traducción de las instrucciones a un
código que comprende la computadora
debe ser completamente sistemática.
Normalmente es la computadora la que
realiza la traducción.
Un lenguaje de programación es una
notación para escribir programas, a través
de los cuales podemos comunicarnos con
el hardware y dar así las ordenes
adecuadas para la realización de un
determinado proceso. Un lenguaje esta
definido por una gramática o conjunto de
reglas que se aplican a un alfabeto
constituido por el conjunto de símbolos
utilizados. Los distintos niveles de
programación existentes nos permiten
acceder al hardware, de tal forma que
según utilicemos un nivel u otro, así
tendremos que utilizar un determinado
lenguaje ligado a sus correspondientes
traductores.
Conjunto
de
normas
“lingüísticas”
(palabras y símbolos) que permiten
escribir un programa y que éste sea
entendido por el ordenador y pueda ser
trasladado a ordenadores similares para su
funcionamiento en otros sistemas.
Conjunto de instrucciones, ordenes y
símbolos reconocibles por autómata, a
través de su unidad de programación, que
le permite ejecutar la secuencia de control
deseada.
PT Bachiller en Informática
15
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Al conjunto total de estas instrucciones,
ordenes y símbolos que están disponibles
se le llamar lenguajes de programación del
autómata. El programa esta formado por
un conjunto de instrucciones, sentencias,
bloques funcionales y grafismos que
indican las operaciones a realizar.
Las instrucciones representan la tarea más
elemental de un programa: leer una
entrada, realizar una operación, activar
una salida, etc. La sentencia representa el
mínimo conjunto de instrucciones o
sentencias que realizan una tarea o
función compleja: encontrar el valor de
una función lógica en combinación de
varias variables, consultar un conjunto de
condiciones, etc. El bloque funcional es el
conjunto de instrucciones o sentencias
que realizan una tarea o
16
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
función compleja: contadores, registros de
desplazamientos,
transferencias
de
información, etc. Todos estos elementos
están relacionados entre sí mediante los
símbolos o grafismos.
Es un conjunto de palabras y símbolos que
permiten al usuario generar comandos e
instrucciones para que la computadora los
ejecute. Los lenguajes de programación
deben tener instrucciones que pertenecen
a las categorías ya familiares de
entrada/salida,
Cálculo/manipulación de textos,
logica/comparación, y
almacenamiento/recuperación.
Evolución de los lenguajes de
programación.
Programación en Pseudocódigo
influía en todo el programa, gracias a que
las estructuras globales de datos eran
accesibles por todas las subrutinas.
Segunda
Generación:
La
segunda
generación de lenguajes fue desarrollada a
finales de los años 50 y principios de los
60 y ha servido como base para todos los
lenguajes de programación modernos
(tercera
generación).
La
segunda
generación de lenguajes está caracterizada
por su amplio uso, la enorme cantidad de
bibliotecas de software y la gran
familiaridad y aceptación. Prácticamente
nadie pone en duda que FORTRAN,
COBOL, ALGOL y (de alguna forma) BASIC
son lenguajes de base, debido a su
madurez y su aceptación. FORTRAN ha
subsistido a 30 años de
Primera
Generación:
La
primera
generación de lenguajes se remonta a los
días en que se codificaba a nivel de
máquina.
El código máquina y su
equivalente más humanamente legible, el
lenguaje ensamblador, representan la
primera generación de lenguajes. Estos
lenguajes dependientes de la máquina
muestran el menor nivel de abstracción
con el que se puede representar un
programa. El lenguaje de máquina está
formado por cadenas de ceros y unos,
por lo tanto para realizar un programa se
necesita de programadores altamente
entrenados.
Algunos ejemplos de
lenguajes de esta generación son el
FORTRAN y el ALGOL que presentaban las
características de abstracción matemática,
estructura física plana y consistían
únicamente de datos globales y subrutinas
o subprogramas. Como consecuencia de
esto un error podía tener un gran efecto e
PT Bachiller en Informática
17
Informática
Colegio Nacional de Educación Profesional Técnica
críticas y sigue siendo el primer lenguaje
de programación en el ambiente científico
y de ingeniería.
FORTRAN sigue siendo el lenguaje elegido,
pero para aplicaciones de software de
sistemas, de tiempo real o de productos
empotrados, otros lenguajes tienen
ventajas más significativas. COBOL, al
igual que FORTRAN, ha alcanzado la
madurez y es el lenguaje aceptado como
“estándar”
para
aplicaciones
de
procesamiento de datos comerciales.
Aunque el lenguaje ha sido a veces
criticado por su falta de unidad. tiene
excelentes posibilidades de definición de
datos, es muy auto-documentado y
proporciona soporte para un gran rango
de técnicas algorítmicas relativas al
procesamiento de datos en los negocios.
ALGOL es el predecesor de muchos de los
lenguajes de tercera generación y ofrece
un repertorio extremadamente rico de
construcciones procedimentales y de
tipificación de datos. ALGOL ha sido
extensamente usado en Europa, pero ha
encontrado poca aceptación en Estados
Unidos
(exceptuando
el
entorno
académico).
Programación en Pseudocódigo
seguirá usando ampliamente FORTRAN
durante el siglo XXI.
Tercera Generación: Los lenguajes de
tercera generación (también denominados
lenguajes de programación moderna o
estructurada) están caracterizados por sus
potentes posibilidades procedimentales,
abstracción de datos, compilación de
módulos en forma separada, orientación a
objetos y estructuración de datos. Los
lenguajes de esta clase se pueden dividir
en tres amplias categorías, lenguajes de
alto nivel de propósito general, lenguajes
de alto nivel orientados a los objetos y
lenguajes especializados. Los lenguajes
especializados, han sido diseñados para
satisfacer requisitos especiales y, a
menudo, tienen una formulación y una
sintaxis únicas.
BASIC
es
un
lenguaje
que
fue
originalmente diseñado para enseñar
programación en modo de tiempo
compartido. El lenguaje parecía destinado
a quedarse obsoleto a principios de los
anos 70, pero con el advenimiento de las
computadoras personales ha renacido.
Existen cientos de versiones de BASIC. lo
que hace difícil discutir las ventajas y las
deficiencias del lenguaje. Sin embargo, se
18
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Lenguajes de alto nivel de propósito
general.
El lenguaje de alto nivel de propósito
general más antiguo (también un lenguaje
de base) ,ALGOL, ha servido como modelo
para otros lenguajes de esta categoría. Sus
descendientes, PL/l, PASCAL. Modula-2, C
,y
Ada , han sido adoptados como
lenguajes con potencial para un gran
espectro de aplicaciones (p. ej.: para uso
en áreas de ciencia e ingeniería, de
productos empotrados, comerciales y/o
aplicaciones de sistemas).
PL/1
debería
clasificarse
más
apropiadamente como lenguaje de
generación 2,5. Fue el primer lenguaje de
amplio espectro, desarrollado con un
amplio rango de posibilidades que le
permiten ser usado en muchas áreas de
aplicación diferentes. PL/1 da soporte a
aplicaciones convencionales de ciencia e
ingeniería y de negocios, permitiendo la
especificación de sofisticadas estructuras
de datos, la multitarea, una compleja E/S,
el procesamiento de listas y muchas otras
posibilidades.
Se
han
desarrollado
subconjuntos del lenguaje para enseñar
programación (PL/C), para su uso en
aplicaciones de microprocesadores (PL/M)
y para programación de sistemas (PL/S).
Programación en Pseudocódigo
aplicaciones de ciencia e ingeniería y de
programación de sistemas (el lenguaje ha
sido llamado “el FORTRAN de los 80”).
PASCAL es un descendiente directo de
ALGOL y contiene muchas de sus propias
características: estructuración en bloques,
fuerte triplicación de datos, soporte
directo de la recursividad y otras
características suplementarias. Ha sido
implementado en computadoras de todo
tipo.
Modula-2
es
un
descendiente
evolucionado de PASCAL y (como dirían
algunos) una posible alternativa para el
lenguaje de programación Ada. Modula2
junta las posibilidades de implementación
directa del diseño, como el ocultamiento
de información, la abstracción y la fuerte
tipificación de
PASCAL es un moderno lenguaje de
programación desarrollado a principios de
los años 70 para enseñar técnicas
modernas de desarrollo de software (p.
ej.: programación estructurada). Desde su
introducción, PASCAL ha encontrado
mucho apoyo en grandes audiencias de
personal dedicado al desarrollo de
software y es usado ampliamente en
PT Bachiller en Informática
19
Informática
Colegio Nacional de Educación Profesional Técnica
datos, con las estructuras de control que
soportan la recursividad y la concurrencia.
Hasta ahora, el uso de Modula-2 en
aplicaciones industriales ha estado muy
limitado.
El lenguaje de programación C fue
originalmente desarrollado como lenguaje
para implementaciones de sistemas
operativos. El sistema operativo UNIX está
implementado en C. Sin embargo,
actualmente se ha construido una gran
cantidad de productos de software, de
aplicaciones empotradas y de software de
sistemas, usando el lenguaje C. El lenguaje
C fue desarrollado para el ingeniero de
software sofisticado y contiene potentes
posibilidades que le dan una considerable
flexibilidad.
Como otros lenguajes de esta categoría, C
soporta estructuras de datos sofisticadas y
tiene características de tipificación, hace
un uso intensivo de los punteros y tiene
un rico conjunto de operadores para el
cálculo y la manipulación de datos.
Además,
permite
al
programador
“acercarse a la máquina” al suministrar
posibilidades
similares
al
lenguaje
ensamblador.
Programación en Pseudocódigo
tareas, así como un conjunto de
características únicas como el paquete.
Ada ha creado mucha controversia y
continúa generándola. Sus adictos alaban
su rica estructura de lenguaje y su
enfoque de entorno Ada para la ingeniería
del software en lugar de toda una
parafernalia orientada al lenguaje.
Lenguajes
objetos.
a
los
Aunque han aparecido docenas de
lenguajes orientados a los objetos durante
la pasada década, sólo unos pocos han
tenido éxito y fama en el mercado:
dialectos de C (p. ej.: C++ y Objective-C),
Smalltalk y Eiffel. Smalltalk. un lenguaje
"fundador" orientado a los objetos, se
desarrolló
Ada es un lenguaje desarrollado bajo
contrato del Departamento de Defensa de
EE UU como un nuevo estándar para
sistemas de computadora de tiempo real y
empotrado. Similar a PASCAL en notación
y estructura (aunque más potente y
complejo), Ada soporta un rico conjunto
de
posibilidades
que
incluyen
la
multitarea, el manejo de interrupciones, la
sincronización y comunicación entre
20
orientados
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
originalmente a principio de los años 70
para explorar los conceptos de la
orientación a los objetos. Hoy en día, hay
disponibles versiones de Smalltalk para
computadoras de todo tipo, aunque el
uso del lenguaje para el desarrollo de
productos y sistemas de calidad industrial
está limitado. El uso de los dialectos de C
orientados a los objetos se ha difundido
mucho en la comunidad de usuarios de
UNIX y entre los nuevos desarrolladores de
sistemas orientados a los objetos. Basados
en la fortaleza del propio C, los dialectos
orientados a los objetos permiten llevar a
cabo una suave transición a partir de este
lenguaje de alto nivel, de propósito
general y ampliamente usado. Eiffel es
uno de los “nuevos” lenguajes orientados
a los objetos que es suficientemente
robusto como para su aplicación en la
industria. Al igual que Smalltalk y los
dialectos de C. Eiffel proporciona soporte
directo para las definiciones de clases, la
herencia, la encapsulación y el paso de
mensajes.
Lenguajes especializados.
Programación en Pseudocódigo
símbolos y el procesamiento de listas en
problemas combinatorios. Usado casi
exclusivamente por la comunidad de la
inteligencia artificial, el lenguaje es
especialmente adecuado para la prueba
de teoremas, las búsquedas en árboles y
otras actividades de resolución de
problemas.
PROLOG
es
otro
lenguaje
de
programación que se ha usado mucho en
la construcción de sistemas expertos. Al
igual que LISP, PROLOG proporciona
medios de soporte para la representación
del conocimiento.
APL es un lenguaje extremadamente
conciso y potente para la manipulación de
vectores y matrices. Contiene poco
soporte para la tipificación de datos y
Los lenguajes especializados están
caracterizados por su inusual formulación
sintáctica que ha sido especialmente
diseñada para una aplicación particular.
Actualmente se usan cientos de lenguajes
especializados. En general, estos lenguajes
tienen una base de usuarios mucho
menor que los lenguajes de propósito
general. Entre los lenguajes que han
encontrado aplicación en la comunidad
de la ingeniería del software están LISP,
PROLOG, APL y FORTH.
LISP es un lenguaje especialmente
adecuado para la manipulación de
PT Bachiller en Informática
21
Informática
Colegio Nacional de Educación Profesional Técnica
las construcciones estructuradas. Lo que
APL proporciona es un rico conjunto de
operadores computacionales. Ganando
entusiastas entusiastas seguidores en la
resolución de problemas matemáticos.
FORTH es un lenguaje diseñado para el
desarrollo
de
software
de
microprocesadores. El lenguaje soporta la
definición de funciones de usuario
(implementadas con notación postfija
(polaca inversa)) que se ejecutan de forma
orientada a pila proporcionando una gran
eficiencia en velocidad y utilización de
memoria.
Cuarta Generación: A lo largo de la
historia del desarrollo de software,
siempre
hemos
intentado
generar
programas de computadora con cada vez
mayores niveles de abstracción. Los
lenguajes de la primera generación
trabajaban a nivel de instrucciones
máquina, el menor nivel de abstracción
posible. Los lenguajes de segunda y tercer
generación han subido el nivel de
representación de los programas de
computadora, pero aún hay que
especificar
distintos
procedimientos
algorítmicos perfectamente detallados.
Durante la pasada década, los lenguajes
de cuarta generación (L4G) han elevado
aún más el nivel de abstracción.
Programación en Pseudocódigo
Los lenguajes de esta generación, al igual
que los lenguajes de inteligencia artificial,
contienen una sintaxis distinta para la
representación del control y para la
representación de las estructuras de datos.
Sin embargo, un L4G representa a estas
estructuras en un mayor nivel de
abstracción, eliminando la necesidad de
especificar los detalles algorítmicos. Un
ejemplo
de
lenguajes
de
cuarta
generación son SQL y QBE
Los lenguajes de cuarta generación
pueden ser divididos en las siguientes
categorías:
Lenguaje de Petición
Hasta ahora, la gran mayoría de los 4GL
se han desarrollado para ser usados
conjuntamente con aplicaciones de bases
de datos. Tales
Los lenguajes 4GL o lenguajes de cuarta
generación fueron proyectados para estar
más cerca del lenguaje natural. Los
lenguajes para acceder a las bases de
datos son generalmente descritos como
4GL.
22
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
lenguajes de petición permiten al usuario
manipular de forma sofisticada la
información contenida en una base de
datos previamente creada. Algunos
lenguajes de petición tienen una sintaxis
compleja que no es más sencilla (en
algunos casos peor) que la de los
lenguajes de tercera generación.
Generadores de Programas
Los generadores de programas son otra
clase de 4GL, aunque algo más
sofisticado. Más que basarse en una base
de datos previamente definida, un
generador de programas permite al
usuario crear programas en un lenguaje
de
tercera
generación
usando
notablemente menos sentencias. Estos
lenguajes de programación de muy alto
nivel hacen un gran uso de la abstracción
de datos y de procedimientos.
Programación en Pseudocódigo
además de proporcionar medios para la
modelización de datos. Los lenguajes de
especificación formal
se pueden
considerar L4G cuando producen código
máquina ejecutable. Por último, las
herramientas utilizadas en entornos de
computadoras personales (p. ej.: hojas de
cálculo, sistemas de bases de datos,
Hypercard para el Macintosh) permiten al
usuario “programar” a un nivel más alto
de abstracción del que se disponía
previamente.
Quinta Generación: El lenguaje de quinta
generación es programación que utiliza
una interface de desarrollo gráfica para
crear código fuente que es usualmente
compilado usando un compilador de 3era
o 4ta generación.
Otros Lenguajes de Cuarta
Generación.
Aunque los lenguajes de petición y los
generadores de programas son los L4G
más comunes, existen otras categorías.
Los lenguajes de soporte a la toma de
decisiones permiten que los no
programadores lleven a cabo una gran
variedad de análisis qué pasa si, que van
desde los simples modelos de hojas de
cálculo
bidimensionales
hasta
los
sofisticados
sistemas
de
modelos
estadísticos y de investigación operativa.
Los lenguajes de prototipos se han
desarrollado para asistir en la creación de
prototipos facilitando la creación de
interfaces de usuario y de diálogos,
PT Bachiller en Informática
23
Informática
Colegio Nacional de Educación Profesional Técnica
Microsoft, Borland, IBM, y otras compañías
hacen productos de programación visual para
desarrollar aplicaciones por ejemplo en Java.
La programación visual le permite a uno
fácilmente visualizar las jerarquías de las clases
orientadas a objetos y arrastrar iconos para
ensamblar
componentes
del
programa.
Microbrew AppWare e IBM VisualAge para
Java son ejemplos de 5GL.
Aquí se muestran las épocas en que
fueron desarrollados algunos lenguajes de
programación.
Basado en el cálculo numérico
Lenguaje
Época de
creación
Creador
FORTRAN
1955-1957
Backus
IAL , ALGOL
1960-1962
Naur
NPL, MPPL,
PL/I
1963
IBM
Orientado a Negocios
Lenguaje
COBOL
Época de
creación
Creador
1959-1962
Depto. de
defensa
(EE. UU.
AA.)
Para Inteligencia Artificial
Lenguaje
LISP
COMIT
SNOBOL
Prolog
24
Época de
creación
Creador
1950 -1959
McCarthy
Yngve
Laboratorios
Bell
Programación en Pseudocódigo
Para Sistemas
Lenguaje
C
Época de
creación
Creador
1970
Ritchie
Concepto de Sistemas Operativos
Conjunto de programas que se integran
con el hardware para facilitar al usuario, el
aprovechamiento
de
los
recursos
disponibles. Algunos de sus objetivos
principales son:
Provee de un ambiente conveniente
de trabajo.
o Hace uso eficiente del Hardware.
o Provee de una adecuada
distribución de los recursos.
o
Para un Sistema Operativo real deberá
satisfacer las siguientes funciones:
o
o
o
Gobierna el Sistema.
Asigna los recursos.
Administra y controlar la ejecución
de los programas.
Un sistema de computo en muchos casos
cuenta con demasiados recursos para ser
utilizados por un solo usuario, es en estos
casos cuando se puede dar servicio a
varios procesos.
Llamadas al Sistema. El Sistema
Operativo en conjunto con el Hardware
aparecen al usuario como un solo
dispositivo
con
un
conjunto
de
instrucciones más flexibles y variadas a las
que se conoce como Llamadas al Sistema
(System Callings).
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Intérprete de Comandos. También
conocido por su nombre en inglés, Shell,
es un programa que interpreta las órdenes
del usuario y las convierte en Llamadas al
Sistema.
Programación en Pseudocódigo
Es el programa o programas que tienen
todas las computadoras modernas, el
usuario de un equipo de computo no
tiene que preocuparse de como funciona,
por ejemplo, una unidad lectora de disco,
sólo necesita pedirle
Núcleo (o Kernel). Es la parte del Sistema
Operativo que se encarga de sincronizar la
activación de los procesos y definir
prioridades.
Programas del Sistema. Son programas
de servicio que debe ser solicitados
explícitamente por los usuarios. Como
ejemplos de estos tenemos:
1. Compiladores. Son programas que
traducen Programas Fuente en
programas Objeto.
2. Ensambladores.
Traducen
programas
escritos
con
mnemónicos
a
lenguaje
de
máquina.
3. Editores. Son programas que
permiten
escribir
textos
y
guardarlos en memoria secundaria.
4. Utilerías de Archivos. Programas
para dar mantenimiento a los
archivos.
5. Bibliotecas.
Programas
que
contienen rutinas para realizar
funciones
frecuentemente
requeridas. Estas funciones pueden
ser ligadas a los programas escritos
por el usuario.
Programas de Aplicación. Programas
externos al sistema, utilizados para realizar
tareas específicas como simulación,
creación y edición de gráficas e imágenes,
etc..
PT Bachiller en Informática
25
Informática
Colegio Nacional de Educación Profesional Técnica
al sistema operativo que lo lea o escriba
en el disco mediante un comando. El más
comúnmente usado es el MS-DOS.
Conjunto de programas que sirven como
interfaz entre el usuario (Sirve como
agente de intercambio de información
entre la computadora y el usuario.) y la
computadora,
además
de
que
administran los recursos de la misma
(Entendiéndose como recursos: Memoria,
Disco Duro, Procesador, Monitor, Etc.).
Evolución de Sistemas Operativos
Los sistemas operativos, al igual que el
hardware , han sufrido cambios a través
del tiempo, los cuales se pueden agrupar
en generaciones. La evolución del
hardware ha marcado el paralelismo de la
evolución de los sistemas operativos.
Programación en Pseudocódigo
multiprogramación, en los cuales se
utilizan varios procesadores en un solo
sistema, con la finalidad de incrementar el
poder de procesamiento de la máquina. El
programa especificaba tan sólo que un
archivo iba a ser escrito en una unidad de
cinta con cierto número de pistas y cierta
densidad. El sistema operativo localizaba
entonces una unidad de cinta disponible
con las características deseadas, y le
indicaba al operador que montara una
cinta en esa unidad.
Tercera Generación (primera mitad de los
70’s). En esta época surge la familia de
computadores IBM/360 diseñados como
sistemas para uso general, por lo que
requerían manejar grandes volúmenes de
información de distinto
Primera Generación (Finales de la década
de los 50's). En esta década aparecen los
sistemas de procesamiento por lotes,
donde los trabajos se reunían por grupos
o lotes. Cuando se ejecutaba alguna tarea,
ésta tenía control total de la máquina. Al
terminar cada tarea, el control era
devuelto al sistema operativo, el cual
limpiaba, leía e iniciaba la siguiente tarea.
Aparece el concepto de nombres de
archivo
del
sistema
para
lograr
independencia de información. Los
laboratorios de investigación de General
Motors poseen el crédito de haber sido los
primeros en poner en operación un
sistema operativo para su IBM 701.
Segunda Generación (Mitad de la década
de los 60's). En esta generación se
desarrollan los sistemas compartidos con
26
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
tipo, lo cual provocó una nueva evolución
de los sistemas operativos: los sistemas de
modos
múltiples,
que
soportan
simultáneamente procesos por lotes,
tiempo compartido, procesamiento en
tiempo real y multiprocesamiento.
Cuarta Generación (Mitad de la década de
los 70’s hasta nuestros días). Los sistemas
operativos conocidos en la época actual
son los considerados sistemas de cuarta
generación. Con la ampliación del uso de
redes
de
computadoras
y
del
procesamiento en línea es posible obtener
acceso
a
computadoras
alejadas
geográficamente a través de varios tipos
de terminales.
Con estos sistemas operativos aparece el
concepto de máquinas virtuales, en el cual
el usuario no se involucra con el hardware
de la computadora con la que se quiere
conectar y en su lugar el usuario observa
una interfaz gráfica creada por el sistema
operativo.
Estudio individual
Competencia
Información
de
Identificar el proceso de desarrollo del
software, características y conceptos
relacionados..
El alumno:
•
•
Elaborará resumen mostrando los
conceptos
de
lenguaje
de
programación y su evolución.
Diseñará un cuadro sinóptico ubicando
las generaciones y los lenguajes de
programación que las integran.
Como habrá notado los lenguajes de
programación, no son nuevos, existe una
historia que los respalda, algunos han
evolucionado, otros prácticamente han
desaparecido y han surgido nuevos.
Además, como pudiste apreciar, existen
lenguajes de programación enfocados a
las distintas áreas del conocimiento
humano, algunos son aplicables a las
áreas científicas, otros a las actividades
administrativas de la industria y el
comercio y otros más a actividades
recreativas
como
lenguajes
de
programación que se usan para crear los
juegos que a ti te agrada jugar en el
computador.
PT Bachiller en Informática
27
Informática
Colegio Nacional de Educación Profesional Técnica
1.1.2 Tipos de Software
Programación en Pseudocódigo
Server y Professional son sistemas
operativos de red.
Software de sistema (sistemas
operativos)
La estructura básica que deberá obedecer
cualquier sistema operativo es:
Un Sistema Operativo es un programa que
actúa como intermediario entre el usuario
y el hardware de un computador y su
propósito es proporcionar un entorno en
el cual el usuario pueda ejecutar
programas. El objetivo principal de un
Sistema Operativo es, entonces, lograr que
el Sistema de computación se use de
manera cómodoa, y el objetivo secundario
es que el hardware del computador se
emplee de manera eficiente. Los sistemas
opertivos se clasifican en:
A) CARGADOR. Cualquier programa que
requiere ser ejecutado en la computadora,
deberá ser transferido desde su lugar de
residencia a la memoria principal.
Sistema operativo monousuario. Este tipo
de sistema operativo puede ser utilizado
solamente por un usuario a la vez; Por
ejemplo: MS-DOS, OS/2 v. 3.0, Windows
95, Windows 98, Windows Me y Windows
XP son sistemas operativos monousuarios.
B) CARGADOR PARA EL SISTEMA
OPERATIVO. Este programa se encarga de
transferir
desde
algún
medio
de
almacenamiento externo (disco, cinta o
tambor) a la memoria principal, los
programas del sistema operativo que
tienen como finalidad establecer el
ambiente de trabajo del equipo de
Sistema operativo multiusuario. Es un
sistema operativo que puede ser utilizado
por varios usuarios al mismo tiempo. Por
ejemplo: Unix, Solaris y Windows 2000
(Terminal server) son sistemas operativos
multiusuarios.
Sistema operativo de red. Sistema
operativo que permite la conexión entre
varias
computadoras
personales
y
compartir sus recursos entre ellas. Por
ejemplo:
Novell, Windows NT, Windows 2000
Professional, Windows 2000 Server,
Windows XP Professional y Windows 2003
28
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
cómputo. Existe un programa especial
almacenado en memoria ROM que se
encarga de accesar a este programa
cargador. Cuando el sistema operativo
esta cargado en memoria toma el control
absoluto de las operaciones del sistema.
C) CARGADOR INCLUIDO EN EL SISTEMA
OPERATIVO. Su función es cargar a
memoria todos los archivos necesarios
para la ejecución de un proceso.
D) SUPERVISOR (EJECUTIVO O MONITOR).
Es el administrador del sistema que
controla todo el proceso de la información
por medio de un gran número de rutinas
que entran en acción cuando son
requeridos. Funge como enlace entre los
programas del usuario y todas las rutinas
que controlan los recursos requeridos por
el
programa
para
posteriormente
continuar con su ejecución. El supervisor
también realiza otras funciones como son:
-
-
Programación en Pseudocódigo
que
permiten
seleccionar
diversas
operaciones de entre los que dispone el
comando.
F) UTILERÍA DE SISTEMA. Son programas o
rutinas del sistema operativo que realizan
diversas funciones de uso común o
aplicación frecuente como son: clasificar,
copiar e imprimir información.
Funciones básicas de un sistema
operativo
PROGRAMAS DE CONTROL:
ADMINISTRACIÓN DE TRABAJOS. Cuando
existen varios programas en espera de ser
procesados, el sistema
Administra la memoria.
Administración de las rutinas que
controlan el funcionamiento de los
recursos de la computadora.
Manejo de Archivos.
Administración y control de la
ejecución de los programas.
E) LENGUAJE DE COMUNICACIÓN. Es el
medio a través del cual el usuario
interactúa directamente con el sistema
operativo y esta formado por comandos
que son introducidos a través de algún
dispositivo. Generalmente un comando
consta de dos partes, la primera formada
por una palabra que identifica el comando
y la acción a realizar y la segunda parte
por un conjunto de valores o parámetros
PT Bachiller en Informática
29
Informática
Colegio Nacional de Educación Profesional Técnica
operativo debe decidir el orden de
procesamiento de ellos, así como asignar
los recursos necesarios para su proceso.
ADMINISTRACIÓN
DE
RECURSOS.
Mediante está función el sistema
operativo esta en capacidad de distribuir
en forma adecuada y en el momento
oportuno
los
diferentes
recursos
(memoria, dispositivos, etc.,...) entre los
div, para esto, lleva un registro que le
permite conocer que recursos están
disponibles y cuales están siendo
utilizados, por cuanto tiempo y por quien,
etc.
CONTROL DE OPERACIONES DE ENTRADA
Y SALIDA. Mediante esta actividad el
sistema operativo decide que proceso hará
uso del recurso, durante cuánto tiempo y
en que momento.
Programación en Pseudocódigo
utilerías y se pueden clasificar en tres
tipos:
A) UTILERÍAS DEL SISTEMA. Se ejecutan
bajo el control del sistema operativo y se
utilizan para preparar algunos recursos
usados por el sistema. Son de uso interno.
B) UTILERÍAS PARA ARCHIVOS. Manejan
información de los archivos tales como
imprimir, clasificar, copiar, etc.
C) UTILERÍAS INDEPENDIENTES. Realizar
funciones que se relacionan con la
iniciación
de
dispositivos
de
Entrada/Salida,
carga
del
sistema
operativo, etc.
TIPOS DE SISTEMA OPERATIVO. El sistema
operativo como controlador y supervisor
de todas las actividades que
ADMINISTRACIÓN DE LA MEMORIA.
Supervisa que áreas de memoria están en
uso y cual están libre, determina cuanta
memoria asignará a un proceso y en que
momento, además libera la memoria
cuando ya no es requerida para el
proceso.
RECUPERACIÓN DE ERRORES. El sistema
operativo contiene rutinas que intentan
evitar perder el control de una tarea
cuando se suscitan errores en la
trasferencia de información hacia y desde
los dispositivos de entrada / salida.
PROGRAMAS DE PROCESO. El sistema
operativo contiene programas de servicios
que sirven de apoyo al procesamiento de
los trabajos, se conocen también como
30
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
realiza
la
computadora
tiene
características que le permiten soportar
técnicas avanzadas de procesamiento de
datos como:
-
La utilización de Lenguaje de Alto
Nivel.
Tiempo Compartido.
Multiprogramación.
Memoria Virtual.
Existen dos tipos generales de sistemas
operativos: Los basados en caracteres y los
de interfaz gráfica (ambientes amigables).
El sistema basado en caracteres es
ejemplificado perfectamente con el
sistema operativo utilizado por las
computadoras IBM y compatibles.
El Sistema Operativo está listo para recibir
un comando desplegando el tipo de
indicador (A> o C>) en la pantalla; en
donde el usuario escribe carácter por
carácter el comando que se desea
ejecutar.
Programación en Pseudocódigo
Cada programa en Windows tiene
reservada un área de la pantalla conocida
con el nombre de ventana.
Un sistema operativo que se opera
mediante el uso de imágenes y símbolos
en vez de palabras se denomina interfaz
gráfica para el usuario, o GUI (Graphic
User Interface).
Software de Desarrollo (lenguajes
de programación).
Los lenguajes de programación nos
permiten crear aplicaciones para resolver
problemas específicos de empresas o
personas a través de la computadora. Un
lenguaje de programación esta formado
por
un
conjunto
de
palabras
(Instrucciones) y una serie de reglas para
escribir adecuadamente estas palabras
(Sintaxis) con la finalidad de que sean
entendibles por la computadora.
Ante las justificadas quejas de los usuarios
por la falta de programas amigables, los
desarrolladores de software respondieron
añadiendo menús y mensajes en pantalla.
Los menús mejoran en mucho la
cordialidad de los programas, reduciendo
el número de comandos que se necesitan
conocer.
La Macintosh logró crear la primera
interfaz gráfica, posteriormente Microsoft
introdujo la interfaz gráfica Windows para
las computadoras IBM y compatibles.
PT Bachiller en Informática
31
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Recordando que un programa es un
conjunto de instrucciones con secuencia
lógica para realizar una tarea especifica en
la computadora.
Los lenguajes de programación se
clasifican de acuerdo a la forma en que se
traducen las instrucciones del programa.
Lenguaje de programación INTÉRPRETE.
Este tipo de lenguaje traduce y ejecuta al
mismo tiempo las instrucciones de un
programa. Si encuentra un error en la
sintaxis de una instrucción se detiene la
ejecución del programa y se continúa en la
siguiente instrucción hasta que se corrige
el error encontrado en el programa.
Observación
Competencia Analítica
Identificar las diferencias
interprete y un compilador.
entre
un
El alumno:
•
Observará los diagramas anteriormente
mostrados.
Lenguaje de programación compilador.
Lenguaje que primero traduce las
instrucciones que componen a un
programa y puede ser ejecutado siempre y
cuando no tenga errores de sintaxis el
programa.
Otra característica principal de un
lenguaje compilador es que el programa
compilado podrá ser ejecutado sin
necesidad de que la computadora tenga
instalado el lenguaje de programación.
32
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
•
•
Identificará las diferencias entre un
intérprete y un compilador.
Elabora un mapa conceptual ubicando
las funciones de un intérprete y un
compilador.
Software de aplicación (paquetes
de escritorio y sistemas)
Los programas de aplicación están
diseñados para realizar una tarea
específica dependiendo de la finalidad
para la cual fueron creados. Existe una
gran variedad de programas de aplicación
de acuerdo a su uso.
Procesadores de palabras. Programas
orientados a la creación de documentos
de texto, tienen las funciones similares a
las de una máquinas de escribir con la
diferencia de tener grandes ventajas en su
uso con respecto a estas. Por ejemplo:
Ami pro, Works, Word Perfect, Microsoft
Word son procesadores de palabras.
Programación en Pseudocódigo
Estos programas hacen mas accesible el
área de dibujo para que todas las
personas
puedan
desarrollar
su
creatividad. Por ejemplo: Autocad, Page
Maker, Photo Draw, Front Page, Corel y
Publisher son programas de diseño gráfico
y autoedición.
Navegadores.
Programas
que
nos
permiten navegar por la red mundial de la
información (INTERNET) y aprovechar al
máximo las bondades que nos ofrece
Internet. Por ejemplo: NetScape, Opera e
Internet Explorer son algunos programas
navegadores.
Multimedia. Programas orientados a la
creación de material donde usted podrá
combinar Imágenes, Sonido y Texto para
desarrollar material atractivo en la
computadora.
Hojas de calculo. Programas orientados al
manejo de información donde se requiera
realizar cálculos matemáticos. Una hoja de
calculo es similar a las hojas tabulares
utilizadas
en
contabilidad
y
se
desarrollaron para que realicen las mismas
funciones que estas con la ventaja de que
los cálculos y la actualización de la
información se puede hacer mas rápido,
sencillo y con menos margen de error. Por
ejemplo: Lotus, Works, Quatro pro y
Microsoft Excel son hojas de calculo.
Diseño gráfico y autoedición. Programas
orientados al diseño y creación de material
publicitario, de dibujo técnico y artístico.
PT Bachiller en Informática
33
Informática
Colegio Nacional de Educación Profesional Técnica
Por ejemplo: Flash, Director, Microsoft
Producer, Movie Maker, Corel RAVE y
Media
Player
son
programas
de
Multimedia.
Manejadores de bases de
datos.
Programas que permiten manipular
grandes cantidades de información, son
utilizados para administrar los sistemas de
información de las empresas como control
de inventario, facturación, control escolar,
recursos humanos, etc. Por ejemplo: SQL,
Access, Visual FoxPro son programas
manejadores de bases de datos.
Antivirus. Programas orientados a la
protección de las computadoras que
hayan sido infectadas por los programas
denominados virus. Por ejemplo: Virus
Scan, Norton Antivirus y Panda son
programas antivirus.
Presentadores gráficos. Estos programas
permiten generar material de apoyo para
la realización de una presentación. Donde
se podrá utilizar Texto, Gráficos, Sonidos,
Efectos especiales en los archivos para
lograr un mejor impacto con la audiencia.
Por ejemplo: Freelance y PowerPoint son
programas para realizar presentaciones
gráficas.
Programas de comunicaciones. Programas
orientados a la comunicación entre
computadoras. Por lo general son
utilizados cuando se maneja una red de
computadoras, o se quiere dar soporte a
distancia de una computadora a otra. Por
ejemplo: PC Anywhere y Outlook son
programas de comunicación.
34
Programación en Pseudocódigo
Existen diferentes tipos de software,
Software de sistemas (sistemas operativos)
el que nos sirve para administrar los
recursos del computador; Software de
desarrollo (lenguajes de programación)
con el que desarrollamos programas para
realizar tareas necesarias en el ámbito
laboral en que nos desempeñamos; y
software de aplicación (paquetes de
escritorio y sistemas) que es software
desarrollado para facilitarnos el trabajo
con este tipo de software tu estas ya
familiarizado pues ya conoces word, excel,
power point etc.
Estudio individual
Competencia científico teórica.
Identificar los tipos de software y el
propósito
para
el
que
fueron
desarrollados.
El alumno:
•
•
Analizará el tema para identificar los
tipos de software existentes.
Elaborará
resumen
que
deberá
contener: el tipo de software que
existe, sus características y funciones.
(Qué es software de sistema, cuál es su
estructura básica y su función; que es
el software de desarrollo; qué es el
software de aplicación y cuales son los
más usados).
1.2.1 Tratamiento del problema
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Análisis del problema.
Cuando se nos presenta un problema, es
necesario, comprender lo que queremos
hacer, una vez que se ha comprendido lo
que se desea de la computadora, es
necesario analizar el problema y así
definir cuales van a ser los pasos a seguir
para la solución de este, y entonces
podemos definimos cuales son :
1. Los datos de entrada.
2. Cual es la información que se desea
producir (salida).
3. Los métodos y fórmulas que se
necesitan para procesar los datos.
Una recomendación muy práctica es el
que nos pongamos en el lugar de la
computadora y analicemos que es lo que
necesitamos que nos ordenen y en que
secuencia para producir los resultados
esperados.
Diagramas de flujo.
Es aquel diagrama que utiliza símbolos
estándar y en el que cada paso del
algoritmo se visualiza dentro del símbolo
adecuado y el orden en que los pasos se
ejecutan se indica conectándolos con
flechas llamadas "líneas de flujo" porque
indican el flujo lógico del algoritmo.
Es un medio de presentación visual y
gráfica del flujo de datos, las operaciones
ejecutadas y la secuencia en que se
ejecutan dentro del algoritmo.
PT Bachiller en Informática
35
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Los diagramas de flujo son fáciles de
diseñar porque el flujo lógico del
algoritmo se muestra en un dibujo
(símbolo) en lugar de con palabras. Sin
embargo, tienen una limitación grande:
son difíciles de actualizar y complejos de
leer si ocupan varias páginas; cuando se
tienen que modificar, resulta difícil por su
carácter gráfico.
Los símbolos utilizados en los diagramas
de flujo han sido normalizados por las
organizaciones ANSI (American National
Institute) y por ISO (International Standard
Organization).
Algunos de los símbolos más empleados
en los diagramas de flujo son los
siguientes:
A. Inicio / Fin Representa el inicio o
el fin de un programa.
B. Entrada/Salida
Representa
cualquier tipo de introducción de
datos o salida de información a la
pantalla.
C. Proceso
Indica cualquier tipo
de operación que pueda originar un
cambio de valor, operaciones
aritméticas, etc.
36
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
D. Decisión
Indica
operaciones
lógicas de comparación de valores.
En función al resultado de la misma
se determinará el camino a seguir.
E. Conector
Enlaza dos partes de
un diagrama de flujo.
F. Líneas de Flujo
sentido de
operaciones.
Muestran
ejecución de
el
las
G. Impresora Se usa como símbolo
de salida de información a través de
impresora.
Estudio individual
Competencia Lógica
Aplicar el uso de diagramas de flujo en un
caso real.
El alumno:
•
Elaborará un diagrama de flujo que
muestre el proceso a seguir para
cambiar una llanta ponchada del auto,
recordar que no se debe omitir o dar
por obvio ningún paso.
Comparación del resultado con otros
compañeros
Competencia para la
Vida
Competencia Analítica
Identificar los simbolos usados en los
diagramas de flujo y su función.
Compartir experiencias y razonamientos
con sus compañeros.
El alumno:
•
•
Analizará cada uno de los símbolos
que se usan para elaborar un diagrama
de flujo.
Elaborará un gráfico donde se muestre
por separado el uso de cada uno de los
símbolos, describiendo con sus propias
palabras su uso y proporcionando
ejemplos.
Realización del ejercicio
PT Bachiller en Informática
37
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
El alumno:
•
Formará equipo de trabajo de 3
compañeros.
Comparará el ejercicio anteriormente
realizado
exponiendo
a
sus
compañeros el razonamiento seguido.
Elaborará nuevamente el ejercicio
ahora en equipo con las conclusiones
tomadas.
•
•
Diseño
solución:
del
procedimiento
de
ALGORITMO: Por algoritmo se entiende
"una lista de instrucciones donde se
especifica una sucesión de operaciones
necesarias
para
resolver
cualquier
problema de un tipo dado". Los
algoritmos son modos de resolución de
problemas, cabe aclarar que no sólo son
aplicables a la actividad intelectual, sino
también a todo tipo de problemas
relacionados con actividades cotidianas. El
algoritmo es de carácter general y puede
aplicarse
a
cualquier
operación
matemática o a cualquier problema.
♥ Preciso.- Esto quiere decir que debe
indicar el orden en cada paso y no
puede tener ambigüedades.
♥ Definido.- Es decir, si se sigue dos
veces, obtiene el mismo resultado
cada vez.
♥ Finito.- Que tiene fin, o sea
número definido de pasos.
♥ Debe ser sencillo y legible.
♥ Modular.
♥ Eficiente y efectivo.
♥ Debe tener al menos una salida y ésta
debe ser tangible.
Todo problema de cómputo se puede
resolver ejecutando una serie de acciones
en un orden específico. Un procedimiento
para resolver un problema en términos de:
1. Las acciones por ejecutar y
2. El orden en que dichas acciones
deben ejecutarse.
Un algoritmo es una serie de pasos lógicos
para realizar una acción, programa o tarea
ya que es el primer paso para realizar un
programa. Y tiene ciertas características
que son:
38
un
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Así que el lenguaje algorítmico es aquel
por medio del cual se realiza un análisis
previo del
problema a resolver y
encontrar un método que permita
resolverlo.
Inicio
Al diseñar nuestro algoritmo es necesario
especificar siempre cual es su inicio.
Declaración
constantes.
de
variables
y
Variables. Una variable es un nombre
asociado a un elemento de datos que está
situado en posiciones contiguas de la
memoria principal, y su valor puede
cambiar durante la ejecución de un
programa. Toda variable pertenece a un
tipo de dato concreto.
La lista_de_variables es uno o más
nombres de variables separados por
comas:
var listaVar1:tipo1;...;listaVarn:tipon;
Una variable no representa más que una
porción de memoria en donde guardamos
un dato que dependerá del tipo al que
pertenezca la variable. A diferencia de una
constante, el valor de una variable puede
cambiar durante la ejecución de un
programa. Otra diferencia, es que a una
variable no basta con declararla, sino que
también es necesario iniciarla. Esto se
refiere a darle un valor inicial, y es
importante ya que si no lo hacemos, igual
nos encontramos con errores cuando
ejecutemos el programa.
En la declaración de una variable se debe
indicar el tipo al que pertenece. Así
tendremos variables enteras, reales,
booleanas,
etc.
Por
otro
lado,
distinguimos tres partes fundamentales en
la vida de una variable:
Declaración de variables. Esta es la
primera fase en la vida de cualquier
variable. La forma de declarar variables es
muy sencilla. Esta sección debe comenzar
con la palabra reservada var, seguida de
una
lista
de
parejas
lista_de_variables=tipo_al_que_pertenece
n.
Cada par debe ir seguido por un punto y
coma.
PT Bachiller en Informática
39
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
fin.
Ejemplo de declaración de variables:
...
var
I, J, K : Integer; (* valores enteros *)
Contador : Integer;
Radio : Real; (* valor real *)
Letra : Char; (* un caracter *)
...
En este ejemplo se declaran seis variables.
Las cuatro primeras son de tipo entero. La
quinta es de tipo real, o sea, un número
con parte decimal. Y la sexta es un
carácter.
Utilización de variables.
Una vez
declarada e iniciada una variable, es el
momento de utilizarla. Esta es la parte
que presenta un mayor abanico de
posibilidades. A continuación se presentan
unas cuantas:
Iniciación de variables. Esto no es más que
darle un valor inicial a una variable. Así
como lo primero que se hace con una
variable es declararla, lo siguiente tiene
que ser iniciarla. Esto se hace para evitar
posibles errores en tiempo de ejecución,
pues una variable tiene un valor
indeterminado después de declararla.
Principalmente, existen dos maneras de
otorgar valores iniciales a variables:
Participar en una expresión:
n := (Max - Min) div I
Incrementar su valor: i := i + 1
Controlar un bucle: for i:=1 to 10 do ...
Checar una condición: if i<10 then ...
Constantes. Una constante es un dato
cuyo valor no puede cambiar durante la
ejecución del programa. Recibe un valor
en el momento de la compilación y este
permanece inalterado durante todo el
programa.
Mediante una sentencia de asignación.
Mediante uno de los procedimientos de
entrada de datos (read o readln).
Veamos un ejemplo que reúne los dos
casos:
inicio
...
i:=1;
readln(n);
while i < n do inicio
(* cuerpo del bucle *)
i := i + 1
fin;
...
40
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Las constantes se declaran en una sección
que comienza con la palabra reservada
const . Después de declarar una constante
se puede usar en el cuerpo principal del
programa.
Tienen varios usos: ser miembro en una
expresión, en una comparación, asignar su
valor a una variable, etc.
En el siguiente ejemplo se contemplan
varios casos:
const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;
inicio
i := Min;
while i < Max do inicio
writeln(i);
i := i + Sep
fin
fin.
-
Programación en Pseudocódigo
Constantes literales(sin nombre)
Constantes declaradas (con nombre)
Constantes expresión
Constantes literales
Son valores de cualquier tipo que se
utilizan directamente, no se declaran ya
que no tienen nombre. En el siguiente
ejemplo tienes un par de constantes
literales (el 3, el 4, y el 3.1416):
VolumenEsfera := 4/3 * 3.1416 * Radio *
Radio * Radio;
Constantes declaradas. También llamadas
constantes con nombre, son las que se
declaran en la sección Const asignándoles
un valor directamente.
En este ejemplo se declaran tres
constantes (Min, Max y Sep). En la primera
línea del cuerpo del programa se asigna
una constante a una variable. En la
siguiente, se usa una constante en una
comparación. Y en la cuarta, la constante
Sep interviene en una expresión que se
asigna a una variable. El resultado de
ejecutar este programa sería una
impresión en pantalla de los números: 0,
10, 20, 30, 40, 50, 60, 70, 80 y 90.
Se puede hacer una división de las
constantes en tres clases:
PT Bachiller en Informática
41
Informática
Colegio Nacional de Educación Profesional Técnica
Por ejemplo:
-
const
Pi = 3.141592; (* valor real *)
Min = 0; (* entero *)
Max = 99; (* entero *)
Saludo = \'Hola\'; (* cadena caract. *)
Constantes
expresión.
También
se
declaran en la sección Const pero a estas
no se les asigna un valor directamente,
sino que se les asigna una expresión. Esta
expresión se evalúa en tiempo de
compilación y el resultado se le asigna a la
constante.
Ejemplo:
const
Min = 0;
Max = 100;
Intervalo = 10;
N = (Max - Min) div Intervalo;
Centro = (Max - Min) div 2;
-
Programación en Pseudocódigo
Por un lado, detectar errores en las
operaciones.
Por el otro, determinar cómo ejecutar
estas operaciones.
Proceso
Una vez estructurado nuestro algoritmo,
es necesario realizar el proceso ejecutando
paso a paso ya con los datos que se
manejaran en el algoritmo a fin de
obtener el resultado, aquí podremos
definir la efectividad y exactitud de la
estructura del algoritmo.
Escritura del Resultado.
Como mencionamos anteriormente todo
algoritmo deberá tener como mínimo una
salida y ésta será la escritura del resultado.
Fin
Petición de datos.
Los datos es el conjunto de valores que
puede tomar durante el programa. Si se le
intenta dar un valor fuera del conjunto se
producirá un error.
El tipo de dato le indica al compilador del
lenguaje de programación dos cosas: el
número de bytes requeridos para guardar
el dato, y la manera en que se manipulara
y operara el dato.
La asignación de tipos a los datos tiene
dos objetivos principales:
42
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Igualmente como indicamos el inicio del
algoritmo, también indicamos el fin del
mismo.
Escritura
de
pseudocódigo.
la
solución
en
Es un lenguaje muy parecido al lenguaje
utilizado para escribir programas por
computadora, es decir, un lenguaje de
pseudoprogramación. El pseudocódigo se
concibió para superar las dos principales
limitaciones de los lenguajes algorítmicos
gráficos: son lentos de crear y difíciles de
modificar sin un nuevo dibujo. Por otra
parte, el pseudocódigo es más fácil de
utilizar ya que es similar al nuestro, es una
mezcla de lenguaje natural y símbolos,
términos y otras características utilizadas
en lenguajes de alto nivel (palabras
reservadas).
Las principales características de los
pseudocódigos son:
1.
2.
3.
4.
5.
6.
Programación en Pseudocódigo
general en los diferentes lenguajes
de programación:
PSEUDOCÓDIGO, VARIABLES, INICIO, FIN,
LEE, ESCRIBE, IMPRIME, IF_THEN_ELSE,
CASE OF, FOR DO, WHILE DO REPEAT
UNTIL, ARRAY.
Deben iniciar con el nombre del
pseudocódigo, seguido de la declaración
de variables y luego el cuerpo del
pseudocódigo:
PSEUDOCÓDIGO nombre
DECLARACIONES DE VARIABLES
INICIO
\\ CUERPO DEL PSEUDOCÓDIGO
FIN
Ejemplo: Diseñar un pseudocódigo que lea
3 números, los sume e imprima su
resultado.
Utilizan
los
operadores
Aritméticos, Relacionales y Lógicos.
Los
nombres
de
sus
identificadores.
(variables, constantes, nombre del
pseudocódigo,
etc.),
deben
cumplir con las reglas para la
creación de los mismos.
Se pueden incluir comentarios
dentro del pseudocódigo para
hacerlo más entendible, utilizando
dos diagonales invertidas [\\].
Se debe dejar una indentación
(sangría o margen) en los bloques
de instrucciones.
Usa
ciertas
palabras
claves
(reservadas) utilizadas de modo
PT Bachiller en Informática
43
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
PSEUDOCÓDIGO sumatoria
VARIABLES
eN1, eN2, eN3, eSuma: Entero
INICIO
ESCRIBE ´Dame tres números:´
LEE eN1, eN2, eN3
eSuma = eN1 + eN2 + eN3
ESCRIBE ´El resultado de la suma es: ´,
eSuma
FIN
Prueba de Escritorio
Se denomina prueba de escritorio a la
acción de realizar paso a paso las
instrucciones escritas en el pseudocódigo
con datos reales y siguiendo tanto la
operación y acciones que se especificaron
así como anotando los resultados
obtenidos. Así nos aseguraremos que
nuestro pseudocódigo funciona a la
perfección,
esto
nos
facilitará
la
construcción del programa.
Estudio individual
Construcción de programa en
lenguaje de programación.
Competencia Lógica
Elaborar
algoritmos
estructura descrita.
siguiendo
la
El alumno:
•
•
Elaborará
un
algoritmo
para
determinar si un número es par.
Repetirá el algoritmo modificando el
valor del número inicial para probar su
funcionalidad.
Elaborado,
y
probado
nuestro
pseudocódigo, nos encontramos listos
para construir nuestro programa en el
lenguaje que se nos haya designado.
La diferencia es que ahora deberemos
codificar las instrucciones que anotamos
en el pseudocódigo de
Consulta con el docente
Competencia para la
Vida
Consultar con el P.S.A.
elaboración del ejercicio.
la
correcta
El alumno:
•
44
Consultará con el P.S.A. la correcta
elaboración del algoritmo.
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
acuerdo a la estructura, instrucciones,
operadores
tanto
lógicos
como
aritméticos que cada lenguaje de
programación
requiere
para
su
elaboración.
Compilación o Interpretes.
Compilador. Un compilador es un
programa que lee el código escrito en un
lenguaje (lenguaje origen), y lo traduce o
traduce en un programa equivalente
escrito en otro lenguaje (lenguaje
objetivo). Como una parte fundamental
de este proceso de traducción, el
compilador le hace notar al usuario la
presencia de errores en el código fuente
del programa.
Además el compilador de C++ al realizar
su tarea realiza una comprobación de
errores en el programa, es decir, revisa
que todo este en orden por ejemplo
variables y funciones bien definidas, revisa
todo lo referente a cuestiones sintácticas,
esta fuera del alcance del compilador que
por ejemplo el algoritmo utilizado en el
problema funcione bien.
La siguiente figura muestra los pasos para
tener un programa ejecutable desde el
código fuente.
El C++ es un lenguaje que utiliza un
compilador y su trabajo es el de llevar el
código fuente escrito en C++ a un
programa escrito en lenguaje máquina.
Un programa en código fuente es
compilado obteniendo un archivo parcial
(un objeto) que tiene extensión obj luego
el compilador invoca al linker que
convierte al archivo objeto en un
ejecutable con extensión exe que como ya
sabemos es un archivo que esta en
formato binario (ceros y unos) y que
puede funcionar por si solo.
PT Bachiller en Informática
45
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Diferencia
entre
Compilador
e
Intérprete. Los compiladores difieren de
los intérpretes en varios aspectos:
Un programa que ha sido compilado
puede correr por si solo, pues en el
proceso de compilación se lo transformo
en otro lenguaje (lenguaje máquina).
Interprete. Los interpretes en lugar de
producir un Lenguaje objetivo, como en
los compiladores, lo que hacen es realizar
la operación que debería realizar el
Lenguaje origen. Un intérprete lee el
código como esta escrito y luego lo
convierte en acciones, es decir, lo ejecuta
en ese instante.
Un intérprete traduce el programa cuando
lo lee, convirtiendo el código del
programa directamente en acciones.
La ventaja del intérprete es que dado
cualquier programa se puede interpretarlo
en cualquier plataforma
Existen lenguajes que utilizan un
Interprete, como por ejemplo JAVA, y su
interprete traduce en el instante mismo de
lectura, el código en lenguaje máquina
para que pueda ser ejecutado.
La
siguiente
figura
muestra
funcionamiento de un interprete.
46
el
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
(sistema operativo), en cambio el archivo
generado por el compilador solo funciona
en la plataforma en donde se lo ha
creado.
Pero por otro lado un archivo compilado
puede
ser
distribuido
fácilmente
conociendo la plataforma, mientras que
un archivo interpretado no funciona si no
se tiene el intérprete.
Hablando de la velocidad de ejecución una
archivo compilado es de 10 a 20 veces
más rápido que un archivo interpretado.
Así, según el lenguaje de programación
que se haya utilizado será compilado o
traducido en su respectivo software.
Ejecución del programa.
Ejecución y Verificación de errores:
introducir el programa en la memoria,
ejecutarlo y probar sus resultados,
corrigiendo los errores ya que los errores
detectados por compilados y traductores
son únicamente en su sintaxis y no en la
lógica del programa, en ocasiones, será
necesario realizar nuevamente pruebas de
escritorio que nos permitan localizar
dichos errores hasta su punto final de tal
forma que se obtenga la solución a su
problema.
Programación en Pseudocódigo
La documentación es estrictamente
necesaria una vez que nuestro programa
se encuentra listo para funcionar sin
nuestra intervención. Sin embargo, existe
la posibilidad de que se le requiera dar
mantenimiento y contando con la
documentación necesaria será más fácil
esta labor. La documentación deberá
contener toda la documentación que se
produjo desde su inicio hasta su
terminación.
-
Documento en el que se plasmó el
problema.
Diagrama de flujo.
Diseño de algoritmo.
Escritura
de
la
solución
en
pseudocódigo.
Prueba de escritorio.
Construcción de
programa en
lenguaje de programación (impresión
de nuestro programa).
Pruebas y documentación
Será necesario realizar pruebas con
diferentes datos para estar seguros del
correcto funcionamiento de nuestro
programa.
PT Bachiller en Informática
47
Informática
Colegio Nacional de Educación Profesional Técnica
- Resultados de la Ejecución del
programa.
- Listado de las pruebas realizadas.
Como se habrá notado, para resolver un
problema, existe una metodología, esto es
una secuencia de pasos que debes seguir
en el orden establecido, con objeto de
resolver el problema de la forma más
sencilla posible, y además, quede
implementado de tal forma que pueda ser
utilizado por cualquier persona que tenga
la necesidad de acceder a éste ya sea por
conocimiento o porque sea necesario
darle mantenimiento.
1.2.2 Elementos de programas.
Datos
Programación en Pseudocódigo
¾ Datos Alfanuméricos (String): Es una
secuencia de caracteres alfanuméricos que
permiten representar valores identificables
de forma descriptiva, esto incluye
nombres de personas, direcciones, etc. Es
posible representar números como
alfanuméricos, pero estos pierden su
propiedad matemática, es decir no es
posible hacer operaciones con ellos. Este
tipo de datos se representan encerrados
entre comillas.
Estructurados (definidos por el usuario):
¾
¾
¾
¾
Arreglos (vectores, matrices).
Registros
Archivos
Apuntadores
Un dato puede ser un simple carácter, tal
como ‘b’, un valor entero tal como 35. El
tipo de dato determina la naturaleza del
conjunto de valores que puede tomar una
variable.
Tipos de Datos
¾ Datos
Numéricos:
Permiten
representar valores escalares de forma
numérica, esto incluye a los números
enteros y los reales. Este tipo de datos
permiten realizar operaciones aritméticas
comunes.
¾ Datos Lógicos: Son aquellos que solo
pueden tener dos valores (cierto o falso)
ya que representan el resultado de una
comparación entre otros datos (numéricos
o alfanuméricos).
48
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Constantes y Variables.
¾ Constante: Una constante es un dato
numérico o alfanumérico que no
cambia durante la ejecución del
programa.
Ejemplo: pi = 3.1416
¾ Variable: Es un espacio en la memoria
de la computadora que permite
almacenar temporalmente un dato
durante la ejecución de un proceso, su
contenido puede cambia durante la
ejecución del programa. Para poder
reconocer una variable en la memoria
de la computadora, es necesario darle
un nombre con el cual podamos
identificarla dentro de un algoritmo.
Ejemplo: área = pi * radio ^ 2
Programación en Pseudocódigo
¾ Variables
Alfanuméricas:
Esta
formada por caracteres alfanuméricos
(letras, números y caracteres especiales).
Ejemplo:
letra=’a’
apellido=’lopez’
direccion=’Av. Libertad #190’
Por su Uso
¾ Variables de Trabajo: Variables que
reciben el resultado de una operación
matemática completa y que se usan
normalmente dentro de un programa.
Ejemplo: suma=a+b/c
¾ Contadores: Se utilizan para llevar el
control del numero de ocasiones en que
se realiza una operación o se cumple una
condición.
Las variables son : el radio, el área y la
constate es pi
Clasificación de las variables.
Por su contenido:
¾ Variable Numéricas: Son aquellas en
las
cuales
se
almacenan
valores
numéricos, positivos o negativos, es decir
almacenan números del 0 al 9, signos (+ y
-) y el punto decimal. Ejemplo:
iva=0.15
pi=3.1416 costo=2500
¾ Variables Lógicas: Son aquellas que
solo pueden tener dos valores (cierto o
falso) estos representan el resultado de
una comparación entre otros datos.
PT Bachiller en Informática
49
Informática
Colegio Nacional de Educación Profesional Técnica
Con los incrementos generalmente de uno
en uno.
¾ Acumuladores: Forma que toma una
variable y que sirve para llevar la suma
acumulativa de una serie de valores que se
van
leyendo
o
calculando
progresivamente.
Operadores
Son elementos que relacionan de forma
diferente, los valores de una o mas
variables y/o constantes. Es decir, los
operadores nos permiten manipular
valores.
¾ Operadores
Aritméticos:
Los
operadores aritméticos permiten la
realización de operaciones matemáticas
con los valores (variables y constantes).
Los operadores aritméticos pueden ser
utilizados con tipos de datos enteros o
reales. Si ambos son enteros, el resultado
es entero; si alguno de ellos es real, el
resultado es real.
Programación en Pseudocódigo
Prioridad
de
los
Operadores
Aritméticos.
Todas las expresiones entre paréntesis se
evalúan primero. Las expresiones con
paréntesis anidados se evalúan de dentro
a fuera, el paréntesis mas interno se
evalúa primero.
Dentro de una misma expresión los
operadores se evalúan en el siguiente
orden.
1.- ^ Exponenciación
2.- *, /, mod Multiplicación,
división, modulo.
3.- +, - Suma y resta.
Los operadores en una misma expresión
con igual nivel de prioridad se evalúan de
izquierda a derecha.
Ejemplos:
4 + 2 * 5 = 14
Operadores Aritméticos
+
Suma
Resta
*
Multiplicación
/
División
^
Exponenciación
Mod Residuo de la división entera
Ejemplos:
Expresión Resultado
7/2
3.5
12 mod 7 5
4 +2*5
14
50
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
23 * 2 / 5 = 9.2
46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 +
20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09
3.5 + 5.09 - 3.5 = 8.59 - 3.5
= 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98
2.1 * (1.5 + 12.3) = 2.1 * 13.8
= 28.98
Programación en Pseudocódigo
d) ¿Qué valor imprime la última
instrucción?
Consulta con el docente
Competencia para la
Vida
Consultar con el P. S. A. para confirmar el
resultado del ejercicio.
Realización del ejercicio
El alumno:
Competencia Analítica.
Aplicar el uso de operadores aritméticos
en la elaboración de algoritmos.
•
Mostrará la solución del ejercicio al
docente para la confirmación del
resultado.
El alumno:
•
Observará la siguiente secuencia de
instrucciones:
1.
A=5
2.
B=7
3.
C=2
4.
A=A+B+C
5.
B=C/2
6.
A=A/B+A^C
7.
Imprimir(A)
•
Responderá las siguientes cuestiones:
a) ¿Qué valor contiene A después de
la cuarta instrucción?
b) ¿Qué valor contiene B después de
la quinta instrucción?
c) ¿Qué valor contiene A después de
la sexta instrucción?
PT Bachiller en Informática
51
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
¾ Operadores Relaciónales:
ƒ
ƒ
ƒ
ƒ
ƒ
Competencia Lógica
Se utilizan para establecer una
relación entre dos valores.
Compara estos valores entre si y
esta comparación produce un
resultado de certeza o falsedad
(verdadero o falso).
Los
operadores
relaciónales
comparan valores del mismo tipo
(numéricos o cadenas)
Tienen el mismo nivel de prioridad
en su evaluación.
Los operadores relaciónales tiene
menor
prioridad
que
los
aritméticos.
Operadores Relaciónales
>
Mayor que
<
Menor que
> = Mayor o igual que
< = Menor o igual que
< > Diferente
=
Igual
Ejemplos:
Si a = 10
b = 20
Aplicar el uso de operadores de relación
en la elaboración de algoritmos.
El alumno:
•
Analizará la siguiente secuencia de
instrucciones:
1. A = 5
2. B = 7
3. C = 1
4. D = (A == B)
5. E = (A <> B)
6. F = (MOD(B/A) >= C)
•
Responderá las siguientes cuestiones:
a) ¿Qué valor contiene D después de
la cuarta instrucción?
c = 30
a + b > c Falso
a-b<c
Verdadero
a-b=c
Falso
a * b < > c Verdadero
Ejemplos no lógicos:
a<b<c
10 < 20 < 30
T < 30 (no es lógico porque
tiene diferentes operandos)
Realización del ejercicio
52
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
b) ¿Qué valor contiene E después de
la quinta instrucción?
c) ¿Qué valor contiene F después de la
sexta instrucción?
d) ¿Cuánto valen A, B y C después de
la última instrucción?
Consulta con el docente
Competencia para la
Vida
Consultar con el P. S. A. para confirmar el
resultado del ejercicio.
do 1
T
T
F
F
Programación en Pseudocódigo
dor
do 2
AND
T
T
F
F
T
F
F
F
Operador Or
Operando 1
T
T
F
F
Opera
dor
OR
Operando 2
T
F
T
F
Resultado
T
T
T
F
Operador Not
Operando Resultado
T
F
F
T
El alumno:
•
Mostrará la solución del ejercicio al
docente para la confirmación del
resultado.
¾ Operadores Lógicos:
Estos operadores se utilizan para
establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una
expresión relacional.
Operadores Lógicos
And Y
Or
O
Not Negación
Operador And
Operan-
Opera
Operan-
Resultado
PT Bachiller en Informática
53
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Ejemplos:
(a < b) and (b < c)
(10<20) and (20<30)
T and
T
T
Prioridad de los Operadores Lógicos
Not
And
Or
Prioridad de los Operadores en General
1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or
Estructuras básicas de control.
.
AccionN
Fin
Asignación: La asignación consiste, en el
paso de valores o resultados a una zona
de la memoria. Dicha zona será
reconocida con el nombre de la variable
que recibe el valor. La asignación se puede
clasificar de la siguiente forma:
-
Simples: Consiste en pasar un valor
constate a una variable (a=15).
-
Contador: Consiste en usarla como
un verificador del numero de veces
que se realiza un proceso (a=a+1).
-
Acumulador: Consiste en usarla
como un sumador en un proceso
(a=a+b).
Las
estructuras
de
operación
de
programas son un grupo de formas de
trabajo, que permiten, mediante la
manipulación de variables, realizar ciertos
procesos específicos que nos lleven a la
solución de problemas.
Estructura secuencial
La estructura secuencial es aquella en la
que una acción (instrucción) sigue a otra
en secuencia. Las tareas se suceden de tal
modo que la salida de una es la entrada
de la siguiente y así sucesivamente hasta
el fin del proceso. Una estructura
secuencial se representa de la siguiente
forma:
Inicio
Accion1
Accion2
.
54
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
-
De trabajo: Donde puede recibir el
resultado
de
una
operación
matemática que involucre muchas
variables (a=c+b*2/4).
Programación en Pseudocódigo
El alumno:
•
•
Lectura: La lectura consiste en recibir
desde un dispositivo de entrada (p.ej. el
teclado) un valor. Esta operación se
representa en un pseudocodigo como
sigue:
Leer a, b
Donde “a” y “b” son las variables
que recibirán los valores
Escritura: Consiste en mandar por un
dispositivo de salida (p.ej. monitor o
impresora) un resultado o mensaje. Este
proceso
se
representa
en
un
pseudocodigo como sigue:
Elaborará un diagrama de flujo de sus
actividades
diarias
usando
una
estructura secuencial.
Elaborará el algoritmo correspondiente
al diagrama de flujo realizado.
Estructura condicional
Las estructuras condicionales comparan
una variable contra otro(s) valor(es), para
que en base al resultado de esta
comparación, se siga un curso de acción
dentro del programa. Cabe mencionar que
la comparación se puede hacer contra otra
variable o contra una constante, según se
necesite. Existen dos tipos básicos, las
simples y las múltiples.
Simples: Las estructuras condicionales
simples se les conocen como “Tomas de
decisión”.
Escribe “El resultado es:”, R
Donde “El resultado es:” es un mensaje
que se desea aparezca y R es una variable
que contiene un valor.
Realización del ejercicio
Competencia Lógica
Diseñar una estructura secuencial.
PT Bachiller en Informática
55
Informática
Colegio Nacional de Educación Profesional Técnica
Estas tomas de decisión tienen la
siguiente forma:
Si <condición> entonces
Acción(es)
Fin-si
Dobles: Las estructuras condicionales
dobles permiten elegir entre dos
opciones o alternativas posibles en
función del cumplimiento o no de una
determinada condición. Se representa
de la siguiente forma:
Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si
Programación en Pseudocódigo
Si <condición> entonces
Acción(es)
si no
Si <condición> entonces
Acción(es)
si no
.
.
Varias condiciones
.
Forma General
Casos Variable
Op1: Acción(es)
Op2: Acción(es)
.
.
OpN: acción
Fin-casos
Donde:
Si ……Indica el comando de comparación.
Condición… Indica la condición a evaluar.
entonces… Precede a las acciones a
realizar cuando se cumple la condición.
Acción(es)… Son las acciones a realizar
cuando se cumple o no la condición.
si no………Precede a las acciones a
realizar cuando no se cumple la condición.
Dependiendo de si la comparación es
cierta o falsa, se pueden realizar una o
mas acciones.
Múltiples: Las estructuras de comparación
múltiples, son tomas de decisión
especializadas que permiten comparar una
variable
contra
distintos
posibles
resultados, ejecutando para cada caso una
serie de instrucciones específicas. La forma
común es la siguiente:
56
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Realización del ejercicio
Competencia Lógica
Diseñará una estructura condicional.
El alumno:
•
•
Programación en Pseudocódigo
Accion1
Vc = LS V
Accion2
vc=vc+1
.
F
.
AccionN
Cuerpo del ciclo
Fin-para
Elaborará un diagrama de flujo que
contenga sus actividades diarias
incluyendo
aquellas
que
estén
condicionadas.
Elaborará el correspondiente algoritmo
para
mostrar
las
estructuras
condicionales.
Estructura repetitiva.
Se llaman problemas repetitivos o cíclicos
a aquellos en cuya solución es necesario
utilizar un mismo conjunto de acciones
que se puedan ejecutar una cantidad
específica de veces. Esta cantidad puede
ser fija (previamente determinada por el
programador) o puede ser variable (estar
en función de algún dato dentro del
programa).Los ciclos se clasifican en:
Ciclos
Determinado
Para)
con
un
Número
de Iteraciones (Hacer-
Son aquellos en que el número de
iteraciones se conoce antes de ejecutarse
el ciclo. La forma de esta estructura es la
siguiente:
Hacer para V.C = L.I a L.S
VC=LI
PT Bachiller en Informática
57
Informática
Colegio Nacional de Educación Profesional Técnica
VC=LI
vc=vc+
1
V
Vc= LS
F
CUERPO DEL CICLO
Programación en Pseudocódigo
que debe contener un programa, claro
está, todo depende del problema que
queremos resolver, es el tipo de datos
que usamos, las constantes, variables,
operadores y estructura de datos que
usamos, poco a poco desarrollará las
habilidades necesarias para definir lo que
se necesita, esto es,
desarrollará su
propia lógica.
1.2.3 Estructura de Datos
Donde:
V.C
L.I
L.S
Arreglos
Variable de control del ciclo
Limite inferir
Limite superior
En este ciclo la variable de control toma el
valor inicial del ciclo y el ciclo se repite
hasta que la variable de control llegue al
limite superior.
Un Arreglo es una estructura de datos que
almacena bajo el mismo nombre (variable)
a una colección de datos del mismo tipo.
Los arreglos se caracterizan por:
-
Almacenan
los
elementos
en
posiciones contiguas de memoria
Realización del ejercicio
Competencia Lógica
Diseñar una estructura repetitiva.
El alumno:
•
•
En base al diagrama de flujo y el
algoritmo antes diseñado.
Estructurará el algoritmo de tal forma
que contenga una o varias estructuras
repetitivas incluyendo actividades de
su vida diaria que así lo requieran.
En esta sección del manual, se pudo
apreciar cuales son los elementos básicos
58
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Fin-para
Tienen un mismo nombre de variable
que
representa
a
todos
los
elementos.
-
Hacer mientras I <= 10
Leer vec[I]
Fin-mientras
Para hacer referencia a esos elementos es
necesario utilizar un índice que especifica
el lugar que ocupa cada elemento dentro
del archivo.
-
I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10
-
Tipo de
Arreglos
Unidimensionales (Vectores)
Bidimensionales (Matrices)
Realización del ejercicio
Vectores y Matrices
Vectores. Es un arreglo de “N” elementos
organizados en una dimensión donde “N”
recibe el nombre de longitud o tamaño
del vector.
Para hacer referencia a un elemento del
vector se usa el nombre del mismo,
seguido del índice (entre corchetes), el
cual indica una posición en particular del
vector. Por ejemplo:
0
9
21 -1 8
5 -9 15 7
6 -4 33
Vec[x]
Competencia Lógica
Aplicar el concepto de vectores.
El alumno:
•
•
•
Elaborará un pseudocódigo para:
Almacenar 20 números en un vector.
Elevará al cuadrado cada valor
almacenado en el vector.
Almacenará el resultado en otro
vector. Imprimir el vector original y el
vector resultante.
Consulta con el docente
Donde:
Vec………… Nombre del arreglo
x…………… Numero de datos que
constituyen el arreglo
Llenado de un Vector
-
Hacer para I = 1 a 10
Leer vec[I]
Competencia para la
Vida
Solicitar asesoría del docente.
El alumno:
PT Bachiller en Informática
59
Informática
Colegio Nacional de Educación Profesional Técnica
•
Consultará con el P. S. A. la correcta
elaboración del ejercicio.
Matrices. Es un arreglo de M * N
elementos
organizados
en
dos
dimensiones donde “M” es el numero de
filas o reglones y “N” el numero de
columnas.
Representación gráfica de una matriz
Mat [R,C]
1, 1, 1, 1,4
Fila o
1
2
3
Renglon
2, 2, 2, 2.4
[R]
1
2
3
3, 3, 3, 3,4
1
2
3
4, 4, 4, 4,4
1
2
3
Columna
[C]
Para representar una matriz se necesita un
nombre de matriz se necesita un nombre
de matriz acompañado de dos índices.
Mat [R,C]
Donde R indica el renglón y C indica la
columna, donde se encuentra almacenado
el dato.
Llenado de una matriz
-
60
Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Por columnas
Hacer para C = 1 a 5
Programación en Pseudocódigo
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz
se deben de usar dos variables para los
índices y se utilizan 2 ciclos uno para los
renglones y otro para las columnas; a
estos ciclos se les llama ciclos anidados
(un ciclo dentro de otro ciclo).
Pilas y Colas
Las pilas y las colas son dos de las
estructuras de datos más utilizadas. Se
trata de dos casos particulares de las
estructuras lineales generales (secuencias
o listas) que, debido a su amplio ámbito
de aplicación, conviene ser estudiadas de
manera independiente.
Pilas. La pila es una lista de elementos
caracterizada porque las operaciones de
inserción y eliminación se realizan
solamente en un extremo de la estructura.
El extremo donde se realizan estas
operaciones se denomina habitualmente
'cima' (top en nomenclatura inglesa).
Un ejemplo típico de pila lo constituye un
montón de platos, cuando se quiere
introducir un nuevo plato, éste se pone en
la posición más accesible, encima del
último plato. Cuando se coge un nuevo
plato, éste se extrae, igualmente, del
punto más accesible, el último que se ha
introducido.
Dada una pila P=(a,b,c,...k), se dice que a,
que es el elemento más inaccesible de la
pila, está en el fondo de la pila (bottom) y
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
que k, por el contrario, el más accesible,
está en la cima.
Las restricciones definidas para la pila
implican que si una serie de elementos
A,B,C,D,E se añaden, en este orden a una
pila, entonces el primer elemento que se
borre de la estructura deberá ser el E. Por
tanto, resulta que el último elemento que
se inserta en una pila es el primero que se
borra. Por esta razón, se dice que una pila
es una lista LIFO (Last In First Out, es decir,
el último que entra es el primero que sale
en español última entrada primera salida).
Como en cualquier estructura de datos,
asociadas con la estructura pila existen
una serie de operaciones necesarias para
su manipulación, éstas son:
- Crear la pila.
PT Bachiller en Informática
61
Informática
Colegio Nacional de Educación Profesional Técnica
-
-
Comprobar si la pila está vacía. Es
necesaria para saber si es posible
eliminar elementos.
Acceder al elemento situado en la
cima.
Añadir elementos a la cima.
Eliminar elementos de la cima.
La especificación correcta de todas estas
operaciones
permitirá
definir
adecuadamente una pila.
La forma más simple, y habitual, de
representar una pila es mediante un
vector unidimensional. Este tipo de datos
permite definir una secuencia de
elementos (de cualquier tipo) y posee un
eficiente mecanismo de acceso a la
información contenida en él.
Al definir un array (arreglo) hay que
determinar el número de índices válidos y,
por lo tanto, el número de componentes
definidos. Entonces, la estructura pila
representada por un array (arreglo)
tendrá limitado el número de posibles
elementos.
Se puede definir una pila como una
variable:
Programación en Pseudocódigo
sucesivamente. En general, el elemento iúltimo estará almacenado en Pila[i].
Como todas las operaciones se realizan
sobre la cima de la pila, es necesario tener
correctamente localizada en todo instante
esta posición. Es necesaria una variable,
cima, que apunte al último elemento
(ocupado) de la pila.
Colas:
Las colas son secuencias de
elementos caracterizadas porque las
operaciones de inserción y borrado se
realizan sobre extremos opuestos de la
secuencia. La inserción se produce en el
"final" de la secuencia, mientras que el
borrado se realiza en el otro extremo, el
"inicio" de la secuencia.
Las restricciones definidas para una cola
hacen que el primer elemento que se
inserta en ella sea, igualmente, el primero
en ser extraído de la estructura.
Pila: array [1..n] de T
donde T es el tipo que representa la
información contenida en la pila (enteros,
registros, etc.)
El primer elemento de la pila se
almacenará en Pila[1], será el fondo de la
pila, el segundo elemento en Pila[2] y así
62
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Si una serie de elementos A, B, C, D, E se
insertan en una cola en ese mismo orden,
entonces los elementos irán saliendo de la
cola en el orden en que entraron. Por esa
razón, en ocasiones, las colas se conocen
con el nombre de listas FIFO (First In First
Out, el primero que entra es el primero
que sale).
Las colas, al igual que las pilas, resultan de
aplicación habitual en muchos problemas
informáticos. Quizás la aplicación más
común de las colas es la organización de
tareas de un ordenador. En general, los
trabajos enviados a un ordenador son
"encolados" por éste, para ir procesando
secuencialmente todos los trabajos en el
mismo orden en que se reciben. Cuando el
ordenador recibe el encargo de realizar
una tarea, ésta es almacenada al final de
la cola de trabajos.
-
-
Crear una cola vacía.
Determinar si la cola está vacía, en
cuyo caso no es posible eliminar
elementos.
Acceder al elemento inicial de la cola.
Insertar elementos al final de la cola.
Eliminar elementos al inicio de la
cola.
Para determinar correctamente cada una
de estas operaciones, es necesario
especificar un tipo de representación para
las colas.
La representación de una cola finita en
forma de vector es una tarea algo más
compleja que la realizada para el caso
En el momento que la tarea que estaba
realizando el procesador acaba, éste
selecciona la tarea situada al principio de
la cola para ser ejecutada a continuación.
Todo esto suponiendo la ausencia de
prioridades en los trabajos. En caso
contrario, existirá una cola para cada
prioridad. Del mismo modo, es necesaria
una cola, por ejemplo, a la hora de
gestionar eficientemente los trabajos que
deben ser enviados a una impresora (o a
casi cualquier dispositivo conectado a un
ordenador). De esta manera, el ordenador
controla el envío de trabajos al dispositivo,
no enviando un trabajo hasta que la
impresora no termine con el anterior.
Análogamente a las pilas, es necesario
definir el conjunto de operaciones básicas
para especificar adecuadamente una
estructura cola. Estas operaciones serían:
PT Bachiller en Informática
63
Informática
Colegio Nacional de Educación Profesional Técnica
de las pilas. Además de un array
unidimensional, son necesarias un par de
variables que indiquen dónde está el inicio
de la cola y dónde el final.
Hay diferentes formas de implementar las
operaciones relacionadas con colas pero
una de las más eficientes es representar el
array Cola[1..n] como si fuese circular, es
decir, cuando se dé la condición de cola
llena se podrá continuar por el principio
de la misma si esas posiciones no están
ocupadas.
Redacción de trabajo
Competencia
emprendedora
Confirmar los conceptos de pilas y colas,
sus usos y diferencia en las estructuras de
datos.
Programación en Pseudocódigo
tipo determinado (que por lo general
denominaremos T). A menudo se
representa una lista como una sucesión de
elementos separados por comas:
a(1), a(2), a(3), ... , a(n)
donde a "n" (n >= 0) se le llama longitud
de la lista. Al suponer n>=1, se dice que
a(1) es el primer elemento de la lista y a(n)
el último elemento. Si n=0, se tiene una
lista vacía.
Una propiedad importante de una lista es
que sus elementos pueden estar
ordenados en forma lineal de acuerdo con
sus posiciones en la lista. Se dice que a(i)
precede a a(i+1), para i=1,2, .., n-1, y que
a(i) sucede a a(i-1), para i=2, 3, .., n.
También se dice que el elemento a(i) está
en la posición i de la lista.
El alumno:
•
Redactará un trabajo donde se plasme los
concepto
de
pilas
y
colas,
las
características y diferencias entre cada
una.
Listas
Las listas son secuencias de elementos,
donde estos elementos pueden ser
accedidos, insertados o suprimidos en
cualquier posición de la lista. No existe
restricción alguna acerca de la localización
de esas operaciones. Se trata de
estructuras muy flexibles puesto que
pueden crecer o acotarse como se quiera.
Matemáticamente, una lista es una
secuencia de cero o más elementos de un
64
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Por lo que podemos ver, las estructuras
pila y cola, estudiadas en el capítulo
anterior, no son más que casos
particulares de la estructura lista
generalizada. Al igual que en los casos
anteriores, se puede pensar en representar
una
lista
mediante
un
array
unidimensional, lo que permite un acceso
eficiente a cada uno de los componentes
de la estructura, lo que, en principio,
parece
proporcionar
un
esquema
adecuado
para
representar
las
operaciones que normalmente se desean
realizar sobre la lista: acceder a un
elemento (nodo) arbitrario de la lista,
insertar y borrar nodos, etc. Sin embargo,
si bien todas estas consideraciones eran
ciertas para las pilas y las colas, cuando se
trata de otro tipo de listas, las operaciones
a realizar sobre el array resultan bastante
más costosas. Por ejemplo, supongamos la
siguiente lista:
Programación en Pseudocódigo
para de esta forma dejar una posición
libre en el array y poder insertar allí el
nuevo valor. Por otro lado, si suponemos
que lo que se desea es borrar de la lista el
elemento
'Carlos', de nuevo es
necesario desplazar elementos para
mantener la estructura secuencial de la
lista. En este caso es preciso mover una
posición hacia la izquierda todos los
elementos situados a partir de la cuarta
posición.
Cuando el problema es manipular
diferentes listas de tamaño variable, la
representación secuencial prueba ser, de
nuevo, poco apropiada. Si se decide
almacenar en distintos arrays cada una de
las listas, se tendrán grandes necesidades
de almacenamiento. Si, por el contrario, se
toma la decisión de
(Antonio,
Bartolomé,
Carlos, David, Emilio,
Germán, Jaime, José,
Luis, Manuel)
Si se desea añadir el valor 'Fernando' a
esta lista ordenada de nombres, la
operación se debe realizar en la sexta
posición de la lista, entre los valores
'Emilio' y 'Germán'. Cuando la lista está
representada con un array, dicha inserción
implicará tener que desplazar una
posición hacia la derecha todos los
elementos situados ya en la lista a partir
de la posición seis (Germán,...Manuel),
PT Bachiller en Informática
65
Informática
Colegio Nacional de Educación Profesional Técnica
usar un único array, se necesitará una
cantidad
mucho
mayor
de
desplazamientos de información.
Una solución elegante al problema del
desplazamiento de información en el
almacenamiento secuencial se logra
mediante
la
utilización
de
representaciones enlazadas (o ligadas). A
diferencia de la representación secuencial,
en la representación enlazada los
elementos se pueden situar en cualquier
posición de memoria, y no necesariamente
igualmente distantes dentro de ella.
También se puede decir que, si bien en la
representación con arrays el orden de los
elementos es el mismo que el orden en la
lista, en una representación enlazada la
secuencia de orden de la lista no tiene
porque coincidir con la secuencia de
almacenamiento en memoria.
Realización del ejercicio
Programación en Pseudocódigo
distingue del resto como raíz, junto con
una relación que impone una estructura
jerárquica entre los nodos. Formalmente,
un árbol se puede definir de manera
recursiva como sigue:
Definición: una estructura de árbol con
tipo base T es:
(i) Bien la estructura vacía.
(ii) Un conjunto finito de uno o más
nodos, tal que existe un nodo especial,
llamado nodo raiz, y donde los restantes
nodos están separados en n >= 0
conjuntos disjuntos, cada uno de los
cuales es a su vez un árbol (llamados
subárboles del nodo raíz).
La definición implica que cada nodo del
árbol es raíz de algún subárbol contenido
en el árbol principal. El índice de un libro
es un buen ejemplo
Competencia Lógica
Identificar el
elementos.
concepto
de
listas
de
El alumno:
•
Elaborará un vector que contenga una lista
de sus mejores amigos, la cual deberá
estar ordenada alfabéticamente.
Árboles
Un árbol es una colección de elementos
llamados nodos, uno de los cuales se
66
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
de representación en forma de árbol.
Ejemplos de estructuras arborescentes:
•
•
Programación en Pseudocódigo
Longitud de camino de un árbol:
suma de las longitudes de los
caminos a todos sus componentes.
Bosque: conjunto de n >= 0
árboles disjuntos.
Árbol Simple
Términos importantes asociados con el
concepto de árbol
•
•
•
•
•
•
•
•
•
•
Grado de un nodo: es el número de
subárboles que tienen como raíz
ese nodo (cuelgan del nodo).
Nodo terminal u hoja: nodo con
grado 0. No tiene subárboles.
Grado de un árbol: grado máximo
de los nodos de un árbol.
Hijos de un nodo: nodos que
dependen directamente de ese
nodo, es decir, las raíces de sus
subárboles.
Padre de un nodo: antecesor
directo de un nodo del cual
depende directamente.
Nodos hermanos: nodos hijos del
mismo nodo padre.
Camino: sucesión de nodos del
árbol: n(1), n(2), .. n(k), tal que n(i)
es el padre de n(i+1).
Antecesores de un nodo: todos los
nodos en el camino desde la raíz
del árbol hasta ese nodo.
Nivel de un nodo: longitud del
camino desde la raíz hasta el nodo.
El nodo raíz tiene nivel 1.
Altura o profundidad de un árbol:
nivel máximo de un nodo en un
árbol.
La representación de un árbol simple
dependerá de su grado, es decir, del
número de relaciones máximo que puede
tener un nodo del árbol. Resulta más
simple la representación y manipulación
de una estructura árbol cuando el grado
de éste es fijo e invariable.
Árbol Binario
Los árboles binarios constituyen un tipo
particular de árboles de gran aplicación.
Estos árboles se caracterizan porque no
existen nodos
PT Bachiller en Informática
67
Informática
Colegio Nacional de Educación Profesional Técnica
con grado mayor a dos, es decir, un
nodo tendrá como máximo dos
subárboles. Definición: un árbol binario
es un conjunto finito de nodos que
puede estar vacío o consistir en un nodo
raíz y dos árboles binarios disjuntos,
llamados subárbol izquierdo y subárbol
derecho.
En general, en un árbol no se distingue
entre los subárboles de un nodo,
mientras que en un árbol binario se
suele utilizar la nomenclatura subárbol
izquierdo y derecho para identificar los
dos posibles subárboles de un nodo
determinado. De forma que, aunque dos
árboles tengan el mismo número de
nodos, puede que no sean iguales si la
disposición de esos nodos no es la
misma:
Programación en Pseudocódigo
Lema 2: para cualquier árbol binario no
vacío, si m es el número de nodos
terminales y n es el número de nodos de
grado dos, entonces se cumple que m = n
+ 1.
Igualmente, para poder entender alguna
de las formas de representación de los
árboles binarios, vamos a introducir dos
nuevos conceptos, lo que se entiende por
árbol binario lleno y por árbol binario
completo.
Definición: se dice que un árbol binario
está lleno si es un árbol binario de
profundidad k que tiene (2^k) - 1 nodos.
Un árbol binario lleno es aquel que
contiene el número máximo de posibles
nodos. Como en estos casos no existen
subárboles vacíos excepto para los nodos
terminales, es posible realizar una
representación secuencial eficiente de este
tipo de árboles. Esta representación suele
implicar la
Antes de pasar a la representación de los
árboles binarios, vamos a hacer algunas
observaciones relevantes acerca del
número y características de los nodos en
este tipo de árboles.
Lema 1: el número máximo de nodos en el
nivel i de un árbol binario es 2^(i-1), con i
>= 1, y el número máximo de nodos en
un árbol binario de altura k es (2^k) - 1,
con k >= 1.
68
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
numeración de los nodos. La numeración
se realiza por niveles y de izquierda a
derecha. Este proceso de numeración
(etiquetado) de los nodos permite una
identificación elegante de las relaciones de
parentesco entre los nodos del árbol y se
verá más adelante.
Definición: un árbol binario con n nodos y
profundidad k se dice que es completo si y
sólo si sus nodos se corresponden con los
nodos numerados de 1 a n en el árbol
binario lleno de profundidad k.
Cuando un árbol no es lleno pero es
completo,
también
es
posible
la
representación secuencial eficiente de la
estructura de nodos que lo componen.
Representación de los árboles binarios.
Como hemos visto, si el árbol binario que
se
desea
representar
cumpla
las
condiciones de árbol lleno o árbol
completo, es posible encontrar una buena
representación secuencial del mismo. En
esos casos, los nodos pueden ser
almacenados en un array unidimensional,
A, de manera que el nodo numerado
como i se almacena en A[i]. Esto permite
localizar fácilmente las posiciones de los
nodos padre, hizo izquierdo e hijo
derecho de cualquier nodo i en un árbol
binario arbitrario que cumpla tales
condiciones.
Programación en Pseudocódigo
si i <> 1. Si i=1, se trata del nodo raíz
y no tiene padre.
(2) El hijo izquierdo del nodo estará
localizado en la posición [2i]
si 2i <= n. Si 2i>n, el nodo no tiene
hijo izquierdo.
(3) El hijo derecho del nodo estará
localizado en la posición [2i+1] si
2i+1 <= n. Si (2i+1) > n, el nodo no
tiene hijo derecho.
Evidentemente,
la
representación
puramente secuencial de un árbol se
podría
extender
inmediatamente
a
cualquier árbol binario, pero esto
implicaría, en la mayoría de los casos,
desaprovechar gran cantidad del espacio
reservado en memoria para el array.
Lema 3: si un árbol binario completo con
n nodos se representa secuencialmente, se
cumple que para cualquier nodo con
índice i, entre 1 y n, se tiene que:
(1) El padre del nodo i estará localizado
en la posición [i div 2]
PT Bachiller en Informática
69
Informática
Colegio Nacional de Educación Profesional Técnica
Así, aunque para árboles binarios
completos la representación es ideal y no
se desaprovecha espacio, en el peor de los
casos para un árbol lineal (una lista) de
profundidad k, se necesitaría espacio para
representar (2^k) - 1 nodos, y sólo k de
esas
posiciones
estarían
realmente
ocupadas.
Programación en Pseudocódigo
donde se almacenan los respectivos hijos
del nodo. Ejemplo:
Además de los problemas de eficiencia
desde
el
punto
de
vista
del
almacenamiento en memoria, hay que
tener en cuenta los problemas generales
de
manipulación
de
estructuras
secuenciales. Las operaciones de inserción
y borrado de elementos en cualquier
posición
del
array
implican
necesariamente el movimiento potencial
de muchos nodos. Estos problemas se
pueden
solventar
adecuadamente
mediante
la
utilización
de
una
representación enlazada de los nodos.
Representación enlazada
Se podría simular una estructura de
enlaces, como la utilizada para las listas,
mediante un array. En ese caso, los
campos de enlace de unos nodos con
otros no serían más que índices dentro del
rango válido definido para el array. La
estructura de esa representación enlazada
pero ubicada secuencialmente en la
memoria correspondería al siguiente
esquema para cada nodo:
información
hijo
izquierdo
Hijo derecho
donde el campo informacion guarda toda
la información asociada con el nodo y los
campos hijo izquierdo e hijo derecho
guardan la posición dentro del array
70
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Los problemas de esta representación
están asociados con la manipulación de la
misma. En el caso de la inserción de
nuevos nodos, el único problema que
puede aparecer es que se supere el
espacio reservado para el array, en cuyo
caso no se podrán insertar más nodos. Sin
embargo, la operación de borrado implica
mayores problemas de manipulación. Al
poder borrar cualquier nodo del árbol, se
van a dejar "huecos" en la estructura
secuencial del array, esto se podría
solucionar, como siempre, mediante el
desplazamiento de elementos dentro del
vector.
Sin embargo, si de por sí esa operación no
resulta recomendable, en este caso mucho
menos, ya que implica a su vez modificar
los enlaces que hayan podido variar con el
desplazamiento. Otra solución, podría
consistir en almacenar las posiciones del
array que están libres y que se pueden
ocupar en la inserción de nodos. Esto
podría resultar más eficiente, pues no
implica el desplazamiento de información,
pero requiere de la utilización de otra
estructura de datos auxiliar que maneje
esa información.
La mejor solución, de nuevo, para evitar
los
problemas
asociados
con
la
manipulación
de
arrays,
es
la
representación de los árboles binarios
mediante estructuras dinámicas "puras",
en el sentido de la creación en tiempo de
ejecución de los nodos que sean
necesarios (no más) y la utilización de
punteros para enlazar estos nodos.
La estructura de cada nodo en esta
representación coincide con la estructura
de tres campos vista anteriormente. La
única diferencia reside en la naturaleza de
Programación en Pseudocódigo
los campos de enlace, en este caso se
trata de punteros y no de índices de un
array. La implementación en Pascal, sería:
Type
Valor = ??;
arbol = ^Nodo;
Nodo = record
Info:
Valor;
Izq,
Der:
arbol;
end;
Var
raiz: arbol;
Se
puede
comprobar
como
la
representación en memoria de la
estructura, en cuanto a definición de tipos
de datos, coincide exactamente
PT Bachiller en Informática
71
Informática
Colegio Nacional de Educación Profesional Técnica
con la de, por ejemplo, una lista
doblemente ligada, sin que ello implique
que se esté hablando de la misma
estructura de datos. De nuevo hay que
dejar muy claro que es la interpretación
que hacemos de la representación en
memoria la que define una estructura de
datos, no la representación en sí misma.
La representación enlazada tiene como
principal desventaja que no resulta
inmediato la determinación del padre de
un nodo. Es necesario buscar el camino de
acceso al nodo dentro del árbol para
poder obtener esa información. Sin
embargo, en la mayoría de las
aplicaciones es la representación más
adecuada. En el caso en que la
determinación del padre de un nodo sea
una operación importante y frecuente en
una aplicación concreta, se puede
modificar ligeramente la estructura de
cada nodo añadiendo un cuarto campo,
también de tipo enlace, que guarde la
posición del padre de cada nodo.
Programación en Pseudocódigo
árbol. Este orden puede ser útil en
determinadas ocasiones.
Cuando se recorre un árbol se desea tratar
cada nodo y cada subárbol de la misma
manera. Existen entonces seis posibles
formas de recorrer un árbol binario.
(1) nodo - subárbol izquierdo - subárbol
derecho
(2) subárbol izquierdo - nodo - subárbol
derecho
(3) subárbol izquierdo - subárbol derecho
- nodo
(4) nodo - subárbol derecho - subárbol
izquierdo
(5) subárbol derecho - nodo - subárbol
izquierdo
Al igual que en la representación enlazada
de las listas, es necesario mantener un
puntero al primer elemento de la
estructura, en este caso el nodo raíz del
árbol, que permita acceder a la misma.
Recorrido de árboles binarios.
Si se desea manipular la información
contenida en un árbol, lo primero que hay
que saber es cómo se puede recorrer ese
árbol, de manera que se acceda a todos
los nodos del mismo solamente una vez.
El recorrido completo de un árbol produce
un orden lineal en la información del
72
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
(6) subárbol derecho - subárbol izquierdo
- nodo
Si se adopta el convenio de que, por
razones de simetría, siempre se recorrera
antes el subárbol izquierdo que el
derecho, entonces tenemos solamente
tres tipos de recorrido de un árbol, los tres
primeros en la lista anterior. Estos
recorridos, atendiendo a la posición en
que se procesa la información del nodo,
reciben, respectivamente, el nombre de
recorrido prefijo, infijo y posfijo y dan
lugar
a
algoritmos
eminentemente
recursivos:
Algoritmo Prefijo
Infijo(p^.Izq)
procesar(p^.info)
Infijo(p^.Der)
fin_si
Fin
Algoritmo Posfijo
Entrada
p: arbol
Inicio
si (p <> NULO)
entonces
Posfijo(p^.Izq)
Posfijo(p^.Der)
procesar(p^.info)
fin_si
Entrada
p: arbol
Inicio
Fin
si (p <> NULO)
entonces
procesar(p^.info)
Prefijo(p^.Izq)
Prefijo(p^.Der)
fin_si
Ejemplo de recorrido de un árbol:
Fin
Algoritmo Infijo
Entrada
p: arbol
Inicio
si (p
entonces
<>
NULO)
Inestigación de campo
PT Bachiller en Informática
73
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
dirección base del arreglo, la cota superior
y la inferior.
Competencia
Tecnológica
Observar el
informática.
concepto
REPRESENTACIÓN EN MEMORIA
de
árbol
en
Los arreglos se representan en memoria
de la forma siguiente:
El alumno:
•
•
•
Accederá al explorador de windows en
un ordenador.
Apreciará como está conformado el
árbol de la unidad C.
Elaborará la representación gráfica
mostrando los nodos y el recorrido del
árbol de la unidad C del ordenador.
Tablas (arreglos)
De Acceso Directo
Una tabla o arreglo unidimensional es un
tipo de datos estructurado que está
formado de una colección finita y
ordenada de datos del mismo tipo. Es la
estructura natural para modelar listas de
elementos iguales.
El tipo de acceso a las tablas o arreglos
unidimensionales es el acceso directo, es
decir, podemos acceder a cualquier
elemento del arreglo sin tener que
consultar a elementos anteriores o
posteriores, esto mediante el uso de un
índice para cada elemento del arreglo que
nos da su posición relativa.
Para
implementar
arreglos
unidimensionales se debe reservar espacio
en memoria, y se debe proporcionar la
74
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
x : array[1..5] of integer
Programación en Pseudocódigo
Arreglos Bidimensionales
Este tipo de arreglos al igual que los
anteriores
es
un
tipo
de
dato
estructurado,
finito
ordenado
y
homogéneo. El acceso a ellos también es
en forma directa por medio de un par de
índices.
Para establecer el rango del arreglo
(número total de elementos) que
componen el arreglo se utiliza la siguiente
formula:
RANGO = Ls - (Li+1)
donde:
ls = Límite superior del arreglo
li = Límite inferior del arreglo
Para calcular la dirección de memoria de
un elemento dentro de un arreglo se usa
la siguiente formula:
Los arreglos bidimensionales se usan para
representar datos que pueden verse como
una tabla con filas y columnas. La primera
dimensión del arreglo representa las
columnas, cada elemento contiene un
valor y cada dimensión representa una
relación.
La representación en memoria se realiza
de dos formas: almacenamiento por
columnas o por renglones.
Para determinar el número total de
elementos en un arreglo bidimensional
usaremos las siguientes fórmulas:
A[i] = base(A) + [(i-li) * w]
donde :
A = Identificador único del arreglo
i = Índice del elemento
li = Límite inferior
w = Número de bytes tipo componente
Si el arreglo en el cual estamos trabajando
tiene un índice numerativo utilizaremos
las siguientes fórmulas:
RANGO = ord (ls) - (ord (li)+1)
A[i] = base (A) + [ord (i) - ord (li) *
w]
PT Bachiller en Informática
75
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RANGO DE RENGLONES (R1) = Ls1 (Li1+1)
RANGO DE COLUMNAS (R2) = Ls2 (Li2+1)
No. TOTAL DE COMPONENTES = R1 * R2
REPRESENTACIÓN EN MEMORIA POR
COLUMNAS
Para calcular la dirección de memoria de
un elemento se usan la siguiente formula:
A[i,j] = base (A) + [((i - li1) R2 + (j +
li2))*w]
donde:
i = Índice del renglón a calcular
j = Índice de la columna a calcular
li1 = Límite inferior de renglones
li2 = Límite inferior de columnas
w = Número de bytes tipo componente
Arreglos Multidimensionales
Este también es un tipo de dato
estructurado, que está compuesto por n
dimensiones. Para hacer referencia a cada
componente del arreglo es necesario
utilizar n índices, uno para cada
dimensión.
x : array [1..5,1..7] of integer
Para calcular la dirección de memoria de
un elemento se usan la siguiente formula:
A[i,j] = base (A) + [((j - li2) R1 + (i +
li1))*w]
Para determinar el número de elementos
en este tipo de arreglos se usan las
siguientes fórmulas:
REPRESENTACIÓN EN MEMORIA POR
RENGLONES
x : array [1..5,1..7] of integer
76
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
RANGO (Ri) = lsi - (lii + 1)
No. TOTAL DE ELEMENTOS = R1 * R2*
R3 * ...* Rn
donde:
i = 1 ... n
n = No. total de dimensiones
Para determinar la dirección de memoria
se usa la siguiente formula:
LOC A[i1,i2,i3,...,in] = base(A) + [(i1li1)*R3*R4*Rn + (i2-li2)*R3*R2*... (in lin)*Rn]*w
De búsqueda lineal (look-up)
Consiste en empezar al inicio del conjunto
de elementos, e ir a través de ellos hasta
encontrar el elemento indicado ó hasta
llegar al final de arreglo.
Programación en Pseudocódigo
importante de este método es que puede
ocasionar colisiones.
funcion hash (valor_buscado)
inicio
hash <- valor_buscado mod
numero_primo
fin
inicio <- hash (valor)
il <- inicio
encontrado <- falso
repite
si arreglo[il] = valor entonces
encontrado <- verdadero
en caso contrario
il <- (il +1) mod N
hasta encontrado o il = inicio
Este es el método de búsqueda más lento,
pero si nuestro arreglo se encuentra
completamente desordenado es el único
que nos podrá ayudar a encontrar el dato
que buscamos.
ind <- 1
encontrado <- falso
mientras no encontrado y ind < N haz
si arreglo[ind] = valor_buscado
entonces
encontrado <- verdadero
en caso contrario
ind <- ind +1
De Hash
La idea principal de este método consiste
en aplicar una función que traduce el
valor del elemento buscado en un rango
de direcciones relativas. Una desventaja
PT Bachiller en Informática
77
Informática
Colegio Nacional de Educación Profesional Técnica
Estudio individual
Competencia Analítica
Identificar los conceptos de tablas y sus
correspondientes métodos de acceso.
El alumno:
•
Elaborará un trabajo escrito donde
muestre los conceptos de las tablas
(arreglos) de acceso directo, de
búsqueda lineal y método de acceso.
Estructurar la información que vamos a
usar es muy importante, pues es aquí
donde definimos como se va a acceder a
dicha información para obtener los
resultados deseados, ahora cuentas con
los elementos necesarios para conformar
tus estructuras según convenga al tipo de
datos que vas a manejar.
Programación en Pseudocódigo
Registro lógico.
Es la información
organizada tal como la percibe el usuario
por medio del programa.
Registro físico. Son los bloques de
información que la memoria transfiere
desde la unidad de almacenamiento
masivo hasta la memoria central del
sistema para procesarlos.
Registro de longitud fija. Es en el que al
configurar el fichero se le asigna un
determinado tamaño en bytes
y lo
mantiene a no ser que el registro sea
modificado.
Esto
es
así
independientemente de la cantidad de
información que contenga (Access).
Registro de longitud variable. En éstos
el programa mide la cantidad de
información de los registros y adapta su
tamaño a ellos (bases de datos
documentales = Knosys).
Ficheros (archivos)
Fichero. Es una colección de registros
similares. El archivo es tratado como una
entidad individual por los usuarios y las
aplicaciones y puede ser referenciada por
el nombre. Los archivos tienen nombres
únicos y pueden crearse y borrarse. En un
sistema compartido, los usuarios y los
programas
tienen
garantizado
o
denegado el acceso a archivos completos.
En algunos sistemas más complejos, dicho
control se aplica a los registros o a los
campos.
78
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Fichero secuencial
¾ Los registros están grabados en
orden y deben ser leídos en ese
mismo orden. Para leer un registro
hay que pasar por los anteriores.
•
¾ Solo pueden añadirse registros al
final del fichero. No permite la
inserción de registros en un punto
cualquiera.
•
¾ La modificación de información, solo
puede efectuarse si la nueva
información no excede de la longitud
del registro.
¾ El borrado es lógico y consiste en una
marca que el programa le pone a ese
registro, para que cuando el
programa vaya a leerlo, lo ignore
saltando al registro siguiente. No se
borra físicamente el registro.
Programación en Pseudocódigo
- Ciclo
escolar
al
que
corresponde.
A la hoja de papel donde registró la
lista le asignaremos el nombre de
“LIBROS TEXTO”. Este es un fichero
que contiene los nombres de sus
libros de texto y otros datos.
Es secuencial porque para buscar uno
deberá leer toda la lista hasta que
localice el que busca.
Fichero indexado
¾ La grabación del registro es igual que
en el anterior (secuencialmente).
¾ La lectura, se hace a través de un
índice de ahí la denominación de
Indexado. El índice, recoge todas las
claves de los registros, y asociados a
esta clave, la dirección que tiene el
registro en el fichero.
Realización del ejercicio
Competencia Lógica
Identificar el concepto de archivo o
fichero secuencial.
El alumno:
•
Elaborará una lista de sus libros de
texto que contenga los siguiente
datos:
- Nombre del libro.
- Número de páginas.
- Autor.
PT Bachiller en Informática
79
Informática
Colegio Nacional de Educación Profesional Técnica
De esta forma, no hay que leer todos
los registros uno por uno hasta llegar
a la información que nos interesa,
sino que lee el disco por sectores.
Realización del ejercicio
b) Fichero constante :
contiene un
tipo de datos de carácter fijo, por
ejemplo, un fichero que contuviese
un alista de autoridades.
Competencia Lógica
Identificar
indexado.
el
concepto
de
Programación en Pseudocódigo
a) Fichero maestro : contiene los datos
indispensables
para
el
funcionamiento de una aplicación
determinada y muestra el estado
actual de la misma, por ejemplo. el
catálogo de una biblioteca.
archivo
El alumno:
•
Al fichero que se creó anteriormente al
que se llamó “LIBROS TEXTO”, le
agregará una clave.
•
Esta clave estará integrada por las dos
primeras letras de la materia a que
corresponde cada libro y un número de
progresivo.
•
Bien, ahora tendrá un fichero que
contiene el nombre del texto , número
de páginas que contiene, autor y una
clave, esta clave será él índice.
•
Por este índice accedemos a los datos
del fichero, el índice es como la llave
de la puerta de su casa, es única, esto
es no puede haber dos iguales.
c) Fichero histórico : es el fichero
donde van los registros eliminados
del fichero maestro.
Fichero
temporal
Fichero permanente
Son los que contienen información
relevante para el programa. Existen tres
clases de ficheros permanentes :
80
PT Bachiller en Informática
de
movimientos
o
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Contienen información relevante
para determinado programa, pero no para
la aplicación en su conjunto. Sus datos
proceden de los ficheros permanentes,
como por ejemplo: una consulta. Existen
dos tipos de ficheros temporales:
Competencia Ambiental
Proteger los recursos naturales.
•
a) Intermedios: son los que almacenan
resultados de un programa que han
de ser utilizados por otro programa
en una misma aplicación.
b) De resultados, en los que se
almacenan ficheros elaborados que
se destinan a un dispositivo de salida
(impresora...etc.)
Los
ficheros
o archivos
contienen
registros, (en los ejercicios que realizaste,
cada uno de tus libros es un registro) y,
cada registro contiene la información de
cada uno de ellos, a cada dato que
contiene se le denomina campo, así
tenemos un campo que es alfanumerico y
es el nombre del libro, existe otro campo
numérico que es el número de páginas,
etc.
Hay varios tipos de archivos, un archivo
permanente es aquel que contiene la
información relevante para nuestro
proceso y que puede ser actualizada pero
el archivo permanece en el ordenador, un
archivo de movimientos es aquel que
contiene la información que usaremos por
una sola ocasión y que puede ser
eliminado después de ser usado.
•
El alumno, utilizará las hojas de
papel por ambos lados.
Depositará las hojas de papel de
desperdicio en los recipientes
destinados para su reciclaje.
Sugerencias o Notas
Competencia de Calidad
Realizar el trabajo en forma eficiente y
oportuna.
•
•
•
El alumno, realizará los ejercicios y
prácticas incluídas en este manual
con orden, limpieza, eficiencia y
responsabilidad.
Evitará el uso de software ilegal,
garantizando su funcionamiento y
calidad del mismo.
Participará con responsabilidad,
iniciativa
y
dinamismo
individualmente y en equipos de
trabajo.
Sugerencias o Notas
PT Bachiller en Informática
81
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
82
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Practicas de Ejercicio y listas de cotejo
Portafolio
de evidencias
Unidad de
aprendizaje:
1
Práctica número:
1
Nombre de la
práctica:
Elaboración de diagramas de flujo.
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará diagramas de flujo previos
a la realización de programas en pseudocódigo mediante las
estructuras
de
secuencia,
decisión
condicional
repetitiva,
procedimientos y funciones para la solución de problemas.
Escenario:
Aula
Duración:
4 hrs.
Materiales
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
83
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
•
Evitar la manipulación de líquidos.
•
Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
1. Elaborar el diagrama de flujo para la elaboración de un programa en pseudocódigo
que despliegue un menú y controle la ejecución de las siguientes opciones.
2.
•
Calcular el promedio de cinco números.·
•
Comparar tres números reales.·
•
Resolver una ecuación cuadrática utilizando la fórmula general.·
•
Calcular la serie fibonacci hasta obtener 10 elementos.·
•
Terminar.
3. Realizar prueba de escritorio para el diagrama elaborado.
4. Elaborar un diagrama de flujo para la elaoración de un programa en pseudocódigo del
cálculo del promedio de cinco números.
5. Realizar pruebas de escritorio para el diagrama anterior.
6. Elaborar un diagrama de flujo para la elaoración de un programa en pseudocódigo
que compare tres números reales.
84
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
7. Realizar prueba de escritorio para el diagrama anterior.
8. Elaborar un diagrama de flujo para la elaboración de un programa en pseudocódigo
para la resolución de una ecuación cuadrática utilizando la fórmula general.
9. Realizar prueba de escritorio para el diagrama anterior.
10. Elaborar un diagrama de flujo para la elaboración de un programa en pseudocódigo
que calcule la serie fibonacci hasta obtener 10 elementos.
11. Realizar prueba de escritorio del diagrama de flujo anterior.
12. Integrar los cuatro diagramas anteriores al diagrama principal, realizando las
modificaciones pertinentes a los mismos para formar uno solo.
13. Realizar prueba de escritorio del diagrama anterior.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos
en el lugar indicado).
PT Bachiller en Informática
85
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Lista de cotejo de la práctica
número 1:
Elaboración de diagramas de flujo.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el alumno
durante su desempeño
Desarrollo
®Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación, ventilación
y limpieza).
1. Elaboró un diagrama de flujo para la elaboración de un programa
en pseudocódigo que despliegue un menú.
2. Realizó prueba de escritorio del diagrama de flujo.
3. Elaboró un diagrama de flujo para la elaboración de un programa
en pseudocódigo del cálculo del promedio de cinco números.
4. Realizó pruebas de escritorio del diagrama anterior.
5. Elaboró un diagrama de flujo para la elaboración de un programa
en pseudocódigo que compare tres números reales.
6. Realizó prueba de escritorio del diagrama anterior.
86
PT Bachiller en Informática
Sí
No
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
No
Aplica
7. Elaboró un diagrama de flujo para la elaboración de un programa
en pseudocódigo para la resolución de una ecuación cuadrática
utilizando la fórmula general.
8. Realizó prueba de escritorio del el diagrama anterior.
9. Elaboró un diagrama de flujo para la elaboración de un programa
en pseudocódigo que calcule la serie fibonacci hasta obtener 10
elementos.
10. Realizó prueba de escritorio del diagrama anterior..
11. Integró los cuatro diagramas de flujo para la elaboración de
programas en pseudocódigo anteriores al diagrama principal,
realizando las modificaciones pertinentes a los mismos para formar
uno solo .
12. Realizó prueba de escritorio del diagrama .
4 Separó los residuos recuperables (usar las dos caras de las hojas y
colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
Hora de
término:
PT Bachiller en Informática
Evaluación:
87
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
1
Práctica número:
2
Nombre de la
práctica:
Elaboración
de
programas
en
pseudocódigo con estructuras de control
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará programas en
pseudocódigo mediante las estructuras de secuencia, decisión
condicional repetitiva, procedimientos y funciones para la solución de
problemas.
Escenario:
Aula
Duración:
8 hrs.
Materiales
Maquinaria y equipo
• Hojas
• Lápiz
• Goma
88
PT Bachiller en Informática
Herramienta
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
•
Evitar la manipulación de líquidos.
•
Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
1. Elaborar un programa en pseudocódigo que despliegue un menú y controle la ejecución
de las siguientes opciones.
•
•
•
•
•
Calcular el promedio de cinco números.·
Comparar tres números reales.·
Resolver una ecuación cuadrática utilizando la fórmula general.·
Calcular la serie fibonacci hasta obtener 10 elementos.·
Terminar.
2. Realizar prueba de escritorio para el programa elaborado.
3. Elaborar un programa en pseudocódigo del cálculo del promedio de cinco números.
4. Realizar pruebas de escritorio para el pseudocódigo anterior.
5. Elaborar un programa en pseudocódigo que compare tres números reales.
6. Realizar prueba de escritorio del pseudocódigo anterior.
PT Bachiller en Informática
89
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
7. Elaborar un programa en pseudocódigo para la resolución de una ecuación cuadrática
utilizando la fórmula general.
8. Realizar prueba de escritorio del pseudocódigo anterior.
9. Elaborar un programa en pseudocódigo que calcule la serie fibonacci hasta obtener 10
elementos.
10. Realizar prueba de escritorio del pseudocódigo anterior.
11. Integrar los cuatro programas en pseudocódigo anteriores al menú principal,
realizando las modificaciones pertinentes a los mismos para formar uno solo .
12. Realizar prueba de escritorio del pseudocódigo anterior.
13. Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos
en el lugar indicado).
90
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Lista de cotejo de la práctica
número 2:
Elaboración de programas en pseudocódigo con
estructuras de control.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el alumno
durante su desempeño.
Desarrollo
Sí
No
No
Aplica
®Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación, ventilación
y limpieza).
1. Elaboró un programa en pseudocódigo que despliegue un menú.
2. Realizó prueba de escritorio para el programa elaborado.
3. Elaboró un programa en pseudocódigo del cálculo del promedio de
cinco números.
4. Realizó pruebas de escritorio para el pseudocódigo anterior.
5. Elaboró un programa en pseudocódigo que compare tres números
reales.
6. Realizó prueba de escritorio del pseudocódigo anterior.
7. Elaboró un programa en pseudocódigo para la resolución de una
ecuación cuadrática utilizando la fórmula general.
PT Bachiller en Informática
91
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
8. Realizó prueba de escritorio del pseudocódigo anterior.
9. Elaboró un programa en pseudocódigo que calcule la serie
fibonacci hasta obtener 10 elementos.
10. Realizó prueba de escritorio del pseudocódigo anterior.
11. Integró los cuatro programas en pseudocódigo anteriores al menú
principal, realizando las modificaciones pertinentes a los mismos
para formar uno solo .
12. Realizó prueba de escritorio del pseudocódigo anterior.
13. Repitió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas y
colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
92
Hora de
término:
PT Bachiller en Informática
Evaluación:
No
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
APLICACIÓN DE PSEUDOCÓDIGO
EN TÉCNICAS DE LENGUAJES DE
PROGRAMACIÓN
Al finalizar la unidad, el alumno
elaborará
documentos,
con
operaciones automatizadas mediante
planillas, formularios, autocorrección
y herramientas adicionales para su
implementación.
PT Bachiller en Informática
93
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
VII. MAPA CURRICULAR
Programación en
Pseudocódigo
Módulo
108 hrs.
1. Elaboración
previa de
programas de
cómputo.
Unidad
de
Aprendizaje
14 hrs.
2. Aplicación de
pseudocódigo en
técnicas de
lenguajes de
programación
94 hrs.
1.1 Identificar lenguajes de programación con base al uso y
características de los mismos.
1.2 Diseñar la programación mediante su secuencia de pasos
lógica.
Resultados de
Aprendizaje
94
2.1 Emplear pseudocódigo en programación estructurada
utilizando estructuras de datos.
2.2 Emplear pseudocódigo en programación funcional y lógica
utilizando recursividad y cláusulas.
2.3 Emplear pseudocódigo en programación orientada a objetos y
dirigida por eventos utilizando sentencias d herencia, controles,
eventos y multitareas.
PT Bachiller en Informática
4 hrs.
10 hrs.
34 hrs.
30 hrs.
30 hrs.
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
2. APLICACIÓN DE PSEUDOCÓDIGO EN TÉCNICAS DE LENGUAJES DE
PROGRAMACIÓN
Sumario
Programación estructurada
Programación estructurada en la representación arborecente
Programación funcional
Programación lógica
Programación orientada a objetos
Programación dirigida por eventos.
RESULTADO DE APRENDIZAJE
2.1 Emplear pseudocódigo en programación estructurada utilizando estructuras de datos.
2.2 Emplear pseudocódigo en programación funcional y lógica utilizando recursividad y
cláusulas.
2.3
Emplear pseudocódigo en programación orientada a objetos y dirigida por eventos
utilizando sentencias de herencia, controles, eventos y multitareas.
PT Bachiller en Informática
95
Informática
Colegio Nacional de Educación Profesional Técnica
2.1.1 Programación Estructurada.
Concepto
La programación estructurada es una
teoría de programación que consiste en
construir programas de fácil comprensión.
La
programación
estructurada
es
especialmente útil, cuando se necesitan
realizar correcciones o modificaciones
después de haber concluido un programa
o aplicación. Al haberse utilizado la
programación estructurada, es mucho
más sencillo entender la codificación del
programa, que se habrá hecho en
diferentes secciones.
Programación en Pseudocódigo
aplicaciones realizadas por el pool de
programadores. Si se ha utilizado
adecuadamente
la
programación
estructurada, esta integración debe ser
sencilla y no presentar problemas al
integrar la misma y de presentar algún
problema, será rápidamente detectable
para su corrección.
Características
La programación estructurada se basa en
una metodología de desarrollo de
programas
llamada
refinamientos
sucesivos: Se plantea una operación como
un todo y se divide en segmentos más
sencillos o de menor complejidad. Una vez
terminado todos los segmentos del
programa, se procede a unificar las
96
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
La
representación
grafica
de
la
programación estructurada se realiza a
través de diagramas de flujo o flow chart,
el cual representa el programa con sus
entradas, procesos y salidas.
La programación estructurada propone
segregar los procesos en estructuras lo
más simple posibles, las cuales se conocen
como secuencia, selección e interacción.
Ellas están disponibles en todos los
lenguajes modernos de programación
imperativa en forma de sentencias.
Combinando esquemas sencillos se
pueden llegar a construir sistemas amplios
y complejos pero de fácil entendimiento.
Programación en Pseudocódigo
mas ligadas o relacionadas entre sí,
por lo que es más fácil comprender lo
que hace cada función.
2. Reducción del esfuerzo en las
pruebas. El programa se puede tener
listo para producción normal
en un tiempo menor del tradicional;
por otro lado, el seguimiento de las
fallas("debugging") se facilita debido
a la lógica más visible, de tal forma
que los errores se pueden detectar y
corregir mas fácilmente.
Se ha demostrado que un programa
propio puede ser escrito utilizando
solamente tres tipos de estructuras de
control: —secuenciales, selectivas y
repetitivas. Un programa es propio si
posee un sólo punto de entrada y uno de
salida, si existen caminos desde el inicio
hasta el fin que se pueden seguir y que
pasan por todas las partes del programa, y
si todas las instrucciones son ejecutables
sin que hayan bucles infinitos.
Ventajas de la programación estructurada.
1. Los programas son más fáciles de
entender. Un programa estructurado
puede ser leído en secuencia, de
arriba hacia abajo, sin necesidad de
estar saltando de un sitio a otro en la
lógica, lo cual es típico de otros
estilos
de
programación.
La
estructura del programa es mas clara
puesto que las instrucciones están
PT Bachiller en Informática
97
Informática
Colegio Nacional de Educación Profesional Técnica
3. Reducción
de
los
costos
de
mantenimiento.
4. Programas más sencillos y más
rápidos
5. Aumento de la productividad del
programador
6. Se facilita la utilización de las otras
técnicas para el mejoramiento de la
productividad en programación
7. Los
programas
quedan
mejor
documentados internamente.
Lenguajes
Máquina – Ensamblador
Programación en Pseudocódigo
realizar. Otro punto sería que los
programas en ensamblador ocupan
menos espacio en memoria.
Ventajas
Velocidad.- Como trabaja directamente
con el microprocesador al ejecutar un
programa, pues como este lenguaje es el
mas cercano a la máquina la computadora
lo procesa mas rápido.
Eficiencia de tamaño .- Un programa en
ensamblador no ocupa mucho espacio en
memoria porque no tiene
que cargan librerías y demás como son los
lenguajes de alto nivel.
Los lenguajes máquina son aquellos
cuyas instrucciones son directamente
entendibles por el ordenador sin la
necesidad de traducción alguna. Sus
instrucciones no son más que ristras de
ceros y unos (bits). Estas especifican la
operación a realizar, los registros del
procesador y celdas de memoria
implicados, etc.
Obviamente, este tipo de lenguajes serán
fáciles de comprender para un ordenador
pero muy difíciles para el hombre. Esta
razón nos lleva a buscar otro lenguaje
para comunicarnos con el ordenador.
La importancia del lenguaje ensamblador
radica principalmente que se trabaja
directamente con el microprocesador; por
lo cual se debe de conocer el
funcionamiento interno de este, tiene la
ventaja de que en el se puede realizar
cualquier tipo de programas que en los
lenguajes de alto nivel no lo pueden
98
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Flexibilidad .- Es flexible porque todo lo
que puede hacerse con una máquina,
puede hacerse en el lenguaje ensamblador
de esta máquina; los lenguajes de alto
nivel tienen en una u otra forma limitantes
para explotar al máximo los recursos de la
máquina. O sea que en lenguaje
ensamblador se pueden hacer tareas
especificas que en un lenguaje de alto
nivel no se pueden llevar acabo porque
tienen ciertas limitantes que no se lo
permite.
Desventajas
Tiempo de programación .- Como es un
lenguaje de bajo nivel requiere más
instrucciones para realizar el mismo
proceso, en comparación con un lenguaje
de alto nivel. Por otro lado, requiere de
más cuidado por parte del programador,
pues es propenso a que los errores de
lógica se reflejen más fuertemente en la
ejecución.
Programación en Pseudocódigo
este lenguaje lo más común que pueda
pasar es que la máquina se bloquee o se
reinicialize. Porque con este lenguaje es
perfectamente posible (y sencillo) realizar
secuencias de instrucciones inválidas, que
normalmente no aparecen al usar un
lenguaje de alto nivel.
Falta de portabilidad.- Porque para cada
máquina existe un lenguaje ensamblador;
por ello, evidentemente no es una
selección apropiada de lenguaje cuando
deseamos codificar en una máquina y
luego llevar los programas a otros
sistemas operativos o modelos de
computadoras.
Basic
BASIC (Beginner’s All Purpose Symbolic
Instruction Code) fue desarrollado en
1964 por John Kemeny y Thomas
Programas fuente grandes .- Por las
mismas razones que aumenta el tiempo,
crecen
los
programas
fuentes;
simplemente
requerimos
más
instrucciones primitivas para describir
procesos equivalentes. Esto es una
desventaja
porque
dificulta
el
mantenimiento de los programas, y
nuevamente reduce la productividad de
los programadores.
Peligro
de
afectar
recursos
inesperadamente .- Que todo error que
podamos cometer, o todo riesgo que
podamos tener, podemos afectar los
recursos de la maquina, programar en
PT Bachiller en Informática
99
Informática
Colegio Nacional de Educación Profesional Técnica
Kurtz. Fue desarrollado para enseñar a los
estudiantes de Dartmouth College a cómo
usar computadoras y escribir programas.
BASIC se dice ser un lenguaje muy simple
de aprender y uno fácil de traducir,
además de ser capaz de hacer casi todas
las tareas de una computadora desde
inventario hasta cálculos matemáticos.
BASIC incluyó componentes de FORTRAN y
ALGOL. El primer BASIC tenía 14
comandos, entre ellos LET, PRINT, GOTO,
IF THEN. BASIC era un programa
compilado, queriendo decir que las
instrucciones era traducidas a lenguaje o
código de máquina antes de ser
ejecutadas. Para el 1970, existían más de
20 versiones diferentes de BASIC corriendo
en computadoras "mainframe" y microcomputadoras.
Programación en Pseudocódigo
y nuevas versiones estan influenc iadas
por programación orientada a objetos
(OOP). OOP crea módulos de data y
procedimientos de manipulación. En
1989, en un artículo de la revista BYTE, Bill
Gates habla de una nueva versión visual
de BASIC, que sería una mezcla de código,
objetos "programmer-written", y objetos
visualmente específicados. Tres años más
tarde, Microsot lanza al mercado Visual
BASIC,
una
versión
diseñada
específicamente para desarrollar y realzar
aplicaciones para Microsoft Windows.
Cobol
El deseo de desarrollar un lenguaje de
programación que fuera aceptado por
cualquier marca de computadora, reunió
en Estados Unidos, en Mayo de 1959, una
comisión (denominada
Diez años más tarde, una versión de
BASIC fue escrita por Bill Gates y Pauel
Allen e incluida en la "Altair", (la primera
computadora personal) y luego de tres
décadas, BASIC se convirtió el lenguaje
programación de computadoras más
popular. En adición a las versiónes de
BASIC de Microsoft y Eubanks, se
escribieron muchas más, incluyendo
RadioShack Level 1 BASIC, Apple Ineteger
BASIC,
RMBASIC,
Better
BASIC,
QuickBASIC, y Professional
BASIC. Para mediados de los 1980’s, varias
cien versiónes de BASIC estaban siendo
utilizadas. En 1998, 14 años luego de
comenzar esta tarea, el "American
National Standards Institute" (ANSI),
sometió el Standard BASIC. Hoy día, las
versiones de BASIC estan cayendo a un
lado, algunas han sido remplazadas con
versiones que se unieron a Standard Basic,
100
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
CODASYL: Conference On Data Systems
Languages) integrada por fabricantes de
computadoras, empresas privadas y
representantes del Gobierno. Dando lugar
a la creación del lenguaje COBOL
(COmmon Business Oriented Language)
orientado a los negocios, llamándose ésta
primera versión COBOL-60, por ser éste el
año que vio la luz.
COBOL, estaba en constante evolución
gracias a las sugerencias de los usuarios y
expertos dando lugar a las revisiones de
1.961, 1.963 y 1.965. La primera versión
standard nació en 1968, siendo revisada
en 1.974, llamadas COBOL ANSI o COBOL74, muy extendidas todavía. En la
actualidad es COBOL-85 la última versión
revisada del lenguaje COBOL, estando
pendiente la de 1.997.
Programación en Pseudocódigo
elementales, suma, resta, multiplicación y
división, sino que su empleo es apropiado
para el proceso de datos en aplicaciones
comerciales, utilización de grandes
cantidades de datos y obtención de
resultados ya sea por pantalla o impresos.
Con Cobol se pretendía un lenguaje
universal, sin embargo, los numerosos
fabricantes existentes en la actualidad han
ido incorporando retoques y mejoras,
aunque las diferencias esenciales entre
ellos
es
mínima.
Con la llegada del Sistema Operativo
Windows, son muchos los que intentan
proveer al Cobol de esa interface gráfica,
Objective Cobol, Visual Object Cobol de
Microfocus,
Fujitsu
PowerCobol,
Acucobol-GT, Vangui y
Cobol es un lenguaje compilado, es decir,
existe el código fuente escrito con
cualquier editor de textos y el código
objeto (compilado) dispuesto para su
ejecución con su correspondiente runtime.
Cuando se ve un programa escrito en
Cobol saltan a la vista varios aspectos:
Existen unos márgenes establecidos que
facilitan
su
comprensión.
Esta
estructurado en varias partes, cada una de
ella con un objetivo dentro del programa.
Nos recuerda mucho al lenguaje inglés,
puesto que su gramática y su vocabulario
están tomados de dicho idioma. En
contraste con otros lenguajes de
programación, COBOL no se concibió para
cálculos
complejos
matemáticos
o
científicos, de hecho solo dispone de
comandos para realizar los cálculos mas
PT Bachiller en Informática
101
Informática
Colegio Nacional de Educación Profesional Técnica
Cobol-WOW de Liant (RM), etc.. que están
consiguiendo que éste lenguaje siga
estando presente en moda visual de
ofrecer los programas. Sin embargo, son
muchas las empresas que siguen
dependiendo del Cobol-85 tradicional
para sus proyectos debido principalmente
a la estructura de su sistema informático.
Fortran
Fortran que originalmente significa
Sistema de Traducción de Fórmulas
Matemáticas pero se ha abreviado a la
FORmula TRANslation, es el más viejo de
los establecidos lenguajes de "alto-nivel",
fue diseñado por un grupo en IBM
durante los años 50 (1950). El idioma se
hizo tan popular en los 60s fue cuando
otros vendedores empezaron a producir
sus propias versiones y esto llevó a una
divergencia creciente de dialectos (a través
de
1963
había
40
recopiladores
diferentes).
Fue reconocido que tal divergencia no
estaba en los intereses de los usuarios de
la computadora o los vendedores de la
computadora y para que FORTRAN 66 se
volviera el primer idioma en ser
regularizado oficialmente en 1972 La
publicación de la norma significó que ese
Fortran se llevó a cabo más ampliamente
que cualquier otro idioma.
A mediados de los años setenta se
proporcionaron
virtualmente
cada
computadora, mini o mainframe, con un
sistema FORTRAN 66 normal. Era por
consiguiente posible escribir programas en
Fortran en cualquier sistema y estar
bastante seguro que éstos pudieran
102
Programación en Pseudocódigo
moverse para trabajar en cualquier otro
sistema bastante fácil. Esto, y el hecho
que pudieran procesarse programas de
Fortran muy eficazmente.
La definición normal de Fortran se puso al
día en 1970 y una nueva norma, ANSI
X3.9-1978, fueron publicadas por el
Instituto de las Normas Nacional
americana. Esta norma era seguida (en
1980) adoptado por la Organización de
Normas Internacionales (ISO) como una
Norma Internacional (ES 1539: 1980). El
idioma es normalmente conocido como
FORTRAN 77 (desde que el proyecto final
realmente se completó en 1977) y es
ahora la versión del idioma en su uso
extendido.
Muchos rasgos deseables no estaban
disponibles, por ejemplo, en FORTRAN 77
es muy difícil de representar datos
estructura sucintamente y la falta de
cualquier medios del almacenamiento
dinámico que todas las series deben tener
un tamaño fijo que no puede excederse;
estaba claro de una fase muy temprana,
más moderno, el idioma necesitó ser
desarrollado.
El trabajo empezó en los 80s en un idioma
conocido como "Fortran 8x". El trabajo
tomó 12 años en parte debido al deseo de
guardar FORTRAN 77 un subconjunto
estricto y también para asegurar esa
eficacia, pero el idioma no se compuso.
Idiomas como Pascal, ADA y Algol son
muy fáciles de usar pero no pueden
igualar la eficacia de Fortran.
Fortran 90 es un desarrollo mayor del
idioma pero no obstante incluye todos los
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
de FORTRAN 77 como un subconjunto
estricto y para que cualquier FORTRAN
conformando normalmente como el
programa del 77 continuará siendo un
programa valido en Fortran 90. Muchos
hombre han puesto toda su vida en
escribir estos programas que, después de
tantos años de uso, es muy fiable.
Además de las viejas estructuras de
FORTRAN 77, Fortran 90 permite expresar
los programas de maneras que se
satisfacen más a un ambiente de la
informática moderna y han quedado
obsoletos muchos de los mecanismos que
eran apropiados en FORTRAN 77.
En Fortran 90 algunos rasgos de FORTRAN
77 han sido reemplazados por rasgos
mejores, más seguros y más eficaces,
muchos de éstos fueron quitados de la
siguiente revisión interina del idioma
Fortran 95.
Como la norma de Fortran 90 es muy
grande y compleja hay (inevitablemente)
un número pequeño de ambigüedades y
conflictos, las áreas grises. Las tales
anomalías a menudo sólo vienen a
observarse
cuando
se
desarrollan
compiladores. En los últimos años el
idioma basado en Fortran 90 conocido
como High Performance Fortran (HPF) se
ha desarrollado. Este idioma contiene
todo de Fortran 90 y también incluye otras
extensiones que son muy deseables.
Fortran 95 incluirá muchos de los nuevos
rasgos de HPF.
PT Bachiller en Informática
103
Informática
Colegio Nacional de Educación Profesional Técnica
Pascal
El lenguaje de programación Pascal fue
desarrollado originalmente por Niklaus
Wirth, un miembro de la International
Federation of Information Processing (IFIP)
El Profesor Niklaus Wirth desarrolló Pascal
para proporcionar rasgos que estaban
faltando en otros idiomas en ese
entonces.
Sus principales objetivos para Pascal eran
para el lenguaje eran ser eficiente para
llevarse a cabo y correrse los programas,
permita bien el desarrollo de estructuras y
también organizar programas, y para
servir como un vehículo para la enseñanza
de los conceptos importantes de
programación de la computadora. Pascal
que se nombró gracias al matemático
Blaise Pascal es un descendiente directo de
ALGOL 60, qué ayudó a su desarrollo.
Pascal también tomo componentes de
ALGOL 68 y ALGOL-W.
Programación en Pseudocódigo
elemento de información ocupaba un
'palabra' en memoria y la tarea de tratar
cada elemento de datos como número
entero, real, o arreglos, no recaía en el
programador.
C era conocido como el lenguaje con el
cual se desarrolló el sistema operativo
UNIX, y actualmente la mayoría de los
sistemas operativos se codifican en C. Lo
bueno de este lenguaje es que no
depende de la arquitectura de hardware.
Es posible escribir código en C, y llevarlos
a otras máquinas. Eso lo convirtió en unos
de los lenguajes más portátiles del
mercado.
A fines de los 70s, evolucionó lo que
conocemos como... 'C de Kernigham y
Ritchie', y el libro The C Programming
Languaje que publicó Prentice Hall en
El original idioma de Pascal aparecido en
1971 con última revisión publicada en
1973. Fue diseñado para enseñar las
técnicas de programación y otros temas a
los estudiantes de la universidad y era el
idioma de opción de los años 60 a los 80s.
C
En
1972,
Dennis
Ritchie,
estaba
finalizando su proyecto, en los famosos
Laboratorios Bell. "El lenguaje C", una
evolución
del
B,
implementado
originalmente en una DEC PDP-11. Al
contrario de sus antecesores, C era un
lenguaje con tipos, es decir, que cada
104
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
1978 se hizo impresionantemente famoso.
Programación en Pseudocódigo
++ Programming Languaje, publicado
por Addison-Wesley en 1986.
Claro que C tuvo un inconveniente, su
amplia difusión ahora le estaba jugando
una mala pasada, al ser tan universal,
habían
muchas
variantes,
además
bastante incompatibles, creando serios
problemas para los desarrolladores de
software, que necesitaban escribir código
para diferentes plataformas, y claro que
era
imprescindible
que
exista
compatibilidad.
El nombre de C ++, fue porque éste
último era una variante del C original. En
el lenguaje C, el operador ++ significa,
incrementar la variable, se eligió en
nombre C ++, debido a que éste
agregaba al C original el término de
Programación Orientada a Objetos (POO),
basadas en Simula 67.
Todo el mundo necesitaba que se cree una
versión universal de C. Tarea llevada a
cabo por la ANSI, que no fué sino hasta
1989 para que se aprobara el estándar. La
ANSI cooperó con la ISO, en la
estandarización mundial de C, el
documento se publicó en 1990 y es
posible pedirle a la ANSI una copia de ese
documento.
Al ser C ++ una variación de C, los
programas codificados en C pueden correr
tranquilamente en C ++. En 1990, el
lenguaje ha sido descrito por Stroustrup y
Ellis en el Annotated C ++ Reference
Manual editado por Addison -Wesley,
existiendo una versión en español del
mismo, con el título de C ++. Manual de
Referencia con
Ahora, volvemos al principio de los 80s.
Donde Bjarne Stroustrup, diseñó una
extensión del lenguaje C, llamándolo C
con Clases.
El término clase provenía de Simula 67, y
servía
para
entender
mas
el
comportamiento del mundo real y llevarlo
a los códigos, ocultando los detalles de su
implementación.
En 1984, C con Clases fue rediseñado en
un compilador y se lo denominó C ++.
Como lo indica la nota Data Abstraction
in C, en el Técnical Journal de AT&T Bell
Laboratories. (vol. 63, núm 8, Octubre
1984). En 1985 estuvo disponible la
primera versión del lenguaje C ++ y se
realizó el libro de Bjarne Struostrup: The C
PT Bachiller en Informática
105
Informática
Colegio Nacional de Educación Profesional Técnica
anotaciones publicado por
Wesley/Días de Santos en 1994.
Addison-
La versión actual estandarizada por ANSI,
la versión 3.0 es la que soportan la
mayoría de los fabricantes mundiales,
como ser, Borland, AT&T, Wat Com,
Microsoft, etc, es sus respectivas
actualizaciones.
Hoy en día, Borland ofrece el compilador
de C++ en la versión 5.5 de forma
gratuita.
La programación estructurada como su
nombre lo indica,
consiste en
descomponer nuestro programa en
estructuras lo más simple posibles y de
fácil
manejo,
para
posteriormente
integrarlos en un solo programa.
Un programa, por largo y complejo que
sea,
se
puede
diseñar
anidando
convenientemente en tres estructuras
básicas. Esto ayudara mucho a que los
programas sean fácilmente leídos por
cualquier persona, a que el números de
errores en el proceso de programación sea
bajo, a que los programas sean
autodocumentados y a que puedan
mantenerse fácilmente.
Programación en Pseudocódigo
Identificar las características de la
programación estructurada y los lenguajes
de programación que la integran.
El alumno:
•
Elaborará un resumen que contenga
las características y ventajas de la
programación estructurada y una
breve descripción de los lenguajes de
programación que la integran.
2.1.2 Programación estructurada en
la representación arborecente.
Estructura Secuencial
Es aquella en que una acción sigue a otra
en secuencia. Las tareas se suceden de tal
modo que la salida de una es la entrada
de la siguiente.
Estudio individual
Competencia de
Información
106
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Diagrama
de Flujo
Pseudocódigo
Inicio
.
acción
acción
acción
.
.
1
2
3
.
Fin
Cuando se quiere indicar que unas
determinadas acciones se deben realizar
en secuencia, se escriben unas a
continuación de otras. Por ejemplo:
Leer cantidad, precio
Importe = cantidad * precio
Imprime importe
Programación en Pseudocódigo
IF expresión THEN
Acción del then
ELSE
Acción del else
ENDIF
Por ejemplo, para calcular el importe de la
venta de un determinado artículo,
sabiendo que al comprar entre 1 y 15
unidades del mismo, el descuento es de
un 10%, y si la compra es superior a 15
unidades, el descuento será de un 15%, y
escribimos:
Leer artículo, cantidad, precio unitario
Importe= cantidad* precio unitario
IF cantidad>0 AND cantidad<16 THEN
Importe= importe*0.9
ELSE
Importe=importe*0.85
ENDIF
Imprimir
cantidad,
precio
unitario,
importe
Estructura condicional o selectiva
Se utilizan para tomar decisiones lógicas.
En éstas se evalúa una condición y en
función del resultado de la misma se
realiza una opción u otra. Las condiciones
se
especifican
usando
expresiones
lógicas. En pseudocódigo éstas palabras
son if, then, else. Las estructuras
selectivas pueden ser: – simples, dobles o
múltiples.
Si utilizamos una condicional o selectiva,
es para indicar que según el resultado
cierto o falso de una expresión hay que
realizar una acción u otra de las dos
especificadas. En general, una estructura
alternativa se escribe de la siguiente
forma:
PT Bachiller en Informática
107
Informática
Colegio Nacional de Educación Profesional Técnica
Simples. Ejecuta una determinada acción
cuando se cumple una determinada
condición. La selección if – then (si –
entonces) evalúa la condición y si es
verdadera ejecuta la acción de lo contrario
no hará nada.
Su representación es la siguiente:
IF
<Condición>
THEN
<Acción>
Dobles
Permite elegir entre dos opciones posibles
en función del cumplimiento o no de una
determinada condición. Si la condición es
verdadera, se ejecuta la acción 1, si es
falsa, se ejecuta la acción 2. La selectiva
en pseudo código es if – then – else.
Programación en Pseudocódigo
La representación de esta estructura es la
siguiente:
CASE <Expresión> OF
INICIO
OP1:Acción1
OP2:Acción2
OP3:Acción3
ELSE
<AcciónX>
FIN
Estructura Repetitiva
Las estructuras que repiten una secuencia
de instrucciones un número determinado
de veces se llaman bucles, e iteración al
hecho de repetir la ejecución de una
secuencia de acciones.
Su representación es:
IF <Condición>
THEN
<Acción>
ELSE
<Acción>
Selectivas múltiples
La estructura de selección múltiple (case
en pseudocódigo) evaluará una expresión
que podrá tomar n valores distintos 1, 2,
3, 4, …..n. Según que elija uno de estos
valores en la condición, se realizará una de
las n acciones.
108
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Mientas (while).
La estructura repetitiva mientras es
aquella en que el cuerpo del bucle se
repite
mientras
se
cumple
una
determinada condición. Cuando se ejecuta
esta instrucción, la primera cosa que
sucede es que se evalúa la condición. Si la
expresión es verdadera, entonces se
ejecuta el cuerpo del bucle. Este proceso
se repite una y otra vez mientras la
condición sea verdadera.
Hasta (do/while)
Se ejecuta hasta que se cumpla una
condición determinada que se comprueba
al final del bucle, esto permite que la
iteración se ejecute al menos una vez
antes de que la condición sea evaluada.
•
•
•
•
Preguntará a 10 de sus compañeros de
clase cuál es su estatura.
Con estos datos, elaborará una rutina
en pseudocódigo que calcule el valor
medio de la altura de los alumnos que
integran su grupo.
Finalizará la entrada de datos con un
valor 0 para la variable altura.
Imprimirá la media obtenida.
En la programación estructurada existen
diferentes estructuras de control, estas
nos sirven para estructurar el programa
de modo que sea sencilla su identificación
y en un momento si se requiere
mantenimiento (modificar o incluir otras
estructuras) nos sea fácil encontrar el
lugar o la estructura a modificar.
Para (for)
Se utilizan las estructuras for cuando se
conocen con certeza el número de veces
que desea repetir un bucle, es decir,
cuando es un número fijo de veces.
Realización del ejercicio
Competencia Lógica
Elaborar programación en pseudocódigo
usando las estructuras que caracterizan la
programación estructurada.
El alumno:
PT Bachiller en Informática
109
Informática
Colegio Nacional de Educación Profesional Técnica
2.2.1 Programación Funcional
Concepto
La Programación Funcional es un
Paradigma de Programación declarativa
basado en la utilización de funciones
matemáticas.
Los programas escritos en un lenguaje
funcional están constituidos únicamente
por
definiciones
de
funciones,
entendiendo éstas no como subprogramas
clásicos de un lenguaje imperativo, sino
como funciones puramente matemáticas,
en las que se verifican ciertas propiedades
como la transparencia referencial (el
significado de una expresión depende
únicamente del significado de sus
subexpresiones), y por tanto, la carencia
total de efectos laterales.
Programación en Pseudocódigo
instrucciones se lleven a cabo por medio
de funciones recursivas).
Existen dos grandes categorías de
lenguajes funcionales: los funcionales
puros y los híbridos. La diferencia entre
ambos estriba en que los lenguajes
funcionales
híbridos
son
menos
dogmáticos que los puros, al admitir
conceptos tomados de los lenguajes
procedimentales, como las secuencias de
instrucciones o la asignación de variables.
Características
En programación funcional, un programa
consta de:
Un conjunto de operaciones primitivas
cuyo significado está predeterminado
El objetivo es conseguir lenguajes
expresivos y matemáticamente elegantes,
en los que no sea necesario bajar al nivel
de la máquina para describir el proceso
llevado a cabo por el programa, y
evitando el concepto de estado del
cómputo. La secuencia de computaciones
llevadas a cabo por el programa se regiría
única y exclusivamente por la reescritura
de definiciones más amplias a otras cada
vez más concretas y definidas, usando lo
que se denominan definiciones dirigidas.
Otras características propias de estos
lenguajes son la no existencia de
asignaciones de variables y la falta de
construcciones estructuradas como la
secuencia o la iteración (lo que obliga en
la práctica a que todas las repeticiones de
110
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
en el sistema. Por ejemplo, la suma de
números enteros, la resta, el producto,
etc.
Un conjunto de definiciones de función,
establecidas por el programador, que
eventualmente emplearán las operaciones
primitivas. Por ejemplo, la función
factorial.
Un dato de entrada (entendido como la
aplicación de una de las funciones
definidas sobre otros datos). Por ejemplo:
fact(2*fact(2)).
La ejecución del programa funcional
consiste en el cálculo del valor asociado al
dato de entrada de acuerdo con las
definiciones dadas para las funciones en el
programa. El proceso de cálculo de dicho
valor se conoce como evaluación del dato
de entrada. Dicha evaluación puede
realizarse de muchas formas, pero hay dos
estrategias fundamentales para llevarla a
cabo: la estrategia voraz (eager) y la
estrategia perezosa (lazy). La elección de
una
u
otra
tiene
importantes
repercusiones en la implementación y en
el comportamiento operacional del
proceso de evaluación.
Programación en Pseudocódigo
argumentos
t1,
...,
tn.
Ejemplo:
1) Para calcular el valor del dato de
entrada num1+num2 es preciso saber el
valor de ambos argumentos, num1 y
num2 en cualquier caso.
2) Para calcular el valor del dato de
entrada 0*num no es necesario evaluar
num, pues cualquier valor multiplicado
por 0 es 0.
Hay dos estrategias fundamentales para
llevar a cabo la evaluación del dato de
entrada:
La estrategia voraz (eager) evalúa todos
los argumentos de la llamada a función
antes de evaluar la función en si.
La ejecución de un programa funcional
consiste en el cálculo del valor asociado al
dato de entrada de acuerdo con las
definiciones dadas para las funciones en el
programa. Un dato de entrada es una
llamada a una función f sobre un conjunto
de argumentos t1, ..., tn que se expresa
como f(t1,...,tn). Para calcular el valor de
f(t1,...,tn) puede o no ser necesario
calcular primero los valores de los
PT Bachiller en Informática
111
Informática
Colegio Nacional de Educación Profesional Técnica
La estrategia perezosa (lazy) solo evalúa
los argumentos de la llamada a función si
es necesario hacerlo para evaluar la
función.
Lenguajes
LISP
LISP se encuentra entre los más antiguos
lenguajes de programación de alto nivel
aún en uso generalizado. Fue desarrollado
alrededor de 1958 por John McCarthy. La
idea de LISP surgió a partir de un sistema
lógico
llamado
"lambda
calculus''
desarrollado por Alonzo Church. Existen
diversas variantes (o dialectos) de LISP,
entre las cuales se encuentran Scheme, T,
etc. LISP llegó a ser fundamental como
lenguaje de programación para las
investigaciones de Inteligencia Artificial, y
sigue aún hoy siendo uno de los más
utilizados en este campo. En la década de
los '80 se intentó estandardizar el
lenguaje.
Programación en Pseudocódigo
lenguaje. De hecho,
se propone la
utilización de un subconjunto de las
muchas funciones disponibles para con
ellas examinar las técnicas que hacen de
LISP un lenguaje tan especial.
LISP: PARADIGMA DEL ESTILO DE
PROGRAMACIÓN FUNCIONAL. Una de Las
características de LISP es la posibilidad de
tratar las propias funciones como datos.
En LISP, funciones e incluso programas
enteros
pueden
ser
utilizados
directamente como entrada a otros
programas o subrutinas. En esto el
prototipo para la concepción del lenguaje
ha sido la estructura de las funciones
matemáticas. Todos sabemos cómo
resolver una expresión del tipo (8 * ((17 +
3) / 4)).
Como resultado surgió el Common LISP
cyas especificaciones se recogen en
Common LISP: The Language, 2nd Edition
(CLTL2). Common LISP es actualmente el
dialecto más difundido y la base para el
desarrollo
de
numerosas
implementaciones.
Las razones para ello se encuentran en el
hecho de poseer una de las formas de
sintaxis menos restrictivas entre los
lenguajes de alto nivel. Esto facilita su
aprendizaje, al ser muy corto el número de
estructuras y funciones que el estudiante
debe conocer para llegar a dominar las
técnicas de programación en este
112
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Primero hallaríamos el resultado de 17 +
3, que entonces dividiríamos entre 4, para
el resultado multiplicarlo por 8. Es decir,
que iríamos resolviendo los paréntesis más
interiores y pasando los resultados a las
operaciones descritas en los paréntesis
que los contienen.
(* 8 (/ (+ 3 17) 4)) sería la función LISP
equivalente.
*, / y + son nombres de funciones LISP.
Los números en (+ 3 17) son los
argumentos que se pasan a la función '+'.
Pero en (/ (+ 3 17) 4) a la función '/' se le
está pasando un argumento numérico 4,
pero también (+ 3 17), otra función con
dos argumentos numéricos.
Esta es la esencia de un lenguaje de
programación funcional y por eso decimos
que LISP lo es. "Programación funcional
significa,
según
Graham,
escribir
programas que operan a base de devolver
valores en lugar de producir efectos
colaterales. Estos efectos colaterales
incluyen cambios destructivos en los
objetos y la asignación de variables (con
setq, por ejemplo)." Sigue explicando
Graham que "una función destructiva es
una que puede alterar los argumentos que
se le pasan. Sólo unos pocos operadores
LISP están pensados para producir efectos
colaterales. En general, los operadores
propios del lenguaje están pensados de
manera tal que se invoquen para obtener
los valores que devuelven. Nombres como
sort (vl-sort), remove (vl-remove) o
substitute (subst) no deben llamarnos a
engaño.
Si
usted
quiere
efectos
Programación en Pseudocódigo
colaterales, utilice setq sobre el valor
devuelto.
Esta misma regla sugiere" -sigue
explicando Graham- "que algunos efectos
colaterales son inevitables. Tener la
programación funcional como ideal no
implica que los programas nunca debieran
tener efectos colaterales. Sólo quiere decir
que no deben tener más de los
necesarios."
Esta característica de la programación
funcional no es arbitraria.
Los programadores LISP no adoptaron el
estilo funcional por razones meramente
estéticas. Lo usan porque facilita su
trabajo. En el entorno dinámico de LISP,
los programas funcionales pueden ser
escritos a una
PT Bachiller en Informática
113
Informática
Colegio Nacional de Educación Profesional Técnica
velocidad poco usual, y a la vez, pueden
ser inusualmente confiables.
En LISP es comparativamente fácil el
depurar los programas. Una gran cantidad
de información se encuentra disponible en
tiempo de ejecución, lo que ayuda en el
rastreo de los errores. Pero aún más
importante es la facilidad con la que
pueden probarse los programas. No es
necesario el compilar el programa para
probar su funcionamiento como un todo.
Podemos
probar
las
funciones
individualmente, llamándolas desde el
nivel superior del evaluador.
Esta
comprobación
de
carácter
incremental es tan valiosa que el estilo de
programación LISP ha evolucionado para
aprovecharla. Los programas escritos en
un
estilo
funcional
pueden
ser
comprendidos una función a la vez, y
desde el punto de vista del lector, esta es
su principal ventaja. Sin embargo, el estilo
funcional se adapta perfectamente a la
comprobación incremental: los programas
escritos en este estilo pueden ser también
probados una función a la vez. Cuando
una función ni examina ni altera el estado
exterior, los errores se harán aparentes de
inmediato. Una función así diseñada sólo
puede afectar el mundo exterior a través
de los valores que devuelve. En la medida
que estos valores sean los esperados,
podemos confiar en el código que los
produjo.
Programación en Pseudocódigo
Tratan de aislar los efectos colaterales en
unas pocas funciones, de manera que la
mayor parte del programa pueda ser
escrito en un estilo puramente funcional.
Si una función debe producir efectos
colaterales, tratan de que al menos posea
una interfaz funcional.
Le dan a cada función un propósito único
y bien definido.
Cuando acaba de escribirse una función,
pueden probarla sobre una selección de
casos representativos, y una vez hecho
esto pasar a la próxima función.
En LISP, como en cualquier otro lenguaje,
el desarrollo se lleva a cabo en ciclos de
escritura y comprobación.
Los programadores LISP experimentados
de hecho diseñan sus programas de
manera que puedan ser fácilmente
probados.
114
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Pero en LISP el ciclo es muy corto:
funciones aisladas, e incluso partes de
funciones. Y si comprobamos todo a
medida que lo escribimos, sabremos
dónde buscar cuando se produzca un
error: en lo último que se escribió.
Hay implementaciones de LISP para uso en
el desarrollo de aplicaciones de todo tipo.
El lenguaje se ha normalizado con el
nombre de Common LISP (norma ANSI).
Camel
Ocaml es uno entre muchos lenguajes
funcionales (como Lisp, Scheme, Haskell)
que además de programación funcional
pura, permite programar empleando
características
imperativas,
algunas
características propias de lenguajes
orientados a objetos e incluye un sistema
de módulos que facilita el desarrollo de
proyectos grandes (con signaturas y
funciones).
Cuenta con un sistema de tipos fuerte,
con un derivador de tipos que facilita el
chequeo estático de programas sin
requerir del programador tiempo en
declaración explicita de tipos. Además de
tipos
básicos
(enteros,
flotantes,
booleanos, caracteres y cadenas) ofrece
diversas formas de construir nuevos tipos
como tuplas, arreglos, listas, registros,
conjuntos, streams y facilidades para
definir tipos recursivos, polimórficos y
paramétricos.
En cuanto a interpretación/compilación se
basa en un modelo de máquina abstracta
portable (máquina Zinc). Cuenta con un
interprete (ocaml) que es a su vez un
entorno interactivo útil para experimentar
y dos compiladores:
Se ha desarrollado desde 1992, con base
en su predecesor Caml Special Light (inicio
de la década 1990), cuyo predecesor a su
vez es Caml Light (1985-1990) que
pertenece a la familia de lenguajes de
programación funcionales ML (que se
inicio en la década de 1970).
Como los demás lenguajes funcionales
emplea un recolector de basura que
permite en muchos casos desentenderse
del manejo de memoria dinámica (el
recolector
elimina
automáticamente
memoria que no se usa --de forma que no
es necesario usar free como en C).
PT Bachiller en Informática
115
Informática
Colegio Nacional de Educación Profesional Técnica
Ocamlc que genera bytecode utilizable por
la máquina Zinc y portable a toda
arquitectura donde se ha portado la
máquina Zinc (incluyendo x386/OpenBSD,
x386/Linux, x386/Windows 95-NT, Mac,
Digital, Solaris, IRIX).
Ocamlopt que genera binarios para
diversas
arquitecturas
(incluyendo
procesadores i386 con sistemas operativos
OpenBSD y Linux).
Incluso hay un compilador sobre la
marcha (JIT o Just in Time Compiler) que
traduce en línea bytecode a código de
máquina.
Cuenta con herramientas que facilitan el
desarrollo como un depurador simbólico;
herramientas para análisis léxico y
sintáctico; herramientas para automatizar
compilación de proyectos grandes; editor
y visualizador gráfico de módulos; modos
para diversos editores; preprocesador muy
configurable pues permite redefinir la
sintaxis del lenguaje; extractor de
documentación técnica; medidor de
desempeño.
Programación en Pseudocódigo
oportunidades, el segundo puesto en 2 y
el tercero en uno.
En cuanto a licencia, las herramientas de
Ocaml emplean la GPL, mientras que las
librerías la LGPL la cual permite poner la
licencia que se desee a programas
producidos con Ocaml y enlazados con las
librerías.
Hope
Hope es un pequeño lenguaje de
programación funcional, con escritura
polimorfica y algebraica, patrón de
comprobaciones y funciones de orden
superior. Esta versión es un completo
intérprete.
Ciertos tipos de problemas pueden
programarse de forma MUY eficiente
empleando Ocaml como lo muestran los
resultados
en
las
competencias
internacionales ICFP realizadas desde
1998, en los que han participado grupos
de programadores empleando su lenguaje
de programación favorito (incluyendo
lenguajes imperativos como C, orientados
a objetos como Java y funcionales como
Ocaml). De las 5 versiones de 1998 a
2002, equipos que han programado en
Ocaml han ocupado el primer puesto en 3
116
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
que hacen uso de bucles while, do-while,
for, etc.
Función
Las
funciones
son
bloques
de
instrucciones que tienen por objeto el
alcanzar un resultado que sustituirá a la
función en el punto de invocación (las
funciones devuelven un resultado).
Cada función se evoca utilizando su
nombre en una expresión con los
argumentos actuales o reales encerrados
entre paréntesis.
Para hacer una referencia a una función se
invoca mediante un nombre y en caso de
existir, una lista de parámetros actuales
necesarios (argumentos). Los argumentos
deben coincidir en cantidad, tipo y orden
con los de la función que fue definida. La
función devuelve un valor único.
Ejemplo:
Obtener el sexto carácter de un nombre y
si dicho carácter no existe, se asumirá un
asterisco como tal.
Algo es recursivo si se define en términos
de sí mismo (cuando para definirse hace
mención a sí mismo). Para que una
definición recursiva sea válida, la
referencia a sí misma debe ser
relativamente más sencilla que el caso
considerado.
Ejemplo: definición de nº natural:
->
el
N
º
0
es
natural
-> El Nº n es natural si n-1 lo es.
En un algoritmo recursivo distinguimos
como mínimo 2 partes:
Caso trivial, base o de fin de recursión: Es
un caso donde el problema puede
resolverse sin tener que hacer uso de una
nueva llamada a sí mismo. Evita la
continuación indefinida de las partes
recursivas.
Función SEXTO(n:cadena):carácter
Inicio
si longitud(n) >= 6 entonces
SEXTO Subcadena(n,6,1)
en caso contrario
SEXTO ‘*’
Fin
Recursividad
El concepto de recursividad va ligado al de
repetición.
Son
recursivos
aquellos
algoritmos que, estando encapsulados
dentro de una función, son llamados
desde ella misma una y otra vez, en
contraposición a los algoritmos iterativos,
PT Bachiller en Informática
117
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Parte puramente recursiva: Relaciona el
resultado del algoritmo con resultados de
casos más simples. Se hacen nuevas
llamadas a la función, pero están más
próximas al caso base.
La recursividad es una manera elegante,
intuitiva y concisa de plantear una
solución, y es uno de los pilares de la
programación funcional. Pero no quiere
decir que sea un sistema eficiente, es
decir, que el número de operaciones que
hay que hacer sea inferior que si se utiliza
otra forma de resolverlo, como seria
mediante una estructura repetitiva. Al
contrario la recursividad es cara y exige un
mayor procesamiento.
Ejemplo:
//Función Fibonacci recursiva
FIB (X):
Inicio_Fibonacci
Si (X = 0 ó X = 1) entonces
FIB = X
Si no
FIB = FIB (X-1) + FIB (X-2)
Fin_si
Fin_Fibonacci
//Función Fibonacci no recursiva
FIB (X):
Inicio_Fibonacci
Si (X = 0 ó X = 1) entonces
FIB = N
Si no
A=0
B=1
Para (i = 2; i <= X; i++)
C=A+B
A=B
B=C
Fin_para
FIB = C
118
Fin_si
Fin_Fibonacci
Composición funcional
Un modelo de composición funcional es
aquel donde el resultado del cálculo de
una función es la entrada a la siguiente y
así
sucesivamente
hasta
que
la
composición resuelve el problema.
En este tipo de programación un
programa se concibe como un conjunto
de funciones, que se llaman unas a otras
con composición funcional para resolver
un problema.
Transparencia referencial
Decir que una función tiene transparencia
referencial, quiere decir que se comporta
como una función
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
matemática, en el sentido de que si recibe
un valor de entrada, siempre producirá el
mismo valor de salida y que el resultado
del cálculo de la función únicamente se
produce por el nombre de la función.
Función de orden superior
Esta es una característica fundamental que
deben tener las funciones que participen
en la construcción de un programa
funcional.
Una función de orden superior es aquella
que acepta como argumento otra función
que puede retornar como valor de la
función otra función. Es decir que tienen
el status de cualquier otro objeto. Pero
para que ello sea posible es necesario que
estas funciones tengan transparencia
referencial, es decir, que siempre que les
pase un mismo valor como argumento de
entrada deben devolver el mismo
resultado. Y este resultado ha de ser
devuelto por el nombre de la función. En
otras palabras, que se comporten como
las funciones matemáticas.
•
•
Programación en Pseudocódigo
Copiará el ejemplo //Función Fibonacci
recursiva en tu cuaderno.
Realizará el ejercicio paso a paso
introduciendo un valor diferente a “X”
para que aprecie su funcionamiento.
En programación funcional, un programa
consta de:
Un conjunto de operaciones primitivas
cuyo significado está predeterminado en
el sistema. Por ejemplo, la suma de
números enteros, la resta, el producto,
etc.
Un conjunto de definiciones de función,
establecidas por el programador, que
eventualmente emplearán las operaciones
primitivas. Por ejemplo, la función
factorial.
Repetición del ejercicio
Competencia Analítica
Identificar el concepto, características y
aplicación de la programación funcional.
El alumno:
PT Bachiller en Informática
119
Informática
Colegio Nacional de Educación Profesional Técnica
Un dato de entrada (entendido como la
aplicación de una de las funciones
definidas sobre otros datos)Por ejemplo:
fact(2*fact(2)).
2.2.2 Programación Lógica
Concepto
El arte de la programación consiste en dar
una serie de especificaciones, las cuales
dicen que resultados se requieren, para
que a partir de estas se conviertan en
código ejecutable, el cual sigue los
detalles de como los resultados son
llevados a cabo. La programación lógica
parte del establecimiento de una base de
datos de sentencias y reglas de inferencia
que son declaradas por el programador,
dada la naturaleza declarativa de la lógica.
A partir de esto la máquina resolverá las
cuestiones que se plantean mediante una
manipulación lógica. La idea principal que
esta atrás de la programación lógica es el
uso de la lógica matemática que se
traduce en una especificación mediante la
declaración de
fórmulas lógicas y la
computación es el proceso de deducción o
construcción de pruebas. Todo lo anterior
hace que la programación lógica sea
fundamentalmente diferente de los otros
lenguajes de programación.
Programación en Pseudocódigo
toma como un lenguaje de programación.
Un poco después Colmerauer lo lleva a
una implementación en donde lo bautiza
como PROLOG (PROgramming in LOGic). A
finales de los setentas, una de las
implementaciones relevantes fue la que
llevó a cabo David Warren [Warren ]. En
una máquina PDP-10 el denominado
PROLOG-10 o PROLOG de Edinburgo
[Pereira 1978], [Bowen 1981] y [Clocksin
1981].
Características
La programación Lógica está basada en la
noción de Relación. Debido a que en la
relación es un concepto mas general de
una Aplicación.
La programación lógica es un vástago de
la demostración mecánica de teoremas, en
donde el principio de resolución forma la
base de la mayoría de los sistema de
programación lógica. En 1974 Kowalski
[Kowalski 1974], introduce la idea de usar
lógica matemática, considerando un
subconjunto de la lógica de primer orden
llamada lógica de cláusulas de Horn, lo
120
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
La Programación Lógica es potencialmente
de alto nivel.
Los lenguajes de Programación Lógica
pueden explotar la Inteligencia Artificial.
Lenguajes
Prolog
PROLOG
es
la
abreviatura
de
PROgramación LOGica, con lo que
hacemos mención a la procedencia del
lenguaje:
Es una realización de lógica de predicados,
como lenguaje de programación.
Como una especie de semiestándar se han
establecido el DECsystem-10 PROLOG de
Edimburgo y el PROLOG descrito en el
libro "PROGRAMMING IN PROLOG" de
W.F.Clocksin y C.S.Melish.
Programación en Pseudocódigo
de conocimientos se le pueden formular
preguntas.
Los mecanismos importantes del PROLOG
son:
recursividad,
instanciación,
verificación, unificación, backtracking e
inversión.
La Recursividad representa la estructura
más importante en el desarrollo del
programa. En la sintaxis del PROLOG no
existen los bucles FOR ni los saltos; los
bucles WHILE son de difícil incorporación,
ya que las variables sólo pueden unificarse
una sóla vez. La recursión es más
apropiada que otras estructuras de
desarrollo para procesar estructuras de
datos recursivas como son las listas y
destacan en estos casos por una
La mayoría de los dialectos PROLOG se
basan en este y contienen el DECsystem10 PROLOG en su ámbito linguístico.
Al contrario que el LISP (y otros lenguajes),
en el PROLOG los programas son
confeccionados de forma distinta. "
Algorithm = Logic + Control". Con esto
podemos decir que los algoritmos pueden
ser divididos en su lógica y en sus
mecanismos de control.
La lógica se representa en forma de
predicados. Estos predicados aparecen en
tres formas distintas: como hechos, como
reglas y como preguntas. La lógica
formulada como hechos y reglas se define
como base de conocimientos. A esta base
PT Bachiller en Informática
121
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
representación más sencilla y de mayor
claridad.
La Instanciación es la unión de una
variable a una constante o estructura. La
variable ligada se comporta luego como
una constante.
La Verificación es el intento de derivar la
estructura a comprobar de una pregunta
desde la base de conocimientos, es decir,
desde los hechos y reglas. Si es posible, la
estructura es verdadera, en caso contrario
es falsa.
Perspectiva del lenguaje. El programa
prolog se compone de unos hechos
(datos) y un conjunto de reglas, es decir,
relaciones entre objetos de la base de
datos.
La Unificación es el componente principal
de la verificación de estructuras. Una
estructura estará comprobada cuando
puede ser unificada con un hecho, o
cuando puede unificarse con la cabecera
de una regla y las estructuras del cuerpo
de dicha regla pueden ser verificadas.
La ejecución del programa cargado en
memoria consiste en realizar una pregunta
de forma interactiva: el intérprete
generará por inferencia los resultados que
se deducen a partir del contenido de la
base de datos.
PROLOG está orientado a la resolución de
problemas mediante el cálculo de
predicados, basado en: Preguntas a la
base de datos. Pruebas matemáticas.
PROLOG tiene una sintaxis y semántica
simples. Sólo busca relaciones entre los
objetos creados, las variables y las listas,
que son sus estructuras básicas.
Objetos de datos
El programa PROLOG específica cómo
debe ser la solución, en vez de dar el
algoritmo para su resolución. La solución
se obtiene mediante búsqueda aplicando
la lógica de predicados.
Un ejemplo sencillo
122
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Tipos de datos primitivos: variables y
constantes:
Enteros
Reales
Caracteres
Los
identificadores
con
minúscula
representan hechos, los que van con
mayúscula variables. El alcance de una
variable es la regla donde aparece.
Tipos de datos estructurados:
Átomos: constantes y variables de cadena.
Listas, representadas entre [ ].
Tipos definidos por el usuario. Las reglas
para definir relaciones pueden actuar
como tipos de usuario.
Representación de almacenamiento.
Las reglas y hechos son almacenadas en
memoria como listas enlazadas.
La ejecución de prolog consiste en una
búsqueda en profundidad de un árbol
conteniendo todas las posibles soluciones.
Para cada una de ellas se evaluará su
corrección. La búsqueda se puede hacer
más eficiente mediante la poda del árbol
de búsqueda (corte).
Control de secuencia.
evaluación es secuencial.
El
orden
Cortes, (!), fuerza el retroceso en la
búsqueda. Esto puede impedir que se
encuentren ciertas soluciones, pero puede
hacer más eficiente la búsqueda.
Entrada y salida, nl y write.
Subprogramas
y
gestión
almacenamiento
de
PROLOG tiene dos modos: Modo consulta,
se introducen nuevas relaciones (hechos)
en el almacenamiento dinámico de la base
de datos. Modos pregunta, se ejecuta un
intérprete basado en pilas para evaluar las
preguntas del usuario.
Alcance de las variables: Ambiente local de
referencia, todas las variables son locales a
la regla en que están definidas.
de
Expresiones, operaciones aritméticas y
operadores relacionales. Not().
Enunciados. Hechos, relaciones que se
expresan en una consulta. Son tuplas con
un nombre de predicado y unos
argumentos.
Reglas, implicaciones que se expresan en
una operación consult.
Preguntas, sucesión de términos que
finalizan con un punto.
PT Bachiller en Informática
123
Informática
Colegio Nacional de Educación Profesional Técnica
La unificación hace interaccionar nombres
locales de una regla con los de otras
reglas.
Ambiente común de referencia, todos los
datos son compartidos.
Paso de parámetros, la unificación
proporciona el paso de parámetros entre
reglas.
Funciones normales, van integradas en el
lenguaje:
Consult(nommbrearchivo)
Fail, siempre fracasa.
See(nombrearchivo), lee las entradas de
un archivo y las incorpora al conjunto de
reglas.
Write(término).
Tell(término), reorienta la salida del write
al archivo.
Told, cierra el archivo anterior.
Nl, salto de línea.
Atom(X), devuleve cierto si X es un átomo.
Var(X), devuelve cierto si X es una
variable.
Integer(X), devuelve cierto si X es un
entero.
Trace, activa la depuración del programa.
Programación en Pseudocódigo
Alice
Alice es un sistema pionero para el
modelado
y
resolución
de
CSPs
(problemas
de
satisfacción
de
restricciones) de programación lógica con
restricciones. La caracterización de estos
lenguajes se da por:
La especificación del sistema particular de
restricciones.
La especificación de las reglas de
computación y selección.
De
cualquier
manera
la
mayoría
comparten el universo de Herbrand con
"=", pero añaden diferentes dominios y/o
algoritmos resolutores. La mayoría usan
las reglas estándar de Computación y
Selección de Prolog.
Evaluación del lenguaje: PROLOG va bien
para problemas de relaciones, por
ejemplo: Tratamiento del lenguaje natural,
y consulta de bases de datos.
A pesar de que es posible desarrollar
programas sin especificar el algoritmo de
resolución a veces hay que echar mano de
otro tipo de programación para hacer los
programas más eficientes, y a menudo se
emplea el corte para limitar el espacio de
búsqueda.
124
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Forma Clausal
Programación en Pseudocódigo
c) Que sólo existen condiciones (B1, B2, ...,
Bm no existen).
En la programación lógica son las
relaciones las que definen un programa y
la forma normal de representar una
relación es mediante la utilización de
cláusulas.
¿Qué
significa
una
cláusula
sin
condiciones? Quiere decir que el hecho es
cierto en todos los casos.
B1, B2, ..., Bm <- A1, A2, ..., An.
A este tipo de cláusulas se les denomina
«asertos» o «hechos», porque representan
verdades. Y tienen una gran importancia
en la programación lógica.
en que: A1, A2, ..., An son condiciones de
la cláusula y van unidas por la conjunción
«Y». Mientras B1, B2, ..., Bm son
conclusiones de la cláusula y van unidas
por la disyunción «O». Por eso, se dice que
las condiciones son conjuntivas y las
conclusiones disyuntivas.
EJEMPLO:
«Luis es varón», se representa por: varón
(Luis)
«María es madre», se representa por:
madre (María)
¿Qué
significa
una
cláusula
sin
conclusiones?
Una cláusula es una expresión de la forma:
Por ejemplo:
La relación que dice que «una persona es
padre si es varón y además es progenitor»
se representaría mediante la cláusula:
padre (X) <- varón(X), progenitor (X)
En este ejemplo: A1 es varón (X), A2 es
progenitor (X), y B1 es padre (X). Es decir
las condiciones de la cláusula son dos A1 y
A2; y la conclusión es una sola B1.
Al definir una relación de forma clausal se
puede uno encontrar con tres casos:
a) Que existan en la cláusula condiciones y
conclusiones.
b) Que sólo existen conclusiones (A1, A2,
..., An no existen).
PT Bachiller en Informática
125
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Quiere decir que esa información no es
cierta en ningún caso.
EJEMPLO:
«Luis no es varón» es falso, y se representa
por: <- varón (Luis)
«María no es madre» es falso, y se
representa por: <- madre (María)
A este tipo de cláusulas que tienen
condiciones sin conclusiones se les
denomina «negaciones».
Cuando una cláusula tiene ambas partes,
las conclusiones y las condiciones, se le
denomina «regla lógica». Así, la regla
lógica:
abuelo (X,Y) <- padre (X, Z), padre (Z, Y)
indica que «X es el abuelo de Y, si X es el
padre de Z y Z es el padre de Y».
La vaca, la sardina y el reno son animales.
La vaca y el reno son rumiantes, pero la
sardina no.
Un animal rumiante es mamífero.
Este sería de la forma:
animal (vaca)
animal (sardina)
animal (reno)
rumiante (vaca)
rumiante (reno)
<- rumiante (sardina)
mamífero (X)<- animal (X), rumiante (X)
En el programa se han definido cinco
asertos, una negación, y una regla lógica.
A toda esta información se le denomina
«base de hechos y reglas» o
En este instante ya se tienen todos los
ingredientes para poder construir un
programa lógico:
Los asertos que permiten declarar las
verdades (los hechos).
Las negaciones que permiten declarar las
falsedades.
Las reglas lógicas que permiten obtener
(inferir) unas conclusiones a partir de unas
condiciones.
EJEMPLO:
Si se quiere construir el programa lógico
«que permita inferir qué animal es un
mamífero» y se cuenta con la siguiente
información:
126
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
«base de conocimientos» en Inteligencia
Artificial.
¿Cómo se trabaja con la base de hechos y
reglas?
Después de que el programador la ha
creado, el usuario la «consulta» realizando
preguntas sobre ella (que se denominan
cuestiones lógicas). El sistema espera una
pregunta con un ? y responde a la
pregunta con un >.
En el ejemplo anterior se produciría el
siguiente diálogo entre el usuario y el
sistema:
? rumiante (sardina)
> falso
? mamífero (vaca)
> cierto
? mamífero (X)
> X= vaca, reno
Fue Alfred Horn, un lógico alemán, quién
en 1951 llegó a la conclusión que para
realizar una inferencia correcta y así
eliminar las ambigüedades, las cláusulas
sólo debían de tener una conclusión. Es
decir, debían de ser de la forma:
B <- A1, A2, ..., An
Podía tener una o varias condiciones A1,
A2, ..., An, pero con una única conclusión
B1. Por lo que si A1, A2, ..., An son ciertas,
se puede inferir que B1 es cierta. Horn
también
demostró
que
cualquier
problema que pueda expresarse en forma
lógica clausal se puede transformar en un
conjunto de «cláusulas de Horn».
NOTA: La vaca y el reno son mamíferos
porque son animales rumiantes.
Si se analiza la «base de hechos y reglas»
anterior, es decir, el programa lógico, se
comprueba que no hace falta señalar las
cláusulas que indiquen la falsedad de los
hechos, ya que se sobreentiende que si la
sardina no está como «aserto» de animal
rumiante quiere decir que no es rumiante,
por lo que se puede eliminar la negación
<- rumiante (sardina).
Esta forma de programar no es válida por
las ambigüedades que se pueden crear
con las reglas lógicas. Por ello en
programación lógica se utiliza un tipo de
cláusula muy especial que es la cláusula de
Horn.
Cláusula de Horn
PT Bachiller en Informática
127
Informática
Colegio Nacional de Educación Profesional Técnica
Ejemplo: En este caso se trata de crear un
programa «que permita inferir la
paternidad de una persona», para lo que
se cuenta con la siguiente información:
Programación en Pseudocódigo
1.- Estudiar el enunciado del problema
detenidamente buscando las relaciones
que puedan existir para resolver el
problema.
Luis es hijo de Fernando y María.
Beatriz es hija de Esteban y Teresa.
2.- Definir las relaciones encontradas y
transformarlas en cláusulas de Horn.
hijo (Luis, Fernando, María)
hijo (Beatriz, Esteban, Teresa)
padre (Y) <- hijo (X, Y, Z)
madre (Z) <- hijo (X, Y, Z)
NOTA: Indica el primer aserto que Luis es
hijo de Fernando y María; y el segundo,
que Beatriz es hija de Esteban y Teresa.
Las reglas lógicas señalan que si X es hijo
de Y y Z, entonces Y es el padre y Z es la
madre.
Por lo que a la pregunta (cuestión lógica):
3.- Codificar el programa lógico con un
pseudocódigo lógico o directamente con
instrucciones de un lenguaje lógico de
programación.
Observación
Competencia Analítica
Identificar las características y funciones
de la programación lógica.
? padre (X)
el sistema responderá:
> X= Fernando, Esteban
Y a la pregunta:
? madre (X)
el sistema responderá:
> X= María, Teresa
Desarrollo de programa lógico. Como ya
comentamos, un programa lógico está
basado en relaciones, por consiguiente los
pasos a seguir para el desarrollo de un
programa lógico son:
128
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
La programación lógica se fundamenta en
relaciones, que son entidades de un nivel
superior a las funciones.
El alumno:
•
Observará lo siguiente:
(1) planeta (Tierra)
(2) gira (Luna, tierra)
(3) vecino (X, Y) <- planeta (X), gira(Y, X)
(4) vecino (X, Y) <- vecino (Y, X)
Realización del ejercicio
Competencia Lógica
Reconocer el concepto, uso y aplicación
de relaciones en la programación lógica.
El alumno:
•
Identificará
¿Qué
relaciones
se
encuentran en la base de hechos
anterior?
Las relaciones se describen, en lógica,
mediante
cláusulas
que
presenten
condiciones y conclusiones. Cuando no
existen condiciones, las cláusulas se
denominan asertos o hechos. Cuando no
existen conclusiones, se denominan
negaciones. Y cuando existen ambos
términos, condiciones y conclusiones, se
denominan reglas lógicas.
Una regla lógica indica, pues, que se
verifican las conclusiones (parte izquierda
de la regla) si las condiciones (parte
derecha de la regla) son ciertas.
Un programa lógico es un conjunto de
asertos y reglas lógicas que definen una
«base de hechos y reglas» o una «base de
conocimientos» en Inteligencia Artificial,
siendo de gran
Comparación del resultado con otros
compañeros
Competencia para la
Vida
Cotejar
las
compañeros.
respuestas
con
sus
El alumno:
•
Comparará sus respuestas al ejercicio
para la comprobación de resultados.
PT Bachiller en Informática
129
Informática
Colegio Nacional de Educación Profesional Técnica
aplicación en esta área: para programar
juegos (como el ajedrez), para la
demostración automática de teoremas y
para el desarrollo de sistemas expertos.
Un sistema experto es un programa
informático en el que se han codificado
los conocimientos de un experto en una
actividad concreta de la vida, por lo que es
capaz de dar soluciones como si fuera el
propio experto. Así, si se cogen los
conocimientos de un médico experto en
enfermedades del corazón, y se crea un
programa con sus conocimientos, el
programa podrá dar un diagnóstico
experto de un enfermo que tenga una
serie de sintomatologías del corazón.
Comparar.
La programación lógica es convencional
(existe un diálogo entre el usuario y el
programa), es declarativa (se declaran
asertos y reglas, pero no se indica el orden
en que hay que ejecutarlas), y es recursiva
(la definición de las reglas se describen
recurrentemente).
términos
métodos.
Pensar en términos de objetos es muy
parecido a cómo lo haríamos en la vida
real. Por ejemplo vamos a pensar en un
coche para tratar de Modelizarlo en un
esquema de POO. Diríamos que el coche
es el elemento principal que tiene una
serie de características, como podrían ser
el color, el modelo o la marca. Además
tiene una serie de funcionalidades
asociadas, como pueden ser ponerse en
marcha o parar.
Pues en un esquema POO el coche sería el
objeto, las propiedades serían las
características como el color o el modelo y
los métodos serían las funcionalidades
asociadas como ponerse en marcha o
parar.
Por poner otro ejemplo vamos a ver cómo
modelizaríamos en un esquema
2.3.1 Programación Orientada a
Objetos
Concepto
La Programación Orientada a Objetos
(POO) es una forma especial de
programar, más cercana a como
expresaríamos las cosas en la vida real que
otros tipos de programación.
Con la POO tenemos que aprender a
pensar las cosas de una manera distinta,
para escribir nuestros programas en
130
Programación en Pseudocódigo
de
objetos,
propiedades,
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
POO una fracción, es decir, esa estructura
matemática que tiene un numerador y un
denominador que divide al numerador,
por ejemplo 3/2.
Programación en Pseudocódigo
su tipo. Nos podemos hacer a la idea de
que las propiedades son algo así como
variables donde almacenamos datos
relacionados con los objetos.
La fracción será el objeto y tendrá dos
propiedades,
el
numerador
y
el
denominador. Luego podría tener varios
métodos como simplificarse, sumarse con
otra fracción o número, restarse con otra
fracción, etc.
Métodos en las clases. Son las
funcionalidades asociadas a los objetos.
Cuando estamos programando las clases
las llamamos métodos. Los métodos son
como funciones que están asociadas a un
objeto.
Estos objetos se podrán utilizar en los
programas, por ejemplo en un programa
de matemáticas harás uso de objetos
fracción y en un programa que gestione
un taller de coches utilizarás objetos
coche. Los programas Orientados a
objetos utilizan muchos objetos para
realizar las acciones que se desean realizar
y ellos mismos también son objetos. Es
decir, el taller de coches será un objeto
que utilizará objetos coche, herramienta,
mecánico, recambios, etc.
Objetos en POO.
Los objetos son
ejemplares de una clase cualquiera.
Cuando creamos un ejemplar tenemos
que especificar la clase a partir de la cual
se creará. Esta acción de crear un objeto a
partir de una clase se llama instanciar (que
viene de una mala traducción de la
palabra instace que en inglés significa
Clases
en
POO.
Las
clases
son
declaraciones de objetos, también se
podrían definir como abstracciones de
objetos. Esto quiere decir que la definición
de un objeto es la clase. Cuando
programamos un objeto y definimos sus
características y funcionalidades en
realidad lo que estamos haciendo es
programar una clase. En los ejemplos
anteriores en realidad hablábamos de las
clases coche o fracción porque sólo
estuvimos definiendo, aunque por encima,
sus formas.
Propiedades en clases. Las propiedades o
atributos son las características de los
objetos. Cuando definimos una propiedad
normalmente especificamos su nombre y
PT Bachiller en Informática
131
Informática
Colegio Nacional de Educación Profesional Técnica
Ejemplar ). Por ejemplo, un objeto de la
clase fracción es por ejemplo 3/5. El
concepto o definición de fracción sería la
clase, pero cuando ya estamos hablando
de una fracción en concreto 4/7, 8/1000 o
cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que escribir
una instrucción especial que puede ser
distinta dependiendo el lenguaje de
programación que se emplee, pero será
algo parecido a esto.
miCoche = new Coche()
Con la palabra new especificamos que se
tiene que crear una instancia de la clase
que sigue a continuación. Dentro de los
paréntesis podríamos colocar parámetros
con los que inicializar el objeto de la clase
coche.
Programación en Pseudocódigo
llamada a un método. Por ejemplo,
cuando le decimos a un objeto coche que
se ponga en marcha estamos pasándole el
mensaje “ponte en marcha”.
Para mandar mensajes a los objetos
utilizamos el operador punto, seguido del
método que deseamos imbocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje
ponerseEnMarcha(). Hay que colocar
paréntesis igual que cualquier llamada a
una función, dentro irían los parámetros.
Otras cosas. La herencia sirve para crear
objetos que incorporen propiedades y
métodos de otros objetos. Así podremos
construir unos objetos a partir de otros sin
tener que reescribirlo todo.
Estados en objetos. Cuando tenemos un
objeto sus propiedades toman valores. Por
ejemplo, cuando tenemos un coche la
propiedad color tomará un valor en
concreto, como por ejemplo rojo o gris
metalizado. El valor concreto de una
propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto
para ver su valor o cambiarlo se utiliza el
operador punto.
miCoche.color = rojo
El objeto es miCoche, luego colocamos el
operador punto y por último el nombre e
la propiedad a la que deseamos acceder.
En este ejemplo estamos cambiando el
valor del estado de la propiedad del
objeto a rojo con una simple asignación.
Mensajes en objetos . Un mensaje en un
objeto es la acción de efectuar una
132
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
El polimorfismo sirve para que no
tengamos que preocuparnos sobre lo que
estamos trabajando, y abstraernos para
definir un código que sea compatible con
objetos de varios tipos.
Características
Abstracción. Es el mecanismo de diseño
en la POO. Nos permite extraer de un
conjunto
de
entidades
datos
y
comportamientos
comunes
para
almacenarlos en clases.
Encapsulamiento. Mediante esta técnica
conseguiremos que cada clase sea una
caja negra, de tal manera que los objetos
de esa clase se puedan manipular como
unidades básicas.
Programación en Pseudocódigo
que se realice. Es decir, podemos acceder
a una variedad de métodos distintos (con
el mismo nombre) mediante el mismo
mecanismo de acceso. En C++ el
polimorfismo se consigue mediante la
definición de clases derivadas, funciones
virtuales y el uso de punteros a objetos.
Lenguajes
C++
Se pronuncia "ce plus plus". Fue
desarrollado por Bjarne Stroustrup en los
Bell Laboratories a principios de la década
de
los
'80.
C++
introduce
la
programación orientada al objeto en C. Es
un lenguaje extremadamente poderoso y
eficiente. C++ es un súper conjunto de C,
para aprender C++
Los detalles de la implementación se
encuentran dentro de la clase, mientras
que desde el exterior, un objeto será
simplemente una entidad que responde a
una serie de mensajes públicos (también
denominados interfaz de la clase).
Herencia. Es el mecanismo que nos
permite
crear
clases
derivadas
(especialización) a partir de clases bases
(generalización). Es decir, podríamos tener
la clase "Empleado" (clase base) y la clase
"Vendedor" derivando de la anterior. Una
librería de clases (como la MFC) no es más
que un conjunto de definiciones de clases
interconectadas por múltiples relaciones
de herencia.
Polimorfismo. Esta característica nos
permite
disponer
de
múltiples
implementaciones de un mismo método
de clase, dependiendo de la clase en la
PT Bachiller en Informática
133
Informática
Colegio Nacional de Educación Profesional Técnica
significa aprender todo acerca de C, luego
aprender programación orientada al
objeto y el uso de éstas con C++.
El nacimiento de C está fuertemente
ligado a los sistemas Unix. Fue creado por
Dennis Ritchie sobre un DEC PDP-11 con
sistema operativo UNIX. Vista la ausencia
de restricciones y generalidad del
lenguaje, UNIX se reescribió en su mayor
parte en C, y asi continúa siendo en
nuestros días. Se crearon multitud de
portes para diferentes arquitecturas, y
durante mucho tiempo el estándar fue el
definido por el libro de D.Ritchie y
B.Kernighan
The
C
programming
Language de 1978. Sin embargo la falta
de un estándar de ley provocó que
empezasen a aparecer discrepancias entre
los
códigos
de
diferentes
implementaciones.
Programación en Pseudocódigo
Podemos afirmar sin miedo que la mayor
parte de sitemas operativos y aplicaciones
del mundo están escritas en C ó C++, los
lenguajes
que
todo
programador
profesional
debe
conocer.
C/C++ C es un lenguaje tipado pero su
tipificación no es estricta y esto es lo que
nos permite realizar virguerías con nuestro
código fuente. En C el concepto básico a
manejar en realidad es el de posición de
memoria y cóntenido de esa memoria.
Gracias a ello, la misma cosa puede
realizarse
de
varias
maneras
perféctamente válidas. C es un lenguaje
estructurado y tiene todos los constructos
necesarios para desarrollar programas
estructurados (y no estructurados, porque
hay goto
La asociación americana de estándares
tomo cartas en el asunto, y en 1983 creó
un comité para la estandarización de C. En
1990 se adopta definitivamente ANSI C.
Esta es la versión estándar de C que se usa
hoy en día.
C++ nace como una expansión de C.
Cuando la crísis del software hizo patente
que el modelo de programación
estructurada estaba agotado surgió un
nuevo paradigma: la programación
orientada a objetos. La extensiones de
C++ intentan cubrir este paradigma.
Inicialmente su creador Bjarne Stroustrup
lo llamo "C con clases", pero en el año
1983 se adoptó el ya familiar nombre de
C++. El lenguaje ha sufrido dos revisiones
en 1985 y en 1990.
134
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
también, aunque como dijo Djkstra, goto
es una sentencia peligrosa).
C++ usa la sintaxis de C y añade nuevos
constructos como son las clases, y todos
los conceptos relacionados con la
programación orientada a Objetos.
Herencia, polimorfismo, encapsulaciión,
sobrecarga, etc.
La libertad que da al programador es lo
que convierte a C/C++ en un arma de
doble filo. Se consigue códigos muy
eficientes sin tener que bajar a nivel de
ensamblador pero la complejidad para
mantener códigos grandes y depurarlos
puede llegar a ser inmanejable. Nunca
sabremos como definir C/C++, como el
cielo de los infiernos ó el infierno en el
cielo. Lo que es innegable es que hoy en
día, a pesar de nuevos lenguajes como
Java (que tiene una sintaxis muy parecida
a C/C++) C/C++ sigue funcionando a
pleno rendimiento, sobre todo en lo que
es mundo UNIX/Linux y Windows. Además
el uso de API's se ha generalizado hasta
ser el pan nuestro de cada día, lo que
hace que haya menos código místico e
indescifrable.
Programación en Pseudocódigo
objeto es, pues, una mesa, una silla, un
alumno, una clase, etc., pues son
elementos reales que se pueden
comprender y están bien definidos. Un
objeto también es un concepto abstracto
como
un
elemento
denominado
«Ordenador» que es capaz de recibir un
conjunto de números y los ordena
ascendente o descendentemente.
Las características que definen un objeto
son tres: su estado, su comportamiento
y su identidad.
Estado.
Viene determinado para el
conjunto de propiedades o atributos
que tiene el objeto (que es su estructura
estática), junto con los valores que
pueden asumir cada uno
Hay
compiladores
para
multiples
arquitecturas. Por nombrar algunos
usados actualmente, tenemos cc en
sistemas Unix, gcc en Linux y los
compiladores Borland C++ Builder y
Microsoft Visual C++ para DOS/Windows.
Objeto
Un objeto es un elemento real o
abstracto, que tiene un estado, un
comportamiento y una identidad. Un
PT Bachiller en Informática
135
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
de esos
dinámica).
atributos
(su
estructura
Así, en el caso del alumno Luis Pérez
Gómez sus atributos son: Nombre y
apellidos, edad, sexo, dirección donde
vive, curso en que está matriculado y
asignaturas en que se ha matriculado
dentro de ese curso. Estos atributos
constituyen su estructura estática,
porque son permanentes como tales.
Mientras que el contenido de ellos es su
estructura dinámica, que puede variar.
Por ejemplo, Luis este año está
matriculado en un curso y en unas
asignaturas, y al año que viene en otras.
También cambia su edad y puede
cambiar de dirección.
En el caso del objeto abstracto
«Ordenador», sus atributos son las
celdas donde almacena los números y
una variable que indica si los números
están ordenados ascendentemente,
descendentemente o están sin ordenar
(es su estructura estática). Mientras que
el contenido de las celdas y de la
variable, en un momento dado, es su
estructura dinámica.
— Curso:
— Asignaturas:
• Estructura dinámica (en 1996).
— Nombre y apellidos: Luis Pérez
Gómez
— Edad: 17
— Sexo: varón
— Dirección: calle del Pez, 24
— Curso: 3º BUP
— Asignaturas: Matemáticas, Física,
Química, Inglés, Historia
• Estructura dinámica (en 1997).
— Nombre y apellidos: Luis Pérez
Gómez
— Edad: 18
— Sexo: varón
Véanse ambos ejemplos con datos
concretos:
Objeto alumno "Luis Pérez Gómez".
• Estructura estática (su contenido no
importa).
— Nombre y apellidos:
— Edad:
— Sexo:
— Dirección:
136
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
— Dirección: calle Atocha, 18
— Curso: COU
— Asignaturas: Curso Completo
NOTA: El alumno Luis Pérez Gómez ha
cambiado, entre 1996 y 1997, de edad,
dirección, curso y asignaturas, porque es
un objeto activo.
Objeto "Ordenador".
• Estructura estática
— Celdas de memoria: c1, c2, …, cn.
— Variable de estado: ve.
• Estructura dinámica
Si se le pide al objeto que ordene
ascendentemente los números: 4, -5, 3,
10, -1, 2 su estructura dinámica va
variando de la siguiene forma:
El hecho de que un objeto tenga un
estado implica que ocupa un espacio,
sea en el mundo real o en la memoria
de la computadora, exista durante un
tiempo, cambie el valor de sus atributos,
y sea creado y destruido.
Así, el objeto alumno «Luis Pérez
Gómez» descrito anteriormente se crea
cuando se le matricula en el colegio;
existe como alumno durante toda su
vida escolar; cambia sus datos al
cambiar de curso o por otras
circunstancias, y deja de ser alumno
cuando sale del colegio.
Comportamiento. El comportamiento
de un objeto viene determinado por la
forma de actuar al recibir un mensaje
para que realice una acción.
— Estado inicial: Los números se leen y
se almacenan en las celdas.
c1
c2
c3
c4
c5
c6
4
-5
3
10
-1
2
ve=0
— Estado final ordenado: Los números
han sido ordenados ascendentemente.
c1
-5
c2
-1
c3
c4
2
3
ve=1
c5
4
c6
10
NOTA: Se ha supuesto que la variable de
estado (ve) del objeto «Ordenador»
toma los valores 0, 1 ó 2, según que la
información esté sin ordenar, ordenada
ascendentemente
u
ordenada
descendentemente.
PT Bachiller en Informática
137
Informática
Colegio Nacional de Educación Profesional Técnica
Un «mensaje» es una orden que se
manda a un objeto para que realice una
operación con un propósito específico.
Así, en el caso del objeto «Ordenador»,
se le podrían mandar los siguientes
mensajes:
— «leer_números», para que leyera
números enteros desde el teclado y los
almacenara en las celdas de memoria:
c1,c2,…,cn.
— «ordenar_ascendentemente», para
que el contenido almacenado en
c1,c2,…,cn,
quedase
ordenado
ascendentemente.
Programación en Pseudocódigo
— Los argumentos, que son los valores
que se transmiten con el selector y que,
en muchos casos, pueden ser nulos.
Por ejemplo:
Ordenador.Ordenar_ascendentemente(),
es un mensaje que se envía al objeto
receptor Ordenador, para que ordene
ascendentemente los números (selector),
y no se transmite ningún argumento.
Mientras que los mensajes:
Luis_Perez_Gomez.Asignaturas(curso)
Luis_Perez_Gomez.Asignaturas(todas)
— «ordenar_descendentemente», para
obtener un contenido con orden
descendente.
—
«indicar_estado»,
para
que
especificara mediante la variable de
estado ve si los números están sin
ordenar
(ve=0)
ordenados
ascendentemente (ve=1), u ordenados
descendentemente (ve=2).
— «mostrar_números», para que
visualizase por la pantalla de la
computadora los números almacenados
en las celdas de memoria c1,c2,…,cn.
Un mensaje viene definido por tres
componentes:
— El objeto receptor del mensaje, es
decir, al objeto que se envía el mensaje.
— El selector del mensaje, que es la
acción que se quiere que realice el
objeto.
138
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Señalan: el primero, que se desea
conocer las asignaturas del curso en que
Luis está matriculado, y el segundo, que
se desea conocer todas las asignaturas en
que está matriculado. En estos dos
ejemplos, el argumento del selector
(curso o todas) permite seleccionar unas
asignaturas u otras.
Identidad. Se entiende por identidad de
un objeto la propiedad característica que
tiene ese objeto que le distingue de
todos los demás. Realmente, es difícil
encontrar un dato específico que
permanentemente identifique al objeto.
Así, si se hace referencia a Luis Pérez
Gómez, ¿se puede seleccionar algún dato
que lo identifique durante toda su vida?:
Al hablar de los objetos, es importante
comentar el concepto de encapsulación.
Se dice que un objeto está encapsulado
(literalmente, está dentro de una
cápsula) cuando está protegido del
acceso indiscriminado de cualquier
persona. Así, cuando se tiene en las
manos un «transistor», se ve que se
puede encender o apagar, poner la
emisora que más guste, aumentar o
disminuir el volumen, pero no se puede
mover físicamente el dial ( esto se
realiza con un mando), ni tocar el
indicador de encendido, ni acceder a
otras cosas que están dentro del
transistor. Esto último lo debe tocar un
profesional.
— ¿Su nombre? - Lo puede cambiar en
el Registro Civil.
— ¿Su edad? - Cambia continuamente.
— ¿Su DNI?, ¿Su sexo? - También
pueden cambiar.
Pero es indudable que pasará el tiempo
y Luis Pérez no perderá su identidad y se
podrá diferenciar de todas las demás
personas.
Si en la vida real es difícil identificar
permanentemente un objeto que
evoluciona, mucho más lo es en el
mundo de la computadora.
Normalmente se utiliza, como en la vida
real, un nombre definido por el
programador que lo identifique. Así, en
el caso del objeto anterior que lee datos
y
los
ordena
ascendente
o
descendentemente se le ha identificado
con la palabra «Ordenador».
PT Bachiller en Informática
139
Informática
Colegio Nacional de Educación Profesional Técnica
Por ello, se dice que:
— El dial, el indicador de encendido y la
circuitería están encapsuladas.
— Los mandos de sintonía, volumen,
encendido/apagado, etc., no están
encapsulados y son de acceso normal
para todos los usuarios del transistor.
La encapsulación es el proceso que
aplica el diseñador de un objeto para
ocultar aquellos detalles del objeto que
no son específicamente necesarios para
su uso. A la encapsulación se le
denomina también «ocultamiento de
información».
Programación en Pseudocódigo
La interfaz del transistor son el
interruptor de encendido/apagado, los
mandos de sintonía, volumen,…; todos
ellos, elementos que permiten su manejo.
Un objeto es, pues, un elemento
autónomo de información, que tiene una
estructura definida por sus atributos o
propiedades y que proporciona unos
servicios que definen su comportamiento.
Su estructura está encapsulada (está
oculta al acceso del usuario) y sus servicios
no. Estos servicios, que definen la interfaz
del objeto, son lo que solicita el usuario
para que el objeto realice una acción
específica.
Así, en el ejemplo del objeto
«Ordenador», parece claro que deberían
estar encapsuladas la celdas de memoria
c1,c2,…,cn; y la variable de estado ve, ya
que el usuario que maneja este objeto no
necesita acceder directamente a estos
datos. Mientras que no deberían estar
encapsuladas las operaciones que realiza:
«leer_números»,
«ordenar_ascendentemente»,
…,
«mostrar_números».
Por lo tanto, un objeto, que es una
unidad indivisible, tiene una parte interna
que no es accesible al usuario y una parte
externa que sí que es accesible. A esta
parte accesible se le llama la interfaz (o
protocolo) del objeto y lo constituye el
conjunto de servicios que proporciona el
objeto. Es realmente mediante esta
interfaz como el usuario maneja el
objeto.
140
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Clase
Los objetos no aparecen así porque así,
es necesario construirlos (en la
terminología orientada a objetos se dice
crearlos). Para crear un objeto, al igual
que para producir un billete de Banco,
es necesario disponer de una matriz o
plantilla que le permita crear muchos
objetos como ese. Objetos que tienen
todos los mismos comportamientos,
actúan igual, y la misma estructura
estática con los mismos atributos.
La clase es la plantilla que permite crear
objetos de la misma estructura y
comportamiento. Pero se ha de tener en
cuenta que los valores de los atributos
de cada objeto pueden ser diferentes,
cosa que no ocurre con los billetes de
Banco que salen del mismo molde.
Programación en Pseudocódigo
cuando se les envíe el mismo mensaje,
aunque el resultado será diferente. Así,
el mensaje:
Luis_Pérez_Gómez.Asignaturas_matricul
ado(), proporcionará:
• Matemáticas, Física, Química, Inglés e
Historia.
Mientras que el mensaje:
Luisa_Alvarez_Gómez.Asignaturas_matri
culado(), proporcionará:
• Todas las de 1er curso.
EJEMPLO: Si se tiene la plantilla (clase)
alumno, que se ha visto anteriormente,
cuya estructura está definida por los
atributos: Nombre y Apellidos, Edad,
Sexo, Dirección, Curso y Asignaturas. Se
puede crear con esta clase el objeto:
Luis Pérez Gómez, 17 años, varón, con
dirección en la calle del Pez 24,
matriculado en 3º BUP en las
asignaturas de Matemáticas, Física,
Química, Inglés e Historia.
O el objeto: Luisa Alvarez Gómez, 15
años, mujer, con dirección en la calle
Marquez 12, matriculada en 1º BUP en
todas las asignaturas.
Evidentemente, ambos objetos alumnos
van a proporcionar los mismos servicios
PT Bachiller en Informática
141
Informática
Colegio Nacional de Educación Profesional Técnica
Las clases, al igual que los objetos que
salen de ellos están formadas por dos
partes:
Una la constituyen las variables de la
clase. Estas variables son los elementos
que definen los atributos de los objetos.
Y la otra, los métodos de la clase, que
van a ser los servicios que proporcionan
los objetos. Es decir, una clase es una
plantilla con variables y métodos. De esta
plantilla salen los objetos (que son
instancias de la clase) con unos atributos
y unos servicios. Los atributos son las
variables de la clase y los servicios son los
métodos de la clase.
Programación en Pseudocódigo
rectángulo, y se representa en OO Esto
quiere decir que se tendrá un prototipo
persona o rectángulo y un prototipo
empleado o cuadrado que derivan de
ellos. Como se indica a continuación:
Clase persona {
// variables de persona
nombre, edad, peso, altura
públicos:
// métodos de persona
persona(nombre,edad,peso,altura)
// constructor
datos_persona() // proporciona
nombre, edad,
peso
y
altura
Pero, ¿cómo se crean estos objetos a
partir de la clase? El sistema es muy
sencillo. Dentro de la clase existe un
método que es el constructor y se encarga
de construir todos los objetos que salen
de esa clase de forma que tengan la
misma estructura que la clase. Asimismo,
dentro de la clase se suele incorporar otro
método (el destructor) que se le llama
automáticamente cuando se destruye el
objeto.
Herencia
El concepto de herencia en orientación a
objetos deriva del concepto de herencia
biológica, en el que un descendiente (por
ejemplo,
un
hijo)
hereda
las
características de sus ascendientes (por
ejemplo, los padres). Además, es normal
que el descendiente tenga alguna
característica propia no heredada.
Así, se dice que un empleado es una
persona, y un cuadrado es un tipo de
142
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
actualiza_persona(...) // actualiza
nombre, edad,
peso
y
altura
...
};
clase empleado: persona{
// variables de empleado
empresa,
tipo_trabajo,
departamento, retribución
públicos:
// métodos de empleado
empleado(nombre,edad,peso,altura,em
presa,
tipo_trabajo,...)
datos_empleado()
//
proporciona los de
empleado y los de persona
actualiza_empleado(...)
//
actualiza
Programación en Pseudocódigo
suyos propios (empresa, tipo_trabajo,…)
más los que hereda de persona
(nombre, edad, peso,…). Y los métodos
de empleado son los suyos propios: el
constructor;
datos_empleado()
que
proporciona todos los datos del
empleado y de la persona, para lo cual
tendrá que llamar al método datospersona(); actualiza_empleado(…) que
actualiza sólo los datos propios del
empleado;…. Y los métodos de persona,
descritos anteriormente, que hereda.
Así, el siguiente programa:
// Programa principal
Inicio
empleado
e1("Luis
Pérez”,25,75,1.75,"Iberia",
"analista","informático",...)
empresa,
tipo_trabajo,
departamento, //
retribución
...
};
La clase persona tiene como variables
propias el nombre, la edad, el peso y la
altura. Y como métodos: el constructor
de personas; datos_persona() que
proporciona todas las variables de la
persona;
actualiza_persona(…)
que
permite actualizar el nombre, la edad, el
peso o la altura de las personas; etc.
Mientras que la clase empleado, que
deriva de la clase persona, es una
subclase de persona (otras subclases de
persona son empresario, autónomo,…).
Por ello, los datos de empleado son los
PT Bachiller en Informática
143
Informática
Colegio Nacional de Educación Profesional Técnica
e1.datos_persona() // nombre,
edad, peso y altura
e1.datos_empleado() // nombre,
edad, peso, altura,
empresa, // tipo_trabajo,...
e1.actualiza_empleado(empresa="
TWA") // modifica
Iberia por TWA
...
Fin
Crea un objeto empleado e1; . Una
parte es la de «persona» que hereda, y
otra es la específica de «empleado». Por
ello, cuando se le manda el mensaje
e1.datos_persona() utiliza el método de
la clase persona y visualiza «Luis Pérez,
25 años, 75 Kg, 1,75 m de alto». Y
cuando se le manda el mensaje
e1.datos_empleado(), utiliza el método
de la clase empleado y visualiza todos
los datos: «Luis Pérez, 25 años, 75 Kg,
1,75 m de alto, trabaja en Iberia, como
analista, en Informática, con una
retribución de tres millones».
Programación en Pseudocódigo
reutilizar el código de la clase persona) y
para ampliarlo (por ejemplo, la clase
persona se amplía por herencia con la
clase empleado).
En la Programación Orientada a Objetos
un problema se modela diseñando los
objetos, que interactúan entre ellos
mandándose mensajes (como en la vida
real).
Un objeto es una entidad autónoma que
tiene un estructura, un comportamiento
y una identidad que lo diferencia de
todos los demás. La estructura viene
definida por los atributos del objeto, su
comportamiento por las operaciones (o
servicios) que proporciona el objeto
El
mensaje
e1.actualiza_empleado(empresa=
«TWA»), cambia la empresa donde
trabaja, de Iberia a la TWA.
Gracias a la herencia el programador se
ahorra tener que codificar gran parte del
programa. Por ejemplo, si la clase
persona ya estuviera codificada debido al
desarrollo de un programa anterior, el
programador la importaría a su
programa y sólo tendría que codificar la
clase empleado, y el programa principal.
Por ello, se dice que la herencia es el
mecanismo apropiado para reutilizar
código ya programado (por ejemplo,
144
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
y su identidad por el nombre del objeto.
El hecho de que un objeto incorpore su
estructura y comportamiento juntos en
una misma unidad autónoma, se
denomina «encapsulación». Un objeto es
una cápsula que contiene sus atributos y
las operaciones que puede realizar.
Los objetos se obtienen de «plantillas»
(clases) que proporcionan elementos con
la
misma
estructura
estática
y
comportamiento. Las clases constan de
dos partes: las variables y los métodos.
Las variables definen los atributos de los
objetos, y los métodos definen los
servicios. Las variables son privadas, es
decir, sólo se puede acceder a ellas desde
los propios métodos de la clase, mientras
que los métodos son públicos para que
puedan ser solicitados por otras clases o
por el programa principal; por ello, al
conjunto de métodos de una clase al que
se puede acceder desde el exterior de la
clase se llama la interfaz o protocolo de
la clase.
Programación en Pseudocódigo
ser una subclase de otra superior).
Mientras que en la herencia múltiple, una
clase hereda a la vez de varias
superclases.
2.3.2 Programación
eventos
dirigida
por
Concepto
Los programas dirigidos por eventos son
los programas típicos de Windows, tales
como
Netscape,
Word,
Excel,
PowerPoint y otros. Cuando uno de
estos programas ha arrancado, lo único
que hace es quedarse a la espera de las
acciones del usuario, que en este caso son
llamadas eventos.
Los objetos no son elementos todos
iguales, ya que su estructura dinámica les
diferencia a unos de otras.
Al igual que como en la vida real los hijos
heredan las propiedades de los padres,
los objetos derivados heredan los
atributos y los servicios de sus clases
base. Dicho de otra forma, las subclases
heredan de las superclases.
Esta herencia puede ser simple o
múltiple. En el primer caso, cada subclase
tiene una única superclase de la que es
derivada (aunque esta superclase puede
PT Bachiller en Informática
145
Informática
Colegio Nacional de Educación Profesional Técnica
El usuario dice si quiere abrir y modificar
un fichero existente, o bien comenzar a
crear un fichero desde el principio. Estos
programas pasan la mayor parte de su
tiempo esperando las acciones del usuario
(eventos) y respondiendo a ellas. Las
acciones que el usuario puede realizar en
un
momento
determinado
son
variadísimas, y exigen un tipo especial de
programación: la programación dirigida
por eventos orientada a eventos. Este
tipo de programación es sensiblemente
más complicada que la secuencial y la
interactiva, pero con los lenguajes visuales
de hoy, se hace sencilla y agradable.
Los lenguajes visuales orientada al evento
y con manejo de componentes dan al
usuario que no cuenta con mucha
experiencia en desarrollo, la posibilidad de
construir
sus
propias
aplicaciones
utilizando interfaces gráficas sobre la base
de ocurrencia de eventos.
Programación en Pseudocódigo
elegir una opción de un menú, el escribir
en una caja de texto, o simplemente
mover el ratón. Más adelante se verán los
distintos tipos de eventos reconocidos por
Windows 95 y por Visual Basic. Cada vez
que se produce un evento sobre un
determinado tipo de control, el programa
arranca una determinada función o
procedimiento que realiza la acción
programada por el usuario para ese
evento concreto. Estos procedimientos se
llaman con un nombre que se forma a
partir del nombre del objeto y el nombre
del evento.
Lenguajes
HTML
Para soportar este tipo de desarrollo
interactúan dos tipos de herramientas,
una que permite realizar diseños gráficos
y, un lenguaje de alto nivel que permite
codificar los eventos. Con dichas
herramientas es posible desarrollar
cualquier tipo de aplicaciones basadas en
el entorno.
Características
Las acciones del usuario sobre el
programa se llaman eventos. Son eventos
típicos el click sobre un botón, el hacer
doble click sobre el nombre de un fichero
para abrirlo, el arrastrar un icono, el pulsar
una tecla o combinación de teclas, el
146
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
El HTML (Hyper Text Markup Language) es
un lenguaje que sirve para escribir
hipertexto, es decir, documentos de texto
presentado de forma estructurada, con
enlaces (links) que conducen a otros
documentos o a otras fuentes de
información (por ejemplo bases de datos)
que pueden estar en tu propia máquina o
en máquinas remotas de la red.
Todo ello se puede presentar acompañado
de cuantos gráficos estáticos o animados
y sonidos seamos capaces de imaginar.
Por supuesto, la estética de los
documentos escritos en HTML no se limita
a texto digamos normal; consigue todos
los efectos que habitualmente se pueden
producir con un moderno procesador de
textos: negrita, cursiva, distintos tamaños
y fuentes, tablas, párrafos tabulados,
sangrías, incluso texto y fondo de página
de colores, y muchos más.
Programación en Pseudocódigo
sinónimos debido a que el browser Mosaic
del
NCSA
(National
Center
for
Supercomputing Applications) era el más
extendido debido a las mejoras que
incorporaba.
Era entonces cuando nace HTML 2.0 en un
draft realizado también por Dan Connelly.
El crecimiento exponencial que comienza
a sufrir el sistema lleva a organizar la First
International WWW Conference en Mayo
de 1994. El principal avance de la versión
2.0 de HTML es la incorporación de los
llamados forms, formularios que permiten
que el usuario cliente envíe información al
servidor y ésta sea recogida y procesada
allí: Precisamente con este fin, NCSA
presenta la especificación del CGI,
El lenguaje en sí es sencillo de entender,
HTML como tal NO es un lenguaje de
programación, sino un lenguaje de
presentación
de
información
y
documentos varios.
El lenguaje HTML nace en 1991 de manos
de Tim Berners-Lee de CERN como un
sistema hipertexto con el único objetivo
de servir como medio de transmisión entre
físicos de alta energía como parte de la
iniciativa WWW. En 1993 Dan Connelly
escribe el primer el primer DTD (Document
Type Definition) de SGML describiendo el
lenguaje. En 1994 el sistema había tenido
tal aceptación que la especificación se
había quedado ya obsoleta. Por aquel
entonces WWW y Mosaic eran casi
PT Bachiller en Informática
147
Informática
Colegio Nacional de Educación Profesional Técnica
Common Gateway Interface, versión 1.0
que define un interfaz entre programas
ejecutables y el sistema WWW. Con la
incorporación de los forms, aparece por
primera vez campos donde el usuario
puede escribir, menús pull-down y los
denominados radio-buttons (pulsadores)
integrados en páginas WWW.
Desde entonces el Lenguaje ha seguido
creciendo como algo dinámico como una
lengua humana, algo vivo, siendo
modificado sobre todo por las personas
que lo utilizan. Así, una evolución con el
lenguaje suele seguir de una propuesta
que es adoptada por algunos clientes
(browsers). Con el uso se ve si es eficiente
y es adoptada y si es así, finalmente se
incorpora al standar.
Programación en Pseudocódigo
visualizador de Internet como Netscape o
Explorer.
El lenguaje HTML se construye a base de
códigos como <B>, que significa que el
texto que le sigue está en negrita. Este
cambio de estilo se desactiva con </B>
Hay que indicar que es indiferente utilizar
mayúsculas o minúsculas para escribir el
código, es decir, que <B> produce el
mismo efecto que <b>, aunque el uso de
las mayúsculas facilita la lectura del
documento en HTML y el reconocimiento
de los códigos. El diseño básico de un
documento HTML exige ciertas reglas
sobre la distribución de la página. Esta
debe comenzar con el código <HTML> y
finalizar con </HTML>.
El HTML (HyperText Markup Language o,
libremente traducido, lenguaje de enlaces
hipertexto) no tiene nada que ver con un
lenguaje de programación, quizá se
parezca más al uso de un procesador de
texto para MS-DOS como el Wordperfect
por la utilización de códigos de comienzo
y finalizado de estilo. Además de resultar
bastante más sencillo, no se necesita
ninguna herramienta de programación,
compilador o similares, sino que cualquier
editor de texto como el "edit" del DOS, por
ejemplo, puede servir para realizar las
páginas más sorprendentes.
Para la realización, conversión y
tratamiento de imágenes cualquier
utilidad de dominio público como Paint
Shop Pro es perfectamente válida. Por
último, para ir observando cómo cambia
la página es necesario un navegador o
148
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Dentro de estos códigos la página posee
dos partes: una cabecera indicada con
<HEAD> y finalizada con </HEAD> y un
cuerpo de la página iniciado con <BODY>
y finalizado con </BODY>. La cabecera se
suele utilizar para establecer únicamente
el título de la ventana y el cuerpo para
diseñar el resto de la página. Indicar que
<TITLE> y </TITLE> es para definir el
título de la ventana.
Una vez se tengan sus paginas listas para
ser publicadas en Internet, necesitará un
servidor de paginas Web donde alojarlas.
Y si tienen un tamaño mas grande que el
permitido, se tendrá que usar un
programa de FTP para poder subirlas a la
red. Un servidor Web es un ordenador
que esta permanentemente conectado a
Internet, por lo que situando nuestras
paginas en el, estas serán accesibles a
todo el mundo. Generalmente los
proveedores de Internet ofrecen a sus
clientes espacios Web gratuitos para
publicar paginas personales. o con costos
dependiendo de tus necesidades...
Programación en Pseudocódigo
"comprendan" en su totalidad el contenido
de un documento.Básicamente, el HTML
consta de una serie de órdenes o
directivas, que indican al visor que
estemos
utilizando,
la
forma
de
representar los elementos (texto, gráficos,
etc...) que contenga el documento.
JAVA
Java es una tecnología que hace sencilla la
construcción de aplicaciones distribuidas,
programas que son ejecutables por
múltiples ordenadores a través de la red.
En el estado del arte en la programación
de red, Java promete extender el papel de
Internet desde el terreno de las
comunicaciones hacia una red en la cual
Hyper Text Markup Language: es un
sistema para estructurar documentos.
Estos documentos pueden ser mostrados
por los visores de paginas Web en
Internet, como Netscape, Mosaic o
Microsoft Explorer etc. Por el momento no
existe un estándar de
HTML ya que tanto Netscape como
Microsoft se empeñan en incluir directivas
que solo funcionan con sus respectivos
navegadores. De cualquier manera existen
diferentes revisiones o niveles de
estandarización, el 1.0, el 2.0 y el 3.0 etc,
lo que produce que algunos visores no
PT Bachiller en Informática
149
Informática
Colegio Nacional de Educación Profesional Técnica
puedan
ejecutarse
las
aplicaciones
completas. Su novedosa tecnología
permitirá a los negocios proporcionar
servicios de transacción a gran escala y en
tiempo real y contener informacion
interactiva en Internet. Java simplifica
también la construcción de agentes
software, programas que se mueven a
través de la red y desempeñan funciones
en ordenadores remotos en nombre del
usuario. En un futuro cercano, los usuarios
podrán enviar agentes software desde sus
PCs
hacia
Internet
para
localizar
información específica o para realizar
transacciones en el menor tiempo posible
en cualquier lugar del mundo.
Java llevará estos adelantos todavía más
lejos
haciendo
posible
suministrar
aplicaciones completamente interactivas
vía Web. Las razones por las cuales se ha
prestado tanta atención al lenguaje Java
podrían resumirse en la siguiente lista de
posibilidades que Java ofrece a sus
usuarios:
Escribir programas fiables y robustos.
Programación en Pseudocódigo
Breve Historia sobre Java. En 1990, Sun
Microsystems comenzó un proyecto
llamado Green para desarrollar software
destinado a electrónica de consumo.
James Gosling, un veterano en el diseño
de software de red, fue asignado al nuevo
proyecto. Gosling comenzó a escribir
software en C++ para utilizarlo en
aparatos como tostadoras, videos, etc.
Este software se utilizó para crear
electrodomésticos
más
inteligentes,
añadiéndoles
displays
digitales
o
utilizando inteligencia artificial para
controlar mejor los mecanismos. Sin
embargo, pronto se dio cuenta de que
C++ era demasiado susceptible a errores
que pueden detener el sistema. Y aunque
todo el mundo está acostumbrado a que
el ordenador se cuelgue, nadie espera que
su tostadora deje de funcionar.
Construir
una
aplicación
para
prácticamente cualquier plataforma, y
ejecutar dicha aplicación en cualquier otra
plataforma soportada sin tener que repetir
la compilación del código.
Distribuir sus aplicaciones a lo largo de la
red de una forma segura.
En particular, los programas Java se
pueden incrustar en documentos Web,
convirtiendo
páginas
estáticas
en
aplicaciones que se ejecutan en el
ordenador del usuario.
150
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
La solución de Gosling a este problema
fue un nuevo lenguaje llamado Oak. Oak
mantuvo una sintaxis similar a C++ pero
omitiendo
las
características
potencialmente peligrosas. Para conseguir
que fuese un lenguaje de programación
de sistemas controladores eficiente, Oak
necesitaba poder responder a eventos
provenientes del exterior en cuestión de
microsegundos. También era necesario
que fuese portátil; esto es, que fuese
capaz de ejecutarse en un determinado
número de chips y entornos diferentes.
Esta independencia del hardware podría
proporcionar al fabricante de una
tostadora cambiar el chip que utiliza para
hacerla funcionar sin necesidad de
cambiar el software. El fabricante podría
utilizar también partes del mismo código
que utiliza la tostadora para hacer
funcionar un horno.
Programación en Pseudocódigo
presentado en Sun World 1995. Incluso
antes de la primera distribución del
compilador de Java en Junio de 1996, Java
ya era considerado como el estándar en la
industria para la programación en
Internet.
La Arquitectura Java. La fortaleza de Java
reside precisamente en su arquitectura
única.
Los
diseñadores
de
Java
necesitaban un lenguaje que fuera, sobre
todo, sencillo de utilizar para el
programador. A pesar de todo, y con el
propósito de crear aplicaciones de red
eficientes, Java necesitaba también la
posibilidad de ejecutarse de forma segura
en la red y trabajar en una amplísima
gama de plataformas. Java cumple todos
estos puntos y muchos más.
Esto podría reducir costos, tanto de
desarrollo
como
de
hardware,
aumentando también su fiabilidad.
Al mismo tiempo que Oak maduraba, la
WWW se encontraba en su periodo de
crecimiento y el equipo de desarrollo de
Sun se dio cuenta de que Oak era
prefectamente
adecuado
para
la
programación en Internet. En 1994
completaron su trabajo en un producto
conocido como WebRunner, un primitivo
visor Web escrito en Oak. WebRunner se
renombró posteriomente como HotJava y
demostró el poder de Oak como
herramienta de desarrollo en Internet.
Finalmente, en 1995, Oak se renombró
como Java por razones de marketing y fue
PT Bachiller en Informática
151
Informática
Colegio Nacional de Educación Profesional Técnica
Cómo trabaja Java. Como muchos otros
lenguajes de programación, Java utiliza un
compilador para convertir el código
fuente, legible para el ser humano, en
programas ejecutables. Los compiladores
tradicionales genera código que puede
ejecutarse únicamente por un hardware
específico. Los compiladores Java generan
código binario o bytecode independiente
de la arquitectura. Estos bytecodes se
ejecutarán
exclusivamente
en
una
Máquina Virtual Java, Virtual Machine,
VM, un procesador Java idealizado que
normalmente
se
implementa
por
software, aunque la VM se ha
implementado también como un chip
hardware por Sun y otros.
Los archivos binarios Java se denominan
archivos de clases debido a que contienen
clases simples Java. Para ejecutar
bytecodes, la máquina virtual utiliza
cargadores de clases para obtener los
bytecodes del disco o de la red. Cada
archivo de clases se lleva entonces a un
verificador de bytecodes que se asegura
de que la clase tienen un formato correcto
y que no llegará a corromper la memoria
cuando se ejecute. Una vez verificados los
bytecodes
se
interpretan
por
un
interprete.
Programación
control
dirigida
Programación en Pseudocódigo
Lectura de los datos ingresados.
Procesamiento de los datos.
Visualización o ejecución de los
resultados.
Programación dirigida por los
eventos
En una aplicación controlada por eventos,
el
código
no
sigue
una
ruta
predeterminada;
ejecuta
distintas
secciones de código como respuesta a los
eventos.
Los
eventos
pueden
desencadenarse por acciones del usuario,
por mensajes del sistema o de otras
aplicaciones, o incluso por la propia
aplicación. La secuencia de estos eventos
determina la secuencia en la que se
ejecuta el código, por lo
por
Los programas dirigidos por control se
ejecutan típicamente desde una línea de
comando o automáticamente desde otra
aplicación (tipo scheduler) y tienden al
siguiente patrón:
Inicialización interna de los datos.
152
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
que la ruta a través del código de la
aplicación es diferente cada vez que se
ejecuta el programa.
Puesto que no puede predecir la secuencia
de los eventos, el código debe establecer
ciertos supuestos acerca del "estado del
mundo" cuando se ejecute. Cuando haga
suposiciones (por ejemplo, que un campo
de entrada debe contener un valor antes
de ejecutar un procedimiento para
procesar ese valor), debe estructurar la
aplicación de forma que asegure que esa
suposición siempre será válida (por
ejemplo, deshabilitando el botón de
comando que inicia el procedimiento
hasta que el campo de entrada contenga
un valor).
El código también puede desencadenar
eventos durante la ejecución. Por ejemplo,
cambiar mediante programación el texto
de un cuadro de texto hace que se
produzca el evento Cambio del cuadro de
texto. Esto causaría la ejecución del
código (si lo hay) contenido en el evento
Cambio. Si supone que este evento sólo se
desencadenará mediante la interacción del
usuario,
podría
ver
resultados
inesperados. Por esta razón es importante
comprender el modelo controlado por
eventos y tenerlo en cuenta cuando diseñe
su aplicación.
Programación en Pseudocódigo
si.... el 2 si.... etc. tienes que oprimir un
número para continuar.
Eventos simultáneos son los eventos que
se realizan al mismo tiempo. Ejemplo,
cuando ingresas a tu coreo electrónico te
solicita el ordenador tu identificación y
contraseña,
estos
son
eventos
simultáneos.
Eventos concurrentes son los eventos que
se ocurren al mismo tiempo., esto es
concurren en su ejecución.
Ejemplo,
cuando realizas la apertura de un nuevo
correo electrónico, el ordenador te solicita
varios datos entre ellos tu edad y te pide
ingreses el día de tu cumpleaños, para ello
se abre una caja donde debes seleccionar
tu día de nacimiento, igualmente sucede
al ingresar tu mes de nacimiento, estos
son eventos concurrentes.
Eventos
Secuenciales,
Simultáneos y Concurrentes
Eventos secuenciales son aquellos que se
ejecutan en secuencia esto es uno después
que el otro. Un ejemplo puede ser cuando
efectúas una llamada telefónica a
Teléfonos de México y te contesta una
grabación y te dice oprima el número 1
PT Bachiller en Informática
153
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Multitarea
El término multitarea se refiere a la
capacidad del Sistema Operativo para
correr mas de un programa al mismo
tiempo. Existen dos esquemas que los
programas de sistemas operativos utilizan
para desarrollar SO multitarea, el primero
requiere de la cooperación entre el SO y
los programas de aplicación.
Los programas son escritos de tal manera
que periódicamente inspeccionan con el
SO para ver si cualquier otro programa
necesita a la CPU, si este es el caso,
entonces dejan el control del CPU al
siguiente programa, a este método se le
llama multitarea cooperativa y es el
método utilizado por el SO de las
computadoras de Machintosh y DOS
corriendo Windows de Microsoft. El
segundo método es el llamada multitarea
con asignación de prioridades. Con este
esquema el SO mantiene una lista de
procesos
(programas)
que
están
corriendo. Cuando se inicia cada proceso
en la lista el SO le asigna una prioridad. En
cualquier momento el SO puede intervenir
y modificar la prioridad de un proceso
organizando en forma efectiva la lista de
prioridad, el SO también mantiene el
control de la cantidad de tiempo que
utiliza con cualquier proceso antes de ir al
siguiente. Con multitarea de asignación de
prioridades el SO puede sustituir en
cualquier momento el proceso que esta
corriendo y reasignar el tiempo a una
tarea de mas prioridad. Unix OS-2 y
Windows NT emplean este tipo de
multitarea.
Consiste en ejecutar varios procesos
(programas) a la vez. Por ejemplo, si junto
con el programa “colegio” se ha
introducido en la computadora otro
programa que “lea una serie de números y
muestre en la pantalla el mayor, el menor
y los números que sean primos”, se dice
que existe multitarea “basada en
procesos” si se pueden ejecutar ambos
programas a la vez: por un lado el
profesor puede solicitar sus listados de
alumnos, y por el otro, se van
introduciendo los números para obtener el
mayor, el menor y aquellos que sean
primos.
Evidentemente, esta forma multitarea es
apropiada
cuando
la
computadora
dispone de dos terminales y los
Basada en procesos.
154
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
usuarios pueden trabajar cada uno con su
programa en un terminal diferente. Pero
en el caso normal, en que se dispone sólo
de una computadora con su pantalla y su
teclado, es decir de un PC, el usuario del
PC podría trabajar simultáneamente con
ambos programas pero primero tendría
que atender a uno y luego al otro, lo que
sería francamente complicado ya que la
interfaz de usuario de un programa no es
la misma que la del otro y distraería su
atención.
Basada en hebras (hilos)
Consiste en ejecutar varias partes de un
mismo programa simultáneamente. Una
hebra es un fragmento del programa en
ejecución.
Todos los programas en
ejecución tienen una hebra como mínimo.
Y cuando el programa se ejecuta con
multitarea de hebras, quiere decir que
varias partes del programa ese están
ejecutando simultáneamente.
Programación en Pseudocódigo
A continuación se presenta un ejemplo
que describe las dos modalidades de
multitarea.
Supóngase que Juan y Luis que comparten
el mismo apartamento desean preparar la
comida del mediodía y comer en el
apartamento.
Una solución es que cada uno se prepare
su propia comida independientemente.
Para lo cual ambos tendrían que:
Preparar el primer plato.
Preparar el segundo plato.
Preparar el postre
Disponer sus cubiertos, platos y vasos en
la mesa.
Comer
Esta
soluciones
asimilable
a
una
“multitarea de procesos”. Cada proceso
sería la preparación de la
Realmente, decir que los programas (o las
hebras)
se
están
ejecutando
simultáneamente no es correcto, pues
como se ha visto antes se están
ejecutando concurrentemente en la misma
computador ay por lo tanto ambos
programas
comparten
los
mismos
recursos. Por eso se habla de que los
programas se ejecuten concurrentemente
(y no simultáneamente). Ello quiere decir
que cuando los dos soliciten el Sistema
Operativo a la vez un mismo recurso
(concurren en la petición), éste da
prioridad a uno u otro según el caso.
PT Bachiller en Informática
155
Informática
Colegio Nacional de Educación Profesional Técnica
comida de cada uno, que se estaría
resolviendo en paralelo (a la vez están
preparando su propia comida) y
concurrentemente (los dos utilizan los
mismos recursos por ejemplo, ambos
están utilizando la cocina, la mesa de
comer, etc.).
Si alguno de estos recursos no puede ser
compartido, por ejemplo la cocina sólo
tiene un fuego, entonces ambos procesos
deberán estar sincronizados. Ello quiere
decir que cuando Luis está utilizando la
cocina, este recurso quedaría bloqueado
para que no la utilizase Juan, y si Juan
desea utilizarla debe quedar a la espera de
que el recurso “cocina” quede disponible.
Otra solución, más acorde
problema, es que Juan y Luis
de acuerdo y preparen una
común compartiendo tareas.
ejemplo:
con este
se pongan
comida en
Como por
Programación en Pseudocódigo
2do plato necesitan utilizar la cocina y
ésta solo tiene un fuego, entonces Luis o
Juan debería esperar a que acabara el
otro).
Obviamente en este ejemplo, la solución
de “multitarea de hebras” es más rápida
(eficiente)que la de “multitarea de
procesos”. No obstante, si Juan y Luis han
discutido y están enfadados es posible
que utilicen la segunda.
En el caso de diseñar un “programa
dirigido por evento” lo normal es
estructurar el programa en hebras para
aplicar la “multitarea de hebras”, Por
ejemplo, si en el programa del “colegio”
se diseña una interfaz de usuario más
vistosa como puede ser.
Una literal que se enciende y apaga.
Preparar el primer plato /Juan)
Preparar el segundo plato (Luis)
Preparar el postre (Juan)
Disponer los cubiertos, platos y vasos
en la mesa (Luis)
Comer (Juan y Luis)
Esta solución es asimilable a una
“multitarea de hebras”. Sólo existe un
único proceso (la preparación de la
comida conjunta) con dos hebras (una es
la actuación de Juan que debe preparar el
1er plato y el postre, y otra es la actuación
de Luis que se encarga del 2do plato y de
la mesa).
Ambas hebras se estarían ejecutando en
paralelo y concurrentemente (si el 1er y
156
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Botones que están fijos esperando una
petición del profesor.
Es el nombre del colegio que, como en un
letrero luminoso, se mueve de izquierda
derecha, desapareciendo por el extremo
derecho y apareciendo por el izquierdo.
En tal caso el programa constaría de tres
hebras, una por cada parte, que se
estarían ejecutando a la vez y
concurrentemente.
Programación en Pseudocódigo
cajero electrónico, tenga una “interfaz de
usuario” donde existe la posibilidad de
solicitar muchas cosas. En este caso, es el
programa el que esta pendiente del
usuario para ver lo que pide y
proporcionárselo (Programa dirigido por
eventos).
Sugerencias o Notas
Competencia Ambiental
Resumen
Proteger los recursos naturales.
Competencia
Información
de
•
•
Identificar la programación dirigida por
eventos.
El alumno, utilizará las hojas de
papel por ambos lados.
Depositará las hojas de papel de
desperdicio en los recipientes
destinados para su reciclaje.
El alumno:
•
Elaborará
resumen
sobre
la
programación dirigida por eventos
donde se mencionarán el concepto y
sus características.
Hasta hace unos años, lo normal era
diseñar un programa informático que
fuera pidiendo datos al usuario de una
forma controlada por el programa. Es
decir, el programa se iba ejecutando
secuencialmente y cuando necesitaba un
dato lo solicitaba al usuario y seguía con
la ejecución del programa hasta que
finalizaba (Programa dirigido por control).
Hoy en día lo usual es diseñar un
programa que, como en el caso de un
PT Bachiller en Informática
157
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Sugerencias o Notas
Competencia de Calidad
Realizar el trabajo en forma eficiente y
oportuna.
•
•
•
158
El alumno, realizará los ejercicios y
prácticas incluídas en este manual
con orden, limpieza, eficiencia y
responsabilidad.
Evitará el uso de software ilegal,
garantizando su funcionamiento y
calidad del mismo.
Participará con responsabilidad,
iniciativa
y
dinamismo
individualmente y en equipos de
trabajo.
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Practicas de Ejercicio y listas de cotejo
Portafolio
de evidencias
Unidad de
aprendizaje:
2
Práctica número:
3
Nombre de la
práctica:
Elaboración de programas en
pseudocódigo con estructuras de datos.
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará programas en
pseudocódigo mediante estructuras de arreglo, registro, conjunto,
secuencia, listas y árbol para la solución de problemas.
Escenario:
Aula
Duración:
8 hrs.
Materiales
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
159
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
•
Evitar la manipulación de líquidos.
•
Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Elaborar un programa en pseudocódigo que despliegue un menú y controle la ejecución de
las siguientes opciones.
• Invertir una cadena de caracteres.
• Realizar el recorrido de una lista doblemente encadenada del inicio al final (utilizando ligas derechas).
• Realizar el recorrido de una lista doblemente encadenada del final al inicio (utilizando ligas
izquierdas).
• Insertar un elemento en una lista doblemente encadenada.
• Terminar.
1. Elaborar un programa en pseudocódigo que invierta una cadena de caracteres.
2. Realizar prueba de escritorio del programa elaborado.
3. Elaborar un programa en pseudocódigo que realice el recorrido de una lista
doblemente encadenada del inicio al final (utilizando ligas derechas).
4. Realizar prueba de escritorio del programa elaborado.
5. Elaborar un programa en pseudocódigo que realice el recorrido de una lista
doblemente encadenada del final al inicio (utilizando ligas izquierdas).
6. Realizar prueba de escritorio del programa elaborado.
160
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
7. Elaborar un programa en pseudocódigo que realice la inserción de un elemento en una
lista doblemente encadenada.
8. Realizar prueba de escritorio del programa elaborado.
9. Integrar los cuatro programas anteriores al programa del menú principal, realizando las
modificaciones a los mismos para formar un solo programa.
10. Realizar prueba de escritorio del programa integrado.
11. Realizar la documentación del programa integrado.
12. Repetir los procedimientos con asesoría del PSA.
13. Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
14. 4 Separar los residuos recuperables (usar las dos caras de las hojas y
desechos en el lugar indicado).
PT Bachiller en Informática
colocar los
161
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Lista de cotejo de la práctica
número 3:
Elaboración de programas en pseudocódigo con
estructuras de datos.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño.
Desarrollo
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1. Elaboró un programa en pseudocódigo que despliegue un
menú.
2. Elaboró un programa en pseudocódigo que invierta una cadena
de caracteres.
3. Realizó prueba de escritorio del programa elaborado.
4. Elaboró un programa en pseudocódigo que realice el recorrido
de una lista doblemente encadenada del inicio al final
(utilizando ligas derechas).
5. Realizó prueba de escritorio del programa elaborado.
6. Elaboró un programa en pseudocódigo que realice el recorrido
de una lista doblemente encadenada del final al inicio
(utilizando ligas izquierdas).
162
PT Bachiller en Informática
Sí
No
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
No
Aplica
7. Realizó prueba de escritorio del programa elaborado.
8. Elaboró un programa en pseudocódigo que realice la inserción
de un elemento en una lista doblemente encadenada.
9. Realizó prueba de escritorio del programa elaborado.
10. Integró los cuatro programas anteriores al programa del menú
principal, realizando las modificaciones a los mismos para
formar un solo programa.
11. Realizó prueba de escritorio del programa integrado.
12. Realizó la documentación del programa integrado.
13. Repitió los procedimientos con acesoria del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
Hora de
término:
PT Bachiller en Informática
Evaluación:
163
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
4
Nombre de la
práctica:
Pseudocódigo para calcular el valor
absoluto de un número
Propósito de la
práctica:
Al finalizar la práctica, el alumno realizará un programa en
pseudocódigo para calcular el valor absoluto de números.
Escenario:
Aula.
Duración:
6 hrs.
Materiales
Maquinaria y equipo
• Hojas
• Lápiz
• Goma
164
PT Bachiller en Informática
Herramienta
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Algoritmo en pseudocódigo para calcular el valor absoluto de un número
1.- Escribir el siguiente pseudocódigo en una hoja de papel.
2.- Escribir “Inicio”
3.- Escribir “Leer Número”
4.- Escribir “Si NUMERO > igual 0 Entonces”
5.- Escribir “escribe NÚMERO”
6. - Escribir “Otro Caso”
7. - Escribir “escribe -1 x NÚMERO”
8. - Escribir “Fin”
Inicio
Leer NÚMERO
Sí NÚMERO > IGUAL 0 ENTONCES
Escribe NÚMERO
En Otro Caso
Escribe -1 x NÚMERO
FIN
1. Repetir los procedimientos con acesoria del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en
el lugar indicado).
PT Bachiller en Informática
165
Informática
Colegio Nacional de Educación Profesional Técnica
Lista de cotejo de la práctica
número 4:
Programación en Pseudocódigo
Pseudocódigo para calcular el valor absoluto de un
número
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
Sí
No
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1.-Escribir el siguiente pseudocódigo en una hoja de papel.
2.-Escribir “Inicio”
3.-Escribir “Leer Número”
4.-Escribir “Si NUMERO > igual 0 Entonces”
5.-Escribir “escribe NÚMERO”
6. Escribir “Otro Caso”
7. Escribir “escribe -1 x NÚMERO”
8. Escribir “Fin”
9. Repitió los procedimientos con acesoria del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
166
Hora de
término:
PT Bachiller en Informática
Evaluación:
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
5
Nombre de la
práctica:
Pseudocódigo para convertir un número
decimal a su equivalente binario.
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará un programa en
pseudocódigo que convierta de un número decimal a binario.
Escenario:
Aula
Duración:
6 hrs.
Materiales
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
167
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
ALGORITMO EN PSEUDOCODIGO PARA CONVERTIR UN NÚMERO DECIMAL A SU EQUIVALENTE BINARIO
1.-Escribir el siguiente pseudocódigo en una hoja de papel.
2. Escribir “Inicio”
3. Escribir “Leer DECIMAL”
4. Escribir “DIVIDIENDO =DECIMAL”
5. Escribir “COCIENTE =1”
6. Escribir “Mientras COCIENTE diferente 0 Hacer”
7. Escribir “Inicio”
8. Escribir “COCIENTE = Cociente(entero) de 2 DIVIDIENDO”
9. Escribir “RESIDUO = Residuo de 2”
10. Escribir “DIVIDIENDO”
11. Escribir “Escribir RESIDUO”
12. Escribir “DIVIDIENDO = COCIENTE”
13. Escribir “Fin”
14. Escribir “Fin”
Inicio
Leer DECIMAL
DIVIDIENDO=DECIMAL
COCIENTE=1
Mientras COCIENTE diferente 0 Hacer
Inicio
COCIENTE=cociente(entero) de DIVIDENDO
RESIDUO=Residuo de 2
DIVIDENDO
Escribir RESIDUO
DIVIDENDO= COCIENTE
Fin
15. Repetir los procedimientos
con asesoría del PSA.
Fin
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos
en el lugar indicado).
Lista de cotejo de la práctica
número 5:
Pseudocódigo para convertir un número decimal a
su equivalente binario.
Nombre del alumno:
168
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Instrucciones:
Programación en Pseudocódigo
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
Sí
No
No
Aplica
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1.-Escribió el siguiente pseudocódigo en una hoja de papel.
2. Escribió “Inicio”
3. Escribió “Leer DECIMAL”
4. Escribió “DIVIDIENDO =DECIMAL”
5. Escribió “COCIENTE =1”
6. Escribió “Mientras COCIENTE diferente 0 Hacer”
7. Escribió “Inicio”
8. Escribió “COCIENTE = Cociente(entero) de 2 DIVIDIENDO”
9. Escribió “RESIDUO = Residuo de 2”
“0- Escribió DIVIDIENDO”
11. – Escribió “Escribir RESIDUO”
12. – Escribió “DIVIDIENDO = COCIENTE”
13. – Escribió “Fin”
14. – Escribió “Fin”
9. Repitió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
PT Bachiller en Informática
169
Informática
Colegio Nacional de Educación Profesional Técnica
Hora de
inicio:
170
Hora de
término:
PT Bachiller en Informática
Programación en Pseudocódigo
Evaluación:
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
6
Nombre de la
práctica:
Pseudocódigo del mayor de tres
números.
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará un programa en
pseudocódigo que calcule el número el mayor de tres números.
Escenario:
Laboratorio de
Informática.
Duración:
6 hrs.
Materiales
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
171
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Algoritmo en pseudocódigo del mayor de tres números
1. - Escribir el siguiente pseudocódigo en una hoja de papel.
2. - Determinar cuál de ellos es el mayor.
3. - Comparar los tres números mediante operadores relacionales.
4. - Escribir el siguiente algoritmo con pseudocódigo.
5. - Escribir “Inicio”
6. - Escribir “Leer A, B, C”
7. - Escribir “Si A > B Entonces”
8. - Escribir “Sí A > C Entonces”
9. - Escribir “Escribir “El mayor es”, A.
10. -Escribir “En otro caso”
11. -Escribir “Escribir “El mayor es”, Capacitación
12. -Escribir “En otro caso”
13. -Escribir “Sí B > C Entonces”
14. -Escribir “Escribir “El mayor es”, B
15. -Escribir en otro caso.
16. -Escribir “Escribir “El mayor es”, Capacitación.
Inicio
17. - Escribir “Fin”.
18.- Repetir los procedimientos con asesoría del PSA.
Fin
Leer A, B, C
Sí A > B Entonces
Sí A > C Entonces
Escribir “El mayor es”, A
En otro caso
Escribir “El mayor es”, C
En otro caso
Sí B > C Entonces
Escribir “El mayor es”, B
En otro caso
Escribir “El mayor es”, C
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el lugar
indicado).
172
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Lista de cotejo de la práctica
número 6:
Programación en Pseudocódigo
Pseudocódigo del mayor de tres números.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1.-Escribió el siguiente pseudocódigo en una hoja de papel.
2. Determinó cuál de ellos es el mayor.
3. Comparó los tres números mediante operadores relacionales.
4. Escribió el siguiente algoritmo con pseudocódigo.
5. Escribió “Inicio”
6. Escribió “Leer A, B, C”
7. Escribió “Si A > B Entonces”
8. Escribió “Sí A > C Entonces”
9. Escribió “Escribir “El mayor es”, A.
10–Escribió “En otro caso”
11. Escribió “Escribir “El mayor es”, Capacitación
PT Bachiller en Informática
Sí
No
No
Aplica
•
173
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
12. Escribió “En otro caso”
13. Escribió “Sí B > C Entonces”
14. Escribió “Escribir “El mayor es”, B
15. Escribió en otro caso.
16. Escribió “Escribir “El mayor es”, Capacitación.
17. Escribió “Fin”.
18. Repitió los procedimientos con acesoria del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
174
Hora de
término:
PT Bachiller en Informática
Evaluación:
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
7
Nombre de la
práctica:
Algoritmo en pseudocódigo para resolver
una ecuación cuadrática.
Propósito de la
práctica:
Al finalizar la práctica el alumno elaborará un programa en
pseudocódigo de la resolución de una ecuación cuadrática.
Escenario:
Aula.
Duración:
6 hrs.
Materiales
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
175
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Algoritmo en pseudocódigo para resolver una ecuación cuadrática
1. -Escribir el siguiente pseudocódigo en una hoja de papel.
2. -Enunciar el problema.
3. -Solucionar el problema.
4. -Describir el algoritmo.
5. -Considerar las condiciones iniciales.
6. -Escribir “Inicio”
7. -Escribir “Leer A, B, C”
8. -Escribir “Sí A= 0 Entonces”
9. -Escribir “Escribir No es una ecuación Cuadrática”
10. Escribir “En otro caso”
11. Escribir “Inicio”
12. Escribir “DISCRIMINANTE= B al cuadrado - 4AC”
13. Escribir “Sí DISCRIMINANTE < 0 Entonces”
14. Escribir “Escribir el discriminante es Negativo”
15.-Escribir “En Otro caso.
16. Escribir “Inicio”.
17. Escribir “X1= (-B + raíz cuadrada de DISCRIMINANTE) / (2A)”
18. Escribir “X2= (-B - raíz cuadrada de DISCRIMINANTE) / (2A)”
19. Escribir “Imprimir X1,X2”
20. Escribir “Fin”
21. Escribir “Fin”
22. Escribir “Fin”
23.-Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el
lugar indicado).
176
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Lista de cotejo de la práctica
número 7:
Programación en Pseudocódigo
Algoritmo en pseudocódigo para resolver una
ecuación cuadrática.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
Sí
No
No
Aplica
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1. -Escribió el siguiente pseudocódigo en una hoja de papel.
2. –Enunció el problema.
3. –Solucionó el problema.
4. –Describió el algoritmo.
5. –Consideró las condiciones iniciales.
6. -Escribió “Inicio”
7. –Escribió “Leer A, B, C”
8. –Escribió “Sí A= 0 Entonces”
9. –Escribió “Escribir No es una ecuación Cuadrática”
10. Escribió “En otro caso”
11. Escribió “Inicio”
PT Bachiller en Informática
177
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
12. Escribió “DISCRIMINANTE= B al cuadrado - 4AC”
13. Escribió “Sí DISCRIMINANTE < 0 Entonces”
14. Escribió “Escribir el discriminante es Negativo”
15.-Escribió “En Otro caso.
16. Escribió “Inicio”.
17. Escribió “X1= (-B + raíz cuadrada de DISCRIMINANTE) / (2A)”
18. Escribió “X2= (-B - raíz cuadrada de DISCRIMINANTE) / (2A)”
19. Escribió “Imprimir X1,X2”
20. Escribió “Fin”
21. Escribió “Fin”
22. Escribió “Fin”
23. Repitió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
178
Hora de
término:
PT Bachiller en Informática
Evaluación:
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
8
Nombre de la
práctica:
Algoritmo en pseudocódigo
función factorial.
Propósito de la
práctica:
Al finalizar la práctica, el alumno elaborará un programa en
pseudocòdigo que obtenga el valor factorial de un número mediante
una llamada a función.
Escenario:
Aula.
Duración:
6 hrs.
Materiales
de
Maquinaria y equipo
la
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
179
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Algoritmo en pseudocódigo para obtener el valor factorial de un número
1.-Elaborar un algoritmo que obtenga y muestre en pantalla el valor factorial de un número X, leído desde el
teclado y que utilice la función factorial para calcularlo.
2.-Hacer que la función factorial sea recursiva, llamándose a sí misma hasta resolver el problema.
3.-Teclear el siguiente pseudocódigo:
Pseudocódigo de la función factorial recursiva
//función factorial recursiva
FACTORIAL (X):
Inicio_ factorial
Si X=0
Entonces
FACTORIAL =1
Si no
FACTORIAL = X* FACTORIAL (X-1)
Fin_si
Fin_factorial
//programa que obtiene valores del factorial (X)
Inicio
leer el numero (X)
mientras haya_números
si X> = 0
Entonces
RESULTADO = FACTORIAL (X)
Mostrar RESULTADOS
Si no
Mostrar <<el numero X es negativo>>
Fin_si <
Leer un numero (X)
Fin_mientras
Fin
4.-Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el lugar
indicado).
Lista de cotejo de la práctica
número 8:
180
Algoritmo en pseudocódigo de la función factorial.
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
Sí
No
No
Aplica
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
Algoritmo en pseudocódigo para obtener el valor factorial de
un número.
1.-Elaborò un algoritmo que obtiene y muestra en pantalla el valor
factorial de un número X, leído desde el teclado y que utiliza la
función factorial para calcularlo.
2.-Hizo la función factorial recursiva, llamándose a sí misma hasta
resolver el problema.
3.-Tecleó el pseudocódigo correspondiente.
4.-Repetió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
Hora de
término:
PT Bachiller en Informática
Evaluación:
181
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
9
Nombre de la
práctica:
Pseudocódigo con programación lógica.
Propósito de la
práctica:
Al finalizar la práctica, el alumno elaborará programas en
pseudocódigo mediante la programación lógica.
Escenario:
Aula.
Duración:
8 hrs.
Materiales
Maquinaria y equipo
• Hojas
• Lápiz
• Goma
182
PT Bachiller en Informática
Herramienta
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Sentencias de cláusulas sin condiciones
1.- Diseñar un algoritmo en pseudocódigo de una claúsula sin condiciones.
2.- Las cláusulas van a tener un echo que va a ser cierto en todos los casos
3.-Teclear las siguientes sentencias:
<<Luis es varón>>, se representa por: varón (luis)
<<María es madre>>, se representa por: madre(María)
<<Dos es par>>, se representa por: par(2)
Sentencias de cláusulas sin conclusiones
1.- Diseñar un algoritmo en pseudocódigo de una claúsula sin conclusiones.
2.- Las cláusulas van a tener un echo que no es cierto en ningún caso, tienen condiciones sin conclusiones.
3..-Teclear la s siguientes sentencias:
<<Luis no es varón>> es falso, y se representa por: <-varón(Luis)
<<María no es madre>> es falso, y se representa por: <-madre(María)
<<Dos no es un número par>> es falso, y se representa por: <-par(2)
Sentencia de regla lógica
1.-Diseñar un algoritmo en pseudocódigo de regla lógica.
2.-Las cláusulas tienen ambas partes, conclusiones y condiciones.
3.-Inferir que animal es mamífero y se cuenta con la siguiente información:
-La vaca, la sardina y el reno son animales.
-La vaca y el reno son rumiantes, pero la sardina no.
-Un animal rumiante es mamífero.
4.-Teclee las siguientes sentencias:
animal(vaca)
animal(sardina)
animal(reno)
rumiante(vaca)
rumiante(reno)
<-rumiante(sardina)
mamífero(X)<- animal (X), rumiante(X)
PT Bachiller en Informática
183
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
5.-Preguntar cuestiones lógicas al programa, el sistema espera una pregunta con ? y
responde con >
6.-El resultado al preguntar es el siguiente:
? rumiante(sardina)
>falso
? mamífero(vaca)
>cierto
? X= vaca, reno
7.-Crear otro algoritmo semejante.
Algoritmo de ordenar N números
1.-Desarrollar un programa imperativo o funcional que lea serie de tres números A, B, C,
y las muestre ordenadas por la pantalla ascendente mente a partir de un enunciado de un
problema con los pasos siguientes:
-Estudiar el enunciado del problema detenidamente.
-Transformar la letra del enunciado en un diagrama estructurado del tipo arborecente,
que resuelva el problema.
-Codificar el diagrama mediante un pseudocódigo.
2.-Las acciones a seguirse serían:
-Primero se leen 3 números A, B, y C.
-Si A>B se intercambian sus contenidos (A<->B).
- Si B>C se intercambian sus contenidos (B<->C), y se pregunta si el contenido de A>B.
En caso afirmativo, se intercambian (A<->B).
-Se muestran los contenidos de A, B, y C, hasta que no queden números de leer.
3.-Teclee el siguiente pseudocódigo.
184
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
// Programa que ordena N números
InicioLeer A, B, C
Mientras haya_números
Si A>B
Entonces
T=A
A=B
B=T
Fin_si
Si B>C
Entonces
T=B
B=C
C=T
Si A>B
Entonces
T=A
A=B
B=T
Fin_si
Fin_si
Mostrar <<Orden de los números:>>, A, B, C
Leer A,B,C
Fin_mientras
Fin
4.-Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el lugar
indicado).
PT Bachiller en Informática
185
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Lista de cotejo de la práctica
número 9:
Pseudocódigo con programación lógica.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
Sentencias de cláusulas sin condiciones
1.-Diseñó un algoritmo en pseudocódigo de una claúsula sin
condiciones.
2.-Las cláusulas fueron ciertas en todos los casos
3.-Tecleó las sentencias correspondientes:
Sentencias de cláusulas sin conclusiones
1.-Diseño un algoritmo en pseudocódigo de una claúsula sin
conclusiones.
2.-Las cláusulas fueron no ciertos en ningún caso.
3.-Tecleó las sentencias correspondientes:
186
PT Bachiller en Informática
Sí
No
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
No
Aplica
Sí
No
No
Aplica
Sentencia de regla lógica
1.-Diseñó un algoritmo en pseudocódigo de regla lógica.
2.-Las cláusulas tuvieron ambas partes, conclusiones y condiciones.
3.-Inferió que animal fué mamífero con la siguiente información:
-La vaca, la sardina y el reno son animales.
-La vaca y el reno son rumiantes, pero la sardina no.
-Un animal rumiante es mamífero.
4.-Tecleó las sentencias correspondientes:
5.-Preguntó cuestiones lógicas al programa.
6.-Se obtuvo el resultado al preguntar
4.-Creó otro algoritmo semejante.
Desarrollo
Algoritmo de ordenar N números
1.-Desarrolló un programa imperativo o funcional que lea serie de
tres números A, B, C, y las muestre ordenadas por la pantalla
ascendente mente a partir de un enunciado de un problema con
los pasos siguientes:
-Estudió el enunciado del problema detenidamente.
PT Bachiller en Informática
187
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
-Transformó la letra del enunciado en un diagrama estructurado
del tipo arborecente, que resuelva el problema.
-Codificó el diagrama mediante un pseudocódigo.
2.-Realizó las acciones a seguirse
3.-Tecleó el pseudocódigo correspondiente.
4.-Repitió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
188
Hora de
término:
PT Bachiller en Informática
Evaluación:
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número :
10
Nombre de la
práctica:
Pseudocódigo
con
orientada a objetos
Propósito de la
práctica:
Al finalizar la práctica, el alumno elaborará programas en
pseudocódigo basados en programación orientada a objetos.
Escenario:
Aula.
Duración:
8 hrs.
Materiales
programación
Maquinaria y equipo
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
189
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
Algoritmo de programa de objeto “Ordenador”
1.-Crear un algoritmo donde se cree el objeto “ Ordenador”.
2.-Elaborar la plantilla (clase) que permita crearlo y que se llame “Plantilla_ordenar”.
3.-Establecimiento de variables:
−
−
−
Celdas de memoria (variables enteras para almacenar números enteros)
Variable de estado (variable entera)
Variable que almacena la cantidad de números por el objeto “Ordenador”, para su ordenación.
(variable entera).
4.- El método que se sigue es:
−
−
−
−
−
−
El constructor, que crea un objeto.
Leer_números, que leen los datos de entrada.
Ordenar_ascendente, que ordena de menor a mayor.
Ordenar_descendente, que ordena de mayor a menor.
Indicar_estado, que devuelve el estado de la variable de estado (ve).
Mostrar números, que visualiza el contenido de las celdas de memoria.
El destructor, que visualiza un mensaje de que el objeto ya no existe.
−
5.- Teclear el siguiente pseudocódigo:
clase plantilla_ordenador {
c1, c2, c3, ..., cn // son las celdas de memoria
ve // variable de estado
n // números leídos
190
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
públicos:
plantilla-ordenador(): // es el construcctor
Inicio_opantalla
c1= c2=c3=...=cn=0
ve=-1
n=0
Fin_plantilla
Leer_números():
Inicio_leer
I=0
Mientras Haya_números
I=I+1
Leer cI
Fin_mientras
Ve=0
Ordenar_ascendentemente(): // ordena c1, c2, .., cn de menor a mayor
Inicio_ordenar
Si ve>=0
Entonces
Para I desde 1
hasta n-1
Para J desde I+1
hasta n
si cI>cJ
Entonces
Fin_si
VAR=cI
cI=cJ
cJ=VAR
Fin_para
Fin_para
Ve=1
Si no
Mostrar <<no se puede ordenar porque no hay números>>
Fin_si
Fin_ordenar
Ordenar_descendentemente(): // ordena c1, c2, ..., cn de mayor a menor
Inicio_ordenar
Si ve>=0
PT Bachiller en Informática
191
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
Entonces
Para I desde 1
hasta n-1
Para J desde I+1
hasta n
Si cI<cJ
Entonces
Fin_si
VAR0=cI
cI=cJ
cJ=VAR
Fin_para
Fin_para
Ve=2
Si no
Mostrar <<no se puede ordenar porque no hay números>>
Fin_si
Fin_ordenar
Indicar_estado(): //devuelve el valor de ve
Inicio_indicar
Retornar ve
Fin_indicar
mostrar_números(): // visualiza el contenido de c1, c2, ..., cn
Inicio_mostrar
Si ve<0
Entonces
Mostrar <<no se puede ordenar porque no hay números>>
Si no
Para I desde 1 hasta n
Mostrar cI
Fin_para
Fin_si
Fin_inicio
¬plantilla_ordenador(): // es el destructor
Inicio_plantilla
Mostrar <<el objeto ha finalizado>>
Fin_plantilla
192
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
6.-Diseñar un programa que cree el objeto “Ordenador” y le mande los mensajes apropiados para que haga lo
que el programador desea:
− Lea los números –4, 25, -7, 2, 10.
− Ordene ascendentemente los números leídos.
− Muestre en pantalla los números así ordenados.
− Ordene, ahora, los números ascendentemente.
− Muestre en pantalla los números así ordenados.
− Indique el estado de ve.
7.- Teclear el siguiente pseudocódigo del programa principal::
// Programa principal
Inicio
Plantilla_ordenador Ordenador
Ordenador.leer_numeros()
Ordenador.ordenar_ascendentemente()
Ordenador.ordenar descendentemente()
Ordenador.mostrar_números()
Mostrara Ordenador.indicar_estado()
Fin
Nota: El resultado que se obtiene en pantalla es el siguiente:
-7,-4,2,10,25
25,10,2,-4,-7
2
el objeto a finalizado
8.-Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el lugar
indicado).
PT Bachiller en Informática
193
Informática
Colegio Nacional de Educación Profesional Técnica
Lista de cotejo de la práctica
número 10:
Programación en Pseudocódigo
Pseudocódigo con programación orientada a objetos.
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el
alumno durante su desempeño
Desarrollo
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
Algoritmo de programa de objeto “Ordenador”
1.-Creó un algoritmo donde se cree el objeto “ Ordenador”.
2.-Elaboró la plantilla (clase) que permita crearlo y que se llame
“Plantilla_ordenar”.
3.-Estableció de variables:
− Celdas de memoria (variables enteras para almacenar
números enteros).
− Variable de estado (variable entera)
− Variable que almacena la cantidad de números por el objeto
“Ordenador”, para su ordenación. (variable entera).
194
PT Bachiller en Informática
Sí
No
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
No
Aplica
4.- El método que se siguó fue:
− El constructor, que crea un objeto.
− Leer_números, que leen los datos de entrada.
− Ordenar_ascendente, que ordena de menor a mayor.
− Ordenar_descendente, que ordena de mayor a menor.
− Indicar_estado, que devuelve el estado de la variable de
estado (ve).
− Mostrar números, que visualiza el contenido de las celdas de
memoria.
− El destructor, que visualiza un mensaje de que el objeto ya
no existe.
5.- Tecleó el pseudocódigo correspondiente
6.--Diseño un programa que cree el objeto “Ordenador” y le mande
los mensajes apropiados para que haga lo que el programador
desea:
− Lea los números –4, 25, -7, 2, 10.
− Ordene ascendentemente los números leídos.
− Muestre en pantalla los números así ordenados.
− Ordene, ahora, los números ascendentemente.
− Muestre en pantalla los números así ordenados.
− Indique el estado de ve.
7.- Tecleó el pseudocódigo del programa principal correspondiente
8.-Repetió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
PT Bachiller en Informática
195
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Observaciones:
PSA:
Hora de
inicio:
196
Hora de
término:
PT Bachiller en Informática
Evaluación:
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Unidad de
aprendizaje:
2
Práctica número:
11
Nombre de la
práctica:
Pseudocódigo con programación dirigida
por eventos.
Propósito de la
práctica:
Al finalizar la práctica, el alumno elaborará programas
pseudocódigo basados en programación dirigida por eventos.
Escenario:
Aula.
Duración:
8 hrs.
Materiales
Maquinaria y equipo
en
Herramienta
• Hojas
• Lápiz
• Goma
PT Bachiller en Informática
197
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
­Aplicar las medidas de seguridad e higiene.
• Evitar la manipulación de líquidos.
• Tener condiciones adecuadas en el aula (iluminación, ventilación y limpieza).
1.-Algoritmo de programa dirigido por control.
• Diseñar un programa que vaya pidiendo datos al usuario y que, en base a ellos, ejecute una serie de
acciones a través de los objetos que define el problema.
• Teclear el siguiente pseudocódigo.
*Modulo de Control “colegio”
Inicio
//Crea los objetos “clase” c11, c12,... ,cli
//Crea los objetos “alumno” a11, a12,... ,alz
//Crea los objetos “asignatura” as1, as2,... ,ask
//Inicio_petición_profesores
Mientras existan peticiones de los profesores
Mostrar:” ¿Qué listado desea obtener?
Teclee:
Lapa -> si desea el listado d e alumnos por asignatura
Lapc -> si desea el listado d e alumnos por clase
fin -> si terminar “
Leer un dato (AP)
Si AP = lapa
Entonces
Mostrar : “Teclee el código d e la asignatura: “
Leer código_asignatura (AS)
// A continuación se obtiene el listado de alumnos de esa
// asignatura al ejecutar el método listado_asignatura ().
AS.listado_asignatura()
Si no
Si AP= lapc
Entonces
Mostrar : “Teclee el código d e la clase: “
Leer código_clase (CL)
// a continuación, obtiene el listado de alumnos de
// esa clase ejecutando el método listado_clase()
CL.Listado_clase()
198
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
Si no
Si AP = fin
Entonces
Mostrar : “Fin de las peticiones “
Si no
Mostrar: “Solo puede escribir lapa, lapc o fin.
Repita por favor”
Fin _si
Fin_si
Fin_si
Fin_Mientras
Fin
2.-Algoritmo de programa dirigido por eventos.
• Diseñar una interfaz de usuario, que es una ventana principal que se ubica en la pantalla de la
computadora en el que se presentan todas las posibilidades que permiten que el programa y el
usuario, al igual que un cajero electrónico, escoger la acción que se desee realizar.
• Teclear el siguiente pseudocódigo:
*Modulo de Control “colegio”
Inicio
//Crea los objetos “clase” c11, c12,... ,cli
//Crea los objetos “alumno” a11, a12,... ,alz
//Crea los objetos “asignatura” as1, as2,... ,ask
// Define las características del programa principal :
- Estilo de ventana.
- -Forma del ratón que accede a la ventana ( si es una flecha, un reloj de arena, etc.)
- -El color del fondo de la ventana (si es blanco, negro, gris, etc.)
// Crea la ventana principal con:
- - un título para la ventana ( * Petición de profesores “)
- - Coordenadas origen de la ventana y dimensiones de la misma.
- - Información que aprenderá la ventana que en el caso de el ejemplo, seria:
. La etiqueta “pulse el botón que desea solicitar”, y
. Los botones “ Listado de alumnos por asignatura” y “Listado de alumnos por clase”.
// Visualiza la ventana principal para que se vean en la pantalla de la computadora.
// Crea un bucle (“bucle de mensajes”) para tratar todos los mensajes
// procedientes de las ventanas, que capta el Sistema Operativo y
// envía al Módulo de Control. El bucle tiene la siguiente forma:
PT Bachiller en Informática
199
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Procedimiento
Mientras existan mensajes
Coge un mensaje proporcionado por el Sistema operativo.
Lo analiza.
Devuelve el mensaje al sistema Operativo.
Fin_Mientras
Fin
3.-Algoritmo de programa de una función de ventana.
• Programar una función ventana asociada al cuadro de dialogo o ventana “colegio”
• Teclear el siguiente pseudocódigo:
*Función de ventana asociado a la Ventana Principal
Función_Ventana_Principal (mensaje)
Inicio Función_Ventana _Principal
Si mensaje = “ listado de alumnos por asignatura”
Entonces
Crear el cuado de diálogo de asignatura
Retornar
Fin_si
Si mensaje = “Listado de alumnos por clase”
Entonces
Crear el Cuadro de Diálogo de clase
Retornar
Fin_si
Fin Función_Ventana
4.-Repetir los procedimientos con asesoría del PSA.
Nota: El instructor deberá adecuar la práctica al equipo con el que se cuenta.
4 Separar los residuos recuperables (usar las dos caras de las hojas y colocar los desechos en el lugar
indicado).
200
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Lista de cotejo de la práctica
número 11:
Pseudocódigo
eventos.
con
programación
dirigida
por
Nombre del alumno:
Instrucciones:
A continuación se presentan los criterios que van a ser
verificados en el desempeño del alumno mediante la
observación del mismo.
De la siguiente lista marque con una 9 aquellas
observaciones que hayan sido cumplidas por el alumno
durante su desempeño
Desarrollo
Sí
No
No
Aplica
­Aplicó las medidas de seguridad e higiene.
• Evitó la manipulación de líquidos.
• Tuvo condiciones adecuadas en el aula (iluminación,
ventilación y limpieza).
1.-Algoritmo de programa dirigido por control.
• Diseñó un programa que vaya pidiendo datos al usuario y
que, en base a ellos, ejecute una serie de acciones a través
de los objetos que define el problema.
• Tecleó el pseudocódigo correspondiente.
2.-Algoritmo de programa dirigido por eventos.
• Diseñó una interfaz de usuario, en el que se presentan todas
las posibilidades que permiten que el programa y el usuario,
al igual que un cajero electrónico, escoger la acción que se
desee realizar.
• Tecleó el pseudocódigo correspondiente.
PT Bachiller en Informática
201
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
Desarrollo
Sí
No
3.-Algoritmo de programa de una función de ventana.
• Programó una función ventana asociada al cuadro de
dialogo o ventana “colegio”
• Tecleó el pseudocódigo correspondiente.
4.- Repitió los procedimientos con asesoría del PSA.
4 Separó los residuos recuperables (usar las dos caras de las hojas
y colocar los desechos en el lugar indicado).
Observaciones:
PSA:
Hora de
inicio:
202
Hora de
término:
PT Bachiller en Informática
Evaluación:
No
Aplica
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESUMEN
La resolución de un problema se puede dividir en tres fases importantes:
¾ Analisis del problema
¾ Diseño o desarrollo del algoritmo
¾ Resolución del algoritmo en la computadora
El primer paso -analisis del problema- requiere que el problema sea definido y comprendido
claramente para que pueda ser analizado con todo detalle una vez analizado el problema,
se debe desarrollar el algoritmo-procedimiento paso a paso para solucionar el problema
dado-. Por último para resolver el algoritmo mediante una computadora se necesita
codificar el algoritmo en un lenguaje de programación.
ANALISIS DEL PROBLEMA. El propósito del analisis de un problema es ayudar al
programador para llegar a una cierta compresión de la naturaleza del problema, el
problema debe estar bien definido si se desea llegar a una solución satisfactoria para poder
definir con presición el problema se requiere que las especificaciones de entrada y salida
sean descritas con detalle. Una buena definición del problema junto con una descripción
detallada de las especificaciones de entrada y salida, son los requisitos mas importantes
para llegar a una solución eficaz.
DISEÑO DEL ALGORITMO. Una computadora no tiene capacidad para solucionar problemas
más que cuando se le proporciona los sucesivos pasos a realizar, estos pasos sucesivos que
indican
instrucciones a ejecutar por la máquina constituyen el algoritmo. Los problemas complejos
se pueden resolver más eficazmente con la computadora cuando se rompen en
subproblemas que sean más fáciles de solucionar que el original, normalmente los pasos
diseñados en el primer esbozo del algoritmo son incompletos le indicarán solo unos pocos
pasos, tras esta primera descripción estos se amplian en una descrpción más detallada con
más pasos específicos esto proceso se denomina refinamiento del algoritmo.Para problemas
complejos diferentes niveles de refinamiento se necesitan con frecuencia antes de que un
algoritmo claro, preciso, completo se pueda obtener.
PT Bachiller en Informática
203
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESUMEN
El sistema para describir un algoritmo consiste en realizar una descripción paso a paso con
un lenguaje natural del sitado algoritmo, en cálculos elementales estas reglas tienen las
siguientes propiedades:
a) Deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un
resultado diferente.
b) Solo puede ejecutarse una operación a la vez.
Para representar un algoritmo se debe utilizar algún método que permita independizar
dicho algoritmo del lenguaje de programación elegido.Ello permitirá que un algoritmo
pueda ser codificado indistintamente en cualquier lenguaje, para conseguir esto se precisa
que el algoritmo sea representado gráfica o numéricamente, de modo que las acciones
sucesivas no dependan de la sintaxis de ningún lenguaje de programación, sino que la
descripción pueda servir fácilmente para su transformación en un programa es decir su
codificación.
Los métodos mas usuales para representar un algoritmo son:
Diagrama de flujo.
Lenguaje de especificación de algoritmos: Pseudocódigo.
DIAGRAMA DE FLUJO: Un diagrama de flujo es una de las técnicas de representación de
algoritmos más antigua y a la vez más utilizada.Un diagrama de flujo es un diagrama que
utiliza los símbolos (cajas) estándar y que tiene los pasos del algoritmo escritos en esas cajas
unidas por flechas denominadas líneas de flujo, que indican la secuencia en que se deben
ejecutar.
PSEUDOCODIGO. El pseudocódigo es un lenguaje de especificación de algoritmos, el uso de
tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de
programación) relativamente fácil.
204
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESUMEN
El pseudocódigo nació como un lenguaje similar al inglés y era un medio de representar
básicamente la estructuras de control de programación estructurada, se considera un
primer borrador dado que el pseudocódigo tiene que traducirse posteriormente a un
lenguaje de programación.
El pseudocódigo no puede ser ejecutado por una computadora, es también fácil de
modificar el pseudocódigo si se descubren errores o anomalias en la lógica del programa, el
pseudocódigo puede ser traducido a cualquier lenguaje de programación, el pseudocódigo
utiliza para representar las acciones sucesivas, palabras reservadas en inglés similares a sus
homónimas en su lenguaje de programación, la escritura exige normalmente la indentación
(sangría en el margen izquierdo) de diferentes líneas.
Aunque el pseudocódigo nació como un sustituto del lenguaje de programación y, por
consiguiente, sus palabras reservadas se conservaron o fueron muy similares a las de dichos
lenguajes, practicamente el inglés, el uso del pseudocódigo se ha extendido con terminos
en español como, inicio, fin parada, leer, escribir, si entonces sino, mientras, fin mientras,
repetir, hasta que, sin duda el uso de la terminologia de pseudocódigo en español ha
facilitado y facilitará considerablemente el aprendizaje de uso diario de la programación.
PT Bachiller en Informática
205
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
AUTOEVALUACIÓN DE CONOCIMIENTOS
1. ¿Qué es un lenguaje de programación?
2. ¿Defina qué es un sistema operativo?
3. ¿Cuál es la estructura básica de un sistema operativo?
4. ¿Cuáles son los símbolos más usados en la representación de un diagrama de flujo?
5. ¿Cuáles son los pasos a seguir para el tratamiento de un problema?
6. ¿A qué denominamos “dato”?
7. ¿Cuáles son los tipos de datos existentes?
8. ¿Qué es una constante?
9. Cuál es la definición de variable?
10. ¿Cómo se encuentran clasificadas las variables y cuales son?
11. ¿A qué llamamos operador?
12. ¿Cuáles son los operadores aritméticos y cual es su función?
13. ¿Cuáles son los operadores relacionales y para que nos sirven?
14. ¿Cuáles son los operadores lógicos?
15. ¿A qué llamamos estructura básica de control?
16. ¿Cuáles son los tipos de estructuras básicas de control?
17. ¿A qué llamamos arreglo?
18. ¿Qué es un vector?
19. ¿Qué es una matriz?
20. ¿Cuáles son los conceptos de pilas y colas?
21. ¿A qué denominamos listas?
22. ¿En informática a que llamamos árbol?
23. ¿Qué es un fichero o archivo?
24. ¿A qué denominamos fichero secuencial?
25. ¿A qué denominamos fichero indexado?
26. ¿Cuáles son las características de la programación estructurada?
206
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
AUTOEVALUACIÓN DE CONOCIMIENTOS
27. ¿A qué llamamos estructura secuencial?
28. ¿Para que se utiliza la estructura condicional?
29. ¿A que llamamos estructura repetitiva?
30. ¿A qué llamamos programación funcional?
31. ¿Cuáles son los lenguajes comprendidos en la programación funcional?
32. ¿Cuál es el concepto de Recursividad?
33. ¿Cuáles son las características de la programación lógica?
34. ¿Qué es PROLOG?
35. ¿Qué es la forma clausal?
36. ¿Cuáles son las características de la programación orientada a objetos?
37. ¿Qué es un objeto?
38. ¿A qué llamamos encapsulación en la programación orientada a objetos?
39. ¿A qué llamamos clase?
40. ¿Cuál es el concepto de herencia?
41. ¿Qué es la identidad de un objeto?
42. ¿Para qué nos sirve el HTML?
43. ¿A qué denominamos Multitareas?
44. ¿Cuáles son los tipos de multitareas que existen?
PT Bachiller en Informática
207
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
1. Un lenguaje de programación es una notación para escribir programas, a través
de los cuales podemos comunicarnos con el hardware.
Conjunto de normas “lingüísticas” (palabras y símbolos) que permiten escribir un
programa y que éste sea entendido por el ordenador y pueda ser trasladado a
ordenadores similares para su funcionamiento en otros sistemas.
Los lenguajes de programación deben tener instrucciones que pertenecen a las
categorías ya familiares de entrada/salida.
2. Conjunto de programas que se integran con el hardware para facilitar al usuario,
el aprovechamiento de los recursos disponibles. Algunos de sus objetivos
principales son:
o
o
o
Provee de un ambiente conveniente de trabajo.
Hace uso eficiente del Hardware.
Provee de una adecuada distribución de los recursos.
3. Cargador, Cargador para el sistema operativo, Cargador incluido en el sistema
operativo, Supervisor, Lenguaje de comunicación, Utilería de sistema.
Es aquel diagrama que utiliza símbolos estándar y en el que cada paso del
algoritmo se visualiza dentro del símbolo adecuado y el orden en que los pasos se
ejecutan se indica conectándolos con flechas llamadas "líneas de flujo" porque
indican el flujo lógico del algoritmo.
208
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
4.
A: Inicio / Fin Representa el inicio o el fin de un programa.
B: Entrada / Salida Representa cualquier tipo de introducción de datos o salida
de información a la pantalla.
C: Proceso Indica cualquier tipo de operación que pueda originar un cambio de
valor, operaciones aritméticas, etc.
D: Decisión Indica operaciones lógicas de comparación de valores. En función al
resultado de la misma se determinará el camino a seguir.
E: Conector Enlaza dos partes de un diagrama de flujo.
F: Líneas de Flujo Muestran el sentido de ejecución de las operaciones.
G: Impresora Se usa como símbolo de salida de información a través de impresora.
5. Análisis del problema; Elaboración del diagrama de flujo; Diseño del
procedimiento de solución (algoritmo); Escritura de la solución en pseudocódigo;
Prueba de escritorio; Construcción de programa en lenguaje de programación;
Compilar o interpretar, según sea el caso; Ejecución del programa; Pruebas y
documentación.
6. Un dato puede ser un simple carácter, tal como ‘b’, un valor entero tal como 35.
El tipo de dato determina la naturaleza del conjunto de valores que puede tomar
una variable.
PT Bachiller en Informática
209
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
7. Numéricos, Lógicos y Alfanuméricos.
8. Una constante es un dato numérico o alfanumérico que no cambia durante la
ejecución del programa.
9. Una variable es un espacio en la memoria de la computadora que permite
almacenar temporalmente un dato durante la ejecución de un proceso, su
contenido puede cambia durante la ejecución del programa. Para poder reconocer
una variable en la memoria de la computadora, es necesario darle un nombre con
el cual podamos identificarla dentro de un algoritmo.
10. Pila: Es una lista de elementos caracterizada porque las operaciones de inserción
y eliminación se realizan solamente en un extremo de la estructura. El extremo
donde se realizan estas operaciones se denomina habitualmente 'cima' (top en
nomenclatura inglesa).
Cola: Son secuencias de elementos caracterizadas porque las operaciones de
inserción y borrado se realizan sobre extremos opuestos de la secuencia. La
inserción se produce en el "final" de la secuencia, mientras que el borrado se
realiza en el otro extremo, el "inicio" de la secuencia.
11. Listas: Son secuencias de elementos, donde estos elementos pueden ser
accedidos, insertados o suprimidos en cualquier posición de la lista. No existe
restricción alguna acerca de la localización de esas operaciones. Se trata de
estructuras muy flexibles puesto que pueden crecer o acotarse como se quiera.
12. Un árbol es una colección de elementos llamados nodos, uno de los cuales se
distingue del resto como raíz, junto con una relación que impone una estructura
jerárquica entre los nodos.
210
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
13. Un fichero es una colección de registros similares. El archivo es tratado como una
entidad individual por los usuarios y las aplicaciones y puede ser referenciada por
el nombre.
14. Es aquel en el que los registros están grabados en orden y deben ser leídos en
ese mismo orden. Para leer un registro hay que pasar por los anteriores.
15. Es aquel en el que existe un índice y el acceso al fichero se realiza en base al
índice.
16. En la programación estructurada Se plantea una operación como un todo y se
divide en segmentos más sencillos o de menor complejidad. Una vez terminado
todos los segmentos del programa, se procede a unificar las aplicaciones
realizadas por el pool de programadores. La representación grafica de la
programación estructurada se realiza a través de diagramas de flujo o flow chart,
el cual representa el programa con sus entradas, procesos y salidas. La
programación estructurada propone segregar los procesos en estructuras lo más
simple posibles, las cuales se conocen como secuencia, selección e interacción.
17. Estructura secuencial es aquella en que una acción sigue a otra en secuencia. Las
tareas se suceden de tal modo que la salida de una es la entrada de la siguiente.
18. La estructura condicional se utilizan para tomar decisiones lógicas. En éstas se
evalúa una condición y en función del resultado de la misma se realiza una opción
u otra.
19. Estructura repetitiva son aquellas que repiten una secuencia de instrucciones un
número determinado de veces se llaman bucles, e iteración al hecho de repetir la
ejecución de una secuencia de acciones.
PT Bachiller en Informática
211
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
20. Los programas escritos en un lenguaje funcional están constituidos únicamente
por definiciones de funciones, entendiendo éstas no como subprogramas clásicos
de un lenguaje imperativo, sino como funciones puramente matemáticas, en las
que se verifican ciertas propiedades como la transparencia referencial (el
significado de una expresión depende únicamente del significado de sus
subexpresiones).
21. Lisp, Camel Hope.
22. El concepto de recursividad va ligado al de repetición. Son recursivos aquellos
algoritmos que, estando encapsulados dentro de una función, son llamados desde
ella misma una y otra vez.
23. La programación Lógica está basada en la noción de Relación. Debido a que en
la relación es un concepto mas general de una Aplicación. La Programación
Lógica es potencialmente de alto nivel. Los lenguajes de Programación Lógica
pueden explotar la Inteligencia Artificial.
24. PROLOG es un lenguaje de programación Logica.
En la programación lógica son las relaciones las que definen un programa y la forma
normal de representar una relación es mediante la utilización de cláusulas.
25. Abstracción. Abstracción. Es el mecanismo de diseño en la Programación
Orientada a Objetos. Nos permite extraer de un conjunto de entidades datos y
comportamientos comunes para almacenarlos en clases.
212
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
Encapsulamiento. Mediante esta técnica conseguiremos que cada clase sea una
caja negra, de tal manera que los objetos de esa clase se puedan manipular como
unidades básicas. Los detalles de la implementación se encuentran dentro de la
clase, mientras que desde el exterior, un objeto será simplemente una entidad que
responde a una serie de mensajes públicos (también denominados interfaz de la
clase).
Herencia. Es el mecanismo que nos permite crear clases derivadas
(especialización) a partir de clases bases (generalización). Es decir, podríamos
tener la clase "Empleado" (clase base) y la clase "Vendedor" derivando de la
anterior. Una librería de clases (como la MFC) no es más que un conjunto de
definiciones de clases interconectadas por múltiples relaciones de herencia.
Polimorfismo. Esta característica nos permite disponer de múltiples
implementaciones de un mismo método de clase, dependiendo de la clase en la
que se realice. Es decir, podemos acceder a una variedad de métodos distintos
(con el mismo nombre) mediante el mismo mecanismo de acceso. En C++ el
polimorfismo se consigue mediante la definición de clases derivadas, funciones
virtuales y el uso de punteros a objetos.
26. Un objeto es un elemento real o abstracto, que tiene un estado, un
comportamiento y una identidad. Un objeto es, pues, una mesa, una silla, un
alumno, una clase, etc., pues son elementos reales que se pueden comprender y
están bien definidos. Un objeto también es un concepto abstracto como un
elemento denominado «Ordenador» que es capaz de recibir un conjunto de
números y los ordena ascendente o descendentemente.
PT Bachiller en Informática
213
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
RESPUESTAS A LA AUTOEVALUACIÓN DE CONOCIMIENTOS
27. La encapsulación es el proceso que aplica el diseñador de un objeto para ocultar
aquellos detalles del objeto que no son específicamente necesarios para su uso. A
la encapsulación se le denomina también «ocultamiento de información».
28. La clase es la plantilla que permite crear objetos de la misma estructura y
comportamiento. Pero se ha de tener en cuenta que los valores de los atributos de
cada objeto pueden ser diferentes.
29. Los objetos derivados de otros heredan los atributos y los servicios de sus clases
bases.
30. Se entiende por identidad de un objeto la propiedad característica que tiene ese
objeto que le distingue de todos los demás.
31. Es un sistema para estructurar documentos. Estos documentos pueden ser
mostrados por los visores de paginas Web en Internet, como Netscape, Mosaic o
Microsoft Explorer.
32. El término multitarea se refiere a la capacidad del Sistema Operativo para correr
mas de un programa al mismo tiempo
33. Multitareas basadas en proceso y multitareas basada en hebras o hilos.
214
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
ABSTRACCIÓN: Es el mecanismo de diseño en la POO. Nos permite extraer de un
conjunto de entidades datos y comportamientos comunes para almacenarlos en clases.
ACUMULADORES: Forma que toma una variable y que sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o calculando progresivamente.
ALICE: Es un sistema pionero para el modelado y resolución de CSPs (problemas de
satisfacción de restricciones) de
programación lógica con restricciones. La
caracterización de estos lenguajes se da por: La especificación del sistema particular de
restricciones. La especificación de las reglas de computación y selección.
ALGORITMO: Lista de instrucciones donde se especifica una sucesión de operaciones
necesarias para resolver cualquier problema de un tipo dado.
ALTURA O PROFUNDIDAD DE UN ÁRBOL: Nivel máximo de un nodo en un árbol.
ANTECESORES DE UN NODO: Todos los nodos en el camino desde la raíz del árbol hasta
ese nodo.
ARBOL: Un árbol es una colección de elementos llamados nodos, uno de los cuales se
distingue del resto como raíz, junto con una relación que impone una estructura
jerárquica entre los nodos.
GLOSARIO DE TÉRMINOS
PT Bachiller en Informática
215
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
ÁRBOL BINARIO: Estos árboles se caracterizan porque no existen nodos con grado mayor
a dos, es decir, un nodo tendrá como máximo dos subárboles.
ARCHIVO: Cualquier conjunto de datos o instrucciones que se trata como una sola
unidad y se guarda bajo un mismo nombre.
ARITMETICA BINARIA: Forma de operar con un sistema binario de numeración. Ver
BINARIO.
ARQUITECTURA DE UNA COMPUTADORA: Diseño de un sistema de computación.
Determina las capacidades y velocidad del sistema. En última instancia, de la
arquitectura depende lo que pueda hacerse con un equipo.
ARREGLO: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre
(variable) a una colección de datos del mismo tipo
ASCII: Viene del ingles, American Standard Code for Information Interchange: Código
estándar americano para intercambio de información. Es un código binario, que en su
conjunto básico ofrece 255 elementos para representar números, letras, símbolos y
caracteres gráficos. No incluye las vocales acentuadas del español sino en su conjunto
ampliado, que agrega 256 caracteres mas por medio de la extensión de dos caracteres.
BASIC: Beginners All Purpose Symbolic Instruction Code, es decir, "clave de instrucciones
simbólicas de propósito general para principiantes". Es un lenguaje interpretativo,
desarrollado para la enseñanza. Por ser relativamente compacto se utiliza en las
primeras computadoras personales. Su aprendizaje es fácil, por lo que durante mucho
tiempo ha sido la opción favorita para iniciar a los jóvenes estudiantes en la
programación.
216
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
BINARIO: Sistema de numeración base 2 en el que solo existen dos dígitos, 1 y 0.
BIT: Binary digiT (Digito binario). Físicamente, se trata de una celda de memoria de
computadora; de un punto grabado magnéticamente en la superficie de un disco, cinta
o disquete; o de un pulso de bajo voltaje que se transmite a través de la circuiteria de la
computadora y que puede tomar el valor 0 ó 1.
BOSQUE: Conjunto de n >= 0 árboles disjuntos.
BYTE: Unidad de almacenamiento en computadoras de cualquier tamaño y capacidad.
Un byte esta formado por ocho digitos binarios o bits. Equivale a un carácter (como una
letra o símbolo). En cuanto a números, la capacidad va de una cifra decimal (0 a 9), dos
decimales empaquetados o un numero binario entre 0
y255.
C: Es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis M.
Ritchie en los Laboratorios Bell basándose en los lenguajes BCPL y B. Al igual que sus dos
predecesores, es un lenguaje orientado a la implementación de Sistemas operativos (los
sistemas operativos Linux y Unix están escritos mayormente en C), pero se ha convertido
en un lenguaje de propósito general de los más usados.
Se trata de un lenguaje no fuertemente clasificado de medio nivel pero con muchas
características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto
nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a
muy bajo nivel. Un ejemplo es la posibilidad de mezclar código en ensamblador con
código C o acceder directamente a memoria o dispositivos periféricos. Destaca su gran
riqueza de operadores y expresiones.
PT Bachiller en Informática
217
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
C++: Se pronuncia "ce plus plus". Fue desarrollado por Bjarne Stroustrup en los Bell
Laboratories a principios de la década de los '80. C++ introduce la programación
orientada al objeto en C. Es un lenguaje extremadamente poderoso y eficiente. C++ es
un súper conjunto de C, para aprender C++ significa aprender todo acerca de C, luego
aprender programación orientada al objeto y el uso de éstas con C++.
CAMEL: Ocaml es uno entre muchos lenguajes funcionales (como Lisp, Scheme, Haskell)
que además de programación funcional pura, permite programar empleando
características imperativas, algunas características propias de lenguajes orientados a
objetos e incluye un sistema de módulos que facilita el desarrollo de proyectos grandes
(con signaturas y funciones).
CAMINO: Sucesión de nodos del árbol: n(1), n(2), .. n(k), tal que n(i) es el padre de
n(i+1).
CLÁUSULA DE HORN: Fue Alfred Horn, un lógico alemán, quién en 1951 llegó a la
conclusión que para realizar una inferencia correcta y así eliminar las ambigüedades, las
cláusulas sólo debían de tener una conclusión.
CLASE: Es la plantilla que permite crear objetos de la misma estructura y
comportamiento.
COBOL: Common Business Oriented Language o lenguaje orientado a los negocios
comunes. Lenguaje narrativo basado en el ingles que permite manejar archives de gran
tamaño; una de sus ventajas es su sintaxis de auto documentación. Su complicado
formato hace que los programas sean de gran tamaño. Se utilizo preferentemente para
el procesamiento de datos contables, con grandes archivos y procesos matemáticos
relativamente sencillos.
218
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
COLAS: Las colas son secuencias de elementos caracterizadas porque las operaciones de
inserción y borrado se realizan sobre extremos opuestos de la secuencia
COMPUTADORA DE APLICACION GENERAL: Computadora diseñada para resolver una
amplia gama de problemas por medio de distintos conjuntos de instrucciones que se
pueden aplicar a diferentes datos, dependiendo de las necesidades del usuario.
COMPUTADORA PERSONAL: Este termino se ha venido aplicando a las
microcomputadoras, inicialmente diseñadas y fabricadas para uso domestico. Se trata
de equipo orientado sobre todo a un solo usuario.
COMPILADOR: Programa que lee el código escrito en un lenguaje (lenguaje origen), y lo
traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje
objetivo).
COMPORTAMIENTO OBJETO: El comportamiento de un objeto viene determinado por la
forma de actuar al recibir un mensaje para que realice una acción.
COMPOSICIÓN FUNCIONAL: Un modelo de composición funcional es aquel donde el
resultado del cálculo de una función es la entrada a la siguiente y así sucesivamente
hasta que la composición resuelve el problema. En este tipo de programación un
programa se concibe como un conjunto de funciones, que se llaman unas a otras con
composición funcional para resolver un problema.
CONSTANTE. Una constante es un dato cuyo valor no puede cambiar durante la
ejecución del programa. Recibe un valor en el momento de la compilación y este
permanece inalterado durante todo el programa.
CONTADORES: Se utilizan para llevar el control del numero de ocasiones en que se
realiza una operación o se cumple una condición. Con los incrementos generalmente de
uno en uno.
PT Bachiller en Informática
219
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
DATO: Un dato puede ser un simple carácter, tal como ‘b’, un valor entero tal como 35.
El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una
variable.
DIAGRAMA DE FLUJO: Es aquel diagrama que utiliza símbolos estándar y en el que cada
paso del algoritmo se visualiza dentro del símbolo adecuado y el orden en que los pasos
se ejecutan se indica conectándolos con flechas llamadas "líneas de flujo" porque indican
el flujo lógico del algoritmo.
ENCAPSULAMIENTO: Mediante esta técnica conseguiremos que cada clase sea una caja
negra, de tal manera que los objetos de esa clase se puedan manipular como unidades
básicas.
ESTRUCTURA CONDICIONAL: Las estructuras condicionales comparan una variable
contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un
curso de acción dentro del programa. Cabe mencionar que la comparación se puede
hacer contra otra variable o contra una constante, según se necesite. Existen dos tipos
básicos, las simples y las múltiples.
ESTRUCTURA REPETITIVA: Se llaman problemas repetitivos o cíclicos a aquellos en cuya
solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar
una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada
por el programador) o puede ser variable (estar en función de algún dato dentro del
programa).
ESTRUCTURA SECUENCIAL: Es aquella en la que una acción (instrucción) sigue a otra en
secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se
representa de la siguiente forma:
FICHERO. Es una colección de registros similares. El archivo es tratado como una entidad
individual por los usuarios y las aplicaciones y puede ser referenciada por el
nombre.todas las claves de los registros, y asociados a esta clave, la dirección que tiene
el registro en el fichero. De esta forma, no hay que leer todos los registros uno por uno
hasta llegar a la información que nos interesa, sino que lee el disco por sectores.
220
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
FICHERO PERMANENTE: Son los que contienen información relevante para el programa.
FICHERO DE MOVIMIENTOS O TEMPORAL: ontienen información relevante para
determinado programa, pero no para la aplicación en su conjunto. Sus datos proceden
de los ficheros permanentes.
FICHERO INDEXADO: La grabación del registro es igual que en el anterior
(secuencialmente). La lectura, se hace a través de un índice. El índice, recoge
FICHERO SECUENCIAL: Los registros están grabados en orden y deben ser leídos en ese
mismo orden. Para leer un registro hay que pasar por los anteriores. Solo pueden
añadirse registros al final del fichero. No permite la inserción de registros en un punto
cualquiera. La modificación de información, solo puede efectuarse si la nueva
información no excede de la longitud del registro. El borrado es lógico y consiste en una
marca que el programa le pone a ese registro, para que cuando el programa vaya a
leerlo, lo ignore saltando al registro siguiente. No se borra físicamente el registro.
FORTRAN: FORmula TRANslation o traducción de formulas. Familia de lenguajes
orientados a procedimientos que se utiliza en aplicaciones científicas, por la facilidad
que ofrece para el manejo de expresiones algebraicas. Fue el primer lenguaje que
permitió a personas no especializadas la comunicación con la computadora. Su punto
fuerte es, precisamente, la representación de formulas y expresiones algebraicas, con
ciertas limitaciones para el manejo de datos alfabéticos. Es un lenguaje algorítmico. Ver
ALGORITMO.
PT Bachiller en Informática
221
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
FUNCIÓN: Las funciones son bloques de instrucciones que tienen por objeto el alcanzar
un resultado que sustituirá a la función en el punto de invocación (las funciones
devuelven un resultado).
FUNCIÓN DE ORDEN SUPERIOR: Esta es una característica fundamental que deben tener
las funciones que participen en la construcción de un programa funcional. Una función
de orden superior es aquella que acepta como argumento otra función que puede
retornar como valor de la función otra función. Es decir que tienen el status de
cualquier otro objeto.
GIGABYTES: Mil millones de bytes de capacidad y velocidad de almacenamiento. Un
byte es la unidad de almacenamiento equivalente a 8 bits o a un carácter de
información. Un bit o digito binario (Binary digIT) es el componente mas pequeño de la
clave binaria, es decir un solo digito (0 ó 1).
GRADO DE UN NODO: Es el número de subárboles que tienen como raíz ese nodo
(cuelgan del nodo).
GRADO DE UN ÁRABOL: Grado máximo de los nodos de un árbol.
HARDWARE: En computación, el equipo físico. La computadora y sus componentes
electrónicos, así como todos sus periféricos y cables, impresoras, graficadores, modems,
digitalizadores y ratones constituyen la maquinaria o hardware.
HASTA (do/while): Se ejecuta hasta que se cumpla una condición determinada que se
comprueba al final del bucle, esto permite que la iteración se ejecute al menos una vez
antes de que la condición sea evaluada.
222
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
HERENCIA: Es el mecanismo que nos permite crear clases derivadas (especialización) a
partir de clases bases (generalización). Es decir, podríamos tener la clase "Empleado"
(clase base) y la clase "Vendedor" derivando de la anterior
HIJO DE UN NODO: Nodos que dependen directamente de ese nodo, es decir, las raíces
de sus subárboles.
HOPE: Es un pequeño lenguaje de programación funcional, con escritura polimorfica y
algebraica, patrón de comprobaciones y funciones de orden superior. Esta versión es un
completo interprete.
HTML: (Hyper Text Markup Language) es un lenguaje que sirve para escribir hipertexto, es
decir, documentos de texto presentado de forma estructurada, con enlaces (links) que
conducen a otros documentos o a otras fuentes de información (por ejemplo bases de
datos) que pueden estar en tu propia máquina o en máquinas remotas de la red.
IBM: International Business Machines Empresa que se dedica a la fabricación de
computadoras y desarrollo de sistemas de información.
IDENTIDAD OBJETO: Se entiende por identidad de un objeto la propiedad característica
que tiene ese objeto que le distingue de todos los demás.
INFORMÁTICA: Ciencia del tratamiento automático y racional de la información,
considerada como soporte de los conocimientos y las comunicaciones. Se ocupa del
análisis de la información vista como un recurso para la organización. Esto incluye las
definiciones, usos, valor y distribución de la información.
PT Bachiller en Informática
223
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
INTERPRETE: Los interpretes en lugar de producir un Lenguaje objetivo, como en los
compiladores, lo que hacen es realizar la operación que debería realizar el Lenguaje
origen. Un interprete lee el código como esta escrito y luego lo convierte en acciones, es
decir, lo ejecuta en ese instante.
JAVA: Java es una tecnología que hace sencilla la construcción de aplicaciones
distribuidas, programas que son ejecutables por múltiples ordenadores a través de la red.
En el estado del arte en la programación de red, Java promete extender el papel de
Internet desde el terreno de las comunicaciones hacia una red en la cual puedan
ejecutarse las aplicaciones completas.
LENGUAJE ARTIFICIAL: Cualquier lenguaje creado de manera especifica para cierta
aplicación. Un ejemplo de lenguaje artificial lo constituye el Esperanto, que para la
gramática y el vocabulario aprovechaba las raíces latinas de muchas de las lenguas
modernas; fue inventado en 1887 por el Dr. L. L. Zamenhof, con el objetivo de lograr una
lengua universal, de facil aprendizaje y que propiciara la paz entre los pueblos y naciones.
En computación, son artificiales todos los lenguajes que hasta ahora se han utilizado para
dar instrucciones a la maquina, aunque en forma experimental y aplicaciones limitadas ya
se puede usar la voz humana en algunos casos. Vease LENGUAJE NATURAL.
LENGUAJE DE ALTO NIVEL: Lenguaje de programación que tiende a ser independiente de
las limitaciones de un equipo especifico de computo. Se escribe usando códigos fáciles de
recordar para el programador, donde cada instrucción puede re-presentar numerosas
instrucciones del programa en el código de maquina que la computadora puede
comprender. Son ejemplos de este tipo de lenguaje FORTRAN, BASIC, PASCAL y C.
224
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
LENGUAJE DE BAJO NIVEL: Código de maquina y lenguaje de ensamble que se escribe
incluyendo todos los detalles, como direcciones de memoria. Casi siempre, cada
proposición del programa en lenguaje de bajo nivel representa una sola instrucción de
maquina. Los lenguajes de bajo nivel son específicos de cada arquitectura particular de
computadora.
LENGUAJE DE MAQUINA: Conjunto de instrucciones escrito en forma tal que se puede
ejecutar, esto es, entendido y operado, por una computadora. Es el lenguaje original de
cada computadora y cualquier instrucción o conjunto de instrucciones que ejecuta una
maquina debe expresarse en ultima instancia en lenguaje de maquina para su ejecución.
LENGUAJE DE PROGRAMACIÓN: Ccualquier lenguaje artificial que puede utilizarse para
definir una secuencia de instrucciones para su procesamiento por un ordenador o
computadora.
LENGUAJE ENSAMBLADOR: Lenguaje de programación diseñado para convertir las
instrucciones simbólicas dadas en un lenguaje de alto nivel a una forma adecuada para su
ejecución por la maquina. Es decir, que traduce de un lenguaje de alto nivel a lenguaje de
maquina.
LENGUAJE NATURAL: Se refiere a todas aquellas formas de comunicación que se van
desarrollado durante la evolución de los grupos humanos.
LENGUAJES ESTRUCTURADOS: Se trata del conjunto de lenguajes de alto nivel
desarrollados para aplicaciones en inteligencia artificial, que facilitan la representación,
almacenamiento y recuperación de conocimiento; es decir, el manejo de estructuras no
algorítmicas. Facilitan el manejo de listas y la representación simbólica de objetos. Son
ejemplos de este tipo de lenguaje LISP y PROLOG.
PT Bachiller en Informática
225
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
LISP: List Processor. Procesador de listas. Lenguaje no estructurado que se desarrollo para
aplicarlo en la investigación en inteligencia artificial. Permite el manejo eficiente de listas
de todo tipo, lo que lo hace muy adecuado para el manejo y dosificación de bases de
conocimiento
LISTAS: Las listas son secuencias de elementos, donde estos elementos pueden ser
accedidos, insertados o suprimidos en cualquier posición de la lista.
LOGARITMOS: Exponente al que hay que elevar una cantidad positiva para que resulte un
numero determinado. Existen logaritmos tabulados para distintas bases, como 10, el
numero e, etcétera. Los creo como un método abreviado de desarrollar cálculos el
matemático escocés John Napier (1550-1617).
LONGITUD DE CAMINO DE UN ÁRBOL: Suma de las longitudes de los caminos a todos sus
componentes.
MATRIZ. Es un arreglo de M * N elementos organizados en dos dimensiones donde “M”
es el numero de filas o reglones y “N” el numero de columnas.
MIENTRAS (WHILE).La estructura repetitiva mientras es aquella en que el cuerpo del bucle
se repite mientras se cumple una determinada condición.
MINICOMPUTADORAS:
Computadoras
de
tamaño
intermedio,
entre
una
microcomputadora y una macrocomputadora. Este tipo de clasificación del equipo de
computo se ha vuelto casi obsoleta en esta época de rápidos cambios, tanto en las
capacidades de memoria de las maquinas como de las velocidades de procesamiento.
MULTITAREA: El término multitarea se refiere a la capacidad del Sistema Operativo para
correr mas de un programa al mismo tiempo.
226
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
MULTITAREA BASADA EN PROCESOS: Consiste en ejecutar varios procesos (programas) a
la vez.
MULTITAREA BASADA EN HILOS: Consiste en ejecutar varias partes de un mismo
programa simultáneamente.
NIVEL DE UN NODO: Longitud del camino desde la raíz hasta el nodo. El nodo raíz tiene
nivel 1.
NODOS HERMANOS: Nodos hijos del mismo nodo padre.
NODO TERMINAL U HOJA: Nodo con grado 0. No tiene subárboles.
OBJETO: Un objeto es un elemento real o abstracto, que tiene un estado, un
comportamiento y una identidad. Un objeto es, pues, una mesa, una silla, un alumno,
una clase, etc., pues son elementos reales que se pueden comprender y están bien
definidos
OPERADORES: Son elementos que relacionan de forma diferente, los valores de una o mas
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
PADRE DE UN NODO: Antecesor directo de un nodo del cual depende directamente.
PASCAL: Lenguaje de Programación de alto nivel y propósito general, desarrollado por
Niklaus Wirth, profesor del Instituto tecnológico de Zurcí Suiza. Lo creó pensando en un
lenguaje didáctico para el aprendizaje de técnicas de programación, "una disciplina
sistemática basada en determinados conceptos fundamentales".
PT Bachiller en Informática
227
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
PARA (for): Se utilizan las estructuras for cuando se conocen con certeza el número de
veces que desea repetir un bucle, es decir, cuando es un número fijo de veces.
PILA: La pila es una lista de elementos caracterizada porque las operaciones de inserción y
eliminación se realizan solamente en un extremo de la estructura.
POLIFORMISMO: Esta característica nos permite disponer de múltiples implementaciones
de un mismo método de clase, dependiendo de la clase en la que se realice. Es decir,
podemos acceder a una variedad de métodos distintos (con el mismo nombre) mediante
el mismo mecanismo de acceso.
PROGRAMA ALMACENADO: Conjunto de instrucciones guardadas en la memoria interna
de la computadora que especifica las operaciones que deben realizarse y la localización de
los datos con los cuales deben realizarse estas operaciones. La existencia de un programa
almacenado permite aplicar las mismas instrucciones a diferentes conjuntos de datos, por
lo que se trata de un gran avance en el procesamiento de datos.
PROGRAMACIÓN DIRIGIDA POR CONTROL: Los programas dirigidos por control se
ejecutan típicamente desde una línea de comando o automáticamente desde otra
aplicación (tipo scheduler).
PROGRAMACIÓN DIRIGIDA POR EVENTOS: Los programas dirigidos por eventos son los
programas típicos de Windows, tales como Netscape, Word, Excel, PowerPoint y otros.
Cuando uno de estos programas ha arrancado, lo único que hace es quedarse a la espera
de las acciones del usuario, que en este caso son llamadas eventos.
228
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
PROGRAMACIÓN ESTRUCTURADA: La programación estructurada es una teoría de
programación que consiste en construir programas de fácil comprensión. La
programación estructurada se basa en una metodología de desarrollo de programas
llamada refinamiento sucesivos.
PROGRAMACIÓN FUNCIONAL: La Programación Funcional es un Paradigma de
Programación declarativa basado en la utilización de funciones matemáticas. Los
programas escritos en un lenguaje funcional están constituidos únicamente por
definiciones de funciones.
PROGRAMACIÓN LÓGICA: La programación lógica parte del establecimiento de una base
de datos de sentencias y reglas de inferencia que son declaradas por el programador,
dada la naturaleza declarativa de la lógica.
PROGRAMACIÓN ORIENTADA A OBJETOS: La Programación Orientada a Objetos (POO) es
una forma especial de programar, más cercana a como expresaríamos las cosas en la vida
real que otros tipos de programación.
PROLOG: PROgramming in LOGic: Programación en lógica. Lenguaje no estructurado que
se desarrollo para aplicarlo en la investigación en inteligencia artificial. Su especialidad es
la representación simbólica de objetos.
RAM: Random Access Memory: Memoria de acceso aleatorio. También se denomina
memoria principal y la computadora la usa para almacenar temporalmente la información
que recibe proveniente de los dispositivos de entrada. La información contenida en RAM
se pierde al apagar la maquina.
PT Bachiller en Informática
229
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
REALIDAD VIRTUAL: Capacidad de proporcionar un ambiente artificial tan rico en
estímulos para los sentidos del ser humano que resulta difícil o imposible distinguirla de
la realidad verdadera.
RECURSIVIDAD: El concepto de recursividad va ligado al de repetición. Son recursivos
aquellos algoritmos que, estando encapsulados dentro de una función, son llamados
desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen
uso de bucles while, do-while, for, etc.
REGISTRO LÓGICO: Es la información organizada tal como la percibe el usuario por medio
del programa.
REGISTRO FÍSICO: Son los bloques de información que la memoria transfiere desde la
unidad de almacenamiento masivo hasta la memoria central del sistema para procesarlos.
REGISTRO DE LONGITUD FIJA: Es en el que al configurar el fichero se le asigna un
determinado tamaño en bytes y lo mantiene a no ser que el registro sea modificado. Esto
es así independientemente de la cantidad de información que contenga (Access).
REGISTRO DE LONGITUD VARIABLE: En éstos el programa mide la cantidad de información
de los registros y adapta su tamaño a ellos (bases de datos documentales = Knosys).
RED: Grupo de computadoras interconectadas a través de diversos dispositivos. Internet
es un tipo de red empleado para distribuir recursos de información, de carácter global ya
que abarca todo el mundo.
230
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
REGISTRO UNITARIO: Método utilizado en las maquinas electromecánicas de contabilidad,
en las que el uso de una tarjeta perforada para almacenar un registro (es decir, los datos
correspondientes a una transacción, empresa o individuo) llevo al termino registro
unitario, esto es, una tarjeta igual a un registro.
ROM: Read Only Memory: Memoria solo de lectura. Es un tipo de memoria interna de la
computadora, constituida por circuitos integrados en los que por lo general se graban
conjuntos de instrucciones que al ser leídos por el sistema le permiten efectuar
operaciones básicas, como el arranque. El contenido de la memoria ROM no es volátil, ya
que no depende del suministro de energía, pero tampoco se puede modificar.
SISTEMA OPERATIVO: Conjunto de programas o software destinado a permitir la
comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y
eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware
de la máquina desde los niveles más básicos.
SOFTWARE: No existe una traducción exacta de esta palabra sin embargo se encuentra
compuesta por dos términos que son: Soft = suave y Ware = ambiente, podemos decir
que es el ambiente suave de el ordenador, pero en realidad se refiere a los programas que
se encuentran instalados el ordenador.
TABLAS: Una tabla o arreglo unidimensional es un tipo de datos estructurado que está
formado de una colección finita y ordenada de datos del mismo tipo.
PT Bachiller en Informática
231
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
GLOSARIO DE TÉRMINOS
TABLAS: Una tabla o arreglo unidimensional es un tipo de datos estructurado que está
formado de una colección finita y ordenada de datos del mismo tipo.
TRANSPARENCIA REFERENCIAL: Decir que una función tiene transparencia referencial,
quiere decir que se comporta como una función matemática, en el sentido de que si
recibe un valor de entrada, siempre producirá el mismo valor de salida y que el resultado
del cálculo de la función únicamente se produce por el nombre de la función.
UNÍX: Es un sistema operativo de tiempo compartido, controla los recursos de
una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus
programas. Controla los dispositivos de periféricos conectados a la máquina.
VARIABLE: Es un nombre asociado a un elemento de datos que está situado en
posiciones contiguas de la memoria principal, y su valor puede cambiar durante la
ejecución de un programa
VECTOR: Es un arreglo de “N” elementos organizados en una dimensión.
VIRUS: Programa subversivo capaz de ocultarse, autocopiarse, auto modificarse y
propagarse en el interior de un sistema de computo para alterar y destruir información e
interferir con el funcionamiento del equipo.
232
PT Bachiller en Informática
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
REFERENCIAS DOCUMENTALES
1. Cormen, Thomas H.: Introduction to Algorithms, 2ª Edición, USA, Ed. MIT Press /
Mc Graw-Hill, 2001.
2. Levine Gutiérrez Guillermo. Introducción a la computación y a la programación
estructurada, 1ª Edición, México, McGraw Hill, 1989.
3. Enciclopedia de la Informática y Computación, Vol. 1- 7, CEETICO, España,
Lector libro, S. L. , 2002.
4. Cárdenas Luque, Lola, Curso de Pascal, Disponible en:
http://rinconprog.metropoliglobal.com/CursosProg/LengProg/CursoPascal/index.php
?cap=8, [Consulta: 2 enero 2005].
5. Clavel, Manuel, Programación Estructurada, Disponible en:
http://www.ucm.es/info/dsip/clavel/courses/ip0203/node50.html [Consulta: 10
enero 2005).
6. Cruz, Yolima, Introducción a la informática, Disponible en:
http://fuxion.tripod.cl/fundamentos.htm#EJEMPLOS [Consulta 20 enero 2005].
7. Dirección General de Servicios de Computo Académico, UNAM, Introducción a la
Computación, Disponible en:
http://entren.dgsca.unam.mx/introduccion/so_clasif.html [Consulta: 12 enero
2005].
8. ICOM, CurcoC, Disponible en:
http://ib.cnea.gov.ar/~icom/CursoC/controlflujo.shtml [Consulta 18 enero 2005].
PT Bachiller en Informática
233
Informática
Colegio Nacional de Educación Profesional Técnica
Programación en Pseudocódigo
REFERENCIAS DOCUMENTALES
9. James l., Antonakos, Programación Estructurada, Disponible en: http://lenguajesde-programacion.com/programacion-estructurada.shtml [Consulta: 2 enero 2005].
10. Java.sun.com, Tutorial Java Consola, Disponible en:
http://www.programacionfacil.com/javacon/dos1.htm [Consulta 25/enero 2005].
11. Microcomputadoras, Historia del Software, Disponible en:
http://delta.cs.cinvestav.mx/~mcintosh/comun/historiaw/node23.html [Consulta: 8
enero 2005].
12. Microsoft Ibérica S. R. L., Procesos, Hilos y Planificación, Disponible en:
http://www.microsoft.com/spanish/MSDN/estudiantes/ssoo/diseno/procesos.asp
[Consulta: 20 enero 2005].
13. Torrealday, Gustavo F., Sistemas Operativos, Disponible en:
http://www.torrealday.com.ar/articulos/articulo005.htm [Consulta: 4 enero 2005].
234
PT Bachiller en Informática