Temas Programacion

ÍNDICE 1. Información de la unidad / Tema de la semana 3 2. Información de los subtemas 4 ¿Qué es una computadora?

Views 110 Downloads 5 File size 5MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ÍNDICE

1. Información de la unidad / Tema de la semana

3

2. Información de los subtemas

4

¿Qué es una computadora?

4

Organización física de una computadora

11

Historia de la programación

19 Algoritmia 29

3. Bibliografía

35

2

1. Informacio n de la unidad Tema de la semana: » Objetivo: Introducir conceptos básicos de la computadora y su organización, tales como: hardware, software y sus componentes, y su relación los lenguajes de programación y la algorítmica.

» Tema: Introducción a los programas de computadora

» Subtemas: 1. ¿Qué es una computadora? 2. Organización física de una computadora 3. Historia de la programación 4. Algoritmia

» Unidad: Introducción a las computadoras y lenguajes de programación

» Duración de horas semanales 7,5 H

3

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

2. Informacio n de los subtemas ¿Qué es una computadora? Concepto La computadora1 (ordenador) en la actualidad, es uno de los dispositivos electrónicos más relevantes del siglo XXI, al constituirse en una herramienta que facilita el trabajo y la vida diaria de las personas, es un artefacto indispensable para el desarrollo de actividades habituales para muchas profesiones, en diversos contextos, campos y estilos de vida: educación, ciencias, industria, comercio, salud, finanzas, entre otros. La aplicación del ordenador en la vida diaria es variada e infinita, el ser humano ha encontrado múltiples utilidades: realizar pagos en línea, volar un avión, procesar una transferencia, enviar o recibir mensajes, navegar por la internet, redes sociales, entre otras acciones que a través de programas requieren el procesamiento de potentes computadoras. ¡Para recordar!

Una computadora es un dispositivo electrónico, que procesa información

© Universidad Estatal de Milagro – UNEMI

para obtener un resultado, capaz de

Computador: Máquina electrónica que, mediante determinados programas, permite almacenar y tratar información, y resolver problemas de diversa índole. (RAE, 2019).

realizar cálculos complejos a muy alta velocidad de procesamiento.

1

En España, el término ordenador es muy común, al referirse a la traducción de la palabra inglesa computer.

4

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Para Joyanes (2008), refiere que estas máquinas pueden recibir, enviar, procesar y visualizar información de todo tipo: números textos, imágenes, gráficos, sonidos, etc. A grandes velocidades dependiendo del volumen de capacidad de procesamiento, donde la ejecución de cada tarea requiere una lista de instrucciones o programas.

En el sentido más simple una computadora es “un dispositivo” para realizar cálculos o computar. Sin embargo, el término de sistema de computadora, está conformado por dos partes: hardware2 y software3, donde el primero es la parte física o tangible del mismo, el segundo es un conjunto de programas compuesto por rutinas (instrucciones) que indican al – hardware “computador”- que tareas debe realizar. Estas rutinas de programas son especificadas en un “lenguaje de máquina” especificadas son creadas por personas especializadas llamadas programadores de computadoras.

Al hacer un simil de la computadora como un proceso, los datos son partículas de información que se pueden introducir en un computador a través de las entradas (inputs), las mismas que a través de programas (instructions) son procesadas y almacenadas para generar una salida o resultado (outputs), como se refiere en la

© Universidad Estatal de Milagro – UNEMI

Figura 1.1.

Figura 1.1 - Proceso de información en una computadora Fuente: Adaptado de (Joyanes A., 2008)

2

La Real Academia de la Lengua Española (RAE), refiere como hardware a un conjunto de aparatos de una computadora. 3 La RAE, concibe como software a un conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora

5

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Los datos de entrada pueden ser de varios tipos: texto, imágenes, sonidos, etc. La interacción y/o comunicación entre las personas con el computador es a través de sus periféricos de entrada para la captura de datos, tales como: teclado, ratón y lápiz óptico, lector de barras, lector de QR, lector biométrico, entre otros; y, periféricos de salida para entrega de información, tales como: monitor, altavoces, agendas PDA, impresoras, entre otros; además otros dispositivos E/S, tales como: memoria flash, el módem, que permiten la comunicación con redes de computadoras que pueden superar grandes distancias mediante cables o bandas de ondas de radio a través de la red Internet.

En los últimos tiempos debido al avance de la nanotecnología, obsolescencia programada y la competitividad en la industria, el coste del hardware y software se han visto reducido drásticamente, es así que la relación costo/servicios han sido alterados, hoy en día encuentras en el mercado equipos con mayor capacidad y servicios incorporados por la mitad de precio que hace casi dos años.

© Universidad Estatal de Milagro – UNEMI

Origen de las computadoras

Figura 1.2 – Historia desde el origen de las computadoras. Fuente: Adaptado de (Joyanes A., 2008)

6

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Sobre el origen de las computadoras existen varios autores que refieren al respecto, según Joyanes (2008), reseña:

La primera computadora digital que reseña la historia de la informática, se puede considerar, fue diseñada a finales de la década de los treinta por el Dr. John Atanasoff y el estudiante de postgrado Clifford Berry en la Universidad de Iowa (Iowa State University). Diseñaron la computadora para realizar cálculos matemáticos en física nuclear.

Sin embargo, la primera computadora electrónica digital de aplicaciones o propósito general se llamaba ENIAC y se terminó en 1946 en la Universidad de Pennsylvania, fue financiada por el Ejército de EE.UU. (U.S. Army). La ENIAC pesaba 30 toneladas y ocupaba un espacio de 30 por 50 pies. Se utilizaba esencialmente para predicciones de tiempo, cálculos da tablas balísticas, cálculos de energía atómica. Sus diseñadores fueron J. Prespert Eckert y John Mauchley.

En el mismo año de 1946, el Dr. John Von Neumann de Princeton University propuso el concepto de computadora con programa almacenado que consistía en un programa cuyas instrucciones se almacenaban en la memoria de la computadora. Von Neumann descubrió que era posible que los programas se

© Universidad Estatal de Milagro – UNEMI

almacenaran en la memoria de la computadora y que se podrían cambiar más fácilmente que las complejas conexiones de cables y fijaciones de interruptores del ENIAC. Von Neumann diseñó una computadora basada en esta idea. Su diseño ha constituido el nacimiento de la computación moderna y ha dado origen a la denominada arquitectura de Von Neumann que es la base de las computadoras digitales actuales.

Estas computadoras primitivas utilizaban tubos de vacío como componentes electrónicos básicos. No sólo eran muy voluminosas, sino lentas y

7

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

difíciles de manipular a la par que requerían usos y cuidados especiales. Los avances tecnológicos en semiconductores, transistores y circuitos integrados concluyeron en diseñar y fabricar las nuevas generaciones de computadoras que conducían a máquinas más pequeñas, más rápidas y más económicas que sus predecesoras.

En la década de los setenta, los fabricantes Altair (suele considerarse la primera microcomputadora

de

la

historia)

y

Apple

fabrican

la

primera

microcomputadora de la historia. Steve Jobs y Stephen Wozniac construyen el Apple, la rimera computadora doméstica de la historia. Por aquella época otras compañías que fabricaron microcomputadoras fueron Commodore, Radio Shack, Heathkit y en Europa, Sinclair que fabricó el mítico ZX Spectrum con el que aprendieron a programar y a jugar con videojuegos muchos de los grandes ingenieros, catedráticos, etc., de esta década. Eran computadoras que en aquella época no eran aceptadas por la comunidad profesional, las empresas y las industrias.

El 12 de agosto de 1981 IBM presentó en Nueva York y en otras ciudades norteamericanas, la primera computadora de escritorio de la historia, denominada por su inventor, IBM PC (Personal Computer, computadora personal de IBM), cuyo software fundamental fue desarrollado por una joven

© Universidad Estatal de Milagro – UNEMI

compañía conocida como Microsoft. El PC se convirtió en un éxito instantáneo hasta llegar a convertirse en un aparato o dispositivo electrónico de uso general, al estilo de una TV o un equipo de música. Sin embargo, conviene recordar que el PC, tal como se le conoce en la actualidad, no fue la primera computadora

personal

ya que

le

precedieron otras máquinas

con

microprocesadores de 8 bits, muy populares en su tiempo, tales como: Apple II, Pet CBM, Atari, TRS-80, etc., y el mítico ZX Spectrum, de los diferentes fabricantes citados en el párrafo anterior. El término PC se utiliza

8

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

indistintamente con el término genérico de computadora de escritorio o computadora portátil (desktop) o (laptop).

Clasificación de las computadoras En el mercado actual, existen una variedad de computadoras modernas, que se podrían clasificar por su tamaño, estilo, velocidad de procesamiento, almacenamiento, etc., de las cuales podemos referir: minicomputadoras, computadoras personales, servidores, unidad central (mainframes4) y supercomputadores.

Las computadoras personales (PC) son las más conocidas por su uso frecuente en las actividades cotidianas del ser humano, incluyen computadores portátiles (laptops, notebooks, en inglés) y también computadores de escritorios (desktop, en inglés) usadas como estaciones de trabajo en empresas, industrias, centros, instituciones públicas o privadas, etc. Las estaciones de trabajo (Workstations) son una variedad de computadores personales de escritorio potentes para realizar trabajos técnicos especializados, destinado a usuarios con necesidades de procesamiento y rendimiento superior a la PC. Ej. Estudios técnicos que incluyen cálculos matemáticos o gráficas de alta definición, etc.

