Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 396

EDICIONES UAPA

EDICIONES UAPA

PROGRAMACIÓN I
EDICIONES UAPA

PROGRAMACIÓN I
DRA. VIVIAN ESTRADA
DRA. AILYN FEBLES ESTRADA
ING. ORESTE FEBLES DÍAZ
DR. JUAN PEDRO FEBLES RODRIGUEZ

SERIE AUTOAPRENDIZAJE
EDICIONES UAPA

PROGRAMACIÓN I

© Dra. Vivian Estrada


© Dra. Ailyn Febles Estrada
© Ing. Oreste Febles Díaz
© Dr. Juan Pedro Febles Rodríguez

Diseño de Portada
Rita Hernández

Diagramación
Anibelka Sánchez

Corrección de Estilo
Luisa Hernández

Primera edición: 2011

ISBN: 978-9945-8703-8-1

Edición e Impresión
Editora UAPA
Tels.: 724-0266 / 809-724-0269 Fax: 809-724-0329
Website: www.uapa.edu.do

Reservados todos los derechos.


Se prohíbe toda reproducción parcial o
total por cualquier medio electrónico o gráfico.

Impreso en la República Dominicana


EDICIONES UAPA

Esta primera edición de


PROGRAMACIÓN I
de Vivian Estrada,
se término de imprimir en el mes de noviembre de 2011
en la Unidad de Reproducción de la Editora UAPA.
Santiago, República Dominicana.
EDICIONES UAPA
PRÓLOGO

UNIDAD I: Lenguajes de Programación


Introducción: orientación de la unidad
Objetivos de la unidad I

Esquema de contenido de la unidad I

Desarrollo de contenido
1.1 Características del programa

1.2 Programas traductores

1.3 Funcionamiento de un programa

1.4 La solución de un problema: pasos en la creación


de un programa
1.5 Clasificación de los lenguajes de programación
Resumen de la unidad I
Actividades de la unidad I
Ejercicios de autoevaluación de la unidad I
Bibliografía recomendada de la unidad I

UNIDAD II: Introducción al Lenguaje de Programación


Introducción: orientación de la unidad
UNIDAD DIDÁCTICA 2.1: Características y descripción de
algoritmos.
Objetivos de la unidad 2.1
Requisitos previos
Esquema de contenido de la unidad 2.1
EDICIONES UAPA

Desarrollo de contenidos
2.1.1 Definición de algoritmo. Características
2.1.2 Tipos de algoritmos
2.1.3 Pasos en la solución de un problema
2.1.4 Las precondiciones y las poscondiciones
2.1.5 Dos formas para la presentación de los algoritmo
2.1.6 Lenguaje de programación Visual Basic
Resumen de la unidad 2.1
Actividades de la unidad 2.1
Ejercicios de autoevaluación de la unidad 2.1
Bibliografía recomendada de la unidad 2.1

UNIDAD DIDÁCTICA 2.2: Datos, Constantes y Variables


Objetivos de la unidad 2.2
Requisitos previos
Esquema de contenido de la unidad 2.2
Desarrollo de contenido
2.2.1 Definición de datos
2.2.2 Identificadores
2.2.3 Constantes
2.2.4 Variables

2.2.5 Campo de memoria

Resumen de la unidad 2.2


Actividades de la unidad 2.2
Ejercicios de autoevaluación de la unidad 2.2
EDICIONES UAPA

Bibliografía recomendada de la unidad 2.2

UNIDAD DIDÁCTICA 2.3: Expresiones


Objetivos de la unidad 2.3
Requisitos previos
Esquema de contenido de la unidad 2.3
Desarrollo de contenido
2.3.1 Las expresiones
2.3.2 La asignación
2.3.3 Expresiones, operadores y operandos

Resumen de la unidad 2.3

Actividades de la unidad 2.3


Ejercicios de autoevaluación de la unidad 2.3
Bibliografía recomendada de la unidad 2.3

UNIDAD DIDÁCTICA 2.4: Formato de programación.


Funciones
de estrada/salida.
Objetivos de la unidad 2.4
Requisitos previos
Esquema de contenido de la unidad 2.4
Desarrollo de contenido
2.4.1 La entrada y salida de información
2.4.2 Formato de programación
2.4.3 La solución de un problema con un programa
EDICIONES UAPA

2.4.4 Análisis descendente del problema

2.4.5 Metodología Jackson


2.4.6 Entrada y salida de datos en Visual Basic
Resumen de la unidad 2.4
Actividades de la unidad 2.4
Ejercicios de autoevaluación de la unidad 2.4
Bibliografía recomendada de la unidad 2.4

UNIDAD DIDÁCTICA 2.5: Operaciones con archivos


Objetivos de la unidad 2.5
Requisitos previos
Esquema de contenido de la unidad 2.5
Desarrollo de contenido
2.5.1 Conceptos básicos
2.5.2 Operaciones con ficheros
2.5.3 Tipos de ficheros
2.5.4 Algunas palabras claves para el tratamiento
de ficheros en Visual Basic.
Resumen de la unidad 2.5
Actividades de la unidad 2.5
Ejercicios de autoevaluación de la unidad 2.5
Bibliografía recomendada de la unidad 2.5

UNIDAD III: Estructuras de control


Introducción: orientación de la unidad
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.1: Ejecución secuencial.


Estructura de control
Objetivos de la unidad 3.1
Requisitos previos
Esquema de contenido de la unidad 3.1
Desarrollo de contenidos
3.1.1 Estructura de control secuencial
3.1.2 Las condiciones
3.1.3 Estructura de control de selección
3.1.4 Estructura de control de selección simple
3.1.5 Selectivas múltiples (anidadas)
Resumen de la unidad 3.1
Actividades de la unidad 3.1
Ejercicios de autoevaluación de la unidad 3.1
Bibliografía recomendada de la unidad 3.1
UNIDAD DIDÁCTICA 3.2: Estructuras de control repetitivas
Objetivos de la unidad 3.2
Requisitos previos
Esquema de contenido de la unidad 3.2
Desarrollo de contenido
3.2.1 Estructura mientras (While)
3.2.2 Estructura repetir hasta (do/while)
3.2.3 Estructuras desde/hasta (for)
3.2.3 La sentencia FOR... NEXT de Visual Basic
Resumen de la unidad 3.2
Actividades de la unidad 3.2
EDICIONES UAPA

Ejercicios de autoevaluación de la unidad 3.2


Bibliografía recomendada de la unidad 3.2

UNIDAD DIDÁCTICA 3.3: Funciones


Objetivos de la unidad 3.3
Requisitos previos
Esquema de contenido de la unidad 3.3
Desarrollo de contenido
3.3.1 Función
3.3.2 Llamada a una función
3.3.3 Declaración de las variables
Resumen de la unidad 3.3
Actividades de la unidad 3.3
Ejercicios de autoevaluación de la unidad 3.3
Bibliografía recomendada de la unidad 3.3

UNIDAD DIDÁCTICA 3.4: Procedimientos


Objetivos de la unidad 3.4
Requisitos previos
Esquema de contenido de la unidad 3.4
Desarrollo de contenido
3.4.1 Los Procedimientos
3.4.2 El procedimiento en Visual Basic: El Procedimientos
Sub.
3.4.3 Argumentos por referencia y por valor
3.4.4 Los Métodos
EDICIONES UAPA

3.4.5 Ventanas Immediate, Locals y Watches


3.4.6 La Recursividad
Resumen de la unidad 3.4
Actividades de la unidad 3.4
Ejercicios de autoevaluación de la unidad 3.4
Bibliografía recomendada de la unidad 3.4

UNIDAD DIDÁCTICA 3.5: Manejo físico de archivos


Objetivos de la unidad 3.5
Requisitos previos
Esquema de contenido de la unidad 3.5
Desarrollo de contenido

3.5.1 Ventajas del uso de dispositivos secundarios

para el almacenamiento de datos.

3.5.2 Reconocimiento de Archivos por Visual Basic

Resumen de la unidad 3.5


Actividades de la unidad 3.5
Ejercicios de autoevaluación de la unidad 3.5
Bibliografía recomendada de la unidad 3.5

RESPUESTAS A LOS EJERCICIOS DE AUTOEVALUACIÓN


BIBLIOGRAFÍA GENERAL
EDICIONES UAPA

PRÓLOGO

En la sociedad del conocimiento uno de los recursos


de mayor utilidad con que contamos, es el
computador. Se está produciendo un cambio
importante en la manera de escribir la información, en
la manera de almacenarla y en la manera de
comunicarla; es decir, pudiera significar una
revolución similar a la que ocurrió cuando apareció la
imprenta.

Hoy, la computadora pasó de ser una sofisticada


máquina que es capaz de realizar cálculos a gran
velocidad, a una máquina para comunicarse. Este es
un cambio de paradigma muy importante, porque el
computador y el perfeccionamiento de las redes de
telecomunicaciones nos permite transmitir
información a través de textos, y ya el proceso de
transmisión de información está en el ámbito del
entorno multimedia, en donde el sonido, la voz, el
texto y la capacidad de trabajar conjuntamente a
distancia es una realidad.
EDICIONES UAPA

Este texto reúne los conocimientos sobre los


principales lenguajes de programación existentes.
Aprenderán las maneras lógicas y los pasos a seguir
en la resolución de problemas auxiliados por la
computadora, y los conceptos básicos sobre los
lenguajes de programación. Los contenidos
fundamentales se enfocan hacia el lenguaje de
programación y la estructura de control.

Durante las tres primeras décadas de la Informática,


el principal desafío era el desarrollo del hardware de
las computadoras, de forma que se redujera el costo
de procesamiento y el almacenamiento de datos. En
la década del 60 aparecieron las computadoras de la
tercera generación y se desarrollaron técnicas de
programación, como la multiprogramación y el tiempo
compartido. Mientras las computadoras estaban
haciéndose cada vez más complejas, resultó obvio
que la demanda de los productos de software creció
más que la capacidad de producir y mantener el
software. Estas nuevas capacidades aportaron la
tecnología necesaria para el establecimiento de
sistemas computacionales interactivos, de
multiusuario, en línea y en tiempo real y surgieron
EDICIONES UAPA

nuevas aplicaciones para la computación, como las


reservaciones aéreas, bancos de información médica,
etc.

El texto que se les ofrece se estructura en tres


Unidades, divididas a su vez en unidades didácticas.
En la primera unidad se estudian las cuestiones
relacionadas con los conceptos básicos asociados a
los lenguajes de programación y la historia. En la
segunda unidad se tratan los algoritmos y aspectos
básicos de los lenguajes de programación. En la
tercera unidad se trabaja con estructuras de control,
que son aquellas que permiten modificar el flujo de
ejecución de las instrucciones de un programa.
También se tratará sobre los programas que usan
funciones y procedimientos.

Cada unidad didáctica consta de: Objetivos,


Requisitos Previos, Introducción, Orientaciones para
el estudio, Actividades, Resumen de la Unidad y
Ejercicios de autoevaluación. Cada una de estas
partes tiene un símbolo para indicarlas, como:
EDICIONES UAPA

 para indicar que es una actividad que


debes realizar durante el estudio de la asignatura
y de esa forma comprobar que has asimilado el
contenido que se aborda en el tema.

 Cuando esto aparece debes detenerte,


leer, tomar notas y reflexionar, pues se trata de
un concepto importante.

 Se usa para iniciar las orientaciones


para el estudio.

Indica algo que debes recordar

 Para las notas que debes tomar


durante el estudio de la asignatura

 Cuando debes observar contenidos


importantes de la asignatura
EDICIONES UAPA

 Cuando se trata de un ejemplo

 Para las respuestas de los ejercicios

Al final de cada tema encontrarás un breve resumen


de las unidades didácticas tratadas. En la última
sección aparecen, en Anexos, las lecturas
recomendadas para profundizar en el estudio de los
temas.

El conocimiento de la estructura del texto facilitará el


estudio y aprendizaje de la asignatura, para lo cual
debes tener en cuenta las indicaciones que se dan en
la Guía Didáctica de la asignatura y el intercambio
con colegas, profesores y facilitadores. Una vez
realizada la lectura de las orientaciones para el
estudio, debes cumplir los objetivos realizando las
actividades y los ejercicios de autoevaluación,
para de esa forma comprobar que has asimilado el
contenido que se aborda en cada unidad didáctica.
EDICIONES UAPA

Te sugerimos realizar una lectura general de cada


unidad didáctica, localizar los materiales necesarios,
organizar tu actividad y el tiempo de que dispones
para el estudio independiente y las actividades
grupales. Asimismo, debes anotar las dudas que
tengas para que posteriormente puedas consultarlas
leyendo otros materiales o confrontando con tus
colegas y preguntándole a los facilitadores.

Con estas consideraciones, comienza tu estudio. Te


deseamos éxito.

UNIDAD I
EDICIONES UAPA

Lenguajes de Programación

Introducción: orientaciones de la unidad


EDICIONES UAPA

Un elemento fundamental en la vida de las personas


es el lenguaje. A través del lenguaje nos
comunicamos, aprendemos, compartimos
información y conocimientos, experiencias, etc. El
lenguaje es fundamental para instruir a otras
personas y transmitir las informaciones necesarias
para orientar la ejecución de cualquier acción.

El lenguaje también es necesario para poder


comunicarnos con una computadora y lograr que
funcione. Estos lenguajes reciben el nombre de
lenguajes de programación. Un lenguaje de
programación es un modo práctico para que los seres
humanos puedan dar instrucciones a un computador.
El lenguaje de programación es un software creado
para decir a la computadora lo que debe hacer. Este
lenguaje es más limitado y preciso que el español,
inglés y otros lenguajes con el que los humanos nos
comunicamos, por ejemplo, las ambigüedades es un
problema serio para las computadoras y los
lenguajes, lo que hace que no trabajen bien.

Una computadora es una máquina que solo


comprende las instrucciones que se le den en un
EDICIONES UAPA

determinado formato, reconoce y ejecuta un número


de instrucciones diferentes que se agrupan en los
distintos lenguajes de programación.
Un lenguaje de programación es un conjunto limitado
de palabras y de símbolos que representan
procedimientos, cálculos, decisiones y otras
operaciones que puede ejecutar una computadora.

Igual que existe más de un lenguaje para


comunicarnos entre los humanos, existen también
muchos lenguajes de programación, incluso para un
mismo computador.

Subsisten diferentes clasificaciones para los


lenguajes de programación. La clasificación más
común y básica que suele hacerse de los lenguajes
de programación, es la que los divide en lenguajes de
bajo y de alto nivel. Cuando el lenguaje de
programación más se acerca al lenguaje común,
mayor es su nivel. Los lenguajes de programación de
bajo nivel fueron los primeros que surgieron y se
llaman así, porque están directamente relacionados
con el hardware del computador, es decir, el
usuario introduce una serie de códigos numéricos
EDICIONES UAPA

que la máquina va a interpretar como instrucciones.


Para usar este lenguaje, el programador tenía que
conocer el funcionamiento de la máquina al más bajo
nivel y los errores de programación eran muy
frecuentes. A nivel más bajo está el llamado lenguaje
de máquina, el que está compuesto por una serie de
códigos, representados por números, que son
usados para la comunicación directa con las
instrucciones internas del procesador de la
computadora. Descifrar los códigos del lenguaje de
máquina o escribir en este lenguaje es una de las
tareas más complejas que una persona
(programador) realiza cuando trabaja con una
computadora. Programas llamados intérpretes y
compiladores traducen las instrucciones escritas en
los lenguajes de alto nivel para el lenguaje de
máquina. Aunque el programador, de esta forma, se
distancie del hardware del computador, este sigue
trabajando en lenguaje máquina. Por ello se hace
necesaria una traducción a una secuencia de
instrucciones “interpretables” por el computador. Esta
labor es realizada por los intérpretes y compiladores.
EDICIONES UAPA

Aunque en esta introducción se ha comenzado a


hablar de los lenguajes dividiéndolos en bajo y alto
nivel, en las próximas páginas se procederá a un
análisis más exhaustivo y detallado y se verán otros
aspectos relacionados con los lenguajes de
programación.

El objetivo de este tema es presentar los


antecedentes más importantes que el estudiante
debe conocer para adentrarse en el estudio de la
programación.

Requisitos previos.
Para lograr un mayor aprovechamiento en el estudio
de la presente unidad didáctica, debes tener en
cuenta el dominio de los contenidos estudiados en la
asignatura INF–211.
EDICIONES UAPA

OBJETIVOS DE LA UNIDAD I

 Identificar los conceptos básicos sobre los


lenguajes de programación
 Valorar los pasos necesarios para diseñar un
programa de computadora.
 Interpretar los conceptos de programa fuente y
programa objeto.
 Reconocer las diferencias entre programa
intérprete y programa compilador.
 Identificar los lenguajes de programación según
su clasificación.
EDICIONES UAPA

ESQUEMA DE CONTENIDO DE LA UNIDAD I

1.1 Características del programa.

1.2 Programas traductores.

1.3 Funcionamiento de un programa.

1.4 La solución de un problema: pasos en la creación


de un programa.

1.5 Clasificación de los lenguajes de programación.


EDICIONES UAPA

DESARROLLO DEL CONTENIDO

Por lo general se plantea que la historia de la


computación moderna comienza con Charles
Babbage, en 1822. Era un destacado profesor de
Matemáticas de la universidad de Cambridge, quien a
principios del siglo XIX enunció muchas de las teorías
en las cuales se basan las actuales computadoras.
Se licenció en la Universidad de Cambridge en 1814.

Diseñó y parcialmente implementó una


máquina a vapor, de diferencias
mecánicas para calcular tablas de
números. También diseñó, pero nunca
construyó, la máquina analítica para
ejecutar programas de tabulación o
computación; por estos inventos se le considera
como una de las primeras personas en concebir la
idea de lo que hoy llamaríamos una computadora, por
lo que se le considera como "El Padre de la
Computación".
EDICIONES UAPA

Aunque se había destacado en el área de la teoría de


funciones y análisis algebraico, Charles Babbage se
volcó en el intento por conseguir una máquina capaz
de realizar con precisión tablas matemáticas. En
1833 completó su "máquina diferencial", capaz de
calcular los logaritmos e imprimirlos de 1 a 108.000
con notable precisión, y formuló los fundamentos
teóricos de cualquier autómata de cálculo. Por
entonces Babbage ya conocía los sistemas
decimales de conteo, y estaba familiarizado con la
descomposición de complejas operaciones
matemáticas en secuencias sencillas.

Máquina diferencial de
Babbage
EDICIONES UAPA

FUENTE:
http://www.biografiasyvidas.com/biografia/b/babbage.
htm

Posteriormente, Babbage se volcó en el proyecto de


realizar una "máquina analítica" capaz de realizar
cualquier secuencia de instrucciones aritméticas.
Para esto contó con la colaboración de la que está
considerada como la primera programadora de la
historia, Ada Lovelace, hija del poeta Lord Byron.

En compañía de Ada, que empleó mucho de su


tiempo en la publicación de las ideas de su maestro,
Babbage dedicó sus últimos años y recursos a una
máquina infalible que fuese capaz de predecir los
ganadores de las carreras de caballos. En honor a
Lady Ada Lovelace, el Departamento de Defensa de
los EEUU denominó ADA a un lenguaje de
programación de computadoras de alto nivel.
Aunque no consiguió su propósito, Charles Babbage
sentó los principios básicos de las computadoras
modernas, como el concepto de programa o
instrucciones básicas que se introducen en la
máquina de manera independiente de los datos, el
EDICIONES UAPA

uso de la memoria para retener resultados, y la


unidad aritmética. La máquina de Babbage,
construida exclusivamente con piezas mecánicas y
multitud de ruedas dentadas, utilizaba las tarjetas
perforadas para la introducción de datos y
programas, e imprimía en papel los resultados con
técnicas muy similares a las que se emplearon hasta
mediados de los años 70.

La máquina analítica, es el diseño de una


computadora moderna de uso general realizado por
el profesor Charles Babbage, que representó un paso
importante en la historia de la computación. Fue
inicialmente descrita en1837, aunque Babbage
continuó refinando el diseño hasta su muerte en
1871.

La maquina analítica de
Babbage, como se puede
apreciar en el Science
Museum de Londres
EDICIONES UAPA

FUENTE:
http://es.wikipedia.org/wiki/M%C3%A1quina_anal%C
3%ADtica

Las primeras computadoras mecánicas y eléctricas


no contaban con un lenguaje de programación tal
como lo conocemos ahora, y la mayoría de ellas eran
construidas para llevar a cabo una tarea específica,
por lo que la forma de programarla era específico
para cada computadora.

En el año 1945 el matemático Jhon Von Neumann (2)


elaboró un estudio que demostró que una
computadora podía tener una estructura física muy
simple y fija, y aun así ser capaz de ejecutar
cualquier tipo de programa mediante un control
correcto, sin necesidad de modificar la computadora.

John Von Neumann desarrolló el


modelo que lleva su nombre, para
describir el concepto de
"programa almacenado". En este
modelo, se tiene una abstracción
de la memoria como un conjunto
EDICIONES UAPA

de celdas, que almacenan simplemente números.


Estos números pueden representar dos cosas: los
datos o el programa.

Los programas trabajan sobre los datos para obtener


los resultados. Cada programa (escrito en un
lenguaje de programación) está formado por un
conjunto de instrucciones escritas en el lenguaje
seleccionado. Un lenguaje de programación es muy
estricto: A CADA instrucción le corresponde UNA
acción de procesador.

A partir de esta innovación de Von Neunmann, que


en conjunto se conoce como la técnica de programa
almacenado, se inicia la era de los lenguajes de
programación. En la presente unidad didáctica se
estudiarán los conceptos básicos referentes a los
lenguajes de programación y un resumen de las
características de un grupo importante de ellos.

Al desarrollarse las primeras computadoras


electrónicas, apareció la necesidad de programarlas,
es decir, de almacenar en memoria la información
sobre la tarea que se necesitaba ejecutar. Las
EDICIONES UAPA

primeras se usaban como calculadoras simples; se


les indicaban los pasos de cálculo, uno por uno.

Lo que realmente hace que las computadoras sean


útiles, son los Programas. Las operaciones que debe
realizar la computadora vienen especificadas una
lista de instrucciones llamadas.

Programas. Toda la comunicación del hombre con la


computadora se realiza gracias a la ejecución de un
programa.

PROGRAMA:

 Conjunto de órdenes o instrucciones


formuladas en un lenguaje dado, que indican
a la computadora cómo resolver un problema.

 Es una lista de instrucciones que la


computadora debe seguir para procesar datos
y convertirlos en información.

 Conjunto de reglas, símbolos y palabras para


construir programas.
EDICIONES UAPA

1.1 Características del programa.

Principales características de un programa.


- Debe: Ser confiable y funcional
- Detecta errores de entrada
- Estar documentado adecuadamente
- Ser comprensible
- Estar codificado en el lenguaje apropiado

Los lenguajes de programación son utilizados para


describir un proceso (algoritmo) que será ejecutado
en una computadora. Los programas para
computadora están escritos en un lenguaje de
programación. Un lenguaje da la posibilidad al
programador de especificar a la computadora qué
tipos de datos actúa y qué acciones ejecutar bajo una
variada gama de situaciones, utilizando un lenguaje
relativamente próximo al lenguaje humano.

RECORDAR: El programa le indica a la


computadora paso a paso lo que tiene que
hacer.
EDICIONES UAPA

Dada la dificultad de comunicación entre el


computador y el programador, surgen los 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.

LENGUAJES DE PROGRAMACIÓN:

 Conjunto de reglas, símbolos y palabras


especiales que se utilizan para confeccionar
programas de forma tal, que puedan ser
interpretados por la computadora.

 Conjunto limitado de palabras, símbolos y


reglas para representar operaciones y
procedimientos para la escritura de
programas, que pueden ser ejecutados por el
computador.

 Secuencia de comandos que posibilita


codificar instrucciones.
EDICIONES UAPA

Un “lenguaje de programación" nos permite


describir de manera precisa el conjunto de acciones
consecutivas que un computador debe ejecutar
expresado mediante un programa.

Los lenguajes de programación definen su propio


alfabeto, donde los símbolos son caracteres
alfanuméricos o cadenas de éstos. Las instrucciones
se forman a partir de proposiciones simples y/o
compuestas.

Los lenguajes de programación se basan en un


sistema de instrucciones establecidas previamente y
que indican a la computadora lo que debe realizar.
Estos lenguajes permiten:

 Escribir las operaciones que es necesarios


realizar para resolver el problema, (es decir,
redactar en forma de pasos el proceso de
solución del problema) y traducir el
procedimiento (algoritmo) al lenguaje
“comprensible” por la máquina, a partir de lo
cual el programa puede ser ejecutado en el
computador.
EDICIONES UAPA

La computadora es una máquina capaz de resolver


todos los problemas que los usuarios seamos
capaces de expresar mediante un programa.

Las instrucciones deben darse en un lenguaje de


programación, es decir, en una determinada
configuración de información digital binaria. En las
primeras computadoras, la programación era una
tarea bien difícil y laboriosa. Programar tareas
sencillas como hacer un análisis estadístico requería
varios días de trabajo de equipos de programadores.
Desde entonces han surgido varios lenguajes de
programación, algunos orientados hacia funciones
específicas y otros centrados en la facilidad de uso.

Las computadoras se programaban en lenguaje


máquina, pero las dificultades que esto conllevaba,
junto con la enorme facilidad de cometer errores,
llevó al desarrollo de lenguajes simbólicos que
facilitaran al hombre el proceso de construir
programas. Los primeros en aparecer fueron los
ensambladores. Fundamentalmente consistía en dar
un nombre (mnemónico) a cada tipo de instrucción y
EDICIONES UAPA

la dirección (etiqueta). Al principio se hacia el


programa sobre papel y, después se traducía a mano
con la ayuda de unas tablas, se introducía en la
máquina en forma numérica, pero pronto aparecieron
programas que se ensamblaban automáticamente.

Independientemente del lenguaje en que el programa


haya sido escrito, estará comunicando sus
instrucciones al procesador en lenguaje de
máquina. (La primera forma de especificar
programas para una computadora se la denomina
lenguaje de máquina o código de máquina). Este es
el lenguaje utilizado por el procesador y consiste en
una serie de 0 y 1, mediante los cuales se le indica al
procesador donde leer y escribir los datos y las
operaciones lógicas o matemáticas que debe realizar
sobre los datos. El procesador ejecuta estas
operaciones a través de la manipulación de los
valores en lugares especiales dentro del procesador,
llamados registros. Los códigos del lenguaje de
máquina indican al procesador qué datos colocar en
determinados registros y cómo manipularlos. El
número de registros y sus tamaños dependen del tipo
de microprocesador.
EDICIONES UAPA

El lenguaje máquina, evidentemente, no es


directamente comprensible para el hombre, razón por
la cual se han desarrollado lenguajes intermediarios
que facilitan la comunicación con la computadora. El
código escrito en este tipo de lenguaje se transforma
posteriormente en código máquina para que el
procesador pueda procesarlo.

Nota:
El código maquinal es el código binario que
la computadora “comprende” y puede
ejecutar.

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 las órdenes
adecuadas para la realización de un determinado
proceso.

Al conjunto de total de estas instrucciones, órdenes y


símbolos disponibles, se le llama lenguajes de
programación. El programa está formado por un
conjunto de instrucciones, sentencias, bloques
EDICIONES UAPA

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 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.

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, lógica/comparación, y
almacenamiento/recuperación.

Existen muchos y muy variados lenguajes de


programación y estos evolucionan constantemente,
tanto desde el punto de vista de sus facilidades de
EDICIONES UAPA

uso, como de su potencia. Ejemplo de ellos son los


siguientes:

FUENTE: http://www.tiobe.com
1.2 Programas traductores
El primer paso necesario para diseñar un programa
es el planteamiento y el análisis del problema que se
quiere resolver. Una vez identificada la situación, se
construirá un procedimiento mediante el cual se
pueda obtener la solución del problema. Después de
construir el procedimiento, todos los pasos que lo
componen son transformados en instrucciones
propias de un lenguaje de programación, que pueda
ser comprensible para la computadora (programa de
computadora).
EDICIONES UAPA

Para la construcción de programas, es tan importante


el conocimiento de las técnicas de programación,
como de los conceptos básicos, sin los cuales la
creación de los programas es muy difícil o casi
imposible.

A continuación se relacionan algunos conceptos:

Programa Fuente: es aquel que está escrito en


alguno de los lenguajes de programación y que no ha
sido traducido al lenguaje máquina, es decir el
programa no está en código de máquina y por lo
tanto no puede ser ejecutado.

Programa Objeto: es aquel programa que se


encuentra en lenguaje máquina y que ya es
ejecutable por ésta.
EDICIONES UAPA

TRADUCTORES.
Son programas que se ocupan de convertir el
código generado por un lenguaje de programación
en una aplicación que pueda ser generada y
utilizada. Son programas que traducen
(traductores) del lenguaje de programación (más
cercano al hombre) a un lenguaje más cercano a la
computadora (“comprensible por la computadora”).

De forma general el proceso de traducción se puede


representar de la siguiente manera:

Código fuente Traductor

Por otra parte, este programa fuente necesita ser


revisado y el que se encarga de esa función es el
compilador. En algunos casos pasa por fases
intermedias, generando lenguaje ensamblador.
EDICIONES UAPA

Compiladores e intérpretes:
Todo programa escrito en otro lenguaje, diferente al
lenguaje de máquina, puede ser ejecutado de dos
maneras:

 Mediante un programa que va ejecutando las


instrucciones conforme son encontradas. A
este proceso se le llama interpretar y a los
programas que lo hacen se los conoce como
intérpretes.
 Mediante un programa que traduce el
programa original a otro equivalente escrito en
lenguaje de máquina. A ese proceso se lo
llama compilar y al programa traductor se le
denomina compilador.

El intérprete por el contrario lleva a cabo una


traducción inmediata en el momento de la ejecución,
es decir, irá ejecutando las instrucciones una a una
haciendo que el proceso requiera un periodo de
tiempo sensiblemente mayor del que necesitaría un
compilador. Los intérpretes se usan para traducir
EDICIONES UAPA

programas de alta dificultad de implementación. En


estos casos, las órdenes a traducir son de tal
complejidad que no merece la pena crear un
compilador, ya que también tendría que ser de una
complejidad por encima de lo normal.

Funcionamiento del programa Intérprete:

Interpretar Ejecutar la
Programa: instrucción
“Calculo de la
la función F” instrucción

Instrucc
ión
Interpretar Ejecutar la
instrucción
Entrar: instrucc
la
“Valor de ión
instrucción
X, Y”

Instrucc
ión
Interpretar Ejecutar la
instrucción
instrucc
la
Calcular” F”
y mostrar
ión
instrucción

resultados
Instrucc
ión
instrucc
ión
EDICIONES UAPA

El compilador es un programa que se encarga de la


traducción del programa realizado por el usuario.
Esta operación recibe el nombre de compilación. El
programa es traducido completamente antes de que
se ejecute, por lo que la ejecución se realiza en un
periodo muy breve.

Funcionamiento del programa Compilador:

Programa:
“Calculo de la función
F”

Entra valor X

Entra valor Y

Imprimir valor F

F= X^2 +5*Y/X
Se realiza la
EJECUCIÓN
del programa

FIN
EDICIONES UAPA

NOTA: Los intérpretes traducen la línea y luego la


ejecutan y los compiladores traducen el programa
entero y después lo ejecutan.

Fases de generación de un programa:

Código fuente
Programa objeto
Compilación

Si hay errores
(arreglar el programa fuente)
Si no hay errores

Programa ejecutable

Los programas compilados fueron traducidos del


código fuente a un programa objeto, y si este no
presenta errores constituye un programa ejecutable
(listo para funcionar).
EDICIONES UAPA

Un lenguaje de programación es muy estricto, y a


cada instrucción le corresponde una acción del
procesador.

1.3 Funcionamiento de un programa.


Una vez que un programa no presenta errores, se
encuentra listo para ser ejecutado. Cuando los datos
están disponibles, el programa comienza a operar
sobre ellos, es decir, comienza a procesar la
información hasta obtener y presentar los resultados.
El esquema general de funcionamiento de un
programa se puede presentar como aparece a
continuación:

Generalmente El programa Se presentan


al comienzo del sigue todas las los resultados
programa instrucciones

Entrada de Datos Salida de resultados


Procesos
EDICIONES UAPA

1.4 La solución de un problema: pasos en la


creación de un programa.
La realización de un programa de computadora
dirigido a la solución de un problema puede
expresarse como un proceso que contempla las
siguientes etapas:
1) Análisis del problema en cuestión y de los
diferentes elementos que inciden en él.
2) Estudio y formulación de acciones que lleven a
la solución del problema
3) Elaboración de un procedimiento general
(pasos) para la solución del problema
(secuencia de pasos para solucionar el
problema).
4) Escritura del procedimiento anterior en un
lenguaje de programación (programa) que será
ejecutado por la computadora (programa).
5) Traducción del programa (compilación)
6) Ejecución del programa y pruebas de
ejecución.
7) Obtención de los resultados.
8) Análisis de los resultados.
9) Elaboración de la documentación y
mantenimiento.
EDICIONES UAPA

La documentación es muy importante sobre todo


para facilitar la corrección de posibles errores
futuros y dar mantenimiento al programa.

1.5 Clasificación de los lenguajes de


programación.
Para el estudio de los lenguajes de programación es
importante comprender perfectamente los tipos de
lenguajes de programación que existen y la
clasificación comúnmente aceptada que se les da.

