Monografias.com > Computación > General
Descargar Imprimir Comentar Ver trabajos relacionados

Elementos básicos de las técnicas digitales



    1. Resumen
    2. Bosquejo
      histórico
    3. Computadoras analógicas
      y digitales
    4. Microelectrónica y
      sistemas de cómputo
    5. Estructura de los sistemas
      de cómputo
    6. Solución de problemas
      empleando sistemas de cómputo
    7. El ambiente
      WINDOWS
    8. Inteligencia
      Artificial
    9. Redes de
      computadoras
    10. Seguridad
      Informática
    11. Anexos

    Resumen

    Una característica fundamental de toda sociedad es su
    desarrollo
    tecnológico, marcado, incluso algunos de ellos,
    períodos concretos, como el caso del uso del vapor en el
    siglo XIX.

    En el caso de la sociedad contemporánea uno de
    los elementos que forma parte indisoluble de la misma, a partir
    de su acelerada introducción en la práctica social
    desde la primera mitad de los años 80, lo constituyen las
    técnicas digitales, que hoy día se encuentran
    presentes, de una u otra forma en todas las actividades y esferas
    de nuestra vida.

    Por otra parte, la propia rapidez de este proceso
    incrementa la cantidad de publicaciones especializadas sobre el
    tema, pero éstas, por razones obvias, cada vez dedican
    menos espacio a los aspectos básicos y caen de lleno en lo
    novedoso que las ocupa, dejando un vació para el lector no
    especializado.

    Tomando en cuenta los aspectos mencionados se
    elaboró el presente trabajo donde,
    el autor a partir de una recopilación
    bibliográfica, que incluye trabajos propios anteriores,
    expone los elementos básicos asociados a la evolución de las técnicas digitales
    y sus aplicaciones, con lo cual facilita la comprensión de
    temas más avanzados a los interesados.

    I. Bosquejo histórico

    La evolución histórica de los sistemas
    informativos y, por supuesto, de las técnicas de
    desarrollo de estos sistemas, puede rastrearse a través de
    la historia de la
    humanidad.

    Desde la época primitiva el hombre
    sintió la necesidad de contar y realizar cálculos
    numéricos, los cuales con el transcurso del tiempo
    resultaban cada vez más complejos y en cuya
    realización empleó los más diversos métodos.

    La forma más elemental consistió en contar
    con los dedos de las manos, que tiene el inconveniente de no
    poder enumerar
    conjuntos de
    más de diez elementos. Como «solución»
    existía la posibilidad de utilizar a otras
    personas!!!.

    El siguiente paso lo realizaron las antiguas
    civilizaciones de Egipto y de
    los valles asiáticos, que consistió en representar
    los números por grupos de
    guijarros en montones de diez. Este método con
    el tiempo derivó en el ábaco,
    que más evolucionado ha llegado a nuestros
    días.

    Hasta el momento, los documentos
    más antiguos que se conocen fueron descubiertos en los
    años 3000 – 2800 ADNE, cerca del antiguo estuario
    del Eufrates, en Mesopotamia,
    pudiendo afirmarse que representaban el soporte físico del
    primer sistema para el
    control
    económico de que se tiene noticia: se trata de libros de
    cuentas y de
    inventarios
    redactados en escritura
    cuneiforme arcadiana en tablillas de arcilla. Paralelamente,
    aparece en Egipto la escritura jeroglífica, destinada
    originalmente a inscripciones en monumentos y
    edificios.

    Ya en los años 79 – 78 ADNE, se construye
    en Roma el
    Tabularium, adoptándose los rollos de papiro empleados por
    griegos y egipcios, que pueden considerarse como uno de los
    primeros archivos
    centrales de un estado.

    En el 868 ya se imprimían libros en China,
    existiendo como prueba de tal aseveración el Sutra del
    Diamante, versión china de un texto budista
    sánscrito.

    Los diseñadores de sistemas informativos en cada
    época histórica se vieron favorecidos por la alta
    estima y consideración de los gobernantes que valoraban
    significativamente sus servicios.

    Así, el diseñador de sistemas
    utilizó para almacenar información piedras (India y
    Tibet), monumentos (Egipto, Mesoamérica), cuerdas
    (Europa, Tibet,
    Imperio Inca), madera
    (Europa) e incluso el cuerpo humano
    mediante tatuajes (Benin), utilizando siempre en su trabajo la
    técnica disponible en su tiempo, reflejando el desarrollo
    de la ciencia en
    la época que les tocó vivir.

    Del ábaco a la primera calculadora mecánica pasaron varios siglos,
    atribuyéndose este hecho al físico y
    matemático Blaise Pascal (1623-62)
    quien dijo al respecto: "Ofrezco al público una
    pequeña máquina de mi iniciativa, con la cual,
    usted sólo, podrá realizar todas las operaciones
    aritméticas sin esfuerzo y se sentirá aliviado del
    trabajo que con harta frecuencia ha fatigado su espíritu
    cuando trabajaba con el ábaco y la pluma".

    El siguiente paso lo dio el matemático
    alemán Liebnitz (1646-1716), quien introdujo a la
    máquina de Pascal la multiplicación de forma
    directa con la rueda dentada escalonada y no mediante sumas
    reiteradas como su predecesora.

    Un nuevo avance se logró con los trabajos de
    Charles Babbage (1792-1817) quien estableció los conceptos
    básicos de las estructuras de
    las computadoras
    digitales y en 1812 propuso la idea de una máquina para
    tabular funciones
    matemáticas tales como logaritmos, etc.,
    mediante aproximaciones de polinomios. En 1822 terminó un
    modelo que
    podía calcular diferencias con seis dígitos de
    precisión y posteriormente propuso construir una que
    utilizaba diferencias de 6to orden con 20
    dígitos de precisión, pero perdió el
    interés
    en ésta cuando concibió su máquina
    analítica, conceptualmente más avanzada, pero
    recibida con escepticismo por sus contemporáneos y que a
    su muerte
    pasó al olvido.

    La continuación de los trabajos de Babbage lo
    realizó su colaboradora Augusta Ada (1815-52) -condesa de
    Lovelace e hija de Lord Byron- la cual desarrolló varios
    programas para
    resolver problemas
    matemáticos avanzados, lo que la convierte en la primera
    programadora en la Historia de la Computación. Igualmente contribuyó a
    exponer, incluso con más claridad, las ideas de Babbage
    entre las que pueden señalarse las siguientes:

    La Máquina Analítica no pretende, en
    absoluto, crear nada. Puede realizar lo que nosotros le
    mandamos.

    En relación con el empleo de
    ciclos repetitivos y las instrucciones de salto expresó:
    "La máquina es capaz de hacer un examen, en ciertas
    circunstancias, para averiguar si se ha producido una
    contingencia posible, dos o más, y seguir después
    el rumbo que convenga.

    En 1888 tiene lugar otro avance significativo, cuando el
    estadístico norteamericano Herman Hollerith inventó
    una máquina que contaba automáticamente los huecos
    perforados en una tarjeta de papel, lo que permitió
    utilizar este soporte para introducir información a los
    sistemas, que estuvo vigente hasta la década de los 70-80
    del siglo XX.

    A partir del desarrollo de la electricidad a
    mediados del siglo XIX y los avances en la electrónica en el siglo XX, la Mecánica comienza a ceder terreno en este
    tipo de aplicaciones y surgen computadoras que emplean
    dispositivos electrónicos (diodos de
    vacío constituidos por dos electrodos encapsulados en una
    ampolla de vidrio al
    vacío entre los cuales circula una corriente y las
    más evolucionadas válvulas
    de vacío que disponen de rejillas colocadas entre los
    electrodos para regular la magnitud de la corriente), las cuales
    aventajan en velocidad,
    tamaño y fiabilidad a las mecánicas.

    Posteriormente, el inglés
    George Boole desarrolló un sistema algebraico para la
    representación de operaciones lógicas, que
    constituyó el germen para el diseño
    de los circuitos
    lógicos y de cálculo en
    las computadoras, y la base matemática
    en que se apoyan algunos métodos actuales de diseño de
    sistemas informáticos y de bases de
    datos.

    En la década del 40, von Newman culmina la
    configuración de la arquitectura
    básica de las computadoras, al combinar los conceptos de
    programa
    almacenado y ruptura de la secuencia del programa mediante la
    toma de decisiones, en tanto en los 50 los trabajos empleando
    semiconductores condujeron al descubrimiento del
    transistor,
    base del desarrollo de los circuitos
    integrados, lo que permitió el tránsito de las
    computadoras de válvulas a las basadas en microprocesadores, cuyo surgimiento en los 70
    originó una profunda transformación, tanto desde el
    punto de vista de la arquitectura de los sistemas de
    cómputo como de las técnicas de cómputo y la
    informática en su conjunto.

    A partir de los finales de la tercera década del
    siglo XX comienza el desarrollo de la primera generación,
    diferentes colectivos de científicos trabajaban
    fuertemente en el desarrollo de dispositivos de cálculo
    automático. Los más significativos fueron Howard
    Haiken y Grace Hopper en Harvards, con los Mark I, II, III y IV;
    J.P. Eckert y J.W. Mauchly en Pennylvania con el ENAC (y
    posteriormente con la UNIVAC I, primera computadora
    electrónica comercializada en el mundo que podía
    almacenar programas y datos); John von
    Newman en Pennsylvania y Cambridge con los EDVAC y EDSAC
    respectivamente, computadoras que tenían programas
    almacenados (conjuntos de instrucciones codificados y
    precableados) que se ejecutaban secuencialmente.

    Los primeros equipos computacionales estaban orientados
    al llamado cálculo científico y los lenguajes se
    vinculaban directamente a la máquina en cuestión,
    asociados fundamentalmente al código
    que ésta empleaba. Fue la etapa heroica, donde
    paralelamente al empleo de los medios de
    cómputo, a la elaboración de los programas,
    surgía toda una teoría
    sobre la programación.

    En estos primeros métodos se insistía
    mucho en la
    organización del flujo informativo entre los elementos
    del sistema, diseño óptimo de la información
    de entrada a la
    computadora, la cual, en su gran mayoría, se soportaba
    sobre tarjetas
    perforadas; el diseño de las tablas de salidas.

    En este momento, Herbert Simón desarrolla en 1956
    los primeros programas heurísticos, con lo que comenzaba a
    tomar cuerpo una disciplina que
    ya cuenta con gran difusión en el mundo: la inteligencia
    artificial y se desarrollan y difunden superlenguajes o lenguajes
    de alto nivel para su utilización en cálculo
    científico: el FORTRAN y el ALGOL.

    Con el surgimiento del transistor, al final de la
    década de los cincuenta, surge la segunda
    generación de computadoras, en la que los tubos al
    vacío son sustituidos por transistores, se
    dispone de sistemas magnéticos de memoria central,
    de memoria
    virtual, dispositivos de micro y
    multiprogramación.

    Quizás el logro más importante de la
    segunda generación de métodos de diseño fue
    la concepción sistemática de las aplicaciones con
    la introducción del SOP (Study Organization Plan), que
    partía de concebir a la entidad como un sistema y
    dividía el trabajo de
    confección de un sistema en tres etapas y seis
    fases.

    Dos aspectos interesantes y novedosos del SOP lo
    fueron:

    • La utilización de documentos diseñados
      ergonómicamente para la concepción de diagramas,
      ficheros, programas y tablas de salida.
    • El cálculo de la eficiencia
      económica del nuevo sistema, como elemento a valorar
      para determinar la prioridad de desarrollo de las tareas a
      automatizar.

    La tercera generación, denominada empirismo
    desarrollado, se caracteriza por la introducción de los
    métodos estructurados, el formalismo y la automatización del diseño, que
    tienen como punto de partida, los hechos siguientes:

    1961: se comercializa el primer circuito
    integrado que sale al mercado.

    1964: con máquinas
    caracterizadas por la integración en gran escala de
    circuitos híbridos y monolíticos, la capacidad de
    manejar multiprocesadores, la multiprogramación de
    tareas, el aumento de la velocidad de procesamiento y de la
    capacidad de memoria, el procesamiento en tiempo compartido y
    el almacenamiento de volúmenes
    significativos de información en dispositivos de acceso
    directo a un costo
    razonable.

    Otro logro muy significativo de la tercera
    generación de computadoras fue el desarrollo del software, tanto
    básico (sistemas operativos, compiladores,
    etc), como utilitario (generadores de programas, programas
    parametrizados de amplia utilización, etc), surgiendo la
    industria del
    software, elaboradora de productos de
    amplia difusión, convirtiéndose la
    informática en una de las ramas de punta del
    desarrollo.

    En el campo metodológico se produce una
    proliferación de enfoques en los métodos empleados
    cuya utilización conduce a la elaboración de
    sistemas metodológicos, llamados genéricamente
    métodos estructurados de análisis y
    diseño de sistemas informáticos, entre los que
    se encuentran:

    Jackson: Abarca el análisis y la programación,
    orientado tanto al análisis por lotes como en tiempo
    real. No se apoya en ningún lenguaje en
    particular, aunque tiene una aplicación casi directa en
    PL/1.

    Constantine. Diseñado
    especialmente para el trabajo en tiempo real.

    Bertini: Prácticamente resulta
    una estructuración del lenguaje COBOL.

    Warnier: Abarca el análisis y la
    programación (Leyes de
    Construcción de Sistemas y Programas),
    que orienta su trabajo fundamentalmente a los datos y a las
    relaciones entre ellos principalmente a las aplicaciones
    aisladas. Estas relaciones se apoyan en los principios de
    la Lógica
    Matemática y la Teoría de
    Conjuntos.

    En general, los métodos estructurados tuvieron
    mucha efectividad en la programación, al aumentar de
    manera significativa la productividad de
    los programadores y reducir la complejidad y el diseño
    incorrecto de los programas.

    No puede decirse lo mismo de la concepción del
    sistema, de su diseño. La mayoría de estos
    métodos reduce el proceso de proyección a un
    conjunto de pasos y de decisiones simples, los cuales, si bien
    son apropiados para especialistas de poca experiencia, con
    frecuencia entorpecen el trabajo de especialistas de mayor
    destreza.

    Otro enfoque fue el de los sistemas metodológicos
    basados en documentación normalizada. Uno de los
    sistemas más conocidos es el de NCC-Systems Documentation
    Standards. El mismo abarca todas las etapas de elaboración
    del sistema, y su rasgo distintivo es la formalización del
    sistema mediante documentos, que deben ser cumplimentados en
    determinado orden por los especialistas.

    El principal inconveniente de estos sistemas
    metodológicos fue la tendencia (inconsciente e
    involuntaria, pero real) a documentar el sistema y no a
    elaborarlo realmente: una tendencia burocrática que ha
    lastrado la eficiencia de muchos buenos especialistas.

    Dentro de la línea de la formalización,
    deben mencionarse los intentos por representar algebraicamente
    los procesos
    informativos.

    Paralelamente, el desarrollo electrónico no se
    detiene. Aumenta la densidad de los
    circuitos integrados. En 1970, se produce el primer RAM de 1024
    bytes. Ello prepara la escena para la aparición, en 1971,
    del primer microprocesador
    comercial, el INTEL 4004, y la primera microcomputadora
    .

    Los pequeños cambios cuantitativos se suceden uno
    tras otro hasta que su acumulación genera el cambio
    cualitativo revolucionario: Steve, Wozniak y Jobs, diseñan
    la Apple II y el mundo de la informática se conmociona,
    surgiendo la cuarta generación. El impacto del Apple II
    fue considerable. Por primera vez, la informática
    salía de los centros de cálculo (técnicos
    altamente especializados, cristales, jerga incomprensible, etc.)
    para invadir las oficinas, los talleres, el aula y el
    hogar.

    Comenzaba, según muchos, la primera gran revolución
    informativa desde Gutenberg. La potencia de
    cálculo, la capacidad de memorización, pero sobre
    todo la sencillez de manejo, el bajo consumo
    energético, las posibilidades de trabajo en condiciones
    ambientales normales y el bajo precio;
    pusieron la computación al alcance de grandes masas no
    especializadas en esas técnicas.

    En este momento la electrónica ejecuta el segundo
    paso, esta vez sobre seguro, pero a su
    vez de muchas mayores dimensiones: IBM entra en el negocio de las
    microcomputadoras con su serie IBM PC (en sus versiones PC, XT,
    AT y posteriormente con el PS/2, éste último un
    fracaso comercial). El mérito principal de esta serie ha
    sido su capacidad de estandarizar la actividad del software: el
    sistema operativo
    MS-DOS se
    convierte en norma internacional por la fuerza de la
    transnacional gigante, lo cual crea el entorno de trabajo
    necesario para el desarrollo de software utilitario a una escala
    inmensa.

    Esta enorme difusión ha propiciado varias
    tendencias:

    Grandes firmas de software concentran los mejores
    especialistas y elaboran programas de alta complejidad
    (utilitarios de diversos tipos, generadores de programas, etc.)
    pero altamente amistosos, para propiciar su utilización
    por personal no
    informático.

    Lo anterior hace que cada vez se difundan y resulte
    más fácil la difusión de las
    técnicas informáticas a personal no
    especializado.

    El empleo de estas técnicas por este tipo de
    personas, ha motivado una alta utilización de las
    computadoras en todas las esferas de la vida, así como el
    diseño de sistemas caracterizados por:

    • Espontaneidad e ineficiencia.
    • Resultados rápidos pero
      incompletos.
    • Participación mayoritaria de especialistas en
      aplicaciones concretas y minoritaria de especialistas en
      informática.

    En este sentido, se están difundiendo algunos
    sistemas que combinan las características y enfoques de
    los métodos estructurados con las ventajas indudables de
    la automatización.

    Uno de los sistemas más conocidos es el
    EXCELERATOR, paquete basado en las técnicas y símbolos que han propuesto Gane y Sarson en
    su método estructurado, el cual permite automatizar un
    volumen
    considerable de tareas en el proceso de creación de un
    sistema automatizado.

    Este acelerado desarrollo técnico permitió
    el acceso masivo al empleo de las técnicas digitales,
    quedando a los especialistas el desarrollo de nuevos programas y
    sistemas que faciliten y amplíen su utilización por
    el creciente número de usuarios.

    II. Computadoras analógicas y
    digitales

    El bosquejo histórico realizado evidencia que el
    punto de partida de los sistemas de cómputo ha estado
    asociado al procesamiento de números (sin importar su
    procedencia), de ahí la importancia de una adecuada
    selección de la notación
    (representación de los números mediante conjuntos
    de símbolos, entre las que pueden señalarse la
    romana que utiliza símbolos alfabéticos
    (I,V,X,L,C,D,M); la decimal que utiliza para la
    representación caracteres numéricos
    (0,1,2,3,4,5,6,7,8,9) y la binaria que caracteriza sus resultados
    por dos estados (verdadero y falso).

    Por otra parte es necesario señalar que los
    números reflejan el comportamiento
    del mundo físico, en el cual los fenómenos se
    manifiestan de dos formas: continua (la transición de un
    estado a otro del sistema se realiza de forma progresiva) y
    discreta (la transición se realiza a saltos), lo que
    motiva a pensar en dos tipos de sistemas computacionales
    diferentes, cuya forma de trabajo se encuentre lo más
    cercana posible a la realidad que refleja: analógico para
    procesos continuos y digital para discretos, que brevemente se
    describen a continuación.

    La utilización progresiva de los tubos de
    vacío en conjunción con otros dispositivos
    permitió obtener circuitos que representan con buena
    aproximación de forma continua la derivada o la integral
    de una función
    representada por las variaciones de voltaje a la entrada del
    circuito. Este procedimiento
    permitió la «solución» de ecuaciones
    diferenciales, dando lugar a las computadoras
    analógicas, en las cuales modificando adecuadamente
    determinadas conexiones electrónicas o valores de
    componentes discretos (resistencias y
    condensadores)
    es posible evaluar la influencia de una o varias magnitudes en el
    sistema físico caracterizado por la ecuación
    diferencial simulada.

    La otra vertiente de los sistemas de cómputo, las
    computadoras digitales, utilizan la notación en base
    binaria, atendiendo a que cada dígito (denominado bit y
    que se utiliza como unidad de información binaria),
    dispone de dos estados (verdadero y falso) lo que facilita el
    tratamiento de la información a través de elementos
    electrónicos, pues cada estado puede asociarse con la
    presencia o no de voltaje en un determinado
    dispositivo.

    La Matemática Binaria opera de la misma forma que
    la decimal, excepto que el valor de cada
    término (bit) sólo puede ser sólo 0 ó
    1. En la tabla 1 se muestra la
    correspondencia entre los valores
    decimales y binario.

    Tabla 1. Ejemplo de empleo de la notación
    binaria

    decimal

    binario

    decimal

    binario

    decimal

    binario

    0

    0

    4

    100

    8

    1000

    1

    1

    5

    101

    9

    1001

    2

    10

    6

    110

    10

    1010

    3

    11

    7

    111

    11

    1011

    La forma más sencilla para comprender la
    Matemática Binaria, es a través de la
    realización de la una operación en ambos sistemas.
    Sea la suma de los números 452 y 751:

    452

    + 751

    —–

    1203

    El procedimiento para sumar los dos números es el
    conocido por todos: se comienza desde la derecha. 2 + 1 = 3. Sin
    problemas. 5 + 5 = 10, se coloca el 0 y lleva 1. 4 + 7 + 1
    (porque llevaba 1) = 12. Se coloca el 2 y lleva 1. 0 + 0 + 1 = 1.
    Así que la respuesta es 1203.

    La Matemática binaria funciona exactamente igual.
    Sea la suma de los números binarios 010 (dos en decimal) y
    111 (siete en decimal).

    010

    + 111

    —–

    1001

    Comenzando desde la derecha, 0 + 1 = 1 para el primer
    dígito. No se lleva nada. 1 + 1 = 10 para el segundo
    dígito, así que colocamos el 0 y se lleva 1. 0 + 1
    + 1 = 10 para el tercer dígito, así que colocamos
    el 0 y llevamos 1. 0 + 1 + 1 = 10 para el tercer dígito.
    Así que colocamos el 0 y llevamos 1. 0 + 0 + 0 + 1 = 1.
    Por tanto, la respuesta es 1001. Si convierte todo esto a
    decimales podrá ver que es correcto: 2 + 7 = 9.

    Sin embargo, la notación binaria hace muy extensa
    la representación de los números lo que dificulta
    la operatoria a nivel de un usuario humano no experto como se
    aprecia en los ejemplos siguientes: el número 16 se
    representa como 1000 y el 255 como 11111111.

    Los bits son raramente vistos en las computadoras. Estos
    casi siempre se agrupan en colecciones de 8-bits, y esas
    colecciones son llamadas bytes.

    Por tanto se hace necesario compactar esta
    representación, lo que dio lugar a dos bases derivadas: octal
    (en desuso) y hexadecimal (empleada en la actualidad), que como
    su nombre indica tienen como base el 8 y el 16 respectivamente.
    En la tabla 2 se ilustra la representación de
    números empleando estas bases.

    Tabla 2. Ejemplo de empleo de la notación octal y
    hexadecimal

    decimal

    octal

    hexadecimal

    decimal

    octal

    hexadecimal

    0

    0

    0

    10

    12

    A

    1

    1

    1

    11

    13

    B

    8

    10

    8

    15

    17

    F

    9

    11

    9

    16

    20

    10

    Aprovechando su capacidad de almacenamiento, los
    caracteres alfanuméricos se asocian al valor de un byte,
    lo que se conoce como código
    ASCII, en el cual cada valor binario entre 0 y 127
    está asociado un carácter específico. La
    mayoría de las computadoras extienden los caracteres
    ASCII para usar
    un rango amplio de los 256 caracteres disponibles en un byte. Los
    caracteres después del 128 ejecutan tareas especiales como
    acentos para ciertos lenguajes. En el Anexo B de este trabajo se
    muestran los 127 códigos ASCII estándar y los del
    ASCII, extendido.

    Cuando se habla de muchos bytes, se utilizan prefijos
    tales como kilo, mega y giga, (kilobyte, megabyte y gigabyte
    también abreviados a k, m y g o KB, MB y GB). La siguiente
    tabla recoge la forma de cálculo de las cantidades de bits
    y el prefijo correspondiente.

    Tabla 3. Unidades binarias

    prefijo

    abreviatura

    cantidad de bits

    forma de cálculo

    cantidad exacta

    Kilo

    K

    1,024

    Mega

    M

    1,048,576

    Giga

    G

    1,073,741,824

    Tera

    T

    1,099,511,627,776

    Peta

    P

    1,125,899,906,842,624

    Estos sistemas se desarrollaron de forma acelerada hasta
    las actuales microcomputadoras, a partir de las posibilidades de
    la microelectrónica, que a finales de los 70
    permitió la fabricación de circuitos complejos
    capaces de agrupar en un mismo dado semiconductor (circuitos
    integrados) diversas estructuras requeridas por los sistemas de
    cómputo, lo que redundó en un incremento de la
    fiabilidad y reducción de las dimensiones, al mismo tiempo
    que posibilitó la creación de una unidad central de
    control estándar, lo que reporta beneficios en
    términos de programación y una reducción en
    los costos que
    facilita el acceso masivo a esta técnica.

    Como consecuencia de este desarrollo, tuvo lugar una
    evolución y significativos avances en las técnicas
    digitales (en la actualidad se emplean a gran escala en todas las
    actividades de la ciencia y la
    técnica como las comunicaciones, control de proceso industriales,
    etc.) las cuales han permitido la asimilación progresiva
    de los problemas solubles mediante las computadoras
    analógicas reduciendo drásticamente la presencia de
    éstas hasta su casi total desaparición.

    III. Microelectrónica y sistemas de
    cómputo

    Considerando el impacto de la microelectrónica en
    el rápido y sostenido desarrollo de las técnicas
    digitales y lo frecuente del empleo de términos como
    capacidad de memoria, microprocesador, etc. es conveniente
    establecer el alcance real de éstos y su
    vinculación con los dispositivos que componen el sistema
    de cómputo.

    En primer lugar es necesario diferenciar los
    términos de microcomputadora de
    microprocesador.

    El microprocesador es un circuito integrado que agrupa
    todos o casi todos los elementos que constituyen la Unidad
    Central del Proceso (UCP), y es capaz de interpretar y ejecutar
    una serie de operaciones (aritméticas, lógicas,
    transferencia de control durante la ejecución de un
    programa, entrada / salida de información de datos) en
    código binario (0 y 1), así como dirigir al resto
    de los componentes que constituyen el sistema; para lo cual
    cuenta con la Unidad Aritmética – Lógica
    y la Unidad de Control, en tanto el término
    microcomputadora designa al sistema de cómputo en su
    conjunto: teclado,
    monitor, etc.,
    que en la actualidad por la potencialidad de que disponen son
    denominadas Estaciones de Trabajo.

    Desde la aparición de estos sistemas se han ido
    desarrollando diversos dispositivos que integran en mismo dado
    semiconductor (chip) diversas funciones (no sólo para el
    desarrollo de sistemas de cómputo), los cuales
    independientemente del fabricante de procedencia exhiben dos
    tendencias comunes: incrementar la velocidad en las operaciones
    internas mediante la incorporación de técnicas de
    microelectrónica avanzadas y el procesamiento
    simultáneo (en paralelo) de mayor cantidad de bits, que se
    conoce como palabra, de la cual la más conocida el es byte
    (conjunto de ocho bits).

    Otro tipo de dispositivo de gran impacto en la
    ampliación de las posibilidades de los sistemas de
    cómputo son las memorias
    semiconductoras, las cuales se clasifican en dos grandes grupos:
    permanentes y volátiles.

    Las memorias semiconductoras permanentes, como su nombre
    lo indica tienen la propiedad de
    retener la información en ellas almacenada por tiempo
    indefinido, o que permite utilizarla para el almacenamiento de
    los programas o rutinas de control de un equipo o sistema. En la
    práctica existen cuatro tipos atendiendo a las opciones de
    grabación de la información:

    • ROM (Read Only Memory; Memorias de lectura
      solamente). Vienen programadas por el fabricante y no es
      posible variar la información contenida. Se emplean para
      almacenar códigos estándar como el utilizado para
      la generación de caracteres
      alfanuméricos.
    • PROM (Programmable ROM; Memorias programables de
      lectura solamente). Pueden ser programadas en una oportunidad
      por el usuario, pero resultan inservibles si se desea modificar
      la información almacenada. Una de sus aplicaciones es la
      sustitución de varios circuitos que generan una
      combinación de salida a partir de una determinada
      entrada.
    • EPROM (Erasable PROM; Memorias programables de
      lectura solamente borrables). Pueden ser programadas en
      reiteradas ocasiones, debido a que la información puede
      ser borrada mediante el empleo de luz
      ultravioleta. Generalmente se utilizan para almacenar el
      programa conocido como BIOS de la
      máquina, que es utilizado por el microprocesador para
      administrar y controlar los recursos de que
      dispone el sistema.
    • E2PROM (Electrically EPROM; Memorias
      programables de lectura solamente borrables
      eléctricamente). Tiene un funcionamiento semejante a las
      EPROM, pero se diferencia de éstas en que el borrado de
      la información almacenada se realiza aplicando un nivel
      de voltaje determinado al dispositivo.

    El otro tipo de memoria, las volátiles,
    denominadas RAM (Random Access
    Memory), a diferencia de las anteriores, permite al usuario
    variar su contenido. Este tipo de componente se emplea en los
    sistemas
    digitales para almacenar los programas que se están
    ejecutando y sus datos, ya que el acceso a la información
    contenida en ellas es cerca de un millón de veces
    más rápida que en un disco duro.
    Desde el punto de vista del usuario es este tipo de memoria la
    que limita las dimensiones del programa y la cantidad de datos
    que pueden procesarse.

    Finalmente, debe mencionarse otro tipo de dispositivo de
    gran impacto en el desarrollo de los sistemas de cómputo:
    los controladores. Estos componentes agrupan en un mismo
    dispositivo los elementos electrónicos necesarios para
    establecer los protocolos
    requeridos para transferencia de datos entre los elementos de
    entrada / salida (memorias RAM, disco duro, teclado, mouse, etc.) y
    el microprocesador, incrementando la velocidad de
    operación y fiabilidad del
    sistema.

    IV. Estructura de
    los sistemas de cómputo

    La organización interna de un sistema de
    cómputo digital puede variar en dependencia de la
    destinación o fabricante, no obstante lo cual existen
    regularidades que son aplicadas casi sin
    excepción.

    Sin embargo, su complejidad hace necesario recurrir a
    las analogías existentes entre éstos y otros
    sistemas más conocidos los cuales facilitan la
    comprensión del funcionamiento de las
    microcomputadoras.

    Para este propósito se seleccionó el ser
    humano, atendiendo a que ha sido utilizado exitosamente con fines
    similares en otros casos, entre los que puede señalarse
    los vehículos automotores, donde incluso condujo a la
    popularización de cambios en la denominación de
    órganos como el de corazón
    por «bomba» en franca alusión al dispositivo
    de este tipo que existe en los automóviles y tiene
    semejante función a la del corazón.

    Por tanto, el primer paso para alcanzar este objetivo es la
    división funcional del sistema analizado, el cual consta
    de dos bloques fundamentales: equipos periféricos que permiten el intercambio de
    información hombre /
    máquina y la Unidad Central de Procesamiento (UCP) que se
    encarga del control, administración de los recursos internos y
    ejecución de las acciones
    solicitadas por el usuario.

    Los equipos periféricos pueden asociarse con
    los sentidos
    humanos, ya que conforman un sistema de recolección de
    información (datos, solicitud de ejecución de
    acciones, etc.) como se ilustra a continuación: un sistema
    de multimedia (con
    micrófono incluido) emula la recepción de
    información a través del sentido de la
    audición y la comunicación oral a partir de la
    emisión de sonidos a través de las bocinas; las
    cámaras digitales de video y el
    escáner
    pueden considerarse como los «ojos» de la
    máquina pues permiten introducir información
    gráfica o de texto directamente al sistema; una impresora es
    equivalente al acto de escribir, en tanto el teclado y el mouse
    pueden asociarse con el sentido del tacto pues reciben
    información a partir «del contacto
    físico» con el medio.

    En la práctica, existe un elemento intermedio
    llamado BUS a través del cual
    se intercambia información entre la UCP y los dispositivos
    de control
    interno y los administradores de los sistemas
    periféricos, que son conjuntos de señales
    eléctricas (datos y comandos) que en
    cada caso particular tienen una o varias funciones
    específicas. En la analogía con el cuerpo humano,
    los buses (existen gran cantidad de ellos) que permiten la
    transferencia de información y energía dentro del
    sistema de cómputo pueden homologarse con las vías
    linfática y circulatoria, por donde circulan dos fluidos
    corporales imprescindibles para la vida (linfa y sangre) pero que
    no se mezclan, y cuando sucede es debido a una enfermedad que en
    la máquina se traduce en una falla, en tanto los buses que
    manejan los protocolos para el manejo e intercambio de
    información y comandos con los periféricos tienen
    su similar humano en los nervios y músculos del cuerpo
    humano.

    En cuanto a la información, una vez que llega a
    la UCP se desencadenan diversos procesos, cuya complejidad hace
    conveniente una nueva separación de actividades atendiendo
    a sus dos funciones fundamentales: administración y control de los recursos
    internos y ejecución de las acciones requeridas o
    solicitadas a través de la interacción hombre /
    máquina.

    La administración de los recursos internos se
    realiza por el microprocesador a partir de la estrategia
    establecida en un programa llamado BIOS, que se encuentra
    almacenado en la memoria
    semiconductora permanente de la máquina y cuya finalidad
    es resolver los conflictos
    (cuando la máquina se vuelve inoperante es debido a la
    ocurrencia de un conflicto no
    resuelto) sin participación del usuario.

    Por tanto, estas acciones resultan transparentes al
    usuario, que percibe su existencia a través de las
    «demoras» en la ejecución de acciones
    solicitadas, de manera análoga al sistema
    parasimpático de nuestro cuerpo que se encarga de las
    funciones vegetativas (digestión, respiración, circulación etc.) y del
    cual tenemos conciencia cuando
    alguna de estas funciones se afecta a causa de una
    enfermedad.

    En cuanto a la función de intercambio de
    información con el exterior y la ejecución de
    acciones solicitadas, se realiza de la forma
    siguiente:

    Sé «copia» en la memoria RAM
    el programa que contiene las acciones solicitadas, para
    incrementar la velocidad de ejecución.

    Ejecución por parte del microprocesador de la
    secuencia de acciones previstas en el programa
    «cargado». Durante este proceso se solicita la
    información requerida si procede y se emiten los
    reportes previstos al alcanzar determinados objetivos.

    En cuanto a la ejecución de los programas es
    conveniente señalar que en la actualidad se utiliza un
    recurso electrónico con manejo estadístico: la
    memoria caché. Esta memoria se manipula de forma
    diferenciada por el microprocesador y en ella se encuentran
    almacenadas las acciones que estadísticamente tienen mayor
    probabilidad
    de volver a ejecutarse, lo que contribuye a disminuir el tiempo
    de acceso a la información por parte del procesador.
    Continuando con la analogía de la computadora con el ser
    humano, la memoria cache
    es un enfoque semejante a la preparación de argumentos
    para defender una tesis previa a
    una discusión de la misma. En este caso cuando surgen
    «imprevistos», entonces es necesario
    «cargar» otros argumentos para enfrentarlos (nuevas
    acciones en el caso de la máquina) lo que provoca en ambos
    casos una demora mayor en la respuesta.

    Como se ha visto, las computadoras digitales basan su
    trabajo en señales eléctricas que transitan entre
    dos niveles de voltaje, a los cuales se les asocian dos estados
    lógicos (0: ausencia de voltaje; 1: presencia de un
    determinado nivel de voltaje).

    Sin embargo, este procedimiento para desarrollar
    aplicaciones tiene varias desventajas:

    La programación de sistemas voluminosos es
    engorrosa y dificulta la puesta a punto y detección de
    errores.

    Resulta difícil de analizar, incluso por
    quienes los elaboran cuando ha pasado un cierto período,
    cuando es necesario realizar alguna modificación para
    incorporar una nueva facilidad o corregir un error no detectado
    durante su prueba.

    Adicionalmente, es necesario una interfaz que administre
    los recursos de la máquina y armonice las peticiones del
    usuario al sistema, por lo cual en los sistemas de cómputo
    existe una plataforma para este propósito: el Sistema
    Operativo, el cual fundamenta su trabajo en el manejo y
    utilización de archivos (ficheros) y la ejecución
    de comandos.

    En la actualidad se ha desarrollado para las
    microcomputadoras un medio
    ambiente, WINDOWS, que
    pone a disposición del usuario los recursos de una manera
    nemotécnica sencilla: iconos (rectángulos que
    emulan teclas), que al ser seleccionados desencadenan la
    operación o comando asociado al mismo.

    En cuanto al otro elemento fundamental, los ficheros,
    éstos pueden clasificarse en dos grandes
    grupos:

    Ficheros ejecutables. Están constituidos por
    conjuntos ordenados de bits que contienen secuencias de
    operaciones que pueden ser interpretados directamente por el
    Sistema Operativo (código de máquina) y que el
    usuario NO puede modificar. Su función es permitir al
    usuario establecer y modificar los datos necesarios, así
    como seleccionar entre los procedimientos
    alternativos para resolver un problema o realizar directamente
    una función específica para la cual fue
    desarrollado. En esta categoría se incluyen los
    lenguajes de computación (FORTRAN, PASCAL, BASIC, C),
    procesadores de
    texto (Word
    Perfect, WORD), hojas de
    cálculo (LOTUS, EXCEL),
    sistemas para el manejo de bases de datos (DBASE, FOXPRO,
    ACCESS),
    archivos que conforman el Sistema Operativo, etc.

    Ficheros de datos. Son aquellos ficheros que contienen
    la información requerida por un programa para realizar
    determinadas operaciones o brindar un resultado. Estos archivos
    son creados por el usuario para almacenar información
    mediante programas de propósito general (bases de datos,
    hojas de cálculo, documentos de texto) o
    específicos (programas de aplicaciones) que sólo
    pueden ser modificados con el programa que los
    creó.

    Por su importancia merecen un tratamiento particular los
    archivos ejecutables correspondientes a los lenguajes de
    programación, los cuales permiten al usuario
    establecer una estrategia para la ejecución de operaciones
    y procesamiento de
    datos (un plan de trabajo para la máquina) a partir de
    la combinación de operaciones lógicas,
    aritméticas y ruptura de secuencias condicionalmente y
    cuyo resultado es un archivo
    ejecutable (NO MODIFICABLE) que con iguales condiciones de
    entrada conduce siempre al mismo resultado y que puede repetirse
    «tantas veces como se quiera». Para alcanzar este
    objetivo, cada lenguaje establece un conjunto de reglas
    particulares para utilizar letras, números y
    símbolos en la programación.

    En cuanto al desarrollo de programas, es necesario
    significar que al comienzo de la vida de una entidad se
    desarrollan programas que parecen ser definitivos e inalterables,
    pero poco a poco la realidad se hace sentir en forma de
    modificaciones y reformas que van socavando su estructura
    inicial. Esto conduce a que un programa incapaz o difícil
    de ser modificado, hace que caiga en desuso y se abandona al cabo
    de algún tiempo.

    Bajo este punto de vista comenzó poco a poco un
    marcado énfasis en las tareas de mantenimiento
    de programas, es decir, su adaptación a los cambios tales
    como: aumento de volumen en los datos y ficheros, cambios en la
    organización de los ficheros y los reportes de resultados
    finales o de operaciones intermedias, modificaciones en el
    procesamiento de datos, etc.

    Finalmente, es necesario significar que los archivos se
    denotan mediante un nombre (hasta ocho letras en el Sistema
    Operativo MS-DOS y prácticamente ilimitado en ambiente
    WINDOWS) que se escoge de forma que permita identificar
    fácilmente su contenido o destino y una extensión
    (tres letras máximo) que permite identificar la
    función o procedencia de un archivo y que constituye
    «un sello de familia».
    Así pueden señalarse diversas extensiones
    predeterminadas, algunas de las cuales se muestran en la
    siguiente tabla.

    Tabla 4. Ejemplos de extensiones
    predeterminadas

    extensión

    características

    DOC

    Documento Word.

    XLS

    Hojas de cálculo EXCEL.

    MDB

    Base de Datos de ACCESS.

    DBF

    Base de Datos de DBASE y FOXPRO.

    BMP

    Es el formato que se utiliza para mostrar imágenes en el WINDOWS y debe
    emplearse para este propósito.

    GIF

    Es un formato desarrollado para permitir la
    transferencia de imágenes de forma independiente del
    dispositivo donde fue obtenida y soporta 256 colores.

    Nótese, que estas extensiones predeterminadas NO
    deben utilizarse para denotar ficheros con otras funciones, pues
    confunden a otras personas y ocasionan errores de
    ejecución cuando se trata de trabajar con éstos
    empleando programas específicos que manipulan este tipo de
    información.

    V. Solución de problemas empleando sistemas
    de cómputo

    V.1 Aspectos
    generales

    Como se ha expresado, los sistemas de cómputo se
    utilizan ampliamente hoy día en la solución de los
    más diversos problemas de la ciencia, la ingeniería, la economía, etc.,
    atendiendo a su versatilidad, facilidades de manipulación,
    posibilidad de estas máquinas para trabajar a muy alta
    velocidad, almacenar grandes volúmenes de
    información y realizar con éstos largas y complejas
    operaciones para «brindar soluciones
    exactas».

    Sin embargo, es importante resaltar que la computadora
    «no resuelve el problema
    planteado»
    sino que ayuda a explorar las
    diferentes alternativas que el problema en cuestión
    plantea al especialista, es decir, no podemos pensar en la
    computadora brindando respuesta a preguntas como las siguientes:
    ¿Cómo construiré este nuevo equipo?,
    ¿Cómo trabajaría el sistema bajo una serie
    de condiciones si se construye de esta forma?, ya que existen
    diversas maneras de construir un equipo, hay varias condiciones
    de operación a tener en cuenta y pueden obtenerse
    resultados diferentes en dependencia de la valoración y de
    las facilidades con que se pretenda dotar al equipo, algunas de
    las cuales constituyen un compromiso para el
    diseñador.

    Por tanto, la computadora no puede enumerar las
    consideraciones de diseño, especificar las condiciones de
    operación que deben investigarse, determinar cuáles
    son los resultados o plantear nuevas alternativas cuando existe
    un compromiso entre ellas. La computadora puede ser útil
    para predecir las consecuencias de nuestras decisiones en este
    aspecto del problema, por lo cual antes de acometer el desarrollo
    de un programa o evaluar la concurrencia de proveedores
    deben evaluarse los aspectos siguientes:

    ¿Qué necesito?. La respuesta debe
    incluir tipos y volumen de datos que deben procesarse y
    almacenarse, qué se propone medir y qué tipos de
    resultados se esperan y en qué forma resultan adecuados
    para su interpretación, gráficos, tablas, etc. Es importante
    señalar que esta evaluación no sólo debe responder
    a las necesidades actuales, sino contemplar la
    proyección futura.

    ¿Cómo se manipulan los datos?. El
    formato utilizado para el almacenamiento de los datos tiene
    especial importancia pues el empleo de variantes propias de un
    fabricante limita o imposibilita según sea el caso, el
    intercambio de información con otras aplicaciones
    existentes. Otro aspecto de interés es la posibilidad de
    conectar al sistema, a través de manipuladores
    estándar como el puerto serie y PSB diversos
    periféricos.

    ¿Cuán fácil de configurar y
    utilizar es el programa de análisis?. El proveedor debe
    suministrar un programa demostrativo que permita evaluar la
    complejidad de configurar y utilizar el programa, antes de su
    adquisición. Este demo debe disponer de datos, sino
    reales, al menos lógicos que permitan evaluar en primera
    instancia sus resultados.

    ¿Cómo se puede probar el programa?. Los
    programas demostrativos no son muy útiles para este
    propósito, pues tienen el énfasis en las
    facilidades usuario y generalmente no tienen opciones que
    permitan probar la fortaleza de operación. Es importante
    determinar como el programa maneja los problemas de overflow,
    divisiones entre cero y otras condiciones extremas, así
    como el manejo simultáneo de gráficos de
    distintos tipos, importación de datos y algoritmos
    de procesamiento.

    ¿Qué características tiene la
    documentación y el soporte técnico?. La
    documentación debe disponer de un Manual de
    Usuario y de una detallada descripción de las opciones del
    menú. En cuanto al soporte técnico, éste
    debe estar garantizado aún cuando se sustituye por una
    nueva versión.

    ¿Puede programarse el sistema?. Un aspecto que
    debe evaluarse es la disponibilidad de facilidades que permitan
    conformar macro instrucciones para las tareas
    periódicas.

    ¿Cuánto necesito conocer acerca del
    análisis de datos?. En cualquier caso, deben estar
    definido los elementos de procesamiento que se requieren, en
    particular los algoritmos específicos de la actividad
    que generalmente no se encuentran incorporados de oficio por
    los proveedores en las aplicaciones, tales como tales como
    Transformada de Fourier o Laplace,
    solución de Sistemas de Ecuaciones
    Diferenciales, etc.

    ¿Cuán flexibles son las salidas gráficas?. La presentación
    gráfica de resultados es una manera ventajosa y por
    tanto debe brindar las opciones que resulten sencillas para su
    análisis.

    ¿Qué garantía de
    devolución de pagos por rechazo ofrece el proveedor?.
    Otro factor que reviste importancia cuando se va a determinar
    la adquisición de un programa es la oferta de
    alternativas de compensación o reembolso que establece
    el proveedor en los casos de no-aceptación. Otra
    variante que generalmente se presenta combinada con la anterior
    es el tiempo de prueba de aceptación por parte del
    usuario.

    ¿Qué beneficios obtengo por el empleo
    del programa?. Habitualmente se analiza el costo de la inversión en términos de los
    resultados esperados, pero en el caso de las aplicaciones
    informáticas existen dos aspectos adicionales que deben
    considerarse: seguridad y
    costo de la adquisición de las versiones mejoradas y si
    existe la seguridad de que éstas se realizarán,
    así como el costo del total que representan las opciones
    que existen en el programa y que no son útiles para la
    aplicación.

    Antes de concluir este aspecto, debe señalarse
    que como parte de la etapa de concepción inicial de
    cualquier programa, es necesario establecer las vías para
    garantizar ka protección ante los errores en que puede
    incurrir el operador del programa. LOS PROGRAMAS SON PARA
    SER UTILIZADOS POR SERES HUMANOS QUE TIENEN PROBLEMAS Y SE
    EQUIVOCAN.

    El primer paso en el blindaje a los errores es
    determinar cuáles son los posibles y cuáles son los
    que se van a proteger, para lo cual es conveniente tomar en
    consideración los siguientes factores:

    • Errores que interrumpen la ejecución del
      programa, como son las divisiones por cero, el cálculo
      de logaritmos de números negativos, raíces
      cuadradas de números negativos, etc. Este tipo de error
      puede ser detectado, brindando opciones de recuperación
      al usuario.
    • Los que conducen a resultados erróneos, que
      son los que se cometen por falta de atención o insuficiente conocimiento
      de los datos requeridos por el programa. El blindaje a estos
      errores está casi exclusivamente en el sentido
      común del usuario
      al evaluar los resultados y en
      la revisión de los datos de partida que nunca
      está de más.
    • Complejidad que reviste el blindaje. Una
      detección de errores puede hacerse tan compleja como se
      desee, pero no debe convertirse en el centro del programa.
      Cuando un programa requiere de muchas protecciones generalmente
      es que la interacción con el usuario no es la más
      conveniente. En este caso debe evaluarse otro
      método.
    • Errores que conllevan a la pérdida de
      información, que tienen que ser implementados
      siempre.

    Entonces, ¿para qué sirve la
    microcomputadora?. Para responder a esto es necesario aclarar que
    «Resolver un problema» con una
    computadora es un proceso mucho más complejo que el
    trabajo que ejecuta la máquina y que en líneas
    generales requiere de los pasos siguientes:

    • Primer paso: Identificación del
      problema y definición de objetivos. Consiste en
      seleccionar un método general para la solución,
      decidir qué combinaciones de objetivos cumplir y
      especificar las condiciones que debe satisfacer. Igualmente
      es imprescindible definir concretamente cuál resultado
      se considera solución del problema.
      En este paso se
      requiere de un conocimiento completo del problema y puede
      resultar de poca ayuda la computadora.
    • Segundo paso: Modelación del
      problema. Generalmente existen varias maneras de modelar un
      problema entre las cuales debe escogerse una o desarrollar una
      nueva cuando ninguna de las existentes satisface los objetivos
      planteados.
    • Tercer paso: Análisis
      numérico. La formulación matemática del
      problema no es directamente traducible a la computadora, ya que
      ésta sólo puede ejecutar operaciones
      aritméticas y ejecutar decisiones simples. Esto implica
      que las integrales,
      ecuaciones de todo tipo deben ser expresadas en forma de
      operaciones simples y es necesario evaluar los errores
      inherentes a los datos y los introducidos por la máquina
      con vistas a evitar que sean inútiles los
      resultados.
    • Cuarto paso: Programación de la
      computadora. Los procedimientos numéricos deben
      establecerse como una serie de operaciones bien definidas, que
      generalmente se realizan en dos pasos: concepción del
      programa en un diagrama de
      bloques funcionales, es decir, se establece la estrategia de
      solución que permite expresar de forma más clara
      lo que se quiere hacer, pero que no puede ser entendido por la
      computadora. Una vez concluido este trabajo, se traduce a un
      lenguaje de computación que si puede ser entendido por
      la máquina que se conoce como programa en el cual se
      define la secuencia de operaciones y las decisiones
      condicionadas por el valor que tengan en ese momento
      determinadas magnitudes del problema objeto de
      solución.
    • Quinto paso: Verificación del
      programa. Después de traducir el problema a un programa
      debe verificarse con datos cuyos resultados sean conocidos o
      permitan fácilmente determinar su veracidad y de esta
      forma evaluar si el programa satisface los objetivos y
      exigencias previstas.
    • Sexto paso: Utilización del
      programa. La utilización del programa es el momento
      donde se realizan combinaciones de datos
      «coherentes» para obtener resultados
      que permitan tomar decisiones certeras al enfrentar el problema
      que resuelve el programa.

    Como se aprecia, las computadoras digitales están
    restringidas en sus operaciones a aquello que el hombre es capaz
    de «decirle», por lo cual su principal ventaja radica
    en la realización de estas operaciones a muy alta
    velocidad y a procesar grandes volúmenes de
    información «sin sufrir cansancio ni cometer
    errores».

    V.2 Soluciones
    numéricas a problemas

    Las respuestas numéricas a problemas es una de
    las aplicaciones de gran difusión e importancia por la
    cual merecen un tratamiento independiente.

    En estas aplicaciones el aspecto de mayor importancia
    radica en que los datos generalmente contienen errores y que se
    originan en las cuatro áreas fundamentales siguientes y
    que deben ser considerados al interpretar los resultados
    obtenidos:

    Errores por parte del operador durante el proceso de
    incorporación de los datos al sistema. Este tipo de
    error no puede ser ignorado. Si existen errores en los datos,
    las soluciones o resultados que proporciona el sistema
    serán inútiles en su totalidad o de manera
    parcial, en dependencia de la magnitud del error. Esta
    posibilidad hace que los resultados obtenidos deben ser
    analizados críticamente y no confiar ciegamente en los
    mismos. La revisión de los datos utilizados es una forma
    de minimizar la presencia de este tipo de error.

    Inherentes a la formulación del problema. El
    procedimiento para reducir este tipo de error es mejorar el
    modelo utilizado en la formulación del problema hasta
    que el error a que conduce permita trabajar con los datos de
    que se dispone y obtener resultados válidos.
    Generalmente la precisión del modelo está
    estrechamente relacionada con el
    conocimiento existente del problema cuya solución se
    acomete. Es importante señalar que este tipo de error
    condiciona la validez de los resultados sin importar cuan
    exactos sean los cálculos numéricos realizados
    por la máquina.

    Las relacionadas con la incertidumbre en la
    determinación de los datos. Este problema es causado por
    el error en los instrumentos de
    medición utilizados, y su reducción se logra
    empleando instrumentos de una calidad que
    esté en correspondencia con la precisión
    deseada.

    Aquellas en que se incurre durante la
    determinación numérica de la solución y
    que se encuentran asociados a la representación
    necesariamente aproximada en la computadora mediante un
    número finito de dígitos de los números
    reales tales como el resultado de la división de 2 entre
    3, los números e y p , etc. y pueden ser de dos tipos:

    Errores por truncamiento. Son los errores que
    provienen del cálculo numérico de una
    expresión cuando se desprecian a partir de un
    término los restantes dígitos.

    Errores por redondeo. Es el conocido por el hecho de
    que los cálculos aritméticos casi nunca pueden
    llevarse a cabo con una completa exactitud, ya que muchos
    números que tienen una representación decimal
    infinita deben ser expresados de forma finita.

    Desde el punto de vista computacional, para reducir
    estos errores, se emplean entre otras las siguientes
    recomendaciones:

    Cuando se van a sumar o restar números,
    trabajar siempre con los números más
    pequeños PRIMERO siempre que sea posible,
    evitando la sustracción de dos números
    aproximadamente iguales.

    Una expresión a(b-c) puede escribirse como
    ab-ac y (a-b)/c como a/c-b/c. Si hay números muy
    cercanos entre paréntesis ejecutar la resta antes de la
    multiplicación y la división.

    Utilizar números de doble precisión
    (utilizan mayor cantidad de bytes para representar los
    números reales). Tiene el inconveniente de que requiere
    de más capacidad de memoria RAM en el
    sistema.

    Para evaluar el impacto en los resultados del acarreo de
    errores en una expresión o cálculos sucesivos, se
    emplea el procedimiento de la propagación de
    errores:

    • Error absoluto. Es la diferencia existente entre el
      valor "verdadero" de una magnitud y el obtenido de la
      práctica, que matemáticamente se representa
      mediante la expresión.

    donde:

    x : valor medido.

    xr : valor verdadero.

    d x :
    error absoluto.

    • Error relativo. Es el cociente obtenido de la
      división del error absoluto y el valor verdadero, dado
      mediante la expresión

    A partir de la definición puede calcularse la
    propagación del error en las operaciones
    aritméticas que se muestran en la tabla 5.

    Tabla 5. Propagación del error en las operaciones
    fundamentales

    Operación:

    Magnitudes:

    Error:

    suma / resta

    x ± y

    ± (d x + d y)

    multiplicación

    xy

    yd x + xd y

    división

    x/y

    » ()

    V.3 Elementos de
    programación secuencial

    V.3.1 Recursos
    generales disponibles

    El desarrollo de cualquier lenguaje de
    programación consta de varias etapas que abarcan desde
    la definición de las características del lenguaje
    hasta la implementación de una interfase que genera el
    código de máquina a partir del programa elaborado
    por el programador.

    Existen tres tipos diferentes de interfaces destinadas a
    este fin que son:

    Ensambladores, que permiten programar directamente en
    lenguaje de máquina y generan un programa en
    código de máquina.

    Intérpretes, que permiten desarrollar un
    programa, creando un código intermedio. La ventaja de
    estas interfaces es que hacen al intérprete
    independiente de la máquina, pero no generan
    directamente un código ejecutable, sino que debe ser
    pasado por un traductor para su ejecución.

    Compiladores, generan directamente un programa en
    código de máquina a partir de las instrucciones
    programadas.

    No obstante estas diferencias, en todos los casos para
    la elaboración de programas existen el conjunto de
    regularidades siguientes:

    Disponen de un conjunto de caracteres y
    símbolos que en cada caso tienen una
    interpretación diferente, algunos de los más
    comunes se muestran en la tabla 6.

    Tabla 6. Símbolos permitidos

    Símbolo

    Representación

    Símbolo

    Representación

    letras

    A..Z, a..z

    agrupación

    ( ) [ ]

    dígitos

    0..9

     

     

    Otro aspecto de importancia para la programación
    empleando cualquiera de las interfaces antes descritos, es el
    significado especial de algunas palabras (palabras reservadas),
    las cuales NO PUEDEN SER UTILIZADAS PARA OTROS FINES QUE LOS
    ASIGNADOS POR EL FABRICANTE
    y que suelen denominarse palabras
    reservadas del lenguaje, un ejemplo de las cuales se relacionan
    en la tabla 7.

    Tabla 7. Ejemplos de palabras reservadas y su
    significado.

    Palabra reservada:

    Significado:

    and

    Expresa la operación lógica
    «Y»

    div

    Indica la división entera de dos
    números

    goto

    Establece un salto en la secuencia de
    ejecución del programa

    V.3.2 Estructuras para
    la evaluación de alternativas

    V.3.2.1 IF … THEN …
    ELSE

    Esta estructura está concebida para permitir
    seleccionar entre dos conjuntos de instrucciones cuál de
    ellas ejecutar en dependencia de una condición
    lógica preestablecida, como se muestra en los siguientes
    ejemplos:

    IF * profesor
    escribe THEN ** los alumnos toman notas

    ELSE ** los alumnos atienden

    IF * pizarra llena THEN ** borrar
    parcialmente

    ELSE ** continuar escribiendo.

    IF * terminó la clase THEN
    ** borrar la pizarra.

    * : condición

    ** : secuencia de instrucciones.

    Gráficamente, esta estructura puede ser
    representada como se ilustra en la figura 1:

    V.3.2.2 CASE …
    OF

    Es una generalización de la anterior, en el
    sentido de que permite escoger entre un conjunto "infinito" de
    caminos en dependencia de una condición que devuelve una
    constante, a diferencia de la estructura IF…THEN…ELSE que
    utiliza una sola condición lógica, como se aprecia
    en los siguientes ejemplos:

    CASE *alumno OF

    ** presente *** salida1

    ** ausente *** salida2

    ** llegó tarde *** salida3

    ** tiene trabajo fuera *** salida4

    CASE * color
    OF

    ** amarillo *** salida1

    ** morado *** salida2

    ** rojo *** salida3

    ELSE ***salida4

    * condición

    ** constante que devuelve el selector

    *** secuencia de instrucciones que se ejecuta en cada
    caso

    En la figura 2 se muestra esquemáticamente el
    modo de operación de esta estructura.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    V.3.3 Estructuras para
    la ejecución reiterada de
    acciones

    Son diversos los ejemplos de problemas en los cuales se
    requiere de repetir una cierta cantidad de veces determinadas
    acciones, para lo cual en los lenguajes de programación
    disponen básicamente de las tres estructuras que se
    detallan a continuación.

    V.3.3.1 FOR … TO
    (DOWNTO)… DO

    Esta estructura se utiliza cuando un conjunto de
    instrucciones debe repetirse un cierto número de veces que
    se establece durante la ejecución del programa. El control
    del número de ejecuciones puede efectuarse en forma
    ascendente (TO) o descendente (DOWNTO) de uno en uno, como se
    ilustra en los ejemplos siguientes:

    FOR * primer alumno TO ** último alumno
    DO

    *** mostrar las notas de alumnos, una a una con pausa
    para efectuar su lectura.

    FOR * primer alumno TO ** último alumno
    DO

    *** sumar las notas de alumnos para calcular el promedio
    de las calificaciones.

    * condición de comienzo

    ** condición de terminación

    *** secuencia de instrucciones

    Desde el punto de vista gráfico esta estructura
    puede representarse mediante la figura 3.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    V.3.3.2
    WHILE…DO.

    Esta sentencia es otra forma de repetir la
    ejecución de un conjunto de instrucciones un número
    de veces, pero que a diferencia del FOR…TO(DOWNTO)…DO se
    ejecuta mientras se cumpla una condición preestablecida la
    cual tiene que cumplirse en alguna ocasión, ya que en caso
    contrario el programa cae en un lazo infinito. La
    modificación de la condición se realiza como parte
    de los resultados obtenidos en el conjunto de instrucciones que
    se ejecutan repetitivamente, como en los ejemplos que se muestran
    a continuación.

    WHILE *no sea hora de receso DO ** desarrollo de la
    clase

    WHILE * receso DO **conversar con los
    compañeros

    * condición

    ** conjunto de instrucciones

    Desde el punto de vista gráfico esta estructura
    puede representarse mediante la figura 4.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    ES IMPORTANTE SEÑALAR QUE ESTA ESTRUCTURA
    PREGUNTA SI SE CUMPLE O NO LA CONDICION ANTES DE EJECUTAR POR
    PRIMERA VEZ EL CONJUNTO DE INSTRUCCIONES REPETITIVAS,

    por tanto, es posible que la secuencia de instrucciones que
    abarca nunca se ejecute.

    V.3.3.3.
    REPEAT…UNTIL

    Al igual que las dos últimas estructuras
    descritas, permite realizar ciclos cuya cantidad de veces se
    determina no por un número sino por una condición,
    pero a diferencia del WHILE…DO esta estructura ejecuta el
    conjunto de instrucciones una vez al menos y después
    pregunta por la condición. A modo de ejemplos pueden
    señalarse los siguientes:

    REPEAT

    * conversar con los compañeros

    UNTIL ** termine el receso

    REPEAT

    * contar el número de bicicletas

    UNTIL hora prefijada

    * condición

    ** conjunto de instrucciones

    Desde el punto de vista gráfico esta estructura
    puede representarse mediante la figura 5.

    Para ver el gráfico seleccione la
    opción "Descargar" del menú superior

    V.3.4
    Operadores

    Los lenguajes de programación disponen de
    operadores, ya que durante la programación en cualquier
    tipo de lenguaje es necesario realizar operaciones de tipo
    aritméticas y lógicas y en dependencia del lenguaje
    la representación de estos operadores varía. De
    forma general puede decirse que existen los tres tipos de
    operadores siguientes.

    V.3.4.1
    Aritméticos

    Una de las principales aplicaciones de los lenguajes de
    programación es la solución de problemas
    numéricos, los cuales llevan implícitamente la
    realización de operaciones aritméticas las cuales
    requieren de la definición de operadores de este tipo, tal
    es el caso de los mostrados en la tabla 8.

    Tabla 8. Operadores aritméticos

    Operador

    Función

    Ejemplo

    +

    suma

    a + b

    resta

    a – b

    *

    multiplicación

    a * b

    /

    división real

    a / b

    div

    división de números
    enteros

    a div b

    mod

    resto de una división entera

    a mod b

    V.3.4.2 De
    relación

    Otro tipo de operador de amplia utilización
    durante la elaboración de un programa son los operadores
    de relación, que nos permiten comparar dos o más
    magnitudes, una variante de los cuales se muestran en la tabla
    9.

    Tabla 9. Operadores de relación

    Para ver la tabla seleccione la
    opción "Descargar" del menú superior

    V.4.3.3
    Lógicos

    Son los que permiten durante la programación
    escoger la realización de diversos conjuntos de sentencias
    o instrucciones en dependencia del resultado de determinadas
    proposiciones lógicas, que se basan en la Lógica
    Preposicional, la cual se hace corresponder a cada átomo un
    elemento del conjunto {V (verdadero),F (falso)}de acuerdo a las
    siguientes funciones lógicas, que se recogen en la Tabla
    10.

    Tabla 10. Operadores lógicos
    fundamentales.

    Para ver la tabla seleccione la
    opción "Descargar" del menú superior

    * niega el resultado que existe al ser aplicado el
    operador: si el valor es falso devuelve, verdadero y
    viceversa.

    ** devuelve verdadero cuando alguna magnitud
    lógica es verdadera.

    *** devuelve verdadero cuando todas las magnitudes
    lógicas involucradas en la operación son
    verdaderas.

    **** devuelve verdadero cuando una cualquiera de las
    magnitudes lógicas difiere del valor de las restantes
    operaciones y falso en alguna otra condición.

    En la tabla 11 se muestran ejemplos de operadores
    lógicos

    Tabla 11. Operadores lógicos

    Operador

    Función

    Ejemplo

    NO

    negación
    lógica

    NO A

    O

    "O" lógico

    A O B

    Y

    "Y" lógico

    A Y B

    V.3.5 Otros
    recursos

    En la práctica, para llevar a cabo la
    programación se requiere de otras facilidades, entre las
    que pueden enumerarse las siguientes.

    Constantes. Son magnitudes de tipo
    numérico (fundamentalmente) que permiten manejar una
    magnitud no con su valor sino con una representación
    simbólica que facilita la comprensión del
    programa. Por ejemplo puede definirse: pi=3.1415…; e=2.71…,
    etc.

    Tipos. Permite definir tipos de
    estructuras de datos a partir de los estándares del
    lenguaje, los cuales facilitan el manejo, almacenamiento y
    acceso a la información. Por ejemplo puede definirse
    que: la magnitud color, a la que pueda exhibir los valores,
    rojo, verde, azul, magenta y cian; la magnitud animal puede
    adoptar los valores gato, león, pantera, etc.

    Variables. Constituyen las magnitudes
    dinámicas de un programa y son las que reciben valores
    durante la ejecución de éste, en dependencia de
    los cuales se toman decisiones o se realizan nuevas
    operaciones. Por ejemplo, puede definirse suma para almacenar
    la suma de diversos números.

    Funciones. Es una facilidad para
    unificar un conjunto de instrucciones que se ejecuta en
    diferentes partes del programa las cuales a partir de un
    grupo de
    datos realiza un conjunto de operaciones cuyo fin es obtener un
    resultado que debe ser asignado a UNA VARIABLE para su
    posterior uso en el programa.

    V.3.6 Lenguajes de
    programación de alto
    nivel

    Con el desarrollo de la computación han surgido
    diversos lenguajes de programación los cuales responden en
    algunos casos a necesidades específicas de determinadas
    aplicaciones en tanto otros se corresponden con nuevas
    técnicas de programación. Veamos algunos
    ejemplos:

    • Desarrollo de un nuevo concepto o una
      nueva área de aplicación que demande su propio
      lenguaje: cálculo numérico, FORTRAN y
      aplicaciones aeroespaciales, FORTH.
    • A partir de las experiencias con un lenguaje y el
      conocimiento de sus deficiencias como el COBOL a partir del
      FLOWMATIC.
    • Es más fácil introducir nuevas
      capacidades y cambiar de estilo con un nuevo lenguaje que
      extender o modificar uno existente.

    Definición de lenguaje de programación. Se
    acostumbra denominar «lenguajes de programación o
    lenguajes de alto nivel» independiente de la
    máquina, a los lenguajes que disponen de un conjunto de
    caracteres (finito) y reglas para combinar a éstos cuyas
    características fundamentales son:

    Se pueden escribir programas en él, lo que
    lleva implícito que potencialmente se pueda instrumentar
    un programa (compilador, traductor, intérprete) que haga
    factible la ejecución de estos programas en una
    computadora.

    No es necesario el conocimiento del código de
    máquina para programar en este lenguaje.

    Existe facilidad para pasar de un programa escrito en
    un lenguaje a otro lenguaje.

    Existe una «explosión» de
    instrucciones, es decir, a una instrucción en el lenguaje
    le corresponden en general varias instrucciones de
    máquina.

    Su notación es más cercana al problema
    original en que se quiere aplicar, en relación con el
    código de máquina o ensamblador.

    Se incorporan facilidades de diferentes lenguajes
    combinados en uno más simple.

    Es más fácil introducir nuevas
    capacidades y cambiar el estilo con un nuevo lenguaje que
    extender o modificar uno existente.

    Hay preferencias personales y prejuicios con los
    lenguajes que existen en cuanto a que puedan servir para el
    propósito, por lo cual se diseña una
    nuevo.

    En la práctica se han desarrollado diversos
    lenguaje de alto nivel como son los siguientes:

    FORTRAN (FORmula TRANslator). Diseñado para el
    cálculo numérico científico, es el primer
    lenguaje de alto nivel, que abre las puertas de la
    computación a muchos científicos e ingenieros
    debido a:

    Es el primer lenguaje de programación que
    aprende mucha gente y eso crea hábitos.

    Cualquier configuración de cómputo
    tiene un compilador de FORTRAN.

    Permite obtener un código de máquina
    muy eficiente.

    La existencia de una versión estándar
    ha permitido un amplio uso de las bibliotecas.

    COBOL (COmmon Business Oriented Languaje). Está
    destinado al procesamiento de datos, fundamentalmente
    económicos y es ampliamente utilizado. Existe
    también una versión estándar y presenta la
    posibilidad de segmentación de programas.

    ALGOL (ALGOrithmic Languaje). Se desarrollaron dos
    versiones ALGOL-60 y ALGOL-68 y constituye uno de los primeros
    intentos de disponer de un lenguaje de propósito
    universal.

    LISP (LISt Processing). Desarrollado por John Mac
    Carthy y el grupo de Inteligencia
    Artificial del MIT a finales de los años 50 y
    principios de los 60, que ha sido mal llamado lenguaje para el
    procesamiento de lista, ya que su objetivo no es el de procesar
    listas sino que la forma de representar los datos e
    instrucciones y de procesar éstos es a través de
    listas. Es el primer lenguaje que da una formalización a
    su semántica.

    PASCAL. El nombre de este lenguaje rinde homenaje a
    uno de los fundadores de la computación, el
    físico y matemático francés Blaise Pascal
    (1623-62), y su característica fundamental es disponer
    de potentes estructuras.

    En la práctica las causas de la popularidad de un
    lenguaje están generalmente asociadas a que el lenguaje es
    conveniente para una clase significativa de problemas, existen
    buenos compiladores desarrollados para ese lenguaje, el "snob" de
    algunos de utilizar un nuevo lenguaje, la importancia de nuevos
    conceptos introducidos con el lenguaje y el prestigio personal de
    quienes participan en el desarrollo del lenguaje.

    Por tanto, los criterios para seleccionar un lenguaje
    deben ser lo más objetivos posibles ya que en general
    todos los lenguajes tienen sus posibilidades y sus insuficiencias
    y pueden emplearse muchos criterios para seleccionar un lenguaje
    de programación para una aplicación
    determinada:

    Claridad, sencillez y consistencia de los aspectos del
    lenguaje.

    Claridad en su estructura (facilidad para comprender
    el programa y modificarlo).

    naturalidad de las instrucciones (con relación
    al tipo de tareas en que se desea utilizar).

    facilidades de extensión.

    aseguramiento externo. Estar en un Sistema Operativo y
    régimen de trabajo, tener la posibilidad de trabajar
    interactivamente o con ficheros, tener una buena
    documentación y un buen editor. Estos elementos pueden
    convertir a un lenguaje débil en poderoso.

    Efectividad en: compilación, que incluye
    velocidad de compilación, tamaño del compilador,
    etc.; en la ejecución del programa, que evalúa la
    velocidad y tamaño del programa ejecutable y en el uso
    de bibliotecas.

    conocer una amplia gama de lenguajes para poder
    escoger adecuadamente.

    No obstante, debe tenerse en cuenta el siguiente
    principio: «Con un lenguaje poderoso se pueden hacer muy
    malos programas».

    V.3.7 Elementos de
    programación estructurada.

    A partir de la década del 70 cobró
    especial importancia alcanzar incrementos en la productividad de
    la programación, debido a las reducciones en costo de este
    tipo de instalación y el surgimiento y desarrollo
    explosivo de las computadoras personales.

    En primer término debe señalarse que las
    primeras versiones de los programas inicialmente parecen ser
    definitivas e inalterables, pero poco a poco la realidad se hace
    sentir en forma de modificaciones y reformas (en muchos casos
    verdaderos «parches») que van socavando la estructura
    inicial de los programas.

    El iniciador de la línea de investigación de programación
    estructurada fué el profesor Edeser W. Dijkstra de la
    Universidad de
    Eindhoven, existiendo en la actualidad otros métodos como
    el de Bertini Jackson y las Leyes de Construcción de
    Programas de Jean Dominique Warnier.

    Si un programa brinda pocas facilidades para sufrir
    modificaciones, entonces su poca flexibilidad hace que caiga en
    desuso al cabo de poco tiempo. Bajo este punto de vista se
    acentúa cada vez más la importancia del
    mantenimiento de un programa, es decir, su adaptación
    continua a los cambios tales como: aumento de la cantidad y
    extensión de los datos, cambios en la organización
    de los ficheros; pasar los ficheros a bases de datos; cambios en
    los formatos de los reportes de resultados y cambios en el
    equipamiento.

    Las modificaciones hay que esperarlas y, sino desearlas
    por o menos ser capaz de vivir con ellas. CON EL PASO DEL
    TIEMPO PUEDE RESULTAR NECESARIO TODO EL PERSONAL PARA EL
    MANTENIMIENTO DE PROGRAMAS LO CUAL CREA SIN DUDAS UNA SITUACION
    LIMITE
    .

    En este sentido G. Winnberg planteó que es
    importante leer programas, aunque existen otros tipos de lecturas
    más amenas, se puede aprender mucho de esta
    lectura.

    Como consecuencia de todo lo antes expresado un programa
    no debe escribirse en la creencia de que sólo lo va leer
    el compilador, sino también una persona (incluso
    uno mismo), ya sea con el fin altruista de aprender, o con el
    más preciso de modificar o adaptar el programa a una nueva
    necesidad, por tanto evite las sentencias complejas.

    Para el mantenimiento de un programa resulta esencial
    que éste se pueda leer y comprender con facilidad, con el
    fin de que sea fácil introducir cambios, sin tener que
    comenzar nuevamente una puesta a punto de igual o mayor
    importancia que la realizada al programa original.

    Con el inicio de la década del 70 el campo de la
    programación ha sido objeto de constantes estudios para
    mejorar los resultados de la programación modular que
    condujeron a la Programación Estructurada cuyo iniciador
    fué el profesor Edeser W. Dijkstra de la Universidad de
    Eindhoven.

    De la Programación Estructurada es difícil
    dar una definición exacta, ya que no existe una
    universalmente aceptada, no obstante lo cual si hay acuerdo en
    que la programación estructurada es todo diseño de
    programa que cumpla con los aspectos siguientes:

    • Estructuras básicas:
    • Secuencias. Conjunto ordenado de instrucciones que se
      repiten un mismo número de veces en el mismo lugar del
      programa. Cada secuencia termina en una bifurcación o va
      seguida de un enlace.
    • Alternativas. Conjunto ordenado de instrucciones que
      se ejecuta en dependencia de que se cumpla o no determinada
      condición. Cada alternativa puede tener un solo camino
      en dependencia del valor que tomó la condición,
      el resto de los caminos quedan excluidos.
    • Repetitivas. Conjunto ordenado de instrucciones que
      se repiten mientras o hasta que se cumpla determinada
      condición.

    Recursos abstractos. Es la descomposición en
    niveles de un problema ajeno a la computadora y sus
    instrucciones. Esta descomposición en niveles debe
    hacerse conforme a esquemas suficientemente simples y bien
    comprendida.

    Razonamiento deductivo de arriba hacia abajo. Es una
    marcha analítica reflejada en niveles o pasos
    consecutivos que poseen sus propios recursos abstractos y que
    permiten resolver el problema por completo.

    En la práctica son de utilidad las
    siguientes recomendaciones: utilizar nombre con significado
    claro, estándar; emplear paréntesis para evitar
    ambigüedades; evitar los trucos con el lenguaje; buscar la
    eficiencia donde sea necesaria; en los sistemas complejos los
    algoritmos más simples son los mejores; comentar para
    responder a las preguntas de los lectores, y si es necesario el
    significado de TODAS LAS VARIABLES;
    no utilizar una variable para más de un
    propósito; el empleo del salto incondicional no
    está prohibido, lo que no debe utilizarse para sustituir
    el empleo de las estructuras del lenguaje; los ficheros
    lógicos se diseñan siguiendo una
    organización jerárquica que permite ir del
    conjunto al elemento, de lo general a lo particular.

    El PASCAL surge como una herramienta para la enseñanza de prácticas de "buena
    programación", es un lenguaje de propósito general,
    estructurado de forma clara y sencilla. La primera versión
    del PASCAL aparece en 1968 desarrollada por Niklaus Wirth,
    profesor del Instituto Tecnológico de Zurich, Suiza. Sus
    objetivos eran obtener una herramienta que mantuviera un
    pequeño número de conceptos fundamentales de la
    programación útiles para enseñar la
    programación como una disciplina lógica y
    eficiente.

    Es realmente numerosa la cantidad de implementaciones
    del PASCAL que se reportan, por lo cual mencionaremos sólo
    algunas:

    PASCAL/Z, creado por la Ithaca Intersystem.

    PASCAL/M, creado por la sorcim.

    PASCAL 6000, implementado para utilizarse en el
    sistema operativo CDC 6000.

    PASCAL 80, para el sistema TRS-80 modelos del
    I al III.

    MP/PASCAL de la "Data General" para su Sistema
    MICRONOVA.

    NBS PASCAL, para la mini computadoras
    PDP-11.

    ATARI PASCAL. para ATARI 800.

    RSI y Mototrola PASCAL, para procesadores
    68000.

    Cllor PASCAL de la "Dinisot".

    UCSD PASCAL. Este sistema en sus inicios fué
    diseñado para correr en mini micromputadoras,
    suministrado por la Softech Microsystem Inc. y comprende un
    sistema Operativo completo que puede correr sobre una variedad
    de procesadores e incluye un manipulador de ficheros, un editor
    orientado a caracteres, un compilador de una pasada que genera
    código P, un macro ensamblador condicional, un enlazador
    y una biblioteca
    de utilitarios.

    PASCAL MT+. Este sistema fué desarrollado por
    la Digital Research, diseñado tanto para las
    aplicaciones de procesamiento de datos como para control en
    tiempo real. Este sistema incluye un compilador, un enlazador,
    un macro ensamblador, un monitor de puesta apunto y una
    biblioteca.

    TURBO PASCAL, desarrollada por la Borland
    International.

    Borland Delphy, es la versión de
    programación en Pascal en Objeto.

    V.3.8 Elementos de
    programación orientada a
    objetos

    Es una forma de programación, en la cual el
    desarrollo del programa se realiza a partir del trabajo de
    estructuras llamadas objetos, las cuales están disponibles
    en el lenguaje de programación.

    Esta forma de trabajo se fundamenta en las ventajas de
    que una vez creado el objeto, este puede ser utilizado en
    reiteradas ocasiones con lo cual se gana tiempo y
    estandarización en los programas, lo cual se traduce en
    incremento en la productividad..

    VI. El ambiente WINDOWS
    (*)

    VII. Inteligencia Artificial
    (*)

    VII.1 Aspectos
    generales

    VII.2 Formas de
    Representación del conocimiento

    VII.2.1
    Representación del conocimiento por vías
    tradicionales

    VII.2.2
    Representación del conocimiento por vías no
    tradicionales

    VII.2.3 Pasos en la
    construcción de Sistemas de
    Aplicación

    VII.2 Lógica y
    Programación Lógica

    VII.2.2 Lógica
    de predicado

    VII.4.3 Sistemas
    Expertos

    VII.3.2 Estructura
    interna

    VII.3.3
    Características del desarrollo de
    SE

    VII.3.4
    Clasificación de los Sistemas
    Expertos

    VII.4 Redes
    Neuronales

    VIII. Redes de computadoras
    (*)

    VIII.1 Aspectos
    generales

    VIII.2 Razones para
    utilizar
    una red local

    VIII.3 Topología de la red

    VIII.4
    Internet

    IX. Seguridad Informática
    (*)

    X. Bibliografía (*)

    Anexos (*)

    Anexo A.
    Términos y definiciones.

    Anexo B. Caracteres
    ASCII

    (*)Para ver el texto completo
    seleccione la opción "Descargar" del menú
    superior

     

     

    Autor:

    Lic. Jesús de la Caridad Mesa
    Oramas

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter