Está en la página 1de 3

4.

2 Algoritmos

Cualquier problema de computación puede resolverse ejecutando una serie de acciones en un


orden específico. Un procedimiento para resolver un problema en términos de 1. las acciones a
ejecutar y 2. el orden en el que se ejecutan estas acciones se conoce como un algoritmo. El
siguiente ejemplo demuestra que es importante especificar de manera correcta el orden en el que
se ejecutan las acciones. Considere el “algoritmo para levantarse y arreglarse” que sigue un
ejecutivo para levantarse de la cama e ir a trabajar: (1) levantarse; (2) quitarse la pijama; (3)
bañarse; (4) vestirse; (5) desayunar; (6) transportarse al trabajo. Esta rutina logra que el ejecutivo
llegue al trabajo bien preparado para tomar decisiones críticas. Suponga que los mismos pasos se
realizan en un orden ligeramente distinto: (1) levantarse; (2) quitarse el pijama; (3) vestirse; (4)
bañarse; (5) desayunar; (6) transportarse al trabajo. En este caso nuestro ejecutivo llegará al
trabajo todo mojado. Al proceso de especificar el orden en el que se ejecutan las instrucciones
(acciones) en un programa de computadora, se le llama control del programa. En este capítulo
investigaremos el control de los programas mediante el uso de las instrucciones de control de C++.

4.3 Seudocódigo

El seudocódigo (o “imitación” de código) es un lenguaje informal que ayuda a los programadores


a desarrollar algoritmos sin tener que preocuparse por los estrictos detalles de la sintaxis del
lenguaje C++. El seudocódigo que presentaremos aquí es especialmente útil para desarrollar
algoritmos que se convertirán en porciones estructuradas de programas en C++. El seudocódigo es
similar al lenguaje cotidiano; es conveniente y amigable con el usuario, aunque no es realmente
un lenguaje de programación de computadoras. El seudocódigo no se ejecuta en las
computadoras. En lugar de ello, ayuda al programador a “organizar” un programa antes de
intentar escribirlo en un lenguaje de programación como C++. Este capítulo presenta varios
ejemplos de cómo utilizar el seudocódigo para desarrollar programas en C++. El estilo de
seudocódigo que presentaremos consiste solamente en caracteres, de manera que los
programadores pueden escribir el seudocódigo convenientemente, utilizando cualquier programa
editor de texto. La computadora puede producir una copia recién impresa de un programa de
seudocódigo bajo demanda. Un programa en seudocódigo preparado de manera cuidadosa puede
convertirse fácilmente en su correspondiente programa en C++. En muchos casos, esto requiere
tan sólo reemplazar las instrucciones en seudocódigo con sus instrucciones equivalentes en C++.
Por lo general, el seudocódigo describe sólo las instrucciones ejecutables, que representan las
acciones que ocurren después de que un programador convierte un programa de seudocódigo a
C++, y el programa se ejecuta en una computadora. Las declaraciones (que no tienen
inicializadores, o que no implican llamadas a un constructor) no son instrucciones ejecutables. Por
ejemplo, la declaración int i; indica al compilador el tipo de la variable i y lo instruye para que
reserve espacio en memoria para esa variable. Esta declaración no hace que ocurra ninguna acción
(como una operación de entrada, salida o un cálculo) cuando el programa se ejecuta. Por lo
general no incluimos las declaraciones de variables en nuestro seudocódigo. Sin embargo, algunos
programadores optan por enlistar las variables y mencionar sus propósitos al principio de sus
programas en seudocódigo. Veamos un ejemplo de seudocódigo que se puede escribir para
ayudar a un programador a crear el programa de suma de la fi gura 2.5. Este seudocódigo (fi gura
4.1) corresponde al algoritmo que recibe como entrada dos enteros del usuario, suma estos
enteros y muestra su suma en pantalla. Aunque mostramos aquí el listado completo en
seudocódigo, le mostraremos cómo crear seudocódigo a partir de un problema más adelante en
este capítulo. Las líneas 1 y 2 corresponden a las instrucciones 13 y 14 de la fi gura 2.5. Observe
que las instrucciones en seudocódigo son simplemente instrucciones en lenguaje cotidiano que
representan la tarea que se debe realizar en C++. De igual forma, las líneas 4 y 5 corresponden a
las instrucciones en las líneas 16 y 17 de la fi gura 2.5, y las líneas 7 y 8 corresponden a las
instrucciones en las líneas 19 y 21 de la fi gura 2.5.

1.2 ¿Qué es una computadora?

Una computadora es un dispositivo capaz de realizar cálculos y tomar decisiones lógicas a