La clasificación de los lenguajes de programación se


puede hacer atendiendo a diferentes criterios:
a) Según el nivel de abstracción.
b) Según la forma de ejecución.
c) Según el paradigma de programación de cada
uno de ellos.
EDICIONES UAPA

a) Según su nivel de abstracción


Lenguajes de máquina

Independientemente del lenguaje en que el programa


haya sido escrito, el programa estará comunicando
sus instrucciones al procesador en lenguaje de
máquina (la primera forma de especificar programas
para una computadora se la denomina lenguaje de
máquina o código de máquina). Este es el lenguaje
directamente comprensible por la máquina
(computadora), es el utilizado por el procesador y
consiste de una serie de 0 y 1, mediante los cuales
se le indica al procesador donde leer y escribir los
datos y las operaciones lógicas o matemáticas que
debe realizar sobre los datos. El procesador ejecuta
estas operaciones a través de la manipulación de los
valores, en lugares especiales dentro del procesador
llamados registros.

EJEMPLO

1001 0010 1100 0110


92 C6
EDICIONES UAPA

1110 1000 0111 1101


E8 7D

0100 1011 0011 1010


4B 3A

0110 0001 0111 0010


61 72

1111 0111 0100 0011


F7 43

Los códigos del lenguaje de máquina indican al


procesador qué datos colocar en determinados
registros y como manipularlos. El número de registros
y su tamaño dependen del tipo de microprocesador.

Da la posibilidad de transferir un programa a la


memoria sin necesidad de traducción posterior, lo
que supone una velocidad de ejecución superior, solo
que con poca fiabilidad y mucha dificultad de verificar
y poner a punto los programas. Las instrucciones
constan de un código de operación (único) y del
código del operando (uno o varios). El lenguaje de
máquina es específico para cada procesador
(depende del hardware)
EDICIONES UAPA

Ventajas:

 No necesitan traducción

 Se obtienen programas muy eficientes

Inconvenientes:

 Difíciles de programar

 Repertorio de instrucciones reducido

 No permite usar comentarios

 Muy rígido el formato de instrucciones

 Está íntimamente ligado a la unidad central de


procesos.

Lenguajes de bajo nivel

El lenguaje máquina, evidentemente, no es


directamente comprensible para el hombre, razón por
la cual se han desarrollado lenguajes intermediarios
que facilitan la comunicación con la computadora. El
código escrito en este tipo de lenguaje se transforma
posteriormente en código máquina para que el
procesador pueda procesarlo.
EDICIONES UAPA

Los lenguajes de bajo nivel son lenguajes de


programación que se acercan al funcionamiento de
una computadora. El lenguaje de más bajo nivel por
excelencia es el código máquina. A éste le sigue el
lenguaje ensamblador, ya que al programar un
ensamblador se trabaja con los registros de memoria
de la computadora de forma directa.

Están compuestos por las instrucciones de lenguaje


de máquina escritas mediante nemotécnicos. Es más
fácil de usar que el anterior.

Lenguajes de medio nivel


Hay expertos que clasifican algunos lenguajes de
programación como lenguajes de medio nivel (como
es el caso del lenguaje C) al tener ciertas
características que los acercan a los lenguajes de
bajo nivel pero teniendo, al mismo tiempo, ciertas
cualidades que los hacen lenguajes más cercanos al
humano y, por tanto, de alto nivel.

Lenguajes de alto nivel


En las décadas del 50 y 60, con el desarrollo de
programas de más elevado nivel por parte de los
EDICIONES UAPA

desarrolladores y unido al aumento del poder del


hardware comienzan a utilizarse más las
computadoras por científicos de otras ramas. Estos
científicos tenían mucho conocimiento de sus ramas
específicas y no así de la computación y por lo que
les resulta muy complicado trabajar con lenguaje
Ensamblador. Así nació el concepto de lenguaje de
alto nivel con el primer compilador de FORTRAN
(FORMULA TRANSLATION), que, como su nombre
indica, inició como un primer esfuerzo de traducir un
lenguaje de fórmulas, al lenguaje ensamblador y por
consiguiente al lenguaje de máquina.

A partir de FORTRAN, se han desarrollado


innumerables lenguajes, que siguen el mismo
concepto: buscar la mayor abstracción posible, y
facilitar el trabajo del programador, aumentando la
productividad. Estos lenguajes usan un número
reducido de instrucciones (normalmente en inglés)
que siguen unas estrictas reglas gramaticales que se
conocen como sintaxis del lenguaje.

Los lenguajes de alto nivel se acercan más al


lenguaje humano que al de la máquina computadora,
EDICIONES UAPA

y requieren de una fase de traducción del código


fuente al código objeto.

Generalmente son fáciles de aprender porque están


formados por elementos de lenguajes naturales,
como el inglés. En BASIC, uno de los lenguajes de
alto nivel más conocidos, los comandos como "IF
CONTADOR = 20 THEN STOP" pueden utilizarse
para pedir a la computadora que termine el proceso si
el CONTADOR es igual a 20. Esta forma de trabajar
puede dar la imagen de que las computadoras
parecen comprender un lenguaje natural; en realidad
lo hacen de una forma rígida y sistemática, sin que se
permitan ambigüedades o dobles sentidos.

Algunas características de los lenguajes de alto


nivel:

 Estos lenguajes permiten al programador


olvidarse por completo del funcionamiento
interno de la computadora para la que se está
diseñando el programa.
EDICIONES UAPA

 Brindan mayores posibilidades en el


desarrollo, verificación y mantenimiento de los
programas.

 Los programas desarrollados en estos


lenguajes son portables.

 Requieren de un mayor nivel de abstracción

 Son los más usados por los programadores

b) Según la forma de ejecución

Lenguajes compilados

Como ya se ha planteado, un programa que se


escribe en un lenguaje de alto nivel también tiene que
traducirse a un código que pueda utilizar la máquina.
Los programas traductores que pueden realizar esta
operación se llaman compiladores. Pueden generar
muchas líneas de código de máquina por cada
instrucción del programa fuente. Se requiere una
compilación antes de ejecutar las instrucciones de un
problema.
EDICIONES UAPA

Los compiladores son aquellos programas que tienen


como función traducir un programa escrito en un
determinado lenguaje, a un lenguaje que la
computadora entienda (lenguaje máquina). El
programa compilado debe estar libre de errores de
código para que pueda ser ejecutado.

Lenguajes interpretados
Para traducir lenguajes de alto nivel se puede
también utilizar una alternativa diferente de los
compiladores. En lugar de traducir el programa fuente
y grabar en forma permanente el código objeto que
se produce durante la compilación para utilizarlo en
una ejecución futura, se carga el programa fuente en
la computadora junto con los datos que se van a
procesar.

A continuación, un programa intérprete, almacenado


dentro de la máquina, convierte cada proposición del
programa fuente en lenguaje de máquina, conforme
vaya siendo necesario durante el procesamiento de
los datos.
EDICIONES UAPA

Traducción y Ejecución

Resultados
Entrada de Datos

OBSERVAR: Siempre se tiene que realizar


una traducción antes de la ejecución de
una instrucción.

En este caso el código objeto no se graba para


utilizarlo posteriormente. La siguiente vez que se
utilice una instrucción, se la deberá interpretar otra
vez y traducir a lenguaje máquina. Por ejemplo,
durante el procesamiento repetitivo de los pasos de
un ciclo, cada instrucción del ciclo tendrá que volver a
ser interpretada en cada ejecución repetida, lo cual
hace que el programa sea más lento en tiempo de
ejecución (porque se va revisando el código en
tiempo de ejecución) pero más rápido en tiempo de
diseño (porque no se tiene que estar compilando a
cada momento el código completo). El intérprete
elimina la necesidad de realizar una compilación
después de cada modificación del programa cuando
se quieren agregar funciones o corregir errores; pero
EDICIONES UAPA

está claro que un programa objeto compilado con


antelación deberá ejecutarse con mucha mayor
rapidez que uno que se debe interpretar a cada paso
durante una ejecución del código.

RECORDAR: Un lenguaje cuyos programas se


traducen a código de máquina antes de ejecutarse es
un lenguaje compilado. Un lenguaje interpretado
es aquel cuyos programas se traducen y ejecutan
instrucción por instrucción.

c) Según el paradigma de programación

Un paradigma de programación representa un


enfoque particular o filosofía para la construcción del
software. No es mejor uno que otro, sino que cada
uno tiene ventajas y desventajas. Dependiendo de la
situación un paradigma resulta más apropiado que
otro.

Atendiendo al paradigma de programación, se


pueden clasificar los lenguajes en:
 El paradigma imperativo o por
procedimientos considerado el más común.
Las instrucciones se llevan a cabo como
EDICIONES UAPA

órdenes al estilo de una receta, calculando


valores y asignándoselos a posiciones de
memoria (denominadas variables). Ejemplos:
PASCAL, C, BASIC, entre otros.
 El paradigma funcional está representado
por la familia de lenguajes ML.
 El paradigma lógico o declarativo no tiene
órdenes, no describe secuencialmente el
algoritmo de resolución del problema, sino que
se describe lo que se quiere hacer. Ejemplo:
PROLOG.
 El paradigma orientado a objetos. El
elemento fundamental de la programación
orientada a objetos (POO) es, como su
nombre lo indica, el objeto. Se puede definir un
objeto como un conjunto complejo de datos y
programas que poseen estructura y forman
parte de una organización.

El concepto de POO no es nuevo, lenguajes clásicos


como SmallTalk se basan en ella. Dado que la POO
se basa en la idea natural de la existencia de un
mundo lleno de objetos y que la resolución del
problema se realiza en términos de objeto. Un
EDICIONES UAPA

lenguaje se dice que está basado en objetos si


soporta objetos como una característica fundamental.
Ejemplos: C++, Java C#.

Si bien puede seleccionarse la forma pura de estos


paradigmas a la hora de programar, en la práctica es
habitual que se mezclen, dando lugar a la
programación multiparadigma. Actualmente el
paradigma de programación más usado debido a
múltiples ventajas respecto a sus anteriores, es la
programación orientada a objetos.

Un resumen sobre la clasificación de los lenguajes de


programación atendiendo a los diferentes criterios
planteados anteriormente, aparece a continuación
representado en un mapa conceptual.
EDICIONES UAPA

Mapa conceptual
EDICIONES UAPA

RESUMEN DE LA UNIDAD I

Los lenguajes de programación son programas ya


establecidos que permiten al programador escribir
programas para ser ejecutados en una computadora.
Existen muchos lenguajes de programación y muy
variados que evolucionan constantemente, siendo
cada vez más eficientes, visuales e intuitivos.

Cuando un programa, escrito en cualquier lenguaje,


no presenta errores en el proceso de traducción a su
código objeto, se puede decir que se encuentra listo
para ser ejecutado. Un programa entra en ejecución
al operar sobre los datos, hasta presentar los
EDICIONES UAPA

resultados.
Los conceptos de programa, programación y de
lenguaje de programación, son requeridos con el fin
de conocer de manera formal los objetos –programa
y lenguaje de programación- y las metodologías –
programación-, involucrados en el contexto de la
escritura de programas de computadora.

El estudio de los lenguajes de programación requiere


a su vez comprender correctamente los tipos de
lenguajes de programación que existen y la
clasificación comúnmente aceptada que a éstos se
les da.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD I

1. Profundiza en el conocimiento de esta


temática a partir de la lectura de la Riego
Gaona que se encuentra en http://www.Tipos
de Lenguajes de Programación –
Monografias_com.htm

2. Debate con tus colegas de estudio las ideas


que consideres esenciales (las que identifican
o definen un fenómeno o concepto) en la
monografía recomendado anteriormente.
Envía a tu profesor las conclusiones del grupo.

3. Prepara un mapa conceptual sobre el


esquema general de funcionamiento de un
programa.

4. Explica la diferencia entre compilador e


intérprete. Pon ejemplos de lenguajes
compilados e interpretados.
EDICIONES UAPA

5. Investiga las diferencias y semejanzas entre el


código de máquina y el lenguaje ensamblador.
Intercambia un resumen de este trabajo con
otros alumnos del grupo.

6. Elabora un mapa conceptual que resuma las


ideas sobre esquema general de
funcionamiento de un programa.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD I

1. Realiza la lectura de la unidad didáctica 1.1.

2. Escribe un reporte de lectura, a partir de las ideas


centrales de los lenguajes de programación.

3. Elabora un mapa conceptual que resuma las


ideas sobre las fases de generación de un
programa.

4. A continuación aparecen dos listas, una de


ejemplos de lenguajes de programación y otra
sobre su utilidad o tipo de tarea que desempeñan.
Enlaza los elementos de las dos tablas según
corresponda. Desarrolla esta actividad en grupos
de al menos, de dos estudiantes, donde uno
señale el lenguaje y el otro diga la actividad y el
primero lo evalúe.
EDICIONES UAPA

LENGUAJES TAREAS QUE


DESEMPEÑAN
1. BASIC Y PASCAL
a. Inteligencia
2. C ++ artificial

2. COBOL b. Aprendizaje de
programación
3. FORTRAN
c. Cálculo numérico
4. JAVA, HTML
d. Internet (páginas
5. PROLOG Web)

e. Gestión

f. Programación de
sistemas
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD I

1. Manual para el profesor. Lógica y algoritmos


(Parte II). Dr. A. Rosete, Dra. M. Delgado y otros.
Editorial Félix Varela. ISBN 959-258-581-4 OC.
Cuba
2. McCarthy, John, Página personal, (2005, Oct. 8),
[En línea]. Disponible: http://www-
formal.stanford.edu/jmc/index.html
3. Ohmae, K. (2006). El próximo escenario global:
desafíos y oportunidades en un mundo sin
fronteras. México: Grupo Editorial Norma.
4. http://es.wikipedia.org/wiki/Charles_Babbage
5. http://www.freenetpages.co.uk/hp/alan.gauld/span
ish/tutwhat.htm
6. http://es.wikipedia.org/wiki/Programaci%C3%B3n
_estructurada
7. http://laysquad.foroactivo.com/informacion-
general-y-referencias-7/descripcion-y-referencia-
del-lenguaje-visual-foxpro-t1.htm
EDICIONES UAPA

UNIDAD II

Introducción al Lenguaje de Programación


EDICIONES UAPA

Introducción: orientaciones de la unidad

Como es bien conocido, las computadoras


electrónicas digitales constituyen potentes
herramientas que ayudan al hombre a resolver
problemas de diversa naturaleza. Para poder cumplir
este objetivo las computadoras deben ser
programadas por el hombre sobre la base de una
serie de condiciones presentes en el momento de
proponer esta solución.

Un momento importante de la programación de


computadora lo constituye la algoritmización, es
decir, la manera de representar los pasos para llegar
a la solución de los problemas con la ayuda de una
computadora. Esta solución se expresa en un
lenguaje o notación, más o menos estándar, que
permita su traducción a los lenguajes de
programación, o sea, a los lenguajes con los cuales
se programan las computadoras.

Mediante la solución de algunos ejemplos sencillos,


el lector se familiarizará con la teoría y práctica de
EDICIONES UAPA

los algoritmos y traducirá los mismos a un lenguaje


de programación. Dentro de los lenguajes de
programación los estudiantes utilizarán
preferiblemente: Visual Basic, C++ y Java.
EDICIONES UAPA

UNIDAD DIDÁCTICA 2.1


Característica y descripción de algoritmos

Objetivos
 Conocer la definición de algoritmo y su vinculación
con los lenguajes de programación.
 Conocer la funcionalidad y herramientas del
lenguaje de programación.
 Conocer la definición de variables y constantes y
de datos.
Requisitos previos
 Poseer nociones de lógica matemática.
 Conocer la función básica de un lenguaje de
programación.
 Valorar los diferentes tipos de lenguaje de
programación.

ESQUEMA DE CONTENIDO DE LA UNIDAD 2.1

2.1.1 Definición de algoritmo. Características.


2.1.2 Tipos de algoritmos.
2.1.3 Pasos en la solución de un problema.
2.1.4 Las precondiciones y las poscondiciones.
EDICIONES UAPA

2.1.5 Dos formas para la presentación de los


algoritmos.
2.1.6 Lenguaje de programación Visual Basic.

DESARROLLO DE CONTENIDOS

La palabra algoritmo se deriva de la traducción al


latín de la palabra árabe Alkhowarismi, nombre de un
matemático y astrónomo árabe que escribió un
tratado sobre manipulación de números y ecuaciones
en el siglo IX.

Un algoritmo es un conjunto de operaciones y


procedimientos que deben seguirse para resolver un
problema. El lenguaje algorítmico es aquel por medio
del cual se realiza un análisis previo del problema y
encontrar un método que permita resolverlo. Al
conjunto de todas las operaciones y el orden en que
se deben efectuarse, se le denomina algoritmo.

El diseño de algoritmos es un tema fundamental


para la elaboración de programas para
computadoras, ya que cualquier programador,
EDICIONES UAPA

independientemente de su habilidad, antes de


enfrentarse a un problema informático, dedica una
buena parte del tiempo a identificar los pasos que
debe realizar para alcanzar de forma eficiente la
solución del problema planteado, o sea, diseñar un
algoritmo. Por eso resulta de vital importancia
comprender cabalmente el significado de hacer
algoritmos y apropiarnos de esa habilidad, pues
constituye la base para desarrollar de forma más
eficaz y eficiente nuestros programas.

Las computadoras son máquinas de propósito


general capaces de ejecutar una gran cantidad de
operaciones a gran velocidad. Hoy el uso de las
computadoras es universal, y se están utilizando para
realizar tareas y resolver problemas en todos los
dominios del saber humano: Las computadoras
controlan los aviones, gestionan las organizaciones,
juegan al ajedrez con el campeón mundial, permiten
crear películas de cine, etc. Han cambiado nuestro
modo de proceder conduciéndonos a lo que muchos
denominan la sociedad de la información. A pesar de
que las máquinas son de propósito general, al
ejecutar un conjunto específico de operaciones, se
EDICIONES UAPA

convierten en una máquina de propósito específico.


Por ejemplo, una computadora puede estar jugando
al ajedrez, y más tarde calcular la posición
aproximada de un huracán en el océano o
actualizando los medios básicos de una empresa,
etc. Entonces, la cuestión es descubrir qué es
necesario hacer para que una computadora realice
una tarea determinada.

2.1.1 Definición de algoritmo. Características

ALGORITMO: es una secuencia lógica, finita y bien


definida de pasos para dar solución a un tipo
determinado de problema.
Veamos los componentes de esta definición por
separado.

Componentes de esta definición.


En la definición se afirma que un algoritmo es una
secuencia de pasos para llegar a la solución del
problema. Esa secuencia tiene que ser lógica, o sea,
debe especificar los pasos en un orden lógico, que
conduzca a la solución. Debe ser además finita y bien
definida y precisa. A continuación se presenta un
EDICIONES UAPA

mapa conceptual que resume estas características


del algoritmo. (4)

Como puede apreciarse la definición anterior se


corresponde, de igual manera, a la secuencia de
pasos para resolver un problema con la ayuda de la
computadora, que para atender cualquier problema
de la vida cotidiana: Una metodología para la
realización de una tarea, la conducta ante el
tratamiento de un equipo electrodoméstico, la
realización de una tarea técnica, etc. Todos son
ejemplos de algoritmo.

En el texto se aborda solo el estudio de aquellos


algoritmos que, de alguna forma, puedan ser
EDICIONES UAPA

representados en una computadora y nos guíen en la


solución de un problema de este carácter.

A continuación se expresan más detalladamente los


elementos que componen la definición:

Carácter finito
Un algoritmo debe terminar siempre después de un
número finito de pasos: Esta característica es muy
importante, dado que la computadora debe dar
solución al problema planteado ejecutando también
un conjunto finito de acciones. Si el algoritmo no
fuera finito puede ocurrir que nunca se alcance la
solución y que la computadora continúe funcionando
indefinidamente hasta que un evento externo la
detenga.

Precisión
Cada paso del algoritmo debe ser definido de manera
precisa, rigurosa y sin ambigüedades. Esto es
fundamental para comprender el significado de cada
paso. Cuando se especifican sin ambigüedades, sus
resultados quedan definidos de manera única y sólo
EDICIONES UAPA

dependen de los datos de entrada y de los resultados


de los pasos anteriores.

Entrada
Antes de comenzar su ejecución, el algoritmo recibe
una entrada, es decir, se le entrega una información
que será procesada por él. Cada elemento de
entrada se corresponde con un objeto del dominio del
problema.

Salida
El algoritmo produce una salida, es decir, genera los
resultados producto del procesamiento de la
información, resultados que guardan una relación
específica con la entrada y con el problema que se
quiere resolver.

Efectividad
Cuando logramos un algoritmo efectivo, todas las
operaciones que realiza son suficientemente básicas
como para que, en principio, puedan ser
EDICIONES UAPA

desarrolladas exactamente y en un tiempo finito de


forma manual por una persona.

RECORDAR: Un algoritmo siempre debe tener


un número finito de pasos.

2.1.2 Tipos de algoritmos


Existen dos tipos de algoritmos los cualitativos y los
cuantitativos.

Algoritmo cualitativo: Son los algoritmos descritos


mediante palabras. Ej.:
a) La elaboración de una receta para un coctel.
b) La costura de un vestido.
c) Búsqueda de un número telefónico.
d) El cambio de una bujía que falla.
e) El cambio de un bombillo fundido.
EDICIONES UAPA

EJEMPLO

Preparar un jugo de naranja para 4 vasos.

Solución

Inicio

Llenar una jarra con un litro de agua fría

Exprimir 4 naranjas en un recipiente

Vaciar el recipiente con el jugo de naranjas en la jarra.

Añadir una taza de azúcar

Remover el agua hasta disolver completamente el


azúcar

Fin
EDICIONES UAPA

EJEMPLO

Un cliente llaga a una entidad


bancaria para realizar un depósito. El
cajero le pide el número de la cuenta
y el dinero a depositar. Verifica si la
cuenta existe y si la cuenta es válida
se hace el depósito (al saldo le
aumenta el dinero recibido), de lo
contrario devuelve el dinero.

Solución

1. Inicio

2. pedir número de la cuenta y el dinero

3. si la cuenta es válida siga en el paso 4 de


lo contrario siga en 6

4. saldo= saldo +dinero

5. ir a 7

6. devolver el dinero

7. Fin
EDICIONES UAPA

Algoritmos cuantitativos: Son los algoritmos que se


basan en cálculos numéricos. Por ejemplo:
a) Pasos a seguir para resolver una ecuación de
segundo grado.
b) Pasos a seguir para calcular el salario de los
trabajadores de una empresa.
EJEMPLO
EDICIONES UAPA

Decir si un numero N es primo. Recuerde que un


número es primo si solamente es divisible por 1
y por sí mismo.

Solución

1. Inicio

2. X=2

3. Si N / X es entero escribir: “el número no es


primo” e ir a 6, si no continuar

4. X =X+1

5. Si X = N escribir el numero si es primo y


continuar, si no ir a 3

6. Fin

2.1.3 Pasos en la solución de un problema


Un elemento importante para los programadores es
seguir una metodología que los guíe en la
elaboración de los algoritmos que den solución al
problema. Ello evidentemente constituye, a su vez, un
algoritmo general con pasos, inicio y final.
EDICIONES UAPA

INICIO

Secuencia
de pasos

FIN

Una forma bastante común en la programación


estructurada es basarse en los siguientes criterios de
trabajo:

1. Comprensión y análisis del problema planteado.


2. Elaboración de un modelo matemático que
represente de forma abstracta el problema que se
necesita resolver y los criterios de solución.
3. Diseño del algoritmo que dé solución al problema.
4. Programación, en un lenguaje adecuado, la
solución para la computadora.

El primer paso establece que debemos entender


correctamente el problema antes de acometer su
solución. Sin saber qué debemos resolver, cual es la
EDICIONES UAPA

tarea, qué características tiene, qué nos piden que


hagamos, no podremos nunca ofrecer una solución
adecuada. Este paso requiere una clara
comprensión de lo que debe hacer el programa y
el resultado o solución deseada.

Dado que se busca una solución, se precisan


especificaciones de entrada y salida.

Es necesario tener claras las respuestas a las


siguientes preguntas para poder tratar correctamente
la solución del problema:

 ¿Qué entradas se requieren? (cantidad y tipo)


 ¿Cuál es la salida que se desea? (cantidad y tipo)
 ¿Qué método o procedimiento produce la salida
deseada?

En el segundo paso, una vez entendido el problema,


se procede al desarrollo de un modelo matemático
que contemple la solución del problema desde el
punto de vista teórico. Este modelo matemático debe
corresponderse con las características identificadas
en el paso anterior y es posible apoyarse para su
EDICIONES UAPA

presentación en tablas, gráficos, textos e imágenes


entre otros elementos, según requiera el problema.

Debe quedar bien claro cuáles son los datos


necesarios para el cálculo, es decir, los datos de
entrada, qué tipo de procesamiento se les aplicará, y
cuáles son los resultados esperados de la solución,
más concretamente, cuál es la salida del algoritmo.

En el tercer paso se establece que el modelo


matemático desarrollado ofrece las condiciones
requeridas para desarrollar la secuencia de pasos
que plantea el algoritmo para resolver el problema.

En la fase de análisis en el proceso de programación,


se determina qué hace el programa. En la fase de
diseño se determina cómo hace el programa la tarea
solicitada.

Los métodos utilizados para el proceso del diseño se


basan en el conocido divide y vencerás. Es decir la
resolución de un problema complejo se realiza
dividiendo el problema en subproblemas y a
continuación dividir estos subproblemas en otros de
nivel más bajo, hasta que sea implementada una
EDICIONES UAPA

solución en la computadora. Este método se conoce


técnicamente como diseño descendente (top-down).

Cada programa bien diseñado consta de un


programa principal (el módulo de nivel más alto) el
cual llama a subprogramas (módulos) de nivel más
bajo, que a su vez pueden llamar a otros
subprogramas.

Los módulos pueden ser planeados, codificados,


comprobados y depurados independientemente y a
continuación combinarlos entre sí. Este proceso
implica la ejecución de estos pasos hasta que el
programa se ha terminado:

 Programar un módulo.
EDICIONES UAPA

 Comprobar el módulo.
 Si es necesario, depurar el módulo.
 Combinar el módulo, con el resto de los otros
módulos.

El diseño del algoritmo es independiente del lenguaje


de programación en el que se vaya a codificar
posteriormente.

El cuarto y último paso plantea el desarrollo, sobre


la base del algoritmo, del programa escrito en un
lenguaje para la computadora, en el cual se le
instruye a ésta los pasos que debe realizar para
resolver el problema.
Estos cuatro pasos se resumen en el siguiente
esquema.
EDICIONES UAPA

Definición de lo que hará el


Paso 1 programa y el resultado deseado

Modelo matemático. Se definen


las entradas, los procesamientos
Paso 2 a aplicar y las salidas

Se establece que el modelo


Paso 3 cumpla los requerimientos

Ejecución del programa, el cual


Paso 4 tiene los pasos necesarios para
resolver el problema

Para implementar un algoritmo en la computadora, se


deben ejecutar los pasos reflejados en el siguiente
mapa conceptual:
EDICIONES UAPA

a) Codificación: Es la escritura en un lenguaje de


programación de lo expresado en el algoritmo. Como
el diseño del algoritmo es independiente del lenguaje
de programación utilizado en su implementación, el
código puede ser escrito con igual facilidad en un
lenguaje o en otro.

b) Compilación y ejecución: Una vez que el


algoritmo se ha convertido en un programa fuente, es
preciso introducirlo en memoria mediante el teclado y
almacenarlo posteriormente en un disco. Esta
operación puede realizarse con un editor de texto.
Posteriormente el programa fuente se convierte en un
archivo de programas que se guarda en un disco.

El programa fuente debe ser traducido a lenguaje


máquina tal como se explicó en el Tema 1. Este
proceso se realiza con el compilador. Si al compilar el
programa fuente se presentan errores (errores de
compilación), es necesario volver a editar el
programa, corregir los errores y compilar de nuevo.
Esto se repite hasta que ya no se presenten más
errores, y se obtenga el programa objeto, el cual
todavía no es ejecutable directamente. Cuando no
existan errores en el programa fuente, se debe
EDICIONES UAPA

instruir al sistema operativo para que efectue la fase


de montaje o enlace del programa fuente con las
librerías del programa del compilador. Este proceso
de montaje produce un programa ejecutable.

Cuando se ha creado un programa ejecutable este se


puede ya realizar desde el sistema operativo con solo
teclear su nombre.

Suponiendo que no existen errores durante la


ejecución (errores en tiempo de ejecución), se
obtendrá la salida de resultados correctos del
programa.

c) Verificación y depuración: Es el proceso de


ejecución del programa con una amplia variedad de
datos de entrada, llamados datos de prueba como:
valores normales de entrada, valores extremos de
entrada que comprueben los límites del programa, y
valores de entrada que comprueben aspectos
especiales del programa, y determinen si el programa
contiene errores o no.
EDICIONES UAPA

El tratamiento de un programa en la computadora


puede conducir a los siguientes tipos de errores, los
cuales se resumen el siguiente mapa conceptual:

A continuación se explican estos tipos de errores:

 Errores de compilación: Se producen


normalmente por uso incorrecto de las reglas del
lenguaje de programación. Suelen ser errores de
sintaxis.
 Errores de ejecución: Se producen por
instrucciones que la computadora puede comprender
pero no ejecutar. En estos casos se detiene la
ejecución del programa y se imprime un mensaje de
error. Ejemplo de esto puede ser una división por
cero.
EDICIONES UAPA

 Errores lógicos: Se producen en la lógica del


programa y la fuente del error suele ser el diseño del
algoritmo. Son más difíciles de detectar puesto que el
programa puede funcionar y no producir errores de
compilación ni de ejecución pero dará resultados
incorrectos. En este caso se debe regresar a la fase
de diseño, modificar el algoritmo, cambiar el
programa fuente y compilar y depurar una vez más.

c) Documentación y mantenimiento: La
documentación es un aspecto de gran importancia
sobre todo por su influencia en la etapa final del
proceso de desarrollo del programa, ya que
programas pobremente documentados son difíciles
de leer, mas difíciles de depurar y casi imposibles de
mantener y modificar.

La documentación es vital cuando se desea corregir


posibles errores futuros o bien cambiar el programa.
Estos cambios se denominan mantenimiento del
programa.

Además es de buena costumbre para todo buen


programador, dejar comentado su código, para que
otro programador pueda darle mantenimiento
EDICIONES UAPA

fácilmente al programa, o incluso, si es él mismo el


creador, para darle mantenimiento.

2.1.4 Las precondiciones y las poscondiciones


Siempre será necesario un buen estilo de solución de
problemas, de modo que se obtengan soluciones
generales, con elevada productividad en la
programación, que posibilite el fácil mantenimiento
del código que se programe y que se desarrollen
soluciones suficientemente claras.
Antes de la ejecución de un algoritmo se deben
precisar las precondiciones que pudiera tener
asociadas. Ello asegura que no se realice si no están
dadas esas condiciones. Esto, sin dudas, garantiza
que no se cometan errores y que se alcancen los
resultados esperados o los correctos. En el momento
en que se desarrolla el programa para la
computadora, tener en cuenta las precondiciones
permite tomar las medidas pertinentes para que el
programa, incluso, no le permita al usuario
suministrar datos incorrectos o en un orden
inadecuado, por citar sólo dos ejemplos de
implicaciones negativas, si se soslayan las
precondiciones al elaborar un algoritmo.
EDICIONES UAPA

Las poscondiciones determinan las propiedades que


debe garantizar el algoritmo cuando termine su
ejecución. Denotan el estado que se alcanza después
de terminada la aplicación del algoritmo.

Pudiera parecer irrelevante el análisis de las


poscondiciones, pero más adelante se verán
ejemplos en los que será necesario tenerlas en
cuenta. Por otro lado, se ha dicho antes que la
secuencia de pasos del algoritmo tiene que ser lógica
y bien definida. Luego, en cierto modo, las
poscondiciones de un paso pudieran considerarse
como precondiciones del o de los siguientes pasos.
EDICIONES UAPA

EJEMPLO

Escriba las pre y pos condiciones


para el cálculo del área de un
cuadrado.
Solución:
Precondiciones
 El lado del cuadrado tiene que
ser un valor numérico positivo.
Poscondiciones
 El área calculada también será
un valor numérico positivo.

2.1.5 Dos formas para la presentación de los


algoritmos.
Diagrama de flujo

Se emplea para representar gráficamente un


algoritmo. Constituye la representación detallada en
forma gráfica de cómo deben realizarse los pasos en
la computadora para producir resultados. El diagrama
de flujo muestra la secuencia lógica de pasos
sucesivos para la solución del problema.
EDICIONES UAPA

El diagrama de flujo cumple los objetivos que


aparecen reflejados en el siguiente esquema:

La representación gráfica está presente cuando


varios símbolos (que indican diferentes procesos en
la computadora), se relacionan entre sí mediante
líneas que indican el orden en que se deben ejecutar
los procesos (constituyendo así el diagrama de flujo).

Los elementos que intervienen en el diagrama de


flujo tienen que estar normalizados con algún
estándar, como puede ser el ISO (a nivel mundial),
ANSI (a nivel americano) o el IEEE (a nivel europeo).

Se utilizan para la representación gráfica de las


operaciones ejecutadas sobre los datos a través de
EDICIONES UAPA

todas las partes de un sistema de procesamiento de


información, diagrama de flujo del sistema, así
como para la representación de la secuencia de
pasos necesarios para describir un procedimiento
particular, diagrama de flujo de procesos. Estos
diagramas permiten independizar la solución del
problema del lenguaje de programación que se
utilice.

Se muestra a continuación un diagrama de flujo de


Nassi – Schneiderman. Constan de una serie de
cajas contiguas que se leerán siempre de arriba hacia
abajo y se documentarán de la forma adecuada.
En la figura se observan los estándares a seguir para
la elaboración de los diagramas de flujo de los
problemas.
EDICIONES UAPA

Estandarización de los Diagramas de Flujo

FUENTE: Aprenda Visual Basic como si estuviera


en primero. Javier García De Jalón y otros,
Universidad de Navarra. España. 1999

Simbología empleada en los Diagramas de


Bloques

Símbolo Descripción
Indica el inicio y el final
del diagrama de flujo.
EDICIONES UAPA

Indica la entrada y
salida de datos.

Indica la asignación de
un valor en la memoria
y/o la ejecución de una
operación aritmética.

Indica la salida de
información por
impresora.

Conector dentro de
página. Representa la
continuidad del
diagrama.

Conector fuera de
página.

Indica la salida de
información en la
pantalla o monitor.

Símbolo de decisión.
Indica la realización de
una comparación de
EDICIONES UAPA

valores.

Símbolo de Selección
Múltiple. Dada una
expresión permite
escoger una opción de
muchas.

Símbolo del Mientras.


Dada una expresión al
principio de la iteración
ésta es evaluada; si la
condición es verdadera
realizará el ciclo, si es
falsa la repetición
termina.

Símbolo del Para. Esta


estructura de control
repetitiva se usa
generalmente cuando
se conoce de antemano
el número de
iteraciones.
EDICIONES UAPA

Símbolo Repita Hasta.


Funciona igual que la
estructura Mientras, con
la diferencia que al
menos una vez hará el
grupo de instrucciones
y luego evaluará una
condición. Si la
condición evaluada es
falsa continua dentro
del ciclo y si es
verdadera termina la
iteración.

Líneas de flujo o
dirección. Indican la
secuencia en que se
realizan las
operaciones.

FUENTE: Aprenda Visual Basic como si estuviera


en primero. Javier García De Jalón y otros,
Universidad de Navarra. España. 1999.

Pseudocódigo
EDICIONES UAPA

El pseudocódigo no es realmente un código sino una


imitación. Es una versión abreviada de instrucciones
reales para las computadoras. Es una herramienta
algorítmica que permite escribir pseudo programas
(una imitación de un programa real) utilizando un
lenguaje de pseudo programación que es una
imitación de los lenguajes de programación de alto
nivel. Así, un pseudocódigo es una combinación de
símbolos (+, -, *, /, %, >, >=, <, <=, !=, ==, y, o, no),
términos (Leer, Imprimir, Abrir, Cerrar,
Hacer...Mientras, Mientras...Hacer, Para... Mientras,
etc.) y otras características comúnmente utilizadas en
uno o más lenguajes de alto nivel.
Para determinar qué es y qué no es un
pseudocódigo, no existen reglas rigurosas sino que
depende de los criterios y gustos de cada
programador. El objetivo del pseudocódigo es permitir
al programador centrarse en los aspectos lógicos de
la solución evitando las reglas de sintaxis de un
lenguaje de programación. Posteriormente el
pseudocódigo debe ser traducido a programa usando
un lenguaje de programación.
No obstante, existen normas de carácter general que
facilitan la escritura de un algoritmo y que permitan
EDICIONES UAPA

un entendimiento por cualquier programador de lo


planteado en el algoritmo.

Estructuras de Pseudocódigo y Palabras


Reservadas.
1. El nombre del algoritmo se coloca después de la
palabra Algoritmo.
2. Declaración de las variables globales y
constantes.
3. Palabra reservada inicio para el comienzo del
bloque de código
4. El bloque de código siempre se termina con la
palabra reservada fin
5. Inicio de comentarios con: // para una sola línea.
Para mas líneas se usa: { }.
6. Declaración de Tipos de datos: Tipo
7. Declaración de variables:
var
entero:<lista_de_variables_enteras>
lógica:<lista_de_variables_lógicas>
real: <lista_de_variables_reales>
carácter: <lista_de_variables_carácter>
cadena: <lista_de_variables_enteras>
8. Declaración de Constantes:
EDICIONES UAPA

const
<nombre_variable>=<expresión>
9. Para introducir valores en variables se usa:
Leer ( <lista_de_variables>).
10. Asignar valores a variables:
<nombre_variable><expresión>
11. Imprimir Respuestas:
12. Estructuras de Control:

La forma de tratar las estructuras de control en


pseudocódigo será abordada en el tema 3. Se han
presentado estos aspectos sobre los pseudocódigos
para que los alumnos puedan resolver los ejercicios y
autoevaluarse en esta unidad didáctica del tema 2.
(4)

EJEMPLO
Cierto equipo de beisbol de la liga local necesita
bateadores de tacto para realizar una buena
campaña, por ello recoge datos de los aspirantes
para la selección y posterior integración del
equipo .En el siguiente ejemplo sólo los peloteros
EDICIONES UAPA

con average mayor de 300 podrán incluirse en la


novena.

Solución: (lenguaje natural)


Inicio
1. Solicitar datos del pelotero (nombre, veces al
bate y cantidad de Hit)
2. Almacenar los datos
3. Calcular el average
4. Si el average es mayor que 300
4.1 Imprimir nombre y “integra la selección”
4.2 Si no es entonces imprimir: nombre y “no
cumple los requisitos”
Fin
EDICIONES UAPA

Solución: (pseudocódigo)
Inicio
Mostrar “nombre y datos del bateador”
Entrar nombre,veces-bate, cant-hit
Calcular average=Cant-hit/veces-bate*1000
Si (average > 300) entonces
imprimir nombre, “Integra la
selección”
Si no
Imprimir nombre, “no cumple los
requisitos”
Fin
EDICIONES UAPA

Nota:
Como se puede apreciar el pseudocódigo
es casi igual a la forma en que nos
expresamos. A continuación se
presentará la solución del mismo
problema por medio de un diagrama de
flujo o bloques.

Solución: (Diagrama de bloques)

Inicio

Entre datos de peloteros

Nombre,veces-bate,cant-hit

Average>3000
“nombre”, integra
selección

"nombre", no cumple
requisitos

Fin
2.1.6 Lenguaje de programación Visual Basic.
EDICIONES UAPA

Visual Basic (Visual Studio) constituye un IDE


(entorno de desarrollo integrado o en inglés
Integrated Development Enviroment) que ha sido
empaquetado como un programa de aplicación, es
decir, consiste en un editor de código (programa
donde se escribe el código fuente), un depurador
(programa que corrige errores en el código fuente
para que pueda ser bien compilado), un compilador
(programa que traduce el código fuente a lenguaje de
máquina), y un constructor de interfaz gráfica o GUI
(es una forma de programar en la que no es
necesario escribir el código para la parte gráfica del
programa, sino que se puede hacer de forma visual).

El compilador
El compilador de Microsoft genera ejecutables que
requieren una DLL para que funcionen, en algunos
casos llamada MSVBVMxy.DLL (acrónimo de
"MicroSoft Visual Basic Virtual Machine x.y", siendo
x.y la versión) y en otros VBRUNXXX.DLL ("Visual
Basic Runtime X.XX"), que provee todas las
funciones implementadas en el lenguaje. Además
existen un gran número de bibliotecas (DLL) que
facilitan el acceso a muchas funciones del sistema
EDICIONES UAPA

operativo y la integración con otras aplicaciones. Sin


embargo esto sólo es una limitación en sistemas
obsoletos, ya que las bibliotecas necesarias para
ejecutar programas en Visual Basic vienen serie en
todas las versiones de Windows desde Windows
2000.

La ventana de propiedades contiene diferentes


formas para utilizar el programa: (Pointer) Apuntador
o puntero, (Label) Etiqueta, (Frame) Marco,
(CheckBox) Casilla de verificación, (ComboBox) Lista
desplegable, (HScrollBar) Barra de desplazamiento
horizontal, (Timer) Temporizador, (DirListBox) Lista
de directorios, (Shape) Figura, (Image) Imagen,
"OLE", (PictureBox) Caja de Imagen, (TextBox) Caja
de texto, (CommandButton) Boton de pulsación,
(OptionButton) Boton de opción, (ListBox) Lista,
(VScrollBar) Barra de desplazamiento vertical,
(DriveListBox) Lista de unidades de disco,
(FileListBox) Lista de archivos, (Line) Linea y (Data)
Datos.

Versiones de Visual Basic


EDICIONES UAPA

Las versiones de Visual Basic para Windows son muy


conocidas, pero existe una versión de Microsoft
Visual Basic 1.0 para MS-DOS (ediciones Profesional
y Estándar) menos difundida y que data de 1992. Era
un entorno que, aunque en modo texto, incluía un
diseñador de formularios en el que se podían
arrastrar y soltar distintos controles.

La última versión sólo para 16 bits, la 3.0, incluía ya


una detallada biblioteca de componentes para toda
clase de usos. Durante la transición de Windows 3.11
a Windows 95, apareció la versión 4.0, que podía
generar programas de 16 y 32 bits a partir de un
mismo código fuente, a costa de un gran aumento en
el tamaño de los archivos "runtime" necesarios.
Además, se sustituyen los controles VBX por los
nuevos OCX. Con la versión 5.0, se implementó por
primera vez la posibilidad de compilar a código
nativo, obteniendo una mejora de rendimiento
considerable. Tanto esta versión como la posterior
6.0 soportaban características propias de los
lenguajes orientados a objetos, aunque careciendo
de algunos ítems importantes como la herencia, el
EDICIONES UAPA

polimorfismo y la sobrecarga. La versión 6.0 continúa


utilizándose masivamente.

Las versiones actuales de Visual Basic se basan en


la plataforma .NET, que se desligan de las anteriores
versiones.

Entorno de trabajo Visual Basic

Al arrancar Visual Basic 6.0 aparece en la pantalla


una configuración en la que se pueden distinguir los
siguientes elementos:

1. La barra de títulos, la barra de menús y la barra de


herramientas de Visual Basic 6.0 en modo Diseño
(parte superior de la pantalla).
2. Caja de herramientas (toolbox) con controles
disponibles.
3. Formulario (form), en que se pueden ir situando
los controles (en el centro).
4. Ventana de proyecto, que muestra los formularios
y otros módulos de programas que forman parte de la
aplicación (arriba a la derecha).
5. Ventana de Propiedades, en la que se pueden ver
las propiedades del objeto seleccionado o del propio
EDICIONES UAPA

formulario (en el centro a la derecha). Si esta ventana


no aparece, se puede hacer visible con la tecla <F4>.
6. Ventana FormLayout, para determinar la forma en
que se abrirá la aplicación cuando comience a
ejecutarse.
Existen otras ventanas para edición de código (Code
Editor) y para ver variables en tiempo de ejecución
con el depurador o Debugger (ventanas Immediate,
Locals y Watch). Todo este conjunto de
herramientas y de ventanas es lo que se llama un
entorno integrado de desarrollo o IDE (Integrated
Development Environment).

La construcción aplicaciones con Visual Basic 6.0 es


muy sencillo. Las acciones principales son:
 Creación de controles en el formulario con
ayuda de toolbox y del ratón
 Establecimiento de sus propiedades con
ayuda de la ventana de propiedades,
 Programación del código que realice las
acciones necesarias para dar solución al
problema.
EDICIONES UAPA

La siguiente pantalla es la que se muestra al iniciar


una aplicación en Visual Basic.

Como todo lenguaje visual, Visual Basic tiene un


conjunto de controles, que ofrecen al programador
una manera relativamente cómoda de trabajar. Si se
combinan adecuadamente con los eventos y las
funciones y otras facilidades del lenguaje es posible
realizar buenas aplicaciones.

Controles más utilizados en Visual Basic:


 Textbox – linea simple o multilinea
EDICIONES UAPA

 ComboBox – Menú desplegable

 ListBox – para listados de artículos (items)

 Label – texto para describir algún área

 CommandButton – un botón para oprimir

 CheckBox – una caja de marcar y desmarcar

La tabla que se inserta a continuación contiene las


abreviaturas y otras características de los controles
utilizados por Visual Basic 6.0

Abreviatura Control Abreviatura Control

Combo y
chk Check box cbo
drop-list box

Command Dir list box


cmd dir
button

drv Drive list box fil File list box

frm Form fra Frame


EDICIONES UAPA

Horizontal Image
hsb img
scroll bar

lbl Label lin Line

lst List mnu Menú

opt Option button pct Picturebox

shp Shape txt Text edit box

Vertical scroll
tmr Timer vsb
bar

Eventos más usados en Visual Basic:


 Click – Cuando se hace un click con el mouse

 KeyPress – Cuando se oprime y se suelta una


tecla

 KeyUp – Cuando se suelta una tecla

 KeyDown – Cuando se oprime una tecla


EDICIONES UAPA

 Change – Cuando cambia la información contenida


en un control.

Los eventos de control se muestran en la pantalla de


una forma similar a la siguiente:

Nombre
del
evento Eventos de
control

Cada vez que se produce un evento sobre un


determinado tipo de control, Visual Basic 6.0 inicia
una determinada función o procedimiento que
realiza la acción programada por el usuario para ese
evento específico. Estos procedimientos se
identifican con un nombre que se forma a partir del
nombre del objeto y el nombre del evento, separados
por el carácter (_), como por ejemplo txtBox_click,
que es el nombre del procedimiento que se ocupará
de responder al evento click en el objeto txtBox.
EDICIONES UAPA

Las funciones predefinidas más utilizadas por


Visual Basic son las siguientes:
FormatNumber() Para formatear los números,
para mostrarlos en la forma
y cifras decimales deseadas.

InputBox() Para preguntarle información


al usuario.

Ubound() Para obtener el límite


superior de un arreglo.

Len() Para determinar el largo de


un string.
LCase() y UCase() Para poner los caracteres en
un string en Lower case o
Upper case.
Mid(), Right(), Left() Para obtener un substring de
un string.
InStr() y InStrRev() Para verificar si existe un
string en algún string
(devuelve la posición donde
existe).
IsNumeric() Para ver si una expresión
EDICIONES UAPA

puede ser evaluada como un


número.
InStr() y InStrRev() Para verificar si existe un
string en algún string
(devuelve la posición donde
existe).
IsDate() Para ver si una expresión
puede ser evaluada como
una fecha.
Now() Devuelve la fecha y hora en
el instante en que se llama.
DateDiff() Para calcular la diferencia
entre dos fechas en términos
de horas, o minutos o días o
años, etc.
DateAdd() Para añadirle a una fecha
cierta cantidad de días,
horas o años, etc. Pueden
añadirse números negativos.
EDICIONES UAPA

Principales ventajas e inconvenientes de Visual


Basic.

Ventajas
 Posee una curva de aprendizaje muy rápida.
 Integra el diseño e implementación de formularios
de Windows.
 Permite usar con suma facilidad la plataforma de los
sistemas Windows.
 El código en Visual Basic es fácilmente migrable a
otros lenguajes.

Inconvenientes
 Sin soporte de Microsoft desde el 4 de abril de
2008.
 No es multiplataforma (no obstante se pueden usar
emuladores e intérpretes para correrlos en otras
plataformas).
 Por defecto permite la programación sin
declaración de variables. (que puede ser
sencillamente corregida escribiendo la frase Option
Explicit en el encabezado de cada formulario.
 Algunas funciones están indocumentadas
EDICIONES UAPA

 Es un lenguaje basado en objetos y no orientado a


objetos.
 No maneja muy bien los apuntadores de memoria.
 No soporta tratamiento de procesos como parte del
lenguaje.
 No incluye operadores de desplazamiento de bits
como parte del lenguaje.
 No permite el manejo de memoria dinámica,
punteros, etc.
 No avisa de ciertos errores o advertencias (se
puede configurar el compilador para generar
ejecutables sin los controladores de
desbordamiento de enteros o las comprobaciones
de límites en matrices, entre otros, dejando en la
mano del programador la tarea de controlar los
errores)
 La gran gama de controles incorporados son, en
algunos casos, muy generales, lo que lleva a tener
que reprogramar nuevos controles para una
necesidad concreta de la aplicación. Esto cambia
radicalmente en Visual Basic .NET donde es
posible reprogramar y mejorar o reutilizar los
controles existentes.
 Posee un solo entorno de desarrollo.
EDICIONES UAPA

RESUMEN DE LA UNIDAD 2.1

Hemos aprendido que un algoritmo es un conjunto


ordenado y finito de pasos o instrucciones que
conducen a la solución de un problema. La
naturaleza de los problemas varía con el dominio al
que pertenecen; existen problemas matemáticos,
químicos, filosóficos, etc. Según esto la naturaleza de
los algoritmos también es variada y no todos ellos
pueden ser ejecutados por la computadora. En este
curso se hace hincapié en aquellos algoritmos que
expresan soluciones usando reglas cuantitativas
cuyas instrucciones pueden ser introducidas en la
computadora. Son los llamados algoritmos
computacionales.

En la resolución de un problema con la computadora


la parte pensante está en el algoritmo. Así pues la
eficacia de un programador no está en conocer la
herramienta de programación, aunque ello sea
necesario, sino en saber resolver problemas con la
computadora para lo cual se requiere conocer un
EDICIONES UAPA

concepto conocido como metodología de la


programación cuyo elemento básico es el algoritmo.
Una vez que la solución de un problema ha sido
expresada mediante un algoritmo el paso siguiente es
convertirlo a un programa, para lo cual se elige un
lenguaje de programación, de modo que un programa
resulta ser la implementación de un algoritmo en un
determinado lenguaje de programación. Esto
significa, por otro lado, que un algoritmo es
independiente del lenguaje de programación.

Un esquema general de la solución de problemas con


computadoras puede ser el siguiente:

Problema Algoritmo Programa

Para escribir un programa puede ser utilizado un


lenguaje de alto nivel, como Visual Basic cuyas
características generales se expusieron en este tema
pero que aquellos que deseen convertirse en
programadores de cierto éxito, deberán estudiar y
practicar de forma sistemática y consciente. Un buen
programa contiene muchos ingredientes que
EDICIONES UAPA

requieren estas dos conductas: Estudio consciente y


práctica constante.

Recordar
Aunque en la actualidad la noción de algoritmo está muy ligada a
los ordenadores, el concepto es más general, ya que denota
cualquier método o conjunto de reglas que alguna máquina o
agente debe seguir para realizar una tarea.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 2.1

1. Ordene los pasos que usted debe realizar para


escribir un programa desde la formulación del
problema hasta la obtención de resultados.

2. Compare los pasos que dan tres de sus colegas de


clases para llegar a la universidad. Confeccione para
cada uno de los algoritmos un diagrama de flujos y un
seudocódigo.

3. Examine en su grupo pre y pos condiciones para


un algoritmo, que calcule las raíces de un polinomio
de segundo grado.

4. ¿Qué ventajas tiene el uso del pseudocódigo frente


a los diagramas de flujo?

5. Mencione dos casos en los que se pone de


manifiesto esa ventaja.

6. Analice el siguiente fragmento de programa escrito


en Basic.
EDICIONES UAPA

10 CLS

20 PRINT “CALCULO DEL CONSUMO DE


GASOLINA"

30 PRINT "POR FAVOR, INTRODUZCA LOS


LITROS"

40 INPUT LITROS

50 PRINT "INTRODUZCA LOS KILOMETROS"

60 INPUT KILOMETROS

70 LET CONSUMO = LITROS / KILOMETROS * 100

80 PRINT “El CONSUMO ES:”; CONSUMO

Sobre el fragmento anterior diga:

4.1 ¿Qué tareas resuelve el programa?

4.2 ¿Cuáles son las entradas?

4.3 ¿Cuáles son las salidas?

4.4 ¿Qué precondiciones y que pos condiciones


pudieran establecerse?

5. Realiza, en cada uno de los casos, un algoritmo


que te permita:
EDICIONES UAPA

5.1 Obtener las raíces de un polinomio de


segundo grado. Utiliza diagramas de flujo y
pseudocódigo.
5.2 Calcular el área de una pirámide. Utiliza
diagramas de flujo y pseudocódigo.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 2.1

1. En cada uno de los planteamientos siguientes,


completa con V si es verdadero o con F si
consideras que es falso.
a. ________ Las computadoras son
máquinas de propósito general capaces
de ejecutar una gran cantidad de
operaciones a gran velocidad.
b. ________ Un algoritmo es una
secuencia lógica, e infinita de pasos
para dar solución a un tipo determinado
de problema.
c. ________ El algoritmo produce una
salida, es decir, genera los resultados
producto del procesamiento de la
información.
d. ________ Existe un tipo de algoritmo:
los cualitativos.
EDICIONES UAPA

2. Confecciona un mapa conceptual sobre los


errores lógicos.

3. Analiza con tu equipo de estudio las


características generales y la evolución del
lenguaje de programación Visual Basic.

Motivación de la próxima Unidad Didáctica


Para aspirar a ser un programador con cierta
eficiencia es necesario dominar muchos conceptos
sin los cuales es imposible pasar de un algoritmo a
un programa escrito en un lenguaje que pueda ser
interpretado por una computadora. Las variables y las
constantes son conceptos imprescindibles que
aprenderán a utilizar en la próxima unidad temática.

El estudio de los elementos básicos de programación


que se tratarán en las unidades siguientes, permitirán
en lo adelante escribir programas para ser ejecutados
en computadoras. Se escribirán los ejemplos en más
de un lenguaje para enfatizar en la independencia de
los algoritmos y un lenguaje particular para incidir en
EDICIONES UAPA

la necesidad de una mente amplia en los


programadores.
De todas formas el libro se ejemplifica en el lenguaje
Visual Basic 6 que establece el programa. Este uno
de los lenguajes de referencia de Microsoft (el
primero fue Basic), es la versión anterior del Visual
Basic.NET. Actualmente se sigue utilizando en
muchos programas y universidades. Fue un lenguaje
muy importante en la programación visual.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD


2.1

1. Aprenda Visual Basic 6.0 como si estuviera en


primero. Javier García de Jalón • José Ignacio
Rodríguez • Alfonso Brazález. UNIVERSIDAD DE
NAVARRA.
2. Manual para el profesor. Lógica y algoritmos (Parte
II). Dr. A. Rosete, Dra. M. Delgado y otros. Editorial
Félix Varela. ISBN 959-258-581-4 OC. Cuba.
3. Monografía Visual Basic, localizable en
http://www.monografias.com/trabajos7/arch/arch.shtm
l
EDICIONES UAPA

UNIDAD DIDÁCTICA 2.2


Datos, Constantes y Variables.

Objetivos:

 Interpretar la definición de variables, constantes y


datos.
 Comprender un grupo de conceptos básicos
necesarios para diseñar la solución de un
problema mediante un programa.
 Utilizar variables y constantes en la formulación de
un algoritmo computacional.
 Manejar el formato de programación.

Requisitos previos:

 Conceptos básicos y trabajo con los algoritmos.


 Conocimiento básico de la herramienta Visual
Basic.
EDICIONES UAPA

ESQUEMA DE CONTENIDO DE LA UNIDAD 2.2

2.2.1 Definición de datos.


2.2.2 Identificadores.
2.2.3 Constantes.

2.2.4 Variables.

2.2.5 Campo de memoria.


EDICIONES UAPA

DESARROLLO DE CONTENIDO

Hay un grupo de conceptos importantes que resulta


indispensable que los alumnos conozcan para poder
adentrarse en la programación, incluso antes de
hacer un programa en un lenguaje de programación
específico. Para aprender a diseñar programas a
partir del problema que se plantee es necesario
conocer determinados conceptos, ya que
corresponden a las órdenes que de forma descriptiva
y en lenguaje natural se le dan a la computadora para
que pueda resolver el problema.

Para entender los conceptos de constantes y


variables resulta imprescindible dominar el significado
del dato.

2.2.1 Definición de datos.


La gran variedad de datos que requiere un lenguaje
de programación hace que el programador escoja el
tipo más indicado para la aplicación que está
desarrollando.
EDICIONES UAPA

DATO:
Toda la información que entra a una computadora
para ser procesada por un programa. Los datos
manejados en un algoritmo deben llevar asociado un
identificador, un tipo de dato y su valor.

Los datos pueden ser de diferentes tipos. El tipo de


dato determina la naturaleza del conjunto de valores
que puede tomar una variable. El siguiente mapa
conceptual resume los tipos de datos.
EDICIONES UAPA

Datos numéricos: Con los datos numéricos se


representan valores escalares de forma numérica
(enteros y reales) y con ellos se realizan las
operaciones aritméticas comunes.

Ejemplos.

Datos enteros: Cantidad de alumnos, la edad,


cantidad de páginas de un libro, etc.

Datos reales: Altura, temperatura, etc.

Datos lógicos: Un dato de tipo lógico es aquel que


puede tomar solo los valores de: Verdadero o Falso.
Estos datos están asociados a que algo se cumpla o
no se cumpla.

Ejemplo: El estado de pasar corriente es un dato que


puede considerarse como de tipo lógico, por ejemplo,
asociando verdadero a que pasa la corriente y falso
a que no pasa.

Datos alfanuméricos (cadenas): Son conjuntos de


caracteres. Pueden tomar por valor un carácter
perteneciente a aquellos que puede representar la
EDICIONES UAPA

computadora. Generalmente se representan entre


comillas dobles ("). Cuando se trata de más de un
carácter, se dice que el dato es una cadena de
caracteres, que toman por valor una secuencia de
caracteres.

Ejemplo: “asignatura Programación I” (cadena de 25


caracteres, pues los espacios en blanco también se
cuentan).

2.2.2 Identificadores.

IDENTIFICADOR: Es una secuencia de caracteres que


se emplea para identificar una posición en la memoria
de la computadora y de esa forma se accede a su
contenido.

Los identificadores representan las constantes,


variables y tipos de datos (esto son los datos de un
programa).

Ejemplo:

 Número de identidad

 Nombre y apellidos
EDICIONES UAPA

 Edad

 Ocupación

Sobre las reglas para formar los identificadores.

Aunque cada lenguaje tiene características


distintivas, las que se enuncian a continuación
pueden considerarse reglas comunes para formar un
identificador. Algunas de estas reglas son las
siguientes:

 Los identificadores deben comenzar con una letra


entre la A y la Z (mayúsculas o minúsculas) y no
deben contener espacios en blanco.

 El primer carácter tiene que ser una letra y otros


caracteres pueden colocarse posteriormente como
números y (-).

 La longitud del identificador depende del lenguaje,


aunque se recomienda que no pase de 8.

EJEMPLOS de identificadores no válidos:

 5BETA
 314
 Mañana
 Alfa/
 Beta*
 ¿peso
 …
EDICIONES UAPA

Las palabras reservadas: son identificadores


predefinidos (tienen un significado especial), forman
parte del lenguaje. En todos los lenguajes de
programación existe un conjunto de palabras
reservadas, que no pueden ser usadas como
identificadores para otra función diferente a la que
fueron definidas por el compilador o intérprete; ¿es
decir, ya existen?

Ejemplos: Entero, real, lin, type, cadena, etc.

2.2.3 Constantes
Una constante tiene un valor permanente durante
todo el proceso de ejecución del programa. Su
nombre se utiliza cada vez que se necesita
referenciarlo, pero su valor no cambia y es conocido
desde antes de que se ejecute el programa.
EDICIONES UAPA

Las constantes se pueden expresar de dos formas


diferentes:
1. Por su valor.
2. Con un nombre (identificador). Deben ser
declaradas previamente en el programa.

Para declarar más de una constante en una misma


línea, las separaremos por medio de comas (,).

EJEMPLO

Si se quieren declarar las constantes de tipo


entero, asignándoles un identificador, se puede
escribir, por ejemplo:
Edad = 75
Dia = 14

O también:
Edad = 75, Día = 14

Todas las constantes que se declaran en un


programa son definidas indicando en cada caso:
1. Su nombre (mediante un identificador).
EDICIONES UAPA

2. El valor que expresan (mediante una expresión).

Pero además pueden ser Numéricas, Lógicas ó de


Cadena
1. Constantes numéricas (28, 40, -10,3.1416)
2. Constantes Lógicas (Verdadero, Falso)
3. Constantes de cadena de caracteres (¨BETA¨,
¨X35¨, ¨100¨)

Nota:
En Visual Basic para declarar un dato como constante
únicamente es necesario utilizar la palabra Const en la
declaración. Si durante la ejecución se intenta variar su
valor, se producirá un error.

Nota:
Visual Basic 6.0 tiene sus propias constantes, muy
útiles para el programador. En general estas constantes
empiezan por ciertos caracteres como vb (u otros
similares que indican a qué grupo pertenecen) y van
seguidas de una o más palabras que indican su
significado.
EDICIONES UAPA

2.2.4 Variables

Una variable representa un espacio en la memoria de


la computadora donde se almacena temporalmente
un dato durante la ejecución de un proceso y se
distingue de la constante en que su contenido puede
cambiar durante la ejecución del programa. El
programa utiliza variables para guardar varios tipos
de datos durante la ejecución del programa. Una
definición de variable le indica al compilador el
nombre de la variable y el tipo de dato que va a
guardar.

El nombre de la variable identifica la zona de la


memoria donde se almacena la información (es la
dirección de la memoria donde está almacenada la
información). Los datos son almacenados en la
memoria de la computadora.

Nota:
A diferencia de C, Matlab, Maple y otros lenguajes de
programación, Visual Basic 6.0 no distingue entre
minúsculas y mayúsculas. Por tanto, las variables
LongitudTotal y longitudtotal son consideradas como
idénticas (la misma variable).
EDICIONES UAPA

Nota:
En Visual Basic 6.0 es habitual utilizar las letras
mayúsculas para separar las distintas palabras que están
unidas en el nombre de una variable, como se ha hecho
anteriormente en la variable LongitudTotal. La
declaración de una variable o la primera vez que se utiliza
determinan cómo se escribe en el resto del programa.

Al igual que C y otros lenguajes de programación,


Visual Basic dispone de distintos tipos de datos,
aplicables tanto para constantes como para variables.

Tipo Descripción Carácter de


declaración Rango
Boolean Binario
True o False
Byte Entero corto
0 a 255
Integer Entero (2 bytes) %
-32768 a 32767
Long Entero largo (4 bytes) &
-2147483648 a 2147483647
Single Real simple precisión !
-3.40E+38 a 3.40E+38
EDICIONES UAPA

Double Real doble precisión #


-1.79D+308 a 1.79D+308
Currency Número punto decimal fijo @
-9.22E+14 a 9.22E+14
String Cadena de caracteres $
0 a 65500 caracteres.
Date Fecha (8 bytes)
Variant Fecha/hora;
User-defined Cualquier tipo de dato o estructura
de datos. Se crean utilizando la sentencia Type.

Para declarar las variables se utiliza la sentencia


siguiente:
Dim NombreVariable As TipoVariable cuyo empleo
se muestra en los ejemplos siguientes:

Ejemplos:
Dim Radio As Double, Superficie as Single
Dim Nombre As String
Dim Etiqueta As String * 10
Dim Francos As Currency
Dim Longitud As Long, X As Currency
EDICIONES UAPA

Nota:
En Visual Basic 6.0 no es estrictamente necesario
declarar todas las variables que se van a utilizar (a no
ser que se elija la opción Option Explicit que hace
obligatorio el declararlas.

2.2.5 Campo de memoria


Una información se almacena en una zona de
memoria llamado campo de memoria la cual se
identifica por el nombre de una variable. Constituye la
dirección simbólica del lugar donde se encuentra
almacenada la información. (4)

El campo de memoria es una zona de la memoria


principal de la computadora donde se puede
almacenar un dato en variables. Gráficamente, se

puede representar como:


EDICIONES UAPA

Las variables tienen que ser declaradas con


anticipación a su uso. Para que un programa pueda
usarlas, tienen que ser declaradas previamente.
Todas las variables de un programa se declaran de la
misma forma, indicando de cada una de ellas:
1. El tipo de dato que puede almacenar
(mediante un identificador).
2. Su nombre (mediante otro identificador).
Las variables pueden ser clasificadas atendiendo a
dos aspectos:
 Por su contenido y
 Por su uso.

El siguiente mapa conceptual resume una


clasificación de las variables atendiendo a estos
aspectos:
EDICIONES UAPA
EDICIONES UAPA

Por su contenido:
EDICIONES UAPA

Por su uso:
EDICIONES UAPA

RESUMEN DE LA UNIDAD 2.2

La comprensión y correcta escritura de las constantes


y variables es muy importante para la eficiencia de un
programador. Respetar las reglas de escritura y uso
de los identificadores para que estos reflejen el dato
que representan. Hasta el momento en que nos
encontramos, resulta imprescindible tener en cuenta
los conceptos generales siguientes:

Variable: variable es un campo de memoria al que se


le puede cambiar su contenido cuantas veces sea
necesario. La diferencia entre una variable y otra
radica precisamente en su contenido, o más bien, en
el tipo de su contenido.

Un campo de memoria: Es una zona de la memoria


principal del computador en donde podemos guardar
un dato en variables.

Tipos de datos:
Tipo Entero
Un dato de tipo entero es un número que no tiene
punto decimal, por lo tanto en sus operaciones jamás
va a generar decimales. Por ejemplo 25, -96 y 0. El
EDICIONES UAPA

hecho de que los datos de tipo entero no generen


decimales significa que operan con un juego de
reglas llamado Aritmética Entera. Una variable que se
declare de tipo entero podrá almacenar solamente
datos de tipo entero.
Tipo Real
Un dato de tipo real es un número que tiene punto
decimal, por lo tanto en sus operaciones puede
generar decimales. Por ejemplo 12.3, -78.56 o 45.0.
El hecho de que los datos de tipo real generen
decimales significa que operan con un juego de
reglas llamado Aritmética Real. Una variable que se
declare de tipo real podrá almacenar solamente datos
de tipo real.
Por lo dicho en las anteriores dos definiciones qué
tipo de dato sería 5. (Así con el punto y todo).
Pensaríamos que es un entero pero en realidad no.
La definición de dato entero es que no tiene punto
decimal y la de dato Real es que tiene punto decimal,
por lo tanto 5. es un dato real.

Tipo Carácter
Un dato tipo carácter es un equivalente del Código
ASCII (American Standard Code for Interchange
EDICIONES UAPA

Information ). Qué es el código ASCII..? Es el Código


Internacional de equivalencias Internas en el Sistema
Binario. A nivel mundial, los computadores están
construidos en un sistema numérico llamado sistema
binario, sistema que se basa solamente en la
utilización de uno (1) y cero (0). Este sistema tiene
una relación directa con el sistema decimal y por lo
tanto fue adoptado ya que permitía aprovechar
características físicas de los componentes
electrónicos.
Dada la gran importancia que poco a poco fueron
adquiriendo los computadores, se adoptó un solo
código interno para la interpretación de todas y cada
una de las teclas de su teclado.
De esta forma cuando usted presiona en su teclado la
letra A realmente se genera por dentro de su
computador el número 65 pero expresado en código
binario, es decir 0100 0001, y cuando usted presiona
la tecla 1 se genera internamente el número 49 pero
expresado igualmente en código binario, es decir
0011 0001. Cada una de las teclas que usted
presione tendrá un equivalente interno y por supuesto
expresado (internamente) en sistema binario. Cada
cero o cada uno utilizado en este sistema se conoce
EDICIONES UAPA

como bit (abreviatura de binary digit) y un conjunto de


8 bits (medida en la cual se expresa el código ASCII)
se conoce como un byte.
Como el código ASCII está expresado en bytes y
cada byte tiene 8 bits y cada bit puede tener un 0 ó
un 1 dos estados) entonces se puede concluir que el
código completo consta de 28 combinaciones (256
equivalencias). A continuación se relaciona la tabla
completa de equivalencias ASCII.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 2.2

1. Diga cómo se clasifican las variables y ponga un


ejemplo en cada caso. Prepare una tabla resumen
y entréguela al profesor.
2. ¿Cuál es la diferencia entre constante y variable?
3. ¿Qué diferencia existe entre una variable
contadora y una acumuladora?
4. Diga cuáles de las siguientes declaraciones son
constantes.

a) b = 84
b) k=c
c) b = 2.35
d) peso = 250
e) Volumen =volumen
f) nombre =”José”
g) País =”Cuba”
h) pi = 2.1416
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 2.2

1. Cuáles de las siguientes declaraciones de


constantes y variables son correctas?
a. carácter = u
b. vocal = i
c. letra j
d. cadena = "nombre"
e. entero numero = 7.0
f. 888.8
g. cadena variable
h. verdadero
i. nueve = 9
j. logico CIERTO
k. real 40.09

Además, escriba en Visual Basic aquellas que sean


correctas.

2. Interprete las siguientes expresiones

a)S=S+Xi

b) Prom=20
EDICIONES UAPA

c) Y= 6+X^2

d) K=K+2

e) J=0

Discuta con sus colegas del aula estas


interpretaciones.

Motivación de la próxima Unidad Didáctica

En la próxima unidad veremos cómo se conforman


expresiones para un lenguaje de programación. El
conocimiento de las reglas, símbolos y la sintaxis de
la expresión constituye la base para que se pueda
escribir correctamente un programa en cualquier
lenguaje, y consecuentemente, obtener la solución
del problema que se nos presenta.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD


2.2

1. Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de Datos.
3ra. Edición, Mc Graw – Hill, 2003.
2. Manual para el profesor. Lógica y algoritmos
(Parte II). Dr. A. Rosete, Dra. M. Delgado y
otros. Editorial Félix Varela. ISBN 959-258-
581-4 OC. Cuba.
3. Monografía Visual Basic, localizable en
http://www.monografias.com/trabajos7/arch/arc
h.shtml

4. Seminario de Visual Basic Básico, Zuriel


Correa, Universidad de Puerto Rico Mayagüez

5. www.lawebdelprogramador.com
EDICIONES UAPA

UNIDAD DIDÁCTICA 2.3


Expresiones

Objetivos
 Conocer las formas de representar las
expresiones.
 Identificar la expresión adecuada para utilizar en
cada algoritmo.

Requisitos previos
Conocimientos sobre cómo formular y utilizar las
constantes y las variables en los lenguajes de
programación.

ESQUEMA DE CONTENIDO DE LA UNIDAD 2.3


2.3.1 Las expresiones.
2.3.2 La asignación.
2.3.3 Expresiones, operadores y operandos.
EDICIONES UAPA

DESARROLLO DE CONTENIDOS

Un aspecto esencial en programación lo constituyen


las vías por las cuales se le asignan valores a las
variables. Las expresiones en programación tienen
una importancia especial pues constituyen una de
estas vías. Este será el asunto fundamental de esta
unidad.

2.3.1 Las expresiones

Una expresión es un dato, variable, función o la


combinación de ellos unidos por operadores
aritméticos.

Ejemplos: x + 3, z, alfa – t + cos(x) son algunos


ejemplos de expresiones.
Las expresiones son la base para la creación de las
operaciones de asignación.

2.3.2 La asignación

La asignación es una operación muy importante y


utilizada en la programación. Es la que permite que
EDICIONES UAPA

las zonas de memoria adquieran valores que serán


utilizados en los programas. La asignación da un
valor a una zona de memoria cuya dirección
simbólica es el nombre de la variable.

Para asignarle valores a las variables es


comúnmente utilizado en pseudocódigo, un operador
de asignación de la forma siguiente “←”, o mediante
el signo igual (=). Su sintaxis puede ser de la
siguiente forma:

<variable> ← <expresión>

<variable> = <expresión>

Aquí el signo igual (=) no tiene exactamente la misma


función que se le da en matemáticas. El signo igual
(=) significa que el computador va a ejecutar lo que
está a su derecha y lo va a almacenar en la variable
que se encuentre a la izquierda del signo igual. Así, a
la izquierda del signo igual solo puede haber una
variable y a la derecha puede haber una constante,
una variable ó una expresión.
EDICIONES UAPA

En el diagrama de bloque la figura que la representa


es el rectángulo, tal como aparece en el siguiente
gráfico:

<variable> ← <expresión>

La instrucción de asignación permite asignarle (“←”)


a una variable (<variable>) el resultado de la
evaluación de la expresión (<expresión>) que se
encuentra a la derecha del signo de asignación o
signo igual.
EDICIONES UAPA

EJEMPLO

Estructura general de la declaración de datos básicos


Texto nombre
Entero edad
Lógico becario, casado
Real talla, peso // Es posible declarar
simultáneamente dos variables del mismo tipo
separándolas por una coma //

EJEMPLO

Asignación específica para un caso concreto


nombre ← “Julio”
edad ← 19
talla ← 1.67
peso ← 85
becario ←V
casado ←F

En los lenguajes de programación el signo más


utilizado para la asignación es el signo igual (=). La
instrucción de asignación se ejecuta bajo el siguiente
criterio: “se evalúa la expresión situada a la derecha
EDICIONES UAPA

del operador de asignación (=) y el resultado de esta


evaluación se le asigna como valor a la variable que
está a la izquierda del operador”. Después de
haberse efectuado esta asignación de valores a la
variable de la izquierda se elimina cualquier valor que
haya tenido antes la variable. La sintaxis quedaría
como sigue.

<nombre_de_la_variable> = <expresión>

El valor que se obtiene con la evaluación de la


expresión que aparece a la derecha del signo igual,
es almacenado en la localización de memoria cuya
dirección simbólica corresponde al nombre de la
variable que aparece a la izquierda de la igualdad.
Con frecuencia se dice, en forma abreviada, que la
variable toma el valor del resultado de la evaluación
de la expresión.

Nota:
La evaluación de la expresión debe dar un resultado del
mismo tipo que el de la variable a la que le va a ser
asignado.

EJEMPLO
EDICIONES UAPA

Asignación del valor 34 C (34 grados centígrados) a la


variable temperatura. Esto es:

Temperatura = 34

En el ejemplo anterior se puede asumir que a la


variable temperatura se le asigna el valor 34. Antes
de esta asignación su valor era desconocido.

EJEMPLO

Asignación del valor de Y a la variable X

X=Y

Con esta asignación las variables X y Y tienen el


mismo valor. No se debe olvidar que después de la
asignación, el valor que tenía X se pierde de forma
irrecuperable al asumir el nuevo valor.

EJEMPLO
EDICIONES UAPA

Asignar a la variable Área el cálculo del área de un


rectángulo con lados a y b.

Area = a * b
Si la variable a tiene el valor 3 y la variable b tiene el
valor 6 entonces después de la asignación Área
adquiere el valor 18.

RECORDAR: Una instrucción de asignación consiste


en asignar el resultado de la evaluación de una
expresión a una variable que está a la izquierda de la
igualdad. Esta asignación se traduce en almacenar un
determinado valor en una posición de memoria cuya
dirección simbólica se identifica con el nombre de la
variable.

A manera de resumen se puede plantear lo siguiente:


a) Al lado izquierdo del igual solo puede haber una
variable

b) Al lado derecho del igual puede haber una


constante, una variable o una expresión
EDICIONES UAPA

c) Cada vez que se le asigna un nuevo valor a una


variable, el valor anterior se pierde.

En el lenguaje Basic el comando para la asignación


es LET. Especificar el nombre de la variable es
opcional y en la práctica generalmente se omite. La
sintaxis del comando es la siguiente:

LET [Nombre + Valor de la variable]

2.3.3 Expresiones, operadores y operandos

Las expresiones son representaciones de un cálculo


que se realiza para obtener un resultado. Pueden ser
valores constantes, funciones o combinaciones de
valores, variables, funciones y operadores que
cumplen determinadas reglas para la construcción
de una expresión. Otra forma de definir la expresión
puede ser:

OPERADORES: símbolos o palabras que facilitan la


realización de una operación.
EDICIONES UAPA

EXPRESIONES: conjunto de operadores y operandos


que producen un valor.

Los operadores nos permiten expresar relaciones


entre variables y/o constantes, relaciones de las
cuales normalmente se desprende un resultado,
relacionado con el problema que estamos
resolviendo. Los operadores generalmente son
aritméticos, relacionales y lógicos.

La tabla siguiente presenta los operadores que son


utilizados por Visual Basic 6.0

Operador
Tipo Operación en V
Basic

Exponenciación ^

Cambio de signo -

Aritméticos Multiplicación, división *, /

División entera \

Resto de una división entera Mod


EDICIONES UAPA

Suma y resta +, -

Concatenación Concatenar o enlazar &,+

Igual a =

Distinto ‹›
Relacional Menor que , menor igual
‹, ≤
que

Mayor que, mayor igual que ›, ≥

Comparar dos expresiones


Like
de caracteres
Otros
Comparar dos referencias a
Is
objetos

Negación (Cambia el
verdadero por falso y Not
viceversa)

And And
Lógico
Or inclusivo Or

Or exclusivo Xor

Equivalencia (opuesto al
Eqv
Xor)
EDICIONES UAPA

Implicación (False si el
primer operador es true y el Imp
segundo operador es False)

EJEMPLO

1. 223 + 65 (operación suma)


2. 2789 - 196 (operación resta)
3. 244 * 3 (operación multiplicación
4. 1 + 16 - 8 (tres operandos y dos
operadores)
5. 31.1 * 12.5
6. 5 ^ 2 (operación potencia)
7. 3.1 / 2.5 (operación división real)
8. 5 \ 2 (operación división entera)

En el caso particular de los operadores lógicos AND y


OR tienen el siguiente comportamiento.

AND: (Los dos deben de cumplirse)

A B A AND B
EDICIONES UAPA

0 (FALSO) 0(FALSO) 0 (Falso)


0 (FALSO) 1(Verdarero) 0 (Falso)
1(Verdarero) 0(FALSO) 0 (Falso)
1(Verdarero) 1(Verdarero) 1 (Verdadero)

OR: (Con uno que se cumpla es suficiente)

A B A OR B
0 (Falso) 0(Falso) 0(Falso)
0(Falso) 1(Verdarero) 1(Verdarero)
1(Verdarero) 0(Falso) 1(Verdarero)
1(Verdarero) 1(Verdarero) 1(Verdarero)

EJEMPLO

19 > 13 AND 18 > 16


19 > 13 AND 18 > 19
19 = 13 AND 18 >= 16
19 = 13 AND 18 >= 19
Las expresiones anteriores se evalúan a:
verdadero (19>13 es verdadero y 18 > 16 es
verdadero)
falso (19 > 13 es verdadero y 18 > 19 es falso)
EJEMPLO
falso (19 = 13 es falso y 18 >= 16 es verdadero)
falso (19 = 13 es falso y 18 >= 19 es falso)
EDICIONES UAPA

NOT
not ( 23 > 15 )
not ( 28 > 91 )
Los resultados de evaluarlas son:
falso
(porque es verdadero 23 > 15)
verdadero
(porque es falso 28 > 91)

Los operadores tienen niveles de prioridad que


indicarán el orden en el que se realizarán cada una
de las operaciones. En la tabla siguiente se muestran
los 4 niveles.

NIVEL OPERADOR
1 NOT
2 /, MOD, AND
3 +, -, OR
4 >, >=, <, <=, =, = =, |=

EJEMPLO
EDICIONES UAPA

var = a + b / c + d

Esta expresión verificará primero si en esta expresión


existen potencias, como no las hay, sigue al siguiente
nivel y vuelve a recorrer la expresión evaluando si
existen (indistintamente y no necesariamente en ese
orden) multiplicaciones y divisiones si encuentra que
existe una división lo primero que realiza es la
división de b/c, luego vuelva a recorrer la expresión
buscando (en el tercer nivel) sumas y restas
(indistintamente y no necesariamente en ese orden)
Encuentra la suma de a más lo que ya había
calculado y luego realiza la suma de este último
resultado más d. De esta manera la evaluación se
realiza según se ve en el gráfico siguiente.
EDICIONES UAPA

Para variar la jerarquía de las operaciones se utilizan


los paréntesis, los corchetes y las llaves. Las
operaciones que se encuentran entre ellos se
realizan primero.

RESUMEN DE LA UNIDAD 2.3

En esta Unidad Didáctica se estudió el significado de


la asignación para los programas de computadoras.
La asignación permite dar valores a las variables a
partir de valores específicos u obtenidos de la
evaluación de expresiones. Se definió qué es una
expresión y cuáles son los operadores que se utilizan
más frecuentemente en los algoritmos.

Fueron planteados ejemplos de varias de las posibles


expresiones utilizando diferentes tipos de operadores.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 2.3

1. Explique a su grupo qué significado tiene la


asignación en un programa de computadoras.

2. Realice un mapa conceptual para la definición


de expresión incluyendo al menos 5
operadores y algunos ejemplos.

3. Explique las siguientes expresiones y en


donde proceda, calcule el resultado. No olvide
que cada nuevo valor que se le asigne a una
variable borra el valor anterior.

a. A = 10

b. B = 15

c. C = 20

d. A = A + B

e. B = B + 8

f. C = C + A

g. A = A + 5

h. B = B + 3
EDICIONES UAPA

i. C=C+2

j. A=A–B

k. B = A – B

l. C=A–B

4. Aplicando la jerarquía de los operadores,


encontrar el valor de cada una de las
siguientes expresiones:

a. 4 + 1 * 5 ^ 2 – 1

b. 9 / 3 + 4 ^ 2 - 5 * 1 + 9 / -2 + 3

c. 5 / 2 + 3 - 4 * 5 / 2

d. (4 + 1) * 5 ^ 2 – 1

e. 17 / 2 + 3 ^ 2 ^ 2 - 2 * 2 / 2
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 2.3

1. Expresar las siguientes condiciones como


expresiones lógicas:

a. B es mayor que 15.

b. M es menor ó igual que 6 pero mayor que 18.

c. P es igual a 46 ó mayor que Q.

d. M es mayor que A, B y C.

e. Z esta en el intervalo de 4 a 100.

f. T es igual a 2, 3 ó 4.

2. Diseñe un algoritmo (en seudocódigo) que


determine qué porciento de hombres y de mujeres
hay en un grupo de alumnos de un aula.

3. Diseñe un algoritmo (en seudocódigo) que


exprese la capacidad de un disco duro en
megabytes, kilobytes y bytes, conociendo la
capacidad del disco en gigabytes. Considere que:
1 kilobyte = 1024 bytes, 1 megabyte = 1024
kilobyte, 1 gigabyte = 1024 megabytes.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA
UNIDAD 2.3

1. Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición, Mc Graw – Hill, 2003
2. Manual para el profesor. Lógica y algoritmos
(Parte II). Dr. A. Rosete, Dra. M. Delgado y
otros. Editorial Félix Varela. ISBN 959-258-
581-4 OC. Cuba
3. Monografía Visual Basic, localizable en
http://www.monografias.com/trabajos7/arch/arc
h.shtml

4. Seminario de Visual Basic Básico, Zuriel


Correa, Universidad de Puerto Rico Mayagüez.
EDICIONES UAPA

UNIDAD DIDÁCTICA 2.4


Formato de programación. Funciones de
entrada/salida

Objetivos:

 Manejar el formato de programación


 Manejar las funciones de entrada y salida.

Requisitos Previos

 Dominar adecuadamente las constantes y las


variables del lenguaje de programación

 Saber utilizar un entorno de programación,


preferiblemente Visual Basic en la versión
objeto de estudio.
EDICIONES UAPA

ESQUEMA DE CONTENIDO DE LA UNIDAD 2.4

2.4.1 La entrada y salida de información.

2.4.2 Formato de programación.


2.4.3 La solución de un problema con un programa.

2.4.4 Análisis descendente del problema.

2.4.5 Metodología Jackson.


2.4.6 Entrada y salida de datos en Visual Basic.
EDICIONES UAPA

DESARROLLO DE CONTENIDO

La programación ha evolucionado mucho desde la


creación de las primeras computadoras, y esta
evolución ha ido facilitando cada vez más el proceso
de programación, así como dando mayores
posibilidades de hacer cosas. Para programar es
necesario conocer técnicas e instrucciones de un
determinado lenguaje a través de los cuales es
posible lograr que la computadora ejecute las
acciones indicadas y obtenga los resultados que
necesitamos.

Para hacer un programa se necesita aplicar una


lógica de programación que consiste en lograr una
selección y aplicación correcta y de una manera
organizada de los conceptos que permiten diseñar,
en términos generales, la solución a problemas que
pueden llegar a ser implementados a través de una
computadora.

Como ya se conoce, un buen programa debe estar


precedido de un buen algoritmo y este tiene dos
componentes que no puede faltar: la entrada de
EDICIONES UAPA

datos y la salida de los resultados. En esta unidad


será tratado el tema de entrada y salida de
información en una computadora.

2.4.1 La entrada y salida de información

Los equipos que posibilitan la entrada y salida de


datos en la computadora reciben el nombre de
periféricos. Estas operaciones permiten introducir los
datos con los que va a operar el procesador central
de la computadora y devolver los resultados de su
trabajo al usuario (constituye un interface entre el
usuario y la computadora, y simplifica así la
comunicación entre el hombre y la máquina). Algunos
ejemplos de dispositivos de entrada y salida, son:
teclado, monitor, mouse, etc.

La entrada de datos implica la realización de una


operación de Lectura y la salida de la información
resultante requiere de una operación de Escritura.

Un paradigma importante es la programación


interactiva que permite al usuario interactuar con el
programa e introducir datos simultáneamente con la
ejecución del programa.
EDICIONES UAPA

Para facilitar esta entrada de datos, la computadora


debe indicar al usuario el momento en que debe
introducir los datos. Para ello se deben visualizar
mensajes interactivos con indicaciones al usuario.

Los datos se pueden almacenar en memoria de tres


formas diferentes:
 asociados con constantes,
 asignados a una variable con una instrucción
de asignación o
 una instrucción de lectura.
El último es el más indicado si se desea manipular
diferentes datos cada vez que se ejecuta el
programa. Además la lectura de datos permite
asignar valores desde dispositivos hasta archivos
externos en memoria. Esto se denomina operación
de entrada o lectura.
Lectura: La lectura consiste en recibir desde un
dispositivo de entrada (por ejemplo el teclado) un
valor. Esta operación se representa en un
seudocódigo como sigue:

• Leer a

• Leer b
EDICIONES UAPA

Donde “a” y “b” son las variables que recibirán los


valores. La operación de entrada en seudocódigo se
representa de manera general de la siguiente
manera:

Leer (lista de variables)

Cuando el programa se está ejecutando se necesita


visualizar los resultados que se obtienen. Esta
operación se conoce como operación de escritura o
salida.
Escritura: Consiste en enviar hacia un dispositivo de
salida (por ejemplo monitor o impresora) un resultado
o mensaje. Esta operación se representa en un
seudocódigo como sigue:

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.
Las operaciones de salida o escritura en seudocódigo
se representan de la siguiente manera:

Escribir (lista de variables,"Mensaje")

En la instrucción de salida se pueden incluir además


mensajes de texto y variables. Ejemplo:
EDICIONES UAPA

Algoritmo Ejemplo
escribir ("Hola Alumnos")
Fin

Esto imprimirá en pantalla la frase: Hola Alumnos.

Ejemplo: La siguiente instrucción de entrada,


obtiene dos números desde un dispositivo de
entrada, como el teclado, y los almacena en las
variables X1 y X2 Leer X1, X2

Más adelante se tratará la entrada y salida en el


lenguaje Visual Basic.

2.4.2 Formato de programación


En la historia de la computación hay muchas
importantes figuras que han sido protagonistas en
diferentes momentos de su desarrollo. Ellos han sido
destacados en la propuesta de ideas que han
cambiado métodos, paradigmas, etc. Tal es el caso
de las de Knuth, Dijkstra (el modesto programador)
y Wirth y a partir de ello las reglas para la
construcción de algoritmos han ido variando
constantemente, y de igual forma los lenguajes de
programación, de manera general, se han ido
EDICIONES UAPA

adaptando a estas reglas o técnicas de


programación.

Existen reglas generales que es aconsejable que se


tengan en cuenta a la hora de programar,
fundamentalmente si se trata de programación
estructurada. Entre ellas se destacan las siguientes:
1. Diseñar algoritmos por etapas, recorriendo
el camino de lo general a lo particular (método
descendente)
2. Dividir el algoritmo en partes independientes
-módulos- y tratar cada módulo
independientemente.
3. Establecer y utilizar en la solución de
problemas técnicas de programación
estructuradas
4. Dar especial importancia a las estructuras
de datos
5. Describir completamente cada algoritmo
6. Verificar o realizar la prueba de escritorio a
cada algoritmo desarrollado con varios juegos
de datos.
EDICIONES UAPA

En unidades anteriores se planteó la definición


de programa y ahora se recuerda nuevamente:

PROGRAMA:
Puede ser considerado como el conjunto de Estructuras
de datos más el conjunto de Estructuras de
programación y el Encabezado que exige cada lenguaje
en particular.

Como se ha insistido desde el tema anterior, un


lenguaje de programación es una notación para
escribir programas, a través de los cuales es posible
comunicarse con el hardware de la computadora y
dar las órdenes adecuadas para la realización de un
determinado proceso. También se define como un
conjunto de símbolos y de reglas y a través de los
cuales se construyen los programas. Poseen un
léxico, una sintaxis y una semántica. (4)

LÉXICO: Conjunto de símbolos permitidos o vocabulario.

SINTAXIS: forma en que se escribe la instrucción, de


manera que tenga un sentido o significado único e
inteligible para todos.
EDICIONES UAPA

SEMÁNTICA: significado de la instrucción, es decir lo que


ocurre cuando una instrucción se ejecuta.

2.4.3 La solución de un problema con un


programa

El Diccionario de la Real Academia tiene varias


acepciones de la palabra problema. Una de ellas es
“Planteamiento de una situación cuya respuesta
desconocida debe obtenerse a través de métodos
científicos”. Para lograr esa respuesta un problema
se puede definir como una situación en la cual se
trata de alcanzar una meta y para lograrlo se deben
utilizar medio, técnicas y estrategias.

La mayoría de los problemas tienen varias cosas en


común:
 un estado inicial;
 una meta, lo que se pretende lograr;
 un conjunto de recursos, lo que se puede
utilizar;
 y un dominio, el estado actual de
conocimientos, habilidades y energía para
resolverlo (Moursund, 1999).
EDICIONES UAPA

La solución de problemas también requiere que se


realicen operaciones durante el estado inicial y las
actividades (conductuales, cognoscitivas) que alteran
la naturaleza de tales estados (Schunk, 1997).

Un esquema que ilustra la definición de problemas se


muestra a continuación:

un
PROBLEMA

es
una
SITUACIÓN
en la
cual una
PERSONA

ACTÚA DESEA HACER


ALGO

para alcanzar
para alcanzar META
la
una pero
CURSO desconoce
DE el
ACCIÓN

utilizando unaESTRATEGIA
EDICIONES UAPA

Otra representación se muestra en el siguiente


esquema, donde se incluyen los componentes del
mismo y los posibles caminos que deben ser
abordados para su solución. Como se reitera en
todos los tratados de programación el aplicar el
principio ¨divide y vencerás¨ es una buena idea para
obtener eficacia en los programas que se elaboran.
Este principio es uno de los pilares de la
programación estructurada.

Los PROBLEMAS

Tienen COMPONENTES

METAS DATOS RESTRICCIONES OPERACIONES

son son son


Son las que
DESEAN ELEMENTOS FACTORES PROCEDIMIENTOS
se
para Que limitan para
el
ALCANZAR ANALIZAR CAMINO RESOLVER

la Para alcanzar el
2.4.4 Análisis descendente del problema
la
SITUACIÓN
PROBLÉMACA SOLUCIÓN PROBLEMA
EDICIONES UAPA

Se hace un análisis descendente del programa,


partiendo de lo general a lo particular. Se divide en
subprogramas cada uno de los cuales realiza una
tarea. De esta manera, un problema se va dividiendo
en problemas más pequeños hasta llegar a la unidad
mínima que es ya indivisible.

Para aplicar una filosofía de programación


estructurada en el diseño de los programas, se
necesita una metodología de programación dividida
en niveles, donde cada uno de ellos realiza una
función específica. Esta estructura jerárquica de
módulos de programas se denomina Programación
Estructurada.
EDICIONES UAPA

A.1 A.2 A.3


Niveles
jerárquic
os

A.1. A.1.
1 2

La programación estructurada debe garantizar que


todas las divisiones de control de un programa se
encuentren estandarizadas, de forma tal que sea
posible leer la codificación desde su inicio hasta su
terminación, en forma continua, sin tener que saltar
de un lugar a otro del programa siguiendo el rastro de
la lógica establecida por el programador, como es la
situación habitual con codificaciones desarrolladas
bajo otras técnicas.

El diagrama de bloques no es un diseño de


estructura, es una representación gráfica de un
algoritmo; por tanto el que un diagrama preceda a la
EDICIONES UAPA

codificación de un programa no garantiza que el


mismo sea correcto. Debe hacerse primero el diseño
de estructura y a continuación si se desea se hace el
diagrama de bloques.

En general en los programas es necesario establecer


la diferencia entre un programa que corre y un
programa correcto. Un programa que no corre
contiene errores, pero un programa que corre, no
necesariamente esta correcto ni libre de errores.
Puede correr y ser difícil de entender, de modificar o
puede contener errores no detectados.

Los problemas deben descomponerse en estructuras


jerárquicas más simples, lo que facilita la detección
de errores. Esta descomposición se realiza de forma
gráfica con una estructura arbórea. El programa o
componente principal se va descomponiendo
sucesivamente hasta que no exista un componente lo
suficientemente complejo.

Los componentes no elementales pueden ser de 3


tipos básicos con los cuales pueden efectuarse todas
las descomposiciones posibles. Estas son:
EDICIONES UAPA

 Secuencia
 Selección
 Iteración

En la metodología Jackson existe un sistema de


notaciones que comprende el diagrama de estructura
y la lógica esquemática que se emplea en la
confección de un programa haciendo primero el
diseño del mismo a través del diagrama de estructura
y luego la codificación de las acciones por medio de
la lógica esquemática.

Existen varias metodologías de programación


estructurada con sus especificidades: Warnier,
Bertini, l Jackson, y otras más han expuesto sus
respectivos métodos. En cualquier caso el objetivo de
todas ellas es enseñar a programar sin asociarse a
un lenguaje de programación específico, sino a través
de un seudolenguaje o lenguaje genérico.

El Método Jackson, será explicado seguidamente,


pero los estudiantes pueden utilizar otro criterio
metodológico que le resulte cómodo y orientador para
confeccionar un programa.
EDICIONES UAPA

2.4.5 Metodología Jackson


a) Diagrama de estructura
Lo primero es disponer de un diagrama de
estructura de la manera siguiente:

A Nivel 1

B C D Nivel 2

E F G H Primitiva
funcional

El diagrama de estructura tiene los siguientes


principios:

 Siempre se lee de arriba hacia abajo y de


izquierda a derecha.

 Toda estructura tiene un inicio y un fin.


EDICIONES UAPA

 Cada rama se analiza desde el inicio hasta el


fin de cada estructura.

 Para pasar de una rama a otra se tiene que


haber finalizado la anterior.

 Una vez que se pase a la rama siguiente no


puede volver a la rama anterior.

b) Lógica Esquemática

Otro elemento de la metodología es la lógica


esquemática, que consiste de forma general en
realizar los siguientes pasos:

1. Se selecciona el primer elemento de la


estructura y se le asigna el nombre y el tipo
de estructura que representa.

2. Se repite esta misma acción para el


siguiente elemento, empezando por la rama
más a la izquierda del diagrama.

3. Se continúa repitiendo el paso anterior


hasta concluir, teniendo en cuenta que se
recorre el diagrama desde la rama más a la
izquierda, hasta la derecha.
EDICIONES UAPA

4. Se comienzan a cerrar las estructuras que


ya no tengan más descendientes.

5. Se pasa a la rama siguiente, haciendo el


procedimiento que explican los pasos
anteriores.

6. Se cierran las estructuras que están más


arriba hasta llegar a la que le dio inicio al
proceso.

Nota:
Todas las estructuras de un mismo nivel deben
de quedar una debajo de la otra.
EDICIONES UAPA

EJEMPLO

A Sec
A Sec B Sec
B Sec
E
E
F F
B Fin
C Sec B Fin
G
C Fin C Sec
D Sec
H G
D Fin
A Fin C Fin
D Sec
Nivel 1 H
Nivel 2
D Fin Primitivas
funcionales
A Fin

c) Estructura de Secuencia

Un diagrama de secuencia pude representarse de la


manera que se muestra a continuación:
EDICIONES UAPA

Estructura
B s

En este caso estamos en presencia de tres niveles


de la estructura, donde

 A es la estructura padre que contiene a la


estructura B

 B es la estructura contiene a C

 C no es estructura porque no tiene


descendientes.

La lógica esquemática puede describirse como sigue:

Nombre y tipo de
estructura

A Sec

B Sec

B Fin
Fin de la
estructura
EDICIONES UAPA

A Fin

2.4.6 Entrada y salida de datos en Visual Basic


Para programar en cualquier lenguaje es
indispensable conocer la forma de ingresar
información a la computadora y de visualizar la salida
de los resultados. La programación visual introduce
una manera interactiva distinta de comunicarse con
el usuario, a través de cajas de diálogo como
MsgBox e InputBox en el caso del Visual Basic.
Especial interés adquiere la lectura y escritura de
datos en el disco, o algún otro soporte externo y en
particular en los casos en se desea conservar los
datos al concluir la ejecución del programa. Los
ficheros en disco resuelven estos problemas.
EDICIONES UAPA

EJEMPLO

El ejemplo anterior es una pequeña aplicación que


contienen una entrada de un nombre y obtiene como
salida un mensaje de saludo a la persona cuyo
nombre se introdujo como dato.

 Cajas de diálogo INPUTBOX Y MSGBOX


Estas cajas de diálogos son similares a las que se
usan en muchas aplicaciones de Windows. La caja
de mensajes o MsgBox abre una ventana a través de
la cual se envía un mensaje al usuario y se le pide
una respuesta, por ejemplo en forma de clicar un
botón O.K./Cancel, o Yes/No. Mensajes de este tipo
son muy utilizados para confirmar acciones y para
EDICIONES UAPA

decisiones sencillas. La caja de diálogo InputBox


pide al usuario que teclee una frase, por ejemplo su
nombre el de su país de procedencia, un título de un
libro, zona postal, etc.

La forma general de la función MsgBox es la