Los servidores son computadores de gran potencia o unidades de procesamiento de mayor alcance que forman parte de una red para proveer de servicios a otros equipos, © Universidad Estatal de Milagro – UNEMI

en sí destinadas para la gestión y administración de redes internas de información en las empresas o corporaciones, éstos servidores pueden tener un rol o uso específico de gestión de la información o comunicación, tales como: servidor de datos (DBS), de aplicaciones, de correos, proxy, servidor de telefonía, de transferencias de archivos (FTP), servicios web, de seguridad, entre otros. 4

En Latinoamérica, el término computadora portátil, es conocido popularmente por su nombre en inglés, laptop. 5 Un mainframe, es una unidad central potente en procesamiento de altos volúmenes de datos, capaz de realizar millones de instrucciones por segundos (MIPS).

9

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Unidad central (Mainframes), son equipos con alto rendimiento, seguros, disponibles y confiables, debido a la capacidad de procesamiento, puede procesar millones de transacciones en un solo servidor a velocidades imperceptibles, tiempos de respuesta de milisegundos, implementación de nubes híbridas y de fácil escalabilidad. Hoy en día, existen empresas exclusivas de estos servicios a empresas o corporativos, contratando el servicio de administración y gestión de equipos e información corporativa, debido a los altos costos de mantenimiento, capacidad, disponibilidad del servicio y obsolescencia programada en equipos. Las supercomputadoras son los equipos altamente potentes y sofisticadas que existen en la actualidad, se utilizan para tareas complejas que requieren cálculos extremadamente rápidos. Estas computadoras son usadas con fines científicos, militares o gubernamentales, en aplicaciones, tales como: meteorología, industria aeroespacial, satélites, biotecnología, simulación para previsión de desastres naturales, etc.

¡Para recordar!

© Universidad Estatal de Milagro – UNEMI

En la actualidad, existe una variedad de microcomputadores (handheld computers, computadores de mano) incorporados en dispositivos electrónicos que constituyen el corazón y brazos de los mismos, por su gran capacidad de proceso. Ej. PDA (Asistentes Personales Digitales) que incorporan SO como Windows Mobile, o teléfonos inteligentes (Smartphone), cámaras digitales, videocámaras, etc. u otros dispositivos que incorporen tarjetas de memoria de 128 Mb hasta 4GB, en contante aumento. (Joyanes (2008), Fundamentos de programación, Pág. 6)

10

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Organización física de una computadora Existen dos componentes principales de la computadora: el hardware y software, el primero constituye las partes físicas del ordenador y parte de los componentes o dispositivos asociados; el segundo, corresponde a la parte intangible, complemento que hace que el ordenador funcione, a través de instrucciones que indican al computador que hacer, estas instrucciones se denominan programas o software y son escritas por programadores.

El estándar de la composición física y lógica de un computador, está organizado como se muestra en la Figura 1.3. Un computador está compuesto por cinco (5) componentes principales: dispositivos de entrada; dispositivos de salida; unidad central de procesamiento (UCP, o Central Processing Unit CPU, en inglés) o procesador (compuesto de: unidad aritmética, unidad lógica y unidad de control); memoria

© Universidad Estatal de Milagro – UNEMI

principal o central; y, memoria secundaria o externa y el programa.

Figura 1.3 – Organización física de una computadora Fuente: Elaboración propia.

11

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

En la organización física de la Figura 1.3 aparecen dispositivos para la conexión de redes de comunicación, tales como: módems, conexión Ethernet, firewire, entre otros.

La comunicación el computador y sus periféricos es en lenguaje de máquina también conocido como sistema binario digital compuesto por patrones de ceros (0) y unos (1), la misma que sirve para codificar y decodificar las instrucciones entre el computador y los dispositivos de entrada, salida y almacenamiento, tales como: el microprocesador, unidades de disco duro, teclado, ratón, impresora, etc.

Pero, ¿Cómo funciona el interior del computador? ¿Cómo se procesan las ordenes?, son interrogantes que lo resumiremos con la siguiente gráfica, basada en el Modelo Von

© Universidad Estatal de Milagro – UNEMI

Neumann en 1945, también conocido como la Arquitectura Princeton. Ver Figura 1.4.

Figura 1.4 – Organización física de una computadora Fuente: (Joyanes A., 2008, p. 8)

La unidad central de proceso (UCP), es un dispositivo complejo que se encarga de determinar que tareas importantes se ejecutará dependiendo de la prioridad y necesidad del usuario, un procesador contiene millones de transistores organizados de manera que conforman compuertas lógicas: and, or y not, estas compuertas

12

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

forman módulos esenciales, tales como: la unidad aritmética lógica (UAL), que es un circuito de aritmética que realiza operaciones básicas como: sumar, restar y multiplicar operaciones lógicas y desplazamiento. La unidad de control (UC), su función principal es buscar las instrucciones en la memoria principal, decodificarlas y ejecutarlas; y, la memoria principal, es el lugar donde se almacena temporalmente los datos que están en movimiento para luego ser procesados.

Las computadoras por su solas no pueden hacer nada, se necesita siempre la activación mediante instrucciones específicos, es por esto que un error en la programación o un transistor fundido, puede afectar el funcionamiento del equipo. El programa debe transferir primero de la memoria secundaria a la memoria principal antes de ser ejecutado. El usuario del programa podrá proporcionar datos a través de los dispositivos de entrada, datos que pueden ser tomados de un archivo (fichero) de algún dispositivo de almacenamiento interno o externo vía conexión de red de la empresa o red Internet. Los datos se almacenan en la memoria principal (RAM)5 de la computadora, la cual puede ser tomada y manipulada por la unidad central de procesamiento (UCP). Los resultados del proceso son devueltos a la memoria principal para almacenarlos y posterior se puedan visualizar en un dispositivo de salida (monitor, pantalla, proyector, impresora, etc.), guardar en almacenamiento secundario, externo o enviarse a otra

© Universidad Estatal de Milagro – UNEMI

computadora mediante la red.

Uno de los componentes fundamentales del PC es la placa base (motherboard o mainboard, en inglés), es una placa de circuito impreso que conecta los diferentes elementos contenidos en ella y los componentes más importantes del computador, tales como: zócalo del microprocesador, de memoria, conectores varios, ranuras de expansión, puertos, etc.

6

RAM (Random Access Memory), utilizada como memoria de acceso aleatorio en computadoras y otros dispositivos, en ella se cargan las instrucciones que ejecuta la unidad central de procesamiento.

13

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Los datos viajan entre componentes (memoria RAM, disco duro, etc.) a través de canales de datos llamados buses de datos, organizados por paquetes (de 8, 16, 24, 32, 64 o más bits a la vez); unos diseñado para transferencias pequeñas otros para mayores. Entre los buses, el más importante, es el bus frontal (FSB, Front Side Bus) en los sistemas actuales o bus del sistema en antiguos, que conectan la CPU o procesador de la memoria RAM, otros llamados buses de E/S conectan la placa base de la computadora con los dispositivos periféricos.

Dispositivos de entrada-salida (E/S) Según Joyanes (2008), refiere que los dispositivos de [entrada/salida (E/S), o input/output(I/O) en inglés] conectan y comunican al computador y el usuario. Los dispositivos de entrada, como su nombre lo dicen, permiten al usuario introducir datos (información) en la computadora, datos que son procesados y/o almacenados en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria principal. Los dispositivos de entrada típicos que facilita la interacción hombre-máquina, son: teclado, ratón, lectores de código, palanca de mando (joystick), monitores pantalla táctil

© Universidad Estatal de Milagro – UNEMI

(TouchScreen); y en desuso: lápiz óptico, lectores de tarjetas, escáneres, micrófonos, etc. Ver Figura 1.3.

Los dispositivos de salida permiten presentar, mostrar o visualizar los resultados (información) del proceso de datos. El dispositivo típico de salida es la pantalla (CRT) o monitor, en los últimos años se ha incorporado fuente de audio y video en televisor digital DTV, LCD o LED, mediante conectores - interfaz multimedia de alta definición

14

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

HDMI (High-Definition Multimedia Interface, en inglés). Otros dispositivos de salida son: impresora, trazadores gráficos (plotters), altavoces, reconocedores de voz, etc. Ver Figura 1.3.

Los

dispositivos

de

entrada/salida

y

los

dispositivos

de

almacenamiento secundario o auxiliar (memoria externa) se conocen también con el nombre de dispositivos periféricos o simplemente periféricos ya que, normalmente, son externos a la computadora. Estos dispositivos son unidades de discos [disquetes (ya en desuso), CD-ROM, DVD, cintas, etc.], videocámaras, teléfonos celulares (móviles), et c. Todos los dispositivos periféricos se conectan a las computadoras a través de conectores y puertos (ports) que son interfaces electrónicos. Otros de los dispositivos alternos, están los discos duros virtuales, es un nuevo dispositivo de almacenamiento de información que no reside en la computadora del usuario sino en un espacio virtual residente en un sitio web (de la empresa o externo que ofrezca el servicio). En Tabla 1.1. muestra algunas direcciones de almacenamiento virtual en internet, algunos gratuitos.

© Universidad Estatal de Milagro – UNEMI

Tabla1.1- Algunas direcciones de sitios Web para almacenamiento virtual de datos Nombre de la empresa

Dirección de Internet

Google Drive (GDrive)

https://drive.google.com

Box

https://www.box.com/es-419/home

Dropbox

https://www.dropbox.com/es/

