Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
La información son los datos y el tratamiento automático de estos datos se hace mediante los sistemas
informáticos que son los llamados comúnmente Ordenadores o Computadoras. Un ejemplo sería calcular
la suma de 5 + 6. El 5, el 6 y el signo + son los datos, el tratamiento automático de esos datos sería el
resultado, es decir 11.
- El Hardware: parte física del ordenador. Conjunto de placas, circuitos integrados, chips, cables,
impresoras, monitores, etc. (lo que podemos tocar)
- El Software: son los programas, es decir las instrucciones para comunicarse con el ordenador y que
hacen posible su uso (no lo podemos tocar): ¿Qué es el Software?.
En un sistema informático se introducen datos a través de los periféricos de entrada (por ejemplo el
teclado), se sacan datos a través de los periféricos de salida (por ejemplo el monitor) y también los
hayde entrada/salida, que sirven para meter y sacar datos en el ordenador (por ejemplo un router).
Mas sobre los periféricos aqui: Perifericos.
Ya tenemos los datos transformados. ¿Qué hacemos ahora con ellos?. Pues muy sencillo, debemos
recoger los datos transformados de alguna
forma. Estos datos transformados es lo
que llamamos información de salida.
La máquina que realiza todo esto es lo que se conoce como un Ordenador o una Computadora.
Pero...¿Y su tuviéramos que definirlo?.
SISTEMA INFORMATICO
En un sistema informático se transforman los datos mediante los programas escritos en algún tipo
delenguaje de programación, ahora bien, para que el ordenador puede entenderlos, los datos deben ser
traducidos al lenguaje eléctrico que es el único que el ordenador conoce. No debemos olvidar que el
ordenador es una máquina eléctrica. Entonces....
Debemos tener un idioma intermedio y que los dos conozcamos. Es igual que si una persona
española sabe español e ingles, y otra portuguesa, sabe portugués e ingles. ¿Cómo crees que se
entenderían? ¡Se entenderían hablando Ingles¡. Es el idioma que tienen en común, aunque no sea
el idioma de ninguno de los dos. ¿Pero que idioma tenemos en común un ordenador y una persona?. ¡EL
SISTEMA BINARIO DE NUMERACIÓN!.
El sistema de numeración decimal es un sistema que usa diez dígitos para formar infinitos números (el
0,1,2,3,4,5,6,7,8 y el 9). Además es el sistema que solemos usar. El número diez es una combinación
del 1 con el 0, el 11 de dos unos, el trece del 1 con el 3 y así hasta el 19. Luego empezamos a combinar
números con el 2 hasta el 29 y así hasta llegar al 99. Ahora, como ya no tenemos más combinaciones
posibles de dos números, empezamos a combinar números con tres dígitos siendo el más bajo el 100.
Así sucesivamente obtenemos un sistema de numeros llamado decimal.
Pero en informática y electrónica también se usa otro sistema de numeración, igual de válido que el
decimal, llamado SISTEMA BINARIO por que solo usa dos dígitos el 0 y el 1.
Así tendríamos los siguientes números de menor a mayor en el sistema binario: 0 , 1 , 10 , 11 , 100 ,
101 , 110 , 111 , 1000 , 1001 , 1010 , 1011 , 1100 , 1101. Recuerda, para construir el sistema de
numeración binario solo se pueden usar los dígitos 0 y 1, con lo que al llegar al 1 ya tendríamos que
empezar a combinar números de dos en dos (el 1 con el 0 y el 1 con el 1) y al llegar al 11 ya tendríamos
que combinar números de 3 en 3.....
Si quisiéramos tener una equivalencia, por ejemplo, de los once primeros números del sistema decimal
con los del sistema binario tendríamos:
Si quieres aprender más sobre el sistema binario en este enlace: Sistema Binario.
El componente principal del ordenador, el microprocesador, del que ya hablamos y hablaremos más, es
como si estuviera formado por millones de interruptores que son accionados eléctricamente cuando les
llegacorriente eléctrica y están sin accionar cuando no les llega corriente. Estos dos estados eléctricos
para nosotros serán dos números posibles “0” y “1” que corresponden a los estados de interruptor
“abierto” y “cerrado”.
Fíjate en la imagen de más abajo. Por ejemplo si le introduzco el número (instrucción en binario) 01001
le estoy diciendo que encienda las lámparas de la figura (la segunda y la última que valen 1). Podríamos
decirle que si pasara esto nos mostrara en la pantalla la letra "A", por ejemplo, en lugar de encender
lámparas. ¡YA NOS ESTAMOS ENTENDIENDO!.
En informática podríamos asignar a cada letra o símbolo (caracteres) o número, un número en binario
de 8 cifras (8 ceros y unos) y así obtener un código mediante el cual podamos entendernos con el
ordenador. Este código de llama código ASCII:
Por ejemplo la letra A es el número 10100001. Cuando apretamos la tecla de la letra A, le mandamos
la información al ordenador su correspondiente código binario de 8 cifras, es decir el número (10100001)
y el interpreta que le estamos diciendo que queremos que nos saque en la pantalla el símbolo de la letra
A.
Un byte = conjunto de 8 bits, que es lo que ocupa un número o un carácter (letra, o símbolo) en el
sistema de codificación usado en informática.
¿Cuánto ocupará un documento formado por 1000 caracteres? Pues muy sencillo ¡1000 bytes!.
Puedo saber cuantos bytes tiene un documento o lo que es lo mismo, cuantos bytes necesitaré para
almacenarlo an algún sitio externo.
Por ejemplo un documento que ocupa 1Mb estará formado por 1024 números, letras, símbolos o
espacios en blanco.
Otra unidad muy usada en informática es la velocidad de transmisión de datos. Unidad usada para
medir la velocidad a la que se mandan datos de un ordenador a otro en una red de ordenadores (por
ejemplo velocidad internet), o la velocidad a la que se envían los datos de una parte a otra del ordenador.
¡OJO! En algunas ocasiones se representa por bits por segundo en lugar de bytes (sobre todo en
Internet) En este caso se diferencia por que la abreviatura es b (minúscula) en lugar de la B (mayúscula)
usada para los bytes: ejemplo Mb/s (megabits por segundo). “Es una unidad 8 VECES MENOR que la
anterior”.
Almacenamiento de la Información
De todas estas, la que solo se usa hoy en día prácticamente, es el lápiz de memoria, también llamado
Memoria USB o pendrive. Si quieres saber más sobre estas te recomendamos este enlace: Memorias
USB.
Para que el micro pueda hacer todo en su interior esta dividido en dos partes totalmente diferentes:
- Unidad aritmética lógica (ALU): esta unidad realiza todos los cálculos matemáticos de la CPU. El
ALU puede sumar, restar, multiplicar, dividir, y realizar otros cálculos u operaciones con los números
binarios (función lógica SI por ejemplo).
- Unidad de control (UC): Controlar todos los procesos que ocurren en el sistema. Este componente
es responsable de dirigir el flujo (en qué orden deben ir, y cuando) de las instrucciones y de los datos
dentro de la CPU.
¿De donde le llegan los datos (instrucciones) al microprocesador para que los procese?. El micro siempre
va a buscar los datos a un almacén del ordenador, llamado Memoria RAM.
La Memoria
RAM.- Cuando
nosotros ejecutamos
(abrimos) un programa
en nuestro ordenador,
estamos pasando las órdenes del programa a un almacén llamado memoria RAM. En esta memoria solo
están los datos de los programas que estamos usando (ejecutando) en ese momento. Si yo abro el
programa Word, todas sus instrucciones pasan del gran almacén, que es el disco duro, a otro almacén
llamado memoria RAM. Cuando cierro el programa, este (las instrucciones) sale de la RAM y se almacena
en el disco duro.
Este almacén tiene la peculiaridad de que es capaz de enviar los datos que le pida el micro de forma
muy rápida. Además el micro va a tardar poco en encontrar los datos por que solo buscará en los datos
del propio programa, y no en todos los datos que tengamos en nuestro ordenador (podemos tener
muchos programas diferentes en el disco duro). Es decir el proceso se hace de esta forma de manera
mucho más rápida.
La memoria principal o RAM (Random Access Memory, Memoria de Acceso Aleatorio) es donde el
computador guarda los datos que está utilizando (ejecutando) en ese momento. El almacenamiento
es considerado temporal por que los datos y programas permanecen en ella mientras que el ordenador
este encendido y el programa en ejecución. Al apagarse el ordenador
los datos que hay en ella se pierden.
Memoria ROM.- Pasemos a otra cosa. Cuando nosotros encendemos el ordenador. ¿Quién le dice lo
que tiene que hacer hasta que se para en la pantalla de Windows?.
Pues unas instrucciones que están en otro almacén. A este almacén el micro solo va a buscar las
instrucciones que hay en él cuando pulsamos el botón de arranque. Este almacén se llama: Memoria
ROM.
Los datos que hay en esta memoria nunca se perderán aún cuando se apague el ordenador. ¿Cómo se
consigue que no se pierdan al apagarse?. Mediante el acumulador o pila del ordenador.
Veamos un pila de un ordenador: Los datos de esta memoria ROM no se podían modificar nunca. Ahora
en vez de tener memoria ROM los ordenadores llevan lo que se llama LA BIOS del sistema. La bios ha
sustituido a la antigua memoria ROM, en este caso algunos datos se pueden
modificar por si el usuario quiere ampliar su ordenador (por ejemplo añadirle
un disco duro).
La Placa Base.- Todos estos componentes están alojados en la llamada placa base, y a ella tienen que
llegar toda la información externa que vienen de los llamados periféricos (componentes externos al
ordenador): Ratón, monitor, teclado, etc.
¿Cómo envían/reciben la información los periféricos desde y hacia la placa base?
Pues mediante unos cables llamados Buses. Los buses son los cables por donde viaja la información
por un ordenador.
En la placa base hay unas ranuras donde podemos conectar elementos o tarjetas como por ejemplo las
tarjetas de sonido, multimedia, etc. Las más comúnes son las llamadas PCI. Las SIMM o DIMM son para
insertar en ellas la memoria RAM.
Buses
Los buses
pueden se de dos
tipos: IDE o los
ATA más
modernos.
Los Buses
(cables) tienen
que ir conectados
en algún sitio,
estos sitios son
los conectores.
Un cable IDE solo
se puede
conectar en un
conector IDE.
Periféricos
Los periféricos los podemos definir como los dispositivos que nos permiten comunicar el interior del
ordenador con el mundo exterior . Hay periféricos de entrada (para meter datos), de salida (sacar datos)
y de entrada/salida (permiten meter y sacar datos).
Pero los periféricos se conectan al ordenador mediante los puertos de comunicacion (ranuras o
conectores situadas en la placa base del ordenador), no directamente a la placa base. Veamos los tipos
de puertos que hay:
Mas sobre los periféricos aqui: Perifericos.
Sistema informático
Un sistema informático. Puede ser
definido como un sistema de información Sistema informático
que basa la parte fundamental de su
procesamiento, en el empleo de
la computación, como cualquier sistema,
es un conjunto de funciones
interrelacionadas, hardware, software y
de Recurso Humano. Un sistema
informático normal emplea un sistema
que usa dispositivos que se usan para
programar y almacenar programas y
datos.
Si además de la información, es capaz
de almacenar y difundir los
conocimientos que se generan sobre
cierta temática, tanto dentro, como en el
entorno de la entidad, entonces está en
presencia de un sistema de gestión de Concepto: Es el conjunto de partes interrelacionadas,
información y conocimientos. Como hardware, software y de recurso humano
utilizador final emplea esa información en que permite almacenar y
dos actividades fundamentales: la toma procesar información.
de decisiones y el control.
Sistemas de información para la dirección (MIS). Estos sistemas han abarcado los TPS,
integrando las mismas mediante sistemas de bases de datos, y almacenes de datos, de forma
tal que el sistema puede reflejar la realidad compleja de una entidad socioeconómica, con
todos sus subsistemas y relaciones informativas. Se orientan, sobre todo, a proporcionar
información para la toma de decisiones y el control, por lo que puede asegurarse que el rol de
la computadora en estos sistemas es relativamente pasivo.
Los MIS actuales abarcan una gran cantidad de funciones y tareas, tiene enormes y complejos
sistemas de bases de datos. Logran con una simple entrada de información primaria que se
desencadenen todas las operaciones que esa entrada genera, sin que los usuarios-operadores
tengan que intervenir en nada más que la entrada inicial. Ejemplo de este son los software
“Mónica” , el “Visual conta” y Versat Sarasola y Atenas para la contabilidad.
Sistemas de apoyo a la toma de decisiones. Se apoyan en los MIS, los que crean y actualizan
las bases de datos, que los primeros utilizan. Los DSS se destinan a la toma de decisiones, están
hechos para apoyar el trabajo individual o para las decisiones en grupo, apoyan mucho en la
llamada investigación de operaciones o los métodos cuantitativo de la toma de decisiones,
técnicas matemáticas para apoyar el trabajo del ser humano en las llamadas decisiones bien
estructuradas, débilmente estructuradas y no estructuradas, las cuales por su complejidad
pueden tener errores al ser analizadas por el ser humano con métodos tradicionales (intuición,
experiencia). Ejemplo de estas decisiones son el empleo de técnicas de ruta crítica para dirigir
proyectos de construcciones. La utilización de la programación lineal para dirigir la alimentación
óptima en nutrientes, pero al costo más bajo posible de ganando. Un tipo muy importante de DSS
son los sistemas empresariales de planeación de recursos (ERP).
Los DSS como ya se explicó pueden ser para el trabajo individual o grupal. Hay ocasiones en que
varias personas más o menos distantes requieren usar e interactuar con la misma información a
través del sistema informático (grupal), este tipo de sistema está dirigido virtualmente a un grupo
de personas, las cuales deben resolver un problema complejo, el cual incluirá votaciones, llenado
de cuestionarios, creación de escenarios y simulaciones, que después serán conocidos por todos.
Y otra como el sistema Scheduling en que es típico el trabajo individual (en sentido relativo:
puede ser información que se utilice por un grupo de personas pero que la reciben y pueden
utilizarla en una terminal de una red de computación)
Sistemas basados en la inteligencia artificial. La inteligencia artificial, es una rama de la
ciencia de la computación que busca emular las capacidades intelectuales del ser humano,
mediante el empleo de software especializado y las computadoras. Abarca muchos campos, entre
los que se encuentra la robótica, la solución general de problemas, identificación y reconocimiento
de patrones visuales, auditivos y digitales, la simulación del movimiento, el análisis y la síntesis
del lenguaje natural y la potenciación del conocimiento humano. Representan un paso adelante
en relación con los anteriores MIS y DDS, pueden asumir actividades más “humanas”, más
activas en los procesos de dirección, pues tiene incorporados muchos elementos que los hacen
actuar similarmente como lo haría un humano.
Los sistemas de expertos, como comúnmente se les conoce, tiene una base de datos especial
donde se almacenan los conocimientos de los expertos humanos. Esta se llama base de
conocimientos, su confección y llenado se apoya en una tecnología llamada ingeniería del
conocimiento, a medio camino entre la informática y la tecnología. Además estos sistemas
cuentan con programas especializados en inteligencia artificial conocidos como motores de
inferencia, mediante los cuales revisan las bases de conocimientos y ejecutan las operaciones
“inteligentes” para solucionar los problemas que se les plantea.
Estos sistemas son criticados por: las bases de conocimientos son difícil de cumplimentar. En la
medida en que la base de datos se llena de conocimientos lejos de ser más rápido se ralentiza.
Sistemas basados en algoritmos genéticos (GA). Conjunto de métodos que se apoyan, como
su nombre lo indica, en la emulación de la forma de desarrollo genético de los animales y las
plantas, estos son entre sí mismos una técnica de aprendizaje automático, aspiran a permitir
que las computadoras “aprendan” por sí mismas, para algunos especialistas son solo una
familia de métodos de búsqueda adaptativa de soluciones.
Intranets
Sitios WEBs de orientación externa
La necesidad de informatizar para hacer que la entidad cumpla con su misión y pueda
alcanzar la visión de sí misma que se plantea. Sin la necesidad del desarrollo no habrá
resultado.
El grado de madurez que alcance en su gestión y el nivel técnico de su equipo directivo y de
su capital humano en general. Si ese capital humano no logra asimilar el conocimiento
necesario, nunca se pasará del empleo elemental de los recursos informáticos.
El desarrollo de una cultura proclive al cambio y a la introducción de esa tecnología. Sin la
disposición a evolucionar, a modificar los hábitos y las rutinas de trabajo, para lograr mejores
formas y métodos de hacer, no habrá asimilación de tecnología compleja.
Teniendo en cuenta las variables declaradas, las etapas por las que transita el desarrollo
informático de las entidades son las siguientes:
Sobre la base de estas tres variantes, el desarrollo de cada etapa se sucede en lo que ha dado
en denominarse como el Ciclo de vida de los sistemas de información y conocimientos.
Un sistema informático es un sistema de información que está informatizado.
No todos los sistemas de información son sistemas informáticos, pero todos los sistemas informáticos son
sistemas de información. Por lo tanto se puede decir que un sistema informático es un subconjunto de un
sistema de información.
Por ejemplo, el sistema de información de una biblioteca antiguamente se hacía manualmente: el ingreso
de nuevos libros, las fichas de cada libro se llenaban a mano, las búsquedas de libros, la organización de
los mismos en estantes, etc.
Con la llegada de la computadoras una biblioteca sigue contando con un sistema de información para
organizarse, pero que a su vez contiene un sistema informático: una o más computadoras para buscar
libros, para ingresarlos al sistema, para saber dónde están ubicados exactamente, un operador que
controla las computadoras (el operador humano se considera parte parte del sistema), disponibilidad de
impresoras, escáneres, manuales de uso del sistema, técnicos de mantenimiento del sistema, usuarios del
sistema, etc.
Teniendo en cuenta esta introducción y el ejemplo, entonces podemos definir sistema informático:
Un sistema informático es un conjunto de partes o recursos formados por el hardware, software y las
personas que lo emplean, que se relacionan entre sí para almacenar y procesar información con un
objetivo en común.
Recurso de software: manuales de uso, sistema operativo, archivos, documentos, aplicaciones, firmware,
bases de datos, información de una red de computadoras, etc.
Recurso humano: son todos las personas que forman parte del sistema, como ser los operadores del
sistema, los técnicos que lo mantienen y los usuarios finales.
Un sistema informático tiene un objetivo específico y concreto, por ejemplo: informatizar la administración
de información en una biblioteca, informatizar el control de pagos e información general de los clientes de
un gimnasio, etc.
Pero también hay objetivos o finalidades generales que deseablemente deberían cumplir todos
los sistemas informáticos:
La finalidad u objetivo más general de los sistemas informáticos es hacer las tareas más rápidas, flexibles
y cómodas para los usuarios, empleando de la tecnología informática eficientemente para tal fin.
* Agilizar un sistema ya existente, que puede ser manual, o incluso informático pero ya viejo u obsoleto.
* Crear un sistema nuevo, para resolver algún problema específico, tal vez integrándolo a un sistema ya
existente.
Para realizar un programa es conveniente el diseño o definición previa del algoritmo. El diseño de
algoritmos requiere creatividad y conocimientos profundos de la técnica de programación. Luis Joyanes,
programador experto y autor de muchos libros acerca de lógica y programación nos dice "en la ciencia de la
computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o
las computadoras. Un lenguaje de programación es sólo un medio para expresar un algoritmo y una
computadora es sólo un procesador para ejecutarlo".
Loa algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede
escribirse y luego ejecutarse en un lenguaje diferente de programación. El algoritmo es la infraestructura
de cualquier solución, escrita luego en cualquier lenguaje de programación.
Entre dos algoritmos que lleven a un mismo objetivo, siempre será preferible el más corto (se deberá analizar la
optimización de tiempos y / o recursos).
Considerar los datos de entrada, el proceso que debe realizar el computador y los datos de salida.
2. Diseño y desarrollo del algoritmo (se utiliza pseudocódigo, escritura natural del algoritmo, diagramas de flujo,
etc. )
3. Prueba de escritorio. Seguimiento manual de los pasos descritos en el algoritmo. Se hace con valores bajos y tiene
como fin detectar errores.
4. Codificación. Selección de un lenguaje de programación y digitación del pseudocódigo haciendo uso de la sintaxis
y estructura gramatical del lenguaje seleccionado.
Compilación o interpretación del programa. El software elegido convierte las instrucciones escritas en el lenguaje
a las comprendidas por el computador.
6. Ejecución. El programa es ejecutado por la máquina para llegar a los resultados esperados.
7. Depuración (debug). Operación de detectar, localizar y eliminar errores de mal funcionamiento del programa.
8. Evaluación de resultados. Obtenidos los resultados se los evalúa para verificar si son correctos. (Un programa
puede arrojar resultados incorrectos aun cuando su ejecución no muestra erorres).
Algoritmos cualitativos y algoritmos cuantitativos.
Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Las
instrucciones para armar un aeromodelo, para desarrollar una actividad física o encontrar un tesoro, son ejemplos
de algoritmos cualitativos.
Tomar mate
Utilizar una guía telefónica
Cocinar siguiendo una receta
Cambiar una llanta de automóvil
Buscar una palabra en el diccionario
Ejemplos:
Solución de un factorial.
Solución de una ecuación de segundo grado
Encontrar el mínimo común multiplicador.
Técnicas de representación
Herramientas
Para implementar la solución de un problema mediante el uso de una computadora es Necesario establecer
una serie de pasos que permitan resolver el problema, a este conjunto de pasos se le denomina algoritmo, el cual
debe tener como característica final la posibilidad de transcribirlo fácilmente a un lenguaje de programación, para
esto se utilizan herramientas de programación, las cuales son métodos que permiten la elaboración de algoritmos
escritos en un lenguaje entendible. Un algoritmo, aparte de tener como característica la facilidad para transcribirlo,
debe ser:
1. Preciso. Debe indicar el orden en el cual debe realizarse cada uno de los pasos que conducen a la solución
del problema.
2. Definido. Esto implica que el resultado nunca debe cambiar bajo las mismas condiciones del problema, éste
siempre debe ser el mismo.
3. Finito. No se debe caer en repeticiones de procesos de manera innecesaria; deberá terminar en algún
momento.
Por consiguiente, el algoritmo es una serie de operaciones detalladas y no ambiguas para ejecutar paso a paso que
conducen a la resolución de un problema, y se representan mediante una herramienta o técnica. 1 O bien, es
una forma de describir la solución de un problema planteado en forma adecuada y de manera genérica.
Además de esto, se debe considerar que el algoritmo, que posterior mente se transformará en un programa de
computadora, debe considerar las siguientes partes:
1. Pseudocódigo.
2. Diagramas de flujo.
Identificadores
Antes de analizar cada una las herramientas que se utilizan en representación de algoritmos para la solución
de problemas, se establecerá qué son los identificadores que se utilizan dentro de un algoritmo. Los
identificadores son los nombres que se les asignan a los objetos, los cuales se pueden considerar como
variables o constantes, éstos intervienen en los procesos que se realizan para la solución de un problema, por
consiguiente, es necesario establecer qué características tienen. Para establecer los nombres de los
identificadores se deben respetar ciertas reglas que establecen cada uno de los lenguajes de programación,
para el caso que nos ocupa se establecen de forma indistinta según el problema que se esté abordando, sin
seguir regla alguna, generalmente se utilizará la letra, o las letras, con la que inicia el nombre de la variable
que representa el objeto que se va a identificar.
Constante
Un identificador se clasifica como constante cuando el valor que se le asigna a este identificador no cambia
durante la ejecución o proceso de solución del problema. Por ejemplo, en problemas donde se utiliza el valor
de PI, si el lenguaje que se utiliza para codificar el programa y ejecutarlo en la computadora no lo tiene
definido, entonces se puede establecer de forma constante estableciendo un identificador llamado PI y
asignarle el valor correspondiente de la siguiente manera:
PI = 3.1416.
De igual forma, se puede asignar valores constantes para otro identificadores según las necesidades del
algoritmo que se esté diseñando.
Variables
Los identificadores de tipo variable son todos aquellos objetos cuyo valor cambia durante la ejecución o
proceso de solución del problema. Por ejemplo, el sueldo, el pago, el descuento, etcétera, que se deben
calcular con un algoritmo determinado, o en su caso, contar con el largo (L) y ancho (A) de un rectángulo
que servirán para calcular y obtener su área. Como se puede ver, tanto L como A son variables que se
proporcionan para que el algoritmo pueda funcionar, y no necesariamente se calculen dentro del proceso de
solución. Tipos de variables Los elementos que cambian durante la solución de un problema se denominan
variables, se clasifican dependiendo de lo que deben representar en el algoritmo, por lo cual pueden ser: de
tipo entero, real y string o de cadena, sin embargo, existen otros tipos de variables que son permitidos con
base en el lenguaje de programación que se utilice para crear los programas, por consiguiente, al momento
de estudiar algún lenguaje de programación en especial se deben dar a conocer esas clasificaciones.
Para el caso de este libro, se denominará variables de tipo entero a todas aquellas cuyo valor no tenga
valores decimales; contrario a las de tipo real, la cual podrá tomar valores con decimales. Como ejemplo de
variables enteras se puede considerar el número de personas, días trabajados, edad de una persona, tcétera.
Y para el caso de reales, se puede considerar el sueldo de una persona, el porcentaje de equis cantidad,
Etcétera.
En caso de que las variables tomen valores de caracteres, se designarán string o de cadena; como ejemplo
de éstas se pueden mencionar el sexo de una persona, falso o verdadero, el nombre de una persona, el tipo
de sangre, etcétera.
Pseudocódigo
Sin duda, en el mundo de la programación el pseudocódigo es una de las herramientas más conocidas para
el diseño de solución de problemas por computadora. Esta herramienta permite pasar casi de manera
directa la solución del problema a un lenguaje de programación específico. El pseudocódigo es una serie de
pasos bien detallados y claros que conducen a la resolución de un problema.
Diagramas de flujo.
Los diagramas de flujo son una herramienta que permite representar visualmente qué operaciones se requieren
y en qué secuencia se deben efectuar para solucionar un problema dado. Por consiguiente, un diagrama
de flujo es la representación gráfica mediante símbolos especiales, de los
pasos o procedimientos de manera secuencial y lógica que se deben realizar para solucionar un problema dado
Los diagramas de flujo desempeñan un papel vital en la programación de un problema, ya que facilitan la
comprensión de problemas complicados y sobre todo aquellos en que sus procesos son muy largos; 2
generalmente, los diagramas de flujo se dibujan antes de comenzar a programar el código fuente, que se
ingresará posteriormente a la computadora.
Los diagramas de flujo facilitan la comunicación entre los programadores y los usuarios, además de que
permiten de una manera más rápida detectar los posibles errores de lógica que se presenten al implementar el
algoritmo. En la tabla 1.1 se muestran algunos de los principales símbolos
utilizados para construir un diagrama de flujo.
Dentro de los diagramas de flujo se pueden utilizar los símbolos que se presentan en la tabla 1.2, con los cuales
se indican las operaciones que se efectuarán a los datos con el fin de producir un resultado.
Terminal /Inicio.
Entrada de datos.
Proceso.
Decisión.
Decisión múltiple.
Imprimir resultados.
Flujo de datos.
Conectores.
Un punto de decisión o ramificación. Las líneas
Lista de Símbolos que representan diferentes decisiones surgen
de diferentes puntos del diamante.
Utilizados en
Diagramas de Flujo
Aquí tienen una lista más completa de los
símbolos de diagramas de flujo.
Símbolo de Entrada / Salida
Símbolo de Inicio / Final Representa el material o la información que
El símbolo de terminación marca el punto entra o sale del sistema, como una orden del
inicial o final del sistema. Por lo general, cliente (entrada) o un producto (salida).
contiene la palabra "Inicio" o "Fin".
Símbolo de Decisión o
Ramificación
O Símbolo
Indica que el flujo del proceso continúa en más acciones podría describirse con más detalle en
de dos ramas. un diagrama de flujo separado.
Símbolo de Retardo
Indica un retraso en el proceso.
Símbolo de Ordenar
Indica un paso que organiza una lista de
elementos en una secuencia o establece según
algunos criterios predeterminados.
Almacenamiento de Datos o
Símbolo de Datos Almacenados
Indica un paso donde se almacenan los datos.
Símbolo de Visualización
Programa informático
Un programa informático escrito en un estilo orientado a objetos.
Programación
Artículo principal: Programación
#include <stdio.h>
#include <conio.h>
int main(void) {
printf("Hola Mundo!\n");
getch();
return 0;
}
Código fuente del programa Hola mundo escrito en el Lenguaje de programación Java
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hola Mundo!");
}
}
La programación de computadoras es el proceso iterativo de escribir o editar código fuente. Dicha edición implica
probar, analizar y perfeccionar, y, a veces, coordinar con otros programadores, en el caso de un programa
desarrollado en conjunto. Una persona que practica esta técnica se le conoce como programador de
computadoras, desarrollador de software, o codificador. El proceso, a veces a largo plazo, de programación de
computadoras normalmente se lo conoce como desarrollo de software. El término ingeniería de software se está
convirtiendo en muy popular, ya que esta actividad es vista como una disciplina de ingeniería.
Paradigmas[editar]
Los programas de ordenador se pueden clasificar según el paradigma del lenguaje de programación utilizado
para producirlos. Dos de los principales paradigmas son imperativos y declarativos.
Los programas escritos con un lenguaje imperativo especifican un algoritmo utilizando declaraciones, expresiones
e informes.4 Una declaración asocia un nombre de variable a un tipo de datos. Por ejemplo: var x: integer; .
Una expresión produce un valor. Por ejemplo: 2 + 2 produce 4. Por último, una declaración puede asignar una
expresión a una variable o usar el valor de una variable para alterar las estructuras de control del programa. Por
ejemplo: x := 2 + 2; if x = 4 then hacer_algo(); Una crítica de los lenguajes imperativos es el efecto
secundario de una sentencia de asignación en una clase de variables llamadas variables no locales.5
Los programas escritos en un lenguaje declarativo especifican las propiedades que tienen o que deben cumplirse
para la salida. No especifican detalles expresados en términos de flujo de control de la máquina de ejecución
pero sí de las relaciones matemáticas entre los objetos declarados y sus propiedades. Los lenguajes
funcionales y lógicos son dos amplias categorías de lenguajes declarativos. El principio detrás de los lenguajes
funcionales (como Haskell) es el de no permitir efectos secundarios, lo que hace que sea más fácil para razonar
sobre los programas como si se tratasen de funciones matemáticas.5 El principio detrás de los lenguajes lógicos
(como Prolog) es definir el problema a ser resuelto - la meta - y dejar la solución detallada al propio sistema
Prolog.6 El objetivo se define proporcionando la lista de sub-objetivos. Luego, cada subobjetivo se define más
arriba, proporcionando la lista de sus sub-objetivos, etc. Si la ruta de sub-objetivos no encuentra una solución,
entonces ese subobjetivo se retrocede y otra vía se intenta sistemáticamente.
La forma en que se crea el programa puede ser textual o visual. En un programa de lenguaje visual, los elementos
en vez de ser textualmente especificados son manipulados gráficamente.
Compilado o interpretando[editar]
Un programa de computadora bajo la forma de lenguaje de programación de computadoras legible por un
humano, se lo llama código fuente. Dicho código fuente se puede convertir en una imagen ejecutable por
un compilador o ejecutarse inmediatamente con la ayuda de un intérprete.
Cualquiera de los programas compilados o interpretados pueden ser ejecutados en un proceso por lotes sin
intervención humana, pero los programas interpretados le permiten al usuario escribir comandos en una sesión
interactiva. En este caso, los programas son los comandos separados, cuya ejecución se produce
secuencialmente, y por lo tanto simultáneamente. Cuando se utiliza un lenguaje para dar órdenes a una aplicación
de software (como un shell de Unix u otra interfaz de línea de comandos), se le llama un lenguaje de scripts.
Los compiladores se utilizan para traducir el código fuente de un lenguaje de programación, ya sea en código
objeto o código máquina.7 El código objeto de objeto necesita procesamiento adicional para convertirse en código
máquina, y el código máquina es el código nativo de la unidad central de procesamiento, listo para su ejecución.
Los programas de computadora compilados se conocen comúnmente como ejecutables, imágenes binarias, o
simplemente como binarios — una referencia al formato de archivo binario utilizado para almacenar el código
ejecutable.
Los programas de computadora — interpretados en un lote o una sesión interactiva — o bien se descodifican y
luego ejecutados inmediatamente o se decodifican en alguna representación intermedia eficiente para la
ejecución futura. BASIC, Perl y Python son ejemplos de programas de computadora ejecutados inmediatamente.
Por otra parte, los programas de computadora de Java se compilan antes de tiempo y se almacena como un
código independiente de la máquina llamado bytecode. Entonces, dicho bytecode es ejecutado a petición de un
intérprete llamado máquina virtual.
La principal desventaja de los intérpretes es que los programas de computadora corren más lento que cuando
son compilados. La interpretación de código resulta más lenta que la ejecución de la versión compilada porque el
intérprete debe decodificar cada declaración cada vez que se carga y luego realizar la acción deseada. Sin
embargo, el desarrollo de software puede ser más rápido usando un intérprete porque la prueba es inmediata
cuando se omite el paso de la compilación. Otra desventaja de los intérpretes es que debe estar presente al
menos uno en la computadora durante la ejecución del programa de computadora. Por el contrario, los programas
de computadora compilados no necesitan compilador presente durante la ejecución.
No se requieren propiedades de un lenguaje de programación si se está compilado exclusivamente o
interpretándose exclusivamente. Por lo general, la clasificación refleja el método más popular de ejecución del
lenguaje. Por ejemplo, BASIC se considera un lenguaje interpretado y C un lenguaje compilado, a pesar de la
existencia de compiladores de BASIC e intérpretes de C. Algunos sistemas utilizan compilación en tiempo de
ejecución (JIT) mediante la cual las secciones de la fuente se compilan 'sobre la marcha' y se almacenan para
ejecuciones posteriores.
Programas que se auto-modifican[editar]
Un programa informático en ejecución normalmente es tratado como algo diferente de los datos con los cuales
opera. Sin embargo, en algunos casos ésta distinción es ambigua, especialmente cuando un programa se
modifica a sí mismo. El programa modificado es ejecutado secuencialmente como parte del mismo programa. En
el caso de programas escritos en código máquina, lenguaje
ensamblador, Lisp, C, COBOL, PL/1 y Prolog y JavaScript (la función eval), entre otros, es posible tener código
que se auto-modifica.
Algunos programas están empotrados en el hardware. Una computadora con arquitectura de programas
almacenados requiere un programa inicial almacenado en su ROM para arrancar. El proceso de arranque es para
identificar e inicializar todos los aspectos del sistema, desde los registros del procesador, controladores de
dispositivos hasta el contenido de la memoria RAM.8 Seguido del proceso de inicialización, este programa inicial
carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales.
Independiente de la computadora, un dispositivo de hardware podría tener firmware empotrado para el control de
sus operaciones. El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca, o
cuando el programa no debe perderse cuando haya ausencia de energía.9
Programas cargados manualmente[editar]
Históricamente, los programas eran cargados al procesador central de forma manual mediante interruptores. Una
instrucción se representaba por una configuración de estados de interruptores de abierto o cerrados. Después de
establecer la configuración, se ejecutaba un botón de ejecución. Este proceso era repetitivo. Asimismo, los
programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas. Después de que se
cargaba el programa, se establecía la dirección de inicio mediante interruptores y se presionaba el botón de
ejecución.10
Programas generados automáticamente[editar]
La programación automática es un estilo de programación que crea código
fuente mediante clases genéricas, prototipos, plantillas, aspectos, y generadores de código para aumentar la
productividad del programador. El código fuente se genera con herramientas de programación tal como
un procesador de plantilla o un IDE. La forma más simple de un generador de código fuente es un
procesador macro, tal como el preprocesador de C, que reemplaza patrones de código fuente de acuerdo a reglas
relativamente simples.
Un motor de software da de salida código fuente o lenguaje de marcado que simultáneamente se vuelve la entrada
de otro proceso informático. Podemos pensar como analogía un proceso manejando a otro siendo el código
máquina quemado como combustible. Los servidores de aplicaciones son motores de software que entregan
aplicaciones a computadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que
permite a los usuarios desarrollar contenido dinámico ensamblado a partir de artículos. Las Wikis
generan HTML, CSS, Java, y Javascript los cuales son interpretados por un navegador web.
Ejecución simultánea[editar]
Véanse también: Proceso (informática) y Multiprocesamiento.
Muchos programas pueden ejecutarse simultáneamente en la misma computadora, hecho al cual se lo conoce
como multitarea, pudiéndose lograr mediante mecanismos de software o de hardware. Los sistemas operativos
modernos pueden ejecutar varios programas a través del planificador de procesos — un mecanismo de software
para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios
puedan interactuar con cada programa mientras estos están corriendo.11 También se puede lograr la multitarea
por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios
núcleos pueden correr muchos programas a la vez.12
Categorías funcionales[editar]
Los programas se pueden categorizar aplicando criterios funcionales. Estas categorías funcionales son software
de sistema y software de aplicación. El software de sistema incluye al sistema operativo el cual acopla
el hardware con el software de aplicación.13 El propósito del sistema operativo es proveer un ambiente en el cual
el software de aplicación se ejecuta de una manera conveniente y eficiente.13 Además del sistema operativo, el
software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un
programa no es software de sistema entonces es software de aplicación. El middleware también es un software
de aplicación que acopla el software de sistema con la interfaz de usuario. También son software de aplicación
los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones, como por ejemplo la
necesidad de ordenamiento.