siguiente:
Respuesta= MsgBox ("texto para el usuario", tipos
Botones, "titulo"). Respuesta es la variable donde se
almacena el valor de retorno, que es un número
indicativo del botón al que el usuario le dio clic. Los
otros dos argumentos son opcionales. El parámetro
tipos Botones es un entero que indica la
combinación de botones deseada por el usuario.
También en este caso la constante simbólica
correspondiente es suficientemente explícita. Si este
argumento se omite se muestra sólo el botón O.K.

El parámetro titulo contiene un texto que aparece


como título de la ventana; si se omite, se muestra en
su lugar el nombre de la aplicación. Se puede
modificar el valor de tiposBotones de modo que el
botón que se activa por defecto cuando se pulsa la
tecla Intro (el botón que tiene el focus) sea
EDICIONES UAPA

cualquiera de los botones de la caja. Para ello basta


sumar a tiposBotones otra constante que puede
tomar uno de los tres valores siguientes: 0
(vbDefaulButton1, que representa el primer botón),
256 (vbDefaulButton2, que representa el segundo
botón) y 512 (vbDefaulButton3, que representa el
tercer botón).

EJEMPLO

Valor de retorno Constante simbólica


1 vbOK
2 vbCancel
3 vbAbort
4 vbRetry
5 vbIgnore
6 vbYes
7 vbNo
EDICIONES UAPA

EJEMPLO

Valor tiposBotones Constante simbólica


0 vbOKOnly
1 vbOKCancel
2 vbAbortRetryIgnore
3 vbYesNoCancel
4 vbYesNo
5 vbRetryCancel

Finalmente, se puede incluir en el mensaje un icono


ad-hoc por el mismo procedimiento de sumarle al
argumento tiposBotones una nueva constante
numérica con los otros valores y significados
definidos por la constante simbólica apropiada.
Teniendo en cuenta los propios valores considerados,
al sumar estas constantes o las anteriores al
argumento tiposBotones, la información original no
se pierde.

La forma general de la función InputBox es la


siguiente:
texto = InputBox("texto para el usuario", "titulo",
"default", left, top).
EDICIONES UAPA

Aquí texto es la variable donde se almacena el valor


de retorno, que es el texto tecleado por elusuario. Los
parámetros "texto para el usuario" y titulo tienen el
mismo significado que en MsgBox. El parámetro
default es un texto por defecto que aparece en la
caja de texto y que el usuario puede aceptar,
modificar o sustituir; el contenido de esta caja es lo
que en definitiva esta función devuelve como valor de
retorno. Finalmente, left y top son las coordenadas
de la esquina superior izquierda de la InputBox; si se
omiten, Visual Basic 6.0 dibuja esta caja centrada en
horizontal y algo por encima de la mitad de la pantalla
en vertical.

 Método PRINT

Este método permite escribir texto en formularios,


cajas pictureBox y en un objeto llamado Printer
cuyas características generales son:

1. El método Print recibe como datos una lista de


variables y/o cadenas de caracteres. Las cadenas
son impresas y las variables se sustituyen por su
valor.
EDICIONES UAPA

2. Hay dos tipos básicos de separadores para los


elementos de la lista. El carácter punto y coma (;)
hace que se escriba inmediatamente a continuación
de lo anterior. La coma (,) hace que se vaya al
comienzo de la siguiente área de salida. Con letra de
paso constante como la Courier las áreas de salida
empiezan cada 14 caracteres, es decir en las
columnas 1, 15, 29, etc. Con letras de paso variable,
esto se hace sólo de modo aproximado.

3. Las constantes numéricas positivas van precedidas


por un espacio en blanco y separadas entre sí por
otro espacio en blanco. Si son negativas el segundo
espacio es ocupado por el signo menos (-).

4. El tipo y tamaño de letra que se utiliza depende de


la propiedad Font del formulario, objeto PictureBox u
objeto Printer en que se esté escribiendo.
Existen otros separadores tales como Tab(n) y
Spc(n). El primero de ellos lleva el punto de inserción
de texto a la columna n, mientras que el segundo
deja n espacios en blanco antes de seguir
escribiendo. Tab sin argumento equivale a la coma
EDICIONES UAPA

(,). Estos espaciadores se utilizan en combinación


con el punto y coma (;), para separarlos de los demás
argumentos.

Por defecto, la salida de cada método Print se


escribe en una nueva línea, pero si se coloca un
punto y coma al final de un método Print, el resultado
del siguiente Print se escribe en la misma línea.

Puede controlarse el lugar del formulario o control


donde se imprime la salida del método Print. Esta
salida se imprime en el lugar indicado por las
propiedades CurrentX y CurrentY del formulario o
control donde se imprime. Cambiando estas
propiedades se modifica el lugar de impresión, que
por defecto es la esquina superior izquierda.
 Función Format

La función Format realiza las conversiones


necesarias para que datos numéricos o de otro tipo
puedan ser impresos con Print. En el caso de las
variables numéricas esto no es imprescindible, pero
la función Format permite controlar el número de
espacios, el número de decimales, etc. En el caso de
EDICIONES UAPA

su aplicación a objetos tipo fecha (date) y hora (time)


la aplicación de Format es imprescindible, pues Print
no los escribe directamente.

La forma general de esta función es la siguiente:

Format (expresion, formato)

Donde expresión es una variable o expresión y


formato -que es opcional- describe el formato
deseado para el resultado. El valor de retorno es una
cadena de caracteres directamente utilizable en
Print. Para fechas existen formatos predefinidos tales
como “General Date”, “Long Date”, “Medium Date” y
“Short Date”; para la hora los formatos predefinidos
son “Long Time”,“Medium Time” y “Short Time”.
Además existe la posibilidad de que el usuario defina
sus propios formatos (ver User-Defined Date/Time
Formats (Format Function), en el Help del
programa). El usuario también puede definir sus
propios formatos numéricos y de cadenas de
caracteres.
EDICIONES UAPA

A diferencia de la función Str, la función Format no


deja espacio en blanco para el signo de los números
positivos.

 Uso de la impresora

Visual Basic 6.0 permite obtener por la impresora


gráficos y texto similares a los que se pueden obtener
por la pantalla, aunque con algunas diferencias.
Existen dos formas de imprimir: la primera mediante
el método PrintForm, y la segunda utilizando el
objeto Printer, que es un objeto similar al objeto
PictureBox.

El método PrintForm permite imprimir un formulario


con sus controles y con los resultados de los métodos
gráficos (PSet, Line y Circle) y del método Print.
Para ello la propiedad AutoRedraw del formulario
tiene que estar puesta a True, y los métodos citados
tienen que estar llamados desde un evento distinto
del Paint. Lo único que no se dibuja del formulario es
la barra de título.
EDICIONES UAPA

Este sistema de impresión es muy sencillo de utilizar,


pero tiene el inconveniente de que el resultado se
imprime con la misma resolución de la pantalla (entre
50 y 100 puntos por pulgada), no aprovechando por
tanto la mayor resolución que suelen tener las
impresoras (300, 600 ó más puntos por pulgada). El
objeto Printer tiene la ventaja de que permite
aprovechar plenamente la resolución de la impresora,
pero no permite dibujar controles sino sólo los
métodos gráficos habituales (PSet, Line y Circle), el
método Print y un método no visto hasta ahora que
es PaintPicture.

Para Visual Basic 6.0 la impresora es un objeto


gráfico más, similar a los formularios y a las cajas
gráficas PictureBox. Como tal objeto gráfico tiene
sus propiedades generales (DrawStyle, BackColor,
ForeColor, etc.), además de otras propiedades
específicas de la impresora, como DeviceName,
DriverName, Orientation, Copies, etc. Para más
información puede utilizarse el Help, buscando
Printer object. En principio se utiliza la impresora por
defecto del PC, pero Visual Basic mantiene una
Printers Collection, que es algo así como un array
EDICIONES UAPA

de impresoras disponibles. A partir de esta Printers


Collection se puede cambiar a la impresora que se
desee.

El objeto Printer tiene un método llamado EndDoc


para enviar realmente a la impresora el resultado de
los métodos gráficos. El método PaintPicture permite
incorporar el contenido de ficheros gráficos a un
formulario, PictureBox o Printer.

RESUMEN DE LA UNIDAD 2.4


EDICIONES UAPA

Hemos estudiado que los datos se pueden almacenar


en memoria de tres formas diferentes: asociados con
constantes, asignados a una variable con una
sentencia de asignación o una sentencia de lectura.
Siendo el último modo el más indicado si se desea
manipular diferentes datos cada vez que se ejecuta el
programa. Además la lectura de datos permite
asignar valores desde dispositivos hasta archivos
externos en memoria. Esto se denomina operación
de entrada o lectura.

En los sistemas de cómputo, los datos se introducen


a través de los periféricos de entrada como el
teclado, scanner, mouse, mientras que la información
resultante se envía al exterior por medio de los
dispositivos de salida entre los que se encuentran la
pantalla, impresora, etc.

Los periféricos de entrada y de salida posibilitan la


ejecución de estas operaciones. Estas operaciones
permiten establecer la comunicación entre el hombre
y la máquina.
EDICIONES UAPA

La entrada de datos implica una operación de


Lectura y la salida de la información resultante
requiere de una operación de Escritura.

Una estructura se define como un esquema que nos


representa de manera simplificada y clara alguna
idea. Esto nos permite tener un medio más
simplificado para expresar las ideas y que al limitar y
“estandarizar” la creación algorítmica, el mismo
proceso creado por una persona sea fácilmente
entendible por cualquier otra.

ACTIVIDADES DE LA UNIDAD 2.4


EDICIONES UAPA

1. Realice la lógica esquemática de los siguientes


diagramas.

a) b)
W
X
P
Y Z H
Q
T

N P A B
c)
X
2. Calcular la hipotenusa en el triángulo
rectángulo de la figura, en el que un cateto
vale 3 y el otro 4. Se sabe que en un triángulo
rectángulo, el cuadrado de la hipotenusa es
igual a la suma de los cuadrados de los
catetos.

3. Discuta en colectivo las


diferentes funciones de entrada/salida de
Visual Basic (VB) 6.0
EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 2.4
EDICIONES UAPA

1. Diseñe un algoritmo que determine el porcentaje


de sillas y mesas que hay en un aula de una
universidad.
2. Pedir a través de mensajes dos números y dé
como resultado la suma de ambos. Colocar las
acciones:

Inicio Cálculo Final

3.- Se desea crear un programa que dada las horas


trabajadas y el salario que devenga por hora, calcule
el salario total.

Motivación de la próxima Unidad Didáctica

Los archivos como colección de datos sirven para la


entrada y salida a la computadora. Son manipulados
con programas.

Los archivos pueden ser contrastados con arrays y


registros, la que se realiza de forma dinámica y por
EDICIONES UAPA

esto en un registro se deben especificar los campos,


él número de elementos de un arrays (o arreglo) y el
número de caracteres en una cadena. Por esto se
denotan como "Estructuras Estáticas".

En los archivos no se requiere un tamaño


predeterminado; esto significa que se pueden hacer
archivos de datos más grandes o pequeños, según
se necesiten.

Cada archivo es referenciado por su identificador (su


nombre.). Los principales conocimientos que son
necesarios para el trabajo con archivo, se exponen
en la siguiente unidad.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD


2.4

1. Aprenda Visual Basic 6.0 como si estuviera en


primero. Javier García de Jalón • José Ignacio
Rodríguez • Alfonso Brazález. UNIVERSIDAD DE
NAVARRA
2. Manual para el profesor. Lógica y algoritmos
(Parte II). Dr. A. Rosete, Dra. M. Delgado y otros.
Editorial Félix Varela. ISBN 959-258-581-4 OC.
Cuba.
3. Monografía Visual Basic, localizable en
http://www.monografias.com/trabajos7/arch/arch.s
html
4. http://www.eduteka.org/profeinvitad.php3?ProfInvI
D=0006
5. SCHUNK, D. (1997) Teorías del aprendizaje.
México. Prentice Hall Hispanoamericana.

UNIDAD DIDÁCTICA 2.5


EDICIONES UAPA

OPERACIONES CON ARCHIVOS

Objetivos:

 Comprender los diferentes conceptos


asociados a los ficheros.
 Manejar las operaciones con archivos.

Requisitos Previos:

 Conocer los diferentes conceptos asociados a


entrada y salida.
 Manejar el formato de programación.

ESQUEMA DE CONTENIDO DE LA UNIDAD 2.5


2.5.1 Conceptos básicos
2.5.2 Operaciones con ficheros
2.5.3 Tipos de ficheros
2.5.4 Algunas palabras claves para el tratamiento de
ficheros en Visual Basic.

DESARROLLO DE CONTENIDO
EDICIONES UAPA

Los archivos también son denominados ficheros (file).


Son una colección de informaciones (datos
relacionados entre sí) almacenada en memoria
secundaria, localizada como una unidad en alguna
parte de la computadora.

Los archivos son el conjunto organizado de


informaciones del mismo tipo, que pueden utilizarse
en un mismo tratamiento, como soporte material de
estas informaciones.

Los archivos tienen un nombre y una extensión para


diferenciarlos unos de otros.
La extensión nos indica el tipo de archivo. Por
ejemplo: .DOC, .TXT son para archivos de texto,
.BMP, .JPEG, .TIF son de imágenes, .WAN, .WAF
son de sonido, etc.

wav txt jpg doc


EDICIONES UAPA

En esta unidad temática se tratarán los métodos de


creación y manejo de los ficheros.

2.5.1 Conceptos básicos


Existen varios conceptos asociados al trabajo con
archivos. Uno de ellos es el concepto de atributo.

ATRIBUTO: Es una característica que identifica un


elemento informático. Es todo aquello que se puede
describir por medio de sus características.

Ejemplos: El Dominicano es amable.


María es alta.
R. Dominicana es calurosa

Para que el atributo tenga un verdadero significado


debe tener asociado un dato y el dato asociado a un
atributo es que se convierte en información.

Otro concepto muy importante es el de campo.

CAMPO: Es un atributo que describe a una entidad. Se


refiere a una propiedad o característica.
EDICIONES UAPA

Tomando uno de los ejemplos anteriores se pueden


definir dos campos. El primer campo es nombre para
el nombre del país y el segundo es temperatura
promedio. Podemos adicionar otro Campo que
puede ser el continente al que pertenece el país. De
esta forma si ubicamos en una tabla estos elementos
podemos obtener la siguiente.

Temperatura
Nombre Continente
Promedio

Dominicana 38 Americano

Tenemos aquí un conjunto de campos y a cada


campo está asignado un dato Todos esos datos
pertenecen o describen a un mismo ente informático.
Esto es lo que conocemos por registro.

También es posible asignarle un nombre al registro


anterior, por ejemplo, vamos a llamarlo país. A este
registro se le pueden añadir otros campos y colocar
los datos correspondientes en cada uno de ellos.
EDICIONES UAPA

Ejemplo:

Registro País

Nombre Temperat Contine Poblaci Idiom Área


ura nte ón a en
Promedio Km2

Dominica C America 120000 Españ 72000


na no 00 ol

Una característica adicional que debe cumplir un


registro, es que pueda ser manejado como una
unidad, es decir, que todos los campos se
encuentren en el mismo lugar físico o lógico lo que
permite ser manipulado como un todo.

Imaginemos que además queremos manejar estos


datos, pero los correspondientes a otros países, por
ejemplo Cuba, México, Angola, etc. Una vez que se
introducen más registros entonces se trata de un
fichero o archivo.

FICHERO: Un fichero o archivo es un conjunto de


registros.
EDICIONES UAPA

Constituye un fichero lo siguiente:

Nombre Temperatura Zona Idioma


Promedio

Dominicana C Caribe Español

Cuba C Caribe Español

México C A. Español
Central

Angola C África Portugués

Nótese que cada registro tiene la misma estructura,


esto significa que tienen los mismos campos pero los
datos pueden ser diferentes. Este fichero se pudiera
denominar países.
Para poder seleccionar un registro del conjunto que
compone el archivo, se necesita un dato identificativo
que lo distinga de los demás. Se denomina campo
llave a un campo especial del registro que sirve para
identificarlo. Por tanto, el campo llave es aquel campo
que permite identificar y localizar un registro de
manera ágil y organizada. en un orden especifico.
EDICIONES UAPA

Algunos archivos en sus registros no tienen campo


llave, mientras que otros pueden tener varios,
denominándose a éstos llave primaria, secundaria,
etc. Por ejemplo, en el archivo anterior denomnado
países, una llave primaria puede ser el nombre .

Llave primaria: Es el campo clave principal de un


archivo multiclave.

Llave secundaria Es, en un archivo multiclave,


cualquier clave exceptuando la primara.

Un resumen de lo estudiado se presenta en el


siguiente esquema:

FICHERO o ARCHIVO

Nombre Temperatura Zona Idioma


REGISTROS

Promedio

Dominicana C Caribe Español

Cuba C Caribe Español

México C A. Español
Central
CAMPOS
EDICIONES UAPA

Angola C África Portugués

2.5.2 Operaciones con ficheros


Para usar la información que se encuentra
almacenada en localizaciones de la memoria
principal, se emplean por lo general las variables. En
el caso de los ficheros, para guardar o recuperar
información, es necesario realizar la serie de
operaciones que se describen a continuación.

El formato de declaración de un fichero o archivo


es el siguiente:
FILE <nombre archivo>;

Antes de usar un fichero es necesario realizar una


operación de apertura del mismo; posteriormente, si
se desea almacenar datos en él hay que realizar una
operación de escritura y si se quiere obtener datos
de él es necesario hacer una operación de lectura.
Cuando ya no se quiera utilizar el fichero se realiza
una operación de cierre para liberar parte de la
memoria principal que pueda estar ocupando
(aunque el fichero en sí está almacenado en memoria
EDICIONES UAPA

secundaria. Mientras está abierto ocupa también


memoria principal).

a) Apertura y cierre de ficheros

La apertura de un fichero (Abrir el fichero) es la


acción que permite iniciar un archivo y dejar todas
las condiciones preparadas para poder realizar
operaciones de lectura o de escritura sobre él. El
puntero del archivo se posiciona en la primera
componente.

En seudocódigo la sintaxis es como sigue:

Abrir “<nombre archivo>”

EJEMPLO

Apertura de archivos en seudocódigo

Abrir “Paises”

En Visual Basic 6.0 se utiliza la sentencia Open,


cuya forma general es la siguiente:
EDICIONES UAPA

Open filename For modo As # file No


donde:
 filename es el nombre del fichero a abrir. Será
una variable string o un nombre entre dobles
comillas (“ ”).
 modo para acceso secuencial existen tres
posibilidades: Input para leer, Output para escribir al
comienzo de un fichero y Append para escribir al
final de un fichero ya existente. Si se intenta abrir en
modo Input un fichero, que no existe, se produce un
error. Si se abre para escritura en modo Output un
fichero que no existe se crea, y si ya existía se borra
su contenido y se comienza a escribir desde el
principio. El modo Append es similar al modo
Output, pero respeta siempre el contenido previo del
fichero escribiendo a continuación de lo último que
haya sido escrito anteriormente.
 fileNo es un número entero (o una variable
con un valor entero) que se asigna a cada fichero
que se abre. En todas las operaciones sucesivas de
lectura y/o escritura se hará referencia a este fichero
por medio de este número. No puede haber dos
ficheros abiertos con el mismo número. Visual Basic
EDICIONES UAPA

dispone de una función llamada FreeFile que


devuelve un número no ocupado por ningún fichero.

Cerrar un fichero es la acción que permite finalizar


la sesión de trabajo con el archivo y dejar todas las
condiciones preparadas para operaciones futuras con
el mismo. La sintaxis en seudocódigo es como sigue:

Cerrar “<nombre archivo>”

EJEMPLO

Cierre de archivos en seudocódigo

Cerrar “Países”

b) Operaciones de entrada y salida con ficheros

 Leer del archivo o fichero.


La lectura de un fichero es la acción que transfiere
desde el archivo, el componente apuntado, hacia la
memoria. El puntero del archivo se mueve
automáticamente hasta la próxima componente. La
sintaxis en seudocódigo es la siguiente:
EDICIONES UAPA

Leer “<nombre archivo>”, <nombre variable>

EJEMPLO

Leer un archivo en la variable P

Leer “Países”, P

Existen varias formas de leer en un fichero de acceso


secuencial en Visual Basic. Por ejemplo, para leer el
valor de una o más variables se utilizan la sentencia
Input:

Input # fileNo, varName1, varName2, varName3, ...

Donde:
 fileNo es el número asignado al archivo al
abrirlo y varName1, varName2,... son los nombres de
las variables donde se guardarán los valores leídos
en el fichero.

Debe haber una correspondencia entre el orden y los


tipos de las variables en la lista, con los datos
EDICIONES UAPA

almacenados en el fichero. No se pueden leer


directamente vectores, matrices o estructuras.

La función Line Input # lee una línea completa del


archivo y devuelve su contenido como valor de
retorno. Su forma general es:

varString = Line Input #fileNo

Debe recordarse que en los ficheros de texto se


suele utilizar el carácter return (o Intro) para
delimitar las distintas líneas. Este es el carácter ASCII
nº 13, que por no ser un carácter imprimible se
representa en Visual Basic 6.0 como chr (13).

 Escribir en el archivo o fichero

Escribir es la acción que transfiere el contenido de la


variable de memoria hacia el archivo, en la posición
donde se encuentre el puntero del archivo. Este se
mueve automáticamente hasta la próxima
componente. La sintaxis en sudocódigo es la
siguiente:
EDICIONES UAPA

Escribir “<nombre archivo>”, <nombre variable>

EJEMPLO

Escribir los valores correspondientes a la


temperatura y el idioma.

Escribir “Países”, P.temperatura, P.idioma

En la mayoría de los lenguajes la declaración del


fichero determina el tipo de datos que se van a
almacenar en él. Cada uno de los valores que se
escribe en el archivo, es un nuevo artículo que se
agrega a él. El puntero se va desplazando hasta el fin
de fichero (EOF)
Artículo 1
Artículo 2
Artículo 3

EOF

La función de fin de fichero (EOF) es una función


lógica que retorna verdadero si el puntero del fichero
está al final del mismo y falso en cualquier otro caso.
EDICIONES UAPA

En caso negativo, por lo general, se usa con una


barra encima que significa no fin de fichero.

2.5.3 Tipos de ficheros

Los archivos o ficheros se clasifican según su uso en


tres grupos: los permanentes o maestros, los de
movimiento y los de maniobra o trabajo.

DE MANIOBRA O TRABAJO: ficheros con vida


limitada, normalmente menor que la duración de la
ejecución de un programa. Se utilizan como auxiliares
de los anteriores.

PERMANENTES O MAESTROS: ficheros que contienen


información que varía muy poco o no varían nunca,
durante el desarrollo de la aplicación. En algunos
casos es preciso actualizarlos periódicamente.

DE MOVIMIENTO: ficheros cuya tarea es actualizar


los archivos maestros. Sus registros son de tres tipos:
alta, bajas y modificaciones.
EDICIONES UAPA

Tanto en Windows como en Visual Basic 6.0


existen, principalmente, dos tipos de archivos:

1. Ficheros ASCII o ficheros de texto.


Contienen caracteres codificados según el
código ASCII y se pueden leer con cualquier
editor de texto como Notepad. Suelen tener
extensión *.txt o *.bat, pero también otras
como *.m para los programas de Matlab, *.c
para los ficheros fuente de C, *.cpp para los
ficheros fuente de C++ y *.java para los de
Java.

2. Ficheros binarios: Son ficheros imagen de


los datos o programas tal como están en la
memoria del ordenador. No son legibles
directamente por el usuario. Tienen la ventaja
de que ocupan menos espacio en disco y que
no se pierde tiempo y precisión cambiándolos
a formato ASCII al escribirlos y al leerlos en el
disco.
EDICIONES UAPA

El acceso a un fichero puede hacerse de tres formas


principales.

1. Acceso secuencial. Se leen y escriben los


datos como si se tratara de un libro: siempre a
continuación del anterior y sin posibilidad de
volver atrás o saltar datos. Si se quiere
acceder a un dato que está hacia la mitad de
un fichero, habrá que pasar primero por todos
los datos anteriores. Los ficheros de texto
tienen acceso secuencial.

2. Acceso aleatorio (random): Permiten


acceder directamente a un dato sin tener que
pasar por todos los demás, y pueden acceder
a la información en cualquier orden. Tienen la
limitación de que los datos están almacenados
en unas unidades o bloques que se llaman
registros, y que todos los registros que se
almacenan en un fichero deben ser del mismo
tamaño. Los ficheros de acceso aleatorio son
ficheros binarios.
EDICIONES UAPA

3. Acceso binario. Son como los de acceso


aleatorio, pero el acceso no se hace por
registros sino por bytes.

Con Visual Basic 6.0 se pueden leer tanto ficheros


ASCII como ficheros binarios. Además el acceso a un
fichero puede hacerse de las tres formas explicadas
anteriormente.

2.5.4 Algunas palabras claves para el tratamiento


de ficheros en Visual Basic.

Las palabras clave del lenguaje Visual Basic y los


miembros de las bibliotecas en tiempo de ejecución
están organizados por uso y propósito. A
continuación una tabla con algunas de las palabras
claves:

Acción Elemento del lenguaje


Tener acceso o crear un
FileOpen
archivo.
Cerrar archivos. FileClose, Reset
Controlar la apariencia de Format, Print, SPC, TAB,
los resultados. FileWidth
EDICIONES UAPA

Copiar un archivo. FileCopy


EOF, FileAttr,
Obtener información FileDateTime, FileLen,
acerca de un archivo. FreeFile, GetAttr, Loc,
LOF, Seek
Obtener o proporcionar
información de/al usuario
InputBox, MsgBox
por medio de un cuadro de
diálogo de control.
Administrar archivos. Dir, Kill, Lock, Unlock
FileGet, FileGetObject,
Leer de un archivo. Input, InputString,
LineInput
Devolver el tamaño de un
FileLen
archivo.
Establecer u obtener
FileAttr, GetAttr, SetAttr
atributos de un archivo.
Establecer la posición de
lectura/escritura en un Seek
archivo.
FilePut, FilePutObject,
Escribir en un archivo.
Print, Write, WriteLine
EDICIONES UAPA

(Funciones), Write,
WriteLine (Funciones)
RESUMEN DE LA UNIDAD 2.5

Muy importante en la programación es la entrada y


salida de datos que, en esencia, representa la
comunicación del hombre con la máquina. Todos los
lenguajes instrumentan sus procedimientos de lectura
escritura como se mostró en esta unidad. Para
confeccionar un programa en Visual Basic debe
tenerse en cuenta palabras clave que utiliza el mismo
para realizar los procesos asociados a la entrada-
salida.

Algunas definiciones importantes que fueron


estudiadas son las siguientes:
 Atributo: Es una característica identificativa de un
ente informático. Todo aquello que podemos
describir a través de características.
 Campo: Es el nombre que se le coloca a un dato
para identificar el atributo que está describiendo.
Ejemplo para el caso anterior: Nombre de la
persona, estatura, color de ojos, edad, etc.
EDICIONES UAPA

 Registro: Es un conjunto de campos. En cada


campo está consignado un dato y todos los datos
pertenecen o describen a un mismo ente
informático. El registro debe de poder ser
manejado como una sola unidad, es decir, que
todos los campos se encuentren en el mismo
lugar físico o lógico que permita ser manipulado
como un todo.
 Archivo: Es un conjunto de registros que tienen la
misma estructura y que puede ser manejado
como una sola unidad. Nótese que el hecho de
que se hable de registros con la misma estructura
quiere decir que tienen los mismos campos, pero
ello no significa que deban tener los mismos
datos.

También se estudiaron las principales operaciones a


realizar con los ficheros: apertura, cierre, lectura y
escritura.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 2.5

1. Confecciona un fichero con los datos que


considere de interés para tu grupo de estudiantes.
Nombra todos sus elementos. Utiliza los datos de
al menos 5 alumnos y con 5 campos como
mínimo. Lee el fichero en Visual Basic y muéstralo
en pantalla en orden alfabético del primer
apellido. Realiza otras salidas para comprobar el
sistema

2. Confecciona un programa que cree el archivo


de productos (Tienda) sobre disco, cuyos
componentes deben tener la estructura
siguiente:

Código

Descripción

Fecha de entrada

Precio Unitario

Cantidad
EDICIONES UAPA

Clave

Los datos necesarios para crear dicho archivo,


serán leídos desde el teclado. La clave puede ser
solo un carácter “E” o “P”.

Donde “E” indica que el producto es de fabricación


extranjera.

“P” indica que el producto se produce en el país.

3. Prepara un mapa conceptual relacionando los


principales conceptos asociados a la definición
de fichero.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 2.5

1. Sea un archivo de trabajadores que se


encuentra en disco y se desea que se emita
por la impresora un listado con el nombre y el
salario de todos los trabajadores. La estructura
del archivo es la siguiente:

Nombre trabajador Ocupación Salario Edad

Camila Profesor $300.00 29

María Secretaria $200.00 35

Manuel Profesor $400.00 56

2.- Hacer un programa en el cual se lea por el


teclado información sobre alumnos de un aula.
Para cada alumno se tendrán los siguientes
datos: Nombre, Edad, Sexo y Nota. Se desea
EDICIONES UAPA

almacenar dicha información en un archivo


llamado “Aula ”.

Cada vez que se teclee los datos de un


alumno se debe preguntar si se desea
introducir más datos o no. Si el usuario dice
que si, se le piden los datos a un nuevo
alumno. Si el usuario dice que no, termina el
programa.

Motivación de la próxima Unidad Didáctica

Dentro de las características de un buen programa de


computadoras están la portabilidad, la usabilidad, la
seguridad y la mantenibilidad. Nada de esto se logra
con los conocimientos que hemos adquirido en las
primeras unidades de este libro.

Lograr transferir el control de un programa hacia una


instrucción diferente a la que le corresponde por la
secuencia normal de ejecución, repetir varias una o
varias instrucciones desde un programa, según
requiera la solución de un problema o utilizar un
EDICIONES UAPA

fragmento de programa desde cualquier otro


programa principal, son facilidades que introducen los
lenguajes de programación y son parte de la
justificación del éxito que han alcanzado.

Un recorrido por las herramientas asociadas a los


lenguajes más usados en la actualidad, se ofrece en
la unidad que sigue y a partir de ejemplos, se tratarán
soluciones ingeniosas para distintas situaciones
típicas de la programación por computadoras.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD


2.5

1. Aprenda Visual Basic 6.0 como si estuviera en


primero. Javier García de Jalón • José Ignacio
Rodríguez • Alfonso Brazález. UNIVERSIDAD DE
NAVARRA.

2. Diseño y Administración de Base de Datos Gary


W. Hansen, James V. Hansen, Segunda Edición.

3. Estructura de Datos en Pascal, Autor Aarón M.


Tenenbaum, Moshe J. Augentein. Primera
edición.

4. Manual para el profesor. Lógica y algoritmos


(Parte II). Dr. A. Rosete, Dra. M. Delgado y otros.
Editorial Félix Varela. ISBN 959-258-581-4 OC.
Cuba
5. Monografía Visual Basic, localizable en
http://www.monografias.com/trabajos7/arch/arch.s
html

6. Seminario de Visual Basic Básico, Zuriel Correa,


Universidad de Puerto Rico Mayagüez
EDICIONES UAPA

UNIDAD III

Estructuras de Control
EDICIONES UAPA

Introducción orientaciones de la unidad

Las estructuras de control permiten modificar el flujo


de ejecución de las instrucciones de un programa.
Ello nos da la posibilidad de: tomar decisiones,
realizar acciones repetitivas etc., dependiendo de las
condiciones que las personas establezcan. Así
podemos hacer un script que nos salude cada día de
la semana de una manera diferente. O por ejemplo
hacer un script que nos pida la contraseña una y otra
vez hasta que suministremos la opción correcta.

Con las estructuras de control se puede:

 De acuerdo a una condición, ejecutar un grupo


u otro de instrucciones (If-Then-Else y Select-
Case)
 Ejecutar un grupo de instrucciones mientras
exista una condición (Do-While)
 Ejecutar un grupo de instrucciones hasta que
exista una condición (Do-Until)
 Ejecutar un grupo de instrucciones un número
determinado de veces (For-Next)
EDICIONES UAPA

 Etc.

Todas las estructuras de control tienen un punto


único de entrada y un punto único de salida. Se
pueden clasificar en:

Se pueden clasificar en

Todo ello posibilita que la programación se rija por los


principios de la programación estructurada.

Los lenguajes de programación modernos tienen


estructuras de control similares. Básicamente lo que
varía ligeramente entre las estructuras de control de
los diferentes lenguajes es su sintaxis. Cada lenguaje
tiene una sintaxis propia para expresar la estructura.
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.1


EJECUCIÓN SECUENCIAL. ESTRUCTURA DE
CONTROL

Objetivos

 Interpretar los conceptos básicos asociados a


las estructuras de control.
 Resolver problemas aplicando las estructuras
de control implementadas en un lenguaje de
programación.

Requisitos previos

 Manejar el formato de programación de


computadoras
 Manejar las funciones de entrada y salida en el
lenguaje de programación seleccionado.
 Manejar los conceptos básicos y las
operaciones con archivos.
EDICIONES UAPA

ESQUEMA DE CONTENIDO DE LA UNIDAD 3.1

3.1.1 Estructura de control secuencial.


3.1.2 Las condiciones.
3.1.3 Estructura de control de selección
3.1.4 Estructura de control de selección simple
3.1.5 Selectivas múltiples (anidadas)
EDICIONES UAPA

DESARROLLO DE CONTENIDO