El almacenamiento puede ser gratuito o de pago, el riesgo a asumir al depositar información en lugares no controlados por uno mismo, sino en terceros; esta situación requiere ser analizado con mayor profundidad sobre la privacidad y seguridad de la información en discos virtuales sub-contratados.

15

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

La memoria principal La memoria principal de la computadora almacena los datos de entrada, programas entre otros que requieren almacenado volátil. En la mayoría de computadoras existen dos tipos de memoria principal: memoria de acceso aleatorio (RAM, Random Access Memory), que soporta almacenamiento de instrucciones de programas y datos con los que operan las instrucciones -de modo temporal-; y, memoria de solo lectura (ROM, Read-Only Memory), que almacena datos y programas de forma permanente, generalmente viene pregrabada “grabada o quemada” por el fabricante.

Para que un programa pueda funcionar, correr, ejecutar o run – en inglés-, debe ser ubicado en memoria principal o central, en una función denominada carga (load) del programa, es así que cualquier dato a ser procesado por el programa, también deber ser llevado a memoria principal mediante instrucciones del programa.

¡Para recordar! La memoria principal es la encargada de almacenar los programas y datos que se están ejecutando y su principal característica es que el acceso a los datos o instrucciones desde esta memoria es muy rápido.

© Universidad Estatal de Milagro – UNEMI

(Joyanes (2008), Fundamentos de programación, Pág. 9)

En resumen, en la memoria principal se almacenan: » Los datos recibidos para procesarse desde dispositivos de entrada. » Los programas que realizarán los procesos. » Los resultados obtenidos del procesamiento, preparados para enviarse a un dispositivo de salida.

16

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

La memoria ROM, es una memoria que almacena información permanente, es una memoria de solo lectura, ésta memoria no se pierde cuando se apaga el computador, cuando se enciende, lee la información almacenada y levanta el sistema operativo. Al ser considerada una memoria de solo lectura, no se puede grabar, modificar o alterar datos y/o programas, viene pregrabados en los chips ROM, que suelen contener los programas básicos con los que arranca la computadora.

Con el objetivo de que el procesador acceda y obtenga los datos de la memoria central de moda más rápido, la mayoría de los procesadores utilizan con frecuencia una memoria caché que sirve como almacenamiento intermedio de datos entre el procesador y la memoria principal. Los programas y los datos se almacenan en RAM, pueden medir en unidades de memoria de 512 MB a 1, 2 o 3 GB, puede ser expandida de manera gradual hasta un máximo específico, mientras que la ROM su tamaño es fijo.

Por último, la memoria RAM es muy limitada en tamaño, es por eso que la computadora permite incorporar otro tipo de memoria llamada memoria secundaria o almacenamiento secundario, la misma que puede ser expandida a mayor capacidad, se las conoce como memoria auxiliar, almacenamiento auxiliar, almacenamiento externo o memoria externa.

© Universidad Estatal de Milagro – UNEMI

El procesador El procesador o Unidad Central de Procesamiento, UCP (CPU, Central Processing Unit) es el hardware conformado por circuitos integrados que controla el funcionamiento de la computadora, realiza entre sus funciones el procesamiento de los datos, interpretar y ejecutar instrucciones de cada programa a través de la manipulación de datos aritméticos y lógicos, además de comunicar con el resto de componentes del ordenador a través de la memoria, constituyendo el cerebro y nervios del sistema central. Hoy en día, con el vertiginoso desarrollo de la nanotecnología CPU

17

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

se los conoce también como microprocesadores. El CPU se aloja junto con otros chips y componentes electrónicos en la placa base denominada mainboard o motherboard, la misma que ramifica hacia todos los componentes externos a través de conectores llamados puertos (ports).

En el mercado actual existen numerosos fabricantes de procesadores, entre otros, los más reconocidos y acreditados, son: Intel, AMD6, Transmeta (empresa conocida por estar vinculada en sus orígenes con Linus Torvald creador del sistema operativo Linux), IBM, Motorola, Sun Microsystems.

Tabla 1.2 - Características técnicas recomendadas para computadoras de escritorio

© Universidad Estatal de Milagro – UNEMI

(profesionales y uso doméstico)

Fuente: (Joyanes A., 2008, p. 14)

7

En estas direcciones Web, el lector encontrará todas las especificaciones y características técnicas más sobresalientes de los procesadores de los fabricantes Intel y AMD.

18

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Historia de la programación Como se refirió en párrafos anteriores, un ordenador es una máquina que ejecuta programas basado en algoritmos. Esta definición complementa los conceptos de hardware y software, conceptos opuestos, pero a la vez complementarios, no puede funcionar el uno si el otro. (Noguera O., 2013)

La programación en la fase intermedia en la construcción de un software, basado en el marco de la ingeniería en software; donde el aseguramiento de la calidad, se fundamenta en las fases previas de: análisis y diseño previo a la programación; y posterior, validación, depuración de errores, implantación adecuada y finalmente y no menos importante el mantenimiento preventivo y correctivo del software como mejora continua. Todas estas etapas complementan el ciclo de vida del software, necesarios para la construcción de un software de calidad que resuelva un problema específico.

Desde los inicios de la programación, al detectar un problema se implementaba directamente la solución a través de la programación. Actualmente, debido a la complejidad de los programas, niveles de optimización, rendimiento, complejidad de los problemas o necesidades de los usuarios, han surgido varias metodologías y herramientas para asegurar la calidad en el desarrollo de software.

© Universidad Estatal de Milagro – UNEMI

Aunque no se pretende profundizar en este apartado en la programación en sí, a continuación, haremos una aproximación de la historia de la programación y evolución de los diferentes lenguajes:

Basados en la cronología de Noguera (2013), en su obra programación, en la figura 1.4 reseña el inicio y la evolución de la programación, la primera programadora, la prehistoria de la programación, el primer programa en la memoria y las generaciones de lenguajes de programación:

19

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Charles Babbage (1719-1871) es considerado padre de la informática por el diseño de la calculadora de uso general llamada “máquina analítica”. Ada Lovelace (1815-1852), nacida en Londres británica, hija de Anabella y Lord Byron, es reconocida por los historiadores como la primera persona que hizo un programa para un ordenador. Fue su madre, Anabella, quién indujo a Ada en las matemáticas, quien, tras conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Figura1. 5 - Ada Lovelace (18151852): La primera programadora

Los “números de Bernoulli” son una secuencia de números racionales con unas ciertas propiedades complejas que lo relacionan. Babbage nunca pudo completar la construcción de ninguno de sus diseños por falta de tecnología y herramientas de precisión de esa época. Sin embargo, el trabajo de Ada llevó a cabo con este modelo, le ha hecho acreedora del título de primera programadora de computadores en el mundo. El primer programa de que desarrolló calculaba números de Bernoulli; de ahí nace el nombre del primer lenguaje de programación “Ada” para rendir tributo a esta programadora.

Prehistoria de la programación

© Universidad Estatal de Milagro – UNEMI

Según Noguera (2013), refiere que después de varios intentos y fracasos de Babbage para terminar la máquina analítica, no hubo mayores intentos por construir un ordenador hasta la Segunda Guerra Mundial. Las máquinas de ese entonces eran gigantescas, con decenas de válvulas al vacío y cableados particulares que controlaban las funciones básicas del aparato, en ese entonces, se desconocía el término lenguaje de programación y la programación en sí.

20

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Hoy en día cuando se tiene un error en el programa, se dice tener un “bug” (bicho, en castellano), relacionado este término con el hecho de que en los antiguos ordenadores fallaban en ocasiones a consecuencia de los bichos que quedaban atrapados en los relays (relé o retransmisor, en castellano). Thomas Edison (1847-1931) ya hablaba de bugs en sus diseños, refiriéndose a dificultades o errores. Figura 1.6 – UNIVAC 120 Fuente: Tomado de etw.org/UNIVAC

La Figura 1.6 muestra el entorno de trabajo de la UNIVAC 120 (UNIVersal Automatic Computer, Computadora automática universal, en castellano), John Presper Eckert y John Mauchly7 comenzaron el desarrollo del UNIVAC en abril de 1946, fue la primera computadora construida para uso comercial general, cuya forma de trabajar es la siguiente: el “programador” pedía tanda para utilizar la máquina durante cierto intervalo de tiempo. En un turno específico, iba a la habitación donde estaba el computador, insertaba su tablero de conexiones y con el riesgo de que alguna válvula de vacío se fundiera durante la ejecución, sin conocer donde estaba el error o la equivocación en el programa (Noguera O., 2013).

A finales de los 50’s aparecieron las primeras tarjetas perforadas, un gran avance a la hora de leer los programas; cada tarjeta contenía una instrucción y el orden de cada

© Universidad Estatal de Milagro – UNEMI

bloque era básico, caso contrario reorganizar era una odisea. El ordenador era capaz de ir leyendo los agujeros mecánicamente y así traducirlos a instrucciones.

8

Eckert y Mauchly formaron parte de un grupo de científicos y matemáticos que crearon sistemas informáticos para los Estados Unidos durante la Segunda Guerra Mundial. Su integrador y computadora electrónica y numérica basada en tarjetas perforadas Electronic and Numerical Integrator and Compute (ENIAC) ayudó a los militares a mejorar la precisión de su fuego de artillería.

21

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Figura 1.7 – Tarjeta perforada en blanco (imagen bajo licencia GFDL)

Fuente: (Noguera O., 2013, p. 13)