velocidades de miles de millones de veces más rápidas que los humanos. Por ejemplo, muchas de
las computadoras personales actuales pueden realizar varios miles de millones de sumas en un
segundo. Una persona con una calculadora podría requerir toda una vida para realizar cálculos, ¡y
aun así no podría completar tantos cálculos como los que puede realizar una computadora
personal en un segundo! (Puntos a considerar: ¿cómo sabría que la persona sumó los números de
manera correcta?, ¿cómo sabría que la computadora sumó los números de manera correcta?) ¡Las
supercomputadoras actuales más rápidas pueden realizar miles de millones de sumas por
segundo! Las computadoras procesan los datos bajo el control de conjuntos de instrucciones
llamadas programas de cómputo. Estos programas guían a la computadora a través de conjuntos
ordenados de acciones especificadas por gente llamada programadores de computadoras. Una
computadora está compuesta por varios dispositivos (como teclado, monitor, ratón, discos,
memoria, DVDs y unidades de procesamiento) conocidos como hardware. A los programas que se
ejecutan en una computadora se les denomina software. Los costos de las piezas de hardware han
disminuido de manera espectacular en años recientes, al punto en el que las computadoras
personales se han convertido en artículos domésticos. En este libro aprenderá métodos
comprobados que están reduciendo los costos de desarrollo del software: programación orientada
a objetos y (en nuestro Ejemplo práctico opcional de Ingeniería de Software, acerca de la
construcción de un cajero automático, en los capítulos 2 a 7, 9 y 13) diseño orientado a objetos.

1.3 Organización de una computadora

Independientemente de las diferencias en su apariencia física, casi todas las computadoras


pueden representarse mediante seis unidades lógicas o secciones:

1. Unidad de entrada. Es la sección “receptora” de la computadora. Obtiene información (datos y


programas de cómputo) desde varios dispositivos de entrada y pone esta información a
disposición de las otras unidades para que pueda procesarse. La mayor parte de la información se
introduce a través de los teclados y ratones. La información también puede introducirse de
muchas otras formas, como hablar con su computadora, digitalizar imágenes, enviar fotos y
videos, y mediante la recepción de información desde una red, como Internet.

2. Unidad de salida. Es la sección de “embarque” de la computadora. Toma información que ya ha


sido procesada por ésta y la coloca en los diferentes dispositivos de salida, para que esté
disponible fuera de la computadora. Hoy en día, la mayor parte de la información de salida de las
computadoras se despliega en el monitor, se imprime en papel o se utiliza para controlar otros
dispositivos. Las computadoras también pueden dar salida a su información a través de redes
como Internet.

3. Unidad de memoria. Es la sección de “almacén” de acceso rápido, pero con relativa baja
capacidad. Almacena los programas de la computadora mientras se ejecutan. Retiene la
información que se introduce a través de la unidad de entrada, para que la información pueda
estar disponible de manera inmediata para procesarla cuando sea necesario. La unidad de
memoria también retiene la información procesada hasta que ésta pueda ser colocada en los
dispositivos de salida por la unidad de salida. Por lo general, la información en la unidad de
memoria se pierde cuando se apaga la computadora. Con frecuencia, a esta unidad de memoria se
le llama memoria o memoria primaria. [A través de la historia, a esta unidad se le ha llamado
“memoria básica o magnética”, pero ese término está dejando de utilizarse en la actualidad].

4. Unidad aritmética y lógica (ALU). Es la sección de “manufactura” de la computadora. Es la


responsable de realizar cálculos como suma, resta, multiplicación y división. Contiene los
mecanismos de decisión que permiten a la computadora hacer operaciones como, por ejemplo,
comparar dos elementos de la unidad de memoria para determinar si son iguales o no.

5. Unidad central de procesamiento (CPU). Es la sección “administrativa” de la computadora.


Coordina y supervisa la operación de las demás secciones. La CPU indica a la unidad de entrada
cuándo debe grabarse la información dentro de la unidad de memoria, a la ALU cuándo debe
utilizarse la información de la unidad de memoria para los cálculos, y a la unidad de salida cuándo
enviar la información desde la unidad de memoria hasta ciertos dispositivos de salida. Muchas de
las computadoras actuales contienen múltiples CPUs y, por lo tanto, pueden realizar muchas
operaciones de manera simultánea (a estas computadoras se les conoce como
multiprocesadores).

6. Unidad de almacenamiento secundario. Es la sección de “almacén” de alta capacidad y de larga


duración de la computadora. Los programas o datos que no se encuentran en ejecución por las
otras unidades, normalmente se colocan en dispositivos de almacenamiento secundario, como el
disco duro, hasta que son requeridos de nuevo, posiblemente horas, días, meses o incluso años
después. El tiempo para acceder a la información en almacenamiento secundario es mucho mayor
que el necesario para acceder a la de la memoria principal, pero el costo por unidad de memoria
secundaria es mucho menor que el correspondiente a la unidad de memoria primaria. Los CDs y
DVDs son ejemplos de dispositivos de almacenamiento secundario, los cuales pueden contener
hasta cientos de millones de caracteres y miles de millones de caracteres, respectivamente.

También podría gustarte