Un programa puede ser ejecutado, como ya conocen,


de forma secuencial, es decir una sentencia o
instrucción después de otra. A partir de la primera
sentencia comienza la ejecución del programa y
continúa hasta la última (cada una de las
instrucciones se ejecuta una sola vez). Programar así
puede ser fácil y adecuado cuando se trata de
resolver problemas sencillos, pero para la resolución
de problemas de tipo general se necesita disponer de
alta capacidad para controlar el momento de ejecutar
una instrucción determinada.

El papel que juegan las estructuras de control o


construcciones de control es controlar la
secuencia o flujo de ejecución de las instrucciones.
Hay tres grandes categorías de estructuras de
control atendiendo a la función que realizan en el
control del flujo de ejecución del programa. Éstas
son:
 Secuencial
 Selección
 Anidadas
EDICIONES UAPA

El lenguaje Visual Basic 6.0 dispone de las


siguientes estructuras de control:

 If ... Then ... Else


 Select Case
 For ... Next
 Do ... Loop
 While … Wend
 For Each … Next

3.1.1 Estructura de control secuencial.


Se trata de una estructura de control secuencial
cuando una acción sigue a otra en estricta secuencia.
Las tareas se suceden de tal manera que el
resultado de la ejecución de una instrucción actúa
como entrada de la siguiente. En la práctica significa
escribir un paso del algoritmo detrás de otro, de tal
forma que el primer paso escrito será el que primero
que se ejecute.
EDICIONES UAPA

Diagrama de Bloques

Inicio

Seudocódigo
\Lee
rC
D
Inicio
E= C / D Leer C
Leer D
Imprimir E=C/D
E
Imprimir E
Fin

EJEMPLO
Lea el lado de un cuadrado, calcule su área y
muestre en pantalla al usuario el resultado del
cálculo realizado.

EJEMPLO
Ingrese los valores de C y D, calcule la división de
C entre D, y guárdelo en la variable E. Muestre su
valor por la impresora.
EDICIONES UAPA

SOLUCIÓN

Declaración de variables
REAL: lado, área
fin declaración de variables
inicio
mostrar por pantalla 'entre el lado del cuadrado'
leer del teclado la variable lado
área <-lado*lado
mostrar por pantalla 'el área del cuadrado es:'
mostrar por pantalla el contenido de la variable
área
Fin

NOTA:

Para hacer cosas relativas a entrada o salida por algún


dispositivo, como el teclado, la pantalla o la impresora, es
recomendable escribir textos como "mostrar por pantalla", o
"leer del teclado". Para mostrar el contenido de una variable,
señalar "mostrar por pantalla el contenido de la variable
tal", o escribir "mostrar por pantalla tal variable”.
EDICIONES UAPA

3.1.2 Las condiciones

Es conocido que la palabra condición da la idea de


expresiones como:
“Hoy resolveré el ejercicio si antes estudio la Unidad
didáctica completa”
A continuación se analizará en detalles esta
expresión.
 La afirmación “Hoy resolveré el ejercicio” NO
significa que en cualquier situación”lo
resolveré”.
 Queda claro que depende de una condición,
 Es decir, “resolveré el ejercicio” SI se cumple
la condición de “antes estudiar la Unidad
didáctica completa”,
 Estas son expresiones que se cumplen si
también se cumple una determinada condición.

La presencia de la palabra SI está indicando que hay


que tener en cuenta algo antes de ejecutar la acción.
Esta acción se realizará en unos casos si y en otros
no, dependiendo del cumplimiento o no de la
condición existente.
EDICIONES UAPA

El significado de la expresión "SI antes estudio…" es


el siguiente: De ser cierta esta expresión, es decir de
tener lugar, es determinante para realizar la acción
que se señala con el verbo “resolveré”. No siempre
se cumple, sino en dependencia del valor de verdad
de la expresión.

RECORDAR:
Una sentencia condicional se refiere a un tipo de instrucción
en la que una instrucción o grupo de instrucciones se pueden
ejecutar o no en función del cumplimiento de una condición.

Esto es la esencia de las estructuras de control que


se presentarán seguidamente: se EVALUA una
condición, y se actúa en consecuencia, en
dependencia de que la condición sea VERDADERA o
FALSA. El objetivo de las estructuras de control es ir
señalando el camino en que tienen que sucederse los
pasos de un algoritmo, el que ha sido diseñado para
resolver un problema concreto.
EDICIONES UAPA

EJEMPLO

Supongamos que acabamos de mostrar un mensaje en la pantalla que


pregunte al usuario "¿desea continuar la ejecución del programa?". La
respuesta Si o No a esta pregunta determina la continuación de la
ejecución del programa. Piense y escriba una solución en su cuaderno
de notas.

Un poco más complejo es la situación que se


presenta cuando deseamos cerrar un documento
Excel y nos aparece la pregunta:

"¿desea guardar los cambios efectuados en….?".

Seguramente en algunas ocasiones ha seleccionado


incorrectamente la respuesta a esta pregunta y las
consecuencias pueden ser desagradables. En este
caso se está en presencia de una estructura de
control. La ejecución de una acción u otra depende
de la respuesta dada a la condición. En este caso la
ejecución del programa tomará un camino u otro.
Aquí se está en presencia de una estructura de
control de selección.
EDICIONES UAPA

3.1.3 Estructura de control de selección


Las estructuras de control de selección o
condicionales, controlan si una sentencia o grupo de
sentencias se ejecutan, en función del cumplimiento o
no de una condición o expresión lógica.

Se utilizan las estructuras de control de selección,


cuando es necesario adoptar decisiones lógicas de
acuerdo a situaciones determinadas. En estos casos
se evalúa una condición y en función del resultado se
realiza una opción u otra. Las condiciones se
especifican usando expresiones lógicas. Las palabras
más usadas en seudocódigo para estos fines son if
… then… else.

Atendiendo al nivel de complejidad, las estructuras de


control de selección se clasifican en:

 simples
 dobles
 múltiples
EDICIONES UAPA

OBSERVAR:
Visual Basic tiene una estructura de control para la
selección denominada: if (If … Then …Else…End
If).

3.1.4 Estructura de control de selección simple


La condicional de selección simple se refiere a lo
siguiente:
“cuando la condición que se evalúa se cumple
entonces se define la ejecución de una secuencia de
instrucciones”.

Estas estructuras son las conocidos como "si...


entonces" (If…Then).

SI condición ENTONCES acción

La forma de utilizarla es la siguiente: se necesita


evaluar una condición, y si se cumple esta condición
(es decir, si es cierta), entonces se realizará una o
varias acciones (pasos). Lo anterior se puede
expresar de la manera que sigue:

SI se cumple la condición, ENTONCES:


Realizo el paso 1
EDICIONES UAPA

....
Realizo el paso N
fin del SI

Gráficamente puede reflejarse en


el esquema que se muestra.

Condición

Instrucciones

Instrucciones

EJEMPLO
Desarrolle en seudocódigo la expresión: “Si hoy me levanto
temprano podré ver el juego de beisbol.”

SOLUCIÓN
inicio
if hoy me levanto temprano then podré ver el juego
de beisbol
fin
EDICIONES UAPA

En seudocódigo se representa con la sentencia if –


then (si – entonces). Esta sentencia evalúa la
condición y si es verdadera ejecuta la acción de lo
contrario esta acción, no se realiza.

RECORDAR:

Las estructuras selectivas simples ejecutan una acción (o


grupo de acciones) cuando se cumple una determinada
condición.

Por ejemplo, queremos calcular la raíz cuadrada de


un número, pero sabemos que la raíz cuadrada de
un número negativo NO es un número real. Esto
quiere decir que, después de darle entrada al número
(leer el número), hay que analizar si es positivo, ya
que sólo en este caso es posible calcular su raíz
cuadrada.
EDICIONES UAPA

EJEMPLO
Calcule la raíz cuadrada de un número
SOLUCIÓN
Declaración de variables
REAL: numero, raíz
fin declaración de variables

inicio
mostrar por pantalla 'introduce un número'
leer del teclado la variable número
if número >= 0 then:
raíz <- raiz_cuadrada(número)
mostrar por pantalla 'la raíz cuadrada es:'
mostrar por pantalla raíz
fin del if
fin

RECORDAR:
Es importante cerrar el SI, ya que, si no se cumple la
condición, el programa seguirá a continuación de donde
termina este.

Como no se puede calcular la raíz cuadrada de un


número negativo es necesario preguntar cómo es el
número al que se le quiere calcular su raíz cuadrada
(si es negativo o positivo). En casos como este es
posible utilizar las estructuras selectivas dobles.

La extracción de raiz cuadrada raiz_cuadrada


(numero) es una función que aparece suministrada,
ello significa que el traductor tiene incorporada una
EDICIONES UAPA

función que calcula la raíz cuadrada (tiene definido un


código que calcula la raíz cuadrada de un número).
Las funciones y procedimientos serán definidas más
adelante.

Nota:
La forma en que se escriben la estructura de control de
selección simple en Visual Basic es la siguiente:

If condición Then sentencia1 y posee la misma lógica


interna de otros lenguajes:

IF Condición THEN

Selectiva doble.

Las estructuras de control selectivas dobles permiten


elegir entre dos opciones posibles, en función del
cumplimiento o no de una determinada condición. Se
ejecutará una u otra acción, es decir, son
mutuamente excluyentes. Si la condición es
verdadera, se ejecuta la acción 1 (o grupo de
acciones), si es falsa, se ejecuta la acción 2 (o grupo
de acciones).

La forma de usarla es la siguiente: queremos evaluar


una condición, SI es verdad, se realizan una serie de
pasos, y SI NO es verdad (es decir, si es falsa),
EDICIONES UAPA

entonces se realizan otra serie de pasos. Entonces


quedaría escrita de la forma siguiente:

SI se cumple la condicion ENTONCES:


Hago el paso A1
....
Hago el paso An
y SI NO se cumple la condicion ENTONCES:
Hago el paso B1
....
Hago el paso Bm

fin del SI

Programa

Instrucciones 1 Instrucciones 2

Programa
EDICIONES UAPA

La representación en seudocódigo es:

if condición then Conjunto de instrucciones 1 else


Conjunto de instrucciones 2

Con esto, el algoritmo para calcular la raíz cuadrada


de un número quedaría:

SI numero >= 0 ENTONCES:


raíz <- raiz_cuadrada(número)
mostrar por pantalla 'la raiz cuadrada es:'
mostrar por pantalla raíz
SI NO es número >=0 ENTONCES: {es decir, si
número es negativo}
mostrar por pantalla 'lo siento, no puedo calcular
la raíz cuadrada de un número negativo'
fin del SI, fin
EDICIONES UAPA

EJEMPLO

Calcule la raíz cuadrada de un número

SOLUCIÓN
Declaración de variables
REAL: numero, raíz
fin declaración de variables

inicio
mostrar por pantalla 'introduce un número'
leer del teclado la variable número
if NOT número >= 0 then:
raíz <- raíz_cuadrada(número)
mostrar por pantalla 'la raíz cuadrada es:'
mostrar por pantalla raíz
fin del if
fin

Los siguientes programas son también ejemplos


sencillos de sentencias de selección simple y doble
desarrollados en lenguaje C.
EDICIONES UAPA

En C o C++
Dado un número diga si es par o impar
#include <iostream.h>
void main()
{
int num;
cout <<"Introduzca número:";
cin >> num;
if ((num%2)==0)
{
cout << "PAR" << endl;
}
else
{
cout << "IMPAR" << endl;
}
}

Las sentencias if que se han visto hasta ahora,


implementan decisiones que implican una o dos
alternativas. Sin embargo, también es posible
utilizarlas para implementar decisiones que impliquen
varias alternativas. Estas son las llamadas decisiones
múltiples.
EDICIONES UAPA

3.1.5 Selectivas múltiples (anidadas)

En aquellos problemas donde un bloque condicional


incluye otro bloque condicional se dice que un bloque
está anidado dentro del otro. Son casos en los que
luego de tomar una decisión y marcar el camino
correspondiente a seguir, es necesario tomar otra
decisión. Dicho proceso puede repetirse numerosas
veces.

Visual Basic resuelve estas situaciones con la


implementación del IF de la forma siguiente:

If condicion Then sentencia(s) [Else sentencia(s)]


End If

El funcionamiento se describe de la siguiente forma:

Si condicion es True (verdadera), se ejecutan las


sentencias que están a continuación de Then, y si
condicion es False (falsa), se ejecutan las
sentencias que están a continuación de Else, si esta
cláusula ha sido especificada (pues es opcional).
Para indicar que se quiere ejecutar uno de varios
EDICIONES UAPA

bloques de sentencias dependientes cada uno de


ellos de una condición, la estructura es la siguiente:

If condicion1 Then sentencias1


Else If condicion2 Then sentencias2 Else
sentencia-n
End If

Representación en seudocódigo:

EJEMPLO: Sentencia if-else anidada


SOLUCIÓN
inicio
if (<expres_log>)
{
<secuencia de instrucciones>
}
else if (<expres_log>)
{
<secuencia de instrucciones>
}
else if (<expres_log>)
{
<secuencia de instrucciones>
}
else
{
<secuencia de instrucciones>
}
fin

En la práctica aparecen situaciones para cuya


solución es necesario incluir en los programas,
EDICIONES UAPA

alternativas con muchas opciones posibles. Lo


anterior conduce a anidar "si ... entonces ... si no",
pero si es un número elevado de alternativas, se
hace demasiado complejo y la lectura del programa
casi imposible.

La estructura de selección múltiple (case en


seudocódigo) evaluará una expresión que podrá
tomar n valores distintos 1, 2, , 4, …..n. Según sea
el valor en la condición, se realizará una de las n
acciones.

Por ejemplo, si queremos hacer un menú que dé a


elegir cuatro opciones, un posible algoritmo sería:

{Algoritmo MENÚ a base de ‘si... entonces... sino'}

Declaración de variables
ENTEROS: opción
fin declaración de variables
inicio
mostrar por pantalla 'menú de opciones:'
mostrar por pantalla '1. Diccionario de sinónimos'
EDICIONES UAPA

mostrar por pantalla '2. Diccionario de antónimos'


mostrar por pantalla '3. Buscar palabra'
mostrar por pantalla '4. Salir'
leer del teclado la variable opción
SI opción = 1 ENTONCES
{lo que corresponde a esta opción}
SI NO, ENTONCES
SI opción = 2 ENTONCES
{lo que corresponde a esta opción}
SI NO, ENTONCES
SI opción = 3 ENTONCES
{lo que corresponde a esta opción}
SI NO, ENTONCES
SI opción = 4 ENTONCES
{lo que corresponde a esta opción}
SI NO, ENTONCES
mostrar por pantalla 'opción incorrecta'
fin del SI
fin del SI
fin del SI
fin del SI
fin
EDICIONES UAPA

Evidentemente de esta forma queda algo complicada


la solución. Para la solución de problemas de este
tipo existe la selección múltiple que consiste en
atender una alternativa según corresponda.

En seudocódigo se escribe de esta manera


aproximadamente:

SEGÚN el valor de la variable o la expresión HACER


VALOR1: {las acciones que correspondan}
...
VALORN: {las acciones que correspondan}
por defecto: {las acciones que correspondan}
fin SEGÚN

Entonces, SEGÚN el valor de la variable opción, se


elige una alternativa, entre todas las posibles.

Es conveniente definir una opción por defecto, para el


caso en que ninguna alternativa se cumpla

Como ejemplo, veamos el menú anterior utilizando la


alternativa múltiple SEGÚN SEA opción HACER:

{Algoritmo MENÚ a base de 'según sea'}


Declaración de variables
EDICIONES UAPA

ENTEROS: opción
fin declaración de variables

inicio
mostrar por pantalla 'menú de opciones'
mostrar por pantalla '1. Diccionario de sinónimos'
mostrar por pantalla '2. Diccionario de antónimos'
mostrar por pantalla '3. Buscar palabra'
mostrar por pantalla '4. Salir'
leer del teclado la variable opción

SEGÚN SEA opción HACER:


opción = 1 : {lo que corresponde a esta opción}
opción = 2 : {lo que corresponde a esta opción}
opción = 3 : {lo que corresponde a esta opción}
opción = 4 : {lo que corresponde a esta opción}
por defecto: {mostrar un posible mensaje de
error}
fin SEGÚN
fin

De esta forma queda mucho más claro, no sólo para


quien programa, si no para cualquier persona que
EDICIONES UAPA

tuviera que leerlo; además, es una forma más simple


y elegante de manejar una alternativa múltiple.

Se puede simplificar el texto; es válido poner, dentro


del SEGÚN, lo siguiente:

SEGÚN SEA opción HACER:


1 : {lo que corresponda a esta opción}
2 : {lo que corresponda a esta opción}
3 : {lo que corresponda a esta opción}
4 : {lo que corresponda a esta opción}
por defecto: {mostrar un posible mensaje de
error}
fin SEGÚN

Visual Basic dispone de una instrucción para abordar


estas situaciones de manera relativamente fácil.

 SELECT CASE

Esta sentencia permite ejecutar una de entre varias


acciones en función del valor de una expresión.
EDICIONES UAPA

Es una alternativa a If ... Then ... ElseIf cuando se


compara la misma expresión con diferentes valores.
Su forma general es la siguiente:
Select Case expresión
Case etiq1[ sentencias 1]
Case etiq2[ sentencias 2]
Case Else sentencias n
End Select donde expresión es una expresión
numérica o alfanumérica, y etiq1, etiq2, ... pueden
adoptar las formas siguientes:
1. expresión
2. expresión To expresión
3. Is operador-de-relación expresión
4. combinación de las anteriores separadas por
comas

Un resumen sobre las estructuras básicas de los


algoritmos aparece a continuación.
EDICIONES UAPA
EDICIONES UAPA

RESUMEN DE LA UNIDAD 3.1

Esta unidad didáctica ha mostrado la importancia que


tiene el control del flujo de un programa para que
realice la tarea que le ha sido asignada. Aunque cada
lenguaje contiene pequeñas diferencias en las forma
de implementar las estructuras de control, hay varios
aspectos comunes para poder ejecutar un grupo u
otro de instrucciones (If-Then-Else y Select-Case), de
acuerdo a una condición previamente establecida por
el programador.

Todas las estructuras de control tienen un único


punto de entrada y un único punto de salida. Las
estructuras de control se puede clasificar en:
secuenciales, iterativas y de control avanzadas. Es
una de las herramientas que permite que la
programación se rija por los principios de la
programación estructurada, que significó un avance
notable en la teoría y la práctica de la programación
de computadora.

Hoy en día las aplicaciones informáticas son mucho


más ambiciosas que las necesidades de
EDICIONES UAPA

programación existentes en los años 60,


principalmente debido a las aplicaciones gráficas, por
lo que las técnicas de programación estructurada no
son suficientes. Ello ha llevado al desarrollo de
nuevas técnicas como la programación orientada a
objetos y el desarrollo de entornos de programación
que facilitan la programación de grandes
aplicaciones.

Los lenguajes de programación modernos tienen


estructuras de control similares. Básicamente lo que
varía entre las estructuras de control de los diferentes
lenguajes es su sintaxis. Cada lenguaje tiene una
sintaxis propia para expresar la estructura.

Es imposible comprender la esencia de la


programación si no se dominan adecuadamente las
estructuras de control, para seleccionar la que
corresponda, colocarla en lugar correcto y
consecuentemente escribir programas robustos y
eficientes.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 3.1

1. Analice con sus compañeros las diferencias


entre las distintas estructuras de control
estudiadas en la unidad.
2. Estudie el fragmento de programa. Explique la
tarea que resuelve y busque una solución
algorítmica con los conceptos explicados en
clase. Escriba en Visual Basic un programa
int mes;
int numeroDias;
...
switch (mes) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numeroDias = 31;
break; case 4:
case 6: case 9:
case 11: numeroDias = 30; break;
case 2: if ( ((año % 4 == 0) &&Java Dr. Juan
!(año Pedro==
% 100 Febles
0)) || año % 400 == 0) )
numeroDias = 29; else numeroDias = 28; break; }

3. Escriba un programa que asigne notas


basadas en la puntuación de un examen:
 un Sobresaliente para una puntuación del 90%
o superior,
EDICIONES UAPA

 un Notable para el 80% o superior y demás.


Utiliza las notas de tus compañeros de estudio
para hacer una comprobación real.

4. Determinar si un triangulo es: equilátero,


isósceles o escaleno, conociendo sus tres
lados (a, b, c).Escriba la solución en
seudocódigo.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 3.1

1. Construir un algoritmo tal, que dado como dato


la calificación de un alumno en un examen,
escriba "Aprobado" en caso que esa
calificación fuese mayor que 6.
2. Una vez leídos b y c, si c es mayor que b,
entonces asignar a b el valor de c y a
continuación asignar a c el valor del doble de
b.

3. Dado como dato la nota de un alumno en un


examen, escriba "Aprobado" si su nota es
mayor que 6 y "Suspenso" en caso contrario.

4. Determinar si un triangulo es: equilátero,


isósceles o escaleno, conociendo sus tres
lados (a, b, c).

5. Dados como datos la categoría, sueldo de un


trabajador y coeficiente de aumento, calcule en
una tabla el aumento correspondiente. Imprimir
la categoría del trabajador y el nuevo sueldo.
EDICIONES UAPA

Compare las soluciones dadas con los estudiantes de


su equipo y con el resto de los alumnos.
Motivación de la próxima Unidad Didáctica

Hasta ahora es posible resolver aquellos problemas


en que se modifica el flujo del programa sobre la
base de la evaluación de una condición determinada.
Existen situaciones en las que una o más
operaciones deben ser repetidas varias veces y
resultaría ineficiente y casi imposible repetir todas
esas veces el mismo segmento de programa. Las
estructuras de control repetitivas son aquellas que
auxilian al programador en la solución eficiente de
tareas de esta índole.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA
UNIDAD 3.1

1) Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición. Mc Graw – Hill, 2003.
2) Godino, J. D.: La formación matemática y
didáctica de maestros como campo de acción
e investigación para la didáctica de las
Matemáticas: el proyecto Edumat-Maestros.
Disponible en http://
3) Curso a distancia de Lógica de Programación.
Lic. María Isabel de Ribas-Rocafull Pérez.
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.2


ESTRUCTURAS DE CONTROL REPETITIVAS

Objetivos:

 Conocer los elementos básicos de las


estructuras repetitivas.
 Aplicar las estructuras repetitivas en la
solución de problemas

Requisitos previos:

 Identificar las estructuras de control


 Interpretar los conceptos básicos asociados
a las estructuras de control.
 Identificar cuándo aplicar las estructuras de
control

ESQUEMA DE CONTENIDO DE LA UNIDAD 3.2

3.2.1 Estructura mientras (While)


3.2.4 Estructura repetir hasta (do/while).
3.2.3 Estructuras desde/hasta (for).
3.2.4 La sentencia FOR... NEXT de Visual Basi
EDICIONES UAPA

DESARROLLO DE CONTENIDO

Las estructuras de control que repiten una secuencia


de instrucciones o sentencias un número
determinado de veces se llaman bucles, ciclos o
lazos, y se llama iteración al hecho de repetir la
ejecución de una secuencia de acciones.

Un LAZO o BUCLE (loop, en inglés) es un fragmento


de algoritmo cuyas instrucciones son repetidas un
cierto número de veces, mientras se cumple una
cierta condición que ha de ser claramente
especificada. La condición podrá ser verdadera o
falsa, y se comprobará en cada paso o iteración del
bucle.

Existen tres tipos de estructuras repetitivas básicas;

1. los bucles "mientras..." (o "while"),

2. los bucles "repetir... mientras que" (o "do...


while") y

3. los bucles "desde… hasta" (o "bucles for").


EDICIONES UAPA

En esta unidad didáctica aparecen varios ejemplos


que ayudarán a comprender estos tres tipos de
estructuras repetitivas.

Observar:

Estas estructuras contemplan tres conceptos claves:

Decisión: en ella se evalúa la condición y si esta es cierta, se


ejecutan las instrucciones que están dentro del bucle

Cuerpo del bucle (o ciclo): son las instrucciones que se


necesitan ejecutar varias veces.

Salida del bucle: es la condición que determina la salida del


bucle (es decir, cuando concluyen las repeticiones).

El bucle o ciclo se controla mediante una variable


denominada CONTADOR, cuyo valor se incrementa
o decrementa en una cantidad constante en cada
repetición del bucle que se realice.

También, en los ciclos o bucles con frecuencia está


presente otro tipo de variables llamadas
ACUMULADOR, cuya tarea es almacenar una
cantidad variable resultante de operaciones
EDICIONES UAPA

sucesivas y repetidas. La diferencia con el contador


es que el incremento/decremento es variable.

Las estructuras repetitivas se utilizan cuando es


necesario repetir varias veces un conjunto de
instrucciones del programa. A este proceso se le
llama ITERACIÓN.

ITERACIÓN: es cada una de las ejecuciones o repeticiones


de todas las instrucciones contenidas en el bucle o lazo.

3.2.1 Estructura mientras (While)

Sea el caso de un programa que debe REPETIR


algunas veces una o varias acciones. Por ejemplo,
escribir un texto un millón de veces, para un
comercial o un tipo cualquiera de propaganda. Sería
casi imposible realizarlo (indicar su ejecución en un
programa de computadora) si no existieran las
ESTRUCTURAS REPETITIVAS que nos auxilian en
estos propósitos.

La estructura algorítmica MIENTRAS es utilizada


para ejecutar un conjunto de instrucciones mientras
la condición evaluada sea verdadera.
EDICIONES UAPA

Este tipo de ciclo tiene la característica que la


condición es evaluada antes de ejecutar el ciclo o
bucle. Si la condición (expresión) es verdadera,
entonces se ejecuta el cuerpo del bucle. Este proceso
se repite mientras la condición sea verdadera.

La forma general de la instrucción MIENTRAS es la


siguiente:

Mientras (condición) hacer


acción 1
........
acción N
fin mientras

Si se realiza el ejemplo introductorio, quedaría:


EJEMPLO

Declaración de variables
ENTEROS: Contador
fin Declaración variables
inicio
Contador=1
mientras(Contador<=1000000) hacer
mostrar por pantalla ' Texto del mensaje)'
Contador = Contador+1
fin mientras
fin
EDICIONES UAPA

Deben ejecutarse todas las instrucciones del cuerpo


del bucle mientras el contador es menor o igual que
1000000. En el ejemplo indica que se mostrará por
pantalla el texto que se coloque, y se incrementa en 1
la variable Contador. Como Contador valía 1, si ahora
le sumo 1, ahora Contador vale 2 y así hasta llegar al
fin del mientras. Cuando el contador sea mayor que
1000000 significa que ya no se ejecutan más las
instrucciones del bucle y se sale de él.

Esto es: Tenemos que ver si Contador<=1.000.000.


Ahora, Contador valía 2, y se cumple que
2<=1.000.000, por lo que vuelve a mostrarse por
pantalla el texto y de nuevo se suma 1 al Contador, y
ahora, el Contador pasa a valer 3. De nuevo se llega
al fin del mientras y así se repite el proceso
sucesivamente hasta que Contador sobrepase al
millón y entonces termina el bucle.
EDICIONES UAPA

Observar:

Que la variable que lleva la cuenta de las veces que se


repite el bucle se le ha llamado CONTADOR para facilitar
su comprensión al relacionar su nombre con la función que
realiza.

Nota: Es necesario inicializar la variable Contador, porque no


sabemos qué valor tiene antes de iniciar el proceso y fíjese
que en la expresión Contador = Contador + 1 se tiene en
cuenta el valor anterior de Contador al que se le suma 1.

3.2.2 Estructura repetir hasta (do/while).

Esta instrucción provoca que el bucle se ejecute


hasta que se cumpla una condición determinada que
se comprueba al final del bucle. Esto hace que la
iteración se ejecute al menos una vez antes de que la
condición sea evaluada.

Aquí, lo que se desea es que un bucle se ejecute AL


MENOS UNA VEZ antes de comprobar la condición
de repetición. En ello radica la principal diferencia con
la estructura anterior (While).
EDICIONES UAPA

La forma general de la instrucción es:

repetir
acción 1
........
acción N
mientras que (condición)

Nota: Aquí no hace falta poner "fin del mientras", pues


la iteración termina cuando deja de cumplirse la condición lo
cual está indicado en: "mientras que (condición)".

.
Volvamos al ejemplo de la introducción para ver
cómo queda resuelto con este tipo de estructura:
EDICIONES UAPA

EJEMPLO

Declaración de variables
ENTEROS: Contador
fin Declaración variables
inicio
Contador=1
Repetir
mostrar por pantalla ' Texto'
Contador = Contador+1
mientras que (Contador<=1.000.000)
fin

Observar:
La diferencia fundamental entre las dos estructura
estudiadas anteriormente, es que en la segunda el ciclo o
bucle se ejecutará al menos una vez.

3.2.3 Estructuras desde/hasta (for).

La estructura desde/hasta (for) se utiliza cuando se


conoce con certeza, el número de veces que desea
repetir un ciclo. Esta estructura realiza
automáticamente el incremento de la variable
EDICIONES UAPA

CONTADOR de uno en uno y se inicia en la


instrucción desde en su inicio.

Esta estructura es adecuada para resolver


problemas como el ejemplo introductorio, como
veremos a continuación.

Su forma general o sintaxis es la siguiente:

desde Contador=Inicio hasta Contador=Fin [,


decrementar,] hacer

accion 1
........
accion N
fin desde

Esto es: Si Contador<Fin entonces se entra en el


ciclo y se ejecutan las acciones que se repiten hasta
que Contador>Fin. Obsérvese que Fin puede ser
cualquier número entero.

La palabra "decrementar" entre corchetes significa


que es opcional, es decir, que se puede poner o no.
Si NO se pone, por defecto se asume que en cada
EDICIONES UAPA

iteración se incrementa en 1 el contador, esto es


Contador =Contador+1

Si por ejemplo se coloca la expresión desde/hasta


de la forma:

desde contador= - 50 hasta contador=1, -1 hacer

accion 1
........
accion N
fin desde

Significa que se hace un decremento de 1 (se le


suma -1) al contador, es decir, cada vez que termina
una acción del ciclo la variable contador se
decrementa en 1. En este caso el ciclo se repite
hasta que el contador llegue a valer - 50.

La mayoría de los lenguajes de programación


instrumentan la estructura for de manera parecida

Apliquemos esta estructura al ejemplo introductorio:


EDICIONES UAPA

EJEMPLO

Declaración de variables
ENTEROS: contador
fin Declaración variables
inicio
desde contador=1 hasta contador=1.000.000 hacer
mostrar por pantalla 'Texto'
fin desde
Fin

Observar:

 no hace falta asignar el valor 1 a contador fuera del


bucle, pues la inicialización del contador está
contemplada en la propia estructura al inicio

 el incremento del contador también está contemplada en


la propia instrucción desde/hasta

 se asume que incrementamos de 1 en 1 el valor de la


variable Contador.

El mismo ejemplo usando decremento quedaría así:


EDICIONES UAPA

EJEMPLO

Declaración de variables
ENTEROS: contador
fin Declaración variables
inicio
desde contador=-1.000.000 hasta contador=1 ,
decrementar, hacer
mostrar por pantalla 'Texto)'
fin desde
fin

Nota: En todos los ejemplos anteriores el contador se ha tratado


como una variable entera, así como el incremento/decremento.

3.2.5 La sentencia FOR... NEXT de Visual Basic


.

En Visual Basic se utiliza la sentencia FOR… NEXT.


Esta sentencia, similar al For, visto anteriormente,
origina un lazo o bucle, y permite ejecutar un
conjunto de sentencias una cantidad determinada de
veces. Su forma general es:
EDICIONES UAPA

For variable = expresión1 To expresión2 [Step


expresión3] [sentencias]
Exit For [sentencias]
Next [variable]

Cuando se ejecuta una sentencia For, primero se


asigna el valor de la expresión1 a la variable y se
comprueba si su valor es mayor o menor que la
expresión2. En caso de ser menor se ejecutan las
sentencias, y en caso de ser mayor el control del
programa salta a las líneas a continuación de Next.
Todo esto sucede en caso de ser la expresion3
positiva. En caso contrario se ejecutarán las
sentencias cuando la variable sea mayor que
expresión2. Una vez ejecutadas las sentencias, la
variable se incrementa en el valor de la expresión3,
o en 1 si Step no se especifica, volviéndose a
efectuar la comparación entre la variable y la
expresión2, y así sucesivamente.
La sentencia Exit For es opcional y permite salir de
un bucle For ... Next antes de que éste finalice.
EDICIONES UAPA

EJEMPLO

MyString="Matemática"
For Words = 3 To 1 Step -1 ' 3 veces decrementando de 1 en 1
For Chars = Words To Words+4 ' 5 veces.
MyString = MyString & Chars ' Se añade el número Chars al
string.
Next Chars ' Se incrementa el contador
MyString = MyString & " " ' Se añade un espacio.
Next Words ' El valor de MyString es: Matemática 34567
23456 12345

Nota: Las instrucciones condicionales constituyen, junto con


los ciclos, son los pilares de la programación estructurada.

.
EDICIONES UAPA

RESUMEN DE LA UNIDAD 3.2

Como se ha estudiado, las estructuras de control


permiten modificar el flujo de ejecución de las
instrucciones de un programa, lo cual es
imprescindible para resolver la mayoría de los
problemas de la vida real. Las estructuras de control
repetitivas, bien utilizadas resultan muy potentes para
el programador quien puede hacer uso de una
estructura formalizada para:

 Ejecutar un grupo de sentencias mientras


exista una condición (Do-While)
 Ejecutar un grupo de sentencias hasta que
exista una condición (Do-Until)
 Ejecutar un grupo de sentencias un número
determinado de veces (For-Next)
 Otras situaciones de este carácter

Todos lenguajes de programación modernos tienen


estructuras de control bastante similares.
Básicamente lo que varía entre las estructuras de
control de los diferentes lenguajes es su sintaxis.
Cada lenguaje tiene una sintaxis propia para expresar
la estructura.
EDICIONES UAPA

Si realizas con detenimiento las actividades que se te


indican, podrás comparar lenguajes de mucha
importancia como Java y C++. Estos análisis te
preparan para tu vida como futuro programador

Los ejercicios de autoevaluación siguientes podrás


resolverlos en cualquier lenguaje de programación
que estés estudiando. Lo más aconsejable, de
acuerdo a la etapa de formación en que te
encuentras, es resolverlo con más de uno y
examinar las diferencias.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 3.2

1. Estudia el fragmento de programa que aparece


a continuación. Analiza qué proceso realiza.
¿Por qué es necesario iniciar la variable
suma? ¿Por qué la variable suma se imprime
fuera del ciclo? Haz los cálculos con diferentes
juegos de datos.


Variables: Suma, A, L
Suma = 0
Inicio
Desde L=1 Hasta L=20 Hacer
Leer A
Suma=Suma + A

Fin_Desde
Escribir “La suma de los números
es: “,Suma
Fin_Inicio
EDICIONES UAPA

2. Dados 25 alumnos de un grupo determinar cuántos


están aprobados y cuantos suspensos. Hacer el
seudocódigo correspondiente. Intente hacer el
programa en Visual Basic.

Variables: L, nota, susp, aprob


Inicio
Aprob=0, susp=0
Desde L=1 Hasta L=25 Hacer
Leer nota
Si nota>=60 Entonces
aprob=aprob + 1
Sino
susp=susp +1
Fin_Si
Próximo L
Fin_Desde

Escribir “La cantidad de aprobados es: “,


aprob
Escribir “La cantidad de suspensos es: “, susp
Fin_Inicio
EDICIONES UAPA

3. Dadas las edades y los sexos de un grupo de


estudiantes, determine:
a. Cantidad de estudiantes cuya edad es
menor que 18.
b. Edad promedio del grupo.
c. Edad de la persona más vieja y de la
más joven.
d. El % de hombres y mujeres con
respecto al total de estudiantes del
grupo.

4.- Sobre los miembros de un equipo de basketball se


conoce la siguiente información: número de la
camiseta, estatura, cantidad de canastas y cantidad
de tiros libres. Se desea:

e. Determinar cuál fue el atleta que más


canastas encestó.
f. Crear e imprimir una lista los números
de los atletas con estatura menor que
la requerida.
g. Imprimir una lista ordenada de forma
descendente con los números de los
atletas y sus tiros libres.
EDICIONES UAPA

5.- De un grupo de investigadores se tiene su código


de identificación (una letra), su edad y años de
experiencia. Se desea:
h. La edad promedio del grupo.
i. El investigador de mayor experiencia.
j. Visualizar los códigos de los
investigadores con más de cierta
cantidad de años de experiencia
ordenados ascendentemente por la
cantidad de años de experiencia.

6.- En una empresa, de cada trabajador, se conoce


como dato su código (número de identificación entre
1 y 200), el salario y el sexo:
k. Calcula cuánto gasta la empresa por
concepto de salario.
l. Calcula el salario promedio de las
mujeres.
m. Formar un conjunto con las mujeres
que reciben menos de $200.00
ordenadas descendentemente por
salario.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 3.2

1. Leer 12 números y obtener sus cubos y su


cuarta parte empleando los ciclos: “PARA”… y
ciclo “MIENTRAS”

2. Calcular el área de varios triángulos. Tenga en


cuenta que el proceso se hará mientras la
base y la altura sean mayor de cero.

3. Hacer un programa que lea 40 números y de


como resultado la suma al cuadrado de todos.

En todos los casos preparar el algoritmo


correspondiente.

Motivación de la próxima Unidad Didáctica

Ya conocemos como realizar un fragmento que se


repite varias veces dentro del programa. Las
estructuras de control repetitivas nos resuelven este
problema para un mismo programa. Pero la
programación avanzó tan rápidamente en el tiempo
EDICIONES UAPA

que se presentó una nueva situación. Utilizar un


fragmento de programa por varios programas
principales.

Esta necesidad dio origen a una tendencia en la


programación que es el uso de componentes
reutilizables, es decir elementos de un programa que
pueden ser usados con más de un paquete de
software.

Las aplicaciones informáticas que habitualmente se


utilizan, incluso a nivel de informática personal,
suelen contener decenas y aún cientos de miles de
líneas de código fuente. A medida que los programas
se van desarrollando y aumentan de tamaño, se
convertirían rápidamente en sistemas poco
manejables si no fuera por la modularización, que es
el proceso consistente en dividir un programa muy
grande en una serie de módulos mucho más
pequeños y manejables. A estos módulos se les
suele denominar de distintas formas (subprogramas,
subrutinas, procedimientos, funciones, etc.) según los
distintos lenguajes. Sea cual sea la nomenclatura, la
idea es sin embargo siempre la misma: dividir un
programa grande en un conjunto de subprogramas o
EDICIONES UAPA

funciones más pequeñas que son llamadas por el


programa principal; éstas a su vez llaman a otras
funciones más específicas y así sucesivamente.

Todos los lenguajes de programación poseen


funciones predefinidas y a su vez ofrecen
herramientas para que el programador pueda escribir
sus propias funciones. La siguiente unidad didáctica
los introducirá en los conceptos básicos de las
funciones en la programación por computadoras
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA
UNIDAD 3.2

1) Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición. Mc Graw – Hill, 2003.
2) Godino, J. D.: La formación matemática y
didáctica de maestros como campo de acción
e investigación para la didáctica de las
Matemáticas: el proyecto Edumat-Maestros.
Disponible en http://
3) Curso a distancia de Lógica de Programación.
Lic. María Isabel de Ribas-Rocafull Pérez.
4) Petroutsos, Evangelos. Visual Basic 6.
Anaya, España.
5) www.lawebdelprogramador.com
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.3


FUNCIONES

Objetivos

 Conocer los elementos básicos que caracterizan


las funciones en los lenguajes de programación
 Manejar las funciones como facilidad de los
lenguajes de programación
 Identificar cuando es recomendable utilizar una
función en un programa

Requisitos previos

 Conocer la funcionalidad y las herramientas del


lenguaje de programación.
 Conocer la definición de variables, constantes y
datos.
 Manejar el formato de programación
 Manejar las funciones de entrada y salida

ESQUEMA DE CONTENIDO DE LA UNIDAD 3.3

3.3.1 Función
3.3.2 Llamada a una función
3.3.3 Declaración de las variables
EDICIONES UAPA

DESARROLLO DE CONTENIDO

Una función matemática puede definirse como la


aplicación de una REGLA o CRITERIO para obtener
un resultado a partir de valores ya existentes. Este
concepto se ha trasladado así al campo de la
informática.

El concepto de función en un programa de


computadora, puede interpretarse como algo similar a
una caja negra en la cual se introducen datos, en ella
ocurre “algo” y posteriormente de esa caja negra
sale un resultado. Ese resultado también se llama
producto.

Lo que ocurra dentro de esa "caja negra" lo sabe


casi completamente su realizador, de lo contrario,
resulta muy difícil saber los procesos que en ella se
realizan.

Para poder usar la función sólo es necesario saber


qué datos de entrada admite, y de qué tipo será el
resultado. Es necesario destacar un detalle
importante: las funciones devuelven un UNICO
VALOR y este valor está asociado al nombre de
EDICIONES UAPA

función (es decir, el nombre de la función es el que se


le asigna al valor producto de la operación realizada).

Por ejemplo; dentro de un programa, puede


necesitarse calcular la media aritmética de una serie
de datos. Pero puede suceder que más adelante
haga falta volver a calcular la media aritmética de
otros datos, y más adelante, otra vez. ¿Vamos a
escribir el programa tantas veces como se necesite
hacer esos cálculos similares? ¿No sería más lógico
definir un programa que se encargue de realizar esos
cálculos las veces que sea necesario? Esto se puede
lograr definiendo un programa llamado función, que
será llamado cuantas veces se necesite.

Las aplicaciones informáticas se fueron haciendo


cada vez más grandes. La cantidad de instrucciones
necesarias para resolver los problemas siempre
crecientes resultaba muchas veces inmanejable por
los usuarios. La modularización fue una solución a
este problema. La modularización es el proceso de
aplicar el principio de divide y vencerás a los
programas. Se divide el programa en pequeños
subprogramas más pequeños y manejables.
EDICIONES UAPA

3.3.1 Función
La división de un programa en unidades más
pequeñas o funciones presenta, entre otras, las
ventajas siguientes:
1. Modularización. Cada función tiene una
misión muy concreta; además, una misma
función (por ejemplo, un producto de matrices,
una resolución de un sistema de ecuaciones
lineales,...) puede ser llamada muchas veces
en un mismo programa, e incluso puede ser
reutilizada por otros programas.
2. Ahorro de memoria y tiempo de
desarrollo. En la medida en que una misma
función es utilizada muchas veces, el número
total de instrucciones del programa disminuye,
y también lo hace la probabilidad de introducir
errores.
3. Independencia de datos y ocultamiento
de información. Es muy frecuente que al
hacer una modificación para añadir una
funcionalidad o corregir un error, se
introduzcan nuevos errores en partes del
programa que antes funcionaban
correctamente. Una función es capaz de lograr
EDICIONES UAPA

una gran independencia con el resto del


programa, manteniendo sus propios datos y
definiendo muy claramente la interfaz o
comunicación con la función que la ha llamado
y con las funciones a las que llama, y no
teniendo ninguna posibilidad de acceso a la
información que no le compete.

Una función se puede definir como un bloque de


instrucciones que realizan una tarea específica la
cual se maneja como una unidad lógica. La función
regresa un valor de acuerdo al proceso que realice.
El subdividir los programas en funciones tiene
también la ventaja de que estas funciones pueden ser
reutilizadas por otros programas.

De manera general la sintaxis de una función es


como sigue:
funcion NOMBRE (arg1,...,argN) : TIPO
variables
......... {se declaran}

accion1
.......
EDICIONES UAPA

accionN
Valor  resultado
fin funcion

Observar

 TIPO es el tipo de dato que devolverá la función

 NOMBRE es la palabra con que se identifica la


función. Cada función tiene un nombre único

 accion1... acción es el conjunto de tareas que debe


ejecutar la función.

 Resultado que se obtiene al ejecutar la función.

Para usar una función es necesario llamarla de


alguna manera. Las funciones se identifican con un
nombre para reconocerla y llamarla.

3.3.2 Llamada a una función

Como hemos dicho, una función se llama por la


variable que hace las veces de nombre. Esta variable
debe estar definida en la declaración de variables y
EDICIONES UAPA

debe ser del MISMO tipo del que devuelva la función.


La manera más común de hacerlo es la siguiente:

Variable = Nombre_Funcion(arg1, ..., argN)

El nombre de la función es la palabra con la que se


identificará la función. Con una llamada a ese
nombre, en cualquier otra parte del programa, se
pueden ejecutar los enunciados contenidos en la
función. A esto se le conoce como la llamada de la
función. Cuando se llama la función se le pasan los
parámetros con los que va a trabajar. Una función
puede ser llamada desde el interior de otra función.

Con una llamada a una función (por ejemplo la


definida anteriormente) ocurre lo siguiente:

 Se llama a la función Nombre_Funcion(arg1,


..., argN),

 se le pasan los parámetros arg1, ..., argN;

 se ejecutan las instrucciones de la función,


hasta que llega al final, momento en que
devuelve un valor, que se asigna a la variable
que aparece a la izquierda.
EDICIONES UAPA

EJEMPLO

Realice un programa que calcule, en varios puntos, la media


aritmética de los N primeros números naturales. El valor de N
varía según el programa lo necesita.

Solución:

1. Hacer una función que simplifique el trabajo.


2. Definir qué parámetros necesita la función para trabajar
3. Definir qué tipo de valor va a devolver y,
4. Cómo se resuelve el problema.

funcion Media_N_Naturales(ENTERO N) : REAL

variables

ENTERO : Suma,i
REAL Media
Suma = 0
desde i=1 hasta i=N hacer
Suma = Suma+i
Media = Suma/N
fin función
EDICIONES UAPA

EJEMPLO

Realiza un programa que use la función anterior.

Solución:

Declaración variables
ENTEROS: N
Real: Media
fin declaración variables
inicio
desde N=1 hasta N=200 hacer
Resultado = Media _N_Naturales(N);
mostrar por pantalla ('La Media de los ',N,' primeros
naturales es ',Resultado)
fin desde
fin

3.3.3 Declaración de las variables

Es un conjunto de variables separados por comas y


con un tipo de dato específico que reciben los valores
de los argumentos cuando se llama a la función.

Cada función, o cada procedimiento, puede tener,


dentro de su sección de declaración de variables, sus
propias variables, aunque se llamen igual que las de
EDICIONES UAPA

la función más externa, puesto que, al declarar una


función, las variables que usa son LOCALES, es
decir, sólo ella sabe que existen y, por tanto, sólo ella
puede usarlas.

Las variables GLOBALES, que se declaran en una


sección VARIABLES GLOBALES, son reconocidas
por cualquier función o procedimiento que exista
dentro del programa. Cualquier acción puede
modificar su valor en cualquier momento.

Nota:
En caso de que exista una variable global que tiene el mismo
nombre que una variable local en una función, se usa la
variable que es local a la función.

Nota:
Es conveniente escribir justo antes de la definición, un
comentario sobre:
 qué hace la función,
 para qué sirven los parámetros que vamos a pasarle,
 y qué resultado devuelve.

Hay que distinguir entre lo que se llama parámetros


FORMALES y parámetros ACTUALES.
EDICIONES UAPA

CABECERA DE LA FUNCIÓN: línea donde pone su


nombre, los argumentos que recibe y el tipo de valor que
devuelve.

Cuando definimos una función, en su CABECERA


aparecen nombrados los argumentos. El valor que se
define como los argumentos es lo que se llama
parámetros formales. Pero, cuando se llama la
función, por ejemplo, Suma_N_Naturales (27), se le
está pasando el parámetro concreto 27: a estos
parámetros se les llama parámetros actuales.

Las funciones en Visual Basic

La sintaxis correspondiente a una función en Visual


Basic es la siguiente:

[Static] [Private] Function nombre


([parámetros]) [As tipo][sentencias][ nombre =
expresion]
[Exit Function][ sentencias] [ nombre =
expresion]
End Function
EDICIONES UAPA

Observar

 Nombre: Es el nombre de la función.


 As Tipo: Se usa para especificar el tipo (Integer,
Long, single, Double, urrency, String o Variant).
 Parámetros: Son los argumentos que son pasados
cuando se llama a la función.
 Exit Function: Permite salir de una función antes de
que esta finalice y devuelve el control a la sentencia
siguiente a la que efectuó la llamada.
 End Function: Marca el final del código de la función
y devuelve el control a la sentencia siguiente a la
que efectuó la llamada.

Visual Basic asigna el valor de cada argumento en la


llamada al parámetro que ocupa su misma posición.
Si no se indica un tipo determinado los argumentos
son Variant por defecto. Como se verá en un tópico
posterior, los argumentos pueden ser pasados por
referencia o por valor.

El nombre de la función, que es el valor de retorno,


actúa como una variable dentro del cuerpo de la
función. El valor de la variable expresión es
almacenado en el propio nombre de la función. Si no
EDICIONES UAPA

se efectúa esta asignación, el resultado devuelto será


0, si la función es numérica, nulo ("") si la función es
de caracteres, o Empty si la función es Variant.

La llamada a una función se hace de diversas


formas. Por ejemplo, una de las más usuales es la
siguiente:

Variable = nombre ([argumentos])

Donde argumentos es una lista de constantes,


variables o expresiones separadas por comas que
son pasadas a la función. En principio, el número de
argumentos debe ser igual al número de parámetros
de la función. Los tipos de argumentos deben
coincidir con los tipos de sus correspondientes
parámetros, de lo contrario puede haber fallos
importantes en la ejecución del programa. Esta regla
no rige si los argumentos se pasan por valor
(concepto que se verá más adelante).

EJEMPLO
EDICIONES UAPA

Escriba una función que devuelva como resultado la raíz


cuadrada de un número K:

Solucion:

Function Raiz (K As Double) As Double


If K < 0 Then
Exit Function
Else
Raiz = Sqr(K)
End Function

La llamada a esta función se hace de la forma siguiente:


RC = Raiz(Num)

Nota:
En cada llamada a una función hay que incluir los
paréntesis, aunque ésta no tenga argumentos.

A diferencia de C y C++ en Visual Basic 6.0, no es


necesario devolver explícitamente el valor de retorno,
pues el nombre de la función ya contiene el valor que
se desea devolver. Tampoco es necesario declarar
las funciones antes de llamarlas.
EDICIONES UAPA

RESUMEN DE LA UNIDAD 3.3

Los conceptos actividades y ejercicios de esta unidad


tratan de descifrar la caja negra que constituye las
funciones dentro de la programación de
computadoras.

Debe insistirse en el sentido abstracto de esta


declaración en la cual establecemos como debe
realizarse el proceso, pero no indicamos la ejecución
de dicho proceso.

El proceso que hemos descrito se le reconoce con el


nombre de transferencia de parámetros por valor. Es
importante notar que las variables empleadas en el
llamado no se alteran en la exterior a la función, aún
cuando dentro de la función se le asigne otro valor.
Esta protección es muy necesaria, dado que no es,
en general, conveniente, que al llamar una función se
alteren los valores de los parámetros empleados en
la invocación.

Solamente, cabe destacar la presencia de


declaraciones de variables de uso interno a la
función, los cuales solamente tienen validez dentro
EDICIONES UAPA

de ellas y a las cuales no se tiene acceso directo


desde el exterior.

ACTIVIDADES DE LA UNIDAD 3.3

1. Convierte en funciones los siguientes


ejercicios, algunos de los cuales fueron
propuestos en la unidad temática anterior.

 Escribe un algoritmo que calcule la nota


promedio de un número determinado de
alumnos.
 Escribe un algoritmo que muestre por pantalla
las tablas de multiplicar del 1 al 10. Usa bucles
anidados.
 Escribe un algoritmo para calcular la suma de
los cuadrados menos la media aritmética de N
números.
 Escribe un algoritmo para el mayor de M
números enteros.

2. Confeccionar una función para calcular la


expresión siguiente:
EDICIONES UAPA

Donde x es un número real y n un número natural.

3. Dada una matriz cuadrada confeccionar una


función para cada una de los incisos
siguientes:
a) Obtener la sumatoria de los elementos de la
diagonal opuesta a la diagonal principal.
b) Obtener el mayor elemento de una fila o
columna dada.
c) Obtener un index de solo lectura que permita
obtener el elemento que se encuentra en la
décima posición.

4. Escribir una función que permita representar


figuras geométricas del plano, cuadrados,
rectángulos y triángulos y permite mover las
figuras, calcular área, perímetro y/o longitud
según sea el caso.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE
LA UNIDAD 3.3

1. Escribir una función que devuelva como


resultado el área de un círculo
Área = 3.1416 * R².

2. Escribir una función que devuelva como


resultado el área de un triángulo en función de
las longitudes de sus lados.

3. Escribir una función que devuelva como


resultado el promedio de los primeros K
números naturales.

4. Escribir una función que devuelva como


resultado la suma de los primeros M números
pares.

Motivación de la próxima Unidad Didáctica

Hemos visto que las funciones son tipos de módulos


que devuelven como resultado un valor, y son
invocadas a través de su nombre y siempre como
EDICIONES UAPA

parte de una instrucción. Los procedimientos son otro


tipo de módulo que no devuelve ningún valor, sino
que están diseñados para realizar una tarea.

En Visual Basic 6.0 se distingue entre funciones y


procedimientos Sub. En ocasiones se utiliza la
palabra genérica procedimiento para ambos. La
fundamental diferencia entre un procedimiento Sub
y una función es que ésta última puede ser utilizada
en una expresión porque tiene un valor de retorno.
El valor de retorno ocupa el lugar de la llamada a la
función donde ésta aparece. Por ejemplo, si en una
expresión aparece sin(x) se calcula el seno de la
variable x, y el resultado es el valor de retorno que
sustituye a sin(x) en la expresión en la que aparecía.
Por tanto, las funciones devuelven valores, a
diferencia de los procedimientos que no devuelven
ningún valor, y por tanto no pueden ser utilizadas en
expresiones. Un procedimiento Sub es un segmento
de código independiente del resto, que una vez
llamado por el programa, ejecuta un número
determinado de instrucciones, sin necesidad de
devolver ningún valor (puede dar resultados
EDICIONES UAPA

modificando los argumentos), mientras que una


función siempre tendrá un valor de retorno.

Piense por ejemplo en que tenemos un valor de X y


queremos mostrar en pantalla el seno de X y el
coseno de X. Para estos casos usaremos los
procedimientos que serán explicados en la siguiente
Unidad Didáctica.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA UNIDAD


3.3

1) Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición. Mc Graw – Hill, 2003.
2) Godino, J. D.: La formación matemática y
didáctica de maestros como campo de acción
e investigación para la didáctica de las
Matemáticas: el proyecto Edumat-Maestros.
Disponible en http://
3) Curso a distancia de Lógica de Programación.
Lic. María Isabel de Ribas-Rocafull Pérez.
4) Petroutsos, Evangelos. Visual Basic 6.
Anaya, España.
5) www.lawebdelprogramador.com
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.4


Procedimientos

Objetivos:
 Conocer los elementos básicos que caracterizan
los procedimientos en los lenguajes de
programación
 Manejar los procedimientos como facilidad de los
lenguajes de programación
 Identificar cuando es recomendable utilizar un
procedimiento en un programa.
 Comprender el proceso recursivo.
Prerrequisitos
 Tener habilidades para el trabajo con funciones
 Conocer la funcionalidad y las herramientas del
lenguaje de programación.
 Conocer la definición de dato, variable y
constante.
 Manejar las funciones de entrada y salida.
EDICIONES UAPA

ESQUEMA DE CONTENIDO DE LA UNIDAD 3.4

3.4.1 Los Procedimientos.


3.4.2 El procedimiento en Visual Basic: El
Procedimientos Sub.
3.4.3 Argumentos por referencia y por valor.
3.4.4 Los Métodos.
3.4.5 Ventanas Immediate, Locals y Watches
3.4.6 La Recursividad.
EDICIONES UAPA

DESARROLLO DE CONTENIDO

La programación modular facilita la descomposición


de un problema en un conjunto de subproblemas
independientes entre sí, más sencillos de resolver y
que pueden ser tratados separadamente unos de
otros. La modularidad facilita el desarrollo de las
pruebas de los subprogramas o módulos, de manera
independiente, depurándose sus errores antes de su
inclusión en el programa principal y de almacenarlos
para su posterior utilización cuantas veces se precise.
En la unidad temática anterior se estudiaron las
funciones como una de las formas de modularización
de un programa. En esta se estudiarán los
procedimientos.

Los procedimientos son subprogramas, es decir,


módulos que forman parte de un programa y realizan
una tarea específica.

La programación estructurada trata de dividir el


programa en bloques más pequeños, buscando más
comodidad a la hora de programar y de corregir o
EDICIONES UAPA

ampliar un programa. Una forma de dividirlo es


creando Funciones y/o Procedimientos.

3.4.1 Los Procedimientos


Un procedimiento es un subprograma que realiza
una tarea específica. Para invocarlo, es decir, para
hacer que se ejecute, basta con escribir su nombre
en el cuerpo de otro procedimiento o en el programa
principal. Es importante tener muy en cuenta que su
declaración debe hacerse antes de que el
procedimiento sea llamado por otro módulo.

Los procedimientos se diferencian de las funciones


en que los parámetros de llamada pueden ser
modificados, si así se especifica dentro del
procedimiento, y en ese sentido se puede interpretar
como que devuelven valores.

PROCEDIMIENTO: subprograma que ejecuta ciertas


acciones sin tener ningún valor de retorno asociado a su
nombre.

Un procedimiento puede tener sus propias variables


que se declaran en la sección de declaración de
variables del propio procedimiento. Se llaman
EDICIONES UAPA

variables locales. Cada vez que el procedimiento es


llamado se crea la zona de memoria para estas
variables y se borran al salir. Es de destacar que las
variables locales para un procedimiento sólo se
pueden usar en el cuerpo del procedimiento y no en
el cuerpo principal del programa.
Los procedimientos son normalmente llamados desde
el algoritmo principal mediante su nombre y una lista
de parámetros actuales (como las funciones) a través
de una instrucción específica:

LLAMAR (CALL, en inglés) o colocando solamente


el nombre del procedimiento (depende del lenguaje
de programación que se use).

La forma general de declarar un procedimiento es la


siguiente:
PROCEDIMIENTO Nombre (Lista de parámetros
formales)
variables
acción1
.......
acción N
FIN PROCEDIMIENTO
EDICIONES UAPA

Para utilizar un procedimiento desde un programa


principal se puede llamar de la forma siguiente:

LLAMAR Nombre (Lista de parámetros actuales)

o simplemente

Nombre (Lista de parámetros actuales)

Generalmente los primeros parámetros o variables


corresponden a la información de entrada y los
últimos son las variables de salida (donde se
almacenan los resultados).
EDICIONES UAPA

EJEMPLO
Calcule la suma, la resta, el producto y el cociente de dos números
cualesquiera.

Solución:

1. Se necesitan 6 variables;
a. 2 de ellas serán los factores,
b. 4, el resultado de las correspondientes
operaciones.
2. Para hacerlo de forma más compacta, mejor que con una
función es con un procedimiento.

PROCEDIMIENTO Cuentas (ENTERO a, ENTERO b,


ENTERO sum, ENTERO dif, ENTERO mul, ENTERO div)
sum = a+b
dif = a-b
mul =a*b
div = a/b
FIN PROCEDIMIENTO Luego se llama de la
siguiente forma:
LLAMAR Cuentas (15, 33, SUMA, RESTA, MUL, DIV)

o también de la forma:

Cuentas (15, 33, SUMA, RESTA, MUL, DIV)

Como se puede apreciar, los resultados (la salida)


están almacenados en las variables SUMA, RESTA,
MUL, DIV

3.4.2 El procedimiento en Visual Basic: El


Procedimientos Sub.
En Visual Basic se define un procedimiento Sub.
La sintaxis es la siguiente:
EDICIONES UAPA

[Static] [Private] Sub nombre [(parámetros)][


sentencias]

[Exit Sub] [sentencias]


End Sub

La explicación de cada elemento de la sintaxis es


análoga a la planteada para las funciones.

La llamada a un procedimiento Sub puede ser


realizada utilizando la palabra clave Call con la
siguiente sintaxis:
Call nombre [(argumentos)]

A diferencia de una función, un procedimiento Sub


no puede ser utilizado en una expresión pues no
devuelve ningún valor.
El siguiente ejemplo corresponde a un
procedimiento Sub que devuelve una variable F que
es la raíz cuadrada de un número N.
EDICIONES UAPA

EJEMPLO

Sub Raiz (N As Double, F As Double)


If N < 0 Then
Exit Sub “ mensaje de error”
Else
F = Sqr(N)
End If
End Sub

La llamada a este procedimiento Sub puede ser de


cualquiera de las dos formas siguientes:
 Raiz K, H
 Call Raiz(K, H)

En el ejemplo anterior, el resultado obtenido al


extraer la raíz cuadrada al número K se devuelve en
la variable H pasada como argumento, debido a que
como se ha mencionado anteriormente, un
procedimiento Sub no puede ser utilizado en una
expresión.

3.4.3 Argumentos por referencia y por valor


Como se ha visto, las funciones y los procedimientos
pueden recibir uno o más parámetros. Los
EDICIONES UAPA

parámetros se pueden pasar por Referencia o por


Valor.

 Paso de parámetros por referencia: Los


cambios efectuados en las variables durante la
ejecución del subprograma se conservan al
salir del procedimiento o función, (esto
significa que si la variable cambió de valor
en la ejecución del subprograma la variable
se queda con el nuevo valor almacenado en
ella).

 Paso de parámetro por valor: Los cambios


efectuados en las variables durante la
ejecución del subprograma NO AFECTAN el
valor que se pasa originalmente (La variable
conserva su valor).

En las funciones (Function en Visual Basic) y en


los procedimientos Sub de Visual Basic, por
defecto los argumentos se pasan por referencia; de
este modo, cualquier cambio de valor que sufra un
parámetro dentro de la función o del procedimiento
Sub, también se produce en el argumento
EDICIONES UAPA

correspondiente de la llamada a la función o al


procedimiento Sub.

Cuando se llama a una función o a un


procedimiento Sub, se podrá especificar que el
valor de un argumento no sea cambiado por la
función o por el procedimiento, poniendo dicho
argumento entre paréntesis en la llamada.

Nota:
Un argumento entre paréntesis en la llamada es un
argumento pasado por valor (significa que su valor no
será cambiado).

EJEMPLO

Raiz ((Num)) ' En el caso de la función


Raiz (Num), F ' En el caso del procedimiento

El argumento Num es pasado por valor. Significa


que lo que se pasa es una copia de Num. Si el
procedimiento cambia ese valor, este cambio no
afecta a la variable Num.

Otra forma de especificar que un argumento será


siempre pasado por valor es anteponiendo la
EDICIONES UAPA

palabra ByVal a la declaración del parámetro en la


cabecera del procedimiento (Sub o Function).
Function Raiz (ByVal N As Double)
Sub Raiz (ByVal N As Double, F As Double)

Pasar argumentos por valor evita modificaciones


accidentales, pero tiene un costo adicional en tiempo
y memoria que puede ser significativo cuando se
pasan grandes volúmenes de información, como
sucede con vectores, matrices y estructuras.

3.4.4 Los Métodos


Los métodos son funciones que también son
llamadas desde programa, pero a diferencia de los
procedimientos no son programadas por el usuario,
sino que vienen ya pre-programadas con el lenguaje.
Los métodos realizan tareas típicas, previsibles y
comunes para todas las aplicaciones. De ahí que
vengan con el lenguaje y que se libere al usuario de
la tarea de programarlos. Cada tipo de objeto o de
control tiene sus propios métodos.

Por ejemplo, los controles gráficos tienen un método


llamado Line que se encarga de dibujar líneas rectas.
EDICIONES UAPA

De la misma forma existe un método llamado Circle


que dibuja circunferencias y arcos de circunferencia
Es obvio que el dibujar líneas rectas o circunferencias
es una tarea común para todos los programadores y
que Visual Basic 6.0 la ofrece ya resuelta.

Observar:

Void es un método especial que no devuelve ningún valor y


será ampliamente usado en la medida en que avances en la
elaboración de aplicaciones de cierta complejidad.

Los nombres de los procedimientos tienen reglas de


visibilidad parecidas a las de las variables. Para
llamar desde un formulario a un procedimiento Public
definido en otro formulario, es necesario preceder su
nombre por el del formulario en que está definido. Sin
embargo, si se desea llamar a un procedimiento
definido en un módulo estándar (*.bas), no es
necesario precederlo del nombre del módulo más que
si hay coincidencia de nombre con otro procedimiento
de otro módulo estándar.

3.4.5 Ventanas Immediate, Locals y Watches


El Debugger de Visual Basic 6.0 dispone de varias
formas para consultar el valor de variables y
EDICIONES UAPA

propiedades, así como para ejecutar funciones y


procedimientos comprobando su correcto
funcionamiento. En ello juegan un papel importante
tres tipos de ventanas: Immediate, Locals Watch.

La ventana Immediate permite realizar diversas


acciones:

1. Imprimir el valor de cualquier variable y/o


propiedad accesible a la función o
procedimiento que se está ejecutando. Se
puede hacer utilizando el método Print
VarName (o su equivalente? VarName)
directamente en la ventana, o introduciendo en
el código del programa sentencias del tipo
Debug.Print VarName. En este último caso el
valor de la variable o propiedad se escribe en
la ventana Immediate sin necesidad de parar
la ejecución del programa. Además, esas
sentencias se guardan con el formulario y no
hay que volver a escribirlas para una nueva
ejecución. Cuando se compila el programa
para producir un ejecutable las sentencias
EDICIONES UAPA

Debug.Print son ignoradas. La utilización del


método Print fue explicada en el tema anterior.

2. Asignar valores a variables y propiedades


cuando la ejecución está detenida y proseguir
la ejecución con los nuevos valores. Sin
embargo, no se pueden crear nuevas
variables.

3. Ejecutar expresiones y probar funciones y


procedimientos incluyendo en la ventana
Immediate la llamada correspondiente.

La ventana Locals, muestra el valor de todas las


variables visibles en el procedimiento en el que está
detenida la ejecución.

Otra opción que puede resultar útil es la de conocer


permanentemente el valor de una variable sin tener
que consultarlo cada vez.

Para conocer inmediatamente el valor de una variable


se puede utilizar la ventana Quick Watch. Para
observar continuamente el valor de una variable o
EDICIONES UAPA

expresión, hay que añadirla a la ventana Watches.


Esto se hace con la opción Add Watch… del menú
Debug. El valor de las variables incluidas en la
ventana Watches se actualiza automáticamente,
indicándose también cuando no son accesibles desde
el procedimiento que se esté ejecutando (Out of
Context).

La ventana Add Watch mostrada permite introducir


Breaks o paradas del programa condicionales,
cuando se cumple cierta condición o cuando el valor
de la variable cambia.

Las capacidades de Visual Basic 6.0 para vigilar el


valor de las variables pueden activarse desde el
menú Debug o con algunos botones en la barra de
herramientas Debug

3.4.6 La Recursividad
Una función que se llama a si misma varias veces
recibe el nombre de función recursiva. Un clásico
ejemplo de recursividad es el cálculo del factorial de
un número entero. Si bien la recursividad puede
EDICIONES UAPA

añadir brillantez a los programas, hay que considerar


que su uso aumenta el trabajo de la pila y ocurre que
en muchos casos podrá realizar la tarea con mayor
facilidad acudiendo a un método de iteración clásica.

RECURSIVIDAD: propiedad de una función que le permite


llamarse a sí misma.

EJEMPLO
Sea una función para sumar los N primeros números
naturales.

Solución:
funcion Suma_N_Naturales(ENTERO N) : ENTERO
variables
ENTERO: Suma
si (N=1) entonces
Suma = 1
si no
Suma =N+Suma_N_Naturales(N-1)
fin si
Resultado = Suma
fin funcion

Y vamos a llamarla con Suma_N_Naturales(4),


detallando los pasos:
si (4=1) {falso, no se ejecuta}
EDICIONES UAPA

si no {cierto, se ejecuta}
Suma = 4+Suma_N_Naturales(4-1) {4-1=3}
Entramos en Suma_N_Naturales(3):
si (3=1) {falso, no se ejecuta}
si no {cierto, se ejecuta}
Suma = 3+Suma_N_Naturales(3-1) {3-1=2}
Entramos en Suma_N_Naturales(2):
si (2=1) {falso, no se ejecuta}
si no {cierto, se ejecuta}
Suma = 2+Suma_N_Naturales(2-1) {2-1=1}
Entramos en Suma_N_Naturales(1):
si (1=1) entonces Suma = 1

y se devuelve el control al punto donde se llamó a


Suma_N_Naturales(2), donde tenemos Suma = 2+1,
con lo que se devuelve el control al punto donde se
llamó a Suma_N_Naturales(3), teniendo Suma =
3+(2+1), momento en el que se devuelve el control al
punto donde se llamó a Suma_N_Naturales(4),
donde tenemos Suma = 4+(3+(2+1)), justo el
resultado esperado.
El siguiente ejemplo se refiere al cálculo del factorial
de un número. El programa está escrito en el
EDICIONES UAPA

lenguaje Visual Basic y muestra los conceptos


asociados a los procesos recursivos.

EJEMPLO
Cálculo Factorial

Solución:
Function Factorial (N As Integer) As Long
If N = 0 Then
Factorial = 1 'Condición de final
Else
Factorial = N * Factorial (N - 1)
End If
End Function

En este ejemplo, si la variable N que se le transfiere


a la función vale 0, significará que se ha llegado al
final del proceso, y por tanto se le asigna el valor 1 al
valor del factorial (recordar que 0!= 1). Si es distinto
de 0, la función se llama a ella misma, pero variando
el argumento a (N-1), hasta llegar al punto en el que
N-1=0, finalizándose el proceso.
EDICIONES UAPA

RESUMEN DE LA UNIDAD 3.4

Uno de los métodos más conocidos para resolver un


problema es dividirlo en problemas más pequeños,
llamados subproblemas. De esta manera, en lugar de
resolver una tarea compleja, resolvemos otras más
sencillas y a partir de ellas llegamos a la solución.

El diseño de un programa utilizando cualquier


lenguaje, se ve favorecido por el uso de
subprogramas que son programas capaces de
resolver una tarea de manera autónoma, facilitando el
proceso de programación al poder dividir un
programa de muchas instrucciones en varios
subprogramas. Un procedimiento es un
subprograma que realiza una tarea específica y para
llamarlo, es decir, para hacer que se ejecute, basta
con escribir su nombre en el cuerpo de otro
procedimiento o en el programa principal.
EDICIONES UAPA

Las diferencias entre una función y un procedimiento


son realmente pocas y depende de las características
del problema que se desea resolver.

La sintaxis general, la forma de llamarlo desde un


programa principal, la atención al ámbito de las
variables y la correcta comprensión de lo que
significan los parámetros reales y los parámetros
formales, constituye la base para la correcta
utilización de estos paradigmas de la programación.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 3.4

1. Confeccione un procedimiento para cada uno de


los incisos del problema siguiente:
En admisión de un hospital se archivan los
siguientes datos de las personas que se
ingresan:
 Nombre
 Número de identidad
 Sala (número entre 1 y 15)
 Edad
 Sexo (F o M)

Elabore un procedimiento que permita determinar:


a) Un listado ordenado alfabéticamente de los
pacientes ingresados en la sala que se solicite.
b) El total, por sexo, de los ingresados.
c) Listado con los pacientes con edad superior a
la media de los ingresados.
d) Determinar si un paciente está ingresado,
conocido el número de su carné de identidad.
e) La cantidad de ingresos en la sala más llena.
EDICIONES UAPA

2. Un banco desea modernizar la forma en que


administra las cuentas de ahorros de sus clientes.
Para ello se le pide diseñar un programa que
resuelva la tarea que se explica:

El banco para facilitar su trabajo le suministra la


siguiente información:

Por cada cuenta, el banco mantiene los siguientes


datos:
 Número de la cuenta
 Cliente (nombre, edad, CI, sexo)
 Fecha de Apertura (día, mes, año)
 Saldo de la cuenta
 Interés Anual
 Últimos 20 movimientos realizados en la
cuenta (tipo de movimiento (ingreso o
reintegro), cantidad, momento (día, mes, año,
hora, minuto, segundos))

El saldo de la cuenta no puede estar en números


rojos (negativos) y cada año se abonarán los
intereses en base al saldo medio de la cuenta.
EDICIONES UAPA

El banco deberá proporcionar las siguientes


funcionalidades:
 Crear cuentas
 Cerrar cuentas
 Realizar movimientos en las cuentas.
 Imprimir información de las cuentas.
Elabore un procedimiento para cada una de estas
tareas.

3. Dados los nombres y las notas en una asignatura


de un grupo de estudiantes, analiza donde es
necesario y conveniente el uso de procedimientos
e impleméntalo.
a) Cantidad de estudiantes que obtuvieron 5
puntos.
d) Imprimir un reporte con los nombres de los
estudiantes y sus notas, ordenado de forma
descendente.
e) Promedio de notas del grupo.
f) Valoración cualitativa de los resultados del
grupo en la asignatura según el siguiente
criterio:
B - si el promedio de las notas del grupo
es superior a 4 puntos
EDICIONES UAPA

R – si el promedio de las notas del grupo


oscila entre 3 y 4
M – si el promedio de las notas del grupo
es inferior a 3

4. Suponga que se tienen los siguientes datos sobre


un grupo de estudiantes: número de lista,
municipio de residencia y promedio académico.
Se desea obtener: (Confecciona un procedimiento
para resolver cada inciso)
a. Un reporte de los estudiantes que
residan en un municipio especificado
por el usuario y tengan un promedio
mayor que un valor dado.
b. Los estudiantes de mayor promedio
académico.
c. Una nueva lista donde aparezcan
número de lista y promedio académico
de cada estudiante ordenado
ascendentemente por el promedio.
5. El Instituto de Meteorología necesita controlar
los cambios de temperatura mensualmente. Se
conoce para cada uno de los días del mes los
EDICIONES UAPA

valores máximo y mínimo de temperatura. Realiza


un programa, usando procedimientos, que permita
n. Calcular el promedio de la temperatura
máxima y el de la temperatura mínima
durante el mes.
o. Dado un número entre (1 -31) muestre
toda la información referente a ese día.

6. En una empresa de tabaco se conoce el costo


de producción y el precio de una unidad de
cada una de las marcas allí producida.
Confeccione una aplicación que emplee
subprogramas para:
a. Conocer la marca que le reporta mayor
ganancia a la empresa.
b. Obtener el costo y la ganancia totales
reportadas por una marca conociendo la
cantidad de unidades producidas.
c. Conocer si existe alguna marca que
reporta ganancias por encima de un
valor dado.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 3.4

1) En cada uno de los planteamientos siguientes,


completa con V si es verdadero o con F si
consideras que es falso.
a) ________ Las funciones normalmente,
devuelven un solo valor a la unidad de
programa que los llama.
b) ________ Los procedimientos pueden
devolver cero, uno o varios valores.
c) ________ Al nombre de procedimiento se le
asigna un valor.
d) ________ Una función se referencia utilizando
su nombre en una instrucción (de asignación o
expresión matemática).
e) ________Un procedimiento se referencia por
una llamada o invocación al mismo.

2) Prepara un mapa conceptual que caracterice un


procedimiento.
EDICIONES UAPA

3) Escribir un procedimiento que devuelva como


resultado el valor mayor de dos números A y B.

4) Escribir un procedimiento que analice los primeros


M números y calcule y devuelva como resultado la
suma de los cuadrados de los números pares y el
producto de los números impares.

Motivación de la próxima Unidad Didáctica

El almacenamiento de los datos en la computadora


es un tema fundamental ya que será imprescindible
para un gran número de aplicaciones que deseemos
desarrollar. Si queremos almacenar información de
forma permanente podemos trabajar con ficheros. En
unidades anteriores se estudió el concepto de fichero
lo que constituye una colección de información (datos
relacionados entre sí) almacenada en memoria
secundaria y localizada como una unidad en alguna
parte de la computadora. En la siguiente unidad se
estudiarán diferentes tipos y formas de
almacenamiento de archivos.
EDICIONES UAPA

BIBLIOGRAFIA RECOMENDADA DE LA UNIDAD


3.4

1. Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición. Mc Graw – Hill, 2003.
2. Curso a distancia de Lógica de Programación.
Lic. María Isabel de Ribas-Rocafull Pérez.
3. Petroutsos, Evangelos. Visual Basic 6.
Anaya, España
4. www.Modularidad_Procedimientos y
funciones.htm
EDICIONES UAPA

UNIDAD DIDÁCTICA 3.5


MANEJO FÍSICO DE ARCHIVOS

Objetivos:

 Dominar tipos y formas de almacenamiento de


archivos.

Requisitos Previos:

 Conocimientos básicos de programación.


 Operaciones con archivos.

ESQUEMA DE CONTENIDO DE LA UNIDAD 3.5

3.5.1 Ventajas del uso de dispositivos secundarios


para el almacenamiento de datos.

3.5.2 Reconocimiento de Archivos por Visual Basic.


EDICIONES UAPA

DESARROLLO DE CONTENIDO

En el tema anterior, en la Unidad Didáctica 2.5


estudiamos las operaciones con archivos. Estos
archivos son almacenados en estructuras físicas
desde donde podemos abrirlos, leerlos, escribir y
cerrarlos. En esta unidad didáctica aparece un breve
resumen de los distintos medios lógicos y físicos de
almacenamiento de datos y algunos elementos del
tratamiento de archivos en Visual Basic.

3.5.1 Ventajas del uso de dispositivos


secundarios para el almacenamiento de datos.

El almacenamiento con dispositivos secundario


posee ventajas en comparación con los básicos. Se
cita entre ellas:

1. El espacio disponible en el almacenamiento


secundario es ilimitado.

2. El almacenamiento secundario es menos


costoso y

3. El almacenamiento secundario no es volátil.


EDICIONES UAPA

Conceptos utilizados por Windows

UNIDAD FÍSICA: Son los discos reales del ordenador,


pueden ser un disco duro, una unidad de disquetes de
3 1/2, un CD-Rom, una unidad Zip, un DVD, una tarjeta
CompactFlash, etc.

Unidad ZIP Disquete 31/2 Disco Duro

Flash Memory
CD DVD

El disco duro es el dispositivo en el que se


almacenan de forma permanente todos los datos. Se
puede acceder a una información sin necesidad de
pasar por el resto de la información almacenada. Se
compone de varios discos situados unos encima de
EDICIONES UAPA

otros. Está estructurado en una serie de pistas


concéntricas, que a su vez se dividen en sectores.
Existe otro concepto en la organización del disco,
que es el de cilindro, que se define como conjunto de
pistas superpuestas. Tiene varias cabezas de lectura
/ escritura que se sitúan por encima del disco,
moviéndose de forma radial a través de la superficie
del disco. Un motor que acciona el eje donde se
sitúan los discos, les hace girar a alta velocidad.

Algunas características de los discos duros son:


1. Capacidad de almacenamiento: En la
actualidad los valores más comunes son
desde 80 GB a 750 GB.
2. Velocidad de rotación: Los discos IDE están
en un entorno de 5400 a 7200 RPM los SCSI
en 10.000 RPM. Como ejemplo una velocidad
de 5400 RPM permite una transferencia
aproximada entre 10 y 16MB por segundo
3. Tiempo de acceso: Es el tiempo medio que
tarda la cabeza delectura / escritura en
acceder al dato buscado. Es uno de los
valores más importantes en las características
EDICIONES UAPA

de los discos. Un valor normal puede ser 10


milisegundos.
4. Tasa de transferencia: Indica la cantidad de
datos que un disco puede leer o escribir en
un segundo, la medida se realiza en MB/seg.
Un disco de 5400 RPM suele ser de 10MB/s.
5. Interfaz: La conexión de los discos duros es a
través de diferentes tipos de interfaz y más
comunes son los IDE y los SCSI, estos a su
vez tienen una serie de especificaciones que
han ido adaptándose a las nuevas
necesidades de incremento de la capacidad,
reducción del tiempo de acceso y aumento de
la velocidad de transferencia. La interfaz IDE
tiene como una de sus limitaciones que solo es
utilizable en unidades internas y solo es
posible conectar un máximo de 2 dispositivos a
cada canal.
EDICIONES UAPA

UNIDAD LÓGICA: El sistema de archivos no


puede referirse a las unidades físicas como tales,
sino que lo hace a través de una unidad lógica.
Podemos simplificar diciendo que una unidad
lógica es el nombre con el que Windows se refiere
a las unidades físicas.

Las unidades lógicas se nombran con letras


mayúsculas seguidas de dos puntos. Así la unidad
física disquete se corresponde con la unidad lógica
A:, si hubiera otra unidad de disquetes sería la unidad
B:, el primer disco duro sería la unidad lógica C:, la
unidad D: será el siguiente disco duro o el CD-Rom o
el DVD, ... y así sucesivamente

Puede darse el caso que una sola unidad física


contenga dos unidades lógicas, por ejemplo, un sólo
disco duro puede estar formateado en dos
particiones, con lo cual tendremos dos unidades
lógicas, por ejemplo, C: y D: que residen en el mismo
disco.
EDICIONES UAPA

3.5.2 Reconocimiento de Archivos por Visual


Basic
De la misma forma que en Windows, Visual Basic
6.0 reconoce, principalmente, dos tipos de archivos:

1. Ficheros ASCII o ficheros de texto.


Contienen caracteres codificados según el
código ASCII y se pueden leer con cualquier
editor de texto como Notepad. Casi siempre
tienen extensión *.txt o *.bat, pero también
pueden aparecer con otras como *.m para los
programas de Matlab, *.c para los ficheros
fuente de C, *.cpp para los ficheros fuente de
C++ y *.java para los de Java.

2. Ficheros binarios: Son ficheros imagen de


los datos o programas tal como están en la
memoria del ordenador. No son legibles
directamente por el usuario. Tienen la ventaja
de que ocupan menos espacio en disco y que
no se pierde tiempo y precisión cambiándolos
a formato ASCII al escribirlos y al leerlos en el
disco.
EDICIONES UAPA

Con Visual Basic 6.0 se pueden leer tanto ficheros


ASCII como ficheros binarios. Además el acceso a un
fichero puede ser de tres formas principales.

1. Acceso secuencial. Se leen y escriben los


datos como si se tratara de un libro: siempre a
continuación del anterior y sin posibilidad de
volver atrás o saltar datos. Si se quiere
acceder a un dato que está hacia la mitad de
un fichero, habrá que pasar primero por todos
los datos anteriores. Los ficheros de texto
tienen acceso secuencial.

2. Acceso aleatorio (random): Permite acceder


directamente a un dato sin tener que pasar por
todos los demás, y puede acceder a la
información en cualquier orden. Tiene la
limitación de que los datos están almacenados
en unas unidades o bloques que se llaman
registros, y que todos los registros que se
almacenan en un fichero deben ser del mismo
tamaño. Los ficheros de acceso aleatorio son
ficheros binarios.
EDICIONES UAPA

3. Acceso binario. Son como los de acceso


aleatorio, pero el acceso no se hace por registros
sino por bytes.
RESUMEN DE LA UNIDAD 3.5

Con esta unidad termina el estudio de la materia de


Programación I en la cual se presentaron los
aspectos básicos de la lógica de algoritmos y la
programación. Se conoció todo lo relacionado con el
tratamiento de la información por parte de la
computadora y como se deben organizar las órdenes
para que la computadora pueda dar solución a los
problemas que se nos plantean.

Aunque en general se hace referencia al lenguaje


Visual Basic, la idea fundamental fue enseñar a
preparar la solución de un problema y después poder
programarlo en cualquier lenguaje de programación,
es decir, el objetivo fundamental fue que los alumnos
pudieran adquirir las habilidades para el diseño de
algoritmos, para luego programarlos en cualquier
lenguaje de los existentes.
EDICIONES UAPA

ACTIVIDADES DE LA UNIDAD 3.5

1.- Prepara una tabla donde se resuman algunos


dispositivos de almacenamiento secundario y sus
principales características.

2.- Haz un mapa conceptual donde se resuman los


tipos de archivo, las formas de acceso en Visual
Basic y sus características principales.
EDICIONES UAPA

EJERCICIOS DE AUTOEVALUACIÓN DE LA
UNIDAD 3.5

1) En cada uno de los planteamientos siguientes,


completa con V si es verdadero o con F si
consideras que es falso.

a) ________ La memoria RAM es un dispositivo


de almacenamiento externo.

b) ________ Una unidad lógica es el nombre con


el que Windows se refiere a las unidades
físicas.

c) ________ El disco duro es un dispositivo en el


que no es posible almacenar de forma
permanente los datos.

d) ________ El Acceso aleatorio (random):


Permite acceder directamente a un dato sin
tener que pasar por todos los demás, y puede
acceder a la información en cualquier orden.
EDICIONES UAPA

BIBLIOGRAFÍA RECOMENDADA DE LA
UNIDAD 3.5

1. Joyanes Aguilar, Luis. Fundamentos de


Programación, Algoritmo y Estructura de
Datos. 3ra. Edición. Mc Graw – Hill, 2003.
2. Godino, J. D.: La formación matemática y
didáctica de maestros como campo de acción
e investigación para la didáctica de las
Matemáticas: el proyecto Edumat-Maestros.
Disponible en http://
3. Godino, J.D. y otros: Área de conocimiento.
Didáctica de la Matemática. Editorial
SINTESIS. España. 1991.
4. McCarthy, John, Página personal, (2005, Oct
8), [En línea]. Disponible: http://www-
formal.stanford.edu/jmc/index.html
5. Wikipedia, The Free Encyclopedia, (2005, Oct
8), [En línea]. Disponible:
http://en.wikipedia.org/wiki/Guido_van_Rossu
m
6. Wikipedia, The Free Encyclopedia, (2005, Oct:
EDICIONES UAPA

RESPUESTA A LOS EJERCICIOS DE


AUTOEVALUACIÓN

UNIDAD I

Las respuestas a los ejercicios de autoevaluación del


1 al 4 pueden verificarse con el contenido de la
Unidad Didáctica. En ellas debe estar presente la
creatividad del alumno que puede ser evaluada por el
profesor.

Respuesta 5.

1-b; 2-f; 3-e; 4-c; 5-d; 6-a


EDICIONES UAPA

UNIDAD 2.1

1.-
a- V, b- F, c- V, d- F

2.-
EDICIONES UAPA

UNIDAD 2.2

1.- Incorrectas: c, e, g, j, k

2.-
a) La variable S incrementado su valor en X (es decir,
se tiene en cuenta su valor anterior y se le
incrementa el valor de X).

b) En la variable Prom se almacena el valor 2


c) En la variable Y se almacena 6 más el cuadrado
de la variable X.

d) La variable K incrementa su valor en 2.

e) la variable J se hace igual a cero.

UNIDAD 2.3

1. a. Resp. a. B > 15, b. Resp .b. (M <= 6) y (M > 18),


c. Resp c. (P = 46) or (P > Q), e. Resp e. (M > A) &
(M > B) & (M > C), f. Resp f. (Z >= 4) & (Z <= 100), g.
Resp g. (T = 12) or (T = 23) or (T= 24).
EDICIONES UAPA

2.

INICIO

REAL PHmb, PMuj

ENTERO hombres, mujeres, total

LEER hombres, mujeres

total = hombres + mujeres

PHmb = hombres*100.0/total

PMuj = mujeres*100.0/total

IMPRIMIR PHmb, PMuj

FIN

3.

INICIO

REAL cgigabyte, cmegabyte, ckilobyte, cbyte

LEER cgigabyte

cmegabyte = cgigabyte*1024

ckilobyte = cmegabyte*1024

cbyte = ckilobyte*1024

IMPRIMIR cmegabyte, ckilobyte, cbyte


EDICIONES UAPA

UNIDAD 2.4

1.- INICIO

REAL porcsillas, porcmesas

ENTERO sillas, mesas, total

LEER sillas, mesas

total = sillas + mesas

porcsillas = sillas*100.0/total

porcmesas = mesas*100.0/total

IMPRIMIR porcsillas, porcmesas

FIN

2.- Listado de primitivas funcionales o acciones:

I. Aperturas, cierres y lecturas:

1. Leer a

2. Leer b

II. Preparar decisiones (No hay)

III. Preparación de cálculos

7. Suma=a + b
EDICIONES UAPA

IV. Preparar salidas

8. Escribir suma
9. Limpiar pantalla

Lógica Esquemática
Suma sec
Inicio sec
Leer a
Leer b
Inicio Fin
Cálculo sec
Suma= a + b
Cálculo Fin
Final sec
Escribir Suma
Final Fin
Suma Fin

3.- Estructura de programa

Calc_ Salario

Inicio Cálculo Final


EDICIONES UAPA

Listado de primitivas funcionales o acciones:

I. Aperturas, cierres y lecturas:


1. Leer hortrab

2. Leer salhor
II. Preparar decisiones (No hay)
III. Preparación de cálculos
7. Salmensual= salhor * hortrab
IV. Preparar salidas
. Escribir “El salario mensual es de:
“ Salmensual
. Escribir “Teclee Salario por hora: “
10. Escribir “Teclee horas trabajadas:

UNIDAD 2.5

1. Según lo estudiado en la clase anterior,


aplicaremos los pasos de la Metodología Jackson.

Diagrama General

Listado de Trabajadores
Programa Nombre Salario
_______ ________
Archivo _______ _________
Trabajadores
EDICIONES UAPA

Observe que el teclado no aparece representado en


el Diagrama, ya que en este caso se leen los datos
desde el archivo directamente.

Diagrama de Programa Listado

Inicio Proceso * Final

1 2 6 7 5 3 4
EOF

Trabajador

8 5

Listado de Instrucciones

Abrir “Trabajadores”

Abrir Impresora

Cerrar “Trabajadores”

Cerrar Impresora

Leer “Trabajadores”, T

Escribir Impresora, “Listado de Trabajadores”

Escribir Impresora, “Nombre Salario”

Escribir Impresora, T.Nombre T.Salario


EDICIONES UAPA

Lógica Esquemática

Listado Sec

Inicio Sec

Abrir “Trabajadores”

Abrir Impresora

Escribir Impresora, “Listado de


Trabajadores”

Escribir Impresora, “Nombre


Salario”

Leer “Trabajadores”, T

Inicio_Fin

Proceso Iter EOF

Trabajador Sec

Escribir Impresora, T.Nombre; “


“; T.Salario

Leer “Trabajadores”, T

Trabajador_Fin

Proceso_Fin

Final Sec
EDICIONES UAPA

Cerrar “Trabajadores”

Cerrar Impresora

Final_Fin

Listado_Fin

2. Diagrama de estructura de Programa

Fichero
Nombre, Edad, Aula3 Teclee datos de un alumno:
Sexo, Nota Nombre:
Edad:
Programa Sexo:
Nota:
¿Desea entrar más datos
(S/N)?
Teclado Disco
Duro

Diagrama de programa

Aula3

Inicio
Lectura de Datos * Final
Displ
ay

Dato

Escuela
Listado de Instrucciones
Inicio
Lectura de Datos * Final
1. Abrir Display

Dato
EDICIONES UAPA

2. Cerrar Display

3. Abrir Teclado

4. Cerrar Teclado

5. Abrir “Escuela”

6. Cerrar “Escuela”

7. Leer V.Nombre

8. Leer V.Edad

9. Leer V.Sexo

10. Leer V.Nota

11. Leer P

12. Escribir “Teclee Datos del Alumno:”

13. Escribir “Nombre:”

14. Escribir “Edad:”

15. Escribir “Sexo:”

16. Escribir “Nota:”

17. Escribir “¿Desea entrar más Datos (S/N)?


EDICIONES UAPA

UNIDAD 3.1

1.-
Inicio
Leer cal
Si cal > 6 entonces
Escribir "Aprobado"
Fin_si
Fin

2.-
Inicio
Leer b
Leer c

SI (c > b) ENTONCES
b=c
c=2*b
Escribir b, c
FIN SI
FIN
EDICIONES UAPA

3.-
Inicio
Leer cal
Si cal > 6 entonces
Escribir "Aprobado"
Sino
Escribir "Suspenso"
Fin_si
Fin

4.-

INICIO

Leer a, b, c

SI (a = b) ENTONCES

SI (b = c) ENTONCES

Imprimir ("Triangulo Equilátero")

SINO

Imprimir ("Triangulo Isóceles")

FIN SI

SINO

SI (b =c) ENTONCES
EDICIONES UAPA

Imprimir ("Triangulo Isóceles")

SINO

Imprimir ("Triangulo Escaleno")

FIN SI

FIN SI

FIN

5.-

Categoría Sueldo Aumento

1 800 1.15

2 600 1.10

3 400 1.08

4 200 1.07

Definición de datos de entrada:

Cate = categoría

Sue = sueldo

Nsue = nuevo sueldo

Inicio
EDICIONES UAPA

Leer (cate, sue)


Caso 1 hacer
nsue = sue * 1.15
Caso 2 hacer
nsue = sue * 1.10
Caso 3 hacer
nsue = sue * 1.08
Caso 4 hacer
nsue = sue * 1.07
Fin_caso_que
Escribir (cate, nsue)
Fin
EDICIONES UAPA

UNIDAD 3.2

1. Ciclo “PARA” Ciclo


“MIENTRAS”

INICIO
K=1
INICIO
MIENTRAS QUE
PARA (K=1, 12, 1)
(K<=12)
IMPRIMIR “DIGITE
IMPRIMIR “DIGITE
NÚMERO: ”
NÚMERO: ”
LEER NUM
LEER NUM
CUBO=NUM ** 3
CUBO=NUM ** 3
CUARP=NUM / 4
CUARP=NUM / 4
IMPRIMIR “Cubo: “,
IMPRIMIR “Cubo: “,
CUBO
CUBO
IMPRIMIR “Cuarta
IMPRIMIR “Cuarta
parte: “, CUARP
parte: “, CUARP
FIN-PARA
K=K+1
FIN
FIN-MIENTRAS
FIN

2.
EDICIONES UAPA

INICIO
IMPRIMIR “DIGITE BASE Y ALTURA:”
LEER BAS, ALT
MIENTRAS QUE (BAS < > 0 AND ALT <> 0)
AREA = BAS * ALT / 2
IMPRIMIR “El área es: “, AREA
IMPRIMIR “DIGITE BASE Y ALTURA: ”
LEER BAS, ALT
FIN-MIENTRAS
FIN

3.-

Variables: Sumt=0, num, x


Inicio
Desde x=1 Hasta x=40 Hacer
Leer num
Sumt=Sumt + num** 2
Próximo x
Fin_Desde
Escribir “La suma de los cuadrados es: “,Sumt

Fin_Inicio
EDICIONES UAPA

UNIDAD 3.3

1.-
Solucion:
Function Area (R As Double) As Double
Area = 3.1416*R²
End Function

La llamada a esta función se hace de la forma


siguiente:
Areacirculo = Area(Num)
2.-
Solucion:
Function AreaTriangulo (a,b,c As Real) As
Real
AreaTrangulo=(A+B+C)/2
End Function

La llamada a esta función se hace de la


forma siguiente:
AT= AreaTriangulo(x,y,z)

3.-
Solucion:
EDICIONES UAPA

Function Promedio (N As Natural) As Real


Variables
ENTERO :i,S
S=0
Mientras i < =N hacer
S=S+i
i=i+1
Fin Mientras
Promedio=S/N
End Function

La llamada a esta función se hace de la


forma siguiente:
Inicio
Leer N
Prom=Promedio(K)
Escribir(Prom)
Fin

4.-
Solución:
funcion Alfa(N As Entero) : Entero
variables
ENTERO : i
EDICIONES UAPA

Alfa= 0
desde i=1 hasta i=N hacer
If i es par
Then
Alfa =
Alfa+i
Fin desde
fin funcion

La llamada a esta función se hace de la


forma siguiente:
Inicio
Leer M
Sumapares=Alfa(M)
Escribir (Sumapares)
Fin
EDICIONES UAPA

UNIDAD 3.4

1.-
a- V, b- V, c- F, d- V, e-V

2.-

3.-

Seudocódigo
PROCEDIMIENTO Mayor (Real a, Real b, Real
Mayorvalor)
EDICIONES UAPA

Si (A>B) entonces Mayorvalor = A


Sino Mayorvalor = B
Fin Si
FIN PROCEDIMIENTO

Llamada al
procedimiento
Mayor

Seudocódigo
Programa principal
Inicio Leer(X,Y)
LLAMAR Mayor (X, Y, Mayorvalor)
Escriba (Mayorvalor es el mayor)
Fin
4.-
Solución:
Seudocódigo
Procedimento Beta(Entero N, Real
SumaCuadrad, Real Producto)
variables
ENTERO : i
SumaCuadrad= 0
Producto= 1
desde i=1 hasta i=N hacer
EDICIONES UAPA

If i es par
Then

SumaCadrad =
SumaCadrad +i**2
Else
Producto= Producto * i
Fin
desde Llamada al
procedimiento
Fin Procedimiento BETA

Programa Principal
Seudocódigo

Inicio
Entero M
Real S, P
Leer M
LLAMAR Beta (M, S, P)
Escribir (“Suma de cuadrados”, S)
Escribir (“Producto de impares”, P)
Fin
EDICIONES UAPA

UNIDAD 3.5
1.-

a- F, b- V, c- F. d- V
EDICIONES UAPA

BIBLIOGRAFIA GENERAL

1. Aprenda Visual Basic 6.0 como si estuviera en


primero. Javier García de Jalón • José Ignacio
Rodríguez • Alfonso Brazález. UNIVERSIDAD DE
NAVARRA.

2. Diseño y Administración de Base de Datos Gary


W. Hansen, James V. Hansen, 2ª Ed.

3. Estructura de Datos en Pascal, Autor Aarón M.


Tenenbaum, Moshe J. Augentein.

4. Godino, J. D. La formación matemática y didáctica


de maestros como campo de acción e
investigación para la didáctica de las
Matemáticas: el proyecto Edumat-Maestros.
5. Joyanes Aguilar, Luis. Fundamentos de
Programación, Algoritmo y Estructura de Datos.
3ra. Edición, Mc Graw – Hill, 2003.
6. Manual para el profesor. Lógica y algoritmos
(Parte II). Dr. A. Rosete, Dra. M. Delgado y otros.
Editorial Félix Varela. ISBN 959-258-581-4 OC.
Cuba.
EDICIONES UAPA

7. McCarthy, John, Página personal, (2005, Oct. 8),


[En línea]. Disponible: http://www-
formal.stanford.edu/jmc/index.html
8. Monografía Visual Basic, disponible en:

http://www.monografias.com/trabajos7/arch/arch.
shtml
9. Ohmae, K. (2006). El próximo escenario global:
desafíos y oportunidades en un mundo sin
fronteras. México: Grupo Editorial Norma.
10. Petroutsos, Evangelos. Visual Basic 6. Anaya,
España.
11. SCHUNK, D. (1997) Teorías del aprendizaje.
México. Prentice Hall Hispanoamericana.
12. Wikipedia, The Free Encyclopedia, (2005, Oct 8),
[En línea]. Disponible:
http://en.wikipedia.org/wiki/Guido_van_Rossum
13. Wikipedia, The Free Encyclopedia, (2005, Oct 8),
[En línea]. Disponible:
http://en.wikipedia.org/wiki/Yukihiro_Matsumoto.
14. http://es.wikipedia.org/wiki/Charles_Babbage
15. http://www.freenetpages.co.uk/hp/alan.gauld/span
ish/tutwhat.htm
EDICIONES UAPA

http://laysquad.foroactivo.com/informacion-general-y-
referencias-7/descripcion-y-referencia-del-lenguaje-
visual-foxpro-t1.htm

También podría gustarte