Generaciones Partiendo que los lenguajes de programación son un conjunto de simbologías o palabras creadas por el ser humano para poder comunicarse con las computadoras. Desde sus inicios, conforme su aparición se han ido clasificando los lenguajes de programación en generaciones, según la proximidad al lenguaje natural – utilizado por humanos – y otras características que permiten agruparlos en: lenguaje de máquina, lenguaje ensamblador, lenguaje de alto nivel, lenguaje caso naturales, entre otros.

© Universidad Estatal de Milagro – UNEMI

Primera generación: Lenguaje de máquina Los lenguajes de primera generación (1GLs), también llamados lenguajes de máquina o código máquina es un sistema de código interpretable por circuitos digitales programables con dos únicos niveles de tensión uno (1) y cero (0), como un microprocesador de un ordenador o un microcontrolador de un autómata; permitiendo así el uso de teorías del álgebra booleana y del sistema binario en el diseño de circuitos y de programación en código máquina. Esta secuencia de códigos de 1 y 0 eran introducidos en el ordenador mediante interruptores del tablero frontal del aparato. Ver Tabla 1.3.

22

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Tabla 1.3 - Línea de código de máquina o código máquina.

Código 10110000 01100001

Descripción Esta línea contiene una instrucción que mueve un valor (61 en hexadecimal) en el registro del procesador al. Como se puede ver, no es comprensible desde el punto de vista humano (de hecho, es realmente misteriosa). Fuente: (Noguera O., 2013, p. 16)

Una de las ventajas principales de este tipo de lenguajes es su rapidez puesto que eran ejecutadas directamente por el procesador; entres sus desventajas, difícil de aprender, utilizar, encontrar errores, así como la portabilidad era nula debido que cada procesador acepte códigos de máquina diferentes o que tengan arquitecturas diferentes. Una aplicación que sólo mostrará por pantalla la frase “Hello Word” en código máquina

© Universidad Estatal de Milagro – UNEMI

tendría el código que se muestra a continuación:

Figura 1.8 - Línea de código para ensamblador de un procesador Intel x86 con DOS y utilizado TASM en Hexadecimal.

Fuente: (Noguera O., 2013, p. 17)

23

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Segunda generación: Lenguaje ensamblador Con el propósito de utilizar un lenguaje más entendible para nuestro lenguaje natural en lugar de alfabeto de máquina, ceros (0) y unos (1), crearon los llamados lenguajes de segunda generación (2GLs) o lenguajes ensamblador; es un lenguaje de bajo nivel, que consiste en un conjunto de mnemónicos 8 que sustituyan a un código de operación o máquina específico. Ej. La instrucción mnemónica MOV (mover), indica al microprocesador que debe asignar “mover” datos de un lugar a otro; como el microprocesador no entiende palabras sino 1 y 0, es necesaria la traducción del término mnemónico a código objeto9. Los lenguajes ensamblador son dependiente de la familia del fabricante del procesador, por ende, de su arquitectura, igual al código de máquina, un programa hecho en Intel no sirve para AMD o Motorola, debido que vienen de diferentes fabricantes. Las principales aplicaciones de estos lenguajes son los Kernel (núcleos de sistemas operativos), los drivers de los dispositivos (programas que permiten comunicarse con los periféricos) entre otras librerías.

Tabla 1.4 - Línea de código ensamblador. Instrucción

Descripción

mov al, 061h

Esta línea contiene la instrucción mov, que mueve un byte (61 en hexadecimal) en el registro al. Esta manera de escribir código es más

© Universidad Estatal de Milagro – UNEMI

comprensible que la que hemos visto anteriormente. Fuente: (Noguera O., 2013, p. 18)

En la Tabla 1.5 se muestra un ejemplo de la línea de código escrito en ensamblador de un procesador Intel x86 con DOS y utilizando TASM. A simple vista, el código es un poco inentendible, debido que se está programando en las partes y mecanismos internos del 9

En informática, un mnemónico o nemónico es una palabra que sustituye a un código de operación (lenguaje de máquina), con lo cual resulta más fácil la programación, es de aquí de donde se aplica el concepto de lenguaje ensamblador.

24

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

procesador de un ordenador. A razón de aquello, se llaman lenguaje de bajo nivel, porque se baja al nivel de la máquina. Tabla 1.5 - “Hello Word” escrito en ensamblador de un procesador Intel x86 con DOS y utilizando TASM. Instrucción MODEL SMALL IDEAL STACK 100H DATASEG MSG DB ‘Hello, world!’,13, ‘$’ CODESEG Start: MOV AX, @data MOV DS, AX MOV DX, OFFSET MSG MOV AH, 09H ; DOS: Output ASCII$ string INT 21H MOV AX, 4C00H INT 21H END Start

Fuente: (Noguera O., 2013, p. 19)g

Tercera generación: Lenguaje de alto nivel

© Universidad Estatal de Milagro – UNEMI

Con el propósito de utilizar un lenguaje más entendible, sencillo de entender e interpretar para los programadores de aquella época, empezaron a surgir los lenguajes de alto nivel. Los lenguajes de tercera generación (3GLs) permiten escribir código con aproximación al lenguaje natural del ser humano. Guardando el principio mnemónico (una palabra que sustituye a un código de operación), ahorra líneas de código de máquina o ensamblador. Ejemplo de una línea de código en C o java:

10

En programación, se llama código objeto al código que resulta de la compilación del código fuente.

25

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Tabla 1.6 - Línea de código en C o Java. Instrucción

Descripción

if (a < b) sumar(b+x);

Comprueba si el valor de “a” es menor que el valor de “b”. En el caso que sea VERDADERO, llama a una función SUMAR, que devuelve la suma de “b” y “x”.

Fuente: Adaptado de (Noguera O., 2013, p. 18)

Así, esta línea de código mediante el uso de algún programa o una herramienta, traducirá el código natural a código de máquina a través de un compilador, intérprete o incluso una máquina virtual (estos últimos conceptos se profundizarán más adelante). La mayoría de los lenguajes de programación de aplicaciones son de tercera generación. Por citar un ejemplo: C, C++, C#, Java, entre otros.

Cuarta generación: Lenguajes cuasi-naturales Los lenguajes cuasi o casi naturales, los 4GLs, no son lenguajes de programación de uso general como los mencionado anteriormente, sino de uso específico, tales como: editores (ayudan a escribir sentencias del lenguaje, autocompletar código, comprobación de errores de sintaxis, controlar cambios y versiones, etc.), compiladores (traduce el código fuente –lenguaje natural- en lenguaje binario (instancia intermedia) sin llegar a la generación del fichero ejecutable, así como, control avanzado de errores, con técnicas de ejecución “step by step” y posibilita la generación de librerías DLL que © Universidad Estatal de Milagro – UNEMI

ayuda a la optimización, reutilización y distribución de objetos), administración de base de datos (la gestión de bases de datos estructuradas, incluye las etapas de diseño de datos entidad-relación, y construcción de sentencias SQL para almacenar y recuperar información), generadores de informes y pantalla (incorporan módulos prefabricados para la generación de pantallas de manera gráfico o texto; así como, la generación de informes mediante consultas SQL a bases de datos integradas).

26

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

La evolución y tendencia de los 4GLs estuvo direccionada por las siguientes perspectivas: 1. Portabilidad: Funcionalidad e independencia de plataformas o sistemas entre hardware y software. 2. Arquitectura y gestión de datos: Construcción de la estructura de datos (entidad-relación) independientes y acceso a información distribuida a través de las aplicaciones software. 3. GUI (Graphical User Interface): Generación de diseños e interfaz gráfica asistida para la generación de pantallas de las aplicaciones mediante herramientas CASE10. 4. Arquitectura de aplicaciones distribuidas: Desarrollo de aplicaciones en arquitectura cliente/servidor, adaptabilidad en entornos de red con integración a la internet e intranet. 5. Integración: Integración con aplicaciones ofimáticas entre otros módulos prefabricados o bibliotecas de enlace dinámico (Dynamic-Link Libraries DLL, en inglés). Según (Noguera O., 2013), algunos tipos lenguajes de cuarta generación son: » Tratamiento de bases de datos: SQL, FOCUS. » Generadores de informes: PostScript, BuildProfessional y Gauss. » Manipuladores y analizadores de datos: Informix-4GL, mathematica y SAS. © Universidad Estatal de Milagro – UNEMI

» Generación y dibujo en pantalla: Oracle Forms, Unify Acell. » Generadores de interfaces gráficas de usuario: Borland Delphi, Visual Basic’s form editor, Windows Forms y OpenROAD. » Desarrollo web: PHP y ASP.

11

Herramientas de diseño y programación 4GL capaces de generar aplicaciones en diferentes lenguajes de programación, considerados multiplataforma.

27

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Quinta generación: Inteligencia Artificial y sistemas expertos Dos fuentes fuertes definen la quinta generación de lenguajes de programación (5GLs), lenguajes para la inteligencia artificial y sistemas expertos de lenguajes GUI (Graphical User Interface). Lenguajes para inteligencia artificial: Son lenguajes que se basan en restricciones para la resolución de problemas, sin programar algún algoritmo que lo haga, tales como: Phyton, R, Lisp, Prolog, Torch y Ops5. La mayoría de estos lenguajes aplican lógica basado en restricciones y/o declarativos, el programador no tiene que pensar en el ¿Cómo? sino en el ¿Qué? resolver.

Tabla 1.7 - Línea de código en Prolog. Instrucción

Descripción

toca_el_piano(carlos):-

Regla 1: Si alguien está escuchando música y está

estacontento(carlos),

contento entonces toca el piano.

escucha_musica(carlos). Fuente: Adaptado de (Noguera O., 2013, p. 18)

Los lenguajes lógicos utilizan hechos y reglas para modelar la realidad y a partir de

© Universidad Estatal de Milagro – UNEMI

ésta, poder inferir las respuestas a posibles preguntas. Lenguajes con GUI (Graphical User Interface): Otros presentan los 5GL como programas que utilizan una interfaz gráfica o visual de usuario para crear o generar un código fuente “variable” dependiendo de la selección o variabilidad de plataforma sobre la que el usuario selecciona un compilador o interpretador de tercera o cuarta generación. Compañías como Borland, Microsoft, IBM y Genexus, producen este tipo de herramientas multiplataforma de programación visual.

28

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Algorítmia Hasta ahora hemos visto retrospectiva cronológica de los lenguajes de programación, hasta la identificación de los lenguajes actuales evolucionados hacia la inteligencia artificial y al desarrollo de la ciencia. Pero exactamente, ¿Cómo surgen técnicamente estos lenguajes? ¿Qué tipo de problemas resuelven y de qué manera?

La palabra “algoritmo” proviene (del latín, dixit algorithmus; y éste del griego arithmos, que significa “número”), también del matemático, astrónomo y geógrafo persa musulman Abu Abdallah Muhammad conocido como al-Juarismi; define un conjunto de instrucciones, órdenes o reglas definidas, ordenadas y finitas que un ordenador dados por un estado inicial, una entrada y una consecución de pasos sucesivos llegan a un estado final y obtiene una solución.

Una de las prácticas fundamentadas de un programador antes de escribir “código” deberá escribir lo que se llama “algoritmo”; enfocándose en el qué resolver y no en el cómo resolver, es decir, aplicar razonamiento a un problema previo al escribir o traducir a un código natural, intermedio o menos aún código de máquina sino más bien escribir pasos en modo natural para resolver una situación en concreto, que sin pensar técnicamente cómo el ser humano resuelve situaciones en cualquier contexto

© Universidad Estatal de Milagro – UNEMI

de nuestra vida diaria (por ejemplo, vestirse, ir al trabajo, conducir, etc.).

Fundamentos Entonces, la capacidad de pensar y resolver problemas cotidianos todos los seres humanos la poseen, el punto es ¿Cómo el ser humano, hace entender esa solución al ordenador para resolver un problema? Por lo que un buen programador, deberá 1) pensar en el problema, 2) escribir un algoritmo que resuelva el problema (resolución de problema), y, 3) codificar el algoritmo en un lenguaje de programación (implementar) Ver Figura 1.9. Para (Joyanes A., 2008), existen dos fases pueden

29

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

ser identificadas en el proceso de construcción de un programa como producto terminado:

1. Fase de resolución de problemas 2. Fase de implementación (realización) en un lenguaje de programación.

Figura 1.9 – Resolución de problemas de computadora Fuente: Adaptado de (Joyanes A., 2008, p. 4)

Fase: Resolución del problema © Universidad Estatal de Milagro – UNEMI

Refiere a la comprensión estructural y coyuntural del problema, el diseño de una aproximación a la solución conceptual incluyendo la especificación de los pasos para resolverlo mediante un algoritmo. Esta fase está compuesta por varias sub-etapas, estas son: análisis del problema (examina con profundidad el problema central, sus requisitos para resolverlo y cómo hacerlo); diseño de algoritmo (escribir en lenguaje natural una solución estructurada, lógica y secuencial de pasos, precisa y finita); y, verificación de algoritmo (comprobar si las acciones diseñadas producen el resultado correcto y esperado).

30

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Un algoritmo está compuesto por tres partes: 1. Entrada: Datos (información), parámetros dados al algoritmo. 2. Proceso: Operaciones, condiciones, restricciones, cálculos para una solución. 3. Salida: Resultado del procesamiento de información dados por el algoritmo.

Figura 1.10 – Análisis del problema Fuente: Adaptado de (Joyanes A., 2008, p. 4)

Un algoritmo que resuelva la superficie de un cuadrado, en su diseño deberá contener los siguientes componentes:

Paso 1: Entrada de dato: desde periférico de entrada. Ej. Teclado, dato de base y altura. Paso 2: Proceso: cálculo de superficie, multiplicando la base por la altura.

© Universidad Estatal de Milagro – UNEMI

Paso 3: Salida de dato por pantalla: dato de base, altura y superficie.

31

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

Escribir

un

algoritmo

que

calcule

la

Enunciado del problema

superficie de un triángulo en función de la base y la altura. Análisis del problema: DATOS DE SALIDA: s (superficie)

Parámetros de salida

DATOS DE ENTRADA: b (base), a (altura)

Parámetros de entrada

DATOS AUXILIARES: Entrada, número de

Otros parámetros

asiento Para calcular la superficie se aplica la

Detalle del problema o enunciado

fórmula S = base * altura/2. Solución: Diseño del algoritmo

Instrucciones:

inicio

Secuencia leer b, a

Lógica

asignar a s el cociente de dividir

Restricción

entre dos el producto de b por a

Operación

escribir s fin

Posterior, esta solución, independientemente del lenguaje que implementará código, deberá traducirse en métodos normalizados para la representación de algoritmos, tales como: diagrama de flujo, diagrama Nassi-Schneiderman o pseudocódigo, detallados más adelante. Una vez terminado de escribir un algoritmo es necesario comprobar o verificar su la solución plateada resuelve el problema, el modo más normal de comprobación es utilizando una hoja de papel, usando datos significativos de prueba que incluyan rangos de valores posibles y mediante las operaciones, condiciones o restricciones puedan producir diferentes resultados. Este proceso es

© Universidad Estatal de Milagro – UNEMI

conocido como prueba de algoritmo.

Fase: Implementación de algoritmos Una vez diseñados los algoritmos, representados mediante un método normalizado (diagrama de flujo, diagrama Nassi-Schneiderman o pseudocódigo) y verificados, se debe traducir a código mediante un lenguaje de programación, y completada con la ejecución y comprobación del programa en el ordenador.

32

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

2.4.1 Fundamentos Desarrolle los algoritmos que resuelvan los siguientes probl Desarrolle los algoritmos que resuelvan los siguientes problemas: 1.1. Ir al cine. Análisis del problema: DATOS DE SALIDA: Ver la película DATOS DE ENTRADA: Nombre de la película, dirección de la sala, hora de proyección DATOS AUXILIARES: Entrada, número de asiento Para solucionar el problema, se debe seleccionar una película de la cartelera del periódico, ir a la sala y comprar la entrada para, finalmente, poder ver la película. Solución: Diseño del algoritmo inicio //seleccionar la película tomar el periódico mientras no llegemos a la cartelera pasar la hoja mientras no se acabe la cartelera leer película si nos gusta, recordarla elegir una de las películas seleccionadas leer la dirección de la sala y la hora de proyección //comprar la entrada trasladarse a la sala si no hay entradas, ir a fin si hay cola ponerse el último mientras no lleguemos a la taquilla avanzar si no hay entradas, ir a fin comprar la entrada //ver la película leer el número de asiento de la entrada buscar el asiento sentarse ver la película

© Universidad Estatal de Milagro – UNEMI

fin

33

Introducción a las computadoras y lenguajes de programación – Introducción a los programas de computadora

1.2.

© Universidad Estatal de Milagro – UNEMI

Diseñar un algoritmo para calcular la velocidad (en metros/segundo) de los corredores de una carrera de 1500 metros. La entrada serán parejas de números (minutos, segundos) que darán el tiempo de cada corredor. Por cada corredor se imprimirá el tiempo en minutos y segundos, así como la velocidad media. El bucle se ejecutará hasta que demos una entrada de 0,0 que será la marca de fin de entrada de datos. Análisis del problema: DATOS DE SALIDA: v (velocidad media) DATOS DE ENTRADA: mm, ss (minutos y segundos) DATOS AUXILIARES: distancia (distancia recorrida, que en el ejemplo es de 1500 metros) y tiempo (los minutos y los segundos que ha tardado en recorrerla. Se debe efectuar un bucle que se ejecute hasta que mm sea 0 y ss sea 0. Dentro del bucle se calcula el tiempo en segundos con la fórmula tiempo = ss + mm * 60. La velocidad se hallará con la fórmula velocidad = = distancia/tiempo. Solución: Diseño del algoritmo inicio asignar a distancia 1500 leer desde teclado mm,ss mientras mm y ss sea alguno de ellos distinto de 0 asignar a tiempo el resultado de sumar a ss el producto de mm por 60 asignar a v el cociente entre distancia y tiempo escribir mm, ss, v leer mm, ss fin

1.3. Escribir un algoritmo que calcule la compra de un cliente en un supermercado. Análisis del problema: DATOS DE SALIDA: Total DATOS DE ENTRADA: Precio, unidades DATOS AUXILIARES: Importe Por cada producto de la compra, se leerá el precio del producto y se calculará el importe mediante la expresión precio * unidades. Una vez calculado el importe se acumulará al total que, previamente, se habrá inicializado a 0. El proceso continuará mientras el cliente todavía tenga productos. Solución: Diseño del algoritmo inicio asignar 0 a total mientras haya productos leer precio y unidades asignar al importe la expresión precio * unidades acumular el importe al total escribir total fin

34

Introducción a las computadoras y a la lógica computacional – Hardware y software

3. Bibliografí a Joyanes A., L. (2008). Fundamentos de programación. Algortimos, estructura de datos y objetos. España: McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S.A.U. Noguera O., F. J. (2013). Programación. España: Edictorial UOC. ALEGSA.com.ar. (29 de 04 de 2019). From http://www.alegsa.com.ar/Diccionario/diccionario.php

© Universidad Estatal de Milagro – UNEMI

Joyanes A., L. (2003). Libro de problemas. Fundamentos de programación. Algortimos, Estructuras de datos y Objetos (Segunda Edición ed.). Madrid, España: McGRAWHILL/INTERAMERICANA DE ESPAÑA, S. A. U.

35

Introducción a las computadoras y a la lógica computacional – Hardware y software

¿Qué es software?, El software Definición El software es un conjunto de programas que permiten dar funcionamiento a la parte física del equipo, según su definición el software no es tangible físicamente, pero se encuentra almacenado en el dispositivo de almacenamiento masivo del equipo, disco duro, podemos encontrar un infinidad de programas en el mercado, depende de la necesidad del usuario poder determinar cuál es el más adecuado, también a través de un desarrollo a medida, es decir según lo que especifique el usuario, se puede crear un nuevo programa (Joyanes A. L. , 2003). El precio del software está especificado según el tipo de licencia que apique, es importante recordar que los programas mantienen algo que se denomina derechos de autor, que corresponde al trabajo intelectual de un programador o grupo de programadores, que dedicaron tiempo, recurso, y capacidad intelectual para crear el programa, podemos destacar dos tipos de licencias: » Con licencia: especifica el costo en moneda local del valor de software, en este caso la venta solo se realiza a la parte del programa ejecutable, que es lo que ve el usuario cuando ejecuta el programa; el costo puede variar por muchos factores. » Licencia GPL: también se la conoce como código abierto, en este tipo de licencia, el programador o grupo de programadores, realizan con su programa, una contribución a sociedad, solo solicitan que se mantengan los derechos de

Introducción a las computadoras y a la lógica computacional – Hardware y software

ejecutables del programa, más adelante describiremos estos temas.

¡Para recordar!

Software: Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. (RAE Española, 2019),

Clasificación Según (Joyanes A. L. , 2003), una forma de clasificar un software es definiéndolo en: » Software de sistema: Son los programas necesarios para que la computadora pueda funcionar, entre ellos encontramos al Sistema Operativo, este programa es el encargado de ser la interfaz entre los software’s de aplicación y el hardware, otros ejemplos tenemos:

 Controladores de dispositivos  BIOS  Línea de Comando

© Universidad Estatal de Milagro – UNEMI

 entre otros.

» Software de aplicación: Corresponde al grupo de programas que fue creado para realizar una tarea en particular, por ejemplo el programa Crhome, es un programa que nos permite navegar en internet, para nuestra objeto de estudio,

los lenguajes de programación forman parte de este grupo y que los describimos a continuación.

5

Introducción a las computadoras y a la lógica computacional – Hardware y software

Los lenguajes de programación

Lenguajes de programación Fuente: (elfuturoeslapragramacion, 2019)

Clasificación Los lenguajes de programación son un tipo de software que nos permiten codificar un algoritmo para lograr obtener el programa que corresponde a la solución que se está dando al problema planteado.

© Universidad Estatal de Milagro – UNEMI

¡Para recordar!

Codificar: Transformar mediante las reglas de un código la formulación de un mensaje. (RAE Española, 2019), es decir: Es la acción de transformar un algoritmo, por ejemplo, un seudocódigo o flujograma, hacia un programa fuente a través del uso de un lenguaje de programación.

6

Introducción a las computadoras y a la lógica computacional – Hardware y software

Dentro de los lenguajes de programación podemos resaltar al denominado lenguaje C o su siguiente versión C++ orientado a objeto, su estructura y diseño ha permitido la creación de aplicaciones desde un driver para configurar una impresora, hasta la creación de un sistema operativo, en el caso de LINUX.

Historia de la programación Como se refirió en la sesión 1, un ordenador es una máquina que ejecuta programas basado en algoritmos. Esta definición complementa los conceptos de hardware y software, conceptos opuestos, pero a la vez complementarios, no puede funcionar el uno si el otro. (Noguera O., 2013)

La programación en la fase intermedia en la construcción de un software, basado en el marco de la ingeniería en software; donde el aseguramiento de la calidad, se fundamenta en las fases previas de: análisis y diseño previo a la programación; y posterior, validación, depuración de errores, implantación adecuada y finalmente y no menos importante el mantenimiento preventivo y correctivo del software como mejora continua. Todas estas etapas complementan el ciclo de vida del software, necesarios para la construcción de un software de calidad que resuelva un problema específico.

Desde los inicios de la programación, al detectar un problema se implementaba directamente la solución a través de la programación. Actualmente, debido a la © Universidad Estatal de Milagro – UNEMI

complejidad de los programas, niveles de optimización, rendimiento, complejidad de los problemas o necesidades de los usuarios, han surgido varias metodologías y herramientas para asegurar la calidad en el desarrollo de software.

Aunque no se pretende profundizar en este apartado, en la programación en sí, a

continuación, haremos una aproximación de la historia de la programación y evolución de los diferentes lenguajes:

7

Introducción a las computadoras y a la lógica computacional – Hardware y software

Basados en la cronología de Noguera (2013), en su obra programación, en la figura 1.4 reseña el inicio y la evolución de la programación, la primera programadora, la prehistoria de la programación, el primer programa en la memoria y las generaciones de lenguajes de programación:

Charles Babbage (1719-1871) es considerado padre de la informática por el diseño de la calculadora de uso general llamada “máquina analítica”. Ada Lovelace (1815-1852), nacida en Londres británica, hija de Anabella y Lord Byron, es reconocida por los historiadores como la primera persona que hizo un programa para un ordenador. Fue su madre, Anabella, quién indujo a Ada en las matemáticas, quien, tras conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Figura1. 1 - Ada Lovelace (18151852): La primera programadora

Los “números de Bernoulli” son una secuencia de números racionales con unas ciertas propiedades complejas que lo relacionan. Babbage nunca pudo completar la construcción

de ninguno de sus diseños por falta de tecnología y herramientas de precisión de esa época. Sin embargo, el trabajo de Ada llevó a cabo con este modelo, le ha hecho acreedora del título de primera programadora de computadores en el mundo. El primer programa de que desarrolló calculaba números de Bernoulli; de ahí nace el nombre del

© Universidad Estatal de Milagro – UNEMI

primer lenguaje de programación “Ada” para rendir tributo a esta programadora.

8

Introducción a las computadoras y a la lógica computacional – Hardware y software

Generaciones Lenguajes de bajo nivel Los lenguajes de bajo nivel son aquellos que están escrito en código binario y son interpretados directamente por el computador (Joyanes A. L. , 2003), son altamente complejos, y se los utiliza para la programación directa hacia el hardware, por ejemplo: en la programación de microprocesadores, o placas de controladores lógicos programables (PLC) 1, también en los procesos de automatización industrial, o en aquellos proyectos que requieren contar con dispositivo especifico, construido a medida según la necesidad del usuario. Programa como el BIOS en los computadores, es un ejemplo de programas generados por este tipo de lenguajes.

¡Para recordar! BIOS: la función del BIOS es configurar varios recursos de la placa base, principalmente las direcciones IRQ y DMA usados por periféricos instalados (Rodríguez, 2007)

© Universidad Estatal de Milagro – UNEMI

Lenguajes de segunda generación Los lenguajes de segunda generación son una representación de las instrucciones de lenguaje máquina, pero escritas en un texto que puede ser comprendido por el programador, generalmente este tipo de lenguajes son llamados ensambladores; cada procesador pose su propio lenguaje ensamblador (Joyanes A. L. , 2008).

1

Controladores Lógicos programables: http://www.ctinmx.com/que-es-un-plc/ tomado el 12 de mayo del 2019

9

Introducción a las computadoras y a la lógica computacional – Hardware y software

Programa fuente en ensamblador ASSEMBLY

PROGRAMA ENSAMBLADOR (Assembler)

Programa objeto en código máquina

Programa ensamblador Fuente: adaptado de (Joyanes A. L. , 2008)

Lenguajes de alto nivel También denominado lenguaje de tercera generación, su estructura está basado en un lenguaje comprensible para el ser humano, utiliza palabras en inglés que se las denomina palabras reservadas; dependiendo de la versión y la casa fabricante del software puede llegar a soportan hasta metodologías de programación orientada objetos; pueden ser utilizado en proyectos que tiene como finalidad crear software para computadores, móviles, web, y dispositivos de placas programables; un ejemplo de este tipo de lenguajes es visual Basic net de Microsft®, java de ORACLE®, java del entorno IDE ECLIPSE, entre otros. (Joyanes A. L. , 2003)

Lenguajes de cuarto nivel u orientados al

© Universidad Estatal de Milagro – UNEMI

usuarios Además tenemos un grupo de lenguajes de programación llamados herramientas CASE, en la actualidad también se las conoce como tecnologías emergentes, podemos resaltar aplicaciones como GENEXUS2, que es un aplicación que permite generar software sin codificar una sola línea de código, depende mucho el tipo de proyecto y la solución que se busca a través de la creación de un programa para poder definir la

herramienta pertinente. (Joyanes A. L. , 2008) 2

GENEXUS: https://www.genexus.com/es/

10

Introducción a las computadoras y a la lógica computacional – Hardware y software

Programa fuente y el ejecutable Programa ejecutable Le programa ejecutable está escrito en lenguaje máquina, es decir en binario, para que el programa ejecutable pueda interactuar con el hardware del computador, se utiliza un programa intermedio que lo denominados Sistema Operativo el cual sirve como interfaz de comunicación entre el software que es el programa ejecutable y el hardware del computador, es por eso que el programa ejecutable debe ser compatible con el sistema operativo en donde se ejecutará. (Garcia, et al., 2014)

Programa fuente El programa fuente está estructurado su contenido con un lenguaje comprensible por el ser humano, aplica una serie de palabras del idioma ingles que se las denomina palabras reservadas, el programa fuente no puede ser ejecutado directamente por el computador, el computador solo ejecuta programas ejecutables, por lo tanto, se tiene que transformar el programa fuente a través de la acción de compilación para obtener el programa ejecutable correspondiente. (Garcia, et al., 2014)

© Universidad Estatal de Milagro – UNEMI

Proceso

de traducción de un programa:

compiladores y traductores Compiladores Se denomina que un lenguaje de programación aplica un compilador, cuando de su

programa fuente, primero genera el programa ejecutable correspondiente y luego ejecuta el programa ejecutable.

11

Introducción a las computadoras y a la lógica computacional – Hardware y software

Programa

Compilador

Programa

Proceso que realiza los compiladores Fuente: adaptado de (Joyanes A. L. , 2008)

Traductores Se denomina que un lenguaje de programación aplica un traductor, cuando de su programa fuente, va transformando cada línea del programa fuente a su equivalente en programa ejecutable y lo ejecuta, y de esta manera línea a línea. Por lo tanto, depende de la tecnología que aplique el lenguaje de programación, para determinar si es compilado o es traducido, o interpretado, generalmente en el ambiente de trabajo no se suele diferencias estas dos acciones, solo se expresa “ya compilaste el programa”, esto se debe a que en el proceso de formación de los programadores en su momento utilizaron lenguajes tradicionales como C ó C++, que aplicaban compiladores para generar el programa ejecutable. (Joyanes A. L. , 2003)

© Universidad Estatal de Milagro – UNEMI

Programa fuente

Intérprete

Traducción y ejecución

Proceso que realiza los traductores Fuente: adaptado de (Joyanes A. L. , 2008)

12

Introducción a las computadoras y a la lógica computacional – Hardware y software

Técnicas

de

programación:

estructurada,

modular o procedimental y orientada a objetivos Programación estructura La programación estructurada es la técnica de programación tradicional, es aplicable en la mayoría de lenguajes de programación, su diseño es basado por sentencias, que pueden contener declaración de variable, asignación aritmética, evaluación de decisión, ciclos repetitivos finitos, entre otros, cada sentencia es ejecutada en forma ordenada y secuencial desde la primera hasta la última, llamado también diseño descendente, su estructura está formada por sentencias simples, sentencias selectivas, y sentencias repetitivas.

¡Para recordar! programación estructurada: Un método disciplinado para escribir programas más claros, fáciles de corregir, y más fáciles de modificar (Deitel & Deitel, 2004)

© Universidad Estatal de Milagro – UNEMI

Programación modular o procedimental La programación estructura llego a tal punto que era complicado su proceso de mantenimiento, mejorar y/o actualización de los programas, a medida que la complejidad de los programas iba incremento, las líneas de código del programa estructurado crecían también, entonces la programación modular busca reducir la

complejidad del programa que se desea construir, aplicando un concepto muy sencillo:

13

Introducción a las computadoras y a la lógica computacional – Hardware y software

primero debemos analizar el problema de una forma que logremos dividir en varias partes su complejidad, algo así como hacer las piezas de un rompecabezas, y luego ir resolviendo cada parte que técnicamente se la puede denominar subprograma, su estructura está formada por funciones, procedimientos parámetros de entrada y salida, variables locales, variables globales, ámbito y recursividad; en resumen las ventajas que podemos resaltar al aplicar la programación modulas son:

1. Reduce la complejidad 2. Permite un mantenimiento o actualización del software más fácil 3. Permite la reutilización del código

subprograma 1

PROCESO

subprograma 3

subprograma 5

© Universidad Estatal de Milagro – UNEMI

subprograma 2

ENTRADA

subprograma 4

subprograma 6

SALIDA

Esquema abstracto de la representación de la programación modular Fuente: Diseñado por el autor

14

Introducción a las computadoras y a la lógica computacional – Hardware y software

Programación orientada a objeto

Representación de la programación orientada a objeto Fuente: Canal de youtube de Alex Álvarez Programming (Alvarez, 2017) La programación orientada a objeto es una metodología que se utiliza en la actualidad, su estructura permite reducir en gran medida la complejidad de las necesidades del usuario haciendo que el código sea más-eficiente, técnicamente la POO, es la combinación de programación estructurada con la programación modular, toma ambas características y aplica nuevos conceptos como: encapsulación, herencia y polimorfismo; la POO va más allá de la modularidad, su estructura se base en armar objetos que son la representación de las entidades, actores o personas, que interactúan en el contexto del problema que se quiere dar solución, esto se denomina hacer la abstracción de la entidad, estableciendo sus características y comportamiento, y los identifica con el nombre de clase; a partir de la clase definida se aplicar la encapsulación, que es la acción de crear un objeto a partir de la © Universidad Estatal de Milagro – UNEMI

definición de una clase.

15

Introducción a las computadoras y a la lógica computacional – Hardware y software

¿Qué es Hardware?, dispositivos más relevantes Según (Real académica de la lengua, 2019) el Hardware son todos los equipos que forman parte del computador, es decir los equipos físicos que se conectan al computador. ¡Para recordar! Hardware: conjunto de

aparatos de una computadora (Real académica de la lengua, 2019)

Al hardware podemos clasificarlo tradicionalmente en dos grandes grupos: » Los que son de entrada: corresponden aquellos equipos que son usados para ingresar datos al computador, ejemplo el Mouse, el micrófono, palanca de juego, entre otros. » Los que son de salida: corresponde aquellos equipos usados para presentar los resultados de la ejecución de los programas, entre ellos tenemos el monitor, la impresora, entre otros. El avance tecnológico y las necesidades de los usuarios, en la actualidad han generado una producción diversificada de hardware, que incluso son mixto, es decir que son de entrada,

© Universidad Estatal de Milagro – UNEMI

pero también pueden ser de salida; es por eso que a continuación damos una clasificación más amplia relacionada a las características funcionales de los equipos (Deitel & Deitel, 2004).

» Procesamiento  

Unidad Central de Proceso (CPU) Micropresadores

16

Introducción a las computadoras y a la lógica computacional – Hardware y software

  

Tarjeta Madre Memoria RAM Tarjeta de integradas (audio, video, etc.)

» Almacenamiento  Dispositivo Magnéticos (Cinta Magnética, Disco Duro, Disquete)  Dispositivos Ópticos (CD-RW, DVD-ROM, CD-R, DVD-RAM, FLASH CARS)  Dispositivos Extraíbles (Memory Flash, Unidad de Zip) » Periféricos de Entrada        

El Teclado Ratón Escáner Lápiz óptico Micrófono Cámara Lector de CD y DVD Joystick

© Universidad Estatal de Milagro – UNEMI

» Periféricos de Salida           

Monitor Impresora Tarjeta de Voz Tarjeta de Sonido Auriculares Parlante Plotter Proyector CD/DVB Fax Microfilm

17

Introducción a las computadoras y a la lógica computacional – Hardware y software

El almacenamiento físico y lógico Corresponden a los dispositivos que almacenan la información, son dispositivos electrónicos, que, según su capacidad, y especificación técnica, pueden estar dentro del computador como fuera de él, la información es almacenada el formato binario, es decir en 0 y 1; podemos clasificarlos de la siguiente manera:

Discoss » Disquetes: Es un dispositivo o unidad flexible con soporte tipo magnético, utilizado para almacenar programas y archivos. » Disco Duros: Es una unidad de almacenamiento de datos con un sistema magnético de grabación de datos. » Discos Duros Virtuales: Es un dispositivo de almacenamiento no físico, es decir que los datos se alojan de manera online, dentro de un sitio o página web.

El almacenamiento puede ser gratuito o de pago, el riesgo a asumir al depositar información en lugares no controlados por uno mismo, sino en terceros; esta situación requiere ser analizado con mayor profundidad sobre la privacidad y seguridad de la información en discos virtuales sub-contratados. (Deitel & Deitel, 2004)

© Universidad Estatal de Milagro – UNEMI

Discos Ópticos » CD-ROM: Es un disco compacto de lectura de datos. » CD-RW: Es un disco de grabación o escritura y lectura de datos. » DVD: Es un disco óptico con gran capacidad de almacenamiento. » Cintas Magnéticas: Son dispositivos de almacenamiento secuencial(es la lectura o escritura de datos uno tras otro)

» Digital:

Es un dispositivo de pequeñas dimensiones, con capacidad de

almacenar en GB.

18

Introducción a las computadoras y a la lógica computacional – Lógica computacional

 Disco Flash: Es un dispositivo pequeño de almacenamiento portátil, conocido USB (Bus Universal en Serie).

Conclusiones 1. El software es la parte intangible del computador, corresponde a los programadas de la computadora, y son los que permiten que los equipos físicos funcionen. 2. Hardware, es la parte tangible del computador, y son todos los equipos conectados a él, por el avance tecnológico en la actualidad encontrados una gran variedad de hardware 3. Los lenguajes de programación son en si un programa o software que permite crear los programa fuentes que a través de un compilador o traductor podemos

© Universidad Estatal de Milagro – UNEMI

crear el programa objeto o ejecutable.

19

Introducción a las computadoras y a la lógica computacional – Lógica computacional

Sistema binario Concepto El computador en su funcionamiento interno, específicamente, en el almacenamiento y transformación de la información, aplica un sistema de numeración de base 2, que es llamado Sistema Binario, y usa los dígitos 1 y 0, es decir que cuando se quiere expresar un valor en binario su representación es una cadena o secuencia de ceros y de unos, por ejemplo:

110101110111011011011101(2 El tamaño de la cadena puede llegar a ser infinita, depende de la cantidad de información que se almacene y la capacidad que tenga el dispositivo, en el caso del ingreso de datos en la fase entrada, cada dato ingresado le corresponde su propia cadena de binarios, recordemos también que cada entrada de dato tiene asociado una variable que la contiene. Como indicamos en temas anteriores, el sistema binario es complejo para el ser humano, nosotros estamos habituados a utilizar el sistema decimal en base 10; vamos a empezar definiendo la correspondencia entre los numero decimales y binario, luego aplicaremos los cálculos para la transformación. (Deitel & Deitel, 2004)

Introducción a las computadoras y a la lógica computacional – Lógica computacional

Base decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ….

Base binaria 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 …..

1.1. Tabla de equivalencia de decimal y binario Fuente: elaborado por el autor

Transformaciones entre bases Transformación de binario a decimal por potencial de

© Universidad Estatal de Milagro – UNEMI

2: A cada número de la cadena binaria, lo multiplicamos por el numero 2 elevado a potencia según la posición del número, contado de derecha a izquierda, es decir:

1) Se tiene el número binarios: 101110101010(2

2) A cada número se le establece una posición contado desde cero de derecha izquierda

5

Introducción a las computadoras y a la lógica computacional – Lógica computacional

Posici 11 ón binar 1 io

10

9

8

7

6

5

4

3

2

1

0

0

1

1

1

0

1

0

1

0

1

0

3) Correspondiendo al número de posición aplicamos la potencia que debemos de usar, tenemos:

1 * 211 + 0*210 + 1 * 29 + 1 * 28 + 1 * 27 + 0 *26 + 1 * 25 + 0*24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20

4) Descartando la multiplicación con el número cero nos queda: 1 * 211 + 1 * 29 + 1 * 28 + 1 * 27 + 1 * 25 + 1 * 23 + 1 * 21

5) Desarrollamos los cálculos 1 * 2048 + 1 * 512 + 1 * 256 + 1 * 128 + 1 * 32 + 1 * 8 + 1 * 2

6) Como resultado tenemos el número correspondiente en base decimal

© Universidad Estatal de Milagro – UNEMI

2986(10

Transformación de decimal a binario mediante divisiones sucesivas A partir de un efectuamos divisiones sucesivas de 2 al cociente resultante, talnúmero como sedecimal muestra a continuación:

6

Introducción a las computadoras y a la lógica computacional – Lógica computacional



Decimal a Binario 26 2 0 13 2 1 6 2 0 3 2 1 1

1. El dividendo, que es la parte entera se la divide para dos 3. El resultado de la división entre el dividendo y el divisor, obtenemos el Cociente, que lo dividiremos para dos, hasta que nos quede 1 o 0 en cociente. 4. Y en orden inverso a los cálculos obtenidos, y tomando el ultimo cociente

2. El resultado de la división entre el dividendo y el divisor, obtenemos el Residuo, que vendrá siendo numero binario transformado.

26(10 = 11010(2 Divisiones sucesivas de 2 para transforma de decimal a binario Fuente: Realizado por el autor

© Universidad Estatal de Milagro – UNEMI

1.1.

7

Introducción a las computadoras y a la lógica computacional – Lógica computacional

Conjunto de caracteres tablas ASCII y UNICODE En este apartado vamos a conocer el conjunto de caracteres más comunes que se aplican en los computadores, específicamente en el sistema operativo, los caracteres son la representación gráfica de la información textual, que deseamos almacenar en el computador, dentro del conjunto de caracteres, cada carácter tiene asociado un código, que es un numero entero positivo. Entre los conjunto de caracteres más populares tenemos al ASCII AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE, está formado por 255 caracteres, a continuación, veamos una representación de los caracteres del conjunto ASCII, también se

© Universidad Estatal de Milagro – UNEMI

lo suele denominar “tabla ASCII” (Deitel & Deitel, 2004):

Tabla ASCII Fuente: https://sites.google.com/site/andreap10briones/tareas-2do-

parcial/tabladecodigosascii

8

Introducción a las computadoras y a la lógica computacional – Lógica computacional

En la figura 1.3 TABLAS ASCII, podemos observar los 255 caracteres; ahora vamos a relacionar los temas que, desarrollados en las sesiones anteriores, y veamos como el número identificador de los caracteres, que corresponde a un número entero positivo, se relaciona con la forma como el computador almacena la información, específicamente el uso del sistema binario: Tenemos el siguiente texto: “UNEMI”, en nuestra asignatura, vamos a encerrar en comillas dobles cuando queramos expresar una palabra o frase.

1. Si aplicamos la tabla ASCII y definimos los códigos que les corresponde a las letras, tendríamos. ASCII

85

78

69

TEXTO

U

N

E

7 7 M

7 3 I

Es decir que para la letra ‘U’ tenemos el código 85 según tabla ASCII, en programación usaremos comilla simple cuando nos referíamos a una sola letra, Para la letra ‘N’ tenemos el código 78, y así con las demás letras.

2. El código es un numero en base decimal, y lo que hace el computador es pasar de ese número decimal a su equivalente en sistema binario, en el apartado anterior vimos el proceso de pasar de base 10 a base 2, entonces ahora

© Universidad Estatal de Milagro – UNEMI

tenemos: Binar io

101 0101

100 1110

100 0101

100 1101

100 1001

ASCII

85

78

69

77

73

TEXTO

U

N

E

M

I

9

Introducción a las computadoras y a la lógica computacional – Lógica computacional

3. Como podemos observar la secuencia de 1 y 0, es la transformación a binario del código del carácter, hagamos un paso más, recordemos que la unidad de la información es el BYTE, y que se forma en octetos bit, es decir grupos de ocho bits, por tanto, vamos agregar un cero a la izquierda para dejar representado el octeto, para cada letra tenemos que completar los ocho bits, pero si la cadena de bit ya tienen los ocho, no se agrega ningún digito. Binari o ASCII TEXTO

0101 0101 85

0100 1110 78

0100 0101 69

0100 1101 77

0100 1001 73

U

N

E

M

I

4. Para concluir, la palabra “UNEMI” estaría almacenada en el computador de la siguiente manera:

0101 01010100 11100100 01010100 11010100 1001(2

Que corresponde a la unión de los números binarios, además podemos decir que la palabra “UNEMI” equivale a 5 byte, un byte por cada letra que equivale a un octeto o el grupo de 8 bit El conjunto de caracteres ASCII, en su momento era suficiente para el alfabeto inglés, pero si consideramos que el uso de la computadora es de dimensiones globales, los demás

© Universidad Estatal de Milagro – UNEMI

alfabetos, que aplican un conjunto de caracteres más amplio e incluso diferentes a los símbolos que el ASCII representa en su conjunto, se crea el UNICODE, basado en el mismo principio del ASCII, pero con la característica de tener mayor capacidad contenido, 137374 caracteres, con esta capacidad puede contener no solo los caracteres ASCII, si no alfabetos como los árabes, asiáticos, entre otros, que usan un conjunto de caracteres diferente al inglés o latino.

10

Introducción a las computadoras y a la lógica computacional – Lógica computacional

La palabra hola, escrita en los Conjunto de caracteres que soporta el UNICODE según el lenguaje Fuente: https://medium.com/tensorflow/adding-unicode-support-in-tensorflow-

© Universidad Estatal de Milagro – UNEMI

6a04fb983b63

11

Introducción a las computadoras y a la lógica computacional – Lógica computacional

Operación

aritméticas y lógicas en el sistema

binario: Suma y Resta; Las operaciones aritméticas en sistema binario, se la aplica igual como en el sistema decimal, para ejemplarizar estas operaciones, solo revisaremos la suma y la resta binaria:

Suma La suma de binarios aplica las mismas reglas que la suma de números decimales, consideremos la siguiente tabla:

+ 0 0 1 1

0 1 0 1

= = = =

0 1 1 0

Llevo uno

Podemos notar que al sumar 1 + 1 el resultado es 0, pero llevamos 1, también se estila decir acarreo 1, que se le sumará a la siguiente decena.

Por ejemplo: Sumemos dos números: 11101(2 y 110(2

© Universidad Estatal de Milagro – UNEMI

1) Empezamos de derecha a izquierda y tenemos 1 + 0 = 1

+

1

1

1 1

0 1

1 0 1

1

1

1 1

0 1 1

1 0 1

2) 0 + 1 =1

+

12

Introducción a las computadoras y a la lógica computacional – Lógica computacional

3) 1 +1 = 0 pero acarreo 1 a la siguiente decena 1

+

1

1B)&&(C< A) && F F

(C< A) F F

V

F

F

V V

F V

F V

Podemos verificar en la tabla anterior que, primero se resuelve las operaciones lógicas más simples, y se va desagregando la respuesta de cada operación, hasta llegar a la última.

6) En el caso del segundo ejercicio tenemos:

A

B

C

8

5

12

2

10

2

4 8

3 4

4 0 3 0 1 0 4 4

(A>B)&